- •1. Структура и функционирование микроконтроллера mc68hc908gp32
- •1.1. Общая структура микроконтроллера mc68hc908gp32.
- •1.2. Организация и адресация памяти.
- •1.3. Генерация тактовых импульсов и запуск микроконтроллера.
- •1.4. Реализация прерываний.
- •1.5. Режимы функционирования.
- •2. Лабораторный стенд лс-1
- •2.1. Общее описание лабораторного стенда лс-1.
- •2.2. Основные функциональные узлы лабораторного стенда лс-1.
- •2.3. Включение лабораторного макета и подготовка его к работе.
- •3. Интегрированная среда программирования ics08gpgtz
- •3.1. Интегрированная среда WinIde.
- •3.2. Создание исходного текста и компиляция программы.
- •3.3. Моделирование выполнения программы.
- •3.4. Загрузка программы в память микроконтроллера.
- •3.5. Запуск и отладка программы на лабораторном макете.
- •Работа №1. Микроконтроллер mc68hc908gp32: регистровая структура, способы адресации, команды пересылки
- •Введение
- •Выполнение работы
- •Работа № 2. Микроконтроллер mc68hc908gp32: команды обработки данных
- •Введение
- •Выполнение работы
- •Работа № 3. Микроконтроллер mc68hc908gp32: команды управления программой и процессором.
- •Введение
- •Выполнение работы
- •Работа № 4. Микроконтроллер mc68hc908gp32: программирование на языке Ассемблера
- •Выполнение работы
- •Работа №5. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация параллельного ввода-вывода данных.
- •Введение
- •Порядок выполнения работы
- •Работа №6. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация последовательного обмена данными.
- •Введение
- •Порядок выполнения работы
- •Работа №7. Цифровая система на базе микроконтроллера mc68hc908gp32: ввод и обработка аналогового сигнала.
- •Введение
- •Порядок выполнения работы
- •Работа №8. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация таймерных функций.
- •Введение
- •Порядок выполнения работы
- •Приложение 1. Описание жидкокристаллического индикатора
- •Приложение 2.
- •Приложение 3.
Порядок выполнения работы
1. Ознакомиться с функционированием таймерного модуля TIM08, входящего в состав микроконтроллера MC68HC908GP32.
2. Написать подпрограмму управления миганием светодиодного индикатора с частотой 1Гц по прерыванию от таймерного модуля TIM2. Проверить правильность работы программы с помощью симулятора, а затем в реальных условиях.
3. Настроить таймерный канал T1CH0 на работу в режиме совпадения. Написать программу периодической (N раз в минуту) выдачи короткого звукового сигнала с помощью пъезодинамика. Проверить правильность работы программы с помощью симулятора, а затем на лабораторном макете.
4. Написать программу, обеспечивающую реализацию функций электронных часов с индикацией времени на ЖКИ. Проверить правильность работы программы с помощью симулятора, а затем на лабораторном макете.
Приложение 1. Описание жидкокристаллического индикатора
В качестве устройства отображения информации в лабораторном стенде ЛС-1 используется двухстрочный 16-символьный жидкокристаллический дисплей (ЖКД) фирмы Powertip типа PC1602-AR-FEH-A. На плате ЖКД смонтирован специализированный контроллер HD44780 фирмы Hitachi, который обеспечивает выдачу необходимых управляющих сигналов и генерацию на дисплее заданного набора символов. Сборка, состоящая из ЖКД и контроллера, называется ЖКИ-модулем.
Назначение выводов ЖКИ-модуля описано в Табл.1.
Табл.1. Описание выводов ЖКИ-модуля.
Сигнал |
К-во линий |
I/O |
Функция |
RS |
1 |
I |
Выбор регистра. 0: Регистр команд (для записи); признак занятости, регистр адреса (для чтения) 1: Регистр данных (для записи и чтения) |
R/ |
1 |
I |
Выбор чтения или записи. 0: Запись 1: Чтение |
E |
1 |
I |
Начало записи-чтения данных. |
DB0-DB7 |
8 |
I/O |
Восемь двунаправленных выводов шины данных с тремя состояниями. Используются для передачи и приема данных между микроконтроллером и ЖКД. DB7 может также использоваться как признак занятости. |
ЖКИ имеет два 8-битных регистра: регистр команд (IR) и регистр данных (DR).
IR хранит коды команд, таких как очистка дисплея, сдвиг курсора, и адресную информацию для ОЗУ отображаемых данных (DDRAM) и ОЗУ знакогенератора (CGRAM). IR может быть записан только из микроконтроллера.
DR временно хранит данные для записи в DDRAM или CGRAM и временно хранит данные для чтения из DDRAM или CGRAM. Данные, записанные в DR из микроконтроллера, автоматически записываются в DDRAM или CGRAM внутренней операцией. DR также используется для хранения данных при чтении данных из DDRAM или CGRAM. Когда адресная информация записывается в IR, данные считываются и затем записываются в DR из DDRAM или CGRAM внутренней операцией. Передача данных между микроконтроллером и ЖКИ завершается тогда, когда микроконтроллер считывает DR. После считывания данные в DDRAM или CGRAM по следующему адресу посылаются в DR для следующего считывания из микроконтроллера. Эти два регистра можно выбрать с помощью сигнала выбора регистра (RS) (Табл.2).
Признак занятости. Когда признак занятости равен 1, ЖКИ находится в режиме внутренней работы, и следующая команда приниматься не будет. Когда RS=0 и R/ =1 (Табл.2), признак занятости передается в DB7. Следующая команда должна быть записана после того, как признак занятости обратится в 0.
Счетчик адреса (АС). Счетчик адреса (АС) назначает адреса как DDRAM, так и CGRAM. Когда адрес команды записан в IR, адресная информация посылается из IR в АС. Также выбор DDRAM либо CGRAM параллельно определяется командой.
После записи в (чтения из) DDRAM или CGRAM АС автоматически увеличивается на 1 (уменьшается на 1). Затем содержимое АС передается в DB0-DB6, когда RS=0 и R/ =1 (Табл.2).
Табл.2. Выбор регистра
RS |
R/ |
Операция |
0 |
0 |
Запись IR как внутренняя операция (очистка дисплея и т. д.) |
0 |
1 |
Чтение признака занятости (DB7) и счетчика адреса (DB0-DB6) |
1 |
0 |
Запись DR как внутренняя операция (DR в DDRAM или CGRAM) |
1 |
1 |
Чтение DR как внутренняя операция (DDRAM или CGRAM в DR) |
ОЗУ отображаемых данных (DDRAM) хранит отображаемые данные, представленные 8-битным кодом символа. Его расширенная емкость 80×8 бит, или 80 символов. Область в ОЗУ отображаемых данных (DDRAM), не используемую для отображения, можно использовать как ОЗУ общих данных. Соотношения между адресами DDRAM и позициями на ЖКИ показаны на Рис.2.
Адрес DDRAM (АDD) устанавливается в счетчике адреса (АС) в шестнадцатеричном виде.
|
Биты высокого |
Биты низкого |
|||||
|
порядка |
порядка |
|||||
АС (шестнадцатеричный) |
AC6 |
AC5 |
AC4 |
AC3 |
AC2 |
AC1 |
AC0 |
|
Пример: адрес DDRAM 4Е |
||||||
|
1 |
0 |
0 |
1 |
1 |
1 |
0 |
Рис.2. Адрес DDRAM.
2-строчный дисплей (N=1) (Рис.3)
Случай 1: Когда число символов дисплея меньше чем 40×2 строки, эти две строки выводятся от начала. Следует отметить, что адрес конца первой строки и адрес начала второй строки не последовательны.
Случай 2: Для дисплея 16 символов × 2 строки HD44780 можно расширить с помощью одного 40-выходного драйвера расширения. См. Рис.4.
При выполнении операция сдвига дисплея адрес DDRAM сдвигается. См. Рис.4.
Позиция дисплея |
1 |
2 |
3 |
4 |
5 |
|
39 |
40 |
Адрес DDRAM |
00 |
01 |
02 |
03 |
04 |
…………… |
26 |
27 |
(шестнадцатеричный) |
40 |
41 |
42 |
43 |
44 |
…………… |
66 |
67 |
Рис.3. 2-строчный дисплей.
Позиция дисплея |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
||
Адрес |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
|||
DDRAM |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4A |
4B |
4C |
4D |
4E |
4F |
|||
|
Дисплей HD44780U |
Дисплей драйвера расширения
|
|||||||||||||||||
Для сдвига |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
10 |
|||
влево |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4A |
4B |
4C |
4D |
4E |
4F |
50 |
|||
|
|||||||||||||||||||
Для сдвига |
27 |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
|||
вправо |
67 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4A |
4B |
4C |
4D |
4E |
|||
Рис.4. Пример дисплея 2 строки × 16 символов.
ПЗУ знакогенератора (CGROM) генерирует шаблоны символов 5×8 точек или 5×10 точек из 8-битных кодов символов (Табл.3). Оно может генерировать 208 шаблонов символов 5×8 точек и 32 шаблона символов 5×10 точек. В репрограммируемом ПЗУ имеются также определяемые пользователем шаблоны символов.
ОЗУ знакогенератора (CGRAM). В ОЗУ знакогенератора пользователь может программно перезаписать шаблоны символов. Для 5×8 точек можно записать восемь шаблонов символов, а для 5×10 точек можно записать четыре шаблона символов.
Для вывода шаблонов символов, хранящихся в CGRAM, необходимо записать в DDRAM коды символов по адресам, указанным в левой колонке Табл.3.
Соотношение между данными и адресами CGRAM и шаблонами символов показаны в Табл. 5.
Области, не используемые для вывода, можно использовать как общие данные CGRAM.
Отправление последовательных данных всегда начинается с шаблона символа отображаемых данных, соответствующего последнему адресу ОЗУ отображаемых данных (DDRAM).
Так как последовательные данные отправляются, когда шаблон символа отображаемых данных, соответствующий начальному адресу, вводится во внутренний сдвиговый регистр, ЖКИ запускается с начальной позиции.
Схема управления Курсор/Мигание генерирует курсор или мигание символа. Курсор или мигание появятся с разрядом, размещенным по адресу ОЗУ отображаемых данных (DDRAM), установленному в счетчике адреса (АС).
Например (Рис. 5), когда счетчик адреса содержит 08Н, позиция курсора выводится по адресу DDRAM 08Н.
Подключение к микроконтроллеру. ЖКИ может посылать данные одной 8-битной операцией, таким образом, предоставляя возможность подключения к 8-битному микроконтроллеру или в 4-битном режиме. При 8-битном интерфейсе данных используются все восемь линий шины (DB0 – DB7).
Табл.3.Соответствие между кодами символов и шаблонами символов (код А00).
Младшие 4 бита |
Старшие 4 бита |
|||||||||||||||
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
|
хххх0000 |
CGRAM(1) |
|
|
0 |
@ |
P |
\ |
p |
|
|
|
– |
|
≡. |
α |
p |
хххх0001 |
(2) |
|
! |
1 |
A |
Q |
a |
q |
|
|
□ |
|
|
|
ä |
q |
хххх0010 |
(3) |
|
|
2 |
B |
R |
b |
r |
|
|
|
|
|
|
β |
θ |
хххх0011 |
(4) |
|
# |
3 |
C |
S |
c |
s |
|
|
|
|
|
|
ε |
∞ |
хххх0100 |
(5) |
|
$ |
4 |
D |
T |
d |
t |
|
|
\ |
|
|
|
μ |
Ω |
хххх0101 |
(6) |
|
% |
5 |
E |
U |
e |
u |
|
|
· |
|
|
|
σ |
ü |
хххх0110 |
(7) |
|
& |
6 |
F |
V |
f |
v |
|
|
|
|
|
|
ρ |
Σ |
хххх0111 |
(8) |
|
‘ |
7 |
G |
W |
g |
w |
|
|
|
|
|
|
g |
π |
хххх1000 |
(1) |
|
( |
8 |
H |
X |
h |
x |
|
|
|
|
|
|
√ |
|
хххх1001 |
(2) |
|
) |
9 |
I |
Y |
i |
y |
|
|
|
|
|
|
-¹ |
У |
хххх1010 |
(3) |
|
* |
: |
J |
Z |
j |
z |
|
|
|
|
|
|
j |
|
хххх1011 |
(4) |
|
+ |
; |
K |
[ |
k |
{ |
|
|
|
|
|
|
x |
|
хххх1100 |
(5) |
|
, |
< |
L |
¥ |
l |
| |
|
|
|
|
|
|
¢ |
|
хххх1101 |
(6) |
|
– |
= |
M |
] |
m |
} |
|
|
|
|
|
|
£ |
÷ |
хххх1110 |
(7) |
|
. |
> |
N |
^ |
n |
|
|
|
|
|
|
|
ñ |
|
хххх1111 |
(8) |
|
/ |
? |
O |
_ |
o |
|
|
|
|
|
|
□ |
ö |
█ |
Примечание: Пользователь может задать любой образец для ОЗУ знакогенератора.
Табл.4.Соответствие между кодами символов и шаблонами символов (код А02).
Младшие 4 бита |
Старшие 4 бита |
|||||||||||||||
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
|
Хххх0000 |
CG RAM (1) |
► |
|
0 |
@ |
P |
\ |
p |
Б |
α |
║ |
|
À |
Ð |
à |
ð |
Хххх0001 |
(2) |
◄ |
! |
1 |
A |
Q |
a |
q |
Д |
♪ |
¡ |
± |
Á |
Ñ |
á |
ñ |
Хххх0010 |
(3) |
“ |
|
2 |
B |
R |
b |
r |
Ж |
Г |
¢ |
² |
 |
