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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
trengtor
Сверлит текстолит когтями
Сообщения: 1299
Зарегистрирован: Вт мар 31, 2015 22:56:07
Откуда: Мы люди простые, живем в лесу, на пенек молимся
Контактная информация:

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

Сообщение trengtor »

[uquote="audiocd",url="/forum/viewtopic.php?p=3305388#p3305388"]Да я пока в этом туго соображаю. Просто странно что никто этого не сделал.[/uquote]

Не рокетсайнс. Свою напишешь ;)
Изображение
technik-1017
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57
Контактная информация:

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

Сообщение technik-1017 »

[uquote="audiocd",url="/forum/viewtopic.php?p=3305380#p3305380"]А ни у кого нет такой библиотеки...[/uquote]
обычно используют два варианта:
- вывод текста непосредственно в индикатор (думаю используется не часто и в основном для проверки работы, либо в несложных проектах)
- запись текста в ОЗУ, а выводом на индикатор занимаемся в прерывании (используется, чтобы подключить на вывода дисплея дополнительную периферию, например кнопки или регистры)

второй вариант можете посмотреть здесь
https://ru.files.fm/u/nzqmnnss#/list/
Аватара пользователя
FAKIR
Друг Кота
Сообщения: 23520
Зарегистрирован: Пт дек 12, 2014 09:36:15
Откуда: Минск

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

Сообщение FAKIR »

Убрал оффтоп!

Пишем по теме, это не МЯЯЯУ. :dont_know:
Аватара пользователя
audiocd
Грызет канифоль
Сообщения: 292
Зарегистрирован: Вт мар 15, 2016 23:30:43
Откуда: Краснодарский край

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

Сообщение audiocd »

Ну в общем как-то так получилось
Спойлер

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

/***
Вывод пользовательских символов
Пример:
const char AV[] = {21,14,4,31,17,17,31,0};

void Custom_Chr()
{
  Lcd_Cmd(64); // Запись в CGRAM
  for (i = 0; i<=7; i++) Lcd_Chr_Cp(AV[i]);
  Lcd_Cmd (0x02); // Return Home
  Lcd_Chr(1, 1, 0); // Выводим в 1 строку в первый символ
}
***/
/**
Lcd_Cmd(0x01); // Очистка дисплея
**/
sbit LCD_RS at RB5_bit;
sbit LCD_EN at RB4_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

void LCD_STROBE(void)
{
LCD_EN = 1;
delay_us(2);
LCD_EN = 0;
}

void Lcd_Dat(char c)
{
LCD_D4 = (c & 1) ? 1 : 0;
LCD_D5 = (c & 2) ? 1 : 0;
LCD_D6 = (c & 4) ? 1 : 0;
LCD_D7 = (c & 8) ? 1 : 0;
}

void Lcd_Cmd(char c)
{
LCD_RS = 0;
Lcd_Dat ( c >> 4 );
delay_us(2);
LCD_STROBE();
Lcd_Dat(c);
delay_us(2);
LCD_STROBE();
delay_ms(2);
}

void Lcd_Init()
{
LCD_RS = 0;
LCD_EN = 0;
Lcd_Dat(0x00);
delay_ms(15);
Lcd_Cmd (0x03);
LCD_STROBE();
delay_ms(5);
LCD_STROBE();
delay_ms(5);
LCD_STROBE();
delay_ms(5);
Lcd_Cmd(0x02);
delay_ms(5);
Lcd_Cmd(0x28);
delay_us(40);
Lcd_Cmd(0x06);
delay_us(40);
Lcd_Cmd(0x0C);
}

void Lcd_Chr_Cp(unsigned char c)
{
LCD_RS = 1;
Lcd_Dat ( c >> 4);
delay_us(2);
LCD_STROBE();
Lcd_Dat( c );
delay_us(2);
LCD_STROBE();
delay_ms(2);
}

void Lcd_Out_Cp(const char *q)
{
 while (*q) {
  Lcd_Chr_Cp(*q++);
 }
}

void  Lcd_Chr(char row, char col, char c){
 if(row == 1)
 {
  Lcd_Cmd(0x80 + col - 1);
 }
 else if(row == 2)
 {
  Lcd_Cmd(0xC0 + col - 1);
 }
 Lcd_Chr_Cp(c);
}

