ATmega8A.asm 2.6 KB

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