Экран орхидеи LCD1602 с ЖК-дисплеем подсветки 1602A-5V 1602 ЖК-экран 5 В белый шрифт
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
- Информация о товаре
- Фотографии
Чип 1602A -это SPLC780 SPLC100, совместим со всеми основными чипами всех чипсов. Основной выбор, подсвет , искренний Тайвань.Добро пожаловать на вашу покупку.Основная информация 1602 ниже:
Ниже приведена буква буквы в положении первого символа второй строки ЖК -модуля“A”Программа: org 0000h
Rs aqu P3.7; определить метод подключения конкретного оборудования
RW equ P3.6; определить метод подключения конкретного оборудования
E -eque P3.5; определить метод подключения конкретного оборудования
MOV P1,#00000001B; Чистый экран и сброс курсора
Acall inable; вызовите подпрограмму команды письма
MOV P1,#00111000B; Режим настройки отображения: 8 -bit 2 строки 5x7 точечная матрица
Acall inable; вызовите подпрограмму команды письма
MOV P1,#000011111B; дисплей, курсор, курсор, допустимое мигание
Acall inable; вызовите подпрограмму команды письма
MOV P1,#00000110B;
Acall inable; вызовите подпрограмму команды письма
MOV P1,#0C0H; напишите адрес начала (первая позиция второй строки второй строки)
Acall inable; вызовите подпрограмму команды письма
MOV P1, # 01000001B; код букв a
SetB RS; RS = 1
Clr rw; rw = 0; готово написать данные
Clr e; e = 0; выполнить команду отображения
ACALL DELOCK; судить, занят ли ЖК -модуль?
Setb e; e = 1; отображение завершено, программная парковка
AJMP $
ENABLE:
CLR RS; подпрограмма, записанная в команду управления
CLR RW
CLR E
ACALL DELAY
SETB E
RET
DELAY:
MOV P1,#0FFH; определить, занят ли жидкокристаллический дисплей
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7, задержка;
RET
END
Программа инициализирует функцию ЖК -модуля в начале, и формат дисплея согласован.Обратите внимание, что маркировка времени отображения автоматически смещается вправо, без ручного вмешательства. Каждая инструкция ввода вызывается, чтобы определить, занят ли ЖК -модуль, а затем введите адрес позиции отображения 0C0H и, наконец, ввести код 4 символ A для отображения кода 41H 41H ESSENCE
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-соединение 1K Сопротивление к GND
---------------------------------------------------
[Примечание: AT89S52 использует 12 -метровые кристаллы]
=============================================================*/
#define LCM_RW P2_0 // Определение булавки
#define LCM_RS P2_1
#define LCM_E P2_2
#define LCM_Data P1
#define Busy 0x80 // используется для обнаружения логотипа занятого в состоянии LCM
#Включать
void WriteDataLCM(unsigned char WDLCM);
void writeCommandlcm (unsigned char wclcm, buysc);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
Void displayonechar (unsigned char x, unsigned char y, unsigned char ddata);
Void DisplayListCHAR (Unsigned char X, Unsigned char Y, Unsigned char Code *ddata);
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char code uctech[] = {"uctech"};
unsigned char code net[] = {"uctech.icpcn.com"};
void main(void)
{
Задержка400ms (); // Начните ждать, подождите, пока LCM поговорит о статусе работы
Lcminit (); // инициализация LCM
DoPload5ms (); // задержка на некоторое время (не)
DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, net);
Readdatalcm (); // тестовые предложения не имеют смысла
while(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) // внезапно проверить обнаружение внезапно проверить обнаружение
{
if (buysc) readstatuslcm (); // Проверка занята по мере необходимости
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}
// Читать данные
unsigned char ReadDataLCM(void)
{
LCM_RS = 1;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
return(LCM_Data);
}
// читать статус
unsigned char ReadStatusLCM(void)
{
LCM_Data = 0xFF;
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
while (LCM_Data&Занят); // обнаружить сигнал заняты
return(LCM_Data);
}
void lcminit (void) // Инициализация LCM
{
LCM_Data = 0;
WriteCommandLcm (0x38,0); // три настройки режима отображения, сигнал без занятости
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLcm (0x38,1); // Настройки режима отображения, начинайте каждый раз требовать каждого тестирования.
WriteCommandLcm (0x08,1); // Выключить дисплей
WriteCommandLcm (0x01,1); // отображать прозрачный экран
WriteCommandlcm (0x06,1); // отображать настройки движения курсора
WriteCommandLcm (0x0c, 1); // отображать настройки Open и Cursor
}
// отображать символ в соответствии с указанным местоположением
Void displayonechar (unsigned char x, unsigned char y, unsigned char ddata)
{
Y&= 0x1;
X&= 0xf; // предел x не может быть больше 15, y не может быть больше 1
if (y) x = 0x40; // Когда отображается вторая строка второй строки, код адреса+0x40;
X = 0x80; // Рассчитайте код инструкции
WriteCommandLcm (x, 0); // Здесь нет сигнала заняты, отправьте адрес адреса
WriteDataLCM(DData);
}
// отображать строку символов в соответствии с указанным местоположением
Void DisplayListChar (Unsigned char X, Unsigned char Y, Unsigned char Code *ddata)
{
unsigned char ListLength;
ListLength = 0;
Y&= 0x1;
X&= 0xf; // предел x не может быть больше 15, y не может быть больше 1
while (DData[ListLength]>0x20) // Если вы достигнете конца строки
{
if (X<= 0xf) // x координаты должны быть меньше 0xf
{
DisplayOneChar (x, y, ddata [listlength]); // отображать один символ
ListLength++;
X++;
}
}
}
// 5 мс задержка
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
// задержка 400 мс
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
Приведенные выше процедуры предназначены только для справки!Пересечение