基于HT46RU24單片機的出租車計價器設計

發布時間:2010-11-30 17:56    發布者:designer
關鍵詞: HT46RU24 , 出租車 , 單片機 , 計價器
1 系統硬件組成

總體結構如圖一所示。硬件上主要由HT46RU24單片機,霍爾傳感器,空載開關,鍵盤電路,數據存儲電路,時鐘電路,顯示電路,蜂鳴器,IC卡電路以及串口電路組成。





1.1 HT46RU24單片機。

HT46RU24單片機是HOLTEK公司研制的一種低功耗,高性能的8位單片機。它的ROM為8k*16、RAM為384 bytes,最多有40個雙向IO口。除此之外它還具有8通道12位分辨率的A/D轉換,A/D轉換可用來監測外部模擬信號,如偵測電池電壓、電流、溫度、濕度、壓力、明暗度等。提供兩種模式的PWM輸出可應用于控溫、調速、定電壓、定電流等?煽氐腜FD輸出用于發聲,或是紅外線傳輸的載波信號。

HT46RU24的UART屬于全雙工異步通信,可由軟件設定波特率,并具有自動檢錯功能,利用UART與其它系統做數據傳輸時,可減少軟件的負擔,提高整個系統的使用效率。

HT46RU24單片機具有高的抗噪聲特性、WDT及LVR的功能用以加強MCU的穩定性。

HALT和喚醒功能可降低功耗。HT46RU24單片機還可當I2C從機使用。管腳圖如圖二所示。

1.2 霍爾傳感器

將安裝在車輛變速箱輸出端齒輪的霍爾傳感器接到單片機外部中斷接口上,車輪每轉動一圈,霍爾傳感器將產生一個下降沿脈沖,觸發外部中斷。

1.3 鍵盤電路

為了節省IO口,設計一個2*4的矩陣鍵盤,在程序設計中每一個按鍵所代表的功能如表一所示。





圖二 HT46RU24管腳圖





表一 按鍵功能

1.4 空載開關電路(如圖三)

設計一個空載開關,開關閉合時讀到低電平“0”,打開時讀到高電平“1”,通過兩次讀取開關的數值,判斷出租車所處的不同狀態,如表二所示,兩次讀到“0”說明出租車處于空車狀態,兩次都讀到“1”說明出租車處于載客狀態,第一次讀到“0”第二次讀到“1”出租車從空車變到載客,第一次讀到“1”第二次讀到“0”出租車從載客變到空車。





圖三 開關電路





表二 開關狀態判斷

1.5 數據存儲器和時鐘電路

擴展I2C總線的AT24C256存儲統計信息, PCF8563做時鐘輸出,這兩種芯片可共用IO口以節省IO口的使用。AT24C256存儲芯片有256K的存儲容量,分頁存儲,每頁有64個字節的容量。PCF8563芯片有一個可編程的時鐘輸出,一個中斷輸出和掉電檢測器電路。

1.6 顯示電路和蜂鳴器電路

使用可顯示漢字及圖形的液晶SMG12864來顯示里程價,誤時價,附加費,統計信息等等。這款液晶內置國標GB2312碼簡體中文字庫(16x16點陣)、128個字符(8x16點陣)及64x256點陣顯示RAM(GDRAM)。與單片機的連接有8-位并行及串行兩種連接方式。在本設計中采用并行通訊方式,電路圖如圖四所示,在軟件編程時要置位PA0。

蜂鳴器單元設計目的是在于進行一些特殊操作時,能夠發出不同的提示音。





圖四 液晶顯示電路

1.7 IC卡電路(如圖五)

計價器具有IC卡付費功能,所采用的IC卡是SLE4442卡,它是德國西門子公司設計的一種邏輯加密卡。SLE4442卡具有3KB的存儲容量和完全獨立的可編程加密代碼存儲器(PSC),是國內目前應用較廣的一種IC卡。







圖五 IC卡電路

1.8 串口電路(如圖六)。

