SBUF数据缓冲寄存器

SBUF 数据缓冲寄存器 这是一个可以直接寻址的 串行口 专用 寄存器 。有朋友这样问起过“为何在 串行口 收发中,都只是使用到同一个寄存器 SBUF ?而不是收发各用一个寄存器。”实际上 SBUF  包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。CPU 在读 SBUF  时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是 双缓冲 寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到 双缓冲 ,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作 SBUF 寄存器的方法则很简单,只要把这个99H 地址用关键字 sfr 定义为一个 变量 就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。

你可能感兴趣的:(computer,reference,单片机嵌入式)