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

291

В ходе реализации подпрограммы выяснилось что у микроконтроллера mega8 ограничен запас арифметических функций (например, он не работает с командой SBC Rd, Rr). При этом компилятор программы не смог точно указать ошибку компиляции. После некоторых ухищрений программа возобновила работоспособность.

Как только значение выбрано, происходит переход к адресу, в котором записано два байта информации "Базис 12" (5-6 столбцы табл. 11.1) и дйа байта кода дисплея (7-12 столбцы табл. 11.1). Для реализации метода регулирования "Базис 12" автор использовал функцию команд микроконтроллера "сдвиг вправо через перенос". При этом значение переноса анализируется логическими командами. Если перенос равен единице, то семистор включается, если же — нулю, то выключается.

Для отображения информации на дисплее также используется функция переноса. В формировании второй цифры индикации учувст-вуют порты В и D. Для того чтобы правильно передать информацию в порт В, семь разрядов цифры маскируется логической функцией "И", а для порта D разряды цифры получаются в результате комбинирования логических функций с первой цифрой порта D. Это необходимо для экономии памяти кодов значащих цифр.

Скорость выполнения программы микроконтроллером очень высока, поэтому АЦП2 успевает вычислить уровень сетевого напряжения и выключить семистор при нулевом напряжении сети и включить при напряжении выше 10 единиц АЦШ.

Программа повторяется циклически. При этом за один цикл полностью выполняется функция "Базис 12". В каждом новом цикле проверяется уровень регулятора мощности Р1.

Программа управления паяльником представлена в листинге 11.1, а шестнадцатеричный код программирования микроконтроллера — в листинге 11.2. Соответствующие файлы warm9.asm и warm9.hex находятся на прилагаемом к книге компакт-диске в папке ПрограммьЛП - Паяльник.

Листинг 11.1. Программа цифрового управления паяльником

;Автор: Кразченко А.В.

;Дата: 17.07.2008

;Версия: 1.0.4

;Имя файла: Warm9.asm

.•Микроконтроллер: ATmega8

;Тактовая частота: 4.ОмГц

.•Питание: стабилизированное 5 В

.list

Глава 11

Листинг 11.1. Продолжение

.include "C:\Program Files\Atmel\AVR Studlo\Appnotes\m8def.inc"

. * * * * +

Регистровые

переменные

def

adr

=

rO

 

def

disl

=

rl4

;младший адрес дисплея

def

dis2

-

rlO

;старший адрес дисплея

def

cotl

=

rll

.■младший адрес кода 12

def

cot2

=

rl2

.•старший адрес кода 12

def

copy

=

rl3

;копия адреса кода

def

cxt

=

rl6

; Счетчик мощности

def

cms

=

rl7

; Рабочий регистр

def

poyl

=

rl8

;данные дисплея1

def

poy2

=

rl9

.•данные дисплея2

def

Digl

=

r20

 

def

Dig2

=

r21

 

def

dadcl

=

r22

 

def

dadc2

=

r23

 

def

adcl

=

r2 4

 

def

adc2

=

r2 5

 

def

tmp

=

r2 6

; Рабочий регистр

def

tmp2

=

r27

; Рабочий регистр

def

tmp3

=

r2 8

; Рабочий регистр

. cseg

.•Начало области памяти, вектор прерывания


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






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_113.html on line 561

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_113.html on line 561

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book8_113.html on line 561