标题: 51单片机输出spwm波脉宽周期可改变jd值调 [打印本页]

作者: dur    时间: 2019-6-6 18:09
标题: 51单片机输出spwm波脉宽周期可改变jd值调
通过改变jd值来改变脉宽大小

单片机源程序如下:
  1. #include <reg51.h>
  2. #include <math.h>
  3. unsigned int target=6;
  4. sbit pwm=P3^7;

  5. unsigned char count;
  6. float jd;



  7. void InitTimer0(void)
  8. {
  9.     TMOD = 0x01;
  10.     TH0 = 0x0FF;
  11.     TL0 = 0x9C;
  12.     EA = 1;
  13.     ET0 = 1;
  14.     TR0 = 1;
  15. }


  16.         float i;
  17. void main(void)
  18. {

  19.   InitTimer0();
  20.         while(1)
  21.         {

  22.         }
  23. }


  24. void Timer0Interrupt(void) interrupt 1
  25. {
  26.     TH0 = 0x0FF;
  27.     TL0 = 0x9C;
  28.           count=(count+1);      
  29.     count=count%100;
  30.           pwm = count<jd? 1:0;
  31.         if(count==0)
  32.         {
  33.     i++;
  34.                 if(i==100) i=0;
  35.     if(i<50)
  36.                         jd = (sin(i/50*3.1415926))*50;
  37.                 else jd = -(sin(i/50*3.1415926))*50;
  38.                
  39.         }
  40. }
复制代码

所有资料51hei提供下载:
spwm.rar (20.57 KB, 下载次数: 28)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1