职场文秘网

首页 > 演讲范文 > 就职演说 / 正文

基于单片机的土壤温湿度检测计设计毕业设计

2020-05-11 10:21:18

 基于单片机的土壤温湿度检测计设计毕业设计

 目

  录

 1 绪论 1

 1.1选题背景及意义 1

 1.2设计任务与要求 1

 2 总体方案设计 2

 3单元模块设计 5

 3.1各单元模块功能介绍及电路设计 5

 3.1.1时钟模块简介 5

 3.1.2 复位模块简介 6

 3.1.3 报警模块简介 6

 3.1.4 显示模块简介 7

 3.2特殊器件的介绍 8

 3.3.1 土壤湿度传感器简介 8

 3.3.2 51系列单片机简介 9

 3.3.3 LCD1602简介 9

 3.3.4 蜂鸣器简介 13

 3.3各单元模块的联接 13

 4软件设计 14

 4.1软件设计原理 14

 4.2软件设计所用工具 14

 4.3系统软件流程框图 15

 5系统调试 16

 5.1 硬件调试 16

 5.2 软件调试 16

 6系统功能及结论 17

 6.1系统功能功能实现情况 17

 6.2设计中遇到的问题及解决 17

 6.3后期展望 18

 7总结与体会 19

 8参考文献 20

 附录1:相关设计图 21

 附录2:元器件清单表 23

 附录3:相关设计软件 24

 1 绪论

 1.1选题背景及意义

 在中国广大面积的农村,没有发达的工商业,有的只是大量闲置的田地。如果利用这些闲置的田地,种植美丽的花卉、树苗,能给当地带来一笔可观的收入。而这些花卉及树苗的种植对土壤湿度有着极高的要求。在植物的成长过程中,土壤的湿度起着一个很重要的作用,并且不同的植物,对土壤的湿度需求是不同的。土壤湿度可以直接影响营养物质的吸收和植物的生长发育,同时还影响土壤中各种养分的有效性。当土壤湿度不适当时,不仅严重影响其正常生长,甚至会导致种植品死亡,造成种植户的严重经济损失。为此,从事该类农业生产的种植户非常需要一种成本低、体积小且检测可靠的土壤湿度检测仪,为水分供应提供依据。

  土壤湿度是作物生长发育的基本条件和作物产量预报的重要参数。同时,它也是水文学、气象学等科学研究领域的重要环境因子和过程参数,获取土壤湿度信息以制定人工干预调节措施是稳固生产的重要保证, 对于土壤湿度的研究也具有重要意义。实时、有效地监测土壤墒情显得尤为重要。

  1.2国内外发展状况

  目前,在低温条件下(通常指100℃以下),湿度的测量已经相对成熟。利用新型单总线式数字湿度传感器实现对湿度的测试与控制得到更快的开发。但人们对它的要求越来越高,要为现代人工作、科研、学习、生活提供更好的更方便的设施就需要从数字单片机技术入手,设计一种造价低廉、使用方便且测量准确的温湿度测量仪,使一切向着数字化,智能化控制方向发展。

  湿度测量被广泛的应用于农业研究、食品、医药、化工、气象、环保、电子、实验室等众多领域。目前,随着工业控制自动化进程的加快,它的运用越来越普遍,并且在不断的延伸。在日常的生产生活中,经常需要检测环境中的湿度,而运用到工农业生产领域则要求更为严格。随着科技的发展,环境监测在农业领域的应用越来越广泛,例如要确定某些幼苗的生长特性与温度、湿度有什么样的关系等。这些都需要利用温湿度的实时记录才能实现。继而湿度测量仪被广泛应用于粮仓、种植园、温室大棚、自动控制等众多领域。可以对环境的湿度进行检测和控制,以实现数据采集、湿度调节以及超限报警等各项功能。

  温湿度传感器除电阻式、电容式湿敏元件之外,还有电解质离子型湿敏元件、重量型湿敏元件(利用感湿膜重量的变化来改变振荡频率)、光强型湿敏元件、声表面波湿敏元件等。湿敏元件的线性度及抗污染性差,在检测环境

 湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性。

  1.3设计的主要内容

  本文设计的是基于单片机STC89C52的温湿度检测系统,主要以广泛应用的土壤湿度传感器YL-69作为温度和湿度的检测,该仪器具有测量精度较高、硬件电路简单、并能很好的进行显示,可测试不同土壤环境湿度的特点。

  单片机是系统的控制核心,所以单片机的性能关系到整个系统的好坏。因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。本次设计是以STC89C52单片机为核心,配合土壤湿度传感器YL-69,以及相关的外围电路组成的简易湿度检测系统,通过终端传感器检测环境中的湿度的变化,可以接收所测土壤环境的湿度信号,并对采集到的数据进行处理和传输,检测人员可以通过1602液晶显示器显示的数据,实时监控环境的湿度数据。

  传感器得到的土壤湿度信号,经电路转换为电信号,通过转换送到单片机进行数据处理,然后送到显示部分进行显示。本文给出了系统硬件电路的设计和软件程序的设计,实现了土壤湿度的实时自动检测的功能。实践证明该温湿度测量仪具有测量精度高、通用性强等特点,具有一定的实用价值。

  系统主要由STC89C52单片机、土壤湿度传感器YL-69、LCD1602和其他外围电路组成,实现的基本功能和要求如下:

 (1)用STC89C52单片机通过编程来控制土壤湿度正常与否的显示;

 (2)通过调节模块中蓝色的电位器的大小来控制湿度控制范围;

 (3)超出设计范围时蜂鸣报警;

 (4)画出相关设计图,能做出实物,写出设计和和总结报告

 2 总体方案设计

 要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。高可靠性是单片机系统应用的前提,在系统设计的每一个环节,都应该将可靠性作为首要的设计准则。提高系统的可靠性通常从以下几个方面考虑:使用可靠性高的元器件;设计电路板时布线和接地要合理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施;进行软硬件滤波;系统自诊判断功能等。在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,要尽可能减少人机交换接口,多采用操作内置或简化的方法。单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。因此,再设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在系统性能和速度允许的情况下尽可能使用软件功能取代硬件功能等。

  方案一:可利用湿度传感器采样土壤中的湿度信号,以提供给显示电路部分,关

 于湿度含量可采用ADC的方法将模拟信号转换成数字信号,然后再用译码器将转换后的数字信号提给显示电路实现显示,ADC转换电路所需脉冲由555构成的多谐振荡器来提供。

  数

 码

 显

 示

 译

 码

 器

 湿

 度

 采

 集

 A/D

 转

 换

  图2.1 方案一流程图

 方案二: 在本次设计中,以51单片机为主控芯片,各部分功能用外部电路来完成,主要包括时钟晶振电路,湿度测量电路,液晶显示模块,报警模块,按键模块,系统结构框图如下图所示。

  STC89C52

 单片机

 时 钟 模 块

 LCD1602显示

 模块

 湿度采集模块

 复 位 模 块

 报警模块

 图2.2 方案二流程图

 最终方案选择:在以上两种方案中,方案一中的译码器74HC4511存在消隐状态,即当ADC转换后的数据超过1001时,对于1010~1111六个代码,译码器输出均为低电平,显示器不能正常显示出每一单位下的湿度值。所以该方案的精确度不及方案二,而且方案二中单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。单片机控制速度远远快于方案一,这种方法的工作速率较高,而且精度较高。,再设计时,除了保持高性能外,简化外围硬件电路,在系统性能和速度允许的情况下能使用软件功能取代硬件功能等。所以最终选择方案二作为本次毕业设计的制作方案。

  3单元模块设计

 本次设计采用单片机最小系统,所谓单片机的最小系统是指使单片机能运行程序、正常工作的最简单电路系统,是保证单片正常启动、开始工作的必须电路,缺一不可。单片机最小系统一般由单片机、程序存储器、时钟电路和复位电路组成。对于51单片机,由于片内有4K的程序存储器,所以其最小系统除了单片机本身外,只需外接时钟电路与复位电路即可。

  在单片机构成的系统中,土壤湿度传感器YL-69首先将湿度信号转换成高低数字电平信号,单片机对送入的数字量信号进行处理后,通过LCD显示测量的温湿度值。在本次设计中,以STC89C52单片机为主控芯片,各部分功能用外部电路来完成,主要包括时钟晶振电路,湿度测量电路,液晶显示模块,报警模块,按键模块等。

  3.1各单元模块功能介绍及电路设计

  3.1.1 时钟模块简介

 图3.1.1.1

  内部时钟电路

  单片机的时钟电路用于生产单片机工作所需要的时钟信号,而时序所研究的是指令执行中各 地址信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工 作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

  C51系列单片机各功能部件的运行都已时钟信号为基准,有条不紊、的工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本次设计采用的是内部时钟方式。51单片机内部有一个用以构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端引脚XTAL2。这两个引脚跨界石英晶体和微调电容,构成一个稳定的自激振荡器。石英晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定、可靠的工作。为了提高温度稳定性,应采用温度稳定性较好的电容。

  3.1.2 复位模块简介

  图3.1.2.1 按键电平复位电路

 单片机的复位电路是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,单片机复位的条件是:必须使 RES/Vpd 或者 RST 引脚(9 脚)加上持续两个周期以上的高电平。

  复位电路有上电自动复位和按钮复位两种方式,本设计采用的是按键手动复位,按键手动电平复位是通过RST端经电阻与电源Vcc接通来实现,具体电路如图3.1.2.2所示。

  3.1.3 报警模块简介

 图3.1.3.1 蜂鸣器报警电路

 报警电路采用蜂鸣器报警电路,蜂鸣器与家用电气上的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL点评基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,即此一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流。

 蜂鸣器的正极性的一端联接到5V电源上面,另一端接到三极管的集电极,三极管的基极由单片机的一个管脚通过一个与门来控制,当管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当管脚为高时,与非门输出低电平,三极管截至,蜂鸣器不发出声音。其电路如图3.1.3.1所示。

  3.1.4 显示模块简介

 图3.1.4.1

  LCD1602显示电路

 液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

  用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

  该部分电路功能主要将主机处理后的数据显示出来,该模块与单片机连接简单,只需一个8位I/O接口与液晶模块的8位数据段相连、再用三位控制口分别与液晶模块的RS、R/W、E相连接。在本系统中,为了布线简单及驱动能力更强,我们用单片机的P0口接8位数据,用P2.0、P2.1、P2.2分别于RS、R/W、E相连。由于P0口内没有上拉电阻,需在P0口与液晶模块之间加了1K欧姆的排阻,从机部分电路上图如图所示。

  3.2特殊器件的介绍

 3.2.1土壤湿度传感器简介

 传感器是能响应规定的被测物理量,并按照一定的规律转换成为可用信号输出的器 件或装置。它通常由直接响应于被测物理量的敏感元件和产生可用信号输出的转换元件 及相应的电子电路组成。

 传感器的分类:

 按构成分可分为基本型传感器、组合型传感器和应用型传感器; 按机理可分为结构型传感器,物理性传感器、混合型传感器和生物型传感器; 按作用形式可分为主动型传感器和被动传感器; 按变换工作能量的供给形式可分为能量变换型传感器和能量控制型转换器; 按输出信号形式分为温度、压力、湿度、流量、流速、磁场和光通量等传感器。

 湿度的采集可以用湿度传感器来实现。将湿度传感器看作可调变阻器,当湿度传感 器采集到湿度时,电阻值发生变化,湿度最小时的电阻值为 10K,湿度最大时为 0.1Ω。

 变化的幅度是根据湿度传感器采集到的湿度大小而定。随着电阻值的变化,电路的输出电压也跟着变化。调节电阻值的大小,可得到想要的电压,满足电路的需求。此次设计采用的是土壤湿度传感器YL-69

 图3.2.1.1

 土壤湿度传感器原理图

 土壤湿度传感器特性:

  (1)土壤湿度传感器YL-69,表面采用镀镍处理,有加宽的感应面积,可以提高导电性能 ,防止接触土壤容易生锈的问题,延长使用寿命;

 (2)可以宽范围控制土壤的湿度,通过电位器调节控制相应阀值,湿度低于设定值时,DO输出高电平;高于设定值时,DO输出低电平;

  (3)采用三线制,界限简单,只需把VCC外接3.3V-5V电压,GND外接数字地,DO“小板数字量输出接口(0和1)

 ”接到单片机即可;

 (4)比较器采用LM393芯片,工作稳定,

 (5)设有固定螺栓孔,方便安装

 值得说明的是:此传感器适用于土壤的湿度检测;模块中蓝色的电位器是用于土壤湿度的阀值调节,顺时针调节,控制的湿度会越大,逆时针越小;数字量输出D0可以与单片机直接相连,通过单片机来检测高低电平,由此来检测土壤湿度;

 3.2.2、51系列单片机简介

 所谓单片机,通俗来讲,就是把中央处理器 CPU、 存储器、定时器、I/O 接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上 的微型计算机。单片机特别适合控制领域,故又称为微控制器 MCU,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。STC89C5X单片机是51系列单片机的衍生品种,采用40个引脚的双列直插封装(DIP)方式,其引脚排列如下图所示。

 图3.2.2.1

  51单片机DIP封装方式的引脚排列图

 40个引脚按其功能可分为如下3类:

  (1) 电源及时钟引脚——Vcc、Vss;XTAL1、XTAL2。

  (2) 控制引脚——PSEN、ALE/PROG、EA/Vpp、RST。

  (3) I/O口引脚——P0、P1、P2、P3,为4个8位I/O口的外部引脚。

  1、电源及时钟引脚

  ① Vss:

 接数字地。

 ② Vcc :正常操作时为+5 V电源。

 ③ XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部 振荡器时,此引脚接地。

  ④ XTAL2:

 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。

 2、控制引脚

 ①RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ②ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

  ③PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  ④ EA /Vpp:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  3、并行I/O口引脚

 8051单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口。

  ① P0 口(P0.0 - P0.7):是一个 8 位漏极开路型双向 I/O 口,在访问外部存储器 时,它是分时传送的低字节地址和数据总线,P0 口能以吸收电流的方式驱动八个 LSTTL 负载。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。

 ② P1 口(P1.0 - P1.7):是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动(吸 收或输出电流)四个 LSTTL 负载。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。

  ③ P2 口(P2.0 - P2.7):是一个带有内部提升电阻的 8 位准双向 I/O 口,在访问外部存储器时,它输出高 8 位地址,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。P2 口可以驱动(吸收或输出电流)四个 LSTTL 负载。

 ④ P3 口(P3.0 - P3.7):是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动(吸 收或输出电流)四个 LSTTL 负载。

  作为第一功能使用时,与P1口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表所示:

 表3.2.2.1

 P3口的第二功能

 端口引脚

 第二功能

 注

 释

 P3.0

 RXD

 串行口数据接收端

 P3.1

 TXD

 串行口数据发送端

 P3.2

 /INT0

 外中断请求0

 P3.3

 /INT1

 外中断请求1

 P3.4

 T0

 定时/计数器0外部计数信号输入

 P3.5

 T1

 定时/计数器1外部计数信号输入

 P3.6

 /WR

 外部RAM写选通信号输出

 P3.7

 /RD

 外部RAM读选通信号输出

 3.3.3 LCD1602简介

 液晶显示器是一种被动的显示器,及液晶本身不发光,而是利用液晶经过处理后能改变光线通过方向的特性,从而达到白底黑字或黑底白字显示的目的。液晶显示器具有厚度薄、省电、抗干扰能力强、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在智能仪器仪表和单片机测控系统中、便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 

 当前市场上液晶显示器种类繁多,按排列形状可分为字段型、点阵字符型和点阵图形型。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。 

 单片机应用中,常用点阵字符型LCD显示器。要有相应的LCD控制器、驱动器来对LCD显示器进行扫描、驱动,还要RAM和ROM来存储单片机写入的命令和显示字符的点阵。由于LCD的面板较为脆弱,制造商已将LCD控制器、驱动器、RAM、ROM和LCD显示器用PCB连接到一起,称为液晶显示模块(LCd Module,LCM)。只需购买现成的液晶显示模块即可。单片机控制LCM时,只要向LCM送入相应的命令和数据就可显示需要的内容。

  本设计选用的是常见的点阵型液晶显示模块:1602字符型LCM(两行,每行16个字符)。

  下图所示为字符型LCD模块的电路框图,它由日立公司生产的控制器HD44780、驱动器HD44100及几个电阻和电容组成。HD44100是扩展显示字符位用的(例如,16字符´1行模块就可不用HD44100,16字符´2行模块就要用一片HD44100)

 图3.3.3.1

 字符型LCD模块的电路框图

 (3)1602字符型LCM的特性

  ① 内部具有字符发生器ROM(CGROM),即字符库。可显示192个5´7点阵字符。由字符库可看出LCM显示的数字和字母部分的代码值,恰好与ASCII码表中的数字和字母相同。所以在显示数字和字母时,只需向LCM送入对应的ASCII码即可。

  ②模块内有64字节的自定义字符RAM(CGRAM),用户可自行定义8个5´7点阵字符。

  ③ 模块内有80字节的数据显示存储器(DDRAM)。

  引脚功能说明: 

 表3.3.3.1

  液晶显示模块的部分引脚

 接口说明如下:

  (1)液晶1,2端为电源;15,16为背光电源;为防止直接加5V电压烧坏背光灯,在15脚串接一个10欧姆电阻用于限流。

 (2)液晶3端为液晶对比度调节端,通过一个10k欧姆电位器接地来调节液晶显示对比度。首次使用时,在液晶上电状态下,调节至液晶上面一行显示出黑色小格为止。

 (3)液晶4端为向液晶控制器写数据/写命令选择端,接单片机P2.0口。

 (4)液晶5端为读/写选择端,接单片机P2.1口。

 (5)液晶6端为使能信号,是操作时必须的信号,接单片机的P2.2口。

  LCD1602基本操作时序

 (1)读状态

 输入:RS=L,R/W=H,E=H

 输出:D0~D7=状态字

 (2)读数据

 输入:RS=H,R/W=H,E=H

 输出:无

 (3)写指令

 输入:RS=L,R/W=L,D0~D7=指令码,E=高脉冲

 输出:D0~D7=数据

 (4)写数据

 输入:RS=H,R/W=L,D0~D7=数据,E=高脉冲

 输出:无

 3.3.4 蜂鸣器简介

 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、各种各样的电子设备仪器中,用作发声器件,它主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。其结构原理如下所诉。 

 1.压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。  

 2.电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

  3.3各单元模块的联接

 见附录1 相关设计图

  4软件设计

 4.1软件设计原理

 本系统软件设计采用结构化和模块化设计方法,便于功能扩展,本系统的软件设计采用C语言编写。湿度传感器将当前的湿度数据转换成二进制值通过三线制接口传送给单片机,单片机将采样芯片送来的数据进行补偿算法获得精确实际采样值。然后根据需要将其送到液晶显示器显示。 

   系统上电以后,初始化,读取存在湿度上下限报警值。进入主循环程序首先对按键是否触发进行判断,如有按键触发则进入设置上限报警值界面设置相应的上限报警值;而后访问湿度采样芯片获取湿度采样二进制值经补偿处理转换成精确数据,接着判断当前湿度值是否超限,若湿度超限,则驱动蜂鸣器报警,直到环境的湿度都下降到报警值以下则停止报警。 

 数据采集系统广泛的应用于工业过程控制中,生产工作现场常弥布着各种干扰信号。这样,由于干扰的作用会在被测电流或电压上叠加上干扰信号(即噪声)。而由传感器输出的信号一般比较微弱,所以干扰信号的作用会显得突出,称为数据采集的主要障碍.因此,采取适当的抗干扰措施是必要的。如在电源、地线、去耦电路、硬件设计上采用了单片机上电复位电路,而在软件设计中则加入采用抗干扰措施。

  4.2软件设计所用工具

 完成该设计的软件编程主要是利用单片机的外部接口电路和单片机编程软件实现的,所以程序的正确可行是实现该方案的必要条件,编写程序时主要利用的软件是 Keil 编程软件。

  Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil则为其提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

  C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

  4.3系统软件流程框图

 开始

 初始化

 湿度采样

 判断湿度

 是否超限

 N

  Y

  LCD显示

 LCD显示

 蜂鸣器报警

 是否结束采样

  N

  Y

 结束

 图4.2.1 系统软件设计流程图

 5系统调试

 5.1 硬件调试

 在安装前要做好检查工作,确保元器件质量功能可靠,尤其要注意晶体管的型号,电容器的耐压和极性,按照原理图组装电路,使元件安装的位置、极性正确、布局合理;整机清洁无污物,导线不杂乱。由于电路的要求,所以我们按照单元电路逐级安装,逐级调试然后联合调试的方法。在安装调试过程中用到的仪器主要有示波器,万用表。

  其步骤如下: 

 1、按照系统设计,将系统需要的各个组件连接好。 

 2、根据芯片说明书,了解各个组件的工作原理,开始着手调试各功能模块。

   3、把各个功能模块编写成单独的源文件进行调试,调试成功以后,再将各部分联合在一起。 

 4、调试了各模块之后,接下来的工作就是将各源程序段连接起来,进行综合调试了,综合调试需要我们特别注意细节部分,这样才能尽可能的减少错误的产生。

  下图为主控硬件调试完成后无误的硬件图片。

  图5.1.1

 硬件调试结果图

 5.2 软件调试

 在Keil软件中完成设计程序的编写以后,按照要求进行编译、连接、调试、仿真等,然后分别由C51编译器编译生成目标文件(.OBJ)。再由OH51转换成标准的Hex文件,以供调试器使用进行源代码级调试,可由仿真器使用直接对程序进行调试,也可以直接写入单片机程序存贮器中验证。

  6系统功能及结论

 6.1 系统功能实现情况

 本次课题设计了一种基于单片机技术的土壤湿度监测仪。该设计是通过以STC89C52单片机为工作处理器中心,以土壤湿度传感器为核心,实现本次设计目标。

  土壤湿度传感器用于土壤的湿度检测,可以宽范围控制土壤的湿度。通过模块中蓝色的电位器调节土壤湿度相应阀值,随着电阻值的变化,电路的输出也跟着变化,调节电阻值的大小,可得到想要的湿度控制范围,满足电路的需求顺时针调节,控制的湿度范围会越大,逆时针时控制的湿度范围越小。

  数字量输出D0因为直接与单片机相连,通过单片机来检测高低电平,由此来检测土壤湿度,湿度低于设定值时,DO输出高电平,此时单片机控制LCD1602分两行显示“Humidity:

 Normal”;高于设定值时,DO输出低电平,此时单片机控制LCD1602分两行显示“Humidity:

 Deviant”,并且蜂鸣器鸣叫报警。

  6.2设计中遇到的问题及解决

 在本次土壤湿度检测系统的设计制作过程中,都十分注意每个工作步骤的检查,确保制作成功。比如在合理布线、检查装配无误的情况下,如果还出现电路无输出的情况,那么可以肯定是原理图错误,这是要回到原理图进行检查,总体检查顺序我们采用的顺序是原理图、原件选用情况、焊接工艺等。在这个过程中所遇到的问题或可能遇到的问题及解决方法做一下总结。

  1、单片机最小系统的时钟模块中,如采用内部时钟模块,在单片机的输入引脚XTAL1,输出引脚XTAL2,这两个引脚跨界石英晶体和微调电容时,石英晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定、可靠的工作。为了提高温度稳定性,应采用温度稳定性较好的电容。

  2、LCD显示模块,为防止直接加5V电压烧坏背光灯,在15脚串接一个10欧姆电阻用于限流。液晶对比度调节端,通过一个10k欧姆电位器接地来调节液晶显示对比度。首次使用时,在液晶上电状态下,调节至液晶上面一行显示出黑色小格为止。根据LCD型号的不同,所需要的背光电阻大小会不同,可自行调节。若电阻选择过大,则背光灯不能点亮。

  3、蜂鸣器的正极性的一端联接到5V电源上面,另一端接到三极管的集电极,三极管的基极由单片机的一个管脚通过一个与门来控制,当管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当管脚为高时,与非门输出低电平,三极管截至,蜂鸣器不发出声音。我们设计中时用单片机输出高电平驱动三极管导通时,NPN型三极管没有导通,后来才发现单片机引脚输出电流太小,驱动不了。将三极管换成PNP型,低电平驱动蜂鸣器发声。

  4、电路板焊接时一定要仔细,以免造成虚焊。整体布局和布线要事先规划好,使得各模块能正常工作,不受干扰。

  5、应尽量做到降低成本和避免复杂的电路,应此选用一些常用的电子器件,使系统具有实用性,小型化等特点。

  6.3后期展望

 在本次设计过程中,从一开始的只考虑功能的实现性,希望这个湿度测量仪能够运用到实际的测量和学习中,到中间思维的拓展和延伸,在这次课程设计后,我们将从以下几个方面来改进和完善。 

 1、电源供电部分采用充电电池供电,使得整个设备轻便易携带。

  2、加入A/D转换模块,将接收到的所测土壤环境的湿度信号,在数模转换模块的处理后,通过1602液晶显示器显示出土壤实际湿度数据,实时监控环境的湿度数据。让该该湿度测量仪具有测量精度高、通用性强特点。

  3、增加存储器的部分,用于存储采集到的湿度信息。数据存储区扩展模块的设计,主要是实现RAM扩展,C51单片机总共支持64KB的片外数据存储区。数据存储区扩展程序主要完成RAM数据复制。

  4、增加其他传感器的接口部分,通过查找资料了解到市面上大多数传感器采用12V供电、5V供电、3.3V供电,本湿度测量仪现有的功能可以接收5V供电的传感器传输的数据。因此需要设计5V转3.3V、12V的电路来为其他的传感器供电,可以采用电阻分压的方法来实现。 

 5、完成PCB板的设计,本次设计虽然画了PCB板,但由于在焊接等方面出现问题,导致第一次焊接时出现问题,最后才采用万用板焊接实物。PCB的设计流程可分为网表输入、规则设置、元器件布局、布线、检查、复查、输出等步骤。在PCB图的设计过程中要考虑到元器件的布局、电子电路性能、生产装配技术等。 

 7总结与体会

 对此次课程设计进行一个总结,因为我这次设计采用的是单片机为主的湿度检测,所以要求硬件和软件相结合,两者必须完整配合,协调一致。

  在学校学习的单片机知识偏重于理论而不是应用,通过做课程设计的这个机会,我把理论联系到了实际。通过一次的温习了以前学习的专业基础知识,可以使我们可以独立设计和完成一个简单的单片机控制系统,体验了从原理图的设计、电路板的制作和单片机系统的调试的整个过程,给即将走向工作岗位的我又上了一堂精彩的课。

  通过这次课程设计,系统的掌握了单片机、液晶显示、土壤湿度传感器、电容等元器件的工作原理及其应用;熟练的使用万用表、示波器等相关实验仪器和设备,能使用相关软件设计电路图并进行仿真;使我对模拟电子、数字电子技术在实践中的应用有了更深刻的理解;对像Protues、Keil、Altium Designer等工程软件有了深入的了解,能独立完成电路图的绘制。在设计电路的过程中,充分了解了各元器件的功能作用,把课本知识变得生动有趣,当实验现象出现的那一刻,心中非常的激动,因为是我们独立完成的课程设计,所以很有成就感,同时这个设计也激发了我们对学习电子方面知识的积极性。 

 在编程过程中遇到很多麻烦,比如就是仿真与实际电路存在一定的差异,所以要根据实际的测量值来调试程序。但是都在我们积极地查阅资料与商讨中得到解决。在设计中除了学会许多专业知识外,在遇到困难时,积极的去请教我的指导老师,我通过看现有的教材、视屏,去图书馆查阅资料,去网上搜索相关信息这些方式,不仅完成了我的课程设计,而且大大增强了我的自学能力和求知心理,更重要的是我拓展了思路,开阔了视野,活跃了思想。学会了理论联系实际。 

 在这个阶段,我们在学习上和思想上都受益匪浅,这除了自身的努力外,与老师的支持和他的循循善诱是分不开的,其实在做这个设计的过程中我们也遇到了一些困难,有时候感到头疼,但是我没有灰心丧气,加上老师的细致指导,我们都一一克服,这些都是从这次设计中的收获,所以我们要感谢指导老师郑老师,他的严谨细致,一丝不苟的作风是我学习、工作中的榜样,他的不拘一格的思想也给予我无尽的启迪。

  8参考文献

 [1]

 张毅刚,彭喜元编.单片机原理及应用[M]. 北京:高等教育出版社,2010.

 [2] 杨素行编.模拟电子技术基础简明教程[M].北京:高等教育出版社,2006. 

 [3] 余孟尝编.数字电子技术基础简明教程[M].北京:高等教育出版社,2006. 

 [4] 林志琦.基于Proteus的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,2006.

 [5] 来清民编.传感器与单片机接口及实例[M]. 北京:北京航空航天大学出版社,2008. 

 [6] 陈有卿,张晓东编.报警集成电路和报警器制作实例[M].北京:北京人民邮电出版社2001. 

 [7] 孟立凡等.传感器原理及技术[M].北京:国防工艺出版社,2005. 

 [8] 张正伟.传感器原理与应用[M].北京:中央广播电视大学出版社,2002.

 [9] 胡汉才.单片机原理与接口技术[M].北京:清华大学出版社,1995.6. 

 [10] 何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2001.

 [11] 赵晓安.MCS-51单片机原理及应用[M]. 天津:天津大学出版社,2001.3.

 [12] 肖洪兵.跟我学用单片机[M]. 北京:北京航空航天大学出版社,2002.8. 

 [13]

 于凤明.单片机原理及接口技术[M].北京:中国轻工业出版社.1998.

 [14]

 谭浩强.C程序设计[M].北京:清华大学出版社.2007.

 [15]

 郭天祥.51单片机C语言教程[M]. 北京:电子工业出版社.2008.

 附录1:相关设计图

 图一

  仿真图

 图二

 原理图

 图三

 PCB图

  图四

  实物图

 附录2:元器件清单表

  表一

 元器件清单表

 名称

 型号

 数量

 单位

 单片机

 STC89C52

 1

 片

 NPN型三极管

 S9013

 2

 个

 液晶显示器

 LCD1602

 1

 个

 蜂鸣器

 无

 1

 个

 晶振

 12MHz

 1

 个

 LED灯

 无

 3

 个

 电容

 22pf

 2

 个

 电容

 100uf

 2

 个

 电容

 0.1uf

 1

 个

 电阻

 10K、5K、1K

 5

 个

 电位器

 10K

 2

 个

 排阻

 无

 1

 排

 排针

 无

 1

 排

 土壤湿度传感器

 YL-69

 1

 个

 按键

 无

 4

 个

 附录3:相关设计软件

 原理图PCB设计软件

  Altium Designer Winter 10

 程序设计软件

  Keil 4

 程序下载软件

  STC-ISP

 仿真软件

  Proteus

 程序代码:

  #include<reg52.h>

 #define uchar unsigned char

  #define uint unsigned int

 sbit lcden=P2^2;

 sbit lcdrs=P2^0;

 sbit lcdrw=P2^1;

 sbit sd

  =P2^3;

 sbit bj

  =P2^7;

  uchar code table[] ="Humidity:

  ";

 uchar code table1[]="

 Normal

 ";

 uchar code table2[]="Humidity:

  ";

 uchar code table3[]="

 Deviant

  ";

 uchar num;

 void delay(uint z)//延时函数

 {

 uint x,y;

 for(x=z;x>0;x--)

 for(y=110;y>0;y--);

 }

 void write_com(uchar com)//写入地址

 {

 lcdrs=0;

 P0=com;

 delay(5);

 lcden=1;

 delay(5);

 lcden=0;

 }

 void write_date(uchar date)//写入数据

 {

 lcdrs=1;

 P0=date;

 delay(5);

 lcden=1;

 delay(5);

 lcden=0;

 }

 void init()//初始化函数

 {

 P0=0xff;

 lcdrw=0;

 lcden=0;

 write_com(0x80);//地址指针初始化

 write_com(0x38);//初始化液晶显示器

 write_com(0x0c);//控制光标

 write_com(0x06);//写一个字符后地址加一

  }

 void main()

 {

 init();

 sd=1;

 while(1)

 {

 if(sd==1)//正常情况显示

 {

 write_com(0x80+0x00);//lcd第一排写入地址

 for(num=0;num<15;num++)

 write_date(table[num]);//lcd第一排写入数据

 write_com(0x80+0x40);//lcd第二排写入地址

 for(num=0;num<13;num++)

 write_date(table1[num]);//lcd第二排写入数据

 bj=1;//不报警

 }

 else if(sd==0)//不正常情况显示加报警

 {

 write_com(0x80+0x00);//lcd第一排写入地址

 for(num=0;num<15;num++)

 write_date(table2[num]);//lcd第一排写入数据

 write_com(0x80+0x40);;//lcd第二排写入地址

 for(num=0;num<13;num++)

 write_date(table3[num]);//lcd第二排写入数据

 bj=0;//报警

 }

 }

 }

Tags: 温湿度   毕业设计   单片机  

搜索
网站分类
标签列表