miyago

lightshowAC

Mar 14th, 2018
874
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.    
  12.     org 000020H
  13.     ;*******COL toolbox 1.1 AC******
  14.    
  15. IC8COL      equ     0x070
  16.      
  17. EC8INIT     BCF     TRISA,1     ; A1 Out for Col 1
  18.             BCF     TRISA,2     ; A2 Out for Col 2
  19.             BCF     TRISA,3     ; A3 Out for Col 3
  20.             BCF     TRISA,5     ; A5 Out for Col 4
  21.             BCF     TRISE,0     ; E0 Out for Col 5
  22.             BCF     TRISE,1     ; E1 Out for Col 6
  23.             BCF     TRISE,2     ; E2 Out for Col 7
  24.             BCF     TRISC,0     ; C0 Out for Col 8
  25.             CLRF    IC8COL      ; Börja på Col1
  26.             CALL    EC8FREE     ; Turn off Col 1-8
  27.             RETURN
  28.            
  29. EC8COLQ     MOVF    IC8COL,W    ; Returns current Col
  30.             RETURN
  31.            
  32. EC8NXTQ     INCF    IC8COL,W    ; Return next Col
  33.             BTFSC   WREG,3      ; Kolla om vi nått Col8
  34.             CLRF    WREG        ; Börja om om vi var på Col8
  35.             RETURN
  36.            
  37. EC8FREE     BCF     LATA,1     ; Stänger av alla portar
  38.             BCF     LATA,2
  39.             BCF     LATA,3
  40.             BCF     LATA,5
  41.             BCF     LATE,0
  42.             BCF     LATE,1
  43.             BCF     LATE,2
  44.             BCF     LATC,0
  45.             RETURN
  46.            
  47. EC8NEXT     CALL    EC8NXTQ     ; Gå till nästa column
  48.             MOVWF   IC8COL
  49.            
  50.             RLNCF   WREG
  51.             RLNCF   WREG
  52.             ADDWF   PCL
  53.             BSF     LATA,1
  54.             RETURN
  55.             BSF     LATA,2
  56.             RETURN
  57.             BSF     LATA,3
  58.             RETURN
  59.             BSF     LATA,5
  60.             RETURN            
  61.             BSF     LATE,0
  62.             RETURN
  63.             BSF     LATE,1
  64.             RETURN
  65.             BSF     LATE,2
  66.             RETURN
  67.             BSF     LATC,0
  68.             RETURN                      
  69. ;*******NO MORE TOOLBOX********
  70.  
  71. ;----Quick DELAY------------------
  72. IDONCE  equ 0x072
  73.  
  74. QDELAY  MOVLW   0xFF
  75.         MOVWF   IDONCE
  76. QLOOP   DECFSZ  IDONCE
  77.     GOTO    QLOOP
  78.         RETURN
  79. ;----END OF QUICK DELAY------------------        
  80.  
  81. S88DISP equ     0x020
  82.  
  83. ;__EXTERNAL E88INIT
  84. E88INIT     CLRF    TRISD
  85.             LFSR    0,S88DISP
  86.             CLRF    S88DISP+0
  87.             CLRF    S88DISP+1
  88.             CLRF    S88DISP+2
  89.             CLRF    S88DISP+3
  90.             CLRF    S88DISP+4
  91.             CLRF    S88DISP+5
  92.             CLRF    S88DISP+6
  93.             CLRF    S88DISP+7
  94.             RETURN
  95. ;__EXTERNAL E88VIEW
  96. E88VIEW     MOVFF   PLUSW0,LATD
  97.         RETURN
  98.  
  99. ;__LIGHT SHOW TOOLBOX___________________________________________________________
  100. I60CNTL equ     0x074
  101. I60CNTH equ     0x075
  102.  
  103. E60INIT     MOVLW   0x81
  104.             SETF    S88DISP+0
  105.             MOVWF   S88DISP+1
  106.             MOVWF   S88DISP+2
  107.             MOVWF   S88DISP+3
  108.             MOVWF   S88DISP+4
  109.             MOVWF   S88DISP+5
  110.             MOVWF   S88DISP+6
  111.             SETF    S88DISP+7
  112.             CLRF    I60CNTL
  113.             MOVLW   0x08
  114.             MOVWF   I60CNTH
  115.             RETURN
  116.            
  117. E60NEXT     DECFSZ  I60CNTL
  118.             RETURN
  119.             DECFSZ  I60CNTH
  120.             RETURN
  121.            
  122.             MOVLW   0x08
  123.             MOVWF   I60CNTH
  124.             COMF    S88DISP+0
  125.             COMF    S88DISP+1
  126.             COMF    S88DISP+2
  127.             COMF    S88DISP+3
  128.             COMF    S88DISP+4
  129.             COMF    S88DISP+5
  130.             COMF    S88DISP+6
  131.             COMF    S88DISP+7
  132.             RETURN
  133. ;__END LSTB_____________________________________________________________________
  134.  
  135. ;___
  136.     MAIN    CALL    EC8INIT
  137.             CALL    E88INIT
  138.             CALL    E60INIT
  139.            
  140.  
  141.     MLOOP   CALL    EC8NXTQ         ; 7 segment display som står på tur
  142.             CALL    E88VIEW         ; Laddas med sitt innehåll från FSR
  143.             CALL    EC8NEXT         ; Tänd den
  144.             CALL    QDELAY          ; Lys
  145.             CALL    EC8FREE         ; Släck
  146.             CALL    E60NEXT         ; Rotera mönster
  147.             GOTO    MLOOP
  148.    
  149.     END
Advertisement