你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

汽車(chē)電子的突破:出租車(chē)智能計(jì)價(jià)器的設(shè)計(jì)

發(fā)布時(shí)間:2014-12-21 責(zé)任編輯:echolady

【導(dǎo)讀】為解決出租車(chē)的行業(yè)收費(fèi)不合理問(wèn)題,需要優(yōu)化出租車(chē)計(jì)價(jià)器。本文針對(duì)這一弊端,設(shè)計(jì)了一款采用KEIL 51進(jìn)行系統(tǒng)軟件設(shè)計(jì)和PROTEUS進(jìn)行系統(tǒng)仿真操作。經(jīng)調(diào)試產(chǎn)品設(shè)計(jì)良好。

本文主要是以AT89C51微處理器為核心芯片,分別控制DS1302實(shí)時(shí)時(shí)鐘系統(tǒng)、AEE4霍耳傳感測(cè)距系統(tǒng)、按鍵系統(tǒng)、AT24C02掉電存儲(chǔ)系統(tǒng)以及數(shù)碼顯示系統(tǒng),達(dá)到智能計(jì)價(jià)的目的。

1 出租車(chē)智能計(jì)價(jià)系統(tǒng)總體設(shè)計(jì)

利用AT89C51作為單片機(jī)核心器件設(shè)計(jì)的智能計(jì)價(jià)系統(tǒng),使用方便、靈敏性好,其強(qiáng)大的控制處理功能和可擴(kuò)展功能為設(shè)計(jì)電路提供了很好的選擇。利用其I/O端口及其控制的多功能特點(diǎn),采用按鍵控制進(jìn)行分屏顯示,實(shí)現(xiàn)基本乘車(chē)計(jì)價(jià)和信息顯示功能。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。

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

2 系統(tǒng)軟件設(shè)計(jì)

2.1系統(tǒng)主程序

在主程序模塊中,不僅需要完成參量和接口的初始化設(shè)計(jì)、出租車(chē)起步價(jià)和單價(jià)的設(shè)置以及中斷、計(jì)算等操作,還應(yīng)設(shè)置啟動(dòng)/清除標(biāo)志、里程以及價(jià)格寄存器,并對(duì)其進(jìn)行初始化。最后,為實(shí)現(xiàn)寄存器中內(nèi)容的完整性及精確性,主程序應(yīng)能分別完成啟動(dòng)、清除、計(jì)程及計(jì)費(fèi)等操作。

當(dāng)出租車(chē)起步運(yùn)行時(shí),計(jì)價(jià)器同時(shí)啟動(dòng)開(kāi)始計(jì)價(jià),根據(jù)里程寄存器中的存儲(chǔ)數(shù)據(jù)進(jìn)行運(yùn)算并判別行駛路程是否超過(guò)起步價(jià)的里程。若已超過(guò)起步價(jià)里程,則根據(jù)里程值、單價(jià)數(shù)和起步價(jià)等來(lái)綜合計(jì)算當(dāng)前的乘車(chē)費(fèi)用;當(dāng)處于等待時(shí)段時(shí),若無(wú)脈沖輸入,不產(chǎn)生中斷,一旦等待時(shí)間超過(guò)預(yù)設(shè)時(shí)間則會(huì)把等待超標(biāo)費(fèi)用另加到乘車(chē)總費(fèi)用中,并顯示相關(guān)信息。系統(tǒng)主程序流程圖如圖2所示。

汽車(chē)電子的突破:出租車(chē)智能計(jì)價(jià)器的設(shè)計(jì)
圖2 系統(tǒng)主程序流程圖
 
2.2系統(tǒng)模塊程序

系統(tǒng)模塊程序主要包括五個(gè)服務(wù)程序:顯示子程序、里程計(jì)數(shù)中斷、定時(shí)中斷、中途等待中斷和按鍵服務(wù)程序。各服務(wù)程序介紹如下:

