Keil集成的工程管理器使得开发应用程序更加容易,Keil平台把单片机系统软件部分作为一个工程对待,完整的程序设计过程包括选择工具集(对基于ARM的工程)、创建新的工程和选择CPU、添加工作手册、创建新的源文件、在工程里加入源文件、创建文件组、设置目标硬件的工具选项、配置CPU启动代码、编译工程和创建应用程序代码、为PROM编程创建HEX文件等。
针对单片机的程序设计,可以把Keil应用分为工程文件的创建、新建源文件并添加到工程中、程序编写、编译调试4个基本步骤。为了便于说明各个过程,这里我们以LED闪烁项目为例,简单介绍Keil的使用过程。电路以单片机最小系统为硬件基础,把一个LED接在P0.0接口,低电平有效。图2-2是在单片机最小系统基础上设计的LED闪烁电路。
图2-1 Keil μVision3 IDE的工作界面
1.创建工程文件,选择单片机芯片
单击Keil菜单中Project→New μVision Project菜单项,Keil将打开对话框,输入工程名称后即可创建一个新的工程。注意,新建工程要使用独立的文件夹。需要在新建工程对话窗口上点击新建一个文件夹,并取一个合适的名字,如“项目1-LED闪烁”,然后输入项目名称,如“LED闪烁”。在Project Workspace区域的Files选项卡里可以查阅项目结构,如图2-3所示。
图2-2 LED闪烁电路
图2-3 工作空间项目结构
工程文件建立后,Keil会自动弹出对话框要求为目标工程选择单片机型号,如图2-4所示。对话框包含了Keil的设备数据库,在左侧一栏选定公司和机型以后,在右侧一栏显示单片机的基本说明,选择将会为目标设备设置必要的工具选项,通过这种方法可简化工具配置。如果要使用的单片机为STC89C51,应选择Atmel公司的AT89C51或Intel公司的8051,它们与STC89C51有相同的内核。
图2-4 选择目标工程的单片机型号
程序需要通过CPU的初始化代码来配置目标硬件。启动代码负责配置设备微处理器和初始化编译器运行的系统。对于大部分设备来说,Keil会提示复制CPU指定的启动代码到工程中去。如果这些文件可能需要作适当的修改以匹配目标硬件,应当将文件复制到工程文件夹中,如图2-5所示。
图2-5 是否加入启动代码的对话框
工程中如果需要使用这些启动代码,则应选择“是(Y)”;如果不需要使用Keil编写启动代码可以选择“否(N)”。点击“是(Y)”后,工程建立完成。因为本项目采用C语言程序设计,在这里我们点击“否(N)”。
2.创建新的源文件并添加在工程中
(1)新建一个C语言文件
选择File菜单中的New选项或点击
图标以创建一个新的源文件,此时会打开一个空的编辑窗口,也就是编写程序的页面,用户就可以在此窗口里输入源代码。然后点击File菜单中的Save命令,以扩展名.c保存文件,如图2-6所示。这里保存的文件名为main.c。
(2)在工程里加入源文件
源文件创建后,需要在工程中加入这个文件。在工程工作区中,移动鼠标选择SourceGroup 1,然后单击鼠标右键,将弹出一个下拉窗口,如图2-7所示。选择Add Files选项会打开一个标准的文件对话框,在对话框里选择前面所创建的C源文件,然后单击“Add”,文件就会被添加到工程中,再单击Close关闭该对话框即可。文件被添加到工程后即可以开始编写程序代码了。除了添加程序代码文件到工程外,还可以添加头文件(*.h)和库文件(*.lib)等。
图2-6 创建main.c文件
(www.xing528.com)
图2-7 添加文件到工作组中
图2-8 文件组织结构
在Project Workspace中,Files页面会列出用户工程的文件组织结构,如图2-8所示。用户可以通过用鼠标拖拉的方式来重新组织工程的源文件。双击工程工作空间中的文件名,可以在编辑窗口打开相应的源文件进行编辑。
3.程序编写
在程序设计页面可输入语句或指令。程序中reg51.h为51系列单片机内部资源的头文件,包括各个特殊寄存器和可寻址位的地址定义等。“//”符号后面为对指令的说明。具体程序如下:
上面程序是利用单片机的1个I/O接口驱动一个LED闪烁的程序。掌握了单片机内部的寄存器以后,这个程序实际上很简单。这就是使用C语言进行单片机的程序设计的原因。利用C语言编写单片机程序,不用考虑单片机内部数据在单片机内部怎样运行,只要了解单片机执行程序按照所编写的程序顺序单步执行就可以了。
单片机程序在格式上要求严谨,结构层次清晰。为了增强程序的稳定性,所有函数没有返回值就用void声明,没有形参也需要写void。另外,为了避免程序编写错误,算术逻辑运算符号、左移右移、比较等符号左右留一个空格,每一条命令占用一行,在程序中“{”、“}”上下对齐,在“{”下一行命令要后退一个“Tab”键。
4.编译调试,并创建HEX文件
(1)编译工程用鼠标点击
按钮,就启动Keil对程序进行编译,同时也对程序进行保存,图2-9所示是编译结果显示窗口。如果程序有错误,会在“Output Window”窗口提示,用鼠标双击错误提示,将会看到一个箭头指向程序的错误处,便于修改。
(2)工程配置
图2-9 编译结果
编写的程序最终要在单片机内部运行,下载到单片机中的程序为二进制格式,编译过程主要目的就是让Keil自动创建一个HEX文件。程序设计结束需要根据目标硬件的实际情况对工程进行配置。通过单击目标工具栏图标
或Project菜单下的Options for Target,在弹出的Target窗口中可指定目标硬件和所选择设备内组件的相关参数,如图2-10所示。
图2-10 目标设置对话框
在Target窗口的选项中,Xtal为设置单片机的晶体振荡器的频率。大部分基于ARM的微控制器使用片内PLL作为CPU时钟源。依据硬件设备不同设置其相应的值;Operating System为选择一个实时操作系统;On-Chip ROM/RAM为定义片内的内存的地址空间,以供链接器/定位器使用。
(3)创建HEX文件
在Options for Target→Output中选择Create HEX file选项,软件会在编译过程中产生HEX文件,如图2-11所示。
图2-11 建立HEX文件对话框
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。