摘 要: 采用STC89C52單片機(jī)結(jié)合LM2596-5.0開關(guān)電壓調(diào)節(jié)器,、DS12C887時(shí)鐘芯片、AT24C64串行存儲(chǔ)器,、74HC595移位寄存器以及接觸式IC卡等器件,實(shí)現(xiàn)了對(duì)機(jī)場(chǎng)車輛速度的實(shí)時(shí)顯示以及超速后的自行報(bào)警,,并將超速情況以數(shù)據(jù)的形式存儲(chǔ)到存儲(chǔ)器中,可用IC卡對(duì)數(shù)據(jù)進(jìn)行讀取,。該系統(tǒng)通過超速報(bào)警來提醒司機(jī)減速,,從而減少車輛刮碰飛機(jī)等事件的發(fā)生。
關(guān)鍵詞: STC單片機(jī),;I2C總線,;接觸式IC卡
隨著民航業(yè)的發(fā)展,航空器的數(shù)量不斷增多,,地面保障車輛隨之增加,,加之機(jī)場(chǎng)車輛行駛速度過快,導(dǎo)致刮碰飛機(jī)的不安全事件時(shí)有發(fā)生,,直接影響了飛機(jī)的持續(xù)適航,,嚴(yán)重危及航空公司的運(yùn)行安全,同時(shí)也造成了一定的經(jīng)濟(jì)損失,。為了減少此類不安全事件的發(fā)生,,本設(shè)計(jì)利用單片機(jī)實(shí)現(xiàn)車輛的超速報(bào)警來提醒司機(jī)減速行駛,,并將超速情況實(shí)時(shí)記錄下來作為評(píng)價(jià)車輛駕駛員的依據(jù)之一,以便于對(duì)員工進(jìn)行管理,。
1 系統(tǒng)的硬件設(shè)計(jì)
1.1 系統(tǒng)功能
系統(tǒng)實(shí)現(xiàn)的主要功能如下:
(1)按鍵調(diào)整時(shí)間以及實(shí)時(shí)顯示時(shí)間,;
(2)實(shí)時(shí)顯示車輛行駛的速度;
(3)當(dāng)車輛超過規(guī)定的速度值時(shí),,違規(guī)情況以數(shù)據(jù)形式保存在串行存儲(chǔ)器中,,并發(fā)出聲音警報(bào),同時(shí)警報(bào)燈閃爍,;
(4)管理人員使用IC卡讀取車輛的違規(guī)情況并取消報(bào)警,。
1.2 系統(tǒng)硬件的總體設(shè)計(jì)
系統(tǒng)的總體結(jié)構(gòu)如圖1所示。它采用STC89C52單片機(jī)為主控芯片,,主要有電源模塊,、信號(hào)采集模塊、時(shí)鐘模塊,、LED顯示模塊,、按鍵模塊、報(bào)警模塊,、AT24C64串行存儲(chǔ)器模塊和接觸式IC卡存儲(chǔ)模塊,。其中STC89C52主要完成對(duì)外圍硬件的控制以及信息處理功能;電源模塊將12 V車載電源降壓至5 V單片機(jī)工作電源,;信號(hào)采集模塊使用TLP521光電耦合器將采集到的高電平脈沖信號(hào)轉(zhuǎn)換為5 V脈沖信號(hào),;時(shí)鐘模塊提供LED顯示的實(shí)時(shí)時(shí)間;LED顯示模塊使用74HC595驅(qū)動(dòng)數(shù)碼管實(shí)現(xiàn)時(shí)間和速度的顯示,;按鍵模塊主要用來調(diào)整時(shí)間,;報(bào)警模塊實(shí)現(xiàn)超速后的聲音報(bào)警和閃燈警示;AT24C64串行存儲(chǔ)器對(duì)超速信息進(jìn)行存儲(chǔ),;接觸式IC卡存儲(chǔ)器可讀取AT24C64中的數(shù)據(jù),讀取完數(shù)據(jù)即可取消報(bào)警,。
1.2.1 主控模塊
主控模塊主要采用STC89C52單片機(jī)[1-2],,該單片機(jī)有4個(gè)并行I/O端口,每個(gè)端口有8條端口線,,其中P0端口在沒有外存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O端口使用,,外接存儲(chǔ)器時(shí)可作為地址線/數(shù)據(jù)線使用;P1,、P2和P3端口均可作為8位準(zhǔn)雙向I/O端口使用,,P3口和其他I/O端口有很大區(qū)別,除作為一般I/O口外,,每個(gè)引腳還有專門的功能,。所有的外部芯片都可以通過這些端口進(jìn)行擴(kuò)展,。
1.2.2 電源模塊
電源模塊使用LM2596開關(guān)電壓調(diào)節(jié)器,該調(diào)節(jié)器是降壓型電源管理單片集成電路,,能夠輸出3 A的驅(qū)動(dòng)電流,,同時(shí)具有很好的線性和負(fù)載調(diào)節(jié)特性。該系統(tǒng)中選擇固定輸出5 V版本,,即調(diào)節(jié)器型號(hào)為L(zhǎng)M2595-5.0,。該器件內(nèi)部集成頻率補(bǔ)償和固定頻率發(fā)生器,開關(guān)頻率為150 kHz,,與低頻開關(guān)調(diào)節(jié)器相比較,,可以使用更小規(guī)格的濾波元件。由于該器件只需4個(gè)外接元件,,極大地簡(jiǎn)化了開關(guān)電源電路的設(shè)計(jì),。原理圖如圖2所示。
1.2.3 信號(hào)采集模塊
目前機(jī)場(chǎng)車輛轉(zhuǎn)速傳感器大多使用霍爾傳感器,,其輸出信號(hào)為脈沖信號(hào),,脈沖信號(hào)的高電平值基本與車載電源電壓值相同,需要通過光電耦合器將其轉(zhuǎn)換為單片機(jī)可采集的5 V脈沖信號(hào)[3],。如圖3所示,,Signal為轉(zhuǎn)速傳感器實(shí)際輸出的信號(hào),轉(zhuǎn)換后的信號(hào)與單片機(jī)INT1/P3.3引腳連接,,通過外部中斷功能記錄脈沖數(shù)并通過計(jì)算轉(zhuǎn)換為速度值,。
1.2.4 時(shí)鐘模塊
時(shí)鐘模塊使用DS1302浚流充電時(shí)鐘芯片,該芯片包含一個(gè)RTC/日歷和31 B的靜態(tài)RAM,。它通過簡(jiǎn)單的串行接口與微處理器通信,。RTC/日歷提供秒、分,、小時(shí),、天、日期,、月和年,。如果當(dāng)月天數(shù)小于31天將自動(dòng)進(jìn)行調(diào)整,包含閏年校正,。時(shí)鐘可以工作在24小時(shí)制和12小時(shí)制,,12小時(shí)制下用AM/PM來指示,該系統(tǒng)中選擇使用24小時(shí)制,。
在DS1302和微處理器之間使用同步串行方式進(jìn)行通信,。只需要3條線就可以通信,分別為RST(reset),、I/O(數(shù)據(jù)線)和SCLK(串行時(shí)鐘),,Vcc1連接至3 V備用電源,,在主電源Vcc2供應(yīng)失效時(shí),備用電源以保持時(shí)間和數(shù)據(jù),,原理圖如圖4所示,。
1.2.5 LED顯示模塊
LED顯示模塊使用2片74HC595級(jí)聯(lián)驅(qū)動(dòng)8位LED數(shù)碼管[4],前6位數(shù)碼管顯示實(shí)時(shí)時(shí)間,,后2位顯示速度值,。
74HC595芯片是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的通用移位寄存器芯片。并行輸出端具有輸出鎖存功能,,與單片機(jī)連接簡(jiǎn)單方便,,只需3個(gè)I/O口即可。本系統(tǒng)采用2片74HC595芯片級(jí)聯(lián),,一片用于段碼的傳輸,,另外一片用于數(shù)碼管位選。原理圖如圖5所示,。
1.2.6 按鍵模塊
按鍵模塊采用三個(gè)獨(dú)立按鍵,,實(shí)現(xiàn)時(shí)間的調(diào)整。S2為功能鍵,,通過此鍵來選取要調(diào)整的小時(shí),、分鐘和秒,調(diào)整完畢后此鍵還有確定功能,;S3為增加鍵,,當(dāng)功能鍵選定后,按此鍵來增加選定項(xiàng)值,;S4鍵用以減小選定項(xiàng)的值,。各項(xiàng)功能均通過軟件實(shí)現(xiàn),原理電路較簡(jiǎn)單,,如圖6所示,。
1.2.7 報(bào)警模塊
報(bào)警模塊采用三極管驅(qū)動(dòng)蜂鳴器,三極管驅(qū)動(dòng)繼電器并通過繼電器控制12 V的LED警示燈,,原理圖如圖7所示,。
1.2.8 AT24C64串行存儲(chǔ)器模塊和接觸式IC卡存儲(chǔ)模塊
單片機(jī)在工作時(shí),因某種原因造成突然掉電,將會(huì)丟失數(shù)據(jù)存儲(chǔ)器(RAM)里的數(shù)據(jù)。雖然單片機(jī)主電源里有大容量濾波電容器,當(dāng)?shù)綦姇r(shí),單片機(jī)靠貯存在電容器里的能量,一般能維持工作10 ms 左右,。為此,要求一旦系統(tǒng)發(fā)生瞬間斷電時(shí),必須要在小于10 ms的時(shí)間內(nèi)將RAM中的數(shù)據(jù)及時(shí)地轉(zhuǎn)存到EEPROM數(shù)據(jù)寄存器中,以確保車輛超速信息的完整度。在本系統(tǒng)中,,采用AT24C64存儲(chǔ)器對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),。
IC卡存儲(chǔ)模塊中使用24C64 IC卡對(duì)數(shù)據(jù)進(jìn)行讀取。AT24C64存儲(chǔ)器及IC卡均通過I2C總線接口進(jìn)行操作,,由于IC卡器件地址只能為默認(rèn)的000,,所以通過將AT24C64的A0接VCC改變其器件地址為001,,IC卡座的10管腳與單片機(jī)P3.2引腳連接,使用外部中斷0執(zhí)行插卡后的數(shù)據(jù)讀取操作,,LED0為插卡指示燈,。原理圖如圖8所示。
2 系統(tǒng)的軟件設(shè)計(jì)
整個(gè)系統(tǒng)的軟件采用結(jié)構(gòu)化和模塊化設(shè)計(jì)方法,。整個(gè)軟件系統(tǒng)采用C語(yǔ)言編程,,包括一個(gè)主模塊和3個(gè)子模塊,3個(gè)子模塊分別是鍵盤掃描,、時(shí)鐘程序模塊和I2C協(xié)議程序,。總體軟件流程圖如圖9所示,。
主模塊包括單片機(jī)初始化,、信號(hào)采集、速度顯示,、超速報(bào)警程序以及插卡判斷與執(zhí)行程序,;鍵盤掃描程序?qū)崿F(xiàn)對(duì)時(shí)間的調(diào)整,為了安全起見只允許在車輛靜止時(shí)對(duì)時(shí)間進(jìn)行調(diào)整,;時(shí)鐘程序模塊主要包括時(shí)鐘芯片的初始化,、時(shí)間數(shù)據(jù)的讀取與寫入程序以及實(shí)時(shí)顯示;74HC595驅(qū)動(dòng)顯示程序是將顯示緩沖區(qū)的BCD碼經(jīng)查表譯碼后送數(shù)碼管顯示,;I2C協(xié)議程序主要是實(shí)現(xiàn)存儲(chǔ)器與單片機(jī)之間數(shù)據(jù)的正確通信,。
本文介紹了一種基于STC單片機(jī)的車輛超速報(bào)警系統(tǒng)。經(jīng)過多次實(shí)驗(yàn),,論證了該方法的可行性和實(shí)用性,,實(shí)驗(yàn)中各項(xiàng)功能正常,運(yùn)行可靠,使用方便,效果好,達(dá)到了設(shè)計(jì)要求,。
參考文獻(xiàn)
[1] 姚榮斌,孫紅兵.基于STC89C51RC的轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)[J].連云港師范高等??茖W(xué)校學(xué)報(bào),2007(4):84-87.
[2] 張寅剛.用單片機(jī)實(shí)現(xiàn)通用存儲(chǔ)器IC卡的讀寫[J].自動(dòng)化儀表,2002,23(6):37-41.
[3] 楊青川,甄興福,李芳.I2C總線器件與非I2C總線單片機(jī)之間數(shù)據(jù)傳輸?shù)能浻布O(shè)計(jì)[J].儀表技術(shù)與傳感器,
2004(5):40-41,,48.
[4] 楊占軍.基于DS1302的數(shù)碼管時(shí)鐘電路設(shè)計(jì)[J].電子世界,2005(9):35-36.