当前位置:首页 >> 工学 >>

单片机温湿度毕业设计


中工 信商

2014-XX16-

本科毕业论文(设计)

基于单片机蔬菜大棚温湿度监测系统设计

系(部) 专 学 业 号

信息工程系 自动化
201207022119

学生姓名 指导教师 提交日期

2014 年 5 月 26 日

摘要
蔬菜大棚温湿度监测系统,是对蔬菜大棚内环境温湿度的实时监测。进行环境温 湿度监测是实现温室生产管理自动化、科学化的基本保证,通过对检测到温湿度数据 的分析,并结合蔬菜生长发育规律来进一步控制环境条件,使某些蔬菜在不适宜的反 季中可获得比大棚外生长更优的环境条件,达到蔬菜优质、高效以及高产的栽培目的。 本设计是基于 STC12C5A60S2 单片机的蔬菜大棚温湿度监控系统,采用 DHT11 作为 温湿度传感器,使用 LCD Nokia5110 液晶屏进行温湿度数据实时显示,监测到的温湿 度数据通过西门子 TC35 GSM 模块发送至上位机监测系统。同时,对整个监控系统设计 原理和实现方法作详细介绍。 关键字:STC12C5A60S2 单片机,TC35,DHT11,温湿度监测

I

Abstract
Vegetable greenhouse temperature and humidity monitoring system, it is for the real-time monitoring of environmental temperature and humidity in the vegetable greenhouses.Of environmental temperature and humidity monitoring greenhouse production management is to realize the automation, the basic guarantee for the scientific, through the analysis of the temperature and humidity data detected, and combining the vegetable growth development pattern to further control the environment condition, make some vegetables in the season of inappropriate can obtain better than outside greenhouses growth environment conditions, purpose of vegetables of high quality, high efficiency and high yield cultivation. This design is based on STC12C5A60S2 MCU vegetable greenhouse temperature and humidity control system, using DHT11 as temperature and humidity sensor, using Nokia5110 LCD real-time display of temperature and humidity data, monitoring the temperature and humidity data sent via Siemens TC35 GSM module first place machine monitoring system.At the same time, the whole monitoring system design principle and implementation method in detail. Keywords:STC12C5A60S2MCU, TC35, DHT11, temperature and humidity monitoring

II

目录
摘要 .................................................................... I Abstract ............................................................... II 1 引言 ................................................................. 1 1.1 1.2 1.3 设计目的和意义 .................................................. 1 选题背景及发展趋势 .............................................. 1 研究的基本内容与拟解决的主要问题 ................................ 3 1.3.1 1.3.2 2.1 2.2 2.3 本设计主要研究内容 ........................................ 3 本设计拟解决的主要问题 .................................... 3

2 温湿度监测系统方案设计 ............................................... 5 温湿度监测系统设计 .............................................. 5 温湿度监测系统设计指标要求 ...................................... 5 温湿度系统方案论证选择 .......................................... 5 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 主控芯片方案选择 .......................................... 5 传感器模块方案选择 ........................................ 6 通信模块方案选择 .......................................... 6 显示模块方案选择 .......................................... 6 键盘模块方案选择 .......................................... 7

3 温湿度监测系统硬件电路设计 ........................................... 8 温湿度监测系统硬件结构总体研究 .................................. 8 单片机最小系统电路设计 .......................................... 9 显示模块电路设计 ............................................... 10 温湿度传感器电路设计 ........................................... 11 时钟电路设计 ................................................... 11 报警电路设计 ................................................... 12 键盘电路设计 ................................................... 13 串口通信电路设计 ............................................... 13 3.8.1 3.8.2 3.9 4.1 4.2 TC35 串口通信电路设计 ..................................... 14 PC 机串口通信电路设计 ..................................... 14

系统电源电路设计 ............................................... 15 温湿度监测系统软件结构总体研究 ................................. 16 显示单元软件设计 ............................................... 17

4 温湿度监测系统软件设计 .............................................. 16

4.3 4.4

温湿度传感器单元软件设计 ....................................... 18 通信单元软件设计 ............................................... 21 4.4.1 4.4.2 通信协议设计 ............................................. 21 TC35 发送接收信息软件设计 ................................. 22

4.5 4.6 5.1

时钟单元软件设计 ............................................... 23 键盘单元软件设计 ............................................... 24 温湿度监测系统硬件装配 ......................................... 26 5.1.1 5.1.2 温湿度监测系统硬件设计环境 ............................... 26 温湿度监测系统整机装配 ................................... 28 温湿度监测系统软件开发环境 ............................... 30 温湿度监测系统软件总调 ................................... 31

5 温湿度监测系统调试 .................................................. 26

5.2

温湿度监测系统软件调试 ......................................... 30 5.2.1 5.2.2

6 结论 ................................................................ 33 参考文献 ............................................................... 34 致谢 ................................................................... 35 附录 ................................................................... 36 附录一 附录二 蔬菜大棚温湿度监测系统原理图 ................................ 36 蔬菜大棚温湿度监测系统软件源程序 ............................ 37

中原工学院信息商务学院毕业论文(设计)

1
1.1 设计目的和意义

引言

随着农业产业规模不断扩大和大棚技术的不断普及,蔬菜大棚数量不断增多,温 湿度控制是蔬菜大棚一个重要的控制环节。农作物的生长都是在一定的环境中进行的, 其在生长过程中会受到环境中各种因素的影响,其中对植物生长影响最大的两个指标 是环境的温度和湿度。环境昼夜的湿度和温度变化较大,其对植物生长极其不利。因 此必须对环境的温湿度进行实时监测和控制,使其适合农作物的生长,提高其质量和 产量。温度太低,蔬菜就会被冻死,湿度太低,蔬菜就会停止生长,所以要将温度和 湿度控制在适合蔬菜生长的范围内。传统的温度控制是在温室大棚内部悬挂一个温度 计,由人工读取温度值来调节大棚内的温度。如果仅依靠人工来控制,既耗人力,又 容易出差错。现在随着农业产业规模的不断扩大,传统的温湿度监测控制措施表现出 极大的局限性。因此在现代化的蔬菜大棚管理中,通常有温度湿度自动监测控制系统, 来实时监测控制温室大棚温度湿度,适应生产需要。本次毕业设计了基于单片机 STC 12C5A60S2 和温湿度传感器 DHT11 采集数据的温湿度监测系统。

1.2 选题背景及发展趋势
温室是一种可以改变植物生长环境、为农作物生长创造最佳条件、避免外界恶劣 气候和四季变化对其影响的场所。它以采光覆盖材料作为全部或部分结构材料,可在 冬季或其它不适宜陆地农作物生长的季节栽培植物。温室生产以达到调节产期,促进 农作物生长发育,防治病虫害及提高产量、质量等为目的。而温室设施的关键技术是 环境监测和控制,该技术的最终目标是提高作业与控制精度。 国外对温室环境控制技术研究较早,始于 20 世纪 70 年代。先是采用模拟式的组 合仪表,采集现场信息并进行指示、记录和控制。80 年代末出现了分布式控制系统。 目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的 温室控制技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化 的方向发展[1]。 美国是最早发明计算机的国家,也是最早将计算机应用于温室管理和控制、最多 的国家之一。美国拥有发达的设施栽培技术,综合环境控制技术水平非常高。环境控 制计算机主要用来对温室环境(气象环境和栽培环境)进行监测和控制。以花卉温室为 例,温室内监控项目包括室内水温、气温、土壤温度、管道温度、锅炉温度、保温幕 状况、相对空气湿度、泵的工作状况、通窗状况、CO2 浓度、Ec 调节池与回流管数值、 pH 调节池与回流管数值;室外监控项目包括太阳辐射强度、大气温度、相对湿度、风

1

中原工学院信息商务学院毕业论文(设计)

向风速等。温室专家系统的应用给种植者带来了许多经济效益,提高了决策水平,减 轻了技术管理工作量,同时也为种植带来了很大方便。 以园艺业著称的荷兰从 20 世纪 80 年代以来就开始全面开发温室计算机自动控制 系统,并积极的开发模拟控制软件。目前,荷兰自动化智能玻璃温室制造水平处于世 界先进水平,拥有玻璃温室 1.2 万多平方米,占世界 1/4 以上,有 85%的温室用户使用 计算机控制温室环境。荷兰开发的温室计算机控制系统是通过人机交互界面进行参数 设置和必要的信息显示,可绘制出修正值曲线、设定参数曲线以及测量数据曲线,可 以从数据库内调出设定的时间段内参数以便于必要的数据查询,并可以直接对计算机 串口进行设置,完成下位机与上位机之间的通信。上位机软件集信息显示、参数设置、 控制监测等功能于一体,同时还能够很好地完成气候的控制、温室灌溉和管理。 此外,国外温室业正致力于向高科技方向发展。网络技术、遥测技术、控制局域 网已逐渐应用于温室管理和控制中[2]。控制要求能在远离温室的计算机控制室就能完 成,即远程控制。另外该网络还连接有几个通讯平台,用户可以在遥远的地方通过直 观的图形化界面与这种分布式的控制系统通信,就像在现场操作一样,给人一种身临 其境的感觉。 从国内外温室控制技术的发展状况来看,温室环境控制技术大致经历了三个发展 阶段。 (1)手动控制:这是在温室控制技术发展初期所采取的控制手段,其实并没有真 正意义上的控制系统及执行机构。生产一线的种植者既是温室环境的传感器,又是对 温室作物进行管理的执行机构,他们是温室环境控制的核心,通过对温室内外的气候 的状况和对农作物生长的状况进行观测,凭借长期积累的经验和直觉推测及判断,手 动调节温室内环境。种植者采用手动控制方式,对于作物生长状况的反应是最直接, 最迅速且最有效的,它符合传统农业的生产规律。但这种控制方式的劳动生产率较低, 不适合工业化农业的生产需要,而且对种植者的素质要求较高[3]。 (2) 自动控制: 这种控制系统需要种植者输入温室作物生长所需环境的目标参数, 计算机根据传感器实际的测量值与事先设定的参数进行比较,来决定温室环境因子的 控制过程,控制相应机构进行降温、通风和加温等操作。计算机自动控制的温室控制 技术实现了生产的自动化,适合规模化生产,同时劳动生产率也得到了提高。通过改 变温室环境设定目标参数,可以自动的进行温室内环境气候调节,但是这种控制方式 对作物生产状况的改变难以及时做出反应[3], 难以介入作物生长的内在规律。 目前国内 绝大部分自主研发的大型现代化温室及引进的国外设备都属于这种控制方式。 (3)智能化控制:这是温度自动控制技术和生产实践的基础上,通过总结,收集 农业领域知识、技术和各种实验数据构建专家系统,以建立作物生长的数学模型为理 论依据,研究开发出的一种适合不同农作物生长的温室专家控制系统技术。温室控制

2

中原工学院信息商务学院毕业论文(设计)

