你的程序就是這樣的功能——按著響,松手停。而且不一直按著,只快速地按一下都是不會響的——全靠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--);
}
程序功能:按奇數次按鍵一個音,按偶數次響另一個音。 |