//按鍵加一或減一 #include <reg51.h> #include <stdio.h> int duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰數碼管0到9數字的十六進制 sbit K1 = P1^0; sbit K2 = P1^7; char num = 0; //含參數延時函數 void delay(unsigned int i){ while(i--); } //主函數 void main(void) { while(1){ if(K1 == 0){ delay(5000);//按鍵的延時 if(K1 == 0){ num ++; } } if(K2 == 0){ delay(5000); if(K2 == 0){ num --; } } //循環 if(num > 99){ num = 0; } if(num < 0){ num = 99; } //知識點:任何一個兩位數取余10得個位數 ,除以10的十位數 P3=0x08; //個位顯示 P0 = ~duan[num%10]; //只有十的倍數取余10才等於0,所以其他非十的倍數等於本身過其個位數 delay(5000); P3=0x04; //十位顯示 P0= ~duan[num/10%10]; //單片機里任何一個數除以10等於其十位數 delay(6000); } }