LCD 320240, lenguaje C

1 Introducción

Los módulos de visualización gráfica de cristal líquido de matriz de puntos se han convertido en un dispositivo de visualización ideal en sistemas de microcomputadoras de un solo chip y se utilizan ampliamente en instrumentos inteligentes controlados por un solo chip. microcomputadoras, campos de control industrial, equipos de comunicación y electrodomésticos. Sin embargo, es muy difícil que los módulos de pantalla de cristal líquido de matriz de puntos gráficos ordinarios se utilicen para mostrar interfaces gráficas. En primer lugar, la pantalla gráfica ocupa una gran cantidad de espacio ROM del usuario. Tomando como ejemplo el módulo LCD de matriz de puntos de 320×240, el espacio ROM ocupado al mostrar una imagen (pantalla completa) es 320×240/8=9.6k Byte. Este es un microcontrolador de memoria flash FLASH con solo unos pocos kbytes. el chip es imposible; en segundo lugar, el proceso de visualización de imágenes es extremadamente complicado. La posición de cada matriz de puntos debe calcularse en función de los gráficos que se mostrarán y luego los datos deben escribirse en bytes para controlar el encendido y apagado. cada matriz de puntos. El nivel de complejidad es aún más desalentador si se muestran varias imágenes.

Además, al mostrar caracteres chinos, el módulo gráfico de pantalla de cristal líquido de matriz de puntos también tiene problemas como ocupar una gran capacidad de ROM, complejos circuitos de interfaz de hardware con el microcontrolador, temporización de interfaz compleja y programación de software complicada. .

Es precisamente debido a las deficiencias mencionadas anteriormente las que limitan la aplicación de los módulos gráficos de pantalla de cristal líquido de matriz de puntos en la generación de interfaces chino-computadora humana complejas y exquisitas. La interfaz china y la pantalla gráfica son tendencias inevitables en el desarrollo de interfaces hombre-máquina para productos electrónicos. De hecho, cualquier tipo de interfaz de visualización se genera esencialmente mediante la disposición y combinación de varios píxeles. Si las operaciones subyacentes del control de visualización del módulo LCD de matriz de puntos gráfica se pueden integrar en el microordenador de un solo chip del módulo, se utilizan varios píxeles en el. Se generará la interfaz de visualización. La interfaz gráfica y la biblioteca de caracteres chinos estándar están prealmacenadas en el módulo. Al usarlo, el usuario solo puede enviarle comandos de control simples a través del puerto serie para generar una interfaz de visualización de gráficos y texto. haciendo que sea simple y fácil generar interfaces gráficas complejas y, en última instancia, resolviendo el problema de los productos electrónicos. Es difícil generar una hermosa interfaz hombre-máquina durante el proceso de desarrollo.

VLCM320240 es un módulo LCD gráfico de matriz de puntos con las funciones anteriores. Este módulo lo lanza Shenzhen Yananjia Company.

2 características de rendimiento del VLCM320240

El módulo de pantalla de cristal líquido de matriz de puntos gráfico VLCM320240 tiene las siguientes características principales:

● Este módulo de pantalla de cristal líquido adopta la película azul película negativa producida por Taiwan EDT Company Display EW32F10BCW? Tiene una resolución de matriz de puntos de 320 × 240 y retroiluminación CCFT;

● Contiene un microcontrolador de alta velocidad W78E516BP producido por Taiwan Winbond Company;

● Contiene la biblioteca de fuentes simplificadas de primer y segundo nivel estándar nacional de matriz de puntos GB2312 16 × 16, los caracteres chinos en la biblioteca de fuentes se pueden mostrar en cualquier posición de la pantalla LCD;

● Contiene ASCⅡ 8 ×16 biblioteca de fuentes en inglés de matriz de puntos;

● Contiene una biblioteca de imágenes de creación propia o una biblioteca de fuentes artísticas de 64 kB, datos de visualización FLASH de programación en línea en el sitio

● Contiene un controlador LCD SED1330F y búfer de visualización de 32 kB;

● El software de depuración de simulación Visual LCM puede completar de forma independiente la edición de la interfaz de visualización, la descarga de datos y la generación de la interfaz en la computadora;

● Tiene serie RS232 estándar control de comunicación y puede controlarse fácilmente mediante una computadora host o un microcontrolador;

● Tiene un uso mínimo de recursos de hardware cuando se usa un microcontrolador como computadora host, se pueden usar dos líneas de E/S para simular la serie. puerto Cuando se utiliza el control de nivel TTL, solo se necesita una línea de E/S.

VLCM320240 tiene dos interfaces para los usuarios, a saber, el puerto de alimentación POWER y el puerto de comunicación RS232.

El puerto de alimentación incluye los siguientes puertos:

●Fuente de alimentación de +9V: suministrada al microcontrolador después de la estabilización;

●GND: tierra de alimentación del módulo;

●+Fuente de alimentación de 5V: para uso con inversor.

El puerto RS232 se define de la siguiente manera:

●BUSY: salida de indicador de ocupado, nivel bajo significa ocupado;

●RX: entrada de comando de control, incluidos 8 bits Bits de datos, 1 bit de inicio, 1 bit de parada;

●GND: señal de tierra.

3 comandos de usuario

En un uso específico, la visualización del VLCM320240 se puede controlar mediante comandos de usuario desde la computadora host.

En carácter chino o carácter ASCII comando de visualización El parámetro es el código estándar nacional de dos bytes o el código de carácter ASCII del carácter chino mostrado.

4 aplicaciones específicas

El módulo LCD de programación visual VLCM320240 se puede utilizar ampliamente en aplicaciones con un rico contenido de información de visualización o una gran capacidad de información de visualización, como aparatos de información, equipos de comunicación, control industrial, En los campos de la instrumentación inteligente y otros campos, el uso de módulos se puede dividir en dos pasos: generación de interfaz de visualización y visualización en tiempo real.

4.1 Generación de simulación de la interfaz de visualización

La generación de la interfaz de visualización se completa en la computadora host. El software de programación visual Visual LCM se puede utilizar para generar varios gráficos o gráficos utilizados en el sistema. diseño El texto se resume y edita en un patrón, pero el tamaño del patrón no debe exceder los 320 × 240 píxeles y el patrón debe seleccionarse en blanco y negro. Luego descargue los patrones editados en la memoria FLASH del ISP del módulo. El número de patrones debe ser inferior a 256. Para mostrar una gran cantidad de información de texto, también deberías intentar generar hermosas fuentes artísticas y guardarlas como patrones. Esto puede acelerar enormemente la visualización de información de texto. Después de descargar el patrón en el módulo, se pueden enviar comandos BMP a través del puerto serie para mostrar cualquier imagen en cualquier posición del módulo LCD.

4.2 Visualización de información en tiempo real

Diversa información gráfica generada por la computadora host finalmente mostrará la información correspondiente bajo el control del microcontrolador. La Figura 1 muestra el circuito de interfaz entre el microcontrolador y VLCM320240, tomando AT89C52 como ejemplo.

En el circuito que se muestra en la Figura 1, el extremo RXD del AT89C52 está conectado al extremo BUSY del puerto de comunicación VLCM320240RS232, y el extremo TXD del microcontrolador está conectado al extremo RX del módulo. Para garantizar la precisión de la velocidad en baudios, se debe seleccionar el oscilador de cristal del AT89C52 como 11,0592 MHz. Además, al compilar el software de control de pantalla correspondiente, también debe prestar atención a los siguientes puntos:

●El modo del puerto serie debe configurarse en el modo 1 (1 bit de inicio, 8 bits de datos, 1 bit de parada). bit);

●La velocidad en baudios debe establecerse en 19200 (TH1=TL1=0FDH, SMOD=1);

●El módulo debe detectarse como inactivo (BUSY) antes enviando el comando =1)? De lo contrario, el comando enviado puede no ser válido;

●El código ASCII enviado por el puerto serie debe ser el comando completo (los caracteres chinos son los códigos internos y los caracteres ASCII son los Códigos ASCII), como el comando "BMP0B000C0D", el contenido real enviado por el puerto serie es "424D503042303030433044", el orden es:

"B→M→P→0→B→0→0 →0→C→0→D";

●Al principio y al final de cada comando, se debe agregar el código ASCII "0DH" del código de fin del comando "tecla Enter" para indicar el final de el comando.

●Si el puerto serie del microcontrolador AT89C52 ha sido ocupado para otros fines, utilice una línea de puerto para simular un puerto serie suave con un protocolo de comunicación de (19200, N, 8, 1) para enviar comandos.

La subrutina de control de visualización que coincide con el circuito anterior se proporciona a continuación:

; Definición de bit

BUSY BIT P3; Definición de línea de señal ocupada

; Definición de bytes de datos

X V EQU 30H; Definir parámetro x

XH V EQU 31H; Definir parámetro xH

Y V EQU 32H; /p>

NUBER EQU 33H; Definir parámetro n

WIDTH EQU 34H; Definir parámetro w

HIGHT EQU 35H; Definir parámetro h

ASC XH; EQU 36H; Definir los cuatro dígitos superiores del parámetro x

ASC XL EQU 37H; Definir los cuatro dígitos inferiores del parámetro x

ASC XHH EQU 38H; xH

ASC XHL EQU 39H; Define los cuatro dígitos inferiores del parámetro

ASC NH EQU 3CH; Define los cuatro bits superiores del parámetro n

ASC NL EQU; 3DH; Defina los cuatro bits inferiores del parámetro n

ASC WH EQU 3EH; Defina el parámetro con cuatro dígitos altos

ASC WL EQU 3FH defina el parámetro con cuatro dígitos bajos

ASC HH EQU 40H; define el parámetro h con cuatro dígitos altos

ASC HL EQU 41H; define los cuatro bits inferiores del parámetro h

; p>INIT SIO: MOV SCON, #50H; modo de puerto serie 1

MOV TMOD, #21H

MOV TH1, #0FDH Velocidad de transmisión = 19200?

MOV TL1?#0FDH

ORL PCON?#80H; SMOD=1

SETB TR1; Iniciar T1

RET

; Establezca caracteres chinos o ASCII para mostrar el primer comando de dirección

ORDER HZA: MOV X V

MOV R0? ; Convertir el parámetro x a

código ASCII de dos bytes

MOV A?XH V

MOV R0 #REG ASC XHH

LCALL H ASC; Convertir el parámetro

MOV A?Y V

MOV R0? #REG ASC YH

LCALL H ASC; >

dos códigos ASCII de byte

LCALL BUSY CK

MOV A? "H"; enviar código ASCII del código de comando HZA

LCALL ENVÍO BYTE

MOV A?#“Z”

LCALL ENVÍO BYTE

MOV A?#“A”

LCALL SEND BYTE

MOV R0? #REG ASC XHH

LCALL SEND CS; enviar el código ASCII del parámetro H

MOV R0? ASC XH

LCALL SEND CS; enviar el código ASCII del parámetro x

MOV R0?

C YH

LCALL SEND CS; envía el código ASCII del parámetro y

LJMP ORDER END

; muestra la subrutina de cadena de caracteres chinos

ORDEN HZ ? LCALL BUSY CK; detecta el estado inactivo del módulo

MOV A?#“H”

LCALL ENVÍO BYTE

MOV A?#“Z”

BYTE DE ENVÍO DE LLAMADA

MOV A? #“D”

BYTE DE ENVÍO DE LLAMADA

SIGUIENTE HZ: CLR A; bits del carácter chino Código interno

