51单片机单键开关

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

猜你喜欢

转载自blog.csdn.net/weixin_45442198/article/details/118460685