《MCS-51单片机串行接口.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机串行接口.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2.1 MCS-51单片机的串行接口2.7 串行接口串行接口教学目的:教学目的:1 1、了了解解单单片片机机串串行行通通信信的的基基本本概概念念与与串串行行 通讯程序的编制通讯程序的编制 2 2、掌握单片机的串行通信工作及方式字的设定、掌握单片机的串行通信工作及方式字的设定 3 3、掌握、掌握5151单片机串行口的四种工作方式和对应的波特单片机串行口的四种工作方式和对应的波特率的设定方法率的设定方法 重重点点:单单片片机机串串行行口口的的四四种种工工作作方方式式和和对对应应的的波波特特率率的的设定方法设定方法 难点:串口的工作及方式字的设定难点:串口的工作及方式字的设定2.1 MCS-51单片
2、机的串行接口 实实际际应应用用中中,计计算算机机的的CPU与与其其外外部部设设备备之之间间常常常常要要进进行行信信息息的的交交换换,计计算算机机之之间间也也需需要要交交换信息,所有这些信息的交换均称为换信息,所有这些信息的交换均称为“通信通信”。2.1 MCS-51单片机的串行接口1 1、通信的基本方式、通信的基本方式并行通信并行通信 并行通信:并行通信:是指数据的各位同时进行传送的方式是指数据的各位同时进行传送的方式 特点:特点:传输速度快,但当距离较远,位数又多时导致了传输速度快,但当距离较远,位数又多时导致了通讯线路复杂且成本高,如图所示。通讯线路复杂且成本高,如图所示。2.7.1 2.
3、7.1 串行通信的基本概念串行通信的基本概念计计算算机机计计算算机机(或外设)(或外设)01001001D0D1D2D3D4D5D6D7控制(选通)控制(选通)状态状态T 2.1 MCS-51单片机的串行接口串行通信串行通信串行通信:串行通信:是指数据一位一位地顺序传送是指数据一位一位地顺序传送特点:特点:通讯线路简单,只要一对传输线就可以实现通讯线路简单,只要一对传输线就可以实现通讯,并可以利用电话线,从而大大地降低了成本,通讯,并可以利用电话线,从而大大地降低了成本,特别适用于远距离通讯,但传送速度慢,如图所示。特别适用于远距离通讯,但传送速度慢,如图所示。计计算算机机计计算算机机(或外设
4、)(或外设)8T 2.1 MCS-51单片机的串行接口2 2、串行通信中数据的传送方向、串行通信中数据的传送方向 单工通信方式单工通信方式 半双工通信方式半双工通信方式 全双工通讯方式全双工通讯方式 A端端为为发发送送站站,B端端为为接接收收站站,数数据仅能从据仅能从A站发至站发至B站站 数数据据可可以以从从A发发送送到到B,也也可可以以由由B发发送送到到A。不不过过同同一一时时间间只只能能作作一一个个方方向向的的传传送送,其传送方式由收发控制开关其传送方式由收发控制开关K来控制。来控制。每每个个站站(A、B)既既可可同同时时发发送送,又可同时接收。又可同时接收。(a)单工通信方式单工通信方式
5、AB(c)全双工通信方式全双工通信方式AB(b)半双工通信方式半双工通信方式ABKK2.1 MCS-51单片机的串行接口3 3、串行通讯的两种基本方式、串行通讯的两种基本方式 异步通信异步通信0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0011停停止止位位起起始始位位停停止止位位奇奇偶偶校校验验8位数据位数据起起始始位位数据数据第第n字符字符第第n+1字符字符0 1 1 1 11 00/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 停停止止位位起起始始位位8位数据位数据奇奇偶偶校校验验空闲位空闲位起起始始位位第第
6、n字符字符0/1第第n+1字符字符2.1 MCS-51单片机的串行接口同步传送同步传送同步字符同步字符 1同步字符同步字符数据数据数据数据数据数据数据数据数据数据数据数据同步字符同步字符 2 22.1 MCS-51单片机的串行接口在异步数据传送中,在异步数据传送中,CPUCPU与外设之间事先必须与外设之间事先必须约定两项事宜:约定两项事宜:字符格式。双方要约好字符的编码形式,奇字符格式。双方要约好字符的编码形式,奇偶校验形式、偶校验形式、以及起始位和停止位的规定。以及起始位和停止位的规定。波特率(波特率(Baud rateBaud rate)。波特率是衡量位传送)。波特率是衡量位传送速率的指标
7、,它要求发送站和接收站都要以相速率的指标,它要求发送站和接收站都要以相同的数据传送速率工作。同的数据传送速率工作。2.1 MCS-51单片机的串行接口4 4、波特率、波特率 l例例:假假设设传传送送速速率率是是120字字符符/秒秒,假假如如每每一一个个字字符符为为10位,则其传送的波特率为:位,则其传送的波特率为:10位位/字符字符120字符字符/秒秒=1200位位/秒秒=1200波特波特l定义:每秒钟传送二进制代码的位数。定义:每秒钟传送二进制代码的位数。l单位:波特,单位:波特,b/s(bps)。l注意:波特率和有效数据传送率并不一致。注意:波特率和有效数据传送率并不一致。如如上上述述字字
8、符符帧帧的的10位位中中真真正正有有效效的的数数据据位位只只有有8位位;所所以以,有有效效数数据据位位的的传传送送速速率率为为:8120=960位位/秒秒。2.1 MCS-51单片机的串行接口串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐位顺序进行传送进行传送串行通信的格式及约定(如:同步方式、通讯速率、串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平数据块格式、信号电平等)不同,形成了多种串等)不同,形成了多种串行通信的协议与接口标准。行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器(UART)(UART)5151系列单片机的串口形式系列
9、单片机的串口形式通用串行总线(通用串行总线(USBUSB)I I2 2C C总线总线CANCAN总线总线SPISPI总线总线RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等等等2.7.2 2.7.2 串行口的结构串行口的结构 2.1 MCS-51单片机的串行接口1 1、串行口结构、串行口结构 SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI 接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器RxDTxD引脚引脚引脚引脚CPU内内部部申请中断申请中断2.1 MCS-51单片机的串行接口移位时钟
10、移位时钟T1溢出率溢出率TXD(P3.1)SMOD=012TH1 TL116216发送发送SBUF(99H)接收接收SBUF(99H)输入移位寄存器输入移位寄存器装载装载SBUF写写SBUF读读SBUFRXD(P3.0)RI内部内部BUST1foscSMOD=12.1 MCS-51单片机的串行接口两个同名的接收两个同名的接收/发送缓冲寄存器发送缓冲寄存器SBUFSBUF 指令指令 MOV SBUFMOV SBUF,A A 启动一次数据发送启动一次数据发送,可向可向SBUFSBUF 再发送下一个数再发送下一个数 指令指令 MOV AMOV A,SBUFSBUF 完成一次数据接收完成一次数据接收,
11、SBUF,SBUF可再可再 接收下一个数接收下一个数接收接收/发送数据发送数据,无论是否采用中断方式工作无论是否采用中断方式工作,每每接收接收/发送一个数据都必须用指令对发送一个数据都必须用指令对 RI/TI RI/TI 清清0 0,以备下一次收/发。串行口相关的串行口相关的SFR(SCON,PCON)SFR(SCON,PCON)2.1 MCS-51单片机的串行接口 SM0 SM0,SM1SM1:串行口:串行口4 4种工作方式的选择位。种工作方式的选择位。0 00 0 方式方式0 0:8 8位同步移位寄存器位同步移位寄存器,波特率固定为波特率固定为 f foscosc/12/12 0 10 1
12、 方式方式1 1:1010位位UARTUART(1+8+11+8+1位),位),波特率可变波特率可变,按公式计算按公式计算 1 01 0 方式方式2 2:1111位位UARTUART(1+8+1+11+8+1+1位),位),波特率固定波特率固定=f=fosc osc x x(1/321/32)或()或(1/641/64)1 11 1 方式方式3 3:1111位位UARTUART(1+8+1+11+8+1+1位),位),波特率可变,按公式计算波特率可变,按公式计算2 2、串行口控制寄存器、串行口控制寄存器SCONSCON(98H98H)SM0SM1SM2TB8RB8RIRENSCON.7SCON
13、.0SCON.6TI2.1 MCS-51单片机的串行接口 SM2 SM2:串行口多机通信控制位,串行口多机通信控制位,若若SM2=1,SM2=1,则允许多机通信则允许多机通信。若第。若第9 9位数据为位数据为1 1,说,说明本帧数据为地址;若第明本帧数据为地址;若第9 9位为位为0 0,则本帧为数据帧。,则本帧为数据帧。SM2=0,SM2=0,即不属于多机通信即不属于多机通信,则接收一帧数据后,则接收一帧数据后,不管第不管第9 9位数值是位数值是0 0还是还是1 1,都置,都置RI=1RI=1,接收到的数据,接收到的数据装入装入SBUFSBUF中。中。(作为方式(作为方式2 2、方式、方式3
14、3的附加控制位)的附加控制位)2 2、串行口控制寄存器、串行口控制寄存器SCONSCON(98H98H)SM0SM1SM2TB8RB8RIRENSCON.7SCON.0TISCON.5SM22.1 MCS-51单片机的串行接口 REN REN:串行口接收允许控制位;:串行口接收允许控制位;REN=1 REN=1 表示允许表示允许接收接收;REN=0 REN=0 禁止接收禁止接收。由软件置由软件置“1 1”或清或清“0 0”2 2、串行口控制寄存器、串行口控制寄存器SCONSCON(98H98H)SM0SM1SM2TB8RB8RIRENSCON.7SCON.0TISCON.3SM2SCON.4S
15、CON.2 TB8 TB8:方式:方式2 2、3 3中,是要发送的第中,是要发送的第9 9位数据。位数据。多机通多机通信中信中,TB8=0,TB8=0 表示发送的是数据表示发送的是数据;TB8=1 TB8=1 表示发送的是表示发送的是地址。(奇偶校验)根据需要由软件置位或复位地址。(奇偶校验)根据需要由软件置位或复位 RB8 RB8:在方式:在方式2 2、3 3中,是收到的第中,是收到的第9 9位数据。位数据。在多机在多机通信中通信中,用作区别地址帧用作区别地址帧/数据帧的标志。(奇偶校验)数据帧的标志。(奇偶校验)2.1 MCS-51单片机的串行接口 TI TI:发送中断标志:发送中断标志。
16、在一帧数据发送完时被置位,串。在一帧数据发送完时被置位,串行口收行口收/发数据申请中断标志位,在方式发数据申请中断标志位,在方式0 0串行发送到第串行发送到第八位结束时,或其他方式串行发送到停止位的开始时由八位结束时,或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询,必须由软件清硬件置位,可用软件查询,必须由软件清“0 0”。TITI1 1 申请中断;申请中断;TITI0 0 不申请中断不申请中断2 2、串行口控制寄存器、串行口控制寄存器SCONSCON(98H98H)SM0SM1SM2TB8RB8RIRENSCON.7SCON.0TISM2SCON.1 RI RI:接收中断标志。:
17、接收中断标志。在接收到一帧有效数据后由硬在接收到一帧有效数据后由硬件置位,在方式件置位,在方式0 0中第八位数据发送结束时,由硬件置中第八位数据发送结束时,由硬件置位;在其他方式中,则在接收到停止位中间时由硬件置位;在其他方式中,则在接收到停止位中间时由硬件置位,可用软件查询,必须由软件清位,可用软件查询,必须由软件清“0 0”。RIRI1 1 申请中断;申请中断;RIRI0 0 不申请中断不申请中断2.1 MCS-51单片机的串行接口 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,是中,是波特率倍增波特率倍增位位 SMOD=1SMOD=1 时,波特率加倍时,
18、波特率加倍 SMOD=0SMOD=0 时,波特率不加倍。时,波特率不加倍。(在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关)2 2、电源控制寄存器、电源控制寄存器PCONPCON(87H87H)SMODPCON.7PCON.02.1 MCS-51单片机的串行接口2.7.32.7.3串行口工作方式串行口工作方式工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式(SM0 SM1=00)(SM0 SM1=00)发送:发送:SBUFSBUF中的串行数据由中的串行数据由RxDRxD逐位移出,低位在前,逐位移出,低位在前,高位在后;高位在后;TxDTxD输出移
19、位时钟,频率输出移位时钟,频率=fosc1/12=fosc1/12;每送出每送出8 8位数据位数据 TITI就自动置就自动置1 1;需要用软件清零需要用软件清零 TITI。接收:接收:串行数据由串行数据由RxDRxD逐位移入逐位移入SBUFSBUF中;中;TxDTxD输出移位时钟,频率输出移位时钟,频率=fosc1/12=fosc1/12;每接收每接收 8 8位数据位数据RIRI就自动置就自动置1 1;需要用软件清零需要用软件清零 RIRI。2.1 MCS-51单片机的串行接口经常配合经常配合“串入并出串入并出”“”“并入串出并入串出”移位移位 寄存器一起使用扩展接口寄存器一起使用扩展接口 方
20、式方式0 0工作时,多用查询方式编程:工作时,多用查询方式编程:发送:发送:MOV SBUFMOV SBUF,A A 接收:接收:JNB RIJNB RI,$JNB TI JNB TI,$CLR RICLR RI CLR TI CLR TI MOV A,SBUFMOV A,SBUF工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式(续续)复位时复位时,SCON SCON 已经被清零已经被清零,缺省值缺省值:方式方式0 0。接收前接收前,务必先置位务必先置位 REN=1REN=1 允许接收数据。允许接收数据。2.1 MCS-51单片机的串行接口数据输数据输出出:数据输数据
21、输入入:2.1 MCS-51单片机的串行接口 74LS164是是串入并出串入并出芯片;芯片;74LS165是是并入串出并入串出芯片芯片A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V74LS16474LS16474LS16474LS16474LS16474LS164h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V共阳共阳LED LED 数码管数码管VCCTxDRxD8051串行口方式串行口方式
22、0 0的扩展应用的扩展应用CLR用于清用于清0 2.1 MCS-51单片机的串行接口例例1:用用并并行行输输入入8位位移移位位寄寄存存器器74HC165扩扩展展16位位并并行行输入口。(编程实现从输入口。(编程实现从16位扩展口读入位扩展口读入20个字节数据)个字节数据)S/L负负脉冲将并行数据装入,脉冲将并行数据装入,高高电电平平时时启启动单动单片机片机进进行数据行数据输输入。入。2.1 MCS-51单片机的串行接口 MOV R7,#20 MOV R0,#50H SETB F0RCV0:CLR P1.0 SETB P1.0RCV1:MOV SCON,#10 JNB RI,$CLR RI MO
23、V A,SBUF MOV R0,A INC R0 CPL F0 JB F0,RCV2 DEC R7 SJMP RCV1RCV2:DJNZ R7,RCV0 2.1 MCS-51单片机的串行接口常用于串行通讯。除发常用于串行通讯。除发/收收8 8位数据外,还位数据外,还 在在D0D0位前有一个位前有一个起始位起始位“0 0”;在在D7D7位后有一个位后有一个停止位停止位“1 1”。方式方式1 1工作时:工作时:发送端发送端自动添加自动添加一个起始位和一个停止位;一个起始位和一个停止位;接收端接收端自动去掉自动去掉一个起始位和一个停止位。接收一个起始位和一个停止位。接收时,停止位进入时,停止位进入S
24、CONSCON的的RB8RB8工作方式工作方式1 1:10:10位位UART(1+8+1UART(1+8+1位位)波特率可变波特率可变(SM0(SM0 SM1=01)SM1=01)波特率可变波特率可变 用定时器用定时器T1T1作波特率发生器:作波特率发生器:公式:公式:波特率波特率 =(2 2SMODSMOD/32/32)T1T1的溢出率的溢出率TXDTXD与与RXDRXD分别用于发送与接收数据分别用于发送与接收数据2.1 MCS-51单片机的串行接口波特率波特率=(2=(2SMODSMOD/32)/32)T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:
25、T1T1溢出一次所需时间的倒数。溢出一次所需时间的倒数。初值初值 X=2 2n n-2 2SMOD SMOD fosc fosc32 32 波特率波特率 1212 波特率波特率 =2 2SMOD SMOD fosc fosc32 32 12(2 12(2n n-X)-X)其中:其中:X X 是定时器初值是定时器初值2.1 MCS-51单片机的串行接口 初值初值 X=2 2n n-2 2SMOD SMOD fosc fosc32 32 波特率波特率 1212 例:例:计算波特率:计算波特率:要求用要求用T1T1工作于工作于方式方式2 2来产生波特率来产生波特率12001200,已知晶振频率已知晶
26、振频率=6MHz=6MHz。要求出。要求出T1T1的初值:的初值:初值初值 X=2 28 8-2 20 0 6 6 10106 632 32 12001200 1212=256-=256-13.026 6 10106 6460800460800 243=0F3H 结果后面要用到结果后面要用到2.1 MCS-51单片机的串行接口串行串行发送发送:(写:(写SBUF启动发送过程)启动发送过程)串行串行接收接收:(置置REN=1启动接收过程启动接收过程)2.1 MCS-51单片机的串行接口 T1T1作波特率发生器时作波特率发生器时初始化包括初始化包括:选选定时器工作方式定时器工作方式2 2(TMOD
27、(TMOD选选8 8位自动重装位自动重装););将计算将计算(或查表或查表)出的初值出的初值X X赋给赋给TH1,TL1;TH1,TL1;启动启动T1(SETB TR1);T1(SETB TR1);对对T1T1不要开中断不要开中断 !工作方式工作方式1 1的接收的接收/发送发送串行口的初始化包括串行口的初始化包括:对对SCONSCON选工作方式选工作方式 对对PCONPCON设波特率加倍位设波特率加倍位“SMODSMOD”(缺省值缺省值=0)=0)如果是接收数据如果是接收数据,仍要先置仍要先置“1 1”RENREN位位 2.1 MCS-51单片机的串行接口例:例:要求要求T1工作于方式工作于方
28、式2,使串行口工作在方式,使串行口工作在方式1时产生波特率时产生波特率1200bps,已知,已知fosc=6MHz。初值初值 X=28-20 6 10632 1200 12=256-=256-13.02 243=0F3H 6 106460800 SM0 SM1 SM2 REN TB8 RB8 TI R1SCON 0 1 0 1 0 0 0 02.1 MCS-51单片机的串行接口MAINMAIN:ORG 0023HORG 0023H MOV TMOD MOV TMOD,#20H SBR1:JNB RI,SEND#20H SBR1:JNB RI,SEND MOV TL1 MOV TL1,#0F3H
29、 LCALL SIN#0F3H LCALL SIN MOV TH1 MOV TH1,#0F3H SJMP NEXT#0F3H SJMP NEXT SETB TR1 SEND:LCALL SOUT SETB TR1 SEND:LCALL SOUT MOV SCON,#50H NEXT:RETI MOV SCON,#50H NEXT:RETI SETB EA SIN:SETB EA SIN:SETB ES RET SETB ES RET LCALL SOUT SOUT:LCALL SOUT SOUT:SJMP$RET SJMP$RET2.1 MCS-51单片机的串行接口发送子程序发送子程序 接收子
30、程序接收子程序SOUTSOUT:SIN:SIN:MOV A MOV A,R0 MOV A,SBUFR0 MOV A,SBUF INC R0 MOV R1,A INC R0 MOV R1,A MOV SBUF,A INC R1 MOV SBUF,A INC R1 CLR TI CLR RI CLR TI CLR RI RET RET RET RET例例 (续续)2.1 MCS-51单片机的串行接口由于波特率固定由于波特率固定,常用于单片机间通讯。常用于单片机间通讯。数据由数据由8+18+1位组成,通常附加的一位位组成,通常附加的一位 (TB8/RB8)(TB8/RB8)用于用于“奇偶校验奇偶校验
31、”。工作方式工作方式2 2:11:11位位UART(1+8+1+1UART(1+8+1+1位位)两种波特率两种波特率 方式方式2 2的的波特率波特率 =fosc=fosc 2 2SMODSMOD/64/64 即即:f:fosc osc 1/32 1/32 或或 f fosc osc 1/64 1/64 两种两种2.1 MCS-51单片机的串行接口奇偶校验是检验串行通信双方传输的数据正确奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一与否的一个措施,并不能保证通信数据的传输一定正确。定正确。换言之:换言之:如果如果奇偶校验发生错误,表明数据传奇偶校验发生错误,表
32、明数据传输一定出错了;如果奇偶校验没有出错,绝不等输一定出错了;如果奇偶校验没有出错,绝不等于数据传输完全正确。于数据传输完全正确。奇校验奇校验:8 8位有效数据连同位有效数据连同1 1位附加位中,位附加位中,二进制二进制“1 1”的个数为的个数为奇数奇数 偶校验偶校验:8 8位有效数据连同位有效数据连同1 1位附加位中,位附加位中,二进制二进制“1 1”的个数为的个数为偶数偶数2.1 MCS-51单片机的串行接口约定接收采用约定接收采用奇校验奇校验 若接收到的若接收到的9 9位数据中位数据中“1 1”的个数为的个数为奇数奇数,则表明则表明接收正确接收正确,取出,取出8 8位有效数据即可;位有
33、效数据即可;若接收到的若接收到的9 9位数据中位数据中“1 1”的个数为的个数为偶数偶数,则表明则表明接收出错接收出错!应当进行出错处理。!应当进行出错处理。约定发送采用约定发送采用奇校验奇校验 若发送的若发送的8 8位有效数据中位有效数据中“1 1”的个数为的个数为偶数偶数,则要人为添加一个附加位则要人为添加一个附加位“1 1”一起发送;一起发送;若发送的若发送的8 8位有效数据中位有效数据中“1 1”的个数为的个数为奇数奇数,则要人为添加一个附加位则要人为添加一个附加位“0 0”一起发送。一起发送。采用采用偶校验时,处理方法与奇校验相反偶校验时,处理方法与奇校验相反 2.1 MCS-51单
34、片机的串行接口回顾:回顾:程序状态字寄存器程序状态字寄存器PSWPSW中有一个奇偶状态位中有一个奇偶状态位 P PCYACF0RS0OVPRS1PSW.7PSW.0 P(PSW.0):P(PSW.0):奇偶状态位。奇偶状态位。P=1P=1 表示目前累加器中表示目前累加器中 “1 1”的个数为的个数为奇数奇数 P=0P=0 表示目前累加器中表示目前累加器中 “1 1”的个数为的个数为偶数偶数CPUCPU随时监视着随时监视着AccAcc的的“1 1”的个数并自动反映在的个数并自动反映在 P P工作方式工作方式2 2 的奇偶校验用法的奇偶校验用法2.1 MCS-51单片机的串行接口 选用偶校验方式选
35、用偶校验方式发送发送 PIPL:PUSH PSW ;PIPL:PUSH PSW ;保护现场保护现场 PUSH ACC PUSH ACC CLR TI ;CLR TI ;清发送中断标志以备下次发送清发送中断标志以备下次发送 MOV AMOV A,R0 ;R0 ;取由取由R0R0所指向的单元中的数据所指向的单元中的数据 MOV C,P ;MOV C,P ;将奇偶标志位通过将奇偶标志位通过C C放进放进TB8TB8 MOV TB8,C ;MOV TB8,C ;一起发送出去一起发送出去 MOV SBUF,A ;MOV SBUF,A ;启动发送启动发送 INC R0 ;INC R0 ;指针指向下一个数据
36、单元指针指向下一个数据单元 POP ACC ;POP ACC ;恢复现场恢复现场 POP PSWPOP PSW RETI ;RETI ;中断返回中断返回串口方式串口方式2 2 的奇偶校验用法:的奇偶校验用法:2.1 MCS-51单片机的串行接口 选用选用偶校验偶校验方式方式发送发送 如果如果 A A 中中1 1的个数是奇数(的个数是奇数(P=1P=1),),将将TB8TB8写成写成“1 1”一起发出去;一起发出去;反之:若(反之:若(P=0P=0)则写)则写TB8=TB8=“0 0”发出去。发出去。选用选用偶校验偶校验方式方式接收接收 若收到的数中若收到的数中P=0P=0,且检查到且检查到RB
37、8=0RB8=0就可能对了就可能对了 若收到的数中若收到的数中P=1P=1,且检查到且检查到RB8=1RB8=1就可能对了就可能对了 若若P=0P=0且且RB8=1RB8=1或或P=1P=1且且RB8=0RB8=0就一定出错了!就一定出错了!串口方式串口方式2 2 的奇偶校验用法:的奇偶校验用法:SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCON串行口控制寄存器串行口控制寄存器SCONSCONTB8 RB82.1 MCS-51单片机的串行接口 选用偶校验方式接收:选用偶校验方式接收:PIPL:PUSH PSW ;PIPL:PUSH PSW ;保护现场保护现场 PUSH
38、ACC PUSH ACC CLR RI ;CLR RI ;清接收中断标志以备下次接收清接收中断标志以备下次接收 MOV AMOV A,SBUF;SBUF;读进收到的数据读进收到的数据 MOV C,P ;MOV C,P ;奇偶标志位奇偶标志位C =JNB PC =JNB P,L1L1 JNC L1 ;C=0 JNC L1 ;C=0时转到时转到L1 P=0L1 P=0时转到时转到L1L1 JNB RB8,ERR;P=1 JNB RB8,ERR;P=1时转到时转到L2L2,若,若RB8=0RB8=0“出错出错”SJMP L2 ;RB8=0 SJMP L2 ;RB8=0 则表明接收正确,转则表明接收正
39、确,转L2L2 L1:JB RB8,ERR;P=0 L1:JB RB8,ERR;P=0且且RB8=1RB8=1表明表明“出错出错”L2:MOV R0,A;P=0L2:MOV R0,A;P=0且且RB8=0RB8=0表明接收正确表明接收正确 INC R0 ;INC R0 ;指针指向下一个数据单元指针指向下一个数据单元 POP ACC ;POP ACC ;恢复现场恢复现场 POP PSWPOP PSW RETI ;RETI ;中断返回中断返回 ERRERR:出错处理出错处理 RETI RETI2.1 MCS-51单片机的串行接口工作方式工作方式3 3:当当SM0,SM1SM0,SM1为为1111时
40、时,串行口工作于方式串行口工作于方式3 3 11 11位位UART(1+8+1+1UART(1+8+1+1位位)波特率可变波特率可变 串口方式串口方式3 3和方式和方式2 2唯一的区别是波特率机制不同唯一的区别是波特率机制不同。方式方式2 2的波特率固定为时钟周期的的波特率固定为时钟周期的3232或或6464分频,分频,不可变。此工作方式与其他串行通讯设备连接困不可变。此工作方式与其他串行通讯设备连接困难,因此不常用。难,因此不常用。方式方式3 3的的波特率可变,按前面的公式计算:波特率可变,按前面的公式计算:波特率波特率=(2=(2SMODSMOD/32)/32)T1T1的溢出率的溢出率 波
41、特率波特率 =2 2SMOD SMOD fosc fosc32 32 12(2 12(2n n-X)-X)其中:其中:X X 是定时器初值是定时器初值2.1 MCS-51单片机的串行接口波特率的设计小结波特率的设计小结 根据串行口的四种工作方式可知:根据串行口的四种工作方式可知:方方式式0为为移移位位寄寄存存器器方方式式,波波特特率率是是固固定定的的。其其波波特特率为率为fosc/12。方方式式2为为10位位UART,波波特特率率为为2SMOD/64fosc。波波特特率率仅仅与与PCON中中SMOD的的值值有有关关,当当SMOD=0时时,波波特率为特率为fosc/64,当,当SMOD=1时,波
42、特率为时,波特率为fosc/32。2.1 MCS-51单片机的串行接口波特率的设计小结波特率的设计小结 方方式式1和和方方式式3的的波波特特率率是是可可变变的的,由由定定时时器器T1的的溢溢出出速速率率控控制制。方方式式1和和方方式式3波波特特率率=2SMOD/32(T1溢溢出出率率),其其中中当当SMOD=0时时,波波特特率率为为1/32(T1溢溢出出率),当率),当SMOD=1时,波特率为时,波特率为1/16(T1溢出率)。溢出率)。定定时时器器T1的的溢溢出出率率定定义义为为单单位位时时间间内内定定时时器器T1溢溢出出的的次次数数。即即每每秒秒钟钟时时间间内内定定时时器器T1溢溢出出多多
43、少少次次。在在串串行行通通讯讯时时,定定时时器器T1T1作作波波特特率率发发生生器器,经经常常采采用用8 8位位自自动动装装载载方方式式(方方式式2 2),这这样样不不但但操操作作方方便便,也也可可避避免免重重装装时时间间常常数数带带来来的的定定时时误误差差。并并且且T0T0可可使使用用定定时时器器方方式式3 3,这这时时T1T1作作波波特特率率发发生生器器,定定时时器器T0T0可可拆拆为为两两个个8 8位定时位定时/计数器用。计数器用。2.1 MCS-51单片机的串行接口方方式式每帧数据每帧数据格式格式波特率波特率应用应用发送发送/接收端接收端08个数据位个数据位fosc/12扩展扩展I/O
44、口口TXD输出移位脉输出移位脉冲冲RXD输出数据输出数据11812SMOD/32(T1溢出率)溢出率)两机通信两机通信(相同系统)(相同系统)TXD输出数据输出数据RXD输入数据输入数据218112SMOD/64fosc多机通信多机通信(相同系统)(相同系统)TXD输出数据输出数据RXD输入数据输入数据318112SMOD/32(T1溢出率)溢出率)多机通信多机通信(不同系统)(不同系统)TXD输出数据输出数据RXD输入数据输入数据2.1 MCS-51单片机的串行接口和串行口相关的寄存器和串行口相关的寄存器(1)PCON(2)SCON(3)TMOD(4)TCON2.1 MCS-51单片机的串行
45、接口串行口设置步骤:串行口设置步骤:(1)决定波特率)决定波特率(2)设置)设置TMOD(3)对)对THL和和TL1填入初值填入初值(4)启动定时器)启动定时器(5)决定)决定SCON的值的值(6)决决定定是是否否产产生生串串行行中中断断,有有需需要要时时另另依依中中断断设设置步骤做好各项程序中断前的准备工作置步骤做好各项程序中断前的准备工作(7)清除)清除RI、TI标志,并设置标志,并设置REN12.1 MCS-51单片机的串行接口例例1:若定时器:若定时器T1设置成模式设置成模式2作波特率发生器,已作波特率发生器,已知知fosc=6MHz。求可能产生的最高和最低的波特率。求可能产生的最高和最低的波特率例例2:串行接口工作在方式:串行接口工作在方式1和和3时,其波特率与时,其波特率与fosc,定时器,定时器T1工作模式工作模式2的初值及的初值及SMOD位的关系如何位的关系如何?设?设fosc6MHz,现利用定时器,现利用定时器T1工作模式工作模式2产生的产生的波特率为波特率为110b/s,试计算定时器初值。,试计算定时器初值。2.1 MCS-51单片机的串行接口课堂小节:课堂小节:1.单片机串行通信的两种方式单片机串行通信的两种方式2.单片机工作方式字的设定单片机工作方式字的设定3.单片机的四种工作方式单片机的四种工作方式4.单片机波特率的设定单片机波特率的设定
限制150内