温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器

温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器
温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器

摘要

此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器单片机STC89C52 对温度湿度分别测量并通过液晶显示屏1602经行显示。温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。HS1101是电容式空气湿度传感器,在不同的湿度环境下呈现出不同的电容值,0%~100%RH湿度范围内,电容从162PF变化到200PF,误差误差为2%RH。可见其精度非常高,为了反映出其电容的变化,本系统采用555多谐震荡电路产生不同的频率,用于检测湿度。单片机采集到两个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。

关键词:温湿度测量系统精度高速度快体积小

Abstract: The temperature and humidity measurement system is based on singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by LCD display. The line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directive given readable. HS1101 is capacitive sensor, air humidity in different humidity presents different capacitance, 0% ~ 100% RH humidity, within the scope of capacitance change to 200PF, from 162PF error for 2% RH error. e can see its precision is very high, in order to reflect the capacitance change, the system USES the 555 more harmonic concussion circuits produce different frequency, which is used to detect humidity. SCM acquisition to two sensor gives data processing and calculated, the current temperature and humidity and give the display on the LCD panel. This system has a readable, high stability, reaction speed, measured values exact characteristic.

Keywords: temperature and humidity measurement system high precision speed small volume

目录

1.设计要求 (3)

2. 方案设计及论证 (3)

2.1 总体方案设计 (3)

2.2系统主要单元的选择与论证 (3)

2.2.1单片机控制模块的选择论证 (3)

2.2.2温度湿度检测模块的选择与论证 (3)

2.2.3显示模块的选择与论证 (3)

2.3 系统组成 (4)

3. 理论分析及计算 (4)

3.1 (4)

3.2..........................................................................................错误!未定义书签。

4. 系统电路设计 (4)

4.1单片机主控电路设计 (4)

4.2 DS18B20温度检测模块和HS1101湿度检测模块电路设计 (5)

4.2.1 HS1101湿度检测传感器工作原理 (7)

4.2.2 DS18B20温度检测传感器工作原理 (7)

4.4.3蜂鸣器电路原理 (8)

4.3 1602液晶显示模块电路设计 (8)

5. 系统软件设计 (9)

5.1 软件设计流程图 (9)

5.2 软件设计分析 (10)

6. 系统测试 (10)

6.1主要指标测试 (10)

6.2测试结果分析 (11)

7. 结论 (11)

参考文献 (11)

附录 (13)

附录一:系统的总原理图 (13)

附录二:系统的PCB元件分布图 (14)

附录三:程序清单 (17)

附录五:元器件清单 (28)

1. 设计要求

(1)设计制作一个温湿度计,温度测量范围为-10-50℃,湿度为0-100%; (2)温度测量误差为0.1℃,湿度测量误差为3%; (3)具有量程自动转换功能;

(4)其他创新性设计,如低功耗等。

2. 2. 方案设计及论证

2.1 总体方案设计

经分析,将系统分为两个 部分,一个是由温湿度传感器 组成的检测部分,另一个是由 单片机和1602液晶组成的主控 与显示部分。如图所示DS18B20 和HS1101湿度检测电路将检测到 的数送到单片机,单片机对接收 到的数据进行处理并送到1602显示, 5V 稳压电源给各个部分供电。

图2.1 系统组成框图

2.2 系统主要单元的选择与论证 2.2.1单片机控制模块的选择论证

方案一:采用XC9000系列的FPGA 。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。

方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。

基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。

2.2.2温度湿度检测模块的选择与论证

方案一:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC 式温度检测元件,可测20~90%RH 湿度,误差5%RH ,0~50摄氏度,误差2摄氏度。

方案二:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在-55℃~125℃,-10℃~85℃,误差为-\+0.5℃。最高精度可达0.0625℃。

HS1101是电容式湿度传感器,可测相对湿度范围在0%~100%RH ,误差为-\+2%RH 。 方案选择,有上述数据可知,根据设计要求(温度测量范围为-10-50℃,湿度为0-100%; 温度测量误差为0.1℃,湿度测量误差为3%;),从设计要求的精度来看,本方案更优。 综上所述,虽然方案一具有综合作用,但是方案二的测试范围和精度都由于方案一,故本模块采用方案二。

2.2.3显示模块的选择与论证

单片机

显示模块

HS1101湿度检测电路

DS18B20温度检测

电源

方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。

方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。

综上所述,显示模块选择方案二。

2.3 系统组成

本系统由单片机主控电路、DS18B20温度检测模块、HS1101湿度检测模块、1602液晶显示模块4部分组成,其中单片机主控电路

3.3. 理论分析及计算

3.1 HS1101的湿度测量方法分析

HS1101是电容式湿度传感器,由

于电容不可直接测量,故选用555

多谐震荡电路检测到频率,然后由单

片机计算的电容值,再根据电容值算

出相应的湿度值。

3.1HS1101的湿度测量计算

电路如图4.2 ,由电路可知图3.1电容值与相对湿度值的关系t 充电 =C(R2 +R1 ) ln2

t 放电 =CR4 ln2

因而 , 输出的方波率

f= 1 /(t 充电 +t 放电 )= 1 /[C(R2+ 2 R1) ln2 )]

由图3.1可知相对湿度与电容的关系可看成直线段,所以有相对湿度RH=2.7C+163

所以有

4.系统电路设计

4.1单片机主控电路设计

单片机主控电路原理图如下所示:

图4.1 单片机主控电路原理图

单片机主控模块包括了振落电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。

单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。

控制电路的核心器件是由美国Atmel公司生产的A T89S52单片机,属于MCS-51系列。

A T89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得A T89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。

4.2 DS18B20温度检测模块和HS1101湿度检测模块电路设计

DS18B20温度检测模块和HS1101湿度检测模块电路原理图如下所示:

图4.2.1 DS18B20温度检测模块和HS1101湿度检测模块电路原理图

图4.2.2 DS18B20温度检测模块和HS1101湿度检测模块电路仿真图

图4.2.3 DS18B20温度检测模块和HS1101湿度检测模块电路仿真结果图

4.2.1 HS1101湿度检测传感器工作原理

T1为HS1101湿度检测传感器,其工作电路由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+2R1)*In2];

可见空气湿度通过555测量振荡电路,就转变为与之呈反比例的频率信号。

4.2.2 DS18B20温度检测传感器工作原理

DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部

温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。

4.4.3蜂鸣器电路原理

蜂鸣器额定电流IB≤30mA,而对于A T89S52单片机,P1口的灌电流为1.6mA,拉电流为60μA,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用PNP型晶体管9012。A T89S52采用的晶振电路采用11.0592MHz的无源晶振,微调电容大小取30pF。显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,电路图如图6所示。1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。系统的输入模块采用中断扫描的4×4矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。

4.3 1602液晶显示模块电路设计

1602液晶显示模块电路原理图如下所示:

图4.3 1602液晶显示模块电路原理图

在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。

在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口、体积小、重量轻、功耗低、1602LCD 主要技术参数:

显示容量:16×2 个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

引脚功能说明:1602LCD 采用标准的14脚(无背光)或16脚(带背光)接口,

第 1 脚:VSS 为地电源。

第 2 脚:VDD 接 5V 正电源。

第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,

对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。

第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W

共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。

第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 7~14脚:D0~D7为 8 位双向数据线。 第 15脚:背光源正极。 第 16脚:背光源负极。

5. 系统软件设计

5.1 软件设计流程图

主程序流程图 液晶显示程序流程

是 是

否 否

是 否

图5.1.1 主程序流程图 图5.1.2液晶显示程序流程

开始 Key1键

按下? 显示湿度 Key2键按下?

显示温度 开始 是否忙

写指令

写数据 设置显示

初始化 显示

温度检测程序流程 湿度检测流程图

图5.1.3温度检测程序流程 图5.1.4 湿度检测流程图

5.2 软件设计分析

主程序进行键盘扫描,单片机根据判断键盘那个键按下,显示温度或湿度。如果key1键按下就调用温度检测程序,单片机对18B20进行初始化,成功则读字节,再写入字节,读取温度数据送到1602显示。如果key2键按下,就调用湿度显示程序,开启定时中断T0、T1,T0进行定时,T1对湿度电路给的频率计数,当计满1S 时关闭T1,单片机对计的数进行运算,的出湿度值,送往液晶显示。

6. 6. 系统测试

6.1主要指标测试

本系统主要指标就在于所测得的温湿度的数据是否达到了题目要求,本系统测量范围为-10-50℃,湿度为0-100%;温度测量误差为0.1℃,湿度测量误差为2%;在8栋111测试温度为16.7度,湿度为41%。

开始 初始化

是否成

初始化

从18B20读

字节 向18B20写字节 读取温度 显示温度 开始

开定时T0,T1

是否计满1S 关闭T0并根据频率算出湿度

显示湿度

6.2测试结果分析

通过测试,与标准仪器所测得的温湿度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。

7.结论

本温湿度计的制作基本上达到了题目要求的技术指标,温度测量范围为-10-50℃,湿度为0-100%;温度测量误差为0.1℃,湿度测量误差为3%;实现了量程自动转换功能。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

参考文献

(1)康华光等.电子技术基础[M]. 北京:高等教育出版社

(2)彭介华.电子技术课程设计指导[M]. 北京:高等教育出版社

(3)郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].电子工业出版社,2009.

(3)黄智伟.全国大学生电子设计竞赛制作实训[M].北京:北京航空航天大学出版社,2007

(4)黄智伟.全国大学生电子设计竞赛系统设计[M].北京:北京航空航天大学出版社,2006

(5)黄智伟.全国大学生电子设计竞赛技能训练[M].北京:北京航空航天大学出版社,2007

(6)黄智伟.全国大学生电子设计竞赛电路设计[M].北京:北京航空航天大学出版社,2006

(7)黄智伟.全国大学生电子设计竞赛常用电路模块制作[M].北京:北京航空航天大学出版社,2010

(8)黄智伟等.基于NI multisim的电子电路计算机仿真设计与分析[M].北京:电子工业出版社,2007

(9)黄智伟.印制电路板(PCB)设计技术与实践[M].北京:电子工业出版社,2009(10)高吉祥等.电子技术基础实验与课程设计[M].北京:电子工业出版社,2002

(11)吴运昌.模拟集成电路原理与应用[M].广州:华南理工大学出版社,2001年(12)谭博学等. 集成电路原理及应用[M].北京:电子工业出版社,2003

(13)魏立军.CMOS 4000系列60种常用集成电路的应用[M].北京:人民邮电出版社,1993(14)杨宝清.实用电路手册[M].北京:机械工业出版社.2002

(15)陈有卿.报警集成电路和报警器制作实例[M].人民邮电出版社1996

附录

附录一:系统的总原理图

图附1.1 系统总原理图

附录二:系统的PCB图及元件分布图

图附2.1 单片机主控电路及液晶PCB布线图

图附2.2 DS18B20温度检测模块和HS1101湿度检测模块PCB布线图

图附2.3 单片机主控电路及液晶PCB元件分布图

图附2.24DS18B20温度检测模块和HS1101湿度检测模块PCB元件分布图附录三:程序清单

#include < reg51.h >

#include < intrins.h >

#define uchar unsigned char

#define uint unsigned int

sbit DQ = P2^0 ; //定义DS18B20端口DQ

sbit BEEP=P2^2 ; //蜂鸣器驱动线

bit presence ;

sbit LCD_RS = P1^2;

sbit LCD_RW = P1^1;

sbit LCD_EN = P1^0;

sbit led = P2^1;

sbit key1 = P2^3;

sbit key2 = P2^4;

uchar code cdis1[ ] = {" wendujishiyan "} ;

uchar code cdis2[ ] = {" T= . C "} ;

uchar code cdis3[ ] = {" shidujishiyan "} ;

uchar code cdis4[ ] = {"shidu: %"} ;

uchar code cdis5[ ] = {"the system of "} ;

uchar code cdis6[ ] = {" temp and hum "} ;

unsigned char data temp_data[2] = {0x00,0x00} ;

unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00} ;

unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,

0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ;

void beep() ;

unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ;

bit int_flag; //定时器0 1S到标志位

unsigned char volatile int_count; //定时器0中断次数

unsigned char volatile T1count; //定时器1中断次数

unsigned long sum,wet; //1S内脉冲总个数

unsigned char le[6]; //LED显示缓存

#define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;

/*******************************************************************/ void delay1(int ms)

{

unsigned char y ;

while(ms--)

{

for(y = 0 ; y<250 ; y++)

{

_nop_() ;

_nop_() ;

_nop_() ;

_nop_() ;

}

}

}

/******************************************************************/ /*检查LCD忙状态*/ /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。*/

/******************************************************************/ bit lcd_busy()

{

bit result ;

LCD_RS = 0 ;

LCD_RW = 1 ;

LCD_EN = 1 ;

delayNOP() ;

result = (bit)(P0&0x80) ;

LCD_EN = 0 ;

return(result) ;

}

/*写指令数据到LCD */ /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/

/*******************************************************************/ void lcd_wcmd(uchar cmd)

{

while(lcd_busy()) ;

LCD_RS = 0 ;

LCD_RW = 0 ;

LCD_EN = 0 ;

_nop_() ;

_nop_() ;

P0 = cmd ;

delayNOP() ;

LCD_EN = 1 ;

delayNOP() ;

LCD_EN = 0 ;

}

/*******************************************************************/ /*写显示数据到LCD */

/*RS=H,RW=L,E=高脉冲,D0-D7=数据。*/

/*******************************************************************/ void lcd_wdat(uchar dat)

{

while(lcd_busy()) ;

LCD_RS = 1 ;

LCD_RW = 0 ;

LCD_EN = 0 ;

P0 = dat ;

delayNOP() ;

LCD_EN = 1 ;

delayNOP() ;

LCD_EN = 0 ;

}

/* LCD初始化设定*/ /*******************************************************************/

void lcd_init()

{

delay1(15) ;

lcd_wcmd(0x01) ; //清除LCD的显示内容

lcd_wcmd(0x38) ; //16*2显示,5*7点阵,8位数据

delay1(5) ;

lcd_wcmd(0x38) ;

delay1(5) ;

lcd_wcmd(0x38) ;

delay1(5) ;

lcd_wcmd(0x0c) ; //显示开,关光标

delay1(5) ;

lcd_wcmd(0x06) ; //移动光标

delay1(5) ;

lcd_wcmd(0x01) ; //清除LCD的显示内容

delay1(5) ;

}

/* 设定显示位置*/

/*******************************************************************/ void lcd_pos(uchar pos)

{

lcd_wcmd(pos | 0x80) ; //数据指针=80+地址变量

}

/*自定义字符写入CGRAM */

/*******************************************************************/ void writetab()

{

unsigned char i ;

lcd_wcmd(0x40) ; //写CGRAM

for (i = 0 ; i< 8 ; i++)

lcd_wdat(mytab[ i ]) ;

}

/*us级延时函数*/

/*******************************************************************/

void Delay(unsigned int num)

{

while( --num ) ;

}

/**********************************************************

DS18B20 数字温度传感器

应用指引:在MC430F14板上是标配了DS18B20数字温度传感器器,同时希望用户通过以下DS18B20的讲解能够了解更多1线 MC430F14实物图如下: >>关于MC430F14开发板详情>> 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。 新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。

美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前DS18B20批量采购价格仅10元左右。 DS18B20、DS1822 "一线总线"数字化温度传感器 同DS1820一样,DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为±2°C。现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、DS1822的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。继"一线总线"的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 一、DS18B20的主要特性 (1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

基于单片机的温湿度计的设计

基于单片机的温湿度计的设计

单片机课程设计 项目名称基于单片机的湿度显示器设计 专业班级通信092 学生姓名 指导教师 2012年12月12日

摘要 温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要。因此,研究温湿度的测量方法和装置具有重要的意义。 随着科技的不断发展,单片机技术已经普及到我们的工作、生活、科研等各个领域。已经成为一种比较成熟的技术。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便等优点,目前已经渗透到我们工作和生活的方方面面。 本论文介绍了一种以AT89C51为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。本设计主要包括硬件电路的设计和系统软件的设计。 关键词:温湿度传感器; LCD1602; AT89C51; DHT1 1;

Abstract Temperature and humidity are the two most basic environmental parameters, people's life is closely related with the temperature and humidity. In daily life, industry, medicine, environmental protection, chemical industry, petroleum and other fields, we often need to environment temperature and humidity measurement and control. Accurate measuring temperature and humidity in biological pharmacy, food processing, paper making industries is very important. Therefore, the study of the temperature and humidity measurement method and equipment has important significance. With the continuous development of science and technology, microcontroller technology has spread to our work, life, scientific research, and other fields. Has become a more mature technology. Due to the high level of integration SCM, strong function, high reliability, small volume, low power consumption, easy to use, etc., and has penetrated into our work and all aspects of life. This paper introduces a kind of AT89C51 as the main control device, in order to DHT11 digital temperature sensor for new digital temperature and humidity meter. This design mainly includes hardware circuit design and software design. Keywords:Temperature and humidity sensor; LCD1602; AT89C51; DHT1 1;

DS18B20温度检测程序

(1)先将数据线置高电平“1”。 (2)延时(该时间要求的不是很严格,但是尽可能的短一点) (3)数据线拉到低电平“0”。 (4)延时750微秒(该时间的时间范围可以从480到960微秒)。 (5)数据线拉到高电平“1”。 (6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8)将数据线再次拉高到高电平“1”后结束。

(1)数据线先置低电平“0”。 (2)延时确定的时间为15微秒。 (3)按从低位到高位的顺序发送字节(一次只发送一位)。 (4)延时时间为45微秒。 (5)将数据线拉到高电平。 (6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7)最后将数据线拉高。 DS18B20的写操作时序图如图

DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。DS18B20的读操作时序图如图所示。

DS18B20的Protues仿真图 源程序代码: #include "reg51.h" #include "intrins.h" // 此头文件中有空操作语句NOP 几个微秒的延时可以用NOP 语句,但本人没用NOP,直接用了I++来延时 #define uchar unsigned char #define uint unsigned int uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39}; sbit ds18b20_io=P2^0; //单片机与DS18B20的连接口 sbit lcdrs=P2^6; //1602与单片机的接口 sbit lcden=P2^7;

基于单片机的温度测量系统设计

基于STC单片机的温度测量系统的研究 摘要:本文针对现有温度测量方法线性度、灵敏度、抗振动性能较差的不足,提出了一种基于STC单片机,采用Pt1000温度传感器,通过间接测量铂热电阻阻值来实现温度测量的方案。重点介绍了,铂热电阻测量温度的原理,基于STC实现铂热电阻阻值测量,牛顿迭代法计算温度,给出了部分硬件、软件的设计方法。实验验证,该系统测量精度高,线性好,具有较强的实时性和可靠性,具有一定的工程价值。 关键词:STC单片机、Pt1000温度传感器、温度测量、铂热电阻阻值、牛顿迭代法。 Study of Temperature Measurement System based on STC single chip computer Zhang Yapeng,Wang Xiangting,Xu Enchun,Wei Maolin Abstract:A method to achieve temperature Measurement by the Indirect Measurement the resistance of platinum thermistor is proposed. It is realized by the single chip computer STC with Pt1000temperature sensor.The shortcomings of available methods whose Linearity, Sensitivity, and vibration resistance are worse are overcame by the proposed method. This paper emphasizes on the following aspects:the principle of temperature measurement by using platinum thermistor , the measurement of platinum thermistor’s resistance based on STC single chip computer, the calculating temperature by Newton Iteration Method. Parts of hardware and software are given. The experimental results demonstrate that the precision and linearity of the method is superior. It is also superior in real-time character and reliability and has a certain value in engineering application. Keywords: STC single chip computer,Pt1000temperature sensor,platinum thermistor’s resistance,Newton Iteration Method 0 引言 精密化学、生物医药、精细化工、精密仪器等领域对温度控制精度的要求极高,而温度控制的核心正是温度测量。 目前在国内,应用最广泛的测温方法有热电偶测温、集成式温度传感器、热敏电阻测温、铂热电阻测温四种方法。 (1) 热电偶的温度测量范围较广,结构简单,但是它的电动势小,灵敏度较差,误差较大,实际使用时必须加冷端补偿,使用不方便。 (2) 集成式温度传感器是新一代的温度传感器,具有体积小、重量轻、线性度好、性能稳定等优点,适于远距离测量和传输。但由于价格相对较为昂贵,在国内测温领域的应用还不是很广泛。 (3) 热敏电阻具有灵敏度高、功耗低、价格低廉等优点,但其阻值与温度变化成非线性关系,在测量精度较高的场合必须进行非线性处理,给计算带来不便,此外元件的稳定性以及互换性较差,从而使它的应用范围较小。 (4)铂热电阻具有输出电势大、线性度好、灵敏度高、抗振性能好等优点。虽然它 的价格相对于热敏电阻要高一些,但它的综合性能指标确是最好的。而且它在0~200°C范

DS18b20温度传感器

最小的温度显示程序-c51 (2010-12-07 00:45:27) 转载 分类:51单片机 标签: 杂谈 #include #include sbit DQ=P2^0; bit presence; unsigned char templ,temph; char array[10]={0x7e,0x48,0x3d,0x6d,0x4b,0x67,0x73,0x4c,0x7f,0x4f}; void Delay(unsigned int num)//可定义延时 { while( --num ); } bit Init_DS18B20(void) { DQ = 1; //DQ复位 Delay(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay(90); //精确延时大于 480us DQ = 1; //拉高总线 Delay(8); presence = DQ; //如果=0则初始化成功 =1则初始化失败 Delay(100); DQ = 1; return(presence); //返回信号,0=presence,1= no presence } unsigned int ReadOneChar(void) { unsigned char i = 0; unsigned char dat = 0;

for (i = 8; i > 0; i--) { DQ = 0; // 给脉冲信号 dat >>= 1; //位右移 DQ = 1; // 给脉冲信号等待传感器返回脉冲 if(DQ) dat |= 0x80; Delay(4); } return (dat); } void WriteOneChar(unsigned char dat) { unsigned char i = 0; for (i = 8; i > 0; i--) { DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat>>=1; } } void Read_Temperature(void) { Init_DS18B20(); WriteOneChar(0xcc); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 templ = ReadOneChar(); //温度低8位 temph = ReadOneChar(); //温度高8位 }

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.360docs.net/doc/408403509.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

DS18B20温度传感器使用方法以及代码

第7章 DS18B20温度传感器 7.1 温度传感器概述 温度传感器是各种传感器中最常用的一种,早起使用的是模拟温 度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可以计算出当前环境温度。随着科技的进步,现代的温度传感器已经走向数字化,外形小,接口简单,广泛应用在生产实践的各个领域,为我们的生活提供便利。随着现代仪器的发展,微型化、集成化、数字化、正成为传感器发展的一个重要方向。美国DALLS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即单片机接口仅需占用一个 I/O端口,无需任何外部元件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。 7.2 DS18B20温度传感器介绍 DS18B20是美国DALLAS^导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9?12位的数字 值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入 DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20供电,而无需额外电源。因而使用

DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 1. DS18B20温度传感器的特性 ①独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口 线即可实现微处理器与DS18B20勺双向通讯。 ②在使用中不需要任何外围元件。 ③可用数据线供电,电压范围:+3.0~ +5.5 V。 ④测温范围:-55 ~+125 C。固有测温分辨率为0.5 C。 ⑤通过编程可实现9~12位的数字读数方式。 ⑥用户可自设定非易失性的报警上下限值。 ⑦支持多点组网功能,多个 DS18B20可以并联在惟一的三线上,实现多点测温。 ⑧负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 2. 引脚介绍 DS18B20有两种封装:三脚TO-92直插式(用的最多、最普遍的封装)和八脚SOIC贴片式。下图为实验板上直插式 DS18B20的原理图。 3. 工作原理 单片机需要怎样工作才能将DS18B2 0中的温度数据独取出来呢?F面将给出详细分析

基于单片机的温湿度测量仪设计

单片机课程设计报告 题目:基于单片机的温湿度仪表设计 班级:智能科学与技术1201班

学生姓名:文波 学号:120407130 指导教师:朱建光 成绩: 工业大学 摘要 温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。准确测量温湿度在生物制药食品加工、造纸等行业更是至关重要。因此,研究温湿度的测量方法和装置具有重要的意义。 随着科技的不断发展,单片机技术已经普及到我们的工作、生活、科研等各个领域。已经成为一种比较成熟的技术。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便等优点,目前已经渗透到我们工作和生活的方方面面。 本设计STC89C52为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。本设计主要包括硬件电路的设计和系统软件的设计。

目录 第一章目标及主要任务 (3) 第二章硬件设计 (3) 2.1系统设计方案 (3) 2.2 STC89C52介绍 (4) 2.3 DHT11数字传感器介绍 (5) 2.4电路设计 (7) 第三章软件设计 (11) 3.1 系统软件主程序流程 (11) 3.2 DHT11数据采集流程 (13) 第四章结论与调试 (13)

附录(程序清单) (14) 参考文献 (22) 第一章目标及主要任务 在本次课程设计中,为实现对温湿度的检测与显示,主要利用以STC89C52为核心构架硬件电路,DHT11温湿度传感器采集环境温度及湿度信息(温度检测围:0℃至+50℃。测量精度:2℃.;湿度检测围:20%-90%RH检测精度:5%RH),数码管直接显示温度和湿度(显示方式:温度:两位显示;湿度:两位显示);同时利用C语言编程实现温湿度信息的显示功能。 扩展功能:可设置温湿度报警值,温湿度超过设置的响应报警值,会发出报警信号。 第二章硬件设计 2.1 系统设计方案

DS18B20单片机数码管显示原理图和程序

最近天气热了,想要是做个能显示温度的小设备就好了, 于是想到DIY 个电子温度计, 网上找了很多资料,结合自己的材料,设计了这个用单片机控制的实时电子温度计。 作为单 片机小虾的我做这个用了 2天时间,当然是下班后,做工不行见谅了。 主要元件用到了单片机 STC89C54RD+ , DB18B20温度传感器,4为共阳数码管, PNPS8550三极管等。 先上原理图: 洞洞板布局图: 然后就是实物图了: 函8D P3 iW 、 E E FJ T I RF D51*BZ0渥度澈码管显示 F7 Dl'AI>D li'A£> I 2、心 PDRM, 杖心P0WAD7 Pl I^TO 洋心EI^AJ D FLSAH

附上源程序:程序是别人写的,我只是自己 修改了下,先谢谢原程序者的无私奉献。 #include"reg52.h” #define uchar unsigned char #define uint unsigned int sbit DQ=P3A 4; 〃温度数据口 sbit wx1=P2A0; sbit wx2=P2A1; sbit wx3=P2A2; sbit wx4=P2A3; unsigned int temp, temp1,temp2, xs; //位选1 //位选2 //位选3 //位选4

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6}; /****** 延时程序 *******/ void delay1(unsigned int m) { unsigned int i,j; for(i=m;i>0;i--) for(j=110;j>0;j--); } void delay(unsigned int m) { while(m--); } /***********ds18b20 uchar ReadOneChar() { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { 读一个字节 **************/ void Init_DS18B20() { unsigned char x=0; DQ = 1; //DQ 复位 delay(8); 〃稍做延时 DQ = 0; 〃单片机将 ds18b20通信端口 DQ 拉低 delay(80); //精确延时大于480us DQ = 1; delay(4); x=DQ; delay(20); } 〃拉高总线 //稍做延时后如果x=0则初始化成功 x=1 则初始化失败 〃共阳数码管 〃温度延时程序

基于51单片机DS18B20温度传感器的C语言程序和电路

基于51单片机DS18B20温度传感器的C语言程序和电路 DS18B20在外形上和三极管很像,有三只脚。电压范围为3.0 V至5.5 V 无需备用电源测量温度位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包敏感系统。 下面是DS18B20的子程序,本人用过完全可行的: #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P2^0; void reset(); //DS18B20 void write_byte(uchar val); //DS18B20写命令函数 uchar read_byte(void); //DS18B20读1字节函数 void read_temp(); //温度读取函数 void work_temp(); //温度数据处理函数 uchar data temp_data[2]={0x00,0x00}; uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //对于温度显示值值 uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x0数部分查表 main() { while(1) { 自己添加; } } void delay1(uint t) { for(;t>0;t--); } ///////温度控制子函数 void reset() { uchar presence=1; while(presence) { while(presence) {

基于单片机的湿度传感器设计

基于单片机的湿度传感器设计 一系统方案 1.1系统功能 本文设计的湿度传感器应具备以下功能: (1)能够感受环境中的湿度变化。 (2)能够将环境中的湿度变化转化为电信号。 (3)系统能够对采集到的湿度信号进行分析处理。 (4)能够将环境中的湿度以相对湿度的形式显示出来便于观察记录。 (5)系统反应快、灵敏度高、稳定性好,具有一定的抗干扰能力。 (6)电路简单,操作方便、性价比高、实用性强。 根据系统功能要求,湿度传感器系统图包含以下模块: 信号采集模块信号处理存储模块信号显示模块 图1.1湿度传感器系统框图 1.2系统组成模块 1.2.1信号采集模块设计 本设计为智能式湿度传感器的设计,信号采集模块主要是用于测量环境中湿度变化,并将湿度变化转变成电信号的变化。因此,我们需要一个湿度传感器。和测量范围一样,测量精度同是传感器最重要的指标。每提高—个百分点.对传感器来说就是上一个台阶,甚至是上一个档次。因为要达到不同的精度,其制造成本相差很大,售价也相差甚远。 生产厂商往往是分段给出其湿度传感器的精度的。如中、低温段(0一80%RH)为±2%RH,而高湿段(80—100%RH)为±4%RH。而且此精度是在某一指定温度下(如25℃)的值。如在不同温度下使用湿度传感器.其示值还要考虑温度漂移的影响。众所周知,相对湿度是温度的函数,温度严重地影响着指定空间内的相对湿度。温度每变化0.1℃。将产生0.5%RH的湿度变化(误差)。使用场合如果难以做到恒温,则提出过高的测湿精度是不合适的。因为湿度随着温度的变化也漂忽不定的话,奢谈测湿精度将失去实际意义。所以控湿首先要控好温,这就是大量应用的往往是温湿度—体化传感器而不单纯是湿度传感器的缘故。多数情况下,如果没有精确的控温手段,或者被测空间是非密封的,±5%RH的精度就足够了。因此在本次设计中选用DHT11温湿传感器作为本次设计湿度采集模块。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的

AT89C51单片机温度控制系统

毕业设计(论文) 论文题目:AT89C51单片机温度控制系统 所属系部:电子工程系 指导老师:职称: 学生姓名:班级、学号: 专业:应用电子技术 2012 年05 月15 日

毕业设计(论文)任务书 题目:AT89C51单片机温度控制系统 任务与要求:设计并制作一个能够控制1KW电炉的温度控制系统,控制温度恒定在37--38度之间。 时间:年月日至年月日 所属系部:电子工程系 学生姓名:学号: 专业:应用电子技术 指导单位或教研室:测控技术教研室 指导教师:职称: 年月日

摘要 本设计是以一个1KW电炉为控制对象,以AT89C51为控制系统核心,通过单片机系统设计实现对保电炉温度的显示和控制功能。本温度控制系统是一个闭环反馈调节系统,由温度传感器DS18B20对保炉内温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相比较得到偏差。通过对偏差信号的处理获得控制信号,去调节加热器的通断,从而实现对保温箱温度的显示和控制。本文主要介绍了电炉温度控制系统的工作原理和设计方法,论文主要由三部分构成。①系统整体方案设计。②硬件设计,主要包括温度检测电路、A/D转换电路、显示电路、键盘设计和控制电路。③系统软件设计,软件的设计采用模块化设计,主要包括A/D转换模块、显示模块等。 关键词:单片机传感器温度控制

目录 绪论 (1) 第一章温度控制系统设计和思路 (2) 1.1温度控制系统设计思路 (2) 1.2 系统框图 (2) 第二章 AT89C51单片机 (3) 2.1 AT89C51单片机的简介 (3) 2.2 AT89C51单片机的主要特性 (3) 2.3 AT89C51单片机管脚说明 (4) 第三章温度控制的硬件设备 (6) 3.1温度传感器简介 (6) 3.2 DS18B20工作原理 (7) 3.3 DS18B20使用中注意事项 (8) 第四章系统硬件设计 (9) 4.1温度采集电路 (9) 4.2 数码管温度显示电路 (9) 4.2.1 数码管的分类 (9) 4.2.2 数码管的驱动方式 (10) 4.2.3 恒流驱动与非恒流驱动对数码管的影响 (11) 4.3 单片机接口电路 (12) 4.3.1 P0口的上拉电阻原理 (12) 4.3.2 上拉电阻的选择 (14) 4.4 单片机电源及下载线电路 (14) 4.5 温度控制电路 (15) 第五章温度控制的软件设计 (17) 5.1 数码管动态显示 (17) 5.2 DS18B20初始化 (17) 5.3 系统流程图 (19) 谢辞 (20) 参考文献 (21) 附录 (22)

温度传感器DS18B20工作原理

温度传感器: DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。 2 DS18B20的内部结构 DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。 ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 图1 DS18B20的内部结构

图2DS18B20的管脚排列 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 温度值高字节 高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下: R1、R0决定温度转换的精度位数:R1R0=“00”,9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;未编程时默认为12位精度。 高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。 3 DS18B20的工作时序 DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3(a)(b)(c)所示。

DS18B20温度传感器工作原理及其应用电路图

DS18B20温度传感器工作原理及其应用电路图 时间:2012-02-16 14:16:04 来源:赛微电子网作者: 前言 温度与工农业生产密切相关,对温度的测量和控制是提高生产效率、保证产品质量以及保障生产安全和节约能源的保障。随着工业的不断发展,由于温度测量的普遍性,温度传感器的市场份额大大增加,居传感器首位。数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。现在,新一代的DS18B20温度传感器体积更小、更经济、更灵活。DS18B20温度传感器测量温度范围为-55℃~+125℃。在-10℃~+85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。基于DS18B20温度传感器的重要性,小编整理出DS18B20温度传感器工作原理及其应用电路图供大家参考。 一、DS18B20温度传感器工作原理(热电阻工作原理) DS18B20温度传感器工作原理框图如图所示: DS18B20温度传感器工作原理框图 图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 二、DS18B20温度传感器的应用电路 1.DS18B20温度传感器寄生电源供电方式电路图 寄生电源方式特点: (1)进行远距离测温时,无须本地电源。 (2)可以在没有常规电源的条件下读取ROM。 (3)电路更加简洁,仅用一根I/O口实现测温。 (4)只适应于单一温度传感器测温情况下使用,不适于采用电池供电系统中。

基于单片机的温湿度检测及显示

1设计的意义 最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作与自动控制的单片机应用到系统中,单片机如今就是作为一个核心部件来使用,仅掌握单片机方面知识就是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。“单片机原理及应用课程设计”就是电子类专业的学科基础科,它就是继“汇编语言程序设计”,“接口技术”等课程之后开出的实践环节课程。 与此同时,现代社会越来越多的场所会涉及到温度与湿度并将其显示。由于温度与湿度不管就是从物理量本身还就是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应就是工作效率高。18℃,湿度应就是40%至60%,此时,人的精神状态好,思维最敏捷。所以,本课程设计就就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其她有关设计的基础。

2设计原理 2、1设计目标 2.1.1基本功能 检测温度、湿度 显示温度、湿度 过限报警 2.1.2主要技术参数 温度检测范围: -30℃至+55℃ 测量精度: ±2℃ 湿度检测范围: 20%-90%RH 检测精度:±5%RH 显示方式: 温度:四位显示湿度:四位显示 报警方式: 三极管驱动的蜂鸣器报警 2、2设计原理 温湿度监测系统要满足以下条件:温湿度监测系统能完成数据采集与处理、显示、串行通信、输出控制信号等多种功能。由数据采集、数据调理、单片机、数据显示等4个大的部分组成。该测控系统具有实时采集(检测粮库内的温湿度)、实时显示(对监测到的进行显示)、实时警报(根据监测的结果,超出预设定的值的进行蜂鸣警告)的功能。 传感器就是实现测量首要环节,就是监测系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉与转换,一切准确的测量与控制都将无法实现。工业生产过程的自动化测量与控制,几乎主要依靠各种传感器来检测与控制生产过程中的各种参量,使设备与系统正常运行在最佳状态,从而保证生产的高效率与高质量。 一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准与标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问

51单片机操作DS18B20汇编源程序

51单片机操作DS18B20汇编源程序 推荐 ; FLAG1:标志位,为"1"时表示检测到DS18B20 ; DQ:DS18B20的数据总线接脚 ; TEMPER_NUM:保存读出的温度数据 ; 本程序仅适合单个DS18B20和51单片机的连接,晶振为12MHZ左右TEMPER_LEQU36H TEMPER_HEQU35H DQBITP1.7 ; DS18B20初始化程序 ;//*****************************************// INIT_1820: SETBDQ NOP CLRDQ MOVR0,#06BH TSR1: DJNZR0,TSR1; 延时 SETBDQ MOVR0,#25H TSR2: JNBDQ,TSR3 DJNZR0,TSR2 LJMPTSR4; 延时 TSR3: SETBFLAG1; 置标志位,表示DS1820存在 LJMPTSR5 TSR4: CLRFLAG1; 清标志位,表示DS1820不存在 LJMPTSR7 TSR5: MOVR0,#06BH TSR6: DJNZR0,TSR6; 延时 TSR7: SETBDQ RET ;//*****************************************//

; 重新写DS18B20暂存存储器设定值 ;//*****************************************// RE_CONFIG: JBFLAG1,RE_CONFIG1; 若DS18B20存在,转RE_CONFIG1 RET RE_CONFIG1: MOVA,#0CCH; 发SKIP ROM命令 LCALLWRITE_1820 MOVA,#4EH; 发写暂存存储器命令 LCALLWRITE_1820 MOVA,#00H; TH(报警上限)中写入00H LCALLWRITE_1820 MOVA,#00H; TL(报警下限)中写入00H LCALLWRITE_1820 MOVA,#1FH; 选择9位温度分辨率 LCALLWRITE_1820 RET ;//*****************************************// ; 读出转换后的温度值 ;//*****************************************// GET_TEMPER: SETBDQ; 定时入口 LCALLINIT_1820 JBFLAG1,TSS2 RET; 若DS18B20不存在则返回 TSS2: MOVA,#0CCH; 跳过ROM匹配 LCALLWRITE_1820 MOVA,#44H; 发出温度转换命令 LCALLWRITE_1820 LCALLINIT_1820 MOVA,#0CCH; 跳过ROM匹配 LCALLWRITE_1820 MOVA,#0BEH; 发出读温度命令 LCALLWRITE_1820 LCALLREAD_1820 MOVTEMPER_NUM,A; 将读出的温度数据保存 RET ;//*****************************************// ; 读DS18B20的程序,从DS18B20中读出一个字节的数据

相关文档
最新文档