51单片机学习笔记(10)

您所在的位置:网站首页 51单片机延时程序可以用中断写吗 51单片机学习笔记(10)

51单片机学习笔记(10)

2024-07-03 03:45| 来源: 网络整理| 查看: 265

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。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3