Работа с ЖКИ на контроллере HD44780 и его аналогах
- koyodza
- Собутыльник Кота
- Сообщения: 2623
- Зарегистрирован: Вс июл 17, 2011 11:51:52
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Индикаторы есть разные, с разным типом подсветки. Если смотреть только небольшие 16х2 символов со светодиодной подсветкой, то есть с подсветкой одним торцевым светодиодом, там требуемый ток подсветки порядка 15-20мА (для 3В версии нужно ограничить ток резистором), и есть более старые индикаторы с подсветкой кучей светодиодов током от 100мА и выше. Сам контроллер потребляет порядка 1-2мА обычно.
Вопрос по поводу подстроечного резистора не совсем ясен потому что Вы не написали где именно это увидели. Если имеется ввиду внешний подстроечный резистор, подключаемый к выводу Vo, то с его помощью устанавливается требуемая контрастность. Вместо подстроечного резистора могут быть использованы более сложные решения.
Если же имеется ввиду подстроечный резистор, который в документации показывают подключенным к цифровым сигнальным входам, то это просто показана схема измерения электрических характеристик и сейчас скорее всего Вам об этом думать не обязательно.
Вопрос по поводу подстроечного резистора не совсем ясен потому что Вы не написали где именно это увидели. Если имеется ввиду внешний подстроечный резистор, подключаемый к выводу Vo, то с его помощью устанавливается требуемая контрастность. Вместо подстроечного резистора могут быть использованы более сложные решения.
Если же имеется ввиду подстроечный резистор, который в документации показывают подключенным к цифровым сигнальным входам, то это просто показана схема измерения электрических характеристик и сейчас скорее всего Вам об этом думать не обязательно.
- Реклама
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Подсветка в таких дисплеях - как правило обычный светодиод, максимальный ток через него надо смотреть в даташитах производителя, а если неизвестен производитель и модель индикатора, больше 20мА давать не стоит. Да и обычно уже при 1-2мА достаточно чтобы видеть изображение в темноте а на свету хватает отраженного света.
Сам индикатор потребляет не больше 1мА.
Ничего не понял насчет резистора пина... какого пина? какого резистора? О чем вообще речь? Можно показать на какой-либо аналогичной схеме? Или речь идет о подстройке контраста дисплея?
Сам индикатор потребляет не больше 1мА.
Ничего не понял насчет резистора пина... какого пина? какого резистора? О чем вообще речь? Можно показать на какой-либо аналогичной схеме? Или речь идет о подстройке контраста дисплея?
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
По поводу тока без подсветки не скажу, т.к. подключил сразу и подсветку и питание на ЖКИ к одним и тем же выводам. Но мой при 5 вольтах потребляет где-то 0,04 Ампера. (Кстати, это вместе с МК и стабилизатором на 78L05).
По поводу резистора для контрастности, то да, он припаивается снаружи. )))) Простой потенциометр. Получается делитель напряжения с которого снимается это самое деленное напряжение для регулировки контрастности. Например, если у меня 1 вывод на ЖКИ это земля, 2 вывод - питание, а 3 вывод - контраст. Вот к ним и подключается резистор. Но это при 5 вольтовом питании ЖКИ. При трехвольтовом питании возможно придется собирать схему с отрицательным напряжением. См. даташиты.
По поводу резистора для контрастности, то да, он припаивается снаружи. )))) Простой потенциометр. Получается делитель напряжения с которого снимается это самое деленное напряжение для регулировки контрастности. Например, если у меня 1 вывод на ЖКИ это земля, 2 вывод - питание, а 3 вывод - контраст. Вот к ним и подключается резистор. Но это при 5 вольтовом питании ЖКИ. При трехвольтовом питании возможно придется собирать схему с отрицательным напряжением. См. даташиты.
Станислав
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Индикаторы разные есть. Иногда, ограничивающий резистор на подсветку там УЖЕ установлен, тогда подключить его можно прямо на питание, но это редкость. Обычно там простой светодиод на 3.2В его конечно можно использовать для питания 3.3В индикаторов в качестве параметрического стабилизатора, но это на усмотрение разработчика. Масса ньюансов имеется. Кроме того я не знаю зачем там столь яркая подсветка - днем видно и без подсветки, а когда темно достаточно подсветки 1..5мА.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Спасибки всем отписавшимся, в общем заказал я две штуки 16x4 на таких же контроллерах, а пока будем играться с цветными TFT экранами 2.2" 320x240 которые загадочным образом стоят в 2 раза дешевле символьных 16x2 и в 5 раз дешевле 16x4, что вызывает странные чувства, ибо как то не совсем логично, хотя возможно TFT экранов просто выпуск намного больше поэтому и дешевле... 

