程陽
摘要:本論文主要介紹了非機(jī)動(dòng)車中基于AT89S51的電動(dòng)車?yán)锍?速度計(jì)的仿真實(shí)現(xiàn),通過AT89S51單片機(jī),采用霍爾傳感器,實(shí)現(xiàn)對(duì)電動(dòng)車行駛里程、速度的測量,并能選擇顯示電動(dòng)車行駛里程值或速度值。
關(guān)鍵詞:AT89S51;LED數(shù)碼管;霍爾傳感器;里程在中國,電動(dòng)車是每年以30%的速度增長的綠色朝陽產(chǎn)業(yè),無論能耗角度還是從占有空間比較,電動(dòng)自行車的發(fā)展趨勢、市場前景都非常看好。電動(dòng)自行車曾以其價(jià)廉、便捷、環(huán)保的功能優(yōu)勢,受到城市市民的青睞,但是它的非機(jī)動(dòng)性也帶來了安全方面的一些問題。我們這里通過把霍爾傳感器安裝在電動(dòng)車輪子上來測定速度、并增加超速聲光報(bào)警提示等功能做為補(bǔ)充。
1設(shè)計(jì)思路
以AT89S51單片機(jī)為核心,采用霍爾傳感器,實(shí)現(xiàn)對(duì)電動(dòng)車行駛里程、速度的測量,并能選擇顯示電動(dòng)車行駛里程值或速度值??梢詫?shí)現(xiàn)對(duì)電動(dòng)車車輪大小的設(shè)置等。電動(dòng)車超過一定限速時(shí)可以進(jìn)行聲光報(bào)警提示。
本系統(tǒng)由硬件和軟件兩部分組成。硬件部分主要完成電動(dòng)車行駛里程里程的檢測、LED顯示、按鍵檢測、燈光指示和聲音報(bào)警等功能。軟件部分主要完成電動(dòng)車行駛里程和速度的計(jì)算、速度值里程值的選擇顯示、按鍵控制、超速時(shí)進(jìn)行聲光報(bào)警提示等功能。
2電路的工作原理
硬件部分,我們以AT89S51為核心,它是美國ATMEL公司生產(chǎn)的,具有低功耗,高性能CMOS的 8位字節(jié)單片機(jī),它還具有4k在線系統(tǒng)編程(ISP)Flash閃速存儲(chǔ)器,并且具有全靜態(tài)的工作模式和三級(jí)程序加密瑣,以及32個(gè)可編程I/O口線,2個(gè)16位定時(shí)/計(jì)數(shù)器,它還能夠具用全雙工串行UART通道和靈活的在系統(tǒng)編程功能,可靈活應(yīng)用于各種控制領(lǐng)域。
我們還借助于霍爾傳感器AH20,將它安裝在電動(dòng)車的輪子上,輪子每轉(zhuǎn)一圈,霍爾傳感器就會(huì)產(chǎn)生一個(gè)低電平脈沖。把CD4024當(dāng)作二分頻器使用,對(duì)霍爾傳感器的輸出信號(hào)加以二分頻,實(shí)現(xiàn)定時(shí)器啟動(dòng)和停止。LED數(shù)碼管利用動(dòng)態(tài)掃描的方式,數(shù)碼管的段碼及位碼的輸入端利用P0口和P2口。里程顯示和速度顯示的狀態(tài)指示燈利用LED1和LED2。電動(dòng)車車輪大小的選擇開關(guān)采用S1~S4。里程/速度顯示的切換開關(guān)采用S5,當(dāng)S5閉合時(shí),速度就會(huì)顯示,當(dāng)S5斷開時(shí),里程就會(huì)顯示。超速報(bào)警指示采用LED3和蜂鳴器。
3軟件實(shí)現(xiàn)
軟件部分:采用C語言編寫。20H~23H單元存放車輪大小的數(shù)值,60H~62H單元存放圈數(shù),68H、69H單元存放輪子轉(zhuǎn)一圈所用的時(shí)間。源程序主要分為主程序、初始化子程序、里程/速度測量子程序、顯示子程序等。
3.1 初始化子程序
初始化子程序主要通過下面的步驟:外部控制定時(shí)方式用定時(shí)器1來設(shè)定、邊沿觸發(fā)方式用外中斷0和外中斷1設(shè)定。當(dāng)開關(guān)S1~S4都斷開為0時(shí),就會(huì)彈出錯(cuò)誤警報(bào)。
3.2 主程序
根據(jù)開關(guān)S5的狀態(tài)選擇顯示里程值或速度值。并開始調(diào)用其他子程序。
3.3 里程速度測量程序
行駛?cè)?shù)的計(jì)數(shù)通過外部中斷0,該計(jì)數(shù)值為十六進(jìn)制數(shù)。輪子每轉(zhuǎn)一圈,就會(huì)產(chǎn)生一次外部中斷,并且計(jì)數(shù)值加1。啟動(dòng)和停止通過外部中斷1控制定時(shí)器T1來實(shí)現(xiàn),當(dāng)外部中斷1輸入為0時(shí),停止定時(shí)器T1,當(dāng)外部中斷1輸入為1時(shí),啟動(dòng)定時(shí)器T1。將輪子圈數(shù)的計(jì)數(shù)脈沖經(jīng)二分頻后將會(huì)產(chǎn)生外部中斷1的輸入信號(hào),這樣輪子轉(zhuǎn)一圈所用的時(shí)間剛好等于每次定時(shí)器T1的計(jì)數(shù)時(shí)間。
3.4 顯示子程序
在顯示里程的過程中,首先要點(diǎn)亮里程顯示指示燈,并同時(shí)熄滅速度顯示指示燈,然后把圈數(shù)計(jì)數(shù)器中的數(shù)值計(jì)算出來,求出總里程值(km)并加以顯示。計(jì)算公式為:里程=計(jì)數(shù)值*輪子周長。當(dāng)需要顯示速率時(shí),首先要點(diǎn)亮速度顯示指示燈,并同時(shí)熄滅里程顯示指示燈,然后把輪子的周長數(shù)值和車輪轉(zhuǎn)一圈所用的時(shí)間數(shù)值計(jì)算出來,求出實(shí)時(shí)速度值并加以顯示,速度的單位為Km/h。速度計(jì)算公式為:速度=輪子周長/定時(shí)時(shí)間
4調(diào)試與功能說明
單片機(jī)AT89S51的31腳要和電源接一起;霍爾傳感器要安裝在電動(dòng)車的前輪上,永久磁鐵要固定在車輪輻條上,AH20作防潮密封后要固定在前叉上,使車輪在轉(zhuǎn)動(dòng)時(shí)磁鐵和AH20相遇,并且相遇時(shí)間盡量短。磁鐵的S極面向AH20的正面,之間的間距調(diào)整到5mm左右。
通過本次實(shí)驗(yàn),我們進(jìn)行設(shè)計(jì)制作的電動(dòng)車?yán)锍?速度計(jì)顯示數(shù)據(jù)準(zhǔn)確、使用方便、占用硬件資源少、而且在不改變硬件電路的前提下,僅通過軟件編程就實(shí)現(xiàn)了計(jì)時(shí)、定時(shí)等功能。
[參考文獻(xiàn)]
[1]潭浩強(qiáng).《C程序設(shè)計(jì)》.北京航空航天大學(xué)出版社.
[2]郝建國,鄭燕.單片機(jī)在電子電路設(shè)計(jì)中的應(yīng)用[M].北京:清華大學(xué)出版社.
[3]童詩白,華成英.《模擬電子技術(shù)基礎(chǔ)》.北京高等教育出版社.
[4]胡漢才.單片機(jī)原理及其接口技術(shù).清華大學(xué)出版社.