Структура графического LCD экрана с контроллером KS0108
Лабораторная № 6
Организация взаимодействия с пользователем. Подключение графического LCD дисплея».
Содержание
Введение. 1
Цель работы.. 1
Задачи. 1
Теоретическая часть. 2
Структура графического LCD экрана с контроллером KS0108. 2
Интерфейс с МПС. 5
Назначение выводов. 5
Протокол обмена. 5
Система команд. 9
Использование готовых библиотек для работы с текстовым LCD дисплеем. 10
Описание лабораторного оборудования. 11
Графический LCD дисплей 128x64. 11
Меры безопасности. 12
Задание. Методика выполнения задания. 12
Требование к содержанию и оформлению отчета. 12
Варианты заданий. 12
Контрольные вопросы.. 13
Литература. 14
Введение
Современные микроконтроллерные и микропроцессорные системы довольно часто оснащаются графическими экранами. Это позволяет качественно улучшить и разнообразить взаимодействие с пользователем, что немаловажно для устройств массового спроса (телефоны, бытовые приборы и т.д.). В данной работе мы познакомимся
с подключением монохромного графического дисплея и программной реализацией простых функций по отображению информации. В то же время, использованные решения вполне пригодны и для цветных дисплеев большего разрешения при соответствующей корректировке библиотечных функций.
Цель работы
Целью данной работы является ознакомление с монохромными графическими LCD дисплеями на базе контроллера KS0108 размером 128 х 64, а также библиотекой прикладных функций и организацией вывода информации на дисплей.
Задачи
- Ознакомиться с принципом отображения и возможностями графического LCD дисплея;
- Научиться подключать сторонние библиотеки для получения высокоуровнего функционального доступа к GLCD.
- Получить практические навыки отображения информации на GLCD дисплее.
Теоретическая часть.
Безусловно, существует большое количество разнообразных графических LCD дисплеев. Отличаются они как по размеру и разрешению экрана, так и по используемому интерфейсу взаимодействия с МК. Достаточно широко распространенным, простым для освоения и подключения является графический LCD 128 х 64 с использованием встроенного контроллера KS0108 или аналогичного. Данный контроллер берет на себя функции отображения попиксельной информации на экране из внутренней памяти. Благодаря широкой распространенности экранов с данным контроллером, на просторах интернета можно легко отыскать библиотеки разных авторов для управления данным дисплеем. Рассмотрим подробнее основные аспекты функционирования данного типа дисплеев.
Структура графического LCD экрана с контроллером KS0108
Особенность графических экранов, как известно, заключается в том, что информация отображается на экране поточечно, что позволяет в конечном итоге получить любое необходимое изображение. В монохромном дисплее на каждую точку экрана приходится 1 информационный бит, который управляет свечением пикселя (вкл. – выкл.). Для цветных дисплеев на каждую точку (пиксель) может приходиться до 32 бит даных, которые несут информацию о цвете и интенсивности свечения. Таким образом, при разработке графических дисплеев возникает задача создания видеопамяти достаточного объема для представления информации и способ распределения информации в этой памяти применительно к координатам точек.
Поскольку для монохромных дисплеев на каждую точку приходится 1 бит, то это самые экономные в смысле использования памяти и ресурсов МК дисплеи. При этом один байт хранит информацию сразу по 8 точкам экрана.
На рис. . представлена структурная схема организации графического дисплея размером 128х64 точек.
Рис. . Структурная схема организации графического дисплея размером 128х64 точек
В качестве элемента, управляющего отображением точек на экране из видео памяти, применен контроллер KS0108 (NT7108). Данный контроллер был разработан и поддерживает управление графическим монохромным дисплеем 64х64. Для дисплея 128х64 точки используется 2 таких контроллера, каждый для своей половины экрана. В каждом контроллере встроена видеопамять достаточного объема. При этом видно, что данный контроллер использует параллельный интерфейс для доступа к видео памяти со стороны внешнего устройства управления. Выбор контроллера, к которому обращается внешняя схема производится сигналом #CS1 и #CS2. Контроллер KS0108 имеет специальный набор команд, позволяющий получить доступ к видеопамяти дисплея, а также управлять отображением данных.
На рис. . показана организация видеопамяти дисплея [2].
Рис. . Организация видеопамяти дисплея.
Байты укладываются в два контроллера страницами по 64 байта. Всего 8 страниц на контроллер.
Рис. . Альтернативный вид организации видеопамяти дисплея [3]
Например, для того, чтобы выставить точку с координатами на экране, Х = 10, Y=61 надо вычислить в каком контроллере она находится. Первый до 63, второй после. Если адрес находится во втором контроллере, то надо вычесть 64 из координаты. Затем необходимо вычислить страницу и номер бита. Страница это Х/8, а номер бита остаток от деления (Х%8). После этого необходимо считать нужный байт из этой страницы (если мы не хотим затронуть остальные точки), выставить в нем наш бит и вернуть байт на место
Рис. . Пример расчета расположения точки с заданными координатами в видеопамяти.
Интерфейс с МПС.
Назначение выводов.
- Vdd и Vss напряжение питания дисплея.
- Vee — источник отрицательного напряжения. Есть не на всех моделях этих дисплеев
- Vo — напряжение регулировки контраста.
- D/I — Данные/команда. Логический уровень на этом выводе определяет предназначение кода на шине данных. 1 — данные, 0 — команда.
- R/W — Чтение/Запись. Уровень на этой ноге задает тип действия. 1 чтение, 0 запись.
- Е — Строб - синхронизирующий импульс.
- DB0..7 — Шина данных
- CS1 и CS2 — выбор контроллера (могут быть инверсными).
- RST — сигнал сброса. Ноль на этой линии сбрасывает контроллеры в ноль. Но не сбрасывает видеопамять, только текущую адресацию.
- A и K — питание светодиодной подсветки (через ограничительный резистор). Ток потребления подсветки весьма велик - около 200мА.
Протокол обмена
В соответствии с необходимым действием по системе команд контроллера и направлением взаимодействия, руководствуясь временными диаграммами обращения, представленными на рис. . . формируются сигналы на шине данных и линиях управления. При этом команда и данные воспринимаются тем контроллером, чей сигнал CS является активным.
Рис. . Чтение данных с контроллера GLCD
Рис. . Запись данных в контроллер GLCD
Запись данных, в отличие от чтения, можно делать сразу в оба контроллера. Конечно, одновременно писать данные в контроллер смысла имеет мало. Например, для получения одинакового изображения на обеих половинах дисплея. А, вот команды обычно пишут сразу в оба контроллера.
Временные диаграммы, т.е. сдвиг фронтов между собой по времени может быть разным у разных контроллеров. Как правило, данная информация указана в «datasheet» на конкретный контроллер дисплея (не дисплей).
Рис. . Пример представления временных параметров доступа к контроллеру в «datasheet».
Не соблюдение временных интервалов приведет либо к отсутствию работоспособности дисплея, либо появлению ошибок в работе. Для проверки временных интервалов иногда рекомендуется выполнение процедуры записи и последующего чтения данных с видеопамяти. Совпадение данных говорит о корректности проведенной процедуры. В качестве данных рекомендуется использовать, например, шахматную доску из пикселей (по очереди 0х55 и 0хАА).
Система команд.
Система команд достаточно проста.
Таблица команд:
Команда | D/I | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | Назначение |
Отображение ВКЛ/ВЫКЛ | 0/1 | Управляет вкл/выкл отображения. Не влияет на внутреннее состояние и данные ОЗУ изображения. 0: ВЫКЛ 1: ВКЛ | |||||||||
Установить Адрес | Адрес Y (0 ~ 63) | Заносит адрес Y в счётчик адреса Y | |||||||||
Установить Страницу (адрес Х) | Страница (0 ~ 7) | Заносит адрес X в регистр адреса X | |||||||||
Начальная Строка Отображения | Начальная строка отображения (0 ~ 63) | Скроллинг вверх. На сколько пикселей сдвинуть адресное пространство. При этом «уехавшее» вверх, за экран, появится снизу, словно мы провернули экранную область. | |||||||||
Чтение Состояния | BUSY | ON/OFF | RESET | Чтение состояния. BUSY 0: Готовность 1: Выполняется команда ON/OFF 0: Отображение ВКЛ 1: Отображение ВЫКЛ RESET 0: Нормальный режим 1: Сброс | |||||||
Запись Данных Изображения | Данные для записи | Записывает данные (DB0:7) в ОЗУ данных изображения. После записи инструкции, адрес Y увеличивается на 1 автоматически. | |||||||||
Чтение Данных Изображения | Данные для чтения | Читает данные (DB0:7) из ОЗУ данных изображения на шину данных. После чтения адрес Y сам увеличивается на 1 автоматически |