Red de conocimiento informático - Material del sitio web - Haré modificaciones a mi programa de marquesina 89c51: Hay un total de 8 tubos luminosos, y la luz se emitirá de ambos lados hacia el medio, y luego desde el medio hacia ambos lados, y el ciclo continuará.

Haré modificaciones a mi programa de marquesina 89c51: Hay un total de 8 tubos luminosos, y la luz se emitirá de ambos lados hacia el medio, y luego desde el medio hacia ambos lados, y el ciclo continuará.

:

ORG 0000H ;El programa comienza desde 0.

LJMP MAIN ;Vaya ​​al programa principal.

ORG 0030H ; El programa principal Dirección de inicio del almacenamiento del programa.

PRINCIPAL: MOV P1, #0FFH; Todas las luces están apagadas 11111111

MOV R2, #0FEH Estado inicial: configurado para encender una luz; en el costado 1111 1110

MOV R3, #7FH; Estado inicial: configurado para encender una luz en el costado 0111 1111

LOOP: MOV A, R2

ANL A, R3 ;A = 0111 1110

MOV P1, A ;Envía el estado de iluminación configurado al puerto P1 (entrada del circuito)

LCALL TIMEER ;Llama al programa de retardo, Retraso por un tiempo.

MOV A, R2

RL A ; Mueve la posición del estado de la luz hacia la izquierda una posición.

MOV R2, A

MOV A, R3

RR A ; Mueve la posición del estado de la luz hacia la derecha una posición.

MOV R3, A

SJMP LOOP; Vaya a la entrada del bucle y siga moviendo la posición de la luz.

TIMEER: MOV R5, #08H (El siguiente es el programa de retardo)

LOOP1; : MOV R6, #0FAH

LOOP2: MOV R7, #0FAH

LOOP3: DJNZ R7, LOOP3

DJNZ R6, LOOP2

DJNZ R5, LOOP1

RET

END