51单片机的外部中断0

硬件电路:一个独立按键连接了P3.2口,也就是外部中断0的端口,同时蜂鸣器连接在了P3.7口,详情见proteus仿真图。
软件编写:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit BEEP=P3^7;
void delay(u16 ten)//
{
while(ten--);
}
void EX_Init()
{
IT0=1;
EX0=1;
TR0=0;
EA=1;
}
void main()
{
EX_Init();
while(1)
{
BEEP=!BEEP;
delay(100000);
}
}
void EX0_ISP()interrupt 0
{
delay(1000);
if(INT0==0)
{
TR0=~TR0;
}
}
理论上来讲,我按下按键key0后会触发外部中断0,且在中断初始化中选择了下降沿触发,故对定时计数器状态取反后程序应该停止,即蜂鸣器不发声,再次按下是定时计数器打开,蜂鸣器会继续发声,也就是通过key0来实现蜂鸣器的暂停。
问题是:当按下key0时,蜂鸣器只是有一小段的暂停后就继续发声了,没起到暂停的功能,麻烦各位看看问题出在哪里。

img