Задание: Написать программу, которая зажигает светодиод №4 1 раз в 4 секунды
Пример программы
.include "tn2313def.inc"
.def Temp=R16
.def Temp1=R17
.cseg
.org 0
.rjmp Reset;вектора прерываний
.rjmp INT_0
.rjmp INT_1
.rjmp Timer1_capt1;
.Reset:
.INT_0:
.INT_1:
.Timer1_capt1:
;****************************************************
; ИНИЦИАЛИЗАЦИЯ
;****************************************************
Reset: ldi Temp,0b11111111;настройка портов
out DDRB,Temp
ldi Temp,0b01000000;разрешить прерывание таймера
out TIMSK,Temp
ldi Temp,0b00000011;тактовый сигнал = CK/64
out TCCR1B,Temp
ldi Temp,0x4C; инициализация компаратора
out OCR1AH,Temp
ldi Temp,0x4B
out OCR1AL,Temp
ldi Temp,RamEnd;установка указателя стека
out SPL,Temp
ldi Temp1,0b00000001;инициализация индикатора
ldi Temp,0;обнуление таймера
out TCNT1H,Temp
out TCNT1L,Temp
sei;разрешение прерываний
;****************************************************
; ОСНОВНИЙ ЦИКЛ
;****************************************************
Inf:rjmp Inf; бесконечный цикл
;****************************************************
; ОБРАБОТЧИК ПРЕРЫВАНИЯ ТАЙМЕРА
;****************************************************
Timer1_comp1:
ldi Temp,0; обнуление таймера
out TCNT1H,Temp
out TCNT1L,Temp
Shift: cpi Temp1,0b10000000; сравнение с последним значением
breq Init; если равно – загрузка начального значения
lsl Temp1;иначе – смещение влево
rjmp Output;перейти на вывод порта
Init: ldi Temp1,0b00000001;загрузка начального значения
Output: out PortB,Temp1;вывод в порт
reti; выход из обработчика
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |