我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 170|回复: 0

[技术文章] 51驱动四个1位数码管,计数0-9999,没进位的不显示,最终代码V1.0

[复制链接]
  • TA的每日心情
    开心
    昨天 08:55
  • 签到天数: 77 天

    [LV.6]常住居民II

    7

    主题

    790

    回帖

    901

    积分

    二级逆天

    积分
    901

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2024-7-12 18:22:18 | 显示全部楼层 |阅读模式
    /*****************************
    编程人:刘利刊
    时  间:24年7月的一个下午

    *****************************/
    #include <reg51.h>

    #include <intrins.h>    //延时需要的头文件
    void Delay1000ms(void)        //@12.000MHz
    {
            unsigned char data i, j, k;

            _nop_();
            i = 8;
            j = 154;
            k = 122;
            do
            {
                    do
                    {
                            while (--k);
                    } while (--j);
            } while (--i);
    }


    int a,b,c,d,count=0;              
    int shi=0,bai=0,qian=0;     //十位、百位、千位默认显示数组的第一个元素0,    /*如果把第一个元素换成0XFF不显示,那进位后原本显示0的就不显示了,这里没找到好办法*/
    int G[11] = {0xff,0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};//定义的数组显示0-9,10个数,


    void main()
    {
            for(a=0; a<=9; a++)
               {
                            for(b=0; b<=9; b++)
                         {               
                                            for(c=0; c<=9; c++)
                                                {       
                                                             for(d=0; d<=9; d++)
                                                     {
                                                                        P3 = G[d+1];
                                                                  P2 = G[shi];
                                                                  P1 = G[bai];
                                                                  P0 = G[qian];
                                                                   Delay1000ms();
                                                                  count ++;
                                                                                    }
                                                             shi++;            //个位显示一轮后十位+1显示
                                                 if(count == 10)   //count = 10的话就是第一次进位,第一次进位显示1
                                                   {
                                                                      shi++;
                                                   }
                                                 if(shi == 11)     //判断十位是否加到9了,如果是则进位显示0
                                                         {
                                                                            shi = 1;
                                                         }
                                                             }
                                             bai++;                //十位显示一轮后百位+1显示
                                 if(count == 100)      //count = 100的话就是第一次进位,第一次进位显示1
                                         {
                                                            bai++;
                                         }
                                 if(bai == 11)         //判断百位是否加到9了,如果是则进位显示0
                                         {
                                                            bai = 1;
                                         }
                                            }         
                            qian++;                    //百位显示一轮后千位+1显示
                            if(count == 1000)          //count = 100的话就是第一次进位,第一次进位显示1
                        {
                                     qian++;
                        }
                            if(qian == 11)             //判断千位是否加到9了,如果是则进位显示0
                        {
                                     qian = 1;
                        }
               }
    }

    显示效果:


    后面的显示,需要的自己下载后验证


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表