董健
1.引言
當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。
1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。
電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。
1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。
2.系統(tǒng)總體方案及硬件設(shè)計
2.1系統(tǒng)方案的確定
交通燈在安全行車過程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈,加上一個倒計時的顯示計時器來控制行車,對于一般情況下的安全行車、車輛分流發(fā)揮著作用,但根據(jù)實際行車過程中出現(xiàn)的情況,如何全面有效地利用交通燈指示交通情況,我們嘗試用單片機來控制交通燈,在軟、硬件方面采取一些改進措施,,使交通燈在控制中靈活而有效。
硬件系統(tǒng)是指構(gòu)成單片機系統(tǒng)的實體和裝置,通常由運算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機實質(zhì)上是一個硬件的芯片,在實際應(yīng)用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個單片機應(yīng)用系統(tǒng)。該交通燈擬系統(tǒng)的硬件部分主要由鍵盤、顯示和運算部分組成。按照題目的設(shè)計要求,本課題需要使用LED數(shù)碼管顯示和擴展鍵盤。在該交通燈系統(tǒng)的設(shè)計中采用AT89s52單片機。
2.2顯示部分電路設(shè)計
靜態(tài)顯示的特點是每個數(shù)碼管必須接一個8位鎖存器用來鎖存待顯示的字型碼。送入一次字型碼顯示自行一直保持,直到送入新字型碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。各數(shù)碼管在顯示過程中持續(xù)得到顯示信號,與各數(shù)碼管接口的I/O口是專用的。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。各數(shù)碼管在顯示過程中輪流得到顯示信號,與各數(shù)碼管接口的I/O口是共用的。
2.3時鐘部分電路設(shè)計
時鐘電路用于產(chǎn)生MCS-51單片機工作時所必須的時鐘控制信號。其內(nèi)部電路在時鐘信號控制下,嚴(yán)格地按時序執(zhí)行指令進行工作。在執(zhí)行指令時,CPU首先要到程序存儲器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時序電路產(chǎn)生一系列控制信號去完成指令所規(guī)定操作。
本設(shè)計采用12MHz晶振和兩個30Pf瓷片電容,他們構(gòu)成一個穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為單片機提供標(biāo)準(zhǔn)時鐘。其中兩個瓷片電容起微調(diào)作用。
2.4復(fù)位部分電路設(shè)計
復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。
復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。
該設(shè)計采用加電直接復(fù)位,復(fù)位電容采用22uF,電阻1000歐,為了節(jié)省元件,沒有采用上電加按鍵模式。加電瞬間,RES管腳為高電平。通過電阻回路放電,使電壓逐漸降為零,從而實現(xiàn)了復(fù)位功能。
3.軟件設(shè)計
3.1應(yīng)用系統(tǒng)軟件設(shè)計要求
在進行應(yīng)用系統(tǒng)的總體設(shè)計時,軟件設(shè)計與硬件設(shè)計應(yīng)統(tǒng)一考慮,相結(jié)合進行。當(dāng)系統(tǒng)的電路設(shè)計定型以后,軟件的任務(wù)也就明確了。
一般來說,軟件的功能可分為兩大類。一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量計算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織協(xié)調(diào)角色。
我們設(shè)計時,應(yīng)從以下幾個方面考慮:
1)根據(jù)軟件功能的要求,將系統(tǒng)軟件分為若干個相對獨立的部分。設(shè)計出合理的軟件總體結(jié)構(gòu),使其清晰、簡捷、流程合理。
2)各功能程序?qū)嵭心K化、子程序化。
3)在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。
4)要合理分配系統(tǒng)資源,包括ROM、RAM、定時器/計數(shù)器、中斷源等。
本設(shè)計采用了模塊化設(shè)計,主要由主程序模塊、功能實現(xiàn)模塊兩大部分模塊組成。
3.2主程序模塊的設(shè)計
該交通信號燈控制系統(tǒng)的四中工作狀態(tài)(南北方向的交通燈為例):
(1)南北方向A車道紅燈亮,東西方向B車道綠燈亮。表示南北方向A車道上的車輛禁止通行,東西方向B車道允許通行。綠燈亮足規(guī)定的時間隔時,控制器發(fā)出狀態(tài)信號,轉(zhuǎn)到下一工作狀態(tài)。
(2)南北方向A車道紅燈亮,東西方向B車道黃燈亮。表示東西方向B車道上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行,南北方向A車道禁止通行。黃燈亮足規(guī)定時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,轉(zhuǎn)到下一工作狀態(tài)。
(3)南北方向A車道綠燈亮,東西方向B車道紅燈亮。表示南北方向A車道允許通行,東西方向B車道上的車輛禁止通行,綠燈亮足規(guī)定的時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,轉(zhuǎn)到下一工作狀態(tài)。
(4)南北方向A車道黃燈亮,東西方向B車道紅燈亮。表示東西方向B車道禁止通行,南北方向A車道上位過限停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行。黃燈亮足規(guī)定的時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,系統(tǒng)又轉(zhuǎn)換到第(1)種工作狀態(tài)。
3.3功能實現(xiàn)模塊的設(shè)計
功能實現(xiàn)模塊主要由中斷處理子程序,鍵盤處理子程序和顯示子程序等組成。下面僅對INT0中斷服務(wù)程序部分進行簡單介紹。
P3.4與K2連接,K2與地連接。按下K2,東西南北四個方向全紅,也就是說,東西南北四個通道都不能通車,這時可對南北的總時間進行調(diào)節(jié)。K1與AT89S52的p3.3管腳相連。在按下K2的前提下,按下K1,此時顯示的是東西的總時間,并可對其調(diào)節(jié)。
4.Proteus軟件仿真
一個單片機系統(tǒng)經(jīng)過總體設(shè)計,完成了硬件和軟件開發(fā)。元器件安裝后在系統(tǒng)存儲器中放入編制好的應(yīng)用程序,系統(tǒng)即可運行。一般來說,仿真開發(fā)系統(tǒng)應(yīng)具有如下的功能:
1)用戶樣機硬件電路的診斷與檢查;
2)用戶樣機程序的輸入與修改;
3)程序的運行、調(diào)試(單步運行、設(shè)置斷點)、排錯、狀態(tài)查詢功能;
4)將程序固化到EPROM芯片中。
但對于一個較完善的仿真開發(fā)系統(tǒng),還應(yīng)具備:
1)有較全的開發(fā)軟件,同時要求用戶可用匯編語言編制應(yīng)用軟件;開發(fā)系統(tǒng)自動生成目標(biāo)文件;并配有反匯編軟件能將目標(biāo)程序轉(zhuǎn)換成匯編語言程序;有豐富的子程序可供用戶選擇調(diào)用。
2)有跟蹤調(diào)試、運行的能力。
3)為了方便模塊化軟件調(diào)試,還應(yīng)配置軟件轉(zhuǎn)儲、程序文本打印功能及設(shè)備。