Advertisement
Madotsuki

more LED .asm

Apr 2nd, 2014
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;
  2. ; 7SEG.asm
  3. ;
  4.  
  5. INDF        EQU         0x00       ; Indirect File Reg. Address
  6. STATUS      EQU         0x03       ; Status Register
  7. FSR         EQU         0x04       ; File Select Register
  8. PORTA       EQU         0x05
  9. PORTB       EQU         0x06
  10. TRISA       EQU         0x85
  11. TRISB       EQU         0x86
  12.  
  13. ;===================== STATUS BITS =====================;
  14. C           EQU         0x0        ; Carry Flag
  15. DC          EQU         0x1        ; Digit Carry Flag
  16. Z           EQU         0x2        ; Zero Flag
  17. PD          EQU         0x3        ; Power Down Bit
  18. TO          EQU         0x4        ; WDT Time-out Bit
  19. RP0         EQU         0x5        ; Bank Select
  20. RP1         EQU         0x6        ; Bank Select, unused
  21. IRP         EQU         0x7        ; Unused
  22. ;===================== DISPLAY PARAM ====================;
  23. BANR_P      EQU         0x10       ; MEM addr banner is stored
  24. DISP_N      EQU         0x1A       ; holding 7-seg display no
  25. SIZE        EQU         0x1E       ; a counter constant
  26. BANR_I      EQU         0x1F       ; counter $_$
  27. ;===================== DELAY PARAM ======================;
  28. DLY_N1      EQU         0x1B
  29. DLY_N2      EQU         0x1C
  30. DLY_N3      EQU         0x1D       ; UNUSED
  31. ;========================================================;
  32.  
  33. __CONFIG 0x3FF2
  34.             ORG         0x00            ; Reset vector
  35.             GOTO        START
  36.             ORG         0x04
  37.             RETFIE
  38. START
  39.             BSF         STATUS,RP0      ; Select Bank 1
  40.             BCF         STATUS,RP1      ;
  41.             CLRF        TRISA           ; PORTA: OUTP ONLY
  42.             CLRF        TRISB           ; PORTB: OUTP ONLY
  43.             BCF         STATUS,RP0      ; SELECT BANK 0
  44.             ; PARAMS FOR TIME DELAY
  45.  
  46.             ;MOVLW       0x60
  47.  
  48.             CLRF        DLY_N1
  49.             CLRF        DLY_N2
  50.             CLRF        DLY_N3
  51.             ; The Banner
  52. B_INIT
  53.             ; Message goes here.
  54.             ; This is the original message content.
  55.             ;MOVLW       B'11000000'     ; '0'
  56.             ;MOVWF       BANR_P
  57.             ;MOVLW       B'11111001'     ; '1'
  58.             ;MOVWF       BANR_P+1
  59.             ;MOVLW       B'10100100'     ; '2'
  60.             ;MOVWF       BANR_P+2
  61.             ;MOVLW       B'10110000'     ; '3'
  62.             ;MOVWF       BANR_P+3
  63.  
  64.             MOVLW       B'10101011'      ; N
  65.             MOVWF       BANR_P
  66.             MOVLW       B'10100011'      ; o
  67.             MOVWF       BANR_P+1
  68.             MOVLW       B'01111111'      ; .
  69.             MOVWF       BANR_P+2
  70.             MOVLW       B'11111111'      ;
  71.             MOVWF       BANR_P+3
  72.  
  73.             MOVLW       B'10010010'      ; S
  74.             MOVWF       BANR_P+4
  75.             MOVLW       B'10000111'      ; t
  76.             MOVWF       BANR_P+5
  77.             MOVLW       B'10100011'      ; o
  78.             MOVWF       BANR_P+6
  79.             MOVLW       B'10001100'      ; p
  80.             MOVWF       BANR_P+7
  81.  
  82.  
  83.  
  84.             ; INITIALIZATION FOR 7-SEG DISPLAY
  85. LOOP1
  86.             MOVLW       0x02
  87.             MOVWF       SIZE
  88.  
  89.             MOVLW       BANR_P
  90.             ;MOVWF       FSR
  91.  
  92.             MOVLW       0XFF
  93.             MOVWF       BANR_I
  94.             MOVWF       DLY_N3
  95.  
  96. LOOP2
  97.  
  98. LOOP3
  99. ; Keep running this loop to give the illusion
  100. ; of a static display. Use BANR_I and DLY_N3 as
  101. ; counters to help time delay.
  102.  
  103. L_DISP4
  104.             MOVLW       B'10111'
  105.             MOVWF       PORTA
  106.             MOVF        BANR_P,W
  107.             MOVWF       PORTB
  108.             CALL        S_DLY
  109.             ;INCF        FSR
  110.  
  111. L_DISP3
  112.             MOVLW       B'11011'
  113.             MOVWF       PORTA
  114.             MOVF        BANR_P+1,W
  115.             MOVWF       PORTB
  116.             CALL        S_DLY
  117.             ;INCF        FSR
  118. L_DISP2
  119.             MOVLW       B'11101'
  120.             MOVWF       PORTA
  121.             MOVF        BANR_P+2,W
  122.             MOVWF       PORTB
  123.             CALL        S_DLY
  124.            
  125. L_DISP1
  126.             MOVLW       B'11110'
  127.             MOVWF       PORTA
  128.             MOVF        BANR_P+3,W
  129.             MOVWF       PORTB
  130.             CALL        S_DLY
  131.            
  132.  
  133.             ;GOTO
  134.             DECFSZ      BANR_I
  135.             GOTO        LOOP2
  136.             DECFSZ      DLY_N3
  137.             GOTO        LOOP3
  138.  
  139.             ;MOVLW       4
  140.             ;ADDWF       FSR
  141.  
  142.             ;DECFSZ      SIZE
  143.             ;GOTO        L_DISP4
  144.             ;GOTO        LOOP1
  145.  
  146. MOOP1
  147. ; Exactly the same as the first four assignments,
  148. ; but intended for the second circuit of letters...
  149. ; aka the 'stop' portion of the board.
  150.  
  151.             ;MOVLW       0x02
  152.             ;MOVWF       SIZE
  153.  
  154.             MOVLW       BANR_P
  155.             ADDWF       4
  156.             ;MOVWF       FSR
  157.  
  158.             MOVLW       0XFF
  159.             MOVWF       BANR_I
  160.             MOVWF       DLY_N3
  161.  
  162. MOOP2
  163.  
  164. MOOP3
  165.  
  166. ; Keep running this loop to give the illusion
  167. ; of a static display. Use BANR_I and DLY_N3 as
  168. ; counters to help time delay.
  169. M_DISP4
  170.             MOVLW       B'10111'
  171.             MOVWF       PORTA
  172.             MOVF        BANR_P+4,W
  173.             MOVWF       PORTB
  174.             CALL        S_DLY
  175.             ;INCF        FSR
  176.  
  177. M_DISP3
  178.             MOVLW       B'11011'
  179.             MOVWF       PORTA
  180.             MOVF        BANR_P+5,W
  181.             MOVWF       PORTB
  182.             CALL        S_DLY
  183.             ;INCF        FSR
  184. M_DISP2
  185.             MOVLW       B'11101'
  186.             MOVWF       PORTA
  187.             MOVF        BANR_P+6,W
  188.             MOVWF       PORTB
  189.             CALL        S_DLY
  190.             ;INCF        FSR
  191. M_DISP1
  192.             MOVLW       B'11110'
  193.             MOVWF       PORTA
  194.             MOVF        BANR_P+7,W
  195.             MOVWF       PORTB
  196.             CALL        S_DLY
  197.             ;INCF        FSR
  198.  
  199.             ;GOTO
  200.             DECFSZ      BANR_I
  201.             GOTO        MOOP2
  202.             DECFSZ      DLY_N3
  203.             GOTO        MOOP3
  204.  
  205.             GOTO        LOOP1
  206.  
  207. S_DLY
  208.             MOVLW       0X40
  209.             MOVWF       DLY_N1
  210.             DECFSZ      DLY_N1
  211.             GOTO        $-1
  212.             ;DECFSZ      DLY_N2
  213.            ; GOTO        $-5
  214.             ;DECFSZ      DLY_N3
  215.            ; GOTO        $-7
  216.             RETURN
  217.  
  218. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement