Чтение онлайн

ЖАНРЫ

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

/*дисплея */

/*-----------------------------------------------------------------------*/

void putcommands(unsigned char d) {

 DDRP = 0xFF; //установить порт PORT P на вывод

 DDRDLC = DDRDLC|0x0C; //установить разряды 2 и 3 порта PORT DLC на

//вывод

 PORTDLC = PORTDLC & 0xF7; //установить линию RS в 0

 PORTP = d; //Выдать в порт PORT P код команды d

 PORTDLC = PORTDLC | 0x04; //установить линию E в 1

 PORTDLC = 0; //установить E и RS в 0

 delay_5ms; //задержка 5 мс

}

/*-----------------------------------------------------------------*/

/*Функция lcdprint производит запись строки символов в ОЗУ дисплея */

/*-----------------------------------------------------------------*/

void lcdprint(char *string) {

 putcommands(0x02); //команда
установки адреса на начало строки

 while(*(string) != '\0') //вывести последовательно кода символов

 { //из памяти МК

putchars(*string);

string++;

 }

}

/*-------------------------------------------*/

/* Функция delay_5ms формирует задержку 5 мс */

/*-------------------------------------------*/

void delay_5ms(void) {

 int i;

 for(i=0; i<50; i++) {

delay_l00us;

 }

}

/*-----------------------------------------------------*/

/* Функция void delay_100us формирует задержку 100 мкс */

/*Частота системной шины равна 8 МГц */

/*-----------------------------------------------------*/

void delay_100us(void) {

 int i;

 for(i=0; i<50; i++) {

asm("nop"); //команда nop занимает 2 цикла

 }

}

/*-----------------------------------------------------*/

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. Временные диаграммы обмена контроллера графического ЖК дисплея

Поделиться с друзьями: