找回密码
 立即注册

QQ登录

只需一步,快速开始

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

四个led小灯以不同的频率来进行呼吸怎么做,呼吸灯的频率还要可以改变

  [复制链接]
ID:262388 发表于 2017-12-16 15:59 | 显示全部楼层 |阅读模式
四个led小灯以不同的频率来进行呼吸怎么做,呼吸灯的频率还要可以改变
回复

使用道具 举报

ID:155507 发表于 2017-12-17 09:24 | 显示全部楼层
单片机PWM技术实现呼吸灯和KTV等娱乐场所的灯光闪烁效果
http://www.51hei.com/mcu/3323.html
回复

使用道具 举报

ID:220156 发表于 2017-12-17 15:36 | 显示全部楼层
以前我根据PWM波的原理写过一个呼吸灯,效果还行吧,可以改一些参数来调整呼吸频率。
我的没有用定时器,就用的延时不是很准确,程序仅供参考,还是刚学不就时候编的,希望能有点帮助:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit LED=P0^7;        
  5. bit DIR=1;
  6. void main()
  7. {       

  8.         uint i,j,H,L;  
  9.                 // H 表示一个周期内高电平时间
  10.         // L 表示一个周期内低电平时间
  11.         // i 高低电平时间的延时变量
  12.         // j 是逐渐变亮或变暗的周期个数       
  13.         while(1)
  14.         {                       
  15.                 H= 1,L= 1000;               
  16.                 while(1)        // 逐渐变亮
  17.                 {
  18.                 // 高电平时间                       
  19.                         LED = 1;                          
  20.                         i = H;
  21.                         while( i--);
  22.                 //低电平时间
  23.                         LED = 0;                          
  24.                         i = L;
  25.                         while( i--);

  26.                         H = H+3;                //改变亮的时间
  27.                         L = L-3;                //改变暗的时间
  28.                         if(H > 1000)
  29.                                 break;
  30.                         if(L < 1)
  31.                                 break;
  32.                 }
  33.                 H= 1000,L= 1;
  34.                 while(1)          // 逐渐变暗                         
  35.                 {                       
  36.                         LED = 1;
  37.                         i = H;
  38.                         while( i--);

  39.                         LED =0;
  40.                         i = L;
  41.                         while( i--);

  42.                         H = H-5;
  43.                         L = L+5;
  44.                         if(H < 1)
  45.                                 break;
  46.                         if(L > 1000)
  47.                                 break;
  48.                 }
  49.                 j=15000;                        //使效果好一些
  50.                 while(j--);                               
  51.         }
  52. }
复制代码

开始找到都没注释,还有些看不懂了,稍微加了点注释。
程序注释还是挺重要的!!!
回复

使用道具 举报

ID:262699 发表于 2017-12-17 15:49 | 显示全部楼层
可以用定时器的方法定四个小灯
回复

使用道具 举报

ID:472242 发表于 2019-2-4 05:35 | 显示全部楼层
定时器的还是好用一些

评分

参与人数 6黑币 +127 收起 理由
areyouok + 35
#include51.h + 15
jinsheng7533967 + 35
站着说话不腰疼 + 12
yoxi + 15
Trump1438 + 15

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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