МИКРОКОНТРОЛЛЕРЫ
IP
связан с нашими сигналами. Любое же
изменение сигнала Latch (линия В[0])
приведет лишь к “защелкиванию” в ре-
гистрах драйвера одной и той же неиз-
менной информации с регистра сдви-
га драйвера, что, разумеется, никак не
отразится на показаниях на светодиод-
ном “экране”.
Таким образом, следуя этим про-
стым правилам, мы решаем проблему
дефицита выходных линий микроконт-
роллера. Заинтересовавшихся подроб-
ностями отсылаем к документации на
соответствующие микросхемы.
Микросхема драйвера светодиод-
ной матрицы имеет 16 выходов: 8 из них
подсоединены к катодам светодиодной
матрицы, а еще 4 (через транзистор-
ные инвертеры) - к анодам соответству-
ющего знакоместа. Для вывода нужно-
го символа в нужное знакоместо необ-
ходимо подать на первые 8 выходов код
соответствующего символа, а на остав-
шиеся 8 выходов - “бегущую единицу”.
Сигнал на выходе драйвера инверти-
рован, т.е. лог.1 соответствует “горяще-
му” сегменту и, соответственно, прово-
дящему состоянию линии с открытым
стоком.
Микросхема термодатчика, приме-
ненная в устройстве, возвращает ин-
формацию о температуре в виде пос-
ледовательности прямоугольных им-
пульсов. Величина температуры зако-
дирована в соотношении длительнос-
ти лог.О и лог.1 этой последовательно-
сти. Таким образом, при разработке
программы для этого устройства нам
придется обрабатывать прерывания от
импульсов, поступающих с термодат-
чика, и измерять их длительность. При-
менение именно этой (достаточно до-
рогой!) микросхемы в данной конструк-
ции является самостоятельной целью
разработки - дело в том, что различ-
ными фирмами выпускается множе-
ство датчиков температуры, в том чис-
ле имеющих цифровой выход. Работа
с такими датчиками не требует каких-
либо программистских ухищэений - не-
обходимо просто аккуратно реализо-
вать требуемый микросхемой протокол
обмена, нимало не заботясь ни о про-
блеме потерянных прерываний, ни об
измерении длительности импульсов, ни
о реализации сложных арифметичес-
ких действий (в данном случае - умно-
жения и деления). Для учебной задачи,
конечно, такая простота “хуже воров-
ства", поэтому в конструкции и приме-
нена микросхема ТМР04 - с ней мы
столкнемся со всеми вышеназванны-
ми проблемами в полном объеме. Кро-
ме указанных вопросов нам, разумеет-
ся, потребуется и автоматное програм-
мирование - для реализации алгорит-
ма управления устройством. Коснемся
этого вопроса более подробно.
Источником терминальных симво-
лов для автомата, с помощью кото-
рого мы собираемся реализовывать
управления устройством, является
единственная кнопка (больше не по-
зволяет дефицит линий микроконт-
роллера). Скомпенсировать “нехват-
ку” кнопок можно единственным об-
разом - распознавая особые приемы
работы с кнопкой (щелчок, двойной
щелчок, нажатие с удержанием). Все
это, разумеется, можно реализовать
непосредственно в графе автомата,
но в данном случае более правиль-
ным представляется принять несколь-
ко иное решение - завести в системе
два автомата. Первый автомат дол-
жен будет распознавать приемы ра-
боты с кнопкой и, разумеется, устра-
нять дребезг контактов. Второй же ав-
томат будет получать в качестве тер-
минальных символов уже распознан-
ные действия с кнопкой. Такой вари-
ант построения автомата позволит
значительно упростить граф основно-
го автомата, из которого мы исклю-
чим многократно повторяющиеся уча-
стки по анализу действий с кнопкой и
устранению дребезга. Граф перехо-
дов автомата кнопки изображен на
рис. 3,
граф переходов основного ав-
томата - на
рис. 4.
Предлагаем чита-
телям разобраться в них самостоя-
тельно.
t
Терминальные символы
ф
-
кнопка нажата
|
-
кнопка отпущена
Д -
таймаут
Рис. 3
Выходные символы
I
-
останов таймера
1оог - пуск таймера на 20 мс
Г,
-
пуск таймера на 1 с
В,
-
выдать терминал "кнопка нажата"
В.
-
выдать терминал "кнопка отпущена"
В „ -
выдать терминал "автоповтор кнопки"
Ві
- выдать терминал "двойной щелчок"
РИС. 4
Терминальные символы
В+ - кнопка нажата
В. - кнопка отпущена
В++-
автоповтор кнопки
- двойной щелчок
В ы ходны е сим волы
Ч
- подсветить показания часов
М
-
подсветить показания минут
Ч+* -
инкремент часов
М
-
инкремент минут
в
- сохранить показания часов
34
У
Радиолюбитель - 0 9 /2 0 0 7
предыдущая страница 34 Радиолюбитель 2007-09 читать онлайн следующая страница 36 Радиолюбитель 2007-09 читать онлайн Домой Выключить/включить текст