Programa de ensamblaje de reloj electrónico con microcontrolador Seek 51
DD EQU 31H
ORG 0000H
AJMP PRINCIPAL
ORG 0003H
AJMP INT_0
ORG 000BH
HORA AJMP
ORG 0013H
AJMP INT_1
ORG 30H
PRINCIPAL:
MOV R0, #00H
MOV R1, #00H
MOV R2, #03H
MOV R3, # 00H
MOV R4, #00H
MOV R5, #00H
MOV R6, #00H
MOV R7, #00H
MOV P0, #0FFH
MOV P1, #0FFH
MOV P2, #0FFH
MOV P3, #0FFH
MOV TH0, #06H
MOV TL0, #06H
MOV DPTR, #200H
MOV TMOD,
SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
SETB ET0
SETB TR0
SETB CC
MOSTRAR:
CJNE R7, #0FAH, OUT
MOV R7, #00H
INC R6
CJNE R6, #10H, OUT
MOV R6, #00H
INC R5
CJNE R5, #3CH, SALIDA
MOV R5, #00H
INC R4
CJNE R4, #3CH, SALIDA
MOV R4, #00H
INC R3
CJNE R3, #18H, OUT
MOV R3, #00H
OUT:
CJNE R2, #00H, SHOW_OUT_01
INC R1
CJNE R1, #3CH, R1_1
MOV R1, #00H p>
INC R0
CJNE R0, #20H, R1_1
MOV R0, #00H
CPL CC
R1_1 :
MOV A, R5
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.2, C
RETARDO LLAMADA
SETB P2. 2
MOV A, B
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.3, C
RETARDO DE LLAMADA
SETB
P2.3
MOV A, R4
MOV B, #0AH
DIV AB
MOVC A, @A DPTR p>
MOV P0, A
CLR P2.0
RETRASO DE LLAMADA
SETB P2.0
MOV A, B
MOVC A, @A DPTR
MOV P0, A
CLR P2.1
RETRASO DE LLAMADA
SETB P2.1
SHOW_OUT_01:
CJNE R2, #01, SHOW_OUT_02
INC R1
CJNE R1, #3CH , R2_1
MOV R1, #00H
INC R0
CJNE R0, #20H, R2_1
MOV R0, #00H
CPL CC
R2_1:
MOV A, R5
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
CLR P2.2
RETRASO DE LLAMADA
SETB P2.2
MOV A, B
MOVC A, @A DPTR
MOV P0, A
CLR P2.3
RETARDO LLAMADA
SETB P2.3
MOV A, R4
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.0, C
RETRASO DE LLAMADA
SETB P2.0
MOV A, B
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.1, C
RETARDO LLAMADA
SETB P2.1
SHOW_OUT_02:
CJNE R2, #02, SHOW_OUT_03
INC R1
CJNE R1, #3CH, R3_1
MOV R1, #00H
INC R0
CJNE R0, #20H, R3_1
MOV R0, #00H
CPL CC
R3_1:
MOV A, R3
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.0, C
RETARDO DE LLAMADA
SETB P2.0
MOV A, B
MOVC A, @A DPTR
MOV P0, A
MOV C, CC
MOV P2.1, C
> RETARDO DE LLAMADA
SETB P2.1
SHOW_OUT_03:
CJNE R2, #03H, SHOW_OUT_04
MOV A, R4 p>
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
CLR P2.2
RETRASO DE LLAMADA
SETB P2.2
MOV A, B
MOVC A, @A DPTR p>
MOV P0, A
CLR P2.3
RETRASO DE LLAMADA
SETB P2.3
MOV A, R3
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
CLR P2.0
RETARDO DE LLAMADA
SETB P2.0
MOV A, B
MOVC A, @A DPTR
MOV P0, A
CLR P2.1
RETRASO DE LLAMADA
SETB P2.1
SHOW_OUT_04:
CJNE R2, #04H, SHOW_JMP
MOV A, R5
MOV B, #0AH
DIV AB p> p>
MOVC A, @A DPTR
MOV P0, A
CLR P2.2
RETRASO DE LLAMADA
SETB P2.2
MOV A, B
MOVC A, @A DPTR
MOV P0, A
CLR P2. 3
RETARDO LLAMADA
SETB P2.3
MOV A, R4
MOV B, #0AH
DIV AB
MOVC A, @A DPTR
MOV P0, A
CLR P2.0
RETRASO DE LLAMADA
SETB P2.0
MOV A, B
MOVC A, @A DPTR
MOV P0, A
CLR P2 .1
RETARDO DE LLAMADA
SETB P2.1
SHOW_JMP:
AJMP SHOW
RETARDO : <
MOV DD, #10H
DJNZ DD, $
RET
HORA:
INC R7
RETI
INT_0:
CLR EX0
INC R2
CLR TR0
CJNE R2, #03H, INT_0_OUT
SETB TR0
AJMP INT_0_OUT_1
INT_0_OUT:
CJNE R2, #04H, INT_0_
TR0
SETB TR0
AJMP INT_0_OUT_1
INT_0_TR0:
CJNE R2, #05H, INT_0_OUT_1
MOV R2, #00
INT_0_OUT_1:
RETRASO DE LLAMADA
RETRASO DE LLAMADA<
SETB EX0
RETI
INT_1:
CLR EX1
CJNE R2, #00H, INT_1_NEXT_1
INC R5
CJNE R5, #3CH, INT_1_OUT
MOV R5, #00H
AJMP INT_1_OUT
INT_1_NEXT_1:
CJNE R2, #01H, INT_1_NEXT_2 p> p>
INC R4
CJNE R4, #3CH, INT_1_OUT
MOV R4, #00H
AJMP INT_1_OUT
INT_1_NEXT_2 :
CJNE R2, #02H, INT_1_OUT
INC R3
CJNE R3, #18H, INT_1_OUT
MOV R3 INT_1_OUT p>
AJMP INT_1_OUT
INT_1_OUT:
RETRASO DE LLAMADA
RETRASO DE LLAMADA
SETB EX1
RETI
ORG 200H
DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH
END
Escribí esto hace mucho tiempo, mira si te funciona. Estoy usando 89S51