Jump to content
KOCTuK

Маленькая Бегущая Строка На Мк

Recommended Posts

В общем сделал я диплом свой. Хочется сделать на боковую панель экранчик с бегущей строкой.

С текстом примерно таким: Диагностический стенд для проверки.... Монтаж и наладка... Руководитель...

Индикатор самый простой, желательно не очень большой. 1 строка. Я смотрел их описание, у них есть уже свои МК? Я просто первый раз занимаюсь этим... Но желание разобраться есть...

Нужно один раз загнать туда текст и усё. Меняться они никогда не будет. Питание от 5V.

Программатора у меня нет. Так что МК помогите подобрать такой, чтобы к нему программатор можно попроще собрать было.

post-14283-1210400695_thumb.jpg

post-14283-1210400702_thumb.jpg

Share this post


Link to post
Share on other sites

Индикатор то какой хочешь использовать, как я понял ЖК?

Share this post


Link to post
Share on other sites

Индикаторов со встоенным МК я пока не всречал, максимум контроллер ЖК со знокогенератором.

Они способны после внешней инициализации и записи информации в ОЗУ отображать на экране статическую картинку.

Практически все продающиеся индикаторы имеют совместимую систему команд и программируются одинаково.

Некоторое отличие бывает в схеме регулировки контростности, индикаторы ряда производителей требуют для нее отрицательного питания.

Краткое описание продукции одного из производителей посмотри тут, и выбери подходящий тебе размер.

Производителя выберешь исходя из наличия продукции в магазинах своей местности.

По поводу МК все просто.

Практически все производители для своих МК выпускают оценочные комплекты, в их состав входят примеры программ.

Эти-же примеры можно скачать с сайтов производителей. Да и на форумах народ поделится.

Советовать то, что мне нравится в этой теме не буду, дабы не раздувать "религиозных войн"

Для начинающего, который будет что-то делать "для дома, для семьи" разницы в них нет.

Самый простой программатор, "4 проводка" имеют МК фирмы Атмел.

Но с ними новички имеют больше всего интимной связи.

Система "фьюзов" помогает новичку спалить немало кристаллов, да и в последствии иногда мешает.

Для остальные МК, обсуждаемые на форуме, в частности производства NEC или MicroChip, могут программироваться через простой преобразователь RS-232.

Это или 4 транзистора, или микросхема ADM232/max232/

Такой "программатор" без проблем собирается "на коленке" за полчаса, если не заморачиваться с печатью и ваять на макетке.

Edited by Migray

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

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

Подробнее

Ну 8 на 1 будет вполне достаточно.

нашёл вот такую схемку. Мне нужно то 1 раз забить в неё текст и всё. дальше она питается от 5В и показывает бегущий текст.

http://www.radiokot.ru/lab/controller/04/

Share this post


Link to post
Share on other sites

Итак, если жедание не отпало, то я посоветовал бы для этих целей приобрести ЖКИ 16х1 (1 строка в ней умещается 16 символов) думаю этого для бегущес строки достаточно будет. А для управления ЖК контроллер, например AT Mega8. Для бегущей строки думаю встроенного генератора на 1Мгц будет достаточно, поэтому фьюзы можно не прошивать-проблем меньше будет. На счет программатора-если у тебя есть LPT и хороший экранированный шнур из 5ти проводков-то все замечательно, и еще, питание стабилизированное должно быть. В итоге Мега8 к ней подключено 5 проводков к LPT 2 проводка питания и 7 проводков к ЖКИ. с программой проблем не будет!

Share this post


Link to post
Share on other sites
                     

Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino

Платы Nucleo и платы расширения X-NUCLEO от STMicroelectronics можно интегрировать в платформу Arduino с помощью библиотеки STM32duino. Связка плат Nucleo и платформы Arduino, и наличие готовых библиотек – представляет удобный инструмент для создания прототипов и конечных приложений в условиях ограниченного времени. Статья содержит пошаговые инструкции по установке библиотек и запуску примеров для Nucleo.

Подробнее...

Т.е. индикатор допустим такой? http://www.chip-dip.ru/product0/9000032673.aspx

Контроллер из этих? А какой именно? http://www.chip-dip.ru/search.aspx?searchtext=AT+Mega8

Встроенный генератор, значит что он уже в контроллере или в ЖКИ?

Экранированный провод на работе смогу спереть, метра ведь хватит? LPT есть.

А как потом? Я прошью и что дальше? Как она будет работать после отключения лпт?

Share this post


Link to post
Share on other sites

ЖКИ можно и такой взять, контроллер http://www.chip-dip.ru/product0/261212708.aspx это Мега в ДИП корпусе для удобства. Встроенный генератор в Меге, в ЖКИ уже все есть, а к Меге можно подключать внешний кварц на частоту до 16Мгц,но можно и без кварца, тогда по стандарту она работает от 1Мгц внутреннего генератора.У него точность поменьше, но для данной задачи я думаю это роли не сыграет) После приобретения соберете простейший программатор(железо) А софтовый программатор я использую встроенный в CodeVisionAVR, где и пишу программы на Си.

Share this post


Link to post
Share on other sites

Т.е. у меня получится 2 устройства?

1. Непосредствеено устройство с бегущей строкой

2. Программатор

Для бегущей строки мне нужно только ЖКИ и МК? А сопротивления там всякие или ещё что-нибудь нужно будет?

А с программатором вообще не ясно))))

Может начать со схем?

Share this post


Link to post
Share on other sites

"Программатор" самый просто представляет из себя LPT разъем(папа) от которого идут 5 проводков непосредственно к МК. Это линии MISO,MOSI(линии данных) Reset (линия сброса МК) Sck (тактирующая линия) и Gnd.Тоесть в Вашем устройстве можно поставить 5 штырьковый разъемчик и прошивать МК прямо в устройстве. Конкретно для данного случая лучше всего сделай платку, на которой панелька с МК, разъем для подключения LPT и разъем для подключения ЖКИ. Схемку чуть позже набросаю, а лучше-стучись в асю.

Share this post


Link to post
Share on other sites

