陸麗婷++項巖
摘 要:文章設(shè)計了以單片機STC89C51為硬件的控制核心,用霍爾傳感器進(jìn)行測量的直流電機轉(zhuǎn)速測量系統(tǒng)。通過對方案的分析,文章確定了系統(tǒng)的硬件設(shè)計和軟件設(shè)計,該系統(tǒng)具有頻率響應(yīng)快、抗干擾能力強等特點。
關(guān)鍵詞:單片機;轉(zhuǎn)速測量;霍爾傳感器;脈沖計數(shù);程序
在各類發(fā)電機和電動設(shè)備的旋轉(zhuǎn)控制中通常需要進(jìn)行轉(zhuǎn)速的測量,目前國內(nèi)外測量電機轉(zhuǎn)速的方法有很多,常用的轉(zhuǎn)速測量方法測速發(fā)電機測速發(fā)和光電碼盤測速法等[1]。這些方法各有優(yōu)缺點,本文設(shè)計了一種以單片機STC89C51為硬件的控制核心,以霍爾傳感器作為檢測元件,測量直流電機的轉(zhuǎn)速,并通過1602液晶顯示器顯示的方法。
1 方案設(shè)計
1.1 設(shè)計要求及指標(biāo)
設(shè)計本系統(tǒng)的前提是需要選定傳感器,本系統(tǒng)選定霍爾傳感器,因為其具有靈敏、可靠、無磨損、無觸點、功耗低、體積小巧、使用壽命長等優(yōu)點,符合電機轉(zhuǎn)速測量系統(tǒng)的要求和指標(biāo)[2]。接下來設(shè)計一個單片機小系統(tǒng),在設(shè)計過程中巧妙利用單片機的定時器和計數(shù)器對脈沖信號進(jìn)行測量或計數(shù),把控好單片機接口電路的設(shè)計技巧。最后進(jìn)行實時測量顯示,根據(jù)獲得的脈沖計數(shù)實現(xiàn)轉(zhuǎn)速的測量。
1.2 方案分析與確定
轉(zhuǎn)速的測量方法很多,根據(jù)脈沖計數(shù)來實現(xiàn)轉(zhuǎn)速測量的方法主要有M法(測頻法)、T法(測周期法)和MPT法(頻率周期法)[3]。本系統(tǒng)采用了M法(測頻法)。由于轉(zhuǎn)速是以單位時間內(nèi)轉(zhuǎn)數(shù)來衡量,在變換過程中多數(shù)是有規(guī)律的重復(fù)運動。
脈沖計數(shù)需要依靠脈沖信號,脈沖信號的獲取可以通過霍爾傳感器,結(jié)構(gòu)方式較為簡單:在轉(zhuǎn)軸的圓周上粘上一粒小磁鐵,小磁鐵固定在轉(zhuǎn)盤上,轉(zhuǎn)盤與電機軸相連,同時轉(zhuǎn)動,小磁鐵通過霍爾傳感器時,霍爾傳感器就會產(chǎn)生一個相應(yīng)的脈沖,通過計算出兩個連續(xù)脈沖的時間間隔,就可以計算出轉(zhuǎn)速了。
本系統(tǒng)的硬件部分以單片機STC89C51作為系統(tǒng)的控制單元,由電阻和發(fā)光二極管構(gòu)成電源電路,用霍爾傳感器作為測量轉(zhuǎn)速的檢測元件,最終通過1602液晶顯示器顯示直流電機的轉(zhuǎn)速。系統(tǒng)硬件原理如圖1所示。
根據(jù)硬件電路圖對各個部分的設(shè)計如圖2所示。
根據(jù)霍爾效應(yīng)用半導(dǎo)體材料制成的原件就是霍爾傳感器,即霍爾片。根據(jù)使用方法的不同霍爾片可分為貼片型和直插型,貼片型使用較少,因此本系統(tǒng)選擇直插型。同時要求選用的霍爾片具有體積小、安裝靈活等特點[4],可用于測速,并且與普通的磁鋼片能夠配套,因此本系統(tǒng)選用型號為A3144的霍爾片作為霍爾測速模塊的核心。
本系統(tǒng)中使用片內(nèi)的計數(shù)器,計數(shù)器T1每到一個脈沖就會產(chǎn)生一個計數(shù),經(jīng)過100 ms,定時器T0產(chǎn)生的中斷結(jié)束后,計數(shù)器T1的中斷溢出次數(shù)就是所需要的脈沖數(shù)。特點在于:使用了內(nèi)部的T1作為外部脈沖的計數(shù)器,并且,為了避免計數(shù)器的溢出,將T1的初值設(shè)為0。
2 系統(tǒng)硬件設(shè)計
2.1 單片機最小應(yīng)用系統(tǒng)
最小系統(tǒng)包括單片機及其所需的必要的電源、時鐘、復(fù)位、晶振等部件,電源、時鐘等電路是使單片機能運行的必備條件,能使單片機始終處于正常的運行狀態(tài)。由STC89C51構(gòu)成的最小系統(tǒng)簡單﹑可靠,只需接上時鐘電路和復(fù)位電路即可構(gòu)成最小應(yīng)用系統(tǒng)。
2.2 電源電路
電源電路由電阻和發(fā)光二極管組成,接通電源,電路連接無誤,燈亮。發(fā)光二極管用來檢測電路是否連通。
2.3 轉(zhuǎn)速測量電路
電機的轉(zhuǎn)速是以單片機可以識別的脈沖信號的形式體現(xiàn)的,所以首先把電機的轉(zhuǎn)速表示成脈沖信號的形式,目的是進(jìn)行脈沖計數(shù)。通過霍爾傳感器檢測到電機的脈沖信號,再經(jīng)過信號處理后輸出到計數(shù)器或其他的脈沖計數(shù)裝置,測量出相應(yīng)的轉(zhuǎn)速[5]。
2.4 LCD液晶顯示電路
本系統(tǒng)中液晶顯示電路主要是通過電壓對顯示區(qū)域的控制,從而利用了液晶的物理特性,加上液晶顯示器具有厚度薄、易于實現(xiàn)全彩色顯示、適用于大規(guī)模集成電路直接驅(qū)動等特點,只要有電就能顯示出圖形。電路原理如圖3所示。
3 系統(tǒng)軟件設(shè)計
3.1 工作流程
本系統(tǒng)采用89C51中T0定時器和T1計數(shù)器配合使用對轉(zhuǎn)速脈沖定時計數(shù)的方式。其中T0工作為定時方式,每次定時100 ms,T1工作于計數(shù)方式,負(fù)責(zé)對外部脈沖進(jìn)行計數(shù)。本設(shè)計程序編程的主要思想就是在給定的100 ms之內(nèi),用單片機自帶的計數(shù)器T1對外部脈沖進(jìn)行計數(shù)。
部分主程序如下:
Void mian( )
{ uintnum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79};
unsigned int i,j,mm;
TMOD=0x01; //T0工作為定時方式,T1為計數(shù)方式
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0;
TL1=0;
EA=1; //打開總中斷
IT0=0; //將外部中斷置為0
ET0=1; //允許T1中斷
TR0=1; //T0開始定時
EA=1; //開中斷
………………………
}
3.2 轉(zhuǎn)速測量程序
本系統(tǒng)設(shè)計中,計數(shù)器T1工作于計數(shù)方式,用于計數(shù),為了獲取較大的測量范圍,計數(shù)量越大越好,所以,把T1定為工作方式1(16位的計數(shù)方式)。同時,為了使電路簡單化,本設(shè)計沒有使用外部控制端,而是通過指令置位/清零TR1的方式進(jìn)行計數(shù)的啟動/停止,并且T1用自由計數(shù)的方式,無需預(yù)置初值。
3.3 LCD顯示程序
寫入1602LCD液晶的程序如下:
void displaytolcd()
{
write_command(0x80); for (i=0;i write_data(display[i]); delay(5); } } 4 結(jié)語 本系統(tǒng)在對設(shè)計方案進(jìn)行分析論證的基礎(chǔ)上,分別通過系統(tǒng)的硬件和軟件設(shè)計對方案進(jìn)行了擴充和完善,從而能使本系統(tǒng)更具有優(yōu)勢和一定的使用價值。 [參考文獻(xiàn)] [1]王文成,李健.基于單片機的電機轉(zhuǎn)速測量系統(tǒng)的設(shè)計[J].儀表技術(shù)與傳感器,2011(8):70-72. [2]鄭隆舉,李慧芳,王志全,等.基于單片機的電機測速系統(tǒng)設(shè)計[J].自動化與儀器儀表,2015(3):37-39. [3]牛潔,周靜,茍娜.基于霍爾傳感器的直流電機轉(zhuǎn)速測量系統(tǒng)設(shè)計[J].電子測試,2008(5):75-78. [4]陳育中.霍爾傳感器測速系統(tǒng)的設(shè)計[J].科學(xué)技術(shù)與工程,2010(30):7529-7532. [5]陳楊.一種轉(zhuǎn)速測量電路設(shè)計[J].天津商學(xué)院學(xué)報,2003(6):15-16.