1.前言
1.1功能介绍
代码1:按下K1,D1亮,松开D1灭;代码2:按下K1不亮,直到松手才亮,再按一下无变化,直到松手才变化;
1.2按键的抖动
对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动
1.3按键的对应位置
P3_0对应按键K2; P3_1对应按键K1; P3_2对应按键K3;P3_3对应按键K4;
2.代码1
#include<regx52.h>
void main()
{
while(1)
{
if (P3_1==0)//p3_1=0代表按键按下
P2_0=0;//D1亮
else
P2_0=1;
}
}
3.代码2
#include<regx52.h>
void Delay1ms(unsigned int xms)
{
unsigned char i,j;
while(xms)
{
i=2;
j=239;
do
{
while(--j);
}while(--i);
xms--;
}
}
void main()
{
while(1)
{
if(P3_1==0)
{
Delay1ms(20);//按键消抖
while(P3_1==0); //当松手时P3_1=1;跳出循环;
Delay1ms(20);//按键消抖
P2_0=~P2_0;
}
}
}