Предыдущая Следующая

#include "hardware.h" // подключение специальных заголовков и определений

void delay(U32 ticks) //задержка для ожидания готовности ЖКИ

{

for(; ticks; —ticks)

asm ("nop");

}

}

void lcd_pulse_E() //импульс стробирования записи/чтения ЖКИ {

delay(100);

LCD_E_SET; // фронт импульса стробирования записи/чтения ЖКИ delay(lOO);

LCD_E_CLR; // спад импульса стробирования записи/чтения ЖКИ

delay(100);

}

void lcd_send_byte(U8 byte) //передача в ЖКИ байта {

if (BIT_TEST(byte,4)) LCD_D4_SET; //---------------------

else LCD_D4_CLR; // if (BIT_TEST(byte,5)) LCD_D5_SET; // else LCD_D5_CLR; //

if (BIT_TEST(byte, 6)) LCD_D6_SET; // передача старшей тетрады else LCD_D6_CLR; // if (BIT_TEST(byte,7)) LCD_D7_SET; // else LCD_D7_CLR; //

lcd_pulse_E(); //---------------------

if (BIT_TEST(byte,0)) LCD_D4_SET; //---------------------

else LCD_D4_CLR; // if (BIT_TEST(byte,1)) LCD_D5_SET; //

else LCD_D5_CLR; // передача младшей тетрады

if (BIT_TEST(byte, 2) ) LCD_D6_SET; // else LCD_D6_CLR; // if (BIT_TEST(byte,3)) LCD_D7_SET; // else LCD_D7_CLR; //

lcd_pulse_E(); //---------------------

}

// запись в ЖКИ одного символа данных по произвольному адресу ОЗУ ЖКИ //если ЖКИ опрашивается, то команды "lcd_opros();" надо раскомментировать, //а команды "delay(3000);" закомментировать, в противном случае - наоборот void lcd_pro_data(U8 date, U8 addr) {

LCD_RW_CLR; //режим записи в ЖКИ

LCD_RS_CLR; //будет передаваться команда

BIT_SET(addr,7); //будет передаваться адрес ОЗУ ЖКИ

lcd_send_byte(addr); //передача адреса

//delay(3000); //задержка 50 мкс для готовности ЖКИ

lcd_opros(); -//ожидание готовности ЖКИ

LCD_RS_SET; //будут передаваться данные

if (date < 10) lcd_send_byte(date + 0x30); //передается десятичная цифра else lcd_send_byte(date); //передается символ (не цифра)

//delay(3000); //задержка 50 мкс для готовности ЖКИ

lcd_opros(); //ожидание готовности ЖКИ

}

// запись в ЖКИ одного символа данных по текущему адресу ОЗУ ЖКИ

//если ЖКИ опрашивается, то команду "lcd_opros();" надо раскомментировать,

//а команду "delay(3000);" закомментировать, в противном случае - наоборот

void lcd_tek_data(U8 date)

{

LCD_RW_CLR; //режим записи В ЖКИ

LCD_RS_SET; //будут передаваться данные

if (date < 10) lcd_send_byte(date + 0x30); //передается десятичная цифра else lcd_send_byte(date); //передается символ (не цифра)

//delay(3000); //задеряка 50 мкс для готовности ЖКИ

lcd_opros(); //ожидание готовности ЖКИ

}

void lcd_com(U8 comand) // запись в ЖКИ команды

//если ЖКИ опрашивается, то команду "lcd_opros();" надо раскомментировать, //а команду "delay(108000);" закомментировать, в противном случае - наоборот {

LCD_RW_CLR; //режим записи в ЖКИ


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz