【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();
    }    
}


posted @ 2020-12-28 01:15  FlowersMie  阅读(1001)  评论(0)    收藏  举报