Ⅰ 单片机中的数据发送给上位机,首先要把要发送的数据赋给sbuf,这个数据应该是什么类型的
一般单片机和pc机通信,都是用串口通信的,协议简单,实现容易,程序易实现。
串行通信一般是需要以字节发送的,
所以,你的这个sbuf应该是字节型,char。
要注意的是,单片机和PC机的串口电平是不一样的,单片机是3.3或者5v的,pc机是12v的,需要加电平转换芯片,MAX232,或者max3232,不然你的电脑是收不到任何东西的,还可能把单片机烧了。
Ⅱ 51单片机中SBUF中读出的数据类型
SBUF读出来的是ASCII码,数据类型当然是unsigned char,所以如果你从PC发一个数字9给单片机,单片机实际接收到的数据是0x39(9对应的ASCII码),所以你在程序中判断的值应该是0x39而不是9。希望我的回答对你有帮助,谢谢!
Ⅲ SBUF的详细介绍!(51单片机)
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
SBUF是串口的数据寄存器,收到和发送的数据都放在这个寄存器中
串口接收和发送用的是p3·0和p3·1,跟其它管脚没有关系
收到数据后可以 temp= SBUF
发送时可以 SBUF=data……
Ⅳ 单片机中的SBUF究竟是什么
SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。
SBUF,全称:serial data buffer,中文名为串行数据缓冲器。这个重叠的地址靠读/写指令区分:串行发送数据时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收数据时,CPU从SBUF读出数据,此时99H表示接收SBUF。
(5)sbuf支持哪些数据类型扩展阅读
SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到 来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简 单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作。
如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。
Ⅵ 51单片机sbuf寄存器赋值给char类型的变量比方说sbuf里的数据是10000001,赋
sbuf 只是一个8位寄存器,送入什么数据,发出的还是周样的数据,至于变量类型,是你自己的解读方式,10000001,你可以将其看作-1,也可以看作是129
Ⅶ 51单片机SBUF什么意思
51单片机SBUF意思是SBUF串行口数据缓冲寄存器,分为输入和输出,但使用时用同一个名字。比如MOV SBUF,A(是输出),MOV A,SBUF(是输入)。SBUF既是接收缓冲器又是发送缓冲器,同一时间只能为一种,要么接收,要么发送。a=SBUF是把接收缓冲器中的数据复制给a。SBUF=a是把a中的数据复制给发送缓冲器。通过读写缓冲器SBUF实现数据收发功能。
Ⅷ 51单片机的SBUF是干嘛的,51单片机有几个SBUF,要是有好几个,怎么地址都是99H
1、51单片机的SBUF是用串口通信时,进行发送和接收的数据缓存器。用户将发送数据写入SBUF当中,就可以通过串口发送出去。而从串口接收到的数据也暂存在SBUF中,数据接收完后可从SBUF中读出。
2、51单片机物理上共有2个SBUF,1个接收SBUF和1个发送SBUF。虽然2个SBUF地址是相同,但物理上是分开的,单片机在接收和发送时硬件会自动识别SBUF。
3、两个SBUF地址是一样的,但是读数据的时候单片机机自动选择接收SBUF,而发送的时候自动选择发送SBUF。