×
单片机 > 单片机程序设计 > 详情

Keil C51单片机集成开发环境编程与调试教程

发布时间:2020-08-24 发布时间:
|

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

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

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

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

3)编译;

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

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


二、Keil中新建工程的步骤

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


在此对话框中选择存放工程各类文件的路径和文件夹,然后为工程的主文件取个名字,以后单击该主文件即可打开这个工程项目。


2. 选择单片机型号 上个窗口关闭后,马上会呈现下面这个窗口,在这里我们要选择所使用的单片机型号。


具体到这里,我们选择 Atmel 文件夹下的 AT89C51。(也可以选择下面的

AT89C52、AT89S51 或 AT89S52)


注意:单击 OK 后会出现下面这个提示信息:


这里一定要选“否”,即:不需要自动添加起始代码。


完成后,即可看到 Keil 主界面:


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


3. 新建源代码文件 单击菜单“File——New……”之后,即可在编辑区看到新建了一个名为 text1的文本文件。 单击工具栏上的“保存”(图标为磁盘)按钮,可以在保存文件对话框中选择这个文本文件的保存位置(一般和工程文件保存在同一级文件夹)和文件的主 名及扩展名。如果只有一个源代码文件,一般主名命名为工程名,若是 C 语言 源代码,扩展名设置为.c 即可。设置为.c 扩展名的目的,是为了告诉系统这是 C 语言源代码,Keil 会进行语法着色。


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

在随后弹出的对话框中选择刚才建立的源文件。

注意,这里选中文件单击“Add”后对话框并不消失,可以继续添加多个文 件,添加完成后要单击“Close”才能将对话框关闭。


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

此时,就可以在右侧的编辑区进行代码的编写了。也可以将已经编写好的代码粘贴进来。


同理,利用“Source Group 1”上的右键菜单也可以将某个文件移除出工程, 移除并不是彻底删除掉文件(文件还保留在磁盘上原来的位置),只是将文件排 除出工程的编译范围,该文件就不会参与编译了。


5. 设置工程属性

1)单击“Project”窗口中的“Target 1”图标,使其高亮显示(蓝底白字)。

2)单击 Project——Options for Target ‘Target 1’ 打开如下窗口。 注意一定要确保步骤 1),如果是其他部分处于高亮,则找不到 2)中的菜单项。

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


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


其他项目可以保持默认,生成的二进制程序文件默认保存在工程文件所在的文件夹中,扩展名为.hex


6.编译源代码

单击工具栏第 2 行左起第 3 个图标“ReBuild all Target Files”,即可启动编译 过程(第 2 个图标也可以,一般在修改了代码后习惯用第 3个“重新编译”),若 有错误,在下方的信息窗口中会给出提示,若显示“0 Error(s), 0 Warning(s).”(0 个错误,0 个警告)则意味着编译通过(有时有警告存在也可编译通过,只要错 误为 0 个即可,但谨慎起见,对警告也应该重视)。

单击工具栏

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


此处为提示信息窗口


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


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


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


三、基本调试方法

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


1. 进入与退出调试状态

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

2. 单步运行程序

进入调试状态后,第 2 行工具栏会自动变成“调试工具栏”,代码窗口中的 黄色箭头代表下一步要执行的行,刚进入调试状态时黄色箭头指向 main 函数的 第一条执行语句。


上图红线上方(第 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 个断点工具按钮

设置断点的方法:


1)将光标定位于要设置断点的行;

2)单击“设置断点按钮”。该按钮位于工具栏第 2 行,为启动调试的“红色

d”按钮


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2