单片机如何编写延时2min的延时子程序??帮帮忙吧!我是初学者,急需此答案。谢谢了

2025-02-25 01:20:03
推荐回答(4个)
回答1:

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的时间可以用定时器,这样既准确又不会影响主程序的运行。祝成功~

回答2:

编个子程序(函数)延时1秒,然后调用它120次。1秒的延时,看你使用的晶振,计算每条指令的时间,反复执行空操作。

回答3:

DELAY2MIN:
MOV R2,#120

DELAYS:
MOV R3,#10

DELAYMS:
MOV R4,#200

DLY:
MOV R5,#248

DJNZ R5,$

DJNZ R4,DLY

DJNZ R3,DELAYMS

DJNZ R2,DELAYS

RET

回答4:

多搞几重循环,重复执行NOP,根据频率算了下得执行多少次