点对点串行通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PPT文档演模板
点对点串行通信
与串行发送有关的发送参考程序如下:
TXDB DATA 30H ;发送缓冲区
TXDC DATA 35H
;发送/接收字节计数器
TXDOK BIT 07H ;发送成功标志(1表示成功;0表示失败)
;初始化串行口
MOV SCON,#11010000B ;串行口工作在方式3,SM2=0,以便 用TB8位
点对点串行通信
PPT文档演模板
2020/11/21
点对点串行通信
一、实验目的 (1) 理解串行通信概念。 (2) 掌握MCS-51串行通信口的初始化方法、步骤。 (3) 掌握串行发送、接收程序的编写方法。 理解串行通信波特率误差允许范围。
PPT文档演模板
点对点串行通信
二、实验设备与器材
仿真器及其附件、图1所示的实验电路板各两套,RS-232串 行通信电缆一条,导线数条。
MOV R7,#4
CLR A
;清累加器
点对点串行通信
LOOP1: ADD A,@R0 INC R0 DJNZ R7,LOOP1 ANL A,#7FH MOV @R0,A MOV A,#0AAH MOV C,P MOV TB8,C MOV SBUF,A MOV TXDC,#0 RET
;4800波特率对应定时器初值
MOV TH1,#250
ANL TMOD,#0F0H
ORL TMOD,#00100000B ;定时器T1工作在方式2(8位自动重装初值)
SETB TR1
;启动定时器T1
CLR ET1
;禁止T1中断
;初始化串行口
PPT文档演模板
点对点串行通信
MOV SCON,#11010000B 用TB8位
PPT文档演模板
点对点串行通信
四、实验内容、过程及要求
1.串行通信格式的约定
(1) 波特率(CPS)为4800。假设晶振频率为11.0592 MHz, 使用定时器T1溢出率作发送、接收波特率,则定时器T1重装 初值C=0FAH(不倍增)。
(2) 数据长度为9位,其中b7~b0为数据位,b8为奇偶校 验位。
;串行接收有效
CLR RI
;清除接收有效中断
MOV A,SBUF
;读串行接收缓冲器
;奇偶校验,即检查P标志与RB8位是否相同,否则奇偶校验错
MOV C,P
ANL C,/RB8
;计算P×
MOV F0,C
;暂时保存在F0标志中
MOV C,RB8
ANL C,/P
;计算RB8×
PPT文档演模板
点对点串行通信
PPT文档演模板
点对点串行通信
三、实验电路
按实验7的要求设置实验板上跳线,将JP105、JP106的1-2 引脚短路,用RS-232电缆或导线将第一块实验电路板的 TXD(发送端)引脚与第二块电路板的RXD(接收端)引脚连在一 起,第一块实验电路板的RXD(接收端)引脚与第二块电路板的 TXD(发送端)引脚连在一起;再用导线将两块电路板地线连在 一起(用RS-232通信电缆连接时,两块实验电路板地线已通过 DB9插座的第5引脚连在一起),这样就形成了没有联络信号的 串行通信方式。
;SETB REN SETB ES SETB EA ;单字节串行发送初始化 MOV A,KEYNAME MOV C,P
;串行口工作在方式3,SM2=0,以便
;作奇偶校验位 ;允许接收 ;允许串行中断 ;开中断
;取按键值送A
PPT文档演模板
点对点串行通信
MOV TB8,C
;奇偶标志P送TB8,即b8位
;作奇偶校验位
;SETB REN
Leabharlann Baidu
;允许接收
PROC TIMETXB
;时间送发送缓冲区
PPT文档演模板
点对点串行通信
TIMETXB:
MOV A,SECOND
MOV B,#10
DIV AB
;转换为BCD码
;十位在A中,个位在B中
MOV R0,#TXDB+2
MOV @R0,A
INC R0
MOV @R0,B
(1) 数据帧格式为:0AAH(起始标志)+4字节信息+1字节的 和校验信息。
PPT文档演模板
点对点串行通信
(2) 接收方正确接收后回送A5作应答;如果错误,则回 送A6,请求重发。
(3) 发送/接收缓冲区在30H~35H单元,其中35H单元存 放和校验信息 (b7作接收缓冲数据有效标志)。
(4) 发送、接收均采用中断方式。
试在实验7的基础上,增加单字节串行通信功能,使程序具 备在任一实验板上按下某一按键时,两块板同时显示被按下的 键名。
下面给出了与串行通信有关的程序段,完整程序由读者编 写。
PPT文档演模板
点对点串行通信
;初始化定时器T1(将定时器T1的溢出信号作串行通信波特率发生器输 入信号)
MOV TL1,#250
MOV SBUF,A
;写串行发送缓冲器即可将一字节信息
按设定的波特率发送到串行口上
PROC UART
;串行中断服务程序
UART:
PUSH ACC
PUSH PSW
JNB TI,NEXT1
;串行发送结束引起中断
CLR TI
;清除发送中断标志
PPT文档演模板
点对点串行通信
NEXT1:
JNB RI,EXIT
;秒低位送发送缓冲区缓冲区
;分单元计数器笔段码送显示缓冲区
PPT文档演模板
点对点串行通信
PPT文档演模板
MOV A,MINUTE
MOV B,#10
DIV AB
;转换为BCD码
;十位在A中,个位在B中
MOV @R0,A
INC R0 MOV @R0,B ;计算校验和
;分低位送发送缓冲区缓冲区
MOV R0,#TXDB
ORL C,F0 JC EXIT ;校验正确! MOV RXDBUF,A SETB RXDB EXIT: POP PSW POP ACC RETI END
PPT文档演模板
;完成了P与RB8的异或运算 ;数据送串行接收缓冲区 ;串行接收有效标志置1
点对点串行通信
3.按约定协议收/发的双机串行通信
将JP201、JP202跳线的1-2引脚短路,即串行数据从P1.2 引脚输出,串行移位脉冲从P3.4引脚输出,并行输出锁存信号 从P3.5输出。在实验6的基础上,通过串行口将电子钟时间送 到另一实验板显示出来,通信协议如下:
(3) 采用偶校验方式,即传送的8位数据中含有奇数个“1” 时,校验位为1。
PPT文档演模板
点对点串行通信
2.没有协议的单字节收/发
对于单字节串行收/发来说,无需约定通信协议,完成了串 行口初始化后,即可通过写串行输出缓冲寄存器SBUF,启动串 行发送;当接收有效标志RI置1时,就表示已接收了一字节的数 据信息。