SHARE
TWEET

Meteor_Lights.ASM (V1.02)

a guest Dec 21st, 2012 185 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;---------------------------------------------------;
  2. ; Name:                 Meteor_Lights.ASM                                       ;
  3. ; Use:                  DTI's Meteor XMas Lights                        ;
  4. ;---------------------------------------------------;
  5. ; Copyright:    (C)2012 DTI                                                     ;
  6. ;                               Dysfunctional Technologies, Inc.        ;
  7. ;                               All Rights Reserved                                     ;
  8. ;---------------------------------------------------;
  9. ; Author:               Timothy S. Carlson                                      ;
  10. ;                           Dysfunctional Technologies, Inc.    ;
  11. ; Date:                 December 21, 2012                                       ;
  12. ; Version:              V1.02                                                           ;
  13. ;---------------------------------------------------;
  14. ;---------------------------------------------------;
  15. #DEFINE         _METEOR_LIGHTS.ASM_                                             ;
  16. #DEFINE         _MAIN_MODULE_                                                   ;
  17. ;---------------------------------------------------;
  18.  
  19. ;---------------------------------------------------;
  20. ; Includes                                                                                      ;
  21. ;---------------------------------------------------;
  22. #INCLUDE Common.INC                                                                     ;
  23. ;---------------------------------------------------;
  24.  
  25. ;---------------------------------------------------;
  26. ; Defines                                                                                       ;
  27. ;---------------------------------------------------;
  28. #DEFINE         BUTTON                  3                                               ; GPIO 3 - Pin 4
  29.                                                                                                         ;
  30. #DEFINE         LED_0                   0                                               ; GPIO 0 - Pin 7
  31. #DEFINE         LED_1                   1                                               ; GPIO 1 - Pin 6
  32. #DEFINE         LED_2                   2                                               ; GPIO 2 - Pin 5
  33. #DEFINE         LED_4                   4                                               ; GPIO 4 - Pin 3
  34. #DEFINE         LED_3                   5                                               ; GPIO 5 - Pin 2
  35. ;---------------------------------------------------;
  36.  
  37. ;---------------------------------------------------;
  38. ; Macros                                                                                        ;
  39. ;---------------------------------------------------;
  40. DO_LED  MACRO DATA1, DATA2                                                      ;
  41.         BANKSEL TRISIO                                                                  ;
  42.         MOVLW   DATA1                                                                   ;
  43.         MOVWF   TRISIO                                                                  ;
  44.         BANKSEL GPIO                                                                    ;
  45.         MOVLW   DATA2                                                                   ;
  46.         MOVWF   GPIO                                                                    ;
  47.         MOVLW   H'40'                                                                   ;
  48.         CALL    _Delay                                                                  ;
  49.         ENDM                                                                                    ;
  50. ;---------------------------------------------------;
  51.  
  52. ;---------------------------------------------------;
  53. USER_DATA_0             UDATA                                                           ;
  54. ;---------------------------------------------------;
  55. DTemp1                  res     1                                                               ;
  56. DTemp2                  res     1                                                               ;
  57. DTemp3                  res     1                                                               ;
  58. ;---------------------------------------------------;
  59.  
  60. ;---------------------------------------------------;
  61. RESET_VECT              CODE    H'000'                                          ;
  62. ;---------------------------------------------------;
  63.         CALL    _Initialize_System                                              ;
  64.         NOP                                                                                             ;
  65.         NOP                                                                                             ;
  66.         GOTO    _MAIN                                                                   ;
  67. ;---------------------------------------------------;
  68.  
  69. ;---------------------------------------------------;
  70. USER_CODE               CODE    H'004'                                          ;
  71. ;---------------------------------------------------;
  72. _MAIN:                                                                                          ;
  73. _M_LED_Loop:                                                                            ;
  74.         ;-----------------------------------------------;
  75.         ;               TRISIO Data      GPIO Data                                      ;
  76.         ;-----------------------------------------------;
  77.         DO_LED  ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_1) ; 1
  78.         DO_LED  ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_2) ; 2
  79.         DO_LED  ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_3) ; 3
  80.         DO_LED  ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_4) ; 4
  81.         DO_LED  ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_0) ; 5
  82.         DO_LED  ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_0) ; 6
  83.         DO_LED  ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_0) ; 7
  84.         DO_LED  ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_0) ; 8
  85.         DO_LED  ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_2) ; 9
  86.         DO_LED  ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_3) ; 10
  87.         DO_LED  ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_4) ; 11
  88.         DO_LED  ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_1) ; 12
  89.         DO_LED  ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_1) ; 13
  90.         DO_LED  ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_1) ; 14
  91.         DO_LED  ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_3) ; 15
  92.         DO_LED  ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_4) ; 16
  93.         DO_LED  ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_2) ; 17
  94.         DO_LED  ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_2) ; 18
  95.         DO_LED  ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_2) ; 17
  96.         DO_LED  ~((1<<LED_2) | (1<<LED_4)), ~(1<<LED_4) ; 16
  97.         DO_LED  ~((1<<LED_2) | (1<<LED_3)), ~(1<<LED_3) ; 15
  98.         DO_LED  ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_1) ; 14
  99.         DO_LED  ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_1) ; 13
  100.         DO_LED  ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_1) ; 12
  101.         DO_LED  ~((1<<LED_1) | (1<<LED_4)), ~(1<<LED_4) ; 11
  102.         DO_LED  ~((1<<LED_1) | (1<<LED_3)), ~(1<<LED_3) ; 10
  103.         DO_LED  ~((1<<LED_1) | (1<<LED_2)), ~(1<<LED_2) ; 9
  104.         DO_LED  ~((1<<LED_0) | (1<<LED_1)), ~(1<<LED_0) ; 8
  105.         DO_LED  ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_0) ; 7
  106.         DO_LED  ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_0) ; 6
  107.         DO_LED  ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_0) ; 5
  108.         DO_LED  ~((1<<LED_0) | (1<<LED_4)), ~(1<<LED_4) ; 4
  109.         DO_LED  ~((1<<LED_0) | (1<<LED_3)), ~(1<<LED_3) ; 3
  110.         DO_LED  ~((1<<LED_0) | (1<<LED_2)), ~(1<<LED_2) ; 2
  111.         ;-----------------------------------------------;
  112.         GOTO    _M_LED_Loop                                                             ;
  113. ;---------------------------------------------------;
  114.  
  115. ;---------------------------------------------------;
  116. _Delay:                                                                                         ;
  117. ;---------------------------------------------------;
  118.         MOVWF   DTemp1                                                                  ;
  119.         MOVLW   H'00'                                                                   ;
  120.         MOVWF   DTemp2                                                                  ;
  121.         DECFSZ  DTemp2, F                                                               ;
  122.         GOTO    $-1                                                                             ;
  123.         DECFSZ  DTemp1, F                                                               ;
  124.         GOTO    $-3                                                                             ;
  125.         RETURN                                                                                  ;
  126. ;---------------------------------------------------;
  127.  
  128. ;---------------------------------------------------;
  129. _Initialize_System:                                                                     ;
  130. ;---;-----------------------------------------------;
  131.         ; Initialize Hardware                                                   ;
  132.         ;-----------------------------------------------;
  133.         BANKSEL OSCCAL                                                                  ;
  134. ;       CALL    H'3FF'                                                                  ;
  135.         MOVLW   H'44'                                                                   ;
  136.         MOVFW   OSCCAL                                                                  ; Set Oscillator Calibration
  137.                                                                                                         ;
  138.         BANKSEL OPTION_REG                                                              ;
  139.         MOVLW   B'10000000'                                                             ; NOT_GPPU
  140.         MOVWF   OPTION_REG                                                              ;
  141.                                                                                                         ;
  142.         BANKSEL INTCON                                                                  ;
  143.         CLRF    INTCON                                                                  ; No interrupts enabled
  144.                                                                                                         ;
  145.         BANKSEL CMCON                                                                   ;
  146.         MOVLW   B'00000111'                                                             ; Comparator disabled
  147.         MOVWF   CMCON                                                                   ;
  148.                                                                                                         ;
  149.         BANKSEL TRISIO                                                                  ;
  150.         MOVLW   B'11111111'                                                             ;
  151.         MOVWF   TRISIO                                                                  ;
  152.                                                                                                         ;
  153.         BANKSEL GPIO                                                                    ;
  154.         MOVLW   B'00000000'                                                             ;
  155.         MOVWF   GPIO                                                                    ;
  156.                                                                                                         ;
  157.         ;-----------------------------------------------;
  158.         ; Initialize Memory                                                             ;
  159.         ;-----------------------------------------------;
  160.                                                                                                         ;
  161.         RETURN                                                                                  ;
  162. ;---------------------------------------------------;
  163.  
  164. ;---------------------------------------------------;
  165.         END                                                                                             ;
  166. ;---------------------------------------------------;
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top