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

如题所述

第1个回答  2011-01-05
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个回答  2011-01-05
编个子程序(函数)延时1秒,然后调用它120次。1秒的延时,看你使用的晶振,计算每条指令的时间,反复执行空操作。本回答被提问者和网友采纳
第3个回答  推荐于2017-10-19
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个回答  2011-01-05
多搞几重循环,重复执行NOP,根据频率算了下得执行多少次