十字路口智能交通燈的控制方案_第1頁
十字路口智能交通燈的控制方案_第2頁
十字路口智能交通燈的控制方案_第3頁
十字路口智能交通燈的控制方案_第4頁
十字路口智能交通燈的控制方案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本設(shè)計(jì)由STC89C52單片機(jī)電路+LED燈指示電路+紅外避障傳感器電路+LCD1602顯示+電源電路組成。1、道路為東西南北走向的十字路口,每條馬路各有2套紅綠燈,即紅、黃、綠。2、系統(tǒng)正常模式下,均為紅燈亮10秒,然后黃燈亮3秒,然后綠燈亮10秒,并依次循環(huán)。(同一時(shí)刻,每套紅綠燈系統(tǒng)只有1個(gè)燈亮)3、在南北方向的馬路增加1路紅外避障檢測(cè),如果南北綠燈情況下,檢測(cè)到車輛過多以5個(gè)位例,達(dá)到5個(gè),綠燈延時(shí)10s,對(duì)應(yīng)東西紅燈相應(yīng)延時(shí)10s。保證南北綠燈時(shí)間延長(zhǎng),通車多,防止堵車。4、在東西方向的馬路增加1路紅外避障檢測(cè),如果東西綠燈情況下,檢測(cè)到車輛過多以5個(gè)位例,達(dá)到5個(gè),綠燈延時(shí)10s,對(duì)應(yīng)南北紅燈相應(yīng)延時(shí)10s。保證東西綠燈時(shí)間延長(zhǎng),通車多,防止堵車。5、每次綠燈,人數(shù)過多只能延時(shí)一次,否則影響另一方向車道行駛,延時(shí)10s后,繼續(xù)正常紅綠燈處理。6、增加1602顯示東西南北燈顯示參數(shù),以及車流量參數(shù)。程序如下:#include<reg52.h>//包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include<stdio.h>#include"1602.h"#include"delay.h"sbitew_GREEN=P1^0; //管腳定義sbitew_YELLOW=P1^1;sbitew_RED=P1^2;sbitns_GREEN1=P1^3;sbitns_YELLOW1=P1^4;sbitns_RED1=P1^5;unsignedintns_gre_Num=10;//南北綠燈時(shí)間unsignedintns_yel_Num=0;//南北黃燈時(shí)間unsignedintns_red_Num=0;//南北紅燈時(shí)間unsignedintew_gre_Num=0; //東西綠燈時(shí)間unsignedintew_yel_Num=0; //東西黃燈時(shí)間unsignedintew_red_Num=13; //東西紅燈時(shí)間unsignedcharstep=1; //運(yùn)行階段計(jì)數(shù)unsignedchardisFlag=1;//顯示標(biāo)志unsignedlongtime20ms=0;//定時(shí)時(shí)間unsignedintPluNum1=0; //脈沖量unsignedintPluNum2=0; //脈沖量bitfirstAdd_ns=0; //加時(shí)標(biāo)志bitfirstAdd_ew=0;chardis0[16]; //顯示更新暫存voidInit_Timer0(void); //喊數(shù)聲明voiddealLed(void);voidmain(void){ EX0=1; //允許外部中斷0中斷 EX1=1; //允許外部中斷0中斷 IT0=1; //外部中斷0負(fù)跳變中斷 IT1=1; //外部中斷0負(fù)跳變中斷 EA=1; //開總中斷 ew_GREEN=0; //初始化燈亮一下方便檢測(cè) ew_YELLOW=0; ew_RED=0; ns_GREEN1=0; ns_YELLOW1=0; ns_RED1=0; DelayMs(200); ew_GREEN=1; //初始化燈亮一下方便檢測(cè) ew_YELLOW=1; ew_RED=1; ns_GREEN1=1; ns_YELLOW1=1; ns_RED1=1; Init_Timer0();//定時(shí)器0初始化 LCD_Init();//初始化液晶 DelayMs(20);//延時(shí)有助于穩(wěn)定 LCD_Clear();//清屏 sprintf(dis0,"|R%02dY%02dG%02dl%02d",ns_red_Num,ns_yel_Num,ns_gre_Num,PluNum1);//打印數(shù)據(jù) LCD_Write_String(0,0,dis0); //顯示 sprintf(dis0,"-R%02dY%02dG%02dr%02d",ew_red_Num,ew_yel_Num,ew_gre_Num,PluNum2); LCD_Write_String(0,1,dis0); //顯示 step=1; //交通燈第一步南北綠燈東西紅燈數(shù)據(jù)填充 ns_gre_Num=10; ns_yel_Num=0; ns_red_Num=0; ew_gre_Num=0; ew_yel_Num=0; ew_red_Num=13; firstAdd_ns=0;firstAdd_ew=0;//加時(shí)標(biāo)志 while(1)//主循環(huán) { if(disFlag==1) { sprintf(dis0,"|R%02dY%02dG%02dl%02d",ns_red_Num,ns_yel_Num,ns_gre_Num,PluNum1);//打印數(shù)據(jù) LCD_Write_String(0,0,dis0); //顯示 sprintf(dis0,"-R%02dY%02dG%02dr%02d",ew_red_Num,ew_yel_Num,ew_gre_Num,PluNum2);//打印數(shù)據(jù) LCD_Write_String(0,1,dis0); //顯示 disFlag=0; } if(ns_gre_Num>0)//任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ns_GREEN1=0;} else { ns_GREEN1=1; PluNum1=0;//非南北紅綠燈時(shí)不計(jì)數(shù) } if(ns_yel_Num>0)//任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ns_YELLOW1=0;} else {ns_YELLOW1=1;} if(ns_red_Num>0)//任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ns_RED1=0;} else {ns_RED1=1;} if(ew_gre_Num>0)//任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ew_GREEN=0;} else {ew_GREEN=1;PluNum2=0;} if(ew_yel_Num>0) //任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ew_YELLOW=0;} else {ew_YELLOW=1;} if(ew_red_Num>0)//任何燈指示數(shù)據(jù)和指示燈匹配顯示 {ew_RED=0;} else {ew_RED=1;} }}voidISR_Key(void)interrupt0using1{ if(ns_gre_Num>0) { PluNum1++; if((PluNum1>5)&&(firstAdd_ns==0)) //南北綠燈時(shí)檢測(cè)數(shù)量超過5 { ns_gre_Num=ns_gre_Num+10; //相應(yīng)參數(shù)+10 ew_red_Num=ew_red_Num+10; firstAdd_ns=1; //一個(gè)循環(huán)只允許進(jìn)來一次 } } }voidint1()interrupt2{ if(ew_gre_Num>0) { PluNum2++; if((PluNum2>5)&&(firstAdd_ew==0)) //南北綠燈時(shí)檢測(cè)數(shù)量超過5 { ns_red_Num=ns_red_Num+10; //相應(yīng)參數(shù)+10 ew_gre_Num=ew_gre_Num+10; firstAdd_ew=1; //一個(gè)循環(huán)只允許進(jìn)來一次 } }}voidInit_Timer0(void){ TMOD|=0x01; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響 TH0=(65536-20000)/256; //重新賦值20ms TL0=(65536-20000)%256; EA=1;//總中斷打開 ET0=1;//定時(shí)器中斷打開 TR0=1;//定時(shí)器開關(guān)打開}voidTimer0_isr(void)interrupt1{ TH0=(65536-20000)/256; //重新賦值20ms TL0=(65536-20000)%256; time20ms++; if(time20ms%10==0) {disFlag=1;} if(time20ms%50==0) { if(step==1) { if(ns_gre_Num>0)//交通燈第一步南北指示燈東西指示燈時(shí)間處理 { ns_gre_Num--; ew_red_Num--; } if(ns_gre_Num==0) //交通燈第二步南北指示燈東西指示燈數(shù)據(jù)填充 { step=2; ns_gre_Num=0; ns_yel_Num=3; ns_red_Num=0; } } elseif(step==2) { if(ns_yel_Num>0)//交通燈第二步南北指示燈東西指示燈時(shí)間處理 { ns_yel_Num--; ew_red_Num--; } if(ns_yel_Num==0) //交通燈第三步南北指示燈東西指示燈數(shù)據(jù)填充 { step=3; ns_gre_Num=0; ns_yel_Num=0; ns_red_Num=13; ew_gre_Num=10; ew_yel_Num=0; ew_red_Num=0; firstAdd_ew=0; } } elseif(step==3) { if(ew_gre_Num>0) { ew_gre_Num--; ns_red_Num--; } if(ew_gre_Num==0)//交通燈第三步南北指示燈東西指示燈數(shù)據(jù)填充 { step=4; ew_gre_Num=0; ew_yel_Num=3; ew_red_Num=0; } } elseif(step==4) { if(ew_yel_Num>0) {

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論