
1.6 单片机开发软件
Keil软件是美国Keil Software公司出品的51系列兼容单片机C语言软件优秀开发系统,与汇编语言相比,C语言在功能、结构、可读性、可维护性上有明显的优势,用过汇编语言后再使用C语言来开发,体会更加深刻。它集编辑、编译、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。
Keil软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外,Keil生成的目标代码效率非常高,多数语句生成的汇编代码紧凑、易理解,在开发大型软件时更能体现高级语言的优势。
1.获得软件
读者可以从网站(www.keil.com/download/product)下载Keil软件的可执行文件(文件名为MCS-51v903)。
2.安装软件
(1)执行Kei1 μVision 4安装程序,选择Eval Version版进行安装。
(2)在后续出现的窗口中全部选择“Next”按钮,将程序默认安装在C:\Program Files\Keil文件夹中。
(3)将光盘“头文件”文件夹中的文件复制到C:\Program Files\Keil\MCS-51\INC文件夹里。
Keil μVision IDE软件安装到计算机上的同时,会在计算机桌面建立一个快捷方式。
安装、下载其他软件的方法与此类似。
3.软件的使用
1)建立工程
双击Keil μVision IDE的图标,启动Keil μVision IDE程序,进入Keil μVision IDE 4的主界面如图1-15所示。

图1-15 Keil μVision IDE 4的主界面
选择“Project”→“New μVision Project”命令,如图1-16所示,出现“Create New Project”对话框如图1-17所示,在文件名处输入所建工程名称,选择需要保存的路径,然后单击“保存”按钮。

图1-16 建立工程

图1-17 保存工程
工程保存之后,出现如图1-18所示对话框,在其中选择生产厂家及单片机型号。本书所使用的为宏晶公司的STC系列单片机,但是在CPU列表中没有这种型号,读者可以去宏晶公司网站(www.stcmcu.com)下载UV3.CDB文件,把该文件解压并改文件名为UV4.CDB,复制到Keil安装路径中的UV4文件夹中,即出现图1-19所示的单片机型号。

图1-18 单片机选择

图1-19 新增STC系列单片机
选择STC89C51RC系列的单片机,确认后弹出如图1-20所示对话框,询问是否要将8051的标准启动代码源程序复制到工程所在文件夹并将该文件添加到工程中,对于初学者选择“否”即可。

图1-20 询问是否将51的标准启动代码复制到工程中
2)输入源程序
选择“File”→“New”命令新建一个空白文本文档,选择“File”→“Save”命令保存所建文本于项目文件夹中。文件格式为:文件名.扩展名(即后缀),如果是C语言编写的程序则扩展名为C,即“文件名.C”;若是汇编语言编写的程序则扩展名为ASM,即“文件名.ASM”。本书用C语言编写程序,以“示例”为文件名,如图1-21所示,接下来就可以在新建文本中录入事先编好的程序,如图1-22所示。

图1-21 保存源文件

图1-22 源程序录入
3)添加文件至项目
单击“Target1前的“+”号,出现“Source Group 1”,右击“Source Group 1”出现下拉菜单如图1-23所示,选择“Add Files to Group 'Source Group 1'”命令,出现如图1-24所示对话框,选择刚才保存的文件,双击确认后即可将源程序加入到工程中,如还需加入程序则继续添加,若不需要添加,则关闭对话框即可。

图1-23 添加源程序

图1-24 加入源程序
4)设置代码文件
工程建立好之后,如需将程序烧入到单片机中,则在编译时需要生成十六进制的代码文件,这就需要代码文件设置。
选择“Project”→“Options for Target 'Target 1'”(设置工程)命令,出现如图1-25所示对话框,切换到“Output”选项卡,勾选“Create HEX File”复选框,编译时就会产生HEX (十六进制)文件。

图1-25 生成HEX文件
5)程序编译
接下来的工作就是编译程序,即将C语言程序编译为单片机所能识别的机器代码。
Keil软件常用的工具图标如图1-26所示。

图1-26 Keil工具图标
选择“Project”→“Build target”命令进行程序编译。如果有程序出错则在“Build Output”界面中有错误报告,双击错误提示可以定位到程序的错误行或者错误行的上一行,然后对程序进行修改,之后重新编译直到出现“0 Error(s),0 Warning(s)”字样。报告显示连接后生成程序代码量为1254字节(code=1254),内部RAM使用量为34.1字节(data=34.1),外部RAM使用量为0字节(xdata=0),提示生成了名为“示例”的HEX文件,如图1-27所示。

图1-27 Build Output
如果不想进入仿真步骤,则可直接将HEX文件下载到单片机电路板上,给电路板上电后就能观察到实际的显示效果。关于下载过程请读者参考本书附录。
6)程序调试与仿真
为了让初学者更容易入门,平凡单片机工作室利用Keil提供的AGSI接口开发了两块实验仿真板,键盘、LED显示实验仿真板和单片机实验仿真板如图1-28和图1-29所示,读者可以从平凡单片机工作室网站(www.mcustudio.com)下载。键盘、LED显示实验仿真板在P1口接有8个发光二极管,在P3口接有4个独立式按钮;单片机实验仿真板接有8个共阳极LED数码管、16个按键(接成4×4的矩阵式),另外P1口接有8个发光管、两个外部中断按钮、一个带有计数器的脉冲发生器等资源。

图1-28 键盘、LED显示实验仿真板

图1-29 单片机实验仿真板
(1)实验仿真板的安装。
这两块实验仿真板实际上是两个dll文件,名称分别是LEDkey.dll和simboard.dll,安装时只要把这两个文件复制到Keil μVision4安装目录下的\Keil\MCS-51\BIN中,然后修改Tool.ini文件(此文件位于Keil μVision4安装目录\Keil下),把“AGSI1=LEDkey.dll ("LEDkey")”和“AGSI2=simboard.dll ("simboard")”添加到“MCS-51”部分的后面,然后重启Keil软件。
(2)实验仿真板的使用。
要使用仿真板,必须对工程进行设置,设置的方法是选择“Project”→“Option for Target 'Target1”命令打开对话框,然后选中“Debug”标签页,勾选“Use Simulater”复选框。
接着编译程序,选择“Debug”→“Start/Stop Debug Session”命令或者双击“Start/Stop Debug Session”的快捷图标,然后单击“Peripherals”选择所需要的仿真板,最后选择“Debug”→“Run”命令或双击“Run”的快捷图标,就可以看到对应程序的运行结果。
(3)实验仿真板实例测试。
以键盘、LED显示实验仿真板为例,使用以下程序测试,结果如图1-30所示。
//单片机实验仿真板定义:simboard //P1:LED灯 //P0:数码管段码,低电平有效 //P2:数码管位码,低电平有效 //P3:矩阵键盘 #include<reg51.h> //51系列单片机头文件 #include<stdio.h> //标准I/O库函数头文件 #define uint unsigned int //宏定义 void main() //主函数 { while(1) //大循环 { P1=0xAA; } }

图1-30 键盘、LED显示实验仿真板测试
7)使用Keil软件注意事项
(1)保存工程时,输入的工程名后不要加后缀。
(2)保存源程序时,输入文件名后一定要加后缀,即“文件名.C”或“文件名.ASM”。
(3)输入源程序时务必将输入法切换成英文半角状态。
(4)单片机所有特殊功能寄存器一律用大写字母。
(5)当创建一个工程并编译这个工程时,生成的HEX文件名与工程文件名相同,添加的源程序代码可以有很多,但HEX文件名只能和工程文件名相同。
通过上面的学习,读者已经对单片机及其开发软件有了一个初步认识,从下一个项目开始,本书将引导你如何运用MCS-51(选择STC89C51RC)单片机作为大脑,采用C语言编程,通过多个训练项目的学习与训练,学会用单片机控制不同的外围硬件设备,实现多个基础和综合智能任务。这些任务的完成,会使你在无限的乐趣之中,不知不觉地掌握单片机内部结构及接口技术,以及单片机C程序设计技术,轻松走上单片机嵌入式系统开发之路。