代碼清單 org 0000h ljmp main org 000bh ljmp inti0 org 0030h main:mov tmod,#01h mov ie,#82h mov th0,#4ch mov tl0,#00h mov sp,#60h mov 31h,#30 ;東西綠燈初值30秒 mov 32h,#30 ;南北紅燈初值30秒 clr 4fh ;清標(biāo)志位 clr p1.1 ;開(kāi)東西綠燈 clr p1.5 ;開(kāi)南北紅燈 setb tr0 ;啟動(dòng)T0 loop:lcall key ;調(diào)用應(yīng)急按鍵判斷 ljmp loop inti0:push psw clr ea mov th0,#4ch mov tl0,#00h inc 35h mov a,35h cjne a,#20,out ;判1秒是否到時(shí) mov 35h,#00 jb 4fh,yi ;判別標(biāo)志位 dec 31h ;東西時(shí)間每秒減1 dec 32h ;南北時(shí)間每秒減1 mov a,31h cjne a,#05,out ;判是否到25秒 setb p1.1 ;東西綠燈閃滅3秒 lcall del500ms clr p1.1 lcall del500ms setb p1.1 lcall del500ms clr p1.1 lcall del500ms setb p1.1 lcall del500ms clr p1.1 lcall del500ms setb p1.1 ;滅東西綠燈 sjmp er out:setb ea pop psw reti er:clr p1.2 ;東西黃燈亮2秒 mov 33h,#4 ;延時(shí)2秒 loop1:lcall del500ms djnz 33h,loop1 setb p1.2 ;2秒后滅東西黃燈 clr p2.1 mov 31h,#20 ;東西時(shí)間賦20秒初值 mov 32h,#20 ;南北時(shí)間賦20秒初值 setb 4fh setb p1.5 ;關(guān)南北紅燈 clr p1.0 ;點(diǎn)亮東西紅燈 clr p1.6 ;點(diǎn)亮南北綠燈 sjmp out yi:dec 31h ;東西時(shí)間每秒減1 dec 32h ;南北時(shí)間每秒減1 mov a,31h cjne a,#5,out ;判是否到15秒 setb p2.7 ; setb p1.6 ;南北綠燈閃滅3秒 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 ;關(guān)南北綠燈 clr p1.7 ;南北黃燈亮2秒 mov 34h,#4 ;延時(shí)2秒 loop2:lcall del500ms djnz 34h,loop2 setb p1.7 ;2秒后滅南北黃燈 clr p2.7 ; mov 31h,#30 ;東西時(shí)間重賦30秒初值 mov 32h,#30 ;南北時(shí)間重賦30秒初值 clr p1.1 ;點(diǎn)亮東西綠燈 clr p1.5 ;點(diǎn)亮南北紅燈 setb p1.0 ;關(guān)東西紅燈 clr 4fh ljmp out table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;0-9數(shù)字 del1ms:mov r7,#10 ;1ms延時(shí)子程序 d1:mov r6,#50 djnz r6,$ djnz r7,d1 ret del500ms:mov r5,#5 ;500ms延時(shí)子程序 del3:mov r4,#200 del4:mov r3,#250 djnz r3,$ djnz r4,del4 djnz r5,del3 ret key:jb p1.3,keyout jnb p1.3,$ clr ea inc 36h mov a,36h cjne a,#2,key4 mov 36h,#00 setb p1.6 ;東西綠燈閃滅3秒 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 ;滅東西綠燈 clr p1.7 ;東西黃燈亮2秒 mov 33h,#4 ;延時(shí)2秒 loop3:lcall del500ms djnz 33h,loop3 setb p1.7 ;2秒后滅東西黃燈 setb p1.0 ;關(guān)東西紅燈 setb p1.6 ;關(guān)南北綠燈 clr p1.1 ;開(kāi)西綠燈 clr p1.5 ;開(kāi)南北紅燈 setb ea sjmp keyout key4:clr p1.6 ;開(kāi)南北綠燈 clr p1.0 ;開(kāi)東西紅燈 setb p1.1 setb p1.2 setb p1.3 setb p1.4 setb p1.5 setb p1.7 keyout:ret end
192220CB-FE6E-4022-8C42-4042AE76E1D1.png (20.64 KB, 下載次數(shù): 34)
下載附件
2020-6-17 14:49 上傳
捕獲.PNG (30.11 KB, 下載次數(shù): 31)
下載附件
2020-6-17 14:54 上傳
要像這樣子的流程圖
|