中南林业科技大学毕业论文RS485数字温湿度传感器的设计与实现.docx
《中南林业科技大学毕业论文RS485数字温湿度传感器的设计与实现.docx》由会员分享,可在线阅读,更多相关《中南林业科技大学毕业论文RS485数字温湿度传感器的设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
中南林业科技大学毕业论文RS485数字温湿度传感器的设计与实现
毕业设计说明书
学生姓名:
XX学号:
XXXXXXXXX
学 院:
计算机与信息工程学院
专业年级:
XX级通信工程
题目:
RS485数字温湿度传感器的设计与实现
指导教师:
朱江章(副教授)
评阅教师:
徐卓农(副教授)
2016年5月
RS485数字温湿度传感器的设计与实现
摘要:
本文采用51系列单片机AT89C51和DHT90设计了一种RS485数字温湿度传感器,该系统设计主要包含硬件系统设计和软件系统设计。
硬件系统主要由时钟发生电路、单片机控制电路、LCD显示电路、声光报警电路、键盘控制电路和温湿度检测电路等部分组成。
该传感器主要采用AT89C51来进行控制,采用C语言进行软件设计,以Proteus和Keil为主要设计工具。
经仿真调试表明,该系统可以设定温湿度的标准值并显示当前环境的温湿度;可根据实际需求使用按键调整温湿度的标准值;当前环境的温湿度超过设定的标准值时,系统会发出声光报警信号。
该数字温湿度传感器具有控制简单,稳定性高,性价比高,安全实用等特点,具有一定的推广价值。
关键词:
AT89C51;DHT90;温湿度传感器;电路
ThedesignandimplementationofadigitaltemperatureandhumiditysensorbasedontheRS485
Abstract:
ThispaperdesignedadigitaltemperatureandhumiditysensorbasedontheRS485,thedigitaltemperatureandhumiditysensordesignismainlyincludeshardwaresystemandsoftwaresystemdesign.Thehardwaresystemismainlycomposedoftheclockgeneratingcircuit,singlechipmicrocomputercontrolcircuit,LCDdisplaycircuit,soundandlightalarmcircuit,keyboardcontrolcircuitandtemperatureandhumiditydetectioncircuitandotherparts.ThesensorismainlyAT89C51tocontrol,usingClanguageforsoftwaredesign,andProteus,Keilasthemaindesigntool.Thesimulationdebuggingshowedthatthesystemcanbesettostandardvaluesoftemperatureandhumidity,anddisplaysthecurrenttemperatureandhumidityoftheenvironment;usingstandardbuttonstoadjustthetemperatureandhumidityvaluesbasedonactualdemand;thecurrentstandardvalueoftheenvironmentaltemperatureandhumidityexceedsasettime,thesystemItwillbeaudiblealarmsignal.Thesensorissimple,highstability,highcostperformance,safeandpracticalcharacteristics,hasacertainpopularizationvalue.
KeyWords:
AT89C51;DHT90;TemperatureandHumiditySensor;Circuit
1.2数字温湿度传感器比较与特性分析
1.3论文结构与篇章安排
1.引言
环境监测与控制在工业、农业、国防等行业有着广泛的应用。
由于应用的场合不同监测对象的不同,其系统设计也是千差万别。
在实际生活中,温度和湿度是智能检测系统中两个重要分析指标。
智能化温度和湿度检测系统通常采用最小单片机系统来实现温湿度的全程自动检测与控制。
在温湿度自动检测与控制中,其最重要也最基本的就是温湿度数字信号源。
基于数字信号分析的单片机系统,数字化温湿度传感就成为了一种必然。
实际中的温湿度探头往往是基于物质材料特性来模拟反映变化的。
如此以来,必须将模拟量数字化转换成为现代数字信号。
随着数字自动化程度的进一步深化提高,多点监测集中控制在工业生产中越来越受到受到广泛关注与应用。
多点监测集中控制最典型的采用RS485现场总线方式实现单主机多从机的分布式系统。
本课题基于RS485现场总线传输方式进行温湿度设计与实现。
1.1数字温湿度传感器性能比较与特性分析
1.2RS485现场总线比较与特性分析
1.3论文结构与篇章安排
课题将从以下方面来组织论文:
1)利用单片机实现当前环境温湿度的实时采集、实时显示;2)采用RS485总线方式实现单主机多从机的传感数据采集与显示;将传感器信息送给单片机进行显示。
3)系统将收到的传感采样数据与设定的阈值相比较,通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警。
具体的篇章安排如下:
2.ADC基本原理及实现方法
2.1ADC基本原理
2.2ADC软硬件设计与实现
3.
数字温湿度传感监测演示系统设计
3.1系统总体框图设计及模块说明
3.2系统硬件电路设计
3.2,1温湿度数字检测电路设计
3.2.2最小单片机系统选型与设计
3.2.3外围键盘输入与LCD显示电路设计
3.2.4声光报警电路设计
3.3系统软件程序设计
3.3.1软件功能模块总体设计
3.3.2RS485现场总线数据读写程序设计
3.3.3按键输入数据处理与LCD显示程序设计
依据功能设定,本系统主要分为以下三个模块:
(1)温湿度采集模块
(2)数据处理模块
(3)用户交互模块
其中温湿度采集模块使用的是DHT90数字温湿度传感器,它使用单总线方式,接口简单,而且无需另外校准。
分辨率为8bit,完全能够满足日常环境温湿度的检测要求。
数据处理模块使用的是AT89C51单片机,其完成温湿度数据的采集、运算和逻辑控制的功能。
用户交互模块主要由按键、1602点阵液晶、蜂鸣器和控制器构成。
其中按键用于用户设定温湿度准确值,1602用于数据显示,蜂鸣器用于提示用户,控制器用于调节控制不符合要求的温、湿度。
按照系统的设计功能所要求的,温湿度传感器系统原理图如下图1所示:
复位电路
RS485电路
AT89C51
电源
显示电路
报警电路
按键电路
(a)系统上位机原理图
(b)
(c)
AT89C51
温湿度检测电路
复位电路
RS485电路
电源
(b)系统下位机原理图
图1系统总体框图
3.硬件电路设计
3.1单片机最小系统
单片机最小系统是单片机应用系统的核心,其他的外围电路都是在单片机最小系统的基础上实现的。
单片机最小系统是由单片机、复位电路、时钟电路、电源和地端组成,一般情况下,单片机系统采用外接石英晶体与内部运放组成时钟振荡器作为系统时钟源,而在多机系统中,单片机只作为一个功能模块使用,为节省硬件和统一系统的时钟信号,常采用外时钟源。
单片机最小系统是单片机控制电路的核心[13]。
在整个系统中,单片机控制电路是整个系统的核心,负责对光电检测电路采集到光信号进行处理和加工,并按照之前设定好的指令进行执行、运算,并将结果传送给相应的执行电路。
图2单片机最小系统电路
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁的存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器,为很多的嵌入式控制系统提供了一种灵活性高并且价廉的方案。
主要特性:
CPU与MCS-51兼容;全静态工作:
0Hz-24KHz;4K字节的可编程FLASH存储器;三级的程序存储器保密锁定锁;128×8位的内部RAM;32条可编程的I/O线;两个16位计数器/定时器;中断源有6个;可进行编程的串行通道;用于低功耗的掉电和闲置模式;片内存在振荡器和时钟电路。
管脚介绍:
VCC:
供电电压。
GND:
接地。
图3AT89C51引脚图
P0口:
8位,漏级开路的双向I/O口。
P0口可驱动8个LS型TTL负载。
P0可用于外部ROM,它可以被定义为A/D的第八位。
在FIASH编程时,原码输入口为P0口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口可驱动4个LS型TTL负载。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,可驱动4个LS型TTL负载,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其SFR的内容。
FLASH编程和校验时,接收高八位地址信号和控制信号是P2口。
P3口:
8位,准双向I/O口,具有内部上拉电阻。
可驱动4个LS型TTL负载。
当作为通用I/O口输入时,应先向端口锁存器写入“1”。
作为输入接口,外部下拉为低电平,由于上拉的缘故P3口将输出电流(ILL)。
P3口也可作为AT89C51的第二功能口,如表1所示。
在编程校验和闪烁编程时,P3口可以同时为其接收控制信号。
RST:
复位信号输入端。
在此引脚加上持续时间大于两个机器周期的高电平,就可以使单片机复位。
表1P3口的第二功能定义
引脚
第二功能
说明
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读选通输出
ALE/PROG:
访问外部的存储器时,经地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部ROM的读选通信号。
在由外部ROM取指令的期间,每个机器周期两次/PSEN有效。
这两次有效的/PSEN信号将会不出现,在访问外部ROM时。
/EA/VPP:
当/EA保持低电平时,只读取外部程序存储器中的内容,读取的地址范围为0000H-FFFFH,片内的4KBFlash程序存储器不起作用。
在加密方式1的时候,/EA的内部将被锁定为RESET;若此间内部的ROM,/EA端需要保持高电平。
在对片内Flash进行编程时,VPP引脚接入12V的编程电压。
XTAL1:
片内振荡器反向放大器和时钟发生器电路的输入端。
XTAL2:
片内振荡器反向放大器的输出端。
3.2键盘输入电路
本设计要求,各单位路灯能根据环境明暗变化,自动开关灯,因此需要加入光敏器件。
当周围太暗是,光敏传感器就要给出一个信号,相应的原件就会产生反应。
本设计要求,用户可以通过键盘按键输入电路设置温湿度的标准值。
当有人按键设置温湿度后,设置的数据会传送给主机。
通过RS485总线传送过来的温湿度传感器检测到的实际值在主机内与该数据进行比较,若超过该数据则会启动语音报警电路[14]。
图4感光电路
3.3显示电路
根据设计方案,加入液晶显示器——液晶1602。
液晶显示器与单片机连接,将单片机上的所接收到并处理的数据显示出来,实现人机交流的目的。
在本次设计中,就是运用了液晶显示器,来显示单片机所采集到的数据。
选择单片机系统中选择了液晶显示器作为输出器件的原因:
显示质量高:
阴极射线管显示器是要不断的进行刷新亮点,而液晶显示器则是恒定发光的,所以每一个点在收到信号后就一直保持那种色彩和亮度。
数字式的接口:
因为液晶显示器LCD1602是以数字的形式,这样就使和单片机最小系统的接口变得更加的简单和可靠,操作更加方便。
体积小、质量轻:
液晶显示器LCD1602是通过显示屏上的电极控制液晶分子状态来显示的,在质量上比相同显示面积的传统显示器要轻很多。
功耗低:
液晶显示器LCD1602的功耗主要消耗在内部的点击和驱动上,所以耗电量比一般的显示器要少很多。
图5液晶显示电路原理图
1602采用标准的16脚接口,其中引脚功能如下表示:
表2LCD1602的引脚功能
引脚号
符号
引脚功能
1
GND
电源地
2
VDD
+5V逻辑电源
3
VEE
液晶驱动电源(用于调节对比度)
4
RS
寄存器选择(1-数据寄存器,0-命令/状态寄存器)
5
R//W
读/写操作选择(1-读,0-写)
6
E
使能(下降沿触发)
7~14
DB0~DB7
数据总线,与单片机的数据总线相连,三态
15
E1
背光电源,通常为+5V
16
E2
背光电源地
3.4时钟电路
DS1302可由Vcc1或Vcc2两者中的较大者供电。
若是Vcc2给DS1302供电则Vcc2须大于Vcc1+0.2V时,。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz的晶振。
RST是复位/片选线,启动所有的数据传送时,需把RST输入驱动置高电平。
RST输入有两种功能:
首先,RST接通控制逻辑,允许命令序列/地址送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O脚变为高阻态。
上电运行时,在Vcc大于等于2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入/输出端(双向)。
SCLK始终是输入端。
图6时钟电路
芯片DS1302是芯片DS1202的升级产品,临时性想存放的数据可放于其内部一个31×8位的RAM寄存器。
它可以兼容DS1202,但是增加了后背电源/主电源的双电源引脚,能同时对后背电源提供涓细电流的充电。
芯片DS1302有12个寄存器,其中7个寄存器与日历、时钟相关。
此外,还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器和与ARM相关的寄存器等。
引脚功能及结构:
DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302有Vcc1或者Vcc2中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
RST是复位/片选线,通过RST输入驱动置高电平来启动所有数据的传送。
X1和X2是震荡源,外接32.768KHz晶振。
SCLK始终是输入端。
实时时钟具有能计算2100年之前的秒分时日日期星期月年的能力还有闰年调整的能力。
图7DS1302封装
(1)串行I/O口方式使得管脚数量最少;
(2)31×8位暂存数据存储RAM;
(3)宽范围工作电压2.0V~5.5V;
(4)工作电流2.0V时,小于300nA;
(5)写/读RAM数据或时钟时有两种传送方式,单字节传送与多字节传送字符组方式;
(6)8脚DIP封装或可选的8脚SOIC封装根据表面装配;
(7)简单的3线接口;
(8)与TTL兼容Vcc=5V;
(9)可选择的工业级的温度范围为-40~+85;
(10)与DS1202兼容;
(11)在DS1202基础上增加的特性;
对Vcc1有可选择的涓流充电能力;双电源管可用于主电源和备份电源得供应;备份电源的的管脚可以由电池或者大容量的电容输入。
3.5温湿度检测电路
3.5.1温湿度传感器的概述
DHT9x是数字温湿度传感器系列中插针型的传感器。
此类型传感器把传感元件和信号处理集成起来,输出全标定的数字信号。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上与14位的A/D转换器以及串行接口电路实现无缝连接。
传感器采用专利的CMOS技术,确保产品具有极高的可靠性与卓越的长期稳定性。
因此,该产品具有品质卓越、响应超快、抗干扰能力强、性价比极高等优点。
传感器采用的是原装进口数字温湿度传感器芯片,引脚插针为标准2.54插针,使用时无需重新校准。
传感器直接与单片机相连,无需其他外部元件。
总之,极低的功耗、极高的性价比、卓越的品质等优点使其成为我们在选择温湿度传感器时的首选。
DHT90的基本特性如下:
测湿范围:
0~100%RH;
测温范围:
-40~123.8℃;
响应时间:
温度:
< 30s,湿度:
<8s;
分辨率:
温度:
0.01℃,湿度:
0.03%RH;
重复性:
温度:
0.1℃ 湿度:
0.1%RH;
测量精度:
温度:
±0.5℃湿度:
±4.5%RH;
安装方式:
2.54mm间距插针。
3.5.2传感器的接口说明
DHT90引脚结构如表3所示。
表3DHT90引脚结构
Pin
Name
Comment
1
SCK
时钟信号
2
VDD
电源
3
GND
地
4
DATA
数据输出
DHT90的供电电压为2.4-5.5V,建议供电电压为3.3V。
DHT90的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照I2C协议编址,但是,如果I2C总线上没有挂接别的元件,传感器可以连接到I2C总线上,但单片机必须按照传感器的协议工作。
SCK用于微处理器与DHT90之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并且仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平。
3.5.3硬件电路
设计采用数字式温湿度传感器DHT90。
它是数字式温度传感器,具有测量精度高,电路连接简单等特点,传感器仅需要一条数据线进行数据传输,另外SCK端用于微处理器与DHT90之间的通讯同步,设计中采用AT89C51的P3.7与DHT90的SCK相连,用P3.6与DATA端相连,Vcc接电源,Vss接地。
DHT90的硬件连接图如图8所示。
图8DHT90硬件连接图
3.6声光报警电路
当系统出现故障时,蜂鸣器会发出警报声,同时报警指示灯也会闪烁,电路如图所示,单片机的P3^0和P3^1用于控制声光报警:
图9声光报警电路
4.系统软件设计
4.1程序设计内容
软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功能的关键。
单片机编程常用的语言是C语言和汇编语言,最终都要转为IntelHEX格式或二进制格式(Binary)文件拷入单片机芯片内。
这里我们使用的是C语言进行编程设计。
本设计是以AT89S52单片机为核心,采用C语言编程。
它采用模块化设计,由主程序、读出温湿度子程序、按键处理子程序、LCD1602显示子程序、以及有关DHT90的程序等模块组成。
主程序如图10所示,初始化程序包括存储器初始化、时钟初始化、LCD液晶显示模块初始化等。
然后用户先在键盘上输入要设定的温度和湿度的最大值、最小值;传感器读取温湿度值,读取成功后,线性拟合数据,然后LCD显示数据,如果温湿度过限,则报警;如果数据在温湿度上下限范围内,则显示温湿度值。
图10程序流程图
4.2DHT90软件模块设计
4.2.1DHT90测量流程图
DHT90测量流程图如图11所示。
图11DHT90测量时序图
4.4.2传感器的电气特性
电气特性:
如能耗,低、高电平,输入、输出电压等,都取决于电源。
DHT90时序图如图12所示。
图12DHT90时序图
4.3按键流程图
按键检测过程中,流程如下图13所示:
图13按键流程图
4.4子程序模块设计
4.4.1LCD显示子程序
为简化硬件电路,通常将所有LED动态显示。
首先设置显示模式,即显示开、关,显示有无光标。
然后设置输入模式,画面可平移。
将LCD初始化,输入液晶字符的位置,并显示到液晶屏上。
以下是设置LCD液晶显示的部分子程序[15]:
voidshow_time()//液晶显示程序
{
DS1302_GetTime(&CurrentTime);//获取时钟芯片的时间数据
TimeToStr(&CurrentTime);//时间数据转换液晶字符
DateToStr(&CurrentTime);//日期数据转换液晶字符
GotoXY(0,1);
Print(CurrentTime.TimeString);//显示时间
GotoXY(0,0);
Print(CurrentT