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

Рис. 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); //установить курсор 8x8 точек

 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; i16; i++) for(j=0; j16; j++) LCD_char(' ');

 Reset_cursor;

}


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

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

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже