单片机串行口中,SBUF起到了什么作用。不要ctrl+v的答案。在线等。。

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:02:17
再具体一点。关于数据的写入和读出上,有什么特别的地方。

SBUF我个人认为是起到一个传输纽带的作用
#include <reg51.h>

void main(void)
{

TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
EA=1;
ES=1;
TR1=1;
REN=1;
SM0=0;
SM1=1;

P0=0xFF;
while (1)
{

}
}
void timer4() interrupt 4
{
RI=0;
P0=SBUF;
P0=~P0;

}

这程序是将从电脑通过串口向单片机发送数据,发送数据的数据暂存在SBUF ,然后用程序付给P0,利用单片机想电脑发送数据就掉转来,SBUF=P0,
记住,P0=SBUF和SBUF=P0
这两个SBUF是不同的

特别之处在于:

一个地址,但是实际上是两个寄存器,发送是一个,接收是一个。

写的时候是访问的发送寄存器,读的时候访问的是接收寄存器。

不就是 接收 发送 数据 的 缓冲区 嘛?

收发缓冲,共用同一个地址,但是内部是独立的,收发各一个。