123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- ; Автор: shilow@ukr.net
- ; Дата:
- ; Название:
- ; Версия:
- ; Имя файла:
- ; Для AVR: ATmega32A
- ; Тактовая частота:
- ; Выполняемые функции:
- ;
- ;
- ;******************************
- .listmac ; развернём макросы
- ; инклуды
- .nolist
- .include "m32Adef.inc"
- .list
- ;******************************
- ; опредления
- .def temp = r16 ; рабочая переменная
- ;******************************
- ; константы
- .equ a = 0 ; sample
- ;******************************
- ; ячейки в СОЗУ, 2KB
- .DSEG
- ;.ORG SRAM_START
- Sample: .byte 30
- ;******************************
- ; константы в EEPROM, 1KB
- .ESEG
- smpl1: .DW 0x0000 ; sample 1
- smpl2: .DB 0x05 ; sample 2
- ;******************************
- ; память программ, 32KB
- .CSEG
- .ORG 0
- ;******************************
- ; Таблица векторов прерываний
- jmp RESET ; Reset Handler
- jmp EXT_INT0 ; IRQ0 Handler
- jmp EXT_INT1 ; IRQ1 Handler
- jmp EXT_INT2 ; IRQ2 Handler
- jmp TIM2_COMP ; Timer2 Compare Handler
- jmp TIM2_OVF ; Timer2 Overflow Handler
- jmp TIM1_CAPT ; Timer1 Capture Handler
- jmp TIM1_COMPA ; Timer1 CompareA Handler
- jmp TIM1_COMPB ; Timer1 CompareB Handler
- jmp TIM1_OVF ; Timer1 Overflow Handler
- jmp TIM0_COMP ; Timer0 Compare Handler
- jmp TIM0_OVF ; Timer0 Overflow Handler
- jmp SPI_STC ; SPI Transfer Complete Handler
- jmp USART_RXC ; USART RX Complete Handler
- jmp USART_UDRE ; UDR Empty Handler
- jmp USART_TXC ; USART TX Complete Handler
- jmp ADCC ; ADC Conversion Complete Handler
- jmp EE_RDY ; EEPROM Ready Handler
- jmp ANA_COMP ; Analog Comparator Handler
- jmp TWI ; Two-wire Serial Interface Handler
- jmp SPM_RDY ; Store Program Memory Ready Handler
- ;
- ;******************************
- ;;;;; Первичная инициализация
- RESET:
- ; Set Stack Pointer to top of RAM
- ldi temp,high(RAMEND)
- out SPH,temp
- ldi temp,low(RAMEND)
- out SPL,temp
- ; выкл. аналог, компаратор
- ldi temp,1<<ACD
- out ACSR,temp
- ; Enable interrupts
- sei
- ;******************************
- ;;;;; Основная программа
- BEGIN:
- rjmp BEGIN
- ;******************************
- ;;;;; Подпрограммы
- ;******************************
- ;;;;; Обработчики прерываний
- ; IRQ0 Handler
- EXT_INT0:
- reti
- ; IRQ1 Handler
- EXT_INT1:
- reti
- ; IRQ2 Handler
- EXT_INT2:
- reti
- ; Timer2 Compare Handler
- TIM2_COMP:
- reti
- ; Timer2 Overflow Handler
- TIM2_OVF:
- reti
- ; Timer1 Capture Handler
- TIM1_CAPT:
- reti
- ; Timer1 CompareA Handler
- TIM1_COMPA:
- reti
- ; Timer1 CompareB Handler
- TIM1_COMPB:
- reti
- ; Timer1 Overflow Handler
- TIM1_OVF:
- reti
- ; Timer0 Compare Handler
- TIM0_COMP:
- reti
- ; Timer0 Overflow Handler
- TIM0_OVF:
- reti
- ; SPI Transfer Complete Handler
- SPI_STC:
- reti
- ; USART RX Complete Handler
- USART_RXC:
- reti
- ; UDR Empty Handler
- USART_UDRE:
- reti
- ; USART TX Complete Handler
- USART_TXC:
- reti
- ; ADC Conversion Complete Handler
- ADCC:
- reti
- ; EEPROM Ready Handler
- EE_RDY:
- reti
- ; Analog Comparator Handler
- ANA_COMP:
- reti
- ; Two-wire Serial Interface Handler
- TWI:
- reti
- ; Store Program Memory Ready Handler
- SPM_RDY:
- reti
- .exit
|