各位大虾,我是刚刚学
单片机,如何使用单独按键实现渐亮渐灭(功能是用一个轻触开关,开灯时LED灯慢慢亮起和关灯时慢慢灭掉),我写程序但无法开关,为什么;
//功能为用S1控制LED渐亮渐灭//
#include
unsigned char ID;
unsigned int T=500Toff=0;
sbit LED=P1^0;
sbit S1=P3^7;
void no();
void off();
void Delay(unsigned int t);
void main(void)
{
LED=1;
while(1)
{
if(S1==0)
{
Delay(500);
if(S1==0)
{
ID++;
if(ID==2)
{
ID=0;
}
while(S1==0);
}
}
switch(ID)
{
case 0:
no();
break;
case 1:
off();
break;
}
}
}
/@@*以下为渐亮保持*/
void no (void)
{
for(Toff=1;Toff0;Toff--)
{
LED=0;
Delay(Toff);
LED=1;
Delay(T-Toff);
}
LED=1;
while (1);
}
/@@*以下为延时函数*/
void Delay(unsigned int t)
{
while(--t);
}