Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 86 87 88 89 90 91 92 93 94 ... 150
Перейти на страницу:

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

Временные диаграммы обмена. Временные диаграммы обмена с контроллером управления графическим ЖК дисплеем приведены на рис. 5.17. Они аналогичны рассмотренным ранее диаграммам обмена с контроллером цифро-буквенного индикатора. Так же, как и в предыдущем случае, мы будем генерировать сигналы управления в соответствие с приведенной временной диаграммой, последовательно переключая линии порта PORTDLC в программе управления дисплеем.

Набор функций управления графическим ЖК дисплеем. Мы предлагаем Вашему вниманию набор функций на Си, которые могут быть использованы в других программах для эффективного управления графическим ЖК дисплеем. Для каждой функции приведено описание и исходный текст программы на Си. На рис. 5.18 показана структура программного обеспечения для управления графическим дисплеем, в которой отражены полный набор функций управления и их взаимосвязь. В одном из самостоятельных заданий к этой главе мы попросим Вас разработать блок-схемы алгоритмов для реализации каждой из перечисленных функций управления.

Рис. 5.18. Структура программного обеспечения графического ЖК дисплея

//---------------------------------------------------------------------

//filename: 2D_LCD.c содержит программный код для 14 функций управления

//графическим ЖК дисплеем

//---------------------------------------------------------------------

//Схема подключения дисплея AND1391ST к МК 68HC12

// PORTDLC[3] C/D

// PORTDLC[2] CE

// PORTDLC[1] RD

// PORTDLC[0] WR

// PORTP[7…0] D[7…0]

// вывод RESET дисплея AND1391ST через резистор 4,7 кОм к источнику питания

// вывод FS дисплея AND1391ST к общему выводу источника питания

// ------------------------------------------------------------------------

// Функция initialize_lcd производит начальную установку режимов

//графического дисплея

// ------------------------------------------------------------------------

void initialize_lcd(void) {

 char temp = 0x00;

 PORTDLC = 0xFF; //установить 1 на всех выходах порта: запрет всех

                 //действий с дисплеем

 PORTDLC = PORTDLC & 0xEF; //сброс экрана, RESET=0

 delay(2000); //задержка 2 мс

 PORTDLC = 0x7F; //установить вывод RESET в 1

 write(); //установить WR=0

 command(0x80); //установить режим работы текстовый

 data(0x00); //слово управления

 data(0х10); //слово управления

 command(0х40); //установить адрес начала текста

 data(0х10); // слово управления

 data(0x00); // слово управления

 command(0х41); // установить область текста: 16 знаков

 command(0x94); //выключить дисплей, курсор мигает

 command(0хА7); //установить курсор 8×8 точек

 data(0x01); // слово управления

 data(0х01); // слово управления

 command(0х21) ; //установить позицию курсора

}

// ----------------------------------------------------------------------------

// Функция read конфигурирует линии порта PORTP для ввода данных от контроллера

// дисплея.

// ----------------------------------------------------------------------------

void read() {

 DDRP = 0х00; //порт PORTP на ввод

}

// ------------------------------------------------------------------------

// Функция Clearscreen производит очистку экрана дисплея посредством записи

//во все ячейки памяти буфера экрана кода символа " "

// ------------------------------------------------------------------------

void Clearscreen() {

 int i,j;

 Reset_cursor();

 // выполнить для каждой строки (i), для каждого знакоместа в строке (j)

 for(i=0; i<16; i++) for(j=0; j<16; j++) LCD_char(' ');

 Reset_cursor();

}

// -------------------------------------------------------------------------

// Функция newline производит запись во все знакоместа одной код символа " "

// -------------------------------------------------------------------------

void newline() {

 int i;

 for(i=0; i<16; i++) LCD_char(' ');

}

// ------------------------------------------------------------------------

// Функция LCD_output производит преобразование кодов ASCII строки символов

//в коды табл. рис. 5.15 для отображения на дисплее и передает эту строку в

//ОЗУ буфера экрана дисплея

// ------------------------------------------------------------------------

void LCD_output(char s[]) {

 int n = 0;

 while (s[n] != '') {

  LCD_char(s[n]);

  ++n;

 }

}

// --------------------------------------------------------------------

1 ... 86 87 88 89 90 91 92 93 94 ... 150
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт.
Комментарии