毕业论文-基于AT89C51养殖场孵化温湿度监控系统设计与实现_第1页
毕业论文-基于AT89C51养殖场孵化温湿度监控系统设计与实现_第2页
毕业论文-基于AT89C51养殖场孵化温湿度监控系统设计与实现_第3页
毕业论文-基于AT89C51养殖场孵化温湿度监控系统设计与实现_第4页
毕业论文-基于AT89C51养殖场孵化温湿度监控系统设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于AT89C51单片机养殖场孵化温湿度监控系统设计与实现设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014年 4月 28日 大连东软信息学院DalianNeusoftUniversity of Information大连东软信息学院毕业设计(论文) 摘要 - 37 -在本章中主要介绍了课题研究的背景和意义,以及在湿度自动调节系统的使用现状,结合一些实际中的问题,阐述了湿度自动调节系统设计的必要性,最后介绍了一下本设计的的要求和内容,以及

2、在论文的结构安排。1.1养殖场温湿度监控研究背景及意义随着电子通信技术的发展,检测控制系统广泛应用到工业生产、农业生产和仓库存储等领域。近年来,由于计算机控制技术、大规模集成电路设计技术的快速发展,在研究温湿度控制在软、硬件设计等方面都有了一定的进展。早期温度监测主要采用温度计测量,它采用温度计放在养殖场进行测温,这种方法需要人力进行测量、效率低、精确度低,主要原因是温度计精度低、人工读数误差比较大。随着电子技术的快速发展,慢慢开始采用电阻式温度传感器、采样器、模数转换器、报警器等器件组成的温度检测系统,它可对仓库的每个测温点进行巡回检测,提高了检测速度和精度、提高了可靠性、提高了效率、降低了

3、人力成本,但由于电阻传感器的灵敏度比较低,这导致了检测精度、系统可靠性还不能满足需要。随着单片机和电子传感器的发展,利用传感器的进行温湿度检测,采用单片机进行数据处理,提高了检测速度和精度,稳定性也得到了提高,效率更快。近年来,随着电子技术的日益强大和单片机的广泛应用,对传感器的检测的准确性、稳定性、可靠性要求越来越高,对成本控制也越来越敏感。根据这些方面,设计一个稳定的、经济的、效率高的、精确度高的、操作方便的温湿度检测控制系统是非常有必要的。养殖场的孵化效率与环境的温度和湿度有着密切的关系,恰当的环境温湿度可以在最大程度上提高孵化效率,因此,在养殖场非常有必要设计一套温湿度控制系统,以维持

4、温室大棚内的温度、湿度在一个合适的范围,从而提高孵化效率,达到增产的目的。在本设计中,采用单片机来控制温湿度,不仅具有廉价、配置简单和灵活的优势,而且可以大大提高所测温湿度的技术指标,从而可以提高产品的数量和质量。单片机因为它具有功能强、高可靠性、体积小、造价便宜和开发周期短这些优势,广泛用于自动化测量和控制现场设备,特别是在日常生活中发挥的日益重要的作用。这次选用AT89C51RC作为主控制器,可以从按键电路输入设定的温湿度,通过温湿度传感器DHT11对温度、湿度信号进行采集,然后通过I2C总线与单片机通信,并将温湿度显示在液晶屏LCD1602上,单片机把它们与设定的值进行对比后决定是否报警

5、,并且启动电机设备进行控制。1.2论文主要研究内容本设计采用AT89C51RC单片机作为控制芯片,采用DHT11数字温、湿度传感器采集温、湿度信号并输出与单片机相匹配的数字信号,将采集得到的数据通过单总线的方式传递给51单片机,通过使用LCD1602来显示温湿度,控制电机来拖动一些设备来实现对大棚温湿度进行实时的检测和控制功能,为了实现这些功能,养殖场温湿度监控系统的设计分为软件和硬件两大块,硬件主要完成温湿度信号的采集以及显示显示,电机驱动电路的设计,系统报警设计等,软件主要完成温湿度传感器的通讯和数据采集,以及控制等。对于系统来说,系统要求设置两个条件控制,分为最大温度湿度和最小湿度,当大

6、棚的湿度达到最大值的时候,要求开启电机等措施减低湿度,当湿度小于最小值的时候,开启电机控制湿度的升高;对于温度来说,当温度大于设定的最大值得时候,开启风扇,小于设定值的时候开启加温控制。具体的设计任务:(1)了解课题内容,查阅有关中英文文献,熟悉湿度自动控制技术,学习C语言及Keil开发软件,以及控制技巧。(2)对温湿度控制理论进行研究,找出方案,进行方案对比,找出最佳方案。(3)设计单片机控制控制系统硬件,能够采集温湿度,并且控制直流电机运行。(4)软件设计,设计人机交互界面,并且编写电机驱动程序以及温湿度信号采集程序。(5)系统调试,调试系统的硬件和软件,能够控制系统的温湿度。通过综合控制

7、系统,可以实现对温度、湿度参数的自动调节与控制,为牲畜营造舒适、健康的成长与环境,实现更好的经济效益。1.3研究现状自动控制理论是自动控制技术的理论基础,是一门理论性较强的科学。按照自动控制理论发展的不同阶段,自动控制理论一般可分为“经典控制理论”和“现代控制理论”两大部分。20世纪中叶,由于自动控制技术的发展,逐渐形成并日臻成熟了“经典控制理论”。这些理论主要是以传递函数为基础,研究单输入单输出自动控制系统的分析和设计问题。采用的方法主要是微分方程分析法、根轨迹分析法和频域分析法。这些方法对控制系统的分析设计和运行发挥了重要的作用,并积累了丰富的经验,成功地解决了一系列以输出反馈为主要控制手

8、段的自动控制问题。20世纪60年代开始,由于生产的发展,自动控制系统日趋复杂、规模日趋庞大, 特别是空间技术的发展,使自动控制理论有了一次新的飞跃,逐渐形成了“现代控制理论”。这些理论主要是以状态空间法为基础,研究多输入多输出及变参数、非线性控制系统的分析设计问题。近年来,由于计算机技术的迅猛发展和应用数学研究的进展,特别是一些新型控制技术,诸如最优控制、自适应控制、预测控制、模糊控制、人工神经网络控制、鲁棒控制等的出现,使自动控制理论又有了日新月异的发展。目前主要是庞大的系统工程的基础上发展起来的大系统理论和在模仿人类智能活动的基础上发展起来的智能控制方面,都取得了许多重大进展。“经典控制理

9、论”和“现代控制理论”是自动控制理论发展的两个阶段,但它们又是相互联系,相互促进的。“现代控制理论”不能看成是“经典控制理论”简单的延伸和推广,在所采用的数学工具、理论基础、研究方法、研究对象等多方面有着明显的不同,可以说是一次质的飞跃。但是,这并不意味着这两种方法原理截然分离。特别是在解决实际工程问题中,许多用经典理论控制解决的问题,同样可以用现代控制理论从方法上看更加完备或结果更强,但是,经典控制理论简洁实效的分析方法和控制方式,往往是现代控制理论难以实现的。也就是说,它们又有很强的互补性。现代科学技术的发展和生产技术的提高,为经典和现代控制理论的发展及应用都提供了广阔的前景。 本章主要介

10、绍了设计的任务和目标,以及方案设计,确定系统使用的方案,最终确定系统的总体方案,并且对于整个系统的可行性进行分析,对于系统的功能性需求和非功能性需求进行分析,最终确定方案。2.1 养殖场温湿度监控研究技术指标及要求在本次的设计中,要求湿度自动调节系统能够实时的,准确的对环境温度进行采集,并且利用系统的显示单元LCD1602上显示,通过对比先前设定的最大值和最小值进行对比,如果超出了规定的湿度范围,启动湿度控制设备,并且报警,启动电机,直到环境的湿度回到规定的范围之内。最重要的,为了实现应用的需求,设计的系统还要能够修改恰当的湿度范围。因此,系统设计要满足以下条件:(1)工作环境:养殖场;(2)

11、测量湿度误差:5%RH;(3)测湿范围:20%-90%;(4)可以通过键盘输入修改湿度范围;(5)有温湿度报警;(6)执行模块,改变环境温度和湿度; 针对这些条件可以得到本次任务设计的具体要求:设计单片机最小单片机最小系统,包括晶振电路,复位电路,以及单片机电路;设计温度湿度采集电路,通过与单片机相连直接得到环境的温度和湿度;键盘输入电路和液晶显示电路,通过键盘输入温度和湿度的范围,并且使用液晶显示电路;设置报警电路,当温湿度不在设定的范围内的时候,将通过蜂鸣器和发光二极管来进行声光报警;设计执行电路,当温度不在范围之内的时候,通过控制不同的继电器来控制外部设备来调温;在完成这些电路的基础上,

12、通过电脑编程完成,通过KEIL软件将程序下载到单片机中,完成整体功能的实现。2.2系统方案选择本设计中拥有一个控制器,它主要控制驱动信号产生,以及信息的现实等功能,控制器拥有很多种,下面介绍一些控制器以及本设计采用的控制器。方案一:选择STC89C52作为控制器。首先,STC89C52是51内核,是8位单片机,其指令是采用的被称为“CISC”的复杂指令集,共有111条指令,内部自然丰富,并且操作简单。还有,它的供电电压是5V和其他的一些芯片具有相同的供电电压,其抗干扰能力强,端口容易操作,构建其最小控制系统简单。该方案的实用性和可靠性比较高,可以满足绝大多数控制,选择51单片机作为控制器,对于

13、初学者可以很方便的构建一个最小控制系统,并且其的编程很简单,成本低,便于操作者实现控制目标。方案二:选择MSP430作为控制器。MSP430是TI公司生产的一款低功耗控制芯片,其功耗低,供电电压3.3V,其可以工作在低功耗模式,可以减少系统的功耗,并且MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据寄存器都可参加多种运算。该方案在低功耗和运算能力上具有很大的优势,然而其的可靠性不高,其抗干扰能力比较差,最重要的是其编写程序比较复杂,芯片成本比较高,编写程序复杂。联系本设计的任务,对于控制器的要求不是很高

