Red de conocimiento informático - Conocimiento sistemático - Software de programación de pantallas LCD

Software de programación de pantallas LCD

1 Introducción

El módulo gráfico de pantalla de cristal líquido de matriz de puntos se ha convertido en un dispositivo de visualización ideal en el sistema informático de un solo chip debido a sus ventajas de información de visualización rica, bajo consumo de energía, tamaño pequeño, peso ligero y larga duración. vida y sin contaminación por radiación electromagnética. Es ampliamente utilizado en instrumentos inteligentes controlados por microcontroladores, campos de control industrial, equipos de comunicación y electrodomésticos. Sin embargo, es difícil para los módulos LCD gráficos de matriz de puntos ordinarios mostrar interfaces gráficas. En primer lugar, la pantalla de gráficos ocupa mucho espacio en la ROM del usuario. Tomemos como ejemplo el módulo LCD de matriz de puntos de 320 × 240. ¿Cuánto espacio ROM ocupa la visualización de una imagen (pantalla completa)? 320 × 240/8 = 9,6 kbytes, lo cual es imposible para un microcontrolador FLASH con solo unos pocos kilobytes de chips; en segundo lugar, el proceso de visualización de imágenes es extremadamente complicado y cada punto debe calcularse en función de los gráficos que se mostrarán. posición de la matriz y luego escriba datos en bytes para controlar el brillo de cada matriz de puntos. Si se muestran varias imágenes, la complejidad es aún más abrumadora.

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

Es precisamente debido a las deficiencias anteriores que la aplicación de los módulos gráficos de pantalla de cristal líquido de matriz de puntos para generar complejas y exquisitas interfaces hombre-computadora chinas es limitada. La interfaz china y la visualización gráfica son tendencias inevitables en el desarrollo de interfaces hombre-computadora para productos electrónicos. De hecho, cualquier interfaz de visualización se produce esencialmente mediante la disposición y combinación de varios píxeles. Si las operaciones subyacentes del control de visualización del módulo gráfico de cristal líquido de matriz de puntos se pueden integrar en el microcontrolador del módulo, y las diversas interfaces gráficas y bibliotecas de caracteres chinos estándar utilizadas para generar la interfaz de visualización se almacenan previamente en el módulo, el usuario puede enviárselo a través del puerto serie Enviar comandos de control simples para generar una interfaz de visualización gráfica, lo que hace que la generación de interfaces gráficas complejas sea simple y fácil y, en última instancia, resuelve el problema de la dificultad para generar hermosas interfaces hombre-máquina durante el proceso. desarrollo de productos electrónicos.

VLCM320240 es un módulo LCD gráfico de matriz de puntos con las funciones anteriores. Este módulo lo lanza Shenzhen Yan'anjia 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:

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

●Contiene un microcontrolador de alta velocidad w78e 516BP producido por Winbond Company en Taiwán;

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

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

● Contiene una biblioteca de imágenes de 64 kB o una fuente artística, los datos de visualización se pueden programar en línea en FLASH;

●Incluye controlador LCD SED1330F y búfer de pantalla de 32kB;

●Admite depuración de simulación visual LCM software, que se puede usar en la computadora Complete de forma independiente la edición, descarga de datos y generación de la interfaz de pantalla;

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

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

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

El puerto de alimentación incluye los siguientes puertos:

●Fuente de alimentación +9V: suministro de voltaje regulado al microcontrolador;

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

●Alimentación +5V: para inversor.

El puerto RS232 se define de la siguiente manera:

●BUSY: indicador de salida BUSY, OCUPADO cuando está bajo;

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

●GND: señal de tierra.

3 comandos de usuario

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

El parámetro en el comando de visualización de caracteres chinos o ASCII es el código estándar nacional de doble byte o el código de caracteres 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, Instrumentos y medidores inteligentes, etc. Este módulo se divide 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 interfaz de visualización se genera en el ordenador host. Varios gráficos o textos utilizados en el diseño del sistema se pueden resumir y editar en patrones utilizando el software de programación visual Visual LCM, pero el tamaño del patrón no debe exceder los 320 × 240 píxeles y el patrón debe ser blanco y negro. Luego descargue el patrón editado en la memoria flash del ISP del módulo y el número de patrones debe ser inferior a 256. Para mostrar más 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 eventualmente se mostrará bajo el control del microcontrolador. La Figura 1 toma AT89C52 como ejemplo para mostrar el circuito de interfaz entre el microcontrolador y VLCM320240.

En el circuito que se muestra en la Figura 1, el terminal RXD del AT89C52 está conectado al terminal BUSY del puerto de comunicación VLCM320240RS232, y el terminal TXD del microcontrolador está conectado al terminal RX del módulo. Para garantizar la precisión de la velocidad en baudios, el oscilador de cristal del AT89C52 debe seleccionarse en 11,0592 MHz. Además, al escribir 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 ser 19200 (th 1 = TL 1 = 0 fdh, smod = 1

● Si el módulo debe detectarse como inactivo antes de enviarlo); el comando (ocupado = 1)? De lo contrario, el comando emitido puede no ser válido;

●El puerto serie debe enviar el código ASCII del comando completo (los caracteres chinos son su código interno, los caracteres ASCII son su código ASCII), como el comando " BMP0B000C0D", el contenido real enviado por el puerto serie es "424D503042303030433044", el orden es el siguiente:

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

●En cada El código ASCII "0DH" del código final del comando "Enter" se agrega al principio y al final del comando para indicar el final del comando.

●Si el puerto serie del AT89C52 ha sido ocupado por otros fines, puede 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 es la siguiente:

; Definición de bit

Título de ocupado P3; > ;Definición de bytes de datos

x a EQU 30H; defina el parámetro x

XH a EQU 31H; defina el parámetro xH

y a EQU 32H;

Número EQU 33H; define parámetro n

Ancho EQU 34H; define parámetro w

EQU Highland 35H define parámetro h

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

ASC XL EQU 37H define los cuatro bits inferiores del parámetro x.

ASC XHH EQU 38H; define el parámetro xH con cuatro dígitos altos.

ASC XHL EQU 39H; define los cuatro bits inferiores del parámetro xH.

ASC YH EQU 3AH define los cuatro dígitos superiores del parámetro y.

ASC YL EQU 3BH define los cuatro bits inferiores del parámetro y.

ASC NH EQU 3CH define los cuatro dígitos superiores del parámetro n.

ASC NL EQU 3DH define los cuatro bits inferiores del parámetro n.

ASC WH EQU 3EH; define los cuatro dígitos superiores del parámetro w.

ASC WL EQU 3FH; define los cuatro bits inferiores del parámetro w.

ASC HH EQU 40H; define los cuatro dígitos superiores del parámetro h.

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

;Subrutina de inicialización

SIO inicial: MOV·SCON, 50H puerto serie modo 1

MOV TMOD, #21H

MOV TH1 , #0FDH velocidad en baudios = 19200?

¿MOV TL1? #0FDH

ORL·PCON? # 80HSMOD=1

SETB tr 1; Iniciar T1

Remojar en agua para suavizar

Comando para establecer la primera dirección de caracteres chinos o ASCII. .

Orden HZA:MOV A? X V

MOV R0? #REG ASC XH

LCALL H ASC convierte el parámetro x en

código ASCII de dos bytes

¿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

Llamo ocupado CK

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

Código ASCII

LCALL enviar bytes

MOV A? #"Z "

LCALL envía bytes

¿MOV A? #"A "

LCALL envía bytes

¿MOV R0? #REG ASC XHH

LCALL envía CS; código ASCII del parámetro h

MOV R0? #REG ASC XH

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

MOV R0? #REG ASC YH

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

Fin de orden LJMP

; muestra la subrutina de cadena china

