标题: 非常柔和的单片机呼吸灯源代码 [打印本页]

作者: univers    时间: 2019-10-29 10:32
标题: 非常柔和的单片机呼吸灯源代码
这个呼吸灯是参照人视觉效果写的,非常柔和。代码如下:

  1. //包含该文件可以使用_nop_()函数
  2. #include <intrins.h>

  3. unsigned int Num=0;         //声明递增 递减变量
  4. unsigned int Clock=3000;  //声明变量 这个变量就是肉眼看到的变快变慢的参数

  5. /***********************************************
  6. 函数名称:Delay_us
  7. 功    能:
  8. 入口参数:us:延时
  9. 返 回 值:无        
  10. 备    注:内部时钟:24MHz           
  11. ************************************************/
  12. void Delay_us(unsigned int i) //这个延时就是PWM的频率了 太大眼睛能看到闪来闪去
  13. {
  14.         for(;i>0;i--)               
  15.                 _nop_();        
  16. }
  17. /***********************************************
  18. 函数名称:husi_led
  19. 功    能:呼吸灯
  20. 入口参数:us:延时数量
  21. 返 回 值:无        
  22. 备    注:
  23. ************************************************/
  24. void husi_led(void)
  25. {
  26. while(1)
  27.    {
  28.       for(Num=Clock;Num>0;Num--) //led逐渐变暗
  29.           {                        
  30.        P05=1;                       //测试LED灯                        
  31.        Delay_us(Num);         //3000慢慢减 慢慢变暗
  32.        P05=0;                       //测试LED灯                                         
  33.        Delay_us(Clock-Num);     
  34.           }                                       
  35.        P05=0;                  //测试LED灯
  36.        Delay_ms(1000);   //再暗你一秒
  37. //**************************************//                                       
  38.       for(Num=0;Num<Clock;Num++)  //led逐渐变亮
  39.          {
  40.        P05=1;                     //测试LED灯
  41.        Delay_us(Num);       //0慢慢加 慢慢变亮
  42.        P05=0;                     //测试LED灯            
  43.        Delay_us(Clock-Num);                                                   
  44.          }                                       
  45.        P05=1;                    //测试LED灯
  46.        Delay_ms(500);      //再亮半秒 这里视觉的原因 是暗的一半所以选500ms
  47.       }
  48. }
复制代码








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