单片机C语言延时程序怎么停止?

在执行延时过程中我想停止延时,怎么编程?比如延时10S,延时程序为
delay(uint)
{uint x,y;
for(x=1000;x>0;x--)
for(y=1200;y>0;y--);};
在执行几秒之后我突然想让单片机停止延时,而是执行下一句程序,如何编程
如果跳出循环的程序,条件具体怎么加?

在循环里判断是否满足跳出的条件,满足则跳出循环,不满足就继续延时直到延时结束。
具体的条件要有程序的要求来,比如说某个IO口的电平的状态。
sbit state=P1^7;
delay(uint)
{
uint x,y;
for(x=1000;x>0;x--)
for(y=1200;y>0;y--)
{
if(state==1) return ;//当p1.7口为高时跳出循环
}
}
//由于加入了一条语句,延时要重新计算
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-21
你如果一定要用延时子程序的话只有在延时子程序循环中插入某个条件跳转出去
第2个回答  2009-10-21
楼上的说的全对,你要在执行几秒之后突然想让单片机停止延时,那你则要在延时子程序中需要的地方加入条件跳转。我感觉你这个程序要求没有什么实际意义吗,因为延时一般来说是根据需要固定的,如果你要让延时更灵活的话,你则用参数传递啊。

在执行几秒之后我突然想让单片机停止延时,而是执行下一句程序
你突然想让单片机停止延时是没有用的,单片机又不知道你要什么时候停止延时啊,总感觉你的这个问题问得有点怪。
第3个回答  2009-10-21
延时,你程序子程序中不是带了一个值进去了吗?自减这个值然后判断是否到0了!到了就退出!!!
delay(uint i)
{
uint x,y,j;
while(i)
{
for(x=1000;x>0;x--)
{
for(y=1200;y>0;y--);
}
i--;
}
};

单片机C语言延时程序怎么停止?
在循环里判断是否满足跳出的条件,满足则跳出循环,不满足就继续延时直到延时结束。具体的条件要有程序的要求来,比如说某个IO口的电平的状态。sbit state=P1^7;delay(uint){ uint x,y;for(x=1000;x>0;x--)for(y=1200;y>0;y--){ if(state==1)return ;\/\/当p1.7口为高时跳出循环 } ...

单片机c语言编了个流水灯,用按键怎么实现它暂停。
实现流水灯的方式有很多种(中断,定时器,延时等等),看用哪种方式,最简单的是延时做流水灯,那么在死循环里面增加按键检测,判断出有按键按下来时,再进入死循环,程序不往下走就可以暂停,再按跌出死循环。include \/\/51系列单片机定义文件 define uchar unsigned char \/\/定义无符号字符 define uint ...

单片机c语言程序高手进 这个程序应该怎样实现中断
首先来个键盘扫描程序。采集是A键按下还是B键按下。如果是A键按下的话,就给LED1口输出高电平然后延时1S,延时程序可以用delay来粗略延时,也可以用定时器精确延时;延时1S过后,让LED1口输出低电平,然后再延时1S。给这段程序用while或者for语句来循环5次,这样就能得到启动LED1(1S闪烁一次,持续10S...

怎么让正在运行的单片机程序暂停,其实就是要加个按键,当有键按下就暂 ...
开一个外部中断,接按键 按键触发后进入中断,循环判断按键,程序暂停,释放按键中断返回,程序继续运行 如果是按一下暂停,再按一下运行的话:开一个外部中断,接按键 按键触发后进入中断,循环判断按键,释放按键后,等待按键再次触发,程序暂停,再次触发并释放后中断返回,程序继续运行 ...

单片机 C语言的暂停指令
楼上的答案是C语言整个程序的大循环,是个死循环。在整个程序中只能出先一次,在大括号里面放整个程序的所有函数,让单片机不停的循环所有的函数。而你所说的暂停指令也是在一个地方等待,单是必须要有条件跳出循环。例如while(判断条件); 当条件为真的时候就在那里等待,当条件为假的时候执行下面...

...在2秒内结束并向下继续运行,用哪个函数,怎么用?或者怎么停止...
你可以这样,定义一个变量,比如说time=0,在循环里面每次循环time++,循环的判断条件就是while(time<200)就行了 这里有延时函数的介绍 \/* 函数类型:void (无返回值)函数接口:delay(int)例如在程序中取得n秒的延时,只要在代码中加入 delay(n) 即可。注:n 为 int 类型。\/ \/* 调用时请...

51单片机如何用一个按键控制一段程序的运行与停止
1、创建项目文件。2、按键:S1=P3^2,点亮: led=P1^5。3、创建C语言主函数。4、创建循环效果,检测效果。while(1) {}。5、选择输出的效果。6、当按下一个按键时,关闭灯,整个程序运行,再按一次,程序停止。

单片机程序结束后,又自动重新开始
如何能让单片机运行完程序之后停止呢?--- 在你认为应该停止的地方,加入一行“死循环”的指令,如:C语言:while(1);汇编语言:SJMP 即可。--- void main(){ P1=0xfe; delay1ms(500);P1=0xff; delay1ms(500);while(1); \/\/永远循环 } ...

51单片机定时器中断程序
再次重新启动。用C语言实现的,先要定义好定时器的初值,不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期,机器周期=12\/n(n指晶振频率),假设你要定时的时间为M,那么定时的初值为:M\/机器周期=初值;TH0=(65536-初值)%256;TL0=(65536-初值)\/256;将(...

单片机c语言延时程序
一般单片机在c语言中很难得到精确的延时,所以一般对时间要求高的都用计时器中断来做了。如果时间要求不严格可以用for循环来做,你可以实际测试一下,把时间延时到大概一秒左右,然后烧进单片机里运行,比如一个灯亮灯灭的程序,看着灯计数,同时用秒表计时,几个几十次后取平均值就能知道大概时间了。

相似回答