Бегущая строка на AT90S2313.
Отмазки:
Собственно сей проект был реализован с целью научиться выводить информацию на светодиодный индикатор,используя при этом динамическую индикацию. По ходу дела появилась возможность научиться использовать встроенный в микроконтроллер UART и написать программу для PC.
К сожалению,так как размер EEPROM AT90S2313 - 128 байт,удалось реализовать вывод сообщения длинной всего 125 символов.
Протокол обмена по RS232 реализован тоже не лучшим образом. Нет обратной связи МК с PC и поэтому нет контроля передаваемых данных. Другими словами - сообщение с компьютера в устройство иногда передается с ошибками.
Идея:
Изначально идея проекта строилась на том,чтобы подключить к МК матрицу светодиодов:
Подавая с МК на выводы матрицы различные сигналы,можно включить любой светодиод матрицы. Подключив несколько матриц - имеем светодиодный индикатор,на который можно выводить практически любые символы,псевдографику и прочее.
Реализация:
Из подручных деталей была собрана следующая схема:
Для вывода информации на столбцы индикатора - применен сдвиговый регистр с последовательной загрузкой и параллельной выгрузкой данных,собранный на пяти микросхемах 74HC595.
Для управления строками индикатора - применен дешифратор 74HC259.
Сборка транзисторов ULN2003 используется для "умощнения" выходов дешифратора. Т.к. максимальный ток строки индикатора может достигать 400 мА.
На микросхеме DA1 собран типичный стабилизатор напряжения +5V.
Транзистор VT1 используется для согласования уровней RS232 и AVR при подключении к PC.
Вывод информации на индикатор осуществляется построчно. Таким образом для управления индикатором достаточно всего шести выводов микроконтроллера.
Программа для МК написана на Си с использованием компилятора CodeVision. |
Работает это гениальное суперустройство следующим образом: |
Сообщение для вывода на индикатор хранится в энергонезависимой памяти МК (EEPROM). |
После подачи питания - сразу же осуществляется вывод записанного в EEPROM сообщения на индикатор в режиме "бегущей строки". Индикация сообщения осуществляется циклически,т.е. по окончании сообщения оно снова выводится на индикатор,начиная с первого символа. И так до бесконечности. |
Для замены сообщения в EEPROM необходимо запустить на PC прилагаемую программу "Посылатель", набрать в ней текст требуемого нового сообщения. Соединить устройство и PC кабелем и нажать на кнопку SB2 устройства. После нажатия устройство выведет на индикатор служебную строку "ПРИЕМ СООБЩЕНИЯ" и перейдет в режим приема сообщения с PC. Далее в программе "Посылатель" нажать на кнопку "ПОСЛАТЬ" и новый текст сообщения будет отправлен в устройство и сохранен в его энергонезависимой памяти. После приема сообщения устройство выдаст служебную строку "ПРИЕМ ЗАВЕРШЕН" и вернется в основной режим работы циклицеского вывода записанного сообщения. |
Если по каким то причинам требуется отказаться от замены сообщения - необходимо еще раз нажать на кнопку SB2. На индикатор будет выведена служебная строка "ПРИЕМ ОТМЕНЕН" и устройство перейдет в основной режим работы. |
Примечания: |
1)В данной версии прошивки для вывода на индикатор поддерживаются только буквы русского алфавита а также знаки точка, запятая, восклицательный и вопросительный. Всю таблицу поддерживаемых символов можно увидеть в файле "Codepage.h" в прилагаемом архиве "RunRow.rar". Программа "Посылатель" не даст передать символы неподдерживаемые системой. |
2) Как уже говорилось выше - иногда сообщение может передаваться с ошибками,т.к. нет контроля передаваемых данных. При ошибочной передаче сообщения необходимо просто повторить передачу еще раз. |
Программа занимает 1480 байт ПЗУ микроконтроллера,таким образом имеется возможность улучшения устройства - добавления новых сиволов для отображения,введения проверки передачи и т.д. |
Пример реализации: |
устройство собранное на макетке готовая плата устройство в работе |
Прилагаемые файлы: |
Схема в формате P-CAD 2002 |
Схема в формате .pdf |
Печатная плата в формате P-CAD 2002 |
Печатная плата в формате .pdf адаптированная "под утюг" |
Программа "Посылатель" |
Исходники "Посылателя" |
Исходники прошивки для микроконтроллера |
HEX файл прошивки |
Good bye...