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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

Прошу Модератора "вынести в шапку темы" строку: После INIT-а надо дать команду "включить индикатор"
С Уважением, Альберт (Albert_V).
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Albert_V писал(а):Прошу Модератора "вынести в шапку темы" строку: После INIT-а надо дать команду "включить индикатор"
а я бы попросил вас либо быть внимательнее, либо пользоваться готовыми решениями, коих больше, чем требуется.
Последний раз редактировалось ARV Вс фев 22, 2015 07:02:15, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

Купил на ибее....... Дисплей 1602А контроллер SPLC780D. Методы инициализации для HD44780 тут не работают. Что только не пробовал :cry:
Может кто имел дело с дисплеями на данном контроллере.
"Подключал к меге16"
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

ТОХЫЧ писал(а):Купил на ибее.......
А зачем вы покупали то, что заведомо не сможете подключить? :shock:
ТОХЫЧ писал(а):Методы инициализации для HD44780 тут не работают.
А может вы не правильно его инициализировали?
ТОХЫЧ писал(а):SPLC780D
Ну судя по даташиту это тоже самое, что и в этой теме. Т.е. запустить его просто. Для чего следует внимательно почитать эту тему. Я когда свой первый раз запускал похожий дисплей прочитал все страницы, потом начал задавать вопросы.
А вы могли бы перечислить подробно, что испробовали? И фотки показать, как подключали.

З.Ы. Вот даташит: http://www.hebeiltd.com.cn/lcm.datashee ... 80D_DS.pdf

http://caxapa.ru/120373.html
Станислав
Реклама
Эиком - электронные компоненты и радиодетали
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

А зачем вы покупали то, что заведомо не сможете подключить?
Давайте не будем... :) Покупался дисплей на контроллере HD44780, а там китайский аналог :? Изначально программа отлажена в Протеусе под контроллер HD44780.
А может вы не правильно его инициализировали?
Собственно это и есть суть вопроса.
Даташит прочтен от корки до корки. Подключал как по 4 так и по 8. Задержки выставлял в точности с указанными в даташите.
Для начала хочу уточнить какой кварц нужен для работы микроконтроллера с данным дисплеем и нужен ли он вообще.

P.S. код чуть попозже.
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

Кварц на ваше усмотрение. Просто для формирования задержек при инициализации надо будет вычислить время в зависимости от частоты тактирования.
Задержки можно делать больше, чем указано в даташите.

С Протеусом вообще рекомендую связываться в самом крайнем случае. Т.к. в нем бывает и работает все, а на деле в железе будут одни ошибки. Протеус-Зло.

И проверьте на каком порту сидит дисплей в Меге16, иногда забывают отключать ДЖИТАГ, который у нее по умолчанию всегда включен.
А изначально, подключите питание к дисплею и потенциометр на контрастность. Попробуйте без всяких МК просто настроить контраст, чтобы было слегка видно закрашенные квадратики в верхней строке. А уже после этого мучить МК, чтобы наконец-то что-то показывать стало. ))))

Примерно так пока.
На каком языке хоть код???
Станислав
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

СКАЗОЧНИК писал(а):Протеус-Зло.
добавляйте "по моему мнению", ибо это очень-очень-очень предвзятое утверждение.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
abc
Друг Кота
Сообщения: 3686
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

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

Сообщение abc »

... и по мнению еще очень многих )
Ситуация, согласитесь, отнюдь не в пользу этого самого протеуса.
Был написан некий код для HD44780. Который, вроде бы, работал в симуляторе. Но не проверялся в железе.
Теперь куплен ЖКИ на полном аналоге этого контроллера, но с ранее писанным кодом, который, повторюсь, НЕ проверялся в железе, он не работает.
Ну и кто из них ?..
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

ТОХЫЧ писал(а):Дисплей 1602А контроллер SPLC780D.
Мало инфы. Схема подключения, код?
Может, у вас тупо не хватает напряжения для контрастности.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

abc писал(а):... и по мнению еще очень многих )
Ситуация, согласитесь, отнюдь не в пользу этого самого протеуса.
вы знаете, сколько людей в год погибает от ран, нанесенных умышленно или по неосторожности отверткой? так что, следует признать, что отвертка - зло?

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

Мой уютный бложик... заходите!
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

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

#define F_CPU 8000000UL// Внутренний генератор
#include <avr/io.h>
#include <util/delay.h>
// Подключение: К портуВ 
// RS-B0, RW-GND, E-B1, D4-B4, D5-B5, D6-B6, D7-B7



#define PORTLC PORTB //  Порт подключения к ЖКИ
#define DDRLC DDRB //    Определяем направленность вход/выхода порта
#define poryd 0b11110011// Определяем подключенные ножки порта к ЖКИ
#define E PB1  // Нога подключенная для передачи строба подтверждения передачи данных
#define RS PB0  // Нога для (команда или данные) передачи данных
#define E1 PORTLC |= _BV (E); // E=1
#define E0 PORTLC &= ~_BV (E); // E=0
#define RS1 PORTLC |= _BV (RS); //RS=1
#define RS0 PORTLC &= ~_BV (RS); //RS=0

