c51 单片机编程中,主函数main里用while(1)进行死循环,中main函数外面实行中断。中断之后怎么把中断得到

如题所述

你只要开了总中断和具体的中断,当满足中断发生条件时,单片机就会发生中断并能检测到,接着从main函数跳到中断服务程序中去执行,执行完后返回到被 中断的位置追问

嗯。我的问题是在执行中断服务程序后,能不能在中断中返回一个值到被中断的位置,让被中断程序在继续执行时,执行中断函数返回来的值呢?

追答

通常在程序中设一个全局变量,在中断服务程序中对这个变量进行修改,用来标记发生了某个事件。例如:
sbit led=P1^0;
unsigned char flag=0;
void main()
{
……
while(1)
{
if(flag) led=1;
else led=0;
}}
void isr(void) interrupt
{
flag=1;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-03
中断执行完后就会自动返回main()!
第2个回答  2011-02-24
中断之后 单片机相应中断寄存器会置1 然后程序会进入对应的中断地址执行中断程序 执行完后会返回while循环

在c51单片机中 最口一句while(1)在这里是什么意思?谢谢!
这句话的字面意思是,让程序死循环,即永远停在while(1)这个位置上.为什么要这么做呢?因为main函数是你的程序的全部,当main函数执行完退出后,其后果不可预知.注意是不可预知!因为你没有再写代码去处理main函数退出以后该干什么.这时,单片机可能会跑飞,进入一种不可预知的状态,此时,你在main里面所作的...

单片机C51编程中,main的关键词的意思是什么?
1. main() 函数在 C 语言程序中是程序执行的入口点,相当于程序的起点。2. 在 C 语言的基础框架中,main() 函数是必不可少的,它是程序运行的起点,就像一场表演的序幕。3. main() 函数的返回类型为 int,表示它可以向操作系统返回一个整数值作为程序运行结果。在此实例中,函数参数列表为空。

...c51单片机中,写主函数时写成void main()和写成main()有什么区别...
没有区别,main()就是默认空返回值,跟Void main()是一样的

c51单片机如何使用中断
0关1开,按键接P3.3用这个 \/\/默认情况下,直接使EX0=1或EX1=1来打开中断,INT0、INT1中断是电平触发的 while(1){ \/\/主程序写这里 }}\/** 外部中断0服务程序,按下接P3.2的开关k=0下面程序被执行 **\/int0()interrupt 0{ \/\/程序代码写这里面 } \/** 外部中断1服务程序,按下...

...上面开发单片机程序时发现1.程序执行完main函数后会自动跳转到main函...
那你选stc的51单片机,其内部都带eeprom,不需要扩展外部flash,至少也有1k两个扇区的空间供你使用,可保你数据部丢失。

...上面开发单片机程序时发现1.程序执行完main函数后会自动跳转到main函...
1. 正式产品的C51程序应该是一个死循环。如果不是死循环,执行完main后,执行RET,将会将堆栈里的数据当做地址压入PC,程序跑错。最后会回到地址0000H,重新开始,进入main。你仿真在00H做中断,就会发现他回去了。2. 你说的不清楚,跳转还是会跳转的。程序运行结果正确就说明没有错。除非你程序错误...

c51单片机 用了中断 再用定时器什么意思??有了中断干嘛还要用定时器...
首先设置定时器工作方式,给计数器赋初值,然后开总中断,开定时\/计数器中断,启动定时器,然后你该干嘛干嘛,没嘛干就死循环等待中断。在中断里你想干嘛干嘛,但是不能有返回值。下面一C语言为例说明:#include<reg51.h>void main(){ TMOD=0x06;\/\/T0为计数器,工作方式2; TH0=0x9c; \/\/计数100次中断 TL0=0x9c...

C51 while()循环问题 下面这个while()循环是怎么跳出来的?
如果SendIic_Mlx()返回1,表示对方没有应答,也就是没有成功。所以就循环,直到所有b1,b2,b3,b4都 返回0,才说明这4个数据都发送成功了。数据完全正确,于是循环结束。当然这样的程序是“不健状”的,因为一旦IIC总线开路或总线器件故障,这就 是一个死循环,造成单片机无响应。应该采用定时,时间...

单片机编程和平时c语言编程的区别
单片机的主程序要在一个循环体内才可以保证单片机稳定的运行,所以禁止出现return这个东东的在主程序中,你可能看过很多单片机程序,如果之前一直前行,到最后至少都会有一个while(1);来结束,就是将程序稳定在这个地方,以保证之前程序的“成果”。如果没有这个,程序就从此不受控而乱了。申明变量时并不是...

C语言中,用于设置中断、中断信号的函数有哪些?怎么设置一个发送中断信...
外部中断1、定时器1及串行中断。C51单片机的中断使用时,主要是通过中断服务号来决定的。如你定义一个中断服务函数:void KEY(void) intterrupt 0 { } 当外部中断0申请中断时 会自动根据interrupt后面的0,找到上面定义的这个中断服务函数。对于其他四个中断源,其对应的中断号分别为1、2 、3、4 ...

相似回答