Выпуск #5/2008
О.Вайнилович, Ю.Коба, А.Хоменя.
Контроллер матричного жидкокристаллического индикатора
Контроллер матричного жидкокристаллического индикатора
Просмотры: 2133
Микросхема IZ7066 предназначена для приема информации, ее обработки, формирования на ее основе внутренних управляющих операций и необходимых временных последовательностей и вывода информации на индикатор. Микросхема может применяться в таких устройствах, как пейджеры, электронные записные книжки, калькуляторы и другие устройства, выводящие на жидкокристаллический экран цифровую и буквенную, но не графическую информацию.
Микросхема IZ7066 управляет матричными ЖКИ, имеющими конфигурацию:
* одна строка текста длиной до 80 символов. Размер символов 5×7 точек плюс курсор в восьмой строке. Максимальный размер ЖКИ – 8 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×10 точек плюс курсор в одиннадцатой строке. Максимальный размер ЖКИ – 11 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×7 точек плюс курсор в восьмой строке. Максимальный размер ЖКИ – 8 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×10 точек плюс курсор в одиннадцатой строке. Максимальный размер ЖКИ – 11 строк на 400 столбцов;
* две строки текста длиной до 40 символов каждая. Размер символа 5×7 точек плюс курсор в 8-й и 16-й строке. Максимальный размер ЖКИ – 16 строк на 200 столбцов.
При всех названных конфигурациях ЖКИ сама микросхема IZ7066 управляет 40 столбцами (по 8 символов текста в каждой строке), а для управления остальными столбцами нужны микросхемы расширения. В качестве микросхем расширения для IZ7066 применяются схемы IZ7065 производства НПО "Интеграл" или KS0065 фирмы Samsung.
Конфигурация символов (внешний вид символов на ЖКИ) записана в масочном ПЗУ, встроенном в микросхему IZ7066. В ПЗУ находится изображение 192 символов формата 5×7 точек и 32 символа формата 5×10 точек. Кроме того, пользователь имеет возможность самостоятельно создать 8 символов 5×8 точек или 4 символа 5×11 точек. Система команд приведена в таблице, а пример подключения микросхемы к ЖКИ – на рисунке.
Описание команд
Команда "Очистить дисплей" (см. таблицу) производится записью шестнадцатеричного кода 20 (пробел) по всем адресам ОЗУ данных дисплея. Затем в счетчик адреса устанавливается адрес "0", курсор устанавливается в крайнее левое положение первой строки. Если был сдвиг дисплея, то устанавливается начальное состояние.
Команда "Вернуть в начало" выполняется так же, как и "Очистить дисплей", за исключением того, что содержимое ОЗУ данных дисплея не меняется.
Команда "Установить режим ввода" имеет два параметра: параметр I/D на входе DB1 и параметр S на входе DB0. Состояние I/D определяет инкремент I/D=1 или декремент I/D=0 на "1" адреса ОЗУ данных дисплея. Когда символ записан в ОЗУ данных или считан из него, курсор перемещается на одно знакоместо вправо при инкременте или влево при декременте. То же самое относится к записи и чтению ОЗУ знакогенератора. Состояние параметра S определяет, будет ли смещаться дисплей вместе со смещением курсора. Дисплей не смещается, если S в состоянии "0". Когда S в состоянии "1", дисплей смещается в сторону, противоположную смещению курсора, зрительно курсор остается неподвижным, а смещается информация (бегущая строка).
Команда "Включить/выключить дисплей" имеет три параметра: параметр D на входе DB2, параметр C на входе DB1, параметр S на входе DB0. Параметр D обеспечивает включение дисплея при D=1 и выключение при D=0. При выключении дисплея данные сохраняются в ОЗУ данных дисплея и могут быть немедленно выведены установкой D в состояние 1. Курсор отображается при C=1 и не отображается при C=0. Если курсор не отображается, то команды, сдвигающие курсор, продолжают работать. Курсор отображается пятью точками на восьмой строке матрицы 5×8 точек или на одиннадцатой строке матрицы 5×11 точек. При S=1 знакоместо, в котором должен находиться курсор, выделяется мерцанием. Мерцание реализуется переключением между матрицей, полностью заполненной черными точками, и отображаемым символом с интервалом ≈0,4 с. Курсор и мерцание могут быть выведены на дисплей одновременно.
Команда "Сместить курсор или дисплей" имеет два параметра: параметр S/C на входе DB3 и параметр R/L на входе DB2, состояние входов DB1 и DB0 значения не имеет. Эта команда производит смещение курсора при S/C=0 или дисплея при S/C=1 на одно знакоместо. Направление смещения определяется параметром R/L. При R/L=0 смещение производится влево, а при R/L=1 – вправо. В двухстрочном дисплее курсор переходит на вторую строку, после того как пройдет 40 знакомест первой строки. При смещении дисплея первая и вторая строки смещаются одновременно. При многократном смещении первая и вторая строки дисплея смещаются только горизонтально, данные первой строки не переходят на вторую и наоборот. При смещении дисплея курсор смещается вместе с дисплеем.
Команда "Установить функцию" имеет три параметра: Параметр DL на входе DB4, параметр N на входе DB3, параметр F на входе DB2, состояние входов DB1 и DB0 значения не имеет. Параметр DL – установка длины данных интерфейса. Данные передаются и принимаются по 8 разрядов (DB0–DB7) при DL=1 и по 4 разряда (DB4–DB7) при DL=0. При четырехразрядном интерфейсе операции приема/передачи выполняются за два такта – старший полубайт, затем младший полубайт без промежуточного чтения состояния флага запрета после первого полубайта. Параметр N устанавливает количество отображаемых строк дисплея. При N=1 отображаются две строки, при N=0 – одна строка. Параметр F устанавливает формат матрицы отображаемого символа. При F=1 символы формируются в матрице 5×10 точек, при F=0 – в матрице 5×7 точек.
Команда "Установить адрес ОЗУ знакогенератора" имеет один 6-разрядный параметр Acg на входах DB5–DB0, который записывается в счетчик адреса. Вслед за этой командой данные будут записываться по установленному адресу в ОЗУ знакогенератора или считываться из него.
Команда "Установить адрес ОЗУ данных дисплея" имеет один 7-разрядный параметр Add на входах DB6–DB0, который записывается в счетчик адреса. Вслед за этой командой данные будут записываться по установленному адресу в ОЗУ данных дисплея или считываться из него.
Следует отметить, что при N=0 (однострочный дисплей) адрес ОЗУ данных дисплея должен быть в пределах 00–4F (шестнадцатеричный код), а при N=1 (двухстрочный дисплей) в пределах 00–27 (шестнадцатеричный код) для первой строки и 40–67 (шестнадцатеричный код) для второй строки.
Команда "Считать флаг "Занято и адрес" производит чтение двух параметров: на выводы DB6–DB0 считывается содержимое счетчика адреса, на вывод DB7 производится чтение флага "Занято" BF. Флаг запрета индицирует состояние контроллера ЖКИ. Если BF=1, то выполняется внутренняя операция, и никакая другая команда не будет выполняться до тех пор, пока BF не будет сброшен в состоянии "0". Необходимо проверять состояние BF перед вводом следующей команды записи.
Команда "Записать данные в ОЗУ данных дисплея или ОЗУ знакогенератора" производит запись 8-разрядных двоичных данных в ОЗУ данных дисплея или ОЗУ знакогенератора. Куда будут записываться данные, определяется последней из предшествующих команд, устанавливающей адрес ОЗУ данных или ОЗУ знакогенератора. После записи данных содержимое счетчика адреса, в зависимости от режима ввода, автоматически инкрементируется или декрементируется на 1. Режим ввода определяет также сдвиг дисплея. При двухстрочном режиме при записи символа в последнюю позицию строки происходит переход курсора в первую позицию той же строки.
При команде "Считать данные в ОЗУ данных дисплея или ОЗУ знакогенератора" считываются 8-разрядные двоичные данные из ОЗУ данных дисплея или ОЗУ знакогенератора. Предшествовавшее назначение определяет, откуда будет производиться считывание – из ОЗУ данных дисплея или ОЗУ знакогенератора. Перед выводом данной команды чтения должна быть выполнена команда установки адреса ОЗУ данных дисплея или ОЗУ знакогенератора. Если это не будет выполнено, то первое считывание данных будет неправильным. При последовательном выполнении нескольких команд чтения последующие команды выполняются без установки адреса. Команду установки адреса перед первой командой чтения из ОЗУ данных дисплея устанавливать не требуется, если курсор был смещен командой смещения.
После операции чтения режим ввода автоматически инкрементирует или декрементирует адрес на 1. Однако смещение дисплея, независимо от установленного режима, не выполняется.
* одна строка текста длиной до 80 символов. Размер символов 5×7 точек плюс курсор в восьмой строке. Максимальный размер ЖКИ – 8 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×10 точек плюс курсор в одиннадцатой строке. Максимальный размер ЖКИ – 11 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×7 точек плюс курсор в восьмой строке. Максимальный размер ЖКИ – 8 строк на 400 столбцов;
* одна строка текста длиной до 80 символов. Размер символа 5×10 точек плюс курсор в одиннадцатой строке. Максимальный размер ЖКИ – 11 строк на 400 столбцов;
* две строки текста длиной до 40 символов каждая. Размер символа 5×7 точек плюс курсор в 8-й и 16-й строке. Максимальный размер ЖКИ – 16 строк на 200 столбцов.
При всех названных конфигурациях ЖКИ сама микросхема IZ7066 управляет 40 столбцами (по 8 символов текста в каждой строке), а для управления остальными столбцами нужны микросхемы расширения. В качестве микросхем расширения для IZ7066 применяются схемы IZ7065 производства НПО "Интеграл" или KS0065 фирмы Samsung.
Конфигурация символов (внешний вид символов на ЖКИ) записана в масочном ПЗУ, встроенном в микросхему IZ7066. В ПЗУ находится изображение 192 символов формата 5×7 точек и 32 символа формата 5×10 точек. Кроме того, пользователь имеет возможность самостоятельно создать 8 символов 5×8 точек или 4 символа 5×11 точек. Система команд приведена в таблице, а пример подключения микросхемы к ЖКИ – на рисунке.
Описание команд
Команда "Очистить дисплей" (см. таблицу) производится записью шестнадцатеричного кода 20 (пробел) по всем адресам ОЗУ данных дисплея. Затем в счетчик адреса устанавливается адрес "0", курсор устанавливается в крайнее левое положение первой строки. Если был сдвиг дисплея, то устанавливается начальное состояние.
Команда "Вернуть в начало" выполняется так же, как и "Очистить дисплей", за исключением того, что содержимое ОЗУ данных дисплея не меняется.
Команда "Установить режим ввода" имеет два параметра: параметр I/D на входе DB1 и параметр S на входе DB0. Состояние I/D определяет инкремент I/D=1 или декремент I/D=0 на "1" адреса ОЗУ данных дисплея. Когда символ записан в ОЗУ данных или считан из него, курсор перемещается на одно знакоместо вправо при инкременте или влево при декременте. То же самое относится к записи и чтению ОЗУ знакогенератора. Состояние параметра S определяет, будет ли смещаться дисплей вместе со смещением курсора. Дисплей не смещается, если S в состоянии "0". Когда S в состоянии "1", дисплей смещается в сторону, противоположную смещению курсора, зрительно курсор остается неподвижным, а смещается информация (бегущая строка).
Команда "Включить/выключить дисплей" имеет три параметра: параметр D на входе DB2, параметр C на входе DB1, параметр S на входе DB0. Параметр D обеспечивает включение дисплея при D=1 и выключение при D=0. При выключении дисплея данные сохраняются в ОЗУ данных дисплея и могут быть немедленно выведены установкой D в состояние 1. Курсор отображается при C=1 и не отображается при C=0. Если курсор не отображается, то команды, сдвигающие курсор, продолжают работать. Курсор отображается пятью точками на восьмой строке матрицы 5×8 точек или на одиннадцатой строке матрицы 5×11 точек. При S=1 знакоместо, в котором должен находиться курсор, выделяется мерцанием. Мерцание реализуется переключением между матрицей, полностью заполненной черными точками, и отображаемым символом с интервалом ≈0,4 с. Курсор и мерцание могут быть выведены на дисплей одновременно.
Команда "Сместить курсор или дисплей" имеет два параметра: параметр S/C на входе DB3 и параметр R/L на входе DB2, состояние входов DB1 и DB0 значения не имеет. Эта команда производит смещение курсора при S/C=0 или дисплея при S/C=1 на одно знакоместо. Направление смещения определяется параметром R/L. При R/L=0 смещение производится влево, а при R/L=1 – вправо. В двухстрочном дисплее курсор переходит на вторую строку, после того как пройдет 40 знакомест первой строки. При смещении дисплея первая и вторая строки смещаются одновременно. При многократном смещении первая и вторая строки дисплея смещаются только горизонтально, данные первой строки не переходят на вторую и наоборот. При смещении дисплея курсор смещается вместе с дисплеем.
Команда "Установить функцию" имеет три параметра: Параметр DL на входе DB4, параметр N на входе DB3, параметр F на входе DB2, состояние входов DB1 и DB0 значения не имеет. Параметр DL – установка длины данных интерфейса. Данные передаются и принимаются по 8 разрядов (DB0–DB7) при DL=1 и по 4 разряда (DB4–DB7) при DL=0. При четырехразрядном интерфейсе операции приема/передачи выполняются за два такта – старший полубайт, затем младший полубайт без промежуточного чтения состояния флага запрета после первого полубайта. Параметр N устанавливает количество отображаемых строк дисплея. При N=1 отображаются две строки, при N=0 – одна строка. Параметр F устанавливает формат матрицы отображаемого символа. При F=1 символы формируются в матрице 5×10 точек, при F=0 – в матрице 5×7 точек.
Команда "Установить адрес ОЗУ знакогенератора" имеет один 6-разрядный параметр Acg на входах DB5–DB0, который записывается в счетчик адреса. Вслед за этой командой данные будут записываться по установленному адресу в ОЗУ знакогенератора или считываться из него.
Команда "Установить адрес ОЗУ данных дисплея" имеет один 7-разрядный параметр Add на входах DB6–DB0, который записывается в счетчик адреса. Вслед за этой командой данные будут записываться по установленному адресу в ОЗУ данных дисплея или считываться из него.
Следует отметить, что при N=0 (однострочный дисплей) адрес ОЗУ данных дисплея должен быть в пределах 00–4F (шестнадцатеричный код), а при N=1 (двухстрочный дисплей) в пределах 00–27 (шестнадцатеричный код) для первой строки и 40–67 (шестнадцатеричный код) для второй строки.
Команда "Считать флаг "Занято и адрес" производит чтение двух параметров: на выводы DB6–DB0 считывается содержимое счетчика адреса, на вывод DB7 производится чтение флага "Занято" BF. Флаг запрета индицирует состояние контроллера ЖКИ. Если BF=1, то выполняется внутренняя операция, и никакая другая команда не будет выполняться до тех пор, пока BF не будет сброшен в состоянии "0". Необходимо проверять состояние BF перед вводом следующей команды записи.
Команда "Записать данные в ОЗУ данных дисплея или ОЗУ знакогенератора" производит запись 8-разрядных двоичных данных в ОЗУ данных дисплея или ОЗУ знакогенератора. Куда будут записываться данные, определяется последней из предшествующих команд, устанавливающей адрес ОЗУ данных или ОЗУ знакогенератора. После записи данных содержимое счетчика адреса, в зависимости от режима ввода, автоматически инкрементируется или декрементируется на 1. Режим ввода определяет также сдвиг дисплея. При двухстрочном режиме при записи символа в последнюю позицию строки происходит переход курсора в первую позицию той же строки.
При команде "Считать данные в ОЗУ данных дисплея или ОЗУ знакогенератора" считываются 8-разрядные двоичные данные из ОЗУ данных дисплея или ОЗУ знакогенератора. Предшествовавшее назначение определяет, откуда будет производиться считывание – из ОЗУ данных дисплея или ОЗУ знакогенератора. Перед выводом данной команды чтения должна быть выполнена команда установки адреса ОЗУ данных дисплея или ОЗУ знакогенератора. Если это не будет выполнено, то первое считывание данных будет неправильным. При последовательном выполнении нескольких команд чтения последующие команды выполняются без установки адреса. Команду установки адреса перед первой командой чтения из ОЗУ данных дисплея устанавливать не требуется, если курсор был смещен командой смещения.
После операции чтения режим ввода автоматически инкрементирует или декрементирует адрес на 1. Однако смещение дисплея, независимо от установленного режима, не выполняется.
Отзывы читателей