蓝桥杯单片机学习(四)——独立按键
程序员文章站
2022-06-08 20:12:45
...
一.原理放个图一看就知
2. 因为可能存在抖动问题,所以要求防抖,即延迟一定时间后观察按键是否仍然被按下。
3. 源码如下:(要求:按下s7L0亮。。。以此类推。)
#include<reg52.h>
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
sbit L0=P0^0;
sbit L1=P0^1;
sbit L2=P0^2;
sbit L3=P0^3;
void Delay(unsigned int t)
{
while (t--);
}
void SelectHC573(unsigned char op)
{
switch(op)
{
case 4:
{
P2=(P2&0X1F)|0X80;
break;
}
case 5:
{
P2=(P2&0X1F)|0XA0;
break;
}
case 6:
{
P2=(P2&0X1F)|0XC0;
break;
}
case 7:
{
P2=(P2&0X1F)|0XE0;
break;
}
}
}
void KeyAlone()
{
if (S7==0)
{
Delay(100);//检验防抖
if (S7==0)
{
L0=0;
while (S7==0);//按键未被松开时一直亮
L0=1;
}
}
if (S6==0)
{
Delay(100);
if (S6==0)
{
L1=0;
while (S6==0);
L1=1;
}
}
if (S5==0)
{
Delay(100);
if (S5==0)
{
L2=0;
while (S5==0);
L2=1;
}
}
if (S4==0)
{
Delay(100);
if (S4==0)
{
L3=0;
while (S4==0);
L3=1;
}
}
}
void main()
{
SelectHC573(4);
while (1)
{
KeyAlone();
}
}
上一篇: vue.js从安装到搭建过程详解
下一篇: ps简单制作炫酷的光圈效果