Advertisement
Madotsuki

7SEG.asm

Apr 9th, 2014
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 13.18 KB | None | 0 0
  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       ;
  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.             ;MOVLW       B'11000000'     ; '0'
  55.             ;MOVWF       BANR_P
  56.             ;MOVLW       B'11111001'     ; '1'
  57.             ;MOVWF       BANR_P+1
  58.             ;MOVLW       B'10100100'     ; '2'
  59.             ;MOVWF       BANR_P+2
  60.             ;MOVLW       B'10110000'     ; '3'
  61.             ;MOVWF       BANR_P+3
  62.  
  63.             MOVLW       B'10101011'
  64.             MOVWF       BANR_P
  65.             MOVLW       B'10100011'
  66.             MOVWF       BANR_P+1
  67.             MOVLW       B'01111111'
  68.             MOVWF       BANR_P+2
  69.             MOVLW       B'11111111'
  70.             MOVWF       BANR_P+3
  71.  
  72.             MOVLW       B'10010010'
  73.             MOVWF       BANR_P+4
  74.             MOVLW       B'10000111'
  75.             MOVWF       BANR_P+5
  76.             MOVLW       B'10100011'
  77.             MOVWF       BANR_P+6
  78.             MOVLW       B'10001100'
  79.             MOVWF       BANR_P+7
  80.  
  81.  
  82.  
  83.             ; INITIALIZATION FOR 7-SEG DISPLAY
  84. LOOP1
  85.             MOVLW       0x02
  86.             MOVWF       SIZE
  87.  
  88.             MOVLW       BANR_P
  89.             ;MOVWF       FSR
  90.  
  91.             MOVLW       0XFF
  92.             MOVWF       BANR_I
  93.             CALL        DLY_SET
  94.  
  95. LOOP2
  96.  
  97. LOOP3
  98.  
  99. L_DISP4
  100.             MOVLW       B'10111'
  101.             MOVWF       PORTA
  102.             MOVF        BANR_P,W
  103.             MOVWF       PORTB
  104.             CALL        S_DLY
  105.             ;INCF        FSR
  106.  
  107. L_DISP3
  108.             MOVLW       B'11011'
  109.             MOVWF       PORTA
  110.             MOVF        BANR_P+1,W
  111.             MOVWF       PORTB
  112.             CALL        S_DLY
  113.             ;INCF        FSR
  114. L_DISP2
  115.             MOVLW       B'11101'
  116.             MOVWF       PORTA
  117.             MOVF        BANR_P+2,W
  118.             MOVWF       PORTB
  119.             CALL        S_DLY
  120.            
  121. L_DISP1
  122.             MOVLW       B'11110'
  123.             MOVWF       PORTA
  124.             MOVF        BANR_P+3,W
  125.             MOVWF       PORTB
  126.             CALL        S_DLY
  127.            
  128.  
  129.             ;GOTO
  130.             DECFSZ      BANR_I
  131.             GOTO        LOOP2
  132.             DECFSZ      DLY_N3
  133.             GOTO        LOOP3
  134.  
  135.             ;MOVLW       4
  136.             ;ADDWF       FSR
  137.  
  138.             ;DECFSZ      SIZE
  139.             ;GOTO        L_DISP4
  140.             ;GOTO        LOOP1
  141. ;;;;;;;;;;;;;;;;
  142. AOOP1
  143.             ;MOVLW       0x02
  144.             ;MOVWF       SIZE
  145.  
  146.             MOVLW       BANR_P
  147.             ADDWF       4
  148.             ;MOVWF       FSR
  149.  
  150.             MOVLW       0XFF
  151.             MOVWF       BANR_I
  152.             CALL        DLY_SET
  153.  
  154. AOOP2
  155.  
  156. AOOP3
  157.  
  158. A_DISP4
  159.             MOVLW       B'10111'
  160.             MOVWF       PORTA
  161.             MOVF        BANR_P+1,W
  162.             MOVWF       PORTB
  163.             CALL        S_DLY
  164.             ;INCF        FSR
  165.  
  166. A_DISP3
  167.             MOVLW       B'11011'
  168.             MOVWF       PORTA
  169.             MOVF        BANR_P+2,W
  170.             MOVWF       PORTB
  171.             CALL        S_DLY
  172.             ;INCF        FSR
  173. A_DISP2
  174.             MOVLW       B'11101'
  175.             MOVWF       PORTA
  176.             MOVF        BANR_P+3,W
  177.             MOVWF       PORTB
  178.             CALL        S_DLY
  179.             ;INCF        FSR
  180. A_DISP1
  181.             MOVLW       B'11110'
  182.             MOVWF       PORTA
  183.             MOVF        BANR_P+4,W
  184.             MOVWF       PORTB
  185.             CALL        S_DLY
  186.             ;INCF        FSR
  187.  
  188.             ;GOTO
  189.             DECFSZ      BANR_I
  190.             GOTO        AOOP2
  191.             DECFSZ      DLY_N3
  192.             GOTO        AOOP3
  193. ;;;;;;;;;;;;;;;;
  194.  
  195. BOOP1
  196.             ;MOVLW       0x02
  197.             ;MOVWF       SIZE
  198.  
  199.             MOVLW       BANR_P
  200.             ADDWF       4
  201.             ;MOVWF       FSR
  202.  
  203.             MOVLW       0XFF
  204.             MOVWF       BANR_I
  205.             CALL        DLY_SET
  206.  
  207. BOOP2
  208.  
  209. BOOP3
  210.  
  211. B_DISP4
  212.             MOVLW       B'10111'
  213.             MOVWF       PORTA
  214.             MOVF        BANR_P+2,W
  215.             MOVWF       PORTB
  216.             CALL        S_DLY
  217.             ;INCF        FSR
  218.  
  219. B_DISP3
  220.             MOVLW       B'11011'
  221.             MOVWF       PORTA
  222.             MOVF        BANR_P+3,W
  223.             MOVWF       PORTB
  224.             CALL        S_DLY
  225.             ;INCF        FSR
  226. B_DISP2
  227.             MOVLW       B'11101'
  228.             MOVWF       PORTA
  229.             MOVF        BANR_P+4,W
  230.             MOVWF       PORTB
  231.             CALL        S_DLY
  232.             ;INCF        FSR
  233. B_DISP1
  234.             MOVLW       B'11110'
  235.             MOVWF       PORTA
  236.             MOVF        BANR_P+5,W
  237.             MOVWF       PORTB
  238.             CALL        S_DLY
  239.             ;INCF        FSR
  240.  
  241.             ;GOTO
  242.             DECFSZ      BANR_I
  243.             GOTO        BOOP2
  244.             DECFSZ      DLY_N3
  245.             GOTO        BOOP3
  246. ;;;;;;;;;;;;;;;;;;;
  247.  
  248.  
  249. COOP1
  250.             ;MOVLW       0x02
  251.             ;MOVWF       SIZE
  252.  
  253.             MOVLW       BANR_P
  254.             ADDWF       4
  255.             ;MOVWF       FSR
  256.  
  257.             MOVLW       0XFF
  258.             MOVWF       BANR_I
  259.             CALL        DLY_SET
  260. COOP2
  261.  
  262. COOP3
  263.  
  264. C_DISP4
  265.             MOVLW       B'10111'
  266.             MOVWF       PORTA
  267.             MOVF        BANR_P+3,W
  268.             MOVWF       PORTB
  269.             CALL        S_DLY
  270.             ;INCF        FSR
  271.  
  272. C_DISP3
  273.             MOVLW       B'11011'
  274.             MOVWF       PORTA
  275.             MOVF        BANR_P+4,W
  276.             MOVWF       PORTB
  277.             CALL        S_DLY
  278.             ;INCF        FSR
  279. C_DISP2
  280.             MOVLW       B'11101'
  281.             MOVWF       PORTA
  282.             MOVF        BANR_P+5,W
  283.             MOVWF       PORTB
  284.             CALL        S_DLY
  285.             ;INCF        FSR
  286. C_DISP1
  287.             MOVLW       B'11110'
  288.             MOVWF       PORTA
  289.             MOVF        BANR_P+6,W
  290.             MOVWF       PORTB
  291.             CALL        S_DLY
  292.             ;INCF        FSR
  293.  
  294.             ;GOTO
  295.             DECFSZ      BANR_I
  296.             GOTO        COOP2
  297.             DECFSZ      DLY_N3
  298.             GOTO        COOP3
  299.  
  300.  
  301. ;;;;;;;;;;;;;;;;;;;;;
  302.  
  303. MOOP1
  304.             ;MOVLW       0x02
  305.             ;MOVWF       SIZE
  306.  
  307.             MOVLW       BANR_P
  308.             ADDWF       4
  309.             ;MOVWF       FSR
  310.  
  311.             MOVLW       0XFF
  312.             MOVWF       BANR_I
  313.             CALL        DLY_SET
  314.  
  315. MOOP2
  316.  
  317. MOOP3
  318.  
  319. M_DISP4
  320.             MOVLW       B'10111'
  321.             MOVWF       PORTA
  322.             MOVF        BANR_P+4,W
  323.             MOVWF       PORTB
  324.             CALL        S_DLY
  325.             ;INCF        FSR
  326.  
  327. M_DISP3
  328.             MOVLW       B'11011'
  329.             MOVWF       PORTA
  330.             MOVF        BANR_P+5,W
  331.             MOVWF       PORTB
  332.             CALL        S_DLY
  333.             ;INCF        FSR
  334. M_DISP2
  335.             MOVLW       B'11101'
  336.             MOVWF       PORTA
  337.             MOVF        BANR_P+6,W
  338.             MOVWF       PORTB
  339.             CALL        S_DLY
  340.             ;INCF        FSR
  341. M_DISP1
  342.             MOVLW       B'11110'
  343.             MOVWF       PORTA
  344.             MOVF        BANR_P+7,W
  345.             MOVWF       PORTB
  346.             CALL        S_DLY
  347.             ;INCF        FSR
  348.  
  349.             ;GOTO
  350.             DECFSZ      BANR_I
  351.             GOTO        MOOP2
  352.             DECFSZ      DLY_N3
  353.             GOTO        MOOP3
  354.  
  355. ;;;;;;;;;;;;;;;;;;;;;;;;;
  356. NOOP1
  357.             ;MOVLW       0x02
  358.             ;MOVWF       SIZE
  359.  
  360.             MOVLW       BANR_P
  361.             ADDWF       4
  362.             ;MOVWF       FSR
  363.  
  364.             MOVLW       0XFF
  365.             MOVWF       BANR_I
  366.             CALL        DLY_SET
  367.  
  368. NOOP2
  369.  
  370. NOOP3
  371.  
  372. N_DISP4
  373.             MOVLW       B'10111'
  374.             MOVWF       PORTA
  375.             MOVF        BANR_P+5,W
  376.             MOVWF       PORTB
  377.             CALL        S_DLY
  378.             ;INCF        FSR
  379.  
  380. N_DISP3
  381.             MOVLW       B'11011'
  382.             MOVWF       PORTA
  383.             MOVF        BANR_P+6,W
  384.             MOVWF       PORTB
  385.             CALL        S_DLY
  386.             ;INCF        FSR
  387. N_DISP2
  388.             MOVLW       B'11101'
  389.             MOVWF       PORTA
  390.             MOVF        BANR_P+7,W
  391.             MOVWF       PORTB
  392.             CALL        S_DLY
  393.             ;INCF        FSR
  394. N_DISP1
  395.             MOVLW       B'11110'
  396.             MOVWF       PORTA
  397.             MOVF        BANR_P,W
  398.             MOVWF       PORTB
  399.             CALL        S_DLY
  400.             ;INCF        FSR
  401.  
  402.             ;GOTO
  403.             DECFSZ      BANR_I
  404.             GOTO        NOOP2
  405.             DECFSZ      DLY_N3
  406.             GOTO        NOOP3
  407.  
  408. ;;;;;;;;;;;;;;;;;;;;;;;;
  409.  
  410.  
  411. OOOP1
  412.             ;MOVLW       0x02
  413.             ;MOVWF       SIZE
  414.  
  415.             MOVLW       BANR_P
  416.             ADDWF       4
  417.             ;MOVWF       FSR
  418.  
  419.             MOVLW       0XFF
  420.             MOVWF       BANR_I
  421.             CALL        DLY_SET
  422.  
  423. OOOP2
  424.  
  425. OOOP3
  426.  
  427. O_DISP4
  428.             MOVLW       B'10111'
  429.             MOVWF       PORTA
  430.             MOVF        BANR_P+6,W
  431.             MOVWF       PORTB
  432.             CALL        S_DLY
  433.             ;INCF        FSR
  434.  
  435. O_DISP3
  436.             MOVLW       B'11011'
  437.             MOVWF       PORTA
  438.             MOVF        BANR_P+7,W
  439.             MOVWF       PORTB
  440.             CALL        S_DLY
  441.             ;INCF        FSR
  442. O_DISP2
  443.             MOVLW       B'11101'
  444.             MOVWF       PORTA
  445.             MOVF        BANR_P,W
  446.             MOVWF       PORTB
  447.             CALL        S_DLY
  448.             ;INCF        FSR
  449. O_DISP1
  450.             MOVLW       B'11110'
  451.             MOVWF       PORTA
  452.             MOVF        BANR_P+1,W
  453.             MOVWF       PORTB
  454.             CALL        S_DLY
  455.             ;INCF        FSR
  456.  
  457.             ;GOTO
  458.             DECFSZ      BANR_I
  459.             GOTO        OOOP2
  460.             DECFSZ      DLY_N3
  461.             GOTO        OOOP3
  462. ;;;;;;;;;;;;;;;;;;;;;;;;;
  463.  
  464. POOP1
  465.             ;MOVLW       0x02
  466.             ;MOVWF       SIZE
  467.  
  468.             MOVLW       BANR_P
  469.             ADDWF       4
  470.             ;MOVWF       FSR
  471.  
  472.             MOVLW       0XFF
  473.             MOVWF       BANR_I
  474.             CALL        DLY_SET
  475.  
  476. POOP2
  477.  
  478. POOP3
  479.  
  480. P_DISP4
  481.             MOVLW       B'10111'
  482.             MOVWF       PORTA
  483.             MOVF        BANR_P+7,W
  484.             MOVWF       PORTB
  485.             CALL        S_DLY
  486.             ;INCF        FSR
  487.  
  488. P_DISP3
  489.             MOVLW       B'11011'
  490.             MOVWF       PORTA
  491.             MOVF        BANR_P,W
  492.             MOVWF       PORTB
  493.             CALL        S_DLY
  494.             ;INCF        FSR
  495. P_DISP2
  496.             MOVLW       B'11101'
  497.             MOVWF       PORTA
  498.             MOVF        BANR_P+1,W
  499.             MOVWF       PORTB
  500.             CALL        S_DLY
  501.             ;INCF        FSR
  502. P_DISP1
  503.             MOVLW       B'11110'
  504.             MOVWF       PORTA
  505.             MOVF        BANR_P+2,W
  506.             MOVWF       PORTB
  507.             CALL        S_DLY
  508.             ;INCF        FSR
  509.  
  510.             ;GOTO
  511.             DECFSZ      BANR_I
  512.             GOTO        POOP2
  513.             DECFSZ      DLY_N3
  514.             GOTO        POOP3
  515. ;;;;;;;;;;;;;;;;;;;;;;;;;
  516.  
  517.             GOTO        LOOP1
  518.  
  519. S_DLY
  520.             MOVLW       0X40
  521.             MOVWF       DLY_N1
  522.             DECFSZ      DLY_N1
  523.             GOTO        $-1
  524.             ;DECFSZ      DLY_N2
  525.            ; GOTO        $-5
  526.             ;DECFSZ      DLY_N3
  527.            ; GOTO        $-7
  528.             RETURN
  529.  
  530. DLY_SET
  531.             MOVLW       0X10
  532.             MOVWF       DLY_N3
  533.             RETURN
  534.  
  535. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement