ATmega32.asm 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. ; Автор: shilow@ukr.net
  2. ; Дата:
  3. ; Название:
  4. ; Версия:
  5. ; Имя файла:
  6. ; Для AVR: ATmega32A
  7. ; Тактовая частота:
  8. ; Выполняемые функции:
  9. ;
  10. ;
  11. ;******************************
  12. .listmac ; развернём макросы
  13. ; инклуды
  14. .nolist
  15. .include "m32Adef.inc"
  16. .list
  17. ;******************************
  18. ; опредления
  19. .def temp = r16 ; рабочая переменная
  20. ;******************************
  21. ; константы
  22. .equ a = 0 ; sample
  23. ;******************************
  24. ; ячейки в СОЗУ, 2KB
  25. .DSEG
  26. ;.ORG SRAM_START
  27. Sample: .byte 30
  28. ;******************************
  29. ; константы в EEPROM, 1KB
  30. .ESEG
  31. smpl1: .DW 0x0000 ; sample 1
  32. smpl2: .DB 0x05 ; sample 2
  33. ;******************************
  34. ; память программ, 32KB
  35. .CSEG
  36. .ORG 0
  37. ;******************************
  38. ; Таблица векторов прерываний
  39. jmp RESET ; Reset Handler
  40. jmp EXT_INT0 ; IRQ0 Handler
  41. jmp EXT_INT1 ; IRQ1 Handler
  42. jmp EXT_INT2 ; IRQ2 Handler
  43. jmp TIM2_COMP ; Timer2 Compare Handler
  44. jmp TIM2_OVF ; Timer2 Overflow Handler
  45. jmp TIM1_CAPT ; Timer1 Capture Handler
  46. jmp TIM1_COMPA ; Timer1 CompareA Handler
  47. jmp TIM1_COMPB ; Timer1 CompareB Handler
  48. jmp TIM1_OVF ; Timer1 Overflow Handler
  49. jmp TIM0_COMP ; Timer0 Compare Handler
  50. jmp TIM0_OVF ; Timer0 Overflow Handler
  51. jmp SPI_STC ; SPI Transfer Complete Handler
  52. jmp USART_RXC ; USART RX Complete Handler
  53. jmp USART_UDRE ; UDR Empty Handler
  54. jmp USART_TXC ; USART TX Complete Handler
  55. jmp ADCC ; ADC Conversion Complete Handler
  56. jmp EE_RDY ; EEPROM Ready Handler
  57. jmp ANA_COMP ; Analog Comparator Handler
  58. jmp TWI ; Two-wire Serial Interface Handler
  59. jmp SPM_RDY ; Store Program Memory Ready Handler
  60. ;
  61. ;******************************
  62. ;;;;; Первичная инициализация
  63. RESET:
  64. ; Set Stack Pointer to top of RAM
  65. ldi temp,high(RAMEND)
  66. out SPH,temp
  67. ldi temp,low(RAMEND)
  68. out SPL,temp
  69. ; выкл. аналог, компаратор
  70. ldi temp,1<<ACD
  71. out ACSR,temp
  72. ; Enable interrupts
  73. sei
  74. ;******************************
  75. ;;;;; Основная программа
  76. BEGIN:
  77. rjmp BEGIN
  78. ;******************************
  79. ;;;;; Подпрограммы
  80. ;******************************
  81. ;;;;; Обработчики прерываний
  82. ; IRQ0 Handler
  83. EXT_INT0:
  84. reti
  85. ; IRQ1 Handler
  86. EXT_INT1:
  87. reti
  88. ; IRQ2 Handler
  89. EXT_INT2:
  90. reti
  91. ; Timer2 Compare Handler
  92. TIM2_COMP:
  93. reti
  94. ; Timer2 Overflow Handler
  95. TIM2_OVF:
  96. reti
  97. ; Timer1 Capture Handler
  98. TIM1_CAPT:
  99. reti
  100. ; Timer1 CompareA Handler
  101. TIM1_COMPA:
  102. reti
  103. ; Timer1 CompareB Handler
  104. TIM1_COMPB:
  105. reti
  106. ; Timer1 Overflow Handler
  107. TIM1_OVF:
  108. reti
  109. ; Timer0 Compare Handler
  110. TIM0_COMP:
  111. reti
  112. ; Timer0 Overflow Handler
  113. TIM0_OVF:
  114. reti
  115. ; SPI Transfer Complete Handler
  116. SPI_STC:
  117. reti
  118. ; USART RX Complete Handler
  119. USART_RXC:
  120. reti
  121. ; UDR Empty Handler
  122. USART_UDRE:
  123. reti
  124. ; USART TX Complete Handler
  125. USART_TXC:
  126. reti
  127. ; ADC Conversion Complete Handler
  128. ADCC:
  129. reti
  130. ; EEPROM Ready Handler
  131. EE_RDY:
  132. reti
  133. ; Analog Comparator Handler
  134. ANA_COMP:
  135. reti
  136. ; Two-wire Serial Interface Handler
  137. TWI:
  138. reti
  139. ; Store Program Memory Ready Handler
  140. SPM_RDY:
  141. reti
  142. .exit