单片机中断打开后,直接进入中断

单片机中断打开后,直接进入中断,第1张

在EX0置1前在外部的P3^2口有脉冲,

那么在EX0置1后,打开EA,会直接进入中断程序

这是为什么呢,

----

这是正常现象。

楼主认为,应该在什么时候进入中断?

在打开EA的前一条指令,应该是:

IE0 = 0; //消除以前的中断申请

过程是这样的: 程序一直在while(1)里面,直到定时器计满产生中断; 产生中断后,执行中断服务程序 (中断中大部分是有重新对定时器赋值的命令的 ) 中断程序完成后 回到while(1),等待下一次中断,定时器继续计数; 定时器产生中断

只要开启中断,并启动定时器,时间到就自动进入中断程序(不管主程序在干什么),如果定时器中断间隔50ms可定义一个全局变量a,每次中断这个变量加1,100次就是5S,主程序中只管等待,判断a的值是否是100,是100说明5秒到了,可以进行相应的动作,当然这些东西也可以在中断程序中进行(主程序仍然可以进行其他工作),如5秒LED变换一次,中断程序如下:

void timer0() interrupt 1

{

TH0=⋯

TL0=⋯

a++;

if(a==100)

{

a=0;

LED=~LED;

}

}

以上就是关于单片机中断打开后,直接进入中断全部的内容,包括:单片机中断打开后,直接进入中断、while语句内前几行程序还未运行完毕就直接进入中断怎么解决、多次中断是如何实现的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10177117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存