Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с ЖКИ на контроллере HD44780 и его аналогах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн авг 11, 2025 17:38:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 22, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт сен 30, 2010 11:31:32 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
Цитата:
Мля, это пипец а не код. Где хотя бы комменты?

Ну основные комменты вроде есть... А так каждая секция инициализаци подписана как в даташите.
Цитата:
Могу посоветовать давать самую первую команду на инициализацию два раза (с паузой, естессно). Мне помогло.

Ок, попробую.

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт сен 30, 2010 20:22:06 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июн 14, 2009 21:36:46
Сообщений: 53
Откуда: Кап.Яр-1 Астраханская обл.
Рейтинг сообщения: 0
Несколько слов о процессе инициализации ЖКИ-модуля. Производитель контроллера рекомендует выполнять следующую последовательность действий для инициализации. Выдержать паузу не менее 15 мс между установлением рабочего напряжения питания (> 4,5 В) и выполнением каких-либо операций с контроллером. Первой операцией выполнить команду, выбирающую разрядность шины (это должна быть команда $30 независимо от того, какой разрядности интерфейс вы собираетесь использовать в дальнейшем), причем перед выполнением этой операции не проверять значение флага BF. Далее опять выдержать паузу не менее 4,1 мс и повторить команду выбора разрядности шины, причем перед подачей команды вновь не производить проверку флага BF. Следующим шагом необходимо вновь выдержать паузу, на этот раз 100 мкс, и в третий раз повторить команду установления разрядности шины, вновь без проверки BF. Эти три операции являются инициализирующими и призваны вывести контроллер в исходный режим работы (то есть перевести в режим работы с 8-ми разрядной шиной) из любого состояния. Следом за ними нормальным порядком (без выдерживания пауз, но с проверкой флага BF) выполняется инициализация режимов работы с выдачей инициализирующей последовательности, аналогичной указанной в таблице 7 (содержащей в том числе команду выбора необходимой разрядности шины).

Таблица 7. Флаги, управляющие работой контроллера HD44780
I/D: режим смещения счетчика адреса АС, 0 - уменьшение, 1 - увеличение.
S: флаг режима сдвига содержимого экрана. 0 - сдвиг экрана не производится, 1 - после записи в DDRAM очередного кода экран сдвигается в направлении, определяемым флагом I/D: 0 - вправо, 1 - влево. При сдвиге не производится изменение содержимого DDRAM. изменяются только внутренние указатели расположения видимого начала строки в DDRAM.
S/C: флаг-команда, производящая вместе с флагом R/L операцию сдвига
содержимого экрана (так же, как и в предыдущем случае, без изменений в DDRAM) или курсора. Определяет объект смещения: 0 - сдвигается курсор, 1 - сдвигается экран.
R/L: флаг-команда, производящая вместе с флагом S/C операцию сдвига экрана или курсора. Уточняет направление сдвига: 0 - влево, 1 - вправо.
D/L: флаг, определяющий ширину шины данных: 0 - 4 разряда, 1 - 8 разрядов.
N: режим развертки изображения на ЖКИ: 0 - одна строка, 1 - две строки
F: размер матрицы символов: 0 - 5 х 8 точек, 1 - 5 х 10 точек.
D: наличие изображения: 0 - выключено, 1 - включено
С: курсор в виде подчерка: 0 - выключен, 1 - включен
В: курсор в виде мерцающего знакоместа: 0 - выключен, 1 - включен

_________________
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт сен 30, 2010 22:19:10 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
говорю же. всё делаю по даташиту. прямо по пунктам. ничего своего не выдумываю... Почему не видно мигающего курсора - ХЗ.
Ещё такой вопрос. Надо ли использовать в инициализации линию Е? Вроде это линия разрешения записи, но где описан процесс инициализации там про это ничего не сказано. Не понятно что с ней делать...

Old Grumble
Спасибо что не поленился отписать, но увы... У меня ЖКИ подключё к 2-м портам. Перевёл 0х30 в бинарный код с записал соотв. биты в порты. Нифига. Думаю не тут бок.

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт сен 30, 2010 22:44:07 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
давайте по порядку.
Зареджка 4мс. Дальше первый этам инициализации по 4-х битному интерфейсу.(см даташит).
Цитата:
;Function set

bcf lcd_D,RS; *bit set
bcf lcd_C,RW; *bit set
bsf lcd_D,DB7_busy_flag; *2-line mode
bsf lcd_D,DB6; *LCD вкл

Т.е. записали 0011. Остальные биты - нули.
задержка 4мс.

Второй этап.
Цитата:
;Display ON/OFF control
bcf lcd_D,RS; *bit set
bcf lcd_C,RW; *bit set
bsf lcd_D,DB7_busy_flag; *bit set
bsf lcd_D,DB6; *LCD on вкл ЖКИ
bsf lcd_C,DB5; *cursor on включить курсор
bsf lcd_C,DB4; *blink on
мигание курсора
Т.е. записано 001111. Остальные(ДБ0-ДБ3) не учавствуют. Всегда ноль.

