C语言编程常用的有4种延时方法:
在某些时候,我们想要知道程序里面的延时函数到底延时多长时间,这时候就可以用Keil软件仿真来实现。
①在keil中编写一个简单的延时应用程序:
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 time)
{
while(time--);
}
void main()
{
delay(1);
delay(1);
delay(1);
}
②点击程序编译按键,编译程序,保证程序能够正常运行,没有报错。
③进入【Options for Target…】,设置【Target】选项中的【Xtal】,根据实际使用的开发板的晶振频率修改该数值,若单片机晶振为11.0592M,则将数字修改为11.0592。我使用的是12M,因此将数值设为12。
④选中【Debug】选项中的【Use Simulator】,即用软件仿真,点击【OK】,完成软件仿真设置。
⑤选择菜单项【 Debug–>Start/Stop Debug Session】,或者点击下图中标注的按钮,就会进入软件仿真窗口。
仿真界面中黄色箭头表示程序当前的位置
⑥我们想要观察C语言代码延时函数的运行时间,在最左侧的那个Registers 的框内有一个【sec】选项,这个就是程序运行的时间。我们单击【RST】复位按键,程序复位,黄色箭头指向程序第一行,sec参数值变为0。
⑦为了观察程序运行的时间,我们对程序中的延时函数设置断点(当程序运行到断点的时候就会停下来),通过观察sec的值来计算得到延时函数的运行时间。(设置断点的方式:移动鼠标在程序左边灰色部分单击)
⑧点击全速运行按键,程序执行到13行,sec参数值变为0.00038900,再点击全速运行按键,程序运行到14行,sec参数值变为0.00041400,再点击全速运行按键,程序运行到15行,sec参数值变为0.000439。(sec单位为秒s)。
分析:程序从13行运行到14行花费的时间是25us,从14行运行到15行花费的时间也是25us,因此,通过软件仿真我们可以知道,延时函数delay(1)运行的时间大致为25us。
|