打印

初学者问菜鸟问题

[复制链接]
1332|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
漫漫长路|  楼主 | 2007-7-30 23:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   刚学单片机半个月,可不是学生哦,现在在学数码管显示部分,前两天做好了数字钟,用C写的(我对C比汇编懂)。现在有一个问题,比如给一个变量赋值a=546892(随便6位数,用的是6位数码管),在数码管上如何才能显示出来啊?我试了一下,假使用dis_buf[4]=(a/100000)%10  dis_buf[3]=(a/10000)%10......dia_buf[0]=a%10,这种方法试过不行,想想看,作为变量a最大才到FF(即255),如果再定义3个变量把a的六位数分割成高、中、低位分别送到I/O口是可以实现的。我觉得再定义三个辅助变量有点累赘,请问老师们还有没有别的更简单的方法,是否要用到十进制转换成BCD码,具体怎么实现,我对BCD使用不是很了解,请老师们明示。
  先谢谢各位了。

相关帖子

沙发
conwh| | 2007-7-31 02:31 | 只看该作者

这里有BCD的转换程序,你可找下

使用特权

评论回复
板凳
gjg191| | 2007-7-31 08:06 | 只看该作者

你把a定义为unsigned int 不就能达到65536了吗?

你把a定义为unsigned int 不就能达到65536了吗?

使用特权

评论回复
地板
jimoom| | 2007-7-31 09:33 | 只看该作者

方法是对的

方法是对的,定义个 unsigned long 的类型的变量 a 就可以了 

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