单片机串口通信理解(一)
文章目录
一、单片机串口通信寄存器
SBUF(serial data buffer)用于串口数据传输,在51单片机内部分为两个物理上独立的8位缓冲器:发送缓冲器和接收缓冲器。而这两个缓冲器共用一个名称SBUF,共用一个地址99H,这意味着在程序中对SBUF进行修改时,发送缓冲器和接收缓冲器的值都会改变,且发送缓冲器与接受缓冲器的值始终相等。
那么物理上独立是什么意思呢?物理上独立指的是在51单片机的硬件中存在发送缓冲器和接收缓冲器。其中,
在执行写指令 MOV SBUF , A 时发送缓冲器起作用
在执行读指令 MOV A , SBUF 时接受缓冲器起作用
这意味着通过物理上独立的SBUF缓冲器可以实现全双工通信。
SM2:多机通信控制位
用于多机通信中的从机,仅用于从机被寻址的阶段。在一次通信过程正式开始前,从机接收并侦测主机发出的每一个信息帧,试图寻找呼叫自身的地址码。换句话说,SM2位用于从机筛选自身,一旦筛选完毕,该位的使命就完成了。
REN:串口接受允许位
对于单片机来说,数据的发送过程是主动的,只要将发送数据送入SBUF,发送过程就开始了。但数据的接收是被动的,一旦数据到来,串口便会自动接收而不管CPU是否需要接收。因此需要有控制的接收行为。REN=1,允许串口接收;REN=0,不允许串口接收。
TB8:发送的第9位数据
在方式2和方式3中发送的第9位数据,TB8=1,说明主机发送的是地址;TB8=0,说明主机发送的是数据。
RB8:接收的第9位数据
在方式2和