Software de programación de pantallas LCD
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 " p>
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 p>
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.