首页 理论教育KeilC辅助调试功能实战

KeilC辅助调试功能实战

【摘要】:Keil软件在调试程序时提供了多个窗口,主要包括输出窗口、观察窗口、存储器窗口、反汇编窗口和串行窗口等。图4-19 Keil软件的View菜单图4-20 工程寄存器窗口图4-21 存储器窗口外设窗口1)I/O口窗口。图4-28 串口监测窗口4)定时器窗口。图4-29 定时器菜单项图4-30 定时器设置窗口反汇编窗口是反汇编窗口按钮,单击后可以把C51反汇编为相应的汇编语言,如果有汇编语言知识,就可以对比C51程序与汇编程序。

单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。使用软件模拟调试,就是用计算机来模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样,执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的、小型工程的调试。

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单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制十六进制字符型等,改变显示方式的方法是单击鼠标右键,在弹出的快捷菜单中选择。

978-7-111-49736-3-Chapter04-36.jpg

图4-19 Keil软件的View菜单

978-7-111-49736-3-Chapter04-37.jpg

图4-20 工程寄存器窗口

978-7-111-49736-3-Chapter04-38.jpg

图4-21 存储器窗口

(3)外设窗口

1)I/O口窗口。I/O口窗口如图4-22和图4-23所示,Port0~Port3就对应于单片机的四个P0~P3口,共32个引脚。

978-7-111-49736-3-Chapter04-39.jpg

图4-22 I/O口菜单项

虽然软件调试无法实现硬件调试那样的信号输出,但是软件调试也可以在软件窗口监测输出信号的高低电平,以及单片机相关端口的变化,实现模拟监测输出信号的目的。

978-7-111-49736-3-Chapter04-40.jpg

图4-23 I/O口窗口

2)中断窗口。中断菜单项如图4-24所示。

选择图4-24中菜单命令“Peripherals”→“Interrupt”可以打开输入预设窗口,输入值窗口如图4-25所示,选择不同的Int Source会有不同的Selected Interrupt的变化,通过选择与赋值达到模拟输入的目的。(www.chuimin.cn)

978-7-111-49736-3-Chapter04-41.jpg

图4-24 中断菜单项

978-7-111-49736-3-Chapter04-42.jpg

图4-25 中断窗口

3)串口窗口。串口菜单项如图4-26所示,串口窗口如图4-27所示。

978-7-111-49736-3-Chapter04-43.jpg

图4-26 串口菜单项

978-7-111-49736-3-Chapter04-44.jpg

图4-27 串口窗口

监测串口数据的还有一个窗口,如图4-28所示,可单击工具栏中的978-7-111-49736-3-Chapter04-45.jpg出现,这个窗口可以监测从串口输出的ASCII代码。

978-7-111-49736-3-Chapter04-46.jpg

图4-28 串口监测窗口

4)定时器窗口。定时器菜单项如图4-29所示。定时器的设置窗口如图4-30所示。3个定时器与1个看门狗,设置定时器的数量与工程选择的单片机型号有关系,如果是8051就只有2个定时器,如果选择8052就有3个定时器。

978-7-111-49736-3-Chapter04-47.jpg

图4-29 定时器菜单项

978-7-111-49736-3-Chapter04-48.jpg

图4-30 定时器设置窗口

(4)反汇编窗口

978-7-111-49736-3-Chapter04-49.jpg是反汇编窗口(Disassembly Windows)按钮,单击后可以把C51反汇编为相应的汇编语言,如果有汇编语言知识,就可以对比C51程序与汇编程序。由于汇编语言的效率高很多,这也可以作为查看C51执行效率的一种方法,详见案例6。反汇编窗口如图4-31所示。

978-7-111-49736-3-Chapter04-50.jpg

图4-31 反汇编窗口