Итак, вместе с KOCTuK`ом, продумали железную часть сего девайса, определились с МК -Мега 8. Писать прогу будем на Си в CVAVR. Так как раньше дела с ЖКИ такими не имел, прошу помощи в создании кода у других) Подскажите алгоритм реализации бугущей строки? (справа-налево, текст около 50 символов) Дисплей однострочный 16 символов. Заранее, спс!

Share this post


Link to post
Share on other sites

Итак мы с товарищем нашли гайку, теперь непонятно что с ней делать дальше :)

Читаем Гайка М3 и ТЗ на разработку и думаем.

По поводу алгоритма все просто.

Организуешь буфер для строки, массив char[50]

Если массив в оперативке, организуешь прием строки из UART и запись ее в буфер.

Если массив в ПЗУ, то заносишь символы при составлении программы.

Пишешь цикл для j

В нем будешь увеличивать переменную от 0 до 49, и потом опять начинать с 0

В этом цикле будешь вызывать еще один, вложенный.

Пишешь цикл для i на 16 шагов.

В нем будешь слать на индикатор 16 символов из своего массива

например

for (i=0;i<16;i++)

{

char[i+j] - перегоняем в ЖК

}

Только следи за индексом массива, (i+j) не должно превышать 50

Edited by Migray

Share this post


Link to post
Share on other sites

Если будет достаточно 40 символов, то можно использовать одну хитрость для упрощения. Дело в том, что ОЗУ строки в контроллере ЖКИ имеет длину в 40 символов, независимо от длины самого ЖКИ, т.е. дисплей 16 символьны, а буфер всё равно 40 байт. Таким образом можно однократно забить текст в буфер ЖКИ, а потом только давать команду "сдвиг дисплея".

Возможно я в чём-то ошибаюсь, (на практике проверял где-то в 2000 году - может чего изменилось...) но проверить думаю стоит.

зы Щас наткнулся на инфу, что в однострочных дисплеях буфер в 80 байт. Так что вам очень даже подойдёт этот способ!!

Вот здесь рис.3 поможет представить о чём я говорю...

Edited by YurkaM

Share this post


Link to post
Share on other sites

Да вот я тоже подумал, вывести текст сразу а потом сдвигать, но почему то не смог подать команду дисплею на сдвиг. Как правильно написать вывод команды сдвига на один символ влево?)

Share this post


Link to post
Share on other sites

Вроде вот такая команда на ЖКИ должна перемещать дисплей вправо (RS, DB7...DB0) = 0 00011100

А у тебя что происходит? Вообще никакой реакции?

зы

Забыл совсем, что у вас Си... Там наверно какая-то готовая функция должна быть

Edited by YurkaM

Share this post


Link to post
Share on other sites

Я вот по ДШ опускаю RS и пишу

lcd_write_data(0b00011100);

Реакции 0 ))

Опа, все получилось)) Не знаю, где была ошибка, но такая вот последовательность команд

lcd_putsf("ABCDEFGHIJKLMNOP");

RS=0;

_lcd_write_data(0x1C);

работает))

Share this post


Link to post
Share on other sites

Итак, написал цикл, бегущая строка получилась, скорость строки регулируется временем задержки между каждым инкрементом переменной i. По просьбе автора темы напишу подробные комментарии к программе и выложу сюда исходник, прошивку и схему девайса)

Share this post


Link to post
Share on other sites

Теперь возникла другая проблема - вывод русских символов. Как я почитал такое часто возникает, для перекодировки есть программа Hd44780.exe. Она создает массив, готовый для вывода. Для пробы написал "Привет". Программа выдала массив

/* [0] "Привет" */ flash unsigned char Mes[]={168,112,184,179,101,191,0};

Ну, вставил в программу, вывожу массив на дисплей

lcd_putsf(Mes);

в итоги на дисплее- ряд непонятных иероглифов.Вопрос-я не правильно делаю или это глюки эмулятора? (в протеусе смотрю))

Share this post


Link to post
Share on other sites

Возьми документацию на СВОЙ индикатор.

Расположение русских символов может отличаться.

Если индикатор не русифицирован, то вместо русских символов естественно будут крокозяблы.

Кодовая таблица одного из производителей была приведена в 3 посте.

Привожу еще раз. Кодовая таблица на 8 (237)странице.

P.S. При переходе от протеуса к реальному железу обратите внимание на 3 (230) страницу документа.

Бывают проблемы со входом контрастности, не все производители встраивают инвертор и ЖК требуют отрицательного питания.

Edited by Migray

Share this post


Link to post
Share on other sites

Ну собственно проект на стадии завершения. Программа написана, всё работает, но есть одна проблема.

Текст появляется не на 16 знаке, а на 8. Т.е. правая часть не работает в этот момент. Я где-то читал, немогу найти опять., что 16 значные индикаторы состоят как бы из 2 по 8. И бывают сложности при задании режима работы. Намекните нам........ ничего не найти по этой теме((((

Прошивка прилагается.

1.rar

Edited by KOCTuK

Share this post


Link to post
Share on other sites

Дополнение: в программе эмуляторе все работает отлично. Алгоритм таков - текст записан в буфер а на дисплей выводятся по 16 символов, сначала с первого, потом со второго и так далее. В начале текста 16 пробелов, чтобы текс как бы появлялся из-за правого края дисплея.Если у кого есть возможность проверить на своем дисплее-отпишитесь пожалуйста!!

Share this post


Link to post
Share on other sites

контроллер_LCD.pdf страница 15, там как раз о непонятках с 2 банками памяти.

Хотя контроллер KS0066 соместим с HD44780 по алгоритму работы, но у него могут быть немного другие временные диаграммы.

Попробуй поиграться скоростью обмена и задержками.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...