专栏中心

EEPW首页 > 专栏 > 单片机控制数码管显示累减99,不能显示00

单片机控制数码管显示累减99,不能显示00

发布人:502593045 时间:2011-02-05 来源:工程师 发布文章
在做数码管显示99到00的过程中,出现了问题。
例1是不能显示00;
例2是对例1的修正,但例2是99捡到00并且都能显示,之后就会出现8.9-8.0之间的循环显示。
例3是对例2的修正即num> -1,结果正确。

例4的错误是在第一次减到00后开始从98减到0的循环 。
为了解决例4的问题,修改得到例5、6、7的结果都是正确的。

注意num的取值范围。本实验设置uint num(或uchar num),所以例3,例7虽然结果正确,但是不符合语法。

只有例5、6是正确的了。比较得到,例6最好。

欢迎留言点评或探讨。

例1:
  for(num=99;num>0;num--)
  {
   for(i=0;i<100;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
  }

例2:
  for(num=99;num>=0;num--)
  {
   for(i=0;i<100;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
  }

例3:
  for(num=99;num>-1;num--)         //num> -1
  {
   for(i=0;i<50;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
  }

例4:
  for(i=0;i<100;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
  if(num==0)
    num=99;
  num--;                       //必须放在if(num==0)num=99;之后,否则不显示00


例5:
  for(i=0;i<100;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
  if(num==0)
   {
    num=99;
    for(i=0;i<100;i++)
     {
     Data[0]=duanma[num/10];
     Data[1]=duanma[num%10];
     smg_display(2,2);
    }
   }
  num--;

例6:
    for(i=0;i<100;i++)
    {
      Data[0]=duanma[num/10];
      Data[1]=duanma[num%10];
      smg_display(2,2);
   }
    if(num>0)         //等同于  if(num==0)
        num--;          //                    num=999;
    else                 //              else
        num=99;     //                     num--;

例7:
   for(i=0;i<100;i++)
   {
    Data[0]=duanma[num/10];
    Data[1]=duanma[num%10];
    smg_display(2,2);
   }
   num--;
   if(num==-1)
   num=99;

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Bourns推出全新电阻式温度传感器(RTD)产品线,专为高精度与长期稳定需求而设计

[Android开发视频教学]Handler的使用(一)(14)

视频 2010-10-29

HT70XX系列电压检测器

[Android开发视频教学]Activity的布局初步(三)(11)

视频 2010-10-29

HT10xx 低压差微功耗三端稳压器

Tobii与意法半导体开启突破性座舱感知系统的量产

[Android开发视频教学]Android常见控件(二)(12)

视频 2010-10-29

英伟达将高性能 GPU 送入太空:这款计算机将为天基数据中心提供测试依据

BOE(京东方)亮相2025世界显示产业创新发展大会

[Android开发视频教学]Handler的使用(二)(15)

视频 2010-10-29

无惧ASIC毛利率加速下滑 IC设计抢单仍拚「唯快不破」

EDA/PCB 2025-11-06

DS4302 5位数模转换器(DAC)

资源下载 2007-03-20

从大理州苍山户外大赛看北斗与天通技术护航并实现“安全+生态”双重保障

[Android开发视频教学]常用控件(三)(13)

视频 2010-10-29

CIS行业技术迭代加速,格科连发三大新品,低功耗、黑光成像双突破

Pinterest 首席执行官吹捧开源人工智能:“巨大的性能”和更低的成本

DS3906 可变电阻和存储器

在 AI 需求不断增长期间如何应对 DDR4 停产

Nordic Semiconductor nRF91系列通过nuSIM解决方案简化蜂窝物联网连接

HT71XX系列高输入微功耗电压稳压器

更多 培训课堂
更多 焦点
更多 视频

技术专区