В [1] приведены рекомендации, позволяющие реализовывать схемы на микроконтроллере [МК] с использованием нестандартных подходов. Предлагаемое в этой статье устройство использует некоторые из этих возможностей для создания эффекта бегущей тени с автореверсом.
Von Figur 1 показана схема расположения 80-ти светодиодов для получения описанного выше эффекта.
Светодиоды расположены на окружностях диаметром 60, 80, 100, 120 и 140 мм с расстоянием между их осями 120 мм. Светодиодная панель символизирует цифру 8 (к 8 Марта), но если ее расположить горизонтально, то она будет напоминать карнавальную маску (очки), вращающиеся колеса или шестеренки. На схеме (см. Figur 2), для минимизации графического изображения, светодиоды с элементами управления разделены на 4 одинаковые секции С1-С4.
Схема выполнена на микроконтроллере AT89C2051, но она не содержит программы. МК используется в «усеченном» режиме, т.е. процессор и многие другие узлы заблокированы. Обычно такую возможность используют программаторы для сверки записанного в память значения с заданным. Подав на выводы порта РЗ МК соответствующую комбинацию логических уровней, можно прочитать на выводах порта Р1 код, содержащийся в ячейке внутренней Flesh-памяти. МК переведен в нужное состояние соединением выводов 1, 6, 9 и 11 с источником питания +5 В, а вывода 7 – с общим проводом. На выводы 5 и 8 поступают тактовые импульсы от генератора на микросхеме DD1.
Каждый импульс увеличивает на единицу значение адреса, хранящегося во внутреннем регистре МК, после чего состояние используемых выводов 13-16 МК соответствует коду, записанному по этому адресу. По достижении старшего адреса (7FFH) просмотр ячеек продолжается с нулевого.
В момент импульса высокого уровня на выводе 11 логического элемента DD1.4 выходы порта Р1 МК DD2 переходят в третье Z-состояние, но это не влияет на свечение светодиодов. Вывод данных происходит при низком уровне сигнала генератора. Переход на чтение очередной ячейки памяти выполнен в одном периоде тактового импульса генератора, что не соответствует рекомендациям изготовителя микросхемы (фирма Atmel), но реально работает. Для этого применен генератор импульсов с большой скважностью. Длительность импульса высокого уровня на два порядка меньше длительности периода между импульсами. Это увеличивает время вывода данных, записанных в ячейках памяти. Любая из секций светодиодов перестанет светиться, когда на одном из выходов порта Р1 МК будет присутствовать низкий уровень сигнала.
Для работы устройства не нужно знать систему команд МК. Необходимо занести во Flach-память только данные в соответствии с нужным алгоритмом работы устройства. В первую половину ячеек памяти необходимо занести повторяющуюся последовательность шестнадцатеричных кодов Е0, D0, В0, 70, а во вторую – 70, В0, D0, Е0, обеспечивающую реверс бегущей тени.
Для программирования МК можно применить простейший программатор [2] без электронных компонентов. Многих пугает использование DOS 6.22 и необходимость создания загрузочной дискеты. Чтобы этого не делать, установите на флэшку Windows 3.11 и загружайтесь с нее (ставится без проблем).
Fachliteratur
- Мельник В. Недокументированные возможности микроконтроллера АТ89С2051 // Радиокомпоненты. – 2007. – №1. – С.34.
- Мельник В. Программатор АТ89С2051 для IBM PC // Радиомир. – 2006. – №4. – С.20.
Autor: Вадим Мельник, г. Днепродзержинск