独立按键
按键防抖动代码
if(S4==0)
{
Delay(100);
L1=0;//亮
while(S4==0);
L1=1;//灭
}
定义独立按键
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
矩阵按键
以第一行为例,若按键未按下,则按键常为高电平,按下为低电平。
首先如果假设我要判断是否按下S7按键,那么我首先要赋值R1=0, R2=R3=R 4=1,赋值C1=C2=C3=C4=1,此时相当于只判断第一行的四个按键。
之后如果按下S7按键,那么此时C1发生改变值为0,同理如果是按下S8按键那么C2为0,因此此时我们只需要判断CX==0,我们就可以知道第一行的哪一个按键被按下,同样的道理,以此类推。
按键代码
void keystroke()
{
R1=0;
R2=R3=R4=1;
C1=C2=C3=C4=1;
if(C1==0)
{
while(C1==0);//此时S7被按下
KeyNum=7;
}
else if(C2==0)
{
while(C2==0);
KeyNum=11;
}
else if(C3==0)
{
while(C3==0);
KeyNum=15;
}
else if(C4==0)
{
while(C4==0);
KeyNum=19;
}
}