第8章 51单片机开发平台的使用
【教学目的】
本章主要学习和掌握Keil开发软件的使用,了解CS-III硬件平台的功能特点,进而可以独立使用软件工具和硬件平台进行51系列单片机的应用设计和开发。
【教学要求】
通过本章学习,要求熟悉和掌握Keil开发工具完成代码的编译、链接、调试和下载,了解CS-III开发板的组成结构和功能特点,以及使用跳线连接开发板上的电路。
【重点难点】
本章的重点是学习和掌握Keil集成开发环境的使用,难点是单片机项目开发的步骤和硬件平台的使用。
【知识要点】
本章的重要知识点有:Keil集成开发环境的应用,工程的配置,常用调试命令的使用,以及目标代码下载和去执行。
8.1 Keil集成开发环境的使用
Keil集成开发环境是单片机设计开发中常用的软件。该集成开发环境主要包含编译器、汇编器、实时操作系统、项目管理器、调试器等。强大的软件仿真调试功能使单片机的设计开发事半功倍。
8.1.1 Keil集成开发环境概述
Keil是美国Keil Software Inc/Keil Elektronik GmbH公司开发的基于80C51内核的微处理器软件开发平台。Keil作为一个功能强大的集成开发平台,不仅提供了丰富的库函数,而且还内嵌了多种符合当前工业标准的开发工具,用户可以通过该开发平台完成工程的建立和管理,程序的编译、连接,目标代码的生成、软件仿真、硬件仿真等完整的开发流程。
Keil通过集成Keil C51标准C编译器及Keil A51标准汇编编译器能同时支持汇编语言和C语言开发。尤其是它的C 编译工具C51在产生代码的准确性和效率方面达到了较高的水平而且可以附加灵活的控制选项,从而使其成为开发大型项目时的理想选择。Keil集成开发环境(IDE)的Windows版本命名为Keil uVision,目前最新版本是9.0版。
8.1.2 Keil单片机软件集成开发环境的整体结构
Keil uVision的集成开发环境主要包含以下几个部分:
◆ 一个工程管理器和代码编辑器;
◆ 一个负责编译C代码的C51编译器;
◆ 一个负责编译汇编代码的A51汇编器;
◆ 一个负责将编译结果创建生成库文件的库管理器LIB51;
◆ 一个实时多任务操作系统RTX51;
◆ 一个负责将编译结果和库文件连接生成绝对目标文件(.ABS)的连接器L51或BL51;
◆ 一个负责将ABS文件转换成标准Hex文件的转换器OH51;
◆ 一个实现对Hex文件进行源代码级调试的调试器dScope51或tScope51。
Keil uVision各部分的结构如图8-1所示。
图8-1 Keil工具包整体结构图
对于最后转换生成的Hex文件既可以使用Keil集成的调试器dScope51或tScope51进行调试,也可使用仿真器直接对目标板进行调试,或者直接写入程序存储器如EPROM中。
8.1.3 Keil工具套件介绍
上节介绍了Keil 51开发套件全部工具,Keil针对不同的开发者,提供了不同的工具套件,下面我们将按照功能由强到弱,依次介绍。
1.PK51-C51专业开发者套件
PK51-C51包括了专业的8051开发者创建复杂应用系统所需要的一切工具,该套件所包含的主要组件如下:
◆ C51 优化C 编译器;
◆ A51 宏汇编器;
◆ BL51 代码连接器/定位器;
◆ OC51 目标文件转换器;
◆ OH51 目标十六进制转换器;
◆ LIB51 库文件管理器;
◆ dScope-51 模拟器/调试器;
◆ tScope-51 目标调试器;
◆ Monitor-51 ROM 监视和终端程序;
◆ 集成开发环境:RTX-51 Tiny 实时操作系统。
另外专业开发者套件还包括为用户提供的两个开发工具Windows 版dScope-51 模拟器/调试器和Windows 版uVision/51 集成开发环境。专业开发者套件可配置用于所有8051派生器件,该套件中所有工具需运行在IBM PC386 或以上兼容机的DOS 环境下。
2.DK51-C51 开发者套件
DK51-C51 开发者套件是为那些需要在完全DOS 环境下进行8051 开发的用户设计的。该套件可使用户在DOS 开发平台上创建复杂的嵌入式应用系统。该套件包括以下组件:
◆ C51 优化C 编译器;
◆ A51 宏汇编器;
◆ BL51 代码连接器/定位器;
◆ OC51 目标文件转换器;
◆ OH51 目标十六进制转换器;
◆ LIB51 库文件管理器;
◆ dScope-51 模拟器/调试器;
◆ tScope-51 目标调试器;
◆ Monitor-51 ROM 监视和终端程序。
开发套件可配置用于所有8051派生器件,该套件中所有工具需运行在IBM PC386或以上兼容机的DOS环境下。
3.CA51-C51编译器套件
CA5-C51编译器套件是需要C 编译器而不需要调试系统的开发者的最佳选择套件。该套件可使开发者为目标硬件创建8051 应用系统,可配置用于所有的8051 派生器件。该套件中的工具需运行在IBM PC386 或以上兼容机的DOS 环境下。
4.A51-A51宏汇编器套件
A51 宏汇编器套件包括8051汇编器和所有创建8051应用系统所需的工具。该汇编器套件可配置用于所有的8051派生器件,该套件中的工具需运行在IBM PC386或以上兼容机的DOS环境下。
5.DS51-dScope-51模拟器套件
DS51 模拟器套件包括与A51汇编器套件一起使用的调试器/模拟器和CA51编译器套件。由于模拟器可对程序指令进行单步操作,使用该套件可迅速找出8051应用系统出现问题的位置,还可以观察程序变量SFR和存储器。该套件包括以下组件:
◆ dScope-51 模拟器/调试器;
◆ tScope-51 目标调试器;
◆ Monitor-51 ROM 监视和终端程序。
该模拟器套件可配置用于大多数8051派生器件。该套件中的工具需运行在IBM PC386或以上兼容机的DOS 环境下。
6.FR51 RTX 51 Full 实时内核程序
FR51 RTX 51 Full 实时内核程序是一个用于8051单片机的实时操作系统。RTX-51 Full全实时内核提供特征超集以及BITBUS和CAN通信协议界面库。表8-1为每个开发工具套件的项目清单,通过该表用户可选择最合适的工具套件。
表8-1 开发工具套件比较表
8.1.4 Keil软件的安装
用户的开发机必须满足最小的硬件和软件要求才能确保编译器以及其他程序功能正常。Keil软件的使用至少应该满足下面的要求。
处理器:Pentium-II或兼容的PC处理器。
操作系统:Windows95或Windows NT4.0。
内存:16MB RAM以上。
硬盘:20MB以上。
在满足以上条件的基础上,可以安装Keil软件。具体的步骤如下:
(1)将正版的Keil软件打开,进入其中的setup文件夹,双击Setup.exe,弹出如图8-2所示窗口,开始安装uVision2。
图8-2 Keil 选择安装界面
(2)选择Full Version,点击Next,出现安装路径选择界面(可直接按默认路径安装)。选择完路径后点击Next弹出注册窗口,如图8-3所示。
图8-3 Keil安装初始信息的输入
(3)填写完整的序列号,以及用户名等信息后就开始文件的拷贝和安装。安装成功后如图8-4所示。
图8-4 Keil安装界面
8.1.5 Keil 集成开发环境菜单及窗口介绍
完成Keil的安装后,桌面会自动生成名为Keil uVision的快捷图标,双击图标即可进入如图8-5所示的集成开放环境,该软件的窗口界面主要由位于上部的菜单栏和工具栏和位于下部的编辑窗口和信息查看窗口组成。
图8-5 Keil窗口界面
菜单栏将用户的操作命令按照不同的类型组织到不同的菜单项里,工具栏将最常用的命令以快捷图标的形式罗列出来,用户可以按照自己的喜好自定义工具栏里命令图标的布局。
编辑窗口用于编写C或汇编代码,最下面的状态栏将显示当前编辑窗口中鼠标所在的代码行号以及读写属性。编辑窗口左边是一个标签式窗口,分别用于查看工程的文件,寄存器的值以及工具自带的大量帮助文件。下面三个并排的窗口分别用于显示程序的输出信息、变量的值以及存储空间的值。各菜单栏的具体信息如下表8-2~表8-10所示。
表8-2 文件菜单和文件命令
续表
表8-3 编辑菜单和编辑器命令
表8-4 视图菜单和视图命令
表8-5 工程菜单和工程命令
表8-6 调试菜单和调试命令
表8-7 外围器件菜单
表8-8 工具菜单
表8-9 视窗菜单
表8-10 帮助菜单
8.1.6 Keil IDE环境的使用
图8-6 Keil快捷图标
下面将按照一个项目的开发步骤介绍Keil开发环境的使用。
1.工程的建立
成功安装后,将会自动在桌面生成一个快捷图标,如图8-6所示,双击该图标即打开Keil集成开发环境。
如果上一次编译过一个工程,则软件启动后默认将打开上一次编译过的工程。如果要重新开始一次新的应用程序开发,则应该先建立工程并做好工程的相应设置,具体步骤如下:
(1)点击菜单栏的Project,在下拉菜单中选择New Project创建一个新的工程,如图8-7所示。
图8-7 New Project菜单
如果要修改以前建立的工程,可以直接选择Project菜单下的Open Project打开以前的工程进行编辑。
(2)选择好路径,填写上文件名后点击保存按钮将工程保存到所选路径下,如图8-8所示。
图8-8 创建工程对话框
保存工程时注意保存的路径,对以后建立的其他源文件或头文件,尽量保存在同一目录下,否则会造成工程管理混乱。Keil uVision2生成的工程文件是以uv2为后缀的。
(3)点击保存,进入如图8-9所示的器件选择界面。
图8-9 器件选择对话框
左边列出的是按厂家进行分类的器件组,Keil针对各CPU制造商的不同型号CPU模块完成不同的特定编译。我们的实验板使用的是Atmel公司的At89S52芯片,如图8-10所示,选择AT89S52。
图8-10 AT89S52芯片选择界面
左边选择了芯片型号以后,右边Description栏会给出所选择的芯片的具体参数,如内核、端口数、定时器、内存大小等。
(4)点击确定,弹出如图8-11所示的对话框。
图8-11 初始化代码拷贝确认框
表示是否将系统提供的该芯片的初始化代码拷贝在该工程目录下,由于Keil连接器能够自动识别器件目录下的头文件,所以我们最好选择“否(NO)”,一个工程即被建立。
2.工程的设置
如果我们只利用Keil来编译源程序并进行软件的调试或仿真,工程就建立完毕,但我们实际上需要将源文件编译后下载到真实的实验板上,通过我们实验板上的单片机AT89S52去执行程序,所以我们还需要通过设置使工程编译完后输出一个可被机器直接执行的文件,因此我们还得完成工程设置这一步。
在编译器左边的Files窗口中选中Taget1,点击右键,如图8-12所示。
图8-12 TARGET设置
选择Option for Target ‘Target 1’,即打开了工程的配置窗口,如图8-13所示。
图8-13 工程的配置窗口
一个工程的配置分成8个部分。
◆ Target 用户最终系统的工作模式的设定,它决定用户系统的最终框架;
◆ Output 工程输出文件的设定,例如是否输出最终的Hex 文件以及格式设定;
◆ List 列表文件的输出格式设定;
◆ C51 使用C51 处理的一些设定;
◆ A51 使用A51 处理的一些设定;
◆ BL51 Location 连接时用户资源的物理定位;
◆ BL51 MISC BL51 的一些附加设定;
◆ Debug 硬件和软件仿真的设定。
根据前面提到的需要我们选择output标签对工程的输出进行设置,将如图中箭头所指处的复选框选中,表示程序编译完成后生成可下载到机器上执行的十六进制文件。生成的文件自动保存在工程目录下,点击确定,完成工程的建立。
用户根据需要对其他几个部分完成设置后一个完整的工程就已经建立完毕了。
3.向工程里加入文件
(1)工程建立以后,我们需要向其中加入源文件,用来保存用户输入的源代码。点选File菜单或直接点击File下面的“New File”图标开始新建一个空的文本,如图8-14所示。
图8-14 New File图标按钮
(2)文本文件建立后,就可以直接在文本文件中编辑程序了,但建议在编辑源程序以前,最好先将文件保存为特定的格式,因为在已保存的源文件上编写代码时,相关的关键字会以彩色的字体显示出来。如C程序保存为.c 文件,汇编程序保存为.asm文件,如图8-15所示。
图8-15 文件保存对话框
软件默认的新文件名是Text加数字组成的,用户最好选择一个便于记忆的名字,这也是良好的编程规范所要求的。
(3)文件保存后,还需要将其添加到相应的工程里,具体方法如图8-16所示。
图8-16 文件添加到工程中
选择如上图菜单项,将需要的文件添加到该工程目录下。这样不仅便于通过工程管理文件而且可以十分方便地通过软件的文件视图窗口查找文件,文件视图窗口如图8-17所示,其中的STARTUP.A51是前面建立工程时选择后由软件根据cpu类型自动生成的初始化文件,Text.asm是用户新建的一个汇编源文件。
图8-17 文件视图
4.程序的编译调试
为了介绍如何用Keil进行程序调试,我们举个很简单的单片机延迟程序的例子,并完成对汇编源代码的编译和调试工作,读者先不用理解程序的语句,只需要知道该程序实现每隔一个固定时间改变指定端口的电平高低,如果该指定端口外接了一个发光二极管,则该二极管就会表现出周期性的亮和灭。程序代码显示如图8-18所示。
图8-18 延时子程序
对于程序编辑完成后,我们可以通过按“F7”或者鼠标点击按钮直接编译,输出栏中将会提示编译信息。如错误信息、警告信息、文件的大小等,如图8-19所示。
图8-19 编译结果输出窗口
如果我们编写的代码有语法上的错误,点击编译按钮后,在输出窗口也会输出提示信息,提示程序的第7行编译发现语法错误。如图8-20所示。
图8-20 程序编译错误提示
如果程序没有错误,根据我们在第一步最后的输出设置,编译器在编译通过后会生成一个与工程名同名的十六进制文件(*.hex)。我们可以先用软件模拟的形式来调试程序的运行情况,选择Debug菜单的Start/Stop Debug Session,如图8-21所示。
图8-21 Debug选择菜单
进入Debug状态后,我们可以选择多种调试方式,如断点、单步执行、,跟踪等,甚至可以直接打开与源程序对应的机器代码,在程序运行过程中,我们同样可以查看CPU的内部资源情况,以及寄存器数据变化情况等,如图8-22所示。
图8-22 调试状态下的寄存器查看窗口
由于我们的汇编程序里用到了R6和R7两个通用寄存器,所以,寄存器查看窗口里两个寄存器的值在变化。
我们可以具体选择内部资源的某个模块进行观察,方便程序的调试,针对本例子,由于我们的程序会改变P1端口的输出值,所以调试时我们选择Peripherals菜单下的I/O-Ports 1,打开相应端口的软件模拟状态窗口,如图8-23所示。
图8-23 打开端口状态窗口
打开端口状态窗口后,点击Debug菜单下的Go,或者直接用快捷键F5,让编译好的程序以全速执行,如图8-24所示。
图8-24 运行被调试的程序
这时在软件模拟的P1状态窗口中,P1口的第七位即会周期性地被选中和取消选中。如图8-25所示。
图8-25 P1口状态变化对比
从上图可以看出,在调试中,我们可以选择内部具体的资源情况进行查看,如中断、I/O端口、串口、定时器等,显示所选器件的具体信息。如图8-26所示为所选存储器的观察界面。
图8-26 存储器界面
存储器界面可以仿真内部存储器的内容。在地址框中输入需要观察的存储器地址,界面中将显示以该地址为起始地址的存储器内容。地址前面的前缀代表不同的显示内容。如果在输入的地址前面加前缀“D:”表示观察内部数据存储区内容;加前缀“C:”表示观察内部程序存储区内容;加前缀“I:”表示观察立即地址的内容。
我们也可以通过View菜单项选择机器代码窗口、汇编代码窗口(C源程序)、程序性能分析窗口等。配合使用这些友好的界面,我们在程序调试过程中,就可以及时、全面地掌握程序的运行情况。
关于其他的调试命令,如单步、设置断点等的使用方法同于其他高级语言的调试,由读者自行学习使用。
8.2 CS-III单片机开发板的使用
CS-III单片机开发板由西南科技大学计算机学院专门从事嵌入式设计和开发的教师设计完成。这批教师有丰富的单片机教学和工程经验。系统的设计开发结合教学和工程设计进行。在开发过程中,反复实验并不断完善,并根据实验板可做实验的多样性、可实际利用性、可扩展性、低成本性和灵活购买五方面的特性设计出该款产品,最终使该实验板成为最有利于初学者学习及以后开发使用的实验板。
8.2.1 CS-III单片机开发板介绍
本设备使用USB接口进行供电和数据传输,不需要单独供电。在学习和开发的时候,只需要将系统插入PC机的USB接口,就可以进行设计和开发,使用十分方便。系统还提供了丰富的外围资源,简化开发过程,为学习和相关项目的开发提供仿真调试平台。
本实验板汇集了全部单片机初学时所需要完成的基本实验功能,同时也为开发者提供大量的外围接口,主要包括:流水灯、数码管、蜂鸣器、定时器、计数器、串口通信、红外通信、按键实验、脉冲中断实验、IIC通信实验等基本实验,以及通过扩展组件实现的LED显示实验、LCD液晶显示等实验。开发板如图8–27所示。
图8-27 开发板图
开发板主要功能和特点如下:
(1)使用CPU主模块与实验板分离设计的方式,兼容不同类型的单片机模块。
(2)采用USB口ISP通信技术,支持在线编程,不需再单独配备电源,方便用户开发。
(3)所有I/O端口全部引出,方便与外部端口连接搭配。
(4)实验板上的功能器件设计时预留出许多跳线接口,减少过多的飞线连接。
(5)两路端口模拟显示,可直接模拟端口高低电平状态,方便用户观察。
(6)8位数码管显示,方便开发秒表、计算器以及显示特殊提示信息等。
(7)4×4矩阵键盘,状态模拟LED,可作键盘全扫描和逐行扫描,方便键盘功能开发。
(8)独立脉冲产生模块,可产生脉冲及方波,配合中断和计数器使用。
(9)普通键盘接口和鼠标接口,方便用户开发通信协议。
(10)串转并方式进行端口扩展,配合汉字点阵模块显示,可作汉字显示和字库开发。
(11)预留出可供扩展的显示模块接口。
(12)具有发声单元,配合定时器方便用户开发电子音乐盒。
(13)具有RS232转换电路,完成UART通信实验,可与上位机进行通信设计。
(14)具有液晶显示模块接口,方便用户开发液晶显示以及菜单系统的设计。
(15)红外模块,数据传输载波可调,便于用户进行红外产品及无线通信协议的开发。
8.2.2 单片机开发板驱动的安装
当用USB连接线将开发板连到开发机的USB口后,系统会自动弹出如图8-28所示的对话框。
图8-28 驱动程序向导
点击下一步进入硬件安装向导界面,如图8-29所示。
图8-29 硬件安装向导
选中搜索适于我的设备的驱动程序,然后点击下一步,可以看到如图8-30所示的界面。
图8-30 找到新的硬件向导
在指定一个位置前勾选,然后点击下一步。
在弹出的对话框中,点击浏览,选择开发板附带光盘中驱动程序文件夹下的CS-III.inf驱动文件,如图8-31所示。
图8-31 驱动文件选择
选择了驱动文件以后,系统开始复制相应的驱动文件,复制完毕后硬件向导将提示设备驱动安装完成,如图8-32所示。
图8-32 找到新的硬件向导
点击下一步,直到完成硬件安装,如图8-33所示。
图8-33 找到新的硬件向导
如果顺利完成安装,那么打开我的电脑→属性→硬件→设备管理器后,在通用串行总线控制器条目下就会增加名为西南科技大学计算机学院嵌入式实验室USB-ISP 51 仿真板的一项,如图8-34所示,说明开发板的驱动已经成功安装。
图8-34 完成驱动安装
8.2.3 CS-III单片机开发板程序的下载
编译调试完成后,如果想看到程序运行的真实效果,我们需要将生成的HEX文件下载到实验板上去运行。运行附带光盘中的ISP下载软件USBISP,将编译器生成的HEX文件装载进实验板的CPU中,光盘中提供了两个演示用的hex文件。
找到并双击USBISP.exe,如图8-35所示。
图8-35 下载软件
下载程序软件界面如图8-36所示。
图8-36 下载器界面
点击打开按钮,选择要下载到开发板上的hex文件,如图8-37所示。
图8-37 下载程序
程序开始将文件下载到开放板上,界面下方显示传输进度条,传输完成后显示统计出完成次数、失败次数以及总次数,如图8-38所示。
图8-38 下载程序完成
该软件有以下几个设置。
(1)Flash存储器。选择打算下载到开发板上去运行的十六进制文件(.hex)或二进制文件(.Bin)。
(2)EEPROM存储器。只要前面的USB连接及开发板驱动正常完成,此项将变灰,不用手动选择。
(3)编程操作。在软件下部右边有一竖排按钮,“检测”键用于校验写入的数据是否正确;“擦除”键用于对开发板EEPROM芯片上内容整片擦除;“下载”键完成将开发机上的文件下载到开发板的EEPROM上;“读取”键将开发板上的程序数据读出到开发机上。一般情况下我们可以直接点击“下载”键完成相应程序的下载。
同样是前面的test.asm程序,如果是将编译生成的十六进制目标文件(test.hex)用USBISP软件按上面步骤下载到CS–III开发板上后,则板子上对应的端口模拟指示灯就会开始闪烁,当然通用I/O端口的对应位也同样会周期性输出高低电平,可以根据开发者的需要将其外接其他器件。
【本章小结】
本章主要学习使用单片机的开发平台。Keil软件是单片机开发最常用的一个平台,应该熟练掌握。单片机学习的一个重要特点是应用,因此需要相应的单片机设计开发平台进行应用。本章以西南科技大学计算机学院自主设计开发的CS-III单片机开发板为例,详细介绍了单片机设计开发平台和开发板的应用,示范了单片机设计开发的一般过程,明确了单片机设计开发的基本目标和任务,对掌握单片机知识具有重要的价值和意义。
8.3 习题
使用Keil及开发板熟练地完成一个完整的单片机程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。