(1)顯示子程序。由于采取的是分屏數(shù)據(jù)顯示方式,因此需要用到4款顯示子程序:時(shí)、分、秒的顯示,金額單價(jià)的顯示,路程單價(jià)的顯示以及標(biāo)準(zhǔn)時(shí)間的顯示。
(2)里程計(jì)數(shù)中斷?;舳鷤鞲衅髅枯敵鲆粋€(gè)低電平信號(hào)便中斷一次,當(dāng)里程計(jì)數(shù)器計(jì)滿1000個(gè)里程脈沖時(shí),便將當(dāng)前計(jì)數(shù)送至里程計(jì)數(shù)中斷服務(wù)程序,并將當(dāng)前行車(chē)?yán)锍碳跋嚓P(guān)數(shù)據(jù)傳至行車(chē)?yán)锍膛c乘車(chē)費(fèi)用寄存器中。
(3)定時(shí)中斷。在定時(shí)中斷服務(wù)程序中,設(shè)置一次中斷時(shí)間為50ms,20次中斷時(shí)間為1s,計(jì)滿1s后將數(shù)據(jù)送到相應(yīng)顯示單元實(shí)時(shí)顯示。
(4)中途等待中斷。在計(jì)數(shù)狀態(tài)下霍耳開(kāi)關(guān)無(wú)信號(hào)輸出時(shí),片內(nèi)定時(shí)器啟動(dòng)。等待計(jì)時(shí)每達(dá)到5分鐘,就會(huì)在當(dāng)前金額基礎(chǔ)上自動(dòng)加上中途等待費(fèi)用。等待結(jié)束后計(jì)價(jià)系統(tǒng)自動(dòng)轉(zhuǎn)換到正常計(jì)價(jià)程序。
(5)按鍵服務(wù)程序。按鍵服務(wù)采取查詢模式,設(shè)置在主程序中。當(dāng)無(wú)按鍵按下時(shí),單片機(jī)循環(huán)運(yùn)行主程序;按鍵被按下,則轉(zhuǎn)向運(yùn)行相應(yīng)子程序,并進(jìn)行其他操作處理。
[page]
3 系統(tǒng)仿真與功能實(shí)現(xiàn)

3.1仿真軟件Proteus簡(jiǎn)介

Proteus仿真軟件是英國(guó)Labcenter Electronics公司設(shè)計(jì)開(kāi)發(fā)的EDA工具,它不但擁有其它工具軟件的仿真功能,而且可仿真微處理器和相關(guān)外圍設(shè)備。Proteus軟件功能強(qiáng)大:擁有Proteus電子設(shè)計(jì)工具,就等同搭建了一個(gè)電子設(shè)計(jì)和分析平臺(tái)。利用功能強(qiáng)大的Proteus仿真軟件,我們可以實(shí)現(xiàn)對(duì)電路的仿真,以確定方案是否可行,并且可使設(shè)計(jì)過(guò)程流暢。

3.2電路功能仿真

首先通過(guò)Proteus平臺(tái)搭建電路,然后在KEIL中編寫(xiě)相應(yīng)代碼,并將生成的HEX文件在Proteus平臺(tái)單片機(jī)模型中加載,便可看到仿真效果。

(1)單價(jià)仿真情況。根據(jù)實(shí)際情況,白天和夜晚的起步營(yíng)運(yùn)價(jià)格是不一樣。對(duì)白天、夜晚分別進(jìn)行仿真實(shí)驗(yàn),得仿真效果如圖3所示。

汽車(chē)電子的突破:出租車(chē)智能計(jì)價(jià)器的設(shè)計(jì)
圖3 單價(jià)仿真效果圖
 
(a)白天單價(jià)(b)晚上單價(jià)

在圖3中,圖(a)為白天時(shí)間段,顯示白天的起步價(jià)為6元;圖(b)為夜晚時(shí)間段,顯示夜晚的起步價(jià)為7元。

