Структура графического 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, а также библиотекой прикладных функций и организацией вывода информации на дисплей.

Задачи

  1. Ознакомиться с принципом отображения и возможностями графического LCD дисплея;
  2. Научиться подключать сторонние библиотеки для получения высокоуровнего функционального доступа к GLCD.
  3. Получить практические навыки отображения информации на 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 автоматически