張柄濤,李圣普
(平頂山學院 信息工程學院,河南平頂山,467000)
在科技迅速發展的背景下,城市的機動化水平明顯上升,但機動車的使用量增多導致環境污染愈發嚴重。為了倡導綠色出行,低碳環保的理念,為了給予騎行者健康的鍛煉環境,本文對自行車速度里程表的設計與實現做了深入的研究。
本文主要是設計一款基于STC89C52單片機的自行車速度里程表。該系統主要使用單片機控制和傳感器等技術,通過LCD顯示模塊實現顯示騎行者的里程、速度和時間等功能。
系統的硬件模塊包括以STC89C52單片機為核心,有霍爾傳感器、時鐘模塊、LCD顯示模塊和報警模塊。系統的軟件設計通過KEIL5程序進行編程。其總體設計方案如圖1所示。

圖1 系統總體框架設計圖
系統的硬件設計選用了STC89C52單片機,霍爾傳感器、LCD顯示模塊、時鐘模塊以及報警模塊。
目前,單片機廣泛應用于儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程控制等領域[1]。本次設計選用STC89C52單片機,該單片機具有多個雙向I/O口,有3個16位可編程的定時/計時器中斷。
STC89C52單片機是一種低功耗、高性能CMOS8位嵌入式微控制器。
A3144霍爾傳感器是Aleg MicroSystems公司生產的開關型霍爾效應傳感器,是由于霍爾效應而制作的一種磁場傳感器,它有結構穩定、體積較小、使命壽命長、安裝簡單和不怕污染和腐蝕的優點。受溫度影響較小。該芯片具有較高的穩定性和靈敏度,以及尺寸較小等特點[2]。本次設計中在裝有電磁的馬達小輪通過霍爾傳感器發生磁通量的變化,霍爾傳感器將這種外部信號轉換為脈沖信號輸入給單片機轉換為數據信息,通過顯示器進行顯示。其結構如圖2所示。

圖 2 霍爾元件接口圖
在顯示器的模塊選擇中,與LED數碼管的顯示功能相比,LCD液晶顯示器不僅能直觀地顯示,而且界面也有人機交互美觀的特點[3]。憑借低功耗,方便控制,占用資源少等優點成為一些簡易里程表顯示器的首選[4]。在本次系統中,通過單片機與LCD對應引腳相連接,以此達到顯示里程和速度的功能,通過時鐘模塊DS1302的選用,也能顯示日期和時間。
DS1302一種高性能、低功耗、帶RAM的實時時鐘電路的時鐘芯片,它可以對年、月、日、周、時、分、秒進行計時,工作電壓在2.5V和5.5V之間,具有閏年補償功能。DS1302內部有一個用于臨時存放數據的RAM寄存器[5]。通過與主控芯片和LCD顯示模塊的連接,可以使其具有實時顯示時間的功能。其引腳如圖3所示。

圖3 DS1302引腳圖
本次報警電路采用蜂鳴器報警系統,通過設定最大速度值,當檢測行駛速度超過設置的規定值時則引發蜂鳴器響動,提示駕駛者應該減速,小心行駛。其接口圖如圖4所示。
圖5為系統硬件電路設計的示意圖。在實際物體中,電動機被用來模擬自行車的車輪旋轉,而不是單芯片微計算機連接。在模擬中,按鈕被用來替換該功能的一部分為USB供電。

圖 4 報警電路接口圖

圖5 系統整體電路
根據自行車速度里程表的功能分析,在本次設計中采用C語言在KEIL5環境下進行程序開發,KEIL軟件能提供庫函數和集成開發調試工具,本次系統通過它的集成環境和仿真調試工具完成調試[6]。
系統正常通電后,首先對系統進行初始化,根據霍爾傳感器接收的外部信號來計算脈沖數,通過單片機將脈沖信號轉換為數據信息,計算出一定時間自行車運動的里程和速度。在數據處理后,將得到的數據顯示在LCD顯示屏上。系統總體流程如圖6所示[7]。

圖6 系統總體軟件流程圖
顯示模塊程序的設計必須判斷位選擇代碼,判定段代碼,在LCD上顯示數據,其過程如圖7所示。

