Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

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

Ср фев 15, 2006 19:07:38

Даташит на HD44780:
HD44780U.pdf
(389.93 KiB) Скачиваний: 868

Документацию на индикаторы можно взять тут - http://www.melt.com.ru/shop/indikatory- ... ry-19.html
Библиотека LCD HD44780 для PIC
Библиотека для HD44780 на ассемблере:
- 4- битное, гибкое подключение к любым портам, любых линий дисплея, при этом остальные пины порта никак не изменяются!,
- занимает мало памяти, даже очень мало,
- любая частота МК,
- для 1 и 2х строчных ЖКИ,
- чтение флага занятости реализовано,
- загрузка собственных 8 символов при компиляции (по необходимости).
- все исходники были для АВРСтудии 4.19
А также гибкая условная компиляция, т.е. если я не хочу читать флаг занятости, могу просто посадить ногу на землю, и не компилировать часть библиотеки, а также собственные символы можно тоже не компилировать.
З.Ы. Очень много комментариев в исходном коде и главный файл для АТТИНИ2313 с примером использования.







PS: Если у кого-нибудь будут полезные ссылки (на документацию, всякие примеры, библиотеки, ..) - пишите мне (Alex) в ЛС. Добавлю в этот пост.
Пишите также, если Вы найдёте в этой теме полезную информацию. Добавлю ссылки на эти посты.

Ср фев 15, 2006 19:17:15

Добрый вечер всем, а также поздравляю всех с Днем Святого Валентина!

Т.к сам только разбираюсь в програмировании микроконтроллеров посмотрел статью на этом сайте по подключению мелтовского LCD но т.к в наш город их почему то не завозят то приобрел LCD следующей марки WH1602D фирма Winstar

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

Вот справочная информация на него начальная инициализация отличается от мелтовского но циклы записи и чтения вроде совпадают
http://www.compel.ru/pdf/WINSTAR/WH1602D-YGB-CP.pdf

Сб фев 18, 2006 17:30:28

Смотрю явно с таким дисплеем никто не работал и такую картину на нем не наблюдал при попытке вывести символы.

Что-ж печально.

Сб фев 18, 2006 18:32:04

у меня подобный только на 12 строк лежит и ждёт своего часа
посмотри здесь в низу ссылки есть
http://www.promelec.ru/lines/ind_1.html
поконкретнее
http://www.promelec.ru/lines/ind_1_10.html
http://www.promelec.ru/lines/ind_1_9.html
просьба сообщить если что получится я как свою МЕГУ запущу тоже буду пытаться юзать
и вот есчё
http://www.winstar.com.tw/product_show.php?pd_num=WH
и на закуску
http://www.promelec.ru/lines/ind_1_1.html
больше я ничего пока не нашёл если что на мыло пиши

Сб фев 18, 2006 18:37:47

http://www.serasidis.gr/

пешы хоть что за сцылки, а то так и за спам можно принять :) Ржавый

Вс фев 19, 2006 12:36:05

Спасибо за ссылки я по ним по весем уже ходил.

Странно как-то к первому сообщению прикрепил файл но он что-то не отображается.

Вс фев 19, 2006 14:07:38

Мне на спам времени своего жалко
зЫ :evil:
к тому же если иметь хоть чуть логики то и так можно догадаться :evil:
:(

Вс фев 19, 2006 14:59:36

ну говори модератору, что у него логики нет, говори :)

писал бы лучше так:

сцылка по методам программирования ПЛИС. Форум.
реез://плис.ру/форум

это было бы не только понятно, но и народ мог бы определить - надо ли ему жрать траф по этой сцылке, будет ли она ему полезна и др.

Вс фев 19, 2006 15:55:39

понял тебя так бы сразу и писал а то оскорбять сразу это-то все умеют

Вс фев 19, 2006 16:13:11

Вообще то, он так сразу и написал :)

Вс фев 19, 2006 17:03:43

переделал прошивку автора под свой индикатор следующим образом

Сам он вроде светиться но на экранчике вместо отображения числа 555 в верхней строке закрашены все 16 символов причем только у всех первые (верхние точки). Что может быть не как.
Вложения
1.txt
(3.25 KiB) Скачиваний: 3070

Пн фев 20, 2006 18:46:45

