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

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

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

gauss писал(а):А если строка будет очень большая, то может произойти выход за границы памяти дисплея?
Что значит слишком большая? Естессно, у контроллера память не резиновая и рано или поздно закончится.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Мучитель микросхем
Сообщения: 436
Зарегистрирован: Сб апр 10, 2010 16:46:26

Сообщение murzila »

2 MS24
Я надеюсь, Вы не в протеусе с индикатором упражняетесь? Если в нем, то очень рекомендую попробовать на реальном индикаторе. Раньше в протеусе была довольно кривая модель, и я изрядно подолбался лбом об стену с 16 символьным однострочником, пока не попробовал «в железе». С тех пор протеус не использую.
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Сообщение gauss »

Gudd-Head писал(а):Что значит слишком большая? Естессно, у контроллера память не резиновая и рано или поздно закончится.
Я имел в виду то, что нельзя сразу записать в контроллер дисплея всю строку, а потом показывать нужный фрагмент,
так как в к-р дисплея нельзя записать больше опр. числа символов
:idea:
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

К-р дисплея рассчитан для работы на дисплей 2 строки по 40 символов, т.е. 80 штук, КМК. От этого и пляшите. Если у вас дисплей 2×8 символов, то вы можете сначала залить в него 5 экранов, а потом просто показывать нужный.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Сообщение MS24 »

murzila писал(а):2 MS24
Я надеюсь, Вы не в протеусе с индикатором упражняетесь? Если в нем, то очень рекомендую попробовать на реальном индикаторе. Раньше в протеусе была довольно кривая модель, и я изрядно подолбался лбом об стену с 16 символьным однострочником, пока не попробовал «в железе». С тех пор протеус не использую.
Нет, я сразу с реальным работаю -)
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Сообщение gauss »

Кстати, такой вопрос:
Перед началом работы дисплей нужно инициализировать: очистить экран,
настроить ширину шины и режим отображения, инкремент/декремент адреса и прочее...
Эти команды можно выполнять в любой последовательности?
:idea:
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Рассуждайте логично- по любому сначала нужна инициализация в виде определения битности шины.Иначе просто будет ахинею принимать.
Далее по необходимости.
Очистку экрана лучше перед самым показом изображения.Как раз курсор в начале встает.
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Нет, не в любой последовательности. Вот, почитайте:
http://lib.chipdip.ru/243/DOC000243342.pdf
стр. 5.
Вот пройдя в точной последовательности все шаги приведенной инициализации дисплей будет 100% инициализирован.
Не умеешь - не берись, но не взявшись не научишься...
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Сообщение gauss »

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

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

Чтобы наверняка :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Сообщение gauss »

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

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

Серьёзно. Контроллер требует троекратного повторения этой команды. Что тут такого?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Сообщение gauss »

Действительно, стало работать стабильнее.
:idea:
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт сен 25, 2012 16:38:48
Откуда: Курган

Сообщение Durer »

Уважаемые, повторял я один проект, использовал дисплей DMC24227, который функционировал исправно до той поры пока я его не подключил к только что собранному устройству со свежепрошитой Atiny 2313. И все, теперь дисплей не работает ни при каком раскладе. Очень интересно, что его вывело из строя, неужели кривая/несовместимая прошивка тиньки(контроллер в дисплее то, что нужно 44780), а вот мои навыки по шитью контроллеров страдают пока. Или же то, что я не использовал резистор на регулировку контрасности, а запитал третью ногу напрямую 4,5В. Воздействию высоких напряжений дисплей не подвергался, напруга питания была 4,5В от батарейки.
Может быть какие то режимы самотестирования у дисплеев есть?
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

эти дисплеи потребляют достаточно много... Попробуйте от обычного компьюетрного +5В провода запитать. А что показывает дисплей?
Не умеешь - не берись, но не взявшись не научишься...
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт сен 25, 2012 16:38:48
Откуда: Курган

Сообщение Durer »

Arlleex писал(а): А что показывает дисплей?
Запитал от юсб. Выяснилась мне непонятная вещь, на дисплее светятся 15 прямоугольников в 2 ряда при приложении положительного полюса на землю(GRN) а отрицательного на Vo. если сделать все наоборот, не светится ничего. Кажется это напряжение смещения называется?
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

о, нет...
Подключить к 1 выводу GND, ко второму +5В, а к выводу Vo - подключите переменный резистор, на крайние выводы которого подайте GND и +5В...
После этого скажите что показал дисплей.
И ни в коем случае не перепутайте выводы питания...
Не умеешь - не берись, но не взявшись не научишься...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Durer писал(а):Запитал от юсб. Выяснилась мне непонятная вещь, на дисплее светятся 15 прямоугольников в 2 ряда
Нужно вам правильно выставить контрастность чем больше разница между VCC и Vo тем чернее изображение, соответственно, чернеть может только до определенного момента и если все до упора довести вы можете как раз увидеть одни квадраты вместо нужного изображения.
Если приложить к плюсу, то ничего не увидите совсем.
Durer писал(а):при приложении положительного полюса на землю(GRN)
Это вообще как???
Контактная информация:
Родился
Сообщения: 17
Зарегистрирован: Ср мар 30, 2011 08:38:07

Сообщение aalleexxaa »

Всем привет, у меня тоже после некоторых мучений появился вопрос по дисплеям:
Дисплей, как я понимаю, 1 строка 16символов некой модели PVC160101QYL, MADE in Taiwan, PIC16F84, программа самодельная, в протеусе проверенная. Суть программы: проверка LCD. На экран каждые 2,5секунды выводится последовательность символов вида: “FRq: XXXXXXXX11”, где X- передаваемый в LCD байт символа. Для следующей позиции байт увеличивается на +1. т.е. для некоторой строки это будет «FRq: ABCDEFGH11», для следующей «FRq: IJKLMNOP11»,.... Так вот проблема такая: при подключении LCD к питанию (без микроконтроллера), для «подгонки» яркости, «отображается» только 8 прямоугольников (места под символы); эти прямоугольники заполняют только половину экрана по длине (если не меньше). По высоте, вроде, посередине. При подключении схемы с PIC16F84, информация на LCD передается, и отображаются также только первые 8 символов строки. Фото прилагаю. Почему так?
Кстати, LCD имеет 16 контактов в один ряд.
Свой вопрос снимаю, методом тыка обнаружилось, что не было команды перехода на память "вирутальной второй" строки LCD (хотя экран физически однострочный). Подправил код, все заработало, как надо. Спасибо, кто откликнулся в личку.
Вложения
PIC16F84+LCD.jpg
(145.92 КБ) 428 скачиваний
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт сен 25, 2012 16:38:48
Откуда: Курган

Сообщение Durer »

Arlleex писал(а):о, нет...
Подключить к 1 выводу GND, ко второму +5В, а к выводу Vo - подключите переменный резистор, на крайние выводы которого подайте GND и +5В...
После этого скажите что показал дисплей.
И ни в коем случае не перепутайте выводы питания...
Кажется разобрался, сделал все как выше описано, теперь на дисплее высвечивается верхний ряд прямоугольников целиком, контастность регулируется переменником.Спасибо! Я то ведь по свому недоумию думал, что чем выше напруга Vo, тем контастнее будет изображение, а там все не так просто.
vitalik_1984 писал(а):Это вообще как???
Каюсь, с больной головы написал...
Ответить

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