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.
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.