|
|
按鍵掃描的話很多例子,在網(wǎng)上可以搜搜。
比如很簡單的:
定義按鍵狀態(tài):
u8 KeyUp=0;
u8 KeyDown=0;
假設(shè)需要觸發(fā)按鈕:
int Main()
{
unsigned int delay=20000;
sbit led = P1^0;
sbit speaker= P1^1;
sbit key = P2^1;
/***這里是外設(shè)初始化和時鐘初始化***/
While(1)
{
if(KEY==1)
{
KeyDown=1;
delay=20000;
}
else
{
KeyDown=0;
/*這里清零狀態(tài),等等*/
}
//執(zhí)行按鍵按下的動作
if(KEY==1&KeyDown==1)//一般這里增加消抖會好點
{
//這里添加要用的代碼,比如設(shè)置動作等等
led=1;點燈
speaker = 0;
//延時;
While(delay--);
//關(guān)燈
led=0;點燈 speaker = 1;
delay=20000;
While(delay--);
}
}
}
以上邏輯用在死等延時,不死等延時的話重新考慮狀態(tài)即可;
|
|