|
按鍵按下或松手后,先讀LED0-LED7的當(dāng)前狀態(tài),再確定后續(xù)狀態(tài)。延時時間按需任意調(diào)整num值。
- #include<reg52.h>
- sbit key=P3^4;
- unsigned int num;
- void delay(unsigned int t)//12M晶振延時時間 = t*8+6 (us)
- {
- while(--t);
- }
- void main(void)
- {
- while(1)
- {
- if(!key)
- {
- switch(P1)
- {
- case 0xff: P1=0xfe;num=30000; break;
- case 0xfe: P1=0xfc;num=35000; break;
- case 0xfc: P1=0xf8;num=40000; break;
- case 0xf8: P1=0xf0;num=45000; break;
- case 0xf0: P1=0xe0;num=50000; break;
- case 0xe0: P1=0xc0;num=55000; break;
- case 0xc0: P1=0x80;num=60000; break;
- case 0x80: P1=0x00;num=65000; break;
- }
- }
- else
- {
- switch(P1)
- {
- case 0xfe: P1=0xff;num=30000; break;
- case 0xfc: P1=0xfe;num=35000; break;
- case 0xf8: P1=0xfc;num=40000; break;
- case 0xf0: P1=0xf8;num=45000; break;
- case 0xe0: P1=0xf0;num=50000; break;
- case 0xc0: P1=0xe0;num=55000; break;
- case 0x80: P1=0xc0;num=60000; break;
- case 0x00: P1=0x80;num=65000; break;
- }
- }
- delay(num);
- }
- }
復(fù)制代碼 |
|