第一篇:智能交通燈實習(xí)小結(jié)
小總結(jié)
實習(xí)期小結(jié)
一:學(xué)習(xí)小總結(jié)
在實習(xí)的五天時間里,老師給我們講了很多關(guān)于單片機的很多知識,例如:單片機基礎(chǔ)知識加強、常見電子元器件的認(rèn)識、開發(fā)環(huán)境最小系統(tǒng)搭建、單片機C語言的了解、keil軟件的使用、閃爍報警燈設(shè)計、數(shù)碼管結(jié)構(gòu)原理、移位寄存器原理及控制方法、中斷系統(tǒng)應(yīng)用、定時器設(shè)計等。又時也給我們穿插一些關(guān)于嵌入式的講座,增進我們與現(xiàn)代社會的接觸。每位老師都講的很好,我也學(xué)到了不少知識,對自己的專業(yè)前景也有了更深的了解。
二:具體內(nèi)容分析
1.最小系統(tǒng)的搭建和硬件電路的組成 1)51系列單片機
對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、晶振電路、復(fù)位電路.2)注意事項
a)電烙鐵的安全使用。
b)先要觀察通用板大小,合理布局,插件,最后焊接。c)烙鐵頭不能在實驗板和引腳接觸很長時間,會損壞元件。
3)原理圖
小總結(jié)
4)應(yīng)用此電路實現(xiàn)的一些功能:
a)流水燈
b)流水燈和蜂鳴器一起工作 c)4位數(shù)碼管依次顯示 d)數(shù)碼管計數(shù)
e)流水燈蜂鳴器數(shù)碼管一起工作
5)單片機復(fù)位
單片機復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機,按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機也一樣,當(dāng)單片機系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。
6)單片機復(fù)位電路如下圖:
2、閃爍報警燈的設(shè)計 1)閃爍報警燈組成
閃爍報警電路由電源電路、發(fā)光器件、輸出驅(qū)動、單片機控制電路等組成
2)原理分析
發(fā)光二極管正極與一個限流電阻串聯(lián),電阻另一端連接電源電壓+5v,發(fā)光二極管負(fù)極
小總結(jié)
連接單片機P0.x口,當(dāng)P0.x口為低電平時二極管導(dǎo)通發(fā)光,當(dāng)P0.x口為高電平是不發(fā)光,通過程序控制P0.x為0或1來控制發(fā)光二極管的亮滅。
3)閃爍報警燈硬件環(huán)境搭建
C122pF+5VC222pF+5VX11912MHzU1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617D1D2D3D4D5D6D7D8R1470SW1C320uF1k18R2470XTAL2R34704709RSTR4R5470+5V293031PSENALEEAAT89C52R9R6R***P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7R8470 4)蜂鳴器
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。
5)蜂鳴器在單片機上的應(yīng)用
在單片機應(yīng)用的設(shè)計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結(jié)束或是故障等等。
小總結(jié)
6)這里對單片機在蜂鳴器驅(qū)動上的設(shè)計圖
3、數(shù)碼管結(jié)構(gòu)、原理控制方法,了解蜂鳴器的使用 1)七段數(shù)碼管
七段數(shù)碼管是數(shù)碼管的一種是半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。
2)七段數(shù)碼管應(yīng)用
數(shù)碼管是一類價格便宜 使用簡單,通過對其不同的管腳輸入相對的電流,使其發(fā)亮,從而顯示出數(shù)字能夠顯示 時間、日期、溫度等所有可用數(shù)字表示的參數(shù)的器件。在電器特別是家電領(lǐng)域應(yīng)用極為廣泛,如顯示屏、空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管,其他家電也用液晶屏與熒光屏。
3)數(shù)碼管結(jié)構(gòu)
小總結(jié)
4)4連排8段數(shù)碼管
5)數(shù)字對應(yīng)數(shù)碼管顯示控制轉(zhuǎn)換字節(jié)
(共陰編碼)
顯示--HGFE,DCBA--編碼
0 -- 0011,1111--0x3F;1 -- 0000,0110--0x06;2 -- 0101,1011--0x5B;3 -- 0100,1111--0x4F;4 -- 0110,0110--0x66;5 -- 0110,1101--0x6D;6 -- 0111,1101--0x7D;7 -- 0000,0111--0x07;8 -- 0111,1111--0x7F;9 -- 0110,1111--0x6F;
6)動態(tài)顯示驅(qū)動
是將所有數(shù)碼管通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯
小總結(jié)
示。將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。
7)蜂鳴器簡介:
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。
a)有源 b)無源
從圖a、b外觀上看,兩種蜂鳴器好像一樣,但仔細(xì)看,兩者的高度略有區(qū)別,有源蜂鳴器a,高度為9mm,而無源蜂鳴器b的高度為8mm。如將兩種蜂鳴器的引腳都朝上放置時,可以看出有綠色電路板的一種是無源蜂鳴器,沒有電路板而用黑膠封閉的一種是有源蜂鳴器。
進一步判斷有源蜂鳴器和無源蜂鳴器,還可以用萬用表電阻檔Rxl檔測試:用黑表筆接蜂鳴器 “-”引腳,紅表筆在另一引腳上來回碰觸,如果觸發(fā)出咔、咔聲的且電阻只有8Ω(或16Ω)的是無源蜂鳴器;如果能發(fā)出持續(xù)聲音的,且電阻在幾百歐以上的,是有源蜂鳴器。
有源蜂鳴器直接接上額定電源(新的蜂鳴器在標(biāo)簽上都有注明)就可連續(xù)發(fā)聲;而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。
在單片機應(yīng)用的設(shè)計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結(jié)束或是故障等等。這里對單片機在蜂鳴器驅(qū)動上的應(yīng)用作一下描述。
利用I/O 軟件定時翻轉(zhuǎn)電平利用定時器定時翻轉(zhuǎn)電平
比如為2500Hz 的蜂鳴器的驅(qū)動,可以知道周期為400μs,這樣只需要驅(qū)動蜂鳴器的I/O 口每200μs 翻轉(zhuǎn)一次電平就可以產(chǎn)生一個頻率為2500Hz,占空比為1/2duty 的方波,再通過三極管放大就可以驅(qū)動這個蜂鳴器了。
小總結(jié)
4、中斷和定時應(yīng)用 1)中斷概念
CPU正 在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)行。這樣的過程就叫中斷。
2)中斷的作用
對突發(fā)事故,做出緊急處理。
根據(jù)現(xiàn)場隨時變化的各種參數(shù)、信息,做出實時監(jiān)控。
CPU與外部設(shè)備并行工作,以中斷方式相聯(lián)系,提高工作效率。解決快速CPU與慢速外設(shè)之間的矛盾。
在多項外部設(shè)備同時提出中斷請求情況下,CPU能根據(jù)輕重緩急響應(yīng)外設(shè)的中斷請求。
3)89C51中斷結(jié)構(gòu)及中斷控制
小總結(jié)
4)89C51中斷系統(tǒng)的五個中斷源為
① INT0——外部中斷0請求,低電平有效。通過 P3.2引腳輸入。
② INT1——外部中斷1請求,低電平有效。通過 P3.3引腳輸入。
③ T0 —— 定時器/計數(shù)器0溢出中斷請求。
④ T1 —— 定時器/計數(shù)器1溢出中斷請求。
⑤ TXD/RXD ——串行口中斷請求。
每個中斷源都對應(yīng)一個中斷請求標(biāo)志位,他們設(shè)置在特殊功能寄存器TCON和SCON中。當(dāng)這些中斷源請求中斷時,相應(yīng)的標(biāo)志分別由TCON和SCON中的相應(yīng)位來鎖存。
5)工作模式寄存器—TMOD(89H)
TMOD用于控制T0和T1的工作模式,其各位的定義格式如圖所示。
工作模式寄存器TMOD的位定義
其中,低4位用于T0。高4位用于T1。
6)M1,M0控制的四種工作模式
M1 M0 工作模式 功能描述 0 0 模式0 13位計數(shù)器 0 1 模式1 16位計數(shù)器 0 模式2 自動裝入8位計數(shù)器 1 模式3 定時器0:分成兩個8位計數(shù)器
定時器1:停止計數(shù)
三附錄:
小總結(jié)
流水燈
#include
for(j=0;j<5;j++)for(k=0;k<256;k++);}
main()
{
int n, D;
while(1)//發(fā)光二極管依次顯示
{
D=0X01;
P1=~D;
delay();
D=0X03;
P1=~D;
delay();
D=0X07;
P1=~D;
delay();
D=0X0F;
P1=~D;
delay();
D=0X1F;
P1=~D;
delay();
D=0X3F;
P1=~D;
delay();
D=0X7F;
P1=~D;
delay();
D=0X00;
P1=D;
delay();} }
流水燈和蜂鳴器
小總結(jié)
#include
} void senddata(unsigned char num){
} void main(){
unsigned i,s,g,b,q,first,second,third,fourth,t;while(1){
for(t=0;t<10000;t++){
g=t%10;//個位 s=(t/10)%10;//十位 b=(t/100)%10;//百位 q=t/1000;//千位 first=SZ[g];//個位數(shù)碼管 second=SZ[s];//十位數(shù)碼管 third=SZ[b];//百位數(shù)碼管 unsigned char i;for(i=0;i<8;i++){
} CLK=0;AB=num&0x01;num>>=1;CLK=1;unsigned char i,j,k;for(i=1;i>0;i--)
for(j=2;j>0;j--)for(k=222;k>0;k--);10
小總結(jié)
} 四位計數(shù)器
#include
fourth=SZ[q];//千位數(shù)碼管 for(i=0;i<100;i++)
{
} SG=0;SS=1;SB=1;SQ=1;delay();SG=1;SS=0;SB=1;SQ=1;delay();SG=1;SS=1;SB=0;SQ=1;delay();SG=1;SS=1;SB=1;SQ=0;delay();senddata(first);//個位控制位
senddata(second);//十位控制位
senddata(third);//百位控制位
senddata(fourth);//千位控制位
P1=0X00;delay();fmq=0;delay();fmq=1;delay();} } 11
小總結(jié)
sbit SS=P2^3;sbit SB=P2^4;sbit SQ=P2^5;sbit fmq=P3^1;sbit F=P2^7;unsigned char SZ[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ unsigned char i,j,k;for(i=1;i>0;i--)
for(j=2;j>0;j--)
for(k=222;k>0;k--);} void senddata(unsigned char num){ unsigned char i;for(i=0;i<8;i++){
CLK=0;
AB=num&0x01;
num>>=1;
CLK=1;} } void main(){ unsigned i,s,g,b,q,first,second,third,fourth,t;while(1){
for(t=0;t<10000;t++)
{
g=t%10;
s=(t/10)%10;
b=(t/100)%10;
q=t/1000;
first=SZ[g];
second=SZ[s];
third=SZ[b];
fourth=SZ[q];
//F=~F;
for(i=0;i<100;i++)
{ SG=0;12
小總結(jié)
}
} } }
計時器計數(shù)
#include
sbit F=P2^7;sbit led1=P1^0;unsigned char SZ[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ unsigned char i,j,k;for(i=1;i>0;i--)
for(j=2;j>0;j--)
for(k=222;k>0;k--);} void senddata(unsigned int num){ unsigned char i;for(i=0;i<8;i++){
CLK=0;
AB=num&0x01;
num>>=1;
CLK=1;} } void main(){ unsigned num,i,s,g,b,q,first,second,third,fourth,t;TMOD=0X00;TH0=(65536-50000)/256;TL0=(65536-50000)%256;//EA=1;//ET0=1;TR0=1;while(1){ if(TF0==1)
{
num++;if(num==0)
{
i++;
P1=0X00;
delay();
fmq=0;
delay();fmq=1;
小總結(jié)
delay();}
TF0=0;//定時器方式0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;} for(t=0;t<10000;t++){
g=t%10;
s=(t/10)%10;
b=(t/100)%10;
q=t/1000;
first=SZ[g];
second=SZ[s];
third=SZ[b];
fourth=SZ[q];
for(i=0;i<100;i++)
{
SG=0;
SS=1;
SB=1;
SQ=1;
senddata(first);delay();
SG=1;
SS=0;
SB=1;
SQ=1;
senddata(second);
delay();
SG=1;
SS=1;
SB=0;
SQ=1;
senddata(third);delay();
SG=1;
SS=1;
SB=1;SQ=0;
小總結(jié)
senddata(fourth);
delay();
}
P1=0X00;
delay();
fmq=0;
delay();
fmq=1;
delay();
}
}
}
閃爍報警 #include
for(j=0;j<5;j++)for(k=0;k<256;k++);} void delay1(){ int i,j,k;for(i=0;i<30;i++)
for(j=0;j<1;j++)for(k=0;k<256;k++);}
main()
{
int n;
while(1){
P1=0XE7;delay();fmq=0;delay();fmq=1;16
小總結(jié)
for(n=0;n<20;n++){ P1=0X00;delay1();fmq=0;delay1();fmq=1;delay1();P1=0XFF;delay1();} } } delay();delay();fmq=0;delay();fmq=1;delay();P1=0X00;delay();fmq=0;delay();fmq=1;delay();P1=0XFF;delay();
P1=0XA5;中斷實現(xiàn)計數(shù) #include
小總結(jié)
{ unsigned char i,j,k;for(i=1;i>0;i--)
for(j=2;j>0;j--)
for(k=222;k>0;k--);} void senddata(unsigned int num){ unsigned char i;for(i=0;i<8;i++){
CLK=0;
AB=num&0x01;
num>>=1;
CLK=1;} } void main(){ unsigned i,s,g,b,q,first,second,third,fourth,t;TMOD=0X00;TH0=(65536-50000)/256;TL0=(65536-50000)%256;//中斷請求 EA=1;ET0=1;TR0=1;while(1)//數(shù)碼管依次計數(shù) {
for(t=0;t<10000;t++)
{ g=t%10;
s=(t/10)%10;
b=(t/100)%10;
q=t/1000;
first=SZ[g];
second=SZ[s];
third=SZ[b];
fourth=SZ[q];
for(i=0;i<100;i++){ SG=0;18
小總結(jié)
SS=1;
SB=1;
SQ=1;
senddata(first);delay();
SG=1;
SS=0;
SB=1;
SQ=1;
senddata(second);
delay();
SG=1;
SS=1;
SB=0;
SQ=1;
senddata(third);delay();
SG=1;
SS=1;
SB=1;
SQ=0;
senddata(fourth);
delay();
}
P1=0X00;
delay();
fmq=0;
delay();
fmq=1;
delay();
}
} } void T0_time()interrupt 1 { //定時器
TH0=(65536-50000)/256;TL0=(65536-50000)%256;num++;
if(num==20)19
小總結(jié)
{
num=0;
} }
第二篇:基于FPGA的智能交通燈
設(shè)計題目: 基于FPGA的交通燈控制系統(tǒng)設(shè)計
專 業(yè):
學(xué)生姓名: 學(xué) 號:
起迄日期: 2014.8.22.--2014.9.22.指導(dǎo)教師: 教研室主任:
目錄
1.緒論..............................................................1 2.課題研究背景及意義................................................1 3.設(shè)計要求..........................................................1 4.設(shè)計方案..........................................................1 4.1方案比較....................................錯誤!未定義書簽。4.2 方案說明...................................錯誤!未定義書簽。5.VHDL語言介紹...................................錯誤!未定義書簽。6.系統(tǒng)仿真..........................................................3 6.1 系統(tǒng)電路框圖................................................4 6.2設(shè)計結(jié)果仿真.................................................4 7.心得體會..........................................................5 8.參考文獻..........................................................6 7.附件..............................................................6
摘要:針對現(xiàn)實中越來越嚴(yán)重的城市交通擁堵現(xiàn)象,提出了一種城市十字路口交通信號燈控制與FPGA實現(xiàn)的新方法。設(shè)計的智能交通控制系統(tǒng)利用對相向車道采用不同步的紅綠燈信號控制方法,能夠減少交通資源浪費,大幅提高十字路口的車輛通行效率。利用超高速硬件描述語言VHDL設(shè)計十字路口交通信號燈控制器,實現(xiàn)主干道和支干道的交通控制功能,并通過Quartus II完成綜合、仿真、進行管腳分配、繪出仿真波形及原理圖。
關(guān)鍵字:硬件描述語言VHDL;交通信號燈;智能控制
1.緒論
智能的交通燈指揮著人們和各種車輛的安全運行,實現(xiàn)紅、黃、綠燈的自動指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題。在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人的安全,一般在每條街道上各有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該條道禁止通行;黃燈亮該條道路上未過停車線的停止通行,已過停車線的車輛繼續(xù)通行;綠燈亮,表示該條道路允許通行。交通燈自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行。實現(xiàn)十字路口交通管理自動化。
DEA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,在電子信息,通信,自動,控制及計算機應(yīng)用等領(lǐng)域的重要性日益突出,因此本論文研究基于FPGA的交通燈設(shè)計。FPGA中有大量實現(xiàn)組合邏輯的資源,可以完成較大規(guī)模的組合邏輯電路設(shè)計,而其中相當(dāng)數(shù)量的存儲電路(觸發(fā)器)又可完成復(fù)雜的時序邏輯電路設(shè)計。通過使用各種EDA工具,用原理圖或硬件描述語言,可以很方便地將復(fù)雜的電路在FPGA中實現(xiàn)。像典型的數(shù)字系統(tǒng)分頻器,數(shù)字鐘,數(shù)字頻率計等等都可用FPGA完成。本文以QuartusII 軟件為開發(fā)平臺,通過VHDL硬件描述語言以及原理圖的輸入方式來設(shè)計交通燈。
2.課題研究背景及意義
隨著公路交通運輸?shù)陌l(fā)展,交通擁擠、道路阻塞和交通事故頻繁發(fā)生等問題越來越嚴(yán)重地困擾著世界各大城市。相對于交通運輸工具的飛速發(fā)展,我國交通配套設(shè)施建設(shè)明顯滯后,道路安全網(wǎng)絡(luò)、道路標(biāo)識、交通指揮中心仍然不足。單獨從車輛方面或道路方面考慮,均很難有效地解決交通問題。通過采用信息通信技術(shù)、電子技術(shù)以及其他科學(xué)技術(shù)把它們聯(lián)系起來,并實現(xiàn)智能化的交通控制才能解決根本問題,交通信息化需要融合科技力量才能使目前的交通問題得到改善。
在現(xiàn)代文明高速發(fā)展的社會,道路的高度發(fā)達使得整個社會進步的速度進一步的加快,交通燈的出現(xiàn)是社會發(fā)展的必然產(chǎn)物。交通燈在道路事業(yè)中占有舉足輕重的地位,它直接影響到公路以及市區(qū)內(nèi)的通車質(zhì)量。所以,智能交通燈的研究具有重大意義。
3.設(shè)計要求
主干道綠燈亮支干道紅燈亮?xí)r間是50秒,接下來黃燈閃爍5秒,此時主干道的綠燈和支干道的紅燈繼續(xù)亮;然后是主干道紅燈亮支干道綠燈亮,時間為20秒,再黃燈閃5秒同時主干道的紅燈和支干道的綠燈也繼續(xù)亮。
4.設(shè)計方案
首先根據(jù)系統(tǒng)的需要進行分析。系統(tǒng)要求主干道綠燈亮支干道紅燈亮?xí)r間是50秒,接下來黃燈閃爍5秒,此時主干道的綠燈和支干道的紅燈繼續(xù)亮,然后是 主干道紅燈亮支干道綠燈亮?xí)r間為20秒,再黃燈閃5秒同時主干道的紅燈和支干道的綠燈也繼續(xù)亮。
因此將整個系統(tǒng)分為計時模塊和控制模塊組成。計時模塊中秒模塊主要將50MHZ的時鐘進行分頻得到20ns的時鐘信號,再將信號50000000倍得到秒信號??刂颇K由交通燈控制模塊以及黃燈閃爍模塊構(gòu)成。
Verilog HDL語言介紹 5.1 Verilog HDL特點
Verilog HDL語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義了清晰地模擬、仿真語義。使用這種語言編寫的模型可以方便地使用Verilog仿真器進行驗證。Verilog HDL從C語言繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴展的建模能力和擴展模塊。
Verilog HDL之所以成為和VHDL并駕齊驅(qū)的描述語言,以為它有如下特點:
(1)基本邏輯門,例如and、or和nand等都內(nèi)置在語言中。
(2)用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時序邏輯原語。
(3)開關(guān)級基本結(jié)構(gòu)模型,例如pmos 和nmos等也被內(nèi)置在語言中。(4)提供顯式語言結(jié)構(gòu)指定設(shè)計中的端口到端口的時延及路徑時延和設(shè)計的時序檢查。
(5)可采用三種不同方式或混合方式對設(shè)計建模。這些方式包括:行為描述方式—使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流方式—使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式—使用門和模塊實例語句描述建模。
(6)Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。
(7)能夠描述層次設(shè)計,可使用模塊實例結(jié)構(gòu)描述任何層次。設(shè)計能夠在多個層次上加以描述,從開關(guān)級、門級、寄存器傳送級(RTL)到算法級。
(8)設(shè)計的規(guī)??梢允侨我獾?;語言不對設(shè)計的規(guī)模(大小)施加任何限制。Verilog HDL不再是某些公司的專有語言而是IEEE標(biāo)準(zhǔn)。人和機器都可閱讀Verilog 語言,因此它可作為EDA的工具和設(shè)計者之間的交互語言。
5.2Verilog HDL程序基本結(jié)構(gòu)
模塊是Verilog HDL的基本描述單位,描述某個設(shè)計的功能或結(jié)構(gòu)及與其他模塊通信的外部端口。一個模塊的基本語法如下:
module module_name//模塊名稱
(port_list);//輸入輸出信號列表//說明 reg//寄存器 wire//線網(wǎng)
parameter//參數(shù) input//輸入信號 output//輸出信號 inout//輸入輸出信號 function//函數(shù) task//任務(wù) …//語句
Initial statement Always statement Module instantiation// Gate instantiation// UDP instantiation// Continuous assignment// Endmodule 說明部分用于定義不同的項,例如模塊描述中使用寄存器和參數(shù)、語句定義設(shè)計的功能和結(jié)構(gòu)。說明部分和語句可以放置在模塊的任何地方,但是變量、寄存器、線網(wǎng)和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性,最好將所有的說明部分放在語句前。
6.系統(tǒng)仿真
本文的仿真是在QuartuslI上進行的。QuartuslI 是 Altera 提供的 FPGA/CPLD 開發(fā)集成環(huán)境,Altera 是世界上最大的可編程邏輯器件供應(yīng)商之一。QimrtiisII在21世紀(jì) 初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+plusII的更 新?lián)Q代產(chǎn)品,其界面友好,使用便捷。QuartiisII提供了一種與結(jié)構(gòu) 無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件 編程。
Altera的QuartusII提供了完整的多平臺設(shè)計環(huán)境,能滿足各 種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán) 境和SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP開發(fā)包進行系統(tǒng)模 型設(shè)計提供了集成綜合環(huán)境。
QuartusII包括模塊化的編輯器。編輯器包括的功能模塊有分析 /綜合器、適配器、裝配器、時序分析器、設(shè)計輔助模塊、EDA網(wǎng)表 文件生成器、編輯數(shù)據(jù)接口等??梢酝ㄟ^選擇Start Compilation來運行所有的編輯器模塊,也可以選擇單獨運行各個模塊。
基于Quartus II的設(shè)計流程:
(1)建立工作庫文件夾和編輯設(shè)計文件(2)創(chuàng)建工程;(3)全程編譯工程;(4)時序仿真;(5)引腳鎖定;
(6)下載至硬件系統(tǒng)驗證。
6.1 系統(tǒng)電路框圖
系統(tǒng)整體電路設(shè)計采用原理圖輸入法,將各個模塊包括子模塊進行連接,得到系統(tǒng)的電路框圖如下圖所示。
圖三 系統(tǒng)整體電路圖
6.2設(shè)計結(jié)果仿真
利用Quartus II軟件對本設(shè)計的程序進行編譯,得到系統(tǒng)的仿真圖。
交通燈運行時時序仿真圖1
交通燈運行時時序仿真圖1
7.心得體會
在這次課程設(shè)計中,我再一次的體驗到了細(xì)心對一個編程者的重要性,和程序的規(guī)范性對于程序的重要性,這些平時我們忽略的問題,其實有時候關(guān)乎著我們編程的成功與否的。
在verilog語言中,我們必須注意其與C語言的異同,比如格式和變量定義,還有模塊的調(diào)用,和時鐘信號的應(yīng)用。我覺得需要在以后多加練習(xí),可以對以后的學(xué)習(xí)和工作帶來莫大的幫助。這次的
課程設(shè)計相對以前的較難,其實就是對我們的一次考核,也是一次考驗,它培養(yǎng)了學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓(xùn)練和考察過程。然而從理論到實踐的轉(zhuǎn)化過程,我在做課程設(shè)計的近一個月時間里,有了更進一步的認(rèn)識和了解,要想學(xué)知識要重在實踐,要通過不斷的實際操作才能更好地學(xué)習(xí)。
通過這次課程設(shè)計,我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能
力。在設(shè)計的過程中遇到問題,可以說得是困難重重,遇到了各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知解得不夠深刻,掌握得不夠牢固。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。
8.參考文獻
(1)程云長.可編程邏輯器件與VHDL語言[M].北京:科學(xué)出版社,2005(2)黃智偉.全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2006(3)黃智偉.全國大學(xué)生電子設(shè)計競賽電路設(shè)計[M].北京:北京航空航天大學(xué)出版社,2006(4)黃智偉.全國大學(xué)生電子設(shè)計競賽 常用電路模塊制作[M].北京:北京航空航天大學(xué)出版社,2010(5)黃智偉等.基于NI multisim的電子電路計算機仿真設(shè)計與分析[M].北京:電子工業(yè)出版社,2007(6)黃智偉.印制電路板(PCB)設(shè)計技術(shù)與實踐[M].北京:電子工業(yè)出版社,2009(7)高吉祥等.電子技術(shù)基礎(chǔ)實驗與課程設(shè)計[M].北京:電子工業(yè)出版社,2002(8)潘松.EDA技術(shù)實用教程[M].科學(xué)出版社.2005
7.附件 原程序
`timescale 100ms / 1us //程序中的時間單位和仿真精度。module signal_led(clk, rst_n, traffic_signal_master_red, traffic_signal_master_green, traffic_signal_master_yellow, traffic_signal_slave_red, traffic_signal_slave_green, traffic_signal_slave_yellow);input clk;input rst_n;output reg
traffic_signal_master_red;// 交通信號燈主干道紅燈
output reg
traffic_signal_master_green;// 交通信號燈主干道綠燈
output reg
traffic_signal_master_yellow;// 交通信號燈主干道黃燈 output reg
traffic_signal_slave_red;// 交通信號燈次干道紅燈
output reg
traffic_signal_slave_green;// 交通信號燈次干道綠燈
output reg
traffic_signal_slave_yellow;// 交通信號燈次干道黃燈
reg signal_red_led;reg signal_green_led;reg signal_yellow_led;reg [31:0] traffic_signal_cnt;parameter
LED_ON
= 1'b0;// 1亮
parameter
LED_OFF
= 1'b1;// 0滅
parameter
TIME_CELL
= 32'd50000000;// 時間單元時間 = Time_cell * 20ns(50MHz主頻)parameter START = 32'd0;parameter MASTER_GREEN = TIME_CELL * 20;parameter MASTER_YELLOW_1 = TIME_CELL * 20 + TIME_CELL;parameter MASTER_YELLOW_2 = TIME_CELL * 20 + 2 * TIME_CELL;parameter MASTER_YELLOW_3 = TIME_CELL * 20 + 3 * TIME_CELL;parameter MASTER_YELLOW_4 = TIME_CELL * 20 + 4 * TIME_CELL;parameter MASTER_YELLOW_5 = TIME_CELL * 20 + 5 * TIME_CELL;parameter SLAVE_GREEN = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20;parameter SLAVE_YELLOW_1 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + TIME_CELL;parameter SLAVE_YELLOW_2 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 2 * TIME_CELL;parameter SLAVE_YELLOW_3 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 3 * TIME_CELL;parameter SLAVE_YELLOW_4 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 4 * TIME_CELL;parameter TOTAL_TIME = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 5 * TIME_CELL;
//******************************************************************* // 模塊名稱:時間計數(shù)種子 // 功能描述
//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)traffic_signal_cnt <= 32'h0;else if(traffic_signal_cnt == TOTAL_TIME)traffic_signal_cnt <= START;else traffic_signal_cnt <= traffic_signal_cnt+1;end //******************************************************************* // 模塊名稱:LED燈閃爍控制 // 功能描述
//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)
begin signal_red_led <= LED_OFF;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end else begin case(traffic_signal_cnt)START
:
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_GREEN
:
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_1 :
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_YELLOW_2 :
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_3 :
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_YELLOW_4 :
begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_5 :
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_GREEN
:
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_YELLOW_1 :
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_ON;end SLAVE_YELLOW_2 :
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_YELLOW_3 :
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_ON;end SLAVE_YELLOW_4 :
begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end endcase end end //******************************************************************* // 模塊名稱:主從LED輸出 // 功能描述:
//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)begin traffic_signal_master_red <= LED_OFF;traffic_signal_master_green <= LED_OFF;traffic_signal_master_yellow <= LED_OFF;traffic_signal_slave_red <= LED_OFF;traffic_signal_slave_green <= LED_OFF;traffic_signal_slave_yellow <= LED_OFF;end else begin traffic_signal_master_red <= signal_red_led;traffic_signal_master_green <= signal_green_led;traffic_signal_master_yellow <= signal_yellow_led;traffic_signal_slave_red <= ~signal_red_led;traffic_signal_slave_green <= ~signal_green_led;traffic_signal_slave_yellow <= signal_yellow_led;end end endmodule
第三篇:智能交通燈控制系統(tǒng) 畢業(yè)設(shè)計總結(jié)
無
錫
職
業(yè)
技
術(shù)
學(xué)
院
畢業(yè)設(shè)計總結(jié) 畢業(yè)設(shè)計總結(jié)
本次畢業(yè)設(shè)計,我的指導(dǎo)老師是李麗老師,首先,我們進行總體規(guī)劃,包括控制系統(tǒng)組成、控制系統(tǒng)工作過程、控制系統(tǒng)功能、控制系統(tǒng)技術(shù)指標(biāo);之后,進行了硬件系統(tǒng)設(shè)計,學(xué)習(xí)單片機原理與接口技術(shù),網(wǎng)上搜索下載AT89C51、數(shù)碼顯示管、點亮LED技術(shù)資料,并學(xué)習(xí)消化,設(shè)計硬件控制原理,用Protel繪圖軟件設(shè)計出控制器原理圖,并對控制器硬件進行了調(diào)試;接著,研究設(shè)計六線四相步進電機控制方式和方法;而后,規(guī)劃出了控制軟件結(jié)構(gòu)圖,設(shè)計出了主控模塊程序流程圖、各功能模塊程序流程圖,并逐功能模塊編輯、編譯、連接、測試控制程序,在編程過程中,我一邊學(xué)習(xí)C51程序設(shè)計,一邊熟悉Keil C51開發(fā)平臺,一邊編程設(shè)計控制程序;最后,對控制程序進行了測試和修改完善。
本次畢業(yè)設(shè)計創(chuàng)新點一是提出了六線四相步進電機啟動加速控制技術(shù)方案,二是研究了六線四相步進電機各種運行控制方式。
本次畢業(yè)設(shè)計體會一是深刻認(rèn)識到專業(yè)理論對指導(dǎo)實踐工作的重要性,上學(xué)期間,專業(yè)理論學(xué)的不夠扎實,不夠深入、不夠全面、不懂用途;二是現(xiàn)有的技能不能勝任實際工作,實際動手能力欠缺;三是不知道如何進行課題需求分析、課題總體規(guī)劃;四是不知道如何進行軟件結(jié)構(gòu)設(shè)計;五是實際編程經(jīng)驗欠缺,缺少排除故障能力。所以,我們即將畢業(yè)的大學(xué)生需要與時俱進,克服不足,勤學(xué)苦練,迎接挑戰(zhàn),為國爭光。
在該課題后續(xù)研究設(shè)計時,應(yīng)重視步進電機特性研究,重視控制方法、控制方式研究;增加聯(lián)網(wǎng)控制功能;增加LCD數(shù)據(jù)顯示功能。
在這篇畢業(yè)設(shè)計論文即將完成的時候,我突然意識到自己的校園生活即將畫上一個句號。當(dāng)我踏上工作崗位的時候即將面對的是完全不同于之前十幾年校園生活的新的旅程。如果說之前的日子是學(xué)會如何做人、如何做事、如何認(rèn)識和理解世界、如何學(xué)會感恩,那么,今后的日子,我將真正成為一個有用的人,一個能與別人合作或者獨立完成任務(wù)的人,一個真正懂得世界、懂得感恩并真正付出的人。
我要感謝我存在的這個世界賦予我的認(rèn)知和理解,感謝父母給了我機會認(rèn)識并引導(dǎo)撫育我這個世界,感謝二十幾年來成百上千的老師與朋友讓我能夠在正確的道路上走得更遠并且激勵我成為一個堅定信念不做讓自己后悔事情的人。
“窮則獨善其身,達則兼濟天下”,古訓(xùn)教導(dǎo)我們不做自私人,懂得盡己所能,知恩圖報。一切來之不易,珍惜且能盡其用,算是在自己能力有限的時候?qū)ι鐣?,對生活最大的慰藉和回報。今年的二月份,在?jīng)歷了將近一年的苦苦尋覓之后,我終于遇到了一個適合自己發(fā)展的崗位,也終于能夠?qū)⑷康木ν度氲竭@次畢業(yè)設(shè)計之中。首先我非常感謝我的導(dǎo)師李老師對我的支持和寬容,因為這次畢設(shè)的題目來源于我在生活的靈感,并且有著強烈的愿望,期望它能夠成為現(xiàn)實,期望在離開校園之前見證自己所學(xué)是有用的學(xué)問。李老師在我的畢設(shè)過程中給予我鼎力的支持,因而有機會實現(xiàn)這個愿望。同時,在漫長的設(shè)計和實踐過程中,身邊的同學(xué)和朋友都給了我很多支持和幫助,這也證明了即便是一個人的任務(wù)也需要集體的力量,慶幸自己在離開校園之前學(xué)到了很多今后可能及其重要的東西。
回顧自己的學(xué)習(xí)歷程,感覺今天的生活與狀態(tài)是由一系列的偶然與必然串聯(lián)成的結(jié)果。在這個過程中自己承受了比別人更多的挫折,但也學(xué)到了更多的感悟,獲得了比別人更大的成就。我體會了人生的正弦曲線,知道很多情況下結(jié)果是之前很長時間的累積,很有趣的是,我的這些感悟在大學(xué)的專業(yè)課學(xué)習(xí)的時候得到
/ 2
無
錫
職
業(yè)
技
術(shù)
學(xué)
院
畢業(yè)設(shè)計總結(jié)
了理論上描述的一致。因為我的每一次成功的獲得都比別人晚了許多,但也都是在最關(guān)鍵的時候比別人得到了更多的收獲,也比別人體會到更多的付出后的充實。很慶幸自己在過去歲月中每一次困難抉擇中做出的選擇,以及在不斷地激勵中為目標(biāo)而不斷奮斗的堅持。
“來到社會做什么?畢業(yè)后做一個怎樣的人?”雖然即將畢業(yè),但是這兩個問題將常伴左右。第一個問題的答案已經(jīng)深深寫在自己三年大學(xué)生活的美好回憶之中,而第二個問題,將是我今后不斷反省自我并思考未來的信條。
學(xué)無止境,無論每天往返于公司和住所,還是奔走于實驗室與宿舍之間,作為一個職員或者學(xué)生,無時無刻不在接受新的知識、觀點、理念。即便是創(chuàng)造社會價值,也仍需要不斷補給養(yǎng)分。于此,作為剛剛走出校園的人,我將牢記于心。
最后,真誠期望每一個已經(jīng)出現(xiàn)在或是即將出現(xiàn)在我不同人生階段卻是同一條生活軌跡的師長、親友、戰(zhàn)友們,能夠始終擁有美好幸福的生活狀態(tài)、以及一顆熱忱于探索未知和真理的心,同時也是對自己未來生活的期冀。
第四篇:基于機器視覺智能交通燈控制系統(tǒng)
機器視覺的論述作業(yè)
題
目 :
基于機器視覺智能交通燈控制系統(tǒng)
學(xué)院名稱 :
電氣工程學(xué)院
專業(yè)班級 :
姓
名 : 學(xué)
號 :
時 間 : 緒論.........................................................3 2 基于機器視覺的智能交通燈系統(tǒng)設(shè)計.............................3 3 智能交通燈控制策略...........................................5 3.1 模糊控制...............................................5 3.2 智能交通燈模糊控制策略.................................5 3.3 解模糊化算法...........................................6 4 系統(tǒng)硬件設(shè)計.................................................6 4.1 攝像頭的安裝和特性.....................................6 4.2 視頻采集模塊設(shè)計.......................................8 4.3 DSP控制處理模塊設(shè)計...................................9 4.4 信號燈驅(qū)動模塊設(shè)計.....................................9 4.5 電源模塊設(shè)計..........................................10 5 系統(tǒng)軟件設(shè)計及調(diào)試..........................................11 5.1 軟件總體設(shè)計方案......................................11 5.2 視頻采集模塊的軟件設(shè)計................................12 5.3 系統(tǒng)調(diào)試..............................................13 6 總結(jié)........................................................13 7 參考文獻........................................................................................................13 緒論
隨著社會經(jīng)濟的發(fā)展,城市車輛數(shù)量迅速增長,交通擁擠日益嚴(yán)重,造成的交通事故和環(huán)境污染等負(fù)面效應(yīng)也日益突出。城市交通問題直接制約著城市的建設(shè)和經(jīng)濟的增長,與人們的日常生活密切相關(guān)。通常交通阻塞大都是由于城市路口實際通行能力不足所造成的,路口交通問題逐步成為經(jīng)濟和社會發(fā)展中的重大問題,為此世界大多數(shù)國家都在進行智能交通燈控制系統(tǒng)的研究。
本文的目的是對基于機器視覺的智能交通燈控制系統(tǒng)進行了研究?;跈C器視覺的智能交通燈控制系統(tǒng)對路口交通燈進行智能控制,根據(jù)各相位車流量大小,智能分配紅綠燈時間,徹底改變了傳統(tǒng)交通燈控制方式的不足。目前由于城市路口交通信號燈的控制策略不理想,導(dǎo)致了路口實際通行能力下降,停車次數(shù)比較多,車輛通過路口的延誤時間較長,容易造成不必要的擁堵。改善交通燈控制策略,來提高路口的實際通行能力,這是城市交通控制中需要解決的主要問題。自從計算機控制系統(tǒng)應(yīng)用于交通燈控制以來,硬件設(shè)備的不斷更新和改進,智能化和集成化成為城市道路交通信號控制系統(tǒng)的研究趨勢,而路口交通燈控制系統(tǒng)是智能交通系統(tǒng)中的關(guān)鍵點和突破口?;跈C器視覺的智能交通燈系統(tǒng)設(shè)計
基于機器視覺的智能交通燈控制系統(tǒng)是由攝像機、視頻采集模塊、DSP控制處理模塊、信號燈驅(qū)動模塊、電源模塊、時鐘模塊、復(fù)位模塊和信號燈組等組成,其組成框圖如2.1圖所示
圖2.1系統(tǒng)組成框圖
系統(tǒng)中攝像機是用來拍攝路口車輛視頻,是路口車流量獲取的基礎(chǔ)設(shè)備,其
拍攝的視頻圖像質(zhì)量高低直接影響到系統(tǒng)對交通燈控制的精度。攝像機的選擇決定著視頻的質(zhì)量,所以一般要選擇穩(wěn)定性高,分辨率符合系統(tǒng)要求的攝像機。目前攝像機主要分為兩種,一種是電荷耦合器件_℃CD圖像傳感器;一種是互補性氧化金屬半導(dǎo)體—CMoS圖像傳感器。CCD圖像傳感器是由很多感光單位組成的,其表面受到光線照射時,產(chǎn)生的電荷將由感光單位反映在組件上,所有感光單位產(chǎn)生的電信號組合在一起,就能夠形成一幅完整的圖畫。而CMOS圖像傳感器的制造技術(shù)與工藝和制造普通計算機芯片的技術(shù)非常類似,CMOS中同時存在著N級和P級半導(dǎo)體,這兩個半導(dǎo)體之間互補效應(yīng)能夠產(chǎn)生的電流信號,能夠被處理芯片記錄,同時將其解讀成影像,形成一幅圖畫。畫。比較CCD和CMOS的結(jié)構(gòu),ADC(放大兼類比數(shù)字信號轉(zhuǎn)換器)的位置和數(shù)量是最大的不同。通常CCD攝像頭每曝光一次,當(dāng)快門關(guān)閉之后立即進行像素的轉(zhuǎn)移處理,將其每一行中的每一個像素的電信號依次送到“緩沖器"中,再輸入到放大器中進行放大,然后串聯(lián)ADC輸出;而CMOS的設(shè)計中每個像素旁直接連著ADC,對電信號進行放大同時轉(zhuǎn)換成數(shù)字信號。CCD與CMOS的特性比較如下表2-1 表2-1 CCD和CMOS的比較
通過對CCD和CMOS的特性進行比較,以及視頻處理系統(tǒng)對視頻圖像的要求,本文采用CCD攝像機JAB.55 15EB作為視頻輸入部分的圖像傳感器。智能交通燈控制策略
3.1 模糊控制
模糊控制是將模糊理論引入控制領(lǐng)域,將人的經(jīng)驗形式化模型化,采用模糊邏輯的近似推理方法,通過計算機系統(tǒng)代替人對被控對象進行有效的實時控制。模糊控制系統(tǒng)是由模糊規(guī)則基、模糊推理、模糊化算子和解模糊化算子組成,其組成框圖如圖3.1所示。
圖3.1 模糊控制的組成框圖
模糊化是對系統(tǒng)的輸入量進行論域變換,將精確量轉(zhuǎn)化成模糊輸入信息的過程。由于實際過程中的輸入值通常為連續(xù)變化的,必須將其范圍分成有限個模糊集,并與輸入量相對應(yīng),然后通過隸屬函數(shù)求出輸入量對各模糊集合的隸屬度,將普通變量轉(zhuǎn)化為模糊變量,完成了模糊化工作。
3.2 智能交通燈模糊控制策略
模糊控制過程是將實際檢測的當(dāng)前方向車輛排隊長度進行模糊量化處理,映射到輸入論域的模糊集合,根據(jù)實踐經(jīng)驗確定模糊控制規(guī)則,進行模糊推理,再經(jīng)清晰化處理轉(zhuǎn)為綠燈延長時間的精確量,實現(xiàn)交通燈智能控制。通常情況下,在某一方向紅燈時間內(nèi)該車道的車流量在停車線后的排隊長度越長而綠燈方向車流量不多,為了保證下一周期車輛通行最大化,就得適當(dāng)延長下一周期的綠燈時間。反之,當(dāng)前綠燈方向的車流量較多而當(dāng)前紅燈方向車道的車流量在停車線
后的排隊長度較短,就得適當(dāng)減少下一周期的綠燈時間,以確保路口車輛通行量的最大化??紤]到司機和行人心理承受能力,不至于在其等待過程中產(chǎn)生焦急煩躁的情緒,路口的紅綠燈周期不能過長,通??梢栽O(shè)置一個最大綠燈時間,比如120S。如果系統(tǒng)已經(jīng)執(zhí)行了最大綠燈過,立即進行相位切換,當(dāng)前方向綠燈進入黃閃狀態(tài),一般設(shè)定為3秒,然后執(zhí)行紅燈狀態(tài)。當(dāng)路口的車流量較小時,信號周期則比較短,但一般也要設(shè)定一個最小綠燈時間,女1:120S,否則車輛和行人由于來不及通過路VI而影響交通安全n時間,不考慮當(dāng)前方向還有多少輛車等待通過。
3.3 解模糊化算法
通過對被控制量的模糊化,根據(jù)模糊控制規(guī)則進行推理,做出模糊決策,得到模糊控制的輸出量,這個輸出量為模糊量,而被控對象最終只能接受精確的控制量,所以必須將輸出的模糊量轉(zhuǎn)化為精確的控制量,將其轉(zhuǎn)化為精確量的過程通常稱之為解模糊化。也就是從模糊量變?yōu)榍逦康倪^程,即把通過模糊推理得到的輸出量的模糊集合,一一映射到輸出量的普通集合。解模糊的方法有通常有最大隸屬度法、平均最大隸屬度法、取中位數(shù)法以及加權(quán)平均法。系統(tǒng)硬件設(shè)計
4.1 攝像頭的安裝和特性
(1)所采集車輛視頻圖像質(zhì)量的高低將直接影響到系統(tǒng)對交通燈控制的精度,而決定視頻質(zhì)量的關(guān)鍵因素在于CCD攝像頭的選擇和安裝。本文采用CCD攝像機JAB-5515EB,可以在室外惡劣環(huán)境下全天候工作,其性能如表4-表4-1 JAB-5515EB攝像頭的特性
(2)攝像頭的安裝直接影響到視頻采集的過程,而且安裝攝像頭的位置既要不能對交通產(chǎn)生任何影響,又要滿足視頻采集模塊的需求。圖4.1為兩相位路口示意圖,攝像頭的安裝位置應(yīng)在圖中A、B、C、D點的上方高于7米為宜。視頻圖像處理只針對車道,所以可視角度只需滿足橫向覆蓋整個車道,縱向能夠覆蓋車輛排隊信息的長度即可。
圖4.1 城市路口示意圖
4.2 視頻采集模塊設(shè)計
本設(shè)計中的視頻采集模塊主要分為視頻輸入和視頻處理兩個部分,其功能是利用圖像傳感器將物體的光信號轉(zhuǎn)換成模擬的視頻電信號,然后利用視頻解碼芯片將視頻模擬信號轉(zhuǎn)化成數(shù)字視頻信號輸入到DSP的視頻處理前端。模擬視頻信號主要分為PAL和NTSC兩種制式,在將模擬視頻信號直接轉(zhuǎn)換成數(shù)字信號的時
候,通常需要用到視頻解碼芯片,本設(shè)計中選擇TI公司的TVP5150視頻解碼芯片來主要用來完成模擬視頻信號到數(shù)字視頻信號的轉(zhuǎn)換以及對圖像亮度、色度的預(yù)處理等。
4.3 DSP控制處理模塊設(shè)計
DSP控制處理模塊作為系統(tǒng)的主控模塊,以TMS320DM6437為核心,由視頻處理前端、DDR2存儲器、EMIF接121電路、以太網(wǎng)接口電路、12C總線和JTAG接口電路組成,其設(shè)計框圖如圖4.2所示
圖4.2 DSP控制處理模塊設(shè)計框圖
視頻處理前端用來接收TVP5150發(fā)送的數(shù)字視頻信號,DDR2存儲器用來存儲程序和數(shù)據(jù),EMIF接口電路可以外接NAND Flash用于固化程序和數(shù)據(jù),以太網(wǎng)接口電路用于DM6437與外接設(shè)備之間的通信,I2C總線對TVP5150內(nèi)部存器進行初始化設(shè)置,JTAG接121電路主要用來連接DSP仿真器,進行程序的載和系統(tǒng)的調(diào)試與仿真。芯片DM6437用于控制各個外圍功能芯片及完成算法處理。
4.4 信號燈驅(qū)動模塊設(shè)計
LED交通信號燈驅(qū)動模塊設(shè)計以LM3407芯片核心,其輸入電壓范圍4.5V-30V,并且能夠提供精準(zhǔn)的恒定電流輸出,本文所需電壓為24V,電流為350mA,以驅(qū)動高功率發(fā)光二極管(LED)。常用LED交通燈的燈盤內(nèi)LED數(shù)量約在100-200個
之間,本文采用119個LED燈通過串并聯(lián)結(jié)合的方式進行連接。每個LED工作電壓為3.3V,工作電流為20mA,結(jié)合驅(qū)動芯片參數(shù)和燈盤的規(guī)格,采用并聯(lián)17組,每組串聯(lián)7個LED燈的方式,對交通信號燈進行驅(qū)動。交通燈連接方式如圖4.4所示。
圖4.4 LED交通燈連接圖
4.5 電源模塊設(shè)計
整個系統(tǒng)的硬件平臺采用+5V外接電壓進行供電,但是根據(jù)各個模塊對電源電壓需求各有不同,因此對整個硬件平臺的供電設(shè)計很重要。DM6437內(nèi)核使用1.05V1.20V兩種工作電壓,當(dāng)其工作頻率為600MHz/500MHz/400MH時要求供電電壓為1.20V,當(dāng)工作頻率為400MHz時要求供電電壓為1.05V。設(shè)計中的內(nèi)核工作頻率為600MHz,故而采用1.2V的內(nèi)核供電電壓。而系統(tǒng)中TVP5150視頻解碼芯片的內(nèi)核和外接的以太網(wǎng)物理層芯片等均是采用1.5V電源進行供電,其他則供電電壓為3.3V。在給系統(tǒng)上電的過程中,首先應(yīng)當(dāng)確內(nèi)核電源先上電。關(guān)閉電源的時候,同樣先進行內(nèi)核電源的關(guān)閉,然后再關(guān)閉I/O電源等。若只對CPU內(nèi)核進行供電,而對周圍I/O沒有進行供電,則不會對芯片產(chǎn)生任何損害。假如周圍的I/O均獲得供電而對CPU內(nèi)核沒有進行供電,導(dǎo)致芯片緩沖/驅(qū)動部分的晶體管在未知狀態(tài)下進行工作,對系統(tǒng)會產(chǎn)生一定的損害。電源模塊設(shè)計功能框
圖如圖4.5所示。
圖4.5 電源模塊功能框圖 系統(tǒng)軟件設(shè)計及調(diào)試
5.1 軟件總體設(shè)計方案
基于機器視覺的智能交通燈控制系統(tǒng)的功能主要通過C語言進行軟件編程來實現(xiàn)的,其軟件設(shè)計部分主要包括視頻采集模塊軟件、DSP控制處理模塊軟件以及交通燈智能控制軟件。其軟件總體設(shè)計框圖如圖5.1所示。視頻采集模塊以TVP5150芯片為核心,接收來自攝像頭的視頻,進行和亮度等預(yù)處理,然后將模擬視頻信號轉(zhuǎn)換為數(shù)字視頻信號,其軟件設(shè)計主要包括TVP5150芯片的配置、芯片的工作過程;DSP控制處理模塊要對車輛視頻進行圖像處理,計算出精確的車流量,根據(jù)模糊控制算法智能控制紅綠燈時間。DSP控制處理模塊軟件設(shè)計主要包括模塊主要寄存器配置、CACHE大小配置及存儲器映射、EMIF接口初始化設(shè)計
和DSP代碼優(yōu)化原則;交通燈智能控制軟件主要通過交通燈智能控制策略,根據(jù)車流量大小,對綠燈時間進行自動控制。
圖5.1 軟件總體設(shè)計框圖
5.2 視頻采集模塊的軟件設(shè)計
視頻采集模塊開始工作時,首先讀取跳線設(shè)置,進行視頻捕捉參數(shù)的更新,然后建立視頻輸入通道,同時為將要獲取的視頻信息分配內(nèi)存緩沖區(qū),再將獲取的每一個視頻幀發(fā)送給視頻解碼芯片TVP5150。當(dāng)TVP5150發(fā)送結(jié)束信號,表示視頻采集過程結(jié)束。在本文中,CCD攝像頭為PAL制式,輸入的寬度是704,輸入高度是576,幀速是25幀/秒。所以將JPI設(shè)置成PAL制式,輸入的視頻數(shù)據(jù)像素為704x 576。設(shè)計中將幀間間隔設(shè)置為25,故最大的幀速是每秒25幀。其每個像素點的大小是2Bit,因此一幀數(shù)據(jù)大小為792KB。再進行視頻輸入通道的創(chuàng)建,創(chuàng)建過程是通過DSP/BIOS系統(tǒng)創(chuàng)建視頻前端微型驅(qū)動的管道對象,采用
擴展的GIO函數(shù)FVID-create()來進行創(chuàng)建。
5.3 系統(tǒng)調(diào)試
電源、時鐘和復(fù)位模塊屬于整個系統(tǒng)的最小系統(tǒng)部分,是硬件電路的基礎(chǔ),所以首先對其進行調(diào)試,以保證其正常工作。電源模塊的調(diào)試主要通過萬用表進行測量,當(dāng)電源電路上電后,測試其輸出端口電壓是否符合系統(tǒng)的要求,分別為3.3V、1.8V和1.2V。時鐘模塊在調(diào)試過程中采用邏輯分析儀進行觀測輸時鐘頻率,確定其是否滿足系統(tǒng)所需時鐘頻率的要求,視頻解碼芯片TVP5150所需的時鐘輸入頻率為14.31818MHz,CPU核所需的時鐘輸入為27MHz。復(fù)位模塊也采用萬用表進行測量,當(dāng)按下復(fù)位鍵輸出為低電平有效,否則輸出為高電平??偨Y(jié)
本文根據(jù)國內(nèi)外交通燈控制系統(tǒng)的研究現(xiàn)狀,分析研究了目前常用的交通燈控制策略,提出了一種基于機器視覺的智能交通燈控制系統(tǒng)的設(shè)計方案,將模糊控制理論引入交通燈控制系統(tǒng)中,提出了智能交通燈控制策略。采用了TI公司推出的TMS320C6000系列中性能較高的TMS320DM6437芯片,結(jié)合其它外圍電路,設(shè)計了智能交通燈控制系統(tǒng)的硬件,并進行了相應(yīng)的軟件設(shè)計。最后進行了實驗和調(diào)試。
基于機器視覺的智能交通燈控制系統(tǒng)涉及的領(lǐng)域很多,技術(shù)手段較為復(fù)雜。由于作者知識有限以及相關(guān)條件的限制,有些方面研究不夠深入,還有待于進一步改進與完善。參考文獻
【1】劉智勇.智能交通控制理論及其應(yīng)用【M】.北京:科學(xué)出版社,2003.
【2】高海軍.城市交通信號控制研究[D】.北京:中國科學(xué)院自動化研究所,2005.
【3】陳?。贒SP的汽車視覺系統(tǒng)研究【D】.武漢:武漢理工大學(xué),2009.
【4】王史春.基于模糊控制算法實現(xiàn)信號燈智能化研究【J】.電子科技.2009 【5】李玉.交通信號燈的模糊控制[D】.遼寧:遼寧科技大學(xué),2008.
第五篇:畢業(yè)論文---智能交通燈控制系統(tǒng)設(shè)計
目 錄
摘 要...........................................................2 第一章 概述.....................................................3 1.1交通燈的發(fā)展及現(xiàn)狀...........................................3 1.2 單片機說明.................................................3 第二章 智能交通燈的設(shè)計原理.....................................6 2.1 智能交通燈的設(shè)計框圖........................................6 2.2智能交通燈的設(shè)計方案及改進措施...............................6 第三章 智能交通燈電路設(shè)計.......................................6 3.1控制器的系統(tǒng)框圖.............................................7 3.2智能交通燈控制系統(tǒng)電路圖.....................錯誤!未定義書簽。3.3工作原理....................................................8 第四章 智能交通燈軟件系統(tǒng)設(shè)計..................................14 4.1 智能交通燈的軟件設(shè)計流程圖.................................14 4.2 程序源代碼.................................................14 第五章 智能交通燈方案的仿真....................................14 小結(jié)...........................................................18 致謝詞.........................................................18 參考文獻.......................................................18 附 錄..........................................................21 附錄A:智能交通燈控制程序:....................................21
摘 要
本文介紹的是一個基于PROTEUS的智能交通燈控制系統(tǒng)的設(shè)計與仿真,系統(tǒng)根據(jù)交通十字路口雙車道車流量的情況控制交通信號燈按特定的規(guī)律變化。
本文首先對智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進行了分析,指出了現(xiàn)狀交通燈存在的缺點,并提出了改進方法。智能交通燈控制系統(tǒng)通常要實現(xiàn)自動控制和在緊急情況下能夠手動切換信號燈讓特殊車輛優(yōu)先通行。本文還對AT89C51單片機的結(jié)構(gòu)特點和重要引腳功能進行了介紹,同時對智能交通燈控制系統(tǒng)的設(shè)計進行了詳細(xì)的分析。最后利用PROTEUS軟件,通過其平臺對交通燈控制系統(tǒng)進行了仿真,仿真結(jié)果表明系統(tǒng)工作性能良好。
關(guān) 鍵 詞:PROTEUS、AT89C51單片機、智能交通燈;
第一章 概述
1.1交通燈的發(fā)展及現(xiàn)狀
中國車輛數(shù)量不斷增加,交通管制的工作量越來越大,利用計算機代替人進行高效交通管理是必然的發(fā)展趨勢,而讓計算機控制的交通燈擁有類似人類的感知智能,具有很強的現(xiàn)實意義,比如通過攝像機讓交通燈控制系統(tǒng)獲得視覺感知功能,就可以代替人類的眼睛,使系統(tǒng)根據(jù)所“看到”交通情況自適應(yīng)改變管制策略,提高了交通管理的自動化水平,使得交通更高效、更順暢。
目前設(shè)計交通燈的方案有很多,有應(yīng)用CPLD設(shè)計實現(xiàn)交通信號燈控制器方法;有應(yīng)用PLC實現(xiàn)對交通燈控制系統(tǒng)的設(shè)計;有應(yīng)用單片機實現(xiàn)對交通信號燈設(shè)計的方法。目前,國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實際行車過程中出現(xiàn)的情況,還存在以下缺點:1.兩車道的車輛輪流放行時間相同且固定,在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應(yīng)該長些;另一車道為副干道,車輛較少,放行時間應(yīng)該短些。2.沒有考慮緊急車通過時,兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。
1.2 單片機說明
按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機,具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發(fā)光二極管的單片機最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個單片機。
1.2.1 AT89C51單片機硬件結(jié)構(gòu)
AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的單片機芯片,它采用靜態(tài)CMOS 工藝制造8位微處理器,最高工作頻率位24MHZ。AT89C5外形及引腳排列如圖1所示:
圖1
1.2.2管腳說明
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸 入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。
PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。
EA/VPP:當(dāng)EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時,此間內(nèi)部程序存儲器。
XTAL1和XTAL2:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
第二章 智能交通燈的設(shè)計原理
2.1 智能交通燈的設(shè)計框圖
2.2智能交通燈的設(shè)計方案及改進措施
交通燈系統(tǒng)由四部分組成:車檢測電路,信號燈電路,時間顯示電路,緊急轉(zhuǎn)換開關(guān)。
針對道路交通擁擠,交叉路口經(jīng)常出現(xiàn)擁堵的情況利用單片機控制技術(shù)提出了軟件和硬件設(shè)計方案及兩點改進措施。
1、根據(jù)各道路路口車流量的大小自動調(diào)節(jié)通行時間。
2、考慮特殊車輛通行情況,設(shè)計緊急切換開關(guān)。
AT89S51單片機有2計數(shù)器,6個中斷源,能滿足系統(tǒng)的設(shè)計要求。用其設(shè)計的交通燈也滿足了要求,所以本文采用單片機設(shè)計交通燈。
第三章 智能交通燈電路設(shè)計
根據(jù)設(shè)計任務(wù)和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動控制系統(tǒng)來控制交通信號。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。
3.1控制器的系統(tǒng)框圖如圖3所示
圖3
3.2智能交通燈控制系統(tǒng)電路圖 智能交通燈電路圖如圖4所示:
圖4
交通燈系統(tǒng)由四部分組成:車檢測電路,信號燈電路,時間顯示電路,緊急轉(zhuǎn)換開關(guān)。
3.3工作原理
綠燈的放行時間與車輛通過數(shù)量不成正比。比如說20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因為這有一個起步的問題,還有一個黃燈等待問題。也就是說,綠燈放行時間越長,單位時間通過車輛的數(shù)量就越多。我們來計算一下,每車道通行20秒內(nèi)可以通過20輛車,一個紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個循環(huán)要兩次轉(zhuǎn)換),即一個紅綠黃燈循環(huán)要50秒,即50秒內(nèi)通行的車輛為40輛。通過一輛車的平均時間是1.25秒。如果每次車輛通行的時間改為40秒,40秒內(nèi)每車道可以通過45輛,一個紅綠燈循環(huán)是80秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個循環(huán)要兩次轉(zhuǎn)換),即一個紅綠黃燈循環(huán)要90秒,即90秒內(nèi)通行的車輛為90輛。通過一輛車的平均時間只需1秒。顯然在車輛擁擠的情況下綠燈的通行時間越長,單位時間內(nèi)通行的車輛越多,可以有效緩解車輛擁堵問題。我設(shè)定了綠燈通行時間的上限為40秒。在非擁擠時段綠燈的通行時間的下限為20秒,當(dāng)交叉路口雙方車輛較少時通行時間設(shè)為20秒,這樣可以大大縮短車輛在紅燈面前的等待時間。當(dāng)交叉路口雙方車輛較多時通行時間設(shè)為40秒。3.3.1車檢測電路
用來判斷各方向車輛狀況,比如:20秒內(nèi)可以通過的車輛為20輛,當(dāng)20秒內(nèi)南往北方向車輛通過車輛達不到20輛時,判斷該方向為少車,當(dāng)20秒內(nèi)北往南方向車輛通過車輛也達不到20輛時,判斷該方向也為少車,下一次通行仍為20秒,當(dāng)20秒時間內(nèi)南往北或北往南任意一個方向通過的車輛達20輛時證明該狀態(tài)車輛較多,下一次該方向綠燈放行時間改為40秒,當(dāng)40秒內(nèi)通過的車輛數(shù)達45輛時車輛判斷為擁擠,下一次綠燈放行時間改仍為40秒,當(dāng)40秒車輛上通過車輛達不到45輛時,判斷為少車,下次綠燈放行時間改為20秒,依此類推。綠燈下限時間為20秒,上限值為40秒,初始時間為20秒。這樣檢測,某次可能不準(zhǔn)確,但下次肯定能彌補回來,累積計算是很準(zhǔn)確的,這就是人們常說的“模糊控制”。因為路上的車不可能突然增多,塞車都有一個累積過程。這樣控制可以把不斷增多的車輛一步一步消化,雖然最后由于每個路口的綠燈放行時間延長而使等候的時間變長,但比塞車等候的時間短得多。本系統(tǒng)的特點是成本低,控制準(zhǔn)確。十字路口車輛通行順序如圖5所示:
圖5十字路口車輛通行順序
由于南往北,北往南時間顯示相同,所以只要一個方向多車,下次時間就要加長東往西,西往東也一樣,顯示時間選擇如表1。
表1 顯示時間選擇
車輛情況
本次該方向通行時間 20秒 20秒 20秒 20秒 20秒 20秒 20秒 20秒
下次該方向通行時間 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒
本次該方向通行時
間 40秒 40秒 40秒 40秒 40秒 40秒 40秒 40秒
本次該方向通行時間 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒 南往北少車,北往南少車
南往北少車,北往南多車
南往北多車,北往南少車
南往北多車,北往南多車
東往西少車,西往東少車
東往西少車,西往東多車
東往西多車,西往東少車
東往西多車,西往東多車
3.3.2信號燈電路
信號燈用來顯示車輛通行狀況,下面以一個十字路口為例,說明一個交通燈的四種狀態(tài)見圖6。每個路口的信號的的轉(zhuǎn)換順序為:綠—>黃—>紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時間為20秒,最長時間為40秒,紅紅最短時間為25秒,最長時間為45秒,黃燈時間為5秒。
圖6交通信號燈運行狀態(tài)
3.3.3時間顯示電路
在交通信號燈的正上方安裝一個可以顯示綠燈通行時間,紅燈等待時間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時間相同,南往北方向和北往南方向顯示的時間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方向兩位,南北方向兩位,兩位數(shù)碼管可以時間的時間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼管連接方法如圖7所示。
圖7 數(shù)碼管連接方法
下面我們用這種方法顯示交通燈的時間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的 位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點亮1MS一個掃描周期為4MS,一秒時間就要掃描250次其程序如下: MOV R6,#250;顯掃描次數(shù) LOOP:
MOV P0,#5BH;送2的共陰極碼 CLR P2.0;第一位顯示2 ACALL D1MS;延時1MS SETB P2.0;滅第一位
MOV P0,#3FH;送0的共陰極碼 CLR P2.1;第二位顯示0 ACALL D1MS;延時1MS SETB P2.1;滅第二位
MOV P0,#5BH;送2的共陰極碼 CLR P2.2;第三位顯示2 ACALL D1MS;延時1MS SETB P2.2;滅第三位
MOV P0,#6DH;送5的共陰極碼 CLR P2.3;第四位顯示5 ACALL D1MS;延時1MS SETB P2.3;滅第四位
DJNZ R7,LOOP;不夠一秒,繼續(xù)掃描 NEXTNUMBER;到一秒顯示下一個數(shù) D1MS:;1MS延時程序
STAT1:MOV R4,#2 MOV R3,#250 DJNZ R3,$ DJNZ R4,STAT1 RET
3.3.4緊急轉(zhuǎn)換開關(guān)電路
一般情況下交通燈按照車流量大小合理分配通行時間,按一定規(guī)律變化,但考慮緊急車通行車況,設(shè)計緊急通行開關(guān),下面簡述單片機的中斷原理。
1、Mcs—51的中斷源
8051有5個中斷源,它們是兩個外中斷INT0(P3.2)和INT1(P3.3)、兩個片內(nèi)定時/計數(shù)器溢出中斷TF0和TF1,一個是片內(nèi)串行口中斷TI或RI,這幾個中斷源由TCON和SCON兩個特殊功能寄存器進行控制,其中5個中斷源的程序 11 入口地址如表2所示:
表2 中斷源程序入口 中斷源的服務(wù)程序入口地址 中斷源 外中斷0 定時/計數(shù)器0 外中斷1 定時/計數(shù)器0 串行口中斷
2、中斷的處理流程
CPU響應(yīng)中斷請求后,就立即轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。不同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:
1)現(xiàn)場保護和現(xiàn)場恢復(fù):
中斷是在執(zhí)行其它任務(wù)的過程中轉(zhuǎn)去執(zhí)行臨時的任務(wù),為了在執(zhí)行完中斷服務(wù)程序后,回頭執(zhí)行原先的程序時,知道程序原來在何處打斷的,各有關(guān)寄存器的內(nèi)容如何,就必須在轉(zhuǎn)入執(zhí)行中斷服務(wù)程序前,將這些內(nèi)容和狀態(tài)進行備份——即保護現(xiàn)場。中斷開始前需將有關(guān)寄存器的內(nèi)容壓入堆棧進行保存,以便在恢復(fù)原來程序時使用。中斷服務(wù)程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場內(nèi)容從堆棧中彈出,恢復(fù)積存器和存儲單元的原有內(nèi)容,這就是現(xiàn)場恢復(fù)。如果在執(zhí)行中斷服務(wù)時不是按上述方法進行現(xiàn)場保護和恢復(fù)現(xiàn)場,就會是程序運行紊亂,單片機不能正常工作。
2)中斷打開和中斷關(guān)閉:
在中斷處理進行過程中,可能又有新的中斷請求到來,這里規(guī)定,現(xiàn)場保護和現(xiàn)場恢復(fù)的操作是不允許打擾的,否則保護和恢復(fù)的過程就可能使數(shù)據(jù)出錯,為此在進行現(xiàn)場保護和現(xiàn)場恢復(fù)的過程中,必須關(guān)閉總中斷,屏蔽其它所有的中斷,待這個操作完成后再打開總中斷,以便實現(xiàn)中斷嵌套。
3)中斷服務(wù)程序:
既然有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容,一般以子程序的形式出現(xiàn),所有的中斷都要轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,進行中斷服務(wù)。
4)中斷返回:
入口地址 0003H 000BH 0013H 001BH 0023H 執(zhí)行完中斷服務(wù)程序后,必然要返回,中斷返回就是被程序運行從中斷服務(wù)程序轉(zhuǎn)回到原工作程序上來。在MCS-51單片機中,中斷返回是通過一條專門的指令實現(xiàn)的,自然這條指令是中斷服務(wù)程序的最后一條指令。
5)交通燈中的中斷處理流程:(1)現(xiàn)場保護和現(xiàn)場恢復(fù):
有特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場,包括信號燈和時間顯示電路。
(2)中斷打開和中斷關(guān)閉:
為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。
(3)中斷服務(wù)程序:
有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向為紅燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向為紅燈。
(4)中斷返回:
執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài),顯示時間也和中斷前一樣。
第四章 智能交通燈軟件系統(tǒng)設(shè)計
4.1 智能交通燈的軟件設(shè)計流程圖
智能交通燈的軟件設(shè)計流程圖如圖8所示:
圖8交通燈的軟件設(shè)計流程圖
4.2 程序源代碼
見附錄
第五章 智能交通燈方案的仿真
PROTEUS嵌入式系統(tǒng)仿真軟件在設(shè)計時已經(jīng)注意到和單片機各種編譯程序的整合了,如它可以和Keil ,Wave6000等編譯模擬軟件結(jié)合使用。由于Wave6000使用方便,具備強大的軟件仿真和硬件仿真功能。把Proteus和Wave6000結(jié)合起來調(diào)試硬件就方便多了,這里就是采用“Proteus+Wave6000”的仿真方法,具體步驟如下:
1)首先運行PROTEUS VSM 的ISIS,選擇Source→Define Code Generation Tool 菜單項,將出現(xiàn)如圖8所示定義代碼生成工具對話框。
圖9 定義代碼生成工具對話框
在Tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處理器為8051系列單片機,因此選擇ASEM51, 單擊Browse按鈕,選取Wave6000的安裝路徑。單擊OK按鈕,結(jié)束代碼生成工具的定義。
選擇Source→Add/Remove Source File 菜單項,將出現(xiàn)Add/Remove Source Code Files對話框,如圖10所示:
圖10添加/刪除源文件對話框
2)在Code Generation Tool 選項區(qū),單擊下三角按鈕,選擇ASEM51工具 單擊New按鈕,將出現(xiàn)如圖11所示對話框。
圖11 創(chuàng)建源代碼對話框
選擇用Wave6000創(chuàng)建好的AA.ASM文件,即完成了文件的創(chuàng)建。就這樣當(dāng)用Wave6000對AA.ASM 文件進行更改時每一次運行PROTEUS VSM 的ISIS對電路進行仿真時Wave6000都會對AA.ASM進行編譯,AA.HEX文件也會隨時更新。
電路圖繪制完成后, 再添加AT89C51 的應(yīng)用程序。將鼠標(biāo)移至AT89C51 上, 單擊鼠標(biāo)右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖12所示的對話框。在 Program File 欄添加編譯好的十六進制格式的程序文件AA.hex(可以接受3 種格式的文件),給AT89C51輸入晶振頻率,此處默認(rèn)為12MHZ,單擊OK 按鈕完成程序添加工作, 下面就可以進行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。PROTEUS VSM 所進行的是一種交互式仿真, 在仿真進行中可以對各控制按鈕、開關(guān)等進行操作, 系統(tǒng)對輸入的響應(yīng)會被真實的反映出來如圖13。
圖12 AT89C51添加程序文件
圖13 交通燈仿真界面
小
結(jié)
在畢業(yè)設(shè)計的整個過程中,我深切地體會到:實踐是理論運用的最好檢驗。畢業(yè)設(shè)計是對我們3年所學(xué)知識的一次綜合性測試和考驗,無論是在動手能力方面還是理論知識的運用能力方面,都使得我有了很大的提高。
經(jīng)過總結(jié)和分析,我意識到在設(shè)計程序之前,對所用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。本次畢業(yè)設(shè)計為我的大學(xué)生活畫上了圓滿的句號,為我即將的工作和生活奠定了堅實的基礎(chǔ)。
致謝詞
在整個畢業(yè)設(shè)計中,我得到了學(xué)校電子實驗室的大力支持,為我提供了各種所需的儀器設(shè)備。感謝學(xué)校為我們安排了本次畢業(yè)設(shè)計,讓我們的理論知識和實際操作經(jīng)驗更加緊密的結(jié)合了在一起;同時又拓展了我們的知識面。同時十分感激夏老師對我的悉心指導(dǎo)和幫助,使我能夠順利的完成此次畢業(yè)設(shè)計。此次畢業(yè)設(shè)計讓我從中受益匪淺,最后再次感謝老師對我的培養(yǎng)和教育!
參考文獻
[1] 徐愛鈞 《智能化測量控制儀表原理與設(shè)計》(第二版)[M].北京:北京航空航天大學(xué)出版社,2004年;
[2] 吳金戌、沈慶陽、郭庭吉 《8051單片機實踐與應(yīng)用》[M].北京:清華大學(xué)出版社,2002年;
[3] 謝自美 《電子線路設(shè)計·實驗·測試》(第三版)[M].武漢:華中科技大學(xué)出版社,2006年;
[4] 謝維成、楊加國 主編 《單片機原理與應(yīng)用及C51程序設(shè)計》[M].北京:清華大學(xué)出版社,2006年;
[5] 楊立、鄧振杰、荊淑霞 《微型計算機原理與接口技術(shù)》[M].中國鐵道出版社,2006年;
[6] 黃智偉 《全國大學(xué)生電子設(shè)計競賽技能訓(xùn)練》 [M].北京:北京航空航天大學(xué)出版社,2007年 [7] 高峰,《單片微型計算機與接口技術(shù)》[M].北京:科學(xué)出版社,2003; [8] 華成英、童詩白 主編,《模擬電子技術(shù)基礎(chǔ)》(第四版)[M].高等教育出版社,2006年.[9] 黃海萍、陳用昌 編 《微機原理與接口技術(shù)實驗指導(dǎo)》[M].北京:國防工業(yè)出版社,2004年
[10] 黃智偉: 《凌陽單片機設(shè)計指導(dǎo)》,北京: 北京航空航天大學(xué)出版社,2007年
附 錄
附錄A:智能交通燈控制程序:
ORG 0000H A_BIT EQU 20H;用于存放南北十位數(shù) B_BIT EQU 21H;用于存放南北十位數(shù) C_BIT EQU 22H;用于存放東西十位數(shù) D_BIT EQU 23H;用于存放東西位數(shù)
TEMP1 EQU 24H;用于存放第一二南北狀態(tài)要顯示的時間 TEMP2 EQU 25H;用于存放第一二東西狀態(tài)要顯示的時間 TEMP3 EQU 26H;用于存放第三第四南北狀態(tài)要顯示的時間 TEMP4 EQU 27H;用于存放第三第四南北狀態(tài)要顯示的時間 LJMP MAIN ORG 0003H;外部中斷0入口 LJMP INT0;跳轉(zhuǎn)到外部0中斷 ORG 0013H;外部中斷1入口 LJMP INT1;跳轉(zhuǎn)到外部1中斷 INT0: MOV A,P1;外部0中斷 PUSH ACC MOV A,P2;中斷保護 PUSH ACC MOV P1,#0FFH;清除先前狀態(tài) MOV P2,#0FFH CLR P1.0 CLR P1.4;南北通行,東西禁止通行 CLR P1.6 CLR P2.3 JNB P3.2 ,$;判斷是否還在中斷狀態(tài) POP ACC MOV P2,A;返回中斷前狀態(tài) POP ACC MOV P1,ACC RETI;中斷返回 INT1:MOV A,P1;外部1中斷 PUSH ACC;中斷保護 MOV A,P2 PUSH ACC MOV P1,#0FFH;清除先前狀態(tài) MOV P2,#0FFH CLR P1.2 CLR P2.1 CLR P1.3;東西通行,南北禁止通行 CLR P1.5 JNB P3.3 ,$;判斷是否還在中斷狀態(tài) POP ACC MOV P2,A;返回中斷前狀態(tài) POP ACC MOV P1,A RETI;中斷返回 MAIN: ORG 0100H;初始情況 MOV P1,#0FFH MOV P2,#0FFH;滅所有燈
MOV TMOD,#55H;計數(shù)方式方式1 MOV IE,#85H;開中斷 MOV TEMP1,#20;MOV TEMP2,#25 MOV TEMP3,#25 MOV TEMP4,#20 STAR: MOV P1,#0FFH MOV P2,#0FFH;滅所有燈 MOV A,24H;將顯示時間送A CJNE A,#20,T40T;判斷時間,選初始值
T20T:;南北通行要顯示的時間為20的計數(shù)器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1 ,#0FFH;送20秒時的初始值
MOV TL1 ,#0FCH;在些設(shè)計20秒6輛為多車 MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP20;跳到20秒
T40T:;南北通行要顯示的時間為40的計數(shù)器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1,#0FFH;送40秒時的初始值
MOV TL1 ,#0F8H;在些設(shè)計40秒8輛為多車 MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP40;跳到40秒 TEMP20:;TEMP1=20情況 SETB TR0;開始計數(shù) SETB TR1 CLR P1.2 CLR P2.1;南北通行,東西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#20;南北要顯示的時間,MOV TEMP2,#25;東西要顯示的時間 STLOP: ACALL DISPLAY1;調(diào)用顯示
DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR2;若顯示時間為 0跳到第二狀態(tài) NEXT: LJMP STLOP STAR2:;狀態(tài)1 SETB P1.2 CLR P1.1;南北黃燈,東西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要顯示的時間,MOV TEMP2,#05;東西要顯示的時間,STLOP2: ACALL DISPLAY1;調(diào)用顯示
DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT2;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T40;判斷南北是否多車 JB TF0 ,T40;判斷北南是否多車
MOV TEMP1,#20;少車下次顯示時間為20秒 LJMP STAR3;跳到狀態(tài)3 T40: MOV TEMP1,#40;多車下次顯示時間為40秒 LJMP STAR3;若顯示時間為 0跳到第三狀態(tài) NEXT2:LJMP STLOP2 TEMP40:;TEM=40 程序 SETB TR0;開始計數(shù) SETB TR1 CLR P1.2 CLR P2.1;南北通行,東西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#40;南北要顯示的時間,MOV TEMP2,#45;東西要顯示的時間 STLOP11: ACALL DISPLAY1;調(diào)用顯示
DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT11;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR22;若顯示時間為 0跳到第二狀態(tài) NEXT11: LJMP STLOP11 STAR22:;狀態(tài)1 SETB P1.2 CLR P1.1;南北黃燈,東西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要顯示的時間,MOV TEMP2,#05;東西要顯示的時間,STLOP22: ACALL DISPLAY1;調(diào)用顯示
DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT22;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T401;判斷是否多車 JB TF0 ,T401 MOV TEMP1,#20;少車下次顯示時間為20秒 LJMP STAR3 T401:MOV TEMP1,#40;多車下次顯示時間為40秒 LJMP STAR3;若顯示時間為 0跳到第三狀態(tài) NEXT22:LJMP STLOP22 STAR3: MOV A,26H CJNE A,#25,T40T1;判斷時間,選初始值
T20T1:;南北通行要顯示的時間為20的計數(shù)器初始值 CLR TF0;清溢出位 CLR TF1 MOV TH1 ,#0FFH;給初值 MOV TL1 ,#0FCH MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP320 T40T1:;南北通行要顯示的時間為40的計數(shù)器初始值 CLR TF0;CLR TF1 MOV TH1,#0FFH;給初值 MOV TL1 ,#0F8H MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP340 TEMP320:;狀態(tài)三
SETB TR1;南北停止計數(shù) SETB TR0;東西開始計數(shù)
SETB P1.1;東西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#25;南北要顯示的時間,MOV TEMP4,#20;東西要顯示的時間,STLOP33: ACALL DISPLAY;調(diào)用顯示
DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT33;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR34;若顯示時間為 0跳到第四狀態(tài) NEXT33:LJMP STLOP33 STAR34:;狀態(tài)四 SETB P2.3 CLR P2.2 SETB P1.6;東西黃燈,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要顯示的時間,MOV TEMP4,#05;東西要顯示的時間,STLOP34: ACALL DISPLAY;調(diào)用顯示
DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT34;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T402 JB TF0 ,T402 MOV TEMP3,#25 LJMP STAR T402: MOV TEMP3,#45 LJMP STAR NEXT34: LJMP STLOP34 TEMP340 : SETB TR1;南北停止計數(shù) SETB TR0;東西開始計數(shù)
SETB P1.1;東西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#45;南北要顯示的時間,MOV TEMP4,#40;東西要顯示的時間,STLOP43: ACALL DISPLAY;調(diào)用顯示
DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT43;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR44;若顯示時間為 0跳到第四狀態(tài) NEXT43:LJMP STLOP43 STAR44:;狀態(tài)四 SETB P2.3 CLR P2.2 SETB P1.6;東西黃燈,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要顯示的時間,MOV TEMP4,#05;東西要顯示的時間,STLOP44: ACALL DISPLAY;調(diào)用顯示
DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP3 CJNE A,#0,NEXT44;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T403 JB TF0 ,T403 MOV TEMP3,#25 LJMP STAR T403: MOV TEMP3,#45 LJMP STAR NEXT44: LJMP STLOP44;顯示 DISPLAY1: MOV A,TEMP1;將南北要顯示的數(shù)存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數(shù)B MOV B_BIT,A;將A放到20H MOV A_BIT,B;將B放到21H MOV A,TEMP2;將東西要顯示的數(shù)存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數(shù)B MOV C_BIT,A;將A放到22H MOV D_BIT,B;將B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL11: MOV R1,#250;R1=250 DPLOP1: MOV A,A_BIT;將南北要顯示的10位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示南北10位數(shù) CLR P2.7 ACALL D1MS;延時1MS SETB P2.7;滅南北10位數(shù)
MOV A,B_BIT;將南北要顯示的個位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示南北個位數(shù) CLR P2.6 ACALL D1MS;延時1MS SETB P2.6;滅南北個位數(shù)
MOV A,C_BIT;將東西要顯示的10位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示東西10位數(shù) CLR P2.5 ACALL D1MS;延時1MS SETB P2.5;滅東西10位數(shù)
MOV A,D_BIT;將東西要顯示的個位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示東西東西位數(shù) CLR P2.4 ACALL D1MS;延時1MS SETB P2.4;滅東西個位數(shù) DJNZ R1,DPLOP;循環(huán)掃描 DJNZ R0,DPL1 RET;;等待1秒返回 顯示 DISPLAY: MOV A,TEMP3;將南北要顯示的數(shù)存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數(shù)B MOV B_BIT,A;將A放到20H MOV A_BIT,B;將B放到21H MOV A,TEMP4;將東西要顯示的數(shù)存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數(shù)B MOV C_BIT,A;將A放到22H MOV D_BIT,B;將B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL1: MOV R1,#250;R1=250 DPLOP: MOV A,A_BIT;將南北要顯示的10位數(shù)送A MOVC A,@A+DPTR;查表 MOV P0,A;顯示南北10位數(shù) CLR P2.7 ACALL D1MS;延時1MS SETB P2.7;滅南北10位數(shù)
MOV A,B_BIT;將南北要顯示的個位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示南北個位數(shù) CLR P2.6 ACALL D1MS;延時1MS SETB P2.6;滅南北個位數(shù)
MOV A,C_BIT;將東西要顯示的10位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示東西10位數(shù) CLR P2.5 ACALL D1MS;延時1MS SETB P2.5;滅東西10位數(shù)
MOV A,D_BIT;將東西要顯示的個位數(shù)送A MOVC A,@A+DPTR;查表
MOV P0,A;顯示東西東西位數(shù) CLR P2.4 ACALL D1MS;延時1MS SETB P2.4;滅東西個位數(shù) DJNZ R1,DPLOP;循環(huán)掃描 DJNZ R0,DPL1 RET;等待1秒返回
D1MS: MOV R7,#250;1MS延時程序 DJNZ R7,$ RET;
1到10對應(yīng)電路圖數(shù)碼管表
NUMT: DB 7EH,48H,67H,6BH,59H DB 3BH,3FH,68H,7FH,7BH
中英文摘要---目錄---引言----研究現(xiàn)狀---背景----思路---整體原理---部分電路介紹--程序介紹----總結(jié)---------------謝詞==參考文獻===附件 可以聯(lián)系我,有程序。仿真,原理圖,等
.南北方向綠燈和東西方向綠燈不能同時亮,如果同時亮,則立刻關(guān)閉信號燈系統(tǒng),并報警。同理,東西向綠燈與南北向轉(zhuǎn)彎燈也不能同時亮。
2.南北及南北轉(zhuǎn)彎紅燈亮并保持40秒,同時東西綠燈亮,但只保持35秒,到35秒時東西綠燈閃3次(每周期為1秒)后熄滅,繼而東西黃燈亮,并保持2秒,到2秒后,東西黃燈滅,東西紅燈亮,同時南北紅燈熄滅和南北綠燈亮;南北轉(zhuǎn)彎紅燈繼續(xù)亮著。
3.東西及南北轉(zhuǎn)彎紅燈亮并保持30秒,同時南北綠燈亮,但只保持25秒,到25秒時南北綠燈閃亮3次(每周期1秒)后熄滅,繼而南北黃燈亮,并保持2秒,到2秒后,南北黃燈滅,南北紅燈亮,同時南北向轉(zhuǎn)彎紅燈滅,綠燈亮。
4.南北向轉(zhuǎn)彎綠燈亮25秒,同時南北向和東西向紅燈亮并保持25秒,待南北向轉(zhuǎn)彎綠燈亮25秒后,紅燈亮起,東西向紅燈滅,綠燈亮,并保持35秒,南北向紅燈繼續(xù)亮著,后接2.中繼續(xù)循環(huán)。
5.各燈能手動控制也能自動轉(zhuǎn)換,并且能周而復(fù)始的進行工作。緒論
1.1 道路交通控制的發(fā)展背景
隨著經(jīng)濟發(fā)展,城市化速度加快,機動車輛占有量急劇增加,由此引發(fā)出日益嚴(yán)重的交通問題:交通擁擠甚至堵塞,交通事故頻繁,空氣和噪聲污染嚴(yán)重,公共運輸系統(tǒng)效率下降等。解決這一問題通常有兩種辦法,一種是修路造橋,這對道路交通狀況的改善是一種最直接的辦法,但它需要巨額的投資,且在城市中心區(qū)受拆遷的限制,很難實施.另一種是在現(xiàn)有的道路交通條件下,實施交通控制和管理,充分發(fā)揮現(xiàn)有道路的通行能力,大量事實已經(jīng)證明這種方法的有效性。
通常,一個經(jīng)驗豐富的交通警察能在極短的時間內(nèi)把一個交叉路口的交通阻塞緩解或解除,但他的作用范圍往往局限于單個交叉路口。而現(xiàn)代的道路交通非常復(fù)雜,常常是幾個或幾十個甚至是成百上千個路口互相關(guān)聯(lián),在這種情況下,任何一個經(jīng)驗豐富的交通警察都無能為力了.因此,人們越來越關(guān)注把先進的科學(xué)技術(shù)用于交通管理,從而促進了交通自動控制技術(shù)的不斷發(fā)展。
1.2 道路交通控制的目的和作用
道路交通控制的目的可定義為:在確定的行政規(guī)定約束下,采用合適的營運 方法來確保公共和私人運輸方式具有最佳的交通運行狀態(tài)。圍繞這一目的研制出的道路交通控制系統(tǒng),把受控對象看成一個整體,采用對交通流科學(xué)地時間分割的方法,最大限度地保證交通流運動的連續(xù)性,使受控區(qū)域的交通流減少沖突,同時平穩(wěn)地、有規(guī)則地運動。道路交通控制的作用主要表現(xiàn)為以下幾個方面:
(1)改善交通秩序,增加交通安全。
(2)減少交通延誤,提高經(jīng)濟效益。
(3)降低污染程度,保護生態(tài)環(huán)境。(4)節(jié)省能源和土地消耗。
1.3 我國城市交通特點分析
人、車、路是構(gòu)成城市交通的三大要素,要探討我國城市交通特點,必須從分析這三大要素的基本特點著手。
1.3.1 人的交通素質(zhì)
人是交通的主體,與世界發(fā)達國家相比,我國人的社會交通意識還沒有真正形成,少數(shù)領(lǐng)導(dǎo)部門交通觀念淡薄,對城市交通建設(shè)在國民經(jīng)濟建設(shè)中的重要性認(rèn)識不足,交通政策時有失誤。機動車駕駛員文化水平低,又缺乏系統(tǒng)訓(xùn)練,尤其缺乏心理素質(zhì),感知能力和判斷能力的培養(yǎng),因而,對人,車的運動特征不能很好掌握。行人與非機動車駕駛員普遍不懂,甚至漠視交通法規(guī)。交通管理人員交通工程和心理學(xué)知識貧乏,感知,分析交通信息和處理特發(fā)性事件的能力不強??偟膩砜矗覈说慕煌ㄋ刭|(zhì)距離現(xiàn)代化城市交通要求還相差甚遠,而交通與人密切相關(guān),城市交通中出現(xiàn)的問題幾乎都離不開人的因素,因此,想方設(shè)法提高全社會的文化素質(zhì),健全交通法規(guī),加強交通宣傳教育,增強人的社會交通意識,培養(yǎng)良好的交通習(xí)慣,使參與交通的每個人都認(rèn)識到交通的重要性,自覺順應(yīng)交通規(guī)律,是建立我國城市交通控制系統(tǒng),使之有效運行的前提條件。
1.3.2 城市道路狀況
路是交通的物質(zhì)基礎(chǔ),有路才能通車,行人。我國是一個文明古國,許多城市已有上千年的歷史,城市布局和道路結(jié)構(gòu)是在漫長的歷史進程中逐步形成的,近幾年雖然作了些改建和擴建,但畢竟還難以沖破原來的基本格局。我國城市道路普遍存在的弊端是:
(1)路網(wǎng)密度低
(2)交通干道少
(3)路口平面交叉
1.3.3 我國城市交通的特殊性
道路狀況與車輛狀況的綜合作用形成了我國城市交通的特殊性,主要表現(xiàn)是:
城市路網(wǎng)稀,干道少,間距大,市區(qū)人口稠密,出行需求集中,迫使車輛集中于少數(shù)干道上行駛。至于中小城市,干道特征更為明顯,往往只有一兩條干道貫穿全市,而其他支路上交通量極小。從流量變化情況來看,除外圍過境干道外,都是有一定規(guī)律的,高峰小時基本上都集中在幾個時段內(nèi)。
我國城市機動車車種繁雜,從50年代的老式車到80年代的新型車,從大貨車到小轎車 30 都在一個平面上行駛,不少城市拖拉機還是一種主要運輸工具,前面一輛舊車擋道,尾隨的新型車只能跟著爬行,過交叉口時經(jīng)常出現(xiàn)啟動慢的車擋住啟動快的車,使交通工程師精心設(shè)計的交通配時方案不能很好發(fā)揮效益。
1.4 我國城市交通控制策略探討
本著不盲目照搬現(xiàn)成系統(tǒng)的經(jīng)驗,或一味追求控制策略與原理的新穎性,而是根據(jù)我國城市交通的實際情況,從簡從易,逐步完善的原則,我國城市交通控制策略宜采?。?/p>
(1)根據(jù)干道特征明顯的特點,系統(tǒng)以線控制為主。
(2)根據(jù)干線上交通流有規(guī)律可循的特點,系統(tǒng)以定時控制為主。
(3)根據(jù)車種混雜和路網(wǎng)稀,路口間距相差懸殊,難以建立精確交通預(yù)測模型的特點,系統(tǒng)應(yīng)加強路口應(yīng)變能力,強化感應(yīng)控制功能。
(4)根據(jù)機非混合交通特點,系統(tǒng)要處理好自行車交通,常用的方法有: 1)實現(xiàn)自行車與機動車的分離
自行車與機動車的突出矛盾在于混行,要在我國現(xiàn)有道路基礎(chǔ)上,開辟出規(guī)模龐大的自行車道路網(wǎng)是不現(xiàn)實的,但各城市確有許多小街小巷可利用,對它們進行合理規(guī)劃,造成自行車專用道,消除或減少自行車與機動車的相互干擾是可能的。
2)增設(shè)左轉(zhuǎn)相位
對機動車干擾最大的是 左 轉(zhuǎn)自行車,在自行車高峰時,對左 轉(zhuǎn)自行車流較大的路口增設(shè) 左 轉(zhuǎn)相位,時間不需很長便可利用自行車啟動,疏散快的特點,使左轉(zhuǎn)自行車基本通過。
3)控制信號分時使用
自行車與機動車高峰出現(xiàn)時間是交錯的,在自行車高峰期間,自行車是構(gòu)成交通流的主體,系統(tǒng)進行信號配時優(yōu)化時,可優(yōu)先考慮自行車。
(5)可能的系統(tǒng)結(jié)構(gòu)
確定系統(tǒng)的硬件結(jié)構(gòu)主要是依據(jù)系統(tǒng)控制策略要求,系統(tǒng)成本分析和城市的財政承受能力,同時也要受到系統(tǒng)管理維護人員技術(shù)水平的制約??v合考慮,我國城市采用兩級控制結(jié)構(gòu)為宜,即由中心計算機和終端——交通信號控制器組成,信號配時方案存于終端中,終端將處理好的檢測器數(shù)據(jù)和交叉口工作狀態(tài)數(shù)據(jù)定時傳送至中心計算機,中心計算機經(jīng)優(yōu)化計算后給出下一個配時方案指令,由交通信號控制器執(zhí)行。這種結(jié)構(gòu)形式的突出優(yōu)點是:
1)減少數(shù)據(jù)傳輸量,控制中心與終端間只需低容量傳輸系統(tǒng)即可有效地進行數(shù)據(jù)通信。
2)主要控制和處理功能由終端——交通信號控制器完成,大大減輕了中心計算機的負(fù)擔(dān),只要配置功能稍強的微機系統(tǒng)即可建成一個相當(dāng)規(guī)模的控制系統(tǒng)。
按上述設(shè)想建立起來的將是一個旨在解決機非混合交通問題,以線控制為主,方案選擇型實時自適應(yīng)城市交通控制系統(tǒng)。
(6)可能出現(xiàn)的動向
1)系統(tǒng)功能的縮小
我國建制市370多個,絕大多數(shù)還難以投入足夠的資金建立一個功能齊備的控制系統(tǒng),從幾個引進系統(tǒng)的實施情況來看,并不需要,實際上也沒有用到這些系統(tǒng)的全部功能,因此,系統(tǒng)發(fā)展的一個可能趨勢是系統(tǒng)功能的縮小,國外也提出了基本系統(tǒng)的概念,基本系統(tǒng)不以交通應(yīng)答作為基本設(shè)計依據(jù),只是按照一天內(nèi)劃分的時段或根據(jù)控制中心的人工干預(yù)執(zhí)行簡單的時間表,因而不需車輛檢測器和大量的數(shù)據(jù)處理。功能縮小后的系統(tǒng)不需配置動態(tài)地圖顯示板等外圍設(shè)備,便于控制中心主機微機化,耗資少,使用方便,對我國大中城市有很吸引力。
2)交通信號控制器微機化、系列化
我國有2000多個縣,每個縣都有幾個城鎮(zhèn),計算機區(qū)域控制目前對這些小城市來說是不現(xiàn)實的,以微機為基礎(chǔ)的交通信號控制器功能靈活,便于實現(xiàn)無電纜協(xié)調(diào)控制,必將成為小城市交通控制的主體。大中小城市對信號控制器的使用要求不同,對交通信號控制器的微機化,系列化勢在必行。
本論文正是以此為出發(fā)點,對單片機控制的交通信號燈模型作了較詳盡的介紹。