Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. ;//////////////////////////////////////////////////////////////////////////////
  2. ; Laboratory AVR Microcontrollers Part1
  3. ; Program template for lab 20
  4. ; Authors:
  5. ;
  6. ; Group:
  7. ; Section:
  8. ;
  9. ; Task:
  10. ;
  11. ; Todo:
  12. ;
  13. ;
  14. ; Version: 1.0
  15. ;//////////////////////////////////////////////////////////////////////////////
  16. .nolist
  17. .include "m128def.inc"
  18. .list
  19. .equ RAMTAB_SIZE=512
  20. .equ ROMTAB_SIZE=514
  21. ;//////////////////////////////////////////////////////////////////////////////
  22. ; StaticRAM - data memory.segment
  23. .DSEG
  24. .ORG 0x100; may be omitted this is default value
  25. ; Destination table (xlengthx bytes).
  26. ; Replace "xlengthx" with correct value
  27. ramtab: .BYTE RAMTAB_SIZE
  28. ;//////////////////////////////////////////////////////////////////////////////
  29. ; CODE - Program memory segment
  30. ; Please Remember that it is "word" address space
  31. ;
  32. .CSEG
  33. .org 0x0000 ; may be omitted this is default value
  34. jmp RESET ; Reset Handler
  35. ; Interrupts vector table / change to your procedure only when needed
  36. jmp EXT_INT0 ; IRQ0 Handler
  37. jmp EXT_INT1 ; IRQ1 Handler
  38. jmp EXT_INT2 ; IRQ2 Handler
  39. jmp EXT_INT3 ; IRQ3 Handler
  40. jmp EXT_INT4 ; IRQ4 Handler
  41. jmp EXT_INT5 ; IRQ5 Handler
  42. jmp EXT_INT6 ; IRQ6 Handler
  43. jmp EXT_INT7 ; IRQ7 Handler
  44. jmp TIM2_COMP ; Timer2 Compare Handler
  45. jmp TIM2_OVF ;Timer2 Overflow Handler
  46. jmp TIM1_CAPT ;Timer1 Capture Handler
  47. jmp TIM1_C0MPA ;Timer1 CompareA Handler
  48. jmp TIM1_C0MPB ;Timer1 CompareB Handler
  49. jmp TIM1_0VF ;Timer1 Overflow Handler
  50. jmp TIM0_COMP ;Timer0 Compare Handler
  51. jmp TIM0_OVF ;Timer0 Overflow Handler
  52. jmp SPI_STC ;SPI Transfer Complete Handler
  53. jmp USART0_RXC ;USART0 RX Complete Handler
  54. jmp USART0_DRE ;USART0,UDR Empty Handler
  55. jmp USART0_TXC ;USART0 TX Complete Handler
  56. jmp ADC1 ;ADC Conversion Complete Handler
  57. jmp EE_RDY ;EEPROM Ready Handler
  58. jmp ANA_COMP ;Analog Comparator Handler
  59. jmp TIM1_C0MPC ;Timer1 CompareC Handler
  60. jmp TIM3_CAPT ;Timer3 Capture Handler
  61. jmp TIM3_COMPA ;Timer3 CompareA Handler
  62. jmp TIM3_COMPB ; Timer3 CompareB Handler
  63. jmp TIM3_COMPC ;Timer3 CompareC Handler
  64. jmp TIM3_OVF ;Timer3 Overflow Handler
  65. jmp USART1_RXC ;USART1 RX Complete Handler
  66. jmp USART1_DRE ;USART1,UDR Empty Handler
  67. jmp USART1_TXC ;USART1 TX Complete Handler
  68. jmp TWI ;Two-wire Serial Interface Interrupt Handler
  69. jmp SPM_RDY ;SPM Ready Handler
  70. ;//////////////////////////////////////////////////////////////////////////////
  71. EXT_INT0: ; IRQ0 Handler
  72. EXT_INT1: ; IRQ1 Handler
  73. EXT_INT2: ; IRQ2 Handler
  74. EXT_INT3: ; IRQ3 Handler
  75. EXT_INT4: ; IRQ4 Handler
  76. EXT_INT5: ; IRQ5 Handler
  77. EXT_INT6: ; IRQ6 Handler
  78. EXT_INT7: ; IRQ7 Handler
  79. TIM2_COMP: ; Timer2 Compare Handler
  80. TIM2_OVF: ;Timer2 Overflow Handler
  81. TIM1_CAPT: ;Timer1 Capture Handler
  82. TIM1_C0MPA: ;Timer1 CompareA Handler
  83. TIM1_C0MPB: ;Timer1 CompareB Handler
  84. TIM1_0VF: ;Timer1 Overflow Handler
  85. TIM0_COMP: ;Timer0 Compare Handler
  86. TIM0_OVF: ;Timer0 Overflow Handler
  87. SPI_STC: ;SPI Transfer Complete Handler
  88. USART0_RXC: ;USART0 RX Complete Handler
  89. USART0_DRE: ;USART0,UDR Empty Handler
  90. USART0_TXC: ;USART0 TX Complete Handler
  91. ADC1: ;ADC Conversion Complete Handler
  92. EE_RDY: ;EEPROM Ready Handler
  93. ANA_COMP: ;Analog Comparator Handler
  94. TIM1_C0MPC: ;Timer1 CompareC Handler
  95. TIM3_CAPT: ;Timer3 Capture Handler
  96. TIM3_COMPA: ;Timer3 CompareA Handler
  97. TIM3_COMPB: ; Timer3 CompareB Handler
  98. TIM3_COMPC: ;Timer3 CompareC Handler
  99. TIM3_OVF: ;Timer3 Overflow Handler
  100. USART1_RXC: ;USART1 RX Complete Handler
  101. USART1_DRE: ;USART1,UDR Empty Handler
  102. USART1_TXC: ;USART1 TX Complete Handler
  103. TWI: ;Two-wire Serial Interface Interrupt Handler
  104. SPM_RDY: ;SPM Ready Handler
  105. reti ; return from all no used
  106. ;//////////////////////////////////////////////////////////////////////////////
  107. ; Program start
  108. RESET:
  109. cli ; disable all interrupts
  110. ; sprawdź, czy można kopiować, trzeba porównać liczby większe od 255 (tj. <0,512>) więc na
  111. 2 razy
  112. ; najpierw starszy bajt możliwie 2-bajtowej liczby
  113. ldi r16, high(RAMTAB_SIZE)
  114. cpi r16, high(ROMTAB_SIZE-2)
  115. brlo koniec
  116. ldi r16, low(RAMTAB_SIZE)
  117. cpi r16, low(ROMTAB_SIZE-2)
  118. brlo koniec
  119. ; Set stack pointer to top of RAM
  120. ldi R16, HIGH(RAMEND)
  121. out SPH, R16
  122. ldi R16, LOW(RAMEND)
  123. out SPL, R16
  124. ;------------------------------------------------------------------------------
  125. ; Main program code place here
  126. ; 1. Place here code related to initialization of ports and interrupts
  127. ; porty
  128. ldi r16, 0x00
  129. out DDRA, r16
  130. ldi r16, 0xff
  131. out PORTA, r16
  132. ; co prawda nie używamy diod, ale...
  133. ldi r16, 0x00 ; stan wysokiej imped - diody nie świecą
  134. out DDRB, r16
  135. ; czekaj na guzik
  136. czekaj:
  137. in r16, PINA
  138. cpi r16, 0xff
  139. breq czekaj
  140. ; RAMPZ dla rom żeby obejść 64kB limit
  141. ldi r30, low(romtab<<1)
  142. ldi r31, high(romtab<<1)
  143. ldi r16, byte3(romtab<<1)
  144. out RAMPZ, r16
  145. ; przygotuj czytanie do pamieci RAM
  146. ldi r28, low(ramtab) ;
  147. ldi r29, high(ramtab) ;
  148. loop:
  149. ; wczytaj 2 bajty z romtab
  150. elpm r16, Z+
  151. elpm r17, Z
  152. ; if (t[0] == 0 && t[1] == 0) ...
  153. cpi r16, 0x00
  154. brne kopiuj
  155. cpi r17, 0x00
  156. brne kopiuj
  157. koniec:
  158. rjmp koniec
  159. kopiuj:
  160. ; tu kopiowanie
  161. st Y+,r16 ; kopiuj bajt
  162. rjmp loop
  163. ;------------------------------------------------------------------------------
  164. ; Table Declaration - place here test values
  165. ; Test with different table values and different begin addresses of table (als above
  166. 0x8000)
  167. ;
  168. .org 0x7ff0
  169. romtab: .DB
  170. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33
  171. ,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
  172. 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,9
  173. 4,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,11
  174. 8,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,1
  175. 41,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,
  176. 164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186
  177. ,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,20
  178. 9,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,2
  179. 32,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,
  180. 255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,3
  181. 2,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62
  182. ,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,
  183. 93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,11
  184. 7,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,1
  185. 40,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,
  186. 163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185
  187. ,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,20
  188. 8,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,2
  189. 31,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,
  190. 254,255, 0, 0
  191. .EXIT
  192. ;------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement