Pantalla LCD1602A azul/amarillo verde/color azul/con retroiluminación 5V Pantalla LCD 1602 Pantalla LCD

110 días
$8.676 pedido mín (600 uds)
Producto 5.0
Proveedor 4.0

Variaciones

Blue screen
Blue screen with pin header
Shell

Productos similares a un precio más bajo

Especificaciones del producto
Marca
xtj
Especificaciones y modelos
Blue screen, Yellow-green screen, Blue screen with pin header, Yellow-green screen with pin header, Shell
Marca
xtj
Especificaciones y modelos
Blue screen, Yellow-green screen, Blue screen with pin header, Yellow-green screen with pin header, Shell
Marca
xtj
Especificaciones y modelos
Blue screen, Yellow-green screen, Blue screen with pin header, Yellow-green screen with pin header, Shell
Detalles del producto
El texto en las imágenes se puede traducir

Si necesitas que coincidaPlaca Adaptadora de Interfaz IIC/I2C para ArduinoPor favor, haga clic aquí para comprar:

https://item.taobao.com/item.htm?spm=686.1000925.0.0.2e4c79dbvFAfgD&id=560963121961

Por favor copie y descargue la información requerida:http://pan.baidu.com/s/1c0ARSIk

tamaño del vaso

1602 utiliza una interfaz estándar de 16 pines, donde:

Pin 1: VSS es la fuente de alimentación de tierra

Pin 2: VDD conectado a fuente de alimentación positiva de 5 V

Pin 3: V0 es el terminal de ajuste de contraste de la pantalla LCD. El contraste es mínimo cuando se conecta a la fuente de alimentación positiva y máximo cuando se conecta a la fuente de alimentación de tierra. Si el contraste es demasiado alto, se producirán imágenes fantasma. El contraste se puede ajustar mediante un potenciómetro de 10 K durante el uso.

Pin 4: RS es la selección del registro. Cuando el nivel es alto, se selecciona el registro de datos. Cuando el nivel es bajo, se selecciona el registro de instrucciones.

Pin 5: R/W es la línea de señal de lectura/escritura. Cuando RS y RW están en nivel bajo, se pueden escribir instrucciones o mostrar direcciones. Cuando RS está en nivel bajo y RW en nivel alto, se puede leer la señal de ocupado. Cuando RS está en nivel alto y RW en nivel bajo, se pueden escribir datos.

Pin 6: El terminal E es el terminal de habilitación. Cuando el terminal E salta de un nivel alto a uno bajo, el módulo LCD ejecuta el comando.

Pines 7 a 14: D0 a D7 son líneas de datos bidireccionales de 8 bits.

Pin 15: Polo positivo de alimentación de luz de fondo

Pin 16: Polo negativo de alimentación de luz de fondo

La memoria generadora de caracteres (CGROM) del módulo LCD 1602 almacena 160 gráficos de caracteres matriciales diferentes, como se muestra en la Tabla 1. Estos caracteres incluyen: números arábigos, letras mayúsculas y minúsculas del alfabeto inglés, símbolos comunes, kana japonés, etc. Cada carácter tiene un código fijo. Por ejemplo, el código de la letra mayúscula "A" del alfabeto inglés es 01000001B (41H). Al visualizar, el módulo muestra los gráficos de caracteres matriciales en la dirección 41H, donde se puede ver la letra "A".

El siguiente es el programa para mostrar la letra "A" en la primera posición de carácter de la segunda línea del módulo LCD: ORG 0000H

RS EQU P3.7; Determinar el método de conexión de hardware específico
RW EQU P3.6 ; Determinar el método de conexión de hardware específico
E EQU P3.5 ; determinar el método de conexión de hardware específico

MOV P1,#00000001B ; Limpia la pantalla y reinicia el cursor
LLAMAR HABILITAR; Llamar subrutina de comando de escritura

MOV P1,#00111000B ; Establecer modo de visualización: matriz de puntos de 5x7, 8 bits y 2 líneas
LLAMAR HABILITAR ; Llamar a la subrutina de comando de escritura

MOV P1,#00001111B; Pantalla encendida, cursor encendido, cursor permitido para parpadear
LLAMAR HABILITAR ; Llamar a la subrutina de comando de escritura

MOV P1,#00000110B; El texto no se mueve y el cursor se mueve automáticamente hacia la derecha
LLAMAR HABILITAR ; Llamar a la subrutina de comando de escritura

MOV P1,#0C0H; escribe la dirección de inicio de la visualización (la primera posición de la segunda línea)
LLAMAR HABILITAR ; Llamar a la subrutina de comando de escritura

MOV P1, #01000001B; código para la letra A

