Necesidad urgente: Buscando capacitación práctica sobre el microcontrolador 80S51 (con programa de ensamblaje). Requisitos de la pregunta: se requiere pantalla de matriz de puntos de 8 × 8.
1. Propósitos y requisitos experimentales
1. Familiarizarse con las funciones del 8255 y comprender los principios y métodos de control de la visualización de matriz de puntos
2. Aprenda a usar la matriz de puntos LED, muestre diferentes caracteres a través de la programación;
3. Obtenga una vista previa 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 y use el puerto PA del 8255 para controlar las filas de la matriz de puntos 8X8 para controlar las columnas; de los caracteres de visualización de matriz de puntos 8X8; ?
2. Conecte las líneas de acuerdo con el diagrama; ejecute el programa, observe los resultados experimentales y aprenda a controlar la matriz de puntos LED para mostrar caracteres.
4. Diagrama de principio experimental
5. Pasos experimentales
1. Instrucciones de conexión del host:?
Área B4: CS (8255). ), A0, A1 - Área A3: CS1, A0, A1
Área B4: JP56 Área A2: JP23 (línea de salida de columna)
Área B4: JP52 Área A2: JP24 ( línea de salida de la 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á que los caracteres "BIENVENIDO? A? XINGYAN" se muestran circularmente moviéndose de abajo hacia arriba en la matriz de puntos.
6. Programa de demostración
; utilice los puertos PA y PC del 8255 para realizar experimentos de visualización de matriz de puntos LED 8*8
A8255_PA XDATA A0 y; A1 de 8255 Conectar a A0 y A1 del bus
A8255_PB XDATA 0FF01H
A8255_PC XDATA 0FF02H
A8255_CTL XDATA 0FF03H
ROW / p>
LINEA XDATA A8255_PC ;LINE
ORG 0000H
AJMP INICIO
ORG 0100H
INICIO: MOV SP,#60H
CALL INIT_IO
CALL TEST_LED ; Llame a la subrutina de prueba para probar si el LED está completamente iluminado
;CALL CLEAR
;Desplácese para mostrar varios caracteres
CHS_SHOW: MOV R7,#12H;Mostrar 13H caracteres
MOV DPTR,#CHAR_TAB < / p>
CHS_1: MOV R1,#8 ;Mover 16 veces
CHS_2: ACALL DISP_CH ;Mostrar un cuadro
INC DPTR
DJNZ R1 , CHS_2
DJNZ R7,CHS_1
SJMP CHS_SHOW
;Muestra una subrutina de fuente de matriz de puntos de 16 * 16, fuente El código es colocado en la dirección señalada por DPTR, y la hora mostrada es 20*R7MS
DISP_CH: PUSH 07H
MOV R7, #10H ;08H
DISP_CH_1: ACALL DISP1
DJNZ R7,DISP_CH_1
POP 07H
RET
;Muestra un 8*8 Subrutina de caracteres de matriz de puntos, el código de fuente se coloca en el búfer de visualización XBUFF
DISP1: PUSH DPL
PUSH DPH
MOV R6, #8; 8 columnas se escanean secuencialmente
MOV R2,#7FH;FEH; Valor de salida de la columna
REPEAT: MOV P2,#HIGH(LINE)
MOV R0, #LOW(LINE )
MOV A,R2
MOVX @R0,A ; salida de columna
CLR A
MOVC A, @A+DPTR
INC DPTR
ACALL ADJUST ;Ajusta A y gira el número binario en A 180 grados
MOV R0,#LOW(ROW)
MOVX @R0,A ; Salida de fila izquierda
ACALL DL10ms
ACALL CLEAR
SETB C ; salida 0
MOV A,R2
RRC A ;RLC A
MOV R2,A
DJNZ R6,REPEAT
POP DPH
<p> POP DPL
RET
;inicialización de 8155 y 8255
INIT_IO: MOV DPTR,#A8255_CTL;dirección de palabra de control 8255
MOV A,#80H ;Configura los puertos PA, PB y PC del 8255 como puertos de salida
MOVX @DPTR,A ;Escribe palabras de control
RET
BORRAR: MOV A,#0FFH
MOV P2,#HIGH(LINE)
MOV R0,#LOW(LINE )
MOVX @R0,A
CLR A
MOV R0,#LOW(ROW)
MOVX @R0,A
p>
RET
;Ajuste un byte del código de fuente obtenido en A, ajuste el bit más alto al bit más bajo y ajuste el bit más bajo al bit más alto
AJUSTE: MOV R5,#8; implementado mediante desplazamiento circular 8 veces
ADJUST1: RLC A
XCH A,B
RRC A
XCH A,B
DJNZ R5,ADJUST1
MOV A,B
RET
;Subrutina de LED de prueba, LED de luz y retardo 1S
TEST_LED: MOV DPTR,#LINE
CLR A
MOVX @DPTR,A
MOV DPTR,#ROW
MOV A,#0FFH
MOVX @DPTR,A
LLAMADA DL500ms
LLAMADA DL500ms
RET
;Retraso 10ms
DL10ms: MOV R4,# 2
p>
DL10ms1: MOV R5,#230
DJNZ R5,$
DJNZ R4,DL10ms1
RET
DL500ms: MOV R5,#10
DL500ms1: MOV R6,#200 ?
DL500ms2: MOV R7,#123 ?
DJNZ R7,$ ?
DJNZ R6,DL500ms2
DJNZ R5,DL500ms1
RET
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,0C
6H,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;
DB 000H,07FH,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;
DB 000H,022H,022H? ,014H,008H,014H,022H,022H ,04AH,052H,062H,042H,042H;N
DB 000H,038H,044H,002H,072H,042H,044H,038H;G p>
DB? /p>
DB 000H,042H, 046H,04AH,052H,062H,042H,042H;N
DB 000H,000H,000H,000H,000H,000H,000H,000H; p>
FIN
7. Expansión y pensamiento experimental
1 Modifique el programa para que los caracteres mostrados se muestren en un ciclo dinámico desde. de izquierda a derecha.