技术沿着手动、自动、智能化控制的生产进程,向着越来越先进的,功能越来越完备 的方向发展。由此可见,温室环境控制朝着基于作物生长模型,温室综合环境因子分 析模型和农业专家系统的温室信息自动采集及智能控制趋势发展[3]。 通过研究国内外的温室控制技术可以更深刻的理解毕业设计的具体设计思路和方 法,可以在更短的时间内高效率完成毕业设计。

1.3 研究的基本内容与拟解决的主要问题
1.3.1 本设计主要研究内容 设计系统主要由单片机、温湿度传感器、显示模块、GSM 通信模块以及键盘组成。 用户可以先设定温湿度的上限和下限,温湿度传感器监测值传给单片机,当单片机监 测到的数值超过所设定值时,单片机就会通过 GSM 模块向上位机发送当前温湿度值, 并响应报警电路启动相对应的温湿度控制设备。系统自动启动执行调节大棚湿度和温 度状态,直到温湿度状态处于用户所设定的值。如果有预置初值与当前状态不相等时, 系统会触发报警装置,直到大棚温湿度值和用户所设值相等为止。其中下位机系统可 以自动接收上位机发送过来的温湿度设定值信息,通过单片机解析所接收到的数据短 信来修改当前设定值。下位机检测系统每小时向上位机发送一次当前检测到的温湿度 数据值,上位机收到下位机发送过来的数据信息时进行分析存储,并且描绘相应温湿 度趋势线。 在研究设计的过程中充分考虑到性价比和精度,在选用低价格、通用元件的的基 础上,尽量满足设计要求,并使系统具有高的精度。本控制系统以单片机的控制为核 心,实时监测环境的温度和湿度,并设定了这两个参数的上下限定值,并具有相应的 报警系统,当超过设定的限定值时,单片机控制报警系统进行报警,而且同时驱动继 电器打开相应的开关使相应的执行机构运行。 1.3.2 本设计拟解决的主要问题 植物的生长都是在一定的温湿度环境中的,蔬菜大棚为现代蔬菜种植提供了新的 生产环境,并取得了良好的社会效益和经济。它可以提高产业化水平,提高农民收入 和提高抵御自然灾害能力,延长作物生长时间,提高作物产量。对于农作物来说,湿 度和温度是两个非常重要的条件。所以能够监控温度和湿度对农业大棚的生产有着十 分重要的意义。 温度、湿度是农业生产的主要环境参数,对其进行适时准确的测量具有重要意义。 温室温湿度测控系统是对温室环境因素(温度、湿度)进行相应地修正或调整,使植 物生长处于最佳或相对最佳的生长环境条件中。而当今大多数对温室温度与湿度的控

3

中原工学院信息商务学院毕业论文(设计)

制采用人工管理,这不但大大增加了成本,浪费人力资源,而且很难达到希望的成效。 在温室中,温度和湿度很大程度影响着植物的生长发育。适合的温湿度促进植物的生 长发育,而不合适的温湿度不但对植物生长是不利的,还会增加病虫害。温室是一个 比较密闭的环境,其温湿度条件与露天有很大不同。长期密闭或灌溉不当可能造成温 湿度的不当,从而对作物生长不利还会增加病虫害。随着传感器的发展,可以利用传感 器将温度和相对湿度非电信号转化为相应的电信号,从而便于测控,这种方法省力、耗 能小、准确,能在空气中温湿度不合理时采取相应的补救措施,解决了人工检测的不准 确性和经验性。

4

中原工学院信息商务学院毕业论文(设计)

2

温湿度监测系统方案设计

2.1 温湿度监测系统设计
在现实生活中,温度和湿度的测量在纺织工业、农业、化工、林业、各种军用、 民用库房以及气象和模拟人工气侯环境中都有着广泛的应用。因此能否有效地对这些 领域的环境温度和湿度进行实时监测,是一个必须解决的重要课题。采用适宜的温度、 湿度传感器构成监测系统装置是一种较好的解决方案。为此,利用适当的控制单元设 计一个温湿度监测系统来对蔬菜大棚温湿度进行实时监测,其基本结构如图 2-1 所示。

通信设备

显示设备

报警电路

主控芯片

检测装置

键盘设备
图 2-1 系统结构图

2.2 温湿度监测系统设计指标要求
蔬菜大棚温湿度监测系统设计指标具体要求有一下几点: (1)检测范围:湿度范围为 20~90%RH,温度范围为 0~+50℃; (2)检测精度:湿度测量精度可达±5%,温度测量精度可达±2℃; (3)实时显示功能,有过限报警功能,有温湿度上下限报警设定功能; (4)基于 GSM 模块数据信息实时传输,能够实现与上位机串行通信功能。

2.3 温湿度系统方案论证选择
2.3.1 主控芯片方案选择 方案一:采用 FPGA。FPGA(现场可编程门阵列)是专用集成电路(ASIC)中集成 度最高的一种,它是当今研究的热门领域。但其性价比低,引脚太多外围电路太复杂, 不适合手工焊接。 方案二:采用 PLC 作为主控制器。使用 PLC 的最大优点在于 PLC 使用梯形图进行
5

中原工学院信息商务学院毕业论文(设计)

编程,编程语言形象直观,难度较低,因此开发周期短,便于扩展。而且 PLC 抗干扰 能力强,工作稳定可靠,这一点已被长期的工业控制实践所证明。虽编程简单方便, 但其灵活性相比 C 语言较差,价格方面比较昂贵。 方案三: 采用 STC12C5A60S2 单片机作为主控制器。 单片机可以用 C 语言进行编程, 由于它支持 ISP 在线编程,因此可以通过 RS232 串口将程序烧录到单片机中,十分方 便。温湿度传感器 DHT11 通过单总线与单片机连接。编程灵活方便,价格低廉。 综合以上三种方案,选择方案三,采用 STC12C5A60S2 单片机作为主控模块。 2.3.2 传感器模块方案选择 方案一:采用分立温湿度传感器。分别采用温度传感器和湿度传感器,致使外围 电路复杂,且采集数据和分析数据较为复杂,给程序带来不必要的麻烦。 方案二: 采用温湿度一体传感器。 DHT11 温湿度传感器集成了温度和湿度两个传感 器,采用单总线设计,外围接口电路简单,采集信号为数字量误差较小,无需外加 A/D 转换电路且程序编写时容易分析。 综合以上两种方案,选择方案二,采用 DHT11 温湿度传感器。 2.3.3 通信模块方案选择 方案一:采用红外收发模块。红外收发模块安装简单,价格便宜。但信息编码相 对较为复杂,信息传输距离较短,飞鸟、动物、温度、光线、空气流动、雾气、雨雪 等环境因素以及安装方式、角度、位置等因素都容易引发误报。 方案二:采用蓝牙收发模块。蓝牙模块传输速率高,功耗低、通讯安全性好,支 持语音传输,价格低廉且组网简单方便。但其容易受温度湿度等环境因素影响,传输 距离较短穿越障碍物能力差。 方案三:采用 GSM 模块。西门子 TC35 是工业级的 GSM 模块,技术成熟功能强大, 编程方便稳定,在有蜂窝网的情况下不受距离限制,可与上位机、用户等多个终端通 信。 综合以上三个方案,选择方案三,采用西门子 TC35GSM 模块作为通信模块。 2.3.4 显示模块方案选择 方案一:采用数码管显示。价格虽便宜,但由于本设计需要显示温湿度信息,采 用数码管无法显示。 方案二:采用 8 位 LED 点阵显示。LED 点阵显示虽然能显示字符和数字,但显示效 果不好,且不易编程。 方案三:采用 LCD 显示。Nokia5110LCD 不但能显示字符和数字,而且还能显示中
6

中原工学院信息商务学院毕业论文(设计)

文汉字,显示效果较好,外围电路及接口简单,容易编程实现。 综合以上三种方案,选择方案三,采用 Nokia5110LCD 作为显示模块。 2.3.5 键盘模块方案选择 方案一:采用矩阵按键。按键数较多适合较复杂的输入系统,且外围电路焊接复 杂。而本设计无需太多按键。 方案二:采用独立按键。外围电路较简单,容易编程,价格低廉。 综合以上两种方案,选择方案二,采用独立按键模块。

7

中原工学院信息商务学院毕业论文(设计)

3

温湿度监测系统硬件电路设计

3.1 温湿度监测系统硬件结构总体研究
硬件电路是蔬菜大棚温湿度监测系统的核心器件,是整个系统的灵魂载体,硬件 和软件相辅相成构成一个完整的系统。整个系统系统的好坏有一大部分取决于硬件电 路,若是硬件电路选材设计不合理或者配置低,往往会约束软件开发的丰富性或是增 加开发难度,因此系统硬件结构电路设计开发有一定的难度,比如模拟电路和数字电 路之间的共地问题, 系统硬件电路热电区的保护措施, PCB 板设计时添加抗干扰功能等 等,都要考虑周全面面俱到。 蔬菜温湿度监测系统总体硬件电路选材已在第二章中详细论述到,接下来是再次 围绕系统所要实现的功能设计各模块电路,无缝的结合到一起就构成系统整体电路。 本次毕业设计整体是以温湿度为研究设计核心,结合本科两年所学的课程综合自身所 学知识进行设计的。系统硬件电路设计涉及到电子技术中最基础的知识模电和数电知 识,实用电源设计,单片机基础与运用以及 Altium Designer 13 应用设计等。 系统整体实现原理框图如图 3-1 所示,通过单片机读取温湿度传感器采集回的数 据,实时显示到 LCD 屏幕上,可以在系统监测室设置温湿度报警限值,再通过相应的 算法分析传感器采集回的温湿度数据是否超出限值报警,每隔一个小时单片机把采集 到的数据通过 GSM 模块发送给上位机软件进行实时监测,同时下位机软件有能力接收 到上位机设置的温湿度限值进行有关内存单元数据的修改,最终实现蔬菜大棚温湿度 实时监测功能。
LCD显示

温湿度 传感器 GSM模块 单片机 时钟 芯片 串行接口 下位机 继电 器 执行机构 蔬 菜 大 棚

键盘

图 3-1 系统整体实现原理框图

8

中原工学院信息商务学院毕业论文(设计)

3.2 单片机最小系统电路设计
单片机最小系统是指能维持单片机运行的最简单配置的应用系统,其中单片机最 小系统包括单片机、 电源电路、 时钟电路和复位电路, 本设计采用宏晶科技出品 MCS-51 内核的 STC12C5A60S2 单片机,单片机集成功能比一般 8 位单片机强大,多样的外围电 路设计,如图 3-2 所示。

图 3-2 单片机最小系统电路

时钟电路用于产生单片机工作所需要的时钟信号,时序所研究的是指令执行中各 信号之间的相互关系,单片机在时钟信号的节拍下逐条地执行指令。单片机有两种时 钟信号产生方式,一种是内部时钟方式,另一种是外部时钟方式。外部时钟方式是把 已有的时钟信号从 XTAL1 或 XTAL2 送入单片机,一般用于有多个单片机的情况,所以 本设计中时钟电路采用内部时钟方式,选用 11.0592MHz 的晶振和两个 22pF 的电容与 片内的高增益反相放大器构成一个自激振荡器,如图 3-3 所示。

图 3-3 单片机晶振电路 9

中原工学院信息商务学院毕业论文(设计)

复位是通过某种方式使 CPU 和系统中其它部件都处于一个确定的初始状态,并从 这个状态开始工作,让 PC 指向 0000H,这样单片机才能从头运行程序。单片机的复位 主要有上电复位和手动复位,因此上电的时候就要让单片机复位一次。在运行过程中, 如果程序出错,可以进行手动复位。 本设计中的复位电路就是采用按键复位电路,该电路还具有上电复位功能。复位 时要让 STC12C5A60S2 的 RST 引脚得到 2 个机器周期以上的高电平。上电复位是利用电 容充电来实现的,由于电容两端的电压不能突变,上电瞬间 RST 端的电位与 Vcc 相同, 随着充电的进行,RST 的电位下降,最后被钳位在 0V,只要保证加在 RST 引脚上的高 电平持续时间大于 2 个机器周期,便能正常复位。单片机在程序运行过程中如果跑飞 了、程序运行出错或操作错误使系统处于死锁状态时,就需要用到手动复位,只需将 按钮按下,此时电源 Vcc 经电阻 R4 分压,在 RST 端产生一个复位高电平,如图 3-4 所 示。

图 3-4 单片机复位电路

3.3 显示模块电路设计
显 示 电 路 是将 单 片 机对 温 湿 度 传感 器 采 集的 温 湿 度 分析 后 实 时显 示 。 利用 Nokia5110 手机上的屏幕设计的显示电路,使用的拆机 LCD 屏幕内置 PHILIPS PCD8544 驱动芯片,其通信协议是一个没有 MISO 只有 MOSI 的 SPI 协议。可以显示 15 个汉字, 30 个字符。显示模块外围电路简单,只有五个数据接口,不会浪费单片机 I/O 口资源, 如图 3-5 所示。

10

中原工学院信息商务学院毕业论文(设计)

图 3-5 系统 LCD 显示电路

3.4 温湿度传感器电路设计
温湿度传感器是本设计中的核心传感器,都是围绕温湿度测量展开设计的,本设 计中采用数字式温湿度传感器 DHT11。 设计采用的 DHT11 传感器内含有已经校准的数字 信号输出温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感分析技术, 确保传感器具有极高的可靠性和卓越的长期稳定性。传感器包括一个 NTC 测温元件和 一个电阻式测湿元件,并与一个 8 位 MCU 相连,本设计中采用三个相同的温湿度传感 器构成多点监测电路,如图 3-6 所示。

图 3-6 系统温湿度传感器电路

3.5 时钟电路设计
时间在本设计中有较为深刻的意义,无论在系统时间显示上,还是在通过对时间 的判断来处理温湿度数据上都起着至关重要的作用。本设计中采用美国 DALLAS 公司推 出的一种高性能低功耗实时时钟芯片 DS1307,它是一款 I2C 总线接口的时钟日历芯片 采用两线与单片机进行通信, 片内含有 8 个特殊功能寄存器和 56Bit 的 SRAM。 具有时、 分、秒、年、月、日、星期的计数功能,并且有 12 小时制和 24 小时制的计数模式, 可自动调整每月天数和闰年调整功能,并且具有掉电自动保护和上电复位功能。 时钟电路如图 3-7 所示,Y1 为外接 32.768KHz 晶振,为时钟芯片提供计时脉冲; BT1 为时钟芯片外接备用电池,防止掉电时间数据丢失;其中 R1、R2 为 I2C 总线上的

11

中原工学院信息商务学院毕业论文(设计)

上拉电阻; DS1307 时钟芯片第 7 引脚接到单片机 INT1 外部中断 1 引脚上, 每秒都会触 发外部中断 1,方便时间数据的读取;同时在第三引脚和地线之间加入了 3V 的纽扣电 池,避免了主电源在掉电后时间数据复位丢失。

图 3-7 系统时钟电路

3.6 报警电路设计
当蔬菜大棚内的温湿度超过上下限时,除了需要启动温湿度调节器之外,还需要 进行报警,这里用到的是蜂鸣器。蜂鸣器是一种采用一体化结构的电子器件,分为有 源蜂鸣器和无源蜂鸣器。有源蜂鸣器由于内部集成了振荡源,所以使用直流电压就可 以驱动它鸣叫;无源蜂鸣器内部没有振荡源,因此一般使用 2K~5K 方波来驱动。本设 计中使用的是有源蜂鸣器,在它两端加载 5V 的直流电压就可以使之鸣叫。 报警电路设计如图 3-8 所示,蜂鸣器工作电流一般为 10mA,而单片机的 I/O 口只 能承受几毫安的电流,因此需要加三极管进行驱动。由直流电压来供电,采用 PNP 型 8550 三极管驱动, 单片机的 I/O 口中的 P1.5 经 1K 电阻接三极管的基极, 当 P1.5 为低 电平时,三极管导通,5V 的电压加载到蜂鸣器两端,于是蜂鸣器鸣叫;当 P1.5 高电平 时,三极管截至,蜂鸣器不鸣叫。

图 3-8 系统报警电路 12

中原工学院信息商务学院毕业论文(设计)

3.7 键盘电路设计
键盘分为编码式和非编码式键盘。其中,非编码式键盘又包括矩阵式键盘和独立 式键盘。矩阵式键盘较为复杂,一般用于按键数目较多,而单片机可用的 I/O 口又比 较有限时。本设计中只需要用到 4 个按键,数目较少,并且可用的 I/O 口充足,采用 了独立式键盘,一个按键对应一个单片机的 I/O 口管脚。 按键设计采用的是无锁按键,用来控制程序中各个标志位的改变,以供调用子程 序,设计相对简单。单片机上电后所有 I/0 口均为高电平,故当检测到低电平的时候 单片机就会相应的做出动作。本设计共用到 4 个按键,它们用来改变设定时间值和温 湿度报警限值,从 S3 到 S6 分别控制温湿度上下限值设置、数值减、数值加、时间设 定。为方便程序编写,在键盘电路中加上一个四输入与门数字芯片接到单片机 INT0 外 部中断 0 引脚上,当有按键按下时,数字芯片输出端为低电平触发单片机外部中断, 其原理图如图 3-9 所示。

图 3-9 系统键盘电路

3.8 串口通信电路设计
串口通信可分为同步通信和异步通信,在单片机的应用系统中,主要是采用异步 串行通信。在设计通信接口时,应该采用标准接口,这样才能够方便而又准确的把单 片机和外设有机的连接起来,从而能形成一个监测系统,目前异步串口通信标准有 RS 一 232、RS 一 422、RS 一 485 标准。本设计中采用 RS-232 异步串口通信标准,由于本 设计中需要和 GSM 模块串口通信,向单片机下载程序时需要和 PC 机通信,故在电路中 加入了转换开关电路如图 3-10 所示,GRXD 和 GTXD 代表 GSM 模块上的串行接口,MRXD 和 MTXD 代表单片机上的串行接口,具体接口在一下两节详细阐述。

13

中原工学院信息商务学院毕业论文(设计)

图 3-10 系统串行接口转换电路

3.8.1

TC35 串口通信电路设计

TC35 串口通信主要设计内容是单片机与 TC35 通信接口电路, 由于采购的 TC35 GSM 模块已经设计好与外围其它设备通信的串口电路,所以在设计中时只考虑单片机的串 口通信电路即可,在设计完成时只需用一根 4pin 数据线连接即可。 3.8.2 PC 机串口通信电路设计

PC 机串口通信主要是设计内容是单片机与 PC 机通信接口电路, 系统设计里用到的 是美信公司生产的 MAX232 芯片,其内部有一个电源电压变换器,能够把输入的+5V 电 压变换为 RS232 输出电平所需的+10V 电压,采用此芯片接口的串行通信系统值需要接 +5V 电压即可。 MAX232 芯片中有两组电平转换的引脚,我们这里只需使用其中一组。打头的字母 “T”表示 TTL 电平, “R”表示 RS232 电平。R1IN 和 R2IN 表示输入 RS232 电平,因此 与电脑的串口相连;T1IN 和 T2IN 表示输入 TTL 电平,因此与单片机相连。所以,引脚 T1IN、T2IN、R1OUT、R2OUT 为接 TTL∕CMOS 电平的引脚,引脚 T1OUT、T2OUT、R1IN、 R2IN 为接 RS232 电平的引脚,电路设计如图 3-11 所示。

图 3-11 系统 PC 机串行通信接口电路

14

中原工学院信息商务学院毕业论文(设计)

3.9 系统电源电路设计
本系统设计所需要的工作电压为 +5V 直流电源,在系统电源电路设计中选用了 LM2596ADJ 开关电压调节器。LM2596ADJ 开关电压调节器是降压型电源管理单片集成电 路,能够输出 3A 的驱动电流,同时具有很好的线性特性和负载调节特性。该器件内部 集成频率补偿和固定频率发生器,开关频率为 150KHz,与低频开关调节器相比较,可 以使用更小规格的滤波元器件。该器件仅需要 4 个外接元器件,可以采用通用的标准 电感,更加优化了 LM2596ADJ 的使用,极大程度上的简化了开关电源的设计。并且在 特定的输入电压和输出负载的条件下,LM2596 的输出电压误差可以保证在±4%的范围 内,振荡频率误差保证在±15%的范围内,可以仅用 80μ Α 的待机电流实现外部断电, 具有外部保护电路,一个两级降频限流保护电路和一个在异常情况下断电的过温完全 保护电路。固定版本输出有 3.3V、5V、12V,可调版本可以输出小于 37V 的各种电压。 系统设计选用后者,这样可以给系统提供一个相对较宽泛的直流电压。 在本系统设计中输入直流 12V 电压,经过 LM2596ADJ 开关电压调节器稳压后,调 节精密电位器 R16 输出系统需要的+5V 工作电压,其电压调节原理公式如公式 (3-1) 所 示。

? R16 ? VOUT ? VREF ? ?1 ? R ? ?,其中VREF ? 1.23V 17 ? ?

(3-1)

系统额定工作电压为 5V,因此在调整完毕输出电压值后可以用电位器固定红胶加 以固定,使电源电路输出更加稳定的电压供系统使用,系统电源电路原理图如图 3-12 所示。

图 3-12 系统电源电路

15

中原工学院信息商务学院毕业论文(设计)

4

温湿度监测系统软件设计

系统软件号称整个系统的灵魂,也是整个系统的软黄金部分,没有软件的完美匹 配就不会体现系统的价值所在,只有它的存在才能赋予系统生命,可想而知软件编程 在整个系统中占有举足轻重的地位。

4.1 温湿度监测系统软件结构总体研究
本系统软件设计采用 C 语言编写,主要通过 STC12C5A60S2 单片机对 DHT11 温湿度 传感器采集来的温度进行处理分析,送给 Nokia5110 LCD 屏幕显示,若超过限制则触 发报警电路并通过西门子 TC35 GSM 模块向上位机发送报警的温湿度数据,否则每小时 向上位机发送一次数据。时间上的信息判断,由时钟芯片 DS1307 来提供,程序中设置 时钟芯片特殊寄存器 07H 单元的方波信号输出功能,使芯片的第 7 引脚输出 1Hz 的方 波,接到单片机外部中断 1 引脚上,即每秒触发一次中断,在中断服务程序中进行时 间信息的读取、判断。系统整体流程图如图 4-1 所示。
开始 外部中断1 串行中断

系统初始化

读时间送显示 否 返回

ES=0

TI=1否 是 TI=0

键盘扫描

新信息扫描 否 RI=1否 温湿度是否 超出限值 是 触发报警电路 并向上位机发送 当前数据 指针大于 等于150 是 指针指向缓存 单元首地址 1h向上位机发送 数据信息 是 发送当前数据信息 返回 ES=1 否 是 RI=0,将数据存入缓存 单元,指针加一 否



图 4-1 系统软件流程图 16

中原工学院信息商务学院毕业论文(设计)

4.2 显示单元软件设计
显示单元是整个系统的心灵窗户,是人机对话最直观的窗口。Nokia5110 LCD 屏幕 的通信协议时一个没有输出只有输入的 SPI 协议,在系统显示单元设计时,无需利用 硬件 SPI,只需要软件程序模拟即可。 编程时首先要给 LCD 复位,使 LCD 的控制参数为初始状态,再对 LCD 进行初始化 功能设定(如关显示屏、设置为扩充指令模式、设置电压、温度校正、显示字符模式 选择、设置为基本指令、设置显示模式、清屏、开显示屏) ,因为接通电源后,内部寄 存器和 RAM 的内容是不确定的,这需要一个 RES 低电平脉冲复位一下。当 VDD 变为高 电平,达到 VDDmin(或更高)之后,最多 100ms RST 输入低电平(电平幅度<0.3VDD),其 初始化时序如图 4-2 所示。 接着就可以进行对 LCD 写入要显示的字符了, Nokia5110 LCD 屏幕写数据/命令时序如图 4-3 所示。

图 4-2 Nokia5110 LCD 复位时序

图 4-3 SPI 串行总线协议—传送一个字节

17

中原工学院信息商务学院毕业论文(设计)

显示单元软件设计流程图如图 4-4 所示。

开始

LCD初始化

设置LCD坐标 NO 写字符 NO YES 写字符串 YES NO 写位图 YES

写入数据

结束
图 4-4 显示单元程序流程图

4.3 温湿度传感器单元软件设计
温湿度传感器作为系统设计的核心部分,系统设计采用三个 DHT11 温湿度传感器, 巡回监测蔬菜大棚的温湿度。 DHT11 传感器是通过奥松电子有限公司开发的单总线协议 和上位机进行数据通信。温湿度传感器需要严格的读写协议来确保数据的完整性。整 个读写分为,上位机发送起始信号,上位机接收下位机发来的握手信号,读‘0’ ,和 读‘1’四个步骤,所有的信号除主机启动复位信号外,全部都由 DHT11 产生。 通过单总线访问 DHT11 顺序归纳如下: (1)主机发开始信号; (2)主机等待接收 DHT11 响应信号;
18

中原工学院信息商务学院毕业论文(设计)

(3)主机连续接收 40Bit 的数据和校验和; (4)数据处理。 用户主机发送一次开始信号(低电平)DHT 从低速模式转换到高速模式,等待主机 开始信号结束(拉高)后,DHT 发送响应信号,送出 40Bit 的数据,并触发一次信号采 集,用户可以选择读取 DHT 部分数据。总线的空闲状态为高电平,主机把总线电位拉 低后等待 DHT 响应,主机把总线拉低必须大于 18mS,保证 DHT 能监测到起始信号,这 也是单片机能从 DHT 中读出正确数据的关键[2]。 DHT 接收到主机的开始信号后, 等主机开始信号结束后, DHT 发送低电平响应信号。 主机发送开始信号结束后,延时等待 20-40uS,读取 DHT 的回应信号,主机发送开始信 号后,可以将其切换到输入模式,或者可以输出高电平,总线由上拉电阻拉高电位其 复位时序如图 4-5 所示。

图 4-5 DHT11 复位时序图

单片机作为主机,发送开始信号后,延时等待 20uS-40uS 后读取 DHT 的回应信号, 读取总线为低电平,说明 DHT 发送响应信号,DHT 发送响应信号后,再把总线拉高,准 备发送数据,每一位数据都以低电平开始,读 DHT 数据流程如图 4-6 所示。

图 4-6 读 DHT11 数据流程图 19

中原工学院信息商务学院毕业论文(设计)

数字‘0’表示方法为,首先 DHT 把总线拉低 12-12uS 然后拉高,高电平保持时间 在 26-28uS 这个范围内,则此比特位‘0’电平,信号‘0’时序图如图 4-7 所示。

图 4-7 数字‘0’时序图

数字‘1’表示方法为首先 DHT 把总线拉低 12-14uS 然后拉高,高电平保持时间在 116-118uS 这个范围内,则此比特位‘1’电平,信号‘1’时序图如图 4-8 所示。

图 4-8 数字‘1’时序图

20

中原工学院信息商务学院毕业论文(设计)

系统中涉及到三个温湿度传感器的数据采集, 对应每一个传感器的编程思路如上述 所示,其软件设计流程图如图 4-9 所示。

开始

初始化 读A点温湿 度送显示 读B点温湿 度送显示 读C点温湿 度送显示 结束
图 4-9 温湿度采集程序流程图

4.4 通信单元软件设计
4.4.1 通信协议设计 TC35 GSM 模块作为本系统的“外交官” ,发挥着至关重要的作用,它对外和对内都 需要有一系列的通信协议。在本设计中,下位机和上位机通信时需要将每个节点的温 度湿度及二者的限值发给上位机,则通信协议为:&节点 A 当前温度+温度限值+当前湿 度+湿度限值#节点 B 当前温度+温度限值+当前湿度+湿度限值#节点 C 当前温度+温度限 值+当前湿度+湿度限值%;上位机和下位机通信时只将各节点设置的限值发给下位机, 下位机解析收到的数据信息,将相关限值数据存储单元的内容进行修改就可以了,则 通信协议为:&节点 A 温度限值+湿度限值#节点 B 温度限值+湿度限值#节点 C 温度限值 +湿度限值%。 通信协议中,所有数据类型均为无符号字符型,下位机接收到数据信息解析后, 需要合并数据统一确定系统限值的大小。 “&”符号作为协议中的起始符,是滤除非上 位机发送的数据信息的关键,当下位机判断有新信息时首先判断第一个字符是否为
21

中原工学院信息商务学院毕业论文(设计)

“&” ,是的话才会解析信息中的数据,否则删除此条信息,保证收到的新信息永远存 放在 SIM 卡中的第一个位置; “#”符号仅用来标记分割数据的位置,下位机对此没过 多要求; “%”符号为结束字符判断数据信息是否结束。上位机也是如此不再过多敖述。 4.4.2 TC35 发送接收信息软件设计

通信单元主要是西门子 TC35 GSM 模块的软件控制和系统数据处理发送装置。单片 机是通过串口和 TC35 进行通信的,TC35 使用相对应的 AT 指令来发送或者接收数据, 因此在软件设计时需要对单片机的串口和 TC35 进行初始化。 编程思路为,系统在上电时要对单片机串口和 TC35 进行初始化,如单片机串口波 特率设置,串行中断开启,TC35 和单片机握手连接,设置短信接收模式等。每当在温 湿度传感器将数据采集完毕时将相关数据信息存入对应的发送字符串中,然后按照每 小时、温湿度报警时将温湿度和限值数据发送给上位机,其软件设计流程图如图 4-10 所示。
开始

串口初始化 发、收信息初始化

发送数据

接收数据

向上位机发送 温湿度数据

删除数据信息 是否指定 字符信息 是 提取限值数据 否

删除数据 信息

结束

图 4-10 TC35 串口通信程序流程图

22

中原工学院信息商务学院毕业论文(设计)

4.5 时钟单元软件设计
蔬菜温湿度大棚中引入时钟芯片,赋予了系统苛刻的时间观念,系统软件设计上 更得体现时间性。时钟芯片选用 DS1307 ,在 I2C 总线上是从器件,地址固定为 “11010000” 。 写操作时,被控接收模式主控器件按图 4-11 所示顺序将数据写入到 DS1307 寄存 器或内部 RAM 中。

图 4-11 单片机对 DS1307 写时序

(1)START 信号; (2)写地址+W(0xd0)字节,DS1307 发出应答信号(ACK) ; (3)写 1 字节的内存地址,DS1307 时钟芯片应答; (4)写数据,可以写多个字节,每当一字节数据写入后 DS1307 内部地址指针加 一,DS1307 时钟芯片应答; (5)STOP 信号。 读操作时, 被控发送模式主控器件按图 4-12 所示顺序将 DS1307 寄存器或内部 RAM 数据读取。

图 4-12 单片机对 DS1307 写时序 23

中原工学院信息商务学院毕业论文(设计)

(1)START 信号; (2)写地址+W(0xd1)字节,DS1307 发出应答信号(ACK) ; (3)读数据,可以读多个字节,读取数据的 DS1307 内部地址由上次写操作或读 操作决定,读取每一字节数据 DS1307 内部地址计数器自动加一,主器件应答,读取最 后一字节时主器件回应 NACK 信号(不应答) ; (4)STOP 信号。 根据上述读写操作顺序, 按照绘制如图 4-13 所示的程序流程图进行软件程序设计。

开始 开始信号 写器件地址0xd0 写一内存地址

开始 开始信号 写器件地址0xd1 写一内存地址

写数据内存地址 自动加1 结束信号

读数据内存地址 自动加1 结束信号

结束

结束

写数据

读数据

图 4-13 DS1307 读写时间程序流程图

4.6 键盘单元软件设计
在系统设计中用到了四个无锁按键,分别对应时间设置、数据加、数据减和温湿 度设置。系统硬件电路设计时上加上了双四输入与门数字芯片,这样是为节省单片机 运行内存和方便程序编写,如果在程序主函数中不方便加入键盘扫描子函数,可以在 外部中断服务程序中编写键盘扫描程序,本系统设计中键盘扫描判断程序在主函数程 序总实现。键盘扫描程序流程图如图 4-14 所示,由于未设置确定按键,会出现按键逻 辑混乱现象,所以在键盘扫描程序中设置相对应的标志位来互锁对应的按键,比如在

24

中原工学院信息商务学院毕业论文(设计)

