通过改变jd值来改变脉宽大小
单片机源程序如下:
- #include <reg51.h>
- #include <math.h>
- unsigned int target=6;
- sbit pwm=P3^7;
- unsigned char count;
- float jd;
- void InitTimer0(void)
- {
- TMOD = 0x01;
- TH0 = 0x0FF;
- TL0 = 0x9C;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- }
- float i;
- void main(void)
- {
- InitTimer0();
- while(1)
- {
- }
- }
- void Timer0Interrupt(void) interrupt 1
- {
- TH0 = 0x0FF;
- TL0 = 0x9C;
- count=(count+1);
- count=count%100;
- pwm = count<jd? 1:0;
- if(count==0)
- {
- i++;
- if(i==100) i=0;
- if(i<50)
- jd = (sin(i/50*3.1415926))*50;
- else jd = -(sin(i/50*3.1415926))*50;
-
- }
- }
复制代码
所有资料51hei提供下载:
spwm.rar
(20.57 KB, 下载次数: 28)
|