目录
一、独立按键原理图:
二、思路:
1、原理图解读:悬空时,IO口默认是高电平,当按下后,由于IO口接地,IO口变成低电平了。
2、根据原理图解读,我们可以这样设计软件:让单片机不断检测IO口,当IO口为高电平时表示未下按键;当IO口为低电平时表示按下按键
三、注意事项:
1、按键抖动:在现实中的按键电平并不是瞬间变化的,而是有一个渐变再到稳定的过程
所以为了消除按键抖动的影响,我们通常延时10-20ms
四、51单片机代码:
#include <STC89C5xRC.H>
sbit d1=P2^1;
sbit key1=P2^0;
void delay1ms(unsigned int time_out)//STC89C51 12MHZ
{
unsigned int i;
while(time_out--)
{
i=85;
while(i--);
}
}
void main()
{
while(1)
{
if(key1==0)
{
delay1ms(10);//延时消抖
if(key1==0)
{
d1=0;
}
while(!key1);//松手检测
}
d1=1;
}
}