51单片机单键开关程序,按一下点亮led,再按一下关闭led.
主程序:
/**************************
- 说明: 按键被按下时led灯灭
**************************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
//定义按键端口
sbit key = P1^0;
//定义LED灯端口
sbit led = P2^0;
//延时函数声明
void delay(uint xms);
//程序入口
void main(){
while(1){
//第一次判断
if(key == 0){
//延时20ms 消除抖动
delay(20);
//第二次判断
if(key == 0){
led = 0; //灯灭
}
else {
led = 1; //灯亮
}
//等待按键被松开
while(!key); //当按键未松开时,key为0,执行该死循环。
}
}
}
void delay(uint xms)
{
uint i,j;
for(i = 0; i<xms; ++i)
for(j = 0; j<110; ++j);
}