miyago

Praktisk tenta nivå 2

Mar 14th, 2018
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "p18F4520.inc"
  2.    
  3.     CONFIG OSC = HS
  4.     CONFIG PWRT = OFF
  5.     CONFIG WDT = OFF
  6.     CONFIG PBADEN = OFF
  7.     CONFIG LVP = OFF
  8.    
  9.     org 000000H
  10. PORST   GOTO MAIN
  11. ;__HP interrupt____________
  12.     org 0x000008
  13.     BTFSC   INTCON3,INT2IF          ; Har vi en interrupt?
  14.     CALL    ISR, FAST            ; Kalla på förstärkning!
  15.     RETFIE                          ; Tillbaka och slå av interrupten     
  16. ;___________________________
  17.     org 000020H
  18. ;__COL toolbox 1.1 AC___________________________________________________________
  19. IC8COL      equ     0x001
  20. ;_________________________________________________      
  21. EC8INIT     BCF     TRISA,1     ; A1 Out for Col 1
  22.             BCF     TRISA,2     ; A2 Out for Col 2
  23.             BCF     TRISA,3     ; A3 Out for Col 3
  24.             BCF     TRISA,5     ; A5 Out for Col 4
  25.             BCF     TRISE,0     ; E0 Out for Col 5
  26.             BCF     TRISE,1     ; E1 Out for Col 6
  27.             BCF     TRISE,2     ; E2 Out for Col 7
  28.             BCF     TRISC,0     ; C0 Out for Col 8
  29.             CLRF    IC8COL      ; Börja på Col1
  30.             CALL    EC8FREE     ; Turn off Col 1-8
  31.             RETURN
  32. ;_________________________________________________            
  33. EC8COLQ     MOVF    IC8COL,W    ; Returns current Col
  34.             RETURN
  35. ;_________________________________________________            
  36. EC8NXTQ     INCF    IC8COL,W    ; Return next Col
  37.             BTFSC   WREG, 3     ; Kolla om vi nått Col8
  38.             CLRF    WREG        ; Börja om om vi var på Col8
  39.             RETURN
  40. ;_________________________________________________            
  41. EC8FREE     BCF     LATA,1     ; Stänger av alla LATar
  42.             BCF     LATA,2
  43.             BCF     LATA,3
  44.             BCF     LATA,5
  45.             BCF     LATE,0
  46.             BCF     LATE,1
  47.             BCF     LATE,2
  48.             BCF     LATC,0
  49.             RETURN
  50. ;_________________________________________________            
  51. EC8NEXT     CALL    EC8NXTQ     ; Gå till nästa column
  52.             MOVWF   IC8COL
  53.            
  54.             RLNCF   WREG
  55.             RLNCF   WREG
  56.             ADDWF   PCL
  57.             BSF     LATA,1
  58.             RETURN
  59.             BSF     LATA,2
  60.             RETURN
  61.             BSF     LATA,3
  62.             RETURN
  63.             BSF     LATA,5
  64.             RETURN            
  65.             BSF     LATE,0
  66.             RETURN
  67.             BSF     LATE,1
  68.             RETURN
  69.             BSF     LATE,2
  70.             RETURN
  71.             BSF     LATC,0
  72.             RETURN                      
  73. ;__NO MORE TOOLBOX______________________________________________________________
  74. ;_______________________________________________________________________________
  75. ;__ISR________________________
  76.  
  77.     ISR     INCF    COUNTER             ; Vad ska hända?
  78.             BCF     INTCON3,INT2IF      ; Avbrott servat!
  79.             RETURN  FAST
  80.        
  81. ;__INIT2 Interrupt______________________________________________________________
  82.     INIT2   BSF     TRISB,2                     ; S3 brytare 2, Portb2 ingång
  83.             BCF     INTCON3,INT2IF              ; Ser till att interrupt är AV
  84.             BSF     INTCON3,INT2IE              ; Tillåt interrupts från INT2
  85.             RETURN
  86. ;_______________________________________________________________________________
  87. ;_______________________________________________________________________________
  88. ;___________Loading FST with 7 segment chars____________________________________
  89.     COUNTER equ 0x002      
  90. ;_______________________________________________________________________________       
  91.         ELDFSR  LFSR    0, 0x020
  92.                 CLRF    COUNTER
  93.                 MOVLW   0x3F            ;Siffran 0 
  94.                 MOVWF   POSTINC0
  95.                 MOVLW   0x06            ;Siffran 1
  96.                 MOVWF   POSTINC0
  97.                 MOVLW   0x5B            ;Siffran 2
  98.                 MOVWF   POSTINC0
  99.                 MOVLW   0x4F            ;Siffran 3
  100.                 MOVWF   POSTINC0
  101.                 MOVLW   0x66            ;Siffran 4
  102.                 MOVWF   POSTINC0
  103.                 MOVLW   0x6D            ;Siffran 5
  104.                 MOVWF   POSTINC0
  105.                 MOVLW   0x7D            ;Siffran 6
  106.                 MOVWF   POSTINC0
  107.                 MOVLW   0x07            ;Siffran 7
  108.                 MOVWF   POSTINC0
  109.                 MOVLW   0x7F            ;Siffran 8
  110.                 MOVWF   POSTINC0
  111.                 MOVLW   0x6F            ;Siffran 9
  112.                 MOVWF   POSTINC0
  113.                 MOVLW   0x77            ;Bokstaven A
  114.                 MOVWF   POSTINC0
  115.                 MOVLW   0x7C            ;Bokstaven b
  116.                 MOVWF   POSTINC0
  117.                 MOVLW   0x39            ;Bokstaven c
  118.                 MOVWF   POSTINC0
  119.                 MOVLW   0x5E            ;Bokstaven d
  120.                 MOVWF   POSTINC0
  121.                 MOVLW   0x79            ;Bokstaven E
  122.                 MOVWF   POSTINC0
  123.                 MOVLW   0x71            ;Bokstaven F
  124.                 MOVWF   POSTINC0
  125.                 RETURN
  126.        
  127.         EGETNR  MOVFF PLUSW0,LATD
  128.                 RETURN         
  129. ;_______________________________________________________________________________
  130. ;_______________________________________________________________________________
  131.  
  132.     MAIN    CALL    EC8INIT
  133.             CALL    INIT2
  134.             CALL    ELDFSR
  135.             BSF     LATA,1
  136.             CLRF    TRISD
  137.             LFSR    0,0x020
  138.            
  139.             BSF     INTCON,GIE
  140.    
  141.     MLOOP   MOVF    COUNTER,W
  142.             CALL    EGETNR
  143.             GOTO    MLOOP
  144.     END
Advertisement