|
sbit key3 = P3^3;
sbit key4 = P3^7; //按鍵觸發(fā)順序是先按3在按4第4才有反應如果直接按下4沒反應 bit keysta,keysta2 = 1; //獨立按鍵需要每個按鍵寫一個函數(shù)嗎?
bit backup,backup2 = 1;
void anjian() //按鍵值已經(jīng)消抖,按鍵出發(fā)激活事件
{
if(keysta != backup) //è·èϰ′Ï //按鍵3的事件
{
if(backup == 0) //這里backup與0比較為什么會執(zhí)行下面的語句,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() //中斷進入掃描按鍵的狀態(tài)
{
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
{
}
}
|
|