Red de conocimiento informático - Computadora portátil - 51 pregunta sobre programación de microcontroladores, ayúdame a escribir un programa.

51 pregunta sobre programación de microcontroladores, ayúdame a escribir un programa.

;Es mejor usar interrupciones

ORG 0000H

LJMP MAIN

ORG 001BH;Dirección del vector de interrupción del temporizador 1

LJMP T1_ISR ;Vaya ​​a la subrutina de interrupción para su ejecución

ORG 0030H

MAIN: MOV TMOD,#20H ;Adopte el modo de temporizador 2, recarga automática de 8 bits

MOV TH1, #6 ; Dado que el ciclo es 500u, los niveles alto y bajo duran 250u

MOV TL1,#6 Se calcula el valor inicial del tiempo, el tiempo es 250u

MOV R0, #4 ;Establece el número de ciclos, 4x250u=1m

SETB EA ;Habilita interrupción total

SETB ET1 ;Habilita interrupción del temporizador 1

SETB TR1 ; Iniciar T1

SJMP $ ;Bucle vacío

;Interrumpir subrutina

T1_ISR: CPL P1.1 ;P1. 1 inversión

DJNZ R0,OUT ;Compruebe si el conteo es cuatro veces, si no es suficiente, salga

MOV R0,#4 ;Se han alcanzado cuatro veces, reasigne R0

CPL P1.0 ; inversión P1.0

SALIDA: RETI; regreso al programa principal

END

simulación de proteus aprobada

p>