返回主页  单片机教程  XL2000开发板  单片机学习 自制编程器  单片机资料  电子技术 产品介绍 如何购买  进入论坛

颠覆传统专业仿真器价值观, 新一代51tracer深圳学林电子新年巨献,每套仅售390元(不含运费和发票),不到一般仿真器价格的1/3,和本公司xl2000,xl600+实验仪配套购买更有更多惊喜特惠价!

 第四章51TRACER 仿真调试高级技巧               

 进入调试状态后,Debug 菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,Debug 菜单上的大部份命令都有相应的快捷按钮。

 

从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮命令;

然后按一下图示第二个“运行”按钮。连接上相关的实验资源,本实验用一条8PIN的数据排线把实验仪的CPU部份的P1口(JP44)连接到八路指示灯部份的JP32。这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。

⒈单步跟踪运行

使用菜单Debug->Step 或上图第四个单步运行按钮或使用快捷键 F11 可以单步跟踪执行程序,在这里我们按下 F11 键,即可执行该箭头所指程序行,每按一次 F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有Delay延时子程序, 则会进入延时程序中运行。

⒉单步运行

如果Delay 程序有错误,可以通过单步跟踪执行来查找错误,但是如果 Delay 程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用 F10 来替代 F11(也可使用菜单 Step Over 或相应的命令按钮 ),在 main 函数中执行到 Delay时将该行作为一条语句快速执行完毕。为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按 F10 键,可以看到在源程序窗口中的左边黄色调试箭头    不会进入到延时子程序。

⒊全速运行

点击工具栏上的“运行”按钮或按F5 键启动全速运行,全速执行程序,此时用户板上的 P1 口所接 LED 以流水灯状态显示。

⒋暂停

点击工具栏上的按钮,此时用户板上的P1 口所接 LED 停止以流水灯状态显示,只有一个 LED 灯点亮(取决于暂停前的 P1 的值)。

⒌观察/修改寄存器的值

Project 窗口在进入调试状态后显示 Regs 页的内容,包括工作寄存器 R0~R7 的内容和累加器 A、寄存器 B、堆栈指针 SP 的内容。

用户除了可以观察以外还可自行修改,例如将寄存器a 的值 0x62 改为 0x85。

方法一:用鼠标点击选中单元a, 然后再单击其数值位置,出现文字框后输入 0x85 按回车键即可;

方法二:在命令行窗口,输入A=0x85,按回车键将把 A 的数值设置为 0x85。

6.观察/修改存储器的数据

   点击菜单“视图View->储存器窗口Memory Windows”,便会打开 储存器Memory 窗口(如窗口已打开,则会关闭), Memory 窗口可以同时显示 4 个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。

