用51单片机中的SBUF怎么传输两个字节的数据?

[复制链接]
20497|32
Cortex-M0 发表于 2012-3-1 18:59 | 显示全部楼层
Cortex-M0 老大都来顶我一下,真是惭愧啊·····
我用的是合并方法,,分两次发送,要显示小于256的数时得先发0,再发数,大于256得数直接发两次就行了。
这样有点麻烦,不过总算让我搞出来的,算是达到了自己预 ...
bin126_com 发表于 2012-3-1 18:36



加油~~~  :victory:
二月止境 发表于 2013-9-27 19:33 | 显示全部楼层
兄弟把你源代码发来我看看  我也是看哪个视频那道题,,还没做出来
guobaoteacher 发表于 2013-9-28 22:00 | 显示全部楼层
我也遇到这题啦,正在思考中
15056048066 发表于 2015-5-8 22:51 | 显示全部楼层
qinshihao 发表于 2012-2-29 19:48
支持楼上的想法,接受数据的那个51整一个字来存放SBUF中传过来的数据,每两次接收完SBUF的数据后,就进行显 ...

为什么强调用模式1呢?想问下,和模式3的区别,如果用 SM20 = 0把第九位忽略掉,效果是一样的吗?之前用方式3收发有问题,改为方式1后就好了。
1031565585 发表于 2015-5-9 22:58 | 显示全部楼层
fof循环怎样,我是菜鸟,瞎蒙的
中国微电脑网 发表于 2015-5-10 21:03 | 显示全部楼层
太复杂,懂得人很少!
zjsltc844139730 发表于 2015-5-13 14:37 来自手机 | 显示全部楼层
把一个大数右移八位   把移出来的八位放入sbuf   然后把高八位同样放入sbuf    最后单片机进行一个整合就能显示了      说穿了就是把一个大数拆成高八位和低八位分别传输
j375334078 发表于 2015-5-14 17:48 | 显示全部楼层
void Send_Uint(uint dat)                 
{
     Send_Uchar(dat&0xFF);             //先发送低8位
     Send_Uchar((dat>>8)&0xFF);  //再发送高8位
}
Send_Uchar(uchar data)发送单字节
ddllxxrr 发表于 2015-5-14 18:57 | 显示全部楼层
对,传一次在传一次,就是把16位分开传,到收时拼上
MatJenin 发表于 2020-3-28 14:10 | 显示全部楼层
本帖最后由 MatJenin 于 2020-3-28 19:26 编辑

这是2012年左右的帖子,现在已经2020年了,时间过得真快。我现在也遇到了这个问题,不过刚刚解决了。我用的方法是用两个独立键盘上的按键(P3^4和P3^5)来控制输入的是高4位还是低4位,如果要显示的数小于256,也就是不需要高四位,就先通过SBUF给单片机输入这个数,然后点P3^5对应按键就可;如果数高于256,就先输入高四位对应的16进制数,然后点P3^4对应按键,然后输入低四位再点P3^5对应按键即可。也就是说P3^4对应按键控制着高四位的输入,P3^5按键对应着低四位的输入。如想进一步的交流加Q3116363708。
yzl100205 发表于 2020-3-30 20:57 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部