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 p>
;----------------------------------- -----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. ?