Advertisement
Guest User

Meteor_Lights.ASM (V1.02)

a guest
Dec 21st, 2012
390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  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. ;---------------------------------------------------;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement