汇编1S的延时程序怎么弄

汇编1S的延时程序怎么弄,第1张

延时1s计算方法是将所有指令执行时间相加得出的。比如:

dly1s:

mov

r2,#10

;1

dly1:

mov

r3,#200

;110

dly2:

mov

r4,#248

;120010

djnz

r4,$

;224820010

djnz

r3,dly2

;220010

djnz

r2,dly1

;210

ret

;2

total=1+10+2000+992000+4000+20+2=998033

如果使用12m晶振,那么延时时间为0998秒。

DEL1S:MOV R7,#10\x0d\D1: MOV R6,#200\x0d\D2: MOV R5,#250\x0d\ DJNZ R5,$\x0d\ DJNZ R6,D2\x0d\ DJNZ R7,D1\x0d\ RET\x0d\\x0d\说明:1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等\x0d\ 2、这个程序是12M时钟,如果时钟不同,要修改数值。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5

sub delay(T as single)

dim T1 as single

t1=timer

do

doevents

loop while timer-t1<t

end sub

调用时,使用 delay 3 即可延时3秒

除了用timer函数外,还可以使用gettickcount函数,不过使用它之前要声明它,过程与上面的过程差不多,只是参数便是毫秒作为单位了

SLEEP函数延时是毫秒级的,精确度比较高,但它在延时时会占用很多系统时间,使 *** 作系统暂时无法响应用户 *** 作,所以在长延时的时候不适合使用它

根据外部晶振的不同,延时1毫秒的循环次数也不一样,一般12M晶振的话用 for(j=time;j>0;j--);延时时,1毫秒time大概为125左右,这里用110,大概晶振为110592M,所以这段程序,内部循环完成1毫秒延时,外部循环完成500毫秒延时。

1  sleep()是以毫秒计算的,延时5秒是sleep(51000);,延时5分是sleep(5100060);

2包含的头文件看你用的什么编辑软件。

3我用的VC++是用包含在#include<windowsh>头文件中。

#include<stdioh>#include<windowsh>//Sleep()的头文件  main()  {   int i;

int n=10;for(i=1;i<=n;i++)  {printf("%d",i);Sleep(5100060);}  //    

这里修改延时时间,

有些人说是用#include<dosh>做头文件你自己试下吧。

还用Sleep的S是大写的,不是小写的。

这个程序应该是板子上延时的程序。

a就是需要延迟的毫秒数(也可能是其他单位)。

就是说,执行 for(i=0;i<600;i++);的时间应该是一个单位长度(可能为1ms);

这样,你在调用的时候,赋值给a多少值,实际就是延时多少毫秒。

例如,延时10ms,就用

delay(10);

延时1ms,就用

delay(1);

以上就是关于汇编1S的延时程序怎么弄全部的内容,包括:汇编1S的延时程序怎么弄、用汇编怎么写51单片机的延时程序、关于EXCEL VBA 延时程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9286345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存