单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编 软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级 语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以 上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如 果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、 而你买的仿真机也很可能只支持该软件),即使不使用 C 语言而仅用汇编语言编程,其方便 易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
我们将通过一些实例来学习 Keil 软件的使用,在这一部份我们将学习如何输入源程序, 建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。
在这里利用led闪烁实验来建立keil工程
打开keil软件,版本μ Vision2 ,μvision3,μvision4 都一样,在这里用μvision4版本演示,打开之后如下图,有的时候会默认打开上次使用的工程,单击Project 菜单,选择
Close Project 关闭了默认打开的工程,显示下图界面:
我们要建立新的工程,选择Project→ newμ vision projiect…
选择工程要保存的路径,输入工程文件名,如图
点击保存后会弹出一个对话框,要求用户选择单片机型号,可以根据用户使用的单片机来选择,我们使用的STC90单片机是兼容51内核的,Keil C51 几乎支持所有的51内核单片机,51内核具有通用型,如果程序用的资源不是太复杂,我们可以选择任意一款51单片机内核就行。在稍后我们会继续讲解怎么将STC单片机官方的头文件添加进来,在这暂不多介绍。Keil 软件的关键是程序代码的编写,而非是用户选择什么硬件。例程以添加Atmel 的AT89C51来说明。如图,然后,单击 确定(OK)。
如果出现下面的界面:单击是就可以,意思是将单片机的启动代码添加到工程,我们不用修改。
到目前我们还没建立一个完整的工程,只是有工程的名字,框架,工程中还没有任何文件代码,(除了启动代码,有的keil 版本不显示启动代码),接下来我们添加文件及代码。
单击菜单File→New选项,或者单击界面上的快捷图标
,新建文件如下。
界面显示的Text1就是我们刚刚加入的文件,但是这个文件与我们的工程还没有直接联系起来,单击图标
,保存我们当前的text1文件,输入要保存的文件名,同时要输入文件扩展名,扩展名很关键,用C语言编写的程序,则必须为**.c,汇编语言必须为**.asm(**为文件名),文件名是用户自己取的。填好文件名后单击保存。
编辑界面
单击Target1 前面的“+”号,然后在Source Group 1 上右键单击,选择Add Files to Group Source Group1,选中我们刚才建立的.c文件,这里是led test.c,单击add,只需单击一次。之后单击Close就可以。
回到主界面后,单击Source Group 1前的“+”号,刚刚添加的文件显示在里面。
通过以上步骤我们就建立好了一个工程。接下来就可以写代码了。
在写代码之前介绍介个常用的按钮:
按钮:用来编译我们正在操作的文件。
按钮:用来编译修改过的文件,并生成应用程序共单片机下载。
按钮:用来重新编译当前工程中所有的文件,并生成应用程序共单片机下载。因为很多工程不止有一个文件,当有多个文件时,用它进行编译。
按钮:用来打开“Option for Target”对话框,对当前工程进行设置。工程的各个参数都可以在这里设置,具体的设置方法用到的时候,再和大家详细讲述。
以上几个按钮是常用的,其他按钮在使用的时候再介绍。
编写程序
我们以第二个程序为例来练习编写:led闪烁。
这个程序大家一定要弄懂,也算是一个基础,懂了这个程序,也算是进入单片机的领域了接下来我会详细讲解这个例程。另外需要注意的是单片机写程序的时候,一定是英文状态下的字符,尤其注意“;”,往往就因为这个分号,程序出现问题,所以输入时一定要注意是在英文状态下的。
我们打开程序:
我们先编译一下:第一次编译我们点击
,看一下结果
结果的意思:
编译led2.c…..
链接…..
data=9.0--占用内部RAM9个字节,xdata=0:外部RAM 0字节,
Code=56代码长度为56字节
生成单片机可下载的HEX(十六进制)文件。
没有错误,没有警告。
在这里说明一点:生成HEX文件是我们自己设置的,默认的情况下不会生成HEX文件。单击
进行设置,如下图,选择Output,勾选Creat hex,后单击确定。