Главная » Микроконтроллеры
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Похожие статьи:


Устройство отображения информации на LCD-дисплее 16x2 с контролером HD44780

Устройство позволяет загрузить в него необходимый для отображения текст с помощью ПК, через COM порт, в энергонезависимую память (EEPROM) и отображать его в дальнейшем в виде “бегущей стройки” на стандартном двух строчном 16-и символьном дисплее на базе контроллера HD44780. Причем в верхней строке дисплея отображается статическая информация, а в нижней бегущая строка загружаемая пользователем.

Устройство может располагаться на витрине магазина радиодеталей и отображать различную рекламную информацию, а также использоваться для демонстрации работы дисплейных модулей, их проверки и т.п. В верхней строке может располагаться номер телефона, адрес WEB-сайта и т.п.   

Загрузка текста пользователем осуществляется с помощью стандартного ПО WINDOW, в частности программы “HyperTerminal”, никакого специального программного обеспечения устанавливать не придется.

Устройство выполнено на базе микроконтроллера ATmega8. Схема изображена на нижеследующем рисунке (кликните для увеличения).

Схема устройства отображения информации на LCD-дисплее 16x2 с контролером HD44780

Микроконтроллер работает от внутреннего RC-генератора, на частоте 8 МГц, кварцевый резонатор не требуется.

Для работы микроконтроллера в таком режиме, нужно запрограммировать необходимые Fuse-биты, в соответствии со следующим рисунком.

   

Для питания устройства используется малогабаритный импульсный, стабилизированный источник питания с напряжением 5В. Резистором R1 выставляется необходимая контрастность дисплея.

При первом включении устройства, (если текст пользователя в EEPROM еще не загружен) в верхней строке отображается надпись "WINSTAR DISPLAYS", а в нижней циклическая бегущая строка "Устройство отображения рекламной информации”.

После загрузки текста пользователя в нижней строке тут же начнет отображаться загруженная информация, она же будет сохранена в EEPROM и при последующих включениях сначала однократно будет “пробегать” строчка  "Устройство отображения рекламной информации”, а затем циклически пользовательский текст. 

Специально печатная плата для устройства не разрабатывалась, оно было выполнено на отладочной плате, предназначавшейся для другого устройства, см. фото.

    

Теперь расскажу о загрузке текста в устройство:

- Открыть программу (Пуск->Программы->Стандартные->Связь).
- При первом запуске предложит использовать его по умолчанию, ставим галку “больше не задавать этот вопрос” и жмем нет.
- Далее будет предложение указать сведения о местоположении, в поле “код города” вводим любые цифры, в принципе нам это не важно, и жмем.
- В окне Описание подключений печатаем название (например LcdText)

Нажать ОК

Далее выбираем СОM порт к которому подключено устройство

 

В данном случае COM1 , нажимаем ОК

Попадаем в меню свойства

 

Выбираем скорость (бит/с) 9600

В опции управление потоком ставим НЕТ, остальные параметры согласно рисунку.

Нажимаем Применить и ОК

Порт сконфигурирован.

Также нужно установить передачу служебных символов, для этого выбираем Файл->Свойства

затем в появившемся окне вкладку Параметры

и далее Параметры ASCII , и установить недостающие галки как на рисунке выше.

Нажимаем ОК.

Для корректного отображения русскоязычного текста нам также необходимо поменять параметры шрифта.

Заходим в меню “Вид”, выбираем опцию “Шрифт”, далее меняем шрифт с “Terminal” на любой другой, где есть кириллица, например: “Lucida Console”.

В поле “Набор символов” выбираем Кириллический и жмем ОК.

Настройки программы HyperTerminal можно сохранить, чтобы в дальнейшем не вводить их заново.

Для этого выбираем “Файл” – “Сохранить как” и жмем сохранить.

В дальнейшем можно будет запускать сохраненный файл с настройками, а не непосредственно программу HyperTerminal.

