Вы находитесь на странице: 1из 24

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение


высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ


АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ

ПРОЕКТИРОВАНИЕ СРЕДСТВ КОНТРОЛЯ И ДИАГНОСТИКИ


С ЭЛЕМЕНТАМИ ВЫСОКОЙ ИНТЕГРАЦИИ

Методические указания
к выполнению лабораторной работы № 8

Санкт-Петербург
2005
Составители: кандидат технических наук, доцент С. И. Ковалев,
кандидат технических наук, доцент В. А. Голубков

Даны методические указания к выполнению практических заданий по


курсу «Проектирование средств контроля и диагностики с элементами
высокой интеграции», которая ориентирована на изучение
жидкокристаллических символьных индикаторов фирмы POWERTIP с
встроенным контролером типа HDD44780.
Методические указания предназначены для студентов специальности
190200 – «Приборы и методы контроля качества и диагностики».
Подготовлены кафедрами электротехники и информационных систем
и рекомендованы к изданию редакционно-издательским советом
государственного образовательного учреждения высшего профессионального
образования «Санкт-Петербургский государственный университет
аэрокосмического приборостроения».

Подписано к печати 05.05.05. Формат 60×84 1/16. Бумага офсетная. Печать офсетная.
Усл. печ. л. 1,27. Уч. -изд. л. 1,66. Тираж 100 экз. Заказ №

Отпечатано с оригинал-макета, подготовленного автором


Отдел оперативной полиграфии
СПбГУАП
190000, Санкт-Петербург, ул. Б. Морская, 67

© ГОУ ВПО «СПбГУАП», 2005


Лабораторная работа № 8

Изучение жидкокристаллических символьных индикаторов фирмы


POWERTIP c встроенным контроллером типа HD44780 . Управление ЖКИ
с помощью микроконтроллеров фирмы Microchip Technology

Цель работы: ознакомление с жидкокристаллическими индикаторами


фирмы Powertip с встроенным контроллером HD 44780. Изучение принципов
управления ЖКИ с помощью PIC-контроллеров (на примере PIC16F877) и
приемами программирования.

Методические указания

ЖК-дисплеи от POWERTIP.
Описание, система команд, программирование
Жидкокристаллические индикаторы в настоящее время наиболее
распространенные устройства отображения информации. Алфавитно-цифровые
(матричные) и графические модули фирмы POWERTIP − устройства отображения
информации, при подключении которых необходимо организовать порядка
полутора-двух десятков соединений (их количество практически не зависит от
информационной емкости модуля), а для управления ими требуются только
управляющие и информационные сигналы от микропроцессора.
Каждый модуль содержит один или несколько, в зависимости от
информационной емкости, контроллеров, которые, принимая данные и
управляющие сигналы от микропроцессора, организуют процесс выработки
необходимых для работы сигналов и напряжений формируя на LCD модуле
требуемое изображение.
Некоторые характеристики LCD модулей фирмы POWERTIP:
- алфавитно-цифровые и графические
- широкий выбор форматов индикаторов
- встроенная схема инициализации
- большая площадь отображения информации
- несколько вариантов фоновой подсветки
- малые напряжения питания и энергопотребления
- возможность работы с 8 и 4-разрядными микропроцессорами
- различные наборы шрифтов
- возможность программирования символов
- компактность, малые вес и толщина
- широкий угол обзора и высокая контрастность
- различные варианты цвета фоновой подсветки
- широкий диапазон температур
- высокая надежность и качество

1
Основные особенности алфавитно-цифровых
модулей фирмы POWERTIP
В табл. 1 представлена номенклатура алфавитно-цифровых модулей,
производимых фирмой POWERTIP, разбитых на группы по числу
отображаемых символов и строк. Внутри каждой группы модели различаются
размерами знакоместа, наборами отображаемых символов, типом жидких
кристаллов, видом подсвета, температурным диапазоном. Температурный
диапазон модуля может быть расширен в область отрицательных температур, за
счет применения специальных пластин-подогревателей.
Из рисунка 1 и табл. 2 можно видеть, насколько просто подключение
модуля к управляющему процессору. Все алфавитно-цифровые LCD модули
фирмы POWERTIP, содержат встроенный контроллер типа HD44780, а
некоторые, к примеру, РС4004 даже два. Понятно, что внешний
микропроцессор работает с контроллером, и именно его технические
характеристики и система команд определяют возможности LCD модуля.

Характеристики HD44780:
- Работа с 4 или 8 битным микроконтроллером
- Размер ОЗУ дисплея 80 × 8 бит (80 символов)
- ПЗУ знакогенератора
Символ 5 × 7 точек: 160 символов
Символ 5 × 10 точек: 32 символа
- Широкий набор инструкций: очистка дисплея, возврат курсора,
включение/выключение дисплея, включение/выключение курсора, мерцание
символа, сдвиг курсора, сдвиг строки символов.
- Внутренний сброс по включению питания.
Таблица 1
Количество Количество знакомест в одной строке
строк
8 12 16 20 24 40
.- .- PC1601 PC2001 .- .-
1 6 моделей 1 модель
3,0 × 6,6 6,0 × 14,5
4,8 × 9,6
PC0802 PC1202 PC1602 PC2002 PC2402 PC4002
2 1 модель 1 модель 11 моделей 5 моделей 4 модели 3 модели
3,0 × 5,6 2,6 × 5,5 3,0 × 4,4 3,2 × 5,5 3,2 × 5,5 3,2 × 5,5
3,0 × 5,5 4,8 × 9,2 6,0 × 9,6
4,8 × 9,6 6,0 × 9,6
.- .- PC1604 PC2004 PC2402 PC4002
3 1 модель 4 модели 1 модель 2 модели
3,0 × 4,7 3,2 × 5,5 3,2 × 5,5 2,8 × 4,9
4,8 × 9,2 5,2 × 14,5
6,0 × 9,6
Блок схема алфавитно-цифрового модуля фирмы POWERTIP приведена
на рис. 1.

2
DB7
DB0
E
R/W Панель ЖКИ
Vss HDD44780
Vdd
Vo

A Подсветка
K

Рис. 1

Таблица 2
Cигнал Количество Функция Назначение
линий
RS 1 Ввод Выбор регистра команд или регистра данных

R/W 1 Ввод Чтение / запись

E 1 Ввод Разрешение чтения/записи

DB4-DB7 4 Ввод-вывод 4 линии старших разрядов шины данных

DB3-DB0 4 Ввод-вывод 4 линии младших разрядов шины данных

Vss Vdd 2 Vss-земля, Vdd-напряжение питания логики (+5в)

Vo 1 Напряжение для управления ЖК панелью


(регулировка контрастности изображения)
значение зависит от типа модуля
A K 2 Напряжение питания подсветки,
зависит от вида подсветки.

Интерфейс с микропроцессором
В LCD модуле информация может быть переслана либо в двух 4-битовых
операциях, либо одной 8-битовой.
1. Когда ширина шины составляет 4 бита, информация передается по
старшим линиям шины данных DB4-DB7. Линии DB0-DB3 не используются.
Цикл передачи одного байта между модулем и микропроцессором занимает

3
две последовательные 4-битовые посылки. Старшие биты передаются первыми
(рис. 2).
2. При ширине шины 8 бит, данные передаются одной 8-битовой
посылкой, используя линии DB0-DB7.

Примечания по аппаратной организации


Выбор кристалла
HD44780 не имеет входа CS (выбор кристалла). Поэтому при подключении
модуля напрямую к шине данных, необходимо предусмотреть схему
запрещающую сигнал Е (Enable), на адресах, которые не отведены для LCD
модуля.
Шина данных
Линии DB0-DB7 могут иметь нагрузку один TTL выход. При подаче на
вывод E напряжения низкого уровня линии DB0-DB7 переходят в состояние
высокого импеданса.

RS

R/W

DB7 IR7 IR3 BF AC3 DB7 DB3

DB6 IR6 IR2 AC6 AC2 DB6 DB2

DB5 IR5 IR1 AC5 AC1 DB5 DB1

DB4 IR4 IR0 AC4 AC0 DB4 DB0

Запись инструкции IR Чтение флага BF Чтение регистра


и счетчика адреса данных DR
АС

Рис. 2
На рис. 3 приведен пример временных последовательностей при проверке
состояния флага занятости BF.

4
Рис. 3

Инициализация
Инициализация внутренней схемой сброса
Контроллер HD44780 автоматически инициализируется (сбрасывается) по
включению питания. При инициализации выполняются следующие
инструкции. Флаг занятости удерживается до конца инициализации (BF=1).
(1) Очистка дисплея
(2) Набор функций ....DL=1: разрядность шины 8 бит
N=0: однострочный дисплей
F=0: символы 5 × 7 точек
(3)Включение/выключение дисплея
D=0: дисплей выключен
С=0: курсор выключен
B=0: мерцание выключено
(4)Режим ввода.........I/D=1:+1 (инкремент)
S=0: нет сдвига
(5)Запись DD RAM (ОЗУ знакогенератора)

