51单片机学习笔记(10)——Keil延时软件仿真

C语言编程常用的有4种延时方法:
51单片机学习笔记(10)——Keil延时软件仿真_第1张图片
在某些时候,我们想要知道程序里面的延时函数到底延时多长时间,这时候就可以用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);
}

51单片机学习笔记(10)——Keil延时软件仿真_第2张图片
②点击程序编译按键,编译程序,保证程序能够正常运行,没有报错。
51单片机学习笔记(10)——Keil延时软件仿真_第3张图片
③进入【Options for Target…】,设置【Target】选项中的【Xtal】,根据实际使用的开发板的晶振频率修改该数值,若单片机晶振为11.0592M,则将数字修改为11.0592。我使用的是12M,因此将数值设为12。
51单片机学习笔记(10)——Keil延时软件仿真_第4张图片
④选中【Debug】选项中的【Use Simulator】,即用软件仿真,点击【OK】,完成软件仿真设置。
51单片机学习笔记(10)——Keil延时软件仿真_第5张图片
⑤选择菜单项【 Debug–>Start/Stop Debug Session】,或者点击下图中标注的按钮,就会进入软件仿真窗口。
51单片机学习笔记(10)——Keil延时软件仿真_第6张图片
51单片机学习笔记(10)——Keil延时软件仿真_第7张图片
仿真界面中黄色箭头表示程序当前的位置
⑥我们想要观察C语言代码延时函数的运行时间,在最左侧的那个Registers 的框内有一个【sec】选项,这个就是程序运行的时间。我们单击【RST】复位按键,程序复位,黄色箭头指向程序第一行,sec参数值变为0。
51单片机学习笔记(10)——Keil延时软件仿真_第8张图片
⑦为了观察程序运行的时间,我们对程序中的延时函数设置断点(当程序运行到断点的时候就会停下来),通过观察sec的值来计算得到延时函数的运行时间。(设置断点的方式:移动鼠标在程序左边灰色部分单击)
51单片机学习笔记(10)——Keil延时软件仿真_第9张图片
⑧点击全速运行按键,程序执行到13行,sec参数值变为0.00038900,再点击全速运行按键,程序运行到14行,sec参数值变为0.00041400,再点击全速运行按键,程序运行到15行,sec参数值变为0.000439。(sec单位为秒s)。
51单片机学习笔记(10)——Keil延时软件仿真_第10张图片
51单片机学习笔记(10)——Keil延时软件仿真_第11张图片
51单片机学习笔记(10)——Keil延时软件仿真_第12张图片
分析:程序从13行运行到14行花费的时间是25us,从14行运行到15行花费的时间也是25us,因此,通过软件仿真我们可以知道,延时函数delay(1)运行的时间大致为25us。

你可能感兴趣的:(51单片机学习笔记)