Red de conocimiento informático - Conocimiento sistemático - Programa en lenguaje ensamblador de lámpara de agua que fluye

Programa en lenguaje ensamblador de lámpara de agua que fluye

ORG 0000H; inicio del programa

SJMP START; saltar a INICIO

ORG 0050H; INICIO inicia el almacenamiento desde ROM 0050H

INICIO: MOVE P1.0, #00000001B; envía el número binario 00000001B al puerto P1

LCALL DELAY; llama a la subrutina de retardo

MOVE P1.0, #00000010B; El número 00000010B se envía al puerto P1

LCALL DELAY

MOVER P1.0, #00000100B

LCALL DELAY

MOVER P1.0 , #00001000B

RETARDO DE LLAMADA

MOVER P1.0, #00010000B

RETARDO DE LLAMADA

MOVER P1.0, #00100000B

p>

RETARDO LLAMADA LC

MOVER P1.0, #01000000B

RETARDO LLAMADA LC

MOVER P1.0, #10000000B

LCALL DELAY

LJMP START; salta a START

; retrasa la subrutina DELAY, cambia los valores en R5, R6, R7 (0 a 255) para cambiar el Tiempo de retardo

DELAY: MOV R5, #20; ponga 20 en el registro R5,

D1: MOV R6, #20

D2: MOV R7, # 248

DJNZ R7, $; Disminuye el contenido en el registro R7 en 1. Si el resultado no está fijo en 0, salta a sí mismo. Si es igual a 0, ejecuta el siguiente programa.

DJNZ R6, D2; Disminuye el contenido en el registro R6 en 1. Si el resultado no está fijo en 0, salta a sí mismo. Si es igual a 0, salta a D2

DJNZ R5, D1

RET

FIN