|
抱歉樓主,我把你的代碼改了一下?lián)Q行。看看這是不是你要的效果,可能需要你自己添加按鍵去抖。
- #include<reg52.h>
- void delay(unsigned int a);
- unsigned char b=0;
- sbit key=P3^3;
- unsigned char last_key = 0;
- void main(){
- while(1){
- while(last_key==0){
- P1 = 0X08;P2 = 0XC3;
- if(key==0){ last_key = 1; break;} // key 默認(rèn)為1 ,按下為 0
- }
- while(last_key==1){
- b++;
- if(b==1){ P1 = 0X01;P2 = 0XC3;delay(100);}
- if(b==2){ P1 = 0X02;P2 = 0XC3;delay(100);}
- if(b==3){ P1 = 0X04;P2 = 0XC3;delay(100);}
- if(b==4){ P1 = 0X08;P2 = 0XC3;delay(100);}
- if(b==5){ P1 = 0X10;P2 = 0XC3;delay(100);}
- if(b==6){ P1 = 0X20;P2 = 0XC3;delay(100);}
- if(b==7){ P1 = 0X40;P2 = 0XC3;delay(100);}
- if(b==8){ P1 = 0X80;P2 = 0XC3;delay(100);}
- if(b>8)b=0;
- if(key==0){ last_key = 0; break;}
- }
- }
- }
- void delay(unsigned int a){
- unsigned int i;
- while(--a!=0){
- for(i=0;i<600;i++);
- }
- }
復(fù)制代碼
|
|