历史上的今天
今天是:2025年03月09日(星期日)
2018年03月09日 | 中断请求的撤销
2018-03-09 来源:eefocus
某个中断请求被响应后,就存在着一个中断请求的撤销问题。下面接中断请求源的类型分别说明中断请求的撤销方法。
1.定时器/计数器中断请求的撤销
定时器/计数器中断的中断请求被响应后,硬件会自动把中断请求标志位(TFO或TF1)清O,因此定时器/计数器中断请求是自动撤销的。
2.外部中断请求的撤销
(1)跳沿方式外部中断请求的撤销 包括两项内容:中断标志位清0和外中断信号的撤销。
其中,中断标志位(IEO或IE1)清0是在中断响应后由硬件自动完成的。而外中断请求信号的撤销,由于跳沿信号过后也就消失了,所以跳沿方式的外部中断请求也是自动撤销的。
(2)电平方式外部中断请求的撤销 对于电平方式外部中断请求的撤销,中断请求标志的撤销是自动的,但中断请求信号的低电平可能继续存在,在以后的机器周期采样时,又会把已清0的IEO或IE1标志位重新置1。为此,要彻底解决电平方式外部中断请求的撤销,除了标志位清0之外,必要时还需在中断响应后把中断请求信号输入引脚从低电平强制改变为高电平。为此,可在系统中增加如右图所示的电路。
由右图可见,用D触发器锁存外来的中断请求低电平,并通过D触发器的输出端Q接到INTO(或INT1(的反))。所以,增加的D触发器不影响中断请求。中断响应后,为了撤销中断请求,可利用D触发器的直接置1端SD实现,即把SD端接AT89S51的Pl.O端。因此,只要P1.0端输出一个负脉冲就可以使D触发器置1,从而撤销低电平的中断请求信号。所需的负脉冲在中断服务程序中增加如下指令即可得到:
3.串行口中断请求的撤销
串行口中断请求的撤销只有标志位清0的问题。串行口中断的标志位是TI和RI,但对这两个中断标志CPU不进行自动清0。因为在响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤销只能使用软件的方法,在中断服务程序中进行,即用如下指令在中断服务程序中对串行口中断标志位进行清除:
![]()
下一篇:上位机应用控制编程
史海拾趣
|
小女子我初学单片机,很多不懂得地方,向大家请教下啊 关于使用外部中断点亮发光二极管的问题,为实现同一功能,写了两方案,具体程序和问题如下 方案一: ORG 0000H LJMP MAIN ORG 0003H LJMP INT MAIN: SETB EA /*首先开启总中 ...… 查看全部问答> |
|
[转载] 簡易開核 輕鬆暢玩 ASUS M4A89GTD PRO/USB3 (存開箱) AMD 現今最夯的口號 我想還是 核心動力全開 小弟也藉由這次開核風氣 入手了M4A89GTD PRO/USB3 入手也一陣子了 就來發個開箱吧 本次的主角出現了 X2 555 與M4A89GTD PRO/USB3 這次華碩用的主機板的彩盒還滿亮眼的 在一張,把閃 ...… 查看全部问答> |
|
现在需要用Waveout函数系列来实现播放wav文件的功能,播放功能已经实现,现在实现快进的功能的时候出现了一个问题,就是在按下快进按钮的时候, 原来已经读入缓冲区的音频内容还在, 请问这时候如何去清除缓冲区内的音频内容.… 查看全部问答> |
|
我的平台是CEPC X86,使用PB4.2自带的CEPC BSP定制的,系统可以正常启动。 但是,当桌面启动后,就弹出一个对话框要我设置DHCP或者静态IP,对话框的标题是:\'Mycrosoft null Ethernet Miniport Driver\' settings 当我设置DHCP时,确实可以得到 ...… 查看全部问答> |
|
用串口与MCU通信,用57600波特率,8位数据,1位停止位,无校验位。mcu端发送一个数据包号请求命令(共10个字节长度),wince端收到后,解析出包号,把对应包号的数据发送给MCU(共40个字节长度)。mcu端收到数据后继续请求下一包数据 ...… 查看全部问答> |
|
此次STM32的技术研讨会的一个重要的部分是,与使用STM32的工程师们面对面的讨论一些大家普遍碰到的问题。STM32是个新产品,Cortex-M3也是个新产品,有很多应用上的概念与大家原有的概念是相通的,也有一些概念是有些人没有碰到过的,我们希望 ...… 查看全部问答> |




