基于单片机的智能温室大棚温度控制系统设计与仿真(5)

2019-08-31 12:35

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

(2)光标归位,即将光标撤回液晶显示屏的左上方; (3)将地址计数器(AC)的值设为0; 光标归位指令如表2.6:

表2.6

执行

功能 清屏

RS 0

R/W 0

DB7 0

DB6 0

指令码 DB5 DB4 0 0

DB3

0

DB2 0

DB1 1

DB0 X

执行时间,ms 1.64

功能:

(1)把光标撤回到显示器的左上方; (2)把地址计数器(AC)的值设置为0; (3)保持DDRAM的内容不变;

本设计用LCD1602液晶显示屏显示即时温度和键盘电路所设定温度的显示,Tem表示农田内的即时温度,Set表示设定的农田内的温度范围,前者表示最高温度,后者表示最低温度。其硬件电路图如图2.10所示:

图2.10 液晶显示电路

2.3.2多功能农田温度自动环境监测系统报警电路设计

当温度高于所设定的最高温度或者低于所设定的最低温度时,警报声响起进行报警,提醒工作人员及时处理。当处理完成后,警报声关闭。报警电路如图2.11所示:

17

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

图2.11 报警电路

3多功能农田温度环境监测系统软件设计

3.1单片机软件的开发语言

目前单片机软件的开发主要采用汇编语言和C语言。汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用内存空间小、执行速度快、系统运行效率高,但是对开发者的要求较高,需要特别熟悉单片机的内部资源和外围电路。过去,由于单片机C语言本身存在的缺陷,加之单片机工程项目本身都不大,C语言在单片机中的应用没有被重视。而现在单片机的开发中,C语言以其方便、灵活、逻辑性强、易于维护和可移植性好等强大优势,占据了单片机开发的主要地位。在C语言环境下,只需关心程序的逻辑关系,实现细节则由编译器完成,这为快速开发提供了条件,也大大减小了开发工作量。但同时,实现细节就不被控制了。这个问题对于经常重视实现细节的单片机来说,必须得到解决。好在一般的C语言编译器都提供嵌入汇编、与汇编互调用和汇编级的代码察看等功能[14]。

3.2软件开发环境介绍

在多功能农田温度环境监测系统设计采用C语言作为编程语言,开发环境采用Keil Software-Cx51编译环境,使用Keil uVision3编译器。

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易

18

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试或直接写入程序存储器中[15-16]。

3.3模块化设计方法

模块化程序设计就是将程序模块化,按人们能够理解的大小规模进行分解,即一个程序由若干模块组成,较大的模块可用一个程序文件实现。模块组装在一起达到整个程序的预期目的。一个模块只做一件事情,模块的功能充分独立。模块内部的联系要紧密,模块之间的联系要少。模块之间通过接口(形参或外部变量)通讯,模块内部的实现细节在模块外部尽量不可见。最上层的模块称为主控模块,下层模块称为子模块,通过主控模块将各子模块组织在一起。

将程序模块化,把功能分解,降低模块之间的耦合性。以便在更改某个模块来达到质量或效率的提升时,不用改变整个结构,只需要替换相应的模块,使得工作量明显减少。把程序设计中的抽象结果转化成模块,不仅可以保证设计的逻辑正确,而且适合项目的集体开发。各个模块分别由不同的程序员编制,只要明确模块之间的接口关系,模块内部细节的具体实现可以由不同程序员自己随意设计,而模块之间不受影响。所以,进行模块化设计时,应重点考虑划分模块的原则和如何组织好模块之间的联系。模块划分的原则如下

[17]

(1)按功能划分模块:在按功能划分模块时,要求各模块的功能尽量单一,各模块的联系尽可能少。满足这些要求的模块有以下几个优点:可读性和可理解性都比较好,模块的接口关系都比较简单。当修改某一功能时,只涉及一个模块。其他的模块可以充分利用已有的一些模块。

(2)按层次组织划分模块:在按层次组织划分模块时,一般上层模块只需指出“做什么”,只有在最底层模块中才会精确的描述“怎么做”。主模块需要指出总任务,而下一级的子模块要分别指出各自的任务。所以,下一级的子模块才精确描述“怎么做”。

如果是个人作品或者很小的软件,模块化可能体现不出优越性,反而使得编程更加复

19

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

杂。但是如果是许多人协同作业,或者软件工程非常大,它就会有非常明显的优越性,因为其他人不需要知道这个工作组究竟是怎样写的,只需要知道这部分所实现的功能,知道它所拥有的接口就可以了。这样程序设计就会更加简便,而且还可以把某个部分外包,或集中人力、物力先完成其中一部分的模块。由于本设计并不是大规模的设计,模块化设计的优势不是很明显。

在具体的模块化设计的过程中应当遵循如下原则:(1)提高模块独立性,即模块要高内聚低耦合;(2)规模适中;(3)深度、宽度、扇出和扇入要适中;(4)应尽量减少模块的接口和界面的复杂性;(5)设计成单入口、单出口的模块;(6)设计成功能可预测的模块。

基于单片机的多功能农田温度环境监测系统的设计根据实际情况,采用了结构化设计和功能模块化设计相结合的方法。

3.4软件设计方案及流程图

本系统设计软件流程图如图3.1所示:

开始 初始化 对DS18B20测温 LCD1601显示 温度高报警且提醒人工排水 正 常 湿度度低报警且提醒人工灌溉

图3.1 软件设计流程图

20

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

本设计中,用51单片机作为主控芯片,首先进行初始化,然后对温度传感器进行温度采集,采样完成之后在LCD1602上显示,并对温度进行比较,比较后如果温度高于或者低于设定温度进行报警并进行相应的控制,否则正常。

21


基于单片机的智能温室大棚温度控制系统设计与仿真(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《爆破安全规程》(GB6722-2011)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: