*Текущая стоимость 167,55 уже могла изменится. Что бы узнать актуальную цену и проверить наличие товара, нажмите "Добавить в корзину"




Чип 1602A SPLC780 SPLC100 совместим со всеми основными ЧИПАМИ чипов, основным выбором, равномерной яркостью подсветки, хорошим дисплеем, отличным качеством, гарантией послепродажного обслуживания, отправкой вовремя, добро пожаловать на покупку. SPLC780, чем микросердечник Антистатическая способность, чем создание стабильного качества, подлинный Тайвань. Добро пожаловать купить. Ниже приводится основная информация о 1602:
Ниже приведена процедура отображения буквы «А» в позиции первого символа второй линии ЖК-модуля: ORG 0000H
RS EQU P3.7; Определите, как подключено конкретное оборудование
RW EQU P3.6; Определить, как подключено конкретное оборудование
E EQU P3.5; Определите, как подключено конкретное оборудование
MOV P1, # 00000001B; Четкий экран и сброс курсора
ACALL ENABLE; Команда записи вызова subroutine
MOV P1, # 00111000B; Комплект Режим отображения: 8-битный 2-5x7 с точечной матрицей
ACALL ENABLE; Команда записи вызова subroutine
MOV P1, # 00001111B; Дисплей включен, курсор включен, курсор может мигать
ACALL ENABLE; Команда записи вызова subroutine
MOV P1, # 00000110B; Текст не перемещается, курсор автоматически перемещается вправо
ACALL ENABLE; Команда записи вызова subroutine
MOV P1, # 0C0H; Начальный адрес записи (первая позиция во второй строке)
ACALL ENABLE; Команда записи вызова subroutine
MOV P1, # 01000001B; Код для Буквы A
SETB RS ;RS = 1
CLR RW ; RW = 0; Готов к записи данных
CLR E ; E = 0; Выполнение команды отображения
Задержка ACALL; Занят ли ЖК-модуль?
SETB E ; E = 1; Полный дисплей, остановка программы
Ajmp $
Включают:
CLR RS ; subroutine для команд управления написанием
CLR RW
CLR E
Нареки задержки
Прпб E
Красно-белый
Задержка:
MOV P1, # 0FFH ; subroutine для определения того, занят ли ЖК-дисплей
CLR RS
Прпб RW
CLR E
NOP
Прпб E
JB P1.7, задержка; Если P1.7 высокий, это означает, что занят и ждет в цикле
Красно-белый
Конец
В начале программы Функция ЖК-модуля инициализирована и Формат дисплея согласован. Обратите внимание, что при отображении символа курсор автоматически смещается вправо. Никакого ручного вмешательства не требуется. Каждый раз, когда вызывается Входная команда, сначала вызывается задержка подмышек для определения того, занят ли модуль жидкого кристалла, затем адрес позиции дисплея 0C0H, И, наконец, код 41H символа A, который будет отображаться, является входом.
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/определение штифта
# Определить LCM_RS P2_1
# Определить LCM_E P2_2
# Определить LCM_Data P1
# Define Busy 0x80/используется для обнаружения загруженного флага в слове состояния LCM
# Я nclude
Void WriteDataLCM(unsigned char WDLCM);
Void WriteCommandLCM(unsigned char WCLCM,BuysC);
Неподписанный char ReadDataLCM(void);
Неподписанный 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);
Неподписанный char код uctech[] = {"uctech"};
Неподписанный char code net[] = {"uctech.icpcn.com"};
Void main(void)
{
Delay400Ms(); /Начните ждать, подождите, пока LCM поговорит с рабочим статусом
LCMInit(); /Инициализация LCM
Delay5Ms (); /задержка на некоторое время (не может)
DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, net);
ReadDataLCM (); /тестовое предложение бесполезно
В то время как (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 WriteCommandLCM(unsigned char WCLCM,BuysC) /Обнаружение покупок при 0
{
If (BuysC) ReadStatusLCM(); /обнаруживает занятие по мере необходимости
LCM_Data = wclcm;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E =-1 шт.;
} Долл. США
/Считывать данные
Неподписанный char ReadDataLCM(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 & Busy); /обнаруживает сигнал занятого
Возврат (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); /отображение и настройки курсора
} Долл. США
/Отображение символа в указанном положении
Void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y & = 0x1;
X & = 0xF; /предел X не может быть больше 15, Y не может быть больше 1
Если (Y) X = 0x40; /когда будет отображаться вторая линия, код адреса + 0x40;
X = 0x80; /Рассчитать код инструкции
WriteCommandLCM (X, 0); /здесь не обнаруживается сигнал занятого, отправьте код адреса
Записываемый номер (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
В то время как (DData[ListLength]>0x20) /выйти, если конец строки достигнут
{
Если (X <= 0xF) /X координата должна быть меньше 0xF
{
DisplayOneChar(X, Y, DData[ListLength]); /отображение одного символа
Listlength + +;
X A + +;
} Долл. США
} Долл. США
} Долл. США
/5 мс
Void Delay5Ms(void)
{
Без подписи int TempCyc = 5552;
В то время как (TempCyc --);
} Долл. США
/400 мс
Void Delay400Ms(void)
{
Неподписанный char TempCycA = 5;
Unsigned int tempcycb;
В то время как (темпцика --)
{
Tempcycb = 7269;
В то время как (TempCycB --);
} Долл. США;
Вышеуказанные процедуры только для справки!
![123]()
![124]()
![125]()
![126]()
Желаем вам приятных покупок
Рекомендуем:
//www.aliexpress.com
На сайте магазина/838916