《单片机串行通信接口.pptx》由会员分享,可在线阅读,更多相关《单片机串行通信接口.pptx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京交通大学1第6章 串行通信接口本章主要内容本章主要内容串行数据通信基本原理串行数据通信基本原理MCS-51MCS-51单片机串行口单片机串行口串行口应用举例串行口应用举例北京交通大学2 计算机的两种方式数据传送:计算机的两种方式数据传送:并行并行和和串行串行 并行传送的特点:并行传送的特点:各数据位同时传送,传送速度快、效率高。各数据位同时传送,传送速度快、效率高。但需要的数据线多,因此传送成本高。并行数据但需要的数据线多,因此传送成本高。并行数据传送的距离通常小于传送的距离通常小于3030米。米。串行传送的特点是:串行传送的特点是:数据传送按位顺序进行,最少只需一根传输数据传送按位顺序进
2、行,最少只需一根传输线即可完成,成本低线即可完成,成本低,但速度慢。串行数据传送但速度慢。串行数据传送的距离可以从几米到几千公里。的距离可以从几米到几千公里。一、串行数据通信基本原理一、串行数据通信基本原理北京交通大学3数据通信基本原理串行数据传送又分为串行数据传送又分为异步传送异步传送和和同步传送同步传送两种方式。两种方式。在单片机中,主要使用异步传送方式。在单片机中,主要使用异步传送方式。北京交通大学4 1.1.异步串行通信的字符格式异步串行通信的字符格式 异步串行数据通信以字符为单位,即一次异步串行数据通信以字符为单位,即一次传送一个字符传送一个字符。异步通信的数据格式为:异步通信的数据
3、格式为:一位起始位位起始位一位奇偶校验位一位奇偶校验位1、1.5、2位停止位位停止位 一帧信息58位数据位位数据位北京交通大学5 1 1位起始位(为低电平);位起始位(为低电平);5 58 8位数据位(紧跟着起始位),表示位数据位(紧跟着起始位),表示要传送的有效数据(低位在前);要传送的有效数据(低位在前);1 1位奇偶校验位(可有可无);位奇偶校验位(可有可无);1 1、1.51.5或或2 2位停止位(为高电平)。位停止位(为高电平)。从起始位开始到停止位结束的时间间隔称从起始位开始到停止位结束的时间间隔称为为一帧一帧。就是一个字符的完整通信格式。就是一个字符的完整通信格式。因此也把串行通
4、信的字符格式称为因此也把串行通信的字符格式称为帧格式帧格式北京交通大学6例例如如,采采用用串串行行异异步步通通信信方方式式传传送送ASCIIASCII码码字字符符55,规规定定为为7 7位位数数据据位位,1 1位位偶偶校校验验位位,1 1位位停停止止位,无空闲位。位,无空闲位。由由于于55的的ASCIIASCII码码为为35H35H,其其对对应应7 7位位数数据据位位为为01101010110101,如如按按低低位位在在前前、高高位位在在后后顺顺序序排排列列应应为为10101101010110。前前面面加加1 1位位起起始始位位,后后面面配配上上偶偶校校验验位位1 1位位0 0,最最后后面面加
5、加1 1位位停停止止位位1 1,因因此此传传送送的的字字符符格格式式为为01010110010101011001,其对应的波形如图所示。,其对应的波形如图所示。低位在前低位在前高位在后高位在后起始起始停止停止偶偶校校验验北京交通大学72.2.串行通信的数据通路形式串行通信的数据通路形式串行数据通信有以下几种数据通路形式:串行数据通信有以下几种数据通路形式:单工单工形式形式:A A发发,B,B接。接。半双工半双工形式形式:A A发或接发或接,B B接或发。接或发。全双工全双工形式形式:A A发、接,发、接,B B接、发。接、发。ABABAB北京交通大学8 3.3.串行通信的传送速率串行通信的传送
6、速率 传送速率传送速率 :用于说明数据传送的快慢。用于说明数据传送的快慢。波特率(波特率(BaudBaud):每秒传送二进制代码位数:每秒传送二进制代码位数 即每秒传送一个数据位就是一波特:即每秒传送一个数据位就是一波特:常用的波特率有:常用的波特率有:7575,110110,300300,600600,12001200,24002400,48004800,96009600,1920019200。1 1波特波特=1bps(=1bps(位位/秒)秒)北京交通大学9设数据传送的速率每秒为设数据传送的速率每秒为120120个字符,个字符,每个字符包含每个字符包含1010个代码位(个代码位(1 1个起
7、始个起始位,位,1 1个停止位,个停止位,8 8个数据位)个数据位)波特率波特率=10 x120b/s=1200bps=10 x120b/s=1200bps每一位代码的传送时间每一位代码的传送时间=1/1200=0.833ms=1/1200=0.833ms北京交通大学10 4.4.串行通信接口电路串行通信接口电路 串行数据通信中主要有两个技术问题串行数据通信中主要有两个技术问题数据传送数据传送:数据传送主要解决传送中的数据传送主要解决传送中的 标准、格式及工作方式等问题标准、格式及工作方式等问题数据转换数据转换:数据转换是指数据的数据转换是指数据的串并转换串并转换北京交通大学11串行接口电路基
8、本组成逻辑框图如下串行接口电路基本组成逻辑框图如下:串行输入串行输入 时钟时钟 复位复位并行输出并行输出并行输入并行输入 时钟时钟 串行输出串行输出控制信号控制信号状态、控状态、控制信息制信息接收器发送器控制部件北京交通大学12通用异步接收发送器(通用异步接收发送器(UARTUART)北京交通大学13异步串行通信常用接口异步串行通信常用接口 TTLTTL电平直接连接电平直接连接RS-232C:RS-232C:传输速度为传输速度为20kbit/s20kbit/s,传输距离,传输距离1515英尺英尺RS-422RS-422、RS-485RS-485:传输速度为传输速度为10Mbit/s10Mbit
9、/s,传输距离,传输距离300m300m1200m1200m并能抑制共模信号干扰并能抑制共模信号干扰20mA20mA电流环:电流环:能降低对噪声敏感程度能降低对噪声敏感程度光纤光纤:光纤介质可减少噪声干扰,光电隔离提高光纤介质可减少噪声干扰,光电隔离提高安全性安全性北京交通大学14二、二、MCS-51MCS-51单片机串行口单片机串行口 MCS-51MCS-51单片机单片机片内有一个片内有一个全双工全双工串行口串行口(P3.0P3.0接收、接收、P3.1P3.1发送)发送)功能:功能:异步串行通信异步串行通信 其中:发送和接收的速率与其中:发送和接收的速率与移位时钟同步,移位时钟同步,移位脉冲
10、的速率为波特率。移位脉冲的速率为波特率。说明:定时器说明:定时器T1T1作为串行通信作为串行通信波特率发生器波特率发生器。北京交通大学15TI发送中断标志发送中断标志RI接收中断,允许接收接收中断,允许接收REN串行口中断串行口中断1.1.串行口寄存器结构串行口寄存器结构发送寄存器发送寄存器(只能写只能写)接收寄存器接收寄存器(只能读只能读)(P3.1)(P3.0)SBUF全双工方式进全双工方式进行通信,这两个寄行通信,这两个寄存器共用一个地址存器共用一个地址(99H)。)。北京交通大学16双缓冲结构,防止双缓冲结构,防止产生重叠错误产生重叠错误MOV SBUF,AMOV A,SBUF北京交通
11、大学17例如:说明:串行接收采用双缓冲结构,以避免在数据接说明:串行接收采用双缓冲结构,以避免在数据接收过程中出现收过程中出现帧重叠帧重叠错误错误,但发送数据时,由于但发送数据时,由于CPUCPU是主动的,不会发生帧重叠错误是主动的,不会发生帧重叠错误,因此发送电路就因此发送电路就不需要双缓冲结构。不需要双缓冲结构。2.2.串行通信控制有关的寄存器串行通信控制有关的寄存器 SCONSCON:串行控制,用来设定串行口的工作方式:串行控制,用来设定串行口的工作方式 PCONPCON:电源控制,可控制波特率。:电源控制,可控制波特率。IEIE:设置串行中断允许。设置串行中断允许。启动发送启动发送 :
12、MOV MOV SBUFSBUF,A A;SBUF SBUF (A A)启动接收启动接收 :MOV AMOV A,SBUFSBUF ;A A (SBUFSBUF)北京交通大学北京交通大学18 (1 1)串行控制寄存器)串行控制寄存器SCONSCON SCON格式如下:SM0 SM1 SM2 REN TB8 RB8 TI RI (98H)9F 9E 9D 9C 9B 9A 99 98 工工作作方方式式选选择择位位多多机机通通信信控控制制位位允允许许接接收收控控制制位位发发送送数数据据第第九九位位接接收收数数据据第第九九位位发发送送中中断断标标志志接接收收中中断断标标志志北京交通大学19各位功能说
13、明如下:各位功能说明如下:SM0 SM1SM0 SM1:串口工作方式选择位:串口工作方式选择位 00 00 方式方式0:0:同步移位寄存器同步移位寄存器 波特率波特率=主振频率主振频率/12/1201 01 方式方式1:81:8位异步,波特率可变位异步,波特率可变10 10 方式方式2 2:9 9位异步位异步 波特率波特率=主振频率主振频率/32/32 或主振频率或主振频率/64/6411 11 方式方式3 3:9 9位异步,波特率可变位异步,波特率可变北京交通大学20 REN=1REN=1:允许串行接收:允许串行接收,用软件置位或清除。用软件置位或清除。TB8TB8:发送数据位:发送数据位8
14、 8即:D0 D7 D8 TB8/RB8D8D80 0:表示数据帧;:表示数据帧;D8D81 1:表示地址帧:表示地址帧在工作方式、在工作方式、3 3中,中,TB8TB8是发送的第位数据,是发送的第位数据,由软件置位(由软件置位(SETB TB8SETB TB8)或复位()或复位(CLR TB8CLR TB8)在双机通信中,该位作为奇偶校验位;在双机通信中,该位作为奇偶校验位;在多机通信中用来表示在多机通信中用来表示D7-D0D7-D0是地址帧或数据帧是地址帧或数据帧北京交通大学21 RB8RB8:接收数据位:接收数据位8 8TITI:发送中断标志:发送中断标志。在工作方式和中,该位是接收到的
15、第位数据。在工作方式和中,该位是接收到的第位数据。方式方式1 1,SM2=0SM2=0,停止位。方式,停止位。方式0 0,不用。,不用。在多机通信中是在多机通信中是地址帧(地址帧(RB8=1RB8=1)和和数据帧数据帧 (RB8=0RB8=0)的标识位。的标识位。在方式中,发送完第在方式中,发送完第8 8位数据后,该位由硬件置位;位数据后,该位由硬件置位;在其它方式中,在发送停止位之前,该位由在其它方式中,在发送停止位之前,该位由硬件置位硬件置位,申请中断,申请中断,CPUCPU响应中断后,可以发送下一帧数据。响应中断后,可以发送下一帧数据。该位必须由该位必须由软件清零软件清零。北京交通大学2
16、2 RIRI:接收中断标志。:接收中断标志。在方式中,接收完第在方式中,接收完第8 8位数据后,该位由硬件置位位数据后,该位由硬件置位在其它方式中,在接收到停止位的一半时,在其它方式中,在接收到停止位的一半时,该位由该位由硬件置位硬件置位(还需考虑(还需考虑SM2SM2的设定),的设定),申请中断,申请中断,CPUCPU响应中断后,可以接收下一帧响应中断后,可以接收下一帧数据。该位也必须由数据。该位也必须由软件清零软件清零。北京交通大学23 SM2SM2:多机通信控制位,主要用于方式:多机通信控制位,主要用于方式2 2、3 3中中。在方式在方式0 0中中,SM2SM2设置为设置为0 0,不用,
17、不用TB8TB8和和RB8RB8 在方式在方式1 1中中:当:当SM2SM20 0,则,则RB8RB8是接收到的停止位;是接收到的停止位;当当SM2SM21 1,则只有接收到有效的停止位时,则只有接收到有效的停止位时,RIRI才被激活。才被激活。在方式在方式2 2、3 3中中,TB8TB8和和RB8RB8为发送和接收的第九位数据,为发送和接收的第九位数据,当当SM2SM20 0时时,则不论则不论RB8RB8为还是为还是1,1,都将前都将前8 8位位数据数据装装入入SBUFSBUF中中,表示接收到命令或数据,并产生中断请求。表示接收到命令或数据,并产生中断请求。当当SM2SM21 1时,只有当接
18、收到的第九位数据时,只有当接收到的第九位数据 RB8=1RB8=1时时,才将接收到的前才将接收到的前8 8位数据送入位数据送入SBUF,SBUF,表示接收到表示接收到地址帧地址帧;当当RB8RB80 0时时,将接收到的前将接收到的前8 8位数据丢弃。位数据丢弃。北京交通大学24说明说明:1.1.用软件可以改变设置用软件可以改变设置SCONSCON内容,并在下一内容,并在下一条指令的第一个周期的条指令的第一个周期的S1P1S1P1期间才锁存到期间才锁存到SCONSCON中。中。2.2.一帧发送完,发送中断标志置位(一帧发送完,发送中断标志置位(TITI),向),向CPUCPU请求中断。请求中断。
19、一帧接收完,接收中断标志置位(一帧接收完,接收中断标志置位(RIRI),向),向CPUCPU请求中断。请求中断。北京交通大学25 它主要是为它主要是为CHMOSCHMOS型单片机的电源控型单片机的电源控制而设置的制而设置的。对对HMOSHMOS型单片机,除了最型单片机,除了最高位(高位(SMODSMOD)之外)之外,其它位都是虚设的其它位都是虚设的,SMODSMOD是串行口波特率的倍增位。是串行口波特率的倍增位。当:当:SMODSMOD1 1时,串行口波特率加倍时,串行口波特率加倍系统复位时,系统复位时,SMODSMOD0 0。可。可由下列指令设置:由下列指令设置:MOV PCONMOV PC
20、ON,#80H#80H ;SMOD SMOD 1 1 MOV PCON MOV PCON,#00H#00H ;SMOD SMOD 0 0(2 2)电源控制寄存器)电源控制寄存器PCONPCON格式格式:SMOD(87H)北京交通大学26 (1)方式0:同步移位寄存器方式 RXDRXD端作为数据移位的入口或出口端作为数据移位的入口或出口 TXDTXD端提供移位时钟脉冲端提供移位时钟脉冲,移位数据的发送移位数据的发送和接收以和接收以8 8位为一帧位为一帧,不设起始位和停止位,低,不设起始位和停止位,低位在前高位在后,位在前高位在后,波特率是固定的波特率是固定的即一个机器周期移位一次。即一个机器周期
21、移位一次。2.串行口的工作方式RXDTXDDATACLKRXDTXDDATACLK并行输出并行输入8051CD40968051CD4014下图下图 串并,并串转换方法电路串并,并串转换方法电路P1.0STBP1.0STBfOSC/12北京交通大学27说明:1.REN=1,1.REN=1,允许接收。允许接收。RXD RXD数据输入,数据输入,TXDTXD移位脉移位脉(fosc/12)(fosc/12)。接收(发送)完接收(发送)完8 8位数据时硬件将位数据时硬件将RIRI(TI)TI)置位,置位,CPUCPU响应中断,响应中断,2.TI2.TI,RIRI必须由用户程序清零。必须由用户程序清零。3
22、.3.方式方式0 0时:时:SM2=0SM2=0,TB8TB8、RB8RB8不用不用 4.4.扩展扩展I/OI/O 串行输入,串行输出,并串、串并转换串行输入,串行输出,并串、串并转换北京交通大学28数据输出MOV SBUF,Afosc=1/12发送完8位数据北京交通大学29REN=“1”,方式0,RI=“0”RXD数据输入端接收到8位数据北京交通大学30 数据发送 1.1.数据发送是由一条写发送寄存器(数据发送是由一条写发送寄存器(MOV SBUFMOV SBUF,A A)指令开始的。指令开始的。2.2.此后在串行口由硬件自动加入起始位和停止位,此后在串行口由硬件自动加入起始位和停止位,构成
23、一个完整的帧格式。构成一个完整的帧格式。3.3.然后在移位脉冲的作用下,由然后在移位脉冲的作用下,由TXDTXD端串行输出。端串行输出。4.4.一个字符帧发送完后,使一个字符帧发送完后,使TXDTXD端输出线维持高电平,端输出线维持高电平,并将并将TITI置位,通知置位,通知CPUCPU可以发送下一个字符。可以发送下一个字符。起始起始 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 停止停止(2)方式1 方式方式1 1的帧格式为:的帧格式为:北京交通大学31 数据接收数据接收 1.1.接收数据时,应使接收数据时,应使RENREN1 1。在此前提下
24、,。在此前提下,串行口采样串行口采样RXDRXD端,当采样到从端,当采样到从1 1到到0 0的跳变的跳变时,就认定是接收到了起始位。时,就认定是接收到了起始位。2.2.随后在移位脉冲的控制下,把接收到的数据随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。位移入接收寄存器中。3.3.直到停止位到来之后把它送入到直到停止位到来之后把它送入到RB8RB8中,并中,并置位置位RIRI,通知,通知CPUCPU从从SBUFSBUF取走接收到的一个字符。取走接收到的一个字符。北京交通大学32发送十位信息启动发送完置1REN=“1”,SM0=0,SM1=1,RI=07,8,9共3次采样数据采样到1变
25、0,启动接收波特率16倍速率条件:1.RI=02.停止位=1,或SM2=0、停止位进入RB8,并RI=1北京交通大学33 波特率的设定波特率的设定 方式方式1 1的波特率可变的波特率可变,由下式决定:由下式决定:实际使用时实际使用时,总是先确定波特率总是先确定波特率,再计算再计算T1T1的计数的计数初值。即:初值。即:smodsmod为为PCONPCON寄存器最高位的值寄存器最高位的值,f,fOSCOSC为晶振频率为晶振频率,X X为当为当T1T1工作于方式工作于方式2 2(8 8位自动加载)时的计数初值。位自动加载)时的计数初值。其中:其中:北京交通大学34(3)(3)方式方式2 2和方式和
26、方式3 3 串行口工作在方式串行口工作在方式2 2、3 3时,为时,为9 9位异步位异步通信口,发送和接收帧信息由通信口,发送和接收帧信息由1111位组成,位组成,即即:D0 D2 .D7 D8 一帧1 1位起始位位起始位(0)(0)、位数据位位数据位(D0-D7)(D0-D7)、1 1位可编程位位可编程位(D8)(D8)和和1 1位停止位位停止位(1)(1)。D8D8位既可作为奇偶校验位位既可作为奇偶校验位,也可作为控制位使用也可作为控制位使用,功能由用户确定功能由用户确定发送时发送时,可编程位可编程位D8D8(TB8)(TB8)可设置为可设置为0 0(CLR TB8CLR TB8)或)或1
27、 1(SETB TB8SETB TB8)接收时接收时,TB8TB8送入送入SCONSCON寄存器中寄存器中RB8RB8位。位。北京交通大学35方式方式2 2、3 3的区别是:的区别是:波特率设置不同波特率设置不同方式方式2 2的波特率是固定的。即:的波特率是固定的。即:波特率波特率=fosc/32=fosc/32或或fosc/64fosc/64方式方式3 3的波特率是可变的。即:的波特率是可变的。即:北京交通大学36波特率 fosc smod1200 11.0592 0 2 E8H2400 11.0592 0 2 F4H4800 11.0592 0 2 FAH9600 11.0592 0 2
28、FDH19200 11.0592 1 2 FDH 定时器1 方式 时间常数表表1 1 波特率与时间常数波特率与时间常数北京交通大学37MCS-51MCS-51串行通信波特率串行通信波特率:方式方式0 0波特率波特率=f fOSCOSC/12/12,f fOSC OSC 为主机频率为主机频率方式方式2 2 SMOD=1,SMOD=1,波特率波特率=f fOSCOSC/32;/32;SMOD=0,SMOD=0,波特率波特率=f fOSCOSC/64;/64;方式方式1,31,3T1溢出率溢出率=北京交通大学38方式方式2 2发送程序:发送程序:以以TB8TB8为偶校验位,处理方法是数据写入为偶校验
29、位,处理方法是数据写入SBUFSBUF之前,先将之前,先将P P写入写入TB8TB8 CLR TI ;CLR TI ;发送中断标志发送中断标志TITI清零清零 MOV AMOV A,R0;R0;取数据取数据 MOV CMOV C,P ;P ;奇偶校验位送奇偶校验位送TB8TB8 MOV TB8 MOV TB8,C C MOV SBUF MOV SBUF,A;A;数据写入,启动发送数据写入,启动发送北京交通大学39 接收程序接收程序若附加第九位数据为偶校验位,接收程序中应作校验处若附加第九位数据为偶校验位,接收程序中应作校验处理理 CLR RI ;CLR RI ;收到一帧数据后清收到一帧数据后清
30、RIRI MOV A MOV A,SBUF ;SBUF ;前八位数据送前八位数据送A A MOV C MOV C,P ;P ;正确正确P=0P=0,RB=0RB=0。P=1P=1,RB=1RB=1 JNC PD0 JNC PD0 ;P=0P=0,判,判RB8=0RB8=0否否 JNB RB8JNB RB8,ERROR ERROR ;P=1P=1,RB8=0RB8=0出错出错 AJMP POK AJMP POK PD0PD0:JB RB8JB RB8,ERRO ERRO ;P=0P=0,RB8=1RB8=1出错出错POKPOK:MOVROMOVRO,A AERROR:ERROR:北京交通大学40
31、利用串行口工作方式利用串行口工作方式0 0扩展扩展I/OI/O口口 MOV R1,#60H SETB P1.0 CLR P1.0 ;下降沿并入下降沿并入 SETB P1.0 ;移位;移位 MOV SCON,#10H;方式;方式0,启动接收,启动接收 MOV R0,#02H ;每组字节数;每组字节数2WAIT:JNB RI,WAIT CLR RI MOV A,SBUF MOV R1,A INC R1 DJNZ R0,WAIT北京交通大学41利用串行口工作方式利用串行口工作方式0 0扩展扩展I/OI/O口口 MOV R6,#02H MOV R0,#30H MOV SCON,#00H;方式方式0 S
32、END:MOV A,R0 MOV SBUF,A;启动发送;启动发送 WAIT:JNB TI,WAIT CLR TI;清发送中断标志;清发送中断标志 INC R0 DJNZ R6,WAIT北京交通大学42 三、串行口应用举例三、串行口应用举例例例 6-1 6-1 双机通信双机通信 设设:甲机发送乙机甲机发送乙机接收,串行口工作在接收,串行口工作在方式方式1 1,波特率为,波特率为 1200 1200 fosc=11.0592MHzfosc=11.0592MHz 硬件连接如图硬件连接如图 计算时间常数计算时间常数 TXD RXD GNDRXDTXD GND T1T1作为波特率发生器,工作于方式作为
33、波特率发生器,工作于方式2 2。由表。由表1 1查得时间常数为查得时间常数为E8HE8H。图图 双机通信双机通信乙乙甲甲北京交通大学43 甲机发送程序甲机发送程序 甲机将内部甲机将内部RAMRAM单元单元20H-3FH20H-3FH的的3232个字节的个字节的ASCIIASCII码数据,在最高位上加码数据,在最高位上加奇校验位奇校验位后,由串行后,由串行口口TXDTXD发送给乙机。即可采用发送给乙机。即可采用8 8位异步通信。位异步通信。START:MOV TMOD,#20H ;T1START:MOV TMOD,#20H ;T1为方式为方式2 2 MOV TL1,#0E8H ;MOV TL1,
34、#0E8H ;时间常数低时间常数低8 8位位 MOV TH1,#0E8H ;MOV TH1,#0E8H ;SETB TR1 ;SETB TR1 ;启动启动T1T1工作工作 MOV SCON,#01000000B;MOV SCON,#01000000B;串行口方式串行口方式1 1 MOV R0,#20H ;MOV R0,#20H ;数据首地址数据首地址 MOV R7,#32 ;32MOV R7,#32 ;32字节数据字节数据北京交通大学44LOOP:MOV A,R0 ;LOOP:MOV A,R0 ;取数据,影响取数据,影响P P标志位标志位 MOV C,P MOV C,P ;置奇校验位置奇校验位
35、 CPL CCPL C MOV ACC.7,C MOV ACC.7,C MOV SBUF,A MOV SBUF,A ;启动发送启动发送DONE:JNB DONE:JNB TI,TI,DONE ;DONE ;等待发完一帧等待发完一帧 CLR TI ;CLR TI ;清清TI,TI,允许再发送允许再发送 INC R0 ;INC R0 ;指向下一数据指向下一数据 DJNZ R7,LOOP ;DJNZ R7,LOOP ;未送完未送完,送下一个数送下一个数 AJMP LOOP ;AJMP LOOP ;循环发送循环发送北京交通大学45 乙机接收程序乙机接收程序 与甲机发送相呼应与甲机发送相呼应,接收器把接
36、收到的接收器把接收到的3232个字节数据存放个字节数据存放在内部在内部RAMRAM的的20H-3FH20H-3FH中中,波特率与晶振频率同上。若奇校验波特率与晶振频率同上。若奇校验出错出错,则置进位为则置进位为1 1。程序如下:。程序如下:START:MOV TMOD,#20H ;T1START:MOV TMOD,#20H ;T1方式方式2 2 MOV TL,#OE8HMOV TL,#OE8H MOV TH,#OE8H MOV TH,#OE8H SETB TR1 SETB TR1 MOV R0,#20H MOV R0,#20H MOV R7,#32 MOV R7,#32LOOP:MOV SCO
37、N,#01010000B;LOOP:MOV SCON,#01010000B;串行口方式串行口方式1,1,能接收能接收北京交通大学46DONE:JNB RI,DONE ;DONE:JNB RI,DONE ;等待接收一帧等待接收一帧 CLR RI ;CLR RI ;清清RI,RI,再接收再接收 MOV A,SBUFMOV A,SBUF ;取数据取数据 JNB P,ERROR ;JNB P,ERROR ;校验错校验错,转出错处理转出错处理ANL A,#7FH ;ANL A,#7FH ;去掉奇校验位去掉奇校验位 MOV R0,A ;MOV R0,A ;奇校验奇校验,存数据存数据 INC R0 ;INC R0 ;指向下一数据指向下一数据 DJNZ R7,LOOP;DJNZ R7,LOOP;数据块数据块,未接收完未接收完,循环循环 AJMP LOOP ;AJMP LOOP ;循环接收循环接收ERROR:ERROR:;出错处理出错处理北京交通大学47作业P144:2,3,7
限制150内