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

 PORTDLC = 0xFF;

 PORTDLC = PORTDLC 0xFE; // сброс записи

 enable; // сброс флага CE

 delay(10); // задержка не менее 80 нс

 disable; // включение флага CE

}

//********************************************************************

//Data: Функция пересылает данные на ЖКД

//********************************************************************

void data(unsigned char n) {

 status_wait;

 PORTP = n;

 PORTDLC = 0xFF;

 PORTDLC = PORTDLC 0xF7; // перевести C/D на низкий уровень

 PORTDLC = PORTDLC 0xFE; // перевести WR на низкий уровень

 PORTDLC = PORTDLC 0xFB;

 delay(10);

 disable;

}

//********************************************************************

//Write: Функция конфигурирует порт P как выходной

//********************************************************************

void write {

 DDRP = 0xFF;

}

//********************************************************************

//Read: Функция конфигурирует порт P как входной

//********************************************************************

void read {

 DDRP = 0x00;

}

//********************************************************************

//Status_wait: Создает соответствующие задержки между командами ЖКД

//********************************************************************

void status_wait {

 char temp = 0x00;

 DDRP = 0x00;

 PORTDLC = PORTDLC | 0x0F; // сбросить все

 PORTDLC = PORTDLC 0xFD; // сброс флага RD

 enable;

 delay(10);

 while ((temp 0x03) != 0x03) {

  temp = PORTP;

 }

 disable;

 DDRP = 0xFF;

}

//********************************************************************

//LCD_char: Функция выводит ASCII код на экран ЖКД

//********************************************************************

void LCD_char(unsigned char n) {

 data(n-0x20);

 command(0xC0);

}

//********************************************************************

//Clearscreen: Функция очищает экран ЖКД

//********************************************************************

void Clearscreen {

 int i,j;

 Reset_cursor;

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

 Reset_cursor;

}

//********************************************************************

//Newline: Функция выводит пустую строку на экран ЖКД

//********************************************************************

void newline {

 int i;

 for (i=0; i 16; i++)

 LCD_char(' ');

}

//********************************************************************

//Reset_cursor: Функция возвращает курсор ЖКД в начальную позицию

//********************************************************************

void Reset_cursor {

 data(0x00);

 data(0x10);

 command(0x24);

}

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