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