基于89C52的数字温湿度检测系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
设计题目:粮库温湿度网络监控系统 系 别:电气工程与自动化系 专 业:自动化 班 级:B070301 日 期:2010 年 5 月 25 日
(3)温度变换由设计决定的 SHT71 温度传感器的线性非常好,故可用下列公式将温度数 字输出转化成实际温度值: 温度=d1+d2*SOT, 当电源电压为 5V、温度传感器的分辨率为 14 位时,d1=-40, d2=0.01;12 位时, d1=-40,d2=0.04
2、2网络实现
检测网络由 SHT71 传感器、AT89C52 单片机、上位机组成。如下图 1 所示:
4、状态寄存器操作:
图 4 通讯复位时序
图 5 状态寄存器写 图 6 状态寄存器读
图 7 测量时序: TS=传输开始;MSB=高有效字节,LSB=低有效字节,LSb=低有效位 5、输出信号转换: 测量数据处理为了将 SHT71 输出的数字量转换成实际物理量需进行相应的数据处理。 (1) 湿度变换 SHT71 的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获 取准确数据,可按如下公式修正湿度值。 RHlinear=c1+c2·SORH+c3·SORH2 式中 SORH 为传感器相对湿度测量值,系数取值如下: 12 位 SORH :c1=-4 c2=0.0405 c3=-2.8*10-6 8 位 SORH: c1=-4 c2=0.648 c3=-7.2*10-4
5
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
(2)温度补偿上述湿度计算公式是按环境温度为 25℃进行计算的,而实际的测量温度则 在一定范围内变化,故只考虑温度变化系数即可。 按如下公式对环境温度进行补偿。 RH true=(T℃-25)·(t1+t2·SORH)+RHlinear 当 SORH 为 12 位时 t1=0.01;t2=0.00008,当 SORH 为 8 位时,t2=0.00128
图1 本系统采用 RS-485 总线组网,上位机通过标准串行接口经 RS-232/RS-485 转换器 将 RS232 标电平转换为 RS-485 标准电平与下位机通信;在下位机,SN75176 将 RS-485 标准电平转换为 TTL 电平接入处理器的异步串行通信口 UART),实现 RS-485 网络的半 双工通信。单片机在未接到上位机指令时,处于休眠状态;当接到指令时,启动测量,
由于 AT89C52 不具备 I2C 总线接口,故使用单片机通用 I/O 口线来虚拟 I2C 总线,利用 P3.0 来虚拟时钟线,利用 P3.1 口线来虚拟数据线 DATA,并在 DATA 端接入一只 10K 的上拉电 阻,同时在 VDD 及 GND 端接入一只 0.1 f 的去耦电容。
第三章 软件设计
AT89C52、SHT71 和上位机 PC 为核心设计了检测网络,并对硬件和
软件做了简单说明。 关键字:SHT71,AT89C52 单片机,传感器网络。
第一章 绪论
1、1 选题背景
防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要 指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行, 首要问题是加强仓库内温度与湿度的监测工作。但传统的方法是用与湿度表、毛发湿度 表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度 要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测 试的温度及湿度误差大,随机性大。பைடு நூலகம்此我们需要一种造价低廉、使用方便且测量准确 的温湿度测量仪。
P3.4/T0 P3.5/T1 P3.6/W R P3.7/RD
10 11 12 13 14 15 16 17
R3
10k
U2
1 4
SCK DATA
SHT71
> 80.0 27.0
%RH 癈
图 2 温湿度采集子电路 硬件接口电路这里以 AT89C52 单片机为例给出 SHT71 与单片机的接口电路如图 2 所示。
3、2 SHT71程序
//头文件
#include <reg52.h>
#include <intrins.h>
//测量命令
#define TEMPERATURE 0x03
#define HUMINITY 0x05
//定义 SHT71 与单片机的通信引脚
sbit SCL = P3^0; //时钟线
sbit SDA = P3^1; //数据线
(3)温湿度测量时序当发出了温(湿)度测量命令后,控制器就要等到测量完成。使 用 8/12/14 位的分辨率测量分别需要大约 11/55/210 毫秒。为表明测量完成,SHT71 会使数 据线为低,此时控制器必须重新启动 SCK。然后传送两字节测量数据与 1 字节 CRC 校验和。 控制器必须通过使 DATA 为低来确认每一字节,所有的量中从右算 MSB 列于第一位。通讯 在确认 CRC 数据位后停止。如果没有用 CRC-8 校验和,则控制器就会在测量数据 LSB 后, 保持 ACK 为高来停止通讯,SHT71 在测量和通讯完成之后会自动返回睡眠模式。需要注意 的是,为使 SHT71 温升低于 0.1℃,则此时工作频率不能大于 15%(如:12 位精确度时,每 秒最多进行 3 次测量)。
void SHT_reset(void);
void SHT_start();
void SHT_measurement(unsigned char measure);
void UART_ini(void);
void USART_RX_interrupt(void);
void UART_Send_Byte(unsigned char Data);
3、1主程序流程图
主程序流程图如下,图 3所示:
7
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
开始
初始化
写或读? 读 写
写入MCU
应答检查
开启MCU
19 XTAL1 18 XTAL2
9 RST
R1
200R
C3
22u
R2
1k
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C52
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
3、SHT71 的时序与指令:
图 1 SHT71 引脚
图 2 时序图
3
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
表 1 SHT71 指令集
(1)启动 SHT71 选择供电电压后将传感器通电,上电速率不能低于 1V/ms。通电后传感器需要 11ms
⑴温湿度传感器、信号放大调理、A/D 转换、I2C 总线接口全部集成于一个芯片上 (CMOSens 技术); ⑵全校准相对湿度及温度值输出; ⑶工业标准 I2C 总线数字输出接口; ⑷具有露点值计算输出功能; ⑸免外围元件; ⑹卓越的长期稳定性; ⑺湿度值输出分辨率为 14 位,温度值输出分辨率为 12 位,可编程降至 12 位和 8 位; ⑻可靠的 CRC 数据传输校验功能; ⑼片内装载的校准系数,保证 100%的互换性。 ⑽电源电压:2.4V~5.5V; ⑾电流消耗:测量 550 A,平均 28 A,睡眠 0.3 A。 2、SHT71 的引脚说明。 ⑴SCK:串行时钟输入; ⑵VDD:2.4~5.5V 电源端; ⑶GND:接地端; ⑷DATA:双向串行数据线。
(4)通讯复位 如果与传感器通讯中断,可通过下列信号时序复位:当 DATA 保持高电平时,触发 SCK 时 钟 9 次或更多。接着发送一个“传输启动”时序。通讯复位时序如下:
4
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
6
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
并将测量数据转换后送给上位机。
2、3温湿度采集子电路
C1
30p
X1
C2
CRYSTAL
VCC 30p
U1
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
开始温湿 度检测
送入PC
应答检查
PC处理 数据
是否过限? 是
启动报 警
查找MCU
图 3主程序流程图
报警
等待PC 命令
置位报警标志
报警持续计数器置初值
启动报警
返回
图 4 报警程序流程图
8
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
void Delay(unsigned char time);
//------------------------------
//
主函数
//------------------------------
1、2 设计过程及工艺要求
一、基本功能 ~ 检测温度、湿度 ~ 显示温度、湿度 ~ 过限报警 二、主要技术参数 ~ 温度检测范围 : ~ 测量精度 : ~ 湿度检测范围 : ~ 检测精度 : ~ 显示方式 : ~ 报警方式 :
-30℃-+50℃
± 1℃
10%-100%RH
± 1%RH
温度:四位显示
湿度:四位显示
1
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
基于 AT89C52的粮库温湿度网络监控系统
摘要
本文介绍了数字温湿度传感器 SHT71 的网络设计,以单片机
三极管驱动的蜂鸣音报警
第二章 硬件设计
2、1传感器的选择
我们采用传感器 SHT71,其功能如下。 1.、SHT71 的性能特点:
2
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
//函数预定义
unsigned char MCU_receive_byte(void);
void Sent_command(unsigned char command);
void MCU_receive_word(void);
void SHT_ACK();
void SHT_end(void);
void SHT_ini(void);
进入休眠状态,在此之前不要发送任何指令。 (2)发送指令
用一组“启动传输”时序,来完成数据传输的初始化。它包括:当 SCK 时钟高电 平时 DATA 翻转为低电平,紧接着 SCK 变为低电平,随后是在 SCK 时钟高电平时 DATA 翻转为高电平。见图 2.。
图 3 “启动传输”时序 SHT71 会以下述方式表示已正确接收到指令:在第 8 个 SCK 时钟的下降沿之后将 DATA 下 拉为低电平。在第 9 个 SCK 时钟的下降沿到来之后,释放 DATA。
相关文档
最新文档