89C52單片機控制PWM調(diào)速電路實現(xiàn)小功率直流電機的轉(zhuǎn)速_第1頁
89C52單片機控制PWM調(diào)速電路實現(xiàn)小功率直流電機的轉(zhuǎn)速_第2頁
89C52單片機控制PWM調(diào)速電路實現(xiàn)小功率直流電機的轉(zhuǎn)速_第3頁
89C52單片機控制PWM調(diào)速電路實現(xiàn)小功率直流電機的轉(zhuǎn)速_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、89C52單片機控制PW碉速電路實現(xiàn)小功率直流電機的轉(zhuǎn)速調(diào)節(jié),并要將其實時轉(zhuǎn)速用LED管顯示出來。而本系統(tǒng)必須符合以下幾點要求:(1) 在(10005500)轉(zhuǎn)/分內(nèi)對直流電機進行任意調(diào)速,最小調(diào)速級差為1轉(zhuǎn)/分。(2) 電機能在所設(shè)速度下穩(wěn)定運轉(zhuǎn),運轉(zhuǎn)速度與設(shè)定速度之差小于=t20轉(zhuǎn)/分。 電機啟動和加減80%額定負載時,其轉(zhuǎn)速能迅速回到設(shè)定值,轉(zhuǎn)速超調(diào)±5%內(nèi)。(4) 利用按鍵和LED數(shù)碼管設(shè)置速度,設(shè)置方便,快捷。(5) 利用LED數(shù)碼管實時顯示電機速度。(6) 電機能進行正反轉(zhuǎn)控制。控制方面,本設(shè)計是采用定時器控制I/O 口輸出PWM信號驅(qū)動斬波電路控制電機運轉(zhuǎn)和調(diào)速;禾U用

2、單片機外部中斷引腳的捕獲功能、電機同軸帶缺口的圓盤、光電耦合器 來測量轉(zhuǎn)速;并將測得轉(zhuǎn)速和設(shè)定轉(zhuǎn)速進行PI運算后輸出,實現(xiàn)閉環(huán)控制;轉(zhuǎn)向調(diào)節(jié)則是用的橋式電路。顯示是利用8位LED數(shù)碼管,用按鍵進行設(shè)定。下面簡單介紹下硬件組成和一些軟件原理:一、硬件電路。1、單片機選用的是 STC的89C52, 20MHz晶振。2、 顯示部分比較簡單,用的8位7段數(shù)碼管同時顯示設(shè)定速度和實時速度。采用74LS164串行移位輸出,只占用單片機3個I/O 口,刷新頻率100Hz。3、PWM驅(qū)動電路。使用了 9012和8050兩個三極管來驅(qū)動,相信網(wǎng)上很多的,也不 用我多說,只是別忘了加上續(xù)流二極管和兩個三極管之間的

3、限流電阻就是。4、測速電路。測速電路用的是光耦測量轉(zhuǎn)動圓盤引起的脈沖寬度, 從而可得單片機的 實時速度,精度很高,可達千分之一。用的是外部中斷的。好像是捕獲模式,忘記了 呵呵!5、轉(zhuǎn)向調(diào)節(jié)電路。轉(zhuǎn)向調(diào)節(jié),由于是后來加上去的,所以就沒有使用單片機控制,直接用硬件實現(xiàn),但其實原理是一樣的。 原理是利用開關(guān)控制繼電器,然后控制橋路對電機實施轉(zhuǎn)向控制。另外用一個同軸電機按正反方向接2個LED用來指示方向。PS:因為這是小功率電機,所以就算沒有制動電路,強制轉(zhuǎn)向,也不會對電機造成損壞。二、軟件方面中斷方面,本程序一共用了3個中斷源:定時器 0,定時器2以及外部中斷 1它們的優(yōu)先級分別為:定時器0、外部中

4、斷1為高優(yōu)先級,定時器 2為低優(yōu)先級。另外還用了計數(shù)器1,用做計算脈沖寬度,與外部中斷1 一起構(gòu)成測速系統(tǒng)。顯示部分程序不多說,按鍵消抖動什么的也是街知巷聞的了。本設(shè)計中,重點是3個,PWM調(diào)速和測速,還有 PI運算。1、PWM的調(diào)速原理是通過調(diào)節(jié)一個斬波周期中的脈沖占空比來調(diào)節(jié)電機功率而達到調(diào) 速目的。本設(shè)計中,PWM的斬波周期為1ms,那也就是說斬波頻率為1KHz,在理論上能達到1 %。線性可調(diào),也就是能以0.1%的調(diào)節(jié)精度來調(diào)節(jié) PWM占空比。程序如下:(放中斷中進行)void timeO_int(void) interrupt 1 TH0= (time0_tmp/256);TL0= (

5、time0_tmp%256);if(cut = 1)time0_tmp = 65536-time0_set*20/12;cut = 0;elsetime0_tmp = 65536-(time0 - time0_set)*20/12;cut = 1;2、測速系統(tǒng)的工作原理為:利用電機軸上帶的圓盤的缺口,引起光電開關(guān)產(chǎn)生高電平 脈沖,單片機就采集此脈沖的寬度,加以計算,得出其實時速度。 獲取脈沖寬度值子函數(shù)如下:void getwidth_1()TH1 = 0;TL1 = 0;n = 0;n1 = n;while(INT1=1&&(n-n1)<30)/n 為每 1MS +2i

6、f(INT1=0)TR1 = 1; /計數(shù)器 1打開elsegoto out;/IE1 = 0;/ 中斷請求標志EX1 = 1;/ 外部中斷 1啟動n = 0;n1 = n;while(m=0&&(n-n1)<30)if(m=0)/M=1 ,則已經(jīng)進入 out_int1 中斷,若等于 0,則說明 30MS 延時已過TH1_1 = 0;TL1_1 = 0;out:IE1 = 0;/ 中斷請求標志m = 0;EX1 = 0;/ 外部中斷允許位TR1 = 0;width_1 = (TH1_1*256+TL1_1);/timepr= 脈沖寬度 / S另外為了穩(wěn)定測得的轉(zhuǎn)速值, 在

7、程序中加了一個取平均值的函數(shù) (幾乎在整個程序中都有感 覺,程序?qū)懙貌痪珶挘悬c累贅,呵呵,但總算功能是能實現(xiàn)嘛反正畢業(yè)設(shè)計對程序執(zhí)行效率沒要求。 )void getwidth()int gw,gw1;width = 0;gw1 = 0;for(gw=0;gw<6;gw+)GG: getwidth_1();if(width_1 != 0)widthbufgw = width_1;elsegoto GG;width = (widthbuf0 + widthbuf1 + widthbuf2 + widthbuf3 + widthbuf4 + widthbuf5)/6;將測得的連續(xù)6個不為零的脈沖寬度取平均值,以消除偶然的不穩(wěn)定因素,使轉(zhuǎn)速顯示更加穩(wěn)定3、PI調(diào)節(jié)PI調(diào)節(jié)計算公式如下5:YK = KP*EK + KI*EK2YK :要輸出的數(shù)據(jù)增量EK :設(shè)定值和實測值的差值EK1 :上次的EK值EK2: EK-EK1 的差值KP :比例系數(shù)(本程序中設(shè) KP=1.6 )經(jīng)反復湊試的結(jié)果KI :積分系數(shù)(本程序中設(shè)KI=1.5 )經(jīng)反復湊試的結(jié)果當KP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論