1,51单片机中断嵌套

你的外部中断有没有打开?会不会在定时器中断运行时关闭了中断。还有有没有选对外部中断的触发模式,有低电平触发和下降沿触发两种,要选对。最好能把程序发上来。

51单片机中断嵌套

2,关于51单片机的中断嵌套汇编语言

51单片机的中断是可以嵌套的。中断,一般是用来处理“突发”事件,嵌套是自然形成的。1.除非楼主是想“有意”的构成嵌套,否则不用特意的设置等待。2.在何处中断的,就返回何处。

关于51单片机的中断嵌套汇编语言

3,51单片机硬件支持的最大中断嵌套深度是几级

C8051没有用过,常用的51一般都是2级中断
只要你的堆栈足够大, 多少级都没问题
标准51只有IP一个寄存器来管理中断的优先级,所以硬件只支持一层中断嵌套
程序调用的嵌套多少层都可以,因为程序是顺序执行的,只要你有调用,就会进去,执行完就出来,说简单点就是按顺序执行的一条条语句,这也与单片机无关,是c语言的性质。一般只有中断才有嵌套的限制。

51单片机硬件支持的最大中断嵌套深度是几级

4,C语言51单片机中断嵌套问题

对于这个,要这么看: 假设中断A是优先级高的中断,中断B是优先级低的中断 如果在正常执行的过程中,发生中断A,那么,中断A执行完成后,会返回正常程序; 如果在正常执行过程中,发生中断B,又在中断B处理过程中发生中断A,那么,中断A执行完成后,一定要返回的是中断B,这是由硬件决定的,不是软件决定的,所以,软件没有任何指令可以让中断A执行完成后直接跳过还没有执行完的中断B而直接回到主程序,因为这是硬件决定的,软件做不到,即便你在高级中断A中关闭了中断B,但是因为你原来的中断B还没有执行完,所以,仍然要把没执行完的部分执行下去,才能返回到正常程序. 对于ARM系列的可以,对于51来说,是不行的,因为51软件指令不允许修改PC寄存器的值

5,80c51中断嵌套多少级

80c51中断优先级分2级。高优先级 不能被 同级和低优先级的中断 中断;低优先级 不能被 同级的中断 中断,但 可以被 高优先级的中断 中断 。
2级
cpu对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器ie控制的.ex0(ie.0),外部中断0允许位;et0(ie.1),定时/计数器t0中断允许位; ex1(ie.2),外部中断0允许位;et1(ie.3),定时/计数器t1中断允许位;es(ie.4),串行口中断允许位;ea (ie.7), cpu中断允许(总允许)位。 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,具体的可以给你发一个ppt你看就知道了。
2级,可以用ip控制五个中断源的优先级
中断嵌套啥意思,中断函数里的代码随便写啊,不过最好不要写太多,否则会延时太久。

6,关于单片机嵌套中断的问题

程序在什么地方进入中断的,就会回到什么地方。不存在嵌套中断直接从第2层中断回主函数的。例如外部中断1采用电平触发,定时器0中断优先级比外中断1高。那么在执行外中断1的时候产生定时器0中断,程序就会跳转去执行定时器0中断。执行完成后,程序仍然会回到外部中断1处执行刚才未执行完成的中断函数,即使现在外中断1的产生条件已经不存在,甚至已经在定时器0中断程序中禁止外中断1,程序还是会回到刚才的断点的。不会直接回到主函数。你问题在上面补充,我也只能这样完善了,看这一段:“程序仍然会回到外部中断1处执行刚才未执行完成的中断函数,即使现在外中断1的产生条件已经不存在,甚至已经在定时器0中断程序中禁止外中断1,程序还是会回到刚才的断点的”
中断的进入和退出都是CPU在执行程序时产生的动作,如果低优先级中断被高优先级中断打断,那么在高优先级中断服务程序执行完以前,优先级低的中断服务程序不会被执行。高优先级中断服务程序执行完后,会退到低优先级中断服务程序继续执行,直到低优先级中断服务程序执行完,然后退到普通程序继续执行。补充回答:你对中断触发条件和中断执行过程没有区分清楚。你所说的,是形成中断的触发条件消失了,而不是中断结束了。你的中断如果获得单片机响应后,单片机就会去执行中断服务程序,这个时候中断触发条件是否消失对单片机就没有影响了,单片机只在执行完中断服务程序后结束中断。
“如果在执行嵌套中断的时候前一层中断退出了”你觉得这种情况会如何出现?实际上是当前中断执行完成后,返回前一级中断服务函数,继续执行完成后退出。
普通51单片机只有高低2个优先级,只能一级中断嵌套stc的某些单片机另有一个高位中断优先级寄存器,优先级就有4个,因此可以实现三级中断嵌套

7,请问增强型C51体系的芯片是否支持中断嵌套如果支持最多几层嵌

菲利普的89LPC931手册共55页第20页,8.10节关于中断第一段第一行The P89LPC930/931 uses a four priority level interrupt structure.即它支持中断嵌套,作多4层.第3段第2行末尾开始.An interrupt service routine in progress can be interrupted by a higher priority interrupt,but not by another interrupt of the same or lower priority.一个中断的运行可以被更高优先级的中断源所中断,但不能被更低优先级或相同优先级的中断源所中断.最高优先级的中断不能其他的中断源中断.它是可以这么做的,但不是一定要这么做,还取决于你软件的设计,也可以在进入某个中断后,禁止其他中断,比如关掉总中断开关EA,那更高优先级的中断来了,也不会响应了.我没用过这个,但用过89s51,性质都是一样的.
org 0000h ajmp main org 0013h ajmp in1 org 0030h main:setb it1 ; setb ex1 setb ea mov tmod,#01h mov th0,#3ch mov tl0,#0b0h mov r7,#20 ;50ms,执行20次=1s sjmp $ in1:clr p0.0 one:setb tr0 jnb tf0,$ clr tf0 mov th0,#3ch mov tl0,#0b0h djnz r7,one mov r7,#20 setb p0.0 clr p0.1 two:以下按照上面写,改一下灯就可以了 thr: ... seven:..... reti end 如果用int0就更方便,tmod中有gate位,你可以利用它。 记得加我分啊 。

文章TAG:51中断嵌套多少层中断  中断嵌套  多少  
下一篇