一鍵多功能(按鍵控制LED亮度)
void timer3(uint t)//同上
{
uint u;
for(u=t;t>0;t--)
{
if(RC4==0)
{
a=4;
}
}
}
void LED0_ON()//默認(rèn)關(guān)機(jī)
{
RC3=0;
RC0=0;
RC2=0;
RC1=0;
}
void LED1_ON()//第一次按下,LED全亮
{
RC2=1;
RC3=0;
RC1=0;
RC0=0;
}
void LED2_ON()//第二次按下,亮200/400
{
RC2=1;
timer1(200);
RC2=0;
timer1(200);
}
void LED3_ON()//第三次按下,亮100/400
{
RC2=1;
timer2(100);
RC2=0;
timer2(300);
}
void LED4_ON()//第四次按下,亮10/400
{
RC2=1;
timer3(10);
RC2=0;
timer3(390);
}
void main()
{
PORTC=0X00;//C口上電全是0
TRISC=0X10;//RC4為輸入,其他為輸出
while(1)
{
scan();//按鍵掃描,得到a 的值
if(a>4)a=0;//如果a大于4那么a歸零。實(shí)際上當(dāng)?shù)谖宕伟聪骆I的時(shí)候,正好可以關(guān)機(jī),回到a=0狀態(tài)。
switch(a)
{
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;
}
}
評(píng)論