标题: 单片机 交通信号灯 [打印本页]
作者: Dawsin 时间: 2018-6-13 18:21
标题: 单片机 交通信号灯
ORG 0000H
LJMP START
ORG 2000H
START:
MOV TMOD,#01H ;置T0为工作方式1
MOV TH0,#9EH ;置T0定时初值25ms
MOV TL0,#57H
CLR TF0
SETB TR0 ;启动T0
;***************************************************
MOV R2,#20 ;置1s计数初值,50ms*20=1s
MOV R3,#5 ;红灯亮5s
WAIT0:
LCALL STATE0 ;调用状态0
JNB TF0,WAIT0 ;查询50ms到否
CLR TF0
MOV TH0,#9EH ;置T0定时初值25ms
MOV TL0,#57H
DJNZ R2,WAIT0 ;判断1s到否未到继续状态0
MOV R2,#20 ;置50ms计数初值
DJNZ R3,WAIT0 ;状态0维持5s
;****************************************************
LOOP:
MOV R2,#20 ;置50ms计数初值
MOV R3,#20 ;南北绿灯东西红灯亮20s
WAIT1:
LCALL STATE1 ;调用状态1
JNB TF0,WAIT1 ;查询50ms到否
CLR TF0
MOV TH0,#9EH ;置T0定时初值25ms
MOV TL0,#57H
DJNZ R2,WAIT1 ;判断1s到否未到继续状态1
MOV R2,#20 ;置100ms计数初值
DJNZ R3,WAIT1 ;状态1维持20s
;****************************************************
MOV R2,#10 ;置循环次数
MOV R4,#10 ;闪烁间隔500ms
LCALL STATE2 ;调用状态2
WAIT2:
JNB TF0,WAIT2 ;查询50ms到否
CLR TF0
MOV TH0,#9EH ;置T0定时初值25ms
MOV TL0,#57H
DJNZ R4,WAIT2 ;判断500ms到否未到继续状态2
CPL P1.1 ;南北黄灯闪
MOV R4,#10 ;闪烁间隔500ms
DJNZ R2,WAIT2 ;
;*******************************************
MOV R2,#20 ;置50ms计数初值
MOV R3,#10 ;红灯亮10s
WAIT4:
LCALL STATE4 ;调用状态4
JNB TF0,WAIT4 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,WAIT4 ;判断1s到否未到继续状态4
MOV R2,#20 ;置1s计数初值
DJNZ R3,WAIT4 ;状态4维持10s
;*******************************************
MOV R2,#10 ;置循环次数
MOV R4,#10 ;闪烁间隔500ms
LCALL STATE5 ;调用状态5
WAIT5:
JNB TF0,WAIT5 ;查询50ms到否
CLR TF0
MOV TH0,#9EH ;置T0定时初值25ms
MOV TL0,#57H
DJNZ R4,WAIT5 ;判断500ms到否未到继续状态2
CPL P1.6 ;东西黄灯闪
MOV R4,#10 ;闪烁间隔500ms
DJNZ R2,WAIT5 ;
LJMP LOOP ;大循环
;**********************************************
STATE0: ;状态0
CLR P1.0 ;南北路口红灯亮
SETB P1.1
SETB P1.2
CLR P1.5
SETB P1.6
SETB P1.7 ;东西路口红灯亮
RET
STATE1: ;状态1
SETB P1.0 ;南北路口绿灯亮
SETB P1.1
CLR P1.2
CLR P1.5
SETB P1.6
SETB P1.7 ;东西路口红灯亮
RET
STATE2: ;状态2
SETB P1.0 ;南北路口黄灯亮
CLR P1.1
SETB P1.2
CLR P1.5
SETB P1.6
SETB P1.7 ;东西路口红灯亮
RET
STATE4: ;状态4
CLR P1.0 ;南北路口红灯亮
SETB P1.1
SETB P1.2
SETB P1.5
SETB P1.6
CLR P1.7 ;东西路口绿灯亮
RET
STATE5: ;状态6
CLR P1.0 ;南北路口红灯亮
SETB P1.1
SETB P1.2
SETB P1.5
SETB P1.6
SETB P1.7 ;东西路口黄灯亮
RET
END
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |