Бегущая строка на AT90S2313 (ATtiny2313)
Собственно сей проект был реализован с целью научиться выводить информацию на светодиодный индикатор,используя при этом динамическую индикацию. По ходу дела появилась возможность научиться использовать встроенный в микроконтроллер 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 байт ПЗУ микроконтроллера,таким образом имеется возможность улучшения устройства - добавления новых сиволов для отображения,введения проверки передачи и т.д.
А теперь фоты:
Прошивка, плата (под утюг) и программа есть тут.
Вопросы, как обычно - на Форум.