Академический Документы
Профессиональный Документы
Культура Документы
Методические указания
к выполнению лабораторной работы № 8
Санкт-Петербург
2005
Составители: кандидат технических наук, доцент С. И. Ковалев,
кандидат технических наук, доцент В. А. Голубков
Подписано к печати 05.05.05. Формат 60×84 1/16. Бумага офсетная. Печать офсетная.
Усл. печ. л. 1,27. Уч. -изд. л. 1,66. Тираж 100 экз. Заказ №
Методические указания
ЖК-дисплеи от 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 Ввод Выбор регистра команд или регистра данных
Интерфейс с микропроцессором
В LCD модуле информация может быть переслана либо в двух 4-битовых
операциях, либо одной 8-битовой.
1. Когда ширина шины составляет 4 бита, информация передается по
старшим линиям шины данных DB4-DB7. Линии DB0-DB3 не используются.
Цикл передачи одного байта между модулем и микропроцессором занимает
3
две последовательные 4-битовые посылки. Старшие биты передаются первыми
(рис. 2).
2. При ширине шины 8 бит, данные передаются одной 8-битовой
посылкой, используя линии DB0-DB7.
RS
R/W
Рис. 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 (ОЗУ знакогенератора)
Программная инициализация
Для программной инициализации используется следующая процедура.
Включение
питания
5
ждать не менее 15 мс
после установления
питания Vdd 4.5 В
далее исполняются те же
инструкции, что и при
инициализации внутренней
схемой сброса
конец инициализации
Инструкции
Только два регистра контроллера HD44780 могут быть непосредственно
доступны для микропроцессора. Это регистр данных (DR) и регистр
инструкций. Операции 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
Система команд
Таблица 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
№ Инструкция Состояние дисплея Комментарий
10
3 Дисплей Включает дисплей и курсор.
включить/выключить Дисплей заполнен символами
0 0 00001110 _ пробела после внутренней
инициализации
7 .…….. .……..
12 ..... .....
11
16 Запись данных в DD RAM Записывает символ "С". Исправле-
СG RAM ICROCO ние. Дисплей сдвигается влево
1 0 01000011
20 ..... .....
12
0 0 00001110 _ Дисплей заполнен символами
пробела после внутренней
инициализации
10 ..... .....
14 ..... .....
13
М I C R O C O М _ (Адрес 0)
Таблица 6
Выбор регистра
RS R./W E Операция
0 0 Запись в IR
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
1 0 0 1 1 1 0
--------4-------- -----------E-----------
1 2 3 4 5 79 80 − расположение знакомест
.00 .01 .02 .03 .04 ... .... .4E 4F
Адреса DD RAM
15
.00 .01 .02 .03 .04 .05 .06 .07
Адреса DD RAM
Таблица 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 .- позиция курсора
16
0000*001 001 011 * * * 10101 "
M
"
001 100 * * * 10001
001 101 * * * 10001
001 110 * * * 10001
001 111 * * * 00000 .- позиция курсора
000 * * *
001 * * *
Примечание:
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» соответствует
«пустому месту».
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
Рис. 5. Подключение жидкокристаллического индикатора (ЖКИ) к PORTB
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