聊一聊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个重叠的地址范围为
0000000000000000
0000011111111111,即0000H07FFH;0000100000000000
0000111111111111,即0800H0FFFH;0001000000000000
0001011111111111,即1000H17FFH;0001100000000000
0001111111111111,即1800H1FFFH; ............
1100000000000000
1100011111111111,即C000HC7FFH;1100100000000000
1100111111111111,即C800HCFFFH;1101000000000000
1101011111111111,即D000HD7FFH;1101100000000000
1101111111111111,即D800HDFFFH。