專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
單片機(jī)開發(fā)商深圳英銳恩分享PIC單片機(jī)的4*4鍵盤子程序。
;-------4*4鍵盤程序的使用--------
PC EQU 2
STATUS EQU 3
RA EQU 5
RB EQU 6
RC EQU 7
BIJIAO EQU 0F
JIANZHI EQU 8
BUFFER EQU 9
BUFFER1 EQU 0AH
BUFFER2 EQU 0BH
COUNTER EQU 0CH
CON1 EQU 0DH
CON2 EQU 0EH
PIC57 EQU 7FFH
Z EQU 2
;-----------------------------
ORG PIC57
GOTO MAIN
;-----------------------------
ORG 0
;-----------------------------
延時(shí)子程序
;----------------------------
DELAY MOVLW D'100'
MOVWF CON1
L1 MOVLW D'200'
MOVWF CON2
L2 DECFSZ CON2,1
GOTO L2
DECFSZ CON1,1
GOTO L1
RETLW 0
;-----------------------------
; 4*4鍵盤掃描判斷子程序
;-----------------------------
SCANKEY
MOVLW B'11101111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB1
MOVWF BUFFER1
MOVLW 1
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
GOTO QJZ
XYB1 MOVLW B'11011111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB2
MOVWF BUFFER1
MOVLW 5
MOVWF JIANZHI
GOTO QJZ
XYB2 MOVLW B'10111111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB3
MOVWF BUFFER1
MOVLW 9
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
GOTO QJZ
XYB3 MOVLW B'01111111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
RETLW 0
MOVWF BUFFER1
MOVLW 0DH
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
QJZ MOVLW 1
MOVWF BUFFER2
MOVLW 4
MOVWF COUNTER
QJZ1 MOVF BUFFER1,W
SUBWF BUFFER2,W
SKPNZ
RETLW 1
RLF BUFFER2,1
INCF JIANZHI,1
DECFSZ COUNTER,1
GOTO QJZ1
RETLW 0
;-------------------------------
; 測試程序(注意用法,鍵值放在JIANZHI里)
;-------------------------------
MAIN
MOVLW 0
TRIS RC
CLRF RC
MOVLW B'00001111' ;用RB口作4*4鍵盤
TRIS RB
LOOP CLRF RC
CALL SCANKEY
ANDLW 0FH
SKPNZ ;根據(jù)返回值不為零,判斷有無鍵按下
GOTO LOOP
MOVLW 0FH
ANDWF JIANZHI,W
MOVWF RC
CALL DELAY
LOOP1 MOVF BUFFER1,W
ANDWF RB,W
XORWF BIJIAO,W
SKPNZ
GOTO LOOP1
GOTO LOOP
;--------------
;-------------------------------
END