14、,所以从设计成本以及可靠性和实施难度等方面考虑,本设计选择控制方案一作为控制方案。本设计中,湿度传感器的选择很重要,在日常的湿度传感器中拥有HS1101和DHT11两款。方案一:选用HS1101. 湿度传感器HS1101是基于独特工艺设计的电容元件,这些相对湿度传感器可以大批量生产。涉及如何将电容的变化量准确地转变为计算机易于接受的信号时,常用两种方法:一是将HS1101,运放和电容构成桥式震荡电路,将温湿度信号转换成对应的正弦波电压信号,然后通过二极管整流成直流,随后通过运放放大直流信号,将其转换成ADC可以接受的信号,从而转换成对应数字信号;另一种是将传感器和NE555构成震荡电路,使用测

15、量电容的方法来测量电容的变化,从而得到温湿度对应的频率信号,可直接被计算机所采集。如图2.1所示。图2.1 HS1101信号接口框图 由图2.1知道了,采用HS1101湿度传感器的信号通过了NE555震荡电路,然后通过ADC0809电路将产生的信号采集送给单片机处理。可以看出虽然用这种方法可以快捷准确的获得环境中的湿度,但是经过了很多次处理,比较麻烦,并且使用到了各种资源,成本比较高,性价比较低。方案二:采用DHT11,其既可以测温度也可以测湿度。此款传感器内部含有AD电路,直接将温湿度转换成数字信号,并且已经过校准,它被专门用来模块化测量温湿度,也被广泛应用在温湿度传感技术等领域,他的可靠性

16、和稳定性较高,DHT11包含测湿度的电阻元件和测量温度的NTC元件,在内部与一个8位单片机相连接。DHT11传感器在出厂前已经在高精度的湿度实验室中校准,并且在OTP内存中存储了湿度系数,在处理检测的文书地信号时要用到这些参数。采用单总线的串行接口的方式传递数据,使搭建起的系统更加稳定可靠,使用起来简单快捷,功耗更低。图2.2 DHT11信号接口框图由图2.2所示:由于DHT11能够将模拟信号温度转换成数字信号的能力,所以只需要通过采用单总线协议将采集得到的信号发送给单片机,便可以很快的得到外界环境的湿度和温度。并且这一款温度传感器具有响应速度快,抗干扰能力强,性价比高等特点。综上所述:根据系

17、统的设计原则,选用方案二,将DHT11作为系统的湿度采集传感器,它在采集环境湿度的同时,也能够采集环境中的温度,性价比很高,并且安全可靠。2.3开发环境硬件环境:处理器:英特尔 Core i5 M 430 2.27GHz 双核笔记本处理器;硬盘:500G;主频:1G;内存:3 GB ( 尔必达 DDR3 1333MHz / 三星 DDR3 1333MHz )。软件环境:本设计中选用德国KEIL公司推出的uVision4集成开发环境作为主机程序设计的编译器。该软件集成了业内最领先的技术。Keil software的8051开发工具提供以下程序,可以用它们来编译C程序代码,汇编源程序,连接和重定位

18、目标文件和库文件,创建HEX文件以及调试目标程序。2.4 系统的非功能需求在系统的非功能要求主要分为以下几个方面,在性能上的要求以及在成本的要求,下面分别对于这两个要求来论述。在性能上,系统要求能够精确的测量出当前环境的温度和湿度,并且温度和湿度能够实时的反应给养殖场的饲养人员,在控制温湿度方面,当检测到温湿度不在设定的范围值内的时候,系统要启动报警、提供声光报警、提示饲养员,并且开启相应的设备,例如,风扇和空调来稳定当前环境的温度和湿度。在成本上,因为养殖场的面积很大,对于温度和湿度检测来说,需要很多套温湿度检测设备,所以对于温湿度检测系统的成本就又要求,在安全可靠的前提下,要求低成本。2.

19、5系统任务的可行性分析使用AT89C51单片机能够实现温湿度全程的自动检测与控制,且AT89C51单片机开发成本低、使用方便、功能强大,抗干扰以及多种环境下的适用性都很高。使用AT89C51型单片机设计温湿度检测控制系统,可以及时、精确的反映养殖场内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式;在湿度控制方面也是如此。在使用AT89C52的基础上配合外部的温湿度检测电路以及人机交互电路和报警执行电路,在理论上是可以实现的,在实际应用中也是可以实现的,所以,在技术上是可行的。系统在使用的过程中设计到安全问题,不管是对于使用者的人身安全还是

20、家禽安全来说都很重要,本系统采用的是弱电流控制,电压只有5V,并且在控制外部设备的时候是通过继电器来切换外部断路器来工作的,所以在设计的整个过程中,在系统的使用上对于饲养员来说更安全,系统直接将数据显示在液晶上,没有通过无线或者其他无线设备来传输数据,对于家禽来说也是很安全的,不管是人还是家禽,当长期生活在无线辐射的状态下都对生长及其不利,所以本设计中不存在强电也不存在无线传输,所以整个系统安全可靠。 在本系统中,主要讲述了系统的设计原则,并且针对第二章的论述确定下来了系统的总体设计方案,并且在这一章也详细的讲解了整个系统的硬件设计和软件设计。3.1系统设计的原则系统设计的源头是需求,是由商业

21、目标决定的,高水平的设计师能够恰好的设计出客户满意的系统,使客户的利益达到最大化。评价一个系统的好坏就是“合适性”,即构建的系统是否满足功能性需求和非功能性需求。可靠性是在设计过程中应该优先考虑的一个因素,一个控制系统必须要能稳定、可靠地工作,才能投入到生产实践中去。如果系统的可靠性不能达标,那么系统出现故障的可能就会增大,造成很大的损失。这种损失不仅包括经济上和信誉上的损失,而且可能会对人身安全产生威胁。性价比也是一个系统设计中所要考虑的重要因素。性价比高的产品更容易被消费者接收,但是设计过程中不能盲目地追求性价比,它应该建立在对产品性能要求的基础上,首先要满足性能要求,然后再设法降低产品成

22、本。3.2 系统总体设计系统主要由51单片机最小系统,液晶显示电路,键盘输入电路,温湿度传感器电路和继电器电路构成。本设计种主要采用AT89S51作为主控芯片作为系统的主控芯片,采用温湿度传感器DHT11作为系统的温湿度传感器,将养殖场的温度和湿度转换成数字信号,传递给单片机,通过单片机做出相应的判断,控制继电器来实现温湿度的控制。并且实时的监控环境的温湿度,并且同步显示在液晶显示电路上。图3.1 系统总体框图 通过框图3.1可以知道,系统主要由51单片机系统外加附加电路构成,系统工作在如下状态:开始通过键盘输入系统要工作的温湿度范围,并且实时的将这些设置过程以及参数显示在液晶1602上面,通

23、过DHT11测量环境的温度和湿度,通过I2C单总线协议将测量得到的温度和数据传送给单片机,单片机通过将这些数据和已经设定的湿度最大值和最小值进行比较,当测量的值小于最小值的时候控制电机正转或者反转,使湿度增大,当测量值大于最大值的时候,同样控制电机运行,使湿度减小,同时,同步的将采集得到的温湿度显示在液晶上面,便于实施监控。3.3各部分硬件电路设计(1)DHT11芯片介绍DHT11 传感器内部含有AD电路,直接将温湿度转换成数字信号,并且已经过校准,它被专门用来模块化测量温湿度,也被广泛应用在温湿度传感技术等领域,他的可靠性和稳定性较高,DHT11包含测湿度的电阻元件和测量温度的NTC元件,在

24、内部与一个8位单片机相连接。因此该产品具有响应快和超高的抗干扰能力以及卓越的性能,具有其他产品没有的性价比。每个DHT11传感器在出厂前已经在高精度的湿度实验室中校准,并且在OTP内存中存储了湿度系数,在处理检测的文书地信号时要用到这些参数。采用单总线的串行接口的方式传递数据,是搭建起的系统更加稳定可靠,使用起来简单快捷、功耗更低。信号的传递距离较远可以达到20米,使其能够工作在非常苛刻的环境,从而受到欢迎。产品为4针单排引脚封装。连接方便、特殊封装形式可根据用户需求而提供。图3.2 DHT11实物图如图3.2所示,DHT11的温度测量范围为050,精度为2,湿度测量范围为2090RH,精度为

25、5RH,四脚直插封装,引脚封装如表3.1所示.表3.1 DHT11引脚说明Pin名称注释1VDD供电 2-5.5VDAC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极 DHT11单总线I2C协议,采用串行接口,DATA脚用于微处理器与 DHT11之间的通讯和同步,采用单根数据线来进行通讯,每次通讯时间超过20ms,通讯间隔最好超过100ms,采集回来的数据既有小数也有整数,具体格式在下面说明,小数部分用于以后产品的扩展,所以采集出来的数据位零.也可以用次来判断程序的对错,操作流程如下:一次完整的数据拥有5个字节、40位,先传输高位的原则,数据格式如下:一字节的湿度整数部分+

26、一字节的湿度小数部分+一字节的温度整数部分+一字节的温度小数部分+一字节的校验和当数据传送正确的时候校验和数据等于温度和湿度整数部分和小数部分的总和,如果不等于,代表数据传输错误。当主机向从机发送18ms的低电平开始信号的时候,并且拉高总线电平,使DHT11从空闲状态转换成忙碌状态,并且响应主机,随后发送5个字节的数据,同时采集当前的温湿度,主机通过单总线通讯可以接收到这些温湿度数据,并且选择性接受信号,DHT11一段响应主机后便采集温湿度并且向主机发送数据,如果主机不主动发送开始信号,DHT11是不会工作的。通信过程如图3.3所示。图3.3 通讯时序图通讯的时候,单片机先将主机拉高,通讯线进

27、入到空闲模式,当主机将通讯线电平拉低且保证18ms以上时候,将通讯线拉高40us左右,等待DHT11响应,如果在主机拉高电平40us以后,DHT11将通讯线拉低80us作为通讯响应,那么主机将通讯线拉高,并且开始传递数据。DHT11的数据格式如下,每传递一位数据前,总线总是被拉低50us后在传输对应的位,并且由于是单总线通讯,所以它的“0”用20-28us左右的高电平来表示,“1”用70us左右的高电平来表示。用程序来校验的时候,可以通过判断50us后的高电平长度来判断当前传输的位是“1”还是“0”。(2)DHT11电路设计由DHT11的资料可以知道,DHT11的分辨率是8位,并且采用单总线协

28、议,所以在总线DATA脚上上拉一个5K的电阻到电源VCC,这样可以保证总线的驱动能力,保证通讯的正常进行,并且在电源的正负极两端并一个104电容,可以有效的去耦,保证通讯的正确性。并且保证空脚为悬空状态,其硬件连接图如图3.4所示。图3.4 DHT11硬件连接图本设计中的控制系统包括单片机最小系统,和液晶显示电路两部分。单片机采用宏晶公司生产的STC89C52,该芯片是基于51核,冯诺依曼架构的一款8位微处理器。显示电路采用的是成本低廉的LCD1602来代替传统的数码管显示。 (1)单片机概述在微信计算机中,单片机微型计算机具有很重要的地位,生命力很强,被广泛应用。其也被称为单片机,被广泛应用

29、与控制系统中,所以也常常称其为微控制器。一般情况,单片机就是集成电路芯片,不过其内部包含有计算机的功能部分:加法器,存储器以及与外设连接的I/O设备。因此,单片机加上基本工作电路以及对应的外设电路便可以构造我们想要的控制系统。(2)AT89C52介绍AT89C52是51系列单片机的典型产品,在单片机内部包含了中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。中央处理器(CPU)是整个单片机的核心部件,是拥有8微数据处理能的处理器,能够处理8位组成的代码和数据,CPU充当老板职责,负责指挥和调度系

30、统的各个单元协调工作。芯片内部有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。片上共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令

31、集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如图3.5所示是常用的一种单片机,型号为STC89C52,它将计算机的功能都集成到这个芯片内部里,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚第40脚。在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片

32、机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。图3.5 STC89C52管脚分布VCC:供电电压;GND:接地;P0口:P0口是一个双向I/O口,并且是漏极开楼状态,每个引脚均可以吸收8TLL电流,当P1口的引脚在第一次被置为高电平的时候表示为高阻输入。P0能够可以与外部存储器相连接,并且充当高8位地址或者数据。使用FLASH编程的时候,它作为程序烧写口,当进行校验的时候,作为程序输出口,此时其要被定义为高电平。P1口:P1口是一个双向I/O口,并且内部漏极上拉,P1口缓冲器能接收输出4TTL门电流。P2口:P2口是一个双向I/O口,并且内部漏极上拉,P2口可以作

33、为缓冲器接受,可以输出P0口一半的电流,当P2口被写1的时候,该管教被上拉到高电平,表示当前为输入状态。当作为输入时,其电平被外设拉低,将电流输出。这是由于内部被上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口作为地址的高8位。利用内部上拉的优势,可以给出高电平,当对于外部高8位地址读写时候,P2口可以设定某些特殊寄存器的内容。P2口在FALSH编程的时候,采集的是高8位地址信号和控制信号。P3口:P3口是一个双向I/O口,并且内部漏极上拉,P2口可以作为缓冲器接受,可以输出P0口一半的电流,当P3口被写1的时候,该管被上拉到高电平,表示当前为输入状态。作为输

34、入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为下载口。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接入。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,S

35、TC89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。处理器的功能:STC89C52是一带有2K字节闪速可编程课擦除只读存储体(EEPROM)的低电压,高性能8位CMOS微型计算机。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容,在单块芯片上组合通用的CPL1和闪速存储器(ATMEL)。STC89C52是一款功能强大的单片机,它为许多控制系统提供了灵活

36、,成本更低的解决方案。 (3) STC89C52的特点和应用它有如下一些特点:和MCS-51产品兼容;2KB可重编程FLASH存储器(10000次);2.7-6V电压范围;全静态工作:0Hz-24MHz;2级程序存储器保密锁定;128*8位内部RAM;15条可编程I/O线;两个16位定时器/计数器;6个中断源;可编程串行通道;高精度电压比较器(P1.0,P1.1,P3.6);直接驱动LED的输出端口。单片机广泛领域非常广泛,涵盖了家用电器、仪表仪器、医疗设备、航空航天等各个领域。在仪器仪表上面,单片机的体积和功耗的优势被体现的淋漓尽致,它被灵活的扩展应用与智能仪器仪表中,通过使用不同的特性的传

37、感器,可以采集各种数字和模拟的信号量。从而使仪器仪表更加的智能化、微型化,且功能比起采用电子或数字电路更加强大;用单片机可以构成形式多样化的控制系统、数据采集系统。本设计主要应用STC89C52的外部中断和定时器中断等片上自带的外部资源。中断是处理器处理外部突发事件的一个重要技术。它能使处理器在运行过程中对外部事件发出的 HYPERLINK /view/600250.htm t _blank 中断请求及时地进行处理,处理完成后又立即返回断点,继续进行处理器原来的工作。触发中断的事件和原因可以被称为中断源。根据中断的不同来源,可以把中断的种类分为软硬件中断,而硬件的中断又可以分为由外部事件和内部

