串口的多机通信.pptVIP

  • 71
  • 0
  • 约4.46千字
  • 约 17页
  • 2022-08-25 发布于四川
  • 举报
二、串口的多机通信 一、 串行口的应用举例 第七章 MCS-51的串行口 例7-1 方式2发送在双机通讯中的应用。 下面的发送中断服务程序,是在双机通讯中,以TB8作为奇偶校验位,处理方法为数据写入SBUF之前,先将数据的奇偶校验位写入TB8,以保证采用偶校验发送。 2、串行口方式2的应用 9位共偶数个1,通过TB8补0或补1来实现 什么是偶校验? 当数据本身为偶数个1时(P=0)补0; 当数据本身为奇数个1时(P=1)补1; 结论:令TB8=P 一、 串行口的应用举例 PIPTI: PUSH PSW ;现场保护 PUSH Acc SETB RS1 ;选择第2组工作寄存器区 CLR RS0 CLR TI ;发送中断标志清“0” MOV A,@R0;取数据 MOV C,P ;校验位送TB8,采用偶校验 MOV TB8 ,C MOV SBUF ,A ;启动发送 INC R0 ;数据指针加1 POP Acc ;恢复现场 POP PSW RETI ;中断返回 例7-2 方式2接收在双机通讯中的应用 本例与上例相对应。若第9位数据为校验位,在接收程序中作偶校验处理,设1组寄存器区的R0为数据缓冲器指针。 PIRI: PUSH PSW PUSH Acc SETB RS0 ;选择1组寄存器区 CLR RS1 CLR RI MOV A,SBUF ;收到数据送A MOV C,P JNC L1 ;C=0。跳L1 JNB RB8,ERP ;ERP为出错处理程序 AJMP L2 L1: JB RB8,ERP ;RB8=1,跳ERP L2: MOV @R0,A INC R0 POP Acc POP PSW ERP: ……… ;出错处理程序段 ……… RETI RB8=0? P=0? Y RB8=1? Y N Y Y ERP N 补充两个数据块的发送接收例题 补例7-3:编制一个发送程序,将片内RAM中50H~5FH的数据串行发送。串行口设定为工作方式2,TB8作奇偶校验位。 解:在数据写入发送SBUF之前,先将数据的奇偶标志P写入TB8,此时,第9位数据便可作奇偶校验用。分别采用查询和中断两种方式发送。 返回 ORG 0000H AJMP MAIN ;上电,转向主程序 ORG 0100H ;主程序 MAIN: MOV SCON ,#80H ;设工作方式2 MOV PCON ,#80H ;取波特率为fosc/32 MOV R0 ,#50H ;首址50H送R0 MOV R7 ,#10H ;数值长度送R7 LOOP: MOV A ,@R0 ;取数据 MOV C ,PSW.0 ;P→C MOV TB8 ,C ;奇偶标志送TB8 MOV SBUF ,A ;发送数据 WAIT: JBC TI ,CONT AJMP WAIT ;等待中断标志TI=1 CONT: INC R0 DJNZ R7 ,LOOP ;数值尚未发送完, 继续发送下一个数据 SJMP $ END 返回 (1)采用查询方式的程序段 数据发送完? 是 初始化串口 初始化数据区 中断初始化 发送第一个数据 开 始 主程序 等待中断 清中断标志 发送下一个数据 关中断 中断入口

文档评论(0)

1亿VIP精品文档

相关文档