中断源及其优先级
中断的相关寄存器
单片机复位后,IP初值默认为0。
中断的撤除
对于定时器的中断标志位清零,在中断方式下,由硬件清零;在查询方式下,由软件清理。
对于电平触发的外部中断,一般采用软硬结合的方式撤销中断。因为该方式的中断标志位是硬件自动清零,但中断请求信号的低电平可能继续存在着,所以还需要在中断响应后将中断请求信号输入引脚从低电平变为高电平(例如下面的电路)。所以外部中断常用下降沿触发方式。
图中用D触发器锁存外来的中断请求低电平,并通过D触发器的输出端Q接到INT0*(或 INT1* )。所以,增加的D触发器不影响中断请求。
中断响应后,利用D触发器的SD端接AT89S51的P1.0端。因此,只要P1.0端输出一个负脉冲就可以使D触发器置“1”,撤销低电平的中断请求信号。
(此处参考来源:https://blog.csdn.net/Chancy_Lu/article/details/121665127)
中断函数的编写
完整写法:
//第 2 个 void 可以不要
void <函数名>(void ) interrupt <中断源编号n>
{
......
}
实际写法:
//第 2 个 void 可以不要
void <函数名>(void ) interrupt <中断源编号n>
{
......
}
m =0 ~ 3(自己能力不强就一般不设置这个工作寄存器组,而由编译器自动设置)