Если время установления напряжения питания (0,2-4,5) больше, чем 0,1 мс


10 мс, то внутренняя схема сброса может сработать некорректно. В этом случае
инициализация должна проводится программно микропроцессором.

Программная инициализация
Для программной инициализации используется следующая процедура.

Включение
питания

5
ждать не менее 15 мс
после установления
питания Vdd 4.5 В

Установка набора функций


RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
BF не может быть
0 0 0 0 1 1 * * * *
считан до выполнения
этой инструкции

ждать не менее 4,1 мс

Установка набора функций


RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 BF не может быть
0 0 0 0 1 1 * * * * считан до выполнения
этой инструкции

ждать не менее 100 мкс

далее исполняются те же
инструкции, что и при
инициализации внутренней
схемой сброса

конец инициализации

Инструкции
Только два регистра контроллера HD44780 могут быть непосредственно
доступны для микропроцессора. Это регистр данных (DR) и регистр
инструкций. Операции HD44780 определяются командами микропроцессора.

В табл. 3 приведены инструкции и время их исполнения. Более


детальное описание приведено в дальнейших разделах.
Инструкции подразделяются на 4 типа.

(1) Определение функций HD44780, таких как формат дисплея, разрядности


шины данных и т.д.

6
(2) Выбор адреса внутреннего ОЗУ HD44780
(3) Обмен данными с внутреннего ОЗУ HD44780
(4) Остальные
Обычно наиболее часто используются инструкции (3). Во время
исполнения одной инструкции, никакая другая, кроме инструкции чтения флага
занятости не может быть считана. Поскольку флаг занятости устанавливается в
«1» ,на все время выполнения инструкции, то пользователь должен обязательно
проверять этот флаг перед посылкой следующей инструкции.
П р и м е ч а н и е . Если инструкция посылается без проверки флага
занятости, то время между первой и следующей инструкцией, должно быть
больше, чем время исполнения первой инструкции.
После исполнения инструкции записи данных в CG/DD RAM или чтения
данных из CG/DD RAM, счетчик адреса в HD44780 инкрементируется на 1 или
декрементируется на 1 В этом случае изменение адреса после установки флага
занятости в «0». Тadd определяет временной интервал между срезом состояния
занятости и окончанием обновления счетчика адреса.

Сигнал
занятости DB7

Cчетчик
адреса A A+1
DB0-DB7
Tadd

Тadd зависит от рабочей частоты


1,5
Тadd= Fosc (Fosc-обычно 270 КГц)

Система команд
Таблица 3
Инструкция Код Время исполнения
RS R/ DB DB DB DB DB DB DB DB0
W 7 6 5 4 3 2 1
Очистка дисплея 0 0 0 0 0 0 0 0 0 1 82 мкс-1,64
мс
Инструкция Код Время исполнения
RS R/ DB DB DB DB DB DB DB DB0
W 7 6 5 4 3 2 1
Возврат в начало 0 0 0 0 0 0 0 0 1* 40 мкс-1,6
(сбрасываются все сдвиги мс
курсора и экрана)
Выбор направления сдвига 0 0 0 0 0 0 0 1 I/D S 40 мкс
курсора или экрана
Дисплей, курсор, мерцание 0 0 0 0 0 0 1D C B 40 мкс

7
курсора включить
/выключить
Сдвиг курсора и дисплея 0 0 0 0 0 1 S/C R/L * * 40 мкс
Установка ширины шины 0 0 0 0 1 DL N F * * 40 мкс
данных, числа строк, размера
шрифта
Установка адреса CG RAM 0 0 0 1 40 мкс
Acg
Установка адреса DDRAM 0 0 1 40 мкс
Acg
Чтение флага BF 0 1 BF 1 мкс
и счетчика AC AC
Запись данных в CG или DD 1 0 записываемые данные 40 мкс
RAM
Чтение данных из CG или 1 1 читаемые данные 40 мкс
DDRAM

