і
МИКРОКОНТРОЛЛЕРЫ
і
Динамическая индикация
с двумя дополнительными элементами
Схема реализации такого способа приведена на
рис. 6.
Здесь использованы два последовательных регистра
сдвига: один - для развертки изображения по столб-
цам (заменяет порт А), другой - для развертки изоб-
ражения по строкам (заменяет порт В). Главное дос-
тоинство такого решения -
всего три линии
порта мик-
роконтроллера, которые можно довести сколь угодно
далеко; например, непосредственно до матрицы ин-
дикаторов, расположив микросхемы регистров сдви-
га в непосредственной близости от них, и
значитель-
но упростив
тем самым топологию печатной платы.
Кроме того, при таком варианте реализации блок ди-
намической индикации легко оформить и в виде от-
дельной платы. Недостаток такого решения - два до-
полнительных компонента.
Еще одна схема реализации приведена на
рис. 7.
Достоинство такой схемы -
всего две линии
порта.
Недостаток - несколько более сложная программа уп-
равления и большая длительность формирования вы-
ходных сигналов, что вызывает некоторую паразитную
подсветку индикаторов (впрочем, заметную только в
темноте).
Программирование
динамической индикации
Мы рассмотрим только два варианта реализации ди-
намической индикации, а именно
рис. 4
и
рис. 6,
по-
скольку, во-первых, они являются наиболее сложны-
ми в программном отношении и, во-вторых, имеют наи-
большую практическую ценность. Динамическая ин-
дикация, как правило, реализуется в микроконтрол-
лерах в режиме
ОЗУ, отображаемого на матрицу
светодиодов.
Суть этого способа заключается в сле-
дующем.
В области ОЗУ микроконтроллера выделяется ме-
сто, в котором будет храниться
образ
того изображе-
ния, которое необходимо выдавать на матрицу све-
тодиодов. Программа в процессе работы просто за-
носит в этот образ необходимые символы. Собствен-
но же процесс динамической индикации реализует об-
работчик прерываний, который, как правило, назна-
чается на сторожевой таймер (как наименее ценный
компонент системы). В его задачу входит поочеред-
ная выборка символов из образа и выдача их на ли-
нии портов. Такое построение схемы динамической ин-
дикации полностью избавляет основную программу от
управления процессом динамической индикации - он
происходит “сам по себе” и не выходит за рамки обра-
ботчика прерываний. В примерах, рассмотренных
ниже, описаны только фрагменты программ, посколь:
ку динамическая индикация как таковая не является
самоцелью работы конструкции, а входит в нее, как
составная часть.
Итак, вот каким образом реализуется динамичес-
кая индикация по схеме
рис. 4.
Будем считать, что об-
раз изображения хранится в ячейках ОЗУ, располо-
женных по адресу 40Ь.
.47Ь. Кроме того, обработчик
прерываний от сторожевого таймера использует при
работе следующие ячейки ОЗУ:
• 48И - адрес текущего выводимого на индикатор
знакоместа.
• 49Ь| - байт, в котором организована бегущая
единица.
• 4АЬ - счетчик цикла.
Предполагается также, что для управления сигна-
лом С регистра сдвига используется линия А[0], а сиг-
нал й регистра сдвига подключен к линии В[
0
]. Порты
А и В предполагаются правильно инициализирован-
ными, регистр #В при входе в обработчик прерываний
содержит адрес ООЬ, а регистр #й - 18Ь.
start:
jmp
jmp
begin:
ldr
ldr
movl
movl
ldr
movl
movl
begin
inti
#B,18h
#D,lBh
%d5,OAAh
%d5,01010111b
#A,4 Bh
%a0,47h
%al,00000001b
38 I
; Переход на начало программы
; Переход на обработчик прерываний от сторожевого таймера.
; Сегмент В - регистры данных портов и интервального таймера
; Сегмент Б - управляющие регистры портов
; <1> Загрузить в сторожевой таймер характерный код.
; Запустить таймер в работу.
; <2> Сегмент А - адреса рабочих ячеек обработчика прерываний
; от сторожевого таймера (необходимо подготовить ячейки)
; Вывод символов начинаем с конца образа.
; Подготавливаем бегущую единицу.
| Родиолюбитель - 0 4 /2 0 0 6
предыдущая страница 38 Радиолюбитель 2006-04 читать онлайн следующая страница 40 Радиолюбитель 2006-04 читать онлайн Домой Выключить/включить текст