发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: bin126_com
手机看帖
扫描二维码
随时随地手机跟帖
21
Cortex-M0| | 2012-3-1 18:59 | 只看该作者 回帖奖励 |倒序浏览
Cortex-M0 老大都来顶我一下,真是惭愧啊·····
我用的是合并方法,,分两次发送,要显示小于256的数时得先发0,再发数,大于256得数直接发两次就行了。
这样有点麻烦,不过总算让我搞出来的,算是达到了自己预 ...
bin126_com 发表于 2012-3-1 18:36



加油~~~  :victory:

使用特权

评论回复
22
二月止境| | 2013-9-27 19:33 | 只看该作者
兄弟把你源代码发来我看看  我也是看哪个视频那道题,,还没做出来

使用特权

评论回复
23
guobaoteacher| | 2013-9-28 22:00 | 只看该作者
我也遇到这题啦,正在思考中

使用特权

评论回复
24
15056048066| | 2015-5-8 22:51 | 只看该作者
qinshihao 发表于 2012-2-29 19:48
支持楼上的想法,接受数据的那个51整一个字来存放SBUF中传过来的数据,每两次接收完SBUF的数据后,就进行显 ...

为什么强调用模式1呢?想问下,和模式3的区别,如果用 SM20 = 0把第九位忽略掉,效果是一样的吗?之前用方式3收发有问题,改为方式1后就好了。

使用特权

评论回复
25
1031565585| | 2015-5-9 22:58 | 只看该作者
fof循环怎样,我是菜鸟,瞎蒙的

使用特权

评论回复
26
中国微电脑网| | 2015-5-10 21:03 | 只看该作者
太复杂,懂得人很少!

使用特权

评论回复
27
zjsltc844139730| | 2015-5-13 14:37 | 只看该作者
把一个大数右移八位   把移出来的八位放入sbuf   然后把高八位同样放入sbuf    最后单片机进行一个整合就能显示了      说穿了就是把一个大数拆成高八位和低八位分别传输

使用特权

评论回复
28
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)发送单字节

使用特权

评论回复
29
ddllxxrr| | 2015-5-14 18:57 | 只看该作者
对,传一次在传一次,就是把16位分开传,到收时拼上

使用特权

评论回复
30
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。

使用特权

评论回复
31
yzl100205| | 2020-3-30 20:57 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则