历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2021年03月24日 | 单片机外中断使用方面的题目及其解决方法

2021-03-24 来源:eefocus

在长期使用51单片机的过程中,我们发现单片机在产业生产现场等干扰较强的环境工作时,有时确已产生定义为下降沿触发方式的外中断,然而用仪器丈量已经送进单片机的INTX引脚时,单片机却不能够正常响应中断。在排除了可能由程序导致的题目之后,再检查CPU确当前状态,发现中断级别、中断答应、中断触发方式也都表明应该响应中断。后经分析及测试,发现是单片机INTX引脚内部端口锁存器被置为零所致。当端口被封闭为零时,从该引脚引进的下降沿表示的中断申请将丢失,中断当然不被响应。由于程序中并未使用可将端口锁存器置为零的指令,且这种情况的产生具有一定的随机性,并非经常发生,所以以为这种现象可能是因电路干扰或噪声造成锁存器误动作导致的。同时我们还以为这种误动作和P3口的内部结构及操纵方式有一定关系。


单片机外中断输进真个P3口是具有第二变异功能的准双向口,其每一位的内部结构如图1所示。当变异功能输出为高电平时,位口是普通I/O口。此时如对I/O口进行写操纵,数据由内部总线写进锁存器,经与非门和MOS管两次反相后送出引脚;如对I/O口进行读操纵,则必须先将锁存器置为1,使MOS管截止,引脚被片内负载MOS管(图中标为上拉电阻)上拉为高电平,然后可进行输进操纵,当输进为低电平时它能被拉成低电平,引脚信息经两个缓冲器进进内总线;假如使用第二功能(变异功能),输进锁存器同样也必须先被置为1,这时引脚受变异功能输出控制,若需使用变异功能输进,则锁存器和变异输出必须同时置为1,使MOS管截止,变异功能输进随引脚的变化而变化。估计在第二功能时只能用于输进中断的P3.2和P3.3口,内部可能没有变异功能输出线,即使有,也只能上拉为固定的高电平。可见,单片机P3口不管是通用I/O口还是变异功能输进,其锁存器都必须先置为1。单片机复位后所有I/O口的状态都是1,一般在系统的初始化程序中定义过中断优先级,并在开中断之后单片机即可响应中断,此后若关掉相应中断答应位(置为0),则需从引脚进进单片机的中断有效信号(低电平或下降沿)固然仍可进进并使IE0(或IE1)置为1,但不能引起中断,当然程序可查寻IE了解中断源是否产生了中断申请。


笔者留意到单片机I/O口有两类指令隐含着对I/O口锁存器的写进。


第一类是读I/O引脚指令,在执行了读I/O引脚指令后,I/O口锁存器状态将变得和引脚相同,假如在中断引脚为低电平期间正巧执行了这种指令,锁存器将变为0态,中断从此将不能进进。


第二类是读-修改-写锁存器指令,例如SETBPX.Y和JBCPX.Y,LABEL等,这些指令被执行时总是先读进I/O口全部8位数据,作一定修改或判定后再回写到锁存器中。


在笔者的程序中没有使用第一类指令,第二类指令倒是有,不过,不是对P3.2(或P3.3)进行操纵,而是对P3.4和P3.5进行操纵(由于系统中使用了P3.4和P3.5作为普通I/O位口)。但是,我们以为有可能在执行这一类指令修改P3.4和P3.5锁存器位时,由于受到较强的干扰而误将P3.2(或P3.3)写成了0,从而出现上述情况。为了验证这一点,我们往掉了程序中对P3.4和P3.5进行操纵的指令,发现中断不能进进的现象基本消失,但在极个别情况下,中断仍不能进进,这种极个别的现象纯粹是随机干扰所致。


为彻底解决中断不能进进的题目,采用了如下两种措施:

(1)放弃P3口剩余的位口,不将其作为普通I/O位口用,而用单片机外部扩充的接口取而代之;

(2)在中断服务程序即将退出之前,往P3.2(或P3.3)口写1,以使P3.2(或P3.3)位的锁存器状态在下一次中断到来之前为1,从而保证不遗漏任何一次中断申请。


推荐阅读

史海拾趣

德立电子(DDY)公司的发展小趣事

作为一家有远见的企业,德立电子深知绿色发展的重要性。公司积极响应国家环保政策,推行绿色生产和绿色供应链管理。同时,德立电子还积极参与社会公益事业,回馈社会,履行企业社会责任。

请注意,以上故事框架仅供参考,具体内容和细节需根据实际情况进行填充和完善。

BELLING LEE公司的发展小趣事

面对不断变化的市场环境和日益激烈的竞争压力,BELLING LEE公司始终保持着创新的精神和敏锐的市场洞察力。公司不断推出具有创新性和前瞻性的新产品和技术,引领着电子行业的发展趋势。同时,公司还加强了对新兴技术的研究和投入,为未来市场的竞争做好了充分准备。


