Utilice lenguaje ensamblador para programar lámparas de agua. Hay 8 luces LED: LED1~LED8 se encienden en secuencia. Cada luz espera un segundo antes de cambiar a la siguiente luz y el ciclo continúa.

Esta lámpara de agua corriente es un patrón muy común. Supongamos que el LED está conectado al puerto P1. El programa es el siguiente:

ORG 0000H

. LJMP PRINCIPAL

0RG 000BH

LJMP T0ISR

ORG 0030H

PRINCIPAL:

MOV TMOD, #01H

MOV TH0, #HIGH(65536-50000); temporización de 50 milisegundos

MOV TL0, #LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV A, #0FEH

MOV P1, A

MOV R2, #20

SJMP $

T0ISR:

CLR TR0

MOV TH0, #HIGH(65536-50000)

MOV TL0, #LOW( 65536-50000)

SETB TR0

DJNZ R2, T0E; salir directamente antes de que llegue 1 segundo

MOV R2, #20

RL A

MOV P1, A; Una lámpara de agua que fluye y cambia cada segundo.

T0E:

RETI

FIN