我写的程序如下,出学者咨询大老问题在哪#include <reg51.h>
typedef unsigned char uch;
typedef unsigned long uint;
sbit power=P3^3;
sbit beep=P1^5;
void delay(uint i)
{
while(i--);
}
void duan()
{
EX0=1;
IT0=0;
EA=1;
}
void main()
{
while(1)
{
duan();
}
}
void D_A() interrupt 0
{
beep=1;
if(power==0)
{
while(1)
{
beep=~beep;
delay(10);
}
}
}
把延时加大,你这太短了。还有就是中断服务程序不要做太多耗时操作,你这整个while死循环更不合适了。