基于單片機的車輛計價器設(shè)計
引言
隨著經(jīng)濟的發(fā)展,出租車已經(jīng)成為城市交通的重要組成部分,為保證司機和消費者的權(quán)益,車輛計價器必不可少。單片機功能強大,靈活性高,可以軟硬件相結(jié)合。設(shè)計的計價器能實現(xiàn)計價、顯示、打印、播報等功能,還可以根據(jù)時間段的不同來調(diào)節(jié)單價。整個行車過程中的總費用=起步價+行車費用+等候費用。
1系統(tǒng)硬件設(shè)計
計價器系統(tǒng)主要由六部分組成:選定AT89S52單片機為主控器件,A44E霍爾傳感器檢測電路,獨立鍵盤來實現(xiàn)功能的調(diào)整,AT24C02來實現(xiàn)存儲功能,ISD2560語音芯片來實現(xiàn)語音播報,數(shù)碼管實現(xiàn)數(shù)據(jù)顯示。
本設(shè)計通過A44E霍爾傳感器來檢測汽車行進的里程,并將產(chǎn)生的脈沖送到單片機進行計算處理,再根據(jù)從EEPROM中讀取的價格等相關(guān)數(shù)據(jù)進行金額的計算,計算好的金額、里程和單價都實時地顯示在數(shù)碼管上。當(dāng)乘客到達目的地時,通過按鍵進行語音播報和打印乘車數(shù)據(jù)。獨立鍵盤可以調(diào)節(jié)價格等相關(guān)數(shù)據(jù),EEPROM存儲調(diào)節(jié)好的數(shù)據(jù),系統(tǒng)結(jié)構(gòu)圖如圖1所示。
1.1里程計算和計價電路的設(shè)計
A44E屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.5?18V),其輸出的信號符合TTL電平標準,可以直接接到單片機的I。端口上%霍爾傳感器有信號轉(zhuǎn)換、電壓放大、整形輸出等功能。里程計算是通過安裝在車輪上的A44E檢測到的脈沖信號,送到單片機產(chǎn)生中斷,單片機再根據(jù)程序設(shè)定,計算出里程。其原理如圖2所示。
圖2 傳感器測距原理示意圖
1.2AT24C02掉電存儲電路設(shè)計
AT24C02是一個2Kb串行CMOSEEPROM,內(nèi)部有256個8位字節(jié)。掉電存儲的作用是在掉電時,當(dāng)前信息能夠被存儲。當(dāng)重新上電時,被存儲的信息可以繼續(xù)使用。A2?A0為地址引腳,SDA、SCL為總線接口,WP為保護引腳。WP接VSS時,禁止寫入高位地址;WP接VDD時,允許寫入任何地址。
1.3數(shù)據(jù)顯示電路設(shè)計
顯示單元由7個8段共陰極數(shù)碼管組成,采用動態(tài)掃描進行顯示。74LS244是單向三態(tài)數(shù)據(jù)緩沖器,內(nèi)部有8個三態(tài)驅(qū)動器,分成兩組,分別由控制端控制。當(dāng)兩個控制端接地時,相當(dāng)于8個三態(tài)門均打開。由于單片機驅(qū)動能力有限,本設(shè)計采用74LS244作為數(shù)碼管的驅(qū)動。數(shù)碼管段選位接P2口用于顯示總金額和顯示里程與單價;位選接P0口,用于控制數(shù)碼管。
1.4語音播報系統(tǒng)設(shè)計
語音播報主要對行駛里程、消費金額進行播報,乘客有知情權(quán)。設(shè)計采用了集成度較高的ISD2560芯片,其最大的特點是采用EEPROM進行模擬信息的直接存取,而不必經(jīng)過A/D和D/A轉(zhuǎn)換。它內(nèi)部帶有話筒放大器、自動增益控制時鐘、揚聲器驅(qū)動電路等。
1.5票據(jù)打印電路設(shè)計
當(dāng)出租車到達指定地點時,司機通過翻車牌將信號傳到單片機,單片機啟動打印服務(wù),將行車的公里數(shù)、單價、金額、中途等待時間、日期及上下車時間等乘車數(shù)據(jù)打印成出租車票據(jù),供乘客保留。這樣可以防作弊,保障消費者的權(quán)益。
2系統(tǒng)軟件設(shè)計
2.1系統(tǒng)主程序模塊
主程序模塊主要完成單片機各工作模式設(shè)定、相應(yīng)存儲單元的初始化、數(shù)據(jù)處理以及中斷控制等工作。主程序模塊還要實現(xiàn)對各個模塊的控制,使計價器完成計費、計程、播報、打印等功能。主程序流程如圖3所示。
2.2定時中斷服務(wù)程序
定時器的定時與系統(tǒng)的震蕩頻率有關(guān)。在定時中斷服務(wù)程序中,每100ms產(chǎn)生一次中斷,當(dāng)產(chǎn)生10次中斷的時候,也就到了1s,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r顯示。當(dāng)選擇定時/計數(shù)器作為定時器工作時,每經(jīng)過1個機器周期,計數(shù)器加1,直至計數(shù)溢出為止。
2.3里程計數(shù)中斷服務(wù)程序
霍爾傳感器每輸出一個低電平信號,單片機中斷一次,程序?qū)⒅袛啻螖?shù)累加,進入里程計數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。
圖3 系統(tǒng)主流程圖
2.4中途等待中斷程序
在計數(shù)狀態(tài)下,霍爾開關(guān)沒有輸出信號,T1定時器便被啟動。每當(dāng)計時到達5min時,就對當(dāng)前金額加上中途等待的單價,以后每5min都自動加上中途等待的單價。當(dāng)中途等待結(jié)束時,就自動切換到正常的計價。
2.5顯示程序
顯示程序利用定時器的中斷和主程序的循環(huán)點亮數(shù)碼管,并利用延時程序使人眼可察。由于是分屏顯示數(shù)據(jù),所以就要用到4個顯示子程序,分別是時間顯示子程序、金額顯示子程序、路程顯示子程序和單價調(diào)節(jié)子程序。
2.6鍵盤服務(wù)程序
鍵盤采用查詢的方式,放在主程序中。當(dāng)沒有按鍵按下的時候,單片機循環(huán)主程序;一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。
3調(diào)試結(jié)果分析
3.1計價單元測試分析
測試分白天和晚上,再按照不同的單價、行車里程來計算總金額。將白天和晚上單價分別設(shè)為三個數(shù)值,讓汽車行駛不同的里程,來測試所做出的實物是否符合要求。設(shè)定標準為3km以內(nèi)以起步價8元計,超過3km以每千米按設(shè)定單價計價,假設(shè)模擬車輪轉(zhuǎn)1圈實際車輪轉(zhuǎn)2圈,其測試結(jié)果如表1所列。
表1 里程計價測試數(shù)據(jù)
模式 |
單價/元 |
里程/km |
總金額/元 |
2.5 |
10 |
25.5 |
|
白天 |
2.0 |
2 |
8 |
1.5 |
1 |
8 |
|
3.5 |
7 |
22 |
|
晚上 |
3.0 |
2 |
8 |
2.5 |
5 |
13 |
由表1可以看出,測試結(jié)果與理論值相符,系統(tǒng)比較穩(wěn)定,達到了設(shè)計要求。
3.2中途等待測試
在計價模式下,當(dāng)車輪速度低于1.4m/s(5km/h)時,若10s內(nèi)沒有改變這種狀態(tài),則進入中途等待模式,屏幕會進入等待計價狀態(tài),5min后計價器自動增加0.5元。
3.3掉電單元測試
掉電時,可以把當(dāng)前信息存儲起來,重新上電后數(shù)據(jù)可以被繼續(xù)利用。
4結(jié)語
出租車計價器是一種智能化儀表,它通過AT89S52、A44E霍爾傳感器、獨立鍵盤、AT24C02、ISD2560、數(shù)碼管等器件實現(xiàn)了計價器的計程、計費、打印、播報等功能。它功能強、成本低、電路設(shè)計簡單安全,能滿足市場的需求。
20211106_61864c9f1d568__基于單片機的車輛計價器設(shè)計