реклама на сайте
подробности

 
 
> Пример кода для atmega328 + LCD
POLL
сообщение Dec 15 2011, 12:33
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 300
Регистрация: 11-06-11
Пользователь №: 65 640



Добрый день!

Подскажите, пожалуйста, простой пример кода на Си по работе с текстовым экраном 16*2, в 4bit режиме.

Соединения:
DB4 -> PORTB0
DB5 -> PORTB1
DB6 -> PORTB2
DB7 -> PORTB3

RS -> PORTB4
R/W -> PORTB5

Enable -> PORTD7


Перерыл в сети кучу примеров - ну все с ошибками в коде, у кого #define F_CPU не прописан, у кого синтаксические ошибки...
Делаю все в AVR Studio. Собственно, для OLED индикатора WEH001602 пишу инициализацию, пока ни в какую, то вроде зафурычит, а потом хоп и погаснет или выведет не на той строке или ни в том месте или закарючки пойдут...

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bolden
сообщение Dec 18 2011, 14:59
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 26-12-10
Из: Санкт-Петербург
Пользователь №: 61 884



Взято отсюда : http://www.gaw.ru/html.cgi/txt/lcd/chips/hd44780/start.htm

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

Необходимо помнить, что когда Вы объявляете режим работы с 4-х разрядной шиной, то есть выдаете команду $20, то делаете это обычно из 8-ми разрядного режима, который устанавливается автоматически после подачи напряжения питания, а значит вы не сможете адекватно объявить необходимое значение флагов N и F, располагающихся в младшей тетраде команды установки разрядности шины. Поэтому команду необходимо повторить в уже установившемся 4-х разрядном режиме путем последовательной передачи двух тетрад, то есть для 4-х разрядного режима образом"

Алгоритм спользовал как для 16x4 так и для 20x4, проблем не было


Чуть не забыл иногда были глюки, но помогла установка небольших задержек между переключением RW, и E сигнала и DATA сигналов.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 05:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016