用两个按键控制两位数码管,其中1个加键,1个减键,按一次加键数码管加1,按一次减键数码管减1,两位数码管可以显示00~99。



代码:【自己写的,初学者水平不高,但是能实现,如果有错误或者是可以优化,请评论区留言,不喜勿喷】

#include<reg51.h>
unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 
sbit K1=P3^0;
sbit K2=P3^1;
sbit A1=P1^0;
sbit B1=P1^1;
sbit C1=P1^2;
void delay(int i) //i * 1ms
{
    int x,y;
    for(x=0;x<i;x++)
    for(y=0;y<120;y++); //1ms  
}
main()
{
    int num=0;K1=1,K2=1;
    while(1)
    {    
        if(K1==0)
        {
            delay(500);//如果觉得数字跳得太快了,就改这里,这里是防抖的,一般设置20-500就好了,看情况来
            num++;
            if(num>99)
                num=0;
        }
        if(K2==0)
        {
            delay(500);//这里同上面,也是防抖的
            num--;
            if(num<0)                 
                num=99;
        }
        A1=0;B1=1;C1=1;
        P0=tab[num/10];
        delay(1);
        P0=0x00;

        A1=1;B1=1;C1=1;
        P0=tab[num%10];
        delay(1);
        P0=0x00;
    }
}

 


protues仿真:


 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM