Поддержка буквенно-цифрового ЖК-дисплея в Bascom

Буквенно-цифровые дисплеи часто используются для представления результатов измерений или работы схемы, а также для связи с пользователем.  Низкая цена, большой выбор и простота эксплуатации делают их очень часто используемыми в различных областях применения. Существуют дисплеи с одной-четырьмя строками, содержащими от 8 до 40 отдельных матриц 5х7 с готовыми шрифтами. Вы также можете создавать свои собственные символы. Большинство имеющихся в продаже дисплеев включают драйвер HD44780. При создании программ в пакете Bascom работа дисплеев с контроллером HD44780, KS077 и DOG очень проста, а встроенные библиотеки содержат много полезных функций (в таблице 1 приведены наиболее важные инструкции).

                                     

На рисунке 1 показана схема подключения основного дисплея к микроконтроллеру. Потенциометр PR1 используется для регулировки контрастности, а резистор R2 ограничивает ток диодов задней подсветки (иногда это необходимо - в зависимости от типа используемого дисплея).

                               

Дисплей управляется в 4-битном режиме,используя выводы E, RS и D4 ... D7. Вывод R/W не используется, поэтому он постоянно подключен к земле. 
 Чтобы отправить команду на дисплей, вы должны сначала сконфигурировать его.
Простая программа, отображающая измеренное напряжение, показана в листинге1, а на фот.1 - результат выполнения программы (программа в листинге 1 не соответствует рис.1-представлена как пример).

                                 

                               

В начале  установливается тип дисплея ( 2x16). Также имеются дисплеи:2x16, 2x20, 2x24, 2x40, 4x12, 4x16, 4x20, 4x40. На следующем шаге настраиваются отдельные порты. В этом примере курсор отключен.
 Затем дисплей очищается командой Cls - всегда используйте команду в начале программы.
Затем программа устанавливает курсор в положение (1.1) и отображает текст.
 Во второй строке отображаемые переменные и текст разделяются точкой с запятой,а сами они заключаются в кавычки .  
  Распространенной ошибкой для начинающих является вставка команды очистки дисплея C/s в бесконечный цикл - это решение заставляет дисплей мигать. Избегайте частого использования команды C/s, перезаписывая текст пробелами.
В представленной программе используется команда Spe(4), создающая четыре пробела (пустых поля), которые позволяют удалить старый текст, если переменное напряжения изменилось на порядок. 

                                         Мигающие тексты

 При конфигурации часто устанавливаемый параметр мигает (то есть попеременно появляется и исчезает), благодаря чему облегчается его редактирование.
 Этот эффект может быть получен с помощью команды Display OW\Оff, однако, эта реализация заставляет весь дисплей мигать.
  В листинге 2 показана простая подпрограмма, в которой пользователь может установить два параметра S1 и S2.
Используйте S2, чтобы изменить устанавливаемый параметр, и используйте S1, чтобы увеличить его значение. Установленный параметр попеременно отображается и удаляется с задержкой 400 мс. Без использования этого метода пользователь не знал бы, какой параметр редактировать.

                                           

                               Создание дополнительных знаков

Дисплеи с контроллером HD44780 имеют много встроенных символов, цифр и букв, но не содержат польских,русских букв или других символов. В этом случае  можно создать 8 пользовательских символов в программе.
Bascom AVR имеет программу для генерирование 5х7 символов (рисунок 2).

                                      

В листинге 3 показан фрагмент программы, отвечающий за определение знака градуса и отображение температуры.
  Кроме того, был отображен режим работы с использованием польского символа. Определенные символы пронумерованы от 0 до 7, поэтому для отображения n-го символа просто используйте команду Chr(n).
 

                                 

Фото 2 показывает результат от действия этой программы.
 

                             

Иногда нужно иметь больше символов. Чтобы сделать это, вы можете обойти проблему, динамически определяя символы перед отображением того, что вам нужно. Это решение имеет недостатки, потому что оно задерживает выполнение программы и после каждого выполнения, вы должны использовать команду Cis.
 Существуют также специальные ЖК-дисплеи со встроенным дополнительным комплектом символов.
  Типы дисплеев обычно близки к стандартным, поэтому стоит рассмотреть возможность их использования в своих устройствах для увеличения количество языковых версий. На рисунке 3 показана таблица кодов отображения с расширенным набором символов, набранным кириллицей.

                            

Используя стандартный набор символов, вы можете отобразить цитируемый текст с помощью команды Lsd. При использовании других символов вы должны обращаться к ним с помощью команды Chr(), указав код символа в аргументе, например Led chr (&HE0) означает отображение Д.
  Поиск в таблице кодов каждого символа довольно трудоемок. Вы можете написать программу преобразования текста латинского алфавита в кириллицу, используя транскрипцию, но такое решение будет занимать много памяти микроконтроллера и замедлять его работу.
 Для этой цели была написана программа, преобразующая любой кириллический текст в код, готовый для вставки в редактор Bascom. На рисунке 4 показано окно программы. Первое текстовое поле для ввода кириллического текста,а другой для отображения кода. Программа была написана на C# для платформы .NET, поэтому для ее запуска необходим пакет .NET Framework 3.5. Есть также дисплеи со встроенным набором символов для японского языка.

                             
Фото 3 показывает приветствие, отображаемое на русском языке на дисплее.

                               

                                                   Прокрутка текстов

Если вам нужно отобразить длинный текст на дисплее, лучше всего использовать прокрутку текста, часто встречающуюся в матричных светодиодных дисплеях. В листинге 4 представлена программа, отображающая длинный текст на дисплее 2x16.

                      

Текст не мигает и прокручивается медленно, поэтому его содержимое легко читается. Отображаемый текст сохраняется в строковой переменной, которой предшествуют 16 пробелов (в зависимости от используемого типа). Изменяя программу, вы можете устранить необходимость в пробелах. В начале измеряется длина введенной строки. Команда Mid обрезает текст на 16 символов от заданной позиции. Задержка влияет на скорость прокрутки текста.   
 
Материал взят из журнала Elektronika dla Wszystkich за 2014.6

 

[ Скачать файлы (9.9 Kb) ]
 
Просмотров: 70 | Добавил: viktorovich57 | 22.02.2020
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
авторизация
Логин:
Пароль:
Комментарии
Часы, термометр, барометр, гигрометр в одном флаконе.
18.03.2020 - Ksenia13:
Подскажите, пожалуйста, назначение кнопок, сброс понятно, а остальные 4?
Модуль ввода вывода, управляемый через USB
23.02.2020 - Петр:
Если похожая конструкця с исходниками на баскоме http://www.radioman-portal.ru/p...
Модуль ввода вывода, управляемый через USB
18.02.2020 - forter:
Artcore! Поначалу я был против материала, который публикует viktorovich57, но вр...
Модуль ввода вывода, управляемый через USB
16.02.2020 - viktorovich57:
Для начала, в качестве материала подойдет любой проект, имеющий хоть какую-то те...
Модуль ввода вывода, управляемый через USB
15.02.2020 - artcore:
Несмотря на интересную тему, это устройство настолько убогое, что даже драйвера ...
Контроллер светодиодного освещения любым пультом
07.02.2020 - viktorovich57:
В архиве есть папка ster_led_ir_soft-> pwm_ek -> Debug и Release. pwm_ek.h...
Контроллер светодиодного освещения любым пультом
02.02.2020 - forter:
Здравствуйте уважаемый коллега!
Вы сами собирали этот контроллер? Прошивк...
Контроллер светодиодного освещения любым пультом
02.02.2020 - viktorovich57:
исправил
Контроллер светодиодного освещения любым пультом
01.02.2020 - forter:
В архиве нет печатной платы в формате Sprint-Layout 6.0...
Также как, впр...