Описание инструкций
Очистка дисплея
Записывает код пробела (20h) по всем адресам DD RAM. Устанавливает
счетчик адреса DD RAM в 0. Возвращает дисплей в его первоначальное
состояние, если содержимое его было сдвинуто. Другими словами, дисплей
очищается, курсор сдвигается в левый край дисплея (на первую строчку, если
дисплей двухстрочный). Кроме того, I/D устанавливается в 1 (режим
автоинкремента). Состояние режима ввода S не меняется.
Возврат на начало
Устанавливает адрес 0 DD RAM в счетчике адреса. Возвращает дисплей в
первоначальное состояние, если он был сдвинут.Содержимое DD RAM не
изменяется, курсор сдвигается в левый край дисплея (на первую строчку, если
дисплей двухстрочный.
Установка режима ввода
I/D: Инкремент (I/D=1) или декремент (I/D=0) счетчика адреса DD RAM на
единицу при записи или чтении кода символа в или из DD RAM.
S: S=0 Курсор сдвигается направо на одну позицию при инкременте и
налево при декременте. То же самое относится к чтению записи СG RAM.
S: Сдвигает полностью дисплей на одну позицию вправо или влево при
S=1: влево при I/D=1 и вправо при I/D=0.Внешне это выглядит так: курсор
остается на месте, в то время как сам дисплей сдвигается. Дисплей не
смещается во время считывания из DD RAM, также не происходит смещения
при чтении/записи CG RAM.
Дисплей включить/выключить (ON/OFF)
D: Дисплей включен при D=1 и выключен при D=0 .При этом данные
сохраняются неизменными в DD RAM и выводятся на дисплей сразу после
установки D=1.

8
С: Курсор включен при С=1 и включен при С=0. Курсор использует 5
точек в 8 линии при шрифте 5 × 7 точек, и 5 точек в 11 линии при шрифте 5 ×
10 точек. Даже если курсор не отображается, функция I/D и другие
спецификации не будут изменяться во время записи данных дисплея.
В: Мерцание символа расположенного над позицией курсора с частотой
409.6 мс Fosc=270 Кгц при В=1. Мерцание реализуется переключение между
матрицей полностью заполненной точками и отображаемым символом.
Включение курсора и мерцание могут быть инициализированы одновременно.
Сдвиг курсора или дисплея
Сдвигает курсор или дисплей влево или вправо без чтения/записи данных.
В двустрочном дисплее курсор сдвигается на вторую строку при достижении 40
позиции в первой строке Необходимо отметить, что и первая и вторая строка
сдвигаются по горизонтали одновременно. При выполнении операции
смещения дисплея значение счетчика адреса AC не меняется.

S/C R/L
0 0 Сдвиг курсора на позицию влево
(Счетчик адреса инкрементируется на единицу)
0 1 Сдвиг курсора на позицию вправо
(Счетчик адреса декрементируется на единицу)
1 0 Сдвиг всего экрана на позицию влево, вместе с курсором.
(Счетчик адреса не меняется)
0 1 Сдвиг всего экрана на позицию вправо, вместе с курсором.
(Счетчик адреса не меняется)
Установка функций
DL: Устанавливает ширину шины данных. Данные
посылаются/принимаются по 8-битовой шине, при DL=1 и по 4-битовой шине,
при DL=0.
N: Установка количества строк дисплея, N=0 одна строка, N=1 две строки.
F: Установка размера шрифта.
Установка адреса СG RAM
Устанавливает адрес СG RAM в счетчике адреса в двоичном формате
АААААА. Передаваемые затем данные адресуется для СG RAM.
Установка адреса DD RAM
Устанавливает адрес DD RAM в счетчике адреса в двоичном формате
АAААААА. Передаваемые затем данные адресуется для DD RAM. Необходимо
отметить, что при N=0 (однострочный дисплей) адрес DD RAM должен быть в
пределах 00H-4FH включительно, при N=1 (двустрочный дисплей) в пределах
00H-27H (первая строка) и 40H-67H (вторая строка) включительно.
Чтение флага занятости и адреса
Читается состояние флага занятости (BF), установка которого означает,
что система в данный момент обрабатывает предыдущую инструкцию.
Следующая инструкция не может быть выполнена, пока флаг BF не сбросится в

9
0. Необходимо каждый раз проверять состояние флага BF перед посылкой
инструкции.
Этой же инструкцией считывается состояние счетчика адреса выраженное
в двоичном формате ААААААА. Счетчик адреса используется при адресации
как
DD RAM так и СG RAM.
Запись данных в СG RAM или DD RAM
Записывает байт данных в двоичном формате DDDDDDDD в СG RAM или
DD RAM . Запись происходит по адресу, определяемому счетчиком адреса
(установка счетчика адреса выполняется инструкциями (7), (8)). После записи
счетчик адреса автоматически инкрементируется или декрементируется на 1, в
соответствии с установкой режима ввода (2). Установка режима ввода также
определяет сдвиг дисплея.
Чтение данных в СG RAM или DD RAM
Читает байт данных в двоичном формате DDDDDDDD из СG RAM или
DD RAM. Перед посылкой инструкции чтения, необходимо выполнить
инструкцию установки счетчика адреса либо для СG RAM (7), либо для DD
RAM (8). В противном случае первое считывание данных будет некорректным.
Выполнение инструкции установки счетчика адреса не требуется при
операциях связанных со сдвигом курсора (когда происходит чтение DD RAM,
так как инструкция сдвига курсора действует подобно инструкции установки
адреса DD RAM). После чтения счетчик адреса автоматически
инкрементируется или декрементируется на 1, в соответствии с установкой
режима ввода (2).
Пример выполнения последовательности инструкций
для вывода сообщения на дисплей
(1) 8-битовая шина данных, 8 символов в одну строку (используется
внутренний сброс). Следующая таблица приводит пример последовательности
инструкций по выводу сообщения на дисплей.
Так как RAM дисплея может запомнить до 80 символов, то при желании
можно использовать дисплей в режиме ‘бегущей строки’, используя
инструкцию сдвига, которая не изменяет содержимое DD RAM.

Таблица 4
№ Инструкция Состояние дисплея Комментарий

1 Включение питания Инициализация


(HD44780 инициализируется
внутренней схемой сброса)

2 Установка функций Устанавливает 8-битовую шину,


RS R/W DB7 . . . . . .DB0] 1- строчный дисплей, размер
0 0 0 01100* * шрифта

