LCD_RS_CLR; //будет передаваться команда
lcd_send_byte(comand); //передача команды
//delay(108000); //задержка 2000 мкс для готовности ЖКИ
lcd_opros(); //ожидание готовности ЖКИ
}
void lcd_init() // инициализация ЖКИ {
lcd_com(0x28); //4-битная шина, 2 строки, символ 5x7 lcd_com(0x01); //очистка дисплея, курсор в нач положение lcd_com(0x06); //дисплей не сдвигать, курсор сдвигать lcd_com(0x0C); //включить дисплей, погасить курсор }
void lcd_clear() //очистка экрана ЖКИ {
lcd_com(0x01); //очистка дисплея, курсор в начальное положение }
//Опрос ЖКИ на предмет его готовности принимать команды и данные
void lcd_opros()
{
LCD_RW_SET; //режим чтения из ЖКИ
LCD_RS_CLR; //будет читаться команда
IOlDIR_bit.Pl_20=0; //---------------------------
IOlDIR_bit.Pl_21=0; // сделать шину данных IOlDIR_bit.Pl_22=0; // входами
IOlDIR_bit.Pl_23=0; //---------------------------
Opros:
delay(100); //
LCD_E_SET; // фронт импульса стробирования записи/чтения ЖКИ
delay(100); //
if (LCD_D7==ON) //(опрос флага BUSY) свободен ли ЖКИ?
{
delay(100); //
LCD_E_CLR; // спад импульса стробирования записи/чтения ЖКИ
delay(100); //
lcd_pulse_E(); //импульс стробирования записи/чтения ЖКИ goto Opros; //
else {
delay(100); //
LCD_E_CLR; delay(lOO); // lcd_pulse_E(); }
LCD_RW_CLR; IOlDIR_bit.Pl_20=l I01DIR_bit.Pl_21=l IOlDIR_bit.Pl_22=l IOlDIR_bit.Pl_23=l delay(100); // }
Этот файл в дальнейшем будет указываться во всех проектах, как подключаемый. В файле содержатся следующие функции: функция начальной инициализации ЖКИ после сброса lcd_init(), функция очистки экрана ЖКИ lcd_clear(), функция передачи в ЖКИ одной команды lcdjcom(comand), функция записи в ОЗУ ЖКИ одного байта данных (индикации на экране ЖКИ одного символа) по текущему адресу lcdjekjdata(date) или по произвольному адресу — led_pro_data(date, addr), функция опроса состояния ЖКИ lcd_opros(), возвращающая управление по готовности последнего, а также несколько вспомогательных функций следующего уровня вложенности. Если пользователем выбран вариант интерфейса с опросом текущего состояния ЖКИ, то в файле необходимо «вручную» раскомментировать (убрать стоящие перед ними символы «//») команды вызова функции lcd_opros() во всех функциях, где они встречаются, а команды вызова функций временных задержек delay(3000) и delay(108000), наоборот, везде закомментировать (поставить перед ними символы «//»). Если выбран вариант с отсутствием опроса (генерации задержек ожидания), необходимо, наоборот, раскомментировать вызовы этих задержек и закомментировать вызовы функции опроса lcd_opros(). Следует заметить, что для такого «быстрого» микроконтроллера, каким является LPC2129, очевидно, рациональнее будет использовать вариант интерфейса ЖКИ с опросом его состояния (в этом случае, программа тратит значительно меньшее общее время на индикацию). Определения и макросы задания состояний линий подключения ЖКИ к микроконтроллеру содержатся в файле hardware.h. Там же находятся определения констант-фонтов русского и латинского алфавитов HD44780-cob-местимого ЖКИ.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |