找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3101|回复: 12
收起左侧

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

  [复制链接]
ID:654651 发表于 2019-12-2 20:58 | 显示全部楼层 |阅读模式
我用串口助手向单片机发送12,让他在数码管上显示,从SBUF上接收到数据,为什么显示十位要与16求余,与10求余不行
回复

使用道具 举报

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。
回复

使用道具 举报

ID:470332 发表于 2019-12-3 09:32 | 显示全部楼层
你串口助手向单片机以16进制或字符形式发送,看你用哪种方式了
回复

使用道具 举报

ID:546770 发表于 2019-12-3 12:06 | 显示全部楼层
串口发送是以ASCLL码来发送的;
回复

使用道具 举报

ID:514901 发表于 2019-12-3 16:54 | 显示全部楼层
看你串口发的是什么格式的,16进制肯定余16啦,10进制就余10
回复

使用道具 举报

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

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

使用道具 举报

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

评分

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

查看全部评分

回复

使用道具 举报

ID:642752 发表于 2019-12-3 21:28 | 显示全部楼层
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

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

使用道具 举报

ID:655496 发表于 2019-12-3 21:40 | 显示全部楼层
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

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

使用道具 举报

ID:654651 发表于 2019-12-5 09:08 | 显示全部楼层
卡瓦① 发表于 2019-12-3 21:28
num/256(百),num%256/16(十),num%16(个)    num为你要发送的数。

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

使用道具 举报

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 单片机教程网

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