void  Lcd_Out(char row, char col, const char *q){
 if(row == 1)
 {
  Lcd_Cmd(0x80 + col - 1);
 }
 else if(row == 2)
 {
  Lcd_Cmd(0xC0 + col - 1);
 }
 Lcd_Out_Cp(q);
}


По командам совместима со встроенной микросишной. В железе тоже проверена.
JOHN2018
Родился
Сообщения: 3
Зарегистрирован: Вс мар 04, 2018 17:31:43

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

Сообщение JOHN2018 »

Добрый вечер! Попался один упёртый дисплей sc1601aslb-sh-gs-r KS0066. При включении с напряжением питания 5 Вольт 8 первых квадратиков и всё. Пробовал подключать и к МК и к LPT компьютера (в режиме и 8 и 4 бит) - не в какую. Нашёл в одном даташите что напряжение питания 3,3 Вольт, попробовал, или не смог настроить контрастность или реально не было изображения совсем. Есть ещё один LCD китайский QAPASS 1602A вроде, так тот вообще всеядный: работает во всех перечисленных ранее режимах: и от 3 и от 5 Вольт, и 8 бит и 4 бит.
Что можно попробовать, что я упустил? Он мог сгореть от 5 В вместо 3,3 Вольт?
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

JOHN2018 писал(а):При включении с напряжением питания 5 Вольт 8 первых квадратиков и всё.

Судя по даташиту питание 3 В
https://www.terraelectronica.ru/pdf/sho ... -XH-HS.pdf
Или подгорел, или скорее всего инициализация неправильная
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
xnikolas
Родился
Сообщения: 6
Зарегистрирован: Чт янв 07, 2016 07:48:34

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

Сообщение xnikolas »

Здравствуйте уважаемые друзья!!!Помогите пожалуйста если можете,я собрал DDS генератор на меге 16,индикатор мелтовский LCD MT-16S2R-3FLA нет индикации,программа работает на выходе сигнал есть,а на индикаторе ничего нету,при подаче напряжения стробы на все выводы индикатора приходят но на 2-3 секунды и затухают,индикатор менял,мегу16 тоже менял,читал что контроллер индикатора не проходит инициализацию.а это уже работа с прошивкой,а я в программировании полный ноль,я могу залить прошивку,запрограммировать фуз-биты,вот такая беда,помогите если можете,архив выложу.
Вложения
DDs-gener-mega16.rar
(991.17 КБ) 361 скачивание
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Может остался включенным JTAG? FUSE-бит JTAGEN=0 (изначально запрограммирован).
Аватара пользователя
audiocd
Грызет канифоль
Сообщения: 292
Зарегистрирован: Вт мар 15, 2016 23:30:43
Откуда: Краснодарский край

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

Сообщение audiocd »

xnikolas
Поговорить надо в личке.
xnikolas
Родился
Сообщения: 6
Зарегистрирован: Чт янв 07, 2016 07:48:34

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

Сообщение xnikolas »

Нет JTAG выключен.
Последний раз редактировалось xnikolas Вт мар 20, 2018 13:42:01, всего редактировалось 1 раз.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19044
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

есть у тебя личка, как и у всех...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
xnikolas
Родился
Сообщения: 6
Зарегистрирован: Чт янв 07, 2016 07:48:34

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

Сообщение xnikolas »

Да-Да Это я что-то смудрил прошу прощенья!!!
JOHN2018
Родился
Сообщения: 3
Зарегистрирован: Вс мар 04, 2018 17:31:43

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

Сообщение JOHN2018 »

