DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 107|回复: 0
打印 上一主题 下一主题

HT48R05A-1时钟振荡器

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-30 16:35:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断系统(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子程序调用,则会造成堆栈溢出而破坏原先的控制序列。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-22 20:14 , 耗时 0.083829 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表