Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Новичек. Вопрос по LCD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
new
Допустим на LCD 2x16 выведен текс. В верхней строке текст должен не менятся
Как очистить нижнию строку LCD от старой информации для внесения новой
IEC
Во первых зачем стирать если можно ее просто переписать!
Фактической команды очистки фрагмента экрана нет. Только запись в соотсетствующие знакоместа кода 0x20.
svar
Елементарно! Записать туда "пустую строку", а потом - то, что требуется. Либо сразу новую поверх старой.
add
Хитрый вопрос...:-) Вам необходимо установить адрес начала второй строки и загнать текст. Очищать в принципе ничего ненадо..а если надо то просто заполнить символами пробела " " :-)
Да советую внимательно ознакомится с доками на LСD.
Вторая строка начинается не с адреса следующего после адреса последнего символа перой строки.
Вот два дока, один на русском - описание протокола.Другой описание контроллера HD44780 который в большенстве случаев, или схожий с ним, применяется в такого рода экранах. Удачи.
new
Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо
add
Цитата
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три

Пачаму? можно выставить адрес символа и записать только один.
Удобно для работы с lcd установить в нем режим автоматической сдвижки курсора на следующий символ в строке после пересылки в него символа. Но можно этот режим не включать и тупо писать символы по адресу в строке.
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
ESL
Цитата(new @ Jun 26 2007, 16:59) *
Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо

Ну или целиком переписывать весь текст, перед этим стирая весь экран.
new
to add

lcd_gotoxy(2,1);
lcd_putsf("5 all cicle");

вот результат 5 all cicle далее

lcd_gotoxy(2,1);
lcd_putsf("3 cicle");

вот результат 3 cicle cle
add
Цитата
lcd_gotoxy(2,1); lcd_putsf("5 all cicle");вот результат 5 all cicle далее lcd_gotoxy(2,1); lcd_putsf("3 cicle");вот результат 3 cicle

:-) вообщето я заядлый асемблерщик.. И в Си пока не силен..Но думаю Вам достаточно добавить пробелов в пересылаемой строке после "3 cicle" чтобы затереть предыдущую инфу.. По синтаксису лучше спросить у сишников..:-/
new
Вообщем то решение найдено забивать пробелами строку перед вводом или оставшиеся знакосмета LCD забивать пробелами, я просто думал может есть какая нибудь команда очистки фрагмента экрана.
Всем спасибо.
add
Цитата
просто думал может есть какая нибудь команда очистки фрагмента экрана

есть токо очистка полностью всего экрана (см. док прикрепленный выше по протоколу , табл.9)
new
to add
персональное спасибо, про lcd_clear(); я знаю.
просто мне нужно на определленое время стереть нижнюю строку, догадывался про пробелы,
но думал может есть какая нибудь команда которую я не знаю.
Adams_Taha
Цитата(new @ Jun 26 2007, 17:34) *
но думал может есть какая нибудь команда которую я не знаю.


Все зависит от того какой тип LCD (на базе какого контроллера) используется в железе. В datasheet описаны все возможные для контроллера комманды. В данном случае чтоб не загружать контроллер очисткой и записью, советую просто переписывать строку с пробелами там, где должно быть чисто до и после текста, дводя строку до 16 знаков, а после устанавливать курсор если он нужен в положении видимости.
IgorKossak
Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами.
add
Цитата(IgorKossak @ Jun 27 2007, 23:42) *
Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами.

?! wacko.gif
Цитата
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
day177
а у меня такой вопрос. Есть переменная Х, ее значение меняется. Как выводить ее значение на ЖКИ?
Wano
ну поищи функцию itoa для перевода числа в строку,дальше выводи на экран. Имеются и такие функции как sprintf. Они есть в CodeVision. Ещё как выход существуют исходники простых функций работы со строками в исходниках вижуала. Функции сильно заворочены,но работают как часы. Функцию itoa брал оттуда - копировать - вставить.Кстати брал потому,что родные функция не конвертит в хекс и бинарник.

Кстати такие функции как clearscreen плохо влияют на восприятие. Даже небольшое маргание начинает раздражать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.