基於單片機的交通信號燈模擬控制系統設計
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 000BH
LJMP T0INT
ORG 0013H
LJMP INT1P
ORG 001BH
LJMP CTC1
ORG 0100H
MAIN: LCALL CSHIH ;初始化
LOOP: LCALL TONGX ;通行路口
LCALL H_BCD2 ;計算(1位HEX轉換為2位BCD碼)
LCALL YIMA ;譯碼
LCALL LED4W ;顯示
CLR 00H
JNB 00H,$
DJNZ R6,LOOP
MOV R6,#100
JNB 10H,LOOP1 ;啟動特殊功能K0
JB 10H,$
LOOP1: JNB 11H,LOOP2 ;啟動特殊功能K1
JB 11H,$
NOP
LOOP2: JNB 12H,LOOP3 ;啟動特殊功能K2
JB 12H,$
NOP
LOOP3: DJNZ TIME,LOOP
SETB 02H
SJMP LOOP
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
MOV TIME,#1
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
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: MOV TIME,#15
MOV XWEI,#0
MOV LEDD,#0
MOV LEDW,#0
MOV R6,#100 ;1秒延時
MOV R5,#200 ;2秒延時
MOV P1,#21H
MOV 20H,#0
MOV 22H,#0
MOV TMOD,#61H ;T0方式1
MOV TTH0,#0D8H ;10ms
MOV TTL0,#0F0H
MOV TL0,TTL0
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
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 ;標誌:.0定時到。
XWEI DATA 60H ;顯示位,4位:0~3
TTL0 DATA 61H
TTH0 DATA 62H
TIME DATA 66H ;倒計時時間
BLED1 DATA 74H ;顯示數據BCD
BLED2 DATA 75H
BLED3 DATA 76H
BLED4 DATA 77H
MLED1 DATA 78H ;顯示數據譯碼
MLED2 DATA 79H
MLED3 DATA 7AH
MLED4 DATA 7BH
LEDD EQU P0 ;數碼管段
LEDW EQU P2 ;數碼管位
END