标题: 四个led小灯以不同的频率来进行呼吸怎么做,呼吸灯的频率还要可以改变 [打印本页]

作者: Vhinq    时间: 2017-12-16 15:59
标题: 四个led小灯以不同的频率来进行呼吸怎么做,呼吸灯的频率还要可以改变
四个led小灯以不同的频率来进行呼吸怎么做,呼吸灯的频率还要可以改变

作者: angmall    时间: 2017-12-17 09:24
单片机PWM技术实现呼吸灯和KTV等娱乐场所的灯光闪烁效果
http://www.51hei.com/mcu/3323.html
作者: 疯狂的小吉    时间: 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. }
复制代码

开始找到都没注释,还有些看不懂了,稍微加了点注释。
程序注释还是挺重要的!!!
作者: 哎呀呀呀    时间: 2017-12-17 15:49
可以用定时器的方法定四个小灯
作者: shuisheng60    时间: 2019-2-4 05:35
定时器的还是好用一些




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