基于c8051f310單片機的直流電機實時轉(zhuǎn)速監(jiān)控系統(tǒng)設(shè)計
蔡國武,劉祚時,梅傳根
(江西理工大學機電工程學院,贛州341000)
摘要:介紹一種基于c8051f310單片機的直流電機轉(zhuǎn)速的實時監(jiān)控系統(tǒng)設(shè)計,并給出該系統(tǒng)的硬件電路和軟件設(shè)計。該系統(tǒng)具有結(jié)構(gòu)簡單,功能可再擴展、調(diào)速性能良好、運行可靠的特點,可以很好地監(jiān)控電機的實時轉(zhuǎn)速。
關(guān)鍵詞:.單片機;直流電機;實時轉(zhuǎn)速
中圖分類號:tm381:tp273十1 文獻標志碼:a 文章編號:1001-6848(2010)04
0引 言
在隨動控制系統(tǒng)中,電機轉(zhuǎn)速的反饋與控制占有很大的比重,實現(xiàn)速度反饋的方式與手段,對系統(tǒng)的穩(wěn)態(tài)誤差及動態(tài)響應(yīng)性能都有著十分重要的影響。對于一個高精度的控制系統(tǒng),
穩(wěn)定而準確的電機反饋轉(zhuǎn)速,可以更好地對電機性能做定量分析和判斷電機運行的異常情況等進行監(jiān)測。因此,對電機轉(zhuǎn)速的測量是非常重要的。
傳統(tǒng)的以模擬量作為速度反饋參數(shù)的系統(tǒng),由于受非線性、溫度變化和元件老化等因素的影響,很難滿足控制過程的快速性和準確性要求。本文利用c8051f310系列單片機,將控制電機的模擬倍號量轉(zhuǎn)換為以數(shù)字信號量的形式,最后再將反映電機速度的脈沖信號反饋給單片機處理,并通過led數(shù)碼管實時監(jiān)控電機的轉(zhuǎn)速[1]。
l 系統(tǒng)設(shè)計
1.1硬件電路設(shè)計
該系統(tǒng)的整個硬件電路結(jié)構(gòu)如圖l所示。
該電路的工作原理如下:
通過調(diào)節(jié)電位器來控制電機的轉(zhuǎn)速,即通過調(diào)節(jié)電位器rp改變輸入到端口p2.2的模擬電壓,再通過c8051f310單片機內(nèi)部的a/d轉(zhuǎn)換,并轉(zhuǎn)換成一定占空比的pwm信號,從端口p2.0輸出到hd74hc04p進行反相,以增大pwm信號的驅(qū)動能力,然后再輸出到電機驅(qū)動芯片l298來控制電機的轉(zhuǎn)速,之后再利用光電傳感器和碼盤來采集電機轉(zhuǎn)動時產(chǎn)生的脈沖信號,但該波形是連續(xù)的模擬信號,單片機不易處理,故再將4運放集成電路lm324接成比較器的功能,然后將這組脈沖波形輸出到lm324的2腳,再通過調(diào)節(jié)電位器rp2,就可以得到一組單片機容易處理的、且能反映電機轉(zhuǎn)速的方波信號pwm_ back,再將pwm_back輸入到端口p2.1,并利用定時器0的計數(shù)功能。來計算端口p2.1在采樣周期t內(nèi)的脈沖個數(shù)。最后再通過公式(1),求出電機的轉(zhuǎn)速并通過l數(shù)碼管實時地顯示出來。
假設(shè)在t時間內(nèi),定時器0計數(shù)得到m個脈沖數(shù),碼盤轉(zhuǎn)一圈產(chǎn)生一個脈沖(方波),若電機是帶有強減速裝置的,設(shè)電機每轉(zhuǎn)一圈,碼盤會轉(zhuǎn)y圈。則電機的轉(zhuǎn)速為:
n=60m/xyt(1)
本文所設(shè)計的電路采用的電機是額定電壓為16 v,且?guī)в袕姕p速裝置的,該電機每轉(zhuǎn)一圈,碼盤會轉(zhuǎn)64圈,碼盤轉(zhuǎn)一圈會產(chǎn)生30個脈沖,所以電機轉(zhuǎn)一國會產(chǎn)生xy= 1920個脈沖。且本文以監(jiān)控電機的單向轉(zhuǎn)動為研究對象,若要測量電機的雙向轉(zhuǎn)動,只要稍微改變上面的硬件電路和下面的程序設(shè)計方面即可。
1.2軟件設(shè)計
每次a/d轉(zhuǎn)換結(jié)束后,寄存器adcoh和adcol中保存adc轉(zhuǎn)換結(jié)果的高字節(jié)和低字節(jié)。將adoust位置1,使轉(zhuǎn)換后的轉(zhuǎn)換數(shù)據(jù)在寄存器對adcoh: adcol中以左對齊的方式保存。當工作在單端方式時,可轉(zhuǎn)換的模擬電壓范圍為:o-vref 1023/1024,其中vref=3.3 v,然后,再將保存在寄存器adcoh中的數(shù)據(jù)賦給pca的16位計數(shù)器/定時器的高字節(jié)pcaoh,即通過捕捉/比較模塊的高字節(jié)pcaocpho來獲得一定的占空比pwm波。并利用定時器l的定時功能來產(chǎn)生中斷,假設(shè)定時時間為t。再利用定時器0的計數(shù)功能來計算外部電機碼盤產(chǎn)生的方波數(shù),即計算在t時間內(nèi),來自端口p2.1的pwm-back信號的脈沖數(shù)。并將計數(shù)結(jié)果保存在高字節(jié)tho和低字節(jié)tlo中,可計算脈沖次數(shù)的范圍為:o~ 65535個。
在此,引人中斷,當定時器l溢出時,單片機產(chǎn)生中斷,定時器1溢出標志tf1會被自動清o。若取樣時間為定時時間的k倍,則當單片機完成k次中斷后,再去讀取定時器0的tho和tlo,并計算電機1分鐘的轉(zhuǎn)速,最后將電機轉(zhuǎn)速顯示到數(shù)碼管,并再重新初始化定時器tl和to[3]。
|