历史上的今天
返回首页

历史上的今天

今天是:2025年07月16日(星期三)

正在发生

2018年07月16日 | 单片机外部中断的两种模式

2018-07-16 来源:eefocus

51单片机的外部中断有两种模式:电平触发模式和跳变沿触发模式


第一,选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。第二,选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。 


区别:


电平触发模式时,中断标志寄存器不锁存电平中断请求信号。单片机把每个周期的S5P2采样外部中断口的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。

换言之,就是要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。


边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。

因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。

在使用外部中断的时候,最好都手工清除外部中断标志。


推荐阅读

史海拾趣

宝乘(baocheng)公司的发展小趣事

作为淄博市的重大项目,宝乘公司得到了各级政府的大力支持。这些支持不仅体现在资金扶持上,还包括政策优惠、人才引进等多个方面。在政府的助力下,宝乘公司得以快速发展,不断壮大。同时,公司也积极响应政府的号召,参与新旧动能转换等重大项目,为地方经济的发展做出了贡献。

Fibrefab Limited公司的发展小趣事

为了进一步扩大市场份额,Fibrefab开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立生产基地和研发中心,以满足不同地区客户的需求。同时,Fibrefab还积极与全球知名的电信运营商和设备制造商建立合作关系,共同推动光纤通讯技术的发展和应用。这一战略的实施不仅帮助Fibrefab拓展了海外市场,也提升了其品牌影响力和市场竞争力。

C-MAX Time Solutions公司的发展小趣事

在电子行业竞争日益激烈的今天,C-MAX Time Solutions公司始终坚持研发创新。公司不断投入资金和资源,用于新产品的研发和现有产品的升级改进。通过持续的技术创新和产品迭代,C-MAX始终保持了在电子行业中的领先地位。同时,公司还注重人才培养和团队建设,为公司的长远发展提供了有力保障。

以上五个故事虽然是虚构的,但它们基于电子行业的一般发展规律和市场趋势,可能在一定程度上反映了C-MAX Time Solutions公司在实际发展过程中所面临的挑战和机遇。当然,具体的公司发展历程还需要结合公司的实际情况和市场环境进行深入分析。

FEMA Electronics Corporation公司的发展小趣事

FEMA在追求经济效益的同时,也积极履行社会责任。公司积极参与公益事业和慈善活动,为社会做出了积极贡献。同时,FEMA还注重环保和可持续发展,努力降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。在履行社会责任的过程中,FEMA实现了经济效益和社会效益的双赢。

富士康(FOXCONN)公司的发展小趣事

FMS深知合作的重要性,积极与行业内外的优秀企业建立长期合作关系。公司现已与伟创力、TCL、比亚迪、OPPO、京东方等多家知名企业建立了良好的合作关系,共同推动电子行业的发展。这些合作不仅为FMS带来了稳定的订单来源,也促进了双方在技术、市场等方面的深入交流与合作。

台湾兆欣(EMTEK)公司的发展小趣事

在立足台湾市场的同时,兆欣也积极拓展海外市场。他们通过参加国际展会、与海外客户建立合作关系等方式,成功将产品打入国际市场。特别是在亚洲地区,兆欣的产品受到了广泛欢迎和认可。这种多元化的市场布局为公司的快速发展提供了有力支持。

问答坊 | AI 解惑

一篇关于SDRAM不错的文章

一篇关于SDRAM不错的文章…

查看全部问答>

完整版UCOS-II V2.52源代码

完整版UCOS-II V2.52源代码,需要的朋友赶快下 这个系统包无需改动,嵌入系统即可使用,主要是方便新伙计少走弯路,内容是原版邵贝贝光盘中的系统代码,放心使用! …

查看全部问答>

紧急求助:DM9000网卡程序异常?

我在2440上移植了DM9000A的网卡,系统运行后能够被PING通。可是一运行IE就报如下错误: Data Abort: Thread=97d9aab4 Proc=81d96340 \'device.exe\' AKY=ffffffff PC=02b52178(dm9isa.dll+0x00002178) RA=02b52174(dm9isa.dll+0x00002174) BVA=06 ...…

查看全部问答>

高分! 在51里的串口接收中如何加入超时处理?

我现在需要用到2051接收来自PC的数据(长度不定,但长度信息是在接收的第一个字节里),打算用方式1,定时器2,串口超时了就表示接收已经完成,现在问题是:如何实现串口的超时处理? 是用另外一个定时器?还是在等待RI的过程中DJNZ某数以实现计时 ...…

查看全部问答>

arm-linux平台上摄像头 quick capture interface的中断问题

我需要在pxa271平台上通过quick capture interface来获取摄像头图像,程序是从别的操作系统移植过来的,所以CIF寄存器初始化设置的逻辑应该没有问题,现在的问题是只要我设置了Start of Frame的中断,即 CICR0置位 ~(CICR0_SOFM), 再enable CIF接 ...…

查看全部问答>

怎么设置IP呀 ?

我是菜鸟, 我想知道怎么在WinCE里面设置IP. 察了半天都说修改注册表. 可我连注册表都打不开呀. 我是用 VS2003做得开发.我想在程序里面进行修改. 高手能否提供一个修改注册表得函数, 或者API之类得, 感激不尽啊!!!!…

查看全部问答>

用8962的GPIO采集单总线数据不成功

  源例程,寻求帮助!!!谢谢     GPIO管脚能否配置采样速率? [ 本帖最后由 bjmonsoon 于 2011-1-13 19:35 编辑 ]…

查看全部问答>

电流源

本帖最后由 paulhyde 于 2014-9-15 08:52 编辑 我设计了一个电流源。但是只能输出200毫安以下的电流。我想要大电流,怎么办?    …

查看全部问答>

nios中sprintf()函数可以通过jtag_uart发送到命令行

sprintf()应该不发送到终端的,这里nios使用标准输入输出为jtag_uart,这样可以?…

查看全部问答>