基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)論文_第1頁
基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)論文_第2頁
基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)論文_第3頁
基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)論文_第4頁
基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)論文_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的車輛闖紅燈監(jiān)控系統(tǒng)設(shè)計(jì)報(bào)告報(bào)告人:班級(jí):日期:2011/12/2一、任務(wù):設(shè)計(jì)并制作一臺(tái)車輛闖紅燈監(jiān)控機(jī)。二、要求:1.基本要求(1)用紅、黃、綠三種燈顯示三種狀態(tài)。(2)具有交通燈的所有功能,平時(shí)指揮車輛通行。(3)當(dāng)有車輛闖紅燈時(shí)發(fā)出聲、光報(bào)警(用玩具車測試)。(4)可任意設(shè)定各種燈計(jì)時(shí)時(shí)間,兩位數(shù)碼管最大99秒;平時(shí)顯示倒計(jì)時(shí)。(5)可人工干預(yù)強(qiáng)制執(zhí)行某一通道通行。2.發(fā)揮部分1、具有自動(dòng)拍照功能,當(dāng)有車輛闖紅燈時(shí)自動(dòng)拍照(圖像可在電視或其他屏幕顯示)。2、具有智能調(diào)度功能,當(dāng)偵測某一通道繁忙另一通道空閑時(shí),能自動(dòng)調(diào)整紅綠燈時(shí)間。3、當(dāng)有緊急通行車輛(如消防車、救護(hù)車、警車)要求通過時(shí),能自動(dòng)開通該通道而關(guān)閉另一通道。4、其他三、方案選取:用紅、黃、綠三種燈顯示三種狀態(tài),只需在每個(gè)路口各安一盞紅、黃、綠led;要具有交通燈的所有功能,平時(shí)能正常指揮交通,就必須能夠正常疏散每個(gè)通道的車輛,如果按先主通道后從道的疏散方式,中間轉(zhuǎn)換狀態(tài)有交叉,很多細(xì)節(jié)處理起來會(huì)麻煩,故選用按通道疏散,即四個(gè)通道按順序輪流疏散,這樣簡化許多問題;要實(shí)現(xiàn)車輛闖紅燈時(shí),有聲光報(bào)警,只要同時(shí)判斷該通道是否處于禁止通行狀態(tài),以及是否收到由于車輛闖紅燈時(shí)產(chǎn)生的信號(hào);可任意設(shè)定各種燈計(jì)時(shí)時(shí)間,即實(shí)現(xiàn)外部與單片機(jī)的溝通,故采用中斷方式進(jìn)行設(shè)定;可人工強(qiáng)制某一通道通行,也是通過外部中斷控制;對(duì)于發(fā)揮部分,首先第一功能從成本上、技術(shù)上首先否定;要實(shí)現(xiàn)智能調(diào)整紅綠燈時(shí)間,可用紅外對(duì)管對(duì)車流量進(jìn)行采集信息,交與單片機(jī)處理,但是需要太多的紅外對(duì)管,且考慮到單片機(jī)引腳的問題,該功能的實(shí)現(xiàn)給予放棄;當(dāng)有緊急車輛通過時(shí),可以產(chǎn)生一個(gè)信號(hào),通過外部中斷進(jìn)行控制,需要紅外對(duì)管、單片機(jī)引腳不多,可實(shí)現(xiàn);其他功能,可實(shí)現(xiàn)通道通行狀態(tài)轉(zhuǎn)換時(shí),有聲音提示,當(dāng)外部有人工強(qiáng)制某一通道通行或者緊急車輛要求通過時(shí),以不同的頻率聲光提示等。綜上,從設(shè)計(jì)成本與實(shí)用性綜合考慮,所設(shè)計(jì)的系統(tǒng)要實(shí)現(xiàn)基本要求中的所有功能,并實(shí)現(xiàn)發(fā)揮部分的第三、第四功能(由紅燈轉(zhuǎn)換成綠燈時(shí),聲音提示;人工干預(yù)強(qiáng)制執(zhí)行某一通道或緊急車輛要求通過時(shí)時(shí),各燈分別以不同的頻率閃爍及聲音提示;)。四、理論分析與計(jì)算:首先,利用單片機(jī)的P0口驅(qū)動(dòng)四個(gè)路口共8個(gè)數(shù)碼管,采用動(dòng)態(tài)掃描方式進(jìn)行顯示,各數(shù)碼管a~g端并聯(lián),公共端作片選端。本設(shè)計(jì)采用共陰數(shù)碼管。由于需要限流,故在片選端串接一個(gè)小電阻,通過該電阻的電流是各段led電流的總和,故電阻不能過大,否則分到各段的電流很小,數(shù)碼管灰度不夠,該電阻一般選取10Ohm。又因?yàn)镻0口內(nèi)部無上拉電阻,故需要在外部接上拉電阻,選擇1K的排阻作上拉電阻。然后利用單片機(jī)的P1的0~2口經(jīng)過74HC138譯碼器譯碼后連接數(shù)碼管的片選端,即可實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)掃描。單片機(jī)的P2口用于控制各通道的led。總共需要控制4x3=12個(gè)led,故可通過74LS139譯碼后連接led,一塊139芯片有兩片2—4譯碼器,兩塊139芯片共8個(gè)輸入端于單片機(jī)相連,共16個(gè)輸出端與12個(gè)led相連,其他四個(gè)輸出端與各通道的蜂鳴器相連。這便實(shí)現(xiàn)對(duì)led狀態(tài)的控制以及通道轉(zhuǎn)換時(shí)的聲音提示。74LS139輸出是低電平有效,故led采用共陽的接法,同時(shí)需要限流,可像數(shù)碼管一樣在公共端串接一個(gè)10Ohm的電阻即可。P1口的3~5腳,通過74ls148編碼器后于8個(gè)開關(guān)相連,分別表示八個(gè)數(shù)碼管,開關(guān)按下,輸入譯碼管為低電平,斷開則為高電平。P1的6腳接一個(gè)開關(guān),表示當(dāng)修改數(shù)值時(shí)是加還是減,斷開時(shí)為高,閉合為低。外部中斷1腳接按鍵開關(guān),摁下時(shí)為低電平。該中斷源采用下降沿中斷方式,當(dāng)按鍵摁下,單片機(jī)判斷8個(gè)開關(guān)經(jīng)編碼后的信息,同時(shí)判斷加/減狀態(tài),對(duì)某一數(shù)碼管的計(jì)時(shí)時(shí)間進(jìn)行修改。當(dāng)某一數(shù)碼管被選中,相應(yīng)的指示燈亮起,故與開關(guān)連接的上拉電阻選用510Ohm。這便實(shí)現(xiàn)外部可任意設(shè)定各燈計(jì)時(shí)時(shí)間的修改功能。單片機(jī)的10、11、17腳經(jīng)過74LS148編碼器與各中斷源相連,這里所指的中斷源是實(shí)現(xiàn)人工強(qiáng)制通行(一下簡稱人工)的4個(gè)中斷源和緊急(一下簡稱緊急)車輛要求通行的4個(gè)中斷源,它們需低電平有效。人工中斷有開關(guān)控制,閉合時(shí)為低電平,故采用上拉電阻,選取10k電阻。緊急中斷由紅外接收管控制,當(dāng)其接收到緊急車輛發(fā)來的有效信號(hào),輸出低電平。編碼器的EO端接P1的7腳,同時(shí)各中斷源通過與門相與后連接外部中斷0引腳,該中斷設(shè)定為下降沿中斷。另在各個(gè)路口設(shè)設(shè)置紅外接收管,輸出通過與門相與后與單片機(jī)的16腳相連。15腳與74HC138的6腳輸出使能端相連。當(dāng)中斷源產(chǎn)生中斷信號(hào)時(shí),單片機(jī)使74HC138輸出無效,數(shù)碼管熄滅,同時(shí)單片機(jī)收到編碼后的信息,判斷是人工中斷還是緊急中斷,若是人工中斷,則判斷P1.7腳的電平,若為高電平則單片機(jī)輸出相應(yīng)的狀態(tài),直到P1.7腳為低電平,此時(shí)表示人工中斷開關(guān)已斷開,結(jié)束中斷(無編碼時(shí),EO為低電平,否則為高電平)。若為緊急中斷,則輸出相應(yīng)的狀態(tài)信息,直16腳為低電平,此時(shí)接收管收到有效信號(hào),表明緊急車輛已通過,結(jié)束中斷。當(dāng)某一通道紅燈亮起時(shí),表明該通道禁止通行,此時(shí)該led陰極為低電平。在各路口放紅外接收管,當(dāng)有車輛闖紅燈時(shí),使接收管收到有效信號(hào),輸出低電平,與該通道的紅燈led陰極引腳信號(hào)相或后作為報(bào)警電路的觸發(fā)源。報(bào)警電路主要是利用555產(chǎn)生單穩(wěn)態(tài)的電路。當(dāng)觸發(fā)源觸發(fā)555時(shí),輸出一個(gè)單穩(wěn)態(tài),使報(bào)警led和蜂鳴器持續(xù)響起5秒左右。該電路中的R=470k,C=10uF,led限流電阻取200Ohm。由于有四個(gè)通道,每個(gè)通道有車輛闖紅燈都要報(bào)警,故信號(hào)通過或門后要接與門,再輸入到555的觸發(fā)端。由于通行的通道紅燈熄滅,其陰極為高電平,相或后還為高電平,故該通道即使有車輛使接收管產(chǎn)生低電平,也不會(huì)報(bào)警。單片機(jī)的復(fù)位采用上電復(fù)位和手動(dòng)復(fù)位相結(jié)合的方式單片機(jī)的時(shí)鐘頻率選擇12M,加兩個(gè)30pF的微調(diào)電容。其他功能的實(shí)現(xiàn)由程序完成。五、電路與程序設(shè)計(jì):1、電路原理圖如下:2、單片機(jī)程序及注釋如下#include<reg51.h>#include<absacc.h>unsignedcharcodedisp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchara1=1;b1=1;c1=1;d1=1;//預(yù)置倒計(jì)時(shí)時(shí)間unsignedchara2=5;b2=5;c2=5;d2=5;unsignedcharx,y;unsignedintj=0;unsignedchartest2;unsignedchartest1;unsignedcharsave;unsignedcharflag;sbitP1_2=P1^2;sbitP1_1=P1^1;sbitP1_0=P1^0;sbitP1_6=P1^6;sbitP3_5=P3^5;sbitP3_6=P3^6;sbitP1_7=P1^7;sbitp3_3=P3^3;voidDelay(void) //數(shù)碼管顯示延時(shí){ unsignedinti;for(i=0;i<2000;i++);}voidDelay10ms(void) //10ms延時(shí)程序 {unsignedchari,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)for(k=248;k>0;k--);}voidDelay200ms(void)//200ms延時(shí)程序{unsignedchari,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--);}voidDelay500ms(void)//500ms延時(shí)程序{ unsignedchari,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--);}voidLoad_a(void) //A通道通行子程序{flag=1; //通道轉(zhuǎn)換標(biāo)志P2=0xc0;Delay200ms();//聲音提示 x=a1;y=a2;P2=0x40; //A通道綠燈,其他紅燈 while(1) { P0=0x00; //關(guān)斷段信號(hào) P1_2=0;P1_1=0;P1_0=0; //選擇A通道第一個(gè)數(shù)碼管 P0=disp[x]; //送顯示數(shù)字 Delay(); //延時(shí)顯示 P0=0x00; P1_2=0;P1_1=0;P1_0=1; //選擇A通道第二個(gè)數(shù)碼管 P0=disp[y]; Delay(); if(x==0&&y==2)P2=0x80; //A通道黃燈,其他紅燈 if(flag==0)break; //通道轉(zhuǎn)換 } }voidLoad_d(void) //D通道通行子程序{ flag=1; P2=0x03;Delay200ms();//聲音提示 x=d1;y=d2;P2=0x01; //D通道綠燈,其他紅燈 while(1) { P0=0x00; P1_2=1;P1_1=1;P1_0=0; P0=disp[x]; Delay(); P0=0x00; P1_2=1;P1_1=1;P1_0=1; P0=disp[y]; Delay(); if(x==0&&y==2)P2=0x02; //D通道黃燈,其他紅燈 if(flag==0)break;//通道轉(zhuǎn)換 }}voidLoad_c(void) //C通道通行子程序{ flag=1; P2=0x0c;Delay200ms(); x=c1;y=c2;P2=0x04; //C通道綠燈,其他紅燈 while(1) { P0=0x00; P1_2=1;P1_1=0;P1_0=0; P0=disp[x]; Delay(); P0=0x00; P1_2=1;P1_1=0;P1_0=1; P0=disp[y]; Delay(); if(x==0&&y==2)P2=0x08; //C通道黃燈,其他紅燈 if(flag==0)break; }}voidLoad_b(void) //B通道通行子程序{ flag=1; P2=0x30;Delay500ms(); x=b1;y=b2;P2=0x10; //B通道綠燈,其他紅燈 while(1) { P0=0x00; P1_2=0;P1_1=1;P1_0=0; P0=disp[x]; Delay(); P0=0x00; P1_2=0;P1_1=1;P1_0=1; P0=disp[y]; Delay(); if(x==0&&y==2)P2=0x20; //B通道黃燈,其他紅燈 if(flag==0)break; }}voiddecsec()interrupt1 //定時(shí)0中斷,使數(shù)碼管顯示的數(shù)減一{ j++; if(j==4000) { j=0; if(y!=0)y--; else{if(x!=0){x--;y=9;}elseflag=0;} if(x==0&&y<=2)Delay200ms();//倒計(jì)時(shí)到2時(shí),使數(shù)碼管閃爍顯示 }}voidchange()interrupt2 //外部中斷1,改變各通道綠燈時(shí)間{ Delay10ms();//消抖 if(p3_3==0)//判斷按鍵按下還是松開 {test1=P1&0x38;//獲取編碼信息 switch(test1) { case0x00:{if(P1_6){if(a1<9)a1++;elsea1=0;} else{if(a1!=0)a1--;elsea1=9;} }break; case0x20:{if(P1_6){if(a2<9)a2++;elsea2=0;} else{if(a2!=0)a2--;elsea2=9;} }break; case0x10:{if(P1_6){if(b1<9)b1++;elseb1=0;} else{if(b1!=0)b1--;elseb1=9;} }break; case0x30:{if(P1_6){if(b2<9)b2++;elseb2=0;} else{if(b2!=0)b2--;elseb2=9;} }break; case0x08:{if(P1_6){if(c1<9)c1++;elsec1=0;} else{if(c1!=0)c1--;elsec1=9;} }break; case0x28:{if(P1_6){if(c2<9)c2++;elsec2=0;} else{if(c2!=0)c2--;elsec2=9;} }break; case0x18:{if(P1_6){if(d1<9)d1++;elsed1=0;} else{if(d1!=0)d1--;elsed1=9;} }break; case0x38:{if(P1_6){if(d2<9)d2++;elsed2=0;} else{if(d2!=0)d2--;elsed2=9;} }break; default:break; } }}voidstop()interrupt0//外部中斷0,人為強(qiáng)制某一通道通行,或?yàn)閼?yīng)急車輛開辟綠色通道{ unsignedcharx; x=0; TR0=0; //停止倒計(jì)時(shí) test2=P3&0x83;//獲取編碼信息 save=P2; //保存中斷前紅綠燈狀態(tài) P3_5=0; //使數(shù)碼管熄滅 switch(test2) { case0x00:{while(P3_6&&x<75){P2=0x40;Delay200ms();P2=0xff;Delay200ms();x++;}}break; case0x80:{while(P3_6&&x<75){P2=0x10;Delay200ms();P2=0xff;Delay200ms();x++;}}break; case0x02:{while(P3_6&&x<75){P2=0x04;Delay200ms();P2=0xff;Delay200ms();x++;}}break; case0x82:{while(P3_6&&x<75){P2=0x01;Delay200ms();P2=0xff;Delay200ms();x++;}}break; case0x01:{while(P1_7){P2=0x40;Delay500ms();P2=0xff;Delay500ms();}} break; case0x81:{while(P1_7){P2=0x10;Delay500ms();P2=0xff;Delay500ms();}} break; case0x03:{while(P1_7){P2=0x04;Delay500ms();P2=0xff;Delay500ms();}} break; case0x83:{while(P1_7){P2=0x01;Delay500ms();P2=0xff;Delay500ms();}} break; default:break; } P2=save; //恢復(fù)紅綠燈狀態(tài) P3_5=1; //使數(shù)碼管正常顯示 TR0=1; //正常倒計(jì)時(shí)}voidmain()//主程序{ TMOD=0x02; //定時(shí)0端口功能為定時(shí),在工作方式二 TR0=1;TR1=0; //啟動(dòng)定時(shí)0,關(guān)斷定時(shí)1 EA=1;ET0=1;EX1=1;EX0=1; //開總中斷及T0、INT0、INT1中斷 ES=0;ET1=0; //關(guān)中斷 IT0=1;IT1=1; //設(shè)置外部中斷邊沿觸發(fā) PX0=1;PX1=0; //設(shè)置中斷優(yōu)先級(jí) TH0=0x06;TL0=0x06; //T0計(jì)數(shù)初始值6us while(1) { Load_a(); Load_b(); Load_c(); Load_d(); }}六、測試方案與測試結(jié)果:1、仿真測試:首先用keil軟件將程序輸入并編譯生成下載文件,然后用proteus連接電路圖,由于proteus中無紅外對(duì)管元件,故采用開關(guān)模擬紅外對(duì)管。連接好電路圖后,將格式為.HEX的下載文件下到單片機(jī)中,單擊運(yùn)行,結(jié)果運(yùn)行正常,各預(yù)期功能均實(shí)現(xiàn),只是仿真速度由于CPU過載,與真實(shí)時(shí)間不一樣。2、硬件測試:在protel99中畫好原理圖后,畫出PCB版圖,再經(jīng)過一系列pc板制作工藝,最終把硬件電路焊接好。把程序下載到單片機(jī)中,各芯片安上,檢驗(yàn)無誤后,接通電源,系統(tǒng)開始正常運(yùn)行。然后逐一測試各項(xiàng)功能:先讓各通道輪流疏散一次,結(jié)果倒計(jì)時(shí)正常,各led狀態(tài)轉(zhuǎn)換正常,狀態(tài)轉(zhuǎn)換的時(shí)候有聲音提示,系統(tǒng)正常指揮交通;模擬闖紅燈測試:當(dāng)A通道亮綠燈時(shí),給A通道的紅外接收管發(fā)射

溫馨提示

  • 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)論