[問題] 8051 按鈕控制問題
各位版大們好,小弟最近在自學8051,
有一些地方不太知道該怎麼寫,
目前小弟想要做到的功能是:
有兩個按鍵,按鍵1按下去後,輸出1會ON(停滯200ms),
然後這時候偵測按鍵二是否有按下去,
如果按鍵二也按下去,則輸出1會一直ON的狀態,
假設按鍵二沒按下去,則輸出1就會off。
上面的功能都算是有寫出來,
不過,小弟還差一個功能沒寫出來,
如果在輸出1一直ON的狀態的時候,按鍵1又按下去,
則輸出1會變成off的狀態,若此時再按按鍵1,
又會回復到上面的狀態,偵測按鍵二是否有按下去,
若有則呈現on的狀態,若沒有則off。
小弟的程式碼如下:
main()
{
while(1)
{
if(switch_A==0) //按鈕1按下
{
run_dly(5); //debounce
flag3=1;
if(switch_A==0 && flag3==1) // 確認按鈕1有按下
{
flag3=0;
P0_0=1; //啟動
run_dly(200);
if(air_A==0 && flag3==0) //確認按鈕2有按下
{ P0_0=1; //到達A狀態}
else if(air_A==1 && flag3==0) //若按鈕2沒按下
{P0_0=0; //未到達A狀態}
}
else if(switch_A==1 && flag3==1) //若按鈕1沒按下
{P0_0=0; //停止}
}
}//while
}//main
目前卡在不知道怎麼在到達A狀態的時候,
若按下按鍵1,則又將輸出(P0_0)off掉,
如果又再按按鍵1,則判斷是否按鍵2有按下...
整個邏輯初步是這樣,還請版上前輩們解惑...
謝謝.....感恩!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.221.195
推
08/23 01:33, , 1F
08/23 01:33, 1F
回k大,已盡量縮排,謝謝建議!!
※ 編輯: victim0130 來自: 220.135.221.195 (08/23 19:06)
推
08/24 01:12, , 2F
08/24 01:12, 2F
→
08/24 01:14, , 3F
08/24 01:14, 3F
→
08/24 01:15, , 4F
08/24 01:15, 4F
→
08/24 01:16, , 5F
08/24 01:16, 5F
→
08/24 01:41, , 6F
08/24 01:41, 6F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章