前言
上一篇文章介绍了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毫秒,时间还是差不多的。文章来源:https://www.toymoban.com/news/detail-493333.html
总结
以上就是今天要讲的内容,本文仅仅简单介绍了keil软件调试的使用,而keil提供了大量供我们查看的寄存器,变量,仿真设置,大家多多使用。文章来源地址https://www.toymoban.com/news/detail-493333.html
到了这里,关于keil软件调试查看语句运行时间,单片机IO口状态,变量窗口设置,晶振设置。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!