MOVC A, @A+DPTR

INC DPTR; ajustar puntero de código interno

LCALL SEND BYTE

CLR A; obtiene caracteres chinos Los ocho códigos internos inferiores de R7, NEXT HZ

MOV A, #0DH Fin del comando

LCALL SEND BYTE

RET

; Mostrar subprograma de cadena ASCII

ORDEN ASCII:

LCALL BUSY CK

MOV A,# "H";

BYTE DE ENVÍO DE LLAMADA A LC

MOV A, #"Z"

BYTE DE ENVÍO DE LLAMADA A LC

MOV A?#"D"

LCALL ENVIAR BYTE

¿SIGUIENTE ASCII? CLR A ?Obtener código ASCII

MOVC A?@A+DPTR

INC DPTR

LCALL ENVÍO BYTE

DJNZ R7 ?NEXT ASCII

MOV A?#0DH

LCALL ENVÍO BYTE

RET

; borrar subrutina de pantalla

ORDER CLR: LCALL BUSY CK

MOV A,#"C"

LCALL SEND BYTE

MOV A?#"L"

LCALL ENVÍO BYTE

MOV A?#“R”

LCALL ENVÍO BYTE

LJMP ORDER END

;Mostrar descarga A la subrutina gráfica en el módulo

ORDER BMP: MOV A, X V

MOV R0, #REG ASC XH

LCALL H ASC; convierte el parámetro x a dos

bytes de código ASCII

MOV A, XH V

MOV R0?# REG ASC XHH

LCALL H ASC ;Convierte el parámetro xH en dos

bytes de código ASCII

MOV A, Y V

MOV R0, # REG ASC YH

LCALL H ASC; Convierte el parámetro y en dos

bytes de código ASCII

MOV A, NUBER

MOV R0 ?# REG ASC NH

LCALL H ASC; Convierte el parámetro n en dos

bytes de código ASCII

p>

LCALL BUSY CK; Detectar estado inactivo del módulo

MOV A, # "B" Enviar código de comando primero

Código BMP ASCII

LCALL ENVÍO BYTE

MOV A, #"M"

LCALL ENVÍO BYTE

MOV A?#"P"

LCALL ENVÍO BYTE

MOV R0, #REG ASC NH

LCALL SEND CS; envía el código ASCII del parámetro n

MOV R0, #REG ASC XHH

LCALL SEND CS; envía el código ASCII del parámetro xH MOV R0, #REG ASC XH

LCALL SEND CS; envía el código ASCII del parámetro x

MOV R0, # REG ASC YH

LCALL SEND CS; Enviar el código ASCII del parámetro y

FIN DEL PEDIDO: MOV A, #0DH; Enviar indicador de fin de comando

Marcar " 0DH"

MOV SBUF, A

JNB TI, $

CLR TI

RET

; Fin la última subrutina de comando

BUSY CK: MOV A, #0DH

MOV SBUF, A

JNB TI, $

CLR TI

p>

JNB BUSY?$

RET

;Enviar subrutina de parámetros

ENVIAR CS: MOV A,@R0

BYTE DE ENVÍO DE LLAMADA LC

INC R0

MOV A,@R0

BYTE DE ENVÍO DE LLAMADA LC

RET

;Subrutina de envío de datos de bytes

ENVIAR BYTE: MOV SBUF, A

JNB TI, $

CLR TI

RET

TAB HZ: DB "Tabla de códigos internos de caracteres chinos"

TAB ASCII: DB "Tabla de caracteres ASCII"

5 Conclusión

Visualización VLCM320240 La programación del módulo LCD puede preestablecer las imágenes utilizadas en el sistema en el módulo LCD, lo que facilita la generación de interfaces gráficas e interfaces chinas. Por lo tanto, este módulo será sin duda un campo de aplicación con altos requisitos para mostrar información. las opciones ideales de dispositivos de visualización.