Red de conocimiento informático - Computadora portátil - Cómo escribir un programa en lenguaje ensamblador de lámpara de agua corriente de 8 vías

Cómo escribir un programa en lenguaje ensamblador de lámpara de agua corriente de 8 vías

El programa en lenguaje ensamblador es el siguiente:

;Supuesto 1: Ocho luces de colores D1 ~ D8 están conectadas al puerto P1 y emiten una luz de bajo nivel

;Supuesto 2: El oscilador de cristal del sistema es de 12MHz

; Supuesto 3: N = 5

El programa es el siguiente:

ORG 0000H

p>

MOV R3, # 5 ;N=5

LOOP0:

MOV A, #0FFH

MOV P1, #0FFH ;Todo destruido al principio

;----------------------------------Ilumina uno por uno

MOV R2, #8

BUCLE1: CLR C

RLC A

MOV P1, A

LLAMADA DL500MS

DJNZ R2, LOOP1

;----------------------------------- -----Apagar uno a uno

MOV R2, # 8

LOOP2: SETB C

RLC A

MOV P1, A

LLAMADA DL500MS

DJNZ R2, LOOP2

;------------------- ---------------Todo encendido, todo apagado alternativamente

MOV R2, #4

LOOP3: MOV P1, #0 ;Brillo total

LLAMA DL500MS

LLAMA DL500MS ;***1s

MOV P1, #255 ?;Destrucción total

LLAMA DL500MS ;0.5 s

DJNZ R2, LOOP3

;---- --------------------------

DJNZ R3, LOOP0

MOV P1, #01001001B ;5 Mostrado como 0100 1001

LLAME DL500MS

LLAME DL500MS ;* **1s

SJMP 0000H ?;Reiniciar N veces

;------------------------ ---------Subrutina de retardo

DL500MS:

MOV R5, #9 ;1T

DL1: MOV R6, #128 ; 1T

DL2: MOV R7, #215 ;1T

NOP ;1T

DL3: DJNZ R7, DL3 ?;2T 2 * 215 = 430 T

DJNZ R6, DL2 ?;2T [1+1+432] * 128 = 55552 T

DJNZ R5, DL1 ?;2T [1+55552+2] * 9 = 499995 T

RET ;2T 1 + 499995 + 2 = 499998 T

;------------------- ------------------

FIN

Información ampliada:

Principio de realización del agua de 8 vías lámpara:

La siguiente figura es el diagrama esquemático del chip de control principal y el módulo de la lámpara de agua.

El módulo de la lámpara de agua corriente está conectado al puerto P1 del microcontrolador. A partir del diagrama esquemático, podemos saber que la luz LED se puede encender dando un nivel bajo al puerto P1.

Por el contrario, si desea que la luz LED se apague, deberá cambiar el nivel del puerto P1 a nivel alto.

Para realizar la función de lámpara de agua corriente, simplemente encienda y apague LED1~LED8 en secuencia, y así sucesivamente. Los 8 LED se encenderán y apagarán como una lámpara de agua corriente.

El programa para realizar 8 luces de marcha LED se expresa en chino como:

P1.0 bajo, retraso, P1.0 alto, P1.1 bajo, retraso, P1.1 Alto, P1.2 bajo, retardo, P1.2 alto, P1.3 bajo, retardo, P1.3 alto.

P1.4 bajo, retardo, P1.4 alto, P1.5 bajo, retardo, P1.5 alto, P1.6 bajo, retardo, P1.6 alto, P1.7 bajo, retardo, P1.7 alto, regreso al principio, fin del programa. ?