标题: 单片机 交通信号灯 [打印本页]

作者: 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