聊一聊SCON串行口控制寄存器
Posted timerring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊一聊SCON串行口控制寄存器相关的知识,希望对你有一定的参考价值。
- SCON(Serial Control Register)串行口控制寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址,其字节地址为98H,地址位为98H~9FH。
1. 串行口状态控制寄存器 SCON
用来控制串行通信的方式选择、接收,指示串行口的中断状态。寄存器SCON既可字节寻址也可位寻址,字节地址为98H,位地址为98H~9FH。其格式如下:
- SM0和SM1(SCON.7,SCON.6)——串行口工作方式选择位。两个选择位对应4种通信方式,如下表所示。其中,fosc是振荡频率。
- TB8(SCON.3)——方式2和方式3中要发送的第9位数据。
在通信协议中,常规定TB8作为奇偶校验位。在80C51多机通信中,TB8=0用来表示数据帧;TB8=1表示是地址帧。 用软件置位/清除。 - RB8(SCON.2)——方式2和方式3中接收到的第9位数据。方式1中接收到的是停止位。方式0中不使用这一位。
- 方式2和方式3以11位为1帧传输,设有1个起始位(0),8个数据位,1个附加第9位和1个停止位(1)。其帧格式为:
- 附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。
2.串行口方式0 — 同步移位寄存器方式
当SM0=0、SM1=0时,串行口选择方式0。这种工作方式实质上是一种移位寄存器方式。
数据传输波特率固定为(1/12)fosc
由RXD(P3.0)引脚输入或输出数据
由TXD(P3.1)引脚输出同步移位时钟
接收/发送的是8位数据,传输时低位在前。
当一个数据写入SBUF后,串行数据将由RxD逐位移出;TxD输出移位时钟,频率=fosc1/12。
注意:每送出8位数据 TI就自动置1,再次发送前需要用软件清零 TI。
3.串行数据寄存器SBUF
- 包含在物理上是隔离的两个8位寄存器:发送数据寄存器和接收数据寄存器,它们共用一个地址——99H。
- 读SBUF(MOV A,SBUF),访问接收数据寄存器;写SBUF(MOV SBUF,A),访问发送数据寄存器。
- 2716是2K×8位程序存储器,芯片的地址引脚线有11条,顺次和单片机的地址线A0-A10相接。
- A13接片选端,由于不采用地址译码器,其他高4位地址线A11、A12、A14、A15不接,故有24=16个重叠的2KB地址空间。
- 只用一片2716,其片选信号CE也可直接接地(常有效),这时应有32个重叠的2KB地址空间。
上图所示连接电路的16个重叠的地址范围为
- 00000000000000000000011111111111,即0000H07FFH;
- 00001000000000000000111111111111,即0800H0FFFH;
- 00010000000000000001011111111111,即1000H17FFH;
- 00011000000000000001111111111111,即1800H1FFFH;
- ............
- 11000000000000001100011111111111,即C000HC7FFH;
- 11001000000000001100111111111111,即C800HCFFFH;
- 11010000000000001101011111111111,即D000HD7FFH;
- 11011000000000001101111111111111,即D800HDFFFH。
以上是关于聊一聊SCON串行口控制寄存器的主要内容,如果未能解决你的问题,请参考以下文章