Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пара вопросов о символьных LCD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
tangar
Есть вопрос: я планирую программировать ЖК без поддержки операций чтения из него ( флаг занятости не опрашивается). Какой временной интервал занимает цикл записи в контроллер и через какие промежутки времени следует изменять значения на управляющих шинах для управления операциями записи?

Еще один вопрос: для позиционирования курсора на знакоместо XY достаточно ли просто присвоить AC адрес этого знакоместа в DDRAM?

Заранее спасибо.
acex2
Вот пример программирования для PIC (4-х битный режим, флаг занятости не используется). Из него все должно быть понятно.

Код
/*
*  LCD interface example
*  This code will interface to a standard LCD controller
*  like the Hitachi HD44780. It uses it in 4 bit mode, with
*  the hardware connected as follows (the standard 14 pin
*  LCD connector is used):
*
*  PORTB bits 0-3 are connected to the LCD data bits 4-7 (high nibble)
*  PORTA bit 4 is connected to the LCD RS input (register select)
*  PORTA bit 5 is connected to the LCD EN bit (enable)
*
*/

static bit LCD_RS   @ ((unsigned)&PORTC*8+4);   // Register select
static bit LCD_EN   @ ((unsigned)&PORTC*8+5);   // Enable

#define LCD_STROBE  ((LCD_EN = 1),(LCD_EN=0))

void LCD_Write(unsigned char c) {
   PORTB = c >> 4;
   LCD_STROBE;
   PORTB = c;
   LCD_STROBE;
   DelayUs(40);
}

void LCD_Clear(void) {
   LCD_RS = 0;
   LCD_Write(0x1);
   DelayMs(2);
}

void LCD_Puts(const char * s) {
   LCD_RS = 1;
   while(*s)
       LCD_Write(*s++);
}

void LCD_Goto(unsigned char pos) {
   LCD_RS = 0;
   LCD_Write(0x80+pos);
}

void LCD_Init(void) {
   LCD_RS = 0;
   DelayMs(15);
   PORTB = 0x3;
   LCD_STROBE;
   DelayMs(5);
   LCD_STROBE;
   DelayUs(100);
   LCD_STROBE;
   DelayMs(5);
   PORTB = 0x2;
   LCD_STROBE;
   DelayUs(40);
   LCD_Write(0x28);    // 4 bit mode, 1/16 duty, 5x8 font
   LCD_Write(0x08);    // display off
   LCD_Write(0x0C);    // display on, blink curson on
   LCD_Write(0x06);    // entry mode
}
aal
Все временые параметры можно посмотреть в статье про подключение жки на атмел ру. Правда есть разночтения в пдф (ссылка в статье) на контроллер и в статье, и именно по времянке.
Последнее время в своих проектах отказался от ожидания готовности. Делаю задержку между выдачей на индикатор намного больше необходимого.
tangar
Пока я планирую подключать ЖК с передачей данных по 8-разрядной шине.Вот то, чо я надумал, касательно вреенной диаграммы цикла обмена.

Здесь изображена временная диаграмма процесса записи данных в регистр данных. Фиолетовая линия - сигнал на управляющей шине, причем линия RS подключена к первому байту управляющего порта, а линия Е - к третьему. Желтая линия - сигнал на шине данных. Будет ли работать такая схема?
Make_Pic
Цитата(aal @ Mar 13 2005, 10:09)
Все временые параметры  можно посмотреть в статье про подключение жки на атмел ру. Правда есть разночтения в пдф (ссылка в статье) на контроллер и в статье, и именно по времянке.
Последнее время в своих проектах отказался от ожидания готовности. Делаю задержку между выдачей на индикатор намного больше необходимого.
*


Кстати - а какую задержку делаете без чтения флага ожидания?
aal
2 Make_Pic
>Кстати - а какую задержку делаете без чтения флага ожидания?

Между байтами данных ~20-40 мкс. При команде обнуления экрана >2 мс. Всё с диким запасом....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.