8051有5个中断源,即两个外部中断、两个定时/计数器中断和一个串行发送/接收中断。1.外部中断外部中断是由连接到单片机外部引脚信号变化而引起的中断,反映外部某一事件的发生。CPU是在每个机器周期的S5P2检测P 3.2和P 3.3上的信号,如果是有效信号则对定时器控制寄存器TCON中的IE0或IE1置1,建立中断请求标志。表6-1中断源的主要内容及说明......
2023-11-17
在每条指令执行结束后(不含一些特殊指令),系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态,则按照响应的条件和响应过程去响应中断。
1.中断响应的条件
1)当前机器周期还不是正在执行指令的最后一个机器周期,任何中断请求都得不到响应。
2)同优先级或高优先级的中断已在进行中,此中断不会被响应。
3)正在执行的是一条RET、RETI或者访问特殊功能寄存器IE或IP的指令(即在RET、RETI或读写IE或IP之后),不会马上响应中断请求,而须执行一条其他指令之后才会响应。
因为执行RET、RETI就从堆栈中取出保存的PC,马上响应其他中断则断点的保护就出现问题;如果是执行改变IE或IP的指令,马上响应其他中断会出现响应新IE不允许的中断或新IP优先级低的中断。
2.中断响应的过程
单片机一旦响应某一中断请求,就由硬件完成以下功能:
1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1。(www.chuimin.cn)
2)把当前程序计数器PC的内容压入堆栈自动完成断点保护。
3)清除被响应的中断请求标志位,即清除TCON中的TF0或TF1、TCON中的IE0或IE1,但不清除SCON中的RI和TI。
4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。
3.中断响应的时间
中断响应的时间是指从中断产生到执行中断处理程序所需要的时间,一般情况下不需考虑中断响应的时间,但在精确定时或在有些应用场合则必须考虑中断响应的时间。
1)最短的时间需要3个机器周期。中断查询的机器周期正好是指令的最后一个机器周期时,查询占1个机器周期,响应中断执行隐指令LCALL需两个机器周期,则共需3个机器周期。
2)最长的时间需要8个机器周期。中断查询正好是开始执行RET、RETI或访问IE、IP的指令,最长需要两个机器周期,接着再执行的是MUL、DIV指令需要4个机器周期,响应中断执行隐指令LCALL需要两个机器周期,则共需8个机器周期。
有关单片机基础及应用的文章
8051有5个中断源,即两个外部中断、两个定时/计数器中断和一个串行发送/接收中断。1.外部中断外部中断是由连接到单片机外部引脚信号变化而引起的中断,反映外部某一事件的发生。CPU是在每个机器周期的S5P2检测P 3.2和P 3.3上的信号,如果是有效信号则对定时器控制寄存器TCON中的IE0或IE1置1,建立中断请求标志。表6-1中断源的主要内容及说明......
2023-11-17
具体中断处理程序的流程如图6-2所示。4.中断处理主体中断处理主体是响应此中断的功能程序。6.恢复现场将保护在堆栈中的数据弹出来恢复现场,必须按照先进后出的原则编写程序,保证现场的正确恢复,恢复时弹出的数量必须和保护时压栈的数量相等,否则将导致自动恢复的断点错误。8.返回此时CPU自动将压入到堆栈的断点地址弹回到程序计数器PC,从而使CPU继续执行刚才被中断的程序。......
2023-11-17
中断优先级的控制或设置由中断允许控制寄存器IE、优先级控制寄存器IP的设置和同一优先级中的优先顺序决定。表6-3同级中断的优先顺序表2.中断优先级的控制原则1)当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高优先级的中断申请,待高优先级中断处理程序完毕再返回原中断程序断点处继续执行,即可以中断嵌套。......
2023-11-17
CPU对中断处理过程包括中断初始化、中断响应、保护现场、中断服务程序处理、中断撤销和中断返回。所以在进入中断服务子程序后,一般都要保护现场,再执行中断服务程序,返回主程序前再恢复现场,用户在编制中断处理程序时必须要考虑上述问题。......
2023-11-04
MCS-51单片机有5个中断源,中断允许控制寄存器IE的功能是设置所有中断是允许状态或禁止状态。中断允许控制寄存器IE的每位定义如下:1.EA:中断允许总控制位EA=0时,禁止所有中断,CPU屏蔽所有中断;EA=1时,总的中断允许,CPU开放中断,但具体每个中断是否被允许取决于该中断的允许位。2.EX0和EX1:外部中断允许控制位EX0为外部中断0的中断允许位,EX1为外部中断1的中断允许位。......
2023-11-17
MCS-51单片机的算术运算类指令包括加、减、乘、除、加1、减1等指令。这类指令有ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV共8种。表3-3算术运算类指令注:√表示该指令影响某一标志位。运算结果对PSW的影响同上述4条ADD指令。6.十进制调整指令十进制调整指令只有以下1条:该指令用于BCD码加法运算时,对BCD码的加法运算结果自动进行调整,但对BCD码的减法运算不能用此指令来调整。在运算过程中,单片机按二进制规则进行运算。......
2023-11-17
多分支结构中具有两个以上条件可供选择,可使用无条件间接转移指令“JMP@A+DPTR”来实现。使用散转指令设计多分支程序结构时可采用下面的两种方法:1)数据指针DPTR固定,根据累加器A的内容,程序转入相应的分支程序中去。采用转向地址表实现多分支结构,转移的目标程序序号存放于R7中。......
2023-11-17
相关推荐