用串口通信控制单片机数码管的问题:我在电脑上输入的是16进制数,输出来的是十进制数

我想实现输入什么数,输出什么数,也就是输入十进制,输出十进制数,请问怎么实现?怎样才能手动输入的数是十进制呢?谢谢... 我想实现输入什么数,输出什么数,也就是输入十进制,输出十进制数,请问怎么实现?怎样才能手动输入的数是十进制呢?谢谢 展开
 我来答
百度网友cf286434c
2012-09-29 · TA获得超过195个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:90.7万
展开全部
两个解决办法啊:
1)你在电脑端直接输入10进制数,那么你显示的就是10进制数
2)如果你要显示你输入的16进制数MCU端不要直接将接到的数直接/10 %10,这计算出的全部是10进制数。
直接取高4位,送去显示,然后取低四位送去显示,那就可以了
程序的话,一个char rx_data
msb = unsigned char (rx_data >> 4)
lsb = unsigned char(rx_data & 0x0f)
然后msb送去十位显示
LSB送去低位显示就是你需要的数了
或者用1楼的方法,将你要显示的数转化成BCD码的形式
然后在分别取每一位数送去显示
960310983
2012-09-29 · TA获得超过352个赞
知道小有建树答主
回答量:867
采纳率:0%
帮助的人:211万
展开全部
这个可以转换一下嘛,随便在哪边转一下就可以了,
unsigned char BCD_16_10(unsigned char dat)
{
unsigned char d;
d=((dat/16)*10+(dat%16));
return d;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式