圖7 LCD顯示程序流程圖
采用動態掃描顯示接口電路。首先要顯示的數據被發送到存儲器單元,然后數據被發送到與段通行證對應的地址,最后逐步完成液晶顯示。
速度測量模塊主要由MCU的外部中斷0實現,并用于完成50ms的定時。對于霍爾傳感器產生的每一脈沖,對應的回合數增加,因此可以通過計算一定時間內的回合數來計算距離和速度。
單片機的P3.2端口輸入的脈沖數通過外部中斷0進行計數。每次計數通過脈沖循環時,單片機就執行行駛距離的數據存儲操作。當車輪每一個回合導通時,導通的脈沖數通過霍爾傳感器傳送到單芯片微計算機,由計時器/計數器計數脈沖數,通過乘法子例程計算行駛距離。如圖8所示。

圖8 里程計算程序流程圖
車輪轉動一圈后,計時數據通過外部中斷1服務程序來處理。當標志位為1時,計數溢出,放入最大時間值;當標志位為0時,將存儲器中的值存入到引腳單元。定時/計數器計算出每轉一圈所花費的時間,并在時間上分割車輪的圓周以獲得自行車的速度[8]。
DS1302模塊與MCU實時通信,通過電池供電實現時間的運行,通過按鍵設置,顯示實時時間或行駛時間,并且可以通過開關進行初始設置。
(1)時間日期信息。
(2)可以調整月份和閏年的天數。
(3)當保留數據或時鐘信息時,使其小于1mW。
接通USB接口,DS1302進行復位操作,設置“時間”、“分鐘”,將數據顯示在液晶畫面上。
本部分介紹系統元器件的整體制作過程、自行車速度里程表所使用到的各模塊的組裝調試、程序燒錄和系統調試并對結果進行驗證分析。
在安裝各模塊之前需要對每個模塊進行檢查,防止出現整體安裝完成后,個別模塊出現問題又不便于查找原因的情況。在保證每個模塊都能正常工作的情況下,通過AD10的設計排版構圖進行安裝后,對系統的整體運行有了一定的基礎。
最先要開始的是對電路部分的設計,其次是整個電路中每個元器件的安裝。在電路安裝方面,秉承著方便實惠的思想,采用萬能板進行電路的連接。
電路按照原理圖焊接完成后,要先對板子進行測量確保各項正常后再進行通電。測量內容包含以下幾項:
(1)用萬用表來檢測各個回路是否正常。
(2)利用示波器來檢測系統晶振是否正常。
(3)是否存在因焊接失誤而導致電路短路和斷路的情況。
確保每個部分都完好后,接通USB接口對整個系統進行供電,觀察整體的模塊運行情況,若無誤,則電路的調試完成。
當各個模塊安裝完成后,對整個系統進行USB通電,通過各個模塊初始化配置后,觀察指示燈和LCD屏幕是否亮起,如果亮起則系統運行正常。在正常顯示后,將馬達代替車輪進行啟動測試,放入霍爾傳感器上方,觀察LCD顯示屏中的里程和速度是否發生變化,調整速度極值,觀察蜂鳴器是否能正常工作。針對數據信息檢測,通過仿真軟件Proteus的使用,在規定時間內記錄變化的速度,求其平均速度與公式計算的速度值相比,通過誤差大小來判斷系統數據準確性,設定扇葉直徑d=4cm,則由公式v=(πd)/t可得速度的真實值,通過按鍵設置時間,觀察時間是否變動,若各種功能均正常運行,則測試就完成。
經過測試,對中間所出現的問題進行及時的解決,測試結果分析如下:自行車速度里程表實現了LCD顯示里程、速度和時間功能,報警器也能正常報警來提醒駕駛者,符合預期目標后,即完成了本次的系統設計。
本文給出了一種自行車速度里程表的設計方案,通過仿真、實踐驗證了系統的可行性,能通過LCD1602顯示速度、里程和時間等信息。當車輪轉動時,磁片經過霍爾元件發生磁通量的變化,此時輸出一脈沖,再根據車輪周長計算里程,當車速超過一定限值時,電路將啟動報警系統,以此實現健康騎行的目的。本次設計的自行車速度里程表可以滿足一般使用要求且有性價比高等優點,因此有廣泛的應用前景。但本次系統仍有改進之處,隨著互聯網科學技術的發展,這些簡單的速度里程表的功能還需要很大的創新。在對于本次設計針對互聯網的發展來看,可以使用藍牙等模塊實時連接手機,來顯示身體熱量的消耗值以及播放音樂等功能,以達到更舒適、更健康的體驗。