你的程序就是这样的功能——按着响,松手停。而且不一直按着,只快速地按一下都是不会响的——全靠while(1)才响的。
你的思路,使得程序不好改了,换个新的吧
#include<reg51.h>
sbit k3=P3^2;
sbit Beep = P1^5 ;
void Delay(unsigned int i);
void Delay10ms(unsigned int c);
void main(void)
{
unsigned int i,n,f;
while(1)
{
if(k3==0)
{
Delay10ms(1);
if(k3==0)
{
if(f==0)
{n=0;
while(n<1000)
{
Beep= 1;
Delay(100);
Beep= 0;
Delay(100);
n++;
}
f=1;
}
else
{n=0;
while(n<750)
{
Beep= 1;
Delay(150);
Beep= 0;
Delay(150);
n++;
}
f=0;
}
while((i<50)&&(k3==0))
{
Delay10ms(1);
i++;
}
i=0;
}
}
}
}
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--);
}
void Delay(unsigned int i)
{
for(i; i > 0; i--);
}
程序功能:按奇数次按键一个音,按偶数次响另一个音。 |