当前位置:首页 > 单片机 > 单片机
[导读]在前面的几讲中我们介绍了工程的建立方法,常用的调试方法,除此之外,Keil 还提供了一些辅助工具如外围接口、性能分析、变量来源分析、代码作用分析等,帮助我们了解程的性能、查找程序中的隐藏错误,快速查看程序变

 

在前面的几讲中我们介绍了工程的建立方法,常用的调试方法,除此之外,Keil 还提供
了一些辅助工具如外围接口、性能分析、变量来源分析、代码作用分析等,帮助我们了解程
的性能、查找程序中的隐藏错误,快速查看程序变量名信息等,这一讲中将对这些功工具作
一介绍,另外还将介绍Keil 的部份高级调试技巧。
一、 辅助工具
这部份功能并不是直接用来进行程序调试的,但可以帮助我们进行程序的调试、程序性
能的分析,同样是一些很有用的工具。
1、外围接口
为了能够比较直观地了解单片机中定时器、中断、
并行端口、串行端口等常用外设的使用情况,Keil 提
供了一些外围接口对话框,通过Peripherals 菜单选择,
该菜单的下拉菜单内容与你建立项目时所选的CPU
有关,如果是选择的89C51 这一类“标准”的51 机,
那么将会有Interrupt(中断)、I/O Ports(并行I/O 口)、
Serial(串行口)、Timer(定时/计数器)这四个外围设
备菜单。打开这些对话框,列出了外围设备的当前使用情况,各标志位的情况等,可以在这
些对话框中直观地观察和更改各外围设备的运行情况。
下面我们通过一个简单例子看一看并行端口的外围设备对话框的使用。例4:
MOV A,#0FEH
LOOP: MOV P1,A
RL A
CALL DELAY ;延时100 毫秒
JMP LOOP
其中延时100 毫秒的子程序请自行编写。
编译、连接进入调试后, 点击
Peripherals->I/O-Ports->Port 1 打开,如图1 所示,全速运
行,可以看到代表各位的勾在不断变化(如果看不到变化,
请点击View->Periodic Window Updata),这样可以形象地
看出程序执行的结果。
注:如果你看到的变化极快,甚至看不太清楚,那么
说明你的计算机性能好,模拟执行的速度快,你可以试着
将加长延时程序的时间以放慢速度。模拟运行速度与实际
运行的速度无法相同是软件模拟的一个固有弱点。
点击Peripherals->I/O-Ports->Timer0 即出现图2 所示
定时/计数器0 的外围接口界面,可以直接选择Mode 组中
的下拉列表以确定定时/计数工作方式,0-3 四种工作方式,

图1 外围设备之并行端口


图2 外围设备之定时器