时间设置按键按下时,不希望温湿度设置按键按下有响应,因此也加入标志位来互相 限制。除此之外还有按键消抖处理,消除按键在按下时的高频抖动防止程序跑飞出现 错误。

开始 否

S3=0是 S6=0否 是 温湿度限值 温湿度限制 设定

时间设定

S5=0加1 S4=0减1

S5=0加1 S4=0减1

S3=0 S3=0确定 确定 返回主界面 返回主界面

S6=0确定 返回主界面

结束
图 4-14 键盘扫描程序软件

25

中原工学院信息商务学院毕业论文(设计)

5

温湿度监测系统调试

温湿度监测系统调试包括系统硬件装配和系统软件调试,设计内容涉及到硬件和 软件的设计开发环境,详细内容在一下两节中具体阐述。

5.1 温湿度监测系统硬件装配
温湿度监测系统硬件调试包括制定系统设计内容整体结构、元器件选型、系统硬 件电路原理图设计、系统硬件电路 PCB 设计及元器件焊接整机测试。其中系统原理图 设计最为关键,它的设计与否直接关系到系统性能好坏。电路原理图用于将该电路所 用的各种元器件用规定的符号表示出来,并用连线画出他们之间的连接情况,在各元 器件旁边还要注明其规格、型号和参数。 5.1.1 温湿度监测系统硬件设计环境 本 系 统 电 路 原 理 图 和 PCB 图 是 利 用 澳 大 利 亚 Altium 公 司 研 发 的 Altium Designer13 计算机辅助设计软件来进行设计的,如图 5-1 所示。

图 5-1 硬件电路开发软件

硬件设计流程如下所描述: 首先,创建系统 PCB 工程、原理图、PCB 图、加载元器件库、加载元器件封装库, 如图 5-2 所示;

图 5-2 系统原理图文件 26

中原工学院信息商务学院毕业论文(设计)

然后,在原理图工作区绘制原理图,原理图绘制完毕时,为每个元器件添加标号 和加载封装,如图 5-3 所示;

图 5-3 元器件添加封装

其次, 将加载完封装后的原理图导入 PCB, 对元器件进行合理布局后并按照相应的 电气规则手动完成 PCB 布线和处理好 PCB 板细节问题(如顶层、底层覆铜,焊盘添加 泪滴等) ,2D 效果如图 5-4 所示,3D 效果如图 5-5 所示;

27

中原工学院信息商务学院毕业论文(设计) 图 5-4 PCB 2D 效果图

图 5-5 PCB 3D 效果图

最后,导出系统电路原理图文件、BOM 表、网络表、PCB 图文件、光绘文件。 在系统硬件电路设计完成后,将光绘文件发送至 PCB 生产厂家进行生产制作,系 统 PCB 制作后的实物图如图 5-6 所示。

图 5-6 PCB 制作完成实物

5.1.2 温湿度监测系统整机装配 温湿度监测系统整机装配是在 PCB 板制作完成后进行元器件焊接总装的一个过程, 由于系统电路设计多采用标贴器件,所以在焊接上带来了部分难度。焊接时有规范的
28

中原工学院信息商务学院毕业论文(设计)

技巧和顺序,本设计中含有 0805 封装的标贴发光二极管,体积大小如同芝麻粒,焊接 时必须防止静电击穿,焊接时用到的工具有静电恒温烙铁、电镊子、热风枪、助焊剂、 焊锡丝、偏口钳,焊接现场如图 5-7 所示。

图 5-7 系统电路板焊接现场

功夫不负有心人,焊接完成的硬件电路如图 5-8 所示,焊接完成后用放大镜检查 各焊盘,以防虚焊、漏焊、脱焊,最终按照系统电路原理图利用数字万用表检验重要 器件电路正确与否。

图 5-8 系统电路板焊接装配完成实物 29

中原工学院信息商务学院毕业论文(设计)

5.2 温湿度监测系统软件调试
系统设计到这里算是进入最后一道程序,也是至关重要的一步,是给予硬件灵魂 的关键。软件调试分为开发环境选择和软件编写完成后的总调,需要软硬件完美匹配, 在一下两小节中对软件调试作详细说明。 5.2.1 温湿度监测系统软件开发环境 温湿度监测系统软件开发环境采用美国 Keil Software 公司研发的 Keil μ Vision4 软件如图 5-9 所示,软件功能强大完美开发 C51 内核的单片机。

图 5-9 系统软件开发环境

本系统软件采用模块化编程设计,设计过程中更方便功能函数调用,但变量设置 较为苛刻,入口、出口参数必须准确定义。软件设计流程如下所示: 首先,创建系统软件工程,选择开发的芯片,创建个模块程序.c 和.h 文件,如下 图 5-10 所示;

图 5-10 系统模块程序 30

中原工学院信息商务学院毕业论文(设计)

然后,按照上章节设计的软件流程图编写各功能模块程序代码,在需要的代码为 之加上注释说明,如图 5-11 所示;

图 5-11 系统程序代码注释

最后,编写完全部程序代码,查找语法错误和逻辑功能错误,通过 Keil 软件的编 译器进行编译、连接,最后将生成的机器码.hex 文件,如图 5-12 所示。

图 5-12 系统软件机器码设置窗口

5.2.2 温湿度监测系统软件总调 系统软件总调是在软件编写完成时将生成的.hex 文件烧录到单片机中进行系统功 能调试。在本设计中采用模块化编程,是在每一功能模块编写完成后烧录到单片机中

31

中原工学院信息商务学院毕业论文(设计)

逐步验证,测试完每个功能模块程序后进行软件总调,这样可以大大减小工作量,可 以更快的排除错误的程序代码及时改写程序代码。最终调试好程序,导出程序代码。 调试时不时遇到困难,调试 DS1307 时钟模块程序时,由于程序对读出的时间数据 信息解析错误导致, LCD 屏幕上显示乱码, 经过细心查阅程序代码找出错误之处及时修 正。GSM 模块作为系统数据通信的纽带也是难点,光是 AT 指令说明就一正本书,程序 设计时需要不断翻阅资料手册,调试时单片机对接收到的信息无法正确提取,导致温 湿度上下限设置频繁出错,系统逻辑错误,程序跑飞,经过信心查阅找出错误代码进 行及时修正。最后所有功能模块组合到一起时,由于考虑不太全面在中断优先级定义 时功能模块之间出现冲突,导致系统程序容易跑飞或无法正常运行,最终调整各程序 模块之间的逻辑关系,实现功能任务书功能,如图 5-13 所示。

图 5-13 蔬菜大棚温湿度监测系统调试完成

32

中原工学院信息商务学院毕业论文(设计)

6

结论

本系统可以对蔬菜大棚进行温湿度测量,将当前温湿度数据显示在 LCD 屏幕上, 同时 LCD 屏幕上还会显示时间信息。如果温湿度超出了设定的上下限,将进行报警。 温度回到限定值内后,停止报警。系统实时监测蔬菜大棚温湿度数据,并且每个小时 通过 GSM 模块向上位机发送一次数据。可以通过按键设置时间信息和温湿度限制。 系统的指标参数完成情况如表 6-1 所示。
表 6-1 系统指标参数表

实现功能 测量温度范围 测量温度误差 测量湿度范围 测量湿度误差 液晶屏显示 超限报警 修改限值参数 通信装置 时间显示

结果 0~50℃ ±2% 20~95%RH ±5% Nokia5110 LCD 声光报警 独立式键盘修改参数 AT 指令控制 TC35 DS1307 时钟芯片

完成程度 完成 完成 完成 完成 完成 完成 完成 完成 完成

33

中原工学院信息商务学院毕业论文(设计)

参考文献
[1]荆轲.温室控制系统的现状及其发展[J].农机化研究,2008 [2]占宇.基于无线传输的多功能温度检测系统的开发[D].沈阳理工大学,2011 [3]刘方.基于虚拟仪器技术的农业温室控制系统的研究[D].甘肃农业大学,2008 [4]李慧.温室控制技术发展方向[J].林业机械与木工设备,2004 [5]于海业.温室环境自动检测系统[J].农业工程学报,1997 [6]牛皖闽,何立新.温室控制系统试验装置与系统分析[J].齐齐哈尔轻工学院,1995 [7]郑锋,王巧芝,孙西瑞.温室大棚自动控制系统的设计[J].农机科技与信息,2008 [8]路康,马斌强,等.温室大棚动态参数测试系统的设计[J].河南农业大学,2008 [9]丁镇生.传感器及传感器技术应用[M].北京:电子工业出版社,1998 [10]何希才,薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004 [11]曹柏荣,瞿丹晨.温室大棚中 CO2 浓度测量仪[J].仪表技术与传感器,2005 [12]彭其圣,刘松龄.单片机温室大棚种植参数监控系统[J].中南民族大学学报:自然科学版,2004 [13]周航慈.单片机应用程序技术[M].北京:北京航空航天大学出版社,2002. [14]郭天祥.新概念 51 单片机 C 语言教程[M].北京:电子工业出版社,2009.1 [15]高远明.Protel DXP 基础与应用[M].北京:科学出版社,2007 [16]谭浩强.C 程序设计[M].北京:清华大学出版社,2010.6 [17]宏晶科技.STC Microcontroller Handbook,2007 [18]SIEMENS.TC35/TC37 Hardware Interface Description[S].2001-12-21 [19]Kang Zhao,XiaoHua Liu.Performance of temperature and humidity independent control air-conditioning system in an office building[J].Energy and Buildings. [s.n],2011

34

中原工学院信息商务学院毕业论文(设计)

致谢
毕业设计到此我的本科学习生涯马上就要结束了,在这过程中遇到了很多困难, 单凭一己之力是无法克服的。经过三个月的忙碌和工作,本次毕业设计将接近尾声了, 作为一个在校本科生的毕业设计,由于设计经验匮乏,难免会有考虑不周全的细节, 如果没有刘老师的监督和指导,以及同学们的支持,想要完成这个毕业设计是难以想 象的。 在各位老师的帮助下我的设计顺利完成,系统设计基本实现了任务书上所要求的 内容,并且增加了时间显示功能,但是系统个别细节功能有所欠缺需要进一步的完善, 本人也会在以后的学习中加强关于大型程序和功能实现算法方面的学习,让自己的所 设计的系统更加完善。这是我在大学期间所做的最后一样设计,方案选择进行了多次 修改,系统原理电路图修改了五次,PCB 图经过了三次修改最终确定了设计方案。但是 在真正真正去动手实践的时候才会发现自己设计不足之处,理论上的永远都是理论, 不去实践永远不知道系统设计的不足之处。理论虽是应用的基础,但是如果不去应用 那么自己所学的理论知识永远体现不到价值。 通过这次设计我又接触到许多新的电子装置,比如德国西门子 TC35 GSM 模块、美 国达拉斯 DS1307 时钟芯片、Nokia5110 LCD 液晶显示屏幕。在系统设计的基础上可以 加上继电器组,在对程序中加入合适的算法可以控制温湿度值。这其实说明了,我们 身边到处都是可以进行二次开发的产品。只要加上一些创意一些想法都是可以再提升 一个应用等级或者应用范畴的。由于没有过于复杂的算法控制和数据处理,系统的程 序设计不算过于复杂,但是程序编写方面仍旧要有良好的逻辑性。总体上来说对本次 设计成果满意。 在这里首先要感谢刘爱荣指导老师。他平日里工作繁多,但在毕业设计阶段从选 题到完成,每一步都是在刘老师的指导下完成的,倾注了老师大量的心血。我的设计 较为复杂烦琐,但是刘老师仍然细心地纠正电路原理图中的错误。除了敬佩刘老师的 扎实的专业水平外,她的治学严谨的态度和科学研究的精神也是我永远学习的榜样, 同时积极影响我今后的工作和学习。 其次要感谢和我一起作毕业设计的同学,他们在我完成设计的过程中给予我的帮 助和鼓励,也是他们陪我度过这两年本科生活。然后还要感谢本科两年来所有的老师, 为我打下专业知识的基础。 最后,衷心地感谢在百忙之中评阅我论文和参与我毕业设计答辩的各位老师!忠 心地祝愿各位身体健康、工作顺利。

