《片微机原理43定时中断串行课件》由会员分享,可在线阅读,更多相关《片微机原理43定时中断串行课件(28页珍藏版)》请在金锄头文库上搜索。
1、4.3 串行口及其通信方式片微机原理43定时中断串行课件基本通信方式基本通信方式计算机与外界的信息交换称为通信。计算机与外界的信息交换称为通信。串行通信是串行通信是CPU与外界交换信息的一种基本通信方式。与外界交换信息的一种基本通信方式。常用通信方式有两种:常用通信方式有两种:并行通信并行通信所传送数据的各位同时发送或接受;所传送数据的各位同时发送或接受;串行通信串行通信所传送数据的各位按顺序一位一位地发所传送数据的各位按顺序一位一位地发送或接受送或接受并行通信方式的特点:并行通信方式的特点:传送速度快,但传输线多,价格较贵,适合近传送速度快,但传输线多,价格较贵,适合近距离传输。距离传输。串
2、行通信方式的特点:串行通信方式的特点:传送速度较慢,需传输线少,适合远距离传输。传送速度较慢,需传输线少,适合远距离传输。片微机原理43定时中断串行课件计算机1GND计或算外机设2GND计算机1GND计或算外机设2GND片微机原理43定时中断串行课件几个概念几个概念几个概念几个概念传送编码:用二进制数对传送字符编码。传送编码:用二进制数对传送字符编码。常用的编码有:常用的编码有:ASCII码和扩展码和扩展BCD码(同步通信)码(同步通信)串行通信分同步和异步两种方式串行通信分同步和异步两种方式异步方式:在异步通信中数据或字符是分为一帧一帧地传送,在异步方式:在异步通信中数据或字符是分为一帧一帧
3、地传送,在帧格式中先用一个起始位帧格式中先用一个起始位“0”表示字符的开始,然后是表示字符的开始,然后是58位位数据,规定低位在前,高位在后,接下来是奇偶校验位(可省数据,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后一位停止为略),最后一位停止为“1”表示字符结束,构成一帧。表示字符结束,构成一帧。01D7D6D5D4D3D2D1D0P异步传送格式0 D0片微机原理43定时中断串行课件同步方式同步方式:在同步通信中,在数据或字符开始处就用一同步字符来指示(常约定12个),由时钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。同步方式同步方式:在
4、同步通信中,在数据或字符开始处就用一同步字符来指示(常约定12个),由时钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。SYS字符字符1SYS字符字符2连续传送的数据连续传送的数据片微机原理43定时中断串行课件波特率波特率(Baudrate):是异步通信中对数据传送速率的规定。即每秒钟传送是异步通信中对数据传送速率的规定。即每秒钟传送多少位二进制数。如果数据传送的速率为每秒钟传送多少位二进制数。如果数据传送的速率为每秒钟传送240个字符,每个字符由个字符,每个字符由1个起始位个起始位8个数据位,一个停个数据位,一个停止位组成,传送波特率为:止位组成,传送波
5、特率为:10x240=2400b/s=2400波特率波特率异步通信的传送速度一般在异步通信的传送速度一般在509600波特率之间。波特率之间。通信方向:通信方向:在串行通信中,如果通信接口只能发送或接受,在串行通信中,如果通信接口只能发送或接受,这种单向传送的方法称单工传送。通常数据需在两机这种单向传送的方法称单工传送。通常数据需在两机之间双向传送,这种方式称双工传送。在双工传送方式之间双向传送,这种方式称双工传送。在双工传送方式中,如果接收和发送不能同时进行,只能分时接收和发中,如果接收和发送不能同时进行,只能分时接收和发送,这种方式称半双工传送;如果接收和发送可以同时送,这种方式称半双工传
6、送;如果接收和发送可以同时进行,则称全双工传送。进行,则称全双工传送。片微机原理43定时中断串行课件4.3.1 串行口结构8051的串行口是一个可编程的全双工串行通信接口,通过编程控制,该口可以同时进行发送和接收。串行通信数据帧的格式有8位、10位、11位,并能设置各种波特率,使用方便灵活。8051串行口结构框图如图45所示。片微机原理43定时中断串行课件片微机原理43定时中断串行课件串行口结构串行口结构串行口结构串行口结构 一、数据缓冲寄存器一、数据缓冲寄存器SBUF数据缓冲寄存器共两个,一个对应发送,一个对应接收。当CPU向SBUF写入时,数据进入发送寄存器,同时启动串行发送;CPU读SB
7、UF时,实际是读接收寄存器数据。注意:两个两个SBUF用同一个地址用同一个地址99H。二、串行控制寄存器二、串行控制寄存器SCONSCON控制串行通信方式的选择、接收、发送及保存串行口的状态。其格式如图所示:8051单片微机通过对SCON的设置、检测与读、取来管理串行口的通信。三、专用寄存器三、专用寄存器PCONPCON的最高位SMOD是串行口波特率倍增位。当SMOD=1时,波特率加倍,复位时,SMOD=0。片微机原理43定时中断串行课件D7D6D5D4D3D2D1D0接收中断标志位发送中断标志位接收数据/地址标志位RB8=0接收的是数据,RB8=1接收的是地址发送数据/地址标志位RB8=0发
8、送的是数据,RB8=1发送的是地址串行接收允许位REN=0允许接收,REN=1禁止接收功能控制方式选择控制8051单片微机正是通过对SCON的设置、检测与读、取来管理串行口的通信。SM0 SM1 SM2REN TB8 RB8 TIRI片微机原理43定时中断串行课件三、输入移位寄存器三、输入移位寄存器输入移位寄存器的作用是在接收到外部数据后,先进入输入移位寄存器,再送入接收缓冲寄存器SBUF。这样起到了双缓冲作用,防止第1帧数据没取走,第2帧数据又输入,造成数据重迭的错误片微机原理43定时中断串行课件4.3.2 串行口工作方式SCON中最高两位SM0、SM1是方式选择控制位。两位组合出四种状态:
9、00、0l、10、11,正好对应串行口的方式0、方式1、方式2、方式3四种工作方式。片微机原理43定时中断串行课件方式方式0:串行口为同步移位寄存器方式,波特率固定为fosc/12。该方式主要用于IO口扩展,串行数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端送出。发送时,8位数据以fosc/12的波特率从RXD端输出(低低位位在在前前),发送完置中断标志TI为“l”。接收时,当RENl时,RXD以fosc/12的波特率接收数据(低位在前),接收完8位数据,置RI为“1”。片微机原理43定时中断串行课件方式方式1串行口为10位异步通信口。一帧信息10位(包括起始标志“O
10、”和停止标志位“l”及8位数据)。2SMOD波特率T1溢出率32发送时,只要数据写入发送缓冲器SBUF,就启动发送器,数据则从TXD端输出。发送完一帧数据把TI置“1”申请中断。接收时RENl,数据从RXD端输入。当采样到起始位为“0”,开始接收一帧数据,采到停止位为“l”此时RI0(或SM2=0),则把RI置“1”。注意:方式1,发送前先清TI,接收前先清RI和SM2。片微机原理43定时中断串行课件方式方式2串行口为11位异步通信口。一帧信息由11位组成。除了起始位0、停止位l和8位数据还有一位可编程位(第9位),存放数据地址标志。发送时,写SBUF地址,把8位数据装入SBUF,同时把数据/
11、地址标志TB8状态送入第9位,从TXD端送出一帧数据,置TI为“l”。接收时,RKNl允许接收,RB8接收的是TB8状态。RB8=0表示接收的是数据,RB8l表示接收的是地址。在多机通信中能否接收还受SM2控制,2SMOD方式2波特率fOSC64片微机原理43定时中断串行课件方式方式3:2SMOD方式3波特率为T1溢出率32除此之外,方式3与方式2通信方式完全相同。说明:表中用到的SMOD是专用寄存器PCON的最高位(其它位无用),SMOD是串行口波特率倍增位。SMOD=1时波特率加倍片微机原理43定时中断串行课件4.3.3 串行口通信举例串行口通信举例串行口通信,要进行波特率设置、通信双方的
12、约定以及接收、发送程序设计。一、波特率设置在串行通信中,接收和发送双方的波特率必须一致。因此,首先要约定通信波特率,根据需要设置合理的发送、接收速率。波特率和串行口工作方式有关。方式0:波特率固定为时钟频率fosc的十二分之一,且不受SMOD影响。若fosc12MHz,波特率为fosc/12即1Mbs。片微机原理43定时中断串行课件方式方式2:波特率与SMOD值有关其关系式为:2SMOD波特率fosc64若fosc12MHz,SMOD0波特率1875kbsSMODl波特率375kbs片微机原理43定时中断串行课件方式方式l和方式和方式3:波特率可变8051单片机在串行口方式1和方式3两种方式工
13、作时,常用定时器T1为波特率发生器。T1的溢出率和SMOD共同决定波特率,其关系式如下:2SMOD波特率-T1溢出率32T1的溢出率取决于T1的工作方式和初值。T1常设置为定时方式(C/T0),方式2(自动装初值),即TL1作8位计数器、TH1存放备用初值。片微机原理43定时中断串行课件设定时器初值为设定时器初值为X则则计数速率计数速率fosc/12fosc溢出率溢出率(代入上式代入上式)256-X256-X12(256-X)2SMODfosc波特率波特率=3212(256-X)从从表表达达式式可可见见,这这种种方方式式波波特特率率随随fosc、SOMD及及初初值值x而而变变化,都会引起波特率
14、的改变。化,都会引起波特率的改变。为方便,波特率可查表。为方便,波特率可查表。注注意意:若若CT1,T1为为计计数数方方式式,这这时时的的计计数数速速率率取取决决于于外外部输入脉冲频率。部输入脉冲频率。在在串串行行通通信信设设置置中中,经经常常根根据据已已知知波波特特率率和和时时钟钟频频率率,计计算算定时器定时器T1的初值。的初值。片微机原理43定时中断串行课件表常用的波特率及计算器初值片微机原理43定时中断串行课件例例若若805l单单片片机机时时钟钟频频率率11.059MHz,需需要要波波特特率率2400bs,试试计计算算T1初值。初值。解:设解:设T1为工作方式为工作方式2,选,选SMOD
15、0根据根据2SMODfosc波特率波特率=3212(256-X)fosc2SMODx256-384波特率波特率把把fosc、SMOD、波特率代入式中则:、波特率代入式中则:11.05910620x256-244DF4H3842400只要把只要把F4H装入装入TH1和和TTL1,则,则T1发出的波特率为发出的波特率为2400b/s。片微机原理43定时中断串行课件二、串行口双机通信二、串行口双机通信二、串行口双机通信二、串行口双机通信设两个8051系统直接通信,甲机发送,乙机接收,如图46所示。图46双机通信示意图RXD8051(甲机)TXDGNDTXD8051RXD(乙机)GND片微机原理43定
16、时中断串行课件1 1通信任务及约定通信任务及约定通信任务及约定通信任务及约定任务:甲机将外部数据存储器4000H40FFH单元的内容向乙机发送,在发送数据之前先将数据块长度发送给乙机,发送完256B,向乙机发送一个累加校验和。乙机接收甲机发送的数据并存入乙机以4000H为首地址的外部数据存储器中。首先接收数据长度,然后接受数据,接受完256B,最后接受累加和校验码之后,进行一次累加和校验,数据全部接收完毕且校验码比较时向甲机送出状态字,表示传送状态。双机通信必有许多约定,以保持两者数据传送正常。设约定如下:波特率约定为2400即T1方式2,常数为F4H,SMOD=0。行口初始化为方式1,允许接
17、收方式。工作寄存器设置R5为累加和寄存器,R4为页内计数器,R6为数据块长度寄存器。片微机原理43定时中断串行课件2. 2. 双机通信程序双机通信程序双机通信程序双机通信程序发送程序TRT:MOVTMOD,#20HMOVTH1,#0F4H;T1初始化MOVTL1,#0F4HSETBTR1MOVSCON,#50H;串行口初始化方式1,允许接收MOVPCON,#00H;置SMOD0RPT:MOVDPTR,#4000H;送数据块首地址MOVR6,#00H;数据块长度初值R6MOVR5,#00H;累加和寄存器清“0”MOVSBUF,R6;发送长度L1:JBCT1,L2;等待发送,TI1发送结束AJMP
18、L1片微机原理43定时中断串行课件L2:MOVXA,DPTR;读数据块中数据MOVSBUF,A;发送数据ADDA,R5;累加MOVR5,A;累加和送R5INCDPTR;地址加1L4:JBCT1,L3;等待发送AJMPL4L3:DJNZR6,L2;判断256个数是否发送完MOVSBUF,R6;若R60,256个数发送完,发校验码MOVR5,#00HL6:JBCTI,L5;等待发送校验码结束AJMPL6L5:JBCRI,L7;等待接收乙机发来的结束标志码AJMPL5L7:MOVA,SBUFJZL8;标志码为00H,接收正确AJMPRPT;发送有错,重发L8:RET片微机原理43定时中断串行课件乙机
19、接收程序RSU:MOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HSETBTR1MOVSCON,#50HMOVPCON,#00HRPT:MOVDPTR,#4000HL0:JBCRI,L1AJMPL0L1:MOVA,SBUF;接收发送长度MOVR6,A;长度R6MOVR5,#00H;累加和寄存器清0WTD:JBCRI,L2;等待接收AJMPWTD片微机原理43定时中断串行课件L2:MOVA,SBUF;接收数据MOVXDPTR,AINCDPTRADDA,R5MOVR5,ADJNZR6,WTD;R60未接收完,继续L5:JBCRI,L4;接收校验码AJMPL5L4:MOVA,SBUFXRLA,R5MOVR5,#00JZL6;接收正确转L6MOVSBUF,#0FFH;接收出错回送0FFHL8:JBCTI,L7AJMPL8L7:AJMPRPT;重新接收L6:MOVSBUF,#00H;正确回送00HL9:JBCTI,L10;发送完返回AJMPL9L10:RET片微机原理43定时中断串行课件