单片机外部的EA是单片机读取的是片内程序存储器还是片外程序存储器!所以EA通常要接VCC,要不然没有片外程序存储器的话程序无法执行的!
你写的代码EA是单片机内部的一个总中断控制寄存器!EA=0的话所有中断都无法访问。这个不管怎么改硬件都是无法实现的。这个与单片机的内部结构有关系。
所以两个EA是完全不同的两个概念。在单片机内部硬件支持的地址也是不一样的!
在8051单片机中,寄存器EA为总中断允许位,EA=0时,屏蔽所有中断,当然你的定时器中断就不响应了。
引脚EA是片外程序存储器选用端。接低时,程序只选用片外程序存储器。接高时选择片内程序存储器。现在有些8051核单片机已经没有这个引脚了。它与中断没有任何关系。
两个“EA”是完全不一样的东西。 (PS:难道你用的仿真?引脚EA接低,程序都跑不了,难不成你的板子还接了片外存储器?你还把程序烧到了片外去?那你这得是哪个年代的板子咯?)
你说的EA置0,是所谓的 中断寄存器里面的总中断开关,EA=0,就是中断不工作,EA=1.就是打开中断。而单片机引脚外面的那个 EA则是 片内ROM和片外ROM的控制端口,与中断寄存器里面的总中断开关EA是不一样的概念,总中断开关EA是中断寄存器里面的其中一位。
就是说 引脚外面那个EA 是不受程序控制的,是硬件控制的。
而中断寄存器里面的EA是受程序控制的,不受硬件控制的。