一、獨立按鍵控制LED亮滅
輕觸按鍵:相當于是一種電子開關,按下時開關接通,松開時開關斷開,實現原理是通過輕觸按鍵內部的金屬彈片受力彈動來實現接通和斷開。
#include <STC89C5xRC.H>
void main()
{
// P2=0xFE;while(1){if(P31==0){P20=0;}else P20=1;}
}
二、獨立按鍵控制LED狀態?
對于機械開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開,所以在開關閉合及斷開的瞬間會伴隨一連串的抖動。?
#include <STC89C5xRC.H>
void delay(unsigned int x) //@11.0592MHz
{unsigned char i, j;while(x){i = 2;j = 199;do{while (--j);} while (--i);x--;}
}void main()
{while(1){if(P31==0){delay(20); //Eliminating jitter through delaywhile(P31==0); // 監測松手(松按鍵)delay(20);P20=~P20;}}
}
三、獨立按鍵控制LED顯示二進制
#include <STC89C5xRC.H>
void Delay(unsigned int x) //@11.0592MHz
{unsigned char i, j;while(x--){i = 2;j = 199;do{while (--j);} while (--i);}
}void main()
{while(1){if(P31==0){Delay(20);while(P31==0);Delay(20);P2--;}}
}
四、獨立按鍵控制LED流水線
#include <STC89C5xRC.H>
void Delay(unsigned int x) //@11.0592MHz
{unsigned char i, j;while(x--){i = 2;j = 199;do{while (--j);} while (--i);}
}
void main()
{unsigned char pattern=0xFE;while(1){if(P31==0){Delay(20);while(P31==0);Delay(20);P2=pattern;pattern=(pattern<<1)|0x01;if(pattern==0xFF) pattern=0xFE;}}
}
#include <STC89C5xRC.H>
void Delay(unsigned int x) //@11.0592MHz
{unsigned char i, j;while(x--){i = 2;j = 199;do{while (--j);} while (--i);}
}
void main()
{unsigned char pattern=0xFE;P2=pattern;while(1){if(P31==0){Delay(20);while(P31==0);Delay(20);pattern=(pattern<<1)|0x01;if(pattern==0xFF) pattern=0xFE;P2=pattern;}if(P30==0){Delay(20);while(P30==0);Delay(20);pattern=(pattern>>1)|0x80;if(pattern==0xFF) pattern=0x7F;P2=pattern;}}
}