单片微机原理 第四章 43定时、中断、串行

上传人:tia****nde 文档编号:70561732 上传时间:2019-01-17 格式:PPT 页数:28 大小:413.81KB
返回 下载 相关 举报
单片微机原理 第四章 43定时、中断、串行_第1页
第1页 / 共28页
单片微机原理 第四章 43定时、中断、串行_第2页
第2页 / 共28页
单片微机原理 第四章 43定时、中断、串行_第3页
第3页 / 共28页
单片微机原理 第四章 43定时、中断、串行_第4页
第4页 / 共28页
单片微机原理 第四章 43定时、中断、串行_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片微机原理 第四章 43定时、中断、串行》由会员分享,可在线阅读,更多相关《单片微机原理 第四章 43定时、中断、串行(28页珍藏版)》请在金锄头文库上搜索。

1、4.3 串行口及其通信方式,基本通信方式,计算机与外界的信息交换称为通信。 串行通信是CPU与外界交换信息的一种基本通信方式。 常用通信方式有两种: 并行通信所传送数据的各位同时发送或接受; 串行通信所传送数据的各位按顺序一位一位地发送或接受 并行通信方式的特点: 传送速度快,但传输线多,价格较贵,适合近距离传输。 串行通信方式的特点: 传送速度较慢,需传输线少,适合远距离传输。,几个概念,传送编码:用二进制数对传送字符编码。 常用的编码有:ASCII码和扩展BCD码(同步通信) 串行通信分同步和异步两种方式 异步方式:在异步通信中数据或字符是分为一帧一帧地传送,在帧格式中先用一个起始位“0”

2、表示字符的开始,然后是58位数据,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后一位停止为“1”表示字符结束,构成一帧。,同步方式:在同步通信中,在数据或字符开始处就用一同步字符来指示(常约定12个),由时钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。,同步方式:在同步通信中,在数据或字符开始处就用一同步字符来指示(常约定12个),由时钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。,SYS字符1,SYS字符2,连续传送的数据,波特率(Baud rate): 是异步通信中对数据传送速率的规定。即每秒钟传送

3、多少位二进制数。如果数据传送的速率为每秒钟传送240个字符,每个字符由1个起始位8个数据位,一个停止位组成,传送波特率为: 10 x 240 =2400 b/s =2400 波特率 异步通信的传送速度一般在509600波特率之间。 通信方向: 在串行通信中,如果通信接口只能发送或接受, 这种单向传送的方法称单工传送。通常数据需在两机之间双向传送,这种方式称双工传送。在双工传送方式中,如果接收和发送不能同时进行,只能分时接收和发送,这种方式称半双工传送;如果接收和发送可以同时进行,则称全双工传送。,4.3.1 串行口结构,8051的串行口是一个可编程的全双工串行通信接口,通过编程控制,该口可以同

4、时进行发送和接收。 串行通信数据帧的格式有8位、10位、11位,并能设置各种波特率,使用方便灵活。8051串行口结构框图如图45所示。,串行口结构,一、数据缓冲寄存器SBUF 数据缓冲寄存器共两个,一个对应发送,一个对应接收。当CPU向SBUF写入时,数据进入发送寄存器,同时启动串行发送;CPU读SBUF时,实际是读接收寄存器数据。 注意:两个SBUF用同一个地址99H。 二、串行控制寄存器SCON SCON控制串行通信方式的选择、接收、发送及保存串行口的状态。其格式如图所示: 8051单片微机通过对SCON的设置、检测与读、取来管理串行口的通信。 三、专用寄存器PCON PCON的最高位SM

5、OD是串行口波特率倍增位。当SMOD=1时,波特率加倍,复位时,SMOD=0。,D7 D6 D5 D4 D3 D2 D1 D0 接收中断标志位 发送中断标志位 接收数据/地址标志位 RB8=0 接收的是数据, RB8=1 接收的是地址 发送数据/地址标志位 RB8=0 发送的是数据, RB8=1 发送的是地址 串行接收允许位 REN=0 允许接收,REN=1 禁止接收 功能控制 方式选择控制 8051单片微机正是通过对SCON的设置、检测与读、取来管理串行口的通信。,三、输入移位寄存器 输入移位寄存器的作用是在接收到外部数据后,先进入输入移位寄存器,再送入接收缓冲寄存器SBUF。这样起到了双缓

6、冲作用,防止第1帧数据没取走,第2帧数据又输入,造成数据重迭的错误,4.3.2 串行口工作方式,SCON中最高两位SM0、SM1是方式选择控制位。两位组合出四种状态:00、0l、10、 11,正好对应串行口的方式0、方式1、方式2、方式3四种工作方式。,方式0 : 串行口为同步移位寄存器方式,波特率固定为fosc/12。该方式主要用于IO口扩展,串行数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端送出。 发送时,8位数据以fosc/12的波特率从RXD端输出(低位在前),发送完置中断标志TI为“l”。 接收时,当RENl时,RXD以fosc/12的波特率接收数据(低位在

7、前),接收完8位数据,置RI为“1”。,方式1 串行口为10位异步通信口。一帧信息10位(包括起始标志“O”和停止标志位“l”及8位数据)。 2SMOD 波特率 T1溢出率 32 发送时,只要数据写入发送缓冲器SBUF,就启动发送器,数据则从TXD端输出。发送完一帧数据把TI置“1”申请中断 。 接收时RENl,数据从RXD端输入。当采样到起始位为“0”,开始接收一帧数据,采到停止位为“l”此 时RI0(或SM2=0),则把RI置“1”。 注意:方式1,发送前先清TI,接收前先清RI和SM2。,方式2 串行口为11位异步通信口。一帧信息由11位组成。除了起始位0、停止位l和8位数据还有一位可编

