按键一端接地,另一端窜联一个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;}
}
} |