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;
}
}
}
实验现象如下文章来源:https://www.toymoban.com/news/detail-408883.html
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<<num);
}
//LED灯左移
if(KEY2==0)
{
if(num<=0)
num=8;
else
{
Delay(500);
while(KEY2==0);
Delay(500);
num--;
P2 =~ (0x01<<num);
}
}
}
}
实验现象如下
文章来源地址https://www.toymoban.com/news/detail-408883.html
到了这里,关于51单片机:独立按键控制LED灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!