用兩個按鍵控制兩位數碼管,其中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