【RGBLED燈珠全彩漸變】
/////////////////////////////////////////////////
C程序
/////////////////////////////////////////////////
/***********************************************************************/
/***名稱:RGBLED燈珠全彩漸變 *******************************/
/***功能: */
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int U16;
/*---------------------------------------------------------------------*/
/*-- 端口定義 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_1 P1
sbit LED_R =P1^0;
sbit LED_G =P1^1;
sbit LED_B =P1^2;
bit FLAG_ON;
U8 R_DAT,G_DAT;B_DAT;
U8 PWM_HL,REPEAT;
/*---------------------------------------------------------------------*/
/*-- 延時程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*---------------------------------------------------------------------*/
/*-- 漸變程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void fade1()
{
U8 fade_1,fade_2,fade_3,fade_4;
fade_2=128;
fade_4=127;
while(fade_2!=0)
{
for(fade_3=128;fade_3>fade_4;fade_3--)
{
LED_R=0;
LED_G=1;
delay(50);
}
fade_3=128;
fade_4--;
for(fade_1=0;fade_1<fade_2;fade_1++)
{
LED_R=1;
LED_G=0;
delay(50);
}
fade_1=0;
fade_2--;
}
fade_2=128;
fade_4=127;
while(fade_2!=0)
{
for(fade_3=128;fade_3>fade_4;fade_3--)
{
LED_G=0;
LED_B=1;
delay(50);
}
fade_3=128;
fade_4--;
for(fade_1=0;fade_1<fade_2;fade_1++)
{
LED_G=1;
LED_B=0;
delay(50);
}
fade_1=0;
fade_2--;
}
fade_2=128;
fade_4=127;
while(fade_2!=0)
{
for(fade_3=128;fade_3>fade_4;fade_3--)
{
LED_B=0;
LED_R=1;
delay(50);
}
fade_3=128;
fade_4--;
for(fade_1=0;fade_1<fade_2;fade_1++)
{
LED_B=1;
LED_R=0;
delay(50);
}
fade_1=0;
fade_2--;
}
}
/*---------------------------------------------------------------------*/
/*-- 主程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
PORT_1=0X00;
PWM_HL=200;
while(1)
{
fade1();
}
}
/*---------------------------------------------------------------------*/
/*-- 程序結束 ---------------------------------------*/
/*---------------------------------------------------------------------*/
|