单片机中的SBUF究竟是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/11 01:25:31
是单片机通过SBUF再通过移位寄存器实现串入并出吗?SBUF=0x80是发送数据吗?那接受数据代码怎么写?

单片机里面其实有两个SBUF,但名字都一样,一个只读,一个只写,两个SBUF就是靠读写指令区分。当发送SBUF里有数据时串口就会把数据串行送出;当串口接收到数据时就会把串行数据转成并行数据存在接收SBUF里。
SBUF=0x80是发送数据,要接收数据时这样写:
unsigned char c;//或者char c;
while (!RI); //等待接收数据
RI=0; //需要软件清标志位
c=SBUF; //读取数据

  单片机中的SBUF简介:
  SBUF全称serial data buffer,中文名称“串行数据缓冲器”,这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。
  串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。

是串口的寄存器。只要用好就行了,如果想理解原理会越来越乱。我一开始也是很迷糊,现在也还有些迷糊,但是能用就行了。