miyago icon

Praktisk tenta nivå 2

miyago | PRO | 03/14/18 07:59:44 PM UTC | 0 ⭐ | 12724 👁️ | Never ⏰ | []
ASM (NASM) |

0 B

|

None

|

0 👍

/

0 👎

#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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