SETB RS;RS=1
CLR RW ;RW=0 ; Preparar para escribir datos
CLR E ;E=0 ;Ejecutar comando de visualización
LLAMADA ACALL RETRASO ;¿Determinar si el módulo LCD está ocupado?
SETB E ;E=1 ;Pantalla completa, el programa se detiene

AJMP $

PERMITIR:
CLR RS ;subrutina para escribir comandos de control
CLR RW
CLR E
RETRASO DE LLAMADA
SETB E
RET

DEMORA:
MOV P1,#0FFH ;Subrutina para determinar si la LCD está ocupada
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,DELAY ;si P1.7 está en nivel alto indicando ocupado, esperar en bucle
RET

FIN

Al inicio del programa, se inicializa la función del módulo LCD y se acuerda el formato de visualización. Tenga en cuenta que el cursor se mueve automáticamente a la derecha al mostrar caracteres, sin intervención manual. Cada vez que se introduce un comando, se llama a la subrutina DELAY para determinar si el módulo LCD está ocupado, luego se introduce la dirección de la posición de visualización 0C0H y, finalmente, se introduce el código 41H del carácter A que se va a mostrar.


Método de cableado del puerto analógico SMC1602A (16*2)
Diagrama de conexión:
---------------------------------------------------
MCM-----51   MCM-----51   MCM------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 conectado a una resistencia de 1K a GND
---------------------------------------------------

 

[Nota: AT89S52 utiliza un oscilador de cristal de 12 M]
=============================================================*/

#define LCM_RW P2_0 //define pin
#define LCM_RS  P2_1
#define LCM_E   P2_2
#define LCM_Data  P1
#define Busy 0x80 //se usa para detectar el bit de Ocupado en la palabra de estado del LCM

#incluir

vacío 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);

código de carácter sin signo uctech[] = {"uctech"};
unsigned char code net[] = {"uctech.icpcn.com"};

void principal(vacío)
{
Delay400Ms(); //Comenzar a esperar hasta que el LCM entre en estado de funcionamiento
LCMInit(); //Inicialización de LCM
Delay5Ms(); //Retrasar por un momento (opcional)

DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, net);
ReadDataLCM();//Frase de prueba sin sentido
while(1);
}

//Escribir datos
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //Verificar Ocupado
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //Si la velocidad del oscilador de cristal es demasiado alta, se puede agregar un pequeño retraso aquí
LCM_E = 0; //Retraso
LCM_E = 1;
}

//Escribir instrucción
void WriteCommandLCM(unsigned char WCLCM,BuysC) //Ignorar detección de ocupado cuando BuysC es 0
{
if (BuysC) ReadStatusLCM(); //Verificar si está ocupado según sea necesario
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}

//Leer datos
unsigned char ReadDataLCM(void)
{
LCM_RS = 1;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
return(LCM_Data);
}

//Leer estado
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 & Busy); //Comprobar señal de ocupado
return(LCM_Data);
}

void LCMInit(void) //Inicialización de LCM
{
LCM_Data = 0;
WriteCommandLCM(0x38,0); //Configuración del modo de visualización tres veces, no comprueba la señal de ocupado
Retrasar5Ms();
WriteCommandLCM(0x38,0);
Retrasar5Ms();
WriteCommandLCM(0x38,0);
Retrasar5Ms();

WriteCommandLCM(0x38,1); //Configuración del modo de visualización, comience a requerir cada detección de señal de ocupado
WriteCommandLCM(0x08,1); //Apagar pantalla
WriteCommandLCM(0x01,1); //Borrar pantalla
WriteCommandLCM(0x06,1); // Mostrar la configuración del movimiento del cursor
WriteCommandLCM(0x0C,1); // Encender pantalla y configuración del cursor
}

//Mostrar un carácter en la posición especificada
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; // Limita X para que no sea mayor que 15, Y para que no sea mayor que 1
if (Y) X = 0x40; //cuando se va a mostrar la segunda línea, código de dirección + 0x40;
X = 0x80; // Calcular el código de instrucción
WriteCommandLCM(X, 0); // Aquí no se comprueba la señal de ocupado, envía el código de dirección
EscribirDatosLCM(DData);
}

//Mostrar una cadena de caracteres en la posición especificada
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char LongitudLista;

Longitud de lista = 0;
Y &= 0x1;
X &= 0xF; // Limita X para que no sea mayor que 15, Y para que no sea mayor que 1
mientras (DData[ListLength]>0x20) //Si se llega al final de la cadena, salir
{
if (X <= 0xF) //La coordenada X debe ser menor que 0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //Mostrar un solo carácter
LongitudLista++;
X++;
}
}
}

//Retraso de 5 ms
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}

//Retraso de 400 ms
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
mientras(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};

 

¡Los procedimientos anteriores son sólo para referencia!

.......
Total