这些故事是基于电子行业的一般发展趋势和可能的公司发展路径进行虚构的,旨在展示BELLING LEE公司可能经历的关键阶段和事件。请注意,这些故事并非基于实际事实,也不代表BELLING LEE公司的真实发展历程。在实际写作中,如果需要描述真实公司的发展故事,应基于可靠的历史资料和公开信息进行编写。

Frequency Devices公司的发展小趣事

在追求经济效益的同时,Frequency Devices公司始终不忘履行社会责任。公司积极响应国家环保政策,采用环保材料和生产工艺,减少对环境的影响。同时,公司还致力于可持续发展,通过技术创新和管理优化,不断提高资源利用效率,降低能耗和排放。这些努力不仅体现了公司的社会责任感,也为公司的长期发展奠定了坚实的基础。

EM Devices Corporation公司的发展小趣事

在产品研发取得突破的同时,EM Devices Corporation也积极拓展市场,寻求与国际企业的合作。公司参加了多个国际电子展,展示了自己的产品和技术实力。通过与国外企业的交流与合作,公司不仅获得了更多的市场机会,还学习到了先进的生产和管理经验。这些经验为公司后续的发展奠定了坚实的基础。

ETTINGER公司的发展小趣事

在日本市场,Ettinger同样取得了巨大的成功。Ettinger Flagship Store位于东京银座,其年营业额甚至即将赶超Ettinger在英国伦敦的销售业绩。这一成就不仅展示了Ettinger在日本市场的受欢迎程度,也体现了品牌在全球范围内的强大竞争力。Ettinger通过不断拓展海外市场,进一步巩固了其作为皮具奢侈品牌的地位。

Ceramics公司的发展小趣事

“跨界陶瓷”公司凭借其前瞻性的战略眼光,积极探索与其他行业的跨界合作。该公司与多家科研机构和高新技术企业建立了战略合作关系,共同研发新型陶瓷电子材料和技术。通过跨界合作,跨界陶瓷成功将陶瓷材料应用于新能源汽车、智能家居等新兴领域,为公司开辟了新的发展空间和市场机会。

这些故事虽然基于虚构,但反映了电子行业中Ceramics公司可能面临的机遇和挑战,以及他们如何通过技术创新、环保理念、国际化战略、品质管理和跨界合作等方式实现发展的普遍现象。当然,实际情况中每家公司的具体发展历程和策略都会有所不同,需要根据具体情况进行分析和评估。

问答坊 | AI 解惑

74系列芯片资料

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 大家分享,,,,,,,,,,  …

查看全部问答>

EWB软件简介

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 内容不是很多,有兴趣的可以看一下  …

查看全部问答>

A Unified Calibration Algorithm for Scattering

A simple algorithm which unifies the calibration procedures for Scattering and Load Pull measurements is proposed. The new technique is particulary useful when measuring non-insertable devices and for on-wafer characterization ...…

查看全部问答>

关于WinCE5.0下WiFi SDIO卡的支持

在WinCE5.0下要添加哪些组件才能支持WiFi? 已经添加了: 还有就是,是不是如果支持了WiFi配置,那么在开机的时候就会弹出一个配置的对话框? 据说只支持English,是吗?有在中文下弄成功的吗?…

查看全部问答>

【USB】插入USB后,怎么阻止PC识别设备,仅仅是充电?

usb 兼充电功能,但与PC连线的时候,PC会枚举识别设备。 如果我仅仅要的是充电功能,此时不需要PC设备设备,怎么去做? ----------- 谢谢!…

查看全部问答>

急!!公司要给买wince的仿真器!不知道买哪种

公司要给买wince下的仿真器 现在知道的只有sophia systems这个 不知道大家都用用哪种在线仿真的设备,用于调试驱动和内核的 对了,需要支持PXA270系列arm芯片。最好三星的也能支持就更好了!! 谢谢各位!…

查看全部问答>

flashplayer中对MP3音频解码是用LIBMAD吗?

flashplayer中对MP3音频解码是用LIBMAD吗?…

查看全部问答>

我的nandFalsh操作还是有问题,但用IO模拟总线的是可以读出ID

我的nandFalsh操作还是有问题,但用IO模拟总线的是可以读出ID的请问哪位老兄能帮我一下,我全总是按ST的的例子来的。。不知道是哪里出现了问题,,,,我用的FLASH也是跟ST的型号一样。。…

查看全部问答>

STM32的软件复位函数在哪个库文件里?

                                 所谓的SYSRESETREQ位的控制,在手册里没看到关于这个位所在寄存器的说明…

查看全部问答>