設計串口電路來完成計價器與PC機通信。計價器傳送統計信息到PC機,接收并儲存從PC機傳送過來的基本信息,包括車輪直徑,校正時鐘,起步價、里程價、回空價、等待價等計費參數。在PC機上可以采用VB、VC等設計串口通信界面,通過串口電路管理者能夠采集詳實、準確的營運數據,這些數據經過PC機處理后能夠詳細的做出日報表、月報表、運作分析表等,比較直觀的反映出租車的營運情況,便于管理部門全面掌握第一手資料,及時針對所出現的情況做出準確的判斷和決策,從而實現微機化、科學化管理。





圖六 串口電路

2.軟件結構

在主程序中,最主要是根據開關狀態做不同的處理。狀態0:保持空車;狀態1:保持載客;狀態2:空車變載客;狀態3:載客變空車。主程序流程如圖七所示。





圖七主程序流程

2.1 保持空車

空車部分主要是做顯示、PC機通信以及IC卡消費。通過設置程序實現按不同的按鍵完成不同的功能。例如按下“0”鍵,液晶屏會顯示當日的統計信息,再按下“2”鍵會顯示前一日的統計信息,按下“4”鍵顯示后一日的統計信息,具體要完成的功能如表一所示。

2.2 空車變載客

這部分要完成禁止串口中斷和啟動計價。啟動計價是為載客部分要完成的計價、計時程序做一些初始化的工作。例如要讀出計價參數,給計程、計時、總誤時單元清0,判斷是否是夜班,啟動定時器等。

2.3 保持載客

載客部分,主要是處理誤時價和里程價,要用到50MS定時器中斷和外部中斷,需要定義計時單元來存儲兩個外部中斷之間的時間,定義累計誤時單元存儲累計等待時間。50MS中斷到來時置位F_50MS,在載客部分會調用50MS中斷處理程序,流程如圖八所示,該程序主要對計時單元進行處理,如果計時單元大于10S,調用誤時價子程序ADD_PT。

通過霍爾傳感器,車輪每轉動一圈,會觸發外部中斷,在中斷子程序里首先要關定時器,存T0計數值,給定時器重新置50MS計數初值后置位F_int0并開定時器。在載客部分也會調用外部中斷處理子程序,流程如圖九所示,當檢測到車速低于特定值時,需要計算誤時價,將計時單元加入累計誤時單元中,其中ADD_PS是里程價子程序。




2.3.1 誤時價。

誤時價程序主要是判斷累計等待時間是否超過規定的等待時間(Twait),超過以后,每過10S增加一次10S誤時價,流程圖如圖九所示,其中F_wait表示起價等待時間到標志。





2.3.2 里程價

里程價子程序關鍵是判斷計程單元S的大小,判斷是起步價,還是3KM-8KM的短途價或是8KM以上的長途價。





2.4 載客變空車

這部分要完成停止計價、存統計信息、允許串口中斷的操作,關鍵是存儲統計信息。每月最多有31天,每天需要4個字節的容量,這樣一個月的信息至少需要124個字節。因為采用的存儲芯片AT24C256是分頁存儲,每頁有64個字節的容量,如果給每個月的信息分配128個字節,這樣通過計算公式: (月-1)×32×4+(日-1)×4+ADDRESS_AT3 ( ADDRESS_AT3表示在AT24C256里分配給統計信息的起始地址) 很容易存儲和查看每日統計信息,所以我們給每個月的信息分配2頁128個字節的容量。

3.結論

本文詳細的闡述了用HT46RU24單片機實現出租車計價器的軟硬件原理。程序設計清晰、有條理,維護性強,整個電路完整、緊湊,成本低,且具有操作簡單,管理方便,安全可靠、功能強的優點。計價器的核心HT46RU24單片機,軟件編程靈活、自由度大、功能強,功耗低,性價比高,技術成熟。
歡迎分享本文,轉載請保留出處:http://www.5589106.live/thread-43078-1-1.html     【打印本頁】
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
二四三一是什么生肖 配资炒股免费送体验金 富赢网配资 江西11选5前三组走势图 四川省金7乐 融资买入的股票怎么 内蒙古十一选五走势 牛达人配资 pc蛋蛋首页 腾讯分分彩视频 股票配资平台推广