|
發布時間: 2018-3-30 21:16
正文摘要:在很多工程應用中,需要使用到PWM波(脈寬調制),例如電機調速、溫度控制調整功率等。本文講述怎么利用單片機的一個定時器生成多路PWM波形。 一般的,PWM的周期t1是一個固定值,如1ms,10ms,100ms等,在一個周期中包 ... |
|
樓主思路同我常用思路應同 如下復一個流星燈程序參考 #include<reg52.h> unsigned int led=0x0; unsigned char Duty_ratio[3]={75,90,98}; unsigned char freq,i,j; void init(void) { TMOD=0x02; TL0=TH0=0xff-200; TR0=1; ET0=1; EA=1; } void timer0(void) interrupt 1 { freq++; } void PWM(void) { led=0x01; for(j=0;j<3;j++) { led=led<<1; if(freq>Duty_ratio[j]) led=led+1; } } void main(void) { init(); while(1) { if (freq>=100) { freq=0; i++; if(i>=90) i=0; //移動速度 } PWM(); P1=~((led<<(i/5))>>4); } } |
| 很好的思路,贊一個。 |
| 樓主可以分享代碼嗎?謝謝! |