




已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
#include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;/*digit display port*sbit led_w1=P11;sbit led_w2=P10;sbit led_w3=P13;sbit led_w4=P12;/*define led port *sbit R1=P24; /east and west red ledsbit Y1=P23; /east and west yellow ledsbit G1=P22; /east and west green ledsbit R2=P25; /south and north red ledsbit Y2=P26; /south and north yellow ledsbit G2=P27; /south and north green led/*define key*sbit k0=P30; /emergencysbit k1=P31; /east and west passsbit k2=P32; /south and north passsbit k3=P33; /start and subtract 1sbit k4=P34; /pause and add 1sbit k5=P35; /set time/*define variable*bit flag,flag_t;uchar dx_time,nb_time;uchar cnt,pass_time,cnt1,y_time;uchar k0num,k1num,k2num,k3num,k4num,k5num;/*define key*void delay(uint i)uint x,y;for(x=i;x0;x-)for(y=110;y0;y-); void timer0_init()TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;void led_display(uchar dx,nb)uchar dx1,dx2,nb1,nb2;dx2=dx/10;dx1=dx%10;nb2=nb/10;nb1=nb%10;if(dx99)led_w1=1;led_w2=1;elseled_w1=0;P0=tabledx1;delay(5);led_w1=1;if(dx0) led_w2=1;elseled_w2=0;P0=tabledx2;delay(5);led_w2=1;if(nb99)led_w3=1;led_w4=1;elseled_w3=0;P0=tablenb1;delay(5);led_w3=3;if(nb0) led_w4=1;elseled_w4=0;P0=tablenb2;delay(5);led_w4=4;/*light work*void circle_led()if(!flag)if(pass_time5)led_display(pass_time-5,pass_time);R1=1;Y1=1;G1=0;/east and west passR2=0;Y2=1;G2=1;/south and north stopif(pass_time0)if(cnt=10) led_display(pass_time,pass_time);else led_display(100,pass_time);R1=1;G1=1; /east and west yellow led flashif(cnt=10)Y1=0;else Y1=1;R2=0;Y2=1;G2=1;if(pass_time=0)pass_time=nb_time;flag=1;elseif(pass_time5)led_display(pass_time,pass_time-5);R1=0;Y1=1;G1=1;/east and west stopR2=1;Y2=1;G2=0;/south and north passif(pass_time0)if(cnt=10) led_display(pass_time,pass_time);else led_display(pass_time,100);R1=0;Y1=1;G1=1;R2=1;G2=1; /south and north yellow led flashif(cnt=10)Y2=0;else Y2=1;if(pass_time=0)pass_time=dx_time;flag=0;void emergency() /east and west,south and north stopled_display(0,0);R1=0;Y1=1;G1=1;R2=0;Y2=1;G2=1;void dx_pass() /east and west pass,south and north stopled_display(100,100);if(y_time0)TR1=1;R1=0;Y1=1;G1=1;R2=1;G2=1; /south and north yellow led flashif(cnt1=10)Y2=0;else Y2=1;if(y_time=0)TR1=0;R1=1;Y1=1;G1=0;R2=0;Y2=1;G2=1;void nb_pass() /south and north pass,east and west stopled_display(100,100);if(y_time0)TR1=1;R1=1;G1=1;if(cnt1=10)Y1=0;/east and west yellow led flashelse Y1=1;R2=0;Y2=1;G2=1;if(y_time=0)TR1=0;R1=0;Y1=1;G1=1;R2=1;Y2=1;G2=0;/*keyboard scan*void keyscan() if(!k5num) if(k0=0) /*emergency*delay(10);if(k0=0)while(!k0);TR0=0;k0num=1; if(!k1num&!k0num)if(k1=0)delay(10);if(k1=0)while(!k1);k1num=1;k2num=0;y_time=5; /單方向通行時(shí),黃燈閃爍時(shí)間TR0=0;TR1=1;if(!k2num&!k0num)if(k2=0)delay(10);if(k2=0)while(!k2);k1num=0;k2num=1;y_time=5;/單方向通行時(shí),黃燈閃爍時(shí)間TR0=0;TR1=1;if(k3=0)delay(10);if(k3=0)while(!k3);if(k1num|k2num)pass_time=dx_time; /由東西或南北通行返回時(shí),重新開(kāi)始執(zhí)行。k0num=0;k1num=0;k2num=0;k4num=0;k5num=0;TR0=1;TR1=0;flag_t=0;if(!k4&!k0num)/pausedelay(10);if(k4=0)while(!k4);TR0=0;k4num=1; if(k4num=1) /暫停鍵按下時(shí),才可以調(diào)整兩個(gè)方向通行時(shí)間if(k5=0)delay(10);if(k5=0)k5num+;while(!k5);switch(k5num)case 1:TR0=1;flag_t=1; /調(diào)整時(shí)間時(shí),pass_time值不變。k5num=1;break;case 2:k5num=2;break;case 3:TR0=0;k5num=0;pass_time=dx_time; /重新賦值break;if(k5num!=0)if(k3=0)delay(10);if(k3=0)while(!k3);switch(k5num)case 1:dx_time-;if(dx_time10)dx_time=99;break;case 2:nb_time-;if(nb_time=100)dx_time=10;break;case 2:nb_time+;if(nb_time=100)nb_time=10;break;void main()timer0_init();dx_time=45;nb_time=30;pass_time=dx_time;while(1)keyscan();if(k0num)emergency();elseswitch(k4num)case 0:if(!k1num&!k2num)circle_led();elseif(k1num) dx_pass();if(k2num) nb_pass();break;case 1: switch(k5num)case 0:if(!k1num&!k2num)circle_led();elseif(k1num) dx_pass();if(k2num) nb_pass();break;case 1:R1=1;Y1=1;G1=1; /調(diào)整時(shí)間時(shí),關(guān)閉所有燈R2=1;Y2=1;G2=1;if(cnt=10)led_display(100,nb_time);elseled_display(dx_time,nb_time);break;case 2:R1=1;Y1=1;G1=1;/調(diào)整時(shí)間時(shí),關(guān)閉所有燈R2=1;Y2=1;G2=1;if(cnt=10)led_display(dx_time,100);elseled_display(dx_time,nb_time);break;break;void timer0() interrupt 1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 油氣開(kāi)采智能化風(fēng)險(xiǎn)評(píng)估與管理
- 嬰兒腦癱早期診斷技術(shù)
- 英語(yǔ)四級(jí)高頻詞匯表
- 文化產(chǎn)業(yè)園區(qū)場(chǎng)地?zé)o償使用與文創(chuàng)產(chǎn)業(yè)發(fā)展合同
- 出差合同中環(huán)保責(zé)任及措施協(xié)議
- 倉(cāng)儲(chǔ)物流倉(cāng)儲(chǔ)配送信息化合同范本
- 餐飲店加盟管理與培訓(xùn)合作協(xié)議
- 柴油儲(chǔ)存設(shè)施租賃與運(yùn)營(yíng)管理合同
- 民用機(jī)場(chǎng)租賃合同中英文本詳細(xì)約定
- 餐飲連鎖品牌分店租賃經(jīng)營(yíng)合同
- C語(yǔ)言開(kāi)發(fā)基礎(chǔ)教程(Dev-C++)(第2版)PPT完整全套教學(xué)課件
- 寧波大學(xué)崗位設(shè)置管理實(shí)施辦法匯編-征求意見(jiàn)稿
- 處方管理辦法培訓(xùn)演示
- 外研版(2019)選擇性必修第三冊(cè) Unit 1-6 課文知識(shí)點(diǎn)語(yǔ)法填空(含答案)
- 施耐德ATS48軟啟動(dòng)器使用手冊(cè)
- 興隆百貨集團(tuán)企業(yè)文化
- 人防領(lǐng)域?qū)m?xiàng)審計(jì)發(fā)現(xiàn)的問(wèn)題及建議
- 殯葬技能人才隊(duì)伍職業(yè)化建設(shè)實(shí)施狀況與發(fā)展規(guī)劃
- GB/T 9444-2019鑄鋼鑄鐵件磁粉檢測(cè)
- GB/T 24015-2003環(huán)境管理現(xiàn)場(chǎng)和組織的環(huán)境評(píng)價(jià)(EASO)
- GB/T 20786-2015橡膠履帶
評(píng)論
0/150
提交評(píng)論