巢國強(qiáng)
摘要:隨著居民生活水平的不斷提高,自行車又一次在人們的身邊不斷出現(xiàn)。人們不僅僅把它當(dāng)作交通工具使用,更多的是作為一種鍛煉身體和娛樂休閑的載體。通過自行車上的數(shù)字里程表,可以使人們?cè)谲囕v行駛時(shí),清楚地掌握當(dāng)前車輛速度、車輛累計(jì)行駛里程、當(dāng)前時(shí)間等信息。本論文主要闡述一種基于51單片機(jī)的自行車簡單里程表的設(shè)計(jì)方案。文中以 STC89S52單片機(jī)為核心,通過A44E 霍爾傳感器測(cè)量車輛轉(zhuǎn)數(shù),通過編寫程序?qū)崿F(xiàn)對(duì)自行車車速、里程的測(cè)量,并采用LCD1602顯示測(cè)得的車速、里程數(shù)和當(dāng)前時(shí)間;通過按鍵設(shè)置車速上限,當(dāng)測(cè)得的車速高于設(shè)定值時(shí),蜂鳴器報(bào)警提示超速。本文詳細(xì)介紹了自行車速度里程表的硬件電路組成和軟件設(shè)計(jì)方案。其中硬件部分包括了:時(shí)鐘電路、霍爾傳感器電路、電源電路、蜂鳴報(bào)警電路、按鍵電路和LCD顯示電路。電路中利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機(jī)系統(tǒng),然后單片機(jī)系統(tǒng)將信號(hào)經(jīng)過處理送入LCD進(jìn)行顯示。論文中軟件部分采用C語言模塊化編程設(shè)計(jì)思路進(jìn)行編程,將程序分成了主程序模塊、按鍵設(shè)定模塊、時(shí)鐘模塊、速度測(cè)量和里程計(jì)算模塊、LCD顯示模塊等。
關(guān)鍵詞:單片機(jī);霍爾;LCD;速度
一、硬件系統(tǒng)的設(shè)計(jì)
電動(dòng)車的速度里程表應(yīng)當(dāng)具有里程、速度測(cè)量、顯示功能。采用單片機(jī)作核心控制器件,顯示電路可顯示里程及速度,并且可以改變里程預(yù)設(shè)值達(dá)到報(bào)警效果。用霍爾傳感器將所測(cè)轉(zhuǎn)速轉(zhuǎn)變?yōu)閿?shù)字量信號(hào),然后再將數(shù)字信號(hào)數(shù)據(jù)傳輸于到單片機(jī)處理,單片機(jī)將根據(jù)設(shè)計(jì)程序計(jì)算在一定時(shí)間內(nèi)數(shù)字脈沖的頻率,再由計(jì)數(shù)值最終得到里程數(shù)并通過LCD設(shè)備顯示出來。本系統(tǒng)還包括報(bào)警功能,在速度超過某一個(gè)固定值后,蜂鳴器響,提示需要減速。
1、電路總體原理框圖
要求達(dá)到的各項(xiàng)指標(biāo)及實(shí)現(xiàn)方法如下:
(1)利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號(hào)。
(2)對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)。利用單片機(jī)自帶的計(jì)數(shù)器T1對(duì)霍爾傳感器脈沖信號(hào)進(jìn)行計(jì)數(shù)。
(3)對(duì)數(shù)據(jù)進(jìn)行處理,要求用LCD顯示里程總數(shù)和即時(shí)速度。
2、液晶顯示電路
本次設(shè)計(jì)液晶顯示電路選用的是LCD1602模塊。LCD1602是顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。
3、霍爾傳感器
霍爾傳感器是利用霍爾效應(yīng)制成的一種磁敏傳感器。在置于磁場(chǎng)中的導(dǎo)體或半導(dǎo)體通入電流I,若電流垂直磁場(chǎng)B,則在與磁場(chǎng)和電流都垂直的方向上會(huì)出現(xiàn)一個(gè)電勢(shì)差Uh,這種現(xiàn)象稱為霍爾效應(yīng)。利用霍爾效應(yīng)制成的元件稱為霍爾元件。因?yàn)樗哂薪Y(jié)構(gòu)簡單、頻率響應(yīng)寬、靈敏度高、測(cè)量線性范圍大、抗干擾能力強(qiáng)以及體積小、使用壽命長等一系列特點(diǎn),因此被廣泛應(yīng)用于測(cè)量、自動(dòng)控制及信息處理等領(lǐng)域。電動(dòng)車速度測(cè)量時(shí),在轉(zhuǎn)盤邊緣的某個(gè)位置放置一個(gè)小磁鐵,固定在轉(zhuǎn)盤附近的霍爾傳感器便可在小磁鐵通過時(shí)產(chǎn)生一個(gè)相應(yīng)的脈沖,檢測(cè)出單位時(shí)間的脈沖數(shù),便可知被測(cè)轉(zhuǎn)速。根據(jù)磁性轉(zhuǎn)盤上小磁鐵數(shù)目多少,就可以確定傳感器測(cè)量轉(zhuǎn)速的分辨率。
4、DS1302時(shí)鐘芯片
本設(shè)計(jì)電路工作時(shí)能顯示當(dāng)前時(shí)間,包括年月日、時(shí)分秒。采用DS1302定時(shí)芯片來實(shí)現(xiàn)以上計(jì)時(shí)功能。DS1302是一種低功耗實(shí)時(shí)時(shí)鐘電路,具有可對(duì)年月周日、時(shí)分秒進(jìn)行計(jì)時(shí)的功能,工作電壓為2.5V~5.5V。該芯片采用串行數(shù)據(jù)傳輸,主要特點(diǎn)是在其內(nèi)部有一個(gè)用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器,即使掉其電內(nèi)部數(shù)據(jù)亦不丟失。DS1302與STC89C52單片機(jī)的連接線有三條線:RST引腳、SCLK串行時(shí)鐘引腳、I/O串行數(shù)據(jù)引腳,Vcc2作為備用電源,芯片外接晶振X2,為芯片提供計(jì)時(shí)脈沖。
5、按鍵控制模塊
本文采用查詢式按鍵技術(shù),按鍵之間相互獨(dú)立,每一個(gè)按鍵接一根I/O口線,互不干擾,以下是各建作用:K1為選擇鍵:連續(xù)按下該按鍵可以在時(shí)間、速度之間進(jìn)行切換選擇。K2為加1鍵:按下該按鍵,目標(biāo)值加1。K3為減1鍵:按下該按鍵,目標(biāo)值減1。
6、報(bào)警電路
采用PNP三極管驅(qū)動(dòng)蜂鳴器構(gòu)成報(bào)警電路。當(dāng)測(cè)得的當(dāng)前車速超過所設(shè)定的速度上限時(shí),單片機(jī)控制三極管導(dǎo)通,使蜂鳴器鳴叫實(shí)現(xiàn)報(bào)警。
二、系統(tǒng)軟件設(shè)計(jì)
1、主程序設(shè)計(jì)
單片機(jī)存儲(chǔ)單元和個(gè)功能模塊初始化;轉(zhuǎn)換讀取霍爾傳感器數(shù)值,計(jì)算出相應(yīng)的電動(dòng)車車速和累計(jì)行駛里程數(shù);將車速、里程數(shù)和當(dāng)前時(shí)間進(jìn)行顯示;判斷當(dāng)前車速是否超速,如果超速則蜂鳴器鳴叫報(bào)警,提醒車主超速。
2、速度處理流程
該子程序測(cè)速原理是在一段時(shí)間以內(nèi)檢測(cè)磁鐵經(jīng)過傳感器的圈數(shù)來測(cè)算出實(shí)時(shí)速度,然后根據(jù)提前預(yù)設(shè)值來判斷是否超速。如果超速就會(huì)進(jìn)行報(bào)警發(fā)出蜂鳴聲;如果速度在預(yù)設(shè)值以內(nèi),便不會(huì)報(bào)警并且將實(shí)時(shí)速度通過LCD顯示屏顯示出來。
3、顯示工作流程
該子程序用LCD動(dòng)態(tài)掃描顯示方式。先將單片機(jī)的P2.2口連接使能端口E。接著將單片機(jī)的P2.0口連接數(shù)據(jù)/命令選擇端RS,P0口連接數(shù)據(jù)端D0~D7,然后將要顯示的數(shù)字的值發(fā)送給P0口。然后調(diào)用延時(shí),接著將P2.2口置0,P2.0口置1,寫指令,將P2.2口置1,P2.0口置1,寫數(shù)據(jù),直到要顯示的數(shù)字全部顯示在液晶上。
參考文獻(xiàn)
[1]蔡菲娜,《單片微型計(jì)算機(jī)原理和應(yīng)用[M]》,浙江大學(xué)出版社,2003
[2]周堅(jiān),《單片機(jī)輕松入門[M]》,北京航空航天出版社,2002
[3]孫育才,《MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用[M]》,東南大學(xué)出版社,2004
[4]公孫茂,馬寶匍等,《單片機(jī)入口接口實(shí)例集[M]》,北京航空航天出版社,2002
[5]顧立志,《PIC單片機(jī)典型模塊設(shè)計(jì)和實(shí)例導(dǎo)航[M]》,人民郵電出版社,2005