51單片機(jī)鍵盤(pán)接口電路(含源程序)
K_RET1:
RET
D500MS: ;流水燈的延遲時(shí)間
PUSH PSW
SETB RS0
MOV R7,#200
D51: MOV R6,#250
D52: NOP
NOP
NOP
NOP
DJNZ R6,D52
DJNZ R7,D51
POP PSW
RET
LAMP:
JB StartEnd,LampStart ;如果StartEnd=1,則啟動(dòng)
MOV P1,#0FFH
AJMP LAMPRET ;不然關(guān)閉所有顯示,返回
LampStart:
JB UpDown,LAMPUP ;如果UpDown=1,則向上流動(dòng)
MOV A,LAMPCODE
RL A ;實(shí)際就是左移位而已
MOV LAMPCODE,A
MOV P1,A
LCALL D500MS
AJMP LAMPRET
LAMPUP:
MOV A,LAMPCODE
RR A ;向下流動(dòng)實(shí)際就是右移
MOV LAMPCODE,A
MOV P1,A
LCALL D500MS
LAMPRET:
RET
END
以上程序功能很簡(jiǎn)單,但它演示了一個(gè)單片機(jī)鍵盤(pán)處理程序的基本思路,程序本身很簡(jiǎn)單,也不很實(shí)用,實(shí)際工作中還會(huì)有好多要考慮的因素,比如主循環(huán)每次都調(diào)用燈的循環(huán)程序,會(huì)造成按鈕反應(yīng)“遲鈍”,而如果一直按著鍵不放,則燈不會(huì)再流動(dòng),一直要到松開(kāi)手為止,等等,大家能仔細(xì)考慮一下這些問(wèn)題,再想想有什么好的解決辦法。
2、采用中斷方式:如圖4所示。各個(gè)按鈕都接到一個(gè)與非上,當(dāng)有任何一個(gè)按鈕按下時(shí),都會(huì)使與門(mén)輸出為低電平,從而引起單片機(jī)的中斷,它的好處是不用在主程序中持續(xù)地循環(huán)查詢(xún),如果有鍵按下,單片機(jī)再去做對(duì)應(yīng)的處理
DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論