#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
Comments
0 B
|👍
/👎
0 B
|👍
/👎