51单片机串口通信及波特率设置_第1页
51单片机串口通信及波特率设置_第2页
51单片机串口通信及波特率设置_第3页
51单片机串口通信及波特率设置_第4页
51单片机串口通信及波特率设置_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机串口通信及波特率设置MCS-51单片机具有一个全双工的串行通信接口,能同时进行发送和接收。它可以作为UART (通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。1. 数据缓冲寄存器SBUFSBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存 器一个接收寄存器, CPU写SBUF就是修改发送寄存器;读 SBUF就是读接收寄存器。接 收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问

2、题。2. 状态控制寄存器 SCONSCON是一个逐位定义的8位寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H9FH。它的各个位定义如下:MSBLSBSM0SM1SM2RENTB8RB8TIRISM0和SM1是串口的工作方式选择位,2个选择位对应4种工作方式,如下表,其中Fosc是振荡器的频率。SM0SM1工作方式功能波特率0008位同步移位寄存器Fosc/1201110 位 UART可变102J11 位 UARTFosc/64 或 Fosc/3211311 位 UART可变SM2在工作方式2和3中是多机通信的使

3、能位。在工作方式0中,SM2必须为0。在工作方式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。在工作方式2和3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志 RB8 不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。此功能可用于多处理机通信。REN为允许串行接收位,由软件置位或清除。置位时允许串行接收,清除时禁止串行 接收。TB8是工作方式2和3要发送的第9位数据。在许多通信协议中该位是奇偶位,可以按需要由软件置位或清除。在多处理机通信中,该位用于表示是地址帧还是数据帧。RB8是工作方式2和3中接收到的第9位数据(例如是奇偶位或者地址/

4、数据标识位),在工作方式1中若SM2=0,贝U RB8是已接收的停止位。在工作方式0中RB8不使用。TI为发送中断标志位,由硬件置位,软件清除。工作方式0中在发送第8位末尾由硬件置位;在其他工作方式时,在发送停止位开始时由硬件置位。TI=1时,申请中断。CPU响应中断后,发送下一帧数据。在任何工作方式中都必须由软件清除TI。RI为接收中断标志位,由硬件置位,软件清除。工作方式0中在接收第8位末尾由硬件置位;在其他工作方式时,在接收停止位的中间由硬件置位。RI=1时,申请中断,要求CPU取走数据。但在工作方式 1中,SM2=1且未接收到有效的停止位时,不会对RI置位。在任何工作方式中都必须由软件

5、清除RI。系统复位时,SCON的所有位都被清除。控制寄存器PCON也是一个逐位定义的 8位寄存器,目前仅仅有几位有定义,如下所示:SMODGF1GF0PDIDL仅最高位SMOD与串口的控制有关,其他位与掉电方式有关。 PCON的地址为87H只能按 字节寻址,SMOD是串行通信波特率系数控制位,当串口工作在工作方式1、2时,若使用T1作为波特率发生器其 SMOD=1则波特率加倍(见下面详述)。GF1和GFO用于一般的用途,对于 AT89系列为通用的标志位,PD为电源下降位,对于AT89系列,PD为1进入掉电状态,IDL为IDLE模式位,对于 AT89系列,IDL为1进 入空闲工作方式,在 PD和

6、IDL同时为1时,PD优先。(1)工作方式0SM0=0且SM1=0时,串口选择工作方式 0,实质这是一种同步移位寄存器模式。其数据传输的波特率固定为Fosc/12,数据由RXD引脚输入或输出,同步时钟由TXD弓I脚输出。接收/发送的是8位数据,传输是低位在前,帧格式如下:D0D1D2D3D4D5D6D7(2)工作方式1当SM0=0且SM仁1时,串口选择工作方式1 ,其数据传输的波特率由定时 /计数器T1、 T2的溢出速率决定,可通过程序设定。当T2CON寄存器中的RCLK和TCLK置位时,用T2作为发送和接收波特率发生器,而RCLK=TCLK=0时,用T1作为波特率发生器,两者还可以交叉使用,

7、即发送和接收采用不同的波特率。数据由TXD引脚发送,由 RXD弓|脚接收。发送或接收一帧的数据为10位,即1位起始位(0)、8位数据位(低位在先)和 1位停止位(1)。真格式如下:起始位0 D0 D1 D2 D3 D4 D5 D6 D7 停止位1类似于工作方式0,当执行任一条SBUF指令时,就启动串行数据的发送。在执行写入SBUF的指令时,也将“ 1写入发送移位寄存器的第 9位,并通知发送控制器有发送请求。实际上, 发送过程始于内部的 16分频计数器下次满度翻转(全“ 1变全“0”后的那几个机器周期的开始。所以,每位的发送过程与16分频计数器同步,而不是与写SBUF同步。此方式的工作过程包括发

8、送和接收两部分。当执行任一条写SBUF指令时,就启动串行数据的发送。在执行写入SBUF的指令时,也将“1写入发送移位寄存器的第9位,并使发送控制器开始发送。在这期间,内部的定时保证写入SBUF与激活发送之间有一个完整的机器周期。当发送脉冲有效后,移位寄存器的内容由RXD引脚串行移位输出,移位脉冲由TXD引脚输出。在发送有效的每个机器周期,发送移位寄存器右移一位,就在其左边补“ 0。”当数据的最高位移到移位寄存器的输出时,原写入第9位的“1正好移到最高位的左边一位,由此向左的所有位都为“ 0;这标志着发送控制器要进行最后依次移位,并撤消发送有效,同时使发送 中断标志TI置位。当REN=1且接收中

9、断标志 RI位清除时,即启动一个接收过程。在下一个机器周期, 接收控制器将“11111110写入接收移位寄存器, 并在下一周期内激发接收有效,同时由TXD引脚输出移位脉冲。在移位脉冲的控制下,接收移位寄存器的内容每一个机器周期左移一位, 同时由RXD引脚接收一位输入信号。每当接收移位寄存器左移一位,原写入的“ 11111110也左移一位。当最右边的 “ 0移到最左边时,标志着接收控制器要进行最后一次移位。 在最后移位即将结束时, 接收移位寄存器的 内容送入到接收数据缓冲寄存器 SBUF,然后在启动接收的第 10个机器周期时,清除接收信号,将RI置位。如果在第一个时钟周期中接收到的不是起始位 引

10、脚上1到0的跳变。如果接收到的是起始位, 的其他位。接收到的位从右边移入,原来写入的 收控制器将控制进行最后一次移位,把接收到的第(“ 0),就复位接收电路,继续检测RXD 就将其移入接收移位寄存器,然后接收该帧1从左边移出,当起始位移到最左边时,接9为数据送到接收数据缓冲器SBUF和RB8,同时置位RI。在进行最后一次移位时, 能将数据送入到接收数据缓冲器SBUF和RB8而且置位RI的条件如下: RI=0,即上一真数据接收完成时,发出的中断请求已经被响应,SBUF中的上一帧数据已经被取走。 SM2=0或接收到的停止位为 1。这两个条件有一个不满足接收到的数据就有可能丢失,并且无法修复;如两者

11、都满足则数据装入SBUF,停止位装入 RB8且置位 RI。开始发送后的一个位周期,发送信号有效,开始将起始位送TXD引脚。一位时间后,数据信号有效。发送移位寄存器将数据由低位到高位顺序输出至TXD引脚。一位时间后第一个移位脉冲出现,将最低数据位从右边移出,同时从左边补上“0。当数据的最高位移到移位寄存器的输出端时,先前写入第9位的“1正好移到最高位的左边一位,而它的左区全部为“0。在第10个位周期(16分频计数器回0时),发送控制器要进行最后一次清除发送 信号,同时使发送中断标志 TI置位。当REN=1且接收中断标志 RI位清除后,若在 RXD引脚上检测到一个由“ 1 到 “0的跳变,立即启动一次接收的过程。同时复位16分频计数器,使输入位的边沿与时钟对齐,并将1FFH( 9个“ 1)写入接收移位寄存器。接收控制器继续以波特率的16倍的速率继续对RXD引脚进行检测,对每一位时间的第7、8、9个计数状态的采样值用多数表决法,当 2次或2次以上的采样值相同时,采样值被接受。(1)工作方式2和3当SM0=1且SM1=0时,串口选择工作方式 2,当SM0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论