51LPC系列單片機用于控制交流電機
3 完整的LPC+Triac+Motor(AC)電路實(shí)現
在P87LPC761 和Triac的控制應用中,整個(gè)系統對電源消耗很低并具有高抗干擾性能,故可以通過(guò)阻容降壓和單相半波整流由市電直接供電,而不需要昂貴且體積大的變壓器,外部零件極少。此方案成本低。圖5所示是一個(gè)感性負載的通用電路,同時(shí)適合阻性負載。Triac可使用BTA216 600E。像圖4那樣,通過(guò)查詢(xún)P87LPC761的比較器來(lái)檢測負載電流過(guò)零,并重新觸發(fā)Triac。也可用中斷驅動(dòng)。啟動(dòng)電機時(shí)用電壓過(guò)零測量并觸發(fā) Triac的門(mén)級脈沖,以減少電磁干擾,并可從主循環(huán)的開(kāi)始進(jìn)行控制和重定義在啟負載之間軟件等待整個(gè)半周期。本例在復位后通過(guò)用戶(hù)按鍵開(kāi)啟負載,通過(guò)按鍵可進(jìn)行相角控制以控制電機的不同轉速。如圖5所示,LED發(fā)光管閃爍的快慢能體現電機轉速,LED閃爍越快電機轉動(dòng)越快,反之則越慢;電機停轉,LED 熄滅。此電路稍經(jīng)修改就可以用于其它許多類(lèi)似的場(chǎng)合。
源程序清單:
該軟件在Keil C51 V6.02上編譯通過(guò),在目標板上運動(dòng)正常。如果用其它編譯器必須稍加修改。
#includereg761.h>
#define uchar unsigned char
#define uint unsigned int
uchar s,x,y=0;
void timer0(void)interrupt 1 using 1 {/*T0中斷服務(wù)程序*/
x=x+1;
if(x/10>s){
if(y= =0){P1=P10xfb; /*LED點(diǎn)亮*/
x=0;y=1;}
else {P1=P1|0x04; /*LED熄滅*/
y=0;x=0;}}
TF0=0;TH0=-(28/256);
TL0=-(28%256);
}
void speed(s){ /*電機轉換控制子程序*/
uchar pulsecount, pulseduration=0;
uint i=0;
uint j=0;
if (((CMP10x02))!(CMP20x02)/*查詢(xún)比較器*/
{for (i=0;is;i++)
{for(j=0;j210;j++) ;} /*延時(shí)觸發(fā)*/
CMP1=CMP10xfc;
CMP2=CMP20xfc;
pulsecount=1;
{P1=P10xfe;
pulseduration=12; /*觸發(fā)脈沖寬度*/
while(pulseduration){pulseduration- -;}
P1=P1|0x01;
pulsecount- -;
}
}
}
評論