求51单片机呼吸灯代码

要求
1.实现呼吸灯
2.实现按键开启呼吸灯和结束呼吸灯
3.实现按键改变呼吸灯频率


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

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

/***********************************************
函数名称:Delay_us
功    能:
入口参数:us:延时
返 回 值:无        
备    注:内部时钟:24MHz           
************************************************/
void Delay_us(unsigned int i) //这个延时就是PWM的频率了 太大眼睛能看到闪来闪去
{
        for(;i>0;i--)               
                _nop_();        
}
/***********************************************
函数名称:husi_led
功    能:呼吸灯
入口参数:us:延时数量
返 回 值:无        
备    注:
************************************************/
void husi_led(void)
{
while(1)
   {
      for(Num=Clock;Num>0;Num--) //led逐渐变暗
          {                        
       P05=1;                       //测试LED灯                        
       Delay_us(Num);         //3000慢慢减 慢慢变暗
       P05=0;                       //测试LED灯                                         
       Delay_us(Clock-Num);     
          }                                       
       P05=0;                  //测试LED灯
       Delay_ms(1000);   //再暗你一秒
//**************************************//                                       
      for(Num=0;Num<Clock;Num++)  //led逐渐变亮
         {
       P05=1;                     //测试LED灯
       Delay_us(Num);       //0慢慢加 慢慢变亮
       P05=0;                     //测试LED灯            
       Delay_us(Clock-Num);                                                   
         }                                       
       P05=1;                    //测试LED灯
       Delay_ms(500);      //再亮半秒 这里视觉的原因 是暗的一半所以选500ms
      }
}