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