/**************************
* 说明: 当按键按下后,延时1s后,点亮LED保持;当再次按下按键后,延时1s后,熄灭LED保持
**************************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key = P3^2;//定义按键端口
sbit led = P1^0;//定义LED灯端口
bit flag;//定义标志位
void delay(uint x);//延时函数声明
void main(){//程序入口
flag = 1;//定义标志位初始状态
while(1){
if(key == 0){//第一次判断
delay(20); //延时20ms 消除抖动
if(key == 0){//第二次判断
delay(1000);//延时1s
flag = ~flag; //标志位取反
}
}
while(!key); //等待按键被松开;当按键未松开时,执行该死循环。
led = flag;
}
}
void delay(uint x)//延时,ms
{
uint i,j;
for(i = 0; i<x; ++i)
for(j = 0; j<110; ++j);
}
小白学习笔记,有错望各位大佬指教