预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共92页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七章UART串行接口7.1串行通信概述在并行通信中,一个并行数据占多少位二进制数,就要多少根传输线,这种方式的特点是通信速度快,但传输线多,价格较贵,适合近距离传输。串行通信仅需1~2根传输线,故在长距离传输数据时比较经济,但由于它每次只能传送1位,所以传送速度较慢。图7.1基本通信方式图示7.1.1同步通信和异步通信方式1.异步通信ASYNC由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单。此外,它还能利用校验位检测错误,所以这种通信方式应用较广泛。在单片机中主要是采用异步通信方式。2.同步通信SYNC7.1.2串行通信的数据传送速率异步通信的数据传送速率一般为50b/s~100kb/s,常用于计算机到CRT终端,以及双机或多机之间的通信等。7.1.3串行通信的方式*信号的调制与解调7.1.4通信协议7.280C51串行口简介7.2.1串行口结构与工作原理图7.3串行口结构框图在进行串行通信时,外界数据通过引脚RXD(P3.0)输入。输入数据首先逐位进入输入移位寄存器,由串行数据转换为并行数据,然后再送入接收寄存器。在接收寄存器中采用了双缓冲结构,以避免在接收到第2帧数据前,CPU未及时响应接收寄存器前一帧的中断请求,没把前一帧数据读走,而造成2帧数据重叠的错误。在发送时,串行数据通过引脚TXD(P3.1)输出。由于CPU是主动的,因此不会产生写重叠问题,一般不需要双缓冲器结构。要发送的数据通过发送控制器控制逻辑门电路逐位输出。7.2.2串行口寄存器1.串行口控制寄存器SCONSCON.5位SM2——多机通信控制位。在方式2和方式3中,SM2主要用于进行多机通信控制。当串行口以方式2或方式3接收时,如果SM2=1,允许多机通信,且接收到第9位RB8为0时,则RI不置1不接收主机发来的数据;如果SM2=1,且RB8为1,则RI置1,产生中断请求,将接收到的8位数据送入SBUF。当SM2=0时,不论RB8为0还是1,都将收到的8位数据送入SBUF,并产生中断。在方式1中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位时,RI才置1。在方式0中,SM2应置0。SCON.1位TI——发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其他方式中,在发送停止位之初由硬件置位。TI=1时,可申请中断,也可供软件查询用。在任何方式中,都必须由软件来清除TI。SCON.0位RI——接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其他方式中,在接收停止位的中间,由硬件置位。RI=1时,可申请中断,也可供软件查询用。在任何方式中,都必须由软件清除RI。2.数据缓冲寄存器SBUF3.电源控制寄存器PCON4.中断允许控制寄存器IE5.中断优先级寄存器IP7.2.380C51的帧格式方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。方式1以10位为一帧传输,设有1个起始位“0”、8个数据位和1个停止位“1”。方式2和3以11位为一帧传输,设有1个起始位“0”、8个数据位、1个可编程位(第9数据位)D8和1个停止位“1”。可编程位D8由软件置“1”或清“0”,该位可作检验位,也可作它用。7.2.4波特率的设置1.方式0和方式2的波特率2.方式1和方式3的波特率当定时器T1作波特率发生器使用时,通常是选用自动重装载方式,即方式2。设计数初值为X,那么每过(256—X)个机器周期,定时器1就会产生一次溢出。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。溢出周期为:溢出率为溢出周期之倒数,所以:则定时器T1方式2的初始值为:表7.2定时器T1的常用波特率【例1】已知80C51单片机时钟振荡频率为11.0592MHz选用定时器T1工作方式2作波特率发生器,波特率为2400波特,求时间常数。解:设波特率控制位SMOD=0,定时器T1的时间常数为:所以TH1=TL1=F4H。7.3串行通信工作方式7.3.1方式0图7.3串行口结构框图7.3.2方式1(1)发送当执行“MOVSBUF,A”指令时,CPU将1字节的数据写入发送缓冲寄存器SBUF(99H),就启动发送器发送,数据从引脚TXD(P3.1)端输出。当发送完1帧数据后,TI标志置1,在中断方式下将申请中断,通知CPU可以发送下一个数据。如要继续发送,必须将TI清0。图7.3串行口结构框图(2)接收接收时,先使REN置1,使串行口处于允许接收状态,RI标志为0,串行口采样引脚RXD(P3.0)。当采样到1至0的跳变时,确认是起始位“0”,就开始接收1帧数据。当停止位到来时,RB8位置1,同时,中断标志位RI也置1,在中断方式下将申请中断,通知CPU从SBUF取走接收到的1个数据。不管是中断方式,还