35

中原工学院信息商务学院毕业论文(设计)

附录
附录一 蔬菜大棚温湿度监测系统电路原理图

36

中原工学院信息商务学院毕业论文(设计)

附录二

蔬菜大棚温湿度监测系统软件源程序

系统源程序代码较多,不便附上全部功能模块程序代码,毕业设计 中仅附上系统软件主函数程序代码,如下所示。
/****************************************************************** *** 程序名:蔬菜大棚温湿度监测系统 编写人:苏哲 编 写 时 间 : 2014 年 5 月 1 日 硬 件 支 持 : STC12C5A60S2 外 部 晶 体 时 钟 修改日志: [TEST 测 试 版 ] 1-201405011020 在 主 函 数 写 入 简 单 程 序 测 试 各 模 块 程 序 是 否 正 常 , 通过测试 并备份。 (备) 2-201405051100 TC35 模 块 使 用 算 法 编 写 , 短 信 发 送 、 接 收 及 提 取 ( 备 ) [V1 正 式 版 ] 3-201405061230 初 步 总 调 ( 备 ) 4-201405091820 系 统 总 调 , 并 加 入 开 机 Logo ( 备 ) 5-201405100900 系 统 总 调 , 完 善 系 统 细 节 问 题 , 显 示 Bug 打 补 丁 ( 备 ) /*******************************************************************/ #include<STC12C5A.h> #include<intrins.h> #include<stdio.h> #include<string.h> #include"LCD_Nokia5110.h" #include"DHT11.h" #include"TC35.h" #include"DS1307.h" sbit Bell_flag=P1^5; sbit s1=P2^3; sbit s2=P2^2;

37

中原工学院信息商务学院毕业论文(设计) sbit s3=P2^1; sbit s4=P2^0; unsigned char caiji_flag=0; unsigned char s1num; unsigned char s4num; unsigned char T_H_set1=30,RH_H_set1=40; // 定 义 温 湿 度 的 设 置 缓 存 单 元 unsigned char T_H_set2=30,RH_H_set2=40; unsigned char T_H_set3=30,RH_H_set3=40;

unsigned char suzhe[20]; code unsigned char Picture[]= { /*-/*-调 入 了 一 幅 图 像 : C:\Users\SuZhe\Desktop\ 校 徽 .bmp 宽 度 x 高 度 =84x48 --*/ --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0x F8,0x F8,0x78,0x3C,0x1C,0x0C ,0xCC, 0xEC,0x FC,0xFC,0xFC,0xFC,0x FC,0x7C,0x3C,0x3E, 0x3E,0x1E,0x9E,0x9E,0x9E,0 x9E,0x8E, 0x8E,0x8E,0x8E,0x0E,0x4E,0x4C,0x5C,0x5C,0xDC,0xD8,0x98,0x98,0xB0,0x30,0x 38

中原工学院信息商务学院毕业论文(设计) 20,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0xC0,0x FE,0xFF,0 xFF,0x FF,0x FF,0x FF,0xFF,0xFF,0xF9, 0xE0, 0xC0,0x80,0x07,0x1 F,0x3F,0x7F,0x FF,0x FF,0xF1,0xE0,0xC0,0x80,0x9E,0x3F,0x3F, 0x3 F, 0x7 F,0x7 F,0xFF,0xFF,0xFF,0x FF,0x FF,0x FF,0xFF,0x0 F,0x1 F,0xFE,0xFE,0x FC,0 xFD ,0x F9, 0xE3,0x03,0x07,0x1E,0x7E,0x FC,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF,0xEF,0xCF,0x9F,0x9F,0x1F,0x1F,0x3F,0x3E,0x3E,0xBE,0xBE,0xBD,0xBD,0x BD,0xB F, 0xBF,0x9F,0x9F,0x9F,0x9F,0xC F,0xCF,0xC7,0xC7,0xE3,0xE3,0xF1,0xF0,0x F8,0x7 C,0x7F, 0x3 F,0x3 F,0x1 F,0x8 F,0xC7,0xC0,0xE0,0xF8,0xFF,0x FF,0x FF,0x FF,0xFF,0x3 F,0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0 x07, 0x0 F,0x0 F,0x1 F,0x1 F,0x3F,0x3F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFE,0xFE,0x FE,0xFC, 0xFC, 0xFD,0x FD,0xF9,0xF9,0xF9,0xF9 ,0xF9,0xF9,0xF9,0x F9,0x F9,0xF9,0xF9,0xFD,0xF C,0x FC, 39

中原工学院信息商务学院毕业论文(设计) 0xFC,0x FC,0xFE,0xFE,0xFE,0x7F,0x7F,0x3F,0x3F,0x3F,0x1F,0x0F,0x0F,0x07,0x03, 0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0 x01, 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; code unsigned char Picture_time[]= { 0x00,0xFC,0x84,0x84,0x84,0xFE,0x14,0x10, 0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x00, 0x00,0xF8,0x01,0x02,0x F6,0x10,0x12,0x12, 0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00, 0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9F, 0x81,0x81,0x81,0x9 F,0xA0,0x20,0x20,0x00, 0x00,0x10,0x17,0xD5,0x55,0x57,0x55, 0x7D, 0x55,0x57,0x55,0xD5,0x17,0x10,0x00,0x00, 0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00, 0x00,0x23,0x40,0x80,0x7 F,0x00,0x00,0x00, 0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11, 0x11,0x11,0x3 F,0x40,0x80,0x7 F,0x00,0x00, 0x00,0x00,0x00,0x7 F,0xA0,0x90,0x40,0x43, 40 // 时 间 设 置

中原工学院信息商务学院毕业论文(设计) 0x2C,0x10,0x28,0x26,0x41,0xC0,0x40,0x00, 0x40,0x40,0x40,0x7 F,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x7 F,0x40,0x60,0x40,0x00 }; code unsigned char Picture_T_RH[]= { 0x10,0x22,0x64,0x0C,0x80,0x00,0xFE,0x92, 0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00, 0x10,0x22,0x64,0x0C,0x80,0x FE,0x92,0x92, 0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00, 0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0xA5, 0xA6,0xA4,0x FC,0x24,0x34,0x26,0x04,0x00, 0x40,0x40,0x42,0xCC,0x00 ,0x40,0xA0,0x9F, 0x81,0x81,0x81,0x9 F,0xA0,0x20,0x20,0x00, 0x00,0x10,0x17,0xD5,0x55,0x57,0x55,0x7D, 0x55,0x57,0x55,0xD5,0x17,0x10,0x00,0x00, 0x04,0x04,0xFE,0x01,0x40,0x7E,0x42,0x42, 0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00, 0x04,0x04,0xFE,0x41,0x44,0x48,0x50,0x7F, 0x40,0x40,0x7F, 0x50,0x48,0x64,0x40,0x00, 0x40,0x20,0x9 F,0x80,0x42,0x42,0x26,0x2A, 0x12,0x2A,0x26,0x42,0x40,0xC0,0x40,0x00, 0x00,0x00,0x00,0x7 F,0xA0,0x90,0x40,0x43, 0x2C,0x10,0x28,0x26,0x41,0xC0,0x40 ,0x00, 0x40,0x40,0x40,0x7 F,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x7 F,0x40,0x60,0x40,0x00 }; /**************************** 蜂 鸣 器 报 警 声 音 **************************/ /* 函 数 原 型 :void di(void) /* 函 数 功 能 : 蜂 鸣 器 报 警 声 音 /* 输 入 参 数 : 无 41 // 温 湿 度 设 置

中原工学院信息商务学院毕业论文(设计) /* 输 出 参 数 : 无 /************************************* *******************************/ void di(void) { Bell_flag=0; Delay_ms(100); Bell_flag=1; } /***************** 判 断 是 否 有 新 短 信 , 并 读 取 短 信 内 容 ******************/ /* 函 数 原 型 :void GSM_TEXT_choise(void) /* 函 数 功 能 : 判 断 是 否 有 新 的 短 信 , 有 则 将 读 取 短 信 缓 存 进 行 存 储 保 存 /* 输 入 参 数 : 无 /* 输 出 参 数 :b 无 /* 调 用 模 块 : /*******************************************************************/ void GSM_TEXT_choise(void) { //unsigned int Rec_add=73; if(strstr(Rec_Buf,"+CMTI")!=NULL) { CLR_Buf(); Send_ASCII(str6); while(!Hand ("OK")); 析接收到的数据 if(strstr(Rec_Buf,"&")!=NULL) 为上位机发送的数据短信 { strcp y (suzhe,(strstr(Rec_Buf,"&")+1) ); T_H_set1=(suzhe[0]*10+suzhe[1] -0x10); RH_H_set1=(suzhe[2]*10+suzhe[3] -0x10); T_H_set2=(suzhe[5]*10+suzhe[6] -0x10); 42 // 判 断 接 收 到 的 短 信 是 否 // 有 , 先 将 缓 存 单 元 清 空 // 发 送 读 取 新 短 信 指 令 // 返 回 “ OK ” 后 , 分 // 判 断 是 否 有 新 短 信

中原工学院信息商务学院毕业论文(设计) RH_H_set2=(suzhe[7]*10+suzhe[8] -0x10); T_H_set3=(suzhe[10]*10+suzhe[11] -0x10); RH_H_set3=(suzhe[12]*10+suzhe[13] -0x10); } CLR_Buf(); Send_ASCII(str5); while(!Hand("OK")); CLR_Buf(); } // 清 除 缓 存 内 容 } /**************************** 键 盘 扫 描 函 数 **************************/ /* 函 数 原 型 :void INTRP0(void) /* 函 数 功 能 : 外 部 中 断 1 服 务 程 序 , 主 要 对 键 盘 进 行 扫 描 /* 输 入 参 数 : 无 /* 输 出 参 数 : 无 /************************************************************ ********/ void keyscan(void) { if (Bell_flag==0) { if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { Delay_ms(10); if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { while(!(s1&&s2&&s3&&s4)) ;di(); Bell_flag=1; } } } 43 // 解 析 完 毕 后 删 除 本 条 短 信 缓 存 单 元 // 删 除 读 取 后 的 信 息 // 等 待 设 置 成 功

