資源描述:
《基于pwm的電機調(diào)速系統(tǒng)設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、WORD資料整理基于PWM的電機調(diào)速系統(tǒng)實驗?zāi)康模?.學(xué)會并掌握可keil軟件的使用;2.學(xué)會并掌握protues軟件的使用;3.通過實驗鞏固單片機相關(guān)知識和檢驗自身動手能力實驗要求:掌握單片機相關(guān)知識,利用調(diào)PWM占空比的方式來控制直流電機的轉(zhuǎn)速,并且在led數(shù)碼管上顯示轉(zhuǎn)速。實驗設(shè)備和儀器:1.89c51單片機最小系統(tǒng)2.直流電機3.示波器實驗內(nèi)容:本次實驗設(shè)計是由小組五個成員共同完成基于PWM的電機調(diào)速系統(tǒng)并完成實物搭建和撰寫實驗報告。本次實驗小組共提供了兩個方案,方案一和方案二,兩個方案各自具有優(yōu)缺點,詳細(xì)
2、內(nèi)容會在下面給出。方案一實驗步驟:1.利用protues畫電路圖,電路圖如圖1所示:圖1:方案一電路圖2.根據(jù)電路圖編寫C語言代碼:代碼如下:#includesbitPWM=P2^7;完美格式可編輯WORD資料整理sbitCS3=P2^3;sbitCS2=P2^2;sbitCS1=P2^1;sbitCS0=P2^0;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;unsignedchartimer1;unsignedchartab[]
3、={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidTime1Config();voidmain(void){Time1Config();while(1){if(timer1>100)//PWM周期為100*0.5ms{timer1=0;}if(~key1){if(timer1<30)//改變30這個值可以改變直流電機的速度{PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[3];P0=0xff;CS0=
4、0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key2){if(timer1<50){PWM=1;完美格式可編輯WORD資料整理}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[5];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key3){if(timer1<80){PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=
5、tab[8];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key4){if(timer1<100){PWM=1;}else{PWM=0;}CS0=0;CS1=1;CS2=0;CS3=0;P0=tab[1];完美格式可編輯WORD資料整理P0=0xff;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[0];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}}}voidTime1C
6、onfig(){TMOD
7、=0x10;//設(shè)置定時計數(shù)器工作方式1為定時器//--定時器賦初始值,12MHZ下定時0.5ms--//TH1=0xFE;TL1=0x0C;ET1=1;//開啟定時器1中斷EA=1;TR1=1;//開啟定時器}voidTime1(void)interrupt3//3為定時器1的中斷號{TH1=0xFE;//重新賦初值TL1=0x0C;timer1++;}3.實驗仿真,部分仿真結(jié)果如圖2圖3所示:完美格式可編輯WORD資料整理圖2:仿真結(jié)果圖(1)完美格式可編輯WORD資料整理圖3:仿真結(jié)
8、果圖(2)完美格式可編輯WORD資料整理4.實物驗證結(jié)果如圖4所示:圖4:方案一實物驗證結(jié)果實物驗證可以明顯感覺到電機轉(zhuǎn)速的變化,由于每個開發(fā)板不同,相比仿真程序,對實物驗證程序進(jìn)行了略微的修改,最終能達(dá)到要求。完美格式可編輯WORD資料整理方案二實驗步驟:1.利用protues畫電路圖,電路圖如圖5所示:圖5:方案二protues電路圖2.編寫C語言程序代碼:代碼如下:#include#defineucharunsignedchar#defineuintunsignedintsbitkey1=P
9、3^1;sbitCLOCK=P2^4;sbitST=P2^5;sbitEOC=P2^6;sbitOE=P2^7;sbitPWM=P3^7;uinttemp,temp1;sbitCS3=P2^3;sbitCS2=P2^2;sbitCS1=P2^1;sbitCS0=P2^0;uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x