10
3 Дисплей Включает дисплей и курсор.
включить/выключить Дисплей заполнен символами
0 0 00001110 _ пробела после внутренней
инициализации

4 Установка режима ввода Устанавливает режим автоинкре-


0 0 00000110 _ мента и сдвиг курсора вправо во
время записи в СG RAM DD RAM
Дисплей не сдвигается

5 Запись данных в DD RAM Записывает символ "H". DD RAM


СG RAM H_ заранее выбрана при
1 0 01 001000 внутрисхемной инициализации

6 Запись данных в DD RAM Записывает символ "I"


СG RAM HI_
1 0 01 001001

7 .…….. .……..

8 Запись данных в DD RAM Записывает символ "I"


СG RAM HITACHI_
1 0 01 001001

9 Установка режима ввода Устанавливает режим сдвига дисп-


0 0 00000111 HITACHI_ лея во время записи

10 Запись данных в DD RAM Запись пробела


СG RAM ITACHI_
1 0 00100000

11 Запись данных в DD RAM Записывает символ "М"


СG RAM ITACHI M
1 0 01001101

12 ..... .....

13 Запись данных в DD RAM Записывает символ "О"


СG RAM MICROKO_
1 0 01001111

14 Сдвиг курсора или дисплея Сдвиг позиции курсора влево


0 0 000100** MICROKO

15 Сдвиг курсора или дисплея Сдвиг позиции курсора влево


0 0 000100** MICROKO

11
16 Запись данных в DD RAM Записывает символ "С". Исправле-
СG RAM ICROCO ние. Дисплей сдвигается влево
1 0 01000011

17 Сдвиг курсора или дисплея Сдвиг курсора и дисплея вправо


0 0 000111** MICROCO

18 Сдвиг курсора или дисплея Сдвиг курсора и дисплея вправо


0 0 000111** MICROCO_

19 Запись данных в DD RAM Записывает символ "М"


СG RAM ICROCOM_
1 0 01001101

20 ..... .....

21 Возврат в начало Возвращает курсор и дисплей в


0 0 00000010 HITACH I первоначальное состояние
(Адрес 0)

LCD модуль PC0802 8-битовая шина данных, 8 символов в 2 строки


используется внутренний сброс). Следующая таблица приводит пример
последовательности инструкций по выводу сообщения на дисплей.
В двухстрочном дисплее курсор автоматически сдвигается с первой на
вторую строку, после достижения сорокового знакоместа. Таким образом, если
дисплей содержит в строке 16 символов, то при переходе ко второй строке
необходимо снова устанавливать адрес DD RAM. См. следующую таблицу. В
приведенном примере сдвиг дисплея выполняется в момент, когда курсор
находится на второй строке. Также, если операция сдвига выполняется в
момент, когда курсор находится на первой строке, содержимое и первой и
второй строки сдвигается одновременно.
Таблица 5
№ Инструкция Состояние дисплея Комментарий

