二、串口的多机通信课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《二、串口的多机通信课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串口 通信 课件
- 资源描述:
-
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,
展开阅读全文