Red de conocimiento informático - Material del sitio web - Cómo programar lámparas de agua en lenguaje ensamblador

Cómo programar lámparas de agua en lenguaje ensamblador

ORG 0000H

LJMP PRINCIPAL

ORG 000BH

T0MS EQU NOT 50000 50 mS cristal 12.000 MHz

PJSBZ EQU 20H

PJSBZY EQU 21H

PST0: MOV TL0, #LOW T0MS; interrupción T0

MOV TH0, #HIGH T0MS

SETB PJSBZ; bandera de 50 mS

DJNZ R6, PST02

MOV R6, #40; 50 mS * 40 = 2 S

SETB PJSBZY; Bandera S

PST02: RETI

PRINCIPAL: MOV TMOD, #01H

MOV IE, #82H Activar interrupción T0

MOV SP, #30H

MOV TL0, #LOW T0MS; A 50MS tiempo de interrupción 0

MOV TH0, #HIGH T0MS

SETB TR0

MOV R6, #40; Valor de temporización inicial

PRINCIPAL1: MOV A, #7FH

PRINCIPAL2: JNB PJSBZ, $ 50 mS

CLR PJSBZ

RR A ; Desplazamiento a la derecha

MOV P1, A

JNB PJSBZY, MAIN2 S

CLR PJSBZY

PRINCIPAL3: JNB PJSBZ, $; 50 mS

CLR PJSBZ

RL A; Desplazamiento a la izquierda

MOV P1, A

JNB PJSBZY, PRINCIPAL3; 2 S

CLR PJSBZY

AJMP PRINCIPAL1

FIN