[uquote="JOHN2018",url="/forum/viewtopic.php?p=3322787#p3322787"]Добрый вечер! Попался один упёртый дисплей sc1601aslb-sh-gs-r KS0066. При включении с напряжением питания 5 Вольт 8 первых квадратиков и всё. Пробовал подключать и к МК и к LPT компьютера (в режиме и 8 и 4 бит) - не в какую. Нашёл в одном даташите что напряжение питания 3,3 Вольт, попробовал, или не смог настроить контрастность или реально не было изображения совсем. Есть ещё один LCD китайский QAPASS 1602A вроде, так тот вообще всеядный: работает во всех перечисленных ранее режимах: и от 3 и от 5 Вольт, и 8 бит и 4 бит.
Что можно попробовать, что я упустил? Он мог сгореть от 5 В вместо 3,3 Вольт?[/uquote]
Процитировал своё сообщение. LCD sc1601aslb-sh-gs-r при питании 3,3 Вольт для контрастности требует -1,28 Вольт, но показывает также первые 8 квадратов. Похоже не проходит инициализация. Может подскажете что подправить? В архиве код и протеус, спасибо.
Вложения
8515+lcd перебор символов.rar
(47.78 КБ) 325 скачиваний
Аватара пользователя
audiocd
Грызет канифоль
Сообщения: 292
Зарегистрирован: Вт мар 15, 2016 23:30:43
Откуда: Краснодарский край

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

Сообщение audiocd »

JOHN2018
Попробуй так

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

        // Активизация четырехразрядного режима
   lcd_com(0x03);
   PORTC |= (1 << EN);
   PORTC &= ~(1 << EN);
   _delay_ms(10);
   lcd_com(0x02);
   PORTC |= (1 << EN);
   PORTC &= ~(1 << EN);
   _delay_ms(1); // можно попробовать уменьшить до _delay_us(200);
   lcd_com(0x28);
   lcd_com(0x0C);
   lcd_com(0x06);
   lcd_com(0x01);
   _delay_ms(5);
Аватара пользователя
pony sonata
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт май 24, 2018 09:38:55
Откуда: Украина

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

Сообщение pony sonata »

кто может поделиться схемкой, как программно управлять контрастом дисплея.
нашел 2 схемки. подскажите какая из них больше подходит?
схема 1:
СпойлерИзображение

схема 2:
СпойлерИзображение

номиналы со схемы 2:
СпойлерR1 Potentiometer 10 KOhm Linear Rotary 1/2W
R2 Resistor 22 KOhm 1/4 Watt 5% Carbon Film [View photo]
R3 Resistor 4.7 KOhm 1/4 Watt 5% Carbon Film [View photo]
R4 Resistor 680 Ohm 1/4 Watt 5% Carbon Film
Capacitors
C1 Electrolytic Capacitor 47 uF 16 Volts

з.ы. дисплей1602,контроллер 328 мега, питание 5в
-- Приключения маленькой пони в большом мире электроники --
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

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

Сообщение Ярослав555 »

Как по мне схема 2 как-то логичнее - есть подтяжка в виде R3.
Схема 1 суть такая же, только без подтяжки - значит либо подтяжка на плате дисплея, либо расчет идет на ток самого чипа/экрана, которому я бы не доверял :)))
Аватара пользователя
trengtor
Сверлит текстолит когтями
Сообщения: 1299
Зарегистрирован: Вт мар 31, 2015 22:56:07
Откуда: Мы люди простые, живем в лесу, на пенек молимся
Контактная информация:

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

Сообщение trengtor »

Поддержу. №2.
Изображение
Аватара пользователя
pony sonata
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт май 24, 2018 09:38:55
Откуда: Украина

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

Сообщение pony sonata »

замерил на дисплее сопротивление между V0 и VDD есть сопротивление 11кОм, т.е. есть подтяжка к плюсу
-- Приключения маленькой пони в большом мире электроники --
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

Можно левый вывод R4 подключить непосредственно к выводу порта контроллера, а номинал R4 увеличить до получения "крайней контрастности" при уровне на порте "0".
Если получится что номинал R4 придётся уменьшать - тогда оставляйте схему с транзистором №2.
Я бы ещё добавил диод (в обратном включении) с V0 на VDD чтоб не "прибить" вход V0 при выключении питания. Вероятность "убить" вход хоть и небольшая, но есть.
Аватара пользователя
pony sonata
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт май 24, 2018 09:38:55
Откуда: Украина

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

Сообщение pony sonata »

ну так то оно да - можно через резистор напрямую, но не нравится мне это. хоть там и потребление должно быть мизерное, но через транзистор спокойнее чтоль :)
-- Приключения маленькой пони в большом мире электроники --
Ответить

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