找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4285|回复: 12
打印 上一主题 下一主题
收起左侧

为什么显示十位要与16求余,与10求余不行 求大佬

  [复制链接]
跳转到指定楼层
楼主
ID:654651 发表于 2019-12-2 20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用串口助手向单片机发送12,让他在数码管上显示,从SBUF上接收到数据,为什么显示十位要与16求余,与10求余不行
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2019-12-3 02:08 | 只看该作者
串口助手发送的12是指0x12(十六进制),如果要显示1,只能0x12/16才是1,0x12%16才是2
回复

使用道具 举报

板凳
ID:10193 发表于 2019-12-3 08:00 | 只看该作者
接收的是16进制数
回复

使用道具 举报

地板
ID:213173 发表于 2019-12-3 08:13 | 只看该作者
串口助手向单片机发送12实际是16进制的0x12,是十进制的18。
回复

使用道具 举报

5#
ID:470332 发表于 2019-12-3 09:32 | 只看该作者
你串口助手向单片机以16进制或字符形式发送,看你用哪种方式了
回复

使用道具 举报

6#
ID:546770 发表于 2019-12-3 12:06 | 只看该作者
串口发送是以ASCLL码来发送的;
回复

使用道具 举报

7#
ID:514901 发表于 2019-12-3 16:54 | 只看该作者
看你串口发的是什么格式的,16进制肯定余16啦,10进制就余10
回复

使用道具 举报

8#
ID:654651 发表于 2019-12-3 20:47 | 只看该作者
csmyldl 发表于 2019-12-3 02:08
串口助手发送的12是指0x12(十六进制),如果要显示1,只能0x12/16才是1,0x12%16才是2

如果我发送一个三位数,如何让它三位分别在三个数码管上显示
回复

使用道具 举报

9#
ID:245004 发表于 2019-12-3 21:03 | 只看该作者
说的可能是BCD码,除以16就是二进制的右移4位;
你先弄清楚是以什么类型传递数据,例如16进制,10进制,BCD码...
别人猜的话范围很大,蒙对了就对了,蒙错了就错了,所以还是从对方角度考虑,提问题最好写两句代码,这样网友看了就明白了。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

10#
ID:642752 发表于 2019-12-3 21:28 | 只看该作者
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

num/256(百),num%256/16(十),num%16(个)    num为你要发送的数。
回复

使用道具 举报

11#
ID:655496 发表于 2019-12-3 21:40 | 只看该作者
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

如果是16进制的数字,百位=数值/16^2=数值/256,十位=(数值%256)/16,个位=(数值%256)%16
回复

使用道具 举报

12#
ID:654651 发表于 2019-12-5 09:08 | 只看该作者
卡瓦① 发表于 2019-12-3 21:28
num/256(百),num%256/16(十),num%16(个)    num为你要发送的数。

好的明白了,谢谢大佬
回复

使用道具 举报

13#
ID:654651 发表于 2019-12-5 09:14 | 只看该作者
bh2030693 发表于 2019-12-3 21:03
说的可能是BCD码,除以16就是二进制的右移4位;
你先弄清楚是以什么类型传递数据,例如16进制,10进制,BC ...

好的,下次会注意的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表