AC-DC и DC-DC преобразователи напряжения Top Power на складе ЭЛТЕХ

Подключение графического индикатора (KS0108) к PIC микроконтроллеру. Часть 1 - Теория

Использование графического индикатора кардинально меняет внешний вид вашего проекта. Он предоставляет больше свободы при отображении данных, чем символьный ЖК индикатор на базе контроллера HD44780. В статье мы рассмотрим как подключить графический индикатор на контроллере KS0108 (или совместимом) к микроконтроллеру PIC производства компании Microchip. Статья разделена на несколько частей, в которых мы последовательно рассмотрим аппаратную и программную части проекта.

Подключение графического ЖК индикатора к PIC микроконтроллеру

Выбор микроконтроллера PIC16F887 связан с тем, что приложения с графическим ЖКИ требуют достаточно много ресурсов микроконтроллера (линии ввода/вывода, встроенная память) и данный микроконтроллер имеет 36 линий ввода/вывода и 14 КБайт Flash-памяти.

Графический ЖКИ, который используется в нашем проекте – это модуль WDG0151-TMI монохромного индикатора производства компании Winstar с разрешением 128×64 точки. Он выполнен на базе двух контроллеров NT7108C и NT7107C, которые совместимы с контроллерами Samsung KS0108B и KS0107B.

KS0108B – это 64 канальный точечный драйвер ЖК сегментов. Модуль WDG0151-TMI содержит два таких контроллера, чтобы обеспечить управление 128 сегментами. С другой стороны контроллер KS0107B (NT7107C) – это 64 канальный драйвер общих линий индикатора, который генерирует временные сигналы для управления двумя сегментными драйверами. Это очень распространенные и хорошо зарекомендовавшие себя контроллеры, которые применяются и в индикаторах других производителей.

Блок-схема модуля Winstar WDG0151-TMI

Блок-схема модуля графического индикатора на контроллере KS0108
Нажмите для увеличения

Контроллер NT7107C управляет 64 общими линиями дисплея (COM1 – COM64). Первый контроллер NT7108C управляет левой половиной сегментов (SEG1 – SEG64) дисплея, второй NT7108C – правой половиной сегментов (SEG65 – SEG128). Доступ к двум половинам дисплея осуществляется индивидуально посредством сигнальных линий Chip Select (CS1, CS2). Каждая половина дисплея представлена 7 горизонтальными страницами памяти, каждая высотой 8 бит (1 Байт).

Начиная с 0 страницы в левoй половине (/CS1=0), если вы передадите 1 байт данных, они будут отображены в первом столбце страницы 0. Если повторить данный процесс 64 раза и затем переключиться на вторую половину дисплея и повторить операции, пока не будет достигнута 128 позиция, мы получим отображение первых 8 линий на дисплее. Для отображения следующих 8 линий необходимо повторить эти операции, но сменив адрес страницы памяти. Общее количество байт, необходимое для отображения одного кадра (128×64 точки), в нашем случае равно 2×64×8 = 1024.

Модуль дисплея Winstar WDG0151-TMI GLCD имеет встроенный генератор отрицательного напряжения для управления контрастностью. Потенциометр регулировки контрастности (обычно 10 кОм) подключается между выводами VEE и VCC. Расположение линий ввода/вывода индикатора не стандартизировано, поэтому необходимо обратиться к технической документации на дисплей при подключении его к микроконтроллеру.

В общем случае количество выводов у графического индикатора 20. Первые два вывода – выбор контроллера левой или правой части индикатора, активный уровень – низкий, однако существуют индикаторы с высоким активным уровнем (поэтому и понадобится еще раз техническое описание используемого индикатора от производителя).  С помощью вывода 6 индикатора D/I (Data/Instruction) пользователь указывает, что поступает на шину данных индикатора: данные или команды (инструкции). Управляющие сигналы R/W и E имеют такое же назначение, как и в символьных индикаторах на контроллере HD44780.

Назначение выводов модуля ЖКИ WDG0151-TMI

Номер
вывода
Обозначение
Уровень
Описание
1
/CS1
Низкий
Выбор сегментов 1 – 64
2
/CS2
Низкий
Выбор сегментов 65 – 128
3
Vss
0 В
Общий («земля»)
4
VDD
5.0 В
Напряжение питания
5
Vo
переменный
Подстройка контрастности
6
D/I или RS
Низкий/Высокий
Высокий: данные;
Низкий: инструкции
7
R/W
Низкий/Высокий
Высокий: чтение данных;
Низкий: запись данных;
8
E
Высокий
Разрешение записи/чтения
9 – 16
D0 – D7
Низкий/Высокий
Шина данных
17
RST
Низкий
Сброс модуля ЖКИ
18
VEE
 
Выход отрицательного
напряжения
19
A
 
Анод подсветки дисплея
20
K
 
Катод подсветки дисплея

Контроллеры KS0107B и KS0108B не имеют своего знакогенератора, поэтому его функции будет выполнять программа микроконтроллера. Сам ЖКИ поддерживает ряд инструкций, которые приведены ниже в таблице. Необходимо помнить, что вывод RS (D/I) должен быть в высоком состоянии при операциях чтения/записи данных и оставаться в низком состоянии, когда передаются инструкции.

Команда
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Назначение
Дисплей
ВКЛ/ВЫКЛ
L
L
L
L
H
H
H
H
H
L/H
Управляет вкл/выкл отображения.
Не влияет на внутреннее состояние
и данные ОЗУ изображения.
L: ВЫКЛ
H: ВКЛ
Установить
адрес
L
L
L
H
Адрес Y (0 ~ 63)
Заносит адрес Y в счетчик адреса Y
Установить
страницу
(адрес Х)
L
L
H
L
H
H
H
Страница (0 ~ 7)
Заносит адрес X в регистр адреса X
Начальная
строка
отображения
L
L
H
H
Начальная строка
отображения (0 ~ 63)
Указывает данные ОЗУ изображения
отображаемые вверху экрана
Чтение
состояния
L
H
BUSY
L
ON/OFF
RESET
L
L
L
L
Чтение состояния.
BUSY
L: Готовность
H: Выполняется команда
ON/OFF
L: Отображение ВКЛ
H: Отображение ВЫКЛ
RESET
L: Нормальный режим
H: Сброс
Запись
данных
изображения
H
L
Данные для записи
Записывает данные (DB0:7) в ОЗУ
данных изображения.
После записи инструкции, адрес Y
увеличивается на 1 автоматически.
Чтение
данных
изображения
H
H
Данные для чтения
Читает данные (DB0:7) из ОЗУ данных
изображения на шину данных


  Часть 2 - Схема, программа микроконтроллера для инициализации индикатора

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Interfacing a KS0108 based Graphics LCD. Part 1 - Theory

ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя