当前位置: 首页 > 传感测量产品 > 工业传感器 > 温湿度传感器

类型分类:
科普知识
数据分类:
温湿度传感器

单片机温湿度传感器:单片机常用温度传感器

发布日期:2022-10-09 点击率:703


单片机<a title=温湿度传感器:单片机常用温度传感器 第1张" title="单片机温湿度传感器:单片机常用温度传感器 第1张-传感器知识网"/>

单片机温湿度传感器:单片机常用温度传感器

温度传感器DS18B20
1、DS18B20简介2、DS18B20的温度转换规则3、ROM & RAM操作指令(1)ROM指令表(2)RAM指令表
4、通过单线总线端口访问DS18B20过程(1)初始化(2)ROM操作指令(3)RAM操作指令(4)DS18b20的位写时序(5)DS18b20的位读时序
5、ds18b20.h + ds18b20.c

1、DS18B20简介
DS18B20本身就是一个温度传感器,只需要将DS18B20的数据引脚和单片机的一个I/O口接上,单片机通过与DS18B20进行通信,读出温度。

CT107D开发板相关模块电路图如下:

2、DS18B20的温度转换规则
DS18B20可以直接读出数字的温度数值。温度传感器的精度为用户可编程的9、10、11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认精度为12位。也就是。转换的精度由配置寄存器决定,如下:(R1R0出厂默认11)

DS18B20启动后保持低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令,启动温度转换,即。转换完以后,产生的温度数据以两个字节的形式被存储到 高速暂存器 的温度寄存器中(),DS18b20继续保持等待状态。

DS18B20的温度数据格式如下,转化后得到12位数据,存储在DS18B20的两个8位的RAM中。MSB里面存储的是高字节,LSB里面存储的是低字节。 高字节的前5位是符号位,如果测得的温度大于0,这5位为‘0’,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为‘1’,测到的数值需要先减1再取反再乘以0.0625即可得到实际温度。

温度/数据关系转换表如下:

3、ROM & RAM操作指令
(1)ROM指令表
指令约定代码功能Read ROM33H读DS18B20温度传感器ROM的编码,即64位地址Match ROM55H后跟64位ROM序列,让总线控制器在多点总线上匹配某一特定的DS18B20。匹配后的从机才能响应后续命令,其余不匹配的从机等待复位脉冲。总线上有单个或多个器件时都可使用该命令。Skip ROMCCH当只有一个从机时,忽略64位ROM地址,直接向DS18B20发出温度转换命令。Search ROMF0H用于确定挂在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件做准备。Alarm ROMECH执行后,温度超过上限或下限的片子做出响应。
当我们只挂了一个DS18B20时,只需要写一条关于ROM的指令,即。

(2)RAM指令表
指令约定代码功能启动温度转换(Convert T)44H启动DS18B20进行温度转换,从转换到获取温度的时间取决于DS18B20的精度,12位转换最长750ms,结果存入9字节RAM。读暂存器BEH读9字节RAM的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,后面紧跟着传送两字节数据复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中重调E2PROMB8H将EEPROM内容恢复到RAM中的3、4字节读供电方式B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电时DS18B20发送“1”。
4、通过单线总线端口访问DS18B20过程
(1)初始化
类似于I2C的寻址,1-Wire总线开始也需要检测这条总线上是否存在DS18B20这个器件。如果存在,总线会根据时序要求返回一个低电平;如果不存在,则不返回,即总线保持高电平。该过程称为检测存在脉冲。

获取存在脉冲有两个作用:①检测是否存在DS18B20 ②通过这个过程通知DS18B20做准备,单片机要对它进行操作。

检测存在脉冲的时序图如下:

整个过程描述如下:①单片机拉低这个引脚,持续480~960us (以持续500us为例) ②单片机释放总线,即拉高电平。 ③15 ~60us后,如果DS18B20这个器件存在,就会主动拉低这个引脚,返回一个低脉冲(为了确保读到这个脉冲,选择延时60us,但不能超过75us)④持续60 ~240us后,DS18B20释放总线,I0端口被上拉电阻拉高。

对应的程序如下:

注:需要说明的是,DS18B20对时序的要求非常严格,所以在开始对某一位操作前要先关闭中断,防止中途受到干扰。但是位与位之间的间隔是可以无穷大的,完全可以在完成一位的操作之后,去干别的事情,结束之后再回来操作下一位。

(2)ROM操作指令
先只学习一条总线上只接一个器件的情况,此时只需要直接跳过ROM,不进行ROM检测。用到的语句如下:

(3)RAM操作指令
常用到的两条如下:

(4)DS18b20的位写时序
DS18b20的位写入时序:

过程描述如下:在给DS18b20写数据之前,单片机要先把引脚拉低,持续一段时间(程序中是两个_nop_),而后DS18b20会在60秒之内读完这位数据。然后释放总线(拉高引脚)

代码如下:

(5)DS18b20的位读时序
DS18b20的位读时序图如下:

过程描述如下:在读取DS18B20数据之前,单片机首先要拉低这个引脚,并且至少保持1us。而后释放这个引脚(拉高电平),尽快读取。从拉低这个引脚到读取不能超过15us。再延时60us,确保读取完毕。

代码如下:

5、ds18b20.h + ds18b20.c
ds18b20.h

ds18b20.c

前一篇: 单片机学习(11)——实时时钟DS1302

下一篇: 【蓝桥杯】单片机学习(13)——AD模数转换及PCF8591
单片机温湿度传感器:单片机常用温度传感器  第2张

单片机温湿度传感器:单片机温湿度传感器

1 #include "reg52.h"
 2 #include

基于单片机的温湿度检测系统的设计
  摘要:本文设计了基于AT89C51 单片机,温湿度传感器 SHT11,液晶 LCD1602,串
口MAX232 通讯以及Visual Basic 编写的上位机软件的温湿度检测控制系统。实现了对
环境温湿度的实时数据进行采集和显示,存储并记录,键盘输入温湿度的上下限值和预置值,
环境温湿度超过上下限值蜂鸣器报警,指示灯提示,并且可以通过上位机远程设置上下限值,
查询各时间段的温湿度情况等功能。
  0.引言
  随着现代工业的逐步发展,温度、压力、流量和液位是4 种最常见的过程变量。例如:
在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉,
反应炉和锅炉的温湿度进行控制,然而用常规的控制方法潜力有限,难以满足较高的性能要
求。采用单片机来对它们进行控制不仅具有控制方便、简单和灵活性大的优点,而且还可以
大幅度提高被测温湿度的技术指标,从而能大大提高产品的数量和质量。
  该设计主要作用是实时采集和显示环境中温湿度值,当环境温湿度超过设定值系统发出
声光报警,可以通过按键和上位机调节上下限值,上位机实时显示温湿度值并保存,可以查
询各个时间段温湿度情况。
  1. 系统的硬件设计
  此设计以AT89C51 基本系统为核心的一套检测控制系统,其中包括温湿度采集模块、液
晶显示模块、按键设置模块、串口通讯模块等部分的设计。系统总体方框图如图1.1。
  晶振电路                                              LCD1602 显示
  复位电路                                              温湿度SHT11
 AT89C51
  按键检测                                              串口通讯MAX232
  蜂鸣器报警                                               LED 报警
图1.1 系统总体方框图
1
本设计由信号采集,信号分析处理、信号显示以及与上位机通讯四个部分组成:
(1).信号采集:由温湿度传感器SHT11 完成;
(2 ).信号分析处理:由单片机完成;
(3 ).信号显示:由液晶LCD1602,LED 和报警电路完成;
(4 ).与上位机通讯:由MAX232 完成;
  1.1 温湿度采集模块:
  1.1.1SHT11 工作原理:
  SHT11  的湿度检测运用电容式结构,并采用具有不同保护的“微型结构”检测电极系统与
聚合物覆盖层来组成传感器芯片的电容,除保持电容式湿敏器件的原有特性外,还可抵御来
自外界的影响。由于它将温度传感器与湿度传感器结合在一起而构成了一个单一的个体,因
而测量精度较高且可精确得出露点,同时不会产生由于温度与湿度传感器之间随温度梯度变
化引起的误差。CMOSensTM 技术不仅将温湿度传感器结合在一起,而且还将信号放大器
模/数转换器、校准数据存储器、标准I2C 总线等电路全部集成在一个芯片内。
  SHT11 的每一个传感器都是在极为精确的湿度室中校准的。SHT11 传感器的校准系数预
先存在OTP  内存中。经校准的相对湿度和温度传感器与一个14 位的A/D 转换器相连,可
将转换后的数字温湿度值送给二线I2C 总线器件,从而将数字信号转换为符合I2C 总线协议
的串行数字信号。
  1.1.2SHT11 与单片机连接图:
  如图1.2:
图1.2   SHT11 与单片机连接图
  液晶显示模块:
  LCD1602 介绍:
  1602LCD 主要技术参数:
  显示容量:16×2  个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V);模块最佳工
  作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm;
 单片机<a title=温湿度传感器:单片机常用温度传感器 第3张" title="单片机温湿度传感器:单片机常用温度传感器 第3张-传感器知识网"/>

单片机温湿度传感器:基于51单片机温湿度传感器

基于STC89C51单片机的温湿度检测系统
摘 要:设计一种计算机教室温度、湿度检测系统,用于控制机房的温、湿度。整个系统采用STC89C51微处理器作为主控系统,硬件电路主要包括51单片机、DHT11温湿度传感器、显示器模块、警报器以及控制设备等5部分。通过给定的温湿度的上下限值并由1602 LCD显示器显示,传感器测量的信号由LCD显示出来,LCD显示实时的温、湿度值。当温、湿度超过限定值时,蜂鸣器鸣叫报警。
关键词:单片机;温湿度传感器;LCD显示器

0 引 言

当计算机教室温度过高,会导致机器的散热功能无法正常运行,影响电路稳定运行。为了确保机房的设备正常运转,机器的温度最好保持在18-25℃。如果室内的空气湿度过大,会导致设备金属部件产生锈蚀,电路板的绝缘性能降低,从而影响设备的稳定运行。为防止静电产生,保证设备的安全系数不受影响,机房的空气也不能过于干燥。因此,机房的温度、湿度要控制在稳定状态,避免意外发生[1]。

一、整个作品采用STC89C51微处理器作为MCU(Microcontroller Unit),硬件电路主要包括51单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分。其中由DHT11温湿度传感器及1602 LCD液晶显示器构成系统的显示模块。系统程序给定温湿度上下限值并通过1602 LCD显示器显示,传感器测量的信号由LCD显示出来,LCD显示实时的温、湿度值。当室内的温湿度超过限定值,蜂鸣器鸣叫报警。

二、温湿度的检测和控制是研究的主要内容。当环境中的温湿度发生变化时,DHT11温湿度传感器随着温度、湿度的变化而变化,然后将变化的电阻通过转换电路和转换信号检测为相对应变化的电压,然后把模拟电压信号由A/D转换器转换为数字信号并送入到单片机中。单片机对采集到的信号进行滤波处理并通过查表得到实际测量的湿度值。

三、该系统通过按钮设定最适宜的温度和湿度,传感器向最小系统输送监控信号,若超过预设值,蜂鸣器就会报警提醒,控制温、湿度的设备即可做出调整,使室内的温、湿度回到正常范围。

四、根据各种不同的计算机教室最适温度进行温度调节,若低于下限温度则采取升温措施,通常采取电热增温和空调增温。若高于上限温度则采取降温措施,通常通过空调降温和风扇降温;为满足机房不同种类计算机对湿度的要求,我们可以随时对温、湿度进行调节,对于不利情况能够及时的显示,并采取相应的措施提醒用户进行调整,以达到最适宜的温湿度。

1 整体方案结构

1.1 总体设计方案及其论证

本设计要实现的功能是:实时显示当前环境的温、湿度,允许用户设定温、湿度的上下限值,当环境温湿度超过或低于限定值时,系统会以蜂鸣器鸣叫的方式进行报警,并且使控温设备启动。待室内达到正常范围时,蜂鸣器停止鸣叫,控温设备停止运行,系统正常工作。

(1)温度检测:对温室温度进行测量并反映在显示器上。

(2)湿度检测:对温室湿度进行测量并反映在显示器上。

(3)显 示:1602 LCD显示器显示实时温度、湿度值。

依据功能设定,本系统主要分为以下三个模块:

(1)温湿度采集模块

(2)数据处理模块

(3)用户交互模块

其中温湿度采集模块使用的是DHT11数字温湿度传感器,它使用单总线方式,接口简单,而且无需另外校准。分辨率为8bit,能够满足日常环境温湿度的检测要求。

数据处理模块使用的是STC89C51单片机作为最小系统,其完成温湿度数据的采集、运算和控制设备运行的功能。

用户交互模块主要由按键、1602液晶显示器、蜂鸣器和控制设备构成。其中按键用于用户设定温湿度的限定值,1602 LCD用于显示数据,蜂鸣器用于提示用户,控制设备用于调节和控制不符合要求的温、湿度。

1.2 系统设计简图

C51单片机作为主控制器,负责处理由DHT11传输的数据,并把处理好的数据送向显示器模块,DHT11温湿度传感器主要用来采集周围的环境参数,并把采集得到的数据送向单片机。按键电路主要是用来完成单片机的复位操作和温湿度限定值的设定。蜂鸣器电路是用三极管来实现的,用来提示周围的温度或者湿度是否超出设定数值,控制设备等候指令,当蜂鸣器响起且温、湿度不在标准范围内,控制设备自行启动,直到温、湿度正常。显示电路主要用来显示当前的温湿度。

图1-2-1 温湿度监控系统原理图

2 系统硬件设计

2.1 器件选定

将单片机用作测控系统时,总要有被测信号输入通道,由计算机拾取必要的输入信息。对于测量系统而言,其核心任务是怎么样获得准确的被测信号;而对测控系统来说,不可缺少的环节是对条件的监测和对被控对象状态的测试,传感器是实现测量与控制的第一环节,是测控系统的关键部分,一切准确的测量和控制都将在传感器对原始信号的准确可靠的转换和捕捉,工业生产过程的自动化测量和控制,基本主要依赖各种传感器来控制和检测生产过程中的各种量,使系统和设备在最佳状态正常运行,从而保证生产的高质量和高效率[2]。

2.1.1 DHT11温湿度传感器

DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH,温度0~50℃。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准,校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数,采用单线制串行接口[5],使系统集成变得简易快捷。

图2-1-1 封装信息

2.1.2 1602LCD显示器

液晶显示器(Liquid Crystal
Display, LCD)是一种被动式发光的低功耗显示器件。由于液晶这种物质本身不发光,它只是在外加电场的作用下使液晶内部的分子有序排列,从而改变通过这些液晶分子的光线方向,光线再经过底板的反射、散射最终进入人们的视野中。液晶显示器具有重量轻、体积小、功耗低、抗扰能力强等优点,广泛应用于人们的生活中、仪器仪表、控制系统等领域[3]。

本设计将采用点阵字符型1602液晶显示模块。

基本操作时序
(1)读状态;输入:RS=L,R/W=H,E=H;输出:D0~D7为状态字。
(2)读数据;输入:RS=H,R/W=H,E=H;输出:无。
(3)写指令;输入:RS=L,R/W=L,E=H,D0D7为指令码;输出:D0D7为数据。
(4)写数据;输入:RS=H,R/W=L,E=H,D0~D7为数据;输出:无。
 图 2-1-2 外形尺寸

图2-1-3 点阵字符型1602液晶显示器的显示地址映射图
控制器内部带有80B的RAM缓冲区,对应关系如图2-1-2所示。
在图中的00H0FH、40H4FH地址中的任意处写显示数据时,液晶都可以立即显示出来,但写入到10H27H或50H67H地址处时,必须通过移屏指令将他们移入可显示区域才能正常显示[4]。

2.2 主控系统电路和各硬件模块

2.2.1
STC89C51单片机简介
STC89C51单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

其主要特性如下:
工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
用户应用程序空间为12K/10K/8K/6K/4K/2K字节
片上集成512字节RAM
通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片
具有EEPROM功能
具有看门狗功能
共3个16位定时器/计数器。即定时器T0、T1、T2
外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒
通用异步串行口(UART),还可用定时器软件实现多个UART
工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)
PDIP封装

2.2.2 单片机最小系统

图2-2-2 最小系统原理图

2.2.3 复位电路与晶振电路

检测系统采用上电复位,当RST引脚上出现了两个周期以上的高电平就会触发内部复位,这里的EA端与复位电路无关,由于数据都放在了内部存储器,所以EA端直接上拉高电平。

晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率,可以用于同一个晶振项链的不同锁相环来提供的。单片机STC89C51的晶振电路采用无源晶振,微调电容取30pF。

图2-2-3 复位电路、晶振电路

2.2.4 蜂鸣器警报模块

本设计采用蜂鸣器报警电路,如图所示。当蜂鸣器额定电流≤30mA,而对于STC89C51单片机,P3.2口的灌电流为15mA,仅靠单片机的P3.2口电流是不能驱动蜂鸣器的,必须使用晶体管放大电流。通常使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫,实现报警。

图2-2-4 蜂鸣器警报模块

2.2.5 温湿度按键模块

图2-2-5 按键模块

2.2.6 系统显示模块

显示模块选用1602点阵字符型液晶显示器,它是目前工控系统中使用最广泛的液晶屏之一。它的显示的质量高,驱动方便,经过编程后显示的内容丰富多样。

DHT11是数字型温湿度传感器,可直接以数字的方式传输所采集到当前环境的温、湿度,DHT11采用的是单总线通信,因此只需将单片机的一个I/O端口与DHT11的通信接口连接就可以实现数据的采集和传送。

图2-2-6 1602LCD与DHT11原理图

2.3 硬件实施控制与实物成品

操作说明:

S1:复位键 S2:设置/保存 S3:数值加 S4:数值减

1、系统上电后,LCD1602显示当前环境的温湿度值,按下S2设置键,依次进入预设温度上限、湿度上限、湿度下限、温度下限的调节模式。
2、按S3数值加键,预设值加。
3、按S4数值减键,预设值减。
4、设置成功后,再按S2设置键退出,返回到正常监测模式。

图2-3-1 硬件实物图1
图2-3-2 硬件实物图2

3 系统软件设计
系统软件设计采用分部模块化设计,其中包括主程序、温度检测子程序、湿度检测子程序、数据储存、子程序读取、LCD显示子程序。软件设计时温湿度监测系统的核心部分,将采用循环的方式来完成数据的收集,并进行数据对比。系统上电后正常运转,并进行温、湿度的检测与处理。

图3-1 软件设计流程图

4 结 语
本文设计的是计算机教室的温湿度检测、报警、控制系统。由高性价比单片机STC89C51对传感器数据进行处理,通过温湿度传感器,实现对温、湿度数据的采集,并对数据进行处理, 1602
LCD显示器显示即时温、湿度值。当测出数值超出设定的温、湿度值时,由单片机驱动蜂鸣器模块,实现报警功能,控制设备自行启动,调节室内的温度、湿度,使其恢复到正常范围。综合上述的功能,就可以构造一个以DHT11传感器和C51单片机为基础的系统,实现稳定和简便的温、湿度环境数据监测功能。

资料链接:

下一篇: PLC、DCS、FCS三大控

上一篇: 电气控制线路图控制原

推荐产品

更多