109
Листинг 5.1. Продолжение
пор ret
;Подпрограмма задержки 1 мс zlms: пор
wdr ;сброс сторожевого таймера
clr М /начальный сброс константы
clr Y ;начальный сброс константы
ldi Y, /первая константа цикла
goo: пор
ldi М,
dm: пор
ldi X, /третья константа цикла
пор
goq: пор пор
dv: пор
wdr /сброс сторожевого таймера
пор
dx: dec Y пор пор пор пор пор
brpl dx /проверка услоаия
пор
пор
cln
dec X
brpl dv /проверка условия
cln
dec M nop
brne dm /проверка услоаия
ret
/Подпрограмма АЦП, настройка АЦП adcn: nop nop
clr tmp awe: nop
cpi tmp, /считывание АЦП 4 раза
brsh ass /более 4-х раз
nop
out ADMUX, tmpl /коммутация зходоз АЦП
по
Глава 5
Листинг 51. Продолжение
/Подпрограмма задержки 125 мкс пор
clr Y
ldi Y, /задаем цикл
cln /сброс флага знака dx3: пор
dec Y /цикл, начало пор
brpl dx3 /проверка условия пор
clr tmp2
clr tmp3
ldi tt2, $C5 /одиночное, запуск, 1/32
out ADCSR, tt2 ;запуск АЦП на преобразование
/Сохранение данных АЦП
in tmp2, ADCL /чтение младшего байта АЦП
in tmp3, ADCH /чтение старшего байта АЦП
mov r2, tmp2 /запомнить временно
mov r3, tmp3 /запомнить зременно
mov г4, г2 /запомнить зременно
mov г5, гЗ /запомнить зременно
mov г6, г4 /запомнить зременно
mov г7, г5 /запомнить временно
inc tmp /узеличить на 1
rjmp awe
/среднее арифметическое
ass: пор
clr г8
/для младшего байта
clc /сброс флага переноса
add tmp2, r2 ;сложение с предыдущим
adc г9, г8 /сложение с переносом
add tmp2, г4 /сложение с предыдущим
adc r9, г8 /сложение с переносом
add tmp2, гб /сложение с предыдущим
adc г9, г8 /сложение с переносом clc
Isr г9 /сдвиг вправо
ror tmp2 /сдвиг вправо через перенос
Isr г9 /сдвиг вправо
ror tmp2 /сдвиг зпразо через перенос
clr г9
clc
/для старшего байта
add tmp3, гЗ /сложение с предыдущим
adc г9, г8 /сложение с переносом
Управление вентилятором в помещении
111
Листинг 5.1- Продолжение
|
add |
tmp3, |
r5 |
;сложение с предыдущим |
|
adc |
r9, rt |
j |
;сложение с переносом |
|
add |
tmp3, |
rl |
;сложение с предыдущим |
|
adc |
r9, rt |
i |
;сложение с переносом |
|
clc |
|||
|
Isr |
r9 |
;сдвиг вправо |
|
|
ror |
tmp3 |
;сдвиг вправо через перенос |
|
|
Isr |
r9" |
;сдвиг зправо |
|
|
ror |
tmp3 |
;сдвиг вправо через перенос |
|
|
nop |
;младший байт tmp2, старший |
||
|
ret |
.•Подпрограмма задержки времени таймера по DIP
| НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |