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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

напиши пожалуйста команды инициализации для WH1601, организованного как двухстрочный

Для всех дисплеев с этим контроллером инит одинаков!

вот мой порядок.
1)задержка 2 секунды (чтобы увидеть что включились 8 первых знакомест)
2)инициализация (знакоместа пропадают, ЖКИ ровно горит по всей ячейкам)
3)устанавливаю адрес 0 (хотя в инициализации он уже должен был быть установлен, но думаю не помешает)
4)вывожу одни и те же данные ($41) по всем адресам от 0 до 40 и от 64 до 104.
в итоге на экране ничего.

Это всё, что угодно, но не инит!

поэтому грешу на подпрограмму вывода данных.

С начала предлагаю сделать всё один в один как во вложении в первом моём сообщении, и не забыть посмотреть вложение в этом, а потом грешить начинать.
Вложения
Command_Diskr.JPG
(117.82 КБ) 1188 скачиваний
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

to ibiza11
Честно говоря так и не понял вашего кода
если поможет, то вот нашел у себя в запасниках свою библиотеку по LCD, может пригодиться. Конечно там не так элегантоно как у Pooher, и "мусора" многовато, тоже облагородить времени не хватает, но работает, с оговоркой что у меня проверяется бит готовности при выводе информации на LCD, и задержки расчитывались при f=11,059МГц, придется пересчитать под 16 МГц.
Вложения
LCD.rar
(1.79 КБ) 547 скачиваний
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

для Pooher
насчет одинаковой инициализации для данного контроллера. зачем в даташите на HD44780 команды инициализации указаны с битами, которые можно менять в различных ситуациях?
на картинке бит N отвечает за кол-во строк. я про это спрашивал.
Изображение
за листинги всем спасибо, буду пробовать!:)
Ставим плюсы: )
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

На сайте МЭЛТа есть паспорта на LCD индикаторы, они на русском
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Сообщение nictrace »

Предлагаю вашему вниманию еще один вариант, готовым проектом в Протеусе

UPD: да, он там ругаться будет на отсутствие файла eeprom.bin...
очистить поле - и все в порядке.
Вложения
tiny.rar
proteus 7.4 project + asm source
(13.16 КБ) 491 скачивание
Последний раз редактировалось nictrace Пн авг 24, 2009 10:35:35, всего редактировалось 1 раз.
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Вот я и вернулся с результатом. В общем грешил на все что можно.... Уже подумывал сменить ЖКИ. Уважаемый Pooher, ваша инициализация совершенно не работоспособна (по крайней мере на моем ЖКИ). Хотя код ваш рабочий. Команды инициализации, что вы привели не выводят ЖКИ в рабочий режим, хоть вы и утверждали обратное. Следуя вашему совету
Pooher писал(а):Это всё, что угодно, но не инит!
Думал на подпрограммы вывода, но как бы я их не упрощал, как бы не увеличивал задержки, результата это не принесло. Следование в точности даташиту тоже результатов не принесло (даташит в моем посте выше). В итоге нашел на давно забытой флешке свою (!!! охренеть) старую программу с инициализацией ЖКИ. Подставил команды оттуда и О, ЧУДО! Свершилось! тут же начало все работать!!! даже с моими подпрограммами вывода (в которых вы не разобрались).
вот собственно команды:

Код: Выделить всё

;7-отключен
;6-выбор регистра
;5-чтение/запись
;4-строб
;3-DB7
;2-DB6
;1-DB5
;0-DB4
   .db 0b00000011,0b00000011
   .db 0b00000011,0b00000010
   .db 0b00000010,0b00001000
   .db 0b00000000,0b00001000
   .db 0b00000000,0b00000110
   .db 0b00000000,0b00001100
   .db 0b00000000,0b00001100
   .db 0b00000000,0b00000001

спасибо всем откликнувшимся.
Ставим плюсы: )
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Сообщение nictrace »

ibiza11, я тоже с этим datashit-om накололся... :)))

а все дело в команде display off, ну, которая 3-я снизу!
Почему-то, если верить документу, дисплей будет работать только после вышеприведенной последовательности. Щаззз! А кто его включил?..
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
ALFA80x
Родился
Сообщения: 6
Зарегистрирован: Ср фев 25, 2009 18:50:16
Откуда: Москва

Сообщение ALFA80x »

