
[中断入口说明]
interrupt
0
外部中断0(rom入口地址:0x03)
interrupt
1
定时/计数器中断0(rom入口地址:0x0b)
interrupt
2
外部中断1(rom入口地址:0x13)
interrupt
3
定时/计数器中断1(rom入口地址:0x1b)
interrupt
4
uart串口中断(rom入口地址:0x23)
(更多的中断依单片机型号而定,rom中断入口均相差8个字节)
using
0
使用寄存器组0
using
1
使用寄存器组1
using
2
使用寄存器组2
using
3
使用寄存器组3
基础知识:
处理器允许处理256种中断,每个中断向量占4个字节:低位2个字节存放段内偏移地址,高位2个字节存放中断入口地址的段地址ax是数据寄存器es为段寄存器
解答:
这是人为设置中断向量的一种方法,其中34和36是固定的位置(用户指定的位置)从34h开始的两个字节内存放了偏移量,在接下来的两个字节内,即从36h开始,存放了中断处理程序的段地址由此得到的中断处理程序的入口地址为36h:34h
如果程序只有这么多,34h和36h就是用户指定的
cpu在响应中断前会保护主程序当前指令下面的一条指令的地址。就是将当前的IP和CS的内容入堆栈。cpu响应中断之后,将指令地址从堆栈中取出即可找到中断服务子程序入口地址。
CPU响应中断做如下动作:
①将中断类型码放入暂存器保存;
②将标志寄存器内容压入堆栈,以保护中断时的状态;
③将IF和TF标志清0,目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;
④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。因此保护断点的动作就是将当前的IP和CS的内容入栈,保护断点是为了以后正确地返回主程序;
⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。
一般在程序开头有中断子程序的入口处,在主程序里可以看到这些子程序的。标号名可以随便取,但入口地址是固定的。
ORG 00H
AJMP MAIN
ORG 03H ;外部中断0 入口地址
AJMP EX0INT ;跳转至外部中断0子程序
ORG 0BH
AJMP T0INT ;定时中断0
ORG 13H
AJMP EX1INT ;外部中断1
ORG 1BH
AJMP T1INT ;定时中断1
ORG 23H
AJMP URT ;串口中断
MAIN:
EX0INT: 外部中断0子程序
T0INT: 定时器0 中断子程序
举个例子,当你在苦逼的洗碗的时候,突然你的电话响起来了,于是你去接了电话,接完电话之后,你又继续回去洗碗了。在这里,可以把洗碗当成主线,而电话铃声看作中断触发信号,接电话看作是在中断里做的事。应用场合嘛,看实际需求,但是耗时的 *** 作一般是不允许放在中断里的
以上就是关于51单片机的5个中断源的中断入口地址分别是什么如果要将外部中断0的中断服务程序全部的内容,包括:51单片机的5个中断源的中断入口地址分别是什么如果要将外部中断0的中断服务程序、中断处理程序的入口地址、在PC机中,CPU响应中断后是如何找到中断服务子程序入口地址的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)