在 储存器1(Memory#1) 的地址输入栏内输入“D:0e0h”,按回车键后,可以从内部可直接寻址 RAM 的e0H 地址处开始显示, e0H 地址的值就是寄存器 a 的值,应与主寄存器窗口下的值相同。

点击窗口下部分的储存器2(Memory#2),在 Address 输入栏内输入“D:0e0h”,按回车键后,可以从内部可间接寻址 RAM 的 e0H 地址处开始显示。

点击窗口下部分的Memory#3,在 Address 输入栏内输入“C:0x0021”,按回车键后,可以从代码区域 0000H 地址处开始显示,这时各地址值应与在反汇编窗口中的值相同。

点击窗口下部分的Memory#4,在 Address 输入栏内输入“X:00h”,按回车键后,可以从xdata RAM 区域 0000H 地址处开始显示。

通过 Memory 窗口修改数据

Memory 窗口中显示的数据可以修改。例如,要改动 data 区域 OXE0 地址的数据内容:

把鼠标移动到该数据的显示位置,按动鼠标右键在弹出的菜单中选中:更新储存器“Modify Memory at D:0xE0”,在弹出对话框的文本输入栏内输入相应数值,按回车键或点击 OK,修改完成。

通过命令行查看数据

例如,我们想查看data 空间从 0x01 到 0x03 地址的内容,可在命令输入窗口输入“d d:0x01,03H”, 回车即可完成,d 表示 data 空间,0x01 表示起始地址,03H 表示结束地址(注意两种 16 进制的表示方法在这里都可以接受),输出结果在信息输出窗口中显示出来。

通过命令行修改数据

例如,我们想把 p1口的值从0x02数据修改成 0x04 ,可在命令输入窗口输入p1=0x04”,回车即可完成, 此时如果p1口接有led,将立即看到led状态改变。

通过 Memory 窗口可以看到修改后的数据:

在地址栏输入 d:00H然后回车。储存器1 的d:0x90后的第一个数据就变成了04 ,这正是我们刚才修改的结果。

7.观察/修改变量的值

在暂停程序运行时,可以观察到有关的变量值。

在 监视/调用堆栈(Watch)窗口“局部”页自动显示当前正在使用的局部变量,不需要用户自己添加。监视(Watch)页显示用户指定的程序变量。(先按F2键,然后输入变量的名称例如“delay”然后回车)

 

移动鼠标光标到要观察的变量“delay”上停留大约一秒钟,就弹出一个“变量提示”块出来。

 

将鼠标移动到一个变量名“d1”的上面,点击鼠标右键,出现快捷菜单,选中:“增加d1到观察窗口”(Add  “d1”  to Watch Windows…) 选项,子菜单中会出现#1 和#2 的选项,点击后该变量就会加入对应的监视/调用堆栈(Watch) 窗口。

 

增加d1到观察窗口”(Add  “d1”  to Watch Windows…) 选项后 对应的监视窗口显示了d1 的值。

修改变量的数值方法:用鼠标左键点击该行的变量数据栏,然后按F2 键出现文本输入栏后,输入修改的数据,确认正确后按回车键。

8.复位

如果用户想重新开始运行用户程序,可以点击工具栏上的复位按钮,对仿真器的用户程序进行复位。仿真器复位后,程序计数器PC 指针将复位成 0000H, 另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如 A 将变为 00H, DPTR 变为 0000H, SP 变为 07H, I/O 口变为 0FFH,此时用户板上的 P1 口所接 LED 指示灯会全部熄灭。

9.设置断点

将光标移至待设置断点的源程序行,如 “MOV P1,#0B6H”行。点击工具栏上的“断点”图标,可以看到源程序窗口中该行的左边出现了一个红色的断点标记 。(如果再点一下这个图标则清除这个断点)同样的方法, 您可以设置多个断点。

 

10.带断点的全速运行

按动F5 启动全速运行,全速执行程序,当程序执行到第一个断点时,会暂停下来,这时你可以观察程序中各变量的值及各端口的状态, 如下图:第一个断点在mov p1,#06dh 之后,此时在储存器窗口Memory Windows”, 储存器1(Memory#1) 的地址输入栏内输入“D:000h”,按回车键后,可以从内部可直接寻址地址数据为6D 和程序设计的相同!

此时用户目标板上会显示当前断点的状态,继续按动F5 启动全速运行,程序执行到第二个断点时,会暂停下来,在变量观察窗口中,RAM的值应为B6;继续按动 F5 启动全速运行,程序又会执行到第一个断点处暂停,此时用户目标板上的灯又显示相应的状态。断点是仿真器调试的重要手段,请您仔细反复的练习直到熟练。

 ⒒清除程序中所有断点

如果想取消全部的断点全速运行时,要是逐个取消将是很烦琐的事,我们只要点击工具栏相应的图标,就可清除程序中所有断点。

⒓执行到光标处

在体验“执行到光标处”之前,我们先点击工具栏上复位的图标,对仿真器的用户程序进行复位, 把鼠标放在想要停止的行点一下,再按“执行到光标处”程序全速执行到光标所在行,这与我们在前面看到的带断点的全速运行相类似。

13.退出仿真

先点击调试工具栏“暂停”按钮,再点击调试工具栏的“复位”复位,再点击      开启/关闭调试模式按钮,则退出仿真状态,就又重新回到编辑模式。(如果不能正确退出,请按一下仿真器上的复位按钮)此时可以对程序修改, 然后重新编译,再按开启/关闭调试模式按钮,就又进入仿真模式了。

请注意!由于KEIL软件在仿真状态时和仿真器始终保持通信联系,为此退出仿真的时候最好按照以上顺序退出,不要强行退出,否则容易造成电脑死机。

到这里也就完成了keil软件的标准操作过程,由于KEIL操作过程较复杂,请您自行练习直到熟练!

 

51tracer仿真器多角度实拍
51tracer仿真器多角度实拍51tracer仿真器多角度实拍51tracer仿真器多角度实拍51tracer仿真器多角度实拍
51tracer仿真器多角度实拍51tracer仿真器多角度实拍51tracer仿真器多角度实拍51tracer仿真器多角度实拍
51tracer仿真器附件实拍
仿真器特别设计的绒布套51tracer仿真器手册设计文件51tracer仿真器标准仿真头51tracer仿真器32k彩色使用手册
51tracer仿真器连接各种目标板照片
未连接仿真头的照片连接自制目标板的照片仿真器连接xl600+的照片仿真器连接xl600+的照片
仿真器连接xl2000的照片仿真器连接xl2000的照片仿真器连接xl2000的照片连接xl400的照片