【51单片机】通过按键切换Led灯-----代码
/*****************************************
*实验效果 : 按键控制LED灯全亮/全
语言:C语言
工具:Keil4、STC-ISP
******************************************/
#include<reg52.h>
//定义 P3^4按钮
sbit an1=P3^4;
//设定 计数初值
int count = 1;
//定义延时器 如需修改 更改i的值即可 默认20ms
delay(){
int i,y;
for(i=20;i>0;i--)
for(y=110;y>0;y--);
}
//按钮触发的方法
void keyscan(){
//按下:全亮 松开:全黑
/* if(an1==0){
delay();
if(an1==0){
P1=0x00;
}else{
P1=0xff;
}
}
*/
//按下松开:全亮/全黑
//若按下 an1=0
if(an1==0){
//消抖
delay();
//再次判断是否按下
if(an1==0){
//计数递增1位
count++;
//判断是否松开
while(!an1);
}
}
//根据计数情况做判断执行
if(count%2==0){
P1=0XFF;
//为了防止数量过多而造成判断异常。每次计数到4,就让计数回到0初始,形成死循环
if(count==4){
count=0;
}
}else{
P1=0X00;
}
}
//主函数入口
void main()
{
while(1){
keyscan();
}
}
浙公网安备 33010602011771号