Работа с ЖКИ на контроллере HD44780 и его аналогах
- servmv
- Встал на лапы
- Сообщения: 136
- Зарегистрирован: Чт янв 02, 2014 21:28:22
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Вот китаец прислал, 7мая страница, 2рой график.
Взорвали мне тут мозг, строб длинный, код правильный, и быстрее не реально.
Взорвали мне тут мозг, строб длинный, код правильный, и быстрее не реально.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Там фотка какая-то. Чёто у Вас никак не получается ничего показать. То видео недоступно, то картинки за место документации, ...servmv писал(а):Вот китаец прислал, 7мая страница, 2рой график.
Вот, читайте - http://cxem.net/doc/mc/HD44780-rus.pdf стр. 13. Там НАНОсекунды !
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf стр. 24. Времена выполнения команд.
- servmv
- Встал на лапы
- Сообщения: 136
- Зарегистрирован: Чт янв 02, 2014 21:28:22
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Аlex писал(а):Там фотка какая-то. Чёто у Вас никак не получается ничего показать. То видео недоступно, то картинки за место документации, ...servmv писал(а):Вот китаец прислал, 7мая страница, 2рой график.
Вот, читайте - http://cxem.net/doc/mc/HD44780-rus.pdf стр. 13. Там НАНОсекунды !
Ну и? полупериод минимум 230нс период минимум 500нс
ну взято с запасом на китайскую погрешность тактового генератора дисплея+время спада, нарастания:
Код: Выделить всё
_delay_us(300);
E_ENABLE;
_delay_us(500);
E_DISABLE;
Последний раз редактировалось servmv Чт апр 23, 2015 10:29:42, всего редактировалось 1 раз.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
У Вас МИКРОсекунды ! Разницу чувствуете ? 
- servmv
- Встал на лапы
- Сообщения: 136
- Зарегистрирован: Чт янв 02, 2014 21:28:22
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Где там микро секунды?
вот микросекунды:
а это наносекунды
вот микросекунды:
Код: Выделить всё
_delay_ms(5);
а это наносекунды
Код: Выделить всё
_delay_us(300);
E_ENABLE;
_delay_us(500);
E_DISABLE;
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
О чём вы тут срач на 3 страницы развели?
Ааааа пацталом
вот микросекунды:
_delay_ms(5);
а это наносекунды
_delay_us(300);
Ааааа пацталом
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ааааа пацталом![]()
Прежде, чем делать такие громкие заявления, забегите хотя-бы в гугл.servmv писал(а):вот микросекунды:
а это наносекунды
НУ нельзя же так
- servmv
- Встал на лапы
- Сообщения: 136
- Зарегистрирован: Чт янв 02, 2014 21:28:22
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Брр.. вы меня запутали
ну да микросекунды,
, ну не работает дисплей с 1 микросекундой, хоть убейте, я уже проект новый создал, на дисплее мусор. Дисплей значит такой, очередной камень в огород китайцев, но не в мой, я все задержки убрал до минимума сохраняя работоспособность.
Кстати старый код с задержками мне нравился больше, ща такая шняга: при смене символов наблюдается каша, старые точки гаснут новые загораются и те и другие в пол яркости, смотреться стало хуже. Так что вопрос по качеству кода спорный..
ну да микросекунды,
, ну не работает дисплей с 1 микросекундой, хоть убейте, я уже проект новый создал, на дисплее мусор. Дисплей значит такой, очередной камень в огород китайцев, но не в мой, я все задержки убрал до минимума сохраняя работоспособность.Кстати старый код с задержками мне нравился больше, ща такая шняга: при смене символов наблюдается каша, старые точки гаснут новые загораются и те и другие в пол яркости, смотреться стало хуже. Так что вопрос по качеству кода спорный..
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Тут, скорее, вопрос возникает о качестве основного кода. Не думаю, что он у Вас идеальный.Так что вопрос по качеству кода спорный..
Ибо, по признакам "каша", "в полнакала", и т.д... можно судить только об одном - Вы тупо без всяких задержек меняете данные на дисплее.
А это уже камень далеко не в китайский огород.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Кстати, для OLED контроллера WS0010 вообще не нужны задержки
Только после подачи питания и очистки дисплея.
Только после подачи питания и очистки дисплея.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
servmv, если не сложно, сделайте проверку флага занятости (BS). Мне попадались индикаторы с "затянутыми временами". Возможно я ошибаюсь, но у меня было впечатление что у них тактовый генератор работал на меньшей частоте. В принципе, их можно было отправлять в брак но не было желания. Так же, попадались индикаторы у которых реальные времена выполнения команд были раз в пять меньше чем указано в pdf.
Сделайте возможность выбора страниц знакогенератора (есть индикаторы с двумя таблицами символов).
Я в своих программах всегда делаю проверку флага BS. При этом ещё смотрю на время "поднятого" BS. Если время превышает "все разумные пределы" (у себя я ставлю около 10mS) - однозначно INIT индикатора. Заказчики пока не жаловались.
Сделайте возможность выбора страниц знакогенератора (есть индикаторы с двумя таблицами символов).
Я в своих программах всегда делаю проверку флага BS. При этом ещё смотрю на время "поднятого" BS. Если время превышает "все разумные пределы" (у себя я ставлю около 10mS) - однозначно INIT индикатора. Заказчики пока не жаловались.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Albert_V писал(а): Если время превышает "все разумные пределы"
кстати, не думал об этом... Надо будет добавить себе тоже
Станислав
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Там частота задаётся RC-цепочкой вроде. Так что разброс там...Albert_V писал(а):у них тактовый генератор работал на меньшей частоте
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Vicont
- Прорезались зубы
- Сообщения: 201
- Зарегистрирован: Пт июл 25, 2008 14:09:04
- Откуда: Зауралье
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Мяу, товарищи!
Недавно начал впервые осваивать работу с таким дисплеем.
Получилось самостоятельно разобраться в общих принципах его функционирования, и написать на ассемблере для avr простую программу по выводу текста, заранее указанного в теле программы. Работает нормально
Если не углубляться в процедуры инициализации и т.п., то поучился следующий, довольно стандартный код вывода текстовой строки:
Теперь мне хочется вывести на дисплей переменное числовое значение из какого-нибудь регистра, которое могло бы динамически меняться по ходу работы, а как это сделать уже не соображу...
В интернете большинство ресурсов на эту тему посвящены Си, а на ассемблере найти подобную информацию не удалось.
Поэтому прошу вашего совета.
Недавно начал впервые осваивать работу с таким дисплеем.
Получилось самостоятельно разобраться в общих принципах его функционирования, и написать на ассемблере для avr простую программу по выводу текста, заранее указанного в теле программы. Работает нормально
Если не углубляться в процедуры инициализации и т.п., то поучился следующий, довольно стандартный код вывода текстовой строки:
Код: Выделить всё
ldi ZL, LOW(text1 << 1)
ldi ZH, HIGH(text1 << 1)
ldi temp,8 ;количество элементов в массиве
StrOut:
PUSH temp ;сохраняем temp
LPM Data, Z+
rcall DATA_WR ;Выводим данные на дисплей
POP temp
dec temp
cpi temp,0
brne StrOut
text1: .db "Vicont45"Теперь мне хочется вывести на дисплей переменное числовое значение из какого-нибудь регистра, которое могло бы динамически меняться по ходу работы, а как это сделать уже не соображу...
В интернете большинство ресурсов на эту тему посвящены Си, а на ассемблере найти подобную информацию не удалось.
Поэтому прошу вашего совета.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Тебе надо делать это в два этапа. Сначала преобразовать переменную в набор символов, а потом эти символы вывести.
Преобразование байта в символы это классика - вычитаем из числа сотни, пока оно больше или равно 100, количество вычитаний - как нетрудно догадаться, это будет первый символ...
Потом вычитаем десятки, пока число больше или равно 10 - количество вычитаний будет вторым символом. Ну а единицы останутся сами собой. итого имеем 3 числа представляющие 3 символа числа для вывода, теперь их надо сместить(прибавить) на 0x30 и получишь ровненько ASCII-коды символов для вывода на дисплей, остается только друг за дружкой их вывести.
Точно так же поступаем и с 2-х байтовым словом, даже 3-х байтовые и 4-х байтовые числа можно так разложить, только мороки много.
такие алгоритмы еще называются BIN2BCD, ищи в гугле да найдешь. Даже целые библиотеки есть, с такими преобразованиями. Я даже как-то из одной такой вырезал нужный мне алгоритм из слова в 5 символов.
Преобразование байта в символы это классика - вычитаем из числа сотни, пока оно больше или равно 100, количество вычитаний - как нетрудно догадаться, это будет первый символ...
Потом вычитаем десятки, пока число больше или равно 10 - количество вычитаний будет вторым символом. Ну а единицы останутся сами собой. итого имеем 3 числа представляющие 3 символа числа для вывода, теперь их надо сместить(прибавить) на 0x30 и получишь ровненько ASCII-коды символов для вывода на дисплей, остается только друг за дружкой их вывести.
Точно так же поступаем и с 2-х байтовым словом, даже 3-х байтовые и 4-х байтовые числа можно так разложить, только мороки много.
такие алгоритмы еще называются BIN2BCD, ищи в гугле да найдешь. Даже целые библиотеки есть, с такими преобразованиями. Я даже как-то из одной такой вырезал нужный мне алгоритм из слова в 5 символов.
- Vicont
- Прорезались зубы
- Сообщения: 201
- Зарегистрирован: Пт июл 25, 2008 14:09:04
- Откуда: Зауралье
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Спасибо, товарищ!!!
Всё оказалось до безобразия просто. С алгоритмом BIN2BCD я знаком давно, и частенько применял его при выводе инфы на 7-сегментные индикаторы, а то, что его можно применить и к LCD с прибавлением 0x30 как-то не догадался...
Аж стыдно стало.
За то теперь всё работает.
Всё оказалось до безобразия просто. С алгоритмом BIN2BCD я знаком давно, и частенько применял его при выводе инфы на 7-сегментные индикаторы, а то, что его можно применить и к LCD с прибавлением 0x30 как-то не догадался...
Аж стыдно стало.
За то теперь всё работает.
-
Пока_без_кота
- Потрогал лапой паяльник
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Доброго времени суток. Есть дисплей DMC16117A (16 симоволов, 1 строка). Не могу ничего на него вывести, хотя на другой (китайский ноунейм) все нормально выводиться. Скачал даташит http://www.alldatasheet.com/datasheet-p ... 6117A.html , подправил все задержки (формирую их вручную, циклами) согласно документу http://mil.ufl.edu/4744/docs/lcdmanual/ ... ation.html специально под этот дисплей. А оно не заводиться никак. Ноунейм 1602 нормально запахал с первого раза, по первым попавшимся в Internet задержкам. Что не так с этим диплеем ? Подключаю по 4-bit шине. Самотестирование вроде проходит (первых 8 символов становяться полнокотрастными при подключении питания), при попытке что-нибудь вывести на него, вся строка становиться контрастной, то есть вроде как реагирует на команды. Но ничего не выводит
. Брал б/у, может он того... А как проверить ?
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
В программе, после <INITIALIZATION COMPLETE>, есть команда Display ON ???
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Приветствую!Подскажите пожалуйста, если в протеусе модель этого дисплея? https://yadi.sk/i/4Jvhnb3CiDqzD
Просто попал мне в руки в плачевном состоянии, утопленник, да еще и с рваными дорожками.Хочу написать простую программку для его проверки, но перед этим проверить в протеусе.
Спасибо!
Просто попал мне в руки в плачевном состоянии, утопленник, да еще и с рваными дорожками.Хочу написать простую программку для его проверки, но перед этим проверить в протеусе.
Спасибо!
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Это не дисплей а даташит на него. Внимательно прочитай, что там на 7-й странице написано?