4串行口通信技术

上传人:工**** 文档编号:588390931 上传时间:2024-09-08 格式:PPT 页数:22 大小:298KB
返回 下载 相关 举报
4串行口通信技术_第1页
第1页 / 共22页
4串行口通信技术_第2页
第2页 / 共22页
4串行口通信技术_第3页
第3页 / 共22页
4串行口通信技术_第4页
第4页 / 共22页
4串行口通信技术_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《4串行口通信技术》由会员分享,可在线阅读,更多相关《4串行口通信技术(22页珍藏版)》请在金锄头文库上搜索。

1、串行口通信技术串行口通信技术 1串行通信方式 串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。2 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。 (1)(1)、字符帧的帧格式、字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。 31)起始位:位于字符帧的开头,只占一位,始终位

2、逻辑低电平,表示发送端开始发送一帧数据。2)数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。3)奇偶校验位:占一位,用于对字符传送作正确性检查。奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。4 (2). (2).数据传送速率数据传送速率 串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒) 。 在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,

3、则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。5串行口的特殊功能寄存器串行口的特殊功能寄存器(1). (1). 串行口控制寄存器(串行口控制寄存器(SCONSCON) SCONSCON是是MCS-51MCS-51单单片片机机的的一一个个可可位位寻寻址址的的专专用用寄寄存存器器,用用于于串串行行数数据据通通信信的的控控制制。单单元元地地址址为为98H98H,位位地地址址为为98H98H9FH9FH。寄寄存存器器的的内内容容及及位位地地址址表示如下:表示如下:位地址 9FH 9EH9DH9CH 9BH9AH 99H98H位符号 SM0 SM1SM2RENTB8RB8TIRI

4、6SCON中各位说明如下:中各位说明如下:1)SM0、SM1串串行行口口工工作作方方式式选选择择位位其状态组合和对应工作方式为:其状态组合和对应工作方式为:SM0SM1工作方式工作方式00方式方式001方式方式110方式方式211方式方式372 2) SM2 SM2允许方式允许方式2 2、3 3的多机通信控制位的多机通信控制位 在在方方式式2 2和和3 3中中,若若SM2SM21 1且且接接收收到到的的第第九九位位数数据据(RB8RB8)为为1 1,才才将将接接收收到到的的前前8 8位位数数据据送送入入接接收收缓缓冲冲寄寄存存器器SBUFSBUF中中,并并置置位位RIRI产产生生中中断断请请求

5、求;否否则则丢丢弃弃前前8 8位位数数据据。若若 SM2SM20 0,则则不不论论第第九九位位数数据据(RB8RB8)为为1 1还还是是为为0,0,都将前都将前8 8位送入接收位送入接收SBUFSBUF中,并产生中断请求。中,并产生中断请求。 在方式在方式0 0时,时,SM2SM2必须置必须置0 0。3 3) REN REN允许接收位允许接收位 REN REN0 0 禁止接收数据禁止接收数据 REN REN1 1 允许接收数据允许接收数据4 4) TB8 TB8发送第发送第9 9位数据位数据 在在方方式式2 2、3 3时时,TBTB8 8的的内内容容是是要要发发送送的的第第9 9位位数数据据,

6、 ,其其值值由用户通过软件来设置。由用户通过软件来设置。85 5) RB8RB8接收的第接收的第9 9位数据位数据 在方式在方式2 2、3 3时,时,RB8RB8是接收的第是接收的第9 9位数据。位数据。 在方式在方式1 1时,时,RB8RB8是接收的停止位是接收的停止位 在方式在方式0 0时,不使用时,不使用RB8RB86 6) TI TI发送中断标志位发送中断标志位 在方式在方式0 0时,发送完第时,发送完第8 8位数据后,该位由硬件置位。位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。 TI TI1 1表示帧发送结束,其

