張柄濤,李圣普
(平頂山學(xué)院 信息工程學(xué)院,河南平頂山,467000)
在科技迅速發(fā)展的背景下,城市的機(jī)動化水平明顯上升,但機(jī)動車的使用量增多導(dǎo)致環(huán)境污染愈發(fā)嚴(yán)重。為了倡導(dǎo)綠色出行,低碳環(huán)保的理念,為了給予騎行者健康的鍛煉環(huán)境,本文對自行車速度里程表的設(shè)計與實(shí)現(xiàn)做了深入的研究。
本文主要是設(shè)計一款基于STC89C52單片機(jī)的自行車速度里程表。該系統(tǒng)主要使用單片機(jī)控制和傳感器等技術(shù),通過LCD顯示模塊實(shí)現(xiàn)顯示騎行者的里程、速度和時間等功能。
系統(tǒng)的硬件模塊包括以STC89C52單片機(jī)為核心,有霍爾傳感器、時鐘模塊、LCD顯示模塊和報警模塊。系統(tǒng)的軟件設(shè)計通過KEIL5程序進(jìn)行編程。其總體設(shè)計方案如圖1所示。
圖1 系統(tǒng)總體框架設(shè)計圖
系統(tǒng)的硬件設(shè)計選用了STC89C52單片機(jī),霍爾傳感器、LCD顯示模塊、時鐘模塊以及報警模塊。
目前,單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域[1]。本次設(shè)計選用STC89C52單片機(jī),該單片機(jī)具有多個雙向I/O口,有3個16位可編程的定時/計時器中斷。
STC89C52單片機(jī)是一種低功耗、高性能CMOS8位嵌入式微控制器。
A3144霍爾傳感器是Aleg MicroSystems公司生產(chǎn)的開關(guān)型霍爾效應(yīng)傳感器,是由于霍爾效應(yīng)而制作的一種磁場傳感器,它有結(jié)構(gòu)穩(wěn)定、體積較小、使命壽命長、安裝簡單和不怕污染和腐蝕的優(yōu)點(diǎn)。受溫度影響較小。該芯片具有較高的穩(wěn)定性和靈敏度,以及尺寸較小等特點(diǎn)[2]。本次設(shè)計中在裝有電磁的馬達(dá)小輪通過霍爾傳感器發(fā)生磁通量的變化,霍爾傳感器將這種外部信號轉(zhuǎn)換為脈沖信號輸入給單片機(jī)轉(zhuǎn)換為數(shù)據(jù)信息,通過顯示器進(jìn)行顯示。其結(jié)構(gòu)如圖2所示。
圖 2 霍爾元件接口圖
在顯示器的模塊選擇中,與LED數(shù)碼管的顯示功能相比,LCD液晶顯示器不僅能直觀地顯示,而且界面也有人機(jī)交互美觀的特點(diǎn)[3]。憑借低功耗,方便控制,占用資源少等優(yōu)點(diǎn)成為一些簡易里程表顯示器的首選[4]。在本次系統(tǒng)中,通過單片機(jī)與LCD對應(yīng)引腳相連接,以此達(dá)到顯示里程和速度的功能,通過時鐘模塊DS1302的選用,也能顯示日期和時間。
DS1302一種高性能、低功耗、帶RAM的實(shí)時時鐘電路的時鐘芯片,它可以對年、月、日、周、時、分、秒進(jìn)行計時,工作電壓在2.5V和5.5V之間,具有閏年補(bǔ)償功能。DS1302內(nèi)部有一個用于臨時存放數(shù)據(jù)的RAM寄存器[5]。通過與主控芯片和LCD顯示模塊的連接,可以使其具有實(shí)時顯示時間的功能。其引腳如圖3所示。
圖3 DS1302引腳圖
本次報警電路采用蜂鳴器報警系統(tǒng),通過設(shè)定最大速度值,當(dāng)檢測行駛速度超過設(shè)置的規(guī)定值時則引發(fā)蜂鳴器響動,提示駕駛者應(yīng)該減速,小心行駛。其接口圖如圖4所示。
圖5為系統(tǒng)硬件電路設(shè)計的示意圖。在實(shí)際物體中,電動機(jī)被用來模擬自行車的車輪旋轉(zhuǎn),而不是單芯片微計算機(jī)連接。在模擬中,按鈕被用來替換該功能的一部分為USB供電。
圖 4 報警電路接口圖
圖5 系統(tǒng)整體電路
根據(jù)自行車速度里程表的功能分析,在本次設(shè)計中采用C語言在KEIL5環(huán)境下進(jìn)行程序開發(fā),KEIL軟件能提供庫函數(shù)和集成開發(fā)調(diào)試工具,本次系統(tǒng)通過它的集成環(huán)境和仿真調(diào)試工具完成調(diào)試[6]。
系統(tǒng)正常通電后,首先對系統(tǒng)進(jìn)行初始化,根據(jù)霍爾傳感器接收的外部信號來計算脈沖數(shù),通過單片機(jī)將脈沖信號轉(zhuǎn)換為數(shù)據(jù)信息,計算出一定時間自行車運(yùn)動的里程和速度。在數(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實(shí)現(xiàn),并用于完成50ms的定時。對于霍爾傳感器產(chǎn)生的每一脈沖,對應(yīng)的回合數(shù)增加,因此可以通過計算一定時間內(nèi)的回合數(shù)來計算距離和速度。
單片機(jī)的P3.2端口輸入的脈沖數(shù)通過外部中斷0進(jìn)行計數(shù)。每次計數(shù)通過脈沖循環(huán)時,單片機(jī)就執(zhí)行行駛距離的數(shù)據(jù)存儲操作。當(dāng)車輪每一個回合導(dǎo)通時,導(dǎo)通的脈沖數(shù)通過霍爾傳感器傳送到單芯片微計算機(jī),由計時器/計數(shù)器計數(shù)脈沖數(shù),通過乘法子例程計算行駛距離。如圖8所示。
圖8 里程計算程序流程圖
車輪轉(zhuǎn)動一圈后,計時數(shù)據(jù)通過外部中斷1服務(wù)程序來處理。當(dāng)標(biāo)志位為1時,計數(shù)溢出,放入最大時間值;當(dāng)標(biāo)志位為0時,將存儲器中的值存入到引腳單元。定時/計數(shù)器計算出每轉(zhuǎn)一圈所花費(fèi)的時間,并在時間上分割車輪的圓周以獲得自行車的速度[8]。
DS1302模塊與MCU實(shí)時通信,通過電池供電實(shí)現(xiàn)時間的運(yùn)行,通過按鍵設(shè)置,顯示實(shí)時時間或行駛時間,并且可以通過開關(guān)進(jìn)行初始設(shè)置。
(1)時間日期信息。
(2)可以調(diào)整月份和閏年的天數(shù)。
(3)當(dāng)保留數(shù)據(jù)或時鐘信息時,使其小于1mW。
接通USB接口,DS1302進(jìn)行復(fù)位操作,設(shè)置“時間”、“分鐘”,將數(shù)據(jù)顯示在液晶畫面上。
本部分介紹系統(tǒng)元器件的整體制作過程、自行車速度里程表所使用到的各模塊的組裝調(diào)試、程序燒錄和系統(tǒng)調(diào)試并對結(jié)果進(jìn)行驗(yàn)證分析。
在安裝各模塊之前需要對每個模塊進(jìn)行檢查,防止出現(xiàn)整體安裝完成后,個別模塊出現(xiàn)問題又不便于查找原因的情況。在保證每個模塊都能正常工作的情況下,通過AD10的設(shè)計排版構(gòu)圖進(jìn)行安裝后,對系統(tǒng)的整體運(yùn)行有了一定的基礎(chǔ)。
最先要開始的是對電路部分的設(shè)計,其次是整個電路中每個元器件的安裝。在電路安裝方面,秉承著方便實(shí)惠的思想,采用萬能板進(jìn)行電路的連接。
電路按照原理圖焊接完成后,要先對板子進(jìn)行測量確保各項(xiàng)正常后再進(jìn)行通電。測量內(nèi)容包含以下幾項(xiàng):
(1)用萬用表來檢測各個回路是否正常。
(2)利用示波器來檢測系統(tǒng)晶振是否正常。
(3)是否存在因焊接失誤而導(dǎo)致電路短路和斷路的情況。
確保每個部分都完好后,接通USB接口對整個系統(tǒng)進(jìn)行供電,觀察整體的模塊運(yùn)行情況,若無誤,則電路的調(diào)試完成。
當(dāng)各個模塊安裝完成后,對整個系統(tǒng)進(jìn)行USB通電,通過各個模塊初始化配置后,觀察指示燈和LCD屏幕是否亮起,如果亮起則系統(tǒng)運(yùn)行正常。在正常顯示后,將馬達(dá)代替車輪進(jìn)行啟動測試,放入霍爾傳感器上方,觀察LCD顯示屏中的里程和速度是否發(fā)生變化,調(diào)整速度極值,觀察蜂鳴器是否能正常工作。針對數(shù)據(jù)信息檢測,通過仿真軟件Proteus的使用,在規(guī)定時間內(nèi)記錄變化的速度,求其平均速度與公式計算的速度值相比,通過誤差大小來判斷系統(tǒng)數(shù)據(jù)準(zhǔn)確性,設(shè)定扇葉直徑d=4cm,則由公式v=(πd)/t可得速度的真實(shí)值,通過按鍵設(shè)置時間,觀察時間是否變動,若各種功能均正常運(yùn)行,則測試就完成。
經(jīng)過測試,對中間所出現(xiàn)的問題進(jìn)行及時的解決,測試結(jié)果分析如下:自行車速度里程表實(shí)現(xiàn)了LCD顯示里程、速度和時間功能,報警器也能正常報警來提醒駕駛者,符合預(yù)期目標(biāo)后,即完成了本次的系統(tǒng)設(shè)計。
本文給出了一種自行車速度里程表的設(shè)計方案,通過仿真、實(shí)踐驗(yàn)證了系統(tǒng)的可行性,能通過LCD1602顯示速度、里程和時間等信息。當(dāng)車輪轉(zhuǎn)動時,磁片經(jīng)過霍爾元件發(fā)生磁通量的變化,此時輸出一脈沖,再根據(jù)車輪周長計算里程,當(dāng)車速超過一定限值時,電路將啟動報警系統(tǒng),以此實(shí)現(xiàn)健康騎行的目的。本次設(shè)計的自行車速度里程表可以滿足一般使用要求且有性價比高等優(yōu)點(diǎn),因此有廣泛的應(yīng)用前景。但本次系統(tǒng)仍有改進(jìn)之處,隨著互聯(lián)網(wǎng)科學(xué)技術(shù)的發(fā)展,這些簡單的速度里程表的功能還需要很大的創(chuàng)新。在對于本次設(shè)計針對互聯(lián)網(wǎng)的發(fā)展來看,可以使用藍(lán)牙等模塊實(shí)時連接手機(jī),來顯示身體熱量的消耗值以及播放音樂等功能,以達(dá)到更舒適、更健康的體驗(yàn)。