新手学单片机,瞎折腾的!
高手给点意见!
4种功能可调
pwm 1.2K
4个控制按键
中断0,中断1,定时器0,定时器0,
1,开机白光
2,按一下中断0-七彩闪烁
中断1: 减慢闪烁频率
定时器0: 增加闪烁频率
3,按二下中断0-七彩渐变(16万档)
中断1: 减慢变色频率
定时器0: 增加变色频率
4,按三下中断0-灯灭
5,按四下中断0-调色模式(100万色,调出自己喜欢的颜色)
中断1,定时器0,定时器0,
每按一次红,绿,蓝亮度对应增加1/100.
6,按四下中断0-调色模式
中断1,定时器0,定时器0,
每按一次红,绿,蓝亮度对应减少1/100.
while(n==0)
{
P1_0=1;
P1_1=1;
P1_2=1;
}
while(n==1)
{
P1_0=1;
Delay(y);
P1_0=0;
P1_2=1;
P1_1=1;
Delay(y);
P1_2=0;
P1_1=0;
P1_1=1;
Delay(y);
P1_1=0;
P1_0=1;
P1_2=1;
Delay(y);
P1_0=0;
P1_2=0;
P1_2=1;
Delay(y);
P1_2=0;
P1_0=1;
P1_1=1;
Delay(y);
P1_0=0;
P1_1=0;
}
while(n==2)
{
P1_0=0;
P1_1=0;
P1_2=0;
for (j=0;j<100;j++)
{
if (j==g)
{
P1_0=1;
}
if (j==r)
{
P1_1=1;
}
if (j==k)
{
P1_2=1;
}
}
if (x==2)
{
m=m+1;
if (m>q)
{
if (gb==0)
{
g=g+1;
if (g>105)
{
gb=1;
}
}
if(gb==1)
{
g=g-1;
if (g<1)
{
gb=0;
}
}
if (rb==0)
{
r=r+3;
if (r>110)
{
rb=1;
}
}
if (rb==1)
{
r=r-3;
if (r<3)
{
rb=0;
}
}
if (kb==0)
{
k=k+2;
if (k>115)
{
kb=1;
}
}
if (kb==1)
{
k=k-2;
if (k<2)
{
kb=0;
}
}
m=0;
}
}
}
}
void in0 (void) interrupt 0
{
P1_7=1;
P1_6=1;
P1_5=1;
P1_4=1;
P1_3=1;
x=x+1;
if (x>5)
{
x=1;
}
switch(x)
{
case 1:
n=1;
P1_3=0;
break;
case 2:
n=2;
P1_4=0;
break;
case 3:
n=2;
g=100;
r=100;
k=100;
P1_5=0;
break;
case 4:
n=2;
P1_6=0;
break;
case 5:
n=2;
P1_7=0;
break;
}
}
void in1 (void) interrupt 2
{
switch(x)
{
case 1:
n=1;
if(y<65000)
{
y=y+1000;
}
break;
case 2:
q=q+10;
break;
case 3:
break;
case 4:
if (k>1)
{
k=k-1;
}
break;
case 5:
if (k<102)
{
k=k+1;
}
break;
}
}
void Timer1 (void) interrupt 3
{
switch(x)
{
case 1:
if(y>1000)
{
y=y-1000;
}
break;
case 2:
if (q>10)
{
q=q-10;
}
break;
case 3:
break;
case 4:
if (g>1)
{
g=g-1;
}
break;
case 5:
if (g<102)
{
g=g+1;
}
break;
}
TH1 = 0xFF;
TL1 = 0xE7;
}
void Timer0 (void) interrupt 1
{
switch(x)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4: //变亮
if (r>0)
{
r=r-1;
}
break;
case 5: //变暗
if (r<102)
{
r=r+1;
}
break;
}
TH0 = 0xFF;
TL0 = 0xEC;
}
200字以内,仅用于支线交流,主线讨论请采用回复功能。