這個的話,你要先學習GPIOI輸入輸出,按鍵消抖。按鍵中斷。這三個功能學習好后就可以寫這個綜合功能了。建一個全局變量KEY_state,在中斷函數中對,如果按鍵按下了,就KEY_state的狀態進程改變。主函數對KEY_state進行查詢,如果他有改變就進行相應的LED燈的端口進行相應狀的輸出。
寫成狀態機就是:
staic KEY_state;
void key_interrupt(viod)
{
如果KEY按下了
消抖
確認按下了
KEY_state ++;
if KEY_state>max_Leds
KEY_state = 0;
}
void led_output( void)
{
swich 0
LED1(ON);
LED2(OFF);
LED3(OFF);
.......
LEDmax(OFF);
switch 1:
LED0(OFF);
LED1(ON);
LED2(OFF);
.......
LEDmax(OFF)
switch max
LED0(off);
....
LEDmax(ON);
}
main()
{
led_output()
}
希望對你有幫助。 |