当前位置: 首页 > 单片机初学者 > PIC单片机(提高篇) > 正文

PIC单片机的4*4键盘子程序

日期:2012-12-18阅读:来源:单板机学习网    ★★★
;-------4*4键盘程序的使用--------PC EQU 2STATUS EQU 3RA EQU 5RB EQU 6RC EQU 7BIJIAO EQU 0FJIANZHI EQU 8BUFFER EQU 9BUFFER1 EQU 0AHBUFFER2 EQU 0BHCOUNTER EQU 0CHCON1 EQU 0DHCON2 EQU 0EHPIC57 EQU 7FFHZ EQU 2;-----------------------------ORG PIC57GOTO MAIN;--------------------------
<!--StartFragment-->;-------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
;-----------------------------
; 延时子程序
;----------------------------
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 ;根据返回值不为零,判断有无键按下
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
关键字:PIC
热卖工具