Иницализация LCD - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Иницализация LCD
Иницализация LCD
KrivovD Дата: Вт, 03.04.2012, 20:30  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 09.12.2009

Статус: Offline

Доброго времени суток, помогите разобраться.
Есть проект в котором алфавитно-цифровой ЖКИ (WH1602A с контроллером Hitachi 44780) подключен к PIC18F4550 по 4-х битной шине. В процессе работы девайса предполагается отключение питания от ЖКИ и посылка микроконтроллера в режим sleep. До этой процедуры все работает нормально, но после того как PIC выходит из sleepa и восстановливается питание на ЖКИ на экране появляется абра-кадабра. В даташите на Hitachi 44780 сказано что при подключении питания по умолчанию используется 8-битная шина. Подскажите плизз, как проинициализировать заново ЖКИ при восстановлении питания?
ЯНДЕКС Дата: 03.04.2012
rvstar Дата: Вт, 03.04.2012, 23:36  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 60
Репутация: 2   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

http://www.gaw.ru/html.cgi/txt/lcd/chips/hd44780/start.htm
KrivovD Дата: Ср, 04.04.2012, 12:31  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 09.12.2009

Статус: Offline

Спасибо, это я читал, просто думал что в Протоне есть более простые средства для этого.
ADMIN Дата: Ср, 04.04.2012, 14:04  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Сделал я тут тахометр, только на WH0802, русифицированном. Тоже со спящим режимом и отключением питания дисплея. Все работает на ура без инициализации. Причем, до этого делал разные девайсы и нигде не использовал инициализацию. Все в порядке. А как программа выглядит после выхода из Sleep?
KrivovD Дата: Ср, 04.04.2012, 15:31  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 09.12.2009

Статус: Offline

Может быть это из-за того что кроме питания я опускал в ноль всю шину, выводы RS и E, поскольку походу при отключении питания эти выводы открываются в открытый сток и, соответственно, где оставлена 1 ток вырастает до 150мА.
Проблема решилась. Вставил функцию инициализации (проблема была все таки в этом, даташит не обманул и после поднятия питания на ЖКИ его контроллер был уверен что работает по 8-битной шине). Ща попытаюсь эту функцию выложить здесь (может кму и пригодится), заранее попрошу не ругать за корявость кода, я только учусь. Паузы расставлял с запасом (скорость инициализации не критична).
Code

Symbol VS = PORTA.2  'вывод управляющий питание LCD
Symbol RS = PORTB.2
Symbol E = PORTB.3
Symbol DB4 = PORTB.4
Symbol DB5 = PORTB.5
Symbol DB6 = PORTB.6
Symbol DB7 = PORTB.7

IntLCD:
Low E
Low RS
Low DB4
Low DB5
Low DB6
Low DB7
High VS 'включение питания  
DelayMS 35 'пауза >30 мс  

'FUNCTION SET  
Low DB7   
Low DB6
High DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

Low DB7   
Low DB6
High DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

High DB7   
Low DB6
Low DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E

DelayUS 45 'пауза >39 мкс  

'DISPLAY ON/OFF CONTROL  
Low DB7   
Low DB6
Low DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

High DB7   
High DB6
Low DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E

DelayUS 45 'пауза >39 мкс  

'DISPLAY CLEAR  
Low DB7   
Low DB6
Low DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

Low DB7   
Low DB6
Low DB5
High DB4
DelayMS 1

High E
DelayMS 1
Low E

DelayMS 2 'Пауза >1.53 мс  

'ENTRY MODE SET   
Low DB7   
Low DB6
Low DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

Low DB7   
Low DB6
High DB5
Low DB4
DelayMS 1

High E
DelayMS 1
Low E
DelayMS 2

High RS
Cls        
Return

Алгоритм брал отсюда: http://radiohlam.ru/control/dot_matrix_LCD.htm
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Иницализация LCD
Страница 1 из 11
Поиск: