主要任务:
按键点灯(中断)
1.按键原理图
key1 ---> CPU (P3.3)
通过分析P3.3
弹起 高电平(1)
按下 低电平(0)
cpu去查询P3.3这个引脚的电平状态就可以知道按键是否按下
代码示例:
#include <reg52.h>
sbit key = P3^3;
sbit LED = P1^0;
void main()
{
while(1)
{
if(key == 1)
{
//按键ley弹起
LED = 1;
}
else
{
//按键key按下
LED = 0;
}
}
}
2.“按键抖动”
产生原因:
内部结构以及外部电路产生
通常按键所用的是机械弹性开关,当机触电断开、闭合时,由于机械触点的弹性作用,一个按键开关在
闭合或断开都会有抖动
消抖的两种方法:
(1)硬件消抖 -结构或电路
(2)软件消抖(延时一小段时间)
在检测到按键状态变化后,先等待一会儿(10ms),让抖动消失之后再进行一次按键状态检测,如果和刚刚
状态相同,就可以确认已经是一个稳定的状态了。
例:
int a,b;
a = key;
delay()
b = key;
if(a == b