Вопрос вобщем-то не по контроллеру лсд (хотя ...). Я с дисплеем вожусь впервые . Почитал .Вобщем я понял как с ним работать,т.е про инциализацию и т.д . Дисплей MT-16s2h . После написания разнообразных прошивок , и получения отр-го результата , я в очередной раз залез в тему в Лаборатории про общение по 4х битной шине . ТАк там написано что дисплей заработал только после заземления контакта рег-ки контраста , и правда перечитав описание я так и сделал . Теперь независимо от того подключен дисплей к контроллеру у него горят все пиксели . Пробывал тест прогу с МЕЛта ,рез-т тот же . Кто знает в чем проблема ?
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Вывод контрастности следует подключать через потенциометр.
Изображение

2 ibiza11
У меня именно этот инит работает без проблем на разных дисплеях и контроллерах. Скорее всего у Вас подключение отличается от предложенного мной.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
ALFA80x
Родился
Сообщения: 6
Зарегистрирован: Ср фев 25, 2009 18:50:16
Откуда: Москва

Сообщение ALFA80x »

Мда . Оказалось у меня бп не 5 в выдает а 7. Вот откуда бордак с контрастом ,ну и дисплей теперь наверное сгорел . Странно что атмега 8 не сгорела (у нее мах 5,5в)
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

совсем не обязательно я как-то 13.8В на связку мега16-мт16h2s подал, и ничего выжило, правда как и у тебя только черные прямоугольнички на экране были.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Pooher писал(а):2 ibiza11
У меня именно этот инит работает без проблем на разных дисплеях и контроллерах. Скорее всего у Вас подключение отличается от предложенного мной.
ну и прекрасно, я рад за вас. а насчет подключения, я и не говорил, что у меня такое же, как у вас. естественно другое.
Ставим плюсы: )
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

я и не говорил, что у меня такое же, как у вас. естественно другое.

А каково же х... Вы хотели чтобы она работала? :evil:
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

да *ля, я же не сказал, что я тупо ваши команды скопировал!!! :evil:
я поменял биты местами, в соответствии с моим подключением!!! не надо спорить! у вас в инициализации нет команды включения ЖКИ.
Ставим плюсы: )
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

не надо спорить!

Я оперирую только фактами! Без проверки в железе коды не выкладываю, ну а этот код не просто проверен, он работает не на одном десятке устройств, он на 101% рабочий.
У меня именно этот инит работает без проблем на разных дисплеях и контроллерах.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

я уже сказал, что я рад за вас безумно! :)))
Ставим плюсы: )
IRoninI
Родился
Сообщения: 4
Зарегистрирован: Чт сен 24, 2009 11:20:56

Сообщение IRoninI »

Всем привет! Подскажите как с наименьшими затратами времени и средств, подключить ЖКИ к другим портам контроллера используя стандартную библиотеку lcd.h в CodeVision. Именно программно.
Порты например:
R/S - PORTB.0
R/W - PORTB.1
E - PORTB.2
DB4 - PORTC.0
DB5 - PORTC.1
DB6 - PORTC.2
DB7 - PORTC.3
diehard
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт дек 05, 2006 23:17:02
Откуда: Краснодарский край

Сообщение diehard »

Никак только писАть свою библиотеку. И это будет наиболее правильно, т.к. библиотека в CV тупо ждет ответов от LCD _бесконечно_долго_. Тайм ауты было сложно предусмотреть разработчикам :shock:. Т.е. при вылете (или отключении) LCD программа при обращении к нему повиснет.
Так что пишите и будет Вам счастье.
IRoninI
Родился
Сообщения: 4
Зарегистрирован: Чт сен 24, 2009 11:20:56

Сообщение IRoninI »

Спасибо!

traun писал(а):
Ты все правильно понял, ели очень надо могу скинуть мою библиотеку для это дистплея, подключать так же как и ты написал в своей статье, но можно там в define указать просто номера выводов и порты мк для подключения LCD, а потом просто юзать функции отправки строк на дисплей. Даже парится не придется...


А можешь мне скинуть???)
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Народ! А сколько вариантов курсоров у дисплея? У меня WinStar 1602. Вроде бы как есть подчеркивание и мигающий черный прямоугольник. В каком то ДШ я прочитал, что есть и мигающее подчеркивание - но сколько не бился подчеркивание не мигает. Может и не стоит париться?
Ответить

Вернуться в «Периферия»