(2)其它相關(guān)重要參數(shù)仿真。另外,對(duì)計(jì)價(jià)系統(tǒng)其他主要方面也進(jìn)行了仿真研究(為討論問(wèn)題簡(jiǎn)便,忽略了圖3所示電路部分,只顯示數(shù)據(jù)部分),仿真效果如圖4所示。具體介紹如下:

顯示3公里內(nèi)和3公里外的單價(jià)、里程和金額:圖4(a)顯示路程為2公里(3公里內(nèi),起步價(jià)內(nèi)),金額為6元;圖4(b)為顯示里程為22公里(3公里外),顯示單價(jià)為2元,金額為44元。

汽車(chē)電子的突破:出租車(chē)智能計(jì)價(jià)器的設(shè)計(jì)
圖4 其它相關(guān)重要參數(shù)仿真
 
顯示標(biāo)準(zhǔn)時(shí)間及里程用時(shí):圖4(c)為當(dāng)前標(biāo)準(zhǔn)顯示時(shí)間08:20:28;圖4(d)為乘車(chē)過(guò)程用時(shí)20分28秒。

有無(wú)等待仿真對(duì)比效果:圖4(e)為路上沒(méi)有等待時(shí)間的價(jià)格;圖4(f)為路上有等待時(shí)間的價(jià)格。根據(jù)程序設(shè)置的每5分鐘加1元,可以看出圖4(f)中路上有等待時(shí)問(wèn),且等待時(shí)間為5分鐘。

(a)三公里內(nèi)(b)三公里外
(c)標(biāo)準(zhǔn)時(shí)間(d)里程用時(shí)
(e)無(wú)等待時(shí)間(f)有等待時(shí)間

通過(guò)觀察上述仿真效果,可分析得知:能在數(shù)碼管上顯示運(yùn)行單價(jià)、乘車(chē)?yán)锍?、行?chē)用時(shí)及總費(fèi)用等相關(guān)信息,因此本系統(tǒng)設(shè)計(jì)達(dá)到了預(yù)期目標(biāo)和要求。

4 系統(tǒng)實(shí)驗(yàn)及結(jié)果分析

按原理圖進(jìn)行焊接,確保接線無(wú)誤后。對(duì)實(shí)物進(jìn)行調(diào)試與實(shí)驗(yàn),最終實(shí)驗(yàn)結(jié)果如圖5所示。

汽車(chē)電子的突破:出租車(chē)智能計(jì)價(jià)器的設(shè)計(jì)
圖5 功能驗(yàn)證試驗(yàn)
 
由圖5實(shí)驗(yàn)結(jié)果可知:

(1)圖5(a)為顯示單價(jià)。按下鍵1,進(jìn)入載客狀態(tài),便會(huì)顯示單價(jià)。
(2)圖5(b)為顯示單價(jià)、里程和金額。此外當(dāng)?shù)綦姇r(shí),數(shù)據(jù)被會(huì)送入存儲(chǔ)單元,重新上電后能顯示掉電前的相關(guān)數(shù)據(jù),從而較好地實(shí)現(xiàn)掉電存儲(chǔ)保護(hù)功能。
(3)圖5(c)為顯示標(biāo)準(zhǔn)時(shí)間。按下鍵2便能查看標(biāo)準(zhǔn)時(shí)間。
(4)圖5(d)為行車(chē)用時(shí)。按下鍵3便能實(shí)時(shí)查看行車(chē)用時(shí)。

實(shí)驗(yàn)結(jié)果表明,利用AT89C51主控,霍爾傳感器進(jìn)行采集,AT24C02進(jìn)行掉電存儲(chǔ)保護(hù),配以程序,就能較好地實(shí)現(xiàn)出租車(chē)智能計(jì)價(jià)功能。

相關(guān)閱讀:

放大電路普及:射頻干擾整流誤差電路設(shè)計(jì)
電路設(shè)計(jì)普及:晶振振蕩電路設(shè)計(jì)
基于虛擬儀器的電機(jī)監(jiān)控系統(tǒng)的電路設(shè)計(jì)

要采購(gòu)傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