溜溜佳 2022-06-02 19:32 采纳率: 50%
浏览 53
已结题

c51单片机计数问题

c语言,51单片机控制四位数码管从0000按秒计数到9999.外加一个按键控制暂停和开始。另一个按键控制按两秒计一次数。
自己编写的程序仿真不了,希望朋友们帮助一下。

  • 写回答

1条回答 默认 最新

  • 白驹_过隙 算法领域新星创作者 2022-06-02 20:15
    关注
    
    #include "reg52.h"
    typedef unsigned char u8;
    typedef unsigned int u16;
    #define smg P0
    sbit button_1=P3^0;
    sbit button_2=P3^1;
    u16 k = 0;
    u16 smgduan[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
     
    void delay(u16 i)
    {
        while(i--);
    }
    void keypros()
    {
        if (button_1 == 0)
        {
            delay(500);
            if (button_1 == 0)
            {
                if (k>=9999)
                {
                    k=0;
                }
                else
                {
                    k = k + 1;
                }
            }
            while(!button_1);   
        }
        if (button_2 == 0)
        {
            delay(500);
            if (button_2 == 0)
            {
                if (k<=0)
                {
                    k=9999;
                }
                else
                {
                    k = k-1;
                }
            }
            while(!button_2);
        }
    }
    void main()
    {
        int q,b,s,g;
        while(1)
        {
            keypros();
            q = k/1000;
            b = k%1000/100;
            s = k%100/10;
            g = k%10;
            delay(100);
     
            P2 = 0x07;
            smg = ~smgduan[q];
            delay(5);
     
            P2 = 0x0e;
            smg = ~smgduan[b];
            delay(5);
     
            P2 = 0x0d;
            smg = ~smgduan[s];
            delay(5);
     
            P2 = 0x0b;
            smg = ~smgduan[g];
            delay(5);
     
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月10日
  • 已采纳回答 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分