Работа с ЖКИ на контроллере HD44780 и его аналогах

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Alexeyslav, спасибо за оперативный и содержательный ответ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ATtiny15
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пн фев 20, 2012 16:24:22

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ATtiny15 »

Народ собираюсь локализовать прошивку гаммы под латиницу. Есть три дисплея:

1. Руссифицированый. С ним проблем нет. Работает как с оригинальной так и с модифицированной прошивкой
http://s60.radikal.ru/i167/1305/4d/76250e298b2b.jpg

http://s005.radikal.ru/i209/1305/17/f31d31bfe2f0.jpg

http://i069.radikal.ru/1305/46/c7feffb73e64.jpg

2. Нерусифицированный с подсветкой. Отображает верхнию строку с прямоугольниками. Как я понял не инициализируется.

http://s018.radikal.ru/i521/1305/3b/98cac56dafbc.jpg

http://s019.radikal.ru/i624/1305/d6/ceb96bee37b7.jpg

http://i020.radikal.ru/1305/7d/3f3a081eaff0.jpg

3. Нерусифицированный без подсветки. C этим дисплеем иногда работает иногда нет. временами отображает непонятные символы.

http://s019.radikal.ru/i614/1305/7b/5ea058ee1d36.jpg

http://s018.radikal.ru/i525/1305/f9/42ddbfdfc3b2.jpg

http://s020.radikal.ru/i714/1305/2b/a0a3e9a7887f.jpg

http://s018.radikal.ru/i506/1305/67/3ecb0c71fb56.jpg

http://s017.radikal.ru/i436/1305/9e/f886c29be604.jpg

http://i024.radikal.ru/1305/76/3db536423476.jpg

Есть идей как пофиксить ?

Линки подправил.
Вложения
1.1s35.rar
(187.89 КБ) 231 скачивание
Последний раз редактировалось ATtiny15 Пт май 17, 2013 18:25:27, всего редактировалось 2 раза.
pelia
Родился
Сообщения: 18
Зарегистрирован: Ср мар 06, 2013 01:24:25
Откуда: Ukraine
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pelia »

Кроме вложения - ничего не скачивает
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Ещё бы. Все ссылки битые.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ATtiny15
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пн фев 20, 2012 16:24:22

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ATtiny15 »

Линки подправил.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Еще бы размер вменяемый для рисунков...
У меня уже язык заболел уговаривать: отрисайзить перед отправкой ну хотя бы так :
Obr.jpg
(26.29 КБ) 539 скачиваний


Всего-то в 100 раз меньше :)
Не у всех же инет безразмерный
ATtiny15
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пн фев 20, 2012 16:24:22

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ATtiny15 »

Извиняйте. Я новичок на этом форуме.
pelia
Родился
Сообщения: 18
Зарегистрирован: Ср мар 06, 2013 01:24:25
Откуда: Ukraine
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pelia »

Если не проверяете бит занятости - попробуйте увеличить паузы между командами
ATtiny15
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пн фев 20, 2012 16:24:22

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ATtiny15 »

Можно по конкретнее, о каких паузах идёт речь, желательно тыкнуть пальцем в код.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Alexeyslav »

Между любыми отдельными командами отсылаемыми на индикатор. Может он их просто не успевает обрабатывать.
DDark
Открыл глаза
Сообщения: 73
Зарегистрирован: Вт июн 22, 2010 20:15:17

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение DDark »

подскажите пожалуйста... WH1604 с подсветкой - проблемы с контрастностью.. установил делителем 0.8в - вроде норм, пару раз перезапустил устройство - ничего не показывает... взял посадил контрастность на землю - начал показывать.. через какое то время стал показывать хуже... потом опять ничего не видно - вернул 0.6в - стал показывать и опять по новой...

в чем может быть причина такого поведения? еще заметил если быстро питание вкл-выкл появляющиеся куски строк и артефакты выглядят очень читабельно, а как нужная инфа - снова шляпа) заранее спасибо!!!!
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Alexeyslav »

А причем тут напряжение? Контраст изменяется РЕЗИСТОРОМ а не напряжением.
DDark
Открыл глаза
Сообщения: 73
Зарегистрирован: Вт июн 22, 2010 20:15:17

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение DDark »

Alexeyslav писал(а):А причем тут напряжение? Контраст изменяется РЕЗИСТОРОМ а не напряжением.

не очень вас понял.. я между +5в и землей ставлю делитель и его среднюю точку подаю на 3 ногу (контрастность)... вот и говорю какое там напряжение... где я не прав?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Alexeyslav »

Подстроечный резистор поставь на 10кОм, и им регулируй контраст. Переменный там нужен, контраст будет от температуры зависеть.
DDark
Открыл глаза
Сообщения: 73
Зарегистрирован: Вт июн 22, 2010 20:15:17

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение DDark »

Alexeyslav писал(а):Подстроечный резистор поставь на 10кОм, и им регулируй контраст. Переменный там нужен, контраст будет от температуры зависеть.

спасибо, попробую
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ibiza11 »

