УПРАВЛЯЮЩАЯ ПРОГРАММА ДЛЯ ЗНАКОСИНТЕЗИРУЮЩЕГО ЖКИ


М. БУРОВ, г. Кострома

Сегодня на российском рынке электронных компонентов можно приобрести различные жидкокристаллические индикаторы. В состав некоторых из них, кроме собственно индикатора, входит еще и контроллер, который берет на себя всю рутинную работу по его управлению. Такое совмещение делает ЖКИ весьма привлекательным для использования в различных электронных устройствах. В статье описана программа, позволяющая с помощью IBM совместимого компьютера управлять подобным ЖКИ.

ЖКИ с встроенным контроллером бывают знакосинтезирующими и графическими. Знакосинтезирующие могут индицировать только знаки (обычно это буквы, цифры и некоторые специальные символы), "зашитые" в их знакогенераторе, и иначе называются матричными ЖКИ. В зависимости от числа символов в строке и строк они бывают форматов 16х1, 16х2, 20х1, 20х2,20х4, 40х2 и др.

Предлагаемая программа работает со знакосинтезирующими ЖКИ на основе контроллеров, совместимых с контроллером HD44780 фирмы HITACHI, и может быть использована для изучения их работы. Отладка программы производилась с индикатором DV-16236NRT/R фирмы DATA VISION.

Программа работает на компьютере IBM PC в среде MS-DOS. ЖКИ подключают к LPT порту компьютера по схеме, приведенной на рисунке. Для питания индикатора необходим источник напряжением 5 В.

После запуска программы появится меню (табл. 1). Каждый пункт меню - это команда ЖКИ. Справа от каждой команды выводится ее код в шестнадцатиричном формате.

cif-4011.gif

Таблица 1

Таблица 2

cif-4012.gif

Таблица 3

cif-4013.gif

Описание команд:

Clear display - очистить дисплей.

Home cursor - вернуть курсор в начало строки.

Entry mode set - установить режим ввода (инкремент/декремент адреса DD RAM - видеопамяти или сдвиг дисплея вправо/влево при записи кода символа в DD RAM).

On/off control - включить/выключить дисплей, курсор или мерцание.

Cursor/shift - сместить курсор или дисплей.

Function set - установить функцию (число строк, формат матрицы).

cif-4014.gif

Character RAM address set - установить адрес CG RAM (CG RAM - оперативная память, в которой находится знакогенератор, определяющий символы с кодами 00h-07h. CG RAM имеет размер 64 байта. Каждый символ с форматом матрицы 5х8 точек описывается блоком 8х8 бит. Три старших бита в каждом байте не используются. Описание символа с кодом 00h занимает в CG RAM адреса с 00h по 07h, с кодом 01h - с 08h no 0Fh и т. д.). После этой команды данные записываются в CG RAM.

Display RAM address set - установить адрес DD RAM. (При записи кода символа в DD RAM этот символ выводится на дисплей в позиции, соответствующей установленному адресу DD RAM. Первая строка дисплея начинается с адреса OOh, вторая - 40h. Конечный адрес определяется числом символов в строке). После этой команды данные записываются в DD RAM.

Write data to CG or DD RAM - записать данные в CG RAM или DD RAM.

Команду выбирают клавишами управления курсором ("вверх", "вниз", "вправо", "влево"). Кроме того, в двух предпоследних командах необходимо ввести шестнадцатиричное значение адреса, а в последней - данных. Адрес CG RAM лежит в интервале от 00h до 3Fh, адрес DD RAM - от 00h до 7Fh, данные - это число от 00h до FFh. Запись команды в ЖКИ осуществляется нажатием на клавишу "Ввод" (Enter), при этом подается звуковой сигнал.

Программа написана на языке Turbo Pascal и управляет ЖКИ с помощью процедуры, текст которой приведен в табл. 2. Эта процедура передает байт а индикатору. Параметр m определяет, является ли а командой или данными, и в зависимости от этого сигнал RS принимает значение лог. О (команда) или лог. 1 (данные). Все команды в меню, кроме последней, выполняются при низком уровне RS (последняя команда - записи данных, поэтому RS - высокий). В рассматриваемом случае индикатор инициализирован для работы в режиме четырехразрядного интерфейса. Поэтому сначала на шину данных выводится старшая тетрада (четыре бита) байта а, а затем младшая. Каждая посылка стробирована единичным импульсом на выводе Е.

Перед тем как работать с ЖКИ, его необходимо инициализировать. Текст процедуры инициализации приведен в табл. 3.

Все процедуры работы с индикатором включены в программный модуль testJcd.tpu. Исходный текст этого модуля находится в файле test_lcd.pas. Эти файлы также можно найти на ftp-сервере журнала по адресу:

ftp://212.188.30.179/pub/2001/04/lcd.


Радио 4/2001, с.30-31.