软件调试模式(仿真模式)2

上一篇简单介绍了软件调试模式中几个比较常用的按钮,这次就具体了解

查看I/O口电平变化和变量值地变化

我们先将硬件I/O口模拟器打开,它就会弹出如下窗口

从无到有,学习单片机的第5天

串口里面现实的就是模拟出来单片机P1口8位口线的状态,单片机上电后I/O口全为1,即十六进制的0xFF。**这里我们要注意一点,当我们在调试的时候,光标,即那个黄色粗箭头,代表着单片机运行到那里了,但是对应的那一行并没有开始执行。**例如光标指向第一个Led1=0;这是我们可以发现我们的第0位还是高电平,那个勾勾还在,当光标移动到下一行的时候,那个勾勾即消失了,也就意味着是低电平这时候我们的二极管正在发亮。

再次单击右下角变量观察窗口Watch#1字样,可以看到窗口上面有”double click or F2 to add“字样,我们需要点击这个字所在框框,或者按F2键,就可以在这个框框里面输入变量,然后下面会自动生成一行,供我们输变量

从无到有,学习单片机的第5天
从无到有,学习单片机的第5天
当我们进入for语句的时候,我们就可以看见i和j所对应的值是1000和110,然后我们每单步执行代买的时候,就会发现i的值在减一减一。

然后我们看看左侧的寄存器窗口,我们可以了解一些寄存器名称以及他们的值。在本章,我们关心的只有一个“sec

从无到有,学习单片机的第5天

它后面显示的数据就程序代码执行所用时间,单位是秒。这个时间是程序启动执行到目前停止位置所花的所有时间,这个时间是个累计时间,也就是过并不是代码走一次的时间,而是无数次代码走过的时间。

当我们将黄色光标指向Led1=0处,然后单步执行代码,这一行的代码被执行了,这时候我们可以发现时间过去了0.000001s,这个就是执行一次代码所用的时间,也就是一个机器周期的时间。

何为单片机的机器周期?一共有四个周期的说法

  1. 时钟周期

    也称为振荡周期,定义为时钟频率的倒数,也可以说是外接晶振的倒数,例如12MHz晶振的时钟周期就是1/12us。它是单片机中最基本的、最小的时间单位,在一个时钟周期内,CPU仅完成一个最基本的动作。显然,对于同一种单片机,时钟频率越高单片机的工作速度越快。

  2. 状态周期

    时钟周期的2倍

  3. 机器周期

    单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取汁淋、存储器读/写等,机器周期由12个时钟周期组成。

接着回来软件上,我们再次单击单步执行按钮,光标从第一个for来到了第二个for,这时候右下角变量查看窗口中的i被赋值0x03E8,也就是十进制中的1000,我们可以在这个值上单击右键并选择Number BaseDecimal,我们就可以切换到十进制了。因为每当外层的for语句执行一次的时候,里面的for语句已经执行了110次了,所以那个j一直是0。

如果说我们要查看这一个for语句究竟用了多长时间,我们除了疯狂单步执行,我们还可以设置断点,让程序自动执行到for语句结束的时候。

  • 如何设置断点:单击复位按钮,然后再在第一个for所在行前面空白处双击鼠标,前面就会出现一个红色方框,表示本行设置了第一个断点,然后在led1=1所在行设置一个断点,这两个断点之间就是这个两级for嵌套语句。

从无到有,学习单片机的第5天

这时候单机全速运行按钮,程序会自动停止在第一个断点处,然后我们再次点击全速运行按钮,这时候程序会自动停止在第二个断点处,根据两个断点处的显示时间不同,我们就可以得出我们所编写的延时语句大致是多长时间。

会自动停止在第二个断点处,根据两个断点处的显示时间不同,我们就可以得出我们所编写的延时语句大致是多长时间。

学业繁忙,这几天都不会更太多,多多见谅

相关文章:

  • 2021-07-03
  • 2021-08-10
  • 2021-05-03
  • 2022-02-17
  • 2021-06-07
  • 2021-07-09
  • 2021-09-17
猜你喜欢
  • 2021-12-07
  • 2021-10-19
  • 2021-08-02
  • 2021-11-06
  • 2021-09-01
  • 2021-11-21
  • 2021-05-18
相关资源
相似解决方案