|
sbit key3 = P3^3;
sbit key4 = P3^7; //按键触发顺序是先按3在按4第4才有反应如果直接按下4没反应 bit keysta,keysta2 = 1; //独立按键需要每个按键写一个函数吗?
bit backup,backup2 = 1;
void anjian() //按键值已经消抖,按键出发激活事件
{
if(keysta != backup) //è·èÏ°′Ï //按键3的事件
{
if(backup == 0) //这里backup与0比较为什么会执行下面的语句,backup=1 bit backup,backup2 = 1;
{
HuiTuChuShiHua();
HuiTu80();
lcdSHowStr(0,0,"ÄãoÃ123");
}
backup = keysta;
}
if(keysta2 != backup2) //按键4的事件
{
if(backup2 == 0)
{
lcdSHowStr(0,2,"ÄãoÃ");
HuiTuChuShiHua();
HuiTuXianShi();
}
backup2 = keysta2;
}
}
void keyscan() //中断进入扫描按键的状态
{
static unsigned char keybuf,keybuf2 = 0xff;
keybuf = (keybuf<<1)|key3;
if(keybuf == 0)
{
keysta = 0;
anjian();
}
else if(keybuf == 0xff)
{
keysta = 1;
}
keybuf2 = (keybuf2<<1)|key4;
if(keybuf2 == 0)
{
keysta2 = 0;
anjian();
}
else if(keybuf2 == 0xff)
{
keysta2 = 1;
}
else
{
}
}
|
|