基于STC12C5410AD单片机的温湿度检测仪

上传人:沈*** 文档编号:78721812 上传时间:2022-04-22 格式:DOC 页数:51 大小:1.78MB
收藏 版权申诉 举报 下载
基于STC12C5410AD单片机的温湿度检测仪_第1页
第1页 / 共51页
基于STC12C5410AD单片机的温湿度检测仪_第2页
第2页 / 共51页
基于STC12C5410AD单片机的温湿度检测仪_第3页
第3页 / 共51页
资源描述:

《基于STC12C5410AD单片机的温湿度检测仪》由会员分享,可在线阅读,更多相关《基于STC12C5410AD单片机的温湿度检测仪(51页珍藏版)》请在装配图网上搜索。

1、基于STC12C5410AD单片机的温湿度检测仪摘 要温湿度是环境中一个重要的物理参数,人类的生存和社会活动与温湿度密切相关。在生产和生活中的许多场合,不论是仓库管理、图书保存,还是工业生产、居民生活,都对环境中的温湿度有一定的要求,在某些行业中对温湿度的要求更高。因此,对环境中温湿度的检测和控制显得尤为重要,温湿度检测在很多现代科技领域中也成为一项重要技术。在设计过程中,我们综合参考了国内外同类产品的设计方法。经研究之后,采用了以带有A/D转换器的STC12C5410AD单片机为核心控制器件,采用温度传感器AD590和电容式湿度传感器THS11对环境中的温湿度进行检测,模拟输入接口接入键盘实

2、现人机交换功能,并用LED作为显示器件的硬件设计方案。此外,在通信方面使用RS-232串行数据接口与计算机进行数据传输。软件部分则采用采用模块化的方法将其分成几个部分,然后逐模块设计程序,用汇编语言来实现,最终使各部分结合起来协调工作。该温湿度检测仪结构简单,并能很好的满足许多环境中对温湿度检测范围和精度的要求。关键词:STC12C5410AD单片机,传感器,LED,温湿度MEASURING INSTRUMENT FOR HUMIDITY BASEEDON STC12C5410AD MICROCONTROLLERABSTRACTThe humiture is an important phys

3、ics parameter of environment, human beings survival and public activities go hand in hand with the humiture. many situations that are in the production and the life, not only warehouse management, preservation of books, but also industrial production, residents life, all have certain request to the

4、humiture of the environment, some professions have higher requirements. Therefore,it appears very important to examination and control the humiture of the environment, and humiture detecting becomes an important technology in many modern science and technology fields.In the whole design process, we

5、have synthesized referred to the domestic and foreign similar products design method. After research, we adopt such a design plan: take the STC12C5410AD microcontroller which included A/D converter as the core control component, adopt temperature sensor AD590 and dyadic capacitance humidity sensor T

6、HS11 to give a test to humiture, and use LED to be the display component. In addition, we used the RS-232 serial data connection in the serial communication aspect. That then, the software part adopt modularized method, that is to divide the person into several parts, and then chase the module field

7、 using assembly language layout procedure, makes every part harmonize a job combining with getting up ultimately.That instrument structure is simple, and can satisfy the request of range and accuracy of the humiture checks in various environments.KEY WORDS:STC12C5410AD microcontroller, Sensor, LED,

8、HumitureIII目录前言1第1章 温湿度检测仪的总体技术方案21.1 温湿度检测仪的主要性能指标及其工作原理21.1.1 主要性能指标21.1.2 温湿度检测仪的基本工作原理21.2 温湿度检测仪的硬件设计方案概述31.3 温湿度检测仪的软件设计方案概述4第2章 温湿度检测仪硬件电路的设计62.1 温湿度检测仪单片机电路的设计62.2 温湿度检测仪其他硬件电路的设计72.2.1 温度检测电路的设计82.2.2 湿度检测电路的设计92.2.3 其它模块电路的设计10第3章 温湿度检测仪的软件设计173.1 主程序模块的设计173.2 温湿度检测模块的程序设计183.2.1 温度检测模块的程

9、序设计183.2.2 湿度检测模块的程序设计193.3 键盘扫描和LED显示模块的程序设计243.3.1 键盘扫描部分的程序设计243.3.2 LED显示部分的程序设计26结论28参考文献29附录31 前言日常生活中,档案馆、图书馆、精密仪器室、超净车间等诸多场所都对环境温湿度有严格的要求,温湿度集散控制技术也是比较常见的应用技术。随着科技的进步,温湿度的相关检测仪表也向着智能化、小型化、低功耗的方向发展。在这个发展过程中,单片机发挥了重要的作用,本文介绍的湿度检测仪就是以单片机作为核心控制器设计的。它具有体积小、操作简单、测量精度高和抗干扰能力强等优点,能很好的满足许多环境中对温湿度检测范围

10、和精度的要求。本设计首先根据实际生产生活的需要提出温湿度检测仪的功能要求,然后由这些具体要求设计出了硬件原理图,采用模块化的方法先将整个系统分成若干部分,然后逐模块进行硬件和软件设计,最后将各部分结合起来协调工作。它是利用单片机的在控制方面的突出优点,并综合运用现代检测技术、微控制技术、数据处理和通信技术以及LED显示技术而设计的。可以实时、准确的测量环境中的温度和相对湿度。论文的第一章介绍了温湿度检测仪的主要性能指标及其工作原理,概括介绍了温湿度检测仪的硬件设计总体方案和温湿度检测仪的应用软件系统的设计方案;第二章主要介绍了温湿度检测仪的硬件电路设计,重点介绍了温度检测电路和湿度检测电路的设

11、计;第三章主要介绍了基于STC12C5410AD单片机的湿度检测仪的软件设计,软件设计部分采用模块化的设计方法,重点介绍了湿度检测模块程序设计中对湿度检测模块输出频率的线性化处理和温度补偿。48第1章 温湿度检测仪的总体技术方案温度和湿度是重要的环境参数,在很多方面都起着重要的作用,而对环境中的温度和湿度的检测也尤为重要。本文中的基于STC12C5410AD单片机的湿度检测仪就是针对这一需求而设计的,它综合运用了检测技术、数据处理和通信技术以及LED显示技术,可以实时、准确的测量环境中的温度和相对湿度,并且可以和PC机进行通信,作为温湿度记录仪使用。在此设计过程中,我们综合分析了不同用户在不同

12、场合的不同需求,并且借鉴了国内外同类仪表设计的经验,经研究之后,采用了以带有A/D转换器的STC12C5410AD单片机为核心控制器件,以高灵敏度温度传感器AD590和电容式湿度传感器THS11作为数据获取元件的方案。它的设计过程主要包含硬件设计和软件设计两大过程,以下是该温湿度检测仪设计的大概过程。1.1 温湿度检测仪的主要性能指标及其工作原理1.1.1 主要性能指标1相对湿度测量精度:5%,湿度检测范围:0100%。2温度测量精度:1,温度检测范围:050。3可有用户自行校准仪表的测量精度,无需硬件调整。4可直接与微机串行口连接,作环境相对湿度与温度的高精度记录仪使用。5LED显示。7电源

13、:DC9V10%。8工作环境温度50 ,工作环境湿度100%。1.1.2 温湿度检测仪的基本工作原理加载有相应程序的STC12C5410AD单片机定时采集温度测量电路输出的电压信号和相对湿度测量电路输出的频率信号,然后将这些模拟信号转化为数字信号,并对湿度的频率进行线性化处理和温度补偿,从而获得温度和相对湿度数据,分别将这些数据存储于数据存储器中,然后送LED显示。1.2 温湿度检测仪的硬件设计方案概述硬件部分是检测仪的重要部分,设计的好坏直接影响到整机的性能。该检测仪采用STC12C5410AD单片机为核心,整个硬件系统分为以下几个部件,具体如图1-1所示:图1-1 硬件电路框图温度检测电路

14、由半导体集成传感器AD590和电阻构成,AD590输出电流通过电阻进入模拟地,从而产生相应的电阻电压。电阻的电压输入到STC12C5410AD单片机中,经ADC转换为数字量,再由相关软件处理得到环境温度。相对湿度测量电路由NE555外加湿敏电容与电阻组成的振荡电路组成,湿度传感器THS11的容值随着环境相对湿度的变化而变化,从而导致振荡器的振荡频率变化,STC12C5410AD单片机检测到振荡器输出的振荡频率,再经过软件处理,获得相对湿度值。键盘输入电路实现人机对话的功能,可通过键盘设置是否进行温度和湿度的检测。RS-232接口电路与PC机的串行口联接,实现程序的下载。电源电路部分为单片机的正

