80C51的串行口结构和原理(1-概念)
2022-04-14 来源:eefocus
1.串行通信(一位一位逐个传输):异步通信(不同时钟控制数据)、同步通信;
并行通信:(数据字节的各位用多条数据线进行同时传输);
2. 8N1,一个起始位(一个字节),8个数据位,一个停止位。
通常的SCI 或UART 串行数据格式(8N1) 编码每个字节场的长度是10 个比特时间(BIT TIME)。 起始位START BIT 是一个显性位,它标志着字节场的开始。
接着是8 个数据位,首先发送最低位。停止位STOP BIT 是一个隐性位,它标志着字节场的结束
3.80C51串行口结构
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD、TXD,同时发送、接收数据,实现全双工。
SCON:用以设定串行口工作方式,接收/发送控制及设置状态标志的特殊功能寄存器。
四种工作方式:
其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。 该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。
REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。
TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。在多机通信中它代表传输的地址或数据,TB8=0 为数据,TB8=1 时为地址。
RB8 :在方式2、3 中,RB8 是接收机接收到的第9 位数据,该数据正好来自发送机的TB8,从而识别接收到的数据特征。
TI :串行口发送中断请求标志。当CPU 发送完一串行数据后,此时SBUF 寄存器为空,硬件使TI 置1,请求中断。CPU 响应中断后,由软件对TI 清零。
RI :串行口接收中断请求标志。当串行口接收完一帧串行数据时,此时SBUF 寄存器为满,硬件使RI 置1,请求中断。CPU 响应中断后,用软件对RI 清零。
PCON
只有SMOD(波特率倍增位)与串行口工作相关。串行口方式为1,2,3时,SMOD=1 波特率提高一倍,复位时SMOD = 0 ;
波特率 = (2^SMOD/32)* 定时器T1溢出率 = (2^SMOD/32)* (fosc/12*(256-X))
如:
9600 X = 253 0xfd
4600 X=250 0xfa
2400 X=244 0xf4