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

我想实现输入什么数,输出什么数,也就是输入十进制,输出十进制数,请问怎么实现?怎样才能手动输入的数是十进制呢?谢谢

两个解决办法啊:
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码的形式
然后在分别取每一位数送去显示
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-29
这个可以转换一下嘛,随便在哪边转一下就可以了,
unsigned char BCD_16_10(unsigned char dat)
{
unsigned char d;
d=((dat/16)*10+(dat%16));
return d;
}
相似回答