传感器与检测技术课程设计
Keil是目前进行51单片机开发最常用的编译软件。关于Keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用Easy 51DP-2开发板。对于Keil更详细的介绍,可以参考一些专门书籍资料。在Keil里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的C文件加入到工程中,其他文件以#include头文件的形式加到这个C文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。
打开Keil软件后,出现(图16)所示界面。当然,如果Keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。
图4-2 Keil软件主界面
首先点击Project->New Project?(Project->Open Project?为打开一个已经存在的工程),如图17所示。
图4-3 Keil软件打开新工程界面
13
传感器与检测技术课程设计
点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图18所示)界面。在此界面上选择电路板上所用的单片机型号:Atmel STC89C52(或者是AT89S52,视开发板上具体型号而定),单击“确定”。
图4-4 选择电路板上所用的单片机型号
设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?”如图19所示,这个一般选择“否”。(关于STARTUP.A51的相关内容可查阅相应资料)
图4-5 是否将8051上电初始化程序添加入工程
这样,就建立了一个空的51工程。
接下来的事,就是在这个工程里面加入自己的程序代码。点击
,或者File->New,
便建立了一个空的文本框。现在,就可以开始在里面输入你的代码了。
保存时注意:如果是用C语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm。
到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。
14
传感器与检测技术课程设计
下一步就是将写完的程序添加到工程里面,如图20所示,在左边Project Workspace里的Source Group 1上右击,选择Add Files to Group ’Source Group 1’。在打开的对话框中,选择刚存的文件路径和对应的扩展名。这样,程序就添加进了这个工程。
图4-6 添加文件到工程中
下一步,就开始编译刚输入进去的代码。点击工具栏中的出下面的提示:
Build target 'Target 1' assembling led.asm... linking...
Program Size: data=8.0 xdata=0 code=100 \
按钮。接着,Keil会打
其中“\”说明现在的工程编译通过,0个错误和0个警告。建立工程的时候,默认是不生成HEX文件的,得在编译做如下设置:单击
,
或者在Project Workspace里Target 1上右击,选择“Options for Target ‘Target 1’”。出现如图21所示对话框,选择“Output”按图示,将箭头所指的多选框勾上,点“确定”。
现在再点击
重新编译,系统提示:“creating hex file from \”。便
会在工程所在文件夹里生成HEX文件。
15
传感器与检测技术课程设计
图4-7 生成HEX文件
4.3 使用Debug进行调试
Keil有很强大的调试功能,可以显示C程序的反汇编代码、可以计算代码运行的时间、可以显示程序中某一变量的值??能用好这个调试工具对编写单片机程序会有很大的帮助。同样的,在这里,只对Debug进行简单应用介绍,更详细的使用方法可以参看相关书籍资料。
图4-8 调试前设置窗口
首先,单击,弹出如图22所示对话框,在Target页面上设置对应的晶振频率。其他
,进入调试界面(如图23所示)。
16
不用作修改。设置完成后,单击
传感器与检测技术课程设计
图4-9 Keil调试界面
点击中对应的工具按钮则可以开始调试。
另外,“View”下的三个工具在调试中会经常用到如.图24所示,“Disassembly Window”显示C文件的反汇编程序;“Watch & Call Stack Window”可以显示程序中某一变量的值;“Memory Window”可以显示内存中某一地址的值。
图4-10 三个常用的调试工具
4.4运行状态
1.紧急报警键:按下紧急报警键,系统会马上报警。
2.布防键:按下布防键绿色发光二极管会闪烁,说明系统准备开始布防,布防结束后绿色发光二管会长亮,说明系统进入布防状态了,只要一有人进入传感器的范围内系统马上就会报警。
3.取消键:按下取消键可取消当前报警。
4.5误差分析
容易受各种热源、光源干扰被动红外穿透力差,人体的红外辐射容易被遮挡,不易被探头接收。环境温度和人体温度接近时,探测和灵敏度明显下降,有时造成短时失灵。
17