Предыдущая Следующая

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 ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz