Описание
1602A синий/желто-зеленый
1602 стандартный интерфейс 16 футов, среди них:
1 фут: для питания VSS
2 средства ухода за кожей Стоп: VDD занимает от 5 V питания
3 фута: V0 для lcd контрастность регулировки, и затем, когда мощность является самым слабым контрастом, заземление источника питания наивысшей контрастности, высокая контрастность может произвести «призрак», при использовании, может пройти 10 K регулировка контрастности потенциометра
4 фута: RS для выбора регистров, высокий Электрический обычно выбирает регистры данных, низкий электрический обычно выбирает инструкция.
5 футов: R/W сигнальные линии для чтения и записи, высокие электрические, как правило, считываются, низкое электричество в обычное время для записи. Когда RS и RW вместе для низкого электричества могут быть написаны инструкции в обычное время, или отображает адрес, когда RS для низкого уровня для высокого электричества может обычно RW считывать сигналы занятого времени, когда RS для высокого уровня для низкого электричества может обычно RW записи данных.
6 футов: E конец, чтобы сделать может закончиться, когда E управляется высоким уровнем скачка в низкий уровень электричества в обычное время, ЖК-модуль руководителя.
От 7 до 14 футов: D0 ~ D7 для восьми двухсторонних кабелей передачи данных.
15 футов: подсветка питания
16 футов: подсветка отрицательная
1602 ЖК-модуль внутренней памяти (CGROM) уже сохранен 160 различных матричных символов, как показано в таблице 1, эти символы имеют: арабские цифры, чехол с английскими буквами, обычно используемыми символами, такими как японский и под ложным именем, Каждый символ имеет фиксированный код, например, заглавная буква, английская буква "А", код 01000001 B (41 H), показывает адрес 41 модуля H точечных матричных символов, графический дисплей, и мы можем увидеть букву "А".
Ниже приводится вторая линия ЖК-модуля в положении первого символа, что буква "A" программа: ORG 0000 H
RS EQU P3.7; определение конкретных аппаратных соединений
RW EQU P3.6; определение конкретных аппаратных соединений
E EQU P3.5; определение конкретных аппаратных соединений
MOV P1, #00000001 B; очистка экрана и сброс курсора
ACALL ВКЛЮЧИТЬ; позвонить для заказа подбанка
MOV P1, #00111000 B; установить режим отображения: восемь 2 строк 5x7 точечная матрица
ACALL ВКЛЮЧИТЬ; позвонить для заказа подбанка
MOV P1, #00001111 B; Отображение открытия и курсора, и курсор позволяет мигать
ACALL ВКЛЮЧИТЬ; позвонить для заказа подбанка
MOV P1, #00000110 B; слова не двигаются, курсор перемещается вправо
ACALL ВКЛЮЧИТЬ; позвонить для заказа подбанка
MOV P1, #0 C0H; Написать показать начальный адрес (вторая строка первая позиция)
ACALL ВКЛЮЧИТЬ; позвонить для заказа подбанка
MOV P1, #01000001 B; буквы А
SETB RS; RS = 1
CLR RW; RW = 0; готов к записи данных
CLR E; E = 0; exception show command
ACALL DELAY; Judge lcd модуль занят?
SETB E; E = 1; дисплей полный, и программа для парковки
Ajmp $
Включают:
CLR RS; команда управления записью подгруппы
CLR RW
CLR E
Нареки задержки
Прпб E
Красно-белый
Задержка:
MOV P1, #0 FFH; судите, занят ли жидкокристаллический дисплей
CLR RS
Прпб RW
CLR E
NOP
Прпб E
JB P1.7, задержка; если P1.7 для высокого уровня, указанного занятой циркуляцией подождите
Красно-белый
Конец
Программа в начале ЖК-модуля функция инициализирована настройками, сошлись, что формат. Обратите внимание, когда курсор является автоматическим отображением символов перемещается вправо, без человеческого участия, и каждый раз входные команды называются первым судьей ЖК-модуль процедуры занят задержкой, И затем введите адрес позиции отображения 0 C0H, наконец, чтобы показать символ ввода кода 41 H.
SMC1602A (16*2) имитационный режим подключения
Линия подключения:
---
| LCM-51 | LCM-51 | LCM---51 |
---|
| 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 к GND |
---
[Примечание: в устройствах AT89S52 используются кристаллы 12 м]
= = /
# Define LCM_RW P2_0/definition pin
# Определить LCM_RS P2_1
# Определить LCM_E P2_2
# Определить LCM_Data P1
# Define Busy 0x80/используется для тестирования слова состояния LCM в logo Busy
# Я nclude
Void WriteDataLCM (unsigned char WDLCM);
Void WriteCommandLCM (unsigned char WCLCM, BuysC);
Unsigned char ReadDataLCM (использовать пустоту);
Неподписанный char ReadStatusLCM (использовать пустоту);
Void LCMInit (использовать void);
Void DisplayOneChar (неподписанный char X, неподписанный char Y, неподписанный char DData);
Силы displaylistchar (unsigned char X, unsigned char Y, unsigned char код * данные);
Void Delay5Ms (использовать void);
Void Delay400Ms (использовать void);
Неподписанный код uctech [] = {"uctech");
Unsigned char code net [] = {"uctech. Icpcn. Com»);
Void основной (использовать void)
{
Delay400Ms ();/начать ожидание, и говорить в работе состояния LCM
LCMInit ();/Инициализация LCM
Delay5Ms ();/задержка на момент (не)
DisplayListChar (0, 5, uctech);
DisplayListChar (0, 0, net);
ReadDataLCM ();/Проверьте слова в бесзначном
В то время как (1);
}
/Записи данных
Void WriteDataLCM (unsigned char WDLCM)
{
ReadStatusLCM ();/тестирование занято
LCM_Data = wdlcm;
LCM_RS =-1 шт.;
LCM_RW = 0;
LCM_E = 0;/Если кристаллы слишком высокой скорости в малых добавить после задержки
LCM_E = 0;/задержка
LCM_E =-1 шт.;
}
/Записи инструкции
Void WriteCommandLCM (unsigned char WCLCM, BuysC)/BuysC 0 ignore busy detection
{
If (BuysC) ReadStatusLCM ();/в зависимости от необходимости обнаружения занятого
LCM_Data = wclcm;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
}
/Считывать данные
Unsigned char ReadDataLCM (использовать пустоту)
{
LCM_RS =-1 шт.;
LCM_RW =-1 шт.;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
Возврат (LCM_Data);
}
/Чтения состояния
Unsigned char ReadStatusLCM (использовать пустоту)
{
LCM_Data = 0 xFF;
LCM_RS = 0;
LCM_RW =-1 шт.;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
While (LCM_Data & Busy);/тестирование сигналов busy
Возврат (LCM_Data);
}
Void LCMInit (использовать void)/Инициализация LCM
{
LCM_Data = 0;
WriteCommandLCM (0, 0x38);/три раза настройки режима отображения, не измеряет сигналы занятого времени
Delay5Ms ();
Writecommandlcm (0, 0x38);
Delay5Ms ();
Writecommandlcm (0, 0x38);
Delay5Ms ();
WriteCommandLCM (0x38, 1);/настройки режима отображения, стал требовать, чтобы каждый раз Обнаружение занято сигналами
WriteCommandLCM (0x08, 1);/disable display
WriteCommandLCM (0x01, 1);/очистка экрана дисплея
WriteCommandLCM (0x06, 1);/Показать настройки движения курсора
WriteCommandLCM (0 x0C, 1);/Показать настройки открытия и курсора
}
/В указанном месте отображается символ
Void DisplayOneChar (неподписанный char X, неподписанный char Y, неподписанный char DData)
{
Y & = 0x1;
X & = 0 xF;/предел X не больше 15, Y не больше 1
Если (Y) X | = 0x40;/когда хотите показать Второй адрес + 0x40;
X | = 0x80;/отработать код инструкции
WriteCommandLCM (X, 0);/здесь не Тестируйте сигнал занятого, отправьте адрес
WriteDataLCM (DData);
}
/В указанном положении отображается строка символов
Void DisplayListChar (неподписанный char X, неподписанный char Y, неподписанный char код * DData)
{
Unsigned char listlength;
Listlength = 0;
Y & = 0x1;
X & = 0 xF;/предел X не больше 15, Y не больше 1
В то время как (DData [ListLength]> 0x20)/Если прибудет, строка не будет
{
Если (X <= 0 xF)/X должен быть меньше 0 xF
{
DisplayOneChar (X, Y, DData [ListLength]);/показать индивидуальный символ
Listlength + +;
X A + +;
}
}
}
/5 MS задержка
Void Delay5Ms (использовать void)
{
Unsigned int TempCyc = 5552;
В то время как (tempcyc --
}
/400 MS задержка
Void Delay400Ms (использование void)
{
Неподписанный char TempCycA = 5;
Unsigned int tempcycb;
В то время как (tempcyca --
{
Tempcycb = 7269;
В то время как (tempcycb --
} Долл. США;
Выше программа только для справки!
2004 синий/желто-зеленый



12864B синий/желто-зеленый





Характеристики
- Тип
- Символ
- Номер модели
- LCD 1602
- Разрешение
- 16*2
- Режим отображения
- 16x2