Haga clic ¿HZ? Llamo a CK ocupado; detecto el estado inactivo del módulo

¿MOV A? #"H "

LCALL envía bytes

¿MOV A? #"Z "

LCALL envía bytes

¿MOV A? #"D "

LCALL envía bytes

Siguiente HZ: CLR A; obtiene los ocho códigos internos superiores de caracteres chinos

MOVC A, @A+ DPTR

Compañía DPTR; ajusta el puntero del código interno

LCALL envía el byte

CLR A; obtiene los ocho códigos internos inferiores de los caracteres chinos

MOVC A, @A+DPTR

DPTR; ajustar el puntero del código interno

LCALL para enviar byte

Siguiente Hertz

MOV A,# 0DH finaliza el comando

LCALL envía bytes

empapados para suavizar

; muestra la subrutina de cadena ASCII

orden ASCII:

LLAMO OCUPADO CK

MOV A, # " H

LCALL ENVIAR BYTE

MOV A, #"Z "

LCALL envía bytes

MOV A? #"D "

LCALL envía bytes

¿Siguiente ASCII? ¿Obtener código ASCII?

@A+DPTR

Empresa DPTR

DJNZ R7 ? Siguiente ASCII

MOV A? #0DH

LCALL enviar bytes

p>

Remojar en agua

; subrutina de limpieza de pantalla

Ordenar CLR: LCALL BUSY CK

MOV A, #"C "

LCALL envía bytes

MOV A #"L? "

LCALL envía bytes

MOV A?#"R "

LCALL envía bytes

La orden LJMP finaliza

; Muestra la subrutina de gráficos descargada en el módulo.

Orden BMP: MOV A, X V

MOV R0, número de área XH

LCALL H ASC convierte el parámetro x en dos

Byte Código ASCII

Una empresa MOV, cinco empresas XH

¿MOV R0? #REG ASC XHH

LCALL H ASC convierte el parámetro xH en dos.

Código ASCII de bytes

Ciudad MOV

MOV R0, número de área YH

LCALL H ASC convierte el parámetro y a 2

>

Código ASCII de bytes

Nub·MOV

¿MOV R0? #REG ASC NH

LCALL H ASC convierte el parámetro n en código ASCII de 2

byte

Llamo a la CK ocupada para detectar el estado inactivo del módulo

;

MOV A, # " B primero envía el código de comando

Código BMP ASCII

LCALL envía bytes

MOV A, # "M "

LCALL envía bytes

MOV A? #"P "

LCALL envía bytes

MOV R0,# Área ASC NH

LCALL envía CS; código ASCII para enviar el parámetro n

MOV R0, #area ASC XHH

LCALL envía CS; el código ASCII MOV R0 se utiliza para enviar el parámetro xH, # reg ascxh

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

MOV R0, número de área YH

LCALL envía código ASCII del parámetro y

Fin del pedido: MOV A, # 0DH enviar etiqueta de comando

chi "0DH"

MOV·Sibfu

JNB Titanium, USD

CLR TI

Remojado en agua para suavizar

Finalizar la última subrutina de comando

Ocupado CK: MOV A, #0DH

p>

MOV·SBUFF

JNB Titanium, USD

CLR TI

¿Está JNB ocupado $?

Remojar en agua para hacer suave

; enviar subrutina de parámetros

Enviar CS: MOV A, @R0

LCALL enviar bytes

p>

INC R0

MOV A,@R0

LCALL enviar bytes

Remojar en agua para ablandar

Datos de sección; Subrutina

Enviar bytes: MOV SBUF, A

JNB Ti, USD

CLR TI

Remojado en agua para suavizar

>

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

TAB ASCII: DB "Tabla de caracteres ASCII"

5 Conclusión

Visualización VLCM320240 Programación el módulo LCD puede preestablecer las imágenes utilizadas por 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 una pantalla ideal en campos de aplicación con altos requisitos para mostrar información. las opciones del dispositivo.