麻烦各位高手帮小妹答一下这个问题嘛“ mcs-51系列单片机的中断系统和中断响应以后所做的事情及相应的软件所做的事情和如何进行断点保护?”
中断响应的时候CPU完成的操作有下面几个方面:
1、硬件清除相应的中断请求标志
2、执行一条硬件子程序,保护断点,并转向中断服务程序入口;
3、结束中断时执行RETI指令,恢得断点,返回主程序
下面我给你一步步的分析中断的过程:
首先:对外部中断来说,中断标志位在CPU响应后硬件会将标志位自动清零。对串行口接收和发送两个中断来说,中断标志位RI和TI必须由软件清零。
第二:中断源的中断服务程序的入口地址是:INT0:0003H;T/C0:000BH;INT1:0013H;T/C1:001BH;串行口中断:0023H。响应中断请求时,硬件自动形成转向与此中断源对应的服务程序入口地址。这时把先前的程序计数器压栈。51有四个寄存器组,程序运行中只使用一个寄存器组,中断发生时,可以切换寄存器组以保护正在使用的寄存器组数据不被覆盖。压栈的寄存器通常是累加器ACC和寄存器B。如果需要也可将DPH和DPL和PSW寄存器压栈。这就是它的断点保护。
第三:在中断函数退出前,所有的寄存器出栈,然后RETI命令,重新允许系统识别其他中断。
中断系统还有注意中断的控制,主要是对IE和IP寄存器的编程。用这两个寄存器来控制中断是否允许,还有中断和优先级。
具体的对中断控制的这两个寄存器的编程就不细说了,建议在网上搜一下51的教程,有很多。上边对中断的讲解很详细。这里只是稍微的总结了一下,希望能对你有所帮助。
1、硬件清除相应的中断请求标志
2、执行一条硬件子程序,保护断点,并转向中断服务程序入口;
3、结束中断时执行RETI指令,恢得断点,返回主程序
下面我给你一步步的分析中断的过程:
首先:对外部中断来说,中断标志位在CPU响应后硬件会将标志位自动清零。对串行口接收和发送两个中断来说,中断标志位RI和TI必须由软件清零。
第二:中断源的中断服务程序的入口地址是:INT0:0003H;T/C0:000BH;INT1:0013H;T/C1:001BH;串行口中断:0023H。响应中断请求时,硬件自动形成转向与此中断源对应的服务程序入口地址。这时把先前的程序计数器压栈。51有四个寄存器组,程序运行中只使用一个寄存器组,中断发生时,可以切换寄存器组以保护正在使用的寄存器组数据不被覆盖。压栈的寄存器通常是累加器ACC和寄存器B。如果需要也可将DPH和DPL和PSW寄存器压栈。这就是它的断点保护。
第三:在中断函数退出前,所有的寄存器出栈,然后RETI命令,重新允许系统识别其他中断。
中断系统还有注意中断的控制,主要是对IE和IP寄存器的编程。用这两个寄存器来控制中断是否允许,还有中断和优先级。
具体的对中断控制的这两个寄存器的编程就不细说了,建议在网上搜一下51的教程,有很多。上边对中断的讲解很详细。这里只是稍微的总结了一下,希望能对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-09-27
学习了