出租車(chē)智能計價(jià)器優(yōu)化設計與研究
0 引言
本文引用地址:http://dyxdggzs.com/article/201610/309877.htm隨著(zhù)社會(huì )經(jīng)濟和現代交通的高速發(fā)展,出租車(chē)己成為城市公共交通中一道靚麗的風(fēng)景,是人們日常生活中不可缺少的重要交通工具。在我國,城市出租車(chē)自二十世紀八十年代興起,多年來(lái)廣泛應用的計價(jià)器只具備簡(jiǎn)單計價(jià)功能,目前國內出租車(chē)計價(jià)器依然只是根據行車(chē)里程來(lái)計價(jià)。隨著(zhù)社會(huì )的進(jìn)步,人們對出租車(chē)計價(jià)器的科學(xué)性和合理性提出了越來(lái)越高的要求,為此需對出租車(chē)計價(jià)系統進(jìn)行優(yōu)化設計。文中設計的出租車(chē)計價(jià)器能夠實(shí)現按時(shí)問(wèn)和里程來(lái)綜合計算車(chē)價(jià)的功能,并能顯示時(shí)間、里程、單價(jià)、總車(chē)價(jià)等相關(guān)信息,功能更齊全、使用更方便、而且系統穩定性更好。
1 出租車(chē)智能計價(jià)系統總體設計
出租車(chē)智能計價(jià)系統設計目標是:實(shí)現基本的時(shí)鐘顯示、價(jià)格調節、里程計價(jià)和相關(guān)擴展等功能。系統設計思路:以MCS51單片機為核心,進(jìn)行硬件模塊設計,并配以相關(guān)軟件設計,利用I/O端口及其控制的準確性來(lái)實(shí)現系統功能。系統總體設計框圖如圖1所示。

在圖1中,霍耳傳感器電路系統將磁感應信號轉換為脈沖信號,并且以此來(lái)計算出租車(chē)行駛里程;四按鍵鍵盤(pán)控制電路分別執行起始暫停、分屏切換、晝夜交替和功能設定等操作;DS1302時(shí)鐘芯片用來(lái)進(jìn)行時(shí)間計算及時(shí)間單價(jià)轉換;采用AT24C02芯片可實(shí)現斷電存儲信息、來(lái)電讀取信息功能;LED1602用來(lái)顯示單價(jià)、時(shí)鐘和金額等信息。
2 出租車(chē)智能計價(jià)器主要硬件模塊設計
2.1 計時(shí)與時(shí)間顯示模塊設計
采用24小時(shí)制,分別用三個(gè)8位的LED數碼管動(dòng)態(tài)掃描法來(lái)顯示秒、分和時(shí)鐘,三個(gè)按鍵開(kāi)關(guān)SP1、SP2、SP3分別接單片機的P0.0、P0.1、P0.2端口,用來(lái)調節時(shí)鐘信號的秒、分和時(shí)鐘。采用單刀雙擲開(kāi)關(guān)控制秒、分和時(shí)鐘的加減調整;當發(fā)光二極管亮時(shí),按一下按鍵開(kāi)關(guān)實(shí)施加1調整;當發(fā)光二極管滅時(shí),按下按鍵開(kāi)關(guān)即進(jìn)行減1調整。
2.2 計價(jià)與顯示模塊設計
計價(jià)與顯示采用四個(gè)74LS164驅動(dòng)來(lái)擴展32個(gè)并行端口,并利用4位LED數碼管完成顯示功能。假設出租車(chē)起步價(jià)為6元,單價(jià)為每公里1元,行駛車(chē)程小于2.5公里按照起步價(jià)來(lái)收費;當行車(chē)路程大于2.5公里時(shí),每增加1公里車(chē)費將增加1元。
2.3 里程傳感模塊設計
出租車(chē)行駛里程是利用安裝在出租車(chē)車(chē)輪上的霍爾傳感器A44E檢測到的脈沖信號來(lái)進(jìn)行計算的。當里程信息傳輸到P3.5口后,經(jīng)過(guò)處理傳送到4位數碼管顯示。系統里程傳感模塊原理圖如圖2所示。

3 系統軟件設計
3.1 主程序模塊設計
在此模塊設計中,需要完成出租車(chē)起價(jià)和單價(jià)的初始化、各接口芯片的初始化、中斷向量的設計以及中斷、循環(huán)等待等工作,還需設置啟動(dòng)/清除標志寄存器、里程和價(jià)格寄存器,并對其進(jìn)行初始化設計。根據標志寄存器要求,分別完成啟動(dòng)、清除、計程以及計價(jià)等操作。系統主程序流程圖如圖3所示。

當按下計價(jià)器開(kāi)關(guān)時(shí)計價(jià)器便啟動(dòng)計價(jià)功能,并根據里程寄存器中的內容進(jìn)行計算,并將計算結果儲存在寄存器中,然后顯示出總運行時(shí)間和當前累計金額。當到達目的地后,霍爾開(kāi)關(guān)便不再發(fā)送脈沖信號,停止計價(jià)功能,并顯示當前應付金額。當下次啟動(dòng)計價(jià)器時(shí),系統會(huì )自動(dòng)清零,初始化過(guò)程重新進(jìn)行設置。
3.2 系統子程序模塊設計
系統模塊包括六個(gè)主要子程序:顯示子程序、里程計數中斷、定時(shí)中斷、中途等待中斷、啟動(dòng)/清除計程中斷服務(wù)程序和按鍵服務(wù)程序。各服務(wù)子程序功能特征如下:
(1)顯示子程序。顯示子程序主要包括時(shí)分/秒/鐘顯示、路程單價(jià)顯示、單價(jià)調節顯示和金額單價(jià)顯示等四個(gè)子程序,可進(jìn)行分屏顯示數據。
(2)里程計數中斷。單片機每中斷一次需要霍爾傳感器輸出一個(gè)低電平信號,當里程計數器累計里程脈沖滿(mǎn)1000次時(shí),程序將當前總額累加,使單片機進(jìn)入里程計數中斷服務(wù)程序,完成當前行駛里程數和總額的累加操作,并將最終結果轉存至里程和價(jià)格寄存器中。
(3)定時(shí)中斷。在定時(shí)中斷服務(wù)程序中,每100 ms將產(chǎn)生一次中斷,當累計產(chǎn)生10次中斷時(shí)達到1 s,將數據輸送到相應的顯示緩沖單元,并調用顯示子程序實(shí)現實(shí)時(shí)顯示功能。
(4)中途等待中斷。計數狀態(tài)下霍爾開(kāi)關(guān)并無(wú)信號輸出,此時(shí)片內的定時(shí)器將啟動(dòng)。當計時(shí)到達5min時(shí),將用當前金額加上中途等待的價(jià)格進(jìn)行累加操作。并且每進(jìn)行一次5min的等待,都將自動(dòng)加一次中途等待單價(jià);當中途等待結束時(shí),計價(jià)器將立即自動(dòng)切換,進(jìn)行正常計價(jià)。
(5)啟動(dòng)/清除計程中斷服務(wù)程序。啟動(dòng)/清除中斷請求產(chǎn)生時(shí),自動(dòng)設定第一次中斷為啟動(dòng)中斷,第二次中斷為清除中斷,并將標志寄存器儲存的內容分別相應地置“1”或清“0”。
(6)按鍵服務(wù)程序。在主程序中,若無(wú)按鍵操作時(shí),單片機循環(huán)運行主程序;若有按鍵按下,便轉向按鍵服務(wù)程序處理,結束后立即返回。
4 系統仿真測試
在KEIL中將設計的程序編譯成對應機器語(yǔ)言,進(jìn)入Proteus的ISIS 6軟件環(huán)境,并將生成的HEX文件導入到MCS51中,在Proteus中畫(huà)出電路原理圖,進(jìn)并行仿真測試。在此過(guò)程中可對問(wèn)題程序進(jìn)行修改和完善,調試直至仿真結果符合要求。
4.1 主要參數仿真
系統主要參數包括里程、耗時(shí)、單價(jià)和金額等。系統主要參數仿真效果如圖4所示。

在圖4中,出租車(chē)花費時(shí)間為12min27s,起步價(jià)里程為2.5km,收費等待時(shí)間為1次(每超時(shí)1次收費3元),營(yíng)運里程6km,總金額為:6+(6-2.5)×1+3=12.5元,與顯示總金額吻合。
評論