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

 
 
 
Reply to this topicStart new topic
> Простейший вопрос по ЖКИ 44780, нужен аналог клавиши Enter
PhX
сообщение Sep 12 2008, 06:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249



Каким образом можно переместить курсор на начало 2 строки, 3-й, 4-й?
Как перейти на начало произвольной строки?
К примеру мы находимся в начале 2й строки напечатали "11111" и теперь хочется перейти на начало четвертой строки, допустим перешли, напечатали "22222", а теперь перешли на начало первой.


--------------------
Если все, то не я...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2008, 06:55
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(PhX @ Sep 12 2008, 09:50) *
Каким образом можно переместить курсор на начало 2 строки, 3-й, 4-й?
Не поверите. Командой Set Display RAM address. И адреса начал строк фиксированы. Это очень подробно описано в даташите на контроллер HD44780.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
PhX
сообщение Sep 12 2008, 08:10
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249



Цитата(Сергей Борщ @ Sep 12 2008, 11:55) *
Не поверите. Командой Set Display RAM address. И адреса начал строк фиксированы. Это очень подробно описано в даташите на контроллер HD44780.

Охотно верю, smile.gif только трафика на даташит не хватает, а методом тыка логику определить что-то не выходит. Напишите, если не трудно, адреса начал строк.


--------------------
Если все, то не я...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2008, 08:38
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Странный у вас интернет. На форум хватает, на даташит - нет. Ну да ладно, вашему начальству виднее...

1 - 0
2 - 0x40
3 - продолжение первой, т.е. 0x10 для 16 символов, 0x14 для 20, 0x18 для 24
4 - продолжение второй, т.е. 0x50 для 16 символов, 0x54 для 20, 0x58 для 24
для индикаторов 4*40 две верхние строки обслуживает один контроллер, две нижние - второй, т.е. там 1 и 3 строки имеют адрес 0, 2 и 4 - 0x40


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
otrog
сообщение Sep 12 2008, 08:45
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



для дисплея WH2004A
Код
__flash unsigned char ddram_hd[4] = {0x00, 0x40, 0x14, 0x54};
void goto_cursorXY(unsigned char x, unsigned char y)
{
  if ( x < 20 && y < 4 )
    lcd_write((x + ddram_hd[y]) | (1<<7), 0); // ---запись команды в HD44780
}

Адреса знакомест приводятся в доке на индикатор. Например для вышеназванного индикатора адреса на картинке.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
PhX
сообщение Sep 12 2008, 09:00
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249



Премного благодарен. Все понял. Всем спасибо. smile.gif
Интернет - очень уж хитрый предмет.... Если он есть....., то его сразу нет.


--------------------
Если все, то не я...
Go to the top of the page
 
+Quote Post

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

 


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


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