Последовательности действий, которые необходимо
выполнять управляющей системе при совершении операций записи и чтения для 8-ми
и 4-х разрядной шины приведены соответственно в табл 2.4.1...4.
Таблица 2.4.1 Операции записи для 8-ми разрядной шины
1.
Установить
значение линии RS
|
2.
Вывести
значение байта данных на линии шины DB0...DB7
|
3.
Установить
линию Е = 1
|
4.
Установить
линию E = 0
5.
Установить
линии шины DB0...DB7 = HI
|
Таблица 2.4.2 Операции чтения для 8-ми разрядной шины
1.
Установить
значение линии RS
|
2.
Установить
линию R/W = 1
|
3.
Установить
линию Е = 1
|
4.
Считать
значение байта данных с линий шины DB0...DB7
|
5.
Установить
линию Е = 0
|
6.
Установить
линию R/W = 0
|
Таблица 2.4.3 Операция записи для 4-х разрядной шины
1.
Установить
значение линии RS
|
2.
Вывести
значение старшей тетрады байта данных на линии шины DB4...DB7
|
3.
Установить
линию Е = 1
|
4.
Установить
линию Е = 0
|
5.
Вывести
значение младшей тетрады байта данных на линии шины DB4...DB7
|
6.
Установить
линию Е = 1
|
7.
Установить
линию Е = 0
|
8.
Установить
линии шины DB4...DB7 = HI
|
Таблица 2.4.4 Операция чтения для 4-х разрядной шины
1.
Установить
значение линии RS
|
2.
Установить
линию R/W = 1
3.
Установить
линию Е = 1
|
4.
Считать
значение старшей тетрады байта данных с линий шины DB4...DB7
|
5.
Установить
линию Е = 0
|
6.
Установить
линию Е = 1
|
7.
Считать
значение младшей тетрады байта данных с линий шины DB4...DB7
|
8.
Установить
линию Е = 0
|
9.
Установить
линию R/W = 0
|
Рис 2.4.4.
Временная диаграмма операции записи
Рис 2.4.5 Временная диаграмма операции чтения
Приведенные в табл 2.4.1...4 операции подразумевают,
что время выполнения каждого шага составляет не менее 250 нс. Однако это
условие может быть легко нарушено, поэтому необходимо тщательно контролировать
минимальные значения временных интервалов, чтобы они всегда находились в
области допустимых значений, указанных в таблице 2.4.5, 6 и при необходимости
вводить задержки.
Таблица 2.4.5 Значения временных
характеристик. Операция записи
Параметр
|
Обозначение
|
Мин.
|
Макс.
|
Единица
|
Период сигнала
Е
|
tcycE
|
500
|
-
|
нс
|
Положительный
полупериод сигнала Е
|
PWEH
|
230
|
-
|
нс
|
Фронт/спад
сигнала Е
|
tEr, tEf
|
-
|
20
|
нс
|
Установление
адреса
|
tAS
|
40
|
-
|
нс
|
Удержание
адреса
|
tAH
|
10
|
-
|
нс
|
Установление
данных
|
tDSW
|
80
|
-
|
нс
|
Удержание
данных
|
tDSW
|
10
|
-
|
нс
|
Таблица 2.4.6 Значения временных
характеристик. Операция чтения
Параметр
|
Обозначение
|
Мин.
|
Макс.
|
Единица
|
Период сигнала
Е
|
tcycE
|
500
|
-
|
нс
|
Положительный
полупериод сигнала Е
|
PWEH
|
230
|
-
|
нс
|
Фронт/спад
сигнала Е
|
tEr, tEf
|
-
|
20
|
нс
|
Установление
адреса
|
tAS
|
40
|
-
|
нс
|
Удержание
адреса
|
tAH
|
10
|
-
|
нс
|
Установление
данных
|
tDSW
|
-
|
160
|
нс
|
Удержание
данных
|
tDSW
|
5
|
-
|
нс
|
Описанные выше операции записи/чтения байта являются
базовыми для осуществления обмена с ЖКИ-модулем. Реализация этих двух операций
- единственное, что отличает процесс обмена по 8-ми разрядной шине от обмена по
4-х разрядной шине. На основе этих двух операций, реализованных программно
(когда модуль подключен к портам Ввода/Вывода какого нибудь устройства), или аппаратно
(когда модуль подключен к системной шине), строятся все виды операций
программирования и управления.
Управление контроллером ведется посредством интерфейса
управляющей системы. Основными объектами взаимодействия являются регистры DR и
IR. Выбор адресуемого регистра производится линией RS, если RS = 0 - адресуется
регистр команд (IR), если RS = 1 - регистр данных (DR).
Данные через регистр DR, в зависимости от текущего
режима, могут помещаться (или прочитываться) в видеопамять (DDRAM) или в ОЗУ
знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (АС).
Информация, попадающая в регистр IR, интерпретируется устройством выполнения
команд как управляющая последовательность. Прочтение регистра IR возвращает в
7-ми младших разрядах текущее значение счетчика АС, а в старшем разряде флаг
занятости (BF).
У контроллера HD44780 существует набор внутренних
флагов, определяющих режимы работы различных элементов контроллера (таблица 2.4.7).
В таблице 2.4.8 приведены значения управляющих флагов непосредственно после
подачи на ЖКИ-модуль напряжения питания. Переопределение значений флагов
производится специальными командами, записываемыми в регистр IR, при этом
комбинации старших битов определяют группу флагов или команду, а младшие
содержат собственно флаги.
Таблица 2.4.7 Флаги, управляющие работой контроллера
HD44780
/D:
|
режим смещения
счетчика адреса АС, 0 - уменьшение, 1 - увеличение.
|
S:
|
флаг режима
сдвига содержимого экрана. 0 - сдвиг экрана не производится, 1 - после записи
в DDRAM очередного кода экран сдвигается в направлении, определяемым флагом
I/D: 0 - вправо, 1 - влево. При сдвиге не производится изменение содержимого
DDRAM. изменяются только внутренние указатели расположения видимого начала
строки в DDRAM.
|
S/C:
|
флаг-команда,
производящая вместе с флагом R/L операцию сдвига содержимого экрана (так же,
как и в предыдущем случае, без изменений в DDRAM) или курсора. Определяет
объект смещения: 0 - сдвигается курсор, 1 - сдвигается экран.
|
R/L:
|
флаг-команда,
производящая вместе с флагом S/C операцию сдвига экрана или курсора. Уточняет
направление сдвига: 0 - влево, 1 - вправо.
|
D/L:
|
флаг,
определяющий ширину шины данных: 0 - 4 разряда, 1 - 8 разрядов.
|
N:
|
режим развертки
изображения на ЖКИ: 0 - одна строка, 1 - две строки
|
F:
|
размер матрицы
символов: 0 - 5 х 8 точек, 1 - 5 х 10 точек.
|
D:
|
наличие
изображения: 0 - выключено, 1 - включено
|
С:
|
курсор в виде
подчерка: 0 - выключен, 1 - включен
|
В:
|
курсор в виде
мерцающего знакоместа: 0 - выключен, 1 - включен.
|
Таблица 2.4.8 Значения управляющих флагов после подачи
питания
I/D = 1:
|
режим
увеличения счетчика на 1
|
S = 0:
|
без сдвига
изображения
|
D/L = 1:
|
8-ми разрядная
шина данных
|
N = 0:
|
режим развертки
одной строки
|
F = 0:
|
символы с
матрицей 5 х 8 точек
|
D = 0:
|
отображение
выключено
|
С = 0:
|
курсор в виде
подчерка выключен
|
В = 0:
|
курсор в виде
мерцающего знакоместа выключен
|
Список управляющих комбинаций битов регистра IR и
выполняемые ими команды приведены в таблице 2.4.9. Так как на момент включения
ЖКИ-модуль ничего не отображает (флаг D = 0), то для того, чтобы вывести
какой-либо текст необходимо, как минимум, включить отображение, установив флаг
D = 1. Вот пример широко распространенной последовательности для инициализации
ЖКИ-модуля: , $OC, 6 (знак "$" перед числом указывает на
шестнадцатеричное основание) устанавливает режим отображения 2-х строк с
матрицей 5 х 8 точек и работу с 8-ми разрядной шиной данных; $OC включает
отображение на экране ЖКИ-модуля, без отображения курсоров; 6 устанавливает
режим автоматического перемещения курсора слева-направо после вывода каждого
символа.
Таблица 2.4.9. Управляющие комбинации битов регистра IR
D1
|
D2
|
D3
|
D4
|
D5
|
D6
|
D7
|
D8
|
Назначение
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Очистка экрана, АС = 0, адресация
АС на DDRAM
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
-
|
АС = 0, адресация на DDRAM,
сброшены сдвиги, начало строки адресуется в начале DDRAM
|
0
|
0
|
0
|
0
|
0
|
1
|
I/D
|
S
|
Выбирается направление сдвига
курсора или экрана
|
0
|
0
|
0
|
0
|
1
|
D
|
C
|
B
|
Выбирается режим отображения
|
0
|
0
|
0
|
1
|
S/C
|
R/L
|
-
|
-
|
Команда сдвига курсора/экрана
|
0
|
0
|
1
|
DL
|
N
|
F
|
-
|
-
|
Определение параметров развертки и
ширины шины данных
|
0
|
1
|
AG
|
AG
|
AG
|
AG
|
AG
|
AG
|
Присвоение счетчику АС адреса в
области CGRAM
|
1
|
AG
|
AG
|
AG
|
AG
|
AG
|
AG
|
AG
|
Присвоение счетчику АС адреса в
области DDRAM
|
|
|
|
|
|
|
|
|
|
|
Контроллер HD44780 поддерживает как операции записи,
так и операции чтения. Чтение регистра DR приводит к загрузке содержимого DDRAM
или CGRAM, в зависимости от текущего режима, при этом курсор смещается на одну
позицию, как и при записи. Чтение регистра IR возвращает 8 значащих разрядов,
причем в 7-ми младших содержится текущее значение счетчика АС (7 разрядов, если
адресуется DDRAM, и 6 - если CGRAM), а в старшем - флаг занятости BF. Этот флаг
имеет значение 1 когда контроллер занят и 0 - когда свободен. Необходимо
учитывать, что большинство операций, выполняемых контроллером, занимают
значительное время, около 40 мкс, а время выполнения некоторых доходит до
единиц миллисекунд, поэтому цикл ожидания снятия флага BF должен обязательно
присутствовать в программах драйвера ЖКИ-модуля и предшествовать совершению
любой операции (естественно, кроме операции проверки флага BF).
Страницы: 1, 2, 3, 4, 5
|