Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.
Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8. В чём может быть дело? Это с дисплеем что-то или с моими руками?
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт окт 08, 2010 08:06:57
Встал на лапы
Зарегистрирован: Сб май 23, 2009 16:30:23 Сообщений: 139 Откуда: Санкт-Петербург
Рейтинг сообщения:0
Roman Venom писал(а):
Читайте даташит. Есть и по 8 есть и по 4(собсно отличие незначительно будет в коде.)Если использовать 8-ми битный интерфейс, то ЖКИ работает быстрее:).
Не всё так просто(((. У меня VFD дисплей HD44780 но со стандартом motorola-68. Передачу данных по 4-ём битам он не поддерживает. Вот даташит на него http://narod.ru/disk/25643475000/E-M202 ... A.pdf.html (размер 311 кб)
За вместо RS R/W и E, у него WR (он же R/W), SEL(он же Е), и пин BUSY, (насколько я понял используются только первые два) Временные диаграммы у него такие же, как и у HD44780, отличается только процедура инициализации.
По началу я думал, что он поддерживает 4-ёх битную шину. Но выводит он мне на экран всякую билеберду не синхронизированную, состоящую из первых четырех-пяти символов инициализации(происходит это потому, что на D0-D3 висят в воздухе, и он выводит их по адресу D0-D3 - 1111 D4-D7 - 0011(0001)
потом попросив у FUTABA нормальный даташит на дисплей, прочитав его, понял, что о 4-ёх битной шине там не слова, и соответственно он её не поддерживает.
Покурив я\гугл, пришел в выводу, что по 8-бит общается библиотека LCDSTK.lib и LCDSTK.h. Но схема подключения дисплея STK200 какаято пипец мудренная
собственно с ней вопрос, почему там, стоит такая развязка сигнала E? зачем надо тратить драгоценные лапы контроллера?
Ведь такая-же не пруха произойдет у того, кто решит выложить 5000р за дисплей http://www.chipdip.ru/product/m202md15aj.aspx (мне два бесплатно достались) и будет как и я надеяться, что дисплей без труда воткнеться в проект.
потом проблема номер два, и вообще изза чего весь сыр.
В этом девайсе используется кириллица, которой у меня на VFD нет. (это я понял по огрызочному даташиту на дисплей) Попросил я автора, скинуть мне на мыло прошивку с английским вариантом меню. Он сказал, что с английским нет. Но вот на тебе исходник, переведи, и будет тебе английский.
Исходник я перевел, в проекте протеуса всё работает и на меге16 и на меге128. тоесть английское меню есть. На макетке всё вышло куда хуже... Дисплей не поддерживает 4-х битную адресацию... + в программе уже прописаны некоторые порты для кнопок, датчиков и т.д. и пихать библиотеку STK не получаеться, ибо даже в ней поменять пины я не умею.
помогите разобраться. А то два дисплея валяются без толку. Может один кому презентую в питере...
----------(происходит это потому, что на D0-D3 висят в воздухе, ---------- а землить их не пробовал?
_________________ «Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.
Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8. В чём может быть дело? Это с дисплеем что-то или с моими руками?
Спасибо.
если PIC12-PIC16 прочитай http://radiohlam.ru/control/dot_matrix_LCD.htm просмотри как формируются задержки - таймером или подпрограммами цикла и тогда уж определи - как влияет кварц
_________________ «Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт окт 08, 2010 15:31:30
Встал на лапы
Зарегистрирован: Сб май 23, 2009 16:30:23 Сообщений: 139 Откуда: Санкт-Петербург
Рейтинг сообщения:0
Old Grumble писал(а):
----------(происходит это потому, что на D0-D3 висят в воздухе, ---------- землить их не пробовал?
вот, только сейчас, ради спортивного интереса попробовал...
один фиг. не инициализируется выводит на экран 4 символа какбы инициализации которые делает мега и затыкается. хотя он их вообще показывать не должен...
Блин такой вкусный экран... а заставить работать целая эпопея...
----------(происходит это потому, что на D0-D3 висят в воздухе, ---------- землить их не пробовал?
вот, только сейчас, ради спортивного интереса попробовал...
один фиг. не инициализируется выводит на экран 4 символа какбы инициализации которые делает мега и затыкается. хотя он их вообще показывать не должен...
Блин такой вкусный экран... а заставить работать целая эпопея...
1. Принципиально есть 2 подхода к управлению ЖКИ: -с поллингом (опросом состояния) -и с гарантированными задержками на срабатывание контроллера дисплея. В случае поллинга и/или чтения из ОЗУ контроллера вывод W/R - задействуется и участвует в работе. В случае гарантированных задержек его можно заземлять. 2. Даже если ЖКИ совсем нерусский его можно использовать путем прошивки первых 8-ми символов знакогенератора (в том числе и динамически) - т.е. одномоментно на дисплее не должно быть более 8-ми прошитых символов. (я пробовал прошивать псевдографику для отображения перемещения ползунка как бы громкости, баланса тембра и т.д.) 3. А если он выводит на дисплюй то чего даешь - нафиг ваще инициализировать/программировать - получается что протокол-то инициализации другой, не от 44-го
_________________ «Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
По началу я думал, что он поддерживает 4-ёх битную шину. Но выводит он мне на экран всякую билеберду не синхронизированную, состоящую из первых четырех-пяти символов инициализации(происходит это потому, что на D0-D3 висят в воздухе, и он выводит их по адресу D0-D3 - 1111 D4-D7 - 0011(0001).
Ну да. В даташите нету выбора интерфейса...ЖКИ не русский. Так что придётся использовать 8 бит.
Цитата:
В этом девайсе используется кириллица, которой у меня на VFD нет
Я скачал с радиокота прогу хорошую. Пишешь слово - оно тебе 16-ричный код. Удобно. Твой ЖКИ должен скушать этот код.
Цитата:
помогите разобраться
Не знаю, возможно ли прошить контроллер ЖКИ так хитро, чтобы он стал понимать передачу по 4-м битам... Может, какие-то коты-кулибины такое и вытворяли. Ваще можно купить нормальный ЖКИ с 4-х битным интерфейсом, а те потом заюзать под 8-ми битный:)
Читайте даташит. Есть и по 8 есть и по 4(собсно отличие незначительно будет в коде.)Если использовать 8-ми битный интерфейс, то ЖКИ работает быстрее:). Не всё так просто(((. У меня VFD дисплей HD44780 но со стандартом motorola-68. Передачу данных по 4-ём битам он не поддерживает. Вот даташит на него http://narod.ru/disk/25643475000/E-M202 ... A.pdf.html (размер 311 кб)
Дисплей канешна жутко интересный - раньше надо быдо датушиту мне глянуть - инициализации по датушиту не требует система команд больше похожа на принтер (горизонтальная и вертикальная табуляция), русских нет адрес второй строки смещен - 0х14. Ваще очень простая система команнд - секция 3-2 даташитты Яркость (dimming) меняется, понятно, повторюсь на экране может быть 4 прошитых (определенных пользователем ) любых символа define UFO0~3. По поводу проги - написал слово она тебе код в этом случае не проходит (русских буков нету), Однако по даташиту она еще и прет в обычном rs232 - (serial)! где используется всего 2 ноги )) По поводу 4-8 ног переделка - хватает ног - переписывай софт, не хватает - пробуй rs232 и переписывай софт, или можно конечно сделать адаптер на корпусе логики и паре регистров для конвертации протокола 4-х проводного в 8-ми проводной, ну типа вначале пишешь полбайта в один 4-х разрядный регистр, потом 2-е полбайта - в другой , потом отдаешь байт на жки...... но это гемор конкретный - проще все таки на serial перейти
_________________ «Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт окт 12, 2010 17:44:47
Встал на лапы
Зарегистрирован: Сб май 23, 2009 16:30:23 Сообщений: 139 Откуда: Санкт-Петербург
Рейтинг сообщения:0
Уф, спасиба всем. Но я не выдержал. и купил обычный ЖК дисплей, Ибо скоро будет холодно, хочется все сделать пока еще тепло. Но потом обязательно вернусь к этим злосчастным дисплеям)))
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт окт 12, 2010 17:59:10
Друг Кота
Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 19733 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
scrappy писал(а):
купил обычный ЖК дисплей, Ибо скоро будет холодно, хочется все сделать пока еще тепло.
Мдя, программить не с паяльником играться — холодно
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.
Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8. В чём может быть дело? Это с дисплеем что-то или с моими руками?
Спасибо.
Привет TripleKill и все читающие эту ветку. Столкнулся и я с такой же проблемой как и ты. Вообщем перекопал кучу литературы, моделировал в протеусе и ничего у меня не выходило. Дисплей включался и отображал одну цифру по середине экрана, после долгих манипуляций получилось выводить и другие цифры,но только до конца ряда. И ну нечего с ним не сделать. Управлению дисплей не поддавался. Шину использовал 4-ёх битную. Бит занятости я не проверяю(не хватает выводов портов). Вообщем время потерял массу. Бросил всё и решил перевести оригинальный datasheet. Там инициализация очень классно описана. Сделал, как там рекомендуется и Ура! ЗАРАБОТАЛО! Так что если нужно есть исходник и модель в протеусе для PIC16F84A Всё работает. Правда на железе ещё не опробовал.
может кто встречал макетку или печатку(одностороннюю) какого нибудь устройства ATmega8(dip или smd) и WH1602, что бы одна плата была над другой и соединялись штырковым разъемом?
Простите, что вклиниваюсь в тему. Только начинаю работать с микроконтроллерами. Хочу реализовать простейший пример сопряжения AVR2313 и WH1602D (вывод заданной строки символов), но при этом полностью разобраться и понять, что к чему. Кое-что нарыл в инете, но мучают несколько вопросов: 1) А какая все-таки информация передается по линиям связи D0-D7 от AVR-ки к ЖКИ? Адрес требуемого для вывода на индикатор символа, записанного в CGRAM или что-то другое? 2) Если для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, то где эти коды можно раздобыть? 3) Если знакогенератор прошит только латиницей и цифрами, можно ли зашить в него кирилицу или собственный символ и как это сделать? Прошу помочь ответами, ссылками, буду признателен за любую информацию.
Простите, что вклиниваюсь в тему. Только начинаю работать с микроконтроллерами. Хочу реализовать простейший пример сопряжения AVR2313 и WH1602D (вывод заданной строки символов), но при этом полностью разобраться и понять, что к чему. Кое-что нарыл в инете, но мучают несколько вопросов: 1) А какая все-таки информация передается по линиям связи D0-D7 от AVR-ки к ЖКИ? Адрес требуемого для вывода на индикатор символа, записанного в CGRAM или что-то другое? 2) Если для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, то где эти коды можно раздобыть? 3) Если знакогенератор прошит только латиницей и цифрами, можно ли зашить в него кирилицу или собственный символ и как это сделать? Прошу помочь ответами, ссылками, буду признателен за любую информацию.
http://easyelectronics.ru/avr-uchebnyj- ... 44780.html - По этой ссылке автор как-то непонятно описывает синхронизацию(то по перепаду уровня на Е от единицы к нулю, то наоборот)Перекопал кучу информации и нигде не встречал ничего подобного!!!!В оригинальном даташите тоже написано, для того чтобы произвести синхронизацию необходимо установить Е в 1, а потом сбросить в 0. Советую оригинальный даташит, там всё классно описано.
доброго времени суток уважаемые!НУЖНА ПОМОЩЬ!!! собрал схему тахометра рис. прилагается.Все работает нормально обороты считает правильно, НО есть проблема пи выводе показаний на жки: допустим было 1001 оборот ,а стало 500 оборотов на жки показует 5001 то есть надо как-то сделать что-бы при переходе с четырехзначных чисел на трехзначные очищался жки. (когда пишу lcd_clear(); в основной цикл-помогает но постоянно мигает жки)
void taxo( )
{ lcd_gotoxy(0,0); //идем в точку sprintf(lcd_buffer,"%u" , oborot ); lcd_puts(lcd_buffer); //виводим количество оборотов в минуту lcd_gotoxy(5,0); //идем в точку lcd_putsf("\x30\xA0\x30\x50\x2f\x4d\xa5\x48"); //ВЫВОДИМ СЛОВО {ОБОР/МИН}
опять я с вопросами... нужно последовательным нажатием одной кнопки выводить числа 100-7200 с шагом 100 на ЖКИ. Ломал голову как сделать так, чтобы можно было использовать только такую табличку: speed_value_table: ; 1 2 3 4 5 6 7 8 9 0 .db 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30 ;
Опрос кнопки просто счётчик со сбросом на 72.
Как я примерно представляю себе это...
Допустим....
1.нажали на кнопку 2.в счётном регистре 1 3.вызвать подпрогу декодировки 4.вывести на ЖКИ
Собсно для меня сложность представляет это самое декодирование. Какими действиями по числу 1 получить в регистре последовательность 3-х или 4-х адресов памяти. Возможно ли это? До этого выводил последовательно элементы таблицы такими подпрогами: next_symblol_1: ; * ldi ZH,High(word_stop*2); * ldi ZL,Low(word_stop*2) ; * ; * add ZL,r22 ; * lpm ; * mov work,r0 ; * call write ; * inc r22 ; * cpi r22,14 ; * brne next_symblol_1; * clr r22 ; *
А как извлекать из заблицы много символов не по порядку я не догадываюсь .
Конечно можно ввести 72 таких подпрограммки, но это было бы крайне нерационально.
Такие вещи ведь реализованы во многих устройствах, надеюсь кто-то сталкивался.
используем 2 счётчика. Один считает сотни(count1), другой тысячи(count2). Десятки и единицы будут всё время 0, т.е. их можно просто приписать.
;опрос кнопки: sbic PinA,4;перепрыг если нажата rjmp exit;повторная проверка otpusk: sbis PinA,4;перепрыг если отпущена rjmp otpusk;повторная проверка inc count1,0;инкремент cpi count1,10; сравнить с 9 brne вывод на ЖКИ;если не равно - вывести на ЖКИ. clr count1 inc count2 cpi count2,7; сравнить с 7(больше 7 не будет тысячных) brne вывод на ЖКИ_2
вывод на ЖКИ_1:
ldi ZH,High(табличка_от_0_до_9*2)+count1;прибавляем к адресу 0 значение счётчика, в данном случае 1. Адресу 1 в табличке соотв. 16-рич.код числа 1. ldi ZL,Low(табличка_от_0_до_9*2)+count1;так же. add ZL,count1 lpm mov work,r0; переносим код числа 1 в рабочий рег. call write(вывод числа 1+ вывод двух нулей)
Вопрос, можно ли к метке таблички прибавить константу? Или надо єто делать через регистр?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения