Страница 23 из 123

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Чт окт 07, 2010 20:06:20
TripleKill
Всем привет.

Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.

Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8.
В чём может быть дело? Это с дисплеем что-то или с моими руками?

Спасибо.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 08:06:57
scrappy
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 (мне два бесплатно достались) и будет как и я надеяться, что дисплей без труда воткнеться в проект.

потом проблема номер два, и вообще изза чего весь сыр.

захотел я собрать девайс (спидометр http://speed-light.on.ufanet.ru/speedometr-v14.shtml),

В этом девайсе используется кириллица, которой у меня на VFD нет. (это я понял по огрызочному даташиту на дисплей)
Попросил я автора, скинуть мне на мыло прошивку с английским вариантом меню. Он сказал, что с английским нет. Но вот на тебе исходник, переведи, и будет тебе английский.

Исходник я перевел, в проекте протеуса всё работает и на меге16 и на меге128. тоесть английское меню есть.
На макетке всё вышло куда хуже... Дисплей не поддерживает 4-х битную адресацию...
+ в программе уже прописаны некоторые порты для кнопок, датчиков и т.д. и пихать библиотеку STK не получаеться, ибо даже в ней поменять пины я не умею.

помогите разобраться. А то два дисплея валяются без толку. Может один кому презентую в питере...

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 13:54:20
Old Grumble
------------------(происходит это потому, что на D0-D3 висят в воздухе, ---------------
а землить их не пробовал?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 14:00:56
Old Grumble
TripleKill писал(а):Всем привет.

Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.

Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8.
В чём может быть дело? Это с дисплеем что-то или с моими руками?

Спасибо.
если PIC12-PIC16 прочитай http://radiohlam.ru/control/dot_matrix_LCD.htm
просмотри как формируются задержки - таймером или подпрограммами цикла и тогда уж определи - как влияет кварц

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 15:31:30
scrappy
Old Grumble писал(а):------------------(происходит это потому, что на D0-D3 висят в воздухе, ---------------а землить их не пробовал?
вот, только сейчас, ради спортивного интереса попробовал...

один фиг. не инициализируется
выводит на экран 4 символа какбы инициализации которые делает мега и затыкается. хотя он их вообще показывать не должен...

Блин такой вкусный экран... а заставить работать целая эпопея...

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 15:58:35
Old Grumble
scrappy писал(а):
Old Grumble писал(а):------------------(происходит это потому, что на D0-D3 висят в воздухе, ---------------а землить их не пробовал?
вот, только сейчас, ради спортивного интереса попробовал...

один фиг. не инициализируется
выводит на экран 4 символа какбы инициализации которые делает мега и затыкается. хотя он их вообще показывать не должен...

Блин такой вкусный экран... а заставить работать целая эпопея...
1. Принципиально есть 2 подхода к управлению ЖКИ:
-с поллингом (опросом состояния)
-и с гарантированными задержками на срабатывание контроллера дисплея.
В случае поллинга и/или чтения из ОЗУ контроллера вывод W/R - задействуется и участвует в работе. В случае гарантированных задержек его можно заземлять.
2. Даже если ЖКИ совсем нерусский его можно использовать путем прошивки первых 8-ми символов знакогенератора (в том числе и динамически) - т.е. одномоментно на дисплее не должно быть более 8-ми прошитых символов. (я пробовал прошивать псевдографику для отображения перемещения ползунка как бы громкости, баланса тембра и т.д.)
3. А если он выводит на дисплюй то чего даешь - нафиг ваще инициализировать/программировать - получается что протокол-то инициализации другой, не от 44-го

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 16:45:35
Roman Venom
scrappy
По началу я думал, что он поддерживает 4-ёх битную шину. Но выводит он мне на экран всякую билеберду не синхронизированную, состоящую из первых четырех-пяти символов инициализации(происходит это потому, что на D0-D3 висят в воздухе, и он выводит их по адресу D0-D3 - 1111 D4-D7 - 0011(0001).
Ну да. В даташите нету выбора интерфейса...ЖКИ не русский. Так что придётся использовать 8 бит.
В этом девайсе используется кириллица, которой у меня на VFD нет
Я скачал с радиокота прогу хорошую. Пишешь слово - оно тебе 16-ричный код. Удобно. Твой ЖКИ должен скушать этот код.
помогите разобраться
Не знаю, возможно ли прошить контроллер ЖКИ так хитро, чтобы он стал понимать передачу по 4-м битам... Может, какие-то коты-кулибины такое и вытворяли. Ваще можно купить нормальный ЖКИ с 4-х битным интерфейсом, а те потом заюзать под 8-ми битный:)

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 08, 2010 17:25:25
Old Grumble
scrappy писал(а):
Roman Venom писал(а):Читайте даташит. Есть и по 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 перейти

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 12, 2010 17:44:47
scrappy
Уф, спасиба всем. Но я не выдержал. и купил обычный ЖК дисплей, Ибо скоро будет холодно, хочется все сделать пока еще тепло. Но потом обязательно вернусь к этим злосчастным дисплеям)))

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 12, 2010 17:59:10
Gudd-Head
scrappy писал(а):купил обычный ЖК дисплей, Ибо скоро будет холодно, хочется все сделать пока еще тепло.
Мдя, программить не с паяльником играться — холодно :)

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Ср окт 13, 2010 21:12:52
Aaantonnn15
TripleKill писал(а):Всем привет.

Не могу заставить работать PIC с ЖК WH1602C. Перепробовал все примеры из хелпа mikroC (4 бита, 8 бит), пробовал настраивать выводы по-своему, вводить задержки по 60 мс перед каждой командой - писать он отказывается. Единственное, чего мне удалось добиться - мигающий курсор в начале первой строки.

Моя схема отличается от той, что в примере, наличием резонатора 10 МГц вместо 8.
В чём может быть дело? Это с дисплеем что-то или с моими руками?

Спасибо.

Привет TripleKill и все читающие эту ветку. Столкнулся и я с такой же проблемой как и ты. Вообщем перекопал кучу литературы, моделировал в протеусе и ничего у меня не выходило. Дисплей включался и отображал одну цифру по середине экрана, после долгих манипуляций получилось выводить и другие цифры,но только до конца ряда. И ну нечего с ним не сделать. Управлению дисплей не поддавался. Шину использовал 4-ёх битную. Бит занятости я не проверяю(не хватает выводов портов). Вообщем время потерял массу. Бросил всё и решил перевести оригинальный datasheet. Там инициализация очень классно описана. Сделал, как там рекомендуется и Ура! ЗАРАБОТАЛО! Так что если нужно есть исходник и модель в протеусе для PIC16F84A Всё работает. Правда на железе ещё не опробовал.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Чт окт 14, 2010 15:26:32
ooogo
может кто встречал макетку или печатку(одностороннюю) какого нибудь устройства ATmega8(dip или smd) и WH1602, что бы одна плата была над другой и соединялись штырковым разъемом?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 19, 2010 19:24:01
Sallivan_Bidl
Простите, что вклиниваюсь в тему. Только начинаю работать с микроконтроллерами. Хочу реализовать простейший пример сопряжения AVR2313 и WH1602D (вывод заданной строки символов), но при этом полностью разобраться и понять, что к чему. Кое-что нарыл в инете, но мучают несколько вопросов:
1) А какая все-таки информация передается по линиям связи D0-D7 от AVR-ки к ЖКИ? Адрес требуемого для вывода на индикатор символа, записанного в CGRAM или что-то другое?
2) Если для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, то где эти коды можно раздобыть?
3) Если знакогенератор прошит только латиницей и цифрами, можно ли зашить в него кирилицу или собственный символ и как это сделать?
Прошу помочь ответами, ссылками, буду признателен за любую информацию.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 19, 2010 20:32:31
ibiza11
http://www.gaw.ru/html.cgi/txt/lcd/chip ... /start.htm
http://easyelectronics.ru/avr-uchebnyj- ... 44780.html
вот. мне не жалко, но за державу обидно.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 19, 2010 21:11:45
Aaantonnn15
Sallivan_Bidl писал(а):Простите, что вклиниваюсь в тему. Только начинаю работать с микроконтроллерами. Хочу реализовать простейший пример сопряжения AVR2313 и WH1602D (вывод заданной строки символов), но при этом полностью разобраться и понять, что к чему. Кое-что нарыл в инете, но мучают несколько вопросов:
1) А какая все-таки информация передается по линиям связи D0-D7 от AVR-ки к ЖКИ? Адрес требуемого для вывода на индикатор символа, записанного в CGRAM или что-то другое?
2) Если для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, то где эти коды можно раздобыть?
3) Если знакогенератор прошит только латиницей и цифрами, можно ли зашить в него кирилицу или собственный символ и как это сделать?
Прошу помочь ответами, ссылками, буду признателен за любую информацию.

http://easyelectronics.ru/avr-uchebnyj- ... 44780.html - По этой ссылке автор как-то непонятно описывает синхронизацию(то по перепаду уровня на Е от единицы к нулю, то наоборот)Перекопал кучу информации и нигде не встречал ничего подобного!!!!В оригинальном даташите тоже написано, для того чтобы произвести синхронизацию необходимо установить Е в 1, а потом сбросить в 0. Советую оригинальный даташит, там всё классно описано. :))

даташит HD44780

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт окт 19, 2010 21:46:16
Sallivan_Bidl
ibiza11, Aaantonnn15 спасибо за помощь.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вс ноя 07, 2010 18:57:31
edds
Уважаемые коты, поделитесь опытом - как прикрутить LCD 16*2 к проекту VMLABa по 4битному интерфейсу в файле "prJ"

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пн ноя 08, 2010 21:02:53
elf
доброго времени суток уважаемые!НУЖНА ПОМОЩЬ!!!
собрал схему тахометра рис. прилагается.Все работает нормально обороты считает правильно, НО есть проблема пи выводе показаний на жки: допустим было 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"); //ВЫВОДИМ СЛОВО {ОБОР/МИН}


}


Помогите если не трудно заранее благодарен.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пн ноя 08, 2010 23:01:27
Roman Venom
опять я с вопросами...
нужно последовательным нажатием одной кнопки выводить числа 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 таких подпрограммки, но это было бы крайне нерационально.

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

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт ноя 09, 2010 00:22:31
Roman Venom
так. пришли некоторые мысли.

используем 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+ вывод двух нулей)


Вопрос, можно ли к метке таблички прибавить константу? Или надо єто делать через регистр?