Работа с ЖКИ на контроллере HD44780 и его аналогах
- Сообщения: 44
- Зарегистрирован: Пн июл 25, 2011 22:24:41
Привет всем! Решил по крамсать жк 16*2 (2 строки по 16 знакомест) на контроллере HD44780 навыков в написании нет . Проект готовый на английськом хотелось бы перевести на руский подсмотрел Темброблок с микроконтроллерным управлением на TDA8425. там описано как в еепр. поменять символы выбрав нужные буквы. открыл свой контроллер в юнипрофе нарыл слова перевел втулил туда и вот фонарь не работает под толкните куда ити иль хотябы направления и бём роботы ? спасибо.
- Реклама
- Сообщения: 44
- Зарегистрирован: Пн июл 25, 2011 22:24:41
Спасибо ! нашол где собака зарыта вопрос решон!!!!
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Ребят подскажите пожалуйста, инициализирую дисплей (LCM1602K-FSW-GBW-R hd44780) значением работы на две строки, т.е шлю на DB0 - 7 значение 0b00111000, 8 бит 2 строки. Но при подаче питания высвечивается только одна верхняя! Крутил резистором контрастность, но меняется только у первой строки, вторую вообще нигде не видно, в чем может быть проблема?
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Неправильно проинициализировал, теперь все появилось, вторая строка светится, но на нее почему-то не переходит текст теперь ((
Так, насколько помню, вроде и не должен. Надо дать команду курсору перейти на 2-ю строку перед выдачей туда текста.
- Реклама
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
А что это за команда, я в даташите не видел?Jack_A писал(а):Так, насколько помню, вроде и не должен. Надо дать команду курсору перейти на 2-ю строку перед выдачей туда текста.
- Сообщения: 436
- Зарегистрирован: Сб апр 10, 2010 16:46:26
А если повнимательнее почитать даташит? Напомните-ка мне адрес начала второй строки. И команду Set DDRAM Address Вы, конечно же, не видели?
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
0×40 до 0×67murzila писал(а):А если повнимательнее почитать даташит? Напомните-ка мне адрес начала второй строки. И команду Set DDRAM Address Вы, конечно же, не видели?
0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0
И что с ними делать? В начале записать значения, потом экран?
Надо не спрашивать, а пробовать. Если не получается - тогда спрашивать 
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
В общем на вторую строку как перейти я понял, спасибо за объяснения!
Теперб вопрос, как можно двигать экран? в даташите я нашел бит отвечающий за сдвиг, установил его, но что-то не наблюдаю движения, т.е данные пишутся, но уходят в невидимую часть.
Теперб вопрос, как можно двигать экран? в даташите я нашел бит отвечающий за сдвиг, установил его, но что-то не наблюдаю движения, т.е данные пишутся, но уходят в невидимую часть.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
По простому мне нужно сделать бегущую строку, может кто нибудь объяснит как?
Насколько я понял из даташита нужно как раз записать в невидимую область и из нее будет выезжать то, что необходимо.И вроде есть специальная команда сдвига.Есть влево и есть вправо сдвиг.
Вроде как нужно установить разрешение сдвига сначала, потом уже сам сдвиг делать.
разрешение сдвига в таблице команд- Entry set mode
сдвиг курсора или экрана -Cursor or display shift.
Вроде как нужно установить разрешение сдвига сначала, потом уже сам сдвиг делать.
разрешение сдвига в таблице команд- Entry set mode
сдвиг курсора или экрана -Cursor or display shift.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Вот я установил бит разрешающий сдвиг экрана S. Пишу данные, но тупо доходит до видимой области и уходит в никуда. А как этот сдвиг делать?vitalik_1984 писал(а): Вроде как нужно установить разрешение сдвига сначала, потом уже сам сдвиг делать.
разрешение сдвига в таблице команд- Entry set mode
сдвиг курсора или экрана -Cursor or display shift.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Вот прикрепил свой код, может кто сможет сказать где ошибка...
- Вложения
-
- LCD_Test.c
- (2.39 КБ) 237 скачиваний
- Сообщения: 436
- Зарегистрирован: Сб апр 10, 2010 16:46:26
В даташите есть всё, что вам нужно, читайте внимательнее. Можете ещё глянуть даташит на контроллер KS0066U, это аналог HD44780.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Я уж весь даташит излазил, я просто не могу понять последовательность команд... сам алгоритм.murzila писал(а):В даташите есть всё, что вам нужно, читайте внимательнее. Можете ещё глянуть даташит на контроллер KS0066U, это аналог HD44780.
Я же написал, что там отдельная команда в таблице команд обозначена как -Cursor or display shift
RS 0
R/W 0
DB0,1 - не влияют
DB2 - R/L направление
DB3 - S/C экран, курсор
DB4 1
DB5-DB7 0 остальные нули.
Как то так.Видно нужно отправить команду нужного формата и все пойдет.
Попробуйте вместо функции инициализации сдвиг сделать, когда в дисплее есть символы для отображения.
А то вы только ввели их
в основном цикле и все.
RS 0
R/W 0
DB0,1 - не влияют
DB2 - R/L направление
DB3 - S/C экран, курсор
DB4 1
DB5-DB7 0 остальные нули.
Как то так.Видно нужно отправить команду нужного формата и все пойдет.
Попробуйте вместо функции инициализации сдвиг сделать, когда в дисплее есть символы для отображения.
А то вы только ввели их
в основном цикле и все.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
Использовал эту команду, просто в видимой области печатается текст и уходит в невидимую. Никакого сдвига не происходит (vitalik_1984 писал(а):Я же написал, что там отдельная команда в таблице команд обозначена как -Cursor or display shift
RS 0
R/W 0
DB0,1 - не влияют
DB2 - R/L направление
DB3 - S/C экран, курсор
DB4 1
DB5-DB7 0 остальные нули.
Как то так.Видно нужно отправить команду нужного формата и все пойдет.
Попробуйте вместо функции инициализации сдвиг сделать, когда в дисплее есть символы для отображения.
А то вы только ввели их
в основном цикле и все.
- Сообщения: 172
- Зарегистрирован: Пн мар 19, 2012 13:04:11
А команду Display Shift достаточно один раз записать в инициализации, или после каждой записи посылать еще раз?
А если строка будет очень большая, то может произойти выход за границы памяти дисплея?