38、事件触发的中断两类。外部中断一般是指由外部事件触发的,如键盘、定时器、ADC等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些 HYPERLINK /view/206732.htm t _blank 外部设备的 HYPERLINK /view/600250.htm t _blank 中断请求。51定时器的工作原理:单片机内有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。下面我对它们的特性进行阐述。定时器T0特性功能寄存器TL0(低8位)和 TH0(高8位)构成,定时器T1由特

39、性功能寄存器TL1(低8位)和TH1(高8位)构成。定时器的工作方式有特殊控制寄存器进行设置,TCON则用于定时器的启动和停止,同时管理定时器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。图3.6 LCD1602液晶该液晶属于工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也称为1602字符型液晶,如图3-6所示。它是一种专门用来显示字母、数字、符号等的 HYPERLINK /view/545607.htm t _blank 点阵型液晶模块。它由若干个5X7或者5X11等 HYPER

40、LINK /view/545607.htm t _blank 点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602采用5V供电,电路设计如图3.7所示:图3.7 LCD1602电路设计 如图3.8所示为系统控制电路系统电路原理图。由C45、S1、R22组成复位电路,由数据手册知51

41、单片机为高电平复位,单片机上电时,电容C45和R22组成的RC电路中电容缓慢充电,使RST端保持一个几个微秒的高电平,使单片机上电复位,当电容C45充满电后RST脚电平通过下拉电阻将电平拉低为零,单片机开始进入运行状态,复位完成。当单片机在运行的过中,通过按下按键S1也可以形成一个高电平状态,使单片机手动复位。图3.8复位电路电路中为了计时方便计算,本设计的晶振选用12MHz无源外部晶振。配合两个起振电容C2、C3。形成晶体谐振电路为单片机提供一个12MHz的稳定的时钟源。为了方便起振,起振电容选用22pF。电路图如图3.9所示图3.9 晶振电路单片机的原理图如图3.10所示,在本设计中使用5

42、1单片机,采用图3.7.图3.8,图3.9所示电路图与图3.10构成最小系统,通过单片机的端口来控制DHT11和继电器,同时控制人机交互界面,对于系统运行状态的显示以及控制。图3.10 STC89C52单片机最小系统系统设计要求拥有采集得到信号后与设定的值相比较后,系统要做出反应,控制外部设备,通过控制外部设备,用两个继电器来控制外部的风扇和空调等设备。继电器选用5V的,驱动继电器需要大约100mA的电流,也就是说驱动继电器的三极管的集电极电流为Ic=100mA。三极管选用直流放大系数为100的9013,根据Ic=Ib,可计算得三极管基极电流Ib=1mA,而Vbe=0.7V,又由于光耦中的光电

43、三极管的集电极、发射极饱和压降Vces=0.3V,所以基极的限流电阻上的压降为(5-Vces-Vbe)=4V,4V/0.001A=4K,由于没有标称值为4K的电阻,所以选择4.7K的。图3.11 电机驱动电路图由图3.11可以知道,单片机引脚DO1或者DO2给高电平的时候,三极管Q5和Q6导通,继电器的线圈通电,继电器吸和,继电器的出头会从常闭引脚接通到常开引脚,同时继电器工作指示灯LED3和LED4点亮,表示继电器吸和。而继电器线圈两端并联的快恢复二极管IN4148是用来继电器线圈从通道到截止的时候的续流回路,保证继电器断开过程中,线圈不被烧坏。而电路中的电阻均用来限流,保护后级的三极管和发

44、光二极管的正常工作。在本设计中,要求拥有报警电路,当温度过高或者过低的时候要求报警,当湿度过高或者过低的时候要求报警,针对这一要求设计如图3.12所示的基于蜂鸣器的报警电路,此电路中的蜂鸣器是有缘蜂鸣器,只需要高低电平就可以控制蜂鸣器的鸣叫,所以单片机只需要通过一个三极管来发大电流来驱动即可。图3.12 蜂鸣器报警电路如图3.12所示,在电路中通过一个PNP三极管来驱动蜂鸣器,由于STC51单片机的输出端口的拉电流比较小,所以不能使用NPN的三极管来驱动蜂鸣器。并且在蜂鸣器旁添加一个发光二极管来进行光报警,也就是蜂鸣器报警的同时,发光二极管不断闪烁。本系统中使用的键盘是4键盘电路,键盘在本设计

45、的作用是切换显示界面,设置环境正常的温湿度范围。在程序设计中,键盘控制程序占用了程序的很大部分,所以构建一个合理的键盘电路可以减少程序量。在本设计中采用上拉电路的方式构建键盘电路,如图3.13示,采用1K电阻上拉,使按键按下时输出低电平,按键弹起时输出高电平。图3.13 键盘电路设计如图3.13示,采用1K电阻上拉,使按键按下时输出低电平,按键弹起时输出高电平。本设计中系统供电电源为5V,由于传感器DHT11与继电器都属对电源的纹波要求较高,所以系统供电采用线性电源。系统电源电路如图3.14所示。图3.14系统电源电路 如图3.14示,所接电源为220V交流市电。通过工频变压器将电压降压到9V

