您的位置 首页 资料

一键多能(按键操控RGB突变)

首先,RGB渐变,实际属于,动态,循环过程,还是通过模拟方法,实现,在延时中检测按键函数,再次发挥作用,让我们为这个函数鼓掌10秒钟voi

首要,RGB突变,实践归于,动态,循环进程,仍是经过模仿办法,完成,在延时中检测按键函数,再次发挥作用,让我们为这个函数拍手10秒钟

void timer(uint t)
{
uint n;
for(n=0;n
{
while(RC5==0)
num=5;
}
}

程序代码如下:

#include
__CONFIG(0X1B4);
#define uchar unsigned char
#define uint unsigned int
unsigned char a;
unsigned char g,r,b,p,num;
void delay(uint x)
{
uint c,d;
for(c=x;c>0;c–)
for(d=110;d>0;d–);
}
void timer(uint t)
{
uint n;
for(n=0;n
{
while(RC5==0)
num=5;
}
}
void LED0_ON()
{
RC0=0;
RC1=0;
RC2=0;
RC3=0;
}
void LED1_ON()
{
RC0=0;
RC1=1;
RC2=0;
RC3=0;
}
void LED2_ON()
{
RC0=0;
RC1=0;
RC2=1;
RC3=0;
}
void LED3_ON()
{
RC0=0;
RC1=0;
RC2=0;
RC3=1;
}
void LED4_ON()//此突变函数是无意中在网上发现的
{
RC3=0;
if(g!=0&&b==0)
{
g–;
r++;
}
if(r!=0&&g==0)
{
r–;
b++;
}
if(b!=0&&r==0)
{
b–;
g++;
}
if(g+r+b!=240)
{
g=200;
r=0;
b=0;
}
for(a=0;a<10;a++)
{
if(g!=0)
{
RC0=0;
timer(g);
RC0=1;
}
if(r!=0)
{
RC1=0;
timer(r);
RC1=1;
}
if(b!=0)
{
RC2=0;
timer(b);
RC2=1;
}
}
}
void LED5_ON()
{
RC0=1;
RC1=1;
RC2=1;
RC3=1;
}
void init()
{
TRISA=0b11111111;
TRISC=0b11100000;
ANSEL=0X00;//把RC1,RC2,RC3设置为一般I/O 或许中止输入,模仿输入时分ANSEL=0XFF
CMCON=0X07;//比较器制止
RC4=0;
RC3=0;
RC0=0;
RC1=0;
RC2=0;
g=240;r=0;b=0;
}
void scan()
{
while(!RC5)
{
delay(5);
p++;
}
if(p>10)
{
p=0;
num++;
if(num>5)num=0;
}
void main()
{
init();
while(1)
{
scan();
switch(num)
{
case 0:LED0_ON();break;
case 1:LED1_ON();break;
case 2:LED2_ON();break;
case 3:LED3_ON();break;
case 4:LED4_ON();break;
case 5:LED5_ON();break;
}
}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/318324.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部