增强型8051单片机的串行口.ppt
《增强型8051单片机的串行口.ppt》由会员分享,可在线阅读,更多相关《增强型8051单片机的串行口.ppt(59页珍藏版)》请在三一办公上搜索。
1、增强型8051单片机的串行口,目 录,1 串行通信基础2 STC11F08XE单片机的串行接口 3 STC11F08XE单片机与PC机的通信4 STC11F08XE单片机串行口的扩展功能,1 串行通信基础,通信是人们传递信息的方式。计算机通信是将计算机计术和通信技术相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。这种信息交换可分为两种方式:并行通信与串行通信。并行通信是将数据字节的各位用多条数据限同时进行传送,如图1(a)所示。并行通信的特点是:控制简单,传送速度快。但由于传输线较多,长距离传送时成本较高,因此仅适用于短距离传送。串行通信是将数据字节分成一位一位的形式在一条传输线上
2、逐个地传送,如图8.1(b)所示。并行通信的特点是:传送速度慢。但传输线少,长距离传送时成本较低,因此,串行通信适用于长距离传送。,1 串行通信基础,1.串行通信的分类(1)异步通信(Asynchronous Communication)在异步通信中,数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线为接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。在异步通信中,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作为分隔位。1)字符帧(Character Frame)字符帧也
3、叫数据帧,由起始位、数据位(纯数据或数据加校验位)和停止位等三部分组成,1 串行通信基础,2)波特率(baud rate)异步通信的另一个重要指标为波特率。波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为bit/s,即位/秒。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,而波特率和字符帧格式有关。例如,波特率为1200bps的通信系统,若采用图8.2(a)的字符帧(每一字符帧包含数据位11位),则字符的实际传输速率为 120011=109.09帧秒;若改用图8.2(b)的字符帧(每一字符帧包含数据
4、位14位),则字符的实际传输速率为120014=85.71帧秒。,1 串行通信基础,(2)同步通信(Synchronous Communication)同步通信是一种连续串行传送数据的通信方式,一次通信传输一组数据(包含若干个字符数据)。同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。在发送数据前先要发送同步字符,再连续地发送数据。有单同步字符和双同步字符字符帧之分,如图8.3(a)和图8.3(b)所示。同步通信的字符帧结构,是由同步字符、数据字符和校验字符CRC三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。,1 串行通信基础,1.串行通信的
5、分类2.串行通信的传输方向在串行通信中数据是在两个站之间进行传送的,按照数据传送方向及时间关系,串行通信可分为单工(simplex)、半双工(half duplex)和全双工(full duplex)三种制式,如图8.4所示。,2 STC11F08XE单片机的串行接口,2.1 串行口结构2.2 串行口的控制寄存器2.3 串行口的工作方式2.4 串行口的波特率2.5 串行口的应用举例,2.1 串行口结构,STC11F08XE单片机内部有两个独立的接收、发送缓冲器SBUF,SBUF属于特殊功能寄存器。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,二者共用一个字节地址(99H)。串行口的结
6、构如图8.5所示。,2.2 串行口的控制寄存器,1.串行控制寄存器SCON串行控制寄存器SCON用于设定串行口的工作方式、接收控制以及设置状态标志。字节地址为98H,可进行位寻址,单片机复位时,所有位全为0。,2.2 串行口的控制寄存器,2.电源及波特率选择寄存器PCONPCON主要是单片机的电源控制而设置的专用寄存器,不可以位寻址,字节地址为87H,复位值为30H。其中SMOD、SMOD0与串口控制有关。,2.2 串行口的控制寄存器,3.辅助寄存器AUXR的UART_M0 x6 辅助寄存器AUXR的格式如下所示,其中只有UART_M0 x6、T1x12与串口有关。,2.3 串行口的工作方式,
7、1.方式0在方式0下,串行口作同步移位寄存器用,其波特率为fosc/12(UART_M0 x6为0时)或fosc/2(UART_M0 x6为1时)。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。1)发送当TI=0,一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12或fosc/2的波特率从RXD引脚输出(低位在前),发送完毕置位中断标志TI,并向CPU请求中断。在再次发送数据之前,必须由软件清零TI标志。方式0发送时序如图8.6所示。,2.3 串行口的工作方式,1.方式01)发送方式0发送时,串行口可以外接串行输
8、入并行输出的移位寄存器,如74LS164、CD4094等芯片,用来扩展并行输出口,其逻辑电路如图8.7所示。,2.3 串行口的工作方式,1.方式02)接收当RI=0时,置位REN,串行口即开始从RXD端以fosc/12或fosc/2的波特率输入数据(低位在前),当接收完8位数据后,置位中断标志RI,并向CPU请求中断。在再次接收数据之前,必须由软件清零RI标志。方式0接收时序如图8.8所示。,2.3 串行口的工作方式,1.方式02)接收方式0接收时,串行口可以外接并行输入串行输出的移位寄存器,如74LS165芯片,用来扩展并行输入口,其逻辑电路如图9.9所示。,2.3 串行口的工作方式,2 方
9、式1串行口工作在方式1下时,串行口为波特率可调的10位通用异步接口UART,发送或接收一帧信息,包括1位起始位(0),8位数据位和1位停止位(1)。其帧格式如图8.10所示,2.3 串行口的工作方式,2 方式11)发送 当(TI)=0时,数据写入发送缓冲器SBUF后,就启动了串行口发送过程。在发送移位时钟的同步下,从TXD引脚先送出起始位,然后是8位数据位,最后是停止位。一帧10位数据发送完后,中断标志TI置1。方式1的发送时序如图8.11所示。方式1数据传输的波特率取决于定时器T1的溢出率和PCON中的SMOD位。,2.3 串行口的工作方式,2 方式12)接收 当RI0时,置位REN,启动串
10、行口接收过程。当检测到RXD引脚输入电平发生负跳变时,接收器以所选择波特率的16倍速率采样RXD引脚电平,以16个脉冲中的7、8、9三个脉冲为采样点,取两个或两个以上相同值为采样电平,若检测电平为低电平,则说明起始位有效,并以同样的检测方法接收这一帧信息的其余位。接收过程中,8位数据装入接收SBUF,接收到停止位时,置位RI,向CPU请求中断。方式1的接收时序如图8.12所示。,2.3 串行口的工作方式,(3)方式2和方式3串行口工作在方式2和方式3时,串行口为11位UART。一帧数据包括1位起始位(0),8位数据位,1位可编程位(如用于奇偶校验)和1位停止位(1),其帧格式如图8.13所示。
11、方式2与方式3的区别在于波特率的设置方法不同,方式2的波特率为fosc/64(SMOD为0)或fosc/32(SMOD为1);方式3数据传输的波特率取决于定时器T1的溢出率和SMOD控制位。,2.3 串行口的工作方式,(3)方式2和方式31)发送发送前,先根据通信协议由软件设置好TB8。当(TI)0时,用指令将要发送的数据写入SBUF,则启动发送器的发送过程。在发送移位时钟的同步下,从TXD引脚先送出起始位,依次是8位数据位和TB8,最后是停止位。一帧11位数据发送完毕后,置位中断标志TI,并向CPU发出中断请求。在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。方式2和方式3的发送
12、时序如图8.14所示。,2.3 串行口的工作方式,(3)方式2和方式32)接收 当RI0时,置位REN,启动串行口接收过程。当检测到RXD引脚输入电平发生负跳变时,接收器以所选择波特率的16倍速率采样RXD引脚电平,以16个脉冲中的7、8、9三个脉冲为采样点,取两个或两个以上相同值为采样电平,若检测电平为低电平,则说明起始位有效,并以同样的检测方法接收这一帧信息的其余位。接收过程中,8位数据装入接收SBUF,第9位数据装入RB8,接收到停止位时,若SM20或SM2、且接收到的RB81,则置位RI,向CPU请求中断;否则不置位RI标志,接收数据丢失。方式2和方式3的接收时序如图8.15所示。,2
13、.4 串行口的波特率,(1)方式0和方式2在方式0中,波特率为fSYS/12(UART_M0 x6为0时)或fSYS/2(UART_M0 x6为1时)。在方式2中,波特率取决于PCON中的SMOD值,当(SMOD)=0时,波特率为fSYS/64;当(SMOD)=1时,波特率为fSYS/32。即波特率=,2.4 串行口的波特率,(2)方式1和方式3 在方式1和方式3下,波特率由定时器T1的溢出率和SMOD共同决定。即波特率=溢出率,2.5 串行口的应用举例,1.方式0的编程和应用 例8.2 使用2块7474HC595芯片扩展16位并行口,外接16只发光二极管,电路连接图见图8.16所示。利用它的
14、串入并出功能,把发光二极管从右向左依次点亮,并不断循环之(16位流水灯),2.5 串行口的应用举例,1.方式0的编程和应用 设16位流水灯数据存放在R2和R3中,汇编参考程序如下:MOV SCON,#00H;设置串行口为同步移位寄存器方式 CLR ES;禁止串口中断 CLR P1.0 SETB C MOV R2,#0FFH;设置流水灯初始数据 MOV R3,#0FEH;设置最右边的LED灯亮 MOV R4,#16,2.5 串行口的应用举例,LOOP:MOV A,R3 MOV SBUF,A;启动串行发送 JNB TI,$;等待发送结束信号 CLR TI;清除TI标志,为下一字节发送做准备 MOV
15、 A,R2 MOV SBUF,A;启动串行发送 JNB TI,$;等待发送结束信号 CLR TI;清除TI标志,为下一次发送做准备 SETB P1.0;移位寄存器数据送存储锁存器,2.5 串行口的应用举例,NOP CLR P1.0 MOV A,R3;16位流水灯数据 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A LCALL DELAY;插入轮显间隔 DJNZ R4,LOOP1 SETB C MOV R2,#0FFH;设置流水灯初始数据 MOV R3,#0FEH;设置最右边的LED灯亮 MOV R4,#16LOOP1:SJMP LOOP;循环,2.5 串行口的应用
16、举例,1.方式0的编程和应用 例8.2 使用2块7474HC595芯片扩展16位并行口,外接16只发光二极管,电路连接图见图8.16所示。利用它的串入并出功能,把发光二极管从右向左依次点亮,并不断循环之(16位流水灯),2.5 串行口的应用举例,2.双机通信例8.3 编制程序,使甲、乙双方单片机能够进行通信。要求:将甲机内部RAM20H27H单元的数据依次发送给乙机,并实时显示发送数据;乙机接收后存放在内部RAM70H77H中,并实时显示接收到的数据。发送、接收双方均采用LED灯显示,低电平驱动。(1)甲机发送程序 汇编语言参考程序如下:ORG 0000H MOV TMOD,#20H;设置定时
17、器T1,设置串行口的波特率 MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1,2.5 串行口的应用举例,MOV SCON,#40H;设置串行口工作在方式1 MOV R0,#20H;设置串行发送缓冲区首址 MOV R7,#08H;设置串行发送的字节数START:MOV A,R0;取发送数据 MOV SBUF,A;启动串行发送 MOV P1,A;实时显示发送数据Check_TI:JBC TI,UART_Byte_Send_End;查询串行发送结束标志 AJMP Check_TI UART_Byte_Send_End:INC R0;数据指针指向下一个发送数据 MOV R3,#
18、05H;设置串行发送间隔 LCALL DELAY DJNZ R7,START;判断串行发送是否结束 SJMP$,2.5 串行口的应用举例,DELAY:MOV R4,#100;延时子程序,延时时间(R3)10msDELAY1:MOV R5,#200DELAY2:NOP NOP DJNZ R5,DELAY2 DJNZ R4,DELAY1 DJNZ R3,DELAY RET END,2.5 串行口的应用举例,C51参考程序如下:#include unsigned char bdata inter_ram8=0,1,2,3,4,5,6,7;设置发送数据/*-延时子函数-*/void delay(uns
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 增强 8051 单片机 串行口
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5696936.html