46、后,整流滤波为直流电,然后再经过5V的三端稳压器将电压稳定为5V的直流电压输出为信号调理电路,单片机电路等整个系统供电。电路图的原理如下,220V交流电经过线性变压器T1变压后转换成一个峰值比较小的交流信号,通过整流桥后,交流小信号变换成一个脉动的直流信号,经过后级的电容C14和C11的滤波,信号变换成一个脉动很小的直流信号,通过5V的稳压器构成的稳压电路后,输出5V的直流电压,后级接两个电容用于稳压以及减少输出电压的脉动。建立起这个一个系统供电电源后,便可以向运放、单片机稳定供电,使他们正常的工作。第4章系统实现本章主要讲述了编程的环境,编程语言,以及在各个软件设计的流程,在最后详细论述了整

47、个系统设计过程中的遇到的问题以及解决方案。4.1环境配置C语言是一种结构化的语言,它层次清晰,便于按模块化的方式组织程序、易于调试和维护、语言简洁、紧凑、使用方便灵活。其次,它丰富的运算和数据类型,便于实现各类复杂的数据结构。第三,可以直接访问内存地址,同时进行位操作的特点,使其能够胜任开发炒作系统的工作。第四,由于C语言可以对硬件进行编程操作,因此,它既有高级语言的功能,同时也有低级语言的优势。不仅可用于系统软件的开发,同时也适用于应用软件的开发。另外,C语言还有效率高的、可移植性强等特点。例如,原来使用的汇编语言编写的程序,由于别人编写的程序不易被读懂,在一段时间后再去做升级和维护就会感觉

48、非常的不方便。但在使用和维护C语言编写的程序时,就不会遇到这样的困扰,这时候C语言的优势就可以大大的体现出来。4.2程序功能块设计本设计的软件设计主要包括液晶显示、键盘扫描、中断程序、电机控制程序、DHT11控制程序以及主程序。其中主程序主要完成的是开机界面的显示,以及各个模块的初始化,并且中断程序的初始化。中断程序完成对于温湿度的实时采集和电机的控制。在KEIL工程中编程时,为了让程序的可读性变强,我们一般讲各个模块化程序都建立一个C文件来写相关的驱动子程序,然后给每一个子程序的C文件配备一个H文件,用来生命C文件里面所定义的驱动函数,并且两个文件的名字要一样。当要将某一个C文件的函数调用到

49、别的C文件中的时候,那么就要在要调用其他C文件里的C文件的里面加上调用对应C文件的H文件,用来声明,例如#include 。同样的情况,如果要使用同一个变量,就存在定义全局变量,在两外一个函数引用全局变量的时候,要先使用extern将全局变量的作用域扩展到本C语言文件。系统的主程序主要完成各个模块的初始化,以及开机的过程中界面的显示以及对于温湿度范围的设置,并且开启中断。图4.1 主程序流程图系统要实时的检测环境的温湿度,并且做出判断做出动作,为了满足实时性和可靠性,增加程序的可读性,在程序中使用定时器中断来控制温湿度的采集以及电机的控制,一旦温湿度在规定范围之外,那么控制电机来调节温湿度。为

50、了方便运算,本设计中定时器工作于方式1,采用16位定时的方式。计数最大值为65535。定时器初值计算方法为:由于选用的16位定时法。当系统开启中断的时候,计数器每次溢出的时候,系统进入到中断,别且做出相应的操作,系统每隔50ms进入一次中断,设置参数,每1秒采集一次温湿度,则计数器的设置如下: TH1 = (65536-50000)/256 (4-1) TL1 = (65536-50000)%256 (4-2)每当系统对于温湿度范围以及其他一些参数设置完成后,系统开启中断,系统进入到系统中断中,并且对系统进行相应的操作。中断程序的流程图如图4.2所示。图4.2 中断服务子程序流程图根据第三章第

51、一节中介绍的DHT11的资料,在这里可以知道,DHT11采用的是单总线通讯协议,一个数据格式中包含8个字节,分别为湿度整数部分RH,湿度小数部分RL,温度整数部分TH,温度小数部分TL,校验部分CK。通讯的时候,单片机先将主机拉高,通讯线进入到空闲模式,当主机将通讯线电平拉低且保证18ms以上时候,将通讯线拉高40us左右,等待DHT11响应,如果在主机拉高电平40us以后,DHT11将通讯线拉低80us作为通讯响应,那么主机将通讯线拉高,并且开始传递数据。详见图4.3所示。图4.3 主从机响应时序图数据格式如下,每传递一位数据前,总线总是被拉低50us后在传输对应的位,并且由于是单总线通讯,

52、所以它的“0”用20-28us左右的高电平来表示,“1”用70us左右的高电平来表示。用程序来校验的时候,可以通过判断50us后的高电平长度来判断当前传输的位是“1”还是“0”。通讯格式详见图4-4所示。图4.4 电平的高低判断时序图根据图4.3和图4.4可以得到DHT11的控制程序分为两部分,第一通讯程序和数据传输数据程序具体的流程图如图4.5和图4.6所示。具体的程序如下:void read_DHT(void) dht=1;delay_5us(); dht=0;delay_ms(180); dht=1;delay_10us(); dht=1;if(!dht) while(!dht);dht

53、=1; while(dht); RH_temp = read_data(); RL_temp = read_data(); TH_temp = read_data(); TL_temp = read_data(); CK_temp = read_data(); dht=1;untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp=CK_temp) RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; 图4.5数据传输

54、程序流程图图4.6握手程序流程图通过查询液晶的显示时序,写出液晶的写命令函数,写数据函数等函数,然后在此基础上对液晶进行初始化。初始化时序图如图4.7所示。在图中可以看到很多16进制的命令,他们代表的含义是:38H代表的事显示模式设置,两列显示;08H代表的意思是关闭显示;01H代表的意思是清屏;06H代表的事光标移动设置;0CH开启光标设置。在初始化的程序中通过LCD1602的时序图,可以得到写入命令的功能函数,写入数据的功能函数,输出数据的功能函数,通过调用这些函数不经可以轻松的初始化液晶,并且在后续的调用中,还可以组合成各种功能函数,例如字符显示函数,数字显示函数等。要注意的是,在初始化

55、的过程中,写命令函数和写数据函数都要附带检测信号,确保数据的正确传输。图4.7液晶初始化程序流程图对于键盘来说,分为编码键盘和非编码键盘,单片机一般使用的事编码键盘,对于系统来说键盘的扫描程序一般分为以下几步:扫描、延时消抖、赋予功能、检测松开四个步骤。他的驱动程序流程图如图4.8所示。在本系统中拥有四个独立的按键构成,分别用来加减湿度设定范围,一个按键用来设定确定键,一个按键用来设定退出键。图4.8键盘扫描程序流程图4.3 系统集成与调试根据系统的要求设计出硬件和软件,硬件包括51单片机最小系统,LCD液晶显示电路,键盘电路,电机驱动电路,温湿度采集电路,报警电路等,实物图4.9所示。图4.

56、9 实物图在整个设计中,在如图4.9所示的图搭建完硬件电路后,通过电脑通过串口将程序下载到硬件的单片机后,开启电源后系统正常运行。在调试过程中,分别正对各个模块功能进行测试,分别为键盘功能测试、液晶功能测试、温湿度传感器功能测试、报警功能测试、继电器电路测试。在测试完所有电路和软件后,系统正常工作,整个系统总体运行的时候,当设置完温湿度范围,并且正常启动监控程序后,系统一起正常运行。但是当系统运行一段时间后,系统会出现温度和湿度在液晶上不能刷新现象,如图4.9所示。通过分析发现,DHT11程序在运行的过程中对于时间的要求很高,但是整个程序里面不断的有中断程序打断DHT11的温湿度采集,导致测量

57、数据不准,或者进入到采集温湿度死循环里面,发现这一问题后,改写了DHT11的驱动程序,当进入到读取DHT11数据的程序时,主动关断中断使能,然后在读取完成后,又开启中断。从而顺利解决这一问题。在本章中主要介绍整机的测试,包括整个系统的工作流程、测试方法、测试的过程等。在设计的这一个养殖场温湿度监控系统,拿到随便一个环境,当刻意改变这一个环境的温度和湿度的时候,看一下整个系统是否正常运行,如果正常运行那么在养殖场也能够正常运行。5.1 测试概述本次测试的过程是选择一个模拟的环境,接通电源后,首先观看液晶是否正常显示,是否显示正常的设置界面,当界面显示正常后,然后测试按键,通过按键来输入正常的温度

58、和湿度范围,当按键测试完成后,按确定按键,启动监控系统,观察温度和湿度是否显示正常,当显示正常后,人为的改变系统的温度和湿度,观察报警系统和继电器控制外部设备电路是否正常工作。如果测试正常,那么同理也可以在养殖场工作。5.2液晶显示如图所示,在系统接通电源后,系统进入到设置界面,通过按确定按键可以进入到下一级菜单的温湿度设置。图5.1 设置界面5.3键盘输入测试如图所示,在显示电路正常工作后,通过按键来移动光标,在液晶屏上对温度和湿度分别进行设置。图5.2 输入测试图5.4温湿度采集测试如图所示,在显示电路正常工作后,按确定按键后,系统进入到温度和湿度显示界面,观察温度和湿度是否显示正常。图5.3 温湿度采集测试图5.5报警和外部设备工作测试如图所示,显示一切正常后,通过人为的改变当前环境的温度和湿度,从而观察报警系统和继电器控制外部设备电路是否工作正常。图5.4报警测试图当前的养殖场采用的传统温湿度计测量当前的养殖场的温度和湿度,这一种方法不仅非常的浪费人力和物力,并且在整个测试过程中,由于存在客观误差,所以读数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论