4.2 工程文件建立
首先点击左边Project窗口的Targey1,然后使用菜单“Project>Option for target‘target’”即出现对工程设置的对话框,这个对话框非常复杂,共有8个页面,要全部搞清可不容易,好在绝大部分设置项默认值就行了。
设置对话框中的Target页面, Xtal后面的数值是 晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。Memory Model用于设置RAM使用情况 ,有三个选择项,small是所有变量都在单片机的内部RAM中;Compact是可以使用一页外部扩展RAM,而Large则是可以使用全部外部扩展RAM。Clde Model用于设置ROM空间的使用,同样也有三个选择项,即small模式,只用低于2K的程序空间;Compact模式,单个函数的代码量不能超过2K,整个程序可以使用64K程序空间;Large模式,可用全部64K空间。Useon-chipROM选择项,确认是否使用片内ROM(注意:该中选项并不会影响最终生成的目标代码量);Operating项是操作系统选择,Keil提供了两种操作系统:Rtx ting和Rtx full。关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何操作系统);Off Chip Code mmory可以确定系统扩展ROM的地址范围,Off Chip x Data memory组用于确定系统扩展RAM啊地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。
设置对话框中的OutPut页面,这里面也有多个选择项,其中Creat Hex file用于生成执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。选中Debug information将产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。Browse information是产生浏览信息,该信息可以用菜单view->Browse来查看,这里取默认值。按钮“Select Folder for objects”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。Name of Executable用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。
该工程设置对话框中的其它各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值,不作任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。
Listing标签页用于生成的列表文件选项。在汇编或编译完成后将产生(*lst)的列表文件,在连接完成后也将产生(*m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。
C51标签页用于对Keil的C51编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组,该组中Level是优化等级,C51在对源程序进行编译时,可以对代码多至9级优化,默认使用第8级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别试一试。Emphasis是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项是速度优先(最终生成的代码速度快);第三项是缺省。默认的是速度优先,可根据需要更改。
设置完成后按确认返回主界面,工程文件建立、设置完毕。
4.3 编译、连接
设置好工程后,即可进行编译、连接。选择菜单Project->Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后在连接以产生目标代码;如果选择Rebuild All target files将会对当前工程中的所有文件重新进行编译然后在连接,确保最终产生的目标代码是最新的,而Translate……项则仅对该文件进行编译,不进行连接。
编译过程中的信息将出现在输出窗口中的 Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图9所示的结果,提示获得了名为examl.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。
参 考 文 献:
[1].ATMEL公司 AT89S52的技术手册
[2].深圳市中源单片机发展有限公司 AT89C52 Datasheets
[3].复旦大学出版社 单片微型机原理、应用和实验 张友德等
[4].清华大学出版社 8051单片机设计实训教材 陈明荧
[5].北京航空航天大学出版社 单片机实验与实践教程 万光毅、严义
结 束 语
在经过三,四个月紧张的毕业设计后,感觉自己无论是对编程方面的认识,还是上机调试方面的能力都深入了,受益不少。由于本人水平有限,经验不足及阅历尚浅,程序和论文中难免有许多不足之处,还望老师多多指出和纠正。在此系统的设计工程和论文撰写当中,指导老师易老师给予了本人非常大的帮助,在这里本人表示衷心的感谢!