程序一
//功能 :七彩呼吸
#include <STC8G.h>
//端口定义
sbit GREEN = P3^1;//红光控制端,0点亮
sbit RED = P3^2;//绿光控制端,0点亮
sbit BLUE = P3^3;//蓝光控制端,0点亮
void port_mode()
{
P3M1=0X00;P3M0=0X00;P5M1=0X00;P5M0=0X00;
}
void Delay(unsigned int t);
void RGB(unsigned char R ,unsigned char G ,unsigned char B);
void main (void)
{
RED = 0 ; GREEN = 0 ; BLUE = 0 ;
port_mode();
P3=0X01;
while (1)
{
RGB(1,0,0);
RGB(0,1,0);
RGB(0,0,1);
RGB(0,1,1);
RGB(1,1,0);
RGB(1,0,1);
RGB(1,1,1);
RGB(0,0,0);
}
}
void Delay(unsigned int t)
{
while(--t);
}
//7色光依次逐渐变亮
void RGB(unsigned char R ,unsigned char G ,unsigned char B)
{
unsigned int pwm , set = 2000 ;
for(pwm=1;pwm<set;pwm++)//渐亮
{
RED = 0; //熄灭LED
GREEN = 0;
BLUE = 0;
Delay(set-pwm);//延时长
RED = R;
GREEN = G;
BLUE = B;
Delay(pwm);//延时长
}
for(pwm=set-1;pwm>0;pwm--)//渐暗
{
RED = 0; //熄灭LED
GREEN = 0;
BLUE = 0;
Delay(set-pwm);//延时长
RED = R;
GREEN = G;
BLUE = B;
Delay(pwm);//延时长
}
}
======================================================================
程序二
//功能:七彩单色显示
#include <stc8.h>
sbit K=P5^5;
void delay (unsigned int i)
{
unsigned int k,m;
for(m=0;m<1000;m++);
for(k=0;k<i;k++);
}
void port_mode()
{
P3M1=0X00;P3M0=0X00;P5M1=0X00;P5M0=0X00;
}
void main()
{
unsigned char i=0;
port_mode();
P5=0XE0;
P3=0X00;
while(1)
{
if(K==0)
{
delay(1200);
if(K==0)
{
if(++i==9)i=1;
}
}
switch(i)
{
case 1:P3=0x02;break;
case 2:P3=0x04;break;
case 3:P3=0x08;break;
case 4:P3=0x06;break;
case 5:P3=0x0a;break;
case 6:P3=0x0c;break;
case 7:P3=0x0e;break;
default:P3=0X00;break;
}
while(!K);
delay(1200);
}
}
|