15、常工作提供稳定可靠的电压。1.3 温湿度检测仪的软件设计方案概述该仪表的软件设计采用模块化的程序设计方法,其结构见图1-2:图1-2 软件设计模块图检测仪的应用软件系统包括:主程序模块、温度检测模块、相对湿度检测模块、键盘和显示模块以及串行通信模块。主程序的内容包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序。温度检测模块主要是完成测温电路所得电压与实际温度的转换和温度数据的存储、显示;相对湿度检测模块除了要实现对湿度数据的存储 、显示外,还要对湿度信号进行温度补偿和线性化处理。键盘、显示模块完成检测仪控制和数据显示功能;通信模块实现程序的下载和烧录。

16、第2章 温湿度检测仪硬件电路的设计此系统采用了以含有A/D转换器的STC12C5410AD单片机为核心控制器件,以高灵敏度传感器为温湿度获取元件,用LED作为显示设备。这个系统主要由STC12C5410AD单片机电路、温度测量电路、相对湿度测量电路、键盘输入电路与LED显示电路。2.1 温湿度检测仪单片机电路的设计该检测仪的设计是以STC12C5410AD单片机为核心部件,STC12C5410系列单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代 8051单片机,指令代码完全兼容传统8051,但速度快8-12倍,内部集成MAX810专用复位电路。拥有4路 PWM,

17、8路高速10位A/D转换。工作电压:5.5V 3.8V(5V 单片机),工作频率范围:035MHz,用户应用程序空间10K字节,E2PROM功能。STC12C5410AD单片机的引脚排列及基本外围电路如图2-1所示。图2-1 STC12C5410AD单片机的引脚排列及基本外围电路图运用STC12C5410AD单片机的输入/输出接口P1.4和P1.5定时采集温度测量电路电压信号和相对湿度测量电路输出的频率信号,并对湿度的频率进行线性化处理和温度补偿,从而获得温度和相对湿度数据,分别将这些数据存储于数据存储器中,然后再通过P1.0和P1.1口把芯片处理的数据送入显示模块电路进行显示。单片机通过模拟

18、输入口P1.3连接键盘,用户可以通过键盘输入实现人机交换。STC12C5410AD单片机的P3.0、P3.1口与RS-232串行接口相连实现与PC机的串行通信。STC12C5410AD单片机片内的时钟产生方式采用的是内部时钟方式,即在XLAT1和XLAT2两引脚间外接石英晶体和电容构成一个自激振荡器,从而向内部时钟电路提供振荡时钟。震荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.212MHz之间任选。通过改变电容C1、C2的值进行微调,通常取30pF左右。本设计中晶体的振荡频率取11.0592MHz,电容的值取30pF。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤

19、销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。本设计中STC12C5410AD单片机的复位电路采用的是开关复位电路,如图2-1所示,开关未按下是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容处于充电(导通)状态,故RST脚的电压与VCC相同。随着电容的充电,RST脚上的电压才慢慢下降。选择合理的充电常数,就能保证在开关按下时使RST端有两个机器周期以上的高电平,从而使STC12C5410AD内部复位。SW1按下时是按键手动复位电路,RST端通过R1与VCC电源接通,提供足够时间的复位电平,使单片

20、机复位。基于STC12C5410AD单片机的温湿度检测仪的硬件原理图见附录。2.2 温湿度检测仪其他硬件电路的设计该温湿度检测仪的硬件系统由以下几部分组成:电源部分、单片机控制电路、相对湿度测量电路、温度测量电路、键盘扫描电路、LED显示电路、与PC机通信的RS-232转换电路等。这些部分组合起来协调工作,从而达到温湿度检测的目的,各部分设计如下。2.2.1 温度检测电路的设计温度传感器的选择:传统的模拟温度传感器,如热电偶、热敏电阻和RTDS对温度的监控,在一些温度范围内线性不好,需要进行冷端补偿或引线补偿;热惯性大,响应时间慢。集成模拟温度传感器与之相比,具有灵敏度高、线性度好、响应速度快

21、等优点,而且它还将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,有实际尺寸小、使用方便等优点。常见的模拟温度传感器有LM3911、LM335、LM45、AD22103电压输出型、AD590电流输出型。本设计中采用由美国模拟器件公司生产的温度传感器AD590,AD590是一种电流输出型二端式集成温度传感器,其主要技术参数:测温范围55+150;工作电压+4V+30V;精度0.5;灵敏度1A/,温度每变化1,其输出电流变化1A;输出零点为热力学温标零点。即273时AD590的输出电流为0A,0时输出约为273A。当在电路中串接采样电阻R时,R两端的电压可作为输出电压。注意R的阻值不

