新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)鍵盤掃描匯編程序

PIC單片機(jī)鍵盤掃描匯編程序

作者: 時(shí)間:2012-12-11 來(lái)源:網(wǎng)絡(luò) 收藏

;**********鍵盤去抖子程序(約8ms的延時(shí))** ***************
KEYDELAY
MOVLW 0X0A
MOVWF DEYH
AGAIN2 MOVLW 0XFF
MOVWF DEYL
AGAIN1 DECFSZ DEYL,1
GOTO AGAIN1
DECFSZ DEYH,1
GOTO AGAIN2
RETURN
;***************鍵服務(wù)子程序****************
;確定鍵值的子程序
KEYSERVE
JIANZHI BCF PORTB,1
BCF PORTA,3
MOVLW 0X03
MOVWF PORTE ;K1,K2置低電平,K3,K4置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K1K2 ;RB4為0,表示按鍵為K1,K2中的一個(gè)
GOTO K3K4 ;RB4為1,表示按鍵為K3,K4中的一個(gè)

K1K2 BCF PORTB,1
BSF PORTA,3 ;K1置低電平,K2置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K1 ;RB4為0,表示按鍵為K1
GOTO K2 ;RB4為1,表示按鍵為K2

K3K4 BCF PORTE,0
BSF PORTE,1 ;K3置低電平,K4置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K3 ;RB4為0,表示按鍵為K3
GOTO K4 ;RB4為1,表示按鍵為K4

K1 MOVLW 0X03
MOVWF JIANR
GOTO JIANW
K2 MOVLW 0X05
MOVWF JIANR
BCF PORTA,3
GOTO JIANW
K3 MOVLW 0X07
MOVWF JIANR
GOTO JIANW
K4 MOVLW 0X09
MOVWF JIANR ;以上根據(jù)按下的鍵把相應(yīng)的值送給JIANR
BCF PORTE,1
JIANW BTFSS PORTB,4
GOTO JIANW ;為了防止一次按鍵多次識(shí)別,等鍵松開才返回
RETURN
;****************************************
MAIN NOP
CALL INITIAL ;調(diào)用初始化子程序
LOOP
CALL KEYSCAN ;查鍵
BTFSC FLAG,F(xiàn)0
CALL KEYDELAY ;若檢測(cè)到有鍵按下,則調(diào)用軟件延時(shí)子程序去抖動(dòng)
BTFSC FLAG,F(xiàn)0
CALL KEYSCAN ;若第一次掃描到有鍵按下,則經(jīng)過(guò)前面的延時(shí)去抖后
;再次進(jìn)行鍵掃描
BTFSC FLAG,F(xiàn)0
CALL KEYSERVE ;若確認(rèn)有鍵按下,則需要調(diào)用鍵服務(wù)程序
BTFSS FLAG,F(xiàn)0
GOTO LOOP ;如果無(wú)鍵按下,則反復(fù)進(jìn)行鍵掃描
MOVF JIANR,W
CALL CONVERT ;把按鍵對(duì)應(yīng)的數(shù)字轉(zhuǎn)換成待顯示的段碼
CALL DISPLAY ;調(diào)用顯示子程序
GOTO LOOP
END

單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