張海龍
【摘要】汽車計價器設計以AT89C2051 單片機為核心控制元件,利用靈敏的霍爾傳感器測距,采用AT24C02 實現系統掉電時的價格和時間等信息保存,輸出采用6 位LED數碼管分屏顯示單價、路程、總金額以及時間。
【關鍵詞】單片機;計費系統;霍爾傳感器
一、引言
汽車計價器是出租車行業發展的重要標志。它關系著交易雙方的利益。具有良好性能的計價器無論是對廣大汽車司機朋友還是乘客來說都是很必要的。隨著汽車行業的日漸發展,汽車計價器的功能已從剛開始的只顯示路程發展到了能夠自主計費,以及打印發票和語音提示、按時間自主變動單價等功能。現在各大城市出租車行業都已普及自動計價器,所以計價器技術的發展已成定局。而部分小城市尚未普及,但隨著城市建設日益加快,汽車行業也將加速發展,計價器的普及也是必然的,所以汽車計價器的市場還是十分有潛力的。
二、硬件設計方案
采用傳統的模擬電路和數字電路設計的計價器,其整體電路規模較大,故障率高,難調試,功能不易實現。本次設計我們利用單片機AT89C2051芯片作為設計的核心,利用霍爾傳感器測距,實現對汽車計價統計,采用AT24C02 實現在系統掉電的時候保存單價和系統時間等信息,顯示采用6位LED數碼管,分屏顯示單價、路程、總金額以及時間。本系統具有功能強大、電路簡單、便于維護等特點。總體設計框圖如圖2.1所示。
1.單片機
AT89C2051是美國ATMEL公司生產的低電壓、高性能CMOS 8位單片機,只有20引腳。片內含有2K字節可反復擦寫的只讀程序存儲器和128字節的隨機數據存儲器,兼容標準MCS-51指令系統,內置通用8位中央處理器和Flash存儲單元。
該系統中AT89C2051作為總控芯片,主要具有對測量結果進行運算處理、控制顯示及保證系統正常工作等功能。
2.里程計算設計
本次設計里程計算采用霍爾傳感器A44E,里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算,送給顯示單元的。其原理如圖2.2所示。
我們選擇了P3.2口作為信號的輸入端,內部采用外部中斷0(這樣可以減少程序設計的麻煩),車輪每轉一圈(我們設車輪的周長是1 米),霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈沖計數,當計數達到1000 次時,也就是1公里,單片機就控制將金額自動的加增加,其計算公式:
當前單價×公里數=金額。
圖2.2 傳感器測距示意圖
3.顯示單元設計
本設計具有單價、路程、金額顯示輸出,加上我們另外擴展了時鐘顯示(包含時分秒的顯示),采用LCD液晶屏顯示,在距離屏幕較遠處無法看清數據,不能滿足要求,而且在白天其對比度也不能夠滿足要求,因此我們采用6位LED數碼管顯示方式。
數據的分屏的顯示是通過按鍵S1來實現切換的,在汽車不走的時候,按下S1,可以實現數據的分屏顯示,車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1 切換到里程和單價顯示屏,供客戶查詢。
4.AT24C02掉電存儲單元的設計
掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02是ATMEL 公司的2KB字節的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。
其電路如圖2.3所示。
圖中R8、R10是上拉電阻,其作用是減少AT24C02的靜態功耗,由于AT24C02的數據線和地址線是復用的,采用串口的方式傳送數據,所以只用兩根線SCL(移位脈沖)和SDA(數據/地址)與單片機傳送數據。
每當設定一次單價,系統就自動調用存儲程序,將單價信息保存在芯片內。當系統重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,讀到緩存單元中,供主程序使用。
5.按鍵設計
(1)S1按鍵的功能
在汽車不走的時候,按下S1,可以實現數據的分屏顯示,車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1 切換到里程和單價顯示屏,供客戶查詢。
(2)S2按鍵的功能
在按下S1按鍵之后,若接著按下S2鍵則進行單價調整(默認為調整白天單價),當接著按下S1時,則進行晚上單價調,再次按下S1可進行中途等待單價調整。當單價調整結束后,可以通過按下S2按鍵進行時間調整,默認為調整時,接著按下S1可進行調整分,分調整后再接下S1可進行秒調整。當時調整完成后,若接著按下S2則又可進行單價調整。
(3)S3按鍵的功能
在顯示金額及單價時,若按下S3鍵則顯示路程和單價,再次按下S3則可返回顯示金額及單價。
(4)S4按鍵的功能
在按下S1按鍵之后,若接著按下S4按鍵,則進行設定默認晚上單價,并啟動計價器,若沒有按下S4則可設定默認單價(白天),并啟動計價器。當設定默認晚上單價結束后,再次接下S4按鍵則可設定默認中途等待單價,并啟動計價器。當設定默認中途等待單價后,若還按一次S4,則返回系統時間的顯示。
三、軟件設計
本系統的軟件設計主要可分為主程序模塊、定時計數中斷程序、里程計數中斷服務程序、中途等待中斷服務程序、顯示子程序服務程序、鍵盤服務程序六大模塊。
主程序模塊完成對各接口芯片的初始化、汽車起價和單價的初始化、中斷向量的設計以及開中斷、循環等待等工作。
另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計價等不同的操作。
四、結論
采用AT89C2051單片機作為核心的控制元件,靈敏的霍爾開關型器件A44E霍爾傳感器,因此本汽車計價器具有功能強、性能可靠、電路簡單、成本低實用性強等特點,加上經過優化的程序,使其有很高的智能化水平。