版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./上傳者:jdchen;十字路口交通燈控制的程序;**************************************;****四鍵****緊急情況***南北綠燈加長(zhǎng)****東西綠燈加長(zhǎng)*****復(fù)位*** ;**************************************;***********P1口作為指示燈*********** ORG0000HSJMPMAIN ORG0030HMAIN:MOVSP,#0A0H ;設(shè)置指針指向A0H單元MOV7AH,#00H ;數(shù)據(jù)緩存區(qū)7AMOV7BH,#00H ;數(shù)據(jù)緩存區(qū)7BMOV7CH,#00H ;數(shù)據(jù)緩存區(qū)7CMOV7DH,#00H ;數(shù)據(jù)緩存區(qū)7D MOVB,#00H ;B是用來(lái)存第一個(gè)鍵按下的次數(shù)的,第一次按下B變成01H,第二次按下跳出程序,恢復(fù)成00H MOVP1,#0FFH ;滅掉P1口的所有燈;。。。。。。。。。。。。。。。。 CLRP1.0 ;東西方向亮紅燈 MOV7DH,#03 ;1這兩句存前兩個(gè)8段顯示器顯示的數(shù)字35,也就是紅燈亮的時(shí)間 MOV7CH,#05 ;2 CLRP1.6 ;南北方向亮綠燈 MOV7BH,#03 ;1這兩句存后兩個(gè)8段顯示器顯示的數(shù)字30,也就是綠燈亮的時(shí)間 MOV7AH,#00 ;2 MOVR2,#30 ;循環(huán)的次數(shù)〔30次,一次1秒,共30秒 M1: LCALLR_AND_G ;調(diào)用顯示外加延時(shí)子程序 DJNZR2,M1 ;判斷是否已循環(huán)了30次,沒(méi)有就繼續(xù)循環(huán),如果循環(huán)完了就執(zhí)行下一行語(yǔ)句 MOVR2,#05 ;南北方綠燈亮的顯示時(shí)間,5秒 MOV7AH,#05H ;1這兩句存后兩個(gè)8段顯示器顯示的數(shù)字05 MOV7BH,#00H ;2 SETBP1.6 ;滅掉南北方向的綠燈 M2: LCALLYELLOW1 ;調(diào)用黃燈閃爍--外加延時(shí)--外加顯示子的程序 DJNZR2,M2 ;判斷是否循環(huán)了5次,沒(méi)有就繼續(xù)循環(huán),如果循環(huán)完了就執(zhí)行下一行語(yǔ)句 MOVP1,#0FFH ;關(guān)掉所有的燈;。。。。。。。。。。。。。。。。 CLRP1.1 ;東西方向亮綠燈 MOV7DH,#03 ;1這兩句存前兩個(gè)8段顯示器顯示的數(shù)字30,也就是綠燈亮的時(shí)間 MOV7CH,#00 ;2 CLRP1.5 ;南北方向亮紅燈 MOV7BH,#03 ;1這兩句存后兩個(gè)8段顯示器顯示的數(shù)字35,也就是紅燈亮的時(shí)間 MOV7AH,#05 ;2 MOVR2,#30 ;循環(huán)的次數(shù)〔30次,一次1秒,共30秒 M3: LCALLR_AND_G ;調(diào)用顯示外加延時(shí)子程序 DJNZR2,M3 ;判斷是否已循環(huán)了30次,沒(méi)有就繼續(xù)循環(huán),如果循環(huán)完了就執(zhí)行下一行語(yǔ)句 MOVR2,#05 ;東西方向綠燈的顯示時(shí)間,5秒 MOV7CH,#05H ;1這兩句后兩個(gè)8段顯示器顯示的數(shù)字05 MOV7DH,#00H ;2 SETBP1.1 ;滅掉第東西方向的綠燈 M4: LCALLYELLOW2 ;調(diào)用黃燈閃爍--外加延時(shí)--外加顯示子的程序 DJNZR2,M4 ;判斷是否循環(huán)了5次,沒(méi)有就繼續(xù)循環(huán),如果循環(huán)完了就執(zhí)行下一行語(yǔ)句 LJMPMAIN ;跳到MAIN,循環(huán)執(zhí)行MAIN;。。。1鍵KEY_1:CJNEA,#01H,KEY_2;判斷1鍵是否按下,不是則跳到KEY_2 INCB ;給B自加一 MOVR0,B ;把B中的容存入R0 CJNER0,#01H,S3 ;判斷R0中的容是否為01H,是就往下執(zhí)行,不是就跳到S3,〔注:第二次按下的時(shí)候R0肯定不為01H,這時(shí)候就會(huì)跳到S3,執(zhí)行復(fù)位語(yǔ)句 MOV7AH,#05H ;1--這兩句置南北方向黃燈閃爍的時(shí)間05 MOV7BH,#00H ;2--MOV7CH,#05H ;1--這兩句置東西方向黃燈閃爍的時(shí)間05MOV7DH,#00H ;2-- MOVP1,#0FFH ;燈全滅 S1: CLRP1.3 ;點(diǎn)亮東西方向的黃燈 CLRP1.7 ;點(diǎn)亮南北方向的黃燈 LCALLDELAYEX ;延時(shí) CJNEA,#0FFH,KEY_1 ;掃描鍵盤(pán) SETBP1.3 ;熄滅東西方的黃燈 SETBP1.7 ;熄滅南北方向的黃燈 LCALLDELAYEX ;延時(shí) CJNEA,#0FFH,KEY_1 ;掃描鍵盤(pán) DEC7CH ;7CH容自減一 DJNZ7AH,S1 ;7AH自減一〔這一句會(huì)給7AH容自減一,然后判斷它是否和0相等 MOV7AH,#08H ;7AH置成08H MOV7BH,#08H ;7BH置成08H MOV7CH,#08H ;7CH置成08H MOV7DH,#08H ;7DH置成08H MOVP1,#0FFH ;熄滅所有的燈 CLRP1.0 ;東西方向的紅燈點(diǎn)亮 CLRP1.5 ;南北方向的紅燈點(diǎn)亮 S2: LCALLDISPLAY ;調(diào)用顯示程序 LCALLKEY ;調(diào)用鍵盤(pán)掃描程序 CJNEA,#0FFH,KEY_1 ;判斷是否有鍵按下,有鍵按下就跳到KEY_1,沒(méi)鍵按下就執(zhí)行下一跳語(yǔ)句 SJMPS2 ;跳到S2 S3:LJMPMAIN ;跳到MAIN,復(fù)位;。。。2鍵KEY_2: CJNEA,#02H,KEY_3;判斷2鍵是否按下,不是則跳到KEY_3ST1:MOVP1,#0FFH ;熄滅所有的燈 MOVB,#00H ;給寄存器B清零;。。。。。。。。。。。。。。。。 CLRP1.0 ;東西方向亮紅燈 MOV7DH,#06 ;1--前兩個(gè)顯示器置成65,紅燈的顯示秒數(shù) MOV7CH,#05 ;2-- CLRP1.6 ;南北方向路口亮綠燈 MOV7BH,#06 ;1--后兩個(gè)顯示器置成60,綠燈的顯示秒數(shù) MOV7AH,#00 ;2-- MOVR2,#60 ;R2存循環(huán)次數(shù),一次大約1秒,共60秒 M5: LCALLR_AND_G ;調(diào)用減一外加延時(shí)子程序 DJNZR2,M5 MOVR2,#05 ;R2存循環(huán)次數(shù),一次大約1秒,共5秒,是第二個(gè)路口黃燈的閃爍時(shí)間 MOV7AH,#05H ;1--后兩個(gè)顯示器置成05,黃燈的顯示秒數(shù) MOV7BH,#00H ;2-- SETBP1.6 ;熄滅南北方向的綠燈 M6: LCALLYELLOW1 ;調(diào)用南北方向點(diǎn)亮黃燈外加黃燈閃爍外加延時(shí)的子程序 DJNZR2,M6 MOVP1,#0FFH ;熄滅所有的燈;。。。。。。。。。。。。。。。。 CLRP1.1 ;東西方向亮綠燈 MOV7DH,#06 ;1--前兩個(gè)顯示器置成60,綠燈的顯示秒數(shù) MOV7CH,#00 ;2-- CLRP1.5 ;南北方向亮紅燈 MOV7BH,#06 ;1--后兩個(gè)顯示器置成65,紅燈的顯示秒數(shù) MOV7AH,#05 ;2-- MOVR2,#60 ;R2存循環(huán)次數(shù),一次大約1秒,共60秒 M7: LCALLR_AND_G ;調(diào)用減一外加延時(shí)子程序 DJNZR2,M7 MOVR2,#05 ;R2存循環(huán)次數(shù),一次大約1秒,共5秒,是東西方向黃燈的閃爍時(shí)間 MOV7CH,#05H ;1--前兩個(gè)顯示器置成05,黃燈的顯示秒數(shù) MOV7DH,#00H ;2-- SETBP1.1 ;熄滅東西方向的綠燈 M8: LCALLYELLOW2 ;調(diào)用東西方向點(diǎn)亮黃燈外加黃燈閃爍外加延時(shí)的子程序 DJNZR2,M8 SJMPST1 ;跳到ST1,循環(huán)執(zhí)行;。。。3鍵KEY_3:CJNEA,#04H,KEY_4 ;判斷3鍵是否按下,不是則跳到KEY_4ST2:MOVP1,#0FFH ;〔KEY_3的程序和KEY_2的類(lèi)似,可以用KEY_2做參照 MOVB,#00H ;〔不同的就是點(diǎn)亮的燈的順序有點(diǎn)不同,和置的數(shù)有點(diǎn)不同;。。。。。。。。。。。。。。。。 CLRP1.1 MOV7DH,#06 MOV7CH,#00 CLRP1.5 MOV7BH,#06 MOV7AH,#05 MOVR2,#60 M9: LCALLR_AND_G DJNZR2,M9 MOVR2,#05 MOV7CH,#05H MOV7DH,#00H SETBP1.1 M10:LCALLYELLOW2 DJNZR2,M10 MOVP1,#0FFH;。。。。。。。。。。。。。。。。 CLRP1.0 MOV7DH,#06 MOV7CH,#05 CLRP1.6 MOV7BH,#06 MOV7AH,#00 MOVR2,#60 M11:LCALLR_AND_G DJNZR2,M11 MOVR2,#05 MOV7AH,#05H MOV7BH,#00H SETBP1.6 M12:LCALLYELLOW1 DJNZR2,M12 SJMPST2;。。。4鍵 ,復(fù)位鍵KEY_4:CJNEA,#08H,TRANSIT ;如果4鍵按下,就跳到MAIN-復(fù)位〔TRANSIT是一個(gè)中轉(zhuǎn)程序,因?yàn)槌隽薈JNE跳轉(zhuǎn)圍,因此需要用到中轉(zhuǎn) LJMPMAIN;中轉(zhuǎn)程序。。。。。。TRANSIT:LJMPKEY_1;。。。。。。。。。。下面是鍵盤(pán)掃描程序<4068個(gè)機(jī)器周期>。。。。。。。。。 KEY: PUSHPSW ;2 SETBRS0 ;1 MOVP0,#0FFH ;2 MOVP2,#0FFH ;2 MOVA,P2 ;1 CPLA ;1取反 JZRET1 ;2 ACALLDELAY ;2024 ACALLDELAY ;2024 SJMPRETKEY ;2 RET1:MOVA,#0FFH ;1 RETKEY:CLRRS0 ;1 POPPSW ;2 RET ;2;。。。。。。。。。。顯示子程序<2041>。。。。。。。。。。DISPLAY:SETBRS0MOVA,#0EFH ;顯示外加延時(shí),延時(shí)1秒 **從這里往下到注釋"3"共6038個(gè)機(jī)器周期;1 MOVR0,#7AH ;1LOOP1:MOVDPTR,#TAB ;2循環(huán)共8156個(gè)機(jī)器周期 MOVP2,A ;1 MOVR1,A ;將A存起來(lái) ;1 MOVA,R0 ;1 MOVCA,A+DPTR;2 MOVP0,A ;1 MOVA,R1 ;將A取出來(lái),到此11個(gè)機(jī)器周期 ;1 LCALLDELAY ;2026 INCR0 ;1 RLA ;1 CJNEA,#0FEH,LOOP1 ;2 CLRRS0 RET ;2 ;。。。。。。。。。。下面是延時(shí)程序<短約2毫秒>2024個(gè)機(jī)器周期。。。。。。。。。。。。DELAY: MOVR6,#05 ;2個(gè)機(jī)器周期D2: MOVR7,#200 ;2 DJNZR7,$ ;2個(gè)機(jī)器周期 DJNZR6,D2 ;2 RET ;2;。。。。。。。。。。延時(shí)500毫秒子程序。。。。。。。。。。DELAYEX:MOVR5,#41J1:LCALLDISPLAY LCALLKEY DJNZR5,J1 RET;。。。。。。。。。。顯示的數(shù)字自減一。。。。。。。。。。SU:DEC7AH DEC7CH RET;。。。。。。。。。顯示自減<紅綠用>。。。。。。。。。R_AND_G:LCALLDELAYEX ;1這4句大概延時(shí)1秒 CJNEA,#0FFH,TRANSIT ;2 LCALLDELAYEX ;3 CJNEA,#0FFH,TRANSIT ;4 LCALLSU ;調(diào)用子程序SU LCALLXAB ;調(diào)用子程序XAB LCALLXCD ;調(diào)用子程序XCD RET;。。。。。。。。。。南北方向黃燈專(zhuān)用。。。。。。。。。。YELLOW1:CLRP1.7 ;黃燈點(diǎn)亮〔第二個(gè)路口 LCALLDELAYEX ;延時(shí)1這兩句大概500毫秒 CJNEA,#0FFH,TRANSIT ;延時(shí)2 SETBP1.7 ;黃燈熄滅〔第二個(gè)路口 LCALLDELAYEX ;延時(shí)1這兩句大概500毫秒 CJNEA,#0FFH,TRANSIT ;延時(shí)2 LCALLSU ;調(diào)用子程序SU LCALLXAB ;調(diào)用子程序XAB LCALLXCD ;調(diào)用子程序XCD RET;。。。。。。。。。。東西方向黃燈專(zhuān)用。。。。。。。。。。YELLOW2:CLRP1.3 ;這個(gè)和上面的YELLOW1差不多 LCALLDELAYEX CJNEA,#0FFH,TRANSIT02 SETBP1.3 LCALLDELAYEX CJNEA,#0FFH,TRANSIT02 LCALLSU LCALLXAB LCALLXCD RET;。。。。。。。。。。中轉(zhuǎn)02.。。。。。。。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度2025版木材行業(yè)標(biāo)準(zhǔn)制定合作合同2篇
- 福建省泉州市南安市2024-2025學(xué)年八年級(jí)上學(xué)期期末英語(yǔ)試題(無(wú)答案)
- 創(chuàng)新創(chuàng)業(yè)-職業(yè)核心能力課件
- 絲印精加工在微型電子設(shè)備制造領(lǐng)域的應(yīng)用考核試卷
- 二零二五年度墓地陵園土地租賃與使用權(quán)轉(zhuǎn)讓合同4篇
- 母嬰行業(yè)2025年度母嬰用品環(huán)保認(rèn)證服務(wù)合同2篇
- 二零二五版鋼材貨物流動(dòng)銀行托管運(yùn)輸合同3篇
- 二零二五年度木制品生產(chǎn)與銷(xiāo)售承包合同3篇
- 2025年公司內(nèi)部競(jìng)業(yè)保密協(xié)議
- 2025年太陽(yáng)能光伏電站智能監(jiān)控工程施工合同
- 2024年高純氮化鋁粉體項(xiàng)目可行性分析報(bào)告
- 安檢人員培訓(xùn)
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語(yǔ)試題
- 危險(xiǎn)性較大分部分項(xiàng)工程及施工現(xiàn)場(chǎng)易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 《榜樣9》觀后感心得體會(huì)四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識(shí)》備考題庫(kù)(含答案)
- 化學(xué)-廣東省廣州市2024-2025學(xué)年高一上學(xué)期期末檢測(cè)卷(一)試題和答案
- 2025四川中煙招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- EHS工程師招聘筆試題與參考答案(某大型央企)2024年
- 營(yíng)銷(xiāo)策劃 -麗亭酒店品牌年度傳播規(guī)劃方案
- 2025年中國(guó)蛋糕行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢(xún)發(fā)布)
評(píng)論
0/150
提交評(píng)論