基于HT46RU24單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
1.8 串口電路(如圖六)。
設(shè)計(jì)串口電路來完成計(jì)價(jià)器與PC機(jī)通信。計(jì)價(jià)器傳送統(tǒng)計(jì)信息到PC機(jī),接收并儲(chǔ)存從PC機(jī)傳送過來的基本信息,包括車輪直徑,校正時(shí)鐘,起步價(jià)、里程價(jià)、回空價(jià)、等待價(jià)等計(jì)費(fèi)參數(shù)。在PC機(jī)上可以采用VB、VC等設(shè)計(jì)串口通信界面,通過串口電路管理者能夠采集詳實(shí)、準(zhǔn)確的營(yíng)運(yùn)數(shù)據(jù),這些數(shù)據(jù)經(jīng)過PC機(jī)處理后能夠詳細(xì)的做出日?qǐng)?bào)表、月報(bào)表、運(yùn)作分析表等,比較直觀的反映出租車的營(yíng)運(yùn)情況,便于管理部門全面掌握第一手資料,及時(shí)針對(duì)所出現(xiàn)的情況做出準(zhǔn)確的判斷和決策,從而實(shí)現(xiàn)微機(jī)化、科學(xué)化管理。
圖六 串口電路
2.軟件結(jié)構(gòu)
在主程序中,最主要是根據(jù)開關(guān)狀態(tài)做不同的處理。狀態(tài)0:保持空車;狀態(tài)1:保持載客;狀態(tài)2:空車變載客;狀態(tài)3:載客變空車。主程序流程如圖七所示。
圖七主程序流程
2.1 保持空車
空車部分主要是做顯示、PC機(jī)通信以及IC卡消費(fèi)。通過設(shè)置程序?qū)崿F(xiàn)按不同的按鍵完成不同的功能。例如按下“0”鍵,液晶屏?xí)@示當(dāng)日的統(tǒng)計(jì)信息,再按下“2”鍵會(huì)顯示前一日的統(tǒng)計(jì)信息,按下“4”鍵顯示后一日的統(tǒng)計(jì)信息,具體要完成的功能如表一所示。
2.2 空車變載客
這部分要完成禁止串口中斷和啟動(dòng)計(jì)價(jià)。啟動(dòng)計(jì)價(jià)是為載客部分要完成的計(jì)價(jià)、計(jì)時(shí)程序做一些初始化的工作。例如要讀出計(jì)價(jià)參數(shù),給計(jì)程、計(jì)時(shí)、總誤時(shí)單元清0,判斷是否是夜班,啟動(dòng)定時(shí)器等。
2.3 保持載客
載客部分,主要是處理誤時(shí)價(jià)和里程價(jià),要用到50MS定時(shí)器中斷和外部中斷,需要定義計(jì)時(shí)單元來存儲(chǔ)兩個(gè)外部中斷之間的時(shí)間,定義累計(jì)誤時(shí)單元存儲(chǔ)累計(jì)等待時(shí)間。50MS中斷到來時(shí)置位F_50MS,在載客部分會(huì)調(diào)用50MS中斷處理程序,流程如圖八所示,該程序主要對(duì)計(jì)時(shí)單元進(jìn)行處理,如果計(jì)時(shí)單元大于10S,調(diào)用誤時(shí)價(jià)子程序ADD_PT。
通過霍爾傳感器,車輪每轉(zhuǎn)動(dòng)一圈,會(huì)觸發(fā)外部中斷,在中斷子程序里首先要關(guān)定時(shí)器,存T0計(jì)數(shù)值,給定時(shí)器重新置50MS計(jì)數(shù)初值后置位F_int0并開定時(shí)器。在載客部分也會(huì)調(diào)用外部中斷處理子程序,流程如圖九所示,當(dāng)檢測(cè)到車速低于特定值時(shí),需要計(jì)算誤時(shí)價(jià),將計(jì)時(shí)單元加入累計(jì)誤時(shí)單元中,其中ADD_PS是里程價(jià)子程序。
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評(píng)論