串口的多机通信_第1页
串口的多机通信_第2页
串口的多机通信_第3页
串口的多机通信_第4页
串口的多机通信_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二二、串口的多机通信、串口的多机通信一一、 串行口的应用举例串行口的应用举例第七章第七章 MCS-51的串行口的串行口例例7-1 方式方式2发送在双机通讯中的应用。发送在双机通讯中的应用。下面的下面的发送中断发送中断服务程序,是在双机通讯中,以服务程序,是在双机通讯中,以TB8作为奇作为奇偶校验位,处理方法为数据写入偶校验位,处理方法为数据写入SBUF之前,先将数据的奇之前,先将数据的奇偶校验位写入偶校验位写入TB8,以保证采用偶校验发送。以保证采用偶校验发送。 2 2、串行口方式、串行口方式2 2的应用的应用 9位共偶数个位共偶数个1,通过,通过TB8补补0或补或补1来实现来实现什么是偶校验

2、?什么是偶校验?当数据本身为偶数个当数据本身为偶数个1 1时(时(P=0P=0)补)补0 0;当数据本身为奇数个当数据本身为奇数个1 1时(时(P=1P=1)补)补1 1;结论:令结论:令TB8=PTB8=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

3、 ;启动发送启动发送 INC R0 ;数据指针加数据指针加1 POP Acc ;恢复现场恢复现场 POP PSW RETI ;中断返回中断返回例例7-2 方式方式2接收在双机通讯中的应用接收在双机通讯中的应用本例与上例相对应。若第本例与上例相对应。若第9位数据为校验位,在接收程序中位数据为校验位,在接收程序中作作偶校验偶校验处理,设处理,设1组寄存器区的组寄存器区的R0为数据缓冲器指针。为数据缓冲器指针。PIRI: PUSH PSWPUSH AccSETB RS0 ;选择选择1组寄存器区组寄存器区CLR RS1CLR RI MOV A,SBUF ;收到数据送收到数据送AMOV C,PJNC L

4、1 ;C0。跳。跳L1JNB RB8,ERP ;ERP为出错处理程序为出错处理程序 AJMP L2 L1: JB RB8,ERP;RB81,跳,跳ERP L2: MOV R0,A INC R0 POP Acc POP PSW ERP: ;出错处理程序段出错处理程序段 RETIRB8=0? P=0?YRB8=1?YNYYERPN补充两个数据块的发送接收例题补充两个数据块的发送接收例题 补例补例7-3:编制一个编制一个发送发送程序,将片内程序,将片内RAM中中50H5FH的数的数据串行发送。串行口设定为工作方式据串行发送。串行口设定为工作方式2,TB8作奇偶校验位。作奇偶校验位。v解:在数据写入发

5、送解:在数据写入发送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 ;数值长度送数值长度送R7LOOP: MOV

6、A ,R0 ;取数据取数据 MOV C ,PSW.0 ;PC MOV TB8 ,C ;奇偶标志送奇偶标志送TB8 MOV SBUF ,A ;发送数据发送数据WAIT: JBC TI ,CONT AJMP WAIT ;等待中断标志等待中断标志TI=1CONT: INC R0 DJNZ R7 ,LOOP ;数值尚未发送完,数值尚未发送完, 继续发送下一个数据继续发送下一个数据 SJMP $ END返回(1)采用查询方式的程序段)采用查询方式的程序段数据发送完?数据发送完?是是初始化串口初始化串口初始化数据区初始化数据区中断初始化中断初始化 发送第一个数据发送第一个数据开开 始始 主程序主程序等待中

7、断等待中断清中断标志清中断标志发送下一个数据发送下一个数据 关中断关中断中断入口中断入口 中断服务子程序中断服务子程序返回返回; 发送一个数据发送一个数据 MOV A ,R0 MOV C ,PSW.0 ;PC MOV TB8 ,C MOV SBUF ,A ;写写看写写看!(2)采用中断方式的流程图)采用中断方式的流程图ORG 0000H AJMP MAIN ;上电,转向主程序上电,转向主程序 ORG 0023H ;串行口的中断入口地址串行口的中断入口地址 AJMP SERVE ;转向中断服务程序转向中断服务程序 ORG 0100H ;主程序主程序MAIN: MOV SCON ,#80H MOV

8、 PCON ,#80H MOV R0 ,#50H MOV R7 ,#0FH; ?够吗?够吗 SETB ES ;允许串行口中断允许串行口中断 SETB EA ;CPU允许中断允许中断 MOV A ,R0 MOV C ,PSW.0 ;PC MOV TB8 ,C MOV SBUF ,A ;发送第一个数据发送第一个数据 SJMP $SERVE: CLR TI ;清除发送中断标志清除发送中断标志 INC R0 ;修改数据地址修改数据地址 MOV A ,R0 MOV C ,PSW.0 ;PC MOV TB8 ,C MOV SBUF ,A ;发送数据发送数据 DJNZ R7 ,ENDT ;判断数据块发送完否

