找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1184|回复: 4
收起左侧

求指导下实现思路 基于PWM的呼吸灯设计

[复制链接]
ID:985176 发表于 2021-12-1 19:52 | 显示全部楼层 |阅读模式

PWM调光

PWM调光

回复

使用道具 举报

ID:290373 发表于 2021-12-3 16:39 | 显示全部楼层
T0负责产生1000HZ的PWM,通过控制T0的定时时间影响端口电平翻转,达到控制正向脉冲宽度的作用;
T1负责控制T0的定时时间,每隔50ms影响一次T0设置,达到亮度切换的作用
回复

使用道具 举报

ID:517951 发表于 2021-12-7 08:33 | 显示全部楼层
控制PWM产生呼吸灯效果,就是将占空比由0调到最大,再由最大跳到0, 这个过程的周期决定闪烁频率。
回复

使用道具 举报

ID:743654 发表于 2021-12-7 08:48 | 显示全部楼层
  1. /***********************
  2. PWM-呼吸灯
  3. *************************/
  4. #include<reg52.h>

  5. #define led P2

  6. unsigned char t_count ; //累计每个周期中断次数的个数,满20清零,20*100us=2ms(pwm的周期)
  7. unsigned int count ;  //累计占空比需要修改(增加还是减少)的中断次数的个数        1200*100us=120ms
  8. unsigned char t ;  //累计高电平的个数
  9. bit flag ; //标志位 0增加,1减少

  10. void timer0init(void)
  11. {
  12.     EA = 1;
  13.         TMOD = 0X02;
  14.         TH0 = 0Xa3;
  15.         TL0 = 0Xa3;
  16.         ET0 = 1;
  17.         TR0 = 1;
  18. }

  19. void main(void)
  20. {
  21.         t_count = 0;
  22.         count = 0;
  23.         t =10;           //占空比总50%开始
  24. //        led = 1;

  25.         timer0init();
  26.     while(1);
  27. }
  28. /*每100us进入一次中断*/
  29. void timer0() interrupt 1
  30. {
  31.    t_count++;
  32.    count++;

  33.    if(t_count == t)        
  34.     {
  35.              P2 = 0x00;
  36.     }
  37.         if(t_count == 19)
  38.         {
  39.            t_count = 0;
  40.            P2 = 0xff;
  41.         }


  42.         if((count == 1200)&&(flag == 0))
  43.          {
  44.                count = 0;
  45.                t++;
  46.                if(t == 19)        //增加最大占空比 95%
  47.                  {
  48.                    flag = 1;
  49.                  }
  50.          }

  51.         if((count ==1200)&&(flag == 1))
  52.          {
  53.                 count = 0;
  54.                      t--;
  55.                     if(t ==10)        //减小到最低占空比 50%
  56.                    {
  57.                          flag = 0;
  58.                    }
  59.      }

  60. }
复制代码
回复

使用道具 举报

ID:976493 发表于 2021-12-7 10:19 | 显示全部楼层
设置PWM为变量,往上增加就行了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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