Sitio web de resúmenes de películas - Colección completa de películas - Código para controlar una matriz de puntos de 8*8 utilizando 51 microcontroladores

Código para controlar una matriz de puntos de 8*8 utilizando 51 microcontroladores

El principio de funcionamiento del LED de matriz de puntos de 8×8 muestra que la matriz de puntos de 8×8 * * * requiere 64 LED, cada LED se coloca en la intersección de las líneas de fila y columna. Cuando la columna correspondiente se establece en el nivel 1 y una fila se establece en el nivel 0, el diodo correspondiente se iluminará.

No sé qué efecto de visualización quieres lograr, pero el método básico es el mismo. Tengo un programa 8*8 listo para usar aquí, puedes modificarlo de acuerdo con esto:

Muestra la columna en el LED de matriz de puntos 8X8 y deja que se mueva suavemente de izquierda a derecha tres veces, y luego de derecha a izquierda Muévalo tres veces, luego muévalo de arriba a abajo tres veces y finalmente muévalo de abajo hacia arriba tres veces, y así sucesivamente. (Implementación de un método de iluminación de columna: una columna vertical, la fila correspondiente se establece en 1 y la fila se realiza mediante escaneo. Una columna horizontal, la fila correspondiente se establece en 0 y la columna se realiza mediante escaneo.

)

Programa fuente de ensamblaje:

Organización 00H

Inicio: NOP

MOV R3, tercer clasificado

Segundo lugar: MOV·R4, octavo lugar

MOV R2, #0

LOP1: MOV P1, #0FFH

MOV DPTR, #TABA

R2 MOV

MOVC A, @A DPTR

MOV·P3, AINC·R2

Retardo LCALL

DJNZ R4, LOP1

DJNZ R3, LOP2

MOV R3, tercero

Cuarto puesto: MOV·R4, octavo

p>

MOV·R2, séptimo puesto

LOP3: MOV P1, #0FFH

MOV DPTR, #TABA

R2 MOV

MOVC A , @A DPTR

MOV·P3

Diciembre R2

LCALL retrasado

DJNZ R4, LOP3

DJNZ R3, LOP4

MOV R3, tercero

Distrito 6: MOV·R4, octavo

MOV R2, #0

LOP5: MOV P3, #00H

MOV DPTR, #TABB

R2 MOV

MOVC A, @A DPTR

MOV P1 , A

Compañía R2

Retraso LCALL

DJNZ R4, LOP5

DJNZ R3, LOP6

MOV R3, tercero

Distrito 8: MOV·R4, octavo

MOV·R2, séptimo

LOP7: MOV P3, #00H

MOV DPTR, #TABB

R2 MOV

MOVC A, @A DPTR

MOV P1, A

Diciembre R2

LCALL retrasada

DJNZ R4, LOP7

DJNZ R3, LOP8

Inicio LJMP

Retraso: MOV R5, #10

D2: MOV·R6, No. 20

D1: MOV R7, #248

DJNZ R7, USD

DJNZ R6, D1

DJNZ R5

Remojado en agua para suavizar

TABA: DB 0FEH, 0FDH, 0FBH, 0F7H, 0EFH, 0DFH , 0BFH, 07FH

TABB: DB 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H

Fin

Programa fuente en lenguaje C51

# incluye ltAT89X52.

H gt

Código de caracteres sin firmar taba[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};

Código de caracteres sin firmar tabb[]= {0x01 , 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x 80};

void DELAY(void) { unsigned CHAR i, j; for (I = 10; i gt0; I-) for( j = 248; j gt0; j-);}

retraso nulo 1(void){ unsigned CHAR I, j, k; for(k = 10; k gt0; k-)for( i = 20; i gt0; i-) para (j = 248; j gt0; j- }

control vacío(void)

{unsigned char i, j ;

while(1)

{ for(j = 0;j lt3;j)//De izquierda a derecha 3 veces

{ for(I = 0; i lt8; i ) { P3 = taba[i]; p 1 = 0x ff; retraso 1(); } }

for(j = 0; j lt3; j )// 3 veces desde la derecha a la izquierda

{ for(I = 0; i lt8; i ){ P3 = taba[7-I]; p 1 = 0x ff; retraso 1(); >for(j = 0;j lt3;j)//3 veces de arriba a abajo

{ for(I = 0;i lt8;i){ P3 = 0x 00; p 1 = tabb[ 7-I]; retraso 1(); }}

for(j = 0; j lt3; j )//3 veces de abajo hacia arriba

{ for(I = 0;ilt8;i){ P3 = 0x 00;p 1 = tabb[I];retraso 1();}}

}

}