Описание
Зеленый 1602A зеленый экран ЖК-экран Зеленый 5 V Белый шрифт с подсветкой lcd 1602
1602 принимает стандарт 16 футов интерфейс, в которых:
Ноги 1: VSS как наземный источник питания
Лапка 2: VDD подключен к 5 V положительный источник питания
Лапка 3: V0-контраст настройки терминал ЖК-дисплей. Контраст самый слабый при подключении к положительным блокам питания, самый высокий при подключении к наземному источнику питания, и «призрак», когда контраст слишком высок. При использовании Контрастность может регулироваться потенциометром 10 K.
Ступня 4: RS-это выбор для регистрации, зарегистрировать данные на высоком уровне и зарегистрировать инструкции на низком уровне.
Ноги 5: R/W-это сигнальная линия для чтения, чтения на высоком уровне и записи на низком уровне. Когда RS и RW оба низкого уровня, они могут написать инструкции или адреса дисплея. Когда RS низкий уровень, RW высокий уровень, они могут считывать напряженные сигналы. Когда RS высокий уровень, RW низкий уровень, они могут записывать данные.
Стопа 6: E терминал является включателем. Когда терминал E переходит от высокого уровня к низкому уровню, модуль lcd выполняет команду.
Ног для детей в возрасте от 7 до 14 лет: D0-D7 представляет собой 8-разрядный двунаправленный линии передачи данных.
Ноги 15: задний источник света катод
16 футов: задний источник света отрицательный полюс
Память поколения символов (CGROM) в 1602 ЖК-модуле хранит 160 различных матричных графиков символов. Как показано в таблице 1, эти символы: арабские цифры, буквенные буквы английского языка, часто используемые символы, японские псевдонимы и т. д. каждый символ имеет фиксированный код, например, букву «a», код 01000001 B (41 H), режим отображения. Блок для адреса 41 H в графическом дисплее символа матрицы, мы можем увидеть букву «A».
Ниже приведена программа отображения буквы «А» в позиции первого символа во второй линии ЖК-модуля: ORG 0000 H
RS EQU P3.7; определить режим подключения конкретное оборудование
RW EQU P3.6; определить режим подключения конкретное оборудование
E EQU P3.5; определить режим подключения конкретное оборудование
MOV P1, B; Экран таможенное оформление и курсора сброс
ACALL ENABLE; команда записи вызова подпрограмма
MOV P1, B; установка Дисплей режим: 8-бит 2-5x7 решетки
ACALL ENABLE; команда записи вызова подпрограмма
MOV P1, # 00001111B; Дисплей, курсор, курсора позволяют мерцания
ACALL ENABLE; команда записи вызова подпрограмма
MOV P1, B; текст не отошел, курсор перемещается вправо автоматически
ACALL ENABLE; команда записи вызова подпрограмма
MOV P1, 0C0H; Напишите индикация Пуск адрес (первое место во второй линии)
ACALL ENABLE; команда записи вызова подпрограмма
MOV P1, B; код для Отца и Сына платья
SETB RS; RS = 1
CLR RW; RW = 0; готов к записи данных
CLR E; E = 0; выполните команды отображения
ACALL DELAY; Определите, занят ли ЖК-модуль?
SETB E; E = 1; дисплей завершен, программа парковки
Ajmp $
Включают:
CLR RS; подпрограмма для написания команды управления
CLR RW
CLR E
Нареки задержки
Прпб E
Красно-белый
Задержка:
MOV P1, 0FFH; Subprogram для того, чтобы судить ли ЖК-дисплей занят
CLR RS
Прпб RW
CLR E
NOP
Прпб E
JB P1.7, задержка; если P1.7 занят, ждать в циклическом режиме
Красно-белый
Конец
В начале программы инициализирована Функция ЖК-модуля и указан Формат дисплея. Обратите внимание, что символ дисплея автоматически перемещается вправо без ручного интервенции. Каждая Входная инструкция вызывает задержку subroutine, чтобы определить, занят ли ЖК-модуль, затем входит адрес 0C0H местоположения дисплея, И наконец-то попадает в код 41 H Символьные, которые будут отображаться.
Режим подключения аналогового порта SMC1602A (16*2)
Схема подключения:
--------------------------------------------------------------------------------------------------------------------------------------------------------
LCM---51 LCM---51 LCM---51 LCM
----------------------------------------------------------------------------------------------------------------------------------------------------
DB0---P1.0 DB4---P1.4 RW---P2.0
DB1---P1.1 DB5---P1.5 RS---P2.1
DB2---P1.2 DB6---P1.6 E --- P2.2
DB3---P1.3 DB7---P1.7 VLCD подключается 1 K сопротивление к заземлению
--------------------------------------------------------------------------------------------------------------------------------------------------------
[Примечание: AT89S52 использует 12 M Кварцевый резонатор]
============================================================= */
# Define LCM_RW P2_0/Define pin
# Определить LCM_RS P2_1
# Определить LCM_E P2_2
# Определить LCM_Data P1
# Define Busy 0x80/используется для обнаружения загруженных идентификаторов в словах LCM status
Я nclude
Void WriteDataLCM (неподписанный char WDLCM);
Void WriteCommand LCM (неподписанный char WCLCM, BuysC);
Неподписанный char считывает данные LCM (void);
Неподписанный char ReadStatusLCM (void);
Void LCMInit (void);
Void display OneChar (неподписанный char X, неподписанный char Y, неподписанный char DData);
Void DisplayListChar (неподписанный char X, неподписанный char Y, неподписанный код char * DData);
Void Delay5Ms (void);
Void Delay400Ms (void);
Неподписанный код char uctech [] = {"uctech"};
Неподписанный код char net [] = {"uctech.icpcn.com"};
Void основной (void)
{
Задержка 400 мс ();/Запуск ожидания и т. д. LCM в рабочее состояние
LCMInit ();/Инициализация LCM
Delay5Ms ();/задержка момента (не требуется)
DisplayListChar (0, 5, uctech);
DisplayListChar (0, 0, net);
Считыватель см ();/тестовые предложения не имеют значения
Время (1);
}
/Записи данных
Void WriteDataLCM (неподписанный char WDLCM)
{
ReadStatusLCM ();/занятое Обнаружение
LCM_Data = wdlcm;
LCM_RS =-1 шт.;
LCM_RW = 0;
LCM_E = 0;/если скорость колебания кристаллов слишком высока, после этого можно добавить небольшую задержку.
LCM_E = 0;/задержка
LCM_E =-1 шт.;
}
/Запись инструкция
Не обращайте внимания на то, что происходит при обнаружении void WriteCommand LCM (неподписанный char WCLCM, BuysC)/BuysC is 0
{
Если (BuysC) ReadStatusLCM ();/Проверьте, занят по мере необходимости
LCM_Data = wclcm;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
}
/Считывать данные
Неподписанный char считывает данные LCM (void)
{
LCM_RS =-1 шт.;
LCM_RW =-1 шт.;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
Возврат (LCM_Data);
}
/Чтения состояния
Неподписанный char ReadStatusLCM (void)
{
LCM_Data = 0xFF;
LCM_RS = 0;
LCM_RW =-1 шт.;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
В то время как (LCM_Data & amp; Busy);/обнаруживает загруженные сигналы
Возврат (LCM_Data);
}
Инициализация void LCMInit (void)/LCM
{
LCM_Data = 0;
WriteCommand LCM (0x38,0);/настройки режима тройного отображения, отсутствие функции обнаружения сигнала
Delay5Ms ();
WriteCommand LCM (0x38,0);
Delay5Ms ();
WriteCommand LCM (0x38,0);
Delay5Ms ();
WriteCommand LCM (0x38,1);/настройки режима отображения, начиная с необходимости обнаружения загруженного сигнала каждый раз
WriteCommand LCM (0x08,1);/Close display
WriteCommand LCM (0x01,1);/дисплей ясный экран
WriteCommand LCM (0x06,1);/отображение настроек движения курсора
WriteCommand LCM (0x0C, 1);/открытый дисплей и настройки курсора
}
/Отображение символа в указанном положении
Void DisplayOneChar (неподписанный char X, неподписанный char Y, неподписанный char DData)
{
Y = 0x1;
X & amp; = 0xF;/предел X не больше 15, Y не больше 1
Если (Y) X = 0x40;/код адреса + 0x40, когда будет отображаться вторая линия;
X = 0x80;/вычисляет код инструкции
WriteCommand LCM (X, 0);/нет напряженного сигнала, обнаруженного здесь, отправьте код адреса
WriteDataLCM (DData);
}
/Отображение строк символов в указанном положении
Void DisplayListChar (неподписанный char X, неподписанный char Y, неподписанный код char * DData)
{
Неподписанная длина списка шаров;
Listlength = 0;
Y = 0x1;
X & amp; = 0xF;/предел X не больше 15, Y не больше 1
В то время как (DData [ListLength]> 0x20)/выход, если он достигает конца струны
{
Если (X <= 0xF)/X координаты должны быть меньше 0xF
{
Дисплей OneChar (X, Y, DData [ListLength]);/отображение одного символа
Listlength + +;
X A + +;
}
}
}
/5 мс
Void Delay5Ms (void)
{
Неподписанный Инт темпцик = 5552;
Время (темпцик --);
}
/400 MS задержки
Void Delay400Ms (void)
{
Неподписанный чар темпцика = 5;
Unsigned int tempcycb;
Время (темпцика --)
{
Tempcycb = 7269;
Время (темпциб --);
}
Вышеуказанные процедуры только для справки!
Характеристики
- Бренд
- SINGLIAN
- Номер модели
- LCD1602