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
- org 000000H
- PORST GOTO MAIN
- ;__HP interrupt____________
- org 0x000008
- BTFSC INTCON3,INT2IF ; Har vi en interrupt?
- CALL ISR, FAST ; Kalla på förstärkning!
- RETFIE ; Tillbaka och slå av interrupten
- ;___________________________
- org 000020H
- ;__COL toolbox 1.1 AC___________________________________________________________
- IC8COL equ 0x001
- ;_________________________________________________
- EC8INIT BCF TRISA,1 ; A1 Out for Col 1
- BCF TRISA,2 ; A2 Out for Col 2
- BCF TRISA,3 ; A3 Out for Col 3
- BCF TRISA,5 ; A5 Out for Col 4
- BCF TRISE,0 ; E0 Out for Col 5
- BCF TRISE,1 ; E1 Out for Col 6
- BCF TRISE,2 ; E2 Out for Col 7
- BCF TRISC,0 ; C0 Out for Col 8
- CLRF IC8COL ; Börja på Col1
- CALL EC8FREE ; Turn off Col 1-8
- RETURN
- ;_________________________________________________
- EC8COLQ MOVF IC8COL,W ; Returns current Col
- RETURN
- ;_________________________________________________
- EC8NXTQ INCF IC8COL,W ; Return next Col
- BTFSC WREG, 3 ; Kolla om vi nått Col8
- CLRF WREG ; Börja om om vi var på Col8
- RETURN
- ;_________________________________________________
- EC8FREE BCF LATA,1 ; Stänger av alla LATar
- BCF LATA,2
- BCF LATA,3
- BCF LATA,5
- BCF LATE,0
- BCF LATE,1
- BCF LATE,2
- BCF LATC,0
- RETURN
- ;_________________________________________________
- EC8NEXT CALL EC8NXTQ ; Gå till nästa column
- MOVWF IC8COL
- RLNCF WREG
- RLNCF WREG
- ADDWF PCL
- BSF LATA,1
- RETURN
- BSF LATA,2
- RETURN
- BSF LATA,3
- RETURN
- BSF LATA,5
- RETURN
- BSF LATE,0
- RETURN
- BSF LATE,1
- RETURN
- BSF LATE,2
- RETURN
- BSF LATC,0
- RETURN
- ;__NO MORE TOOLBOX______________________________________________________________
- ;_______________________________________________________________________________
- ;__ISR________________________
- ISR INCF COUNTER ; Vad ska hända?
- BCF INTCON3,INT2IF ; Avbrott servat!
- RETURN FAST
- ;__INIT2 Interrupt______________________________________________________________
- INIT2 BSF TRISB,2 ; S3 brytare 2, Portb2 ingång
- BCF INTCON3,INT2IF ; Ser till att interrupt är AV
- BSF INTCON3,INT2IE ; Tillåt interrupts från INT2
- RETURN
- ;_______________________________________________________________________________
- ;_______________________________________________________________________________
- ;___________Loading FST with 7 segment chars____________________________________
- COUNTER equ 0x002
- ;_______________________________________________________________________________
- ELDFSR LFSR 0, 0x020
- CLRF COUNTER
- MOVLW 0x3F ;Siffran 0
- MOVWF POSTINC0
- MOVLW 0x06 ;Siffran 1
- MOVWF POSTINC0
- MOVLW 0x5B ;Siffran 2
- MOVWF POSTINC0
- MOVLW 0x4F ;Siffran 3
- MOVWF POSTINC0
- MOVLW 0x66 ;Siffran 4
- MOVWF POSTINC0
- MOVLW 0x6D ;Siffran 5
- MOVWF POSTINC0
- MOVLW 0x7D ;Siffran 6
- MOVWF POSTINC0
- MOVLW 0x07 ;Siffran 7
- MOVWF POSTINC0
- MOVLW 0x7F ;Siffran 8
- MOVWF POSTINC0
- MOVLW 0x6F ;Siffran 9
- MOVWF POSTINC0
- MOVLW 0x77 ;Bokstaven A
- MOVWF POSTINC0
- MOVLW 0x7C ;Bokstaven b
- MOVWF POSTINC0
- MOVLW 0x39 ;Bokstaven c
- MOVWF POSTINC0
- MOVLW 0x5E ;Bokstaven d
- MOVWF POSTINC0
- MOVLW 0x79 ;Bokstaven E
- MOVWF POSTINC0
- MOVLW 0x71 ;Bokstaven F
- MOVWF POSTINC0
- RETURN
- EGETNR MOVFF PLUSW0,LATD
- RETURN
- ;_______________________________________________________________________________
- ;_______________________________________________________________________________
- MAIN CALL EC8INIT
- CALL INIT2
- CALL ELDFSR
- BSF LATA,1
- CLRF TRISD
- LFSR 0,0x020
- BSF INTCON,GIE
- MLOOP MOVF COUNTER,W
- CALL EGETNR
- GOTO MLOOP
- END
Advertisement