您好,欢迎访问一九零五行业门户网

80C51单片机串行口寄存器结构

80c51单片机串行口是由发送缓冲寄存器sbuf、发送控制器、发送控制门、接收缓冲寄存器sbuf、接收控制寄存器、移位寄存器和中断等部分组成。
1.sbuf
在逻辑上,sbuf只有一个,既表示发送寄存器,又表示接收寄存器。具有同一个单元地址99h。在物理上,sbuf有两个,一个是发送寄存器,另一个是接收寄存器。在逻辑上,sbuf只有一个,既表示发送寄存器,又表示接收寄存器。具有同一个单元地址99h。在物理上,sbuf有两个,一个是发送寄存器,另一个是接收寄存器。
2.控制寄存器
与串行通信有关的控制寄存器共有三个。
(1)串行控制寄存器scon
scon是80c51的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址98h,位地址9fh-98h。寄存器及位地址表示如下:
位址址
9f
9e
9d
9c
9b
9a
99
98
位符号
sm0
sm1
sm2
ren
tb8
rb8
ti
ri
各位功能说明如下:
①sm0 sm1--- 串行口工作方式选择位
串口4种工作方式不同之处在于其通信协议不同,即帧格式与波特率的不同。4种工作方式与其对应的帧格式与波特率如下:
其中,smod为电源控制寄存器pcon 的最高位,f为系统主频,t1溢出率的概念在后文中介绍。
②sm2--- 多机通信控制位
在进行多机通信时,需要用sm2控制从机是准备接收地址还是接收数据。当串行口以方式2或方式3接收时,若sm2=1,则只有当接收到的第九位数据(rb8)为1,才将接收到的前8位地址送入sbuf,并置位ri产生中断请求;否则,将接收到的8位地址丢弃。而当sm2=0时,则不论第九位数据为0还是为1,都将前8位数据装入sbuf中,并产生中断请求。在方式0,1时,sm2必须为0。
③ren--- 允许接收位
ren位用于对串行数据的接收进行控制:
ren=0 禁止接收
ren=1 允许接收
该位由软件置位或复位。
④tb8 --- 发送数据的第9位
在方式2和方式3时,tb8是发送的第9位数据。在多机通信中,以tb8位的状态表示主机发送的是地址还是数据;tb8=0为数据,tb8=1为地址。该位由软件置位或复位。
⑤rb8--- 接收数据位的第9位数据
在方式2或方式3时,rb8存放接收到的第9位数据,代表着接收的某种特征,故应根据其状态对接收数据进行操作。
⑥ti --- 发送中断标志
当方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。因此ti=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。ti位由软件清0。
⑦ri --- 接收中断标志
当方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。因此ri=1,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。ri位由软件清0。
(2)电源控制寄存器pcon
pcon主要是为chmos型单片机的电源控制而设置的专用寄存器。单元地址为87h。其内容如下:
在hmos的单片机中,该寄存器中除最高位之外,其它位都是虚设的。最高位(smod)是串行口波特率的倍增位,当smod=1时串行口波特率加倍。系统复位时,smod=0。pcon寄存器不能进行位寻址,因此表中写了“位序”而不是“位地址”。
其它类似信息

推荐信息