用單片機(jī)實(shí)現(xiàn)公交車的自動(dòng)考核與報(bào)站
1 引言
本文引用地址:http://2s4d.com/article/172193.htm現(xiàn)今社會(huì)中,許多中小城市對(duì)公交車輛進(jìn)行考核,大都采用人工考核的方式,該方式存在諸多缺點(diǎn),例如,對(duì)車輛到達(dá)每一站的時(shí)間以及行駛途中存在的壓客、超速、超載等問(wèn)題,無(wú)法進(jìn)行有效的監(jiān)督,更重要的是它浪費(fèi)了大量的人力資源,因此,急需一種系統(tǒng)對(duì)公交車輛進(jìn)行有效的管理。
通過(guò)市場(chǎng)調(diào)查,現(xiàn)在對(duì)公交車輛進(jìn)行管理,主要有兩種方式:一是GPS自動(dòng)考核系統(tǒng),另一種是在站牌上設(shè)一信號(hào)發(fā)射裝置,供車輛到站時(shí)判別。前一種方式雖然比較先進(jìn),但其價(jià)格昂貴,對(duì)中小城市的公交公司來(lái)說(shuō),只會(huì)增加其負(fù)擔(dān)。而且更為重要的是,它需要對(duì)原有的站牌進(jìn)行改造,程序煩瑣。雖然屬于同步考核方式,但對(duì)車輛塞車等情況仍無(wú)能為力。候車乘客通過(guò)站牌雖可知道車輛與本站的距離,但到達(dá)的確切時(shí)間仍無(wú)法確定,考核效果也不理想;后一種方式利用車輛收到信號(hào)和失去信號(hào)的時(shí)間間隔判別車輛??勘菊镜臅r(shí)間,但此系統(tǒng)在實(shí)際應(yīng)用中,可以說(shuō)是效果很差,站牌上電力的供應(yīng)、發(fā)射裝置的穩(wěn)定性、車輛上接收器靈敏度的不一性及路對(duì)面站的干擾等情況都嚴(yán)重影響了考核。
近年來(lái),單片機(jī)技術(shù)迅猛發(fā)展,廣泛應(yīng)用于諸多領(lǐng)域,由于單片機(jī)具有可編程性及很好的存儲(chǔ)擴(kuò)展性等許多優(yōu)點(diǎn),因此萌生了用單片機(jī)來(lái)實(shí)現(xiàn)公交車輛的自動(dòng)考核與報(bào)站。
2 系統(tǒng)的功能
(1)自動(dòng)報(bào)站功能:當(dāng)車輛到達(dá)某一停車站點(diǎn)時(shí),系統(tǒng)自動(dòng)報(bào)站,無(wú)需手動(dòng)按鍵。
(2)自動(dòng)考核功能:自動(dòng)記錄車輛中途停車的時(shí)間和行駛的里程數(shù),自動(dòng)記錄超速、低速行駛的時(shí)間和里程數(shù)。
(3)顯示時(shí)間功能。
3 系統(tǒng)設(shè)計(jì)原理
公交車較一般車輛有個(gè)明顯的特點(diǎn),就是它行駛的路線固定,從起點(diǎn)到終點(diǎn)中途經(jīng)過(guò)的站、路口也是固定的。因此,從起點(diǎn)到任一站、任一路口的距離是相對(duì)不變的,任意兩站之間、路口之間以及站與路口之間的距離也是不變的。我們利用這一特點(diǎn),首先把從始發(fā)站出發(fā)的公交車到達(dá)每一站、每一路口行駛的里程數(shù)(確切地說(shuō)是一個(gè)范圍,即經(jīng)過(guò)反復(fù)試驗(yàn),得到的到達(dá)某站或路口的數(shù)據(jù)范圍)記錄在系統(tǒng)中,公交車在實(shí)際運(yùn)行中,如果行駛的里程達(dá)到某某范圍(范圍的最低值),則自動(dòng)報(bào)站(包括提示是路口等等),此即實(shí)現(xiàn)了自動(dòng)報(bào)站功能。對(duì)于自動(dòng)考核中的超速、低速的判斷,只需在系統(tǒng)中設(shè)置一計(jì)數(shù)器(計(jì)算車輪轉(zhuǎn)過(guò)的圈數(shù)),用單位時(shí)間內(nèi)車輪轉(zhuǎn)過(guò)的圈數(shù)來(lái)判斷車速超、低速情況,同時(shí)將超、低速時(shí)的時(shí)間和行駛的里程數(shù)記錄在系統(tǒng)中。這樣,在車輛回到總站后,只要讀取系統(tǒng)內(nèi)部的數(shù)據(jù),就可以知道車輛在運(yùn)行途中的??空炯俺⒌退傩旭偳闆r。對(duì)于車輛停車時(shí)間的記錄,實(shí)現(xiàn)的方法是在車輛停止轉(zhuǎn)動(dòng)時(shí)就開始計(jì)時(shí),在車輪開始轉(zhuǎn)動(dòng)時(shí)停止計(jì)時(shí),并將計(jì)時(shí)時(shí)間保存在系統(tǒng)中。由于車輛停車時(shí)間的長(zhǎng)短和停車時(shí)的時(shí)間都被記錄下來(lái),就可以杜絕一些公交車在站點(diǎn)延時(shí)拉客以及未到達(dá)站點(diǎn)就中途停車?yán)偷默F(xiàn)象。這里要說(shuō)明的是:所謂里程數(shù)=車輪轉(zhuǎn)數(shù)*車輪周長(zhǎng)。
圖1 語(yǔ)音錄放電路
4 系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)硬件設(shè)計(jì)按功能模塊劃分,可分為四部分:最小系統(tǒng)、顯示部分電路、計(jì)數(shù)部分電路和語(yǔ)音電路。下面結(jié)合每一個(gè)功能模塊,來(lái)介紹一下如何用單片機(jī)來(lái)實(shí)現(xiàn)公交車輛的自動(dòng)考核與報(bào)站。
(一)最小系統(tǒng)
最小系統(tǒng)由89C51、RAM、鎖存器、時(shí)鐘電路、復(fù)位電路五部分組成。這是該系統(tǒng)的核心,所有的指令都是由89C51發(fā)出的。
RAM:由于車輛在行駛過(guò)程中需要記錄大量的數(shù)據(jù),比如車輛中途停車的時(shí)間、慢速行駛的時(shí)間、超速的時(shí)間等等,而89C51內(nèi)部只有256B的數(shù)據(jù)存儲(chǔ)器RAM,其中128B用戶可以使用,數(shù)據(jù)容量根本無(wú)法滿足系統(tǒng)的需要,故須外接RAM。
鎖存器:89C51雖然有P0、P1、P2、P3四個(gè)八位的I/O口,但是只有P0口能夠直接用于對(duì)外部存儲(chǔ)器的讀/寫操作,而P0口還要輸出外部存儲(chǔ)器的低8位地址(高8位地址直接由89C51的P2口輸出)。為了避免數(shù)據(jù)和地址的信號(hào)沖突,這時(shí)候就需要在89C51和RAM之間加上一鎖存器(實(shí)驗(yàn)中采用 74LS373),從而使數(shù)據(jù)與地址分時(shí)輸出。
時(shí)鐘電路:系統(tǒng)要穩(wěn)定的工作必須有可靠的時(shí)鐘。本系統(tǒng)采用內(nèi)部時(shí)鐘方式,外接6MHZ的晶振,晶振和電容(15P)組成并聯(lián)諧振蕩回路,從而使89C51內(nèi)部的電路產(chǎn)生自振蕩。
復(fù)位電路:即在89C51的RESET端出現(xiàn)一保持10ms的高電平時(shí),單片機(jī)復(fù)位。系統(tǒng)將手動(dòng)復(fù)位和上電復(fù)位結(jié)合在一起。
(二)顯示部分電路
顯示部分主要是顯示時(shí)間的。在該系統(tǒng)設(shè)計(jì)中,由于89C51本身自帶的并行口有限,故在系統(tǒng)中采用8155對(duì)并行口進(jìn)行擴(kuò)展。我們用8155PB口輸出段碼(即待顯示的數(shù)據(jù)),利用8155PA口的低四位(PA0、PA1、PA2、PA3),經(jīng)過(guò)一個(gè)74LS154(四—十六譯碼器)譯碼后產(chǎn)生16個(gè)位選信號(hào),某一位選信號(hào)有效,與之相對(duì)應(yīng)的LED燈即被點(diǎn)亮。我們?cè)诖瞬捎玫氖莿?dòng)態(tài)顯示方式,該方式較靜態(tài)顯示方式的明顯優(yōu)點(diǎn)即其占用的I/O口資源少,從而不必再對(duì)89C51進(jìn)行I/O口擴(kuò)展。
(三)計(jì)數(shù)部分電路
車輛在運(yùn)行過(guò)程中,我們?nèi)绾斡?jì)算車輛行駛的里程,如何判斷車輛超速、低速,這些都是通過(guò)計(jì)數(shù)部分電路來(lái)實(shí)現(xiàn)的。我們只要記錄下車輪的轉(zhuǎn)數(shù),然后用它乘以車輪周長(zhǎng)就可以得到車輛行駛的里程數(shù)。而對(duì)于車速,設(shè)定系統(tǒng)以某一固定時(shí)間間隔(比如5秒)來(lái)采集計(jì)數(shù)值(即車輛轉(zhuǎn)數(shù)),用這一數(shù)值乘以車輪周長(zhǎng)得出車輛行駛的里程,再除以時(shí)間從而得到車速,這樣我們就可以判斷車輛的超速、低速情況了。其實(shí)計(jì)數(shù)電路非常簡(jiǎn)單,它僅僅利用到89C51的外部中斷INT0,每當(dāng)此引腳有下跳沿信號(hào),計(jì)數(shù)器即加1(系統(tǒng)中采用16位計(jì)數(shù)器,最大計(jì)數(shù)值可達(dá)到65535)。在進(jìn)行實(shí)驗(yàn)的過(guò)程中,我們發(fā)現(xiàn),模擬車輪產(chǎn)生的脈沖干擾很大,采用軟件延時(shí),效果不甚理想,而且影響到顯示(用以顯示的LED燈產(chǎn)生明顯的抖動(dòng)),故想到在INT0端采用硬件延時(shí)。而RS觸發(fā)器在此方面有良好的特性,因此在INT0引腳與產(chǎn)生脈沖的車輪之間加上一RS觸發(fā)器。
(四)語(yǔ)音部分電路
自動(dòng)考核與報(bào)站系統(tǒng)的報(bào)站功能主要是由語(yǔ)音部分電路來(lái)實(shí)現(xiàn)的。實(shí)驗(yàn)中我們使用的語(yǔ)音芯片為ISD4002-120P,該芯片的存儲(chǔ)時(shí)間僅為120秒,只可用于實(shí)驗(yàn)室階段,實(shí)際應(yīng)用中可以更換存儲(chǔ)時(shí)間長(zhǎng)的芯片。由于車輛在運(yùn)行途中,只需報(bào)站,而無(wú)需錄音,故我們采用圖1所示電路對(duì)語(yǔ)音芯片進(jìn)行錄音。
開關(guān)在“REC”端是錄音狀態(tài),按住“AN”鍵不放,指示燈亮即可對(duì)著話筒講話錄音,松鍵錄音停止并形成一段。再按則錄下一段。按“STOP”鍵復(fù)位,再錄音時(shí)又從第一段開始。開關(guān)在“PLAY”一側(cè)是放音狀態(tài),按一下“AN”即播放一段錄音,一段結(jié)束后自動(dòng)停止放音,再按“AN”鍵則播放下一段。
把錄好的芯片放到系統(tǒng)中,當(dāng)車輛行駛的里程數(shù)達(dá)到某一段范圍時(shí),我們利用語(yǔ)音芯片的快進(jìn)功能,跳到相應(yīng)的語(yǔ)音段開始放音從而實(shí)現(xiàn)自動(dòng)報(bào)站。
5 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用模塊化結(jié)構(gòu),主要由主程序、計(jì)數(shù)中斷子程序、時(shí)間中斷子程序等級(jí)成。下面列出了主程序流程圖(如圖2)和計(jì)數(shù)中斷子程序流程圖(如圖3):
6 結(jié)束語(yǔ)
總的看來(lái),本系統(tǒng)采用了一種比較新穎的思路,用單片機(jī)來(lái)實(shí)現(xiàn)公交車輛的自動(dòng)考核和報(bào)站。能夠?qū)卉囕v進(jìn)行有效的管理,投入市場(chǎng)的前景較好。在實(shí)際運(yùn)用的時(shí)候,可以在系統(tǒng)中擴(kuò)展鍵盤,以防止公交車行駛路線發(fā)生變化以及出現(xiàn)一些異常情況時(shí),改用鍵盤控制報(bào)站。
參考文獻(xiàn)
[1]何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì):系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1990年。
[2]劉樂(lè)善,葉濟(jì)忠.微型計(jì)算機(jī)接口技術(shù)原理及應(yīng)用.湖北:華中理工大學(xué)出版社,1996年。
評(píng)論