新手关于89C51中断优先级问题
今天实验了外部中断INT0和外部中断INT1,书上说自然优先级INT0> INT1,可是我在实验中发现:当发生INT1的时候,INT0并不能中断INT1的执行,要等到INT1执行完毕了,才会执行INT0中断,体现不出这个自然优先级;而设置INT0为最高优先级时,才体现出来了。是不是51中,如果都不设置的话,他们优先级都是平等的?
另外:keil中,PUSH A 指令通不过编译,只有改为PUSH ACC才可以,这是为什么?
[解决办法]
另外:keil中,PUSH A 指令通不过编译,只有改为PUSH ACC才可以,这是为什么?
这个是KEIL的问题,它规定的,它是编译器,如果你写一个编译,你用PASH A;那也一样.呵
[解决办法]
一般的C52的优先级只有两级,就是用一个寄存器的一位来表示,如果优先级一样的情况下,有个自然优先,自然优先应该是指中断的查询顺序,即当中断同时产生时的优先,而不是中断程序的执行优先
[解决办法]
它说的自然优先级是指如果这两个中断同时到达的话,INT0会得到服务,并不是说INT0
可以中断INT1,除非你指定INT0拥有高优先级,而INT1是低优先级。