设定定时初值等,点击选中TR0,status 后的stop 就变成了run,如果全速运行程序,此时
th0,tl0 后的值也快速地开始变化(同样要求Periodic Window Updata 处于选中状态),直观地
演示了定时/计数器的工作情况(当然,由于你的程序未对此写任何代码,所以程序不会对
此定时/计数器的工作进行处理)。
2、性能分析
Keil 提供了一个性能分析工具,利用该工具,我们可以了解程序中哪些部份的执行时间
最长,调用次数最多,从而了解影响整个程序中执行速度的瓶颈。下面通过一个实例来看一
看这个工具如何使用,例5:
#include "reg51.h"
sbit P1_0=P1^0; //定义P1.0
void mDelay(unsigned char DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++) {;} }
}
void mDelay1(unsigned char DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++) {;} }
}
void main()
{ unsigned int i;
for(;;){ mDelay(10); // 延时10
毫秒
i++;
if(i==10)
{ P1_0=!P1_0;
i=0;
mDelay1(10);}
} }
编译连接。进入调试状态后使用菜单View->Performance Analyzer Window,打开性能分
析对话框,进入该对话框后,只有一项unspecified,点鼠标右键,在快捷菜单中选择Setup PA
即打开性能分析设置对话框,对于C 语言程序,该对话框右侧的“Function Symbol”下的
列表框给出函数符号,双击某一符号,该符号即出现在Define Performance Analyzer 下的编
缉框中,每输入一个符号名字,点击Define 按钮,即将该函数加入其上的分析列表框。对
于汇编语言源程序,Function Symbol 下的列表框中不会出现子程序名,可以直接在编缉框
中输入子程序名,点击Close 关闭窗口,回到性能分析窗口,此时窗口共有4 个选项。全速
执行程序,可以看到mDelay 和mDelay1 后出现一个蓝色指示条,配合上面的标尺可以直观
地看出每个函数占整个执行时间的比例,点击相应的函数名,可以在该窗口的状态栏看到更
详细的数据,其中各项的含义如下:
Min:该段程序执行所需的最短时间;Max:该段程序执行所需的最长时间;Avg:该
段程序执行所花平均时间;Total:该段程序到目前为目总共执行的时间;%:占整个执行时
间的百分比;count:被调用的次数。
本程序中,函数mDelay 和mDelay1 每次被调用都花费同样的时间,看不出Min、Max、
和Avg 的意义,实际上,由于条件的变化,某些函数执行的时间不一定是一个固定的值,
借助于这些信息,可以对程序有更详细的了解。下面将mDelay1 函数略作修改作一演示。
void mDelay1(unsigned char DelayTime)
{ static unsigned char k;

unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(;j

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机小精灵是一款针对单片机开发者的辅助工具,它集成了代码编辑、编译、调试等多项功能,旨在帮助开发者更加高效地进行单片机项目的开发。本文将详细介绍单片机小精灵的使用方法,帮助读者快速掌握这款工具,提高开发效率。

关键字: 单片机 代码编辑 辅助工具

之后新建新的工程,添加.a文件就可以使用了,当然也可以使用keil来添加,但是keil默认的是用.lab,需要自己配置一下文件属性,改为lib文件即可。一半release sdk的时候用这种方式很关键的,毕竟自己的核心代...

关键字: keil 文件属性 lib文件

摘要:装拆接地线是保障停电作业人员安全的重要举措,但目前装拆接地线主要依靠人工转动塑料护套使接地夹卡紧导线或金属部位来进行。鉴于此,提出设计一种接地线快速装拆辅助工具,即"几"字形金属摇把。"几"字形金属摇把的一端焊接有...

关键字: 接地线 辅助工具 "几"字形

摘要:在配网工作中,带电接火工作必不可少,断线修复工作也时常发生。因此,为提高绑扎效率,研制了一种新型绑扎线辅助工具。它包括手柄和主体部分,手柄固定在主体部分的一侧,主体部分设有半圆形槽和线形槽,二者的开口方向一致。该设...

关键字: 辅助工具 带电接火 断线修复

摘要:装拆接地线是保障停电作业人员安全的重要举措,但目前装拆接地线主要依靠人工转动塑料护套使接地夹卡紧导线或金属部位来进行。鉴于此,提出设计一种接地线快速装拆辅助工具,即"几"字形金属摇把。"几"字形金属摇把的一端焊接有...

关键字: 接地线 辅助工具 "几"字形

DSP28335与AD7606通过SPI的串行数据交互

关键字: keil C

AD7606的并行采集

关键字: ad7606 数据 C keil

为帮助大家更好使用单片机编程软件,本文将对keil单片机编程软件仿真、调剂技巧予以讲解,并对该单片机编程软件的常见错误提示予以阐述。

关键字: 单片机编程软件 指数 keil

本文对于单片机编程软件的介绍将基于如何采用keil单片机编程软件调试stm32,如果你对单片机编程软件抑或本文内容具有兴趣,不妨继续往下阅读哦。

关键字: 单片机编程软件 指数 keil

本文对于单片机编程软件的介绍基于两点:1.keil单片机编程软件编译环境优化等级说明,2.keil单片机编程软件中两大概念名词解析。

关键字: 单片机编程软件 指数 keil
关闭
关闭