按鍵一端接地,另一端竄聯一個1K~10K的電阻接到單片機的I/O口(如P2.0)。再用一個IO輸出(P1.0)接一個LED燈---接一個1K電阻---接VCC。程序中用一個死循環掃描按鍵,然后輸出相應信號。
程序:
#include“reg52.h”
sbit key01 = P2^0;
sbit led01 = P1^0;
void delayms(unsigned int t1){ //89系列單片機延時函數 晶振11.0592MHz
unsigned char i, j,k;
for(k=0;k<t1;k++){
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
}
void main(){
key01 = 1;
led01 = 1;
while(1){
if(0==key01){
delayms(10);/**延時10毫秒,防抖。延時函數根據單片機型號不同,可以在燒錄工具里右上角那里得到。**/
if(0==key01) led01 = 0;
else led01 = 1;
}
else {led01 = 1;}
}
} |