首页 > 编程知识 正文

单片机20秒延时程序汇编语言(单片机c语言延时程序)

时间:2023-05-03 07:12:27 阅读:83644 作者:1315

编写单片机程序时,经常使用延迟函数,除计时器外,还经常使用for循环实现延迟。 如下所示。

void delay () )

{

无符号inti;

for(I=0; i200; I;

}

对于延迟时间要求不严格的地方可以概算一下,但也有要求严格的情况。 那该怎么办呢? 实际上,可以通过keil软件模拟的方式计算for循环的延迟时间。 今天说明两种方法。

由于延迟时间与石英振动值密切相关,因此在计算之前预先确定石英振动值,用keil确定石英振动值的方法如下图所示。

在本例中,设石英振动值为12M。 步骤如下。

编译,没有错误。 介绍延迟的计算方法。

方法1

进入调试状态,设定两个断点,使程序运行到第一个断点,如下图所示,并记录此时的sec值。

在这种情况下,T1=0.000389,单位为秒。 再次运行该程序时,程序将在第二个断点处停止,并记录此时的sec值,如下图所示。

此时,T2=0.025691,单位为秒。 两个时间之差是delay ()函数的延迟时间,计算公式如下:

t=T2-T1=(0.025691-0.000389 ) s=0.025302s=25.302ms毫秒。 delay ) )函数的延迟时间约为25毫秒。

2 .方法2

在调试状态下,打开性能分析程序,如下图所示。

同样地设定断点,如下所示进行设定。 在性能分析程序观察窗口中,单击Setup,在对话框中输入延迟函数的函数名称,然后单击Define。 下图:

运行程序并运行到第一个断点,如下图所示。

再次运行程序,直到第二个断点,如下图所示。

此时,delay ) )延迟函数已经执行。 要查看延迟时间,请执行以下操作: 在性能分析程序窗口中延迟) )函数,然后在其上显示时间信息。 请参照下图。

可以看出,执行时间为0.025298s=25.298ms,即delay ()延迟时间为25ms。

我不知道你对今天介绍的两种方法有什么看法,欢迎评论。

本阅读号致力于单片机、ARM等嵌入式软硬件设计经验的共享,秉承“人人都有电子设计经验的曾经的摩托车”的理念,我们不孤单,共同努力。

公众号: micropoint 8网站: www.picmcu.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。