;Шаблон
.include "tn2313def.inc"
.list
.def temp=r16
.cseg ;Выбор сегмента программного кода
.org 0 ;Установка текущего адреса на ноль
;---------------Переопределение векторов прерывания 19шт.-----------------
start: rjmp init ;Переход на начало программы.Прерывание по сбросу
reti ;Внешнее прерывание 0
reti ;Внешнее прерывание 1
reti ;Таймер/счётчик 1,захват
reti ;Таймер/счётчик 1,совпадение,канал А
reti ;Таймер/счётчик 1,прерывание по переполнению
reti ;Таймер/счётчик 0,прерывание по переполнению
reti ;Переполнение UART пирём завершён
reti ;Переполнение UART регистр данных пуст
reti ;Переполнение UART передача завершена
reti ;Прерывание по изменению на любом контакте
reti ;Переполнение по компаратору
reti ;Таймер/счётчик 1,совпадение,канал В
reti ;Таймер/счётчик 0,совпадение,канал В
reti ;Таймер/счётчик 0,совпадение,канал А
reti ;USI готовность к старту
reti ;USI Переполнение
reti ;EEPROM Готовность
reti ;Переполнение охранного таймера
;---------------Инициалазация регистров общего назначения--------------------
init: ldi temp,RAMEND;Выбор адреса вершины стека
out SPL,temp ;Запись его в регистр стека
ldi temp,0x80 ;Загружаем в R16 число 1000 0000 или 128
out acsr,temp ;Отключаем компаратор
;---------------Сдесь будет работать основная программа----------------------
main:
rjmp main
;Шаблон без коментариев
.include "tn2313def.inc"
.list
.def temp=r16
.cseg
.org 0
start: rjmp init
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
init: ldi temp,RAMEND
out SPL,temp
ldi temp,0x80
out acsr,temp
main:
rjmp main
НАЗАД ASSEMBLER PIC 16F628A Cи ATtiny2313 ДАЛЕЕ