Urgente: Buscando capacitación práctica sobre el microcontrolador 80S51 (con programa de ensamblaje) Requisitos del tema: Principio de requisitos de pantalla de matriz de puntos de 8 × 8 y lista de equipos.
1. Familiarizarse con las funciones del 8255 y comprender los principios y métodos de control de la pantalla de matriz de puntos
2. muestre diferentes patrones a través de caracteres de programación;
3. Obtenga una vista previa cuidadosa del contenido experimental de esta sección, intente escribir su propio programa, prepárese para el experimento y complete el informe experimental.
2. Equipo experimental
Un conjunto de instrumentos experimentales de la serie STAR y un PC.
3. Contenido del experimento
1. Escriba un programa para usar el puerto PA del 8255 para controlar las filas de la matriz de puntos de 8 × 8; las columnas de la matriz de puntos de 8 × 8 caracteres de visualización. ?
2. Conecte las líneas como se muestra en la figura; ejecute el programa, observe los resultados experimentales y aprenda a controlar la matriz de puntos LED para mostrar caracteres.
4. Diagrama experimental
Verbo (abreviatura de verbo) Pasos experimentales
1. Descripción de la conexión del host:?
B4: CS(8255), A0, A1 - A3: CS1, A0, A1.
Área B4: Área JP56A2: JP23 (línea de salida de columna)
Área B4: Área JP52A2: JP24 (línea de salida de fila)
(Preste atención a la dirección de conexión)
2. Ejecute el programa y observe los resultados experimentales. Ejecute el programa de demostración y verá los caracteres "¿Bienvenido? ¿A dónde ir? Xing Yan" moviéndose y mostrándose con un movimiento circular de abajo hacia arriba en la matriz de puntos.
6. Programa de demostración
; utilice el puerto PA y el puerto de PC del 8255 para realizar experimentos con pantalla de matriz de puntos LED 8*8.
A8255_PAXDATA 0FF00H8255 A0 y A1 están conectados al bus A0 y A1.
a 8255_ Datos PBX 0ff 01H
A8255_ PCXDATA 0FF02H
A8255_ CTLXDATA 0FF03H
ROWXDATAA8255_ Columna PA
p>
LINEXDATAA8255 _ PC Hang County
ORG 0000H
AJMPSTART
ORG 0100h
Inicio: MOVSP , #60H
Callinite Io
CALLTEST _ LED llama a la subrutina de prueba para probar si el LED está completamente iluminado.
Llamar claro
Desplácese para mostrar varios caracteres
CHS_SHOW: movr 7, # 12H; Muestra 13H caracteres.
MOVDPTR, #CHAR_TAB
CHS_1: movr 1, #8; mover 16 veces
CHS_2: ACALLDISP_CH; >
INCDPTR
djnzr 1, CHS_2
DJNZR7, CHS_1
SJMPCHS _ SHOW
; Muestra un punto de 16*16 subrutina de fuente de matriz, el código de fuente se coloca en la dirección indicada por DPTR y el tiempo de visualización es 20 * R7MS.
DISP_CH: presione 07H
MOVR7, #10H; 08H
DISP_CH_1: acalldisp 1
DISP djnzr 7_ CH _ 1 p>
Popular 07H
Remojado en agua para suavizarlo
; Muestra una subrutina de matriz de puntos de 8 * 8 y el código de fuente se coloca en el búfer de visualización XBUFF.
disp 1: presione DPL
PUSHDPH
MOVR6, #8; contador, escanee 8 columnas en secuencia.
MOVR2, valor de salida de la columna #7FHFEH
Duplicado: MOVP2, #high(line)
MOVR0,#low(line)
R2 MOVA
MOVX @ R0,A; salida de columna
CLRA
MOVKA,@A DPTR
INCDPTR p>
ACALLADJUST ajusta a, girando el número binario en 180 grados.
MOVR0, #Low (resto del mundo)
MOVX @ R0, A; salida de línea izquierda
acall dl 10 ms
Cancelar reserva
SETBC desplazamiento circular R2, salida de escaneo de línea de fila 0
R2 MOVA
RRCARLCA
MOVR2, A
DJNZR6, repite
POPDPH
POPDPL
Remojar en agua para suavizar
inicialización de 8155 y 8255
INIT_IO: MOVDPTR, #A8255_CTL8255 dirección de palabra de control
MOVA, #80H configura los puertos PA, PB y PC del 8255 como puertos de salida.
MOVX @ DPTR, A; escribir palabras de control
Remojar en agua para suavizar
Aclarar: MOVA, #0FFH
MOVP2 , #Alto (línea)
MOVR0, #bajo (línea)
MOVX @ R0, A
CLRA
MOVR0, # bajo (mundo Otras regiones)
MOVX @ R0, A
remojado en agua para suavizar
; ajuste un byte del código de fuente obtenido en A, y ajuste la broca más alta a la posición más baja, ajuste la posición más baja a la posición más alta.
Ajuste: MOVR5, #8; logra 8 turnos circulares
Ajuste 1: RLCA
XCHA Bay
RRCA
p>
XCHA Bay
DJNZR5, ADJUST1
MOVA Bay
Remojar en agua para suavizarlo
; Para probar la subrutina LED, haga clic en Encender el LED y retrasar 1S.
TEST_LED: MOVDPTR, #LINE
CLRA
MOVX @ DPTR
MOVDPTR, #ROW
MOVA , #0FFH
MOVX @ DPTR
Llame a 1500 ms
Llame a 1500 ms
Remojado en agua para suavizar p>
;Retraso 10ms
dl 10ms: mov R4, #2
dl 10ms 1: mov r5, #230
DJNZR5, USD
DJNZR4, DL10ms1
Remojado en agua para suavizar
dl 500 ms: mov r5, #10
dl 500 ms 1: movimiento 6, #200?
dl 500 MS2: movr 7, #123?
DJNZR7,$?
DJNZR6, DL500ms2
DJNZR5, DL500ms1
Remojado en agua para suavizar
CHAR_TAB: DB 000h, 082H, 092H, 092H , 0AAH, 0AAH, 044H, 044H? ;W
DB 000H, 03EH, 002H, 002H, 01EH, 002H, 002H, 03EH? ;E
DB 000H, 002H, 002H, 002H, 002H, 002H, 002H, 03EH? ;L
DB 000H, 038H, 044H, 002H, 002H, 002H, 044H, 038H? ;C
DB 000H, 038H, 044H, 082H, 082H, 082H, 044H, 038H? ;O
DB 000H, 0C6H, 0C6H, 0AAH, 0AAH, 092H, 092H, 082H? ;M
DB 000H, 03EH, 002H, 002H, 01EH, 002H, 002H, 03EH? ;E
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H? ;
DB 000H, 07FH, 008H, 008H, 008H, 008H, 008H, 008H, 008h? ;T
DB 000H, 038H, 044H, 082H, 082H, 082H, 044H, 038H? ;O
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H? ;
DB 000H, 022H, 022H, 014H, 008H, 014H, 022H, 022H? ;X
DB 000H, 01CH, 008H, 008H, 008H, 008H, 008H, 01CH? ;Yo
DB 000H, 042H, 046H, 04AH, 052H, 062H, 042H, 042H? ;Común
DB 000H, 038H, 044H, 002H, 072H, 042H, 044H, 038H? ;G
DB 000H, 022H, 022H, 014H, 014H, 008H, 008H, 008H? ;Y
DB 000H, 018H, 018H, 024H, 024H, 07EH, 042H, 042H? ;A
DB 000H, 042H, 046H, 04AH, 052H, 062H, 042H, 042H? ;Normal
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H? ;
Fin
7. Expansión y pensamiento experimental.
1. Modifique el programa para mostrar dinámicamente los caracteres mostrados de izquierda a derecha.