1 Включение питания Инициализация


(HD44780 инициализируется
внутренней схемой сброса)

2 Установка функций Устанавливает 8-битовую шину,


RS R/W DB7 . . . . . .DB0] 2-строчный дисплей, размер
0 0 0 01110* * шрифта 5 × 7

3 Дисплей включить/выключить Включает дисплей и курсор.

12
0 0 00001110 _ Дисплей заполнен символами
пробела после внутренней
инициализации

4 Установка режима ввода Устанавливает режим автоинкре-


0 0 00000110 _ мента и сдвиг курсора вправо во
время записи в СG RAM DD RAM
Дисплей не сдвигается

5 Запись данных в DD RAM Записывает символ "H". DD RAM


СG RAM H_ заранее выбрана при
1 0 01 001000 внутрисхемной инициализации.
Курсор сдвигается вправо
6 ..... .....

7 Запись данных в DD RAM Записывает символ "I"


СG RAM HITACHI_
1 0 01 001001

8 Установка адреса DD RAM Устанавливает адрес DD RAM ,


0 0 11 000000 так чтобы позиция курсора
HITACHI находилась вначале второй
_ строки

9 Запись данных в DD RAM Записывает символ "М"


СG RAM HITACHI
1 0 01001101 М_

10 ..... .....

11 Запись данных в DD RAM Записывает символ "O"


СG RAM HITACHI
1 0 01001111 МICROCO_

12 Установка режима ввода Устанавливает режим сдвига


0 0 00000111 HITACHI дисплея во время записи
МICROCO_

13 Запись данных в DD RAM Записывает символ "М". Дисплей


СG RAM ITACHI сдвигается вправо. 1 и 2 строка
1 0 01001101 I C R O C O М_ сдвигаются одновременно

14 ..... .....

15 Возврат в начало Возвращает курсор и дисплей в


0 0 00000010 HITACH I первоначальное состояние

13
М I C R O C O М _ (Адрес 0)

Блок схема HD44780 и функции каждого блока


Регистры
HD44780 имеет два 8-битовых регистра: регистр инструкций (IR) и регистр
данных (DR).
IR запоминает коды инструкций, таких как очистка дисплея, сдвиг курсора
и адресную информацию для DD RAM и CG RAM. Регистр IR доступен только
для записи.
Регистр данных DR является промежуточным буфером для данных
записываемых в DD RAM или CG RAM либо для данных читаемых из DD
RAM и CG RAM. Информация, записанная в DR из микропроцессора затем
автоматически переписывается в DD RAM или CG RAM. Регистр DR также
используется для временного хранения данных при чтении DD RAM или CG
RAM. После записи адреса в регистр IR, данные автоматически
переписываются в регистр DR и затем могут быть считаны микропроцессором.
После считывания данных микропроцессором, данные расположенные по
следующему адресу в DD RAM или CG RAM пересылаются в регистр DR для
последующего чтения микропроцессором. Селектор регистров (RS) выбирает
один из двух регистров.

Таблица 6
Выбор регистра

RS R./W E Операция
0 0 Запись в IR

0 1 Чтение флага занятости (DB7) и


счетчика адреса (DB0..DB6)
1 0 Запись в DR (в DD или CG RAM)

1 1 Чтение из DR (из DD или CG RAM)

14
Флаг занятости (BF)
Когда флаг занятости установлен в 1, это значит, что HD44780 находится в
режиме выполнения инструкции и не может считать следующую. Как показано
в таблице, состояние флага занятости можно считать, установив RS=0 и
R/W=1. Перед посылкой следующей инструкции необходимо убедится, что
флаг занятости сброшен.
Счетчик адреса (AC)
Счетчик адреса AC задает адреса для DD RAM и CG RAM.При
выполнении инструкции установки адреса, адресная информация пересылается
из регистра IR в счетчик адреса AC. Выбор DD RAM или CG RAM
осуществляется этой же инструкцией.
После записи (чтения) DD RAM или CG RAM, счетчик адреса
автоматически инкрементируется (декрементируется) на 1. Содержимое
счетчика адреса доступно при выполнении инструкции чтения флага занятости
см. табл. 6.
RAM отображаемых символов DD RAM
DD RAM хранит коды отображаемых на дисплее символов. Емкость DD
RAM составляет 80 × 8 бит или 80 символов. DD RAM незадействованная для
отображения может использоваться как обычное ОЗУ. Связь между адресами
DD RAM и знакоместами самого дисплея проиллюстрирована ниже.