Alexeyslav писал(а):А причем тут напряжение? Контраст изменяется РЕЗИСТОРОМ а не напряжением.
я преспокойно регулирую контрастность дисплея напряжением, используя ШИМ, сглаженную RC-цепью. Выход RC-фильтра подключен к выводу контрастности дисплея.
Ставим плюсы: )
Аватара пользователя
maks14
Друг Кота
Сообщения: 8785
Зарегистрирован: Пн апр 11, 2011 14:56:46
Откуда: Дальний восток.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение maks14 »

Робята...может кто подскажет. учусь писать на асьме.
сделал инициализацию. вывел первую надпись.(и в протеусе и в железе)
захотел поставить курсор на 2 строку-ставлю на адрес 40. то есть 11000000 или даже ставил на адрес 41. 11000001.
проверяю в протеусе- курсора и в помине не видать....
попробовал команду сдвига курсора зациклить. что бы он путем поочередного перебора адресов попал таки в видимую область 2 строки.
и ничего подобного!! курсор бегает в протеусе только по первой строке- но во 2 строку не попадает!! :dont_know:
проверить пока в железе нет возможности..может протеус тупит?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Alexeyslav »

Нет, ты просто не перевел индикатор в 2-строчный режим командой 0x28.
Аватара пользователя
maks14
Друг Кота
Сообщения: 8785
Зарегистрирован: Пн апр 11, 2011 14:56:46
Откуда: Дальний восток.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение maks14 »

Спасибо! помучаем)

----------
попробовал. заработало! еще раз спасибо :))
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

Продолжаю разбираться с
C:\Program Files\HI-TECH Software\PICC\std\9.60\samples\LCDemo\lcd.h
додумался посмотреть в текстовом редакторе
/* write a byte to the LCD in 4 bit mode */
extern void lcd_write(unsigned char);

/* Clear and home the LCD */
extern void lcd_clear(void);

/* write a string of characters to the LCD */
extern void lcd_puts(const char * s);

/* Go to the specified position */
extern void lcd_goto(unsigned char pos);

/* intialize the LCD - call before anything else */
extern void lcd_init(void);

extern void lcd_putch(char);???

/*Set the cursor position */???

все это хорошо, но как использовать?

Код: Выделить всё

// MK pic16f72
// работа с LCD
//----------
#include <pic.h> // подключение хидера, чтобы дать компилятору понять описание ножек контроллера
#include <lcd.h> // подключение хидера  функций работы с лсд
#include <delay.h> // при работе используется функции временной задержки DelayMs(5);5 миллисекунд
      //DelayUs(200); 200 микросекунд
__CONFIG (XT & WDTDIS & PWRTDIS & BOREN & UNPROTECT);   // биты конфигурации программатора
//----------
// объявление функций, используемые в файле------------------------------------------------------------------------------------------
void Podgot(void)   // настройка портов и глобальная - прерываний
{
ADCON1 = 0b111; // отключение АЦП, все каналы работают как цифровые
TRISA = 0b111111; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISB = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISC = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
RBPU = 0; // выключить подтягивающие резисторы порта В
PORTA = 0;
//----------
GIE = 1;   // разрешены все немаскированные прерывания
PEIE = 1;  // разрешены все немаскированные прерывания от переферийных модулей
extern void lcd_init(&PORTB,3,6,0,7,2,1,4); // инициализирует порт для работы LCD, аргументы RS, EN, WR, D7 .. D4
            // назначаются линиям порта 3,6,0,7,2,1,4
}            
// конец объявления функций, используемые в файле----------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main ()
{
Podgot();            // настройка портов и таймеров
for(;;)
{

}// end for
}// end main
//----------

естественно, на extern void lcd_init вылетает с ошибками (я же не знаю, как обратиться к функции и назначить линии порта)
Build D:\Work\PIC_CI\My_program\LCD\lCD1 for device 16F72
Using driver C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe

Executing: "C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe" -q -g --asmlist --chip=16F72 "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" -P --char=unsigned -C D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c
Error [249] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 22.1 probable missing "}" in previous block
Error [194] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 22.22 ")" expected
Error [285] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 24.1 no identifier in declaration
Warning [374] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 24.1 missing basic type; int assumed
Error [314] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 24.1 ";" expected
Warning [361] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 32.1 function declared implicit int

********** Build failed! **************

вынес из объявления void Podgot функцию extern void lcd_init.

Код: Выделить всё

// объявление функций, используемые в файле------------------------------------------------------------------------------------------
void Podgot(void)   // настройка портов и глобальная - прерываний
{
ADCON1 = 0b111; // отключение АЦП, все каналы работают как цифровые
TRISA = 0b111111; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISB = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISC = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
RBPU = 0; // выключить подтягивающие резисторы порта В
PORTA = 0;
//----------
GIE = 1;   // разрешены все немаскированные прерывания
PEIE = 1;  // разрешены все немаскированные прерывания от переферийных модулей
}            
extern void lcd_init(&PORTB,3,6,0,7,2,1,4); // инициализирует порт для работы LCD, аргументы RS, EN, WR, D7 .. D4
            // назначаются линиям порта 3,6,0,7,2,1,4
// конец объявления функций, используемые в файле----------------------------------------------------------------------------------

Error [194] D:\Work\PIC_CI\My_program\LCD\LCD_sour2.c; 23.22 ")" expected
Кот гуляет сам по себе, но вблизи холодильника.
Ответить

Вернуться в «Периферия»