7、状态既可供软件查询使表示帧发送结束,其状态既可供软件查询使 用,也可请求中断。用,也可请求中断。TITI由软件清由软件清“0”“0”。7 7) RI RI接收中断标志位接收中断标志位 在方式在方式0 0时,接收完第时,接收完第8 8位数据后,该位由硬件置位。位数据后,该位由硬件置位。 在其它方式下,接收到停止位之前,该位硬件置位。在其它方式下,接收到停止位之前,该位硬件置位。 RI RI1 1表示帧接收结束,其状态既可供软件查询使表示帧接收结束,其状态既可供软件查询使 用,也可请求中断。用,也可请求中断。 RI RI由软件清由软件清“0”“0”。9(2). 电源控制寄存器(电源控制寄存器(PC

8、ON) PCON不可位寻址,字节地址为87H。它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下: 与串行通信有关的只有与串行通信有关的只有D D7 7位(位(SMODSMOD),该位为波特率倍增位,),该位为波特率倍增位,当当SMOD=1SMOD=1时,串行口波特率增加一倍,当时,串行口波特率增加一倍,当SMOD=0SMOD=0时,串行口波特时,串行口波特率为设定值。当系统复位时,率为设定值。当系统复位时,SMOD=0SMOD=0。 位序位序D7D6D5D4D3D2D1D0位符号位符号SMOD/GF1GF2PDIDL10串行口的工作方式串行口的工作方式 方式方式0

9、 0和方式和方式2 2的波特率是固定的,而方式的波特率是固定的,而方式1 1和方式和方式3 3的波的波特率是可变的,由特率是可变的,由T1T1的溢出率决定。的溢出率决定。SM0 SM1方式方式功能说明功能说明波特率波特率0 0方式方式0移位寄存器方式移位寄存器方式fosc/120 1方式方式18位位UART可变可变1 0方式方式29位位UARTfosc/64 或者或者fosc/321 1方式方式39位位UART可变可变串行口的工作方式由SM0和SM1确定,编码和功能如下表所示11串行口工作方式串行口工作方式0 01. 数据发送 当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下

10、,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。其接口逻辑如下图所示。122. 数据接收 要实现数据接收,必须首先把SCON中的允许接收位REN设置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如下图所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。13 串行口工作方式串行口工作方式1 1 方式1为10位为一帧的异步串行通信

11、方式。其帧格式为1个起始位、8个数据位和1个停止位。如下图所示。1. 数据发送 数据写入SBUF后,开始发送,此时由硬件加入起始位和 停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。142. 数据接收 当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。3. 波特率的设定 工作在方式1时,其波特率是可变的,波特率的计算公式为: 其中,SMOD为PCON寄存器最高位的值,其值为1 或0。15 当

12、定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,则计数溢出周期为: 溢出率为溢出周期的倒数。则波特率的计算公式为: 实际使用中,波特率是已知的。因此需要根据波特率的计算公式求定时初值X。用户只需要把定时初值设置到定时器1,就能得到所要求的波特率。 16串行口工作方式串行口工作方式2 2 方式2为11位为一帧的异步串行通信方式。其帧格式为1个起始位、9个数据位和1个停止位。如下图所示。 在方式2下,字符还是8个数据位,只不过增加了一个第9个数据位(D8),而且其功能由用户确定,

13、是一个可编程位。 在发送数据时,应先在SCON的TB8位中把第9个数据位的内容准备好。这可使用如下指令完成: SETB TB8 ;TB8位置“1” CLR TB8 ;TB8位置“0”17 发送数据(D0-D7)由MOV指令向SBUF写入,而D8位的内容则由硬件电路从TB8中直接送到发送移位器的第九位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置“1”,其他过程与方式1相同。 方式2的接收过程也于方式1基本类似,所不同的只在第9数据位上,串行口把接收到的前8个数据位送入SBUF,而把第九数据位送入RB。 方式2的波特率时固定的,而且有两种。一种是晶振频率的三十二分之一;另一种是晶振频率

14、的六十四分之一。即fosc/32和fosc/64。如用公式表示则为: 由此公式可知,当SMOD为0时,波特率为fosc/64,当SMOD为1时,波特率为fosc/32 18串行工作方式串行工作方式3 3 方式3同方式2几乎完全一样,只不过方式3的波特率是可变的,其波特率的确定同方式1,由用户来确定。19例例1 1 已知8051的串行口采用方式1进行通信,晶振频率为11.0592MHz,选用定时器T1作为波特率发生器,T1工作于方式2,要求通信的波特率为9600,计算T1的初值。 设Smod=0, 计算T1的初值如下: X = = 253 = 0FDH X = = 253 = 0FDH20例2

15、利用8051串行口将片内40H4FH单元中的数据发送出去,串行口工作于方式2,TB8作为奇偶位。 在数据写入发送缓冲器之前,先将数据的奇偶位写入TB8,这样使第9位数据作为校验位。 21汇编语言程序清单:汇编语言程序清单:TRS: MOV SCON, #80H ;设置串行口工作方式2 MOV PCON, #80H ;波特率为fosc/32 MOV R0, #40H ;设置片内数据指针 MOV R2, #10H ;数据长度送R2LOOP:MOV A, R0 ;取数据送A MOV C, P ;奇偶位送TB8 MOV TB8, C MOV SBUF, A ;启动发送WAIT:JBC TI, CONT ;判发送完标志 SJMP WAITCONT:INC R0 DJNZ R2, LOOP ;发送16个数据22

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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