任务1 单片机双机通信
上一节
下一节
本项目采用AT89S51单片机组成通信系统进行数据的接收和发送。单片机A作为发送方,单片机B将接收的数据输出到自己的P0口,通过二极管发光以显示对应的开关状态数据。
任务说明
双机通信的过程包括发送和接收,通信软件发送机中包含发送程序,接收机中包含接收程序,异步串行通信通过查询方式来确定数据的发送和接收。本项目采用AT89C51组成通信系统进行数据的接收和发送。单片机A的P1口接拨位开关S0~S7,单片机A的CPU读取P1口的开发状态并由它的11脚(TXD)传给单片机B的10脚(RXD)。单片机B将接收的数据输出P0口,通过二极管发光以显示对应的开发状态数据。
原理图
源代码--双机通信
1、单片机A发送程序设计
单片机A发送程序,主要包括堆栈指针、串行口控制寄存器、定时器方式控制寄存器、定时器初始值的设置,读取开关状态并保存,以及串行数据发送。
2、单片机B接收程序设计
单片机B的接收程序设计与单片机A的接收程序设计略有不同,即单片机B在串行口控制寄存器SCON的设置上注意了接受位RI的置1操作。其他不同之处还有最后的接收数据成功后转送累积起A的操作和对接收位RI重新复位的操作。
实验效果

