《二、串口的多机通信课件.ppt》由会员分享,可在线阅读,更多相关《二、串口的多机通信课件.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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
3、,A ;启动发送;启动发送 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
4、C,PJNC L1 ;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作奇偶校验位。作奇偶校验位。
5、v解:在数据写入发送解:在数据写入发送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 ;数值长度送数值长度送R7L
6、OOP: MOV 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
8、,#80H MOV 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,
11、可接收,可接收 MOV 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/A1124
13、P2.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/T115U280C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2
14、/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/T115U380C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A
15、821P2.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/T115U480C51XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732
16、P2.7/A1528P2.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共同作用,影响着
18、共同作用,影响着RI的置位。的置位。也就是说,接收到也就是说,接收到一个数据时,一个数据时,RI 置位与否还要看置位与否还要看SM2和和RB8的组合。的组合。而而RI不能有效置位,意味着并没有收到这一个数据。不能有效置位,意味着并没有收到这一个数据。 要保证主机与所选择的从机实现可靠地通讯,要保证主机与所选择的从机实现可靠地通讯,必须保证串口具有识别功能。必须保证串口具有识别功能。 SCON中的中的SM2位位就是满足这一条件而设置的多机通讯控制位。就是满足这一条件而设置的多机通讯控制位。SM2=0、RB8=0 RB8=1RI可以置位SM2=1、RB8=1SM2=1、RB8=0RI可以置位RI不
19、能置位读P138RI可以置位才可可以置位才可以接收到数据以接收到数据SM2=0、RB8=0 RB8=1RI可以置位SM2=1、RB8=1SM2=1、RB8=0RI可以置位RI不能置位应用这些特性来应用这些特性来安排多机通讯的安排多机通讯的工作过程:工作过程:(1)主机先将从机地址(即准备接收数据的从机)发给各从机)主机先将从机地址(即准备接收数据的从机)发给各从机,希望每个希望每个从机都能收到。从机都能收到。主机发出的地址信息,以第主机发出的地址信息,以第9位为位为1为特征。为特征。(2)从机串行口)从机串行口编程为方式编程为方式2或方式或方式3接收接收,且,且置置“1”SM2和和REN位位,
20、使从机只处于多机通讯且接收地址帧的状态。使从机只处于多机通讯且接收地址帧的状态。(3)各从机接收到地址后,判断是否和本机地址相符合。)各从机接收到地址后,判断是否和本机地址相符合。相符则该从机相符则该从机清清“0”SM2位,位,准备接收主机的数据或命令;准备接收主机的数据或命令;若不符,则保持若不符,则保持SM2=1状态。状态。(4)接着主机发送数据帧,)接着主机发送数据帧,以第以第9位为位为0为特征为特征.此时各从机串行口接收到此时各从机串行口接收到 的的RB8=0,只有地址相符合的从机系统(即已清只有地址相符合的从机系统(即已清“0”SM2位的从机)位的从机)才能激活才能激活RI,真正收到数据。真正收到数据。被叫未被叫2009-11-12作业v读P154156例7-5vP157 12、14