ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.07.2024
Просмотров: 54
Скачиваний: 0
Лабораторная работа № 4 Работа с жидкокристаллическими матричными дисплеями.
Цель работы - изучение методов отображения информации с помощью жидкокристаллического матричного дисплея.
Теоретическое введение
Модуль: LCD2x16 – алфавитно-цифровой жидкокристаллический матричный графический индикатор (2 строки по 16 символов) - устройство с динамической индикацией. Информация, выводимая на жидкокристаллический дисплей (ЖКД) – матрицу циклически обновляется. Матрица дисплея имеет 16 строк по 200 сегментов (две строки символов 5х7 точек, строка насчитывает 40 символов).
Алфавитно-цифровые ЖКД позволяют выводить на экран только буквенно-цифровые сообщения. ЖКДподключается напрямую к портам МК. Контроллер дисплея допускает подключение к МК по 4-х или 8-и битному интерфейсу. Выбор интерфейса производится пользователем исходя из ограничений на время, затрачиваемое на обмен данными с котроллером, или количество используемых линий подключения к микро-ЭВМ. В 8-и битном режиме данные выставляются за один такт, 4-х битный режим используется при нехватке свободных выводов. Контроллер ЖКД лабораторного стенда подключен по 4-х битному интерфейсу(рисунок 1).
.
Рисунок 1.Схема подключения дисплея (LCD) к МК (MCU).
Назначение выводов ЖКД
D7…D0– шина данных/адреса.
E — стробирующий вход. Импульс напряжения служит для синхронизации записи/чтения данных на/с шину данных.
RW — определяет направление движения данных. Если 1 - чтение данных с дисплея, 0 – запись в дисплей.
RS — определяет тип передаваемых данных, команда (RS=0) или данные (RS=1). Данные записываются в память по текущему адресу, а команда исполняются контроллером.
GND— минус (общий).
Vcc—питание (5В).
V0— вход контрастности. На него подается напряжение от нуля до напряжения питания, задавая контрастность изображения. Подстроечный резистор R2 позволяет плавно менять напряжение питания драйвера ЖКИ, что приводит к изменению угла поворота жидких кристаллов. На лабораторном стенде переменный резистор Р2 реализован в виде потенциометра. Нужно поймать значение максимального контраста, но знакомест (серых ореолов из квадратов) быть видно не должно.Если выставить слишком малый контраст, то символы будут переключаться лениво и задумчиво, как в калькуляторе, у которого сели батарейки.
А- вход анода (положительный) светодиодной подсветки.
К– Катод (отрицательный вход).
Рисунок 2 Внешний вид ЖК- модуля
ЖКД разных производителей отличаются типом контроллера, количеством выводов и длиною строк, но обычно имеют одинаковую схему подключения, систему команд (см. ниже) и схожую программу управления.
-
Установка адреса DDRAM
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
A D
A D
A D
A D
A D
A D
A D
Установка адреса CGRAM
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
1
AG
AG
AG
AG
AG
AG
Запись данных в RAM
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
0
D
D
D
D
D
D
D
D
Чтение данных с RAM
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
1
D
D
D
D
D
D
D
D
AG - адрес в памятиCGRAM, АD- адрес в памятиDDRAM
ЖКИ имеет прозрачный задний слой и оснащен подсветкой, размещенной между ЖКИ и печатной платой, поэтому считывание информации возможно только при наличии подсветки. Подсветка реализована с помощью светодиодной матрицы, питающейся от источника напряжения 5В.
Структура контроллера ЖКД - HD44780.
ЖК - модуль построен на базе контроллера HD44780 (ф. HITACHI), фактически являющегося стандартом среди ЖК - контроллеров. Упрощенная структурная схема контроллера приведена нарис. 3.Основными элементами, к которым может обращаться пользователь, являются: регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора (CGRAM), счетчик адреса памяти (АС), флаг занятости контроллера.
Рис. 3. Упрощенная структурная схема контроллера HD44780
К другим элементам: знакогенератор, формирователь курсора, сдвиговые регистры и драйверы пользователь напрямую не обращается, но они также участвуют в процессе регенерации изображения на ЖКИ.
Выбор адресуемого регистра производится выводом RS, при RS «0» - выбирается регистр команд (IR), если RS «1» - регистр данных (DR). Данные через регистр DR могут записываться (считываться) в видеопамять (DDRAM) или в ОЗУ знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (АС). Информация, попадающая в регистр IR, интерпретируется устройством выполнения команд как управляющая последовательность.
Память ЖК - модуля как описано выше делится на три вида:
1) DDRAM- память дисплея (видеопамять). Все что записывается в DDRAM, будет выведено на экран. То есть, если в DDRAMзаписан код «0×31»(ASCII код цифры1) на экране высветится символ«1».НоDDRAMпамять гораздо больше, чем видимая область экрана. Как правило,DDRAMсодержит80 ячеек(байтов)— 40 в первой строке и 40 во второй, а на дисплей может выдвигаться по этой линейке как окошко на логарифмической линейке, высвечивая видимую область (рисунок 4). Например, можно записать в DDRAMсразу пять пунктов меню, а потом сдвигать специальной командой дисплей влево или вправо, показывая по одному пункту. Место, куда запишется следующий символ (текущее значение счетчика адреса) называется курсором. Курсор не обязательно может быть на экране, он может располагаться и за экраном или быть отключен.
Рис 4Видимая и скрытая область экранной памяти. Адреса байтов вDDRAM(00…27) дан в 16-ричной системе
2) CGROM - таблица символов. При записи в ячейку DDRAM байта адреса символа, из таблицы берется соответствующий символ и рисуется на экране. CGROM изменить нельзя, поэтому если требуется русскоязычный интерфейс, таблица должна иметь русскоязычный набор символов. Ниже приведена таблица ASCII кодов контроллера HD44780. Байт адреса разделен на 2 тетрады, старшая тетрада адреса – расположена горизонтально, младшая – по вертикали. Например, символ «4» находится по адресу 0х34.
Таблица 1. ASCII коды символов контроллера с русскоязычными символами
3) CGRAM- тоже таблица символов, но ее можно менять, создавая свои символы. Адресуется она линейно, то есть вначале идет 8 байт одного символа, построчно, сверху вниз — один бит равен одной точке на экране. Потом также задается второй, третий символ и так далее. Если знакоместо 5 на 8 точек, тостаршие три бита роли не играют.Всего вCGRAMпомещается 8 символов, значит,CGRAMимеет64байта памяти. Эти программируемые символы имеют коды от 0х00 до 0х07. Так что, поместив в первые8 байтCGRAM(первый символ с кодом 00) какой-либо символ и записав в DDRAMнуль (код первого символа в CGRAM) можно увидеть его на экране.
Рисунок Формирование символа в ячейке CGRAM
Массив для создания символа «1» будет выглядеть следующим образом:
const char edinitca_1[] = {4,12,4,4,4,4,14,0};
где const char – тип массива, edinitca_1 – имя массива.
Доступ к памяти. Вначале командой выбирается тип памяти и начальный адрес записи. Затем посылаются байты. Если запись в DDRAM, то на экран (или в скрытую область) пойдут символы, если в CGRAM то байты запишутся уже в память знакогенератора, откуда их нужно вывести на экран (в областьDDRAM памяти)
Система команд.
Команды ЖК контроллера состоят из старшего бита, определяющего, за что отвечает данная команда и битов параметров. О том, что передается именно команда, а не биты данных, контроллеру дисплея сообщит вывод RS=0.