AC (Счетчик адреса)

AC AC AC AC AC AC AC
6 5 4 3 2 1 0

Адрес DD RAM «4E»

1 0 0 1 1 1 0
--------4-------- -----------E-----------

Однострочный дисплей (N=0)

1 2 3 4 5 79 80 − расположение знакомест
.00 .01 .02 .03 .04 ... .... .4E 4F
Адреса DD RAM

К примеру, 8 символов при использовании одного HD44780 будут


отображаться следующим образом.
1 2 3 4 5 6 7 8 − расположение знакомест

15
.00 .01 .02 .03 .04 .05 .06 .07
Адреса DD RAM

При выполнении операции сдвига, сдвиг адресов символов будет происходить


следующим образом.

.01 .02 .03 .04 .05 .06 .07 .08


Сдвиг дисплея влево

.4F .00 .01 .02 .03 .04 .05 .06


Сдвиг дисплея вправо

Знакогенератор ROM (CG ROM)


Знакогенератор ROM формирует знаки размером 5 × 7 или 5 × 10 точек, в
соответствии с поступающими 8-битовыми кодами. Он может генерировать 160
знаков размером 5 × 7 и 32 знака размером 5 × 10 точек. Таблица
знакогенератора программируется на заводе изготовителе.

Знакогенератор RAM (CG RAM)


Знакогенератор RAM может перепрограммироваться пользователем для
формирования желаемых символов. Возможно формирование восьми знаков
размером 5 × 7 точек каждый или четырех размером 5 × 10.

Таблица 7
Код символа Адрес CG RAM Рисунок символа
данные DD RAM данные CG RAM
76543210 543210 76543210
Ст.бит Мл.бит Ст.бит Мл.бит Ст.бит Мл.бит
000 000 * * * 11110
000 001 * * * 10001
000 010 * * * 10001 рисунок символа
0000*000 000 011 * * * 11110 "
R
"
000 100 * * * 10100
000 101 * * * 10010
000 110 * * * 10001
000 111 * * * 00000 .- позиция курсора

001 000 * * * 10001


001 001 * * * 11011
001 010 * * * 10101 рисунок символа

16
0000*001 001 011 * * * 10101 "
M
"
001 100 * * * 10001
001 101 * * * 10001
001 110 * * * 10001
001 111 * * * 00000 .- позиция курсора

000 * * *
001 * * *

0000*111 111 100 * * *


101 * * * * - незначащие
110 * * * б
и
т
ы
111 * * *

Примечание:
1. Биты кода символа 0-2 соответствуют битам адреса 3-5 CG RAM (3 бита: 8
программируемых символов)
2. Биты адреса 0-2 CG RAM определяют отображаемые строки рисунка
символа.8 строка зарезервирована под курсор. Для нормального отображения
курсора, биты 8 строки должны быть сброшены, в противном случае они могут
«закрасить» курсор.
3. Так как биты данных CG RAM 5-7 не используются для выведения
информации (размер символа по горизонтали составляет пять бит), то они
могут быть отведены под обычное ОЗУ.
4. Как показано в таблице знакогенератора, программируемые символы
выбираются при значении кода символа (0000*ХХХ). Однако так как бит 3
является не значащим битом, то при любом его значении будет отображаться
один и тот же символ.
5. «1» для CG RAM соответствует отображаемой точке, «0» соответствует
«пустому месту».

Таблица кодов символов контроллера EPSON, набор «Russian»

17
Временные характеристики LCD модулей (контроллер D44780).

18
Таблица 8
Параметр Обозначение. Мин. Макс.
значение значение
Длительность цикла Enable нс Tcyce 500 .-
Длительность высокого уровня Enable нс Pweh 220 .-
Длительность нарастающего/падающего фронтов Ter, Tef
Enable нс .- 25
Время установки сигналов RS, R/W, E нс Tas 40 .-
Время удержания адреса нс Tah 10 .-
Время сохранения данных нс Tdsw 60 .-
Время задержки данных нс Tddr 60 12
Время удержания данных при записи нс Th 10 .-
Время удержания данных при чтения нс Tdhr 20 .-
Частота тактового генератора кГц Fosc 270 типовая
Питание

19
На рис. 4 приведены схемы подключения питание к двум типам LCD-
модулей: нормального и расширенного температурных диапазонов.
Нормальный температурный диапазон 0...+50 °С

