Diseño de sistema de control de simulación de semáforo basado en microcontrolador
;Programa de visualización de tubo digital LED de 2 dígitos: el puerto P0 está conectado al segmento del tubo digital y el puerto P2 está conectado a la broca del tubo digital.
El puerto P3 está conectado al teclado, el puerto P1 está conectado al diodo emisor de luz
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 000BH
LJMP T0INT
ORG 0013H
LJMP INT1P
ORG 001BH
LJMP CTC1
ORG 0100H
PRINCIPAL: LCALL CSHIH; inicialización
BUCLE: LCALL TONGX; LCALL H_BCD2; cálculo (1 bit HEX convertido a código BCD de 2 dígitos)
LCALL YIMA;Decodificación
LCALL LED4W
CLR 00H
JNB 00H, $
DJNZ R6,LOOP
MOV R6,#100
JNB 10H,LOOP1 ; Activar función especial K0
JB 10H, $
LOOP1: JNB 11H,LOOP2 ; Iniciar función especial K1
JB 11H,$
NOP
LOOP2: JNB 12H, LOOP3; Activar función especial K2
JB 12H,$
NOP
LOOP3: DJNZ TIME,LOOP
SETB 02H
BUCLE SJMP
TONGX: JB 01H,DONGX
JB 02H,HUANG1
MOV P1,#21H
SJMP TX_OUT
HUANG1: MOV P1,#22H
MOV TIME,#1
DJNZ R5,TX_OUT
MOV R5,200
CLR 02H
CPL 01H
MOV TIME,#15
SJMP TX_OUT
DONGX: JB 02H, HUANG2
MOV P1,#0CH
SJMP TX_OUT
HUANG2: MOV P1,#14H
TIEMPO DE MOVIMIENTO,#1 p>
DJNZ R5,TX_OUT
MOV R5,200
CLR 02H
CPL 01H
MOV TIME,#15
TX_OUT: RET
LED4W: MOV A,XWEI
MOV B,#3
MUL AB
MOV DPTR,# LED4T
JMP @A+DPTR
LED4T: LJMP LD4W1
LJMP LD4W2
LJMP LD4W3
LJMP LD4W4
LD4W1: MOV LEDD,MLED1
MOV LEDW,#1
INC XWEI
SJMP LED4WE
LD4W2: MOV LEDD,MLED2
MOV LEDW,#2
INC XWEI
SJMP LED4WE
LD4W3: MOV LEDD,MLED3
MOV LEDW,#4
INC XWEI
SJMP LED4WE
LD4W4: MOV LEDD,MLED4
MOV LEDW,#8
MOV XWEI,#0
LED4WE: RET
YIMA: MOV R0,#BLED1 ;LED de cuatro dígitos
MOV R1,#MLED1
MOV R7,#2
MOV DPTR,#YIMTAB
YIMA1: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7, YIMA1
RET
YIMTAB: DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4
DB 6DH,7DH, 07H ,7FH,6FH ;5,6,7,8,9
CSHIH: TIEMPO DE MOVIMIENTO,#15
MOV XWEI,#0
LEDD DE MOVIMIENTO , #0
MOV LEDW,#0
MOV R6,#100 ;1 segundo de retraso
MOV R5,#200 ;2 segundos de retraso
MOV P1,#21H
MOV 20H,#0
MOV 22H,#0
MOV TMOD,#61H ;T0 modo 1
MOV TTH0,#0D8H ;10ms
MOV TTL0,#0F0H
MOV TL0,TTL0< / p>
MOV TH0,TTH0
MOV TL1,#0FFH
MOV TH1,#0FFH
MOV IE,#8FH
SETB TR0
SETB TR1
MOV BLED1,#0
MOV BLED2,#0
MOV MLED3,#0
MOV MLED4,#0
RET
H_BCD2: MOV A,TIME
MOV B,#10
DIV AB
MOV BLED2,A
MOV BLED1,B
MOV MLED3,#0
MOV MLED4,#0
RET
T0INT: MOV TL0,TTL0
MOV TH0,TTH0
SETB 00H
RETI
p>INT0P: CPL 10H
SETB P1.2
CLR P1.1
CLR P1.0
SETB P1.5
CLR P1.4
CLR P1.3
RETI
INT1P: CPL 11H
CLR P1.2
CLR P1.1
SETB P1.0
SETB P1.5
CLR P1.4
CLR P1.3
RETI
CTC1: CPL 12H
MOV P1,#0CH
RETI
BIAOZ DATA 20H; Bandera: .0 está programado para llegar.
DATOS XWEI 60H; dígitos de visualización, 4 dígitos: 0~3
DATOS TTL0 61H
DATOS TTH0 62H
DATOS DE HORA 66H ;Tiempo de cuenta regresiva
DATOS BLED1 74H ;Datos en pantalla BCD
DATOS BLED2 75H
DATOS BLED3 76H
DATOS BLED4 77H
MLED1 DATA 78H; decodificación de datos en pantalla
MLED2 DATA 79H
MLED3 DATA 7AH
MLED4 DATA 7BH
LEDD EQU P0; segmento del tubo digital
LEDW EQU P2; posición del tubo digital
FIN