Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
5.6.3 Сопряжение МК с графическим ЖК дисплеем
В этом разделе мы рассмотрим типовой графический ЖК дисплей. Следуя логике предыдущего параграфа, мы сначала обсудим информационную модель графического дисплея, затем изучим электрические характеристики и временные диаграммы обмена встроенного контроллера управления этим дисплеем, в завершении — элементы программы для передачи данных из МК в контроллер дисплея. В конце параграфа мы предложим Вам набор полезных для обслуживания графического дисплея функций. При рассмотрении мы будем использовать конкретную модель дисплея AND1391ST. Однако полученные знания Вы сможете легко применить к другим распространенным моделям дисплеев. В главе 7 мы предложим Вам подробный полностью завершенный пример с графическим дисплеем (разд. 7.).
Информационная модель. AND1391ST — ЖК дисплей с разрешающей способностью экрана 128x128 пикселов. Встроенный контроллер управления обеспечивает работу дисплея как в символьном, так и в графическом режиме отображения. Возможно также сочетание этих двух режимов работы при выводе одной и той же картинки. При использовании символьного режима поле экрана дисплея делится на 16 строк по 16 символов в каждой строке (рис. 5.14). Для отображения каждого символа предоставляется поле знакоместа размером 8x8 точек, как показано на рис. 5.15. В качестве дополнительного может быть использован режим символьного отображения, при котором поле экрана дисплея делится на 16 строк по 21 символу в строке. В этом случае каждое знакоместо будет состоять из 6x8 точек. Размер знакоместа задается уровнем сигнала на входе FS контроллера дисплея. Набор кодов для формирования образа каждого символа (знакогенератор) хранится в постоянной памяти контроллера дисплея.
Рис. 5.14. Информационная модель графического ЖК дисплея в символьном режиме
Контроллер дисплея воспроизводит на экране образы символов, коды которых хранятся в ячейках оперативной памяти контроллера. Каждому знакоместу на экране дисплея поставлена в соответствие ячейка ОЗУ с определенным адресом. В процессе инициализации контроллера дисплея МК записывает адрес начала ОЗУ экрана. На рис. 5.14 этот адрес равен $1000. Все остальные адреса для ячеек символов вычисляются посредством указанных на рис. 5.14 кодов смещения. В процессе инициализации также указывается число символов в строке. В нашем примере мы используем режим отображения с 16 символами в строке. При этом размер знакоместа для символа (8x8) уже выбран на аппаратном уровне: вход FS контроллера присоединен к общему выводу источника питания.
старший полубайт | младший полубайт | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | – | . | / | |
1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
2 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
3 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
4 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
5 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |
Рис. 5.15. Таблица
кодов символов для графического ЖК дисплеяСхема подключения дисплея AND1391ST к МК семейства 68HC12 представлена на рис. 5.16, а. Наименование и краткое описание выводов контроллера управления дисплеем AND1391ST приведены в таблице рис. 5.16, б.
а) Схема подключения ЖК дисплея к МК
Номер вывода | Обозначение | Функция |
---|---|---|
1 | FGND | Вывод корпуса |
2 | GND | Общий вывод источника питания |
3 | VDD | Напряжение питания контроллера 5.0 В |
4 | VEE | Напряжение питания ЖК матрицы –14 В ± 3 В |
5 | WR | Линия управления «запись» |
6 | RD | Линия управления «чтение» |
7 | CE | Линия управления «разрешение обмена» |
8 | C/D | Выбор режима обмена: 0 — чтение/запись данных, 1 — чтение регистра состояния/запись команды |
9 | NC | Не подсоединен |
10 | RESET | Начальная установка контроллера |
11 | DB0 | Двунаправленная магистраль данных контроллера ЖК индикатора |
12 | DB1 | |
13 | DB2 | |
14 | DB3 | |
15 | DB4 | |
16 | DB5 | |
17 | DB6 | |
18 | DB7 | |
19 | FS | Выбор размера символа |
20 | NC | Не подсоединен |
б) Описание выводов контроллера графического ЖК дисплея
Рис. 5.16. Сопряжение графического ЖК дисплея с МК
Проанализировав записи в табл. 5.16, б, Вы увидите, что графический дисплей требует для своей работы двуполярного источника питания. Положительное напряжение питания обеспечивает работу контроллера управления, в то время как отрицательное напряжение необходимо для регулирования контрастности получаемого на дисплее изображения.
В нашем примере мы использовали линии портов PORTP и PORTDLC для обмена данными между МК и дисплеем. Двунаправленная магистраль данных контроллера дисплея D[7…0] подключена к линиям PORTP[7…0] двунаправленного порта PORTP (рис. 5.16, а). В отличие от предыдущего примера, обмен данными между МК и контроллером дисплея происходит в двух направлениях. Поэтому в процессе взаимодействия с дисплеем МК многократно перепрограммирует регистр направления передачи DDRP, изменяя режим работы линий порта PORTP (ввод или вывод).
Для управления режимами обмена информацией с контроллером используются четыре дополнительных сигнала, которые формируются МК на линиях PORTDLC[3…0] порта PORTDLC (рис. 5.16, а). Назначение и краткое описание сигналов управления дисплеем приведено в таблице рис. 5.16, б. Там же показаны комбинации управляющих сигналов, которые следует использовать при обмене с дисплеем различными типами данных.
Рис. 5.17. Временные диаграммы обмена контроллера графического ЖК дисплея