Знакосинтезирующий ЖКИ — Вики МНТЦ

Знакосинтезирующий ЖКИ

Материал из Вики МНТЦ

Перейти к: навигация, поиск
Управлять ЖКИ с помощью ПМК018 предельно просто.

Рассмотрим подключение знакосинтезирующего ЖКИ к ПМК018 на примере отечественного ЖКИ MT-20S4A-2YLG.

Модуль позволяет отображать 4 строки по 20 символов. Символы отображаются в матрице 5х8 точек. Между символами имеются интервалы шириной в одну точку. Каждому отображаемому символу соответствует его код в ячейке ОЗУ модуля. Можно создать до 8 собственных символов.

ЖКИ имеет два запараллеленных ряда контактов - сверхй и снизу. Для работы с макетной платой припаяем к нему выводы. Производитель не рекомендует припаивать на корпус ЖКИ слишком жесткие выводы и разъемы, чтобы не повредить его механически при установке. Поэтому мы припаяли выводы из тонкого луженого медного провода. Подключим выводы к ПМК, согласно их назначению:

Выводы-жки.jpg

Назначение выводаИспользование в нашем примере
1Общий вывод (0В)Соединен зеленым проводком с выводом "-" ПМК018
2Напряжение питания (+5В)Соединен красным проводком с выводом "+" ПМК018
3Управление контрастностью (-2..+2В) Соединен оранжевым проводком с выводом "-" ПМК018
4Адресный сигнал — выбор между передачей данных и команд управленияСоединен с выводом "ПД2" ПМК018
5Выбор режима записи или чтенияСоединен с выводом "ПД1" ПМК018
6Разрешение обращений к модулю (а также строб данных)Соединен с выводом "ПД0" ПМК018
7Шина данных (8-битный режим)(младший бит в 8-битном режиме)Соединен с выводом "ПБ0" ПМК018
8Шина данных (8-битный режим)Соединен с выводом "ПБ1" ПМК018
9Шина данных (8-битный режим)Соединен с выводом "ПБ2" ПМК018
10Шина данных (8-битный режим)Соединен с выводом "ПБ3" ПМК018
11Шина данных (8- и 4-битные режимы)(младший бит в 4-битном режиме)Соединен с выводом "ПБ4" ПМК018
12Шина данных (8- и 4-битные режимы)Соединен с выводом "ПБ5" ПМК018
13Шина данных (8- и 4-битные режимы)Соединен с выводом "ПБ6" ПМК018
14Шина данных (8- и 4-битные режимы) (старший бит)Соединен с выводом "ПБ7" ПМК018
15+ питания подсветки (+5В)Не присоединен
16– питания подсветки (0В)Соединен с выводом "1" зеленой перемычкой на плате ЖКИ

Pmklcd.jpg

И загрузим в него нижеследующую программу, львиную долю которой составляют указание контроллеру операторами DEFINE что к какой его ножке подключено. И только одна строчка LCDOUT выводит собственно текст.

DEFINE RESET_ORG 800h
DEFINE INTERRUPT_ORG 808h
Define  OSC     48
DEFINE LCD_DREG PORTB        'Порт данных ЖКИ
DEFINE LCD_DBIT 0            'Бит с которого начинаются данные 
DEFINE LCD_RSREG PORTD       'Порт адреса ЖКИ 
DEFINE LCD_RSBIT 2           'Бит адреса ЖКИ 
DEFINE LCD_EREG PORTD        'Порт стробировани ЖКИ
DEFINE LCD_EBIT 0            'Бит стробирования ЖКИ
DEFINE LCD_RWREG PORTD       'Порт выбора режима записи-чтения ЖКИ 
DEFINE LCD_RWBIT 1           'Бит выбора режима записи-чтения ЖКИ 
DEFINE LCD_BITS 8            'Разрядность шины ЖКИ  
DEFINE LCD_LINES 4           'Число строк ЖКИ
DEFINE LCD_COMMANDUS 2000    'Время задержки команд в мкс 
DEFINE LCD_DATAUS 50         'Время задержки данных в мкс 

LCDOUT $FE,1,"www.mntc.ru"   'Очистка и вывод текста в первую строку

Это был 8-битный режим. Если надо сэкономить выводы микроконтроллера, то замените значения LCD_BITS и LCD_DBIT на 4. Все будет работать точно так же, но без использования выводов ПБ0...ПБ3.

Чтобы задать с микроконтроллера контрастность, соберем резисторный делитель по схеме (а), и в конце программы добавим плавно растущий сигнал ШИМ, идущий на делитель через вывод "ПЦ2" ПМК018.

T VAR BYTE
FOR T=0 TO 255
   HPWM 1,T,3000
   PAUSE 100
NEXT 

Contrast.jpg

Теперь текст будет плавно растворяться. Конечно, можно обойтись и без ШИМ, переменным резистором (б) если не надо управлять контрастом с ПМК018.

Mntclcd.jpg

Чтобы регулировать яркость подсветки дисплея, вернем оранжевый провод на место, а вместо делителя подключим к выходу ШИМ "ПЦ2" базу биполярного транзистора PNP-типа, BC327, который будет коммутировать питание подсветки. Теперь подсветка будет плавно угасать. Конечно, здесь тоже вместо ШИМ можно использовать резисторный делитель напряжения или переменный резистор. Можно и просто подключить вход питания подсветки к +5В. Мы добавили туда 22-омный резистор чтобы напряжение питания на ЖКИ не падало от того, что весь ток уйдет на подсветку (питание шины USB не резиновое!). А ежели не от USB, то можно и без резистора.

Управление-подсветкой-ЖКИ.jpg

Здесь, как и в случае с контрастностью по идее надо поставить на выходе ШИМ сглаживающий RC-фильтр, но я разницы от его присутствия здесь не ощутил.

Ledlight.jpg

Надо сказать, что МЭЛТ производит индикаторы с подсветкой разных цветов. Особенно загадочно смотрится красная. И для каждого цвета есть индикаторы с инверсным отображением, т.е. светящиеся пиксели на черном фоне, что еще более красиво. Отечественные индикаторы хороши тем, что имеют возможность вывода русских букв, только их надо писать в программе не текстом, а в шестнадцатеричных кодах. К счастью, есть онлайн-конвертер, преобразующий русский текст в коды, которые достаточно просто скопировать.

Заменим в программе "www.mntc.ru" на сгенерированные конвертером $4D,$48,$54,$E1 (без кавычек). Вот результат:

Mntcruslcd.jpg

А как же использовать остальные строки? Заменим выводящую на экран строку следующими строками:

LCDOUT $FE, 1,$4D,$6F,$BB,$6F,$E3,$65,$B6,$BD,$C3,$B9
LCDOUT $FE, $C0, $48,$61,$79,$C0,$BD,$6F,$20,$2D
LCDOUT $FE, $94, $54,$65,$78,$BD,$B8,$C0,$65,$63,$BA,$B8,$B9
LCDOUT $FE, $D4, $E1,$65,$BD,$BF,$70

Mntttclcd.jpg

Дело в том, что ключевой байт $FE - это указание ЖКИ на то что после него будет не символ, а какая-то команда. Команда "1", которую мы использовали, сами того не зная, очищает дисплей и устанавливает курсор на начало первой строки. Другие команды из последнего примера устанавливают курсор на начало второй, третьей и четвертой строк. А вообще есть еще много команд, которые описаны в руководстве по языку PICBasicPro.

Личные инструменты