中断系统(prom)
ht48r05a-1单片机提供一个外部中断和内部定时/计数器中断。中断的控制寄存器(intc:0bh)包含了中断控制位,用来设置中断允许/禁止及中断请求标志。
一旦有中断子程序被服务,所有其它中断将被禁止(通过清除emi位),这种机制能防止中断嵌套,这时如有其它中断请求发生,这个中断请求的标志会被记录下来,如果一个中断服务中有另一个中断需要服务的话,程序员可以设置emi位及intc所对应的位来允许中断嵌套服务。如果堆栈已满,该中断请求将不会被响应,即使相关的中断被允许,也要到堆栈指针发生递减时才会响应。如果需要立即得到中断服务,则必须避免让堆栈饱和。
所有的中断均具有唤醒功能,当一个中断被服务,会产生一个控制传送,通过将程序计数器(pc)压入堆栈,然后转移到中断服务程序的入口,只有程序计数器(pc)的内容能压入堆栈。如果寄存器和状态寄存器的内容被中断服务程序改变,从而破坏主程序的预定控制,那么程序员必须事先将这些数据备份起来。
ht48r05a-1中断控制寄存器
寄存器
位
符号
功能
intc
(0bh)
0
emi
主中断控制位,允许=1,禁止=0。
1
eei
外部中断控制位,允许=1,禁止=0。
2
eti
定时/计数器中断控制位,允许=1,禁止=0。
3
-
未定义,读出为“0”。
4
eif
外部中断请求标志位,有效=1,无效=0。
5
tf
定时/计数器中断请求位,有效=1,无效=0。
6
-
未定义,读出为0。
7
7
未定义,读出为0。
外部中断是由intc引脚上的电平由高到低的变化触发的,相关的中断请求位(eif、intc的第4位)被置位,当中断允许,堆栈未满,一个外部中断触发时,将会产生地址04h的子程序调用。中断请求标志(eif)位和emi位将会被清除来禁止中断嵌套。
内部定时/计数器中断发生时,会设置定时/计数器中断请求标志位(tf、intc的第5位),中断请求是由内部定时器溢出产生的。当中断允许,堆栈未满,并且tf已被置位,就会产生地址08h的子程序调用,该中断请求标志位(tf)被复位并且emi位被清除。以便禁止中断嵌套。
单片机在执行中断子程序期间,其它的中断响应会被暂停,直到reti指令被执行或是emi和相关的中断控制位被置位(堆栈未满时)。若要从中断子程序返回时,只要执行ret或reti指令即可,reti指令将会自动置位emi位来允许中断服务,而ret则不能自动置位emi。
若中断在两个连续的t2脉冲的上升沿间发生,同时中断响应被允许的话,那么在两个t2脉冲后,该中断会被服务,如果同时发生中断服务请求,那么下列表中列出了中断服务优先等级,这种优先等级也可以通过emi位的复位来屏蔽。
ht48r05a-1中断优先级
no
中断源
优先级
中断
a
外部中断
1
04h
b
定时/计数器溢出
2
08h
中断控制寄存器(intc)其ram地址是0bh,由定时/计数器中断请求标志位(tf)、外中断请求标志位(eif)、定时/计数器允许位(eti)、外部中断允许位(eei)和主中断允许位(emi)组成。emi、eei和eti是用来控制中断的允许/禁止的状态的,这些位防止正在进行中断服务中的中断请求。一旦中断请求标志位(eei、eti)被置位,它们将在intc中被保留下来,直到相关中断被服务或由软件指令清除。
建议不要在中断子程序中使用“call”指令调用子程序,因为它可能会破坏原来的控制序列,而中断经常随机发生或某一个确定的应用程序可能要求立即服务,基于上述情况,如果只剩下一个堆栈,若此时中断不能很好的被控制,而且在这个中断服务程序中又执行了call子程序调用,则会造成堆栈溢出而破坏原先的控制序列。
江森自控:正式退出汽车零部件行业
应用于4G路由方案中的双频WiFi模块
初创潜力车企发布新款电动车续航500公里支持快充 比特斯拉还牛!
国务院:给集成电路企业减负!
最值得购买的小米旗舰,雷军总是提及其两项超级实用功能
HT48R05A-1时钟振荡器
数码相机防抖功能
电子芯闻早报:高通首次涉足芯片制造 华为mate9搭载麒麟960
小米汽车su7什么时候发布 小米汽车su7是纯电动吗
立柱机器人码垛机设备简介特点及其工作流程
图扑应邀出席“数字孪生•筑梦末来”数字工程论坛
PCB制作遇到的问题
曝新款iPhone内存将增加到6GB 同时还有一款3GB运存的“廉价版”iPhone
关于智能制造的投资思路
造成全球“芯片荒”的原因分析
修改MAX2010电路使其工作在450MHz
小米对讲机开箱:高颜易用,年轻人新玩物,下场开小米6了
瑞萨电子宣布推出其材料检测解决方案 无需传感器即可检测材料或液体
物联网时代能给家居生活带来哪些改变
PT2033N单触控单输出IC的产品概述