Keil软件调试技巧:查看语句运行时间、IO口状态、变量窗口和晶振设置详解

文章目录

  • 前言
  • 一、晶振是什么?
  • 二、如何用软件调试查看语句运行时间!
  • 1.设置晶振
  • 2.打开软件仿真
  • 3.打开硬件IO口模拟器
  • 4.sec查看单句运行时间!
  • 5.添加断点
  • 总结
  • 前言

    上一篇文章介绍了keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解,本篇文章主要学习的是软件调试里面,如何设置单片机晶振(用来确定单片机工作频率),如何查看单片机IO口引脚(用来观察IO口当前高低电平)如何查看单条语句运行时间(基于软件调试),建议大家收藏观看。

    一、晶振是什么?

    有一些电子设备需要频率高度稳定的交流信号,而LC振荡器稳定性较差,频率容易漂移(即产生的交流信号频率容易变化)。在振荡器中采用一个特殊的元件——石英晶体,可以产生高度稳定的信号,这种采用石英晶体的振荡器称为晶体振荡器。

    晶振好比单片机的心脏,如果没有心脏起跳,单片机无法工作,晶振值越大,单片机运行速度越快,有时并不是速度越快越好,对于电子电路而言,速度够用就是最好,速度越快越容易受干扰,可靠性越差!
    而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。

    二、如何用软件调试查看语句运行时间!

    1.设置晶振


    Keil 编辑界面,打开工程设置对话框,在【 Target 】标签下的【 Xtal ( MHz ):】后面将原来的默认值修改为单片机上晶振频率值11.0592MHz。

    2.打开软件仿真


    单击窗口上的调试按钮快捷图标(上图红色框内图标),进入到软件模拟调试模式。

    3.打开硬件IO口模拟器

    我们先来看如何在单步执行代码时,查看硬件 IO 口电平变化和变量值的变化。先将硬件IO口模拟器打开。

    显示的是软件模拟出的单片机P1口8位口线的状态,单片机上电后 I / O 口全为1,即十六进制的0xFF。

    代码如下(示例):

    #include <reg51.h>
    #include <intrins.h>
    unsigned char a,b,k,j;
    sbit beep=P2^3;
    void delay10ms()
      {
        for(a=100;a>0;a--)
          for(b=225;b>0;b--);
       }
    void main()
    {
      k=0xfe;
      while(1)
      {
          delay10ms();
          
          //beep=0;
          delay10ms();
          //beep=1;
          j=_crol_(k,1);
          k=j;
          P1=j;
       }
    }
    

    该程序使用于P1口流水灯闪烁。


    4.sec查看单句运行时间!


    左侧的寄存器窗口中可以到一些寄存器名称及它们的值,本小节的核心部分" sec ”,它后面显示的数据就是程序代码执行所用的时间,单位是秒。
    通过添加断点,单步执行就可以得到我们想要的时间数据。

    5.添加断点


    我们在延时函数处,添加断点,然后运行,会看到延时时间。

    我们选择跳过函数,会看到时间。

    延时10毫秒,时间还是差不多的。

    总结

    以上就是今天要讲的内容,本文仅仅简单介绍了keil软件调试的使用,而keil提供了大量供我们查看的寄存器,变量,仿真设置,大家多多使用。

    物联沃分享整理
    物联沃-IOTWORD物联网 » Keil软件调试技巧:查看语句运行时间、IO口状态、变量窗口和晶振设置详解

    发表评论