задержка 4мс.

Третий этап.
Цитата:
;Display clear
bcf lcd_D,RS; *bit set
bcf lcd_C,RW; *bit set
bcf lcd_D,DB7_busy_flag; *bit set
bcf lcd_D,DB6; *bit set
bcf lcd_C,DB5; *bit set
bsf lcd_C,DB4; *bit set


000001

Чётвертый этап.
;Entry Mode Set

Цитата:
bcf lcd_D,RS; *bit set
bcf lcd_C,RW; *bit set
bcf lcd_D,DB7_busy_flag; *bit set
bsf lcd_D,DB6; *bit set
bcf lcd_C,DB5; *increment mode
bsf lcd_C,DB4; *entire shift on

000111
После этого как я понимаю должен появиться мигающий курсор. Но его нету...
Думаю что дело в линии Е. По ней передаются такты, судя по временной диаграмме из даташита. Вопрос что туда передавать и как.

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт сен 30, 2010 23:21:20 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
E - Это строб данных. так сказать защелка, если его не передернуть так : _/```\_ после подачи сигналов на входы, то данные не запишутся. естественно Е НУЖНО ИСПОЛЬЗОВАТЬ. как же вы даташит то читаете?! там же даже диаграмма нарисована.

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 00:20:29 
Родился
Аватар пользователя

Зарегистрирован: Вт янв 12, 2010 22:22:03
Сообщений: 4
Рейтинг сообщения: 0
Здравствуйте. Прошу помочь с проблемой.
Вообщем использую знаковый дисплей Winstar 1604 (4 строки по 16 символов) в связке с AVR ATmega8515. Код пишу в CVAVR 1.25.9.
При попытке использовать функцию lcd_clear; компилятор мне сообщает что "expression with possibly no effect". Долго и упорно использовал поиск, документацию, но нигде подобной проблемы не нашел. Причем компилятор ставит Варнинг на каждую строку, где используется эта функция
скриншот
прикладываю исходник. он пока еще очень абстрактный, просто скелет будущей программы, но рабочий. проблема стоит только в том, что дисплей не очищается.
в остальном дисплей отлично работает.

ps не откажусь от помощи в истолковании последнего варнинга на скриншоте по поводу функции MenuWaite :))


Вложения:
меню мк 2.rar [32.31 KiB]
Скачиваний: 268
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 07:32:40 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
я догадываюсь, что на самом деле то, что я скажу, никому не нинтересно... но удержаться не могу.

вы пишите в коде lcd_clear; - что это означает? если вы думаете, что это означает вызов функции очистки дисплея - вы ошибаетесь! это означает просто "адрес функции очистки дисплея". и скажите мне, компилятор увидел в тексте адрес - и что? что он может еще сделать, кроме как сказать, что это бессмысленная инструкция? вызов функции всегда сопровождается круглыми скобочками, т.е. вот так: lcd_clear();

то есть как обычно, я советую начинать с изучения Си...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 11:26:48 
Родился
Аватар пользователя

Зарегистрирован: Вт янв 12, 2010 22:22:03
Сообщений: 4
Рейтинг сообщения: 0
спасибо большое :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 21:20:26 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
короче вот в чём была проблема... Почему-то на РС5(ПИК18Ф4550) при записи в порт высокого было 1.3В :shock:. ЧТо это значит? Только на этмо выходе такое. Я так понимаю, если бы я попалил порт, то там бы не было ничего. Может это какой-то специальный вывод порта С, а я, дурак, не знаю?

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 21:38:28 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
RC4 и RC5 - это ещё лини данных ЮСБ. Как сделать чтобы они были обычными цифровыми входами/выходами?

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт окт 01, 2010 22:35:03 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
увы, никак... Они по даташиту только входы :cry:

_________________
Успех - императив!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн окт 04, 2010 12:35:09 
Встал на лапы

Зарегистрирован: Сб май 23, 2009 16:30:23
Сообщений: 139
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
уф... замучился я с одним дисплеем.

Помогите пожалуйста написать под него библиотеку для CodeVision, точнее мне не разобраться, как правильно надо инициализировать этот дисплей...

есть даташит на него
http://narod.ru/disk/25643475000/E-M202 ... A.pdf.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн окт 04, 2010 16:41:52 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб ноя 07, 2009 15:27:59
Сообщений: 194
Рейтинг сообщения: 0
Народ, подскажите что я делаю неправильно.

Не получается вывести значение напряжения на ЖКИ МТ16s2d. Сам дисплей нормально работает, выводит все что я его попрошу.
Запускаю АЦП (12 бит) встроенный в контроллер (ADuC812), он успешно генерирует прерывание, пишу вот такую функцию обработки прерывания, но почему то дисплей показывает нуль. Дробную часть я пока и не вывожу, но целую то он должен показывать. На входе АЦП прикошачена батарейка 1.5 В, опорное напряжение АЦП-2.5 В. В чем может быть дело?

В регистрах ADCDATAH и ADCDATAL лежит код сгенерированный АЦП.

void display_voltage(void) interrupt 6 {

unsigned int ADCValue;
unsigned char lcd_buffer[6];
ADCValue = (ADCDATAL + (ADCDATAH&0x0F))<<12;
ADCValue=(ADCValue*2500/4096);
ADCValue=ADCValue/1000;
sprintf (lcd_buffer,"U=%i V", ADCValue);
send_lcd(set_first_line, lcd_buffer);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн окт 04, 2010 19:47:31 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19758
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
kushman писал(а):
В регистрах ADCDATAH и ADCDATAL лежит код сгенерированный АЦП.

А ещё чем-нибудь вы его (код) можете проверить и убедиться, что АЦП даёт НЕ нули?

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн окт 04, 2010 20:29:07 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб ноя 07, 2009 15:27:59
Сообщений: 194
Рейтинг сообщения: 0
Gudd-Head писал(а):
kushman писал(а):
В регистрах ADCDATAH и ADCDATAL лежит код сгенерированный АЦП.

А ещё чем-нибудь вы его (код) можете проверить и убедиться, что АЦП даёт НЕ нули?


Нет. По крайней мере я другого способа не знаю :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн окт 04, 2010 22:38:49 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19758
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
kushman писал(а):
Нет. По крайней мере я другого способа не знаю :(

Ну так, может это не дисплей виноват, а АЦП? :wink:
Можно (по кр. мере в AVR) вывести в параллельном коде на какой-нибудь порт.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Вт окт 05, 2010 05:23:48 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июн 14, 2009 21:36:46
Сообщений: 53
Откуда: Кап.Яр-1 Астраханская обл.
Рейтинг сообщения: 0
Gudd-Head писал(а):
kushman писал(а):
Нет. По крайней мере я другого способа не знаю :(

Ну так, может это не дисплей виноват, а АЦП? :wink:
Можно (по кр. мере в AVR) вывести в параллельном коде на какой-нибудь порт.

А можно и наоборот - запустить преобразование, дождаться конца и вывести константу "123,34" - может в процессе преобразования чего-то заклинивает с интерфейсом,
а может и наоборот - не все сконфигурировано для АЦП

_________________
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср окт 06, 2010 15:42:52 
Встал на лапы

Зарегистрирован: Сб май 23, 2009 16:30:23
Сообщений: 139
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Перечитал все 20 страниц. Так и не понял. Есть ли библиотека для общения с дисплеем по 8-бит? Ибо насколько я понял мой дисплей не понимать 4-бита.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт окт 07, 2010 14:54:31 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб ноя 07, 2009 15:27:59
Сообщений: 194
Рейтинг сообщения: 0
Все заработало :) Но есть две проблемы:

1. Если вход АЦП "висит" воздухе, то дисплей показывает значение опорного напряжения. Это в принципе понятно, но иногда наблюдается аномалия: внезапно напряжение начинает падать, а потом снова восстанавливается до 2.5В (опорное напряжение АЦП). Снова держится некоторое время на 2.5В, а потом опять начинает падать. Если подать на АЦП какое либо напряжение, например батарейку 1.5В, то он показывает напряжение батарейки без каких либо сбоев.
Вообщем то это не страшно, главное напряжение измеряет как надо, вот следующая проблема меня волнует гораздо больше:

2. Если сначала подключить батарейку, а потом заземлить вход АЦП, то последние 2 разряда "зависают". То есть в дисплей никакой информации он них не посылается, хотя они должны сброситься в 0. Например, подключаю батарейку, он показывает: 1.578, потом заземляю вход АЦП и дисплей показывает: 0.078. Если же заземлить вход АЦП и нажать ресет, то на дисплее появляется 0.0.

То есть на дисплей не выводятся последние 2 разряда при нулевом напряжении. Как эту проблему исправить?

Вот рабочий код:

void display_voltage(void) interrupt 6 {

unsigned int ADCValue;
ADCValue = ADCDATAL + (ADCDATAH&0x0F)*256;
ADCValue=((long)ADCValue*2500)/4096;
sprintf (lcd_buffer,"U=%d.%d", ADCValue/1000, ADCValue%1000);
send_lcd(set_first_line, lcd_buffer);


}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт окт 07, 2010 18:24:09 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Сб июл 11, 2009 18:42:21
Сообщений: 1135
Откуда: Украина, г.Николаев
Рейтинг сообщения: 0
scrappy
Цитата:
Перечитал все 20 страниц. Так и не понял. Есть ли библиотека для общения с дисплеем по 8-бит? Ибо насколько я понял мой дисплей не понимать 4-бита.

Читайте даташит. Есть и по 8 есть и по 4(собсно отличие незначительно будет в коде.)Если использовать 8-ми битный интерфейс, то ЖКИ работает быстрее:).

_________________
Успех - императив!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 22, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y