51单片机SBUF什么意思?
51单片机SBUF意思是SBUF串行口数据缓冲寄存器,分为输入和输出,但使用时用同一个名字。比如MOV SBUF,A(是输出),MOV A,SBUF(是输入)。SBUF既是接收缓冲器又是发送缓冲器,同一时间只能为一种,要么接收,要么发送。a=SBUF是把接收缓冲器中的数据复制给a。SBUF=a是把a中的数据复制给发送缓冲器。通过读写缓冲器SBUF实现数据收发功能。
SBUF简介:
SBUF全称serial data buffer,中文名称“串行数据缓冲器”。
这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据。
99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,99H表示接收SBUF。
串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器。
SBUF在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。
单片机中的SBUF究竟是什么?
SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。
SBUF,全称:serial data buffer,中文名为串行数据缓冲器。这个重叠的地址靠读/写指令区分:串行发送数据时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收数据时,CPU从SBUF读出数据,此时99H表示接收SBUF。
扩展资料
SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到 来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简 单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作。
如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。
参考资料来源:百度百科-SBUF
SBUF的详细介绍!(51单片机)
SBUF---即串口数据缓冲寄存器
MCS-51串行口有两个在物理上独立的串行数据缓冲寄存器SBUF, 这两个缓冲寄存器共用一个地址99H,(它们都是字节寻址的寄存器,字节地址均为99H。)这个重叠的地址靠读/写指令加以区别.
区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。
其中:发送缓冲寄存器SBUF只能写,不能读; 接收缓冲寄存器SBUF只能读,不能写.
即:若要通过串口发送数据,只需要往***uf里写数据,发送完毕后会引起串口中断。
发送指令: MOV SBUF,A ;CPU把累加器A中的内容写入发送的SBUF(99H),再由TXD引脚一位一位地向外发送,
即:若接收数据,只需要在串口中断标志位置位后(通过中断方式或查询方式),就可读取***uf中的内容了。
接收指令: MOV A, SBUF ;接收端RXD一位一位地接收数据,直到收到一个完整的字符数据后,则通知CPU,再通过这条指令CPU从SBUF(99H)中读出数据,并送到累加器中.
关于SBUF和生不逢时是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。