你觉得不合理,是因为你的知识储备不够,如果,你对单片机运作原理有足够的了解,你就不会有这种想法了。
你打开 REGX52.H 你会看到: sbit ES = IE^4;
换句话说, 对KEIL 来说,你只是给 某个 BIT 位 置1了 而已, 鬼知道你是在开中断?
知道你是在开中断的,是单片机,不是KEIL。 知道为什么中断函数要用 interrupt 4 来定位么? 那是为了给 C:0023 加一句长跳转。 你知识储备足够的话,你可以直接 _at_ 0x0023 直接给代码,当然如果中断函数足够短的话。而开了 串口中断 要 跳到 0023 去执行,这个也是 单片机自己知道,不是KEIL 知道。举个最简单的例子,T2, 在STC89 系列时是 interrupt 5, 在STC 15 系列之后,是: interrupt 16 这能去控制?? 不出事??
因此,KEIL 拿什么(或者说凭借什么来判断)来控制你编译不通过? |