第 2 期 (总第 55 期)
2007 年 6 月
黎 明 职 业 大 学 学 报
Journal of Liming Vocational University
No. 2
J un. 2007
文章编号 : 1008 —8075 (2007) 02 —0025 —06
·科技研究·
基于 51 单片机的温室大棚温湿度测控系统
张 明 洋
(黎明职业大学电子工程系 福建 泉州 362000)
摘要 : 介绍了基于 A T89C51 单片机的温室大棚温湿度测控系统设计原理 , 主要电路设计及软件
设计等 。该系统采用 A T89C51 单片机作为控制器 , 可对执行机构发出指令实现大棚温湿度参数调节 ,
具有上下位机直接设置温湿度范围 , 温湿度实时显示等功能 。上位机采用 Delphi 软件进行编写 , 用
户界面友好 , 操作简单 , 可以根据大棚作物生长情况绘制成简明直观的作物生长走势图 , 从而容易得
出最适合作物生长的温湿度值 。
关键词 : 51 单片机 ; 温室大棚 ; 温湿度 ; 测控系统
中图分类号 : S625
3 文献标识码 : A
1 引 言
植物的生长都是在一定的环境中进行的 , 其
在生长过程中受到环境中各种因素的影响 , 其中
对植物生长影响最大的是环境中的温度和湿度 。
环境中昼夜的温度和湿度变化大 , 其对植物生长
极为不利 。因此必须对环境的温度和湿度进行监
测和控制 , 使其适合植物的生长 , 提高其产量和
质量 。本系统就是利用价格便宜的一般电子器件
来设计一个参数精度高 , 控制操作方便 , 性价比
高的应用于农业种植生产的温室大棚温湿度测控
系统 。
2 设计思想
系统的一大特点是用户可以通过下位机中的
键盘输入温湿度的上下限值和预置值 , 也可以通
过上位机对温湿度的上下限值和预置值进行输
入 , 从而实现上位机对大棚内作物生长的远程控
制 。
系统下位机设在种植植物的大棚内 , 下位机
中的温湿度传感器可以将环境中的温湿度非电量
参数转化成电量信号 , 再将这些信号进行处理后
送至下位机中的单片机 , 单片机读取数据后将数
据送到缓冲区内 , 通过 L ED 数码管进行实时显
示 。同时与原先内部设定的参数值进行比较处
理 ; 单片机可以根据比较的结果对执行机构发出
相应的信号 , 并通过继电器的控制对相应的设备
如喷水器 、吹风机 、加热器 、降温泵等进行操
作 , 调节大棚内温湿度状态 。用户直接通过键盘
对温湿度的上下限值和预置值进行设置后 , 如果
环境的实时参数超越上下限值 , 系统自动启动执
行机构调节大棚内湿度和温度状态 , 直到温湿度
状态处于上下限值以内为止 。如果有预置初值 ,
且与当前状态不相等时 , 系统也会启动执行机构
动态调节温湿度状态 , 直到所处的平衡状态与预
收稿日期 : 2007 - 03 - 20
作者简介 : 张明洋 (1981 - ) , 男 (汉) , 福建惠安人 , 黎明职业大学电子工程系教师 , 主要从事电子与通信、视频处理等方面
的研究。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
62
黎 明 职 业 大 学 学 报
2007 年 6 月
置值相等为止 。
上位机是用 DEL PHI 软件编写的一个数据
库系统管理系统 , 有着友好直观的用户界面 , 可
直接设置温湿度的上下限值和读取下位机的数
据 , 也可以直接对温室大棚内下位机的喷水器 、
吹风机 、加热器 、降温泵等进行操作 , 调节大棚
内温湿度状态 。由于上位机 DEL PHI 软件有强
大的数据库存储和处理功能 , 我们可以对下位机
传送上来的各种环境中的数据参数进行处理 , 形
成作物生长的走势图 , 从而通过生长走势图得出
适合各种作物生长的最佳环境参数条件 , 为今后
的温室种植提供参考 。
上下位机之间通过符合串行总线 RS - 232
标准的通信通道以事先约定的协议进行通信 。系
统原理框图如图 1 所示 。
图 1 温室大棚温湿度测控系统原理
单片机作为控制器 , 可以接收温度和温度传
感器从大棚中获取的温湿度信息 , 将这些信息与
预置的温湿度范围值进行比较 , 然后通过继电器
控制执行机构 , 对大棚进行相关的操作以保证大
棚的温湿度范围能够在预置的范围内 。下位机键
盘显示部分可以直接对温湿度值进行预设 , 并可
实现温湿度值的实时显示 。上位机可通过通信接
口模块接收下位机传送过来的温湿度值 , 形成作
物生长的图表 , 也可以直接设置温湿度值和控制
执行机构对大棚进行相关操作 。
3 下位机设计方案与原理
系统下位机主要由传感器检测模块 , 键盘显
示模块和执行机构模块三大部分构成 。
3
1 键盘显示模块
89C51 提供给用户使用的 I/ O 口线不多 , 满
足不了本系统的要求 , 所以必须外扩 I/ O 接口
器件 。D8155HC 芯 片 是 一 种 多 功 能 可 编 程
RAM/ IO 扩展器 , 在片内集成有 256 个字节单
元的静态 RAM , 22 位 I/ O 口和一个 14 位定时/
计数器 。并用设有地址锁存器 , 可直接与 MCS
- 51 单片微机接口 , 不需要增加任何硬件逻辑
电路 , 能达到一片多用 。本系统统利用 8155 并
行扩展口构成的键盘显示器电路设置了 16 个键 ,
分 4 行 4 列 , 如果增加 PC 口线 , 可以根据需要
加多按键 , 最多可以达到 64 个键 , 且有 4 位共
阴极 L ED 显示器 , 段选码由 8155PB 口提供 ,
位选码由 PA 口提供 , 键盘的列输入由 PA 口提
供 , 行输出由 PC0 - PC3 提供 。L ED 采用动态
显示软件译码 , 键盘采用逐行列扫描查询工作方
式 , 由于 8155 不能直接驱动 L ED 显示器 , 所以
外接集成极开路输入八位驱动器 7407 间接驱动 。
键与显示做成一个接口电路 , 因此在软件中合并
考虑键盘查询和动态显示 , 键盘消颤的延时子程
序用显示程序替代 。〔1〕
2 传感器检测模块
3
3
2
1 温度传感器
采用美国 DALLAS 公司生产的单线数字温
度传感器 DS1820 , 它可把温度信号直接转换成
串行数字信号供微机处理 。DS1820 测温范围为
- 55 ℃~75 ℃, 精度为 0
5 ℃; 九位温度读数 ;
A/ D 变换时间为 200ms ; 用户自设定温度报警上
下限 , 其值是非易失性 ; 每片上含有唯一的硅串
行数 , 所以一条总线上可挂接任意多个 DS1820
芯片 。从 DS1820 读出的信息或写入 DS1820 的
信息 , 仅需要一根口线 (单线接口) , 节省了引
线和控制通道切换的逻辑电路 。读写及温度变换
功率来源于数据总线 , 总线本身也可以向所挂接
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 2 期
张明洋 : 基于 51 单片机的温室大棚温湿度测控系统
72
的 DS1820 供电 , 而无需额外电源 。构成多点温
度检测系统而无需任何外围硬件 , 不需要 A/ D
转换 ; 单线接口 ; 无需外围元件 ; 报警搜索命令
可识别哪片 DS1820 超温度限 ; 对 DS1820 的使
用 , 多采用单片机实现数据采集 。处理时 , 将
DS1820 信号线与单片机一位口线相连 , 单片机
可挂接多片 DS1820 , 从而实现多点温度检测系
统 。
3
2 湿度传感器
湿敏传感器的核心部分是湿敏元件 , 湿敏元
件一般由基体 、电极和感湿层组成 。系统中我们
采用结合湿敏电阻 , 采用电桥方式来检测 。利用
湿敏电阻阻值随湿度改变而导致电桥失去平衡 ,
产生输出电压的原理来测量湿度 。
3
2
3 执行机构模块
执行机构是由单片机的 I/ O 口控制的 , 有
效控制电平为 + 5V , 执行机构的各种设备都是
在市电下正常工作的 , 必须采用 I/ O 口控制继
电器的导通和切断来控制市电的通断 , 也即控制
执行设备的工作状态 。由于单片机的 I/ O 不能
提供足够的电流 , 不能直接驱动继电器导通 , 因
此 , 我们采用达林顿管 , 将进行两级放大 , 提供
了足够大的驱动电流 , 让继电器中的电感线圈产
生足够大的磁力 , 将开关吸合 。〔2〕
4 上位机软件设计
上位机软件采用 Borland Delphi 编写 。Del
phi 是强大 , 灵活的基于 Windows 的可视化应用
程序开发工具 。它将可视化技术与 Object Pascal
语言完美结合 , 具有良好的数据库访问能力 , 是
一个非常强大的应用程序开发组件的集合 。〔3〕
图 2 系统上位机主界面
上位机软件主窗口如图 2 所示 , 它是系统启
动后显示在用户面前的第一个窗口 , 系统将在此
窗口等待用户操作 。主窗口包括四大部分 , 即温
度实时监测图形 , 湿度实时监测图形 , 当日环境
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
82
黎 明 职 业 大 学 学 报
2007 年 6 月
参数表以及其他窗口的弹出按钮 。系统的实时监
测数据是上位机每隔 15 分钟向下位机发出命令
采集的 , 时间间隔合理 , 能达到实时监测的目
地 。系统软件本着方便用户使用的原则 , 采用人
机交互方式 、弹出式窗口 、错误屏蔽 、友情提示
等技术 , 最大限度地方便用户操作 。系统窗口简
洁明了 , 数据显示采用表格或图形的形式 , 使得
用户更方便地查看 、查询数据 。
图 3 上位机软件流程
如图 3 所示 , 上位机软件主要由实时监测模
块 、大棚信息模块 、智能控制模块 、环境参数设
置模块 、作物长势记录模块和直接控制模块 6 大
模块组成 , 用户可以通过具体界面来了解下位机
所在的大棚内作物的生长情况 , 通过界面内作物
生长的走势图可以得出最适合作物生长的环境条
件 。上位机软件控制界面友好 , 操作简单明了 ,
十分适合用户操作 。
5 通信模块软硬件设计
5
1 通信硬件设计
89C51 单片机与 PC 系列微机是两种不同类
型的机种 , 硬件结构不同 , 电气特性也不一样 ,
因此它们之间不能用导线直接连接 , 而要通过电
平转换电路 。本系统采用的串行通信的接口标准
RS - 232C。
5
1 RS - 232C 电气特性
RS - 232C 采用负逻辑
在 TxD 和 RxD 上 : 逻辑 1 (MAR K) = - 5
1
~ - 15V 逻辑 0 (SPACE) = + 5~ + 15V
RS - 232C 的主要电气特性为 :
带 3 - 7k 欧姆负载时驱动器的输出电平 : 逻
辑“1”:
12V 。
- 5 ~ - 12V ; 逻 辑 “0 “: + 5 ~ +
不带负载时驱动器的输出电平 :
- 25~ +
25V 。
驱动器转换速率 : < 30V/ US。
接收器输入阻抗 : 3~7 K 欧姆之间 。
接收器输入电压的允许范围 :
- 25 ~ +
25V 。
5
1
最大负载电容 : 2500PF 。
2 RS - 232C 的电平转换
RS - 232C 是用正负电压来表示逻辑状态 ,
与 TTL 以高低电平表示逻辑状态的规定不同 。
为了能够同计算机接口或终端的 TTL 器件连接 ,
必须在 EIA - RS - 232C 与 TTL 电路之间进行电
平和逻辑关系的变换 。实现变换的方法目前较为
广泛 地 使 用 集 成 电 路 转 换 器 件 , 如 MC1488 、
SN75150 芯片可完成 TTL 电平到 EIA 电平的转
换 , 而 MC1489 、SN75 154 可实现 EIA 电平到
TTL 电平的转换 , MAX232 芯片可完成 TTL ←
→EIA 双向电平转换 。MAX232 芯片的转换接
口 , 包含两路驱动器和接收器的 RS - 232 转换
芯片 。芯片内部有一个电压转换器 , 可以把输入
的 + 5V 电压转换为 RS - 232 接口所需的 ±10V
电压 , 最大的好处是工作电压为 + 5V , 不需要
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
张明洋 : 基于 51 单片机的温室大棚温湿度测控系统
(定时/ 计数器 1 溢出率)
波特率为 :
32 , 因此可以得出下式 :
2400 = ( 2SMOD/ 32)
92
2SMOD/
第 2 期
额外电源 。〔4〕
5
2 通信软件设计
系统的设计中 , 考虑到下位机位于温室大棚
内 , 离上位机即计算机的控制有一定距离 , 而且
系统对于传送速度的要求也不是很高 , 且考虑到
传输的信息量不会非常大 , 并从降低成本的角度
出发 , 所以采用异步串行通信的方式 。
5
1 异步通讯方式
异步通讯方式既不需要同步字符 SYNC , 也
不要求保持数据流的连续性 , 它规定传输格式 ,
每个数据均以相同的帧格式发送 。每帧信息由起
始位 、数据位 、奇偶校验位和停止位组成 , 帧与
帧之间用高电平隔开 。
2 通信程序的编写
5
由于汇编语言程序结构紧凑 、灵活 , 汇编成
目标程序效率高 、占用存储器空间少 、运行速度
快和实时性强等特点 , 适合实时测控等领域 , 所
以本系统通信程序采用了汇编语言进行编写 。
2
2
在异步串行通信中 , 要保证通信成功 , 通信
双方必需对数据传送方式有一系列的约定 , 比
如 : 作为发送方 , 必须知道什么时候发送信息 、
发什么 、对方是否收到 、收到的内容有没有错 、
要不要重发 、怎样通知对方结束等 ; 作为接收
方 , 必须知道对方是否发送了信息 、发的是什
么 、收到的信息是否有错 、如果错了怎样通知对
方重发 、怎样判断结束等 。这种约定称为通信协
议 , 它必须在编程之前就确定下来 , 只有双方都
正确地识别并遵守这些规定才能顺利地进行通
信 。本设计的通信协议格式设置为 :
我们选定常用的波特率 2400 位/ 秒 , 串行通
信工作于方式 1 , SMOD = 1 , 晶体震荡频率为
12MHz。由于定时/ 计数器 1 的溢出率 = FOSC/
(28 - N) ] 次/ 秒 , 而串行通信方式 1 的
[ 12
FOSC/
[ 12
( 28 -
N) ]
可求得 N = F3H , 因此 TH = F3H , TL =
F3H。
波特率设置 : 选用定时/ 计数器 1 定时模
式 , 工作方式 1 , 计数常数 F3H , SMOD = 1 ,
波特率 2400bps ,
串行通讯设置 : 异步通讯方式 1 , 允许接
收 ;
1 位起始位 , 8 个数据位 , 1 个停止位 。
MCS - 51 单片机采用中断方式 , 发送和接
收的数据包括数据和校验 , 发送和接收的数据均
以 # 号为结束标志位 。〔5〕
下位机与上位机通信的程序流程如图 4 所
示 。
单片机作为下位机与上位微机通信采用中断
方式 , 以提高通信效率 。由于串行通信是双工
的 , 且中断系统只提供一个中断矢量入口地址 ,
所以实际上是中断和查询必须结合 , 即接收/ 发
送均可各自请求中断 , 响应中断时主机并不知道
谁请求中断 , 统一转入同一个中断矢量入口 , 必
须由中断服务程序查询确定并转入对应的服务程
序进行处理 。
6 结 论
本系统控制界面友好 、操作简单 、数据显示
采用表格或图形的形式 , 使用户更方便地查看 、
查询数据 , 十分适合用户操作 。同时下位机监测
点可根据需要无限扩展 , 系统性价比较高 , 有较
好的实用性 。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
03
黎 明 职 业 大 学 学 报
2007 年 6 月
图 4 通信程序流程
参 考 文 献
〔1〕邬宽明. 单片机外围器件实用手册 〔K〕. 北京 : 北京
航空航天大学出版社 , 1998.
〔2〕孙育才. MCS - 51 系列单片微型计 算 机 及 其 应 用
〔M〕. 南京 : 东南大学出版社 , 2002.
〔3〕张子江. Delphi 6 高级开发范例 〔M〕. 北京 : 电子工
业出版社 , 2002.
〔4〕范逸之. VB 与 RS232 串行通讯控制 〔M〕. 北京 : 中
国青年出版社 , 2000.
〔5〕李朝青. PC 机及单片机数据通信技术 〔M〕. 北京 :
北京航空航天大学出版社 , 2000.
(责任编辑 东红)
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net