4位数码管显示任意4位数以内的数字,求助

[复制链接]
5164|6
 楼主| xp1314520 发表于 2013-5-14 21:54 | 显示全部楼层 |阅读模式
怎样用4位数码管显示任意4位数以内的数字,高位是0就不显示,只显示低位的。我的程序是送1000就显示1000,送100就显示0100,送10就显示0010,送1就显示0001。要解决的问题是:送1000就显示1000,送100就显示100,送10就显示10,送1就显示1。高位的0不显,求指教。
  display(1,GAuB_char_tbl[shi%10000/1000]);
   display(2,GAuB_char_tbl[shi%1000/100]);
   display(3,GAuB_char_tbl[shi%100/10]);
   display(4,GAuB_char_tbl[shi%10]);
   
quyifei 发表于 2013-5-14 21:55 | 显示全部楼层
要不停的刷才行,需要一个while循环。
 楼主| xp1314520 发表于 2013-5-14 21:59 | 显示全部楼层
quyifei 发表于 2013-5-14 21:55
要不停的刷才行,需要一个while循环。

怎样才能不让高位的0显示出来,万分感谢哦
艺术家58 发表于 2013-5-15 01:00 | 显示全部楼层
加一个标志位,标志位置1,高位开始:是零的就不显示,是1到9的显示并把标志位置0,标志为0时不再做零检测,直接显示
s51983 发表于 2013-5-15 09:09 | 显示全部楼层
设置显示标志位为0,
从左向右循环

    检测到第一个不为0的值时将显示标志位置1;
    如果(显示标志位位==1)
    {
        显示
    }
触觉的爱 发表于 2013-5-15 09:52 | 显示全部楼层
加一个清零的码,用来关闭不需要显示的位

再或者控制公共端,每一位都有个公共端,关闭它就不会显示了。
zhjun 发表于 2013-5-15 13:32 | 显示全部楼层
for (i=msb,i>0,i--) //0=lsb
{if  (buf[i]==0)
           {buf[i]=0;}
else break;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

57

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部