Cómo programar una celosía
El siguiente es un programa de control de visualización de caracteres escrito en lenguaje ensamblador:
;************************ ******** ****************
;* *
;*Carácter de pantalla electrónica de matriz de puntos único de 16x16 pantalla*
; *Oscilador de cristal ATA89C52 de 12MHz*
*LRM*
***************** ******* *******************
; Utilice el método de tabla de búsqueda para mostrar caracteres, que no ocupa memoria. Utilice una matriz de puntos LED positiva de 16x16 **.
; Efecto: Desplácese hacia arriba para mostrar 5 palabras y luego repita el ciclo.
; R1: registro de compensación de la tabla de búsqueda, b: dirección del encabezado de la tabla de búsqueda, R2: dirección de escaneo (de 00 a 0fh).
; R3: controla la velocidad de movimiento al desplazarte, y el tiempo de visualización estática se puede controlar mediante una visualización de un solo carácter.
;************;
;Interrumpir la entrada al programa;
;********* *** *****;
ORG 0000H
Inicio LJMP
ORG 0003H
Reti
ORG 000BH
LJMP INTTO
ORG 0013H
Segunda escalera
ORG 001BH
Segunda escalera p>
ORG 0023H
Reti
ORG 002BH
Reti
;********** *;
;Programa de inicialización;
;************;
;******** ** **;
; Programa principal
; *************
Primera versión: MOV 20H. , # 00H marca clara, 00H es la marca de inicio de escaneo de la línea 16 y 01 es el cuadro 1.
;Indicador de fin de escaneo
MOV A, # 0Inicialización del puerto FFH
MOV P1, A
MOV P1, A
MOV·P3
MOV P0, A
CLR p 1.6; bit de control de entrada/salida del registro serie
MOV TMOD, # 01H; T0 como temporizador de 16 bits para escaneo de línea.
MOV TH0, #0FCH el valor inicial es 1 ms (12 MHz)
MOV TL0, #18H
MOV SCON, #00H Modo puerto serie 0 Transmisión mostrar bytes.
MOV IE, #82H permite interrupción T0, permite interrupción total
MOV SP, #70H
Principal: preparación de pantalla LCALL DISI, pantalla negra, 1.5; s
MOV DPTR, #hashtag
LCALL MOVDISP desplácese hacia arriba para mostrar una página (8 palabras)
DPH Corporation
LCALL MOVDISP arriba Desplácese hacia arriba para mostrar una página (8 palabras)
DPH Company
LACLL MOVDISP Desplácese hacia arriba para mostrar una página (8 palabras)
AJMP Manager p>
;************************;
;Programa de visualización de desplazamiento de varias palabras;
; *************************;
Ocho palabras a la vez, el valor DPTR se define en la entrada.
MOVDISP: MOV B, # 00H mueve la pantalla hacia arriba y encuentra temporalmente el valor de desviación de la tabla (comenzando desde 00)
Dislocación: MOV R3, # 07H velocidad de movimiento
Disimov: MOV R2, 00h; comienza en la línea 0
MOV R1, B
SETB TR0; escaneo abierto (un cuadro a la vez)
Witimov: JBC 01H, Disimov 1; marca 1, complete un escaneo de un cuadro (1 cuadro de 16 ms, cada línea de 1 ms).
AJMP Waimov
DISMOV1: DJNZ R3, visualización repetida de cuadros DISMOV1 (controla la velocidad de movimiento)
INC B muestra la siguiente línea de la palabra (cada línea; 2 bytes)
Empresa B
MOV A, r 1; R1 es 0 y muestra 8 palabras.
JZ Mofft
Dislocación AJMP
movimiento: RET; el movimiento termina primero
;****** *** *******;
;Programa de visualización de un solo carácter;
;******************;
;Mostrar palabras en tabla;
;******************;
DIS1: MOV R3, # 5AH control de tiempo de visualización estática (16 milisegundos * # = 1,6 segundos)
DIS11: MOV R2, #00H valor de escaneo inicial de un cuadro (dirección de fila de 00 a 0fh)
MOV· DPTR, # TAB toma la primera dirección de la tabla
MOV R1, # 00H desplazamiento de la tabla de búsqueda (muestra la primera palabra)
SETB TR0 escaneo abierto (Un cuadro a la vez; )
espera 11: JBC 01H, dis 111 para 1, el escaneo finaliza un cuadro.
AJMP Esperando 11
DIS 111: DJNZ R3, DIS 11
Remojado en agua para ablandar
;*** ** *******;
;Escáner;
;************;
;1ms actualizar Una vez, cada línea muestra 1.
INTT0: Presione ACC
MOV TH0, #0FCH1 ms recarga valor inicial
MOV TL0, #18H
JBC 00H , GOEND La bandera de escaneo de la línea 16 es 1, fin.
INC r 1; obtiene el desplazamiento de bytes en el lado derecho de la línea
MOV A, R1
MOVC A, @ A DPTR;
MOV·SBUFF; transmisión en modo puerto serie 0
Espera: JBC levanta, espera a que se complete la transferencia.
AJMP WAIT1
GO: DEC r 1; toma el byte desplazado a la izquierda de la línea
MOV A, R1
MOVC A, @A DPTR
MOV·SBUFF
WAIT1: JBC T1, GO1
AJMP WAIT1
go 1: SETB p 1.7; cierre la pantalla y prepárese para actualizar.
Estabilidad de los datos del registro del puerto serie NOP
SETB p 1.6; se genera un flanco ascendente y los datos de la fila se ingresan al terminal de salida.
no proporcionado (para)a menos que se especifique lo contrario
no proporcionado (para)a menos que se especifique lo contrario
CLR p 1.6 volver al nivel bajo
MOV A, R2; modificar la dirección de la fila de visualización
ORL A, # 0F0H modificar la dirección de la fila de visualización
MOV·R2 modificar la dirección de la fila de visualización
MOV A , p 1; Modificar la dirección de la línea de visualización
ORL A, # 0FH Modificar la dirección de la línea de visualización
ANL A, R2 Modificar la dirección de la línea de visualización
<; p>MOV P1, A; modificación completadaCLR p 1.7; visualización de línea
Empresa R2; valor de dirección de escaneo de siguiente línea
INC R1
INC r 1; Dirección de datos de la siguiente fila
R2 MOV
ANL A, #0FH
JNZ GO2
SETB 00H ; R2 es 01H. Ahora se escanea y marca la última línea.
GO2: aparece ACC
Reti
GOEND: CLR TR0; después de escanear un cuadro, desactive el escaneo.
SETB 01H; Después de escanear un fotograma, establezca la bandera de finalización.
ACC Popular
RETI; rendirse
; **************;
;Escanear lista de textos;
;***************;
TAB: DB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 00FFH, 0FFH, 0 ffh, pantalla negra
Decibel
0F9H, 0BFH, 0C7H, 0AFH, 0F7H, 0B7H, 0F7H, 0B7H, 0F7H, 0BFH, 000H, 001H, 0F7H, 0BFH, 0F7H, 0B7H;i
Decibelio
0F1H, 0D7H, 0C7H, 0CFH, 037H, 0DFH, 0F7H, 0AFH, 0F6H, 06DH, 0F7H, 0F5H, 0D7H, 0F9H, 0EFH, 0FDH
Decibelio
0FFH, 007H, 0C0H, 06FH, 0EDH, 0EFH, 0F6H, 0DFH, 0C0H, 001H, 0DDH, 0FDH, 0BDH, 0FFH, 0C0H, 003H Amor
Decibel
0FBH, 0FFH, 0F8H, 00FH, 0F3H, 0DFH, 0F4H, 0BFH , 0EFH , 03FH, 09CH, 0CFH, 073H, 0F1H, 0CFH, 0 fbh;
Decibelio
0F7H, 0DFH, 0F9H, 0CFH, 0FBH, 0BFH, 0C0H, 007H, 0DEH , 0F7H , 0C0H, 007H, 0DEH, 0F7H, 0DEH, 0 DEH, 0F7H; único
Decibelio
0C0H, 007H, 0DEH, 0F7H, 0FEH, 0FFH, 000H, 001H, 0FEH , 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FFH, 0FEH, 0 ffh
Decibelio
0FFH, 0BFH, 0EFH, 0BFH, 0EFH, 0BFH, 0EFH, 0BBH, 0E0H , 001H, 0EFH, 0FFH, 0EFH, 0FFH, 0FFH, 0EFH, 0 efh, 0 efh, 0 ffh, 0 ffh; bloques
Decibelio
0E0H, 00FH, 0EFH, 0EFH , 0EFH, 0EFH, 0EFH, 0EFH, 0EFH, 0EFH, 0BFH, 0EFH, 07FH, 0FFH
Decibel
0EFH, 0FFH, 0EFH, 007H, 0EFH, 077H, 001H, 077H , 0EFH, 077H, 0EFH, 077H, 0C7H, 077H, 0CBH, 077h; máquina
Decibel
0ABH, 077H, 0AFH, 077H, 06EH, 0F7H, 0EEH, 0F5H, 0EDH , 0F5H, 0EDH, 0F5H, 0EBH, 0F9H, 0EFH, 0FFH
Decibelio
0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH , 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0 ffh, pantalla negra
Decibel
0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH; , 0FFH , 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0ffh;
Fin