Конспект лекций по курсам "Проектирование центральных и периферийных устройств ЭВС", "Микропроцессоры и ЭВМ в микросистемах". Лукьяненко Е.Б. - 70 стр.

UptoLike

Составители: 

Разрешить общее прерывание (команда sei)
PB2:
Выход
OC0A установить в 0
Запустить таймер TCNT0 регистр TCCR0B записывается число
0b00000101 (CS02…CS000=101) (деление на 1024. f=4 кГц)
Установить режим CTC (сброс при совпадении) регистр TCCR0A за-
писывается число 0b00000010; 1 разряд wgm01=1, 0 разряд wgm00=0 )
Состояние вывода OC0A меняется на противоположное регистр
TCCR0A записывается число 0b01000000; 7-й разряд com0A1=0, 6-й раз-
ряд com0a0=1). В результате в регистр OC0A записывается, с учетом
предыдущей строчки, число 0b01000010
Установить в регистре OCR0A число 16 (4 кГц:8=500 Гц).
С учетом изложенного программа будет иметь вид:
.device ATtiny2313
.nolist
.include “…\tn2313def.inc”
.list
.def tmp=r16
.CSEG
.org 0
rjmp reset
nop ; Int0
rjmp Ext_Int1
reset:
ldi tmp,low(RAMEND) ; загрузка стека
out SPL,tmp
clr tmp ; D-входы
out ddrD,tmp
ser tmp ; B – выходы
out ddrB,tmp
out PortD,tmp ; подтяжка на входы порта D
clr tmp ; на всех выходах порта B – 0
out PortB,TMP
ldi tmp,0b10000000 ; разрешить прерывания по Int1
out GIMSK,tmp
ldi tmp,0b00000101 ; конфигурирование таймера
out TCCR0B,tmp ; f=F
t
/1024; 4 кГц
ldi tmp,0b01101000 ; прерывание по нарастающему фронту (3 и 2 р = 1…0);
установка спящего режима Power Down (6 и 4 р. = 1…0); разрешение спящего ре-
жима (5р=1)
70