...由三个开关K1,K2,K3开关控制灯 轮流亮 逐点亮 间隔亮
发布网友
发布时间:2024-05-28 21:07
我来回答
共1个回答
热心网友
时间:2024-06-03 12:53
#define LED P1
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
void delay(unsigned int t)//12M晶振延迟约1ms
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
void LED1(void)//轮流亮
{
unsigned char i,dat=0x01;
for(i=0;i<8;i++)
{
LED=dat;
dat<<=1;
delay(1000);
}
}
void LED2(void)//逐点亮
{
unsigned char i,dat=0x01;
for(i=0;i<8;i++)
{
LED=dat;
dat<<=1;
dat |=1;
delay(1000);
}
}
void LED3(void)//间隔亮
{
unsigned char i;
for(i=0;i<8;i++)
{
LED=0xff;
delay(1000);
LED=0x00;
delay(1000);
}
}
void mian()
{
while(1)
{
if(!K1)LED1();
else if(!K2)LED2();
else if(!K3)LED3();
}
}
最简单的实现方式,实际应用还需要进行很多的处理,比如按键的防抖动等。