單片機如何產生PWM信號

用89C52產生控制二相步進電機的程序,用PWM信號控制步進電機url

用普通I/O口採用軟件定時器中斷能夠模擬PWM輸出spa

/*採用6MHz晶振,在P1.0腳上輸出週期爲2.5s,佔空比爲20%的脈衝信號*/
/*定時100ms,週期2.5s需25次中斷,高電平0.5s需5次中斷*/ #include <reg51.h> typedef unsigned char uchar; sbit P1_0=P1^0; uchar time=0; uchar period=25; uchar high=5; void timer0() interrupt 1 using 1 { TH0=0x3c; /*定時器初值重裝載*/ TL0=0xb0; time++; if(time==high) /*高電平持續時間結束,變低*/ { P1_0=0;} else if(time==period) /*週期時間到,變高*/ { time=0; P1_0=1; } } void main() { TMOD=0x01; /*定時器0方式1*/ TH0=0x3c; /*定時器裝載初值*/ TL0=0xb0; EA=1; /*開CPU中斷*/ ET0=1; /*開定時器0中斷*/ TR0=1;/*啓動定時器0*/
while(1) /*等待中斷*/ {} }
相關文章
相關標籤/搜索