原创 关于51单片机“外部中断触发方式”的经验总结

2007-10-11 11:01 5648 14 15 分类: MCU/ 嵌入式
下面是本人使用51单片机的一点经验,写出来分享,请批评指正。

51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。

这个原理很好理解。但应用时需要特别注意的几点:

1)        电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。

2)        边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。

3)        中断标志可以手工清除。一个中断如果在没有得到响应之前就已经被手工清除,则该中断将被CPU忽略。就如同没有发生一样。

4)        选择电平触发还是边沿触发方式应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《Keil C51使用技巧及实战》),就有类似的观点。

文章评论1条评论)

登录后参与讨论

用户130757 2009-4-9 16:08

请问外部中断标志寄存器在哪里,怎样手工清除中断标志?
相关推荐阅读
路边侬 2014-07-02 18:27
一种微电流测量方法的研究
1 引言 随着科技发展,极限条件下的试验测量已成为进一步认识大自然的重要手段,这些试验中往往测量的都是一些非常弱的物理量,比如弱磁、弱声、弱光、弱振动等,由于这些微弱的信号一般都是通过传感器进行电量...
路边侬 2012-12-03 12:44
C8051F单片机应用质疑三札
引言 一直被网上对C8051F的火爆宣传鼓动得心痒痒,最近鄙人开始大量采用此类单片机。不料期间遇到许多莫名的问题,纠缠了很久。今日终于脱困,把心得收获发出,与各位大侠分享,欢迎不吝指正。 ...
路边侬 2012-12-03 12:43
解决了一个COldFireV1的奇怪问题
 本人已是第二次使用MCF51JM64器件,没想到非常不顺利。刚焊好的板子上电后,CodeWarrior调试器BDM怎么也连不上板子。报告SYNC错误,反复尝试无果。测量电源电压一切正常。无奈之下...
路边侬 2008-03-05 18:11
注意对NVRAM的两种理解
通常NVRAM被等同于NVM,称为非易失性存储器。通俗地说,掉电不丢失数据的存储器都可以称为NVRAM,诸如EPROM、EEPROM、FLASH、FRAM(铁电存储器)等。因此NVRAM并非指某一种存...
路边侬 2007-10-11 11:25
关于热插拔的准确理解
关于热插拔Hot-Socketing,ALTERA的诠释是这样的。...
路边侬 2007-10-11 11:13
关于latch-up的概念
使用COMS芯片时,会遇到一个闩锁(latch-up)的概念,我一直比较模糊。现在摘录ALTERA的一段描述,以供参考。<?xml:namespace prefix = v ns = "urn:...
我要评论
1
14
关闭 站长推荐上一条 /2 下一条