標題: 單片機 交通信號燈 [打印本頁]
作者: 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://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |