keil集成环境c语言总结,Keil C51单片机集成开发环境编程与调试教程

同 VC 之类的通用 C 语言集成开发环境(IDE)一样,Keil 也采用“工程”

(Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组 成的大型程序开发提供了方便。不管是最简单的 C51程序,还是复杂的多文件 程序都需要以下步骤:

1)先建立新的工程文件;

2)在工程中新建源代码文件,或是将已经存在的源代码文件加入工程;

3)编译;

4)调试,修正错误再编译;

5)将生成的二进制文件*.hex 烧入单片机。 本教程重点介绍上述前 4 个步骤。

二、Keil中新建工程的步骤

1. 单击菜单“Project——New uVision Project……” 出现新建工程对话框:

此时可以看到屏幕左侧的“Project”窗口(工程文件管理器)中,Target1 下面的 Source Group1(源代码文件组 1)为空,即现在新建的工程中还不包含任 何源代码文件。所以,接下来要做的就是新建源代码文件。

4. 将源代码文件加入工程 在屏幕左侧的“Project”窗口(工程文件管理器)中,在 Source Group 1 上单击右键,选择 Add Source File to “Source Group 1”菜单项。

关闭对话框后,可以在“Project”窗口(工程文件管理器)中看到刚才添加 进来的源代码文件:

默认打开的是“Target”选项页,此页面的项目一般保持默认值即可。各个项目的具体含义可参加课本 P35。 单击“Output”打开 Output 选项页:

勾选“CreateHEXFile”项,这样编译后才会生成用来烧录进单片机的二 进制程序文件(相当于 VC 中的 exe 文件),否则只编译而不生成可执行文件.

单击工具栏

第 2 行,左起第 3 个图标 启动编译

此处为提示信息窗口

这里要特别注意的是,如果 Source Group 里有多个源代码文件,就像在 VC 里面一样,会将多个文件分别编译然后连接(Link)成最后的可执行文件。因此, 多个源代码文件中只能有一个 main函数。

经常出现类似这样的错误:在调试完一个程序又调试下一个时,没有新建工 程,而是新建了一个源代码文件并添加到现有的工程中,也没有把刚才调试的源 代码文件移除,这样再编译时便会出错,因为存在 2 个 main 函数。

若不想每次都新建工程,可将调试完毕的源代码文件移除出工程,再新建源 代码文件调试新的代码。或者将调试完成的代码复制出来另外保存,用待调试的 代码覆盖原文件内容即可。

三、基本调试方法

代码中的语法错误可以通过编译器的 error 信息提示,只要没有语法错误即 可通过编译,但只有通过单步执行、设置断点等调试手段,才能快速找出程序中 存在的逻辑错误。掌握基本的调试方法,对于我们观察程序的运行过程,理解程 序算法思想也是非常重要的。

1. 进入与退出调试状态

单击工具栏第 1 行中部,红色 d 字图标(Start/End Debug Session),即可进 入调试状态,再次单击该图标即可退出调试状态,对应的快捷键是 Ctrl+F5。

上图红线上方(第 2 行工具栏即调试工具栏)的前 5 个按钮是最常用的。

第 1 个按钮为“CPU 复位”,相当于按下复位按钮,不管现在程序运行到何 处,马上回到程序开始执行之前的状态。

第 2 个按钮为“全速运行程序”,快捷键 F5,即开始正常运行程序,如果连 接有仿真器或是联机 Proteus 软件仿真(具体方法后面讲),则在硬件设备或者 Proteus 界面上可以看到真实的运行效果(如 LED 的闪烁)。

第 3 个按钮为“Stop”,停止程序的运行。因单片机上的程序主体多为死循 环,一旦启动不会停止,可以通过此按钮结束程序。也可以直接单击上面的红色d 按钮(Ctrl+F5)直接退出调试状态。

第 4 个按钮为“单步执行”,快捷键 F11,第 5 个按键也是单步执行,快捷 键 F10。如果你熟悉 VC 的调试方法,对这两个快捷键一定不会陌生,这里与 VC 里的含义完全相同,F10 会把函数调用语句当成是一行处理,即不会进入函 数内部,如需进入函数内部跟踪调用过程,可按 F11。通过这两个按钮的图标(一 个箭头指向{}内,一个越过{})也可以很直观地区分。

第 6 个按钮(图标为从{}内跳出的箭头)的功能是从被调函数返回主程序, 对应快捷键为 Ctrl+F11,如果单步运行时不想进入函数内部,但误按了 F11,可 可以用这个功能返回。注意按这个按钮时并不是不再执行被调函数内的语句,而 是不再单步执行被调函数内的语句,全速执行完所有剩余的语句,回到调用函数 处。

第 7 个按钮(图标为箭头指向{}),功能是执行到当前光标所在行,快捷键 是 Ctrl+F10,如果单步执行的过程中想全速执行一段代码(如前面有一个需要运 行 1000 次的循环,如果不用全速运行的话,必须按 1000 次 F10,此时可以将光 标定位到该循环的后面,然后按Ctrl+F10)。

3. 监视寄存器、变量及端口的状态 单步执行的目的是为了能跟踪各个变量、寄存器及端口的状态变化,以便找出程序编写中存在的逻辑错误。下面是常用的 3 种方法:

1)单步执行的过程中,鼠标指向代码中相关变量,会提示其当前值。

2)在左侧的“Register”(寄存器状态)窗口中,可以看到部分特殊功能寄 存器的值,如果某个值刚刚被修改,则会高亮显示。

3)打开 Peripherial菜单,可以查看各中断、I/O口、串口及定时/计数器的 状态,这在调试相关程序时非常有用。

这是单击“Port 0”子菜单后,打开的 P0 口各位状态的窗口:

第 1 行显示的是 P0 口端口寄存器的状态,如果执行了对 P0 写的语句(如

P0=0x00),这里的状态就会发生改变。

第 2 行显示的是 P0 端口各对外引脚的状态,默认为全 1,当需要模拟外部 输入的时候,可以通过单击第 2 行的相应位进行输入(有勾表示 1,无勾表示 0)。 如现在想模拟 P0.0 引脚上输入一个低电平,则只需将第 2 行最右端(第 0 位) 的勾去掉。接下来当程序读取 P0.0引脚时,就会读到 0。

4. 设置断点 调试程序时如果仅靠单步执行,则显得过于麻烦。特别是对于一些比较大型

的程序,我们可能只希望对其中一部分代码仔细跟踪观察,此时可以设置断点。 顾名思义,断点就是程序执行到此处就会停下来,这时可以再结合单步执行来仔

细追踪调试。

4 个断点工具按钮

表示此断点当前无效,即运行到此处不会停下来)。

如果想取消断点,只需将光标定位到断点行,然后再次单击这个按钮即可。 取消断点是将断点彻底消除掉,不可恢复;如果想暂时不在断点处停止运行,而不是永久消除断点,可以使用第 2、第 3 个按钮将断点设置为暂时无效。

第 2、第 3 个断点按钮(红色圆点图标后面,分别为单个红色圆圈和两个红 色圆圈)的功能是将当前光标所在行的断点(第 2 个按钮)或所有断点(第 3 个按钮)设置为无效或有效。注意这同样是个乒乓开关,按一下设为无效,再按 一下又恢复为有效。

第 4 个按钮(图标为两个红点和一个黄叉)的功能是删除所有断点,对应的 快捷键是 Ctrl+Shift+F9。

5. 调试状态下的其他窗口

这些按钮对应于各个调试窗口在调试状态下,除了上面所提到的寄存器窗口、代码窗口外,还可以看到很 多其他窗口,这些窗口都可以通过工具栏第 2 行后半部分的各个按钮打开和关闭。

常用的有以下几个:

Disassembly Window(反编译窗口,对应红线上方第 2 个按钮,上图中最右 上方的窗口):该窗口中显示每一行代码对应的汇编语言指令;

Symbol Window(标识符窗口,对应红线上方第 3 个按钮,上图中最右下方 的窗口):该窗口中显示程序中全部变量、常量及函数的数据类型、存储空间、地址及当前值。

Memory Window(存储器窗口,对应红线上方第 7 个按钮),可显示内部 RAM、内部 ROM 及外部 ROM 等存储的信息。在地址前加 D:则显示内部 RAM 中的信息,地址前加 C:则显示内部 ROM(程序存储器)中的信息,地址前加 X:则显示外部 ROM 中的信息。

6. 配置 Keil 与 Proteus 联机仿真

在 Proteus 中绘制好硬件电路图,在 Keil 中调试运行程序,即可在 Proteus 中观察到硬件的运行状态(如 LED 的闪烁、继电器的动作等),这样可以在不需 要实际焊接硬件线路和烧录程序的前提下实现纯软件仿真。

实现 Keil 与 Proteus 联机仿真的设置如下:

(一)计算机系统中应该安装有 TCP/IP 协议(一般操作系统默认安装,任 何能正常上 的计算机都满足这个条件),因为两个软件是通过该协议通信的。 需要注意的是当出现防火墙的拦截提示时,应该选择“解除阻止”,允许其正常 通信。

(二)Keil 端的设置

参见前面设置工程属性(第 5 页)的操作步骤,打开“Options for Targe‘t

1’”菜单,在工程属性窗口中,选择“Debug”标签页:

Target

6b1d116aa617165f59bfe34e4c134eab.png

单击选中红色椭圆中的“Use”前的单选钮,并将其后的下拉菜单设置为

“ProteusVSMSimulator”,若找不到这一项,可以先关闭 Keil,下载一个名为

vdmagdi.exe 的驱动程序并安装后,再次打开 Keil 即可。 其他均保持默认,至此,Keil 端设置完成。

(三)Proteus 端的设置

Proteus 端的设置很简单,只需将“Debug”菜单下的“Use Remote Debug

Monitor”勾选上即可。

完成上面的设置后,在 Keil 里面启动调试,并运行程序(单步或全速均可), 即可在 Proteus 里面看到响应。在 Keil 里停止调试后,Proteus 里的仿真运行也会 自动停止。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114462 人正在系统学习中 相关资源:2012年下半年软件设计师上午试题及答案-软考等考文档类资源-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月15日
下一篇 2021年4月15日

相关推荐