Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir un programa que muestre ocho luces de conducción parpadeando cuando se enciende el interruptor y apague las ocho luces de conducción cuando se apaga el interruptor.

Cómo escribir un programa que muestre ocho luces de conducción parpadeando cuando se enciende el interruptor y apague las ocho luces de conducción cuando se apaga el interruptor.

2 programas:

Primero:

/*Nombre de archivo: 8bkey.asm?

*Función: el microcontrolador P1 AT89S51 está conectado a 8 diodos emisores de luz, Se conectan 8 diodos emisores de luz a 8 interruptores y el estado del interruptor se refleja en los diodos emisores de luz mediante programación.

(Cuando el interruptor está cerrado, la luz correspondiente está encendida; cuando el interruptor está abierto, la luz correspondiente está apagada).

* Parámetros de entrada: Ninguno

* Parámetros de salida: Descripción del hardware:

* 1 Conecte el cable de conexión de 8 bits. Conecte el puerto de datos JP32 de la sección de LED al puerto P0 JP51 de la sección de CPU.

*/

ORG 00H ; Define la posición actual como 00H,

INICIO: JB P1.0,NEXT1 se transfiere a la interfaz; 1 bit 0,NEXT1

CLR P0.0 ;Borrar interfaz 0 bit 0,

SET:JB P1.0,NEXT1;El bit 0 se transfiere a la interfaz 0 bit 0,

CLR P0.0 ;El bit 0 se borra.

SJMP NEX1 ;transferencia corta a NEX1,

NEXT1: SETB P0.0 ;bit-set 1 interfaz 0 bit 0,

NEX1: JB P1. 1,NEXT2 ;conjunto de bits 1 transferido a la interfaz 1 bit 1,NEXT2

CLR P0.1 ;borrar 0 interfaz 0 bit 1,

SJMP NEX2 ;Transferencia corta a NEX2,

NEXT2: SETB P0.1 ;Bit-set 1 interfaz 0 bit 1,

NEX2: JB P1.2, NEXT3 ;Bit-set 1 transferencia a interfaz 1 bit 2, NEXT3

CLR P0.2 ;Borrar interfaz 0 0 bit 2,

SJMP NEX3 ;Transferencia corta a NEX3,

NEXT3: SETB P0.2 ;Bit -set 1 interfaz 0 bit 2,

NEX3: JB P1.3,NEXT4;El bit-set 1 se transfiere a la interfaz 1 bit 3,NEXT4

CLR P0.3;Borrar 0 interfaz 0 bit 3,

SJMP NEX4 ;Transferencia corta a NEX4,

NEXT4:SETB P0.3 ;Establezca el bit 1 en la interfaz 0 bit 3,

NEX4: JB P1.4,NEXT5 ;Establezca el bit 1 en la interfaz 1 bit 4,NEXT5

CLR P0.4 ;Borrar a la interfaz 0 bit 4,

SJMP NEX5 ;Corto Transferir a NEX5,

NEXT5: SETB P0.4; conjunto de bits 1, interfaz 0, bit 4,

NEX5: JB P1.5, NEXT6; interfaz 1 5, NEXT6

CLR P0.5; Borrar 0 interfaz 0 bit 1,

SJMP NEX6; transferencia corta NEX6,

NEXT6: SETB P0. 5; conjunto de bits 1 interfaz 0 bit 1,

NEX6: JB P1.6, NEXT7; conjunto de bits 1 transferido a la interfaz 1 bit 6, NEXT7

CLR P0.6; 0 interfaz 1 bit 6,

SJMP NEX7; transferencia corta a NEX7,

NEXT7: SETB P0.6; conjunto de bits 1 interfaz 0 bit 6,

NEX7: JB P1.7,NEXT8; transferencia del conjunto de bits 1 a la interfaz 1 bit 7, NEXT8

CLR P0.7; borrado de la interfaz 0 0 bit 7,

SJMP NEX8 ;transferencia corta a NEX8

NEXT8: SETB P0.7 ;bit-set 1 interfaz 0 bit 7,

NEX8: SJMP START ;transferencia corta a START,

FIN ; FIN

Segundo: Primero haga la conexión del hardware

Conecte los ocho tubos de la lámpara al puerto P1 en modo de 8 cables

Los tubos de la lámpara están organizados de la siguiente manera

1 2 3 4

5 6 7 8

p>

Respectivamente correspondiente

p1_0 p1_1 p1_2 P1_3

p1_7 p1_6 p1_5 P1_4

Programa intermitente

char m sin firmar;

for(n=0;n<4;n++)

{

m=1<

m+=m<<4;//Pon las luces en la segunda fila

P1=m;

wait ();//espera

}

Se ilumina secuencialmente

for(n=1;n<5;n++)

{

m=1<

m+=m<<4;//Poner las luces de la segunda fila

P1=m;

espera();//espera

}

Todo encendido es P1=0XFF;

Todo apagado es P1=0X00;

Combínalo.