22、能取得太大,以保证AD590两端电压不低于3V。AD590输出电流信号传输距离可达到1km以上。作为一种高阻电流源,最高可达20M,所以它不必考虑选择开关或CMOS多路转换器所引入的附加电阻造成的误差。适用于多点温度测量和远距离温度测量的控制。温度检测电路主要由AD590传感器、电阻和电压跟随器组成,本设计用LM324的一个放大器作为电压跟随器,具体电路图如图2-2所示。工作过程:因为流过AD590的电流与热力学温度成正比,电流经过电阻R43转换为电压信号,所以电阻R43两端的电压也将随环境中温度的变化而变化。电阻上的电压信号经电压跟随器稳定后输入到STC12C5410AD单片机带有A/D转换

23、器的端口P1.4,将模拟电压信号转化为数字信号,再经过相关软件处理获得环境中的实际温度数据。图2-2 温度检测电路2.2.2 湿度检测电路的设计湿度传感器的选择:湿度传感器,分为电阻式和电容式两种,电容式湿敏元件较为多见。产品的基本形式都为在基片涂覆感湿材料形成感湿膜。空气中的水蒸汽吸附于感湿材料后,元件的阻抗、介质常数发生很大的变化,从而制成湿敏元件。湿敏元件除对环境湿度敏感外,对温度亦十分敏感,其温度系数一般在0.20.8%RH/范围内,而且有的湿敏元件在不同的相对湿度下,其温度系数又有差别。温漂非线性,这需要在电路上加温度补偿。电容式相对湿度传感器是气候、过程温度检测的主流,并是唯一能检

24、测全温度范围的传感器,能精确的检测低至0%RH的相对湿度。因为较好的温度特性,电容式传感器经常不用温度补偿就能测量较宽温度范围内的相对湿度。THS11是一种电容式湿度传感器,它的容值随环境湿度的变化而变化,它具有测量范围广(0100%)RH;适用性好,可在(40100)温度下工作;精度高(2%);响应速度快(5s),恢复时间短(10s);长期稳定好(年漂移量仅为1.5%RH)并且具有极好的线性输出特性。相对湿度测量电路如图2-3所示,它主要由NE555外加湿敏电容与电阻构成的振荡器组成。图中的NE555是一个能产生精确定时脉冲的高稳度控制器,它输出的变频信号被送入单片机中。图2-3 湿度检测电

25、路湿度检测电路的工作过程为:环境相对湿度的变化导致湿度传感器THS11的电容发生变化,从而引起振荡器的输出频率的发生变化。单片机通过测量该频率的变化,经应用软件的温度补偿和线性化处理可获得环境相对湿度值。该测量电路的测量精度为3RH,分辨力0.1RH。相对湿度传感器THS11的测量范围大,长期稳定性好,响应时间短,温度系数低,线性度较好,体积小。不足之处是相对THS11与其它元件的离散性导致了调试困难,需进一步研究解决。2.2.3 其它模块电路的设计键盘输入电路与LED显示电路实现人机对话的功能。RS-232接口电路与PC机的串行口联接,实现通信功能。电源模块为单片机的正常工作提供稳定可靠的电

26、压。以下重点介绍键盘输入模块、LED显示电路和串行通信模块。1. 键盘输入模块键盘输入模块采用动态扫描的方式,本键盘模块采用行列式按键,共由八个按键组成,如图2-4所示。由于按键的结果就是要转换成为与累加器中的数值相对应的键值,以实现按键功能程序的跳转,所以需要对键盘进行功能定义。键码可按下式形成:键码=首行键码+列号其工作原理为:单片机通过运行程序不断扫描键盘,检查是否有键按下,当扫描到有键按下时。经过程序处理找出按下的键值,并调用相应键功能程序完成相应的键操作。图2-4 键盘输入模块电路2LED显示模块谈到LED显示,首先要解决LED的驱动问题。用单片机驱动LED数码管有很多方法,按显示方

27、式分,有静态显示和 动态(扫描)显示,按译码方式可分为硬件译码和软件译码。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊。静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。硬件译码(就是显示的段码)完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,硬件简单,

