找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1707|回复: 0
收起左侧

51单片机输出spwm波脉宽周期可改变jd值调

[复制链接]
ID:556720 发表于 2019-6-6 18:09 | 显示全部楼层 |阅读模式
通过改变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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表