欣欣学习网,老工程师带你学习单片机技术,欢迎来坐坐。
首  页 | 学习NIOSII | 学习C51 | 学习CPLD | 51+CPLD实验板 | | | MY-RTOS

 实验板首页
 安装QuartusII软件
 安装USB-Blaster驱动
 安装CH340C驱动
 安装Keil uVision软件
 运行Hello World例程
 新建Keil uVision工程
 在Flash中运行程序
 恢复CPLD中的出厂逻辑
 安装调试代理程序
 硬件架构分析
 实现LCD驱动接口
 实现数码管驱动接口
 实现4x2键盘接口
 使用ADC采集拟量
 使用EEPROM保存数据
 使用UART通信
 红外遥控信号解码
 用作USB转232/485
 相关软件与文档


新建Keil uVision调试工程


PC机系统配置要求:WIN7-64BIT、WIN10、WIN11

在这里通过构建一个完整的可用于调试的工程,来演示设置调试工程有哪些要点。

在体验这一演示之前,要做好以下准备:

1、在你的电脑上已安装有 Keil uVistion 软件。安装方法参见 安装 Keil uVision 软件

2、在你的电脑上已安装好 CH341C 的驱动程序。安装方法参见 安装 CH341C 驱动挰序

3、实验板的 CPLD 出厂逻辑未被更改。如已更改,需先行恢复,方法参见 恢复CPLD的出厂逻辑

4、实验板的单片机中已安装调试代理程序。如未安装,需先行安装,方法参见 安装调试代理程序

1.

点击 这里 下载 Hello World 范例工程。

2.

解压后,删除 Hello World 文件夹内除了 APP 文件夹以外的所有文件和文件夹。

3.

双击桌面上的图标,打开 Keil uVision5 软件。点开 [Project] 菜单,找到并点击 [New uVision Preject...] 命令。

4.

在路径栏目里选择 Hello World 文件夹,在文件名栏目里输入工程的名字,然后点击 [保存] 按钮。

5.

在器件选择窗口里,先找到 [Intel] 并点开,再找到 [8032AH] 并选中,最后点击 [OK] 按钮。之所以选择这个器件,是因为我们希望使用最素颜的51单片机做为我们的研究对象。其他家的产品或多或少都做了一些特化,只有 Intel 的才是最标准的。

6.

点击 [是] 按钮,生成新的工程。

7.

[Project] 窗口里,右键点 [Target1] 条目。在弹出的右键菜单上,找到并点击 [Manage Project Item...] 命令。

8.

在弹出的对话框内,点击 [Project Targets] 窗口上方的 [X] 按钮,删原有内容。

9.

再点击 [Project Targets] 窗口上方的 [□] 按钮,新建一个工程条目,以 APP 命名。

10.

点击 [Groups] 窗口上方的 [X] 按钮,删除原有内容。

11.

点击 [Groups] 窗口上方的 [□] 按钮,新建条目并命名为 SRC。再次点击 [Groups] 窗口上方的 [□] 按钮,新建第2个条目,取名 INC。按照通常的习惯,APP 代表应用程序,SRC 代表源文件,INC 代表头文件。把文件如此分类,其他人更容易看得懂。

12.

[Groups] 窗口里选中 [SRC] 条目,然后点击 [Add Files...] 按钮,向该条目下添加文件。

13.

先将 [文件类型] 设定为 C Source file(*.c),再浏览找到 APP 文件夹下的 SRC 文件夹,选中该文件夹下的所有文件。点击 [Add] 按钮,加到 [SRC] 条目下,再点击 [Close] 按钮,关闭对话框。

14.

[Groups] 窗口里选中 [INC] 条目,然后点击 [Add File...] 按钮,向该条目下添加文件。

15.

先将 [文件类型] 设定为 Text file(*.txt; *.h; *.inc),再浏览找到 APP 文件夹下的 INC 文件夹,选中该文件夹下的所有文件。点击 [Add] 按钮,加到 [INC] 条目下,再点击 [Close] 按钮,关闭对话框。

16.

[Groups] 窗口里选虽 [SRC] 条目,然后点击 [Add Files...] 按钮,再次向该条目下添加文件。

17.

先将 [文件类型] 设定为 Asm Source file(*.s*; *.src; *.a*),再先中 Hellp World 文件夹下的 STARTUP.A51 文件。点击 [Add] 按钮,加到 [SRC] 条目下,再点击 [Close] 按钮,关闭对话框。

18.

点击 [OK] 按钮,关闭 [Manage Project Items...] 对话框。

19.

右键点 [Project] 窗口的 [APP] 条目。在弹出的菜单上点击 [Optios for Target 'APP'...] 命令。

20.

选中 [Target] 页。在 [Xtal(MHz)] 的文本框内输入 22.1184,因为学习板的时钟频率是 22.1184MHz。在 [Eprom #1][Start] 文本框里输入 0x2000[Size] 文本框里输入 0x2000。在 [Ram #1][Start] 文本框里输入 0x0000[Size] 文本框里输入 0x2000。在这里被调试的程序并没有存放在 0x0000 地址开始的程序空间,而是放在了从 0x2000 地址开始的程序空间,因为 0x0000 地址开始的 8K 程序空间被调试代理程序占用了。这样调试好的程序,只需更改地址段重新编译就可以运行在正常的程序空间上。

21.

选中 [C51] 页。勾选 [Interrupt Vectors at address] 设置设项,并在其文本框内输入 0x2000。因为要运行在从 0x2000 开始的程序空间上,所以中断向量表也要放在这一空间。在 [Include Paths] 文本框内输入 APP\INC\。将 [Code Optimization][Level] 设置为 7

22.

选中 [Debug] 页。点击右侧的 [USE] 单选按钮,并在其后的复选框内选择 [Keil Monitor-51 Driver]。勾选 [Load Application at Startup] 选项和 [Run to main()] 选项。最后点击右侧的 [Setting] 按钮。

23.

在弹出的对话框内,勾选 [Serial Interrupt] 选项,然后将 [Buadrate] 设置为 57600,再将 [Port] 设置成学习板的通信口号,最后点击 [OK] 按钮。学习板的通信口号可以在 Windows 的设备管理器中查看,参见:安装 CH341C 驱动程序

24.

点击 [OK] 按钮,结束设置。

25.

[Project] 窗口里,点开 [SRC] 条目,双击 STARTUP.A51 的文件名,右侧的代码窗会显示 STARTUP.A51 文件的内容。拖动滚动条找到 ?C_STARTUP 标号,在这一标号的上一行有一条语句:CSEG AT 0,将其改为 CSEG AT 0x2000。这一更改,也是和程序要运行在从 0x2000 地址开始的程序空间有关。点击 [Save] 按钮,保存刚才的修改。

26.

[Project] 窗口里,右键点击 [APP] 条目。在弹出的菜单上点击 [Rebuild all target files] 命令,重新编译工程。

27.

将学习板用USB电缆连接到电脑的USB口上。点开 [Debug] 菜单,然后点击 [Start/Stop Debug Session] 命令,启动调试工具。

28.

经过短暂的程序下载过程之后,应用程序启动并停在了 main() 函数的第1行语句处。接下来,我们就可以进一步的做一些调试操作了,参见:运行Hello World程序

以上各步展示了如何建立一个用于调试的应用程序工程。和正常的应用程序工程相比,有3处不同:

1. 程序运行空间的起始地址为 0x2000 ,而不是 0x0000

2. 程序的中断向量表放在 0x2000 地址,而不是 0x0000 地址;

3. 在 STARTUP.A51 中,程序的第1条指令存放在 0x2000 地址,而不是 0x0000 地址;

应用程序调试好之后,将以上3处地址的设置恢复成 0x0000,再重新编译,应用程序就可以运行在正常的地址空间上了。




管理员信箱: stonewayqi@hotmail.com

欣 欣 学 习 网

粤ICP备2023138008号