Amicus18
Amicus18 и символьный ЖК-дисплей
Платформа Amicus18 имеет встроенные средства для работы с графическими и символьными жидкокристаллическими индикаторами, построенными на базе микросхем Hitachi 44780 для символьных дисплеев, Samsung KS0108 или Toshiba T6963 для графических индикаторов. Наиболее простым в использовании, является классический символьный ЖК индикатор. Платформа Amicus18 может работать с ним как по 4-х так и по 8-ми проводному интерфейсу.
Настройка линий МК
Используя символьный ЖК-дисплей для вывода информации, первоначально необходимо указать, куда будут подключены линии данных и управления. Делается это с помощью объявления соответствующих значений.
Declare LCD_Type 0 или Alpha - Указывает компилятору на тип дисплея. Для символьного ЖК-индикатора необходимо указывать 0 или Alpha
Declare LCD_ENPin Port .Pin - Назначает выходную линию, управляющую входом Enable дисплея. По умолчанию используется PortB.3.
Declare LCD_RSPin Port .Pin - Назначает выходную линию, управляющую входом RS дисплея. По умолчанию используется PortB.2.
Declare LCD_Interface 4 или 8 - Указывает на 4-х или 8-ми проводной режим передачи данных. По умолчанию используется 4-х проводной.
Declare LCD_Lines 1, 2, or 4 - Указывает количество строк на дисплее.
Declare LCD_DTPin Port .Pin Определяет порт и номер первого выхода, куда подключаются линии данных. При 8-ми проводном режиме всегда Pin=0, и используется весь порт. При 4-х проводном режиме Pin=0, или Pin=4, и используются либо линии 0-3, либо 4-7. Изменение номеров выходов соответствует изменению номеров линий данных дисплея.
Команда PRINT
Команда Print предназначена для вывода текстовой информации на ЖК-дисплей. Она может быть использована не только с символьными LCD, но также и с графическими. Команда Print одна из самых функциональных команд в ProtonBASIC. Большое количество разнообразных модификаторов придет ей множество специальных возможностей по отображению информации. Во многих случаях, эти возможности позволяют не задумываться о преобразовании данных перед отображением на ЖК-дисплее.
Команда записывается в следующем виде:
Print Item {,Item…}
где Item – переменные, константы или модификаторы.
Модификаторы
- At ypos,xpos Установка курсора в указанные координаты LCD
- Cls Очистка экрана
- Bin{1..32} Отображение двоичного значения
- Dec{1..10} Отображение десятичного значения
- Hex{1..8} Отображение шестнадцатеричного значения
- Sbin{1..32} Отображение двоичного значения со знаком
- Sdec{1..10} Отображение десятичного значения со знаком
- Shex{1..8} Отображение шестнадцатеричного значения со знаком
- Ibin{1..32} Отображение двоичного значения с отображением символа '%'
- Idec{1..10} Отображение десятичного значения с символом '#'
- Ihex{1..8} Отображение шестнадцатеричного значения со знаком '$'
- ISbin{1..32} Отображение двоичного значения со знаком с отображением символа '%'
- ISdec{1..10} Отображение десятичного значения со знаком с символом '#'
- IShex{1..8} Отображение шестнадцатеричного значения со знаком и символом '$'
- Rep c\n Отображение символа c повторяющегося n раз
- Str array\n Отображение состава массива или n его частей
- Cstr cdata Отображение строки, определенной в Cdata
После модификаторов Bin, Dec, и Hex можно указать количество цифр, отображаемых на индикаторе. Отсутствующие разряды будут заменены нулями. Наиболее удобно использовать данную опцию при выводе дробных чисел. В этом случае указывается число знаков после запятой. По умолчанию, число знаков равно 3.
Команды дисплея
С помощью Print возможна передача команд индикатора
- $FE, 1 Очистить дисплей
- $FE, 2 Установить курсор на первую строку
- $FE, $0C Погасить курсор
- $FE, $0E Включить курсор в виде подчеркивания
- $FE, $0F Включить мигающий курсор
- $FE, $10 Сдвиг курсора на одну позицию влево
- $FE, $14 Сдвиг курсора на одну позицию вправо
- $FE, $C0 Установить курсор на начало второй строки
- $FE, $94 Установить курсор на начало третьей строки (для 4-х строчных дисплеев)
- $FE, $D4 Установить курсор на начало четвертой строки (для 4-х строчных дисплеев)
Пример программы
Ниже приведен пример простой программы, работающей с ЖК-дисплеем. В качестве последнего использован LCD индикатор WH1602B. Схема подключения дисплея приведена выше.
Результат работы программы
Текст на языке ProtonBASIC
' Объявление переменных Dim DV as byte Dim FV As Float ' Установки ЖК индикатора LCD_DTPin = PORTB.4 ' Линии D4-D7 подклюючены к линиям 4-7 PORTB LCD_ENPin = PORTB.2 ' Вход EN подключен к PORTB.2 LCD_RSPin = PORTB.0 ' Вход RS подключен к PORTB.0 LCD_Interface = 4 ' 4-х проводная схема LCD_Lines = 2 ' Используется двухстрочный индикатор LCD_Type = Alphanumeric ' Тип индикатора - символьный Main: FV=3.1409 DelayMS 100 ' Задержка для включения индикатора Cls ' Очистка индикатора Print "Hello World " ' Вывод строки “Hello World” Print dec1 FV ' Вывод переменной FV с одним знаком после запятой while 1=1 FOR DV=0 to 250 step 1 Print $FE, $C0 ' Установка курсора на начало второй строки Delayms 300 ' Задержка 0.3сек Print dec3 DV ' Вывод переменной DV с одним знаком после запятой next wend