51单片机:独立按键控制LED灯

1. 独立按键控制LED灯状态 

        亮灭实验完成后,就可以控制LED状态,首先我们知道由于机械结构的弹性作用,按键开关在闭合时不会一瞬间稳定的接通,在断开时,也不会一下子断开。所以就得需要程序消抖,也就是适当延时,程序如下

#include"reg52.h"
//定义LED灯
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;

//定义独立按键
sbit KEY1 = P3^1;    //需要注意按键1是P3^1引脚,按键2是P3^0引脚
sbit KEY2 = P3^0;
sbit KEY3 = P3^2;
sbit KEY4 = P3^3; 

void Delay(int time)
{
    while(time--) //while循环一次需要10us
    {
    }
}

 
 int main()
 {
    while(1)
    {
        if(KEY1==0)
        {
            Delay(500);
               while(KEY1==0);
            Delay(500);
            LED1 =~ LED1;
        }
            

    }
 }

实验现象如下

2.独立按键控制LED灯显示二进制

        LED亮灭和控制LED状态实验都已完成,控制LED灯显示二进制就是直接对LED灯P2进行操作,在初始状态下,P2的所有引脚都是输出高电平,那我们直接对P2自减操作就能达到实验效果,程序如下

#include"reg52.h"

//定义独立按键
sbit KEY1 = P3^1;    //需要注意按键1是P3^1引脚,按键2是P3^0引脚

void Delay(int time)
{
    while(time--) //while循环一次需要10us
    {
    }
}
 
 int main()
 {
    while(1)
    {
        if(KEY1==0)
        {
            Delay(500);
               while(KEY1==0);
            Delay(500);
            P2--;
        }
            

    }
 }

实验现象如下

3.独立按键控制LED灯移位

        通过控制独立按键KEY1、KEY2来实现左右移位,程序如下

 #include"reg52.h"

//定义独立按键
sbit KEY1 = P3^1;    //需要注意按键1是P3^1引脚,按键2是P3^0引脚
sbit KEY2 = P3^0;

void Delay(int time)
{
    while(time--) //while循环一次需要10us
    {
    }
}
 
 int main()
 {
     int num = -1; 
    while(1)
    {
        //LED灯右移
        if(KEY1==0)
        { 
            
            Delay(500);
               while(KEY1==0);
            Delay(500);
            num++;
            if(num>=8)
                num=0; 
            P2 =~ (0x01<         
        }

        //LED灯左移
        if(KEY2==0)
        {
            if(num<=0)
                num=8;
            else
            {
                  Delay(500);
                   while(KEY2==0);
                Delay(500);
                num--;
                P2 =~ (0x01<             }    
                
        }    

    }
 }

实验现象如下

你可能感兴趣的:(单片机,51单片机,单片机)