大连交通大学2010届本科生毕业设计(论文)
工作;当湿度处于45%RH和65%RH之间时,BUZZER端输入低电平,蜂鸣器不工作[7]。
13
大连交通大学2010届本科生毕业设计(论文)
第三章 温室大棚控制系统软件设计
3.1 Keil C 软件概述
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为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 C51开发系统基本知识Keil C51开发系统基本知识: 1. 系统概述
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构
C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
14
大连交通大学2010届本科生毕业设计(论文)
使用独立的Keil仿真器时,注意事项:
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
1、安装好了Keil软件以后,我们打开它。
2、 我们先新建一个工程文件,点击“Project->New Project?”菜单。 3、选择工程文件要存放的路径 ,输入工程文件名 xdch 最后单击保存。 4、在弹出的对话框中选择 CPU 厂商及型号。
5、选择好STC89C52芯片,接着点击确定,弹出对话框。
6、新建一个 C51 文件, 单击左上角的 New File,保存为DS18B20_4.C,(注意后缀名必须为.C),再单击“保存”。
7、存好后把此文件加入到工程中方法如下:用鼠标在 Source Group1 上单击右键, 然后再单击 Add Files to Group Source Group 1。
8、 选择要加入的文件, 找到 MAIN.C后, 单击 Add, 然后单击 Close。 9、在编辑框里输入代码。
10、生成 .hex 烧写文件,先单击Options for Target。
11、在下图中,我们单击 Output, 选中 Create HEX F,再单击“确定”。 以上是Keil软件的基本应用[8]。
15
大连交通大学2010届本科生毕业设计(论文)
3.2 温室大棚控制系统程序设计 3.2.1整体系统框图
单片机、LED1602初始化DNT11数据采集温湿度数据转换NLCD1602温湿度数据显示根据测得温度调整PWM占空比根据测得湿度控制蜂鸣器system_stop是否等于0?Y结束
图4-1 系统整体框图
16
大连交通大学2010届本科生毕业设计(论文)
首先,初始化单片机设置中断,定义变量,然后初始化LCD1602显示模块,设置8位格式,2行,5*7矩阵显示,整体显示,关光标,不闪烁设定输入方式,增量不移位,清除屏幕显示。调用温湿度采集程序进行数据采集,经过数据转换程序,将十六进制转换成十进制,将十进制数据输出到LCD1602显示模块进行显示,根据温度调整电机转速,根据湿度判断是否报警,最后,进行新一轮的温湿度采集[9]。
3.2.2 LCD1602显示模块程序设计
LCD1602显示模块初始化延时数据转换十六进制→十进制是否在第一行显示数据?Yaddress = 0x80 + xNaddress = 0xc0 + x输入显示地址命令延时输入显示数据结束 图4-2 显示程序框图
17