2min为什么这几天这么多都在问这么久的延时,不知道你为什么要这么长延时,如果只是单纯的2min延时别的什么都不做的话那一般的延时函数是这样的(单片机晶振12M情况下,12T周期):
void Delay_100MS(unsigned int x)
{
unsigned int a,b;
for(a = x; a > 0; a--)
for(b = 11000; b > 0;b--);
}
你只需要用Delay_MS(1200);就可以,但是这么久的延时是很不科学的,这个思路也很不可取。要2min的时间可以用定时器,这样既准确又不会影响主程序的运行。祝成功~
DELAY: MOV R6,Y (注:Y=#A0H以及下面的X=#3DH可根据已知求解。)
DELAY1: MOV R7,X
DJNZ R7,$
DJNZ R6,DELAY1
RET
延时时间t=(2X+3)YTM (机器周期TM=12/振荡频率)
定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x》0;x--)
for(y=110;y》0;y--);
}
使用:
void Delay10us(uchar Ms)
{
uchar data i;
for(;Ms》0;Ms--)
for(i=26;i》0;i--);
}
i=[(延时值-175)12/Ms-15]/4
扩展资料1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有的延时子程序中变量通过有参函数传递。
2、在延时子程序设计时,采用do…while,结构做循环体要比for结构做循环体好。
3、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。
以上就是关于单片机如何编写延时2min的延时子程序帮帮忙吧!我是初学者,急需此答案。谢谢了全部的内容,包括:单片机如何编写延时2min的延时子程序帮帮忙吧!我是初学者,急需此答案。谢谢了、单片机主频为12MHz,用循环指令编写延时为20ms的延时子程序、51单片机C语言中delay函数是怎么定义和使用的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)