Странно пытался прикрепить фотку всего этого безобразия что у меня индикатор паказывает но она что то не цепляется. :((

Пт фев 24, 2006 13:23:27

WH1202A конект по дату одинаков.
странный глюк с этим индикатором при включении питания закрашиваются нижняя строка а на входе R/W появляется сигнал с длит. имп. где-то 30 и скважностью 10 мксек. :o
на команды не реагирует я по дату смотрел он также коннектиться как описанный Пашей здесь МЕЛТ. Токмо у него вывод A наз-ся RS. и временные параметры чуть различаются

Пт фев 24, 2006 19:01:37

УФ РАЗОБРАЛСЯ НАКОНЕЦ В ЧЕМ БЫЛ КОСЯК С МОИМ ИНДИКАТОРОМ. Мысль на эту тему возникла еще утром когда ехал на работу. И сейчас точно по приходе с работы подтвердилась у меня на плате когда ставил разьемчик по припарке перепутал местами выходы DB6 и DB7 и осуда и шел косяк с выводом на индикацию когда пишешь 555 а он показывает 999 и вместо букв всякую крякозябру. После постановки правильно сигналов все заработало на ура. Причем даже не было необходимости подправлять авторскую (менять временные задержки) прошивку из статьи про подключение индикатора MT-16S2D она с этим индикатором WH1602D фирма Winstar работает великолепно. Так что можно смело использовать с такими параметрами и эти индикаторы тем более что цена у него очень человеческая покупал на нашем радорынке всего за 180 руб. Можете поверить в такую цену.

Буду продолжать дальше опыты с этим индикатором.

P.S Хотелось бы у автора статьи поинтересоваться сколько он оддал денег при покупке своего Мелтовского индикатора MT-16S2D. Просто очень интересно сравнить.

Пт фев 24, 2006 19:50:38

ты на какой частоте делал???

Пт фев 24, 2006 19:54:51

Стандартная частота кварца в 10Мгц.

Сб фев 25, 2006 08:47:33

у меня на 4MHh и нифига не работает. Хотя вроде больше не меньше ведь. Есчё в исходнике написано что поключаем DB4-DB7 а по дату читал включается и пр. по 0-3, но я всяко пробовал.
моя Мега мах. 8 МГц держит

Сб фев 25, 2006 12:39:04

DB4-DB7 включаются когда ты индикатор подключаешь по 4-х битному интерфейсу в даташите это написано наверно просто недосмотрел если же подключаешь сигналы DB0-DB7 то это у тебя будет 8-битный интерфейс. 4-х битный используется в основном когда используются микроконтроллеры типа 2313 у кторорого не так уж и много ног и 4-битный вариант подключения позволяет их сэкономить ведь надо же еще куда-нить вешать лампочки кнопочки, всякие датчики и пр. Кстати если пытаешься использовать прогу из статьи про подключение MT-16S2D то там все временные задержки расчитаны на применение кварца в 10Мгц проверь свои временные задержки, т.д для 4Мгц они будут другими а эти индикаторы к этому делу очень чутко относяться посмотри что пишут на твой индикатор по временным задержкам сделай их чуть больше чем написано в даташите например пишут на 10 сделай 30-40 самое главное чтобы они были не меньше чем пишут в даташите. 3 ногу которая регулирует контрастность заводи через подстроечник, поставь его так один конец на (+) другой на (-) и с центральной ноги снимай напряжение (кстати это тоже есть в даташите на индикатор). Например у меня напряжение контрастности на 3-й ноге стоит 1,23 вольта и все прекрасно видно.

Сб фев 25, 2006 14:35:58

3-ю ногу я вопще на землю кинул, но попробую ч.з. переменник. а по задержкам получается если кварц в 2.5 меньше то они соответственно во столько же раз дольше??

Сб фев 25, 2006 14:49:53

Да именно так при кварце в 10 Мгц одинн такт равен 0.100нс а при 4 Мгц он же будет равен 0,250нс если не ошибаюсь в расчетах, т.е в четыре раза дольше кстати привожу свой же вопрос который я задавал и мне подсказывали как правильно расчитывать временные задержки он есть в этот топике чуть ниже
***********************************************************
Вопрос к автору статьи про подключение LCD к 2313. Сам только разбираюсь с программированием микроконтроллеров поэтому хотелось бы узнать как расчитать задержку при программировании на необходимое время поглядел ваш кусок с задержкой на 40мks

Код:
Delay40mks:
push Temp

ldi Temp,0
Loop:
dec Temp
brne Loop

pop Temp

ret

И хотелось бы узнать а как расчитать например на 10,15,20 мks.

**********************************************************
На самом деле - для столь точных временных задержек существует таймер.
А вообще - считается очень просто. Допустим, есть прога задержки:


Код:
Код:
   
Delay:
          ldi Temp,0
          ldi Temp1,10
         
loop:   dec Temp
          brne loop

          dec Temp1
          brne loop
 
          ret
 



Сначала 256 раз мотается первый цикл (уменьшение Temp на 1). Каждый раз, когда мы проваливаемся из этого цикла, Temp1 уменьшается на 1, и так происходит 10 раз.
Известно (из даташита, разумеется), что команда dec выполняется за 1 такт, команда brne - в случае перехода - за два, иначе - за один. Считаем: 255 циклов первой задержки имеют длину 3 такта, 1 цикл - 2 такта. То есть, однократное выполнение - 256*3-1 = 767 тактов
Вторая задержка также выполняется за 3 такта. Это происходит каждый раз, когда мы проваливаемся из первой задержки во вторую. Итого - 10 раз. То есть, в сумме - 30 тактов.
В сумме получаем:
(767*10)+30 = 7700 тактов.
Пусть частота кварца = 10 МГц
Переводим в секунды.
1 такт = 0,1 мкс
7700 тактов = 770 мкс

Фсе Ращет окончен. Вооольна!
Код:
Ответить