基于keil的延时精确计算

上传人:飞*** 文档编号:53338115 上传时间:2018-08-29 格式:PDF 页数:8 大小:959.28KB
返回 下载 相关 举报
基于keil的延时精确计算_第1页
第1页 / 共8页
基于keil的延时精确计算_第2页
第2页 / 共8页
基于keil的延时精确计算_第3页
第3页 / 共8页
基于keil的延时精确计算_第4页
第4页 / 共8页
基于keil的延时精确计算_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于keil的延时精确计算》由会员分享,可在线阅读,更多相关《基于keil的延时精确计算(8页珍藏版)》请在金锄头文库上搜索。

1、安徽理工大学机械电子工程1 / 8 来自 jasmine。email: Keil工程的建立与基于Keil的程序延时精确计算给出下面一段程序:#include #define uint unsigned int sbit led=P10; main() uint i,j,x,y,k,n,m; while(1) led=0; for(i=1000;i0;i-) /延时 1 for(j=110;j0;j-); led=1; for(x=0;x0;n-) /延时 3 for(m=114;m0;m-); led=1; k=90; /延时 4 while(k0)k-; led=0; 如何在 Keil 中

2、建立工程?假设晶振频率为11.0592MHz,怎样利用Keil 计算上面几个延时的精确时间?从上面的程序可以看出,该程序主要是通过52 单片机的P10 口控制一个LED的亮灭。主函数里的循环通过几个延时函数来分隔LED的亮和灭,使人的视觉能够直观感觉到LED的亮灭情况。下面将介绍如何建立Keil 工程,并分析延时时间的精确计算方法,利用keil 可以比较方便、精确的计算程序延时时间。1 建立 keil 工程。 启动 keil,选择“ Project”“New uVision Project ”输入工程名称,确定,弹出下面对话框,选择Atmel:安徽理工大学机械电子工程2 / 8 来自 jasm

3、ine。email: 接着选择: AT89C52 选择好芯片之后会弹出下面的对话框,选择“否”安徽理工大学机械电子工程3 / 8 来自 jasmine。email: 点击“ File”“ New” ,新建一个Text,用以输入程序。程序输入以后保存,保存名称需要和工程名称一致,如果使用C语言则以 .c 作为保存格式, 使用汇编语言保存格式为.asm。保存之后如图:下一步就是把刚才保存的.c 程序导入到工程中。选中上图中左上角的 “Source Group 1” ,单击右键,选择“Add Files to Group Source Group 1 ” ,在弹出的对话框选择刚才保存的.c 文件

4、, Add,即完成导入。下面这一步设置对于使用keil 精确计算延时时间很关键。选中下图左上角的Target 1:安徽理工大学机械电子工程4 / 8 来自 jasmine。email: 单击右键, 选择“Options for Target Target 1 ” ,弹出下面对话框, 把 Xtal (Mhz)的 24.0修改成当前使用的晶振频率,这里改为11.0592Mhz 。如果还要生成.hex 文件用于下载到芯片上,可以选择“Output” ,钩选“ Creat HEX File ”选项,如下:安徽理工大学机械电子工程5 / 8 来自 jasmine。email: 这样就建立好了一个ke

5、il 工程。通过程序调试, “Save ” , “Build” ,生成 .hex 文件,下载到芯片就可以直接使用了。2 接着讲第二个知识点,就是如何精确计算延时的时间。 我们选择开头给出的程序为例,延时1 的程序如下:for(i=1000;i0;i-) / 延时 1 for(j=110;j0;j-); 要精确计算它的延时时间,可以通过设置断点来实现。断点设置如下图:安徽理工大学机械电子工程6 / 8 来自 jasmine。email: 在延时 1 的开头和下一句语句的开头分别设置断点A1 和 A2,然后全速运行,运行到 A1 处,程序停止,记录这时的运行时间t1,继续全速运行,遇到断点A2,

6、程序停止,记录此刻的时间t2。那么延时1 的延时时间就是t=t2-t1 。下面是具体步骤:(1)设置断点。如上图所示,在程序开头的数字处双击左键,就会出现一个红色的点,这就是断点。如果要消去断点,同样可以双击断点。(2)进入调试模式。单击窗口上的调试按键快捷图标:即可进入调试模式。初次进入调试模式的界面如下:首先介绍一下几个重要按钮。如下图所示: 红色数字1 上面的图标:将程序复位到主函数的最开开始处,准备重新运行程序;红色数字2 上面的图标:全速运行,运行程序时中间不停止,直到遇到断点;红色数字3 上面的图标:停止全速运行。红色数字4 上面的图标:进入子函数内部。红色下划线上的sec 就是程

7、序从开始运行到当前停止处所用的时间。安徽理工大学机械电子工程7 / 8 来自 jasmine。email: (3)先复位。即点击上图中红字1 上面的图标。(4)全速运行,记录运行时间。即点击上图红字2 上面的图标。遇到09 处的第一个断点,系统会自动停止运行,停在第一个断点处。此时右边记录的时间 sec 就是程序从开始运行到当前断点处所经历的时间为t1=423.18us。如下图所示:(5)继续全速运行,第二次记录运行时间。遇到11 处的第二个断点,系统停止运行,此时已运行时间为t2=966140.41us。如下图所示:安徽理工大学机械电子工程8 / 8 来自 jasmine。email:

8、(6)计算延时时间t。从上面得到的数据可以计算出时间t= t2-t1= 966140.41us- 423.18us= 965717.23us= 965.71723ms 。通过上面6 个步骤,就可以精确,方便地计算出延时程序的时间,对于实现精确延时,只需要调节参数,再稍加计算就OK。需要注意的是,在上图的调试模式下修改程序参数,是无法生效的。 复位之后全速运行,显示的十间仍然是修改之前的参数在起作用。所以如果修改程序参数, 需要到编辑模式下, 重新下载, 然后再进入调试模式,才可以计算精确时间。同时,在建立Keil 工程的时候,一定要记得修改晶振的参数,这很关键,如果晶振不对,要实现相同的延时时间,程序参数的设置也就不一样。可以使用同样的方法计算延时2,延时 3,延时 4 的精确延时时间。它们的延时时间分别是: 498040.37us、500220.27us、783.42us。大家可以自己练习。上面使用的Keil 版本是 Keil uVision4,大家也可以使用Keil 3或者 Keil 2 来做, 只是软件 的界面,图标等有差别,但都可以实现相同的功能。谨供学习参考使用,如有错误欢迎指正。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号