代碼:【自己寫的,初學者水平不高,但是能實現,如果有錯誤或者是可以優化,請評論區留言,不喜勿噴】
#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仿真: