Настройка схемы
Микроконтроллер выбран с тактовой внутренней частотой 1,6 МГц. При использовании микроконтроллера с другой тактовой частотой частота световых эффектов изменится. При использовании частоты выше 25 МГц световые эффекты становятся динамическими, с включением всех светодиодов. Если в динамическом режиме чаще включать одни и те же светодиоды, то они будут светиться постоянного, в то время как остальные будут мигать. При достижении определенной динамической частоты все световые эффекты сольются в постоянное свечение (это происходит на уровне примерно 1,5 В на выводе 2 микроконтроллера).
Программа
Программа на ассемблере представлена в листинге 2.1, а шестна-дцатеричный код — в листинге 2.2. Соответствующие файлы
Создание световых эффектов с помощью АЦП
57
elka_adc.asm и elka_adc.hex находятся на прилагаемом к книге компакт-диске в папке ПрограммыХ02 - Светозые эффекты. Листинг 2 1. Програмva управления световыми эффектами
.include "C:\Program Files\Atmel\AVR Studio\Appnotes\ tnl5def.inc"
/Автор - инженер промышленной электроники Кразченко А.В.
def |
tmp |
= |
rl6 |
def |
tmp2 |
= |
rl7 |
def |
tmp3 |
rl8 |
|
def |
tempo |
= |
rl9 |
def |
pir |
r22 |
|
def |
pur |
= |
r23 |
def |
par |
r20 |
|
def |
Y |
= |
r29 |
def |
X |
= |
r21 |
def |
M |
= |
r26 |
def |
adr |
= |
rO |
def |
prgl |
= |
r2 4 |
def |
prg2 |
= |
r25 |
. cseg . org 0
rjmp RESET
nop
nop
nop
nop
nop
.org 20
/настройка порта В RESET: nop
clr
out
out
clr
Idi
out
;rjmp EXT_INT0 - прерывание не используется ;rjmp EXT_PIN - прерывание не используется ;rjmp TIME_OVF0 - прерывание от таймера ;rjmp EE_RDY - прерывание от таймера ;rjmp ANA_COMP- прерывание не используется
tmp
DDR3, tmp P0RT3, ~mp tmp
tmp, content>? DDR3, tmp
;обнулить порт 3
;PBO,P31,P32,РЗЗ-зыходы
;Начало программы
clr clr clr clr clr
nStart:
pir
pur
prgl
prg2
adr
noo
58
Глава 2
Листинг 2.1. Продолжение
;сброс всех значений
rcall adcn nop
rcall zader nop
rcall opros nop
rjmp nStart
/Настройка АЦП, начало программы adcn: nop
nop
clr
nop
cpi
brsh
clr
ldi
out
clr
clr
ldi
out
tmp
tmp, ass tmp3
tmp3, ADMUX, tmp3 tmp2 tmp3
tmp2, $C4 ADCSR, tmp2
/Сохранение данных АЦП
in
in
mov
mov
mov
mov
mov
mov
inc
rjmp
nop
clr
clc
add
adc
add
adc
add
tmp2, ADCL tmp3, ADCH r2, tmp2 r3, tmp3 r4, r2 r5, r3 r6, r4 rl, r5 tmp awe
r8
tmp2, r9~, rE tmo2, r9~, rf tmp2.
r2
r4
/внутренний источник, вход ADC3 /коммутация входов АЦП
/одиночное, запуск, 1/16 /запуск АЦП на преобразование
Создание световых эффектов с помощью АЦП
Листинг 2.1. Продолжение
ror |
tmp2 |
|
Isr |
r9 |
|
ror |
tmp2 |
|
clr |
r9" |
|
clc |
||
add |
tmp3, |
r3 |
adc |
r9, ri |
J |
add |
tmp3, |
r5 |
adc |
r9, r! |
i |
add |
tmp3, |
r7 |
adc |
r9, rS |
i |
clc |
||
Isr |
r9 |
|
ror |
tmp3 |
|
Isr |
r9 |
|
ror |
tmp3 |
|
nop |
||
ret |
;Подпрограмма задержки включения сзетодиодоз zader:
goo: dm:
goq: dv:
dx:
nop |
||
wdr |
||
clr |
M |
|
clr |
Y |
|
ldi |
Y, |
$AF |
cpi |
tmp3, content> |
|
brne |
goo |
|
ldi |
M, |
|
add |
M, |
tmp3 |
nop |
||
nop |
||
mov |
M, |
tmp3 |
nop |
||
cpi |
tmp2, content> |
|
brne |
goq |
|
ldi |
X, |
|
add |
X, |
tmp2 |
nop |
||
nop |
||
mov |
X, |
tmp 2 |
nop |
||
wdr |
||
nop |
||
dec |
Y |
|
brol |
dx |
Глава 2
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |