ORG 0000H LJMP START ORG 2000H START: MOV TMOD,#01H ;置T0為工作方式1 MOV TH0,#9EH ;置T0定時(shí)初值25ms MOV TL0,#57H CLR TF0 SETB TR0 ;啟動(dòng)T0 ;*************************************************** MOV R2,#20 ;置1s計(jì)數(shù)初值,50ms*20=1s MOV R3,#5 ;紅燈亮5s WAIT0: LCALL STATE0 ;調(diào)用狀態(tài)0 JNB TF0,WAIT0 ;查詢50ms到否 CLR TF0 MOV TH0,#9EH ;置T0定時(shí)初值25ms MOV TL0,#57H DJNZ R2,WAIT0 ;判斷1s到否未到繼續(xù)狀態(tài)0 MOV R2,#20 ;置50ms計(jì)數(shù)初值 DJNZ R3,WAIT0 ;狀態(tài)0維持5s ;**************************************************** LOOP: MOV R2,#20 ;置50ms計(jì)數(shù)初值 MOV R3,#20 ;南北綠燈東西紅燈亮20s WAIT1: LCALL STATE1 ;調(diào)用狀態(tài)1 JNB TF0,WAIT1 ;查詢50ms到否 CLR TF0 MOV TH0,#9EH ;置T0定時(shí)初值25ms MOV TL0,#57H DJNZ R2,WAIT1 ;判斷1s到否未到繼續(xù)狀態(tài)1 MOV R2,#20 ;置100ms計(jì)數(shù)初值 DJNZ R3,WAIT1 ;狀態(tài)1維持20s ;**************************************************** MOV R2,#10 ;置循環(huán)次數(shù) MOV R4,#10 ;閃爍間隔500ms LCALL STATE2 ;調(diào)用狀態(tài)2 WAIT2: JNB TF0,WAIT2 ;查詢50ms到否 CLR TF0 MOV TH0,#9EH ;置T0定時(shí)初值25ms MOV TL0,#57H DJNZ R4,WAIT2 ;判斷500ms到否未到繼續(xù)狀態(tài)2 CPL P1.1 ;南北黃燈閃 MOV R4,#10 ;閃爍間隔500ms DJNZ R2,WAIT2 ; ;******************************************* MOV R2,#20 ;置50ms計(jì)數(shù)初值 MOV R3,#10 ;紅燈亮10s WAIT4: LCALL STATE4 ;調(diào)用狀態(tài)4 JNB TF0,WAIT4 ;查詢50ms到否 CLR TF0 MOV TH0,#3CH ;恢復(fù)T0定時(shí)初值50ms MOV TL0,#0B0H DJNZ R2,WAIT4 ;判斷1s到否未到繼續(xù)狀態(tài)4 MOV R2,#20 ;置1s計(jì)數(shù)初值 DJNZ R3,WAIT4 ;狀態(tài)4維持10s ;******************************************* MOV R2,#10 ;置循環(huán)次數(shù) MOV R4,#10 ;閃爍間隔500ms LCALL STATE5 ;調(diào)用狀態(tài)5 WAIT5: JNB TF0,WAIT5 ;查詢50ms到否 CLR TF0 MOV TH0,#9EH ;置T0定時(shí)初值25ms MOV TL0,#57H DJNZ R4,WAIT5 ;判斷500ms到否未到繼續(xù)狀態(tài)2 CPL P1.6 ;東西黃燈閃 MOV R4,#10 ;閃爍間隔500ms DJNZ R2,WAIT5 ; LJMP LOOP ;大循環(huán) ;********************************************** STATE0: ;狀態(tài)0 CLR P1.0 ;南北路口紅燈亮 SETB P1.1 SETB P1.2 CLR P1.5 SETB P1.6 SETB P1.7 ;東西路口紅燈亮 RET STATE1: ;狀態(tài)1 SETB P1.0 ;南北路口綠燈亮 SETB P1.1 CLR P1.2 CLR P1.5 SETB P1.6 SETB P1.7 ;東西路口紅燈亮 RET STATE2: ;狀態(tài)2 SETB P1.0 ;南北路口黃燈亮 CLR P1.1 SETB P1.2 CLR P1.5 SETB P1.6 SETB P1.7 ;東西路口紅燈亮 RET STATE4: ;狀態(tài)4 CLR P1.0 ;南北路口紅燈亮 SETB P1.1 SETB P1.2 SETB P1.5 SETB P1.6 CLR P1.7 ;東西路口綠燈亮 RET STATE5: ;狀態(tài)6 CLR P1.0 ;南北路口紅燈亮 SETB P1.1 SETB P1.2 SETB P1.5 SETB P1.6 SETB P1.7 ;東西路口黃燈亮 RET END
|