交通灯单片机实现实习报告_单片机交通灯实习报告
交通灯单片机实现实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机交通灯实习报告”。
单 片 机 课 程 设 计
学院: 专业: 班级:
小组成员:
交通灯单片机课程设计
SECOND1 EQU 30H
;东西路口计时寄存器
LED_G1
BIT P1.0
;东西路口绿灯 LED_Y1
BIT P1.1
;东西路口黄灯 LED_R1
BIT P1.2
;东西路口红灯 LED_G2
BIT P1.3
;南北路口绿灯 LED_Y2
BIT P1.4
;南北路口黄灯 LED_R2
BIT P1.5
;南北路口红灯
ORG 0000H
LJMP START
ORG 0003H
LJMP IINT0 IINT0: PUSH P1
CLR
TR0
CLR
LED_R1
SETB LED_G1
SETB
LED_Y1
CLR
LED_R2
SETB LED_G2
SETB
LED_Y2
JNB
P3.2,$
SETB
TR0
POP P1
RETI
ORG 0100H START: SETB EA
SETB EX0
CLR IT0
MOV
TMOD,#01H
;置T0工作方式1
MOV
TH0,#3CH
;置T0定时初值50MS
MOV
TL0,#0B0H
CLR
TF0
SETB TR0
;启动T0
CLR
A
MOV
P1,A
;关闭不相关的LED
LOOP:
MOV
R2,#20
;赋中断计数器初值
MOV
R3,#20
;红灯亮20s
MOV
SECOND1,#25;东西路口计时显示
初值25ms
LCALL DISPLAY
LCALL STATE1
;调用状态1
WAIT1:
JNB
TF0,WAIT1
;查询50ms状态
CLR
TF0
MOV
TH0,#3CH
;恢复T0定时初值50ms
MOV
TL0,#0B0H
DJNZ R2,WAIT1
;判断1s到否 未到继续状态1
MOV
R2,#20
值
DEC
SECOND1
LCALL DISPLAY DJNZ R3,WAIT1
MOV
R2,#5
MOV
R3,#3
MOV
R4,#4
MOV
SECOND1,#5
LCALL DISPLAY
WAIT2:
LCALL STATE2
JNB
TF0,WAIT2
CLR
TF0
MOV
TH0,#3CH
MOV
TL0,#0B0H DJNZ R4,WAIT2
CPL
LED_G1
MOV
R4,#4
DJNZ R2,WAIT2
MOV R2,#5
DEC
SECOND1
LCALL DISPLAY
DJNZ R3,WAIT2
MOV
R2,#5
MOV
R3,#2 MOV
R4,#4
MOV
SECOND1,#2
LCALL DISPLAY
WAIT3:
LCALL STATE3
JNB
TF0,WAIT3
CLR
TF0 MOV
TH0,#3CH
;重赋中断计数器初
MOV
TL0,#0B0H djnz R4,WAIT3
CPL
LED_Y1 MOV
R4,#4
DJNZ R2,WAIT3
MOV
R2,#5
DEC
SECOND1
LCALL DISPLAY
DJNZ R3,WAIT3
MOV
R2,#20
MOV
R3,#20
MOV
SECOND1,#25
LCALL DISPLAY
WAIT4:
LCALL STATE4
JNB
TF0,WAIT4
CLR
TF0
MOV
TH0,#3CH
MOV
TL0,#0B0H DJNZ R2,WAIT4
MOV
R2,#20
DEC
SECOND1
LCALL DISPLAY
DJNZ R3,WAIT4
MOV
R2,#5
MOV
R4,#4
MOV
R3,#3
MOV
SECOND1,#5
LCALL DISPLAY
WAIT5: LCALL STATE5
JNB
TF0,WAIT5
CLR
TF0 MOV
TH0,#3CH
MOV
TL0,#0B0H DJNZ R4,WAIT5
CPL
LED_G2
MOV
R4,#4
DJNZ R2,WAIT5
MOV
R2,#5
DEC
SECOND1
LCALL DISPLAY
DJNZ R3,WAIT5
MOV R2,#5
MOV
R3,#2
MOV
SECOND1,#2
LCALL DISPLAY
WAIT6:
LCALL STATE6
JNB
TF0,WAIT6
CLR
TF0 MOV
TH0,#3CH
MOV
TL0,#0B0H DJNZ R4,WAIT6 CPL
LED_Y2 MOV
R4,#4
DJNZ R2,WAIT6
MOV
R2,#5
DEC
SECOND1
LCALL DISPLAY DJNZ R3,WAIT6
LJMP LOOP
STATE1:
CLR
LED_G1
SETB
LED_Y1 SETB
LED_R1 SETB
LED_G2 SETB
LED_Y2 CLR
LED_R2
RET
STATE2:
SETB
LED_Y1 SETB
LED_R1 SETB
LED_G2
SETB
LED_Y2 CLR LED_R2
RET
STATE3:
SETB
LED_G1 SETB
LED_R1 SETB
LED_G2 SETB
LED_Y2
CLR
LED_R2
;CLR
LED_Y1
RET
STATE4:
SETB
LED_G1
SETB
LED_Y1 CLR
LED_R1
CLR
LED_G2
SETB
LED_Y2
SETB
LED_R2 RET
STATE5:
SETB LED_G1 SETB LED_Y1 CLR LED_R1
SETB LED_Y2 SETB LED_R2 RET
STATE6:
SETB
LED_G1 SETB
LED_Y1 CLR LED_R1
SETB
LED_G2 SETB
LED_R2
RET DISPLAY:
MOV
A,SECOND1
MOV
R5,A
MOV
R6,#00H
MOV
R7,#08H LOOP1:CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
DJNZ R7,LOOP1
DISP:MOV R0,A
MOV A,R6
ANL A,#0FH
ACALL SEND
MOV A,R6
SWAP A ANL A,#0FH
ACALL SEND MOV A,R0 RET
SEND:MOV DPTR,#LEDMAP MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET
LEDMAP: DB
03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
END