单片机编程软件的应用很多,在单片机编程软件的帮助下,我们对单片机的控制才变得如此简单。在市场上流通的单片机编程软件中,小编最为喜爱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

{;}

} k++; }

程序中定义了一个静态变量K,每次调用该变量加1,而j 的循环条件与k的大小有关,这使每次执行该程序所花的时间不一样。编译、执行该程序,再次观察性能分析窗口,可以看出Min、Max、Avg 的意义。

3、变量来源浏览

该窗口用于观察程序中变量名的有关信息,如该变量名在那一个函数中被定义、在哪里被调用,共出现多少次等。在Source Browse 窗口中提供了完善的管理方法,如过滤器可以分门别类地列出各种类别的变量名,可以对这些变量按Class(组)、Type(类型)、Space(所在空间)、Use(调用次数)排序,点击变量名,可以在窗口的右侧看到该变量名的更详细的信息。

4、代码作用范围分析

在你写的程序中,有些代码可能永远不会被执行到(这是无效的代码),也有一些代码必须在满足一定条件后才能被执行到,借助于代码范围分析工具,可以快速地了解代码的执行情况。进入调试后,全速运行,然后按停止按钮,停下来后,可以看到在源程序的左列有三种颜色,灰、淡灰和绿,其中淡灰所指的行并不是可执行代码,如变量或函数定义、注释行等等,而灰色行是可执行但从未执行过的代码,而绿色则是已执行过的程序行。使用调试工具条上的Code Coverage Window 可打开代码作用范围分析的对话框,里面有各个模块代码执行情况的更详细的分析。如果你发现全速运行后有一些未被执行到的代码,那么就要仔细分析,这些代码究竟是无效的代码还是因为条件没有满足而没有被执行到。

以上便是此次小编带来的“单片机编程软件”相关内容,希望大家对本文讲解的内容具备一定的了解。

来源:单片机编程软件很简单(八),Keil单片机编程软件辅助功能讲解 - 21ic电子网

单片机编程软件很简单(八),Keil单片机编程软件辅助功能讲解相关推荐

  1. 单片机编程软件很简单(17),Keil单片机编程软件之编译、链接

    单片机编程软件使用较多,诸多朋友大学期间便接触单片机编程软件.因此,大家对于单片机编程软件或多或少有所了解.本文中,将对Keil单片机编程软件加以介绍,主要在于介绍如何在这款单片机编程软件中进行项目设 ...

  2. 单片机编程软件很简单(23),keil单片机编程软件调试stm32

    单片机编程软件的使用意义较强,不论是工作还是学习,单片机编程软件都是常被使用的软件之一.本文对于单片机编程软件的介绍将基于如何采用keil单片机编程软件调试stm32,如果你对单片机编程软件抑或本文内 ...

  3. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈

    单片机编程软件为常用软件之一,单片机开发人员均用过多款单片机编程软件.那么,用单片机编程软件进行开发时,大家是否有独特新得呢?本文对单片机编程软件的讲解基于Keil C51,主要为大家介绍使用这款单片 ...

  4. 单片机编程软件很简单(22),keil单片机编程软件优化等级+概念解析

    单片机编程软件是单片机使用过程中不可缺少的一环,因此对于单片机编程软件,相关人员应当具备一定了解.往期文章中,小编对单片机编程软件有过诸多介绍.本文对于单片机编程软件的介绍基于两点:1.keil单片机 ...

  5. 单片机编程软件很简单(五),keil单片机编程软件变量用法(下)

    对于单片机编程软件,想必大家均有所了解.针对单片机编程软件,小编曾对keil.IAR予以介绍.本文对于单片机编程软件的讲解,同样基于keil.本文中,将介绍keil单片机编程软件变量用法下篇.如果你对 ...

  6. 单片机编程软件很简单(14),Keil单片机编程软件断点设置

    单片机编程软件十分常用,对于单片机编程软件,小编于往期文章中做过诸多介绍.本文对于单片机编程软件的介绍基于Keil,主要内容在于介绍该单片机编程软件的在线汇编功能以及断点设置.如果你对Keil单片机编 ...

  7. 单片机编程软件很简单(13),Keil单片机编程软件常用调试命令

    单片机编程软件使用广泛,操作单片机编程软件的人员往往需具备专业知识.市场上有多款单片机编程软件可供大家选择,而小编较为推荐keil单片机编程软件.本文中,将主要为大家介绍这款单片机编程软件中的一些常见 ...

  8. androidstudio 日历视图怎么显示农历_中秋国庆旅游攻略怎么做?用这个便签软件很简单...

    九月已经到来,中秋节和国庆节距离我们也不远了,今年的中秋和国庆节重叠了有足足八天的假期.不少人都想趁着这个小长假出门旅游,要想保证旅游质量,那么就要做好攻略.中秋国庆旅游攻略怎么做? 要想做好一份中秋 ...

  9. 计算在一起的天数html,记录情侣在一起天数的软件 很火的情侣天数记录软件

    记录情侣在一起的天数是非常有意义,而且市面上有很多为情侣设计的APP,接下来我们就来看看记录情侣在一起天数的软件以及很火的情侣天数记录软件. 一.记录情侣在一起天数的软件 很火的情侣天数记录软件 1. ...

最新文章

  1. 分享两篇Google Map API的介绍
  2. Flask restful api与blueprint结合实践
  3. 基于Wemos D1的感应开盖垃圾桶
  4. 二层环路保护,RRPP多环的配置
  5. [转载]常用内部排序算法--用VB6实现
  6. poj 1182 食物链 并查集
  7. java基础篇(二) ----- java面向对象的三大特性之继承
  8. 实验五|Python 企业获利能力分析
  9. shopify 与国内第三方建站服务平台的比较(店匠、shopline、shopyy、ueeshop)
  10. java--案例:[Random]随机100-200的数、班级点名器、控制台输入三个数,输出最大值,或最小值?
  11. mysql容器保存为镜像实战操作(拷贝方法)
  12. P014魔改8G显存
  13. Android 新闻客户端案例
  14. MYeclipse 或 eclipse中几种导入jar包方式的区别
  15. RestTemplate传递文件流
  16. 二叉树OJ(一)二叉树的最大深度 二叉搜索树与双向链表 对称的二叉树
  17. TC8:TCP_ACKNOWLEDGEMENT_02-04
  18. dfs 牛客 迷宫问题
  19. 百度宣布首例"人工智能"寻找走失儿童完成
  20. cocos2d 使用SimpleAudioEngine加载音乐音效

热门文章

  1. 光纤收发器的六个指示灯代表是什么意思?
  2. 如何保证数据在传输过程中的安全
  3. 单片机初学者电路常识
  4. Java编程思想之高内聚低耦合
  5. centos 7 安装mysql 8.0 详细教程
  6. Spring系列:mysqlsqlserver对比
  7. Absurdity and wonder: Heath Robinson at home
  8. 从抄书到开源之巅:章亦春的程序人生
  9. HA状态下防火墙损坏处理
  10. PCIe TLP的格式