1、毕 业 论 文(设计)课 题 基于单片机的温湿度控制仪的设计 学生姓名 院 部 电气工程学院 专业班级 指导教师 二 一 六 年 六 月目 录摘 要IAbstractII第1章 绪论- 1-1.1选题背景- 1 -1.2研究的意义- 1 -1.3 相关技术的发展状况- 1 -第2章 总体方案- 2 -2.1系统控制结构组成- 3 -2.2 性能指标(设计要求)- 3 -2.2.2 设计要求- 3 -2.3 中央处理单元CPU- 5 -2.3.1 单片机的使用- 5 -2.3.2 温度传感器的选择- 5 - 2.3.3 湿度传感器的选择- 6 -第3章 硬件设计- 6 -3.1 系统的基本构成-
2、 7 -3.2 硬件设计的总体方案- 7 -3.3主要硬件电路设计- 7 -3.3.1温度检测电路设计- 7 -3.3.2 湿度检测电路设计- 12 -3.3.3按键输入控制模块- 13 -3.3.4显示部分的原理图及说明- 14 -第4章 软件设计- 16 -4.1软件设计的总体方案- 16 -4.2 温度传感器的流程- 16 -4.3主程序流程图- 17 -4.3 WRITE子程序- 18 -4.4 READ子程序- 18 -结 论- 20 -致 谢- 21 -参考文献- 22 -附录 1- 23 -插图清单图2-1T法脉宽测量- 3 -图2-2M法测量转速脉冲- 4 -图3-1系统原理框
3、图- 6 -图3-2AT89C52引脚图和实物图- 7 -图3-3单片机控制系统- 8 -图3-4时钟电路- 9 -图3-5复位电路- 9 -图3-6电源电路- 10-图3-7霍尔元件与磁钢图- 11 -图3-8(a)开关型霍尔传感器构成图- 11 -图3-8(b)开关型霍尔传感器工作特性- 11 -图3-9测速电路- 13 -图3-10信号处理电路- 13 -图3-11电机驱动电路- 14 -图3-12数码管结构图- 15 -图3-1374LS138和CD4511- 16 -图3-14数码管显示电路- 17 -图3-15矩阵键盘实物图- 17 -图3-168255引脚图- 18 -图3-17
4、按键电路- 19 -图4-1软件总体框图- 20 -图4-2主程序流程图- 21 -图4-3定时/计数中断程序流程图- 22 -图4-4速度控制程序流程图- 23 -图4-5速度值设定程序流程图- 24 -图4-6键盘扫描程序流程图- 25 -铜陵学院毕业论文(设计)基于单片机的湿度控制器设计摘 要人类的生存和平时所要进行的一些活动都与温度和湿度有着相当大的关系。伴随着经济时代的发展,我们的生活都与温湿度有着非常深的的关联。我们在平时的生产生活中,温度和湿度的测量理所当然变成了运用较为广泛的测量活动,所以我们经常可以在市场上发现各式各样的温湿度测量仪器。本设计主要由温度检测、湿度检测、LED显
5、示电路,键盘电路这几个几部分组成,本次设计选用的是AT89S52单片机,温度芯片DS18B20、传感器HS1101的温湿度控制系统组成。从而简单方便的实现两路温湿度的循环检测和可以同时做到控制温湿度的上下限,温湿度传感器可以将完成将出现改变的环境数值显示在数码管上的任务。本设计选用了DS18B20温度传感器来进行温度测量,此次测量的特点为精度性高和较高的重复性;选用了HS1101电容式相对湿度传感器来进行湿度测量;运用LED控制驱动器ULN2003驱动了6个数码管。从而可以达到简单的实现温度、湿度的实时控制。本次设计的最完美的地方就是操作起来轻松方便,硬件设计,软件设计也不是很难,比较容易去掌
6、握。整个系统的制作时间不长,调试简易,运行流畅。但是此次设计也存在着不少的问题点,因为时间的关系,本设计还剩余一部分未完成的设计,希望下次时间充裕时,能将此次设计未完成的部分进行完善。关键词:湿度检测;温度检测;单片机AT89S52;LED显示I汪盼:基于单片机的温湿度自动控制仪的设计Humidity Controller Based on Single ChipAbstractHuman survival and usually some of the activities to be carried out both with temperature and humidity have a
7、 significant relationship. With the development of economy, our lives are related to the temperature and humidity has a very deep association. Our production and life in peacetime, to measure the temperature and humidity naturally become more widespread use of measurement campaigns, so we often can
8、find a wide range of temperature and humidity measuring instrument on the market. This design mainly by the temperature detection, humidity detection, LED display circuit, keyboard circuit composed of several parts, this design choice is AT89C51 microcontroller chip temperature DS18B20, sensor HS110
9、1 temperature and humidity control system. So easy to achieve both temperature and humidity cycle testing and can achieve both the upper and lower temperature and humidity control, temperature and humidity sensors can be completed by the environment has changed the value displayed on the digital tas
10、ks. The design uses the DS18B20 temperature sensor for temperature measurement, the measure is characterized by high accuracy aand high repeatability; selected HS1101 capacitive relative humidity sensor for humidity measurement; use LED control driver ULN2003 drives 6 digital tube. Which can achieve
11、 a simple real-time control of temperature and humidity.The perfect place to design is easy and convenient to operate, hardware design, software design is not hard.Relatively easy to master. Production time for the entire system is not long, simple debugging, running smoothly. But the design also ex
12、ist many problems, because of time, this design also did not complete the remaining part of the design, we hope the next time there is enough time, can the design of the unfinished part perfect.Keywords: humidity detection; temperature detection; microcontroller AT89S52, LED displayIV铜陵学院毕业论文(设计)第1章
13、 绪论1.1选题背景 人类的生活与离不开温度和湿度,随着时代的变化,各个领域都与其有着很大的联系。人类离不开水和空气,当然也离不开温度湿度,温度太高太低都不适合人类的生存,湿度太高或太低也不利于我们的生活。所以渐渐地我们会发现温湿度测量已经成为了生活当中不可或缺的一个测量活动。我们可以看到多种多样的温湿度测量仪器在我们的生活中,本次设计主要就是想设计出一款使用起来方便的温湿度传感器,可以准确的测出温度和其相对的湿度。运用本次设计上安装的LED装置来显示出空气中的温度和湿度的度数。本次设计主要是运用AT89S52单片机来进行此次的设计,主要是运用单片机和模数转换器来进行本次的设计,选用LED来显
14、示独立的稳压电源。再设计硬件电路和键盘/显示的过程中我采用了8255A串行接口芯片。编写软件,完成如下功能:模拟现场3个点温度数据的巡回检测,温度范围085(温度信号用电位器可调电压模拟),1对应数字量03H。每隔15s检测一次,每一路连续检测4次,取其平均值,经标度变换,转为BCD码送LED显示,三路循环显示,每路持续2s。利用软件绘制相应硬件电路的原理图及PCB图。本次设计简单且容易制作,并通过C语言来控进行编程设计,实用性非常强。控制系统组成,在检测植物棚中的温湿度系数中,温度检测电路将检测到的温度数值传送到AT89S52单片机中,单片机中有其设定的温度,当输入温度输入时,单片机通过比较
15、它们之间的大小从而来控制电扇的风向或加热驱动电路。在一定范畴内的温度,风扇或加热器不会因为单片机的作用而做出回应。从而可以检测,监控植物生长的温度及土壤和空气里的湿度。并且能够对那些超过正常温度、湿度范围的状况进行实时处理,从而达到控制大棚中的环境的效果。 本次的设计还可以对温度实现实时显示功能,预先设定植物棚内温度的功能。如今已非常顺利地将DS18B20应用于所开发的“家用采暖洗浴器”控制系统中,因为它的转换速度非常的快,转换精度非常高,与微处理器的接口简单,从而给可以方便快捷的完成硬件设计的工作,从而达到降低成本,节约了开发时间和经费。1.2研究的意义 我们在生产和生活中,温湿度控制器也有
16、着广泛运用,像汽车产业、钢材等其他工业,都会用到温湿度控制器。然而在不同的场所中,温湿度控制器它的控制性能、控制精度这些都会发生改变,所以如何在那么多的不简单的环境下,满足我们想要的性能和精度将成为我们第一个要解决的问题。在本文的设计中,我会选用平时用到的电子元器件来年组成一个简单且方便操作的的温湿度检测电路,然后再进一步的来阐述控制的性能和控制的精度的问题。 本次的设计不仅可以对温度、湿度信号同时进行测量控制,而且可以实现液晶数字的显示,还可以通过按键对温、湿度分别进行上、下限设置和显示,使仪表可以根据现场情况,自动启动风扇或加热器,对被测环境的实际温、湿度自动调节。动作指示通过两常开触点输
17、出,真正使仪表实现了智能化更能适应复杂多变的现场情况,从而达到有效的保护设备的目的。本仪表适用于高低开关柜、端子箱、箱式变电站等多种柜型。1.3 相关技术的发展状况温湿度控制仪的设计在很早就有了发展,17世纪末人类创造了干湿球湿度计,干球和湿球这两支温度计的精度决定了干湿球的准确度;通风状态下的湿度计才是可以正常使用的:达到规定的准确度的要求为它的所有的材料要满足一定的条件。然而它的准确度却不是很高,只有5一7RH。间接测量法是干湿球温度计最常用的一种方法,它的主要犯法是通过测量干球、湿球的温度,然后开始进行计算,最后得到你测量的湿度值。因此对温度的使用没有要求,传感器在高温的环境下也额可以正
18、常使用。干湿球测湿法的维护相也很容易,我们平时的使用中,要经常给它换纱布和要经常给湿求加水,保证它处于潮湿干净的状态。这种方法比普通的电子式传感器相比来说,它不容易发生老化,精度下降这些问题。所以在温度非常高环境相当差场的情况下一般我们会选用干湿球温度计这种测湿方法。伴随着时代的发展,后来人们又发明了滴水法测量法来测量空气里的相对湿度。但是近20年内,电子式的传感器才慢慢地被人们运用到生产和生活中。温度传感器类的产品在出厂前一般都需要采用标准湿度的方法来一支一支的进行标定,与市面上其他的测温湿度的一起来说,它的准确度是很高的,可以达到2一3RH。因为电子湿度传感技术的发展迅速,精确性高,误差小
19、,所以在我们的生活生产中得到了广泛的应用。 伴随着经济技术的发展,随着电子芯片的集成化和小型化速度的迅速发簪以及制造芯片技术的提高,国内外在温湿度传感器开发这方面取得了非常大的进步。湿度传感器正慢慢地从简单的湿敏元件向集成化、智能化、多参数检测以及的方向迅速的发展起来,从而为了研发更好的湿度测控系统创造了很好的条件,将湿度测量技术提高到更高的水平。第2章 总体方案2.1系统控制结构组成 1) 温度检测模块,可以查看空气中的温度。2) 湿度检测模块,可以查看空气中的湿度。3)微控制器,此次设计我们选用的是AT89S52单片机来主控整个设计。4)键盘输入电路,可以用来设置初始值。5)LED显示电路
20、,可以用来显现温温度的度数和湿度的相对度数。AT89S52LED显示电路温度检测电路湿度检测电路键盘输入电路 图2-1系统原理框图2.2 性能指标(设计要求)2.2.1 功能要求 1)我们一般都选用数字式的温湿度传感器DHT11来收集温湿度变化数据,从而快捷方便的传送给单片机;2) 单片机在收到信号以后,对收集到的这些信号进行深度剖析和处置,然后把收集到的数据传送出来,然后显示在显示屏上;3) 首先我们要自己给出一个温度和湿度的合适的数值范围,通过输入不同的温湿度,然后再其后放入蜂鸣器,当超过一开始设定的温湿度的范围时,蜂鸣器就会开始报警,从而我们就知道了我们所测量的温度的大概的范围。2.2.
21、2 设计要求1.此次设计采用的是AT89S52单片机作为此次设计的主要器材,从而使其形成一个数字式的温湿度测量系统。2.数据采集部分需要的步骤有首先我们需要选用数字式温度传感器DS18B20作为我们所需要的检测器材,从而用它来测量温度的度数,一般我们将温度测量的范畴定在-55+125,检测精度一般以0.0625为准;然后选用HS1101电容式湿度传感器进行电路的测量,一般选用的方法是振荡,获得的频率信号与合适的数值它们之间接近线性关系,所以通过这个方法我们就会非常方便的对其湿度进行测量。3.用双位的移位寄存芯片74HC595进行扩大和展开,显示ULN2003芯片驱动数码管4.温湿度的显示一般我
22、们是选用六位的共阴LED 数码管显示。共阴的数码管一般是低三位是用来表明温度、高三位一般用来是表明湿度)。5.设计相关的界面时,一般会选用RS-485通讯在计算机上显现出它对应的温湿度,从而达到使PC机与主机之间的传输保持畅通。 6.设计电路中的抗干扰措施:(1)电源与地线和传输干扰以及应对方法:单片机系统中我们一般选用的是直流电源都是从交流电源改变过来的,但是此次改变的过程中存在着许多的暴动和干扰,一般我们选用以下的几种方法来解决这个问题带来的困扰: 1) 选用集成稳压块肚子进行电力的供应; 2)切记不要采用交流的电源,一定要选用之流的开关电源 3)采用DC-DC变换器。本次设计的系统中中,
23、接地的正确与否与系统的正常工作与否有着密切的联系。有两方面我们是需要注意的,第一点是是接地的接地点是不是正确,另一点是接地点的接地是不是牢固。前一点是为了防止系统内的各部分造成窜动与干扰,后面的一点是为了预防接地线上的压降。1)一般的情况下,当它的频率小于1MHz时,一般选用一点接地的方法,从而达到将定地线造成的地环路的几率;然而当频率高出10MHz时,这时应采用多点接地的方法,从而可以顺利的避开各地线之间的耦合。2)在本次设计的系统中,我们应该将数字地和模拟地分开来进行接地,就算一个芯片上有两种地,我们同样要做到将其分开接地,然后在一个点的地方将这两个地连接起来。3)防为了避免内部地线之间的
24、干扰,设计和印制电路板时应该遵守下列几项原则: 各个器材的地线需要呈现出辐射网状,一定不要使用环状; 地线的宽度是取决于穿过它的电流的大小,一般要大于3mm以上。如果条件允许的话,应该将底线的宽度进行扩大; 旁路电容的地线尽量短一点; 当通过功率电流有点大饿时候,我们应该将底线的宽度加宽,应该将其小信号与其分开。(2)硬件抗干扰方法:采用隔离技术;采用系统监控技术;(3)软件抗干扰方法:1)选用数字滤波提高数据采集的可靠性;2)程序运行失常的抗干扰措施:设立软件陷阱加软件“看门狗”2.2.3 性能指标DSl8B20的关键点是数字温度传感器, 一般我们规定在1085的温度范围内它的精度是0.5;
25、一般我们将它的编程配置到9-12这四位,它们分别对应0.5、0.25、0.125和0.0625,同时可以达到分辨率各不同的要求。本设计的温湿度传感器系统的用户编程配置为12位,温度测量误差就是0.0625。测温范围一般是不超过-55+125,检测精度是0.0625。总的来说,电子式湿度传感器的准确度它是可以达到2一3RH。但是在我们真正的运用中,因为一些有害物质的存在,我们使用的时间过长,他就会产生老化,精确度下降等系列问题,湿度传感器的老化程度会更高。议案来说,电容湿度的相对湿度设定0%100%RH范围内;电容量就会由 162pF变到200pF,其误差不大于2%RH;响应时间小于5 s;温度
26、系数为0.04 pF/.可见精度是较高的。2.3 中央处理单元CPU2.3.1 单片机的使用 在学习使用单片机的过程中,我们最主要的就是需要去了解它的硬件的主要过程。从汇编元或者C语言当中学习每一种功能的最初始化的过程,从而可以实现不同种功能的程序编制,嵌入式操作系统等高级硬件产品开发的基础。第一步:学习使用数字I/O,首先运用按钮输入信号,输出电平通过发光二极管显现出来,从而了解到引脚的数字I/O的功能,当按下某个按钮后,某发光二极管开始亮起来,这就是数字电路中组合逻辑的功能,对我们来说其实很容易,单我们可以从中学习到单片机的编程的思想。第二步:使用定时器,如果我们想用单片机来做出时序电路,
27、我们必须要学会怎么去使用定时器。时序电路的功能是非常强大的,在各个领域的控制中都有着相当大的作用。数字集成电路有许多的功能,首先它能清楚地实现时序电路,实现时序电路也可以通过可编程逻辑器件(PLD),与这两种方法相比来说,单片机实施起来是最容易也是最省钱的一种方法。第三步:程序反反复复的执行是单片机的最主要的特征,它无法自己中断。每个指令的程序我们都会用掉一定的执行的时间,当程序没有执行到一定指令时,所以该指令的动作也就不会发生,从而这样就会延迟设计的进度。所以中断功能在使用中的困难是需要精确地,我们需要明白什么时间是不可以中断发生(屏蔽中断)、什么时候是可以中断发生(开中断),我们又需要设置
28、哪些寄存器才能使某种中断起作用。第四步:与PC机进行RS232通信,单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。第五步:学会A/D转换,MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。2.3.2温度传感器的选择 一般来说,我们常用的温湿度传感器所构成的计算机温湿度测控系统,我们需要的器材有电源,信号,地线和多根导线。系统应该提供电源和模拟量输入接口,同时严格的要求
29、信号传输的距离、电磁干的扰,特别是当发现有很多的测量地点时,上面所谈到的这些问题就会变得更加的严重,这不仅会导致系统成本的增加,同时也会导致系统可靠性大大的降低。DS18B20数字式温度传感器,相比传统的热敏电阻的不同点是,它使用了集成芯片,运用了单总线的技巧,它的优点是可以较大程度上的减小外界对其的干扰,从而可以提高测量的精准度。然而,它也可以直接将被测温度转化成串行数字信号供微机处理。此种方法它的接口相当方便我们连接, 从而可以达到数据的传送和简化处理的过程。 其中部分功能电路的集成,总体硬件设计总的来说会更加简洁,也能够快速的降低成本,连接电路和焊接电路所需要的时间会相对的减少,更简单有
30、效地进行调试相关的工作,这样也就节约了开发的所需时间,也节约了开发所花费的经费。2.3.3 湿度传感器的选择进行湿度测量电路中,我们一般采用电容式湿度传感器HS1101进行检测测量。它的优点有检测所花费的时间较少、精准度很高、有较高的可靠性稳定性较好和使用起来简单方便,因为它所占的体积较小,所以我们方便携带。次湿度传感器较多的适合运用在那些精度要求不是特别高的场所。不同的相对湿度中,它的电容值也会随之改变。因为单片机的缺点是它无法直接读取它的电容值,所以需要再接一个外接测量电路。电压输出式和频率输出式是电容传感器测量电路的两种两方式,单片机内有两个定时/计数器,测量频率起来会比较方便,所以我们
31、会选用频率输出测量电路。第3章 硬件设计3.1 系统的基本构成本测量仪核心涵盖了两大模块:温度检测和湿度检测。本设计以AT89S52单片机担当系统的控制的任务,选择了电容式的湿度传感器HS1101跟一线制的数字温度传感器DS18B20,把两次采集到的温度数据以及湿度数据输入到单片机内,由两片74HC595的处理以后,再由ULN2003的来同步显现出来。3.2 硬件设计的总体方案 这次的提案核心部分组成为温度的捕捉、湿度的的获取、CPU的指导、移位存储电路跟驱动电路以及显示,它是以DS18B20、HS1101传感器为核心的温湿度系统,可以进行双路温湿度的不间断检测,要求:5S间隔触发另一条温湿度
32、的查看,而且要由两LED灯指示;还要可以把温湿度阈值限定在一定范围之内。温度的阈值范围行为是:若温度大于45,开启一台继电器(风扇);但是,若温度小于35,则断开它。湿度变化行为是:若湿度超过85%,开启剩下一台继电器(加热器);可若是湿度小于75%,则断开它。该方案的功能为:它可以完成温湿度的不间断巡查,温湿度传感器可以随着外部温湿度的不同而把测量到的数据呈现在对应的数码管上。 3.3主要硬件电路设计 3.3.1温度检测电路设计 温度检测模块通常可以把温度的不同用不同的电压替代,纵观温度检测系统模块的设计发展,以前的温度传感器通常把捕获的模拟信号当做信号源,经模数转换以后远程传送,这无疑会使
33、最终所得数据有误差。本设计用DS18B20来捕捉信号,可得到准确的数字信号。由于AT89S52能够一次携带若干个DSB1820,所以方便了多点检测,较容易地搭建传感器的网络。 之所以用DS18B20来获得温度数据,是因为,这昭示了系统芯片化的倾向。电路模块的集成,让总体电路看起来更加简单方便,使得电路的搭建与焊接更加容易。更重要的是,放入集成块,起到了很好的抗干扰作用,让检测结果更加接近实际值,显而易见,集成芯片的运用必然会越来越多。DS1B820内部结构图如图3-1所示: 图3-1 DS1B820内部结构图 DS18B20测温系统有测温系统便捷、测温准确、占用的口线少等优点。DS18B20的
34、优势在不一样的环境下有不同的表现,因为我们需要对空气的温度进行测量,所以选择DS18B20的外部电源供电方式,这种方式为DS18B20的最好的工作方式,建议设计者在设计中选用此种方式,因为至少比寄生电源的方式仅加了根VCC引线。用此种方式,能够充分展示DS18B20的优势,下面是外部电源供电方式的电路如图3-5所示: 在外部电源供电方式下,DS18B20电源经VDD引脚输入,这时的I/O线可以不加大的上拉电阻,因为没有无电源电流低的情况,在总线上甚至能够放多个DS18B20传感器,搭建多个点测温系统。这里要留心的是:在此种方式下,DS18B20的GND管脚不可以空接,不然只能一直显示85。 D
35、S18B20的读写时序和测温原理跟DS1820一样,仅为所得的的数据的位数随分辨率变化而变化,而且转换时的间隔时间从2s降为750ms。DS18B20的原理如下图示。这里低温度系数晶振的振荡频率受温度影响不大,可以获得固定频率的脉冲信号传入计数器1。高温度系数晶振因温度不同其振荡率明显不一样,获得的信号当作计数器2的输入。计数器1跟温度寄存器被预设在55所对的一个值。计数器1对低温度晶振产生的信号实行减法计数,若是计数器1的预设值降至0,则温度寄存器的值加1,而计数器1的预设会再次被赋予,这样循环往复,一直到计数器2到0为止这时温度寄存器中的数据就是所得温度值。这里的斜率累加器作用为补偿以及修
36、正检测中的非线性,它的输出用来校正计数器1的预设值,如图3-2 DS18B20的测温原理图所示:图3-2 DS18B20的测温原理图温度检测部分原理图如图3-3所示:图3-3 温度检测部分的原理总图图3-4 AT89S52各引脚接线本设计以AT89S52单片机担当系统的控制的任务,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT8
37、9S52在众多嵌入式控制应用系统中得到广泛应用。 AT89S52各引脚接线如图3-4所示:图3-5 74HC595控制模块电路 两片74HC595芯片,第一片通ULN2003控制数码管段选,第二片也由ULN2003控制其位选,使得数码管显示其对应的温度。74HC595控制模块电路如图3-5所示:图3-6 外部调节电路 经过预置温度后,温度的阈值范围行为是:若温度大于45,开启一台继电器(风扇);但是,若温度小于35,则断开它。外部调节电路如图3-6所示:图3-7 数码管显示模块电路 温湿度的显示一般我们是选用六位的共阴LED 数码管显示。共阴的数码管一般是低三位是用来表明温度、高三位一般用来是
38、表明湿度)。通过ULN2003由74HC595控制其显示相应的温度。数码管显示模块电路如图3-7所示:图3-8 DS18B20引脚图用两片温度传感器DS18B20实现两路温度转换,第一片温度传感器的接入口与单片机的P3.7口相连,第二片温度传感器的入口与单片机的P3.6口相连。注意温度传感器接入时要加上拉电阻。指示灯模块图如图3-8所示:图3-9 指示灯模块图 当两路温度检测实现转换时,有两个指示灯指示,GREEN指示灯与单片机的P0.2相连,RED指示灯与单片机的P0.3相连。当温度超限时,启动一台继电器,继电器与单片机的P2.1口相连。指示灯模块图如图3-9所示。 另外还有手动按键排风功能
39、,此按键与单片机的P0.0口相连。显示部分在上面已有讲述,这里不再赘述。3.3.2 湿度检测电路设计 湿度检测电路一般选用电容式湿度传感器HS1101,HSll01湿度传感器是一种基于电容原理的湿度传感器,相对湿度的变化和电容值呈线性规律。在自动测试系统中,电容值随着空气湿度的变化而变化,因此将电容值的变化转换成电压或频率的变化,才能进行有效地数据采集。用555集成电路组成振荡电路,HSl 100湿度传感器充当振荡电容,从而完成湿度到频率的转换。HSll01湿敏传感器是采用侧面开放式封装,只有两个引脚,有线性电压输出和线性频率输出两种电路。在使用时,将2脚接地,这里选用频率输出电路。该传感器采
40、用电容构成材料,不允许直流方式供电。所以我们使用555定时器电路组成单稳态电路。湿度传感器只是保证传感探头的精度,在实际使用中,综合精度除了与湿度传感器本身元件有关, 还与外围电路的器件选择相关。 HS1101作为电容变量接在555芯片的2、5脚之间,引脚7用作电阻R2的短路,等量电容HS1101通过R1、R2充电到门限电压(约0.67V),通过R4放电到触发电平,然后R2通过7短路到地,传感器由不同的电阻R1、R2充放电,进行工作循环,形成方波。其周期计算如下:T充电=C*(R1+R2)*In2;T放电=C*R1*In2;由此可知输出方波频率为f=1/(T充电+ T放电)=1/C*(R2+2
41、R1)*In2;可见空气湿度通过555测量振荡电路,就转变为与之呈反比例的频率信号。说明:湿度检测模块的原理图如图示。以两个湿度传感器HS1101完成双路湿度变换,其中一个湿度传感器输入口跟单片机的P3.4口连接,另一个温度传感器的输入和单片机的P3.5口连接。需要提醒的是,温度传感器需经上拉电阻接入,到两路温度测量完成变换的时候,需两个LED灯指示,其中,GREEN跟单片机的P0.2连接,RED和单片机的P0.3连接。若温度大于所定范围,打开一台继电器,这里继电器和单片机的P2.2连接;而且具有手动按键加热功能,这个按键跟单片机P0.1连接。 湿度检测部分的原理图如图3-10所示: 图3-1
42、0 湿度检测部分原理图3.3.3按键输入控制模块键盘输入控制模块通过Up键和Down键调整数值,调整完毕继续按设置键进入正常状态,另外也可以通过保存键设置参数存盘,K2、K3、K4、K5分别为设置键、上调键、下调键和保存键。具体电路设计如图3-11所示:图3-11 键盘输入电路3.3.4显示部分的原理图及说明 说明:原理图如图3-12所示:为了使该设计更加简便,成本更低,我们把所有N位段选码并联到一块,由一个74HC595统一指挥。因为所有LED的段选码都由一个74HC595输出端指挥,所以,在某个瞬间,N位LED可能会出现呈现一样的字符的情况,这就要求我们必须选用扫描的方式,即在每一瞬间仅仅
43、用一位显示字符。另一边可用另一片74HC595指挥LED的位选,第一个74HC595输出端出现对应的字符段选码,而第二个74HC595位选就指挥I/O口在这个显示位放入选通电平,用以确保这位呈现对应的字符。周而复始,让每位分时显示该位对应字符。因为74HC595拥有锁存功能,加之串行输入段选码会耗一点时间,所以,这里无需延时,就能够出现视觉上的短暂停留的效果。图3-12 显示部分的原理图第4章 软件设计4.1软件设计的总体方案本软件的设计方法主要是使用架构和板块的模式,这样有利于程序的调试、书写和消除错误的代码,方便以后的检查以及更新。根据设计的要求以及所叙述的系统的各种设计情况,单片机控制系
44、统软件程序主要由下面几个组成:初始化模块、数据(采集)处理模块、中断模块、LED显示模块、控制模块。温湿度控制系统所用到的是模块的设计模式,能够分为以下的程序: (1)系统初始化程:最初的工作就是要将变量进行设定,把输入和输出口还有其他部件进行初始化的操作。 (2)主程序MAIN:此部操作是要将温度和湿度的采集还有变换完成,并让指示灯显示相应的情况,在指定的时间段后,得到相应的温度和湿度数据。 (3)温度采集程序temp,temp2:将DS18B20进行初始化的操作,发出转换温度的命令,在指定的时间段后,得到转换后的数据。依据DS18B20的通信协议,主机调控DS18B20要进行温度的转换所需
45、过程:在每次读写前一定要将DS18B20复位,并且复位成功后发送ROM命令,最终还需要发送RAM命令,完成上面的操作接下来在对DS18B20进行预定的操作。复位要求CPU将数据线下拉500us,完成后在进行释放。DS18B20接到信息后在等大概16到60 us,然后在发出60到240us左右的存在低脉冲,只有CPU收到这样的信号才会复位成功。 (4)湿度采集程序hs,hs2:此操作是找到HS1101频率的取值而且要查表确定范围,接下来是把计算得到的频率在进行计算得到湿度数据。(5)温湿度转化程序CHANGE:要想到的BCD码值,就必须依据精度的要求,用收集到的温湿度数据进行处理转化。 (6)显
46、示子程序DISPLAY:显示实时温度和湿度。(7)DS18B20初始化子程序ow_reset:DS18B20在前面一定要根据指定的操作完成初始化,反之,不能正常的运行。 (8)DS18B20读写子程序write_byte、read_byte、read_bit、write_bit完成对DS18B20的读写功能。 (9)根据DS18B20的延迟时间间隔还有程序的延迟效果,将delay固定。4.2 温度传感器的流程DS18B20是收到相应指令来进行相应工作的调度(指令,说的通俗点就是一系列的高低电平信号,这些信号是有相应意义而且能够识别),它的指令有2种,其一是 ROM指令,其二是RAM指令;ROM指令就是根据指令对ROM做一系列的操作和调整,例如查寻用到的DS18