串行通信基础.pptVIP

  • 28
  • 0
  • 约1.99万字
  • 约 100页
  • 2019-06-26 发布于湖北
  • 举报
8.1 串行通信基础 图8.2 两种通信方式的示意图 (a) 并行通信;(b) 串行通信 图8.4 同步通信的字符帧格式 (a) 单同步字符帧格式;(b) 双同步字符帧格式 图8.5 单工、半双工和全双工三种制式示意图 8.2 串行通信总线标准及其接口 图8.6 RS-232C信息格式 图8.7 MAX232引脚图 图8.8 RS-232C引脚图 图8.9 RS-422A接口电平转换电路 图8.10 RS-423A接口电平转换电路 图8.11 20 mA电流环接口电路 8.3 MCS-51的串行接口 图8.12 串行口结构示意图 图8.16 方式0用于扩展I/O口输入 图8.17 10位的帧格式 图8.18 - 11位的帧格式 8.4 MCS-51单片机之间的通信 图8.19 双机异步通信接口电路 图8.20 RS-422A双机异步通信接口电路 图8.21 多机通信连接示意图 图8.22 PC机和单片机串行通信接口 2) 乙机接收 编程使乙机接收甲机发送过来的数据块,并存入片内50H~6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。 在进行双机通信时,两机应采用相同的工作方式和波特率。参考接收子程序如下: MOV SCON,#80H ;设置串行口为方式2 MOV PCON,#80H ;SMOD=1 MOV R0,#50H ;设置数据块指针 MOV R7,#20H ;设置数据块长度 SETB REN ;启动接收 WAIT: JBC RI,READ ;判断是否接收完一帧。若完,清RI,读入数据 AJMP WAIT ;未完等待 READ: MOV A,SBUF ;读入一帧数据 JNB PSW.0,PZ ;奇偶位为0则转 JNB RB8, ERR ;P=1,RB8=0,则出错 SJMP RIGHT ;二者全为1,则正确 PZ: JB RB8, ERR ;P=0,RB8=1,则出错 RIGHT: MOV @R0, A ;正确,存放数据 INC R0 ;更新地址指针 DJNZ R7, WAIT ;判断数据块是否接收完 CLR PSW.5 ;接收正确,且接收完清F0标志 RET ;返回 ERR: SETB PSW.5 ;出错,置F0标志为1 RET ;返回 在上述查询方式的双机通信中,因为发送双方单片机的串行口均按方式2工作,所以帧格式是11位的,收发双方均是采用奇偶位TB8来进行校验的。传送数据的波特率与定时器无关,所以程序中没有涉及定时器的编程。 与实训8的程序做以比较,可以看出,实训中收发双方单片机的串行口均按方式1工作,即10位的帧格式进行通信,没有进行数据的校验。传送数据的波特率与定时器有关,所以实训中的通信程序有对定时器编程的语句。 2. 中断方式 在很多应用中,双机通信的接收方都采用中断的方式来接收数据,以提高CPU的工作效率;发送方仍然采用查询方式发送。 1) 甲机发送 上面的通信程序,收发双方是采用奇偶位TB8来进行校验的,这里介绍一种用累加和进行校验的方法。 编程将甲机片内60H~6FH单元的数据块从串行口发送,在发送之前将数据块长度发送给乙机,当发送完16个字节后,再发送一个累加校验和。定义双机串行口按方式1工作,晶振为11.059 MHz,波特率为2400 b/s,定时器1按方式2工作。经计算或查表8.2得到定时器预置值为0F4H,SMOD=0。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档