EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MCS-51与中断有关的寄存器、中断入口地址及编号: P! p5 }* n' j. a3 N
$ M. j5 `1 `6 t: s! s9 b! ~
1、中断入口地址及编号 MCS-51在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求,此时,如果CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者CPU不是正在执行RETI指令或访问IE和IP的指令(因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。 中断响应的主要内容就是由硬件自动生成一条长调用LCALL addr16指令,这里的addr16就是程序存储器中相应的中断区入口地址,这些中断源的服务程序入口地址如下: 表1 5个中断源的服务程序入口地址 | 中断源 | 入口地址 | 中断号 | | | | | | | | | 外中断0 | 0003H | 0 | | | | | | | | | 定时/计数器0 | 000BH | 1 | | | | | | | | | 外中断1 | 0013H | 2 | | | | | | | | | 定时/计数器1 | 001BH | 3 | | | | | | | | | 串行口中断 | 0023H | 4 | | | | | | | | | 定时/计数器T2 | 002BH | 5 | | | | | | | | |
生成LCALL指令后,CPU紧跟着便执行之.首先将PC(程序计数器)的内容压入堆栈保护断点,然后把中断入口地址赋予PC,CPU便按新的PC地址(即中断服务程序入口地址)执行程序。 值得一提的是,各中断区只有8个单元,一般情况下(除非中断程序非常简单),都不可能安装下一个完整的中断服务程序。因此,通常是在这些入口地址区放置一条无条件转移指令,使程序按转移的实际地址去执行真正的中断服务程序。
' t- m4 f( B) {" Y8 G x |