微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机串口通信及波特率设置

51单片机串口通信及波特率设置

时间:11-18 来源:互联网 点击:

,每位的发送过程与16分频计数器同步,而不是与“写SBUF”同步。

此方式的工作过程包括发送和接收两部分。

当执行任一条写SBUF指令时,就启动串行数据的发送。在执行写入SBUF的指令时,也将“1”写入发送移位寄存器的第9位,并使发送控制器开始发送。在这期间,内部的定时保证写入SBUF与激活发送之间有一个完整的机器周期。当发送脉冲有效后,移位寄存器的内容由RXD引脚串行移位输出,移位脉冲由TXD引脚输出。

在发送有效的每个机器周期,发送移位寄存器右移一位,就在其左边补“0 ”。当数据的最高位移到移位寄存器的输出时,原写入第9位的“1”正好移到最高位的左边一位,由此向左的所有位都为“0”,这标志着发送控制器要进行最后依次移位,并撤消发送有效,同时使发送中断标志TI置位。

当REN=1且接收中断标志RI位清除时,即启动一个接收过程。在下一个机器周期,接收控制器将“11111110”写入接收移位寄存器,并在下一周期内激发接收有效,同时由TXD引脚输出移位脉冲。在移位脉冲的控制下,接收移位寄存器的内容每一个机器周期左移一位,同时由RXD引脚接收一位输入信号。

每当接收移位寄存器左移一位,原写入的“11111110”也左移一位。当最右边的“0”移到最左边时,标志着接收控制器要进行最后一次移位。在最后移位即将结束时,接收移位寄存器的内容送入到接收数据缓冲寄存器SBUF,然后在启动接收的第10个机器周期时,清除接收信号,将RI置位。

如果在第一个时钟周期中接收到的不是起始位(“0”),就复位接收电路,继续检测RXD引脚上1到0的跳变。如果接收到的是起始位,就将其移入接收移位寄存器,然后接收该帧的其他位。接收到的位从右边移入,原来写入的1从左边移出,当起始位移到最左边时,接收控制器将控制进行最后一次移位,把接收到的第9为数据送到接收数据缓冲器SBUF和RB8,同时置位RI。

在进行最后一次移位时,能将数据送入到接收数据缓冲器SBUF和RB8而且置位RI的条件如下:

● RI=0,即上一真数据接收完成时,发出的中断请求已经被响应,SBUF中的上一帧数据已经被取走。

● SM2=0或接收到的停止位为1。

这两个条件有一个不满足接收到的数据就有可能丢失,并且无法修复;如两者都满足则数据装入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且SM1=1时,串口选择工作方式3。数据由TXD引脚发送由RXD引脚接收。

发送和接收的一帧信息为11位,即1位起始位(0),9位数位(低位在前,第9位数据位是可编程位)1位停止位(1)。发送时,可编程位(TB8)可赋0或1,接收时可编程位进入SCON中的RB8。帧的格式如下:

起始位0

D0

D1

D2

D3

D4

D5

D6

D7

可编程位D8

停止位1


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top