你覺得不合理,是因為你的知識儲備不夠,如果,你對單片機運作原理有足夠的了解,你就不會有這種想法了。
你打開 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 拿什么(或者說憑借什么來判斷)來控制你編譯不通過? |