
2个回答
展开全部
这个程序中没有熄灭的程序,单片机当然不会有熄灭的操作。修改如下:
if(k1==0)
P2=0xee;
else
P2=0xff;
if(k2==0)
P2=0xfd;
else
P2=0xff;
这是按住就亮,松开就灭的程序。
如果想实现按一次亮,再按一次熄灭。程序如下:
bit a=0,b=0;//做按键点亮熄灭标志
while(1)
{
if(k1==0&&a==0)
{
P2=0xee;
a=1;
}
else if(k1==0&&a==1)
{
P2=0xff;
a=0;
}
if(k2==0&&b==0)
{
P2=0xfd;
b=1;
}
else if(k1==0&&b==1)
{
P2=0xff;
b=0;
}
}
if(k1==0)
P2=0xee;
else
P2=0xff;
if(k2==0)
P2=0xfd;
else
P2=0xff;
这是按住就亮,松开就灭的程序。
如果想实现按一次亮,再按一次熄灭。程序如下:
bit a=0,b=0;//做按键点亮熄灭标志
while(1)
{
if(k1==0&&a==0)
{
P2=0xee;
a=1;
}
else if(k1==0&&a==1)
{
P2=0xff;
a=0;
}
if(k2==0&&b==0)
{
P2=0xfd;
b=1;
}
else if(k1==0&&b==1)
{
P2=0xff;
b=0;
}
}
本回答被提问者采纳
展开全部
不用这么复杂,这样写就好了。
#include <reg51.h>
sbit LED1 = P1 ^ 0;
sbit LED2 = P1 ^ 1;
sbit KEY1 = P3 ^ 0;
sbit KEY2 = P3 ^ 1;
void main( void )
{
LED1 = 1;
LED2 = 1;
while(1)
{
if( KEY1 == 0 )
{
LED1 = ~LED1;
while( !KEY1 );
}
if( KEY2 == 0 )
{
LED2 = ~LED2;
while( !KEY2 );
}
}
}
#include <reg51.h>
sbit LED1 = P1 ^ 0;
sbit LED2 = P1 ^ 1;
sbit KEY1 = P3 ^ 0;
sbit KEY2 = P3 ^ 1;
void main( void )
{
LED1 = 1;
LED2 = 1;
while(1)
{
if( KEY1 == 0 )
{
LED1 = ~LED1;
while( !KEY1 );
}
if( KEY2 == 0 )
{
LED2 = ~LED2;
while( !KEY2 );
}
}
}
本回答被网友采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询