資源描述:
《pwm電機(jī)調(diào)速原理及51單片機(jī)pwm程序經(jīng)典.》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、Pwm電機(jī)調(diào)速原理對(duì)于電機(jī)的轉(zhuǎn)速調(diào)整,我們是采用脈寬調(diào)制(PWM)辦法,控制電機(jī)的時(shí)候,電源并非連續(xù)地向電機(jī)供電,而是在一個(gè)特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號(hào)能對(duì)電機(jī)起到調(diào)速作用,這是因?yàn)殡姍C(jī)實(shí)際上是一個(gè)大電感,它有阻礙輸入電流和電壓突變的能力,因此脈沖輸入信號(hào)被平均分配到作用時(shí)間上,這樣,改變?cè)谑寄芏薖E2和PD5上輸入方波的占空比就能改變加在電機(jī)兩端的電壓大小,從而改變了轉(zhuǎn)速。此電路中用微處理機(jī)來(lái)實(shí)現(xiàn)脈寬調(diào)制,通常的方法有兩種:(1)用軟件方式來(lái)實(shí)現(xiàn),即通過(guò)執(zhí)行軟件延時(shí)循環(huán)程序交替改變端口某個(gè)二進(jìn)制位輸出邏輯
2、狀態(tài)來(lái)產(chǎn)生脈寬調(diào)制信號(hào),設(shè)置不同的延時(shí)時(shí)間得到不同的占空比。(2)硬件實(shí)驗(yàn)自動(dòng)產(chǎn)生PWM信號(hào),不占用CPU處理的時(shí)間。這就要用到ATMEGA8515L的在PWM模式下的計(jì)數(shù)器1,具體內(nèi)容可參考相關(guān)書(shū)籍。51單片機(jī)PWM程序產(chǎn)生兩個(gè)PWM,要求兩個(gè)PWM波形占空都為80/256,兩個(gè)波形之間要錯(cuò)開(kāi),不能同時(shí)為高電平!高電平之間相差48/256,PWM這個(gè)功能在PIC單片機(jī)上就有,但是如果你就要用51單片機(jī)的話,也是可以的,但是比較的麻煩.可以用定時(shí)器T0來(lái)控制頻率,定時(shí)器T1來(lái)控制占空比:大致的的編程思路是這樣的:T0定時(shí)器中斷是讓一個(gè)I
3、0口輸出高電平,在這個(gè)定時(shí)器T0的中斷當(dāng)中起動(dòng)定時(shí)器T1,而這個(gè)T1是讓IO口輸出低電平,這樣改變定時(shí)器T0的初值就可以改變頻率,改變定時(shí)器T1的初值就可以改變占空比。*程序思路說(shuō)明:****關(guān)于頻率和占空比的確定,對(duì)于12M晶振,假定PWM輸出頻率為1KHZ,這樣定時(shí)中斷次數(shù)**設(shè)定為C=10,即0.01MS中斷一次,則TH0=FF,TL0=F6;由于設(shè)定中斷時(shí)間為0.01ms,這樣**可以設(shè)定占空比可從1-100變化。即0.01ms*100=1ms*******************************************
4、************************************/#include#defineucharunsignedchar/******************************************************************************TH0和TL0是計(jì)數(shù)器0的高8位和低8位計(jì)數(shù)器,計(jì)算辦法:TL0=(65536-C)%256;**TH0=(65536-C)/256,其中C為所要計(jì)數(shù)的次數(shù)即多長(zhǎng)時(shí)間產(chǎn)生一次中斷;TMOD是計(jì)數(shù)器**工作模式選擇,0X01表示
5、選用模式1,它有16位計(jì)數(shù)器,最大計(jì)數(shù)脈沖為65536,最長(zhǎng)時(shí)**間為1ms*65536=65.536ms*******************************************************************************/#defineV_TH00XFF#defineV_TL00XF6#defineV_TMOD0X01voidinit_sys(void);/*系統(tǒng)初始化函數(shù)*/voidDelay5Ms(void);unsignedcharZKB1,ZKB2;voidmain(void){ini
6、t_sys();ZKB1=40;/*占空比初始值設(shè)定*/ZKB2=70;/*占空比初始值設(shè)定*/while(1){if(!P1_1)//如果按了+鍵,增加占空比{Delay5Ms();if(!P1_1){ZKB1++;ZKB2=100-ZKB1;}}if(!P1_2)//如果按了-鍵,減少占空比{Delay5Ms();if(!P1_2){ZKB1--;ZKB2=100-ZKB1;}}/*對(duì)占空比值限定范圍*/if(ZKB1>99)ZKB1=1;if(ZKB1<1)ZKB1=99;}}/**************************
7、*****************************函數(shù)功能:對(duì)系統(tǒng)進(jìn)行初始化,包括定時(shí)器初始化和變量初始化*/voidinit_sys(void)/*系統(tǒng)初始化函數(shù)*/{/*定時(shí)器初始化*/TMOD="V"_TMOD;TH0=V_TH0;TL0=V_TL0;TR0=1;ET0=1;EA="1";}//延時(shí)voidDelay5Ms(void){unsignedintTempCyc=1000;while(TempCyc--);}/*中斷函數(shù)*/voidtimer0(void)interrupt1using2{staticucharc
8、lick="0";/*中斷次數(shù)計(jì)數(shù)器變量*/TH0=V_TH0;/*恢復(fù)定時(shí)器初始值*/TL0=V_TL0;++click;if(click>=100)click="0";if(click<=ZKB1)/*