28、接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。比较常用的显示驱动芯片有:74LS164,CD4094+ULN2003(2803),74HC595+ULN2003(2803) , TPIC6B595,AMT9095B, AMT9595等。本设计中用74LS164来驱动LED显示,74LS164是8位移位寄存器(串行输入,并行输出),其管脚排列如图2-5所示。图2-5 74LS164的管脚排列注:CLK 时钟输入端 CLR 同步清除输入端(低电平有效) A,B 串行数据输入端QAQH 输出端工作原理:当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。串行数据输入端(A

29、,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下QA为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定QA的状态。7段LED数码管是本设计的显示设备,下面对其结构与原理做一下简单介绍。7段LED数码管是单片机应用产品中常用的廉价输出设备,它是根据LED的发光原理,在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,常用的七段LED数码管的结构如图2-6所示。图2-6 LED 数码的管脚配置7段LED数码管的基本工作原理是:分别引出LED的电极,当LED导通时,相应的一个点或一个笔划发光,这

30、样就能显示各种字符。LED数码管根据LED的接法不同分为共阴和共阳两类,除了它们的硬件电路有差异外,编程方法也是不同的。将所有发光二极管的阳极连在一起,称为共阳接法,公共端com 接高电平,当某个字段的阴极接低电平时,对应的字段就点亮;而将所有发光二极管的阴极连在一起,称为共阴接法,公共端com 接低电平,当某个字段的阳极接高电平时,对应的字段就点亮。LED显示电路如图2-7所示。本设计中采用五个数码管进行静态显示,每个数码管用一个74LS164来驱动,前一个74LS164的QH与后一个74LS164的输入端相连,74LS164的输出端QAQH通过电阻连到数码管上。由于LED的电流通常较小,本

31、设计中在回路中接上限流电阻。控制数码管选通的信号为P1.2口,通过电阻、三极管与数码管的共阳极连接,P1.1口控制CLOCK脉冲信号。74LS164的CLR端都始终接高电平,A、B两输入端共同连接到P1.0口上。图2-7 LED显示电路图中加了一个PNP型的三极管来控制数码管的电源,是因为164没有数据锁存端,数据在传送过程中,对输出端来说是透明的。这样,数据在传送过程中,数码管上有闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,在数据传送过程中,关闭三极管使数码管不显示,数据传送完后立刻使三极管导通,这样就实现锁存功能。3串行通信模块检测仪与PC机通信采用RS-232串行接口。R

32、S-232是PC机与通信工业中应用最广泛的一种串行接口,它被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37k,所以RS-232适合本地设备之间的通信。RS-232是用正负电压来表示逻辑状态的,而TTL是用高低电平来表示逻辑状态的,因此,为了能够同PC机接口或终端的TTL器件连接,必须在RS-232与TTL电平之间进行电平

33、转换。在本设计中运用MAX232完成电平转换工作。MAX232产品是由德州仪器公司(TI)推出的一款兼容RS-232标准的芯片。该器件包含2个驱动器、2个接收器和一个电压发生器电路,提供TIA/EIA-232-F电平。MAX232的引脚如图2-8所示,该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5V-TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。其工作温度范围为0至70,适用于各种EIA-232C和V.28/V.24的通信接口。MAX232芯片内部有一个电压变换器,可以把输入的+5V电源电压变换成为

34、RS-232所需的电压。所以,采用此芯片的串行通信系统只需单一的+5V电源就可以了。图2-8 MAX232的引脚图通信模块电路如图2-9所示:图 2-9 通信模块电路4电源模块电路能否给单片机提供稳定可靠的电源是影响单片机工作的一个重要因素,由于本设计对检测的精度要求较高,因此需要设计一个稳定可靠的电源以使单片机正常稳定的工作。电源模块电路如图2-10所示。图 2-10 电源模块电路该电源电路的设计应用到了MC7805,MC7805是一个三端正5V稳压器(1A),三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压

35、电源中应用最为广泛的一种单片式集成稳压器件。MC7805能提供固定的输出电压,应用范围广,内含过流、过热和过载保护电路。带散热片时,输出电流可达 1A。虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。图2-10所示电路为输出电压+5V的稳压电源,图中C1、C3为滤波电容,C2、C4为防止自激电容。电路的工作原理为:220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1D4和滤波电容C1的整流和滤波,在固定式三端稳压器LM7805的IN和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过LM7805的稳

36、压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压,为单片机的正常工作提供可靠的保证。第3章 温湿度检测仪的软件设计3.1 主程序模块的设计主程序是系统控制和管理的核心,主要完成在系统上电后进行定时和中断处理操作的初始化。它的内容包括主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等。主程序设计流程如图3-1所示。图3-1 主程序流程图主程序初始化的具体内容包括时间中断的初始化、外部中断源的初始化、单片机I/O口初始化以及LED初始化等。3.2 温湿度检测模块的程序设计3.2.1 温度检测模块的程序设计该检测仪的使用的温度传感器AD5

37、90是一种由环境温度决定的恒流输出器件,其输出特性为:I=Ktt (1-1)式中I为AD590输出的电流信号,单位为1uA。t为绝对温度,单位为K。Kt为转换系数,单位为1uA/K。AD590输出电流信号经电阻R转换为电压信号,电阻两端电压为:VR=KtRt (1-2)VR从ADC口输入到单片机中,进行A/D转换,变为数字量VT。温度检测模块程序如图3-2,首先读取测量电路的温度电压VT,并将这一电压信号作为温度转换参数,进行电压温度转换,具体转换方法为:把经过A/D所得的数字电压值VT作如下计算T=KT(VT-V0) (1-3)式中T为需要测量的环境实际温度值,参数V0为环境温度为0时A/D

38、转换的数字量电压值,参数KT为环境温度与A/D转换的数字量电压的转换系数:KT=1/(KtR15)。它们均作为常量存储在单片机的片内数据EEPROM中。由于V0、KT准确与否直接影响温度测量的精度,可通过以下方法进行校正:用其它高精度的测温仪测量环境温度T1,输入本仪表,单片机同时记录下相应的A/D转换的数字量V1。当环境温度从T1变化到T2时,重复以上过程,单片机同时记录下相应的A/D转换的数字量V2。为保证校准精度,环境温度应在25左右变化,并且变化的范围尽可能大一些。仪表的应用软件根据KT=(T1-T2)/(V1-V2)和V0=VT1-T1/KT计算出KT和V0的值,并存储在单片机的EE

39、PROM数据存储器中,既完成该仪表的温度测量精度的校正。图3-2温度检测模块程序流程图温度检测模块程序流程如图3-2所示,该模块程序最后将计算得到的温度值送入数据存储器,并调用LED显示程序将环境温度显示出来,然后返回主程序继续下面的工作。3.2.2 湿度检测模块的程序设计湿度测量电路由湿度传感器THS11和NE555构成的振荡电路组成。湿度传感器THS11的电容值随温度的变化导致振荡器的振荡频率发生变化,所以可以通过测量振荡器输出频率,再进行相应的转换可获得相对湿度值。实验得出振荡电路的输出频率(f)与环境温度(T)的关系曲线如图3-3所示:图3-3 振荡频率f与温度T的关系曲线由上图可知,

40、在环境相对湿度不变的条件下,温度和振荡频率呈近似的线性关系,可忽略其非线性误差对测量精度的影响。当环境中的温度相同,而相对湿度不同时,振荡器的频率差异比较大,且这种差异是非线性的。要准确地测量湿度,必须对振荡频率作温度补偿。对于不同的环境湿度,振荡频率的温度补偿系数也是不同的。研究表明,相对湿度为X%RH时振荡频率的温度补偿系数(fRHX)与相对湿度为0%RH时振荡频率的温度补偿系数(fRH0)具有如下关系:fRHX=fRH0(fRH/fRH0) (1-4)式中fRH0的值为297/65(Hz/),fRH0是温度为0时相对湿度为0%RH的振荡频率,值为7588(Hz),fRHX是温度为0时相对

41、湿度为X%RH的振荡频率。我们通过实验得出了相对湿度(RH)与湿度传感电路输出的振荡频率(f)在环境温度为25时的大致关系曲线,如图3-4所示:图3-4 25时相对湿度RH与振荡率f的关系曲线表3-1给出了该关系曲线上的10个点的数据。可以看出,相对湿度在20%RH80%RH范围内线性度较好,两端的线性较差。表3-1 在25环境温度时相对湿度(RH)与振荡频率(f)的关系由图3-4知:当相对湿度值升高时,振荡器输出频率会随之降低,而且它们之间的这种变化是非线性的。如果将检测到的频率直接处理显示的话,得到的结果将与环境中的实际湿度值存在较大差别,无法达到性能指标中所要求的测量精度和分辨力。要实现

42、高精度地测量相对湿度,就应当采用软件的方法进行温度补偿和线性化处理。湿度检测模块程序需要将来自湿度传感电路的频率f转换为相对湿度。由于振荡频率随环境相对湿度变化是非线性的,因此需要对其进行线性化处理。而在不同温度条件下,在同一测量场合测得的湿度也存在差异较大差异,所以还需要对测量频率进行温度补偿。具体流程如图3-5所示。在湿度检测模块子程序的开始,先读取经过A/D转换的相对湿度的振荡频率fo,并进行存储。然后读取温湿度检测仪测得的环境温度值T,根据温度补偿系数计算出应该补偿的频率,补偿后的频率值为:f=fo+(25-T)fRH0(fRH/fRH0)(1-5)图3-5 湿度检测模块程序流程图接下

43、来要对频率进行线性化处理,具体做法为:首先根据实验得出的相对湿度与振荡频率关系曲线,将测量范围内的湿度RH划分为N等份,每份为RH,每个湿度分隔点对应的频率值设为fn,将n与fn组成的表格存入单片机。程序先从存储器中读取温度补偿过的频率f、RH和n,分别存入不同变量,然后对比较次数n赋初值(n=0),从单片机中读取与n相对应的频率f0,再将温度补偿过振荡频率f与从表中取得的表频率f0作减法运算,并检查结果是否大于0。如果差值大于0,则说明测得频率超出检测仪的测量范围,转入报告出错子程序。若差值小于0,则将n值加1(此时n=1),继续拿f与f1作比较。如果(f-f1)的值大于0,说明实测频率在湿

44、度-频率曲线的第一段内,这时的环境湿度值为:RH=RH(f-f0)/(f1-f0)。若结果仍小于0,则说明振荡频率f不在该段,重复以上操作,直至比较结果大于零。经推导可得出相对湿度的计算公式: (1-6)线性化处理子程序流程如图3-6所示。图3-6线性化处理程序流程图3.3 键盘扫描和LED显示模块的程序设计3.3.1 键盘扫描部分的程序设计键盘扫描子程序流程图如图3-7所示,首先进行开机自动扫描,检测是否有按键按下,没有键按下则继续扫描,有键按下则扫描出对应的键值,再由键值跳转到相应的子程序。图3-7 键盘扫描子程序流程图键盘扫描子程序如下:SAOMIAO: MOV A,R1 MOV R2,

45、#08HXS: JB ACC.0,XS1 CLR P1.0 AJMP CLKXS1: SETB P1.0CLK: CLR P1.1 NOP SETB P1.1 RR A DJNZ R2,XSRET当然,键盘扫描时,还要通过延时消去键盘抖动。延时定时器的延迟时间等于初值乘上判断间隔时间,通过确定延时定时器的延迟时间达到去除键盘抖动,消除其对正常按键的影响。一般延时时间在30ms50ms之间,在设计中确定具体的延迟时间。键盘扫描去抖动和键值扫描的核心程序如下:ScanKey: SETB KeyRow /*键盘的行置1 MOV Data_OutputBuf, #00H /*键盘的列置0,扫描初始状态

46、 LCALL Data_Output /*调用显示子程序,将扫描初始值送出 MOV A, P1 /*将P1口状态读入到单片机 JB ACC.3,NoKey /*判断是否有键按下,有则继续执行,没有则返回 LCALL DELAY10ms /*调用延时程序消除键盘抖动,一般10 ms足够 MOV A,P1 JB ACC.3,NoKey MOV ArrangeNum,#00H /*列设定初始值 MOV A,#07FH /*列扫描的初始值GetKey1: /*列扫描子程序 SETB KeyRow MOV R5, A /*列扫描的初始值,暂时存在R5中 MOV Data_OutputBuf, A LCA

47、LL Data_Output MOV A, P1 JNB ACC.3,GetKeyValue MOV A,R5 RR A /*列扫描值右移,实现键盘的列扫描 INC ArrangeNum /*列号加1 JB ACC.7,GetKey1 LJMP NoKey 3.3.2 LED显示部分的程序设计本设计程序开始执行时,先扫描键盘,直到有按键按下时,确定进行温度检测还是湿度检测,然后根据键值跳转到相应的子程序来进行检测,最后将检测结果进行LED显示。显示部分的子程序如下:DISPLAY: LJMP JIANZHISAOMIAO: /*将要待显示的数送到74LS164中并通过数码管显示 MOV A,R

48、1 MOV R2,#08HXS: JB ACC.0,XS1 CLR P1.0 AJMP CLKXS1: SETB P1.0CLK: CLR P1.1 NOP SETB P1.1 RR A DJNZ R2, XSRETJIANZHI: MOV R1,#0EEH /*0的BCD码 LCALL SAOMIAO MOV R1,#028H /*1的BCD码 LCALL SAOMIAO MOV R1,#0CDH /*2的BCD码 LCALL SAOMIAO MOV R1,#06DH /*3的BCD码 LCALL SAOMIAO MOV R1,#02BH /*4的BCD码 LCALL SAOMIAO结论我们

49、设计的温湿度检测仪结构简单,适用于多种场合的温湿度实时检测。由于采用了测量范围广、精度高、响应速度快的电容式湿度传感器来进行湿度采样,使用温度补偿、线性化处理的方法提高检测精度,因此该检测仪基本上达到了技术指标中对温湿度测量精度和范围的要求。在硬件设计时,我们还从实际出发,将电路板预留一些位置,以便以后对仪器进行功能扩展。在这次设计中我们也遇到不少问题,这些问题包括硬件方面的、软件方面的以及软硬件联合调试方面的,还有一些问题是由于粗心造成的。我一直以认真负责的心态对待这些问题,在自己的努力以及同学和老师的帮助下,这些问题都得到了圆满解决。由于这次设计的时间较短,该检测仪的主要功能已经实现,能基

50、本实现环境中的温湿度检测,但还存在一些问题,如温湿度检测精度还比较低,温度显示还有较大波动等。要达到实用的目的,还需要进一步的研究设计。此温湿度检测仪还可进一步进行功能扩展,如加上一个上下限报警电路实现报警功能,还可通过相关软件设置实现温湿度同时显示。参考文献1 赵新民. 智能仪器原理及设计. 哈尔滨: 哈尔滨工业大学出版社, 19892 华成英, 童诗白. 模拟电子技术基础第三版. 北京: 高等教育出版社, 2004.4. 3 谢光忠、蒋亚东等. 温湿度智能数据采集控制系统的研制传感器技术 2000,19(4):29-334 戴梅萼, 史嘉. 微型计算机技术及应用. 北京: 清华大学出版社,

51、 19955 丁元杰. 单片微机原理及应用. 北京: 机械工业出版社, 19936 何立民. MCS-51系列单片机应用设计、系统配置与接口技术. 20007 彭喜源, 谭晓均, 张毅刚. MCS-51单片机应用设计. 20028 陈宝江, 翟涌, 张幽彤. MCS单片机应用系统实用指南. 19999 胡健. 单片机原理及接口技术实践教程. 北京: 机械工业出版社, 200410 喻评, 郭文川. 单片机原理与接口技术. 北京: 化学工业出版社, 200611 李刚. 51系列单片机系统设计与应用技巧. 北京: 北京航空航天大学出版社, 200412 杨景常. 精密计量环境温度、相对湿度监测记

52、录仪的研制J. 沈阳:仪表技术与传感器, 200313 何立民. 单片机中级教程原理与应用. 北京: 北京航空航天大学出版社, 199014 沙占友. 单片机外围电路设计. 北京: 电子工业出版社, 200315 刘君华. 现代检测技术与测试系统设计M. 西安: 西安交通大学出版社, 200016 余永权. MCS-51系列单片机应用技术. 北京: 北京航空航天出版社, 200217 阎石. 数字电子技术基础. 北京: 高等教育出版社, 200218 刘同法, 陈忠平. 单片机基础与最小系统实践. 西安: 西安电子科技大学出版社, 2007.19 涂玲英, 肖俊武, 张宇. 智能型温湿度测控仪

53、研究与实践. 湖北工学院学报, 200220 蔡美琴. MCS一51系列单片机系统及其应用. 高等教育出版社, 199221 马忠梅. 单片机的C语言应用程序设计. 北京航空航天大学出版社, 199722 潘永雄. 新编单片机原理与应用. 西安西安电子科技大学出版社, 附录温湿度检测仪的电路原理图外文资料原文The Introduction of AT89C51Features:Compatible with MCS-51TMProducts4K Bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Eras

54、e CyclesFully Static Operation: 0 Hz to 24 MHzThree-Level Program Memory Lock128 x 8-Bit Internal RAM32 Programmable I/O LinesTwo 16-Bit Timer/CountersSix Interrupt SourcesProgrammable Serial ChannelLow Power Idle and Power Down ModesDescription:The AT89C51 is a low-power, high-performance CMOS 8-bi

55、t microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM). The device is manufactured using Atmels high density nonvolatile memory technology and is compatible with the industry standard MCS-51TM instruction set and pinout. The on-chip Flash allows the program memory

56、to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.The AT

57、89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry. In addition, the AT89C51 is designed with static logic for

58、operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power Down Mode saves the RAM contents but freezes the oscillator disabling all

59、other chip functions until the next hardware reset.Pin Description:VccSupply voltage.GND Ground.Port 0:Port 0 is an 8-bit open drain bidirectional I/O port. As an output port each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. Port 0

60、 may also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode P0 has internal pull-ups.Port 0 also receives the code bytes during Flash programming, and outputs the code bytes during program verification. External pull-ups are required during program verification.Port 1:Port 1 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!