Estoy buscando urgentemente un programa para microcontrolador para controlar semáforos, y también estoy buscando un programa de montaje para cuenta atrás de tubos digitales, que se debe configurar con el diagrama de simulación.
Programa de montaje de cuenta atrás: ?ORG0000H JMPBEGIN
?ORG 000BH
?LJMP T0INT
?ORG 001BH
?LJMP T1INT
LEDD EQU 30H
LEDC EQU?36H
SECC EQU?37H
MINC EQU?38H
HORA EQU?39H
TCNT EQU?3AH ORG?0030H
;-------------------- ------ ------------------
TABLA:?;?***Tabla de códigos de visualización del tubo digital del cátodo
DB?0FCH ;"0" 00H
DB?60H ;"1" 01H
DB?0DAH ;"2" 02H
DB?0F2H ;"3" 03H
DB?66H ; "4" 04H
DB?0B6H ; "5" 05H
DB?0BEH ;
DB?0E0H ; "7" 07H
DB?0FEH ; "8" 08H
DB?0F6H ; p> DB?0EEH ;"A" 0AH
DB?3EH ;"B" 0BH
DB?9CH ;"C" 0CH
DB?7AH ;"D" 0DH
DB?9EH ;"E" 0EH
DB?8EH ;"F" 0FH
DB?00H ;"?"
;?DB3FH,06H,5BH,4FH,66H?;12345
;?DB6DH,7DH,07H,7FH,?;6789
;- ----- ----------------------------------
RETRASO:?
MOVR6,#25
DLY01:?
MOVR7,#100
DJNZ?R7,$
DJNZ?R6,DLY01
RET
;----------------------------- ----- ----
COMENZAR:?
MOV?SP,#5FH
MOV?TMOD,#11H
MOV?TH0 ,#3CH
MOV?TL0,#0B0H
MOV?TH1,#0F4H
MOV?TL1,#48H
MOV ?LEDC,#6
MOV?R0,#LEDD
CLR?A
INIT:
MOV ?@R0,A
INC?R0
DJNZ?LEDC,INIT
SETB?ET1
SETB?TR1
MOV ?P2,#0
MOV?TCNT,#0
MOV?HORA,#0
MOV?MINC,#0
MOV?SECC,#0
SETB?ET0
SETB?EA
BUCLE:
JB? P1.0,L
OOP1
LCALL?DELAY
JB?P1.0,LOOP1
JNB?P1.0,$
INC?HORA
MOV?A,HORA
CJNE?A,#24,LOOPH
LOOPH:
JC?LOOPH1
MOV?HORA,#0
BUCLE1:
LCALL?DISHOUR
SJMP?BUCLE
BUCLE1:
JB?P1.1,LOOP2
LCALL?DELAY
JB?P1.1,LOOP2
JNB?P1.1,$ p>
MOV?A,HORA
JNZ?LOOPH2
MOV?HORA,#23
SJMP?LOOPH3
BUCLE2:
HORA DEC
BUCLE3:
LCALL?DISHOUR
SJMP?BUCLE
BUCLE2:
JB?P1.2,LOOP3
LCALL?DELAY
JB?P1.2,LOOP3
JNB?P1.2 ,$
INC?MINC
MOV?A,MINC
CJNE?A,#60,LOOPM
LOOPM: p>
JC?LOOPM1
MOV?MINC,#0
LOOPM1:
LCALL?DISMIN
SJMP?LOOP
BUCLE3:
JB?P1.3,BUCLE4
LCALL?DELAY
JB?P1.3,BUCLE4
JNB?P1.3,$
MOV?A,MINC
JNZ?LOOPM2
MOV?MINC,#59
SJMP?LOOPM3
LOOPM2:
DEC?MINC
LOOPM3:
LCALL?DISMIN
SJMP?LOOP
LOOP4:
JB?P1.4,LOOP5
LCALL?DELAY
JB?P1.4, LOOP5
JNB?P1.4,$
INC?SECC
MOV?A,SECC
CJNE?A,#60 ,BUCLES
BUCLES:
JC?LOOPS1
MOV?SECC,#0
BUCLES1:
LCALL?DISSEC
LJMP?LOOP
LOOP5:
JB?P1.5,LOOP6
LCALL?DELAY
JB?P1.5,LOOP6
JNB?P1.5,$
MOV?A,SECC
JNZ?LOOPS2
MOV?SECC,#59
SJMP?LOOPS3
LOOPS2:
DEC?SECC
LOOPS3:
LCALL?DISSEC
LJMP?LOOP
LOOP6:
JB?P3.1,LOOP7
LCALL?DELAY
JB?P3.1,LOOP7
JNB?P3.1,$
CPL?TR0
LOOP7:
LJMP?LOOP
;------------------------------------------------ ---
T1INT:
PUSH?ACC
CLR?TR1
MOV?TH1,#0F4H
MOV ?TL1,#48H
SETB?TR1
MOV?DPTR,#TABLE
MOV?R0,#LEDD
MOV?A,LEDC
T1INT0:
JNZ?T1INT1
MOV?P2,#01H
MOV?A,@ R0 p>
MOVC?A,@A+DPTR
CPL?A
MOV?P0,A
SJMP?T1INTD p>
T1INT1:
DEC?A
JNZ?T1INT2
MOV?P2,#02H
INC?R0
MOV?A,@R0
MOVC?A,@A+DPTR
CPL?A
MOV?P0,A
SJMP?T1INTD
T1INT2:
DEC?A
JNZ?T1INT3
MOV?P2, #04H
INC?R0
INC?R0
MOV?A,@R0
MOVC?A,@A+DPTR
CPL?A
MOV?P0,A
SJMP?T1INTD
T1INT3:
DEC? A p>
JNZ?T1INT4
MOV?P2,#08H
INC?R0
INC?R0
INC?R0
MOV?A,@R0
MOVC?A,@A+DPTR
CPL?A
MOV ?P0, A
SJMP?T1INTD
T1INT4:
DEC?A
JNZ?T1INT5
MOV?P2 ,#10H
INC?R0
INC?R0
INC?R0
INC?R0
MOV?A,@R0
MOVC?A,@A+DPTR
CPL?A
MOV?P0,A
SJMP?T1INTD
T1INT5:
DEC?A
JNZ?T1INTD
MOV?P2,#20H p>
INC?R0
INC?R0
INC?R0
INC?R0
INC?R0 p>
MOV?A,@R0
MOVC?A,@A
+DPTR
CPL?A
MOV?P0,A
T1INTD:
INC?LEDC
MOV?A,LEDC
CJNE?A,#6,T1INT6
T1INT6:
JC?T1INTE
MOV?LEDC, #0
T1INTE:
POP?ACC
RETI
;------------- --------------------------
HBCD:
MOV?B,#10 p>
¿DIV?AB?
SWAP?A?
ORL?A,B
RET?
;- -------------------------------
T0INT:
PUSH?ACC
CLR?TR0
MOV?TH0,#3CH
MOV?TL0,#0B0H
SETB ?TR0
INC?TCNT
MOV?A,TCNT
CJNE?A,#20,T0INT1
T0INT1: p>
JC?T0INTE
MOV?TCNT,#0
MOV?A,SECC
ORL?A,MINC
ORL?A,HOUR
JNZ?T0INT2
SETB?P3.0
CLR?TR0
POP?ACC
RETI
T0INT2:
MOV?A,MINC
ORL?A,HORA
JNZ?
MOV?A,SECC
CJNE?A,#6,T0INT21
T0INT21:
JNC?T0INT22
CPL?P3.0
T0INT22:
DEC?SECC
LCALL?DISSEC
SJMP?T0INTE
p>T0INT3:
MOV?A,SECC
JZ?T0INT31
DEC?SECC
LCALL?DISSEC
SJMP?T0INTE
T0INT31:
MOV?SECC,#59
LCALL?DISSEC
MOV ?A,MINC
JZ?T0INT32
DEC?MINC
LCALL?DISMIN
SJMP?T0INTE
T0INT32:
MOV?MINC,#59
LCALL?DISMIN
DEC?HOUR
LCALL?DISHOUR
T0INTE:
POP?ACC
RETI
;------------------- ------- ------------------
DISSEC:
MOV?A,SECC
LCALL?HBCD
PUSH?ACC
ANL?A,#0FH
MOV?30H,A
POP?ACC
SWAP?A p>
ANL?A,#0FH
MOV?31H,A
RET
;----------- ----------------------
DISMIN:
MOV?A,MINC
LCALL?HBCD
PUSH?ACC
ANL?A,#0FH
MOV?32H,A
POP?ACC
SWAP?A
ANL?A,#0FH
MOV?33H,A
RET
;---------------------------------
DISHOUR:
MOV?A,HOUR
LCALL?HBCD
PUSH?ACC
ANL?A,#0FH p>
MOV?34H,A
POP?ACC
SWAP?A
ANL?A,#0FH
MOV?35H,A
RET
;----------------------------- --- ----------
FIN