C51的中断一直运行,主程序也在运行,怎么回事???

作者&投稿:辕沫 (若有异议请与网页底部的电邮联系)
为什么进入了中断程序之后,主程序还在运行?~

主程序在运行中收到中断信号,转向处理中断
void exter0() interrupt 0//这个就是中断程序
{
D1=0;
delay_ms(0);
}
中断执行完后,就回主程序了
只是运行速度慢了?
严格来就不叫运行慢了,只是主程序在运行中产生中断(去执行中断程序了)!

你从哪看出来程序还在运行的,你的中断只有一句,马上就执行完成了,就跳出中断函数继续执行之前的程序了,你要是想观察中断后主程序是否运行,应该用死循环或者延时吧程序指针留在中断函数里,比如你可以在中断里延时个2S,等跳出中断后再观察主程序跑到哪儿了就一目了然了

C51的中断运行时主程序不会运行 只有在中断运行完后才会继续执行主函数 既然主函数运行说明中断正常跳出了再次进入中断应该是有外部中断产生了 先检查下外部中断口所接的电路吧
另外贴的程序完全没有是乱的 这给别人读程序很大的困扰啊!!!


51单片机写个程序,好像在中断里面出不来了,主程序只运行了一部分,之后...
!!只能做最基本的操作,比如置标志位,让一个数加一等,与延时有关的操作千万不要做!你10ms进一次中断,在里面又扫描按键,又显示液晶,这里面花的时间远远地超过10ms,它肯定死在中断里出不来啊,因为你不关闭中断的话它一直10ms进去,最好在中断里设置几个标志位,进中断就让标志位置1,然后...

51单片机定时器中断
定时器一旦启动,除非你写命令让它停下,否则是一直在运行的。定时器的计数器一旦溢出,就会发生中断,程序就开始执行中断函数中的程序。而计数器依旧开始累加,直到下一次溢出,不断往复,永无休止。注意的是,当你的中断服务程序耗费时间过长的时候,意思是,CPU执行你的中断服务程序的时间大于中断计时时...

请问51单片机能不能暂停中断程序并跳转至其它程序中、执行完后跳回中断...
使用嵌入式操作系统。

51单片机 比如定时器,进入中断程序后,是否继续工作,每个周期加1。_百 ...
定时器是一直工作,除非你设置定时器停止,通过gate位。但是如果是定时器中断被触发了,一定要记得在中断程序中,重新装入初值。不然中断时间就不正常了。

51单片机写中断时,总是先运行中断,不执行main,是不是有语法错误。。_百...
不管程序怎么写,肯定是先进入main函数,才会运行其他函数,main是入口函数

51单片机串口接收中断连续接收字符串,中断一直占有CPU时间直到字符串...
1楼的说法明显不对,串口接收时有标志位RI,当串口接收到一个字符(8位)时,RI会自动被置1,此时CPU会从主程序转去执行串行中断,普通单串口51单片机一般为 interrupt 4 子程序,当执行完时会自动回到主程序继续执行,因此自 interrupt 4子程序结尾要把RI清零,以接受下一个中断,否则无法再接收下一...

51单片机,外部中断一直循环跳不出来
你可能将外部中断0初始化成低电平触发模式了。改为沿触发就好。IT0=1;

关于在51定时器中断语句中关闭中断的问题
接着程序跳转去执行中断服务程序void timer0_IT(void) interrupt1,同时中断标志位TF0自动置0,cpu不会再产生中断,接着执行void timer0_IT(void) interrupt1函数里面的语句,直到定时器再次溢出才会产生中断。在执行中断服务程序时要关闭定时器,防止溢出,执行完后再打开定时器,让其溢出产生中断。

51单片机定时问题,为什么程序那儿要加一个while(1);
main函数中while(1)之前的代码是赋初值操作,是为中断调用使用的。之所以有while(1)是为了使得程序一直在运行,所以才有中断操作的不断执行,否则程序只运行一次就终止啦。

51单片机中断怎么跳出去继续执行主程序的问题
中断函数执行完成退出后,便自动返回主程序继续下一个指令的执行的;在中断函数里,不要做太多的事情,更不要有延时函数,除非其延时值比中断间隙要小,否则中断会乱套的;

潜山县15993782283: 请教:进入中断后主程序仍然运行 -
漳底曼奇: 只是比没中断前数字的变化时间长了很多,是因为要执行中断占用了时间 单片机执行中断程序后,会回到主程序继续执行,如果还有中断触发则在进入中断程序,如此循环.主程序当然是在运行了. 不明白可以去看看书关于中断的那章,说的明白的 其实我不是很明白你的意思 ^-^

潜山县15993782283: 51系列单片机在处理中断时影响主程序吗??处理中断程序时主程序还在继续执行吗??还是已经停止了 -
漳底曼奇: 你还没有理解中断的意义!中断产生了,单片机就停止执行主函数,进入中断执行中断(中断得打开),当执行完中断后,单片机又回到主函数执行.就像我现在在看别人提出的问题,当我看到你的问题时(中断产生),我就进来回答(执行中断),回答完后我得继续看别人提出的问题(返回主函数),我回去看别人提出的问题时既不会从头看起,也不会往后看很多,而是从你问题后的问题继续看!

潜山县15993782283: 51单片机写个程序,好像在中断里面出不来了,主程序只运行了一部分,之后一直在中断里面运行 -
漳底曼奇: 开中断以后,在中断服务子程序中设置一个中断次数计数器,统计达到2次后 中断次数计数器清0,然后再把莫寄存器加一.

潜山县15993782283: 低电平触发中断程序,当中断程序执行时,主程序还会不会执行,为什么我的实验板上的主程序显示的还在执行 -
漳底曼奇: 当中断程序执行时,主程序还会不会执行.还在执行:1中断程序执行完,返回主了2中断程序没写好,有错,可能跳转到主程序执行了.

潜山县15993782283: 各位大侠帮我看一下我写的51单片机C程序中断有没有问题,执行中断后不能继续执行主程序,注:P3.2口一直接 -
漳底曼奇: IT0=0;//低电平触发,只要单片机监测到是低电平,就触发中断 你P3.2一直接地,一直是低电平,那中断就不断的执行,当然回不到主程序中了.改成IT0=1;//下降沿触发,单片机监测到高电平到电平跳变,就触发中断 就算P3.2一直接地,也只触发一次,中断执行完了,就回到主程序中了.

潜山县15993782283: 要使51单片机中的中断系统正常运行,在主程序要做的五项设置是什么? -
漳底曼奇: 外部中断吗?1 设置中断触发方式,2 开外部中断允许;3 开总中断;外部中断的话,在主程序就上面三步就可以了啊,定时器中断的话,'1 配置TMOD寄存器--设置定时器工作方式;2 配置定时器初值;3 打开定时器中断允许;4 启动定时器;5 打开总中断;这个是5步

潜山县15993782283: 单片机执行程序在主函数里运行好还在中断函数运行稳定呢 -
漳底曼奇: 你从哪看出来程序还在运行的,你的中断只有一句,马上就执行完成了,就跳出中断函数继续执行之前的程序了,你要是想观察中断后主程序是否运行,应该用死循环或者延时吧程序指针留在中断函数里,比如你可以在中断里延时个2S,等跳出中断后再观察主程序跑到哪儿了就一目了然了

潜山县15993782283: c51单片机 中断 -
漳底曼奇: 这个程序是有问题的,第一次中断时,x先赋值0再加一,x为1,第二次中断时,又给x赋值0,这样每次中断都为1,不可能为2,也就不可能执行到B,建议用全局变量可以解决这个问题 还有一个问题,一直在执行中断程序,下一次中断来临时,为同级中断,同级中断是否能触发,这个问题要考虑 解决办法:A和B放在主程序中,x为全局变量

潜山县15993782283: 51单片机串口中断函数响应并返回后主函数运行到末尾后卡着不动,主函数无法循环了 -
漳底曼奇: 有几个问题和楼主探讨一下: 1、main主程序中少一条while(1)或for(;;)的循环,运行后主程序应该是“跑飞”了; 2、中断返回貌似不需要加return; 3、串口初始化不知道时候正常,是否和上位机设置了1样的波特率;

潜山县15993782283: C51中断函数运行过程 -
漳底曼奇: 简单点可以这样理解不过循环的过程是定时器触发的,开中断以后,定时器进行减计数,计数到0了自动的打断主程序的运行 跳转到中断程序的位置,执行完成后,再调回主程序继续执行 中断发生时主程序到底执行到哪里了不好预测,一般会对工作寄存器之类的进行保护

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网