『壹』 51單片機按鍵模擬反應遲鈍,是怎麼回事
給你個建議
1、有顯示函數的
鍵按下?---含顯示子函數循環等鍵放開---放開鍵後處理--
顯示子函數即當延時函數用
2、51單片機常用低電平作有效信號
if(button4==0) //
『貳』 51單片機C程序:如何實現一個按鍵長按3秒進入程序,再長按3秒關機,短一次卻換流水燈切換模式,共3種模式
長按3秒進入程序可以這樣
while(1)
{
if(key==0)//按鍵按下
{
cnt++;
if(cnt>300)
{
cnt=0;//到3秒,退出本循環進入下一段程序
break;
}
dely(10);//延時10毫秒
}
}
while(1)
{
...//此為主程序段
}
『叄』 單片機設計的按鍵有時反應很慢,是不是必須得用中斷設計按鍵 用中斷是什麼思路(有7個按鍵)求指點
沒必要用中斷,反應慢,你可以提高晶振頻率,優化程序,可能是你按鍵等待的時間長了,減小等待按鍵彈起的時間試試看
『肆』 怎麼讓單片機按一下按鍵執行一個程序,再按一下執行另一個程序
loop:
call key
jmp loop
key:
jnb p3.0,rel
ret
rel:
call delay20MS
jnb p3.0,rel
第一次這里標志位為0,則執行,第一次按下功能。
第二次按下時,這里標志位為1,則跳過下邊的程序,執行另一個程序了。執行完將這個標志位清零。
CLR FLAG.0
RET
第一次按下,會到這里,執行下功能
置起一個標志位。
如SETB FLAG.0
RET
這樣就這實現了一鍵兩功能,如果要更多,就設置一個寄存器,每次加1,對比。是那個執行那個程序,最多一個按鍵可以做到255種功能。當然你肯定用不了這么多。
滿意給我加分吧,只能給你思路,給你完整程序是害你的。
『伍』 怎麼讓單片機按一下按鍵執行一個程序,再按一下馬上執行另一個程序
call key
jmp loop
key:
jnb p3.0,rel
ret
rel:
call delay20MS
jnb p3.0,rel
第一次這里標志位為0,則執行,第一次按下功能。