出租車智能計價器優(yōu)化設(shè)計與研究
0 引言
隨著社會經(jīng)濟和現(xiàn)代交通的高速發(fā)展,出租車己成為城市公共交通中一道靚麗的風景,是人們?nèi)粘I钪胁豢扇鄙俚闹匾煌üぞ?。在我國,城市出租車自二十世紀八十年代興起,多年來廣泛應(yīng)用的計價器只具備簡單計價功能,目前國內(nèi)出租車計價器依然只是根據(jù)行車里程來計價。隨著社會的進步,人們對出租車計價器的科學性和合理性提出了越來越高的要求,為此需對出租車計價系統(tǒng)進行優(yōu)化設(shè)計。文中設(shè)計的出租車計價器能夠?qū)崿F(xiàn)按時問和里程來綜合計算車價的功能,并能顯示時間、里程、單價、總車價等相關(guān)信息,功能更齊全、使用更方便、而且系統(tǒng)穩(wěn)定性更好。
1 出租車智能計價系統(tǒng)總體設(shè)計
出租車智能計價系統(tǒng)設(shè)計目標是:實現(xiàn)基本的時鐘顯示、價格調(diào)節(jié)、里程計價和相關(guān)擴展等功能。系統(tǒng)設(shè)計思路:以MCS51單片機為核心,進行硬件模塊設(shè)計,并配以相關(guān)軟件設(shè)計,利用I/O端口及其控制的準確性來實現(xiàn)系統(tǒng)功能。系統(tǒng)總體設(shè)計框圖如圖1所示。
在圖1中,霍耳傳感器電路系統(tǒng)將磁感應(yīng)信號轉(zhuǎn)換為脈沖信號,并且以此來計算出租車行駛里程;四按鍵鍵盤控制電路分別執(zhí)行起始暫停、分屏切換、晝夜交替和功能設(shè)定等操作;DS1302時鐘芯片用來進行時間計算及時間單價轉(zhuǎn)換;采用AT24C02芯片可實現(xiàn)斷電存儲信息、來電讀取信息功能;LED1602用來顯示單價、時鐘和金額等信息。
2 出租車智能計價器主要硬件模塊設(shè)計
2.1 計時與時間顯示模塊設(shè)計
采用24小時制,分別用三個8位的LED數(shù)碼管動態(tài)掃描法來顯示秒、分和時鐘,三個按鍵開關(guān)SP1、SP2、SP3分別接單片機的P0.0、P0.1、P0.2端口,用來調(diào)節(jié)時鐘信號的秒、分和時鐘。采用單刀雙擲開關(guān)控制秒、分和時鐘的加減調(diào)整;當發(fā)光二極管亮時,按一下按鍵開關(guān)實施加1調(diào)整;當發(fā)光二極管滅時,按下按鍵開關(guān)即進行減1調(diào)整。
2.2 計價與顯示模塊設(shè)計
計價與顯示采用四個74LS164驅(qū)動來擴展32個并行端口,并利用4位LED數(shù)碼管完成顯示功能。假設(shè)出租車起步價為6元,單價為每公里1元,行駛車程小于2.5公里按照起步價來收費;當行車路程大于2.5公里時,每增加1公里車費將增加1元。
2.3 里程傳感模塊設(shè)計
出租車行駛里程是利用安裝在出租車車輪上的霍爾傳感器A44E檢測到的脈沖信號來進行計算的。當里程信息傳輸?shù)絇3.5口后,經(jīng)過處理傳送到4位數(shù)碼管顯示。系統(tǒng)里程傳感模塊原理圖如圖2所示。
3 系統(tǒng)軟件設(shè)計
3.1 主程序模塊設(shè)計
在此模塊設(shè)計中,需要完成出租車起價和單價的初始化、各接口芯片的初始化、中斷向量的設(shè)計以及中斷、循環(huán)等待等工作,還需設(shè)置啟動/清除標志寄存器、里程和價格寄存器,并對其進行初始化設(shè)計。根據(jù)標志寄存器要求,分別完成啟動、清除、計程以及計價等操作。系統(tǒng)主程序流程圖如圖3所示。
當按下計價器開關(guān)時計價器便啟動計價功能,并根據(jù)里程寄存器中的內(nèi)容進行計算,并將計算結(jié)果儲存在寄存器中,然后顯示出總運行時間和當前累計金額。當?shù)竭_目的地后,霍爾開關(guān)便不再發(fā)送脈沖信號,停止計價功能,并顯示當前應(yīng)付金額。當下次啟動計價器時,系統(tǒng)會自動清零,初始化過程重新進行設(shè)置。
3.2 系統(tǒng)子程序模塊設(shè)計
系統(tǒng)模塊包括六個主要子程序:顯示子程序、里程計數(shù)中斷、定時中斷、中途等待中斷、啟動/清除計程中斷服務(wù)程序和按鍵服務(wù)程序。各服務(wù)子程序功能特征如下:
(1)顯示子程序。顯示子程序主要包括時分/秒/鐘顯示、路程單價顯示、單價調(diào)節(jié)顯示和金額單價顯示等四個子程序,可進行分屏顯示數(shù)據(jù)。
(2)里程計數(shù)中斷。單片機每中斷一次需要霍爾傳感器輸出一個低電平信號,當里程計數(shù)器累計里程脈沖滿1000次時,程序?qū)斍翱傤~累加,使單片機進入里程計數(shù)中斷服務(wù)程序,完成當前行駛里程數(shù)和總額的累加操作,并將最終結(jié)果轉(zhuǎn)存至里程和價格寄存器中。
(3)定時中斷。在定時中斷服務(wù)程序中,每100 ms將產(chǎn)生一次中斷,當累計產(chǎn)生10次中斷時達到1 s,將數(shù)據(jù)輸送到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崿F(xiàn)實時顯示功能。
(4)中途等待中斷。計數(shù)狀態(tài)下霍爾開關(guān)并無信號輸出,此時片內(nèi)的定時器將啟動。當計時到達5min時,將用當前金額加上中途等待的價格進行累加操作。并且每進行一次5min的等待,都將自動加一次中途等待單價;當中途等待結(jié)束時,計價器將立即自動切換,進行正常計價。
(5)啟動/清除計程中斷服務(wù)程序。啟動/清除中斷請求產(chǎn)生時,自動設(shè)定第一次中斷為啟動中斷,第二次中斷為清除中斷,并將標志寄存器儲存的內(nèi)容分別相應(yīng)地置“1”或清“0”。
(6)按鍵服務(wù)程序。在主程序中,若無按鍵操作時,單片機循環(huán)運行主程序;若有按鍵按下,便轉(zhuǎn)向按鍵服務(wù)程序處理,結(jié)束后立即返回。
4 系統(tǒng)仿真測試
在KEIL中將設(shè)計的程序編譯成對應(yīng)機器語言,進入Proteus的ISIS 6軟件環(huán)境,并將生成的HEX文件導入到MCS51中,在Proteus中畫出電路原理圖,進并行仿真測試。在此過程中可對問題程序進行修改和完善,調(diào)試直至仿真結(jié)果符合要求。
4.1 主要參數(shù)仿真
系統(tǒng)主要參數(shù)包括里程、耗時、單價和金額等。系統(tǒng)主要參數(shù)仿真效果如圖4所示。
在圖4中,出租車花費時間為12min27s,起步價里程為2.5km,收費等待時間為1次(每超時1次收費3元),營運里程6km,總金額為:6+(6-2.5)×1+3=12.5元,與顯示總金額吻合。
4.2 相關(guān)重要參數(shù)仿真
系統(tǒng)設(shè)計中,可對起步價里程、單價和免費等待時間上限值等相關(guān)參數(shù)進行重新設(shè)計。系統(tǒng)相關(guān)重要參數(shù)仿真效果如圖5所示(為研究問題方便,忽略了系統(tǒng)詳細電路部分,只顯示系統(tǒng)主要數(shù)據(jù))。
從圖5可以看出:
(1)將起步價里程由2.5km改為3km,單價改為2元;圖5(a)顯示路程為2km(起步價內(nèi)),金額為6元;圖5(b)顯示里程為22km(起步價外),金額為:6+(22-3)×2=44元。
(2)免費等待時間上限值設(shè)置為5min,多次超等待上限時間可重復計費:圖5(c)為路上沒有等待時間的價格;圖5(d)為路上有1次等待時間的價格(收費1元),故相比圖(c)總金額多了1元。
系統(tǒng)仿真結(jié)果表明:本出租車計價器可根據(jù)實際應(yīng)用需要設(shè)置相關(guān)參數(shù),滿足出租車分時、分場景計價功能,可基本實現(xiàn)系統(tǒng)功能要求。
5 結(jié)論
本文設(shè)計的出租車計價器是利用單片機與霍爾傳感器相結(jié)合的原理來實現(xiàn)計價功能的。經(jīng)過優(yōu)化設(shè)計的出租車計價器集計程、計時、計費、存儲、查看和統(tǒng)計等諸多功能為一體,具有功能齊全、性能可靠、電路簡單等優(yōu)勢,因此具有較好的經(jīng)濟價值和應(yīng)用價值。隨著現(xiàn)代科技的發(fā)展和社會的進步,出租車計價系統(tǒng)將更加科學合理。