Ò |
â |
ò |
Хххх0011 |
(4) |
” |
# |
3 |
C |
S |
c |
s |
З |
π |
£ |
³ |
à |
Ó |
ã |
ó |
Хххх0100 |
(5) |
|
$ |
4 |
D |
T |
d |
t |
И |
Σ |
¤ |
Pt |
Ä |
Ô |
ä |
ô |
хххх0101 |
(6) |
|
% |
5 |
E |
U |
e |
u |
Й |
σ |
¥ |
Μ |
Å |
Õ |
å |
õ |
хххх0110 |
(7) |
|
& |
6 |
F |
V |
f |
v |
Л |
♫ |
¦ |
¶ |
Æ |
Ö |
æ |
ö |
хххх0111 |
(8) |
|
‘ |
7 |
G |
W |
g |
w |
П |
τ |
§ |
· |
Ç |
× |
ç |
÷ |
хххх1000 |
(1) |
|
( |
8 |
H |
X |
h |
x |
У |
|
ƒ |
Ω |
È |
Ф |
è |
ø |
хххх1001 |
(2) |
|
) |
9 |
I |
Y |
i |
y |
Ц |
θ |
|
¹ |
É |
Ù |
é |
ù |
хххх1010 |
(3) |
|
* |
: |
J |
Z |
j |
z |
Ч |
Ω |
а |
О |
Ê |
Ú |
ê |
ú |
хххх1011 |
(4) |
|
+ |
; |
K |
[ |
k |
{ |
Ш |
δ |
« |
» |
Ё |
Û |
ё |
û |
хххх1100 |
(5) |
|
, |
< |
L |
¥ |
l |
| |
Щ |
∞ |
Ю |
¼ |
Ì |
Ü |
ì |
ü |
хххх1101 |
(6) |
|
– |
= |
M |
] |
m |
} |
Ъ |
|
Я |
½ |
Í |
Ý |
í |
ý |
хххх1110 |
(7) |
▲ |
. |
> |
N |
^ |
n |
~ |
Ы |
ε |
|
¾ |
Î |
Þ |
î |
þ |
Хххх1111 |
(8) |
▼ |
/ |
? |
O |
_ |
o |
⌂ |
Э |
∩ |
` |
¿ |
Ï |
ß |
ï |
ÿ |
Примечание: Пользователь может задать любой образец для ОЗУ знакогенератора.
Табл. 5. Соотношение между адресами CGRAM, кодами символов (DDRAM) и шаблонами символов (данными CGRAM) 5×8 точек.
Коды символов (данные DDRAM) |
Адрес CGRAM |
Шаблоны символов (данные CGRAM) |
|||||||||||||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Младшие |
Старшие |
Младшие |
Старшие |
Младшие |
||||||||||||||||
0 |
0 |
0 |
0 |
* |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
* |
* |
* |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
|
1 |
0 |
0 |
0 |
1 |
|||||||||||||
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
||||||||||||||
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
||||||||||||||
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
||||||||||||||
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
||||||||||||||
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
||||||||||||||
1 |
1 |
1 |
* |
* |
* |
0 |
0 |
0 |
0 |
0 |
|||||||||||
0 |
0 |
0 |
0 |
* |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
* |
* |
* |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
0 |
1 |
0 |
1 |
0 |
|||||||||||||
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
||||||||||||||
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
||||||||||||||
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
||||||||||||||
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
||||||||||||||
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
||||||||||||||
1 |
1 |
1 |
* |
* |
* |
0 |
0 |
0 |
0 |
0 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
* |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
* |
* |
* |
|
|
|
|
|
Примечания:
Биты 0 – 2 кода символа соответствуют битам 3 – 5 адреса CGRAM (3 бита: 8 типов).
Биты 0 – 2 адреса CGRAM означают позицию линии шаблона символа. 8-я линия является позицией курсора, и её вывод формируется логическим ИЛИ с курсором.
При выводе курсора данные 8-й линии, соответствующие позиции вывода курсора, следует сохранять в 0.
Если данные 8-й линии равны 1, биты «1» будут высвечиваться на 8-й линии независимо от наличия курсора.
Позиции линий шаблона символа соответствуют битам 0 – 4 данных CGRAM (бит 4 слева).
Как показывает Табл. 5, шаблоны символов CGRAM выбираются, когда биты 4 – 7 кода символа равны 0.
Однако, поскольку бит 3 кода символа не имеет эффекта, вышеприведённый пример вывода R может быть выбран либо кодом символа 00Н, либо 08Н.
1 для данных CGRAM соответствует выводимым участкам, а 0 — невыводимым.
* означает отсутствие эффекта.
Табл. 6. Соотношение между адресами CGRAM, кодами символов (DDRAM) и шаблонами символов (данными CGRAM) 5×10 точек.
Коды символов (данные DDRAM) |
Адрес CGRAM |
Шаблоны символов (данные CGRAM) |
|||||||||||||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Младшие |
Старшие |
Младшие |
Старшие |
Младшие |
||||||||||||||||
0 |
0 |
0 |
0 |
* |
0 |
0 |
* |
0 |
0 |
0 |
0 |
0 |
0 |
* |
* |
* |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
||||||||||||
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
|||||||||||||
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
|||||||||||||
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|||||||||||||
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
|||||||||||||
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
|||||||||||||
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
|||||||||||||
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|||||||||||||
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|||||||||||||
1 |
0 |
1 |
0 |
* |
* |
* |
0 |
0 |
0 |
0 |
0 |
||||||||||
|
|
1 |
0 |
1 |
1 |
* |
* |
* |
1 |
0 |
0 |
0 |
1 |
||||||||
1 |
1 |
0 |
0 |
|
|
||||||||||||||||
1 |
1 |
0 |
1 |
||||||||||||||||||
1 |
1 |
1 |
0 |
||||||||||||||||||
1 |
1 |
1 |
1 |
* |
* |
* |
1 |
1 |
1 |
1 |
1 |
||||||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
* |
1 |
1 |
* |
1 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
* |
* |
* |
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
* |
* |
* |
1 |
0 |
0 |
0 |
1 |
||||||||
1 |
1 |
0 |
0 |
|
|
||||||||||||||||
1 |
1 |
0 |
1 |
||||||||||||||||||
1 |
1 |
1 |
0 |
||||||||||||||||||
1 |
1 |
1 |
1 |
* |
* |
* |
1 |
1 |
1 |
1 |
1 |
||||||||||
Примечания:
Биты 1 и 2 кода символа соответствуют битам 4 и 5 адреса CGRAM (2 бита: 4 типа).
Биты 0 – 3 адреса CGRAM означают позицию линии шаблона символа. 11-я линия является позицией курсора, и её вывод формируется логическим ИЛИ с курсором.
При выводе курсора данные 11-й линии, соответствующие позиции вывода курсора, следует сохранять в 0.
Если данные 11-й линии равны 1, биты «1» будут высвечиваться на 11-й линии независимо от наличия курсора.
Так как линии 12 – 16 для вывода не используются, их можно использовать для ОЗУ общих данных.
Позиции линий шаблона символа те же, что и для шаблонов символов 5×8 точек.
Как показывает Табл. 6, шаблоны символов CGRAM выбираются, когда биты 4 – 7 кода символа равны 0. Однако, поскольку биты 0 и 3 кода символа не имеет эффекта, вышеприведённый пример вывода Р может быть выбран кодами символов 00Н, 01Н, 08Н и 09Н.
1 для данных CGRAM соответствует выводимым участкам, а 0 — невыводимым.
* означает отсутствие эффекта.
|
АС6 |
АС5 |
АС4 |
АС3 |
АС2 |
АС1 |
АС0 |
|
|
|
|
|
|
АС |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Позиция дисплея |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0А |
|
|
(шестнадцатеричный) |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4А |
|
|
|
позиция курсора |
||||||||||||
Рис. 5. Пример отображения курсора/мигания.
Функция сброса. Внутренняя схема сброса автоматически инициализирует ЖКИ при включении питания. В течение инициализации выполняются следующие команды. Признак занятости (BF) находится в состоянии занятости до окончания инициализации (BF=1). Состояние занятости длится 10 мс после того, как VCC достигнет 4,5 В.
Очистка дисплея
Установка функций:
DL=1; 8-битный интерфейс данных
N=0; 1-строчный дисплей
F=0; шрифт символов 5×8 точек
Управление вкл./выкл. дисплей:
D=0; Дисплей выключен
С=0; Курсор выключен
В=0; Мигание выключено
Установка режима ввода:
I/D=1; Увеличение на 1
S=0; Без сдвига
Примечание: Если условия электрических характеристик не удовлетворены, внутренняя схема сброса не будет работать нормально и не сможет инициализировать ЖКИ. В этом случае инициализация должна быть выполнена микроконтроллером.
Команды. Только регистр команд
(IR) и регистр данных (DR) ЖКИ могут
контролироваться микроконтроллером.
Перед началом внутренней работы ЖКИ
управляющая информация временно
сохраняется в эти регистры, чтобы
предоставить возможность подключения
к микроконтроллеру. Внутренняя работа
ЖКИ определяется сигналами, посланными
от микроконтроллера. Эти сигналы, включая
сигнал выбора регистра (RS), сигнал
записи/чтения (R/
)
и шину данных (DB0 – DB7) образуют команды
ЖКИ (Табл. 7). Существует четыре категории
команд, которые:
Задают функции ЖКИ, такие как формат дисплея, длина данных и т. д.
Устанавливают адреса внутреннего ОЗУ
Выполняют передачу данных с внутреннего ОЗУ
Выполняют различные функции
Табл. 7. Команды.
Команда |
Код |
Описание |
Время выполнения (макс.) (при fCP или fOSC=270 кГц |
|||||||||
RS |
R/ |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
|||
Очистка дисплея |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Очищает весь дисплей и устанавливает адрес DDRAM 0 в счетчик адреса |
|
В начало |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
– |
Устанавливает адрес DDRAM 0 в счетчик адреса. Также возвращает дисплей после сдвига в первоначальную позицию. Содержимое DDRAM остается неизменным. |
1,52 мс |
Установка режима ввода |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
S |
Задает направление перемещения курсора и определяет сдвиг дисплея. Эти операции выполняются при записи и чтении данных. |
37 мкс |
Управление вкл./выкл. дисплей |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
Устанавливает весь дисплей (D) вкл./выкл., курсор вкл./выкл. (С) и мигание символа позиции курсора (В) |
37 мкс |
Сдвиг курсора или дисплея |
0 |
0 |
0 |
0 |
0 |
1 |
S/C |
R/L |
– |
– |
Перемещает курсор и сдвигает дисплей, не изменяя содержимого DDRAM |
37 мкс |
Установка функций |
0 |
0 |
0 |
0 |
1 |
DL |
N |
F |
– |
– |
Задает длину данных (DL), число строк дисплея (N) и шрифт символов (F) |
37 мкс |
Установка адреса CGRAM |
0 |
0 |
0 |
1 |
ACG |
ACG |
ACG |
ACG |
ACG |
ACG |
Устанавливает адрес CGRAM. После этой установки отправляются и принимаются данные CGRAM. |
37 мкс |
Установка адреса DDRAM |
0 |
0 |
1 |
ADD |
ADD |
ADD |
ADD |
ADD |
ADD |
ADD |
Устанавливает адрес DDRAM. После этой установки отправляются и принимаются данные DDRAM. |
37 мкс |
Чтение признака занятости и адреса |
0 |
1 |
BF |
AC |
AC |
AC |
AC |
AC |
AC |
AC |
Считывает признак занятости (BF), указывающий на выполнение внутренней операции, и считывает содержимое счетчика адреса. |
0 мкс |
Запись данных в CG или DDRAM |
1 |
0 |
Запись данных |
Записывает данные в DDRAM или CGRAM. |
37 мкс tADD=4 мкс* |
|||||||
Чтение данных из CG или DDRAM |
1 |
1 |
Чтение данных |
Считывает данные из DDRAM или CGRAM. |
37 мкс tADD=4 мкс* |
|||||||
|
I/D I/D S S/C S/C R/L R/L DL N F BF BF |
=1: =0: =1: =1: =0: =1: =0: =1: =1: =1: =1: =0: |
Инкремент Декремент Сопровождает сдвиг дисплея Сдвиг дисплея Перемещение курсора Сдвиг вправо Сдвиг влево 8 бит, DL=0: 4 бит 2 строки, N=0: 1 строка 5×10 точек, F=0: 5×8 точек Внутренняя операция Команды приемлемы |
DDRAM: ОЗУ данных дисплея CGRAM: ОЗУ генератора символов ACG: адрес CGRAM ADD: адрес DDRAM (соответствует адресу курсора) АС: счетчик адреса, используемый для адресов как DD, так и CGRAM |
Время выполнения изменяется при изменении частоты Пример: При fCP или fOSC=250 кГц 37
мкс× |
|||||||
Примечание: – означает отсутствие эффекта.
* После выполнения команды записи или чтения данных CGRAM/DDRAM счетчик адреса ОЗУ увеличивается или уменьшается на 1. Счетчик адреса ОЗУ обновляется после выключения признака занятости. На Рис. 6 tADD — это время от момента выключения признака занятости до обновления счетчика адреса.
Как правило, чаще всего используются команды, выполняющие передачу данных с внутреннего ОЗУ. Однако, автоматическое увеличение на 1 (или автоматическое уменьшение на 1) адресов внутреннего ОЗУ ЖКИ после каждой записи данных может облегчить загрузку программы микроконтроллером. Так как команда сдвига дисплея (Табл. 7) может выполняться параллельно с записью отображаемых данных, пользователь может минимизировать время развития системы с максимумом производительности программы.
Сигнал занятости (вывод DB7) |
Состояние Занятости |
Счетчик адреса
(выводы А А+1
DB0 – DB6)
tADD
Примечание: tADD зависит от рабочей частоты, tADD = 1,5/(fCP или fOSC) секунд.
Рис. 6. Обновление счетчика адреса.
Когда выполняется команда для внутренней операции, не может быть выполнена никакая команда, кроме команды чтения из микроконтроллера признака занятости / адреса.
Так как признак занятости устанавливается в 1 во время выполнения команды, перед отправкой другой команды из микроконтроллера следует убедиться, что он установлен в 0.
Примечание: Следует убедиться, что ЖКИ не находится в состоянии занятости (BF=0) перед отправкой команды из микроконтроллера в ЖКИ. Если команда отправлена без проверки признака занятости, между первой командой и следующей командой пройдет намного больше времени, чем время самой команды. Время выполнения каждой команды представлено в Табл. 7.
Описание команд.
Очистка дисплея записывает код пробела 20Н (шаблон символа для кода символа 20Н должен быть пустым) во все адреса DDRAM. Затем в адресный счетчик устанавливается адрес DDRAM 0, и дисплей возвращается с свое первоначальное состояние, если он был сдвинут. Другими словами, дисплей исчезает, и курсор или мигание перемещается к левому краю дисплея (в первую строку, если выводятся 2 строки). Также устанавливается I/D в 1 (режим инкремента) в режиме ввода. S режима ввода не изменяется.
В начало устанавливает адрес DDRAM 0 в адресный счетчик и возвращает дисплей в его первоначальное состояние, если он был сдвинут. Содержимое DDRAM не изменяется.
Курсор или мигание перемещаются к левому краю дисплея (в первую строку, если выводятся 2 строки).
Установка режима ввода
I/D: Увеличивает (I/D=1) или уменьшает (I/D=0) адрес DDRAM на 1, когда код символа записывается в или считывается из DDRAM.
Курсор или мигание перемещается вправо при увеличении на 1 и влево при уменьшении на 1. То же самое происходит при записи или чтении CGRAM.
S: Сдвигает весь дисплей либо вправо (I/D=0), либо влево (I/D=1), когда S равно 1. Дисплей не сдвигается, если S=0.
Если S=1, будет казаться, что курсор не перемещается, а дисплей перемещается. Дисплей не сдвигается при считывании из DDRAM. Запись в или считывание из CGRAM также не сдвигают дисплей.
Управление вкл./выкл. дисплей
D: Дисплей включен, когда D равно 1, и выключен, когда D равно 0. При выключенном дисплее отображаемые данные остаются в DDRAM, но могут быть выведены установкой D в 1.
С: Курсор выводится, когда С равно 1, и не выводится, когда С равно 0. Даже если курсор исчезает, функция I/D или другие настройки не изменятся в течение записи отображаемых данных. Курсор выводится с помощью 5 точек в 8-й линии при выборе шрифта символов 5×8 точек и в 11-й линии при выборе шрифта символов 5×10 точек (Рис. 7).
В: Символ, на который указывает курсор, мигает при В=1 (Рис. 7). Мигание выводится как переключение между всеми пустыми точками и выведенным символом со скоростью 409,6 мс интервалами, когда fCP или fOSC равно 250 кГц. Курсор и мигание могут выводиться одновременно. (Частота мигания изменяется в зависимости от fOSC или остатка fCP. Например, когда fCP равно 270 кГц, 409,6×250/270=379,2 мс.)
Сдвиг курсора или дисплея сдвигает позицию курсора или дисплей вправо или влево без записи или чтения отображаемых данных (Табл. 8). Эта функция используется для исправления или поиска по дисплею. В 2-строчном дисплее курсор перемещается на вторую строку, когда он пройдет 40-й разряд первой строки. Следует отметить, что первая и вторая строка дисплея сдвигаются одновременно.
Когда выведенные данные сдвигаются многократно, каждая строка перемещается только горизонтально. Вторая строка не сдвигается на позицию первой.
Содержимое счетчика адреса (АС) не изменится, если единственным выполняемым действием является сдвиг дисплея.
Установка функций
DL: Задает длину данных. Данные отправляются или принимаются длиной 8 бит (DB7 – DB0), когда DL равно 1, и длиной 4 бит (DB7 – DB4), когда DL равно 0. Когда выбрана длина 4 бит, данные должны отправляться или приниматься дважды.
N: Задает число строк дисплея.
F: Устанавливает шрифт символов.
Примечание: Эту функцию следует выполнять в начале программы до выполнения каких-либо команд (кроме команды чтения признака занятости и адреса). Отсюда, команда установки функций не может выполняться, если не изменена длина данных.
Установка адреса CGRAM устанавливает двоичный адрес CGRAM АААААА в счетчик адреса.
Затем данные записываются в или считываются из микроконтроллера для CGRAM.
Установка адреса DDRAM устанавливает двоичный адрес DDRAM ААААААА в счетчик адреса.
Затем данные записываются в или считываются из микроконтроллера для DDRAM.
Когда N равно 1 (2-строчный дисплей), ААААААА может принимать значения от 00Н до 27Н для первой строки и от 40Н до 67Н для второй строки.
Чтение признака занятости и адреса считывает признак занятости (BF), показывающий, что система в данный момент совершает внутреннюю операцию по предварительно полученной команде. Если BF равен 1, совершается внутренняя операция. Следующая команда не будет приниматься до тех пор, пока BF не сбросится в 0. Состояние BF следует проверять перед следующей операцией записи. В то же время считывается двоичное значение счетчика адреса ААААААА. Этот счетчик адреса используется как адресами CGRAM, так и адресами DDRAM, и его значение определяется предыдущей командой. Содержимое адреса то же, что и для команд установки адреса CGRAM и установки адреса DDRAM.
Табл. 8. Функция сдвига.
S/C |
R/L |
|
0 |
0 |
Сдвигает позицию курсора влево. (АС уменьшается на 1.) |
0 |
1 |
Сдвигает позицию курсора вправо. (АС увеличивается на 1.) |
1 |
0 |
Сдвигает весь дисплей влево. Курсор следует за сдвигом дисплея. |
1 |
1 |
Сдвигает весь дисплей вправо. Курсор следует за сдвигом дисплея. |
Табл. 9. Установка функций.
N |
F |
Число строк дисплея |
Шрифт символов |
Замечания |
0 |
0 |
1 |
5×8 точек |
|
0 |
1 |
1 |
5×10 точек |
|
1 |
* |
2 |
5×8 точек |
Нет вывода двух строк для шрифта символов 5×10 точек |
Примечание: * означает отсутствие эффекта.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Шрифт символов 5×8 точек |
Шрифт символов 5×10 точек |
Меняющийся дисплей |
||||||||||||||||||||
Пример вывода курсора |
Пример вывода мигания |
|||||||||||||||||||||
Рис. 7. Курсор и мигание.
Запись данных в CGRAM или DDRAM записывает 8-битные двоичные данные DDDDDDDD в CGRAM или DDRAM.
Запись в CGRAM или DDRAM определяется предыдущим заданием установки адреса CGRAM или DDRAM. После записи адрес автоматически увеличивается или уменьшается на 1 в соответствии с режимом ввода. Режим ввода также определяет сдвиг дисплея.
Чтение данных из CGRAM или DDRAM считывает 8-битные двоичные данные DDDDDDDD из CGRAM или DDRAM.
Предыдущее присвоение определяет, CGRAM или DDRAM будет считываться. Перед вводом этой команды чтения должна быть выполнена команда установки адреса CGRAM или DDRAM. При невыполнении данные первого считывания будут неверными. При последовательном выполнении команд чтения данные следующего адреса считываются из второго чтения. Команды установки адреса должны выполняться непосредственно перед этой командой чтения при сдвиге курсора командой сдвига курсора (при считывании DDRAM). Команда сдвига курсора работает так же, как и команда установки адреса DDRAM.
После считывания режим ввода автоматически увеличивает или уменьшает адрес на 1. Однако, независимо от режима ввода, сдвига дисплея не происходит.
Примечание: Счетчик адреса (АС) автоматически увеличивается или уменьшается на 1 после выполнения команд записи в CGRAM или DDRAM. Данные ОЗУ, выбранные АС, в это время считываться не могут, даже если выполняются команды чтения. Таким образом, для корректного считывания данных следует выполнить либо команду установки адреса, либо команду сдвига курсора (только с DDRAM), затем, непосредственно перед чтением нужных данных, выполнить команду чтения со второго раза отправки команды чтения.
Инициализация с помощью команд. Если не удовлетворяются условия питания для корректной работы, становится необходимой инициализация с помощью команд.
Процедура 8-битной инициализации показана на Рис. 8.
|
|
|
|
Вкл. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задержка >15 мс после того, как VCC достигнет 4,5 В |
Задержка >40 мс после того, как VCC достигнет 2,7 В |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
RS |
R/ |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
BF нельзя проверить до этой команды. Установка функций (8-битный интерфейс) |
0 |
0 |
0 |
0 |
1 |
1 |
* |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
|
|
Задержка >4,1 мс |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
RS |
R/ |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
BF нельзя проверить до этой команды. Установка функций (8-битный интерфейс) |
0 |
0 |
0 |
0 |
1 |
1 |
* |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
|
|
Задержка >100 мкс |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
RS |
R/ |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
BF нельзя проверить до этой команды. Установка функций (8-битный интерфейс) |
0 |
0 |
0 |
0 |
1 |
1 |
* |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
|
BF можно проверить после следующих команд. Когда BF не проверен, время задержки между командами больше, чем время выполнения команды (см. Табл. 7.) |
RS |
R/ |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
Установка функций (8-битный интерфейс. Задание числа строк дисплея и шрифта символов.) После этого число строк дисплея и шрифт символов изменяться не могут. |
0 |
0 |
0 |
0 |
1 |
1 |
N |
F |
* |
* |
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Выключение дисплея |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Очистка дисплея |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
S |
Установка режима ввода |
Рис. 8. Инициализация с помощью команд.
Временные диаграммы.
Рис. 9. Операция записи.
Рис. 10. Операция чтения.

Старшие
Старшие
Адрес
DDRAM