【摘要】本文所介紹電機測速系統主要由霍爾傳感器、單片機、LCD1602液晶顯示模塊組成。系統以STC89C52單片機系統和霍爾傳感器為核心,霍爾傳感器把不同轉速所轉變成的不同頻率的脈沖信號發送至到單片機,通過單片機的設置可對霍爾傳感器輸入的脈沖信號進行計數和處理,這樣能精確地算出加到引腳的單位時間內檢測到的脈沖數,單片機進行控制與計算后,采用LCD液晶顯示模塊實時顯示。本測速系統的設計具有操作方便,顯示清晰,結構簡單,穩定可靠,成本低廉等優點。
【關鍵詞】霍爾傳感器;單片機;LCD1602
Abstract:This article describes the motor speed of the system consists of a Hall sensor,microcontroller,LCD1602 LCD module.STC89C52 SCM system as the core system and the Hall sensor,Hall sensor sends pulses are converted into different speeds at different frequencies to the microcontroller,the Hall sensor input pulse signal is counted and processed by the microcontroller setting,this can accurately calculate the number of pulses applied to the pin within the unit time detected,the microcontroller for control and calculation,using real-time display LCD LCD module.Design of the measurement system is easy to operate,clear display,simple structure,reliable,and low cost.
Key word:Hall sensor;MCU;LCD1602
1.系統的整體設計
本設計能夠實現電機在轉動過程中速度指標的實時顯示功能。系統實用性強,元件非常簡單。霍爾傳感器是一種常見的利用霍爾效應把磁輸入信號變換成電信號的元器件。實際設計安裝時可以把磁鋼固定在電機尾部轉動軸上,開關型霍爾傳感器敷設在需要觀察的支架上,磁鋼伴隨轉動軸轉動,每當霍爾傳感器與磁鋼靠近之時,傳感器即輸出一個無抖動低電平至單片機,單片機通過控制計算得出速度,顯示在顯示屏上,即完成實時測速。設計安裝時,要總體考慮系統反應時間和測速精度。本系統設計采用測量脈沖頻率,以此計算速度,具有很高的測速精度。
本設計主要包括液晶顯示部分,單片機控制系統和傳感器數據采集部分。其中由單片機系統完成關鍵的數據處理,由霍爾傳感器來完成數據的采集,通過LCD顯示器把輸出信號顯示出來,即為當前的轉速情況。圖1為系統設計基本結構框圖:
圖1 系統原理框圖
本設計中,利用開關型霍爾傳感器把磁鋼經過傳感器的次數(也可以說電機所轉圈數)轉換成電脈沖,進行處理之后再送入單片機,單片機STC89C52為本系統的數據處理核心,通過STC89C52的定時/計數器測算出每轉一圈的時間和總脈沖數,再由單片機進行計算,其結果顯示在LCD1602顯示器上,即得速度測量。
2.系統硬件部分電路
2.1 概述
硬件電路設計是整個設計的基礎部分,它包括液晶屏的實時顯示,單片機的計算處理,信號的捕獲以及單片機外圍基本電路設計(最小系統的設計),其中兩大主要器件是單片機和傳感器。
本次設計的核心關鍵元器件是STC89C52單片機,它包括信息處理、定時、計算等功能,是信號采集到輸出的橋梁。
2.2 霍爾傳感器
霍爾效應:把一磁感應強度為B的勻強磁場加在一薄片的垂直方向上,然后把控制電流I加在半導體薄片上,那么電勢差為Uh的霍爾電壓將產生在在垂直于電流和磁場的方向上。霍爾效應的實質是磁場中受洛侖茲力作用使運動的帶電粒子引起偏轉。如果電子或空穴等帶電粒子被約束在固體材料中,此偏轉即會使得在磁場和垂直電流的方向上積累正負電荷,一個附加的橫向電場即形成。實際可測得:霍耳電勢差的數值與板厚度d 成反比,與磁感強度B和電流I成正比。
把霍爾傳感器粘附在圓盤外緣附近,把一塊磁鋼粘貼在非磁材料的圓盤邊上。霍爾傳感器每輸出一個脈沖即代表圓盤轉動一圈。圓盤的轉速可以通過單片機測量產生脈沖的頻率得出。
2.3 頻率測量法
單片機內部定時計數器的T1口所接收到的信號是霍爾傳感器所產生的脈沖。內部工作在計數狀態的是Timer1,工作在定時狀態的是定時計數器Timer0。Timer1與Timer0都工作在模式1。本系統設計,Timer1累計的是0.5秒內(Timer0產生的定時是0.5秒)加到T1腳的脈沖數。如果共有N個脈沖在0.5秒內被timer1檢測到,那么可以有N/0.5=2N算出圓盤的轉動頻率。如果在自行車輪條上固定有一個磁鋼,每車輪轉了一圈,霍爾傳感器即發出一個脈沖。單片機把脈沖頻率處理之后,就可以算出車速。實際如果再累加脈沖數之后,然后再乘以輪子長度,又可以計算出里程數。
圖2 統軟件框圖
3.軟件程序設計
3.1 概述
模塊化設計是按照結構的要求和硬件設計,系統作為一個整體的功能被劃分成許多小的功能模塊,這些小功能模塊的基礎上編程過程。這種設計方法,從而使整個函數,并將該系統的每個部分的功能的傾向變得清晰。當系統出現問題時,根據特征集,找出問題發生的根本原因,更快地解決問題。所以,在整個設計過程中,軟件設計和硬件設計緊密地結合在一起。單片機的最大的優點是通過軟件控制單片機的功能,程序的設計,要采用自頂向下的設計方法,遵循模塊化設計的原則,綜合考慮可讀性及合理性。模塊化設計使程序修改及完善方便,可讀性好。如圖2所示為軟件程序系統框圖。
基于霍爾傳感器和單片機的自行車速度里程表在軟件設計上主要包括以下內容:延時子程序、LCD顯示子程序、里程調用子程序、速度調用子程序、中斷子程序、上電初始化程序等。之所以采用模塊化設計主要是由于其要實現的功能比較多,下面就著重分析其軟件設計的主要部分。
3.2 測速系統總體程序設計
軟件設計主程序模塊中,必須完成中斷向量的設計以及開中斷、速度的初始化、循環等待、對各接口芯片的初始化等工作。此外在主程序模塊中還要設置啟動/清除速度寄存器、里程寄存器、標志寄存器,而且要對它們進行初始化。之后系統完成的啟動、清除、計程和計速等不同的操作都是主程序根據各標志寄存器的內容來完成。如圖3所示為系統軟件總體流程圖。
圖3 軟件主流程圖
3.3 速度計算子程序的設計
電機每轉動一圈后的計時數據由外中斷1服務程序來處理。若標志位為0,則有計數單元的值要放入68H~6BH固定單元;若標志位是1,即計數溢出,放入時間最大值(為#0FFH)。每轉一圈所用的時間由定時器計出,速度即時轉動軸的周長除以時間所得到的數值。如圖4所示為速度處理子程序流程圖。
圖4 速度處理子程序流程圖
3.4 顯示子程序的設計
本設計液晶顯示模塊切換顯示速度和里程數據,液晶顯示模塊首先要進行初始化,讀寫程序編寫、相應的字庫編寫等。設計液晶顯示程序時應包括數字字庫的編寫、數字顯示程序、讀顯示數據子程序、寫顯示數據子程序、寫指令代碼子程序、初始化程序、清屏程序等。
4.調試結果以及測試
4.1 硬件電路模塊調試
本設計硬件部分主要為顯示模塊、按鍵模塊以及測量模塊。硬件電路功能檢測主要針對這三部分進行測試。
按鍵部分:首先要確定各個按鍵是否完好,先自己接到一個簡易的電路上測試,確定完好后再焊接。
測量部分:首先焊接霍爾元件,檢測在磁鋼作用下電壓值是否不同,檢查是否有脈沖產生。
顯示電路:由于使用的是LCD1602顯示屏,首先要確定LCD1602的引腳順序。然后在實物電路上焊接16管腳的管座,檢查顯示電路能否正常顯示。
4.2 軟件調試
本設計軟件調試中軟件主流程圖分為兩個部分,分模塊包括計算里程模塊、計算速度模塊、顯示功能模塊。各個獨立模塊功能調試成功后,將這些模塊程序通過主程序合并在一起,最后再對合并后的總程序進行調試。
4.3 軟件調試問題分析
LCD顯示問題:調試發現1602驅動程序寫數據時延時時間選擇不當會使數據出現亂碼,在增加顯示延時之后,數碼管顯示正常。
按鍵消抖問題:在實際調試中,發現按鍵出現反應不靈敏和多次計數現象,在硬件上加入一個基本RS觸發器可以消抖,在鍵盤控制程序中無需再加入專門的按鍵消抖程序。在去除按鍵消抖程序后,按鍵控制靈敏度恢復正常。
4.4 調試結果
本設計實現了自行車測速系統的效果,接上電源,液晶顯示State:YES,為更直觀表明本設計調試結果,我們以增加或減少霍爾傳感器發送脈沖信號的頻率,來觀察其速度指數。結果即上電工作具體顯示如圖5所示。
圖5 實際調試圖
5.總結
本設計利用單片機的控制和運算功能,以STC89C52為核心,采用霍爾傳感器接收信號,用液晶顯示模塊對所測電機速度和進行實時顯示。可在簡化程序設計和節約系統資源的基礎上保證系統的實時性和測量精度。其低成本,電路簡單、功耗低、具有體積小、性價比高、功能全等優點,具有廣泛的應用前景。
參考文獻
[1]趙亮.液晶顯示模版LCD1602應用[J]電子制作,2007.03
[2]巴志軍.基于單片機的簡單液位控制系統的實現 [J].科技風,2008(21)