Главная > BASCOM AVR > BASCOM AVR – подключаем текстовый ЖК-дисплей (LCD)
BASCOM AVR – подключаем текстовый ЖК-дисплей (LCD)10 июля 2008. Разместил: administrator |
Иногда необходимо посмотреть результат вычислений, вывести состояние портов или выполнить прочие задачи, связанные с отображением информации. В этом нам помогут жидкокристаллические дисплеи. Самым простым, недорогим и распространенным вариантом являются текстовые дисплеи. Рассмотрим подключение и работу с жидкокристаллическим текстовым индикатором 16х2 (отображает две строчки по 16 знакомест в каждой).
Для подключения ЖК дисплея воспользуемся контроллером MRC40 (ATmega32) с универсальным модулем. На модуле уже разведен разъем для ЖК. Схема подключения проста и не вызовет ни каких сложностей. Для эксперимента мы взяли недорогой дисплей в исполнении для стандартного диапазона температур (это означает, что для питания ЖК не требуется дву-полярное питание, достаточно только +5V). Производитель дисплея – WINSTAR, модель – WH1602B-YYH-CTK. Подключение осуществляется по 4-х битной схеме, таким образом мы экономим 4 вывода порта микроконтроллера.
Обозначение пинов на ЖК и на разъеме платы модуля в прилагаемой схеме.
Начнем… За что мне так полюбился BASCOM AVR, так это за простоту работы и визуально-понятный код. Работа в компиляторе с ЖК дисплеем лишний раз это подчеркивает. Для начала кратко перечислим основные команды BASCOM AVR для работы c текстовыми дисплеями…
CONFIG Lcdpin – конфигурируем подключение дисплея к выводам портов микроконтроллера
CONFIG Lcd – указываем какой именно дисплей подключен (количество строк и символов в строках)
CLS – очистить всю информацию с экрана
LOWERLINE – переместить курсор на нижестоящую строчку
UPPERLINE – переместить курсор на вышестоящую строчку
CURSOR – состояние курсора (включен или выключен, мигающий или не мигающий)
DISPLAY – включить или выключить дисплей
LOCATE – переместить курсор в конкретную позицию на экране дисплея (выбрать линию, выбрать знакоместо)
SHIFTCURSOR – переместить курсор влево или вправо на одну позицию.
SHIFTLCD – переместить всю отображенную информацию влево или вправо на одну позицию.
LCD – отобразить на экране (это может быть текст, значения переменных или констант)
С более подробной информацией и дополнительными командами, вы можете ознакомиться в мануале на официальном сайте по BASCOM AVR.
Теперь напишем самую простую программу для отображения двух строчек текстовой информации. Для этого используем дополнительную библиотеку lcd4.lbx из дистрибутива BASCOM AVR. Так как именно под нее разведено подключение на нашем универсальном модуле. Если вы используете какое либо другой вариант подключения к портам МК, то эту библиотеку использовать не надо – просто опишите в CONFIG Lcdpin ваше подключение и все.
Программа….
'подключаем текстовый ЖК индикатор. 'RoboZone.SU
$regfile = "m32def.dat" ' используем ATmega32 (MRC40 с универсальным модулем) $crystal = 16000000 ' частота установленного кварца 16 mHz
$lib "lcd4.lbx" 'используем 4-х битное подключение дисплея с помощью альтернативной библиотеки
' 'Библиотека lcd4.lbx использует следующее подключение - '
'LCD = ATmega32 '---------------
'Rs = PortB.0 'RW = PortB.1 ' E = PortB.2 'E2 = PortB.3 данный вывод используется для подключения некоторых дисплеев с двумя чипами (здесь не используется) 'Db4 = PortB.4 'Db5 = PortB.5 'Db6 = PortB.6 'Db7 = PortB.7
' указываем конфигурацию подключения дисплея к портам МК Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2 'используем дисплей на 2 строчки по 16 знакомест в каждой
Cls 'команда очистки дисплея Lcd "RoboZone.SU" 'выводим надпись Lowerline ' переходим на нижнюю строчку Lcd "LCD test GOOD!!!" 'выводим надпись 'ВСЕ!!! End
Из комментариев в программе видно, что вывод информации на ЖК экран с помощью BASCOM AVR проще некуда =) Команда CURSOR Синтаксис команды - CURSOR ON / OFF BLINK / NOBLINK Пример:
Cls 'команда очистки дисплея Cursor off 'выключаем отображение курсора Lcd "RoboZone.SU" 'выводим надпись Синтаксис команды - DISPLAY ON / OFF Пример:
Cls 'команда очистки дисплея Lcd "RoboZone.SU" 'выводим надпись Wait 3 'пауза 3 секунды Display off 'выключаем дисплей Wait 3 'пауза 3 секунды Display on 'включаем дисплей
Lcd "Display ON!" 'выводим надпись
Синтаксис команды - LOCATE Y,X (где Y – строка, X – номер знакоместа) Пример:
Cls 'команда очистки дисплея Lcd "*" 'выводим надпись Locate 2,4 Lcd "*" 'выводим надпись Locate 1,7 Lcd "*" 'выводим надпись
Locate 2,10 Lcd "*" 'выводим надпись
Locate 1,13 Lcd "*" 'выводим надпись Locate 2,16 Lcd "*" 'выводим надпись
Синтаксис команды – SHIFTCURSOR LEFT/RIGHT Пример:
Cls 'команда очистки дисплея Lcd "*" 'выводим надпись Shiftcursor right 'перемещаем курсор на одно знакоместо вправо Lcd "HELLO!" 'выводим надпись
Синтаксис команды – SHIFTLCD LEFT/RIGHT
Пример:
Cls 'команда очистки дисплея
Lcd "HELLO!" 'выводим надпись
Waitms 500 'пауза 0,5 секунды
For A = 1 To 10 'цикл от 1 до 10
Shiftlcd Right 'сдвигаем текст вправо
Waitms 500 'пауза 0,5 секунды Next For A = 1 To 10 'цикл от 1 до 10
Shiftlcd left 'сдвигаем текст влево
Waitms 500 'пауза 0,5 секунды
Вернуться назад |