Расширенный температурный диапазон -20...+50 °С

Теперь рассмотрим более подробно, как ЖКИ подключен к линиям шины


PORTB в нашей установке.
На рис. 5 показано подключение к шине PORTB жидкокристаллического
индикатора. Как видно из рисунка, в нашем случае используется подключение
половины шины данных, т. е байт информации передается в два приема –
сначала старший полубайт, затем младший. Кроме того, вход R/W заземлен, т.е.
предусмотрена передача информации только из внешнего мира в ЖКИ. В
остальном схема вполне стандартная и других особенностей не имеет.

20
Рис. 5. Подключение жидкокристаллического индикатора (ЖКИ) к PORTB

Сигналы разъема ЖКИ:


LED- и LED+ служат для подключения питания к светодиодам
внутренней подсветки ЖКИ. Если не подключать питание к этим светодиодам,
то ЖКИ можно будет пользоваться только в хорошо освещенном помещении,
т.к. цифры будут видны только в отраженном свете. При включении
внутренних “осветительных” светодиодов отпадает необходимость во внешнем
источнике света и индикатором можно пользоваться даже при плохом
освещении.
GND(“земля”) и +5V – линии подачи основного питания на ЖКИ.
V0 – линия подачи небольшого отрицательного напряжения для
регулировки контрастности изображения на ЖКИ. Некоторые типы ЖКИ могут
обходиться и без отрицательного смещения, однако для большинства типов
ЖКИ требуется подавать на этот вход до нескольких вольт отрицательного
напряжения, чтобы символы стали видны на индикаторе. Как правило,
требуемая величина отрицательного напряжения зависит от температуры, и
данная величина напряжения регулируется специальным потенциометром,
которым можно подстраивать контрастность для текущей температуры
окружающей среды. Для лабораторной установки вполне достаточно
работоспособности в диапазоне положительных температур, поэтому в ЛОК-1
такая регулировка не предусмотрена. Используемый в ЛОК-1 тип ЖКИ требует
подачи напряжения на вход V0 около -0.5V при потребляемом токе по этому
входу около 1 mА.

21
RS – Входной сигнал указывает ЖКИ, что сейчас в ЖКИ будет передана
команда (RS=0) или данные (RS=1).
R/W – Входной сигнал указывает ЖКИ, куда сейчас должна передаваться
информация – от ЖКИ во внешний мир (R/W=1) или из внешнего мира в ЖКИ
(R/W=0). В данном макете этот сигнал всегда заземлен, т. е. возможность
передачи сигналов от ЖКИ к контроллерам не предусмотрена. Такое схемное
решение значительно упрощает работу с ЖКИ, но при этом несколько снижает
разнообразие функций, выполняемых ЖКИ. Например, ЖКИ не может
“сказать” микроконтроллеру, что ЖКИ не готов к приему очередной команды,
т. к. еще не успел выполнить предыдущую. Эта особенность включения ЖКИ
требует введения задержки после подачи на ЖКИ очередной команды, чтобы
ЖКИ гарантированно успел выполнить данную команду. Требуемая задержка
определяется опытным путем и, как правило, не превышает нескольких
миллисекунд. Общее быстродействие ЖКИ достаточно велико, и введение
задержек практически не заметно для внешнего наблюдателя.
E – Входной синхросигнал, подача которого обеспечивает считывание
индикатором данных с его входов. Сигнал имеет вид положительного
импульса, т. е. он должен изменить свое значение следующим образом: 0-1-0.
Длительность импульса рекомендуется выбирать достаточно большую – не
менее нескольких микросекунд.
D0..D7 – Входы данных. Предназначены для передачи в ЖКИ данных и
команд и для передачи данных из ЖКИ (последнее не используется в данной
установке).
Программная инициализация ЖКИ перед началом работы может быть
реализована, как в приведенной ниже подпрограмме. Здесь и далее примеры
программ приведены для тактовой частоты контроллера 4 МГц. Использование
более высокой частоты может потребовать изменения некоторых задержек в
сторону увеличения.

Практическая часть.
1. Прочесть методичку, и после собеседования с преподавателем
получить у него задание.
2. Написать и отладить программу в среде MPLAB.
3. С разрешения преподавателя занести программу в PIC16F877.
4. Проверить работу программы на лабораторной установке.

Отчет должен содержать:


- задание;
- схему лабораторной установки;
- блок-схему алгоритма;
- комментированный листинг программы. Комментарии на
английском языке предпочтительны.

22