9、判断数据块发送完否 ;若未发;若未发 送完,送完, 则转则转ENDT CLR ES ;若发送完,则禁止串行口中断若发送完,则禁止串行口中断ENDT: RETI ;中断返回中断返回 END返回(2)采用中断方式的程序段)采用中断方式的程序段v解:方式解:方式3为为11位异步通信方式,波特率取决于位异步通信方式,波特率取决于TI的溢出率。的溢出率。查查 表表72(P148)可知,当晶振为可知,当晶振为11.059MHz,波特率为,波特率为2400b/s时,可取时,可取SMOD=0,定时器选择模式定时器选择模式2: 初值为初值为F4H返回补例补例7-4:编制一个编制一个接收接收程序,将接收的程序,将

10、接收的16B数据数据送入片内送入片内RAM的的5OH5FH单元中。设串行口工单元中。设串行口工作于作于方式方式 3,波特率为,波特率为2400b/s。源程序如下:源程序如下:MAIN: MOV TMOD ,#20H ;设设TI工作于模式工作于模式2 MOV TH1 ,#0F4H ;赋循环计数初值赋循环计数初值 MOV TL1 ,#0F4H ;赋计数值赋计数值 SETB TR1 ;启动定时器启动定时器TI MOV R0 ,#50H ;首地址送首地址送R0 MOV R7 ,#10H ;数据长度送数据长度送R7 MOV SCON ,#0D0H ;串行口工作与方式串行口工作与方式3,可接收,可接收 M

11、OV PCON ,#00H ;设设SMOD=0WAIT: JBC RI ,PR1 ;接收完一帧数据,清接收完一帧数据,清RI,转,转PR1 SJMP WAIT ;否则等待否则等待PR1: MOV A ,SBUF ;读入数据读入数据 JNB P ,PNP ;P=0,转,转PNP JNB RB8 ,PER ;P=1,RB8=0,转出错处理,转出错处理 SJMP RIGHTPNP: JB RB8 ,PER ;P=0,RB8=1,转出错处理,转出错处理RIGHT: MOV R0 ,A ;数据送内存数据送内存 INC R0 ;修改地址指针修改地址指针 DJNZ R7 ,WAIT ;数据未接收完,继续接收

12、下一个数据数据未接收完,继续接收下一个数据 CLR PSW.5 ;置正确接收完毕标志置正确接收完毕标志F0=0 RETPER: SETB PSW.5 RET返回RB8=0? P=0?YRB8=1?YNYYERPNtxdrxdtxdrxdtxdrxdrxdtxdXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A122

13、5P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U280C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.

14、3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U380C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A

15、922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U480C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A152

16、8P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C511234567809abcdef234567891RP1RESPACK-8R110kD1LED-GREEND2LED-GREEND3LED-GREEN一个多机通信的例子一个多机通信的例子二、串口的多机通信二、串口

17、的多机通信主机与从机,每个从机有一个唯一的地址码。主机与从机,每个从机有一个唯一的地址码。主机可与每个从机通信,从机之间不能通信。主机可与每个从机通信,从机之间不能通信。主机每一时段只能与一个从机通信。主机每一时段只能与一个从机通信。先叫地址,然后再通信。先叫地址,然后再通信。二、串口的多机通信二、串口的多机通信主机的主机的RXD与从机的与从机的TXD相连,主机相连,主机TXD与从机的与从机的RXD端相连。从机地址分别为端相连。从机地址分别为00H、01H、02H。原理:原理:在串行口以方式在串行口以方式2(或方式(或方式3)接收时,)接收时,SM2与与RB8共同作用,影响着共同作用,影响着R

18、I的置位。的置位。也就是说,接收到也就是说,接收到一个数据时,一个数据时,RI 置位与否还要看置位与否还要看SM2和和RB8的组合。的组合。而而RI不能有效置位,意味着并没有收到这一个数据。不能有效置位,意味着并没有收到这一个数据。 要保证主机与所选择的从机实现可靠地通讯,要保证主机与所选择的从机实现可靠地通讯,必须保证串口具有识别功能。必须保证串口具有识别功能。 SCON中的中的SM2位位就是满足这一条件而设置的多机通讯控制位。就是满足这一条件而设置的多机通讯控制位。SM2=0、RB8=0 RB8=1RI可以置位SM2=1、RB8=1SM2=1、RB8=0RI可以置位RI不能置位读P138RI可以置位才可可以置位才可以接收到数据以接收到数据SM2=0、RB8=0 R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论