Red de conocimiento informático - Conocimiento de la instalación - Programa de ensamblaje de reloj electrónico con microcontrolador Seek 51

Programa de ensamblaje de reloj electrónico con microcontrolador Seek 51

CC BIT 00H

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

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

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

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

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>

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>

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

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