交通燈控制系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
交通燈控制系統(tǒng)設(shè)計(jì)報(bào)告_第2頁(yè)
交通燈控制系統(tǒng)設(shè)計(jì)報(bào)告_第3頁(yè)
交通燈控制系統(tǒng)設(shè)計(jì)報(bào)告_第4頁(yè)
交通燈控制系統(tǒng)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)一、設(shè)計(jì)目的學(xué)習(xí)LED數(shù)碼管的原理及編程方法。學(xué)習(xí)鍵盤(pán)的原理及編程方法。掌握51單片機(jī)定時(shí)器與中斷的使用。掌握交通信號(hào)燈控制系統(tǒng)的原理和實(shí)現(xiàn)方法。二、設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)交通信號(hào)燈控制系統(tǒng),要求:初始狀態(tài)為兩個(gè)方向的紅燈全亮,時(shí)間6秒。主干道綠燈亮,支干道紅燈亮,主干道通車(chē),時(shí)間為20秒。主干道黃燈閃爍,支干道紅燈亮,時(shí)間為6秒。主干道紅燈亮,支干道綠燈亮,支干道通車(chē),時(shí)間為15秒。主干道紅燈亮,支干道黃燈閃爍,時(shí)間為6秒。循環(huán)顯示。三、基本原理在車(chē)輛通行繁忙的十字交叉路口設(shè)置的交通燈控制系統(tǒng),其特點(diǎn)是:道路較窄而車(chē)流量較大,主干道,支干道的車(chē)輛通行時(shí)間不等,,同時(shí)設(shè)有道路應(yīng)急控制。具體的情況是:在正常的情況下,東西支干道通行時(shí)間為20秒,南北主干道通行時(shí)間為15秒,每個(gè)方向在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮6秒鐘,才能變換運(yùn)行車(chē)道。并且能夠在人工監(jiān)控狀態(tài)下,如果一道有車(chē)而另一道無(wú)車(chē),交通燈控制系統(tǒng)能立即讓有車(chē)道放行。而且有緊急車(chē)輛要求通過(guò)時(shí),系統(tǒng)要能禁止普通車(chē)輛通行。國(guó)內(nèi)的交通燈一般設(shè)在十字路門(mén),在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來(lái)控制行車(chē)。對(duì)于一般情況下的安全行車(chē),車(chē)輛分流尚能發(fā)揮作用,但根據(jù)實(shí)際行車(chē)過(guò)程中出現(xiàn)的情況,還存在以下缺點(diǎn):1.兩車(chē)道的車(chē)輛輪流放行時(shí)間相同且固定,在十字路口,經(jīng)常一個(gè)車(chē)道為主干道,車(chē)輛較多,放行時(shí)間應(yīng)該長(zhǎng)些;另一車(chē)道為副干道,車(chē)輛較少,放行時(shí)間應(yīng)該短些。2.沒(méi)有考慮緊急車(chē)通過(guò)時(shí),兩車(chē)道應(yīng)采取的措施,臂如,消防車(chē)執(zhí)行緊急任務(wù)通過(guò)時(shí),兩車(chē)道的車(chē)都應(yīng)停止,讓緊急車(chē)通過(guò)?;趥鹘y(tǒng)交通燈控制系統(tǒng)設(shè)計(jì)過(guò)于死板,紅綠燈交替是間過(guò)于程式化的缺點(diǎn),智能交通燈控制系統(tǒng)的設(shè)計(jì)就更顯示出了它的研究意義,它能根據(jù)道路交通擁護(hù),交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機(jī)控制技術(shù).提出了軟件和硬件設(shè)計(jì)方案,能夠?qū)崿F(xiàn)道路的最大通行效率。1.芯片的選擇與簡(jiǎn)單介紹主控芯片采用AT89C52單片機(jī)。AT89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性1、兼容MCS51指令系統(tǒng)2、8k可反復(fù)擦寫(xiě)(大于1000次)FlashROM;3、32個(gè)雙向I/O口;4、256x8bit內(nèi)部RAM;5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷;6、時(shí)鐘頻率0-24MHz;7、2個(gè)串行中斷,可編程UART串行通道;8、2個(gè)外部中斷源,共8個(gè)中斷源;9、2個(gè)讀寫(xiě)中斷口線(xiàn),3級(jí)加密位;10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。引腳功能:AT89C52為8位通用微處理器,準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd(9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線(xiàn)控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號(hào)功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。2.交通燈控制系統(tǒng)設(shè)計(jì)原理方框圖交通燈時(shí)間顯示部分AT89C交通燈時(shí)間顯示部分AT89C52電源時(shí)鐘電路復(fù)位電路交通燈時(shí)鐘電路復(fù)位電路交通燈按鍵控制電路工作原理 由軟件設(shè)置交通燈的初始時(shí)間,南北方向通行20秒,東西方向通行15秒,數(shù)碼管采用動(dòng)態(tài)顯示,P0口送字形碼,P2口送字位選通信號(hào),通過(guò)單片機(jī)的P1口控制各種信號(hào)燈的燃亮與熄滅。采用中斷方式實(shí)現(xiàn)按鍵的功能。整體系統(tǒng)分析 1.總體流程圖(實(shí)現(xiàn)各種狀態(tài)間的轉(zhuǎn)換):東西綠燈南北紅燈東西綠燈南北紅燈東西黃燈閃南北紅燈亮東西紅燈南北綠燈東西紅燈亮南北黃燈閃2.相關(guān)參數(shù)計(jì)算時(shí)間顯示每一秒減一,定時(shí)50ms,每20次減一T0的計(jì)數(shù)初值:M=65536-50000=15536=3CB0H3.程序流程圖(圖-(圖-6)初始狀態(tài),東南西北都為紅燈,時(shí)間6秒開(kāi)始初始狀態(tài),東南西北都為紅燈,時(shí)間6秒開(kāi)始狀態(tài)0,狀態(tài)0時(shí)間顯示顯示時(shí)間是否為0Y狀態(tài)0,狀態(tài)0時(shí)間顯示顯示時(shí)間是否為0N顯示時(shí)間減1顯示時(shí)間減1顯示時(shí)間減一顯示時(shí)間減一顯示時(shí)間是否為0顯示時(shí)間是否為0狀態(tài)2,狀態(tài)2時(shí)間顯示N狀態(tài)2,狀態(tài)2時(shí)間顯示顯示時(shí)間是否為0YY顯示時(shí)間是否為0狀態(tài)1,狀態(tài)1時(shí)間顯示狀態(tài)1,狀態(tài)1時(shí)間顯示顯示時(shí)間減1N顯示時(shí)間減1顯示時(shí)間減一顯示時(shí)間減一顯示時(shí)間是否為0顯示時(shí)間是否為0狀態(tài)2,狀態(tài)2時(shí)間顯示N狀態(tài)2,狀態(tài)2時(shí)間顯示Y4.仿真硬件連接電路圖:5.仿真結(jié)果初始狀態(tài):東南西北都為紅燈,時(shí)間6秒狀態(tài)0:南北方向綠燈亮,東西方向紅燈亮狀態(tài)1:南北方向黃燈閃爍,東西方向紅燈亮狀態(tài)2:南北方向紅燈亮,東西方向綠燈亮狀態(tài)3:南北方向黃燈亮,東西方向黃燈閃爍緊急情況:K3按下,東南西北四個(gè)方向都為紅燈6.仿真結(jié)果分析仿真實(shí)驗(yàn)實(shí)現(xiàn)南北方向車(chē)道和東西方向車(chē)道兩條交叉道路的車(chē)輛交替運(yùn)行,南北方向(主干道)每次通行時(shí)間設(shè)為20秒、東西方向通行時(shí)間設(shè)為15秒,時(shí)間可以在程序中修改。同時(shí)能夠?qū)崿F(xiàn)紅燈、黃燈、綠燈狀態(tài)轉(zhuǎn)換,紅綠燈轉(zhuǎn)換時(shí)間為6秒,轉(zhuǎn)黃期間黃燈亮??梢詼?zhǔn)確顯示每個(gè)狀態(tài)所剩余的時(shí)間,按下禁行普通車(chē)輛鍵K3,東西南北方向都亮紅燈;按下南北放行鍵K0,南北綠燈亮,東西紅燈亮;按下東西放行鍵K1,東西綠燈亮,南北紅燈亮;任何狀態(tài)下,按復(fù)位電路中的復(fù)位鍵,此系統(tǒng)都將回到初始狀態(tài);按當(dāng)緊急狀況出現(xiàn)時(shí),按下緊急開(kāi)關(guān),可實(shí)現(xiàn)主干道和支干道全部禁止通行,允許緊急車(chē)輛安全通行;按下時(shí)間設(shè)置鍵K4一次,實(shí)現(xiàn)通行時(shí)間加,按K0南北通行時(shí)間加,按K1東西通行時(shí)間加,按返回鍵K2,以新設(shè)置的時(shí)間進(jìn)行運(yùn)行;按下時(shí)間設(shè)置鍵K4二次,實(shí)現(xiàn)通行時(shí)間減,按K0南北通行時(shí)間減,按K1東西通行時(shí)間減,按返回鍵K2,以新設(shè)置的時(shí)間進(jìn)行運(yùn)行;按下時(shí)間設(shè)置鍵K4三次,回復(fù)初始通行時(shí)間;實(shí)現(xiàn)了課程設(shè)計(jì)的要求。四.設(shè)計(jì)心得在這次課程設(shè)計(jì)中,我們首先對(duì)所選課題進(jìn)行相關(guān)資料的查詢(xún),其次進(jìn)行電路設(shè)計(jì)以及proteus仿真,在編程實(shí)現(xiàn)程序控制,在proteus中調(diào)試成功以后,購(gòu)買(mǎi)器材完成電路連接。其中,最重要的是程序的編寫(xiě),在了解單片機(jī)芯片的構(gòu)造及性能的基礎(chǔ)上,利用C語(yǔ)言進(jìn)行編程,其中最主要的是利用了循環(huán)、條件和函數(shù)調(diào)用。感覺(jué)到C語(yǔ)言函數(shù)功能的強(qiáng)大和簡(jiǎn)便,并且認(rèn)識(shí)到C語(yǔ)言在學(xué)習(xí)和工作中的重要性。在proteus仿真時(shí),熟悉了仿真環(huán)境,利用其仿真工具連接交通燈電路,下載程序到單片機(jī)芯片上實(shí)現(xiàn)仿真結(jié)果,并把它用電子器件在面包板上實(shí)現(xiàn),在這過(guò)程中出現(xiàn)了一些問(wèn)題:(1)對(duì)C語(yǔ)言的編程環(huán)境和仿真環(huán)境不是太了解,把交通燈運(yùn)用C語(yǔ)言實(shí)現(xiàn)花費(fèi)了大量的精力和時(shí)間。(2)在仿真時(shí),出現(xiàn)錯(cuò)誤后,對(duì)于找出程序錯(cuò)誤并修改仿真電路加大了一定的難度。(3)在面包板上連接好電路后,并沒(méi)有預(yù)期的結(jié)果。在遇到以上問(wèn)題后,我們查找相關(guān)資料和詢(xún)問(wèn)指導(dǎo)老師,克服了困難,最后完成了這次的程設(shè)計(jì)。在這過(guò)程中,體會(huì)到了實(shí)踐的重要性,感覺(jué)理論知識(shí)是要結(jié)合實(shí)踐才能真正的掌握,團(tuán)結(jié)在整個(gè)過(guò)程中起到了關(guān)鍵的作用,加強(qiáng)了我們的實(shí)踐和團(tuán)結(jié)意識(shí),鍛煉了我們的動(dòng)手能力,掌握了一些元器件的性能和用法,雖然,我們?cè)谶@次課程設(shè)計(jì)中選的課題簡(jiǎn)單,但是,我們的收獲卻很大,希望在以后的學(xué)習(xí)和工作中,能得到更多的實(shí)踐經(jīng)驗(yàn),尤其是鍛煉我們的自我意識(shí),無(wú)論做什么事,都要自己去嘗試并努力完成,是享受其過(guò)程而不是結(jié)果。 #include<AT89X51.H> #defineucharunsignedchar/*定義字符串類(lèi)型為無(wú)符號(hào)型*/ucharcodea[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; ucharcodeb[4]={0x02,0x01,0x08,0x04};/****P2口,低有效*/ucharcodec[4]={0xDE,0xDD,0xF3,0xEB};/****P1口,低有效*/charSN=20,WE=26;charSN_G=20,WE_G=15,Y=6;uchari,k=0,count=0;intn=0;voiddelay(uchart);/*定義函數(shù)*/voidlight(); /*定義函數(shù)*/voidled(); /*定義函數(shù)*/voidchushi();sbitK0=P3^7;/*開(kāi)關(guān)K0接P3^7管腳*/sbitK1=P3^6;/*開(kāi)關(guān)K1接P3^6管腳*/sbitK2=P3^5;/*開(kāi)關(guān)K2接P3^5管腳*/sbitK3=P3^3;/*開(kāi)關(guān)K3接P3^3管腳*/sbitK4=P3^2;/*開(kāi)關(guān)K4接P3^2管腳*//*程序初始化*/voidinit(void){ /*12MHz*/TMOD=0x01;/**計(jì)數(shù)器用模式1,為16位計(jì)數(shù)器*****/ TH0=0x3c; TL0=0xb0; /*0xB0*//*計(jì)50000個(gè)數(shù),用時(shí)50ms*/IT0=1;/*外部中斷0為邊沿觸發(fā)方式*/ET0=1;/*允許T0中斷*/TR0=1;/*啟動(dòng)計(jì)數(shù)器*/EA=1;/*CPU開(kāi)放總中斷*/EX0=1;/*允許外部中斷0中斷,即允許響應(yīng)端口P3^2(K4)中斷*/EX1=1;/*允許外部中斷1中斷,即允許響應(yīng)端口P3^3(K2)中斷*/ }/*中斷0處理程序*/voidint0(void)interrupt0{EA=0;/*CPU禁止響應(yīng)一切中斷*/ P1=0xDB; P0=a[0];/*東西南北方向均紅燈亮,P0口輸出0*/ TR0=!TR0;for(;;)/*無(wú)條件循環(huán)*/ { P2=b[0],P0=a[SN_G%10];/*南北方向數(shù)碼管顯示可通行時(shí)間的個(gè)位*/delay(5);/*延時(shí)*/ P2=b[1],P0=a[SN_G/10];/*南北方向數(shù)碼管顯示可通行時(shí)間的十位*/ delay(5);/*延時(shí)*/ P2=b[2],P0=a[WE_G%10];/*東西方向數(shù)碼管顯示可通行時(shí)間的個(gè)位*/ delay(5);/*延時(shí)*/ P2=b[3],P0=a[WE_G/10];/*東西方向數(shù)碼管顯示可通行時(shí)間的十位*/ delay(5);/*延時(shí)*/ if(K4==0)/*P3^2=0*/ { delay(10); /*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K4==0) { while(!K4)/*當(dāng)松開(kāi)K4開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } n++;/*K4按下次數(shù)*/ } } if(n==1) /*K4按下1次時(shí),時(shí)間加*/ { /*設(shè)置南北方向通行時(shí)間*/ if(K0==0) /*P3^7=0*/ { delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K0==0) { while(!K0)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } SN_G++;/*南北方向綠燈時(shí)間+1*/ if(SN_G==100) SN_G=0;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向綠燈時(shí)間加到100后清零*/ } } /*設(shè)置東西方向通行時(shí)間*/ if(K1==0) /*P3^6=0*/ { delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K1==0) { while(!K1)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } WE_G++;/*東西方向綠燈時(shí)間+1*/ if(WE_G==100) WE_G=0;/*由于使用的是兩位數(shù)碼管,當(dāng)東西方向綠燈時(shí)間加到100后清零*/ } } } if(n==2) /*K4按下2次時(shí),時(shí)間減*/ { /*設(shè)置南北方向通行時(shí)間*/ if(K0==0) /*P3^7=0*/ { delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K0==0) { while(!K0)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } SN_G--;/*南北方向綠燈時(shí)間-1*/ if(SN_G<0) SN_G=0;/*當(dāng)南北方向綠燈時(shí)間減到小于零后清零*/ } } /*設(shè)置東西方向通行時(shí)間*/ if(K1==0) /*P3^6=0*/ { delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K1==0) { while(!K1)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } WE_G--;/*東西方向綠燈時(shí)間-1*/ if(WE_G<0) WE_G=0;/*當(dāng)東西方向綠燈時(shí)間減到小于零后清零*/ } } } if(n==3) /*K4按下3次時(shí),時(shí)間恢復(fù)初值*/ { n=0; SN_G=20,WE_G=15; } /*返回*/ if(K2==0)/*P3^5=0*/ { delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K2==0) { while(!K2)/*當(dāng)松開(kāi)K2關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } count=0;/*清零*/ k=0;/*南北方向通車(chē),東西方向不通車(chē)*/ SN=SN_G,WE=SN_G+Y;/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/ light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/ EA=1;/*CPU開(kāi)放總中斷*/ TR0=!TR0; break;/*跳出*/ } }}}/*中斷1處理程序*/ voidint1(void)interrupt2{ P1=0xDB,P0=a[0];/*東西南北方向均紅燈亮,P0口輸出0*/EA=0;/*CPU禁止響應(yīng)一切中斷*/ TR0=!TR0;/*計(jì)數(shù)器停止工作*/ for(;;)/*無(wú)條件循環(huán)*/ { /*數(shù)碼管掃描程序,*/ P2=b[0];/*顯示南北方向個(gè)位*/ delay(5);/*延時(shí)*/ P2=b[1];/*顯示南北方向十位*/ delay(5);/*延時(shí)*/ P2=b[2];/*顯示東西方向個(gè)位*/ delay(5);/*延時(shí)*/ P2=b[3];/*顯示東西方向十位*/ delay(5);/*延時(shí)*/ /*返回*/if(K2==0)/*P3^5=0*/{ delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/ if(K2==0) { while(!K2)/*當(dāng)松開(kāi)K2開(kāi)關(guān)時(shí),跳出空循環(huán),執(zhí)行后面的程序*/ { } EA=1;/*CPU開(kāi)放總中斷*/ TR0=!TR0;/*啟動(dòng)計(jì)數(shù)器*/ break;/*跳出*/ } } }}/*鍵盤(pán)程序*/voidkey(){ /*南北有車(chē)而東西無(wú)車(chē)*/if(K0==0) /*K0=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K0==0) {while(!K0)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/} count=0;/*清零*/k=0;/*南北方向通車(chē),東西方向不通車(chē)*/SN=SN_G,WE=SN_G+Y;/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/}}/*南北無(wú)車(chē)而東西有車(chē)*/if(K1==0) /*K1=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K1==0){while(!K1)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/} count=0;/*清零*/k=2;/*南北方向不通車(chē),東西方向通車(chē)*/SN=WE_G+Y,WE=WE_G;/*南北方向顯示時(shí)間為東西方向綠燈通行時(shí)間加黃燈閃亮?xí)r間,東西方向顯示時(shí)間為東西方向綠燈通行時(shí)間*/light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/ } }}/*定時(shí)函數(shù)*/voidtime0(void)interrupt1{ TH0=0x3c; TL0=0xb0;/*計(jì)50000個(gè)數(shù),用時(shí)50ms*/ count++; /*自增運(yùn)算*/ if(count>=20)/*當(dāng)count大于或等于20時(shí),歷時(shí)1s,執(zhí)行程序*/ { SN--;/*自減運(yùn)算*/ WE--;/*自減運(yùn)算*/ count=0;/*清零*/ if(SN==0||WE==0)/*當(dāng)SN=0或者WE=0時(shí),執(zhí)行程序*/ {k++;/*自增運(yùn)算*/if(k>3)/*當(dāng)k>3時(shí),執(zhí)行程序*/{k=0;/*清零*/ SN=SN_G,WE=SN_G+Y; }else { switch(k)/*switch 語(yǔ)句*/ { case0:SN=SN_G,WE=SN_G+Y;break;/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/ case1:SN=Y,WE=Y;break;/*東西南北方向顯示時(shí)間均為黃燈閃亮?xí)r間*/ case2:SN=WE_G+Y,WE=WE_G;break;/*南北方向顯示時(shí)間為東西方向綠燈通行時(shí)間加黃燈閃亮?xí)r間,東西方向顯示時(shí)間為東西方向綠燈通行時(shí)間*/ case3:SN=Y,WE=Y;break;/*東西南北方向顯示時(shí)間均為黃燈閃亮?xí)r間*/ } }} }}/*延時(shí)t毫秒*/voiddelay(uchart){uchari; for(t;t>0;t--) {for(i=2000;i>0;i--) {} } }/*交通燈函數(shù)*/voidlight(){ P1=c[k];/*交通燈對(duì)應(yīng)著k的值變化*/if(P1==c[1]&&count==0)/*當(dāng)南北方向亮黃燈且count=0時(shí),執(zhí)行程序*/ { P1=0xDF;/*南北方向黃燈熄滅,東西方向亮紅燈*/ }else if(P1==c[3]&&count==0)/*當(dāng)東西方向亮黃燈且count=0時(shí),執(zhí)行程序*/ { P1=0xFB;/*南北方向亮紅燈,東西方向黃燈熄滅*/ }}/*數(shù)碼管函數(shù)*/voidled(){ P2=b[0],P0=a[SN%10];/*顯示南北方向個(gè)位*/delay(5);/*延時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論