SBUF的详细介绍!(51单片机)

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-01
51单片机的SBUF的具体作用,详细点

SBUF其实是有两个,只是名字一样而已,一个是只读当作接收缓冲SBUF,一个是只写当作发送缓冲SBUF,收到数据就把数据放到接收缓冲SBUF,读一次后自动清除接收缓冲SBUF,发送数据就把数据放到发送缓冲SBUF,发送完自动清除发送缓冲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---即串口数据缓冲寄存器

MCS-51串行口有两个在物理上独立的串行数据缓冲寄存器SBUF, 这两个缓冲寄存器共用一个地址99H,(它们都是字节寻址的寄存器,字节地址均为99H。)这个重叠的地址靠读/写指令加以区别.

区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

其中:发送缓冲寄存器SBUF只能写,不能读; 接收缓冲寄存器SBUF只能读,不能写.

即:若要通过串口发送数据,只需要往sbuf里写数据,发送完毕后会引起串口中断。
发送指令: MOV SBUF,A ;CPU把累加器A中的内容写入发送的SBUF(99H),再由TXD引脚一位一位地向外发送,

即:若接收数据,只需要在串口中断标志位置位后(通过中断方式或查询方式),就可读取sbuf中的内容了。
接收指令: MOV A, SBUF ;接收端RXD一位一位地接收数据,直到收到一个完整的字符数据后,则通知CPU,再通过这条指令CPU从SBUF(99H)中读出数据,并送到累加器中.

这个不好讲...有两个SBUF...但地址是一样的...一个只能写,不能读...另一个只能写,不能读...但用的时候不用管它只管读就好了

  • 51单片机SBUF什么意思?
    答:51单片机SBUF意思是SBUF串行口数据缓冲寄存器,分为输入和输出,但使用时用同一个名字。比如MOV SBUF,A(是输出),MOV A,SBUF(是输入)。SBUF既是接收缓冲器又是发送缓冲器,同一时间只能为一种,要么接收,要么发送。a=SBUF是把接收缓冲器中的数据复制给a。SBUF=a是把a中的数据复制给发送缓冲器。...
  • 51单片机的SBUF是干嘛的,51单片机有几个SBUF,要是有好几个,怎么地址都...
    答:1、51单片机的SBUF是用串口通信时,进行发送和接收的数据缓存器。用户将发送数据写入SBUF当中,就可以通过串口发送出去。而从串口接收到的数据也暂存在SBUF中,数据接收完后可从SBUF中读出。2、51单片机物理上共有2个SBUF,1个接收SBUF和1个发送SBUF。虽然2个SBUF地址是相同,但物理上是分开的,单片机在...
  • 单片机中的SBUF究竟是什么?
    答:SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。SBUF,全称:serial data buffer,中文名为串行数据缓冲器。这个重叠的地址靠读/写指令区分:串行发送数据时,CPU向SBUF写入数据,此时99H...
  • 51单片机的SBUF的具体作用,详细点
    答:SBUF其实是有两个,只是名字一样而已,一个是只读当作接收缓冲SBUF,一个是只写当作发送缓冲SBUF,收到数据就把数据放到接收缓冲SBUF,读一次后自动清除接收缓冲SBUF,发送数据就把数据放到发送缓冲SBUF,发送完自动清除发送缓冲SBUF
  • 51单片机串行通信缓冲器SBUF占用“同一”地址99H怎么理解?
    答:SBUF是接收和发送两个8位寄存器,物理上是独立的,但共用一个地址99H。只所以不会冲突,是因为它们分别受“写SBUF”和“读SBUF”两个信号控制,这两个信号源自CPU的“写”和“读”,此二者是“非”的关系。当“写SBUF”有效时,“读SBUF”必无效。有效信号所接的SBUF被与系统总线连通,同时无效...
  • 单片机C语言中 SBUF可以直接传递数吗?
    答:51单片机的SBUF,称为SFR,特殊功能寄存器,本质上是一个寄存器,或者更准确的说,是两个物理寄存器,共用一个寄存器地址。写SBUF,访问的是串行输出寄存器,读SBUF,访问的是串行输入寄存器。另一方面要注意的是,写串行输出寄存器,可以导致串口开始发送数据,这个是由输出寄存器的控制逻辑有关的。所以,直接...
  • 单片机串口收发中,用printf和用sbuf的区别在哪里
    答:sbuf 是51单片机中的串口数据寄存器,接收和发送用的都是它(实际是两个寄存器),而printf是C语言的库函数,它可以通过串口和并口输出数据,若用串口输出数据,需重新定位fput c()函数,printf调用fput c()函数,fput c()函数调用串口发送命令,最终是操作sbuf 这个寄存器 ...
  • 单片机问题:SUB是什么?
    答:51单片机里没有这个关键词,一般有这样几个用法可能涉及到:1,减法指令,不过减法指令是:SUBB 2,子程序的标号,有时会用SUB当子程序的标号。
  • 关于51单片机SBUF的理解
    答:SBUF实际上是两个部分组成的,一个是这能读的接收字节,一个直只能写的发射字节,由于一个只能读一个只能写,所以在串口通信时使用的是同一个地址。串口通信接收时当接收到一个完整字节时会产生一个接收中断标志,即RI自动硬件置1,此时可以读出该字节,读出之后存放的位置是有程序设计人员自己决定的,...
  • 51单片机的SBUF是存储一位数据发送一位吗
    答:是的51单片机有21个寄存器。这21个寄存器不连续地分布在128个字节的SFR存储空间中。地址空间为80H-FFH,在这片SER空间里面,包含有128个位地址空间,地扯也是80H-FFH,但只有83个有效似地址,可对11个特殊功能寄存器的某些位作位寻址操作。