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