调试功能是ThinkPHP内置的一项重要的代码调试机制。ThinkPHP本身内置有代码调试功能,开发人员只需要在入口文件中开启即可。为了方便开发者了解每个页面的运行情况,系统还提供了Trace信息显示功能。图8-8 调试异常信息2.Trace异常信息Trace异常信息默认是关闭的,它是前面介绍的异常数据显示的子类。......
2023-11-04
单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。使用软件模拟调试,就是用计算机来模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样,执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的、小型工程的调试。
Keil软件在调试程序时提供了多个窗口,主要包括输出窗口、观察窗口、存储器窗口、反汇编窗口和串行窗口等。进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口,如图4-19所示。
下面具体讨论相关子窗口的功能。
(1)左侧的工程寄存器窗口
图4-20是工程寄存器窗口(Project Workspace)。寄存器页包括当前的工作寄存器组和系统寄存器组,系统寄存器组有一些是实际存在的寄存器,如A、B、DPTR、SP、PSW等,有一些是实际中并不存在或虽然存在但不能对其操作的,如PC等。Regs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。
根据指令执行的不同,上述值会有相应的变化,程序员可以监测这些在单片机中看不到的值而达到调试的目的。
(2)存储器窗口
存储器窗口如图4-21所示。存储器窗口中可以显示系统中各种内存的值,通过在Address后的文本框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。例如输入D:0即可观察到地址0开始的片内RAM单元值,键入C:0即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是单击鼠标右键,在弹出的快捷菜单中选择。
图4-19 Keil软件的View菜单
图4-20 工程寄存器窗口
图4-21 存储器窗口
(3)外设窗口
1)I/O口窗口。I/O口窗口如图4-22和图4-23所示,Port0~Port3就对应于单片机的四个P0~P3口,共32个引脚。
图4-22 I/O口菜单项
虽然软件调试无法实现硬件调试那样的信号输出,但是软件调试也可以在软件窗口监测输出信号的高低电平,以及单片机相关端口的变化,实现模拟监测输出信号的目的。
图4-23 I/O口窗口
2)中断窗口。中断菜单项如图4-24所示。
选择图4-24中菜单命令“Peripherals”→“Interrupt”可以打开输入预设窗口,输入值窗口如图4-25所示,选择不同的Int Source会有不同的Selected Interrupt的变化,通过选择与赋值达到模拟输入的目的。(www.chuimin.cn)
图4-24 中断菜单项
图4-25 中断窗口
3)串口窗口。串口菜单项如图4-26所示,串口窗口如图4-27所示。
图4-26 串口菜单项
图4-27 串口窗口
监测串口数据的还有一个窗口,如图4-28所示,可单击工具栏中的出现,这个窗口可以监测从串口输出的ASCII代码。
图4-28 串口监测窗口
4)定时器窗口。定时器菜单项如图4-29所示。定时器的设置窗口如图4-30所示。3个定时器与1个看门狗,设置定时器的数量与工程选择的单片机型号有关系,如果是8051就只有2个定时器,如果选择8052就有3个定时器。
图4-29 定时器菜单项
图4-30 定时器设置窗口
(4)反汇编窗口
是反汇编窗口(Disassembly Windows)按钮,单击后可以把C51反汇编为相应的汇编语言,如果有汇编语言知识,就可以对比C51程序与汇编程序。由于汇编语言的效率高很多,这也可以作为查看C51执行效率的一种方法,详见案例6。反汇编窗口如图4-31所示。
图4-31 反汇编窗口
有关51单片机案例笔记的文章
调试功能是ThinkPHP内置的一项重要的代码调试机制。ThinkPHP本身内置有代码调试功能,开发人员只需要在入口文件中开启即可。为了方便开发者了解每个页面的运行情况,系统还提供了Trace信息显示功能。图8-8 调试异常信息2.Trace异常信息Trace异常信息默认是关闭的,它是前面介绍的异常数据显示的子类。......
2023-11-04
Debug是一个系统静态扩展类,主要用于调试程序的性能,为优化程序运行效率提供依据。例如显示块代码内存占用、块代码执行时间、区间代码性能调用等。假设需要对一个页面进行性能调试,那么首先需要在测试的代码之前加入标记,如以下代码所示。这对标记内的代码性能数据会被记录到$marker数组中。为代码添加了标记后,系统就能够识别调试区域了。......
2023-11-04
输入端子控制调试是指利用变频器输入端子连接的控制部件进行正、反转起动、停止等控制,并利用操作显示面板对变频进行频率设定,达到对变频器运行状态的调整和测试目的。......
2023-06-24
本设计中源程序的编写与调试是在Keil C51集成环境中进行的。保存为hejia-jian.c的名字,,单击保存按钮。单击Target 1前面的+号,展开里面的内容Source Group1,用右键单击Sourece Group 1,将弹出一个菜单,选择Add Files to Guoup'Source Group 1',文件类型选择C Source file(*.c)。单击add按钮之后,窗口不会消失,,添加完毕此时再单击Close关闭该窗口,这时在Source Group 1里就有hejiajian.c文件。程序在Keil软件下编译成功,如图16-11所示。图16-11 程序调试图图16-12 程序下载图......
2023-11-04
尽管越来越多的风力发电机组也具有电压调节的功能,但需要在即使风电不能发电的情况下,风电场也能发挥这种作用。随着风电装机容量在整个系统中占比越来越高,风电场的可调节容量已成为配电电压调节的决定性因素。......
2023-06-22
在11.1.2节中,已经介绍过ThinkPHP虽然可以切换到Smarty模板引擎,但这种切换方式是指标签解释的方式上,并不包括Smarty模板扩展功能。但可以通过ThinkPHP扩展的方式引入Smarty,从而实现全功能的Smarty模板引擎。本章接下来的全部内容基于ThinkPHP+Smarty环境。读者在实验时可以使用普通的模板代码,这里只是为了减少代码量,方便讲解,对Smarty的功能介绍并无影响。图13-4 在ThinkPHP中使用Smarty......
2023-11-04
众所周知,数控机床对工件的加工是靠加工程序中的各种指令来完成的。为了维修的方便,现将一些常用的辅助功能M指令介绍如下;1.M00指令该指令用于数控机床在加工过程中,对工件和刀具的尺寸测量、手工换刀、手动变速等操作。不同的数控系统,其表示的方法也有所不同。......
2023-06-15
本设计中源程序的编写与调试是在Keil C51集成环境uVision中进行。并且Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。首先建立一个新的工程,单击菜单project,选择new project,输入工程文件的名字,如保存到keil目录里,工程文件的名字为Chongdiangi.c,单击保存。在Source Group 1里就有Chongdiangi.c文件。图17-7 程序编译成功界面......
2023-11-04
相关推荐