реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Пара вопросов о символьных LCD
tangar
сообщение Mar 12 2005, 19:52
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 12-03-05
Пользователь №: 3 297



Есть вопрос: я планирую программировать ЖК без поддержки операций чтения из него ( флаг занятости не опрашивается). Какой временной интервал занимает цикл записи в контроллер и через какие промежутки времени следует изменять значения на управляющих шинах для управления операциями записи?

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

Заранее спасибо.
Go to the top of the page
 
+Quote Post
acex2
сообщение Mar 12 2005, 20:43
Сообщение #2


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Вот пример программирования для 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
}
Go to the top of the page
 
+Quote Post
aal
сообщение Mar 13 2005, 07:09
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916



Все временые параметры можно посмотреть в статье про подключение жки на атмел ру. Правда есть разночтения в пдф (ссылка в статье) на контроллер и в статье, и именно по времянке.
Последнее время в своих проектах отказался от ожидания готовности. Делаю задержку между выдачей на индикатор намного больше необходимого.


--------------------
_____________________________________
Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
Go to the top of the page
 
+Quote Post
tangar
сообщение Mar 13 2005, 15:16
Сообщение #4





Группа: Новичок
Сообщений: 10
Регистрация: 12-03-05
Пользователь №: 3 297



Пока я планирую подключать ЖК с передачей данных по 8-разрядной шине.Вот то, чо я надумал, касательно вреенной диаграммы цикла обмена.

Здесь изображена временная диаграмма процесса записи данных в регистр данных. Фиолетовая линия - сигнал на управляющей шине, причем линия RS подключена к первому байту управляющего порта, а линия Е - к третьему. Желтая линия - сигнал на шине данных. Будет ли работать такая схема?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Mar 13 2005, 16:14
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



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


Кстати - а какую задержку делаете без чтения флага ожидания?
Go to the top of the page
 
+Quote Post
aal
сообщение Mar 14 2005, 03:38
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916



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

Между байтами данных ~20-40 мкс. При команде обнуления экрана >2 мс. Всё с диким запасом....


--------------------
_____________________________________
Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01315 секунд с 7
ELECTRONIX ©2004-2016