打印

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

[复制链接]
4278|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时不再做零检测,直接显示

使用特权

评论回复
5
s51983| | 2013-5-15 09:09 | 只看该作者
设置显示标志位为0,
从左向右循环

    检测到第一个不为0的值时将显示标志位置1;
    如果(显示标志位位==1)
    {
        显示
    }

使用特权

评论回复
6
触觉的爱| | 2013-5-15 09:52 | 只看该作者
加一个清零的码,用来关闭不需要显示的位

再或者控制公共端,每一位都有个公共端,关闭它就不会显示了。

使用特权

评论回复
7
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

粉丝