单片机汇编程序延时0.3秒和0.5秒怎么写

单片机汇编程序延时0.3秒和0.5秒怎么写,第1张

延时0.3秒程序(12M):

DELAY3:

  MOV R2,#200

DL1:

    MOV R3,#250

    DJNZ R3,$

    MOV R3,#250

    DJNZ R3,$

    MOV R3,#250

    DJNZ R3,$

    DJNZ R2,DL1

    RET    

延时0.5秒程序:

DELAY5:

    MOV R2,#5

DLY1:

    MOV R3,#200

DLY2:

    MOV R4,#250

    DJNZ R4,$

    DJNZ R3,DLY2

    DJNZ R2,DLY1

    RET

几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响。

500ms延时子程序程序:(晶振12MHz,一个机器周期1us。)

void delay500ms(void)

{

  unsigned char i,j,k

  for(i=15i>0i--)

    for(j=202j>0j--)

       for(k=81k>0k--)

}

扩展资料

实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。

在电子技术中,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。脉冲信号之间的时间间隔称为周期;而将在单位时间(如1秒)内所产生的脉冲个数称为频率。

频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位是Hz(赫)。电脑中的系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器。

51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12*(1/ 晶振频率)= x μs。常用单片机的晶振为11.0592MHz,12MHz,24MHz。

其中11.0592MHz的晶振更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。

#include<dos.h>

void fun()

{

delay(10000)

}

调用系统的延迟函数delay,该函数的延时单位是毫秒,所以括号内写10000毫秒,即延迟10秒


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

原文地址: http://outofmemory.cn/yw/7974217.html

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

发表评论

登录后才能评论

评论列表(0条)

保存