8、程位(第9位),存放数据地址标志。 发送时,写SBUF地址,把8位数据装入SBUF,同时把数据/地址标志TB8状态送入第9位,从TXD端送出一帧数据,置TI为“l”。 接收时,RKNl允许接收,RB8接收的是TB8状态。RB8=0表示接收的是数据,RB8l表示接收的 是地址。 在多机通信中能否接收还受SM2控制, 2SMOD 方式2 波特率 fOSC 64,方式3 : 2SMOD 方式3波特率为 T1溢出率 32 除此之外,方式3与方式2通信方式完全相同。 说明: 表中用到的SMOD是专用寄存器PCON的最高位(其它位无用),SMOD是串行口波特率倍增位。 SMOD=1时波特率加倍,4.3.3

9、 串行口通信举例,串行口通信,要进行波特率设置、通信双方的约定以及接收、发送程序设计。 一、波特率设置 在串行通信中,接收和发送双方的波特率必须一致。因此,首先要约定通信波特率,根据需要设置合理的发送、接收速率。 波特率和串行口工作方式有关。 方式0:波特率固定为时钟频率fosc的十二分之一,且不受SMOD影响。 若fosc12MHz,波特率为fosc/12即1Mbs。,方式2: 波特率与SMOD值有关 其关系式为: 2SMOD 波特率 fosc 64 若fosc12MHz,SMOD0 波特率1875kbs SMODl 波特率375kbs,方式l和方式3: 波特率可变 8051单片机在串行口方

10、式1和方式3两种方式工作时,常用定时器T1为波特率发生器。T1的溢出率和SMOD共同决定波特率,其关系式如下: 2SMOD 波特率 -T1溢出率 32 T1的溢出率取决于T1的工作方式和初值。 T1常设置为定时方式(C/T0),方式2(自动装初值),即TL1作8位计数器、TH1存放备用初值。,设定时器初值为X则 计数速率 fosc/12 fosc 溢出率 (代入上式) 256-X 256-X 12(256-X) 2SMOD fosc 波特率= 32 12(256-X) 从表达式可见,这种方式波特率随fosc、SOMD及初值x而变化,都会引起波特率的改变。 为方便,波特率可查表。 注意:若CT1

11、,T1为计数方式,这时的计数速率取决于外部输入脉冲频率。 在串行通信设置中,经常根据已知波特率和时钟频率,计算定时器T1的初值。,表 常用的波特率及计算器初值,例 若805l单片机时钟频率11.059MHz,需要波特率2400bs,试计算T1初值。 解:设T1为工作方式2,选SMOD0 根据 2SMOD fosc 波特率= 32 12(256-X) fosc2SMOD x256 - 384波特率 把fosc、SMOD、波特率代入式中则: 11.05910620 x256 - 244DF4H 3842400 只要把F4H装入TH1和TTL1,则T1发出的波特率为2400b/s。,二、串行口双机通

12、信,设两个8051系统直接通信,甲机发送,乙机接收,如图46所示。 图46 双机通信示意图,RXD 8051 (甲机) TXD GND,TXD 8051 RXD (乙机) GND,1通信任务及约定,任务:甲机将外部数据存储器4000H40FFH单元的内容向乙机发送,在发送数据之前先将数据块长度发送给乙机,发送完256B,向乙机发送一个累加校验和。 乙机接收甲机发送的数据并存入乙机以4000H为首地址的外部数据存储器中。首先接收数据长度,然后接受数据,接受完256B,最后接受累加和校验码之后,进行一次累加和校验,数据全部接收完毕且校验码比较时向甲机送出状态字,表示传送状态。 双机通信必有许多约定

13、,以保持两者数据传送正常。设约定如下: 波特率约定为2400即T1方式2,常数为F4H,SMOD=0。 行口初始化为方式1,允许接收方式。 工作寄存器设置R5为累加和寄存器,R4为页内计数器,R6为数据块长度寄存器。,2. 双机通信程序,发送程序 TRT:MOV TMOD,#20H MOV TH1,#0F4H ;T1初始化 MOV TL1,#0F4H SETB TR1 MOV SCON,#50H ;串行口初始化方式1,允许接收 MOV PCON,#00H ;置SMOD0 RPT:MOV DPTR,#4000H ;送数据块首地址 MOV R6,#00H ;数据块长度初值R6 MOV R5,#00

14、H ;累加和寄存器清“0” MOV SBUF,R6 ;发送长度 L1: JBC T1,L2 ;等待发送,TI1发送结束 AJMP L1,L2: MOVX A,DPTR ;读数据块中数据 MOV SBUF,A ;发送数据 ADD A,R5 ;累加 MOV R5,A ;累加和送R5 INC DPTR ;地址加1 L4: JBC T1,L3 ;等待发送 AJMP L4 L3: DJNZ R6,L2 ;判断256个数是否发送完 MOV SBUF,R6 ;若R60,256个数发送完,发校验码 MOV R5,#00H L6: JBC TI,L5 ;等待发送校验码结束 AJMP L6 L5: JBC RI,L7 ;等待接收乙机发来的结束标志码 AJMP L5 L7: MOV A,SBUF JZ L8 ;标志码为00H,接收正确 AJMP RPT ;发送有错,重发 L8: RET,乙机接收程序 RSU: MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR1 MOV SCON,#50H MOV PCON,#00H RPT: MOV DPTR,#4000H L0: JBC RI,L1 AJMP L0 L1: MOV A,SBUF ;接收发送长度 MOV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号