出祖車智能計(jì)價器的設(shè)計(jì)與實(shí)現(xiàn)
摘要:為解決出租車行業(yè)收費(fèi)不明朗、不合理問題,需對出租車計(jì)價器進(jìn)行優(yōu)化設(shè)計(jì)。以AT89C51微處理器為核心芯片,分別控制DS1302實(shí)時時鐘系統(tǒng)、AEE4霍耳傳感測距系統(tǒng)、按鍵系統(tǒng)、AT24C02掉電存儲系統(tǒng)以及數(shù)碼顯示系統(tǒng),達(dá)到智能計(jì)價的目的。同時采用KEIL 51進(jìn)行系統(tǒng)軟件設(shè)計(jì)和PROTEUS進(jìn)行系統(tǒng)仿真操作,最后對實(shí)際模型進(jìn)行了調(diào)試和實(shí)驗(yàn),效果良好。
本文引用地址:http://www.biyoush.com/article/201610/309901.htm0 引言
出租車作為城市交通中獨(dú)特的交通工具,在城市交通運(yùn)營中具有不可替代的重要作用。出租車司機(jī)最關(guān)心計(jì)價器的營運(yùn)數(shù)據(jù)管理是否方便,而乘客往往最在意出租車計(jì)價計(jì)費(fèi)是否合理。為了減少出租車司機(jī)和乘客間不必要的誤會,設(shè)計(jì)既能準(zhǔn)確計(jì)價又能方便使用的計(jì)價器顯得非常重要。
科技在不斷發(fā)展,社會在快速進(jìn)步,出租車計(jì)價系統(tǒng)也需不斷地得到優(yōu)化。文中以嵌入式單片機(jī)AT89C51為主控MCU,設(shè)計(jì)多功能出租車智能計(jì)價器。此計(jì)價器能夠按實(shí)際情況綜合計(jì)價,并將乘車用時、行駛里程和乘車費(fèi)用等重要信息顯示出來,具有功能更齊全、系統(tǒng)更穩(wěn)定、使用更方便等優(yōu)勢。
1 出租車智能計(jì)價系統(tǒng)總體設(shè)計(jì)
利用AT89C51作為單片機(jī)核心器件設(shè)計(jì)的智能計(jì)價系統(tǒng),使用方便、靈敏性好,其強(qiáng)大的控制處理功能和可擴(kuò)展功能為設(shè)計(jì)電路提供了很好的選擇。利用其I/O端口及其控制的多功能特點(diǎn),采用按鍵控制進(jìn)行分屏顯示,實(shí)現(xiàn)基本乘車計(jì)價和信息顯示功能。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
在系統(tǒng)硬件設(shè)計(jì)中,以AT89C51單片機(jī)為控制中心,外接A44E霍爾傳感器信號采集模塊、時鐘模塊、按鍵模塊、顯示模塊以及掉電保護(hù)存儲模塊。其中,選用A44E霍爾傳感器信號采集模塊可將磁感應(yīng)轉(zhuǎn)換為脈沖信號,從而計(jì)測出行車?yán)锍?時鐘模塊采用DS1302芯片,設(shè)置標(biāo)準(zhǔn)時鐘;掉電存儲模塊采用AT24C02芯片,以確保掉電時數(shù)據(jù)自動保存在存儲單元;當(dāng)系統(tǒng)重新上電時,能自動讀取數(shù)據(jù);按鍵模塊采用四個按鍵控制,可實(shí)現(xiàn)分屏顯示功能;顯示模塊采用8位LED數(shù)碼管進(jìn)行顯示。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 系統(tǒng)主程序
在主程序模塊中,不僅需要完成參量和接口的初始化設(shè)計(jì)、出租車起步價和單價的設(shè)置以及中斷、計(jì)算等操作,還應(yīng)設(shè)置啟動/清除標(biāo)志、里程以及價格寄存器,并對其進(jìn)行初始化。最后,為實(shí)現(xiàn)寄存器中內(nèi)容的完整性及精確性,主程序應(yīng)能分別完成啟動、清除、計(jì)程及計(jì)費(fèi)等操作。
當(dāng)出租車起步運(yùn)行時,計(jì)價器同時啟動開始計(jì)價,根據(jù)里程寄存器中的存儲數(shù)據(jù)進(jìn)行運(yùn)算并判別行駛路程是否超過起步價的里程。若已超過起步價里程,則根據(jù)里程值、單價數(shù)和起步價等來綜合計(jì)算當(dāng)前的乘車費(fèi)用;當(dāng)處于等待時段時,若無脈沖輸入,不產(chǎn)生中斷,一旦等待時間超過預(yù)設(shè)時間則會把等待超標(biāo)費(fèi)用另加到乘車總費(fèi)用中,并顯示相關(guān)信息。系統(tǒng)主程序流程圖如圖2所示。
2.2 系統(tǒng)模塊程序
系統(tǒng)模塊程序主要包括五個服務(wù)程序:顯示子程序、里程計(jì)數(shù)中斷、定時中斷、中途等待中斷和按鍵服務(wù)程序。各服務(wù)程序介紹如下:
(1)顯示子程序。由于采取的是分屏數(shù)據(jù)顯示方式,因此需要用到4款顯示子程序:時、分、秒的顯示,金額單價的顯示,路程單價的顯示以及標(biāo)準(zhǔn)時間的顯示。
(2)里程計(jì)數(shù)中斷?;舳鷤鞲衅髅枯敵鲆粋€低電平信號便中斷一次,當(dāng)里程計(jì)數(shù)器計(jì)滿1000個里程脈沖時,便將當(dāng)前計(jì)數(shù)送至里程計(jì)數(shù)中斷服務(wù)程序,并將當(dāng)前行車?yán)锍碳跋嚓P(guān)數(shù)據(jù)傳至行車?yán)锍膛c乘車費(fèi)用寄存器中。
(3)定時中斷。在定時中斷服務(wù)程序中,設(shè)置一次中斷時間為50ms,20次中斷時間為1s,計(jì)滿1s后將數(shù)據(jù)送到相應(yīng)顯示單元實(shí)時顯示。
(4)中途等待中斷。在計(jì)數(shù)狀態(tài)下霍耳開關(guān)無信號輸出時,片內(nèi)定時器啟動。等待計(jì)時每達(dá)到5分鐘,就會在當(dāng)前金額基礎(chǔ)上自動加上中途等待費(fèi)用。等待結(jié)束后計(jì)價系統(tǒng)自動轉(zhuǎn)換到正常計(jì)價程序。
(5)按鍵服務(wù)程序。按鍵服務(wù)采取查詢模式,設(shè)置在主程序中。當(dāng)無按鍵按下時,單片機(jī)循環(huán)運(yùn)行主程序;按鍵被按下,則轉(zhuǎn)向運(yùn)行相應(yīng)子程序,并進(jìn)行其他操作處理。
3 系統(tǒng)仿真與功能實(shí)現(xiàn)
3.1 仿真軟件Proteus簡介
Proteus仿真軟件是英國Labcenter Electronics公司設(shè)計(jì)開發(fā)的EDA工具,它不但擁有其它工具軟件的仿真功能,而且可仿真微處理器和相關(guān)外圍設(shè)備。Proteus軟件功能強(qiáng)大:擁有Proteus電子設(shè)計(jì)工具,就等同搭建了一個電子設(shè)計(jì)和分析平臺。利用功能強(qiáng)大的Proteus仿真軟件,我們可以實(shí)現(xiàn)對電路的仿真,以確定方案是否可行,并且可使設(shè)計(jì)過程流暢。
3.2 電路功能仿真
首先通過Proteus平臺搭建電路,然后在KEIL中編寫相應(yīng)代碼,并將生成的HEX文件在Proteus平臺單片機(jī)模型中加載,便可看到仿真效果。
(1)單價仿真情況。根據(jù)實(shí)際情況,白天和夜晚的起步營運(yùn)價格是不一樣。對白天、夜晚分別進(jìn)行仿真實(shí)驗(yàn),得仿真效果如圖3所示。
(a)白天單價(b)晚上單價
在圖3中,圖(a)為白天時間段,顯示白天的起步價為6元;圖(b)為夜晚時間段,顯示夜晚的起步價為7元。
(2)其它相關(guān)重要參數(shù)仿真。另外,對計(jì)價系統(tǒng)其他主要方面也進(jìn)行了仿真研究(為討論問題簡便,忽略了圖3所示電路部分,只顯示數(shù)據(jù)部分),
仿真效果如圖4所示。具體介紹如下:
顯示3公里內(nèi)和3公里外的單價、里程和金額:圖4(a)顯示路程為2公里(3公里內(nèi),起步價內(nèi)),金額為6元;圖4(b)為顯示里程為22公里(3公里外),顯示單價為2元,金額為44元。
顯示標(biāo)準(zhǔn)時間及里程用時:圖4(c)為當(dāng)前標(biāo)準(zhǔn)顯示時間08:20:28;圖4(d)為乘車過程用時20分28秒。
評論