本帖最后由 samsunghellome 于 2013-8-28 17:44 编辑
k1先导通k2再导通,led亮,
k2先导通k1再导通,led灭。
#include<reg52.h>
bit a=0 ;
sbit k1=P3^0;
sbit k2=P3^1;
sbit led=P1^0;
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);
void main()
{ if(k1==0&&a==0)
{DelayMs(10);
if(k1==0&&a==0)
{//a=1;//a是判断第一次按下的标志
while(a==0||k2==0)
{
if(k2==0)
{
DelayMs(10);
if(k2==0)
{
led=0;
a=1;
}
}
}
}
}
if(k2==0&&a==1)
{DelayMs(10);
if(k2==0&&a==1)
{//a=1;
while(a==1||k1==0)
{if(k1==0)
{DelayMs(10);
if(k1==0)
{led=1;
a=0;
}
}
}
}
}
}
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
|