#include<AT89X51.h>
#define RED_LED P2_0
#define GREEN_LED P2_1
#define BLUE_LED P2_2
unsigned int PWM,time=200;
void delay(unsigned int x)
{
int i;
for(i=0;i<x;i++);
}
void red_led(void)
{
for(PWM=time;PWM>0;PWM--)
{
RED_LED =1;
delay(PWM);
RED_LED =0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
RED_LED =1;
delay(PWM);
RED_LED =0;
delay(time-PWM);
}
}
void green_led(void)
{
for(PWM=time;PWM>0;PWM--)
{
GREEN_LED = 1;
delay(PWM);
GREEN_LED = 0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
GREEN_LED = 1;
delay(PWM);
GREEN_LED = 0;
delay(time-PWM);
}
}
void blue_led(void)
{
for(PWM=time;PWM>0;PWM--)
{
BLUE_LED = 1;
delay(PWM);
BLUE_LED = 0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
BLUE_LED = 1;;
delay(PWM);
BLUE_LED = 0;;
delay(time-PWM);
}
}
void red_green_led(void)
{
for(PWM=time;PWM>0;PWM--) //逐渐变暗
{
RED_LED =0; GREEN_LED = 1;
delay(PWM);
RED_LED =1; GREEN_LED = 0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
RED_LED =0; GREEN_LED = 1;
delay(PWM);
RED_LED =1; GREEN_LED = 0;
delay(time-PWM);
}
}
void green_blue_led(void)
{
for(PWM=time;PWM>0;PWM--)
{
GREEN_LED =0; BLUE_LED = 1;
delay(PWM);
GREEN_LED =1; BLUE_LED = 0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
GREEN_LED =0; BLUE_LED = 1;
delay(PWM);
GREEN_LED =1; BLUE_LED = 0;
delay(time-PWM);
delay(time-PWM);
}
}
void blue_red_led(void)
{
for(PWM=time;PWM>0;PWM--)
{
BLUE_LED =0; RED_LED = 1;
delay(PWM);
BLUE_LED =1; RED_LED = 0;
delay(time-PWM);
}
for(PWM=0;PWM<time;PWM++)
{
BLUE_LED =0; RED_LED = 1;
delay(PWM);
BLUE_LED =1; RED_LED = 0;
delay(time-PWM);
}
}
void main(void)
{
while(1)
{
red_led();
green_led();
blue_led();
red_green_led();
green_blue_led();
blue_red_led();
}
}
一款很炫酷电动自行车夜光灯_源码与仿真电路.zip
(28.03 KB, 下载次数: 19)
|