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

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

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

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

圖 4 報警電路接口圖

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

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

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

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