- Реклама
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ссылку на эти ТФТ можно? А то заинтересовали, чего это они такие дешевые?
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СКАЗОЧНИК писал(а):Ссылку на эти ТФТ можно? А то заинтересовали, чего это они такие дешевые?
http://www.aliexpress.com/item/J35-Free-Shipping-2-2inch-2-2-240X320-Resolution-TFT-LCD-Screen-ILI9328-Driver-IC-8/32228933106.html
http://www.aliexpress.com/item/L1092-2inch-2-2-240X320-Resolution-TFT-LCD-Screen-ILI9328-Driver-IC-8-bit-Parallel/1940840987.html
http://www.aliexpress.com/item/2-2inch-2-2-240X320-Resolution-TFT-LCD-Screen-ILI9328-Driver-IC-8-bit-Parallel/1945766930.html
http://www.aliexpress.com/item/2-2inch-2-2-240X320-Resolution-TFT-LCD-Screen-ILI9328-Driver-IC-8-bit-Parallel-O123/32229777745.html
НА вид проблем нет, к лабораторному блоку питания подключал подсветка работает, знаю людей которые их покупали и они у них работали. Т.ч. будем тоже чего-нибудь портить...
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
В продолжение к моему посту о написании библиотечки для управления этими дисплеями (1602).http://radiokot.ru/forum/viewtopic.php?p=2243980#p2243980
Немного еще ее подточил:
1. Реализовал чтение флага BF
Теперь можно не заботиться о задержках, вывод на дисплей производится быстрее, хотя, я с прошлым разом не заметил, но для медленного тактирования МК будет заметно точно. Поэтому теперь библиотека добавит к вашей программе при подключении ее и инициализации дисплея 198 Байт. Используется еще один вывод МК, зато работать будет надежнее. Кроме того, см. ниже.
2. Реализовал условную компиляцию
Если кому-то не нужно чтение флага занятости дисплея и он хочет сэкономить один вывод у МК в объявлениях в файле LCD4.asm нужно просто указать цифру НОЛЬ (там все написано). При компиляции автоматически отключится чтение флага занятости и подключатся нужные задержки. При этом библиотека добавит к вашей программе при подключении ее и инициализации дисплея 158 Байт.
Все остальное осталось прежним.
Из невыполненного еще:
1. Вывод собственных символов
2. Вывод сразу строки
3. Вывод в строке изменяемых параметров в процессе программы
З.Ы. напоминаю. Для инициализации дисплея в основной программе надо подключить два этих файла.
Еще добавлю. Что если между символами (словами) нужно сделать один или пару пробелов, то выгоднее в плане экономии БАЙТ поставить пробел(ы) (например: SYMBOL 0x20)
А вот и исходники библиотеки:
Немного еще ее подточил:
1. Реализовал чтение флага BF
Теперь можно не заботиться о задержках, вывод на дисплей производится быстрее, хотя, я с прошлым разом не заметил, но для медленного тактирования МК будет заметно точно. Поэтому теперь библиотека добавит к вашей программе при подключении ее и инициализации дисплея 198 Байт. Используется еще один вывод МК, зато работать будет надежнее. Кроме того, см. ниже.
2. Реализовал условную компиляцию
Если кому-то не нужно чтение флага занятости дисплея и он хочет сэкономить один вывод у МК в объявлениях в файле LCD4.asm нужно просто указать цифру НОЛЬ (там все написано). При компиляции автоматически отключится чтение флага занятости и подключатся нужные задержки. При этом библиотека добавит к вашей программе при подключении ее и инициализации дисплея 158 Байт.
Все остальное осталось прежним.
Из невыполненного еще:
1. Вывод собственных символов
2. Вывод сразу строки
3. Вывод в строке изменяемых параметров в процессе программы
З.Ы. напоминаю. Для инициализации дисплея в основной программе надо подключить два этих файла.
Спойлер
Код: Выделить всё
.include "LCD4_MACRO.inc"
...
...
...
rcall INIT_LCD
...
...
ADDRESS 1,2 ; Вот так производится перевод курсора в позицию 2 на первой строке
SYMBOL 0x34 ; Вот так производится вывод символа в позицию курсора, при этом курсор сам сдвинется правее
...
...
; где-то внизу, где подпрограммы ваши начинаются вызвать
.include "LCD4.asm" Еще добавлю. Что если между символами (словами) нужно сделать один или пару пробелов, то выгоднее в плане экономии БАЙТ поставить пробел(ы) (например: SYMBOL 0x20)
А вот и исходники библиотеки:
- Вложения
-
- LCD.rar
- (2.76 КБ) 213 скачиваний
Станислав
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Да, свои символы довольно легко делать. ))) Можно действительно вот такую штуку замутить.
http://img.radiokot.ru/files/36319/jxp4flky6.jpg
http://img.radiokot.ru/files/36319/jxp3pee39.jpg
З.Ы. это просто шрифт (цифры). )) Не часы.
http://img.radiokot.ru/files/36319/jxp4flky6.jpg
http://img.radiokot.ru/files/36319/jxp3pee39.jpg
З.Ы. это просто шрифт (цифры). )) Не часы.
Станислав
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Уря! Победил собственный знакогенератор. Теперь очередная версия библиотеки для ЖКИ.
Итак. Если подключаете собственные "рисованные" символы, то достаточно поставить ЕДИНИЧКУ в нужном месте (все в шапке файла LCD4.asm), а после этого нарисовать свои символы в массиве (таблице), которая ниже. Таблица организована так, чтобы наглядно было сразу, где и какой символ. Но помните, три старших бита не будут выведены на экран, значащие только пять младших (см. даташиты на ЖКИ). Таблица занимает в памяти программ 64 Байта соответственно.
Теперь, при подключении своих символов ваша программа вырастет на 118 Байт (64 Байта таблица и 54 Байта перенос этой таблицы в CGRAM ЖКИ).
Если хотите сэкономить на Байтах, то можно не подключать все это, а просто рисовать символы самому... Но так не удобно..
В таблице по умолчанию уже прописан (нарисован) "шрифт цифр" из которого потом нарисованы вон те часики, что сверху на фотках.
Чтобы вам не лень было считать, то подключенная библиотека и инициализированный дисплей с чтением флага занятости и с таблицей символов добавит к вашей программе 306 Байт... Но, как и раньше, все зависит от вашего выбора, можно не подключать некоторые модули. В исходном состоянии Без таблицы и без флага занятости так и осталось 158 Байт.
Теперь, чтобы вывести свой символ на экран, нужно (все просто).
SYMBOL Х (где Х - это код символа от 0х00 до 0х08)
вот так. всего 8 штук. Если посмотрите на таблицу символов встроенного знакогенератора, то увидите, что там как раз первые 8 ячеек пустые, как раз под ваши символы.
На всякий случай добавил свой основной файл в архив, чтобы можно было посмотреть на инициализацию и вывод символов. )))))
З.Ы. Чуть позже добавлю макрос, если кто хочет нарисовать только один символ в процессе программы его вставит, а памяти на целую таблицу жалко.
Добавил. Теперь можно нарисовать только один символ, при этом с помощью этого макроса ваша программа увеличится на 50 Байт на каждый новый символ. Поэтому, один, ну два символа еще выгодно так нарисовать, но если используется более двух собственных символов, то выгоднее подключить всю таблицу...
Итак, макрос USER_SYM у которого ДЕВЯТЬ(!) параметров.
Все про него в файле LSD4_MACRO.inc.
Используется сразу после инициализации ЖКИ. Можно было организовать сразу вывод в текущую позицию, то тогда надо бы было читать из ЖКИ текущее значение DDRAM, а это увеличит код и мне лень.
Вывод своих символов как обычно: SYMBOL X, где Х - код собственного символа от 0 до 7.
Архив добавил (на всякий случай, добавил основной файл программы, чтобы можно было видеть использование макросов).
З.З.Ы. Пока рассматривал код, еще чуток улучшил его сэкономив один байт... Теперь при чтении флага занятости не 198 Байт, а 196 Байт кода.
Версия - 3.
Итак. Если подключаете собственные "рисованные" символы, то достаточно поставить ЕДИНИЧКУ в нужном месте (все в шапке файла LCD4.asm), а после этого нарисовать свои символы в массиве (таблице), которая ниже. Таблица организована так, чтобы наглядно было сразу, где и какой символ. Но помните, три старших бита не будут выведены на экран, значащие только пять младших (см. даташиты на ЖКИ). Таблица занимает в памяти программ 64 Байта соответственно.
Теперь, при подключении своих символов ваша программа вырастет на 118 Байт (64 Байта таблица и 54 Байта перенос этой таблицы в CGRAM ЖКИ).
Если хотите сэкономить на Байтах, то можно не подключать все это, а просто рисовать символы самому... Но так не удобно..
В таблице по умолчанию уже прописан (нарисован) "шрифт цифр" из которого потом нарисованы вон те часики, что сверху на фотках.
Чтобы вам не лень было считать, то подключенная библиотека и инициализированный дисплей с чтением флага занятости и с таблицей символов добавит к вашей программе 306 Байт... Но, как и раньше, все зависит от вашего выбора, можно не подключать некоторые модули. В исходном состоянии Без таблицы и без флага занятости так и осталось 158 Байт.
Теперь, чтобы вывести свой символ на экран, нужно (все просто).
SYMBOL Х (где Х - это код символа от 0х00 до 0х08)
вот так. всего 8 штук. Если посмотрите на таблицу символов встроенного знакогенератора, то увидите, что там как раз первые 8 ячеек пустые, как раз под ваши символы.
На всякий случай добавил свой основной файл в архив, чтобы можно было посмотреть на инициализацию и вывод символов. )))))
З.Ы. Чуть позже добавлю макрос, если кто хочет нарисовать только один символ в процессе программы его вставит, а памяти на целую таблицу жалко.
Добавил. Теперь можно нарисовать только один символ, при этом с помощью этого макроса ваша программа увеличится на 50 Байт на каждый новый символ. Поэтому, один, ну два символа еще выгодно так нарисовать, но если используется более двух собственных символов, то выгоднее подключить всю таблицу...
Итак, макрос USER_SYM у которого ДЕВЯТЬ(!) параметров.
Используется сразу после инициализации ЖКИ. Можно было организовать сразу вывод в текущую позицию, то тогда надо бы было читать из ЖКИ текущее значение DDRAM, а это увеличит код и мне лень.
Вывод своих символов как обычно: SYMBOL X, где Х - код собственного символа от 0 до 7.
Архив добавил (на всякий случай, добавил основной файл программы, чтобы можно было видеть использование макросов).
З.З.Ы. Пока рассматривал код, еще чуток улучшил его сэкономив один байт... Теперь при чтении флага занятости не 198 Байт, а 196 Байт кода.
- Вложения
-
- LCD версия 22.01.15 - 3.rar
- Самый полный на данный момент.
- (5.55 КБ) 279 скачиваний
-
- LCD версия 22.01.15 - 2.rar
- Вариант с макросом. )))
- (5.52 КБ) 219 скачиваний
-
- LCD версия 22.01.15.rar
- Вариант без макроса своих символов
- (5.27 КБ) 216 скачиваний
Станислав
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Уря! Добавил вывод строки. Очень простенько и функционально. Правда работает со всеми символами, кроме кириллицы, но это уже беда не дисплея, а компилятора, т.к. он не знает кодов русских букв. Ну, да ладно. Мне например на этих дисплеях не нравится русский шрифт, убогий какой-то.
Итак, для того, чтобы вывести строку надо где-то в программе написать массив своих слов, с учетом того, сколько знакомест у вас на дисплее, иначе за край вылезет и просто не увидите конца. Массив называется именно MY, потому что к нему будет обращение в макросе!!!!!!!
MY: .db "My own words!"
Посчитать количество символов в строке, включая пробелы. (Кавычки не надо считать, они служебные у компилятора, их не выведет). В моем случае 13 знаков.
Теперь вызываем макрос:
LINE 13
Вот и все! И ваша строка на дисплее, начиная с того места, где стоял курсор.
Массив своих символов занимает столько Байт, сколько букв (плюс один, если число не четное, точнее, по два байта на две буквы, если буква одна, все равно два байта). В моем случае: 14 Байт.
И вызов макроса займет еще 16 Байт. Итого, чтобы вывести такое предложение 30 Байт.
Стоит заметить, что выводить сразу фразами выгоднее в плане экономии байт, чем выводить отдельно по одной букве. Но зато отдельно можно писать русскими буквами.
Заморачиваться с изобретением своих таблиц символов не стал.
Ну и архивчик. (опять же там есть пример использования массива и макроса)
Итак, для того, чтобы вывести строку надо где-то в программе написать массив своих слов, с учетом того, сколько знакомест у вас на дисплее, иначе за край вылезет и просто не увидите конца. Массив называется именно MY, потому что к нему будет обращение в макросе!!!!!!!
MY: .db "My own words!"
Посчитать количество символов в строке, включая пробелы. (Кавычки не надо считать, они служебные у компилятора, их не выведет). В моем случае 13 знаков.
Теперь вызываем макрос:
LINE 13
Вот и все! И ваша строка на дисплее, начиная с того места, где стоял курсор.
Массив своих символов занимает столько Байт, сколько букв (плюс один, если число не четное, точнее, по два байта на две буквы, если буква одна, все равно два байта). В моем случае: 14 Байт.
И вызов макроса займет еще 16 Байт. Итого, чтобы вывести такое предложение 30 Байт.
Стоит заметить, что выводить сразу фразами выгоднее в плане экономии байт, чем выводить отдельно по одной букве. Но зато отдельно можно писать русскими буквами.
Заморачиваться с изобретением своих таблиц символов не стал.
Ну и архивчик. (опять же там есть пример использования массива и макроса)
- Вложения
-
- LCD версия 23.01.15.rar
- На данный момент самая полная.
- (6.09 КБ) 216 скачиваний
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Теперь следующий шаг : переход от макроса вывода строки к подпрограмме. Бо если строки будут выводиться в программе несколько раз в разных местах, макрорасширение будет сгенерировано в таком же количестве экземпляров. На каждом вызове подпрограммы можно сэкономить несколько байт. А если все тексты сгруппировать на одной "странице" ( значение ZH для всех текстов одно и то же ), то еще бо'льшая экономия.
Конечно, любители "толстых" МК и писать на Си сочтут это крохоборством. Jedem -- das Seine .
Конечно, любители "толстых" МК и писать на Си сочтут это крохоборством. Jedem -- das Seine .
Последний раз редактировалось Jack_A Сб янв 24, 2015 11:25:32, всего редактировалось 1 раз.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Вообще-то да... Чет не подумал сразу об этом. ))) Ну, это же не сложно исправить. 
А вопрос. Можно как-то посчитать количество элементов в массиве, чтобы программа сама это делала?
Или в каждом массиве ставить знак, типа "возврат каретки"????
А вопрос. Можно как-то посчитать количество элементов в массиве, чтобы программа сама это делала?
Или в каждом массиве ставить знак, типа "возврат каретки"????
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Элементарно, Ватсон. В конце строки ставить 0 и отслеживание вести не по счетчику, а по содержимому байта. Ну можно и не 0, а любой невыводимый символ, хотя бы и Конец строки. Сэкономится еще один используемый регистр.
Кстати, USER_SYM тоже можно сократить раза в 2 : не подавать подпрограмме DATA_WR содержимое "вручную", а дать указатель уже не на строку символов, а на массив символо-образующих байтов и использовать цикл. Даже при однократном вызове -- будет короче.
Кстати, USER_SYM тоже можно сократить раза в 2 : не подавать подпрограмме DATA_WR содержимое "вручную", а дать указатель уже не на строку символов, а на массив символо-образующих байтов и использовать цикл. Даже при однократном вызове -- будет короче.
Последний раз редактировалось Jack_A Сб янв 24, 2015 11:38:02, всего редактировалось 1 раз.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ага. Ну так я и понял.
Ок. переделаю.
Пользуясь случаем, хочу объявить благодарность за помощь в ковырянии этого кода:
Jack_A
Gudd-Head
Kavka
Albert_V
WiseLord
Alexeyslav
Без ваших пояснений и указаний направления, куда двигаться, я бы тупил очень долго еще.
Jack_A, я правильно понимаю, просто также сделать массив, а не задавать кучей параметров макрос?
З.Ы. Наше интересную штуку в АВРстудио. Там можно менять цвета кода в настройках. Очень удобно теперь. Команды - синие, Комментарии - зеленые, Всякие названия - черные, а Цифры - красные.
Пользуясь случаем, хочу объявить благодарность за помощь в ковырянии этого кода:
Jack_A
Gudd-Head
Kavka
Albert_V
WiseLord
Alexeyslav
Без ваших пояснений и указаний направления, куда двигаться, я бы тупил очень долго еще.
Jack_A, я правильно понимаю, просто также сделать массив, а не задавать кучей параметров макрос?
З.Ы. Наше интересную штуку в АВРстудио. Там можно менять цвета кода в настройках. Очень удобно теперь. Команды - синие, Комментарии - зеленые, Всякие названия - черные, а Цифры - красные.
Последний раз редактировалось СКАЗОЧНИК Сб янв 24, 2015 13:53:49, всего редактировалось 2 раза.
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СКАЗОЧНИК писал(а):просто также сделать массив, а не задавать кучей параметров макрос?
Yes, Sir !
Symb1: .db 0x1F,0xF7,......
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Jack_A писал(а):Symb1: .db 0x1F,0xF7,......
0xF7
А так, все понятно. Только один еще вопросик, больше риторический. Каким же параметром теперь задать номер символа в памяти? Чтобы их можно было несколько нарисовать, а потом использовать, где нужно.
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Это на вкус и цвет
Можно метками : Symb1,Symb2 к примеру. Или смещением : Symb, Symb+8 и т.д.
ldi ZL,low(Symb*2) + 8 ; 2-й символ и т.д.
Только стоит помнить, что ежели пользовательский символ переопределить внутри программы, то если он был где-то в выведенном на дисплей тексте, он сразу же перерисуется. Насчет "сразу же" не уверен, но при новом выводе строки -- точно.
ldi ZL,low(Symb*2) + 8 ; 2-й символ и т.д.
Только стоит помнить, что ежели пользовательский символ переопределить внутри программы, то если он был где-то в выведенном на дисплей тексте, он сразу же перерисуется. Насчет "сразу же" не уверен, но при новом выводе строки -- точно.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Jack_A писал(а):А если все тексты сгруппировать на одной "странице" ( значение ZH для всех текстов одно и то же ), то еще бо'льшая экономия.
Вот это не сильно доходит до меня.
Станислав
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Это уже черная магия. например, можно найти место в коде где начинается страница, т.е. младшая часть адреса близка к нулю или использовать директиву .ORG и разместить ресурс заведомо выше адресного пространства где находится код. Если что-то будет не так и код наедет на ваши данные, то об этом сообщит компилятор.


