一鍵多能(按鍵控制RGB漸變)
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()//此漸變函數(shù)是無意中在網(wǎng)上發(fā)現(xiàn)的
{
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設(shè)置為普通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;
}
}
}關(guān)鍵詞:
一鍵多能按鍵控制RGB漸
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論