Далее, для отправки текста устройству можно поступить двумя способами:
1   –  печатаем текст в окне терминала и жмем “Enter” на клавиатуре. При таком вводе текст нельзя редактировать.
2   –  открываем любой текстовый редактор, например “Блокнот”. Печатаем там текст, сохраняем файл.  

Далее, в программе HyperTerminal, выбираем Передача->Отправить текстовый файл.

Выбираем ранее сохраненный нами файл, нажимаем “открыть”, при этом текст отобразится в окне терминала,

и далее нажимаем клавишу “Enter” на клавиатуре.

После передачи текста сразу начнётся его отображение на дисплее устройства.

Хочу отметить, что для изменения статического текста в верхней строке дисплея необходимо будет подкорректировать исходник и заново скомпилировать проект, либо обратиться к автору.

Исходники проекта в среде CodeVisionAVR, прошивку, схему и проект в Proteus Вы можете скачать в прилагаемом архиве.

Файл проекта в “Proteus” находится в папке с исходниками. Для корректного отображения кириллицы на дисплее в “Proteus” его необходимо русифицировать.

Для этого необходимо заменить файл  “LCDALPHA.DLL”,  который находится в директории, где установлен “Proteus” в папке “MODELS”, файлом из прилагаемого архива.

Ввод текста при симуляции в программе “Proteus” производится в окне “Virtual Terminal” либо текст заранее набирается в любом текстовом редакторе, копируется и затем вставляется (кликнуть правой кнопкой мыши на окне “Virtual Terminal” и нажать Paste) в окно “Virtual Terminal”. После ввода либо вставки текста необходимо нажать комбинацию клавиш [Shift + Enter] – что соответствует коду 0x0D и затем [Ctrl + Enter] – что соответствует коду 0x0A. После этого введенный текст сразу будет отображаться на экране дисплея.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 МК AVR 8-бит
ATmega8-16PU
1 Поиск в LCSCВ блокнот
VT4 Биполярный транзистор
КТ3102
1 Поиск в LCSCВ блокнот
С1, С3 Конденсатор0.1 мкФ2 Поиск в LCSCВ блокнот
С2 Электролитический конденсатор47 мкФ 10В1 Поиск в LCSCВ блокнот
R1 Подстроечный резистор10 кОм1 Поиск в LCSCВ блокнот
R2, R3 Резистор
10 кОм
2 Поиск в LCSCВ блокнот
R4 Резистор
1 кОм
1 Поиск в LCSCВ блокнот
H1 LCD-дисплейMT-16S2D-1YLG1 Поиск в LCSCВ блокнот
Х1 РазъемDB91 FemaleПоиск в LCSCВ блокнот
PRG Разъем1 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (6) | Я собрал (0) | Подписаться

0
hasl #
Процессор для этой задачи не нужен. Нужен только ком порт и сдвиговый резистор. Не нужно из пушки по воробьям стрелять.
Ответить
0
zeconir #
А можно было проще - просто наваять к нему софтину, через которую и будет вводиться текст. Так например в винде 7, а уже не видел пункта связь, как такового...
Ответить
0

[Автор]
Pavel #
Если честно делал это устройство под заказ, и одним из условий было: загрузка текста стандартными средствами Windows, без установки специализированного ПО.
Ответить
0

[Автор]
Pavel #
Устройство работает автономно, без участия компа. С компа только загружается текст в EEPROM и комп больше не нужен.
Ответить
0
Алексей #
Что-то не могу понять: это под семерку или под хр? Как подружить с семеркой?
Ответить
0

[Автор]
Pavel #
Делалось давно, под XP. В семерке нет “Virtual Terminal” и пункта связь как такового. Чтобы подружить с 7 ставите любую терминальную программу (например Docklight), настраиваете порт как описано в статье, в окно терминала вводите текст и в конец текста вставляете коды 0x0D, 0x0A.
В большинстве терминальных программ для отправки этих символов используют следующую комбинацию клавиш: [Shift + Enter], [Ctrl + Enter].
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Металлоискатель MD3010II DC-DC регулируемый преобразователь 1.5-37В 2А с индикатором
вверх