//按键加一或减一 #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); } }