根据你的要求,我不知道:一个键按下灯亮,那么一个键放开后是什么结果。
按你的要求,我有了一个程序:一个键按下灯亮,放开灯不亮,两个键按下或放开都不亮。
程序不是最好的,但能达到你说的要求。
#include<reg51.h>
sbit k1=P3^1;
sbit k2=P3^0;
sbit LED=P2^2;
void Delay10ms(unsigned int c);
void main(void)
{
while(1)
{
if((k1==0)&&(k2==1))//扫描键盘k1
{
Delay10ms(1);
if((k1==0)&&(k2==1))
{
LED=0;
}
}
if((k1==1)&&(k2==0))//扫描键盘k1
{
Delay10ms(1);
if((k1==1)&&(k2==0))
{
LED=0;
}
}
if(((k1==1)&&(k2==1))||((k1==0)&&(k2==0)))//扫描键盘k1
{
Delay10ms(1);
if(((k1==1)&&(k2==1))||((k1==0)&&(k2==0)))
{
LED=1;
}
}
}
}
void Delay10ms(unsigned int c)
{
unsigned char a,b;
for(c;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
|