中原工学院信息商务学院毕业论文(设计) if((s1==0)&&(s4num==0)) { Delay_ms(10); if(s1==0) { EX1=0; caiji_flag=1; s1num++; while(!s1);di(); switch(s1num) { case 1: LCD_clear(); //LCD_set_XY(0,0); LCD_draw_bmp_pixel(10,0,P icture_time,64,16); LCD_set_XY(11,3); LCD_write_char('2 '); LCD_write_char('0'); LCD_write_char(table_num[time[6]/16]); LCD_write_char(table_nu m[time[6]%16]); LCD_write_char('-'); LCD_write_char(table_num[time[5]/16]); LCD_write_char(table_num[time[5]%16]); LCD_write_char('-'); LCD_write_char(table_num[time[4]/16]); LCD_write_char(table_num[time[4]%16]); LCD_write_char(' '); LCD_write_char(table_num[time[3]%16]); LCD_set_XY(19,4); LCD_write_char(table_num[time[2]/16]); LCD_write_char(table_num[time[2]%16]); LCD_write_char(':'); 44

中原工学院信息商务学院毕业论文(设计) LCD_write_char(table_num[time[1]/16]); LCD_write_char(table_num[time[1]%16]); LCD_write_char(' '); LCD_set_XY(49,4); LCD_write_char(table_num[time[0]/16]); LCD_write_char(table_num[time[0]%16]); break; case 2: LCD_set_XY(34,4); LCD_write_char(table_num[time[1]/16]); LCD_write_char(table_num[time[1]%16]); break; case 3: LCD_set_XY(19,4); LCD_write_char(table_num[time[2]/16]); LCD_write_char(table_num[time[2]%16]); break; case 4: LCD_set_XY(66,3); LCD_write_char(table_num[time[3]%16]); break; case 5: LCD_set_XY(51,3); LCD_write_char(table_num[time[4]/16]); LCD_write_char(table_num[time[4]%16]); break; case 6: LCD_set_XY(36,3); LCD_write_char(table_num[time[5]/16]); LCD_write_char(table_num[time[5]%16]); break; case 7: LCD_set_XY(21,3); 45

中原工学院信息商务学院毕业论文(设计) LCD_write_char(table_num[time[6]/16]); LCD_write_ char(table_num[time[6]%16]); break; case 8: s1num=0; start_1307(); write_add_1307(0x00,time[0]); write_add_1307(0x01,time[1]); write_add_1307(0x02,time[2]); write_add_1307(0x03,time[3]); write_add_1307(0x04,time[4]); write_add_1307(0x05,time[5]); write_add_1307(0x06,time[6]); start_1307(); LCD_clear(); caiji_flag=0; EX1=1; break; } } } if(s1num!=0) { if(s2==0) { Delay_ms(10); if(s2==0) { while(!s2);di(); switch(s1num) { case 1: if((time[0]&0x0f)==9) 46

中原工学院信息商务学院毕业论文(设计) time[0]=(time[0]+0x10)&0xf0; else time[0]++; if(time[0]==0x60) time[0]=0; LCD_set_XY(49,4); LCD_write_char(table_num[time[0]/16]); LCD_write_char(table_num[time[0]%16]); break; case 2: if((time[1]&0x0f)==9) time[1]=(time[1]+0x10)&0xf0; else time[1]++; if(time[1]==0x60) time[1]=0; LCD_set_XY(34,4); LCD_write_char(table_num[time[1]/16]); LCD_write_char(table_num[time[1]%16]); break; case 3: if((time[2]&0x0f)==9) time[2]=(time[2]+0x10)&0xf0; else time[2]++; if(time[2]==0x24) time[2]=0; LCD_set_XY(19,4); LCD_write_char(table_num[time[2]/16]); LCD_write_char(table_num[time[2]%16]); break; case 4: time[3]++; if(time[3]==0x08) 47

中原工学院信息商务学院毕业论文(设计) time[3]=0x01; LCD_set_XY(66,3); LCD_write_char(table_num[time[3]%16]); break; case 5: if((time[4]&0x0f)==9) time[4]=(time[4]+0x10)&0xf0; else time[4]++; if(time[4]==0x32) time[4]=0x01; LCD_set_XY(51,3); LCD_write_char(table_num[time[4]/16]); LCD_write_char(table_num[time[4]%16]); break; case 6: if((time[5]&0x0f)==9) time[5]=(time[5]+0x10)&0xf0; else time[5]++; if(time[5]==0x13) time[5]=0x01; LCD_set_XY(36,3); LCD_write_char(table_num[time[5]/16]); LCD_write_char(table_num[time[5]%16]); break; case 7: if(time[6]==0x79) time[6]=0; else if((time[6]&0x0f)==9) time[6]=(time[6]+0x10)&0xf0; else time[6]++; LCD_set_XY(21,3); 48

中原工学院信息商务学院毕业论文(设计) LCD_write_char(table_num[time[6]/16]); LCD_write_char(table_num[time[6]%16]); break; } } } if(s3==0) { Delay_ms(10); if(s3==0) { while(!s2);di(); switch(s1num) { case 1: if((time[0]&0x0f)==0) time[0]=(time[0] -0x10)+0x09; else time[0]--; if(time[0]<0) time[0]=0x59; LCD_set_XY(49,4); LCD_write_char(table_num[time[0]/16]); LCD_write_char(table_num[time[0]% 16]); break; case 2: if((time[1]&0x0f)==0) time[1]=(time[1] -0x10)+0x09; else time[1]--; if(time[1]<0) time[1]=0x59; LCD_set_XY(34,4); 49

中原工学院信息商务学院毕业论文(设计) LCD_write_char(table_nu m[time[1]/16]); LCD_write_char(table_num[time[1]%16]); break; case 3: if((time[2]&0x0f)==0) time[2]=(time[2] -0x10)+0x09; else time[2]--; if(time[2]<0) time[2]=0x23; LCD_set_XY(19,4); LCD_write_char(table_num[time[2]/16]); LCD_write_char(table_num[time[2]%16]); break; case 4: time[3]--; if(time[3]==0) time[3]=0x07; LCD_set_XY(66,3); LCD_write_char(table_num[time[3]%16]); break; case 5: if((time[4]&0x0f)==0) time[4]=(time[4] -0x10)+0x09; else time[4]--; if(time[4]<=0) time[4]=0x31; LCD_set_XY(51,3); LCD_write_char(table_num[time[4]/16]); LCD_write_char(table_num[time[4]%16]); break; case 6: if((time[5]&0x0f)==0) time[5]=(time[5] -0x10)+0x09; 50

中原工学院信息商务学院毕业论文(设计) else time[5]--; if(time[5]<=0) time[5]=0x12; LCD_set_XY(36,3); LCD_write_char(table_num[time[5]/16]); LCD_write_char(table_num[time[5]%16]); break; case 7: if((time[6]&0x0f)==0) time[6]=(time[6] -0x10)+0x09; else time[6]--; if(time[6]<0) time[6]=0x79; LCD_set_XY(21,3); LCD_write_char(table_num[time[6]/16]); LCD_write_char(table_num[time[6]%16]); break; } } }

} if((s4==0)&&(s1num==0)) { Delay_ms(10); if(s4==0) { EX1=0; caiji_flag=1; s4num++; 51

中原工学院信息商务学院毕业论文(设计) while(!s4);di();

LCD_clear(); LCD_draw_bmp_pixel(2,0,Picture_T_RH,80,16); LCD_set_XY(0,2); LCD_write_string(" LCD_set_XY(15,3); LCD_write_char('A'); LCD_write_char(':'); LCD_write_char(table_num[RH_H_set1/10]); LCD_write_char(table_num[RH_H_set1%10]); LCD_write_char(' '); LCD_write_char('%'); LCD_write_char(' '); LCD_write_char(table_num[T_H_set1/10]); LCD_write_cha r(table_num[T_H_set1%10]); LCD_write_char(127); LCD_write_char('C '); LCD_set_XY(15,4); LCD_write_char('B '); LCD_write_char(':'); LCD_write_char(table_num[RH_H_set2/10]); LCD_write_char(table_num[RH_H_set2%10]); LCD_write_cha r(' '); LCD_write_char('%'); LCD_write_char(' '); LCD_write_char(table_num[T_H_set2/10]); LCD_write_char(table_num[T_H_set2%10]); LCD_write_char(127); LCD_write_char('C '); LCD_set_XY(15,5); 52 Humi Temp "); // 送 标 题 备 注 LCD 显 示

中原工学院信息商务学院毕业论文(设计) LCD_write_char('C '); LCD_write _char(':'); LCD_write_char(table_num[RH_H_set3/10]); LCD_write_char(table_num[RH_H_set3%10]); LCD_write_char(' '); LCD_write_char('%'); LCD_write_char(' '); LCD_write_char(table_num[T_H_set3/10]); LCD_write_char(table_num[T_H_se t3%10]); LCD_write_char(127); LCD_write_char('C '); switch(s4num) { case 7: s4num=0; LCD_clear(); caiji_flag=0; EX1=1; break; }

} } if(s4num!=0) { if(s2==0) { Delay_ms(10); if(s2==0) { while(!s2);di(); switch(s4num) 53

中原工学院信息商务学院毕业论文(设计) { case 1: RH_H_set1++; if(RH_H_set1==96) RH_H_set1=20; LCD_set_XY(25,3); LCD_write_char(table_num[RH_H_set1/10]); LCD_write_char(table_num[RH_ H_set1%10]); break; case 2: T_H_set1++; if(T_H_set1==51) T_H_set1=0; LCD_set_XY(50,3); LCD_write_char(table_num[T_H_set1/10]); LCD_write_char(table_num[T_H_set1%10]); break; case 3: RH_H_set2++; if(RH_H_set2==96) RH_H_set2=20; LCD_set_XY(25,4); LCD_write_char(table_num[RH_H_set2/10]); LCD_write_char(table_num[RH_H_set2%10]); break; case 4: T_H_set2++; if(T_H_set2==51) T_H_set2=0; LCD_set_XY(50,4); LCD_write_char(table_num[T_H_set2/10]); LCD_write_char(table_num[T_H_set2%10]); break; case 5: RH_H_set3++; if(RH_H_set3==96) 54

中原工学院信息商务学院毕业论文(设计) RH_H_set3=20; LCD_set_XY(25,5); LCD_write_char(table_num[RH_H_set3/10]); LCD_write_char(table_num[RH_H_set3%10]); break; case 6: T_H_set3++; if(T_H_set3==51) T_H_set3=0; LCD_set_XY(50,5); LCD_write_char(table_num[T_H_set3/10]); LCD_write_char (table_num[T_H_set3%10]); break; } } } if(s3==0) { Delay_ms(10); if(s3==0) { while(!s3);di(); switch(s4num) { case 1: RH_H_set1 --; if(RH_H_set1==19) RH_H_set1=95; LCD_set_XY(25,3); LCD_write_char(table_num[RH_H_set1/10]); LCD_write_char(table_num[RH_H_set1%10]); break; case 2: T_H_set1 --; 55

中原工学院信息商务学院毕业论文(设计) if(T_H_set1==255) T_H_set1=50; LCD_set_XY(50,3); LCD_write_cha r(table_num[T_H_set1/10]); LCD_write_char(table_num[T_H_set1%10]); break; case 3: RH_H_set2 --; if(RH_H_set2==19) RH_H_set2=95; LCD_set_XY(25,4); LCD_write_char(table_num[RH_H_set2/10]); LCD_write_char(tab le_num[RH_H_set2%10]); break; case 4: T_H_set2--; if(T_H_set2==255) T_H_set2=50; LCD_set_XY(50,4); LCD_write_char(table_num[T_H_set2/10]); LCD_write_char(table_num[T_H_set2%10]); break; case 5: RH_H_set3 --; if(RH_H_set3==19) RH_H_set3=95; LCD_set_XY(25,5); LCD_write_char(table_num[RH_H_set3/10]); LCD_write_char(table_num[RH_H_set3%10]); break; case 6: T_H_set3--; if(T_H_set3==255) T_H_set3=50; LCD_set_XY(50,5); 56

中原工学院信息商务学院毕业论文(设计) LCD_write_char(table_num[T_H_set3/10]); LCD_write_char(table_num[T_H_set3%10]); break; } } } } } /****************** 主 函 数 ********************/ void main(void) { LCD_init(); Serial_Init(); //LCD 液 晶 屏 初 始 化 // 串 口 初 始 化 //GSM 接 收 短 信 初 始 化

GSM_Read_Text_Init(); init_1307(); //DS1307 初 始 化

LCD_draw_bmp_pixel(0,0,Picture,84,48); Delay_ms(600); LCD_clear(); Displa y_time(); PS=1; // IT0=1; IT1=1; // EX0=1; EX1=1; //LCD 液 晶 显 示 清 屏 // 显 示 时 间

// 显 示 开 机 Logo ( 信 商 图 标 )

// 串 行 中 断 优 先 级 设 置 为 最 高 // 外 部 中 断 0 触 发 方 式 为 下 降 沿 触 发 // 外 部 中 断 1 触 发 方 式 为 下 降 沿 触 发 // 开 外 部 中 断 0 // 开 外 部 中 断 1

LCD_set_XY(0,2); //LCD 显 示 定 位 LCD_write_string(" RH1(); Humi Temp "); // 送 标 题 备 注 LCD 显 示

// 采 集 A 点 温 湿 度 , 并 将 数 据 分 解 存 入 GSM 发 送 缓 存 单 元 // 采 集 完 A 点 温 湿 度 之 后 , 定 位 显 示

Displa y(0,3, 'A'); RH2(); Displa y(0,4, 'B'); RH3();

// 采 集 B 点 温 湿 度 , 并 将 数 据 分 解 存 入 GSM 发 送 缓 存 单 元 // 采 集 完 B 点 温 湿 度 之 后 , 定位送显示 // 采 集 C 点 温 湿 度 , 并 将 数 据 分 解 存 入 GSM 发 送 缓 存 单 元 57

中原工学院信息商务学院毕业论文(设计) Displa y(0,5, 'C'); // GSM_Sent_Text_Message(); // 采 集 完 C 点 温 湿 度 之 后 , 定位送显示 // 发 送 最 后 一 次 采 集 完 的 温 湿 度 数 据

while(1) { keyscan(); GSM_TEXT_choise(); if(caiji_flag%4==0) { caiji_flag=0; LCD_set_XY(0,2); //LCD 显 示 定 位 LCD_write_string(" Humi Temp "); // 送 标 题 备 注 LCD 显 示

RH1(); // 采 集 A 点 温 湿 度 , 并 将 数 据 分 解 存 入 GSM 发 送 缓 存 单 元 Displa y(0,3, 'A'); // 采 集 完 A 点 温 湿 度 之 后 , 定 位 显 示

if(!(((T_H_set1 -5)<=U8T_data_H)&&((T_H_set1+5)>=U8T_data_H))) { di(); if(((T_H_set1 -5)>U8T_data_H)) P10=0; if(((T_H_set1+5)<U8T_data_H)) P11=0; } else if(!(((RH_H_set1 -10)<=U8RH_data_H)&&((RH_H_set1+10)>=U8RH_data_H))) { di(); if(((RH_H_set1 -10)>U8T_data_H)) P12=0; if(((RH_H_set1+10)<U8T_data_H)) P13=0; } 58

中原工学院信息商务学院毕业论文(设计) else P10=1; P11=1; P12=1; P13=1;

RH2(); // 采 集 B 点 温 湿 度 , 并 将 数 据 分 解 存 入 GSM 发 送 缓 存 单 元 Displa y(0,4, 'B'); // 采 集 完 B 点 温 湿 度 之 后 , 定 位 送 显 示

if(!(((T_H_set2 -5)<=U8T_data_H)&&((T_H_set2+5)>=U8T_data_H))) { di(); if(((T_H_set2 -5)>U8T_data_H)) P10=0; if(((T_H_set2+5)<U8T_data_H)) P11=0; } else if(!(((RH_H_set2 -10)<=U8RH_data_H)&&((RH_H_set2+10)>=U8RH_data_H))) { di(); if(((RH_H_set2 -10)>U8T_data_H)) P12=0; if(((RH_H_set2+10)<U8T_data_H)) P13=0; } else P10=1; RH3(); 分 解 存 入 GSM 发 送 缓 存 单 元 Displa y(0,5, 'C'); 位送显示 if(!(((T_H_se t3-5)<=U8T_data_H)&&((T_H_set3+5)>=U8T_data_H))) { di(); if(((T_H_set3 -5)>U8T_data_H)) P10=0; if(((T_H_set3+5)<U8T_data_H)) 59 // 采 集 完 C 点 温 湿 度 之 后 , 定 P11=1; P12=1; P13=1; // 采 集 C 点 温 湿 度 , 并 将 数 据

中原工学院信息商务学院毕业论文(设计) P11=0; } else if(!(((RH_H_set3 -10)<=U8RH_data_H)&&((RH_H_set3+10)>=U8RH_data_H))) { di(); if(((RH_H_set3 -10)>U8T_data_H)) P12=0; if(((RH_H_set3+10)<U8T_data_H)) P13=0; } else P10=1; } if((time[1]==0x00)&&(time[0]==0x04)) { GSM_Sent_Text_Message(); } } } /****************** ***** 串 口 中 断 处 理 函 数 **************************/ /* 函 数 原 型 :void Serial_Int(void) /* 函 数 功 能 : 串 口 中 断 处 理 /* 输 入 参 数 : 无 /* 输 出 参 数 : 无 /********************************************************************/ void Serial_Int() interrupt 4 { ES = 0; if(TI) { TI = 0; // 清 除 发 送 中 断 标 志 位 60 // 关 串 口 中 断 , 防 止 中 断 嵌 套 // 如 果 是 发 送 中 断 , 则 不 做 任 何 处 理 P11=1; P12=1; P13=1;

中原工学院信息商务学院毕业论文(设计) } if(RI) { RI = 0; // 清 除 接 收 中 断 标 志 位 Rec_Buf[cache] = SBUF; // 将 接 收 到 的 字 符 串 存 到 缓 存 中 cache++; if(cache>Buf_Max) { cache = 0; } } ES = 1; } /**************** 外 部 中 断 INT1 服 务 函 数 **************************/ /* 函 数 原 型 :void INTRP1(void) /* 函 数 功 能 : 外 部 中 断 0 服 务 程 序 , 主 要 从 DS1307 芯 片 中 读 取 时 间 /* 输 入 参 数 : 无 /* 输 出 参 数 : 无 /********************************************************************/ void INTRP1()interrupt 2 { Displa y_time(); caiji_flag++; } // 显 示 时 间 // 开 启 串 口 中 断 // 缓 存 指 针 向 后 移 动 // 如 果 缓 存 满 , 将 缓 存 指 针 指 向 缓 存 的 首 地 址 // 如 果 是 接 送 中 断 , 则 进 行 处 理

61


相关文章:
基于单片机的温湿度自动控制系统设计毕业设计_图文
毕业设计 题 目 基于单片机温湿度自动控制系统设计 工程学院毕业设计版权使用授权书 本人完全了解河南工程学院关于收集、保存、使用学位论文的规定,同意 如下各项...
基于单片机的温度控制系统设计毕业论文_图文
单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的 被控参数之一。 温度控制采用单片机设计的全数字仪表,是常规仪表的的...
基于单片机的温湿度控制系统设计
基于单片机温湿度控制系统设计_电子/电路_工程科技_专业资料。花房温湿度控制。...当然,本次的课程设计也是毕业设计 之前的最后一次设计了, 它给我们提供了一次...
基于单片机温湿度控制器毕业设计
基于单片机温湿度控制器设计 【摘要】本论文主要阐述了利用 89C51 单片机设计一个温室大棚的温湿度检测控制系统, 对室内的温湿度进行检测控制并实时显示。其中温...
基于单片机的温度控制毕业设计论文
存档编号 华北水利水电学院 North China University of Water Resources and Electric Power 毕业设计 题目 基于单片机温度控制 学专姓学 院业名号 信息工程学院 ...
基于单片机的温度控制系统2015毕业论文
毕业论文 基于单片机温度控制系统 Temperature control system based on SCM 2015 年 5 月 May 2015 I 指导教师对毕业论文(设计)的评语 Advisor’s Comments on...
基于单片机的温湿度测量仪设计
单片机课程设计报告题目:基于单片机温湿度仪表设计 班 级: 智能科学与技术 1201 班 曹文波 120407130 学生姓名: 学号: 指导教师: 朱建光 成绩: 沈阳工业大学 ...
基于单片机的温湿度检测控制系统设计
编号: 毕业论文(设计) 题 目 基于单片机温湿度监测控制系统设计 杨光军 李瑞涛 200811705106 机械设计制造及其自动化 德州学院机电工程系 (盖章) 指导教师 学生...
基于单片机的温湿度控制系统设计...
编号 本科生毕业设计 基于单片机温湿度控制系统设计 Based on monolithic integrated circuit temperature And humidity control system design 学生姓名专学业号 自动化...
毕业论文-基于51单片机的温湿度检测控制系统
东北石油大学本科生毕业设计(论文) 摘 要 本次设计是采用 MSC-51 系列单片机中的 AT89S51 和 DHT11 构成的低成本的温 湿度的检测控制系统。 单片机 AT89S51...
更多相关标签: