51单片机串口多机通信的实现和编程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51 单片机串口多机通信的实现和编程

一、51 单片机的主从模式,首先要设定工作方式3:(主从模式+波特率可变)

SCON 串口功能寄存器:SM0=1;SM1=1(工作方式3)

注:主机和从机都要为工作方式3。

【工作方式2 (SM0 SM1 :1 0):串行口为11 位异步通信接口。发送或接收

一帧信息包括1 位起始位0、8 位数据位、1 位可编程位、1 位停止位1。发

送数据:发送前,先根据通信协议由软件设置TB8 为奇偶校验位或数据标识位,然后将要发送的数据写入SBUF,即能启动发送器。发送过程是由执行任何一条以SBUF 为目的寄存器的指令而启动的,把8 位数据装入SBUF,

同时还把TB8 装到发送移位寄存器的第9 位上,然后从TXD(P3.1)端口输出

一帧数据。接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI 清0。然后再根据SM2 的状态和所接收到的RB8 的状态决定此串行口在

信息到来后是否置R1=1,并申请中断,通知CPU 接收数据。当SM2=0 时,

不管RB8 为0 还是为1,都置RI=1,此串行口将接收发送来的信息。当

SM2=1 时,且RB8=1,表示在多机通信情况下,接收的信息为地址帧, 此时

置RI=1,串行口将接收发来的地址。当SM2=1 时,且RB8=0,表示在多机通

信情况下,接收的信息为数据帧, 但不是发给本从机的,此时RI 不置为1,

相关文档
最新文档