void  command_lcd (unsigned char cmd)
{
	PORTLC = (cmd & 0xF0); // Передаем старший полубайт *1111 0000 
	RS0;   // Для передачи комманды
	E1;     // Подтверждение передачи данных
	_delay_us (2); // Небольшая задержки для обработки команды    контроллером ЖКИ
	E0; // Окончание импульса строба
	PORTLC = ((cmd & 0x0F) << 4); // Передаем младший полубайт * 0000 1111
	RS0;
	E1;
	_delay_us (2);
	E0;
	_delay_us (2);
}

void Initialization (void) // Определяем функцию инициализации //
{
	DDRLC = poryd; // подключенные к жки устанавливаем в 1- выходы, два  не использующихся оставляем как входы 
	PORTLC = 0x00; // устанавливаем на выходах 0, где по условию RS and RW также должны быть = 0.
	_delay_ms (20); //  Wait time > 15 ms

	command_lcd (0x30); // 0011 0000 rw=0, rs=0
	_delay_ms (5); // Wait time > 4.1 ms
	command_lcd (0x30); // 0011 0000 rw=0, rs=0
	_delay_us (120); // Wait time > 100 us
	command_lcd (0x30); // 0011 0000 rw=0, rs=0
	
	command_lcd (0x20); // 0010 0000 rw=0, rs=0
	command_lcd (0x20); // 0010 0000 rw=0, rs=0
	command_lcd (0xc0); // 1100 0000 rw=0, rs=0
	command_lcd (0x10); // 0001 0000 rw=0, rs=0 Display clear
	command_lcd (0x60); // 0110 0000 rw=0, rs=0 Entry mode set

	
	
}
...........
int main(void)
{
       Initialization ();
       InstallationCursor (4, 2);
       _delay_us (50);
       PrintString ("Hello" );
}
Инициализация написана по даташиту на SPLC780D
Теперь куплен ЖКИ на полном аналоге этого контроллера
Не полный аналог.
Последний раз редактировалось ТОХЫЧ Пн мар 30, 2015 10:42:55, всего редактировалось 1 раз.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

ТОХЫЧ, повторюсь: напряжение питания? При выкручивании контраста на максимум закрашенные квадратики появляются?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

Gudd-Head писал(а):ТОХЫЧ, повторюсь: напряжение питания? При выкручивании контраста на максимум закрашенные квадратики появляются?
Да с контрастом все ок. При включении верхняя строка заполняется квадратами.
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

СКАЗОЧНИК писал(а): И проверьте на каком порту сидит дисплей в Меге16, иногда забывают отключать ДЖИТАГ, который у нее по умолчанию всегда включен.
Подключал к порту D так что jtag не мешает поскольку он на С.
У меня скорее проблема с задержками и командами в самой функции иннициализации.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

А это вся программА? А где основной цикл? Я уже плохо Си помню, однако, не могу понять в какой последовательности все происходит... :roll:
Станислав
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

ТОХЫЧ писал(а):

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

command_lcd (0x20); // 0010 0000 rw=0, rs=0
command_lcd (0x20); // 0010 0000 rw=0, rs=0
command_lcd (0xc0); // 1100 0000 rw=0, rs=0
Добавьте внутрь command_lcd в самое начало задержку 50..100 мкс, а то у Вас команды идут подряд одна за другой, и дисплей их тупо не успевает обработать. А статус Вы не читаете. Между двумя стробами в command_lcd тоже небольшая задержка не помешает.
Последний раз редактировалось WiseLord Пн мар 30, 2015 11:07:52, всего редактировалось 1 раз.
ТОХЫЧ
Родился
Сообщения: 10
Зарегистрирован: Сб ноя 22, 2014 22:41:49

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

Сообщение ТОХЫЧ »

СКАЗОЧНИК писал(а):А это вся программА? А где основной цикл?
Нет не вся. Это и есть суть вопроса Инициализация
А статус Вы не читаете
.
Нет RW на GND
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

Первые три команды инициализации не надо передавать вторую тетраду. Только старший полубайт.
Станислав
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Да, посмотрел ещё раз внимательнее. Инициализация совсем неправильная.

Первые три command_lcd (0x30) и последующая command_lcd (0x20) должны выполняться с одним стробом (в 8-битном режиме), и только последующие уже с двумя стробами (в 4-битном). А так у Вас инициализация идёт чёрти-как, в микросхему идут не 0x30 - delay - 0x30 - delay - 0x30 - delay - 0x20 инициализирующие данные, а что-то вроде 0x30 - 0x00 - delay - 0x30 - 0x00 - delay - 0x30 - 0x00 - delay - 0x20 - 0x00.

P.S. 2 СКАЗОЧНИК: разошлись на полминуты :)

Ну а предыдущее моё сообщение по поводу задержек в начале command_lcd (ввиду отсутствия здесь чтения статуса) тоже примите к сведению.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

:))) :))) :)))

и вот эта лишняя одна

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

command_lcd (0x20); // 0010 0000 rw=0, rs=0
И следующие команды (очистка, курсор и т.д. и включение дисплея) не совсем понятны... Как будто тетрады перевернуты. :dont_know:

У меня используется команда для очистки дисплея 0000 0001... (хотя, это может быть только у меня так, забыл уже. )))))
Последний раз редактировалось СКАЗОЧНИК Пн мар 30, 2015 11:32:57, всего редактировалось 1 раз.
Станислав
Ответить

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