Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "p18F4520.inc"
- CONFIG OSC = HS
- CONFIG PWRT = OFF
- CONFIG WDT = OFF
- CONFIG PBADEN = OFF
- CONFIG LVP = OFF
- ;Nedan följer ett grundprogram från boken sidan 468 för angentbord 12-4
- D15mH equ D'100'
- D15mL equ D'255'
- COL equ 0x08
- DR15mH equ 0x09
- DR15mL equ 0x0A
- org 0x000000
- PORST GOTO MAIN
- RESET_ISR GOTO MAIN
- org 0x000008
- HI_ISR BTFSC INTCON,RBIF
- BRA RBIF_ISR
- RETFIE
- MAIN CLRF TRISD
- BCF INTCON2,RBPU
- MOVLW 0xF0
- MOVWF TRISB
- MOVWF PORTB
- KEYOPEN CPFSEQ PORTB
- GOTO KEYOPEN
- MOVLW upper(KC0DE0)
- MOVWF TBLPTRU
- MOVLW high(KC0DE0)
- MOVWF TBLPTRH
- BSF INTCON,RBIE
- BSF INTCON,GIE
- LOOP GOTO LOOP
- RBIF_ISR CALL DELAY
- MOVFF PORTB,COL
- MOVLW 0xFE
- MOVWF PORTB
- CPFSEQ PORTB
- BRA ROW0
- MOVLW 0xFC
- MOVWF PORTB
- CPFSEQ PORTB
- BRA ROW1
- MOVLW 0xFB
- MOVWF PORTB
- CPFSEQ PORTB
- BRA ROW2
- MOVLW 0xF7
- MOVWF PORTB
- CPFSEQ PORTB
- BRA ROW3
- GOTO BAD_RBIF
- ROW0 MOVLW low(KC0DE0)
- BRA FIND
- ROW1 MOVLW low(KC0DE1)
- BRA FIND
- ROW2 MOVLW low(KC0DE2)
- BRA FIND
- ROW3 MOVLW low(KC0DE3)
- BRA FIND
- FIND MOVWF TBLPTR
- MOVLW 0xF0
- XORWF COL
- SWAPF COL,F
- AGAIN RRCF COL
- BC MATCH
- INCF TBLPTRL
- BRA AGAIN
- MATCH TBLRD*+
- MOVFF TABLAT,PORTD
- WAIT MOVLW 0xF0
- MOVWF PORTB
- CPFSEQ PORTB
- BRA WAIT
- BCF INTCON,RBIF
- RETFIE
- BAD_RBIF MOVLW 0x00
- GOTO WAIT
- DELAY: MOVLW D15mH
- MOVWF DR15mH
- D2: MOVLW D15mL
- MOVWF DR15mL
- D1: DECF DR15mL,F
- BNZ D1
- DECF DR15mH,F
- BNZ D2
- RETURN
- org 0x12C
- KC0DE0: DB '0', '1', '2', '3'
- KC0DE1: DB '4', '5', '6', '7'
- KC0DE2: DB '8', '9', 'A', 'B'
- KC0DE3: DB 'C', 'D', 'E', 'F'
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement