基于单片机SHT11温湿度传感器电路图于程序

基于单片机SHT11温湿度传感器电路图于程序
基于单片机SHT11温湿度传感器电路图于程序

基于89C51单片机SHT11温湿度传感器电路图于程序作者:张志杰

SHT11、h文件:

#ifndef __SHT11_H__

#define __SHT11_H__

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

SHT11相关命令

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

#define uchar unsigned char

#define uint unsigned int

#define TEM_TEST 0x03//温度检测命令

#define HUM_TEST 0x05//湿度检测命令

#define REG_READ 0x07//读寄存器

#define REG_WRITE 0x06//写寄存器

#define FUNCTION_SET 0x01//设置SHT11得工作精度为8位/湿度12位温度/**************************

SHT11端口定义

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

sbit SHT11_DATA=P3^1;

sbit SHT11_SCK=P3^0;

sbit P33=P3^3;

sbit P32=P3^2;

sbit P36=P3^6;

sbit P37=P3^7;

uchar flag_tempeture=0; //显示温度位置得标志

uchar flag_humidity=0; //显示湿度位置得标志

uchar code str1[]={ 0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//温度图标

uchar code str6_sht11[]="%RH ";

uchar code str4_sht11[]="humi=";

uchar code str2_sht11[]="temp=";

uchar code str7_sht11[]=" ";//清除没不要得显示

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

函数名称:Delay

函数功能:SHT11内部延时

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

void Delay

{

;

;

}

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

函数名称:Delay_Ms

函数功能:SHT11检测等待延时

函数说明:11ms/55ms/210ms 分别对应8位/12位/14位测量结果

对应得形参为N 则延时Nms

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

void Delay_Ms(uint ms) // ms延时函数(AT89C51 11、0592MHz)

{

uint i;

uchar j;

for(i=0;i

{

for(j=0;j<200;j++);

for(j=0;j<102;j++);

}

}

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

函数功能:SHT11启动时序

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

void SHT11_Start

{

SHT11_SCK=1;

SHT11_DATA=1;

Delay;

SHT11_DATA=0;

Delay;

SHT11_SCK=0;

Delay;

SHT11_SCK=1;

Delay;

SHT11_DATA=1;

}

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

函数名称:SHT11_Sendbyte(uchar dat) 函数功能: 向SHT11发送8bite数据

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

void SHT11_Sendbyte(uchar dat) {

uchar i;

SHT11_SCK=0;

Delay;

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

{

if(dat&0x80)

{

SHT11_DATA=1;

Delay;

}

else

{

SHT11_DATA=0;

Delay;

}

dat=dat<<1;

SHT11_SCK=1;

Delay;

SHT11_SCK=0;

}

}

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

函数名称SHT11_Answer:

函数功能:检测SHT11得响应信号(在第九个时钟周期)

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

void SHT11_Answer

{

SHT11_SCK=1;

Delay;

while(SHT11_DATA==1);

SHT11_SCK=0;

SHT11_DATA=1;

}

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

函数名称:SHT11_T est_Finish

函数功能:检测SHT11温湿度检测就是否完毕

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

void SHT11_T est_Finish

{

while(SHT11_DATA==1);

}

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

函数名称:SHT11_Receivebyte

函数功能:从SHT11接收8bite数据

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

uchar SHT11_Receivebyte

{

uchar i;

uchar dat;

SHT11_SCK=0;

Delay;

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

{

SHT11_SCK=1;

Delay;

dat=dat<<1;

if(SHT11_DATA)

{

dat=dat|0x01;

Delay;

}

else

{

dat=dat&0xfe;

Delay;

}

SHT11_SCK=0;

Delay;

}

SHT11_DATA=1; //释放数据总线

return(dat);

}

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

函数名称:MCU_Answer

函数功能:单片机向SHT11发送应答信号

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

void MCU_Answer

{

SHT11_SCK=0;

Delay;

SHT11_DATA=0;

Delay;

SHT11_SCK=1;

Delay;

SHT11_SCK=0;

Delay;

SHT11_DATA=1; //释放数据总线这条指令非常重要不加得话导致单片机不能读取低8位

}

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

函数名称:SHT11_End

当接收两个8byte数据后部接收CRC校验码

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

void SHT11_End

{

SHT11_DATA=1;

SHT11_SCK=1;

Delay;

SHT11_SCK=0;

Delay;

}

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

函数名称:void SHT11_Write_Register(uchar mand ,uchar dat)

函数说明:向SHT11得状态寄存器设置功能

mand为REG_WRITE 0x06写寄存器

dat为设置SHT11得功能可以设置检测得数据位数

*/

void SHT11_Write_Register(uchar mand ,uchar dat)

{

SHT11_Start;

SHT11_Sendbyte(mand);

SHT11_Answer;

SHT11_Sendbyte(dat);

SHT11_Answer;

}

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

函数名称:uchar SHT11_Read_Register(uchar mand)

函数说明:mand为REG_READ 0x07//读寄存器

返回值为状态寄存器得值

位6显示当前检测完一次数据后电源供电情况

当位6为0时表明VDD>2、47V 当位6为1时表明VDD<2、47V即电量不足位0表明当前得测量分辨率

当位0为1时表明测量精度:8位/湿度12位温度

当位0为0时表明测量精度:12位湿度14位温度

默认为0

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

uchar SHT11_Read_Register(uchar mand)

{

uchar dat;

SHT11_Start;

SHT11_Sendbyte(mand);

SHT11_Answer;

dat=SHT11_Receivebyte;

SHT11_End;

return(dat);

}

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

函数名称:SHT11_Measure(uchar mand,uint time);

函数功能:设置SHT11检测功能,并返回相应得检测结果

函数说明:mand形参用于设定温度检测还就是湿度检测,

time形参用于设定检测过程中得等待时间,以确定检测结果得位数

11ms/55ms/210ms 分别对应8位/12位/14位

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

uint SHT11_Measure(uchar mand,uchar time)

{

uint dat=0;

uchar data_high,data_low;

SHT11_Start;

SHT11_Sendbyte(mand);

SHT11_Answer;

Delay_Ms(time);

SHT11_T est_Finish;

data_high=SHT11_Receivebyte;

MCU_Answer;

data_low=SHT11_Receivebyte;

SHT11_End;

dat=(dat|data_high);

dat=(dat<<8)|data_low;

return(dat);

}

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

函数名称:Convert_T empeture12bit(uint dat); 函数功能:将检测到得数据转化为相应得温度数据函数说明:温度转换公式T=d1+d2*SOt

公式中得参数d1=40,d2=0、04

适用于12位测量精度

*/

float SHT11_Convert_T empeture12bit(uint dat) {

float tempeture1;

tempeture1=40+0、04*dat;

if(tempeture1>23)

tempeture1=tempeture1+1;

if(tempeture1>55)

tempeture1=tempeture1+1;

if(P37==1)

{

if(tempeture1>=16&&tempeture1<30)

{

P33=1;

P32=0;

}

else

{

P33=0;

P32=1;

}

}

return(tempeture1);

}

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

函数名称:SHT11_Convert_Humidity8bit(uint dat,float temp)

函数功能:将检测到得数据转化为相应得湿度数据

函数说明:相对湿度转换公式RHline=C1+C2*SOrh+C3*SOrh*SOrh(检测数据得线性化SOrh 为单片机接收到得数据)

RHtrue=(tempeture25)*(t1+t2*SOrh)+RHline

公式中得参数:C1=4,C2=0,648,C3=0、00072

t1=0、01,t2=0、00128

适用于8位测量精度

*/

uint SHT11_Convert_Humidity8bit(uint dat,float temp)

{

float RHline,RHtrue;

uint r;

RHline=4+0、648*dat0、00072*dat*dat;

RHtrue=(temp25)*(0、01+0、00128*dat)+RHline;

r=(RHtrue3)*10+0、5;

if(P37==0)

{

if(r>=400&&r<600)

{

P33=1;

}

else

{

P33=0;

}

if(r>=600)

{

P32=1;

}

else

{

P32=0;

}

}

return(r);

}

#endif

Display、c文件:

#include

#include "SHT11、h"

#define uchar unsigned char

#define uint unsigned int

#define TEM_TEST 0x03//温度检测命令

#define HUM_TEST 0x05//湿度检测命令

#define REG_READ 0x07//读寄存器

#define REG_WRITE 0x06//写寄存器

#define FUNCTION_SET 0x01//设置SHT11得工作精度为8位/湿度12位温度

uchar DispData[4] = {0, 1, 2, 3};

code uchar DispSegmentP0[10]={0x3f,0x06,0x1b,0x0f,0x26,0x2d,0x3d,0x07,0x3f,0x2f}; code uchar DispSegmentP2[10]={0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x00,0x22,0x22};

// 0 1 2 3 4 5 6 7 8 9 % code uchar DispCtrl[4] = {0xef, 0xdF, 0xbf ,0x7F};

sbit P16=P1^6;

sbit P26=P2^6;

sbit P34=P3^4;

void T emp_delay(unsigned int j)

{

uchar i;

for(i=100;i>0;i)

{

for(j;j>0;j);

}

}

void Show(uchar *Buffer)

{

uchar i;

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

{

P1 = DispCtrl[i];

P0 = DispSegmentP0[*Buffer];

P2 = DispSegmentP2[*Buffer];

if(P16==0)

P26=1;

T emp_delay(2);

Buffer++;

}

}

void DispConvert(uchar *DispAddr, uint T emp2Con)

{

DispAddr[0] = T emp2Con/1000;

DispAddr[1] = (T emp2Con DispAddr[0]*1000)/100;

DispAddr[2] = (T emp2Con DispAddr[0]*1000 DispAddr[1]*100)/10;

DispAddr[3] = T emp2Con DispAddr[0]*1000 DispAddr[1]*100 DispAddr[2]*10;

}

void main

{

uint temp;

uint dat;

uint Hum;

//float f;

while(1)

{

Show(DispData);

SHT11_Write_Register(REG_WRITE,FUNCTION_SET);

temp=SHT11_Measure(TEM_TEST,0x37);

temp=SHT11_Convert_T empeture12bit(temp);

dat=SHT11_Measure(HUM_TEST,0x0b);

Hum=SHT11_Convert_Humidity8bit(dat,temp);

if(P34==0)

{

P36=1;

P37=0;

DispConvert(DispData,Hum);

}

else

{

P36=0;

P37=1;

DispConvert(DispData,temp*10);

}

}

}

还有些地方不就是很完美

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

基于51单片机的DHT11温湿度传感器 #include #include #define uchar unsigned char #define uint unsigned int sbit dth=P1^0; sbit dula=P2^6; sbit wela=P2^7; uchar s8h,s8h_temp,s8l,s8l_temp,w8h,w8h_temp,w8l,w8l_temp,check8,check8_temp,flag=0; float sd,wd; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void Delay_10us() //进入函数3us { uchar i; //每条语句1us i--; i--; i--; i--; i--; i--; } void display(uchar th,uchar tl) { uchar ih=0,il=0,jh=0,jl=0,kh=0,kl=0; ih=th/100; jh=th%100/10; kh=th%10; il=tl/100; jl=tl%100/10; kl=tl%10; P0=0xfe;

wela=0; P0=table[ih]; dula=1; dula=0; delayms(2); P0=0xfd; wela=1; wela=0; P0=table[jh]; dula=1; dula=0; delayms(2); P0=0xfb; wela=1; wela=0; P0=table[kh+10]; dula=1; dula=0; delayms(2); P0=0xf7; wela=1; wela=0; P0=table[il]; dula=1; dula=0; delayms(2); P0=0xef; wela=1; wela=0; P0=table[jl]; dula=1; dula=0; delayms(2); P0=0xdf; wela=1; wela=0; P0=table[kl]; dula=1;

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

基于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范

大学物理实验-温度传感器实验报告

关于温度传感器特性的实验研究 摘要:温度传感器在人们的生活中有重要应用,是现代社会必不可少的东西。本文通过控制变量法,具体研究了三种温度传感器关于温度的特性,发现NTC电阻随温度升高而减小;PTC电阻随温度升高而增大;但两者的线性性都不好。热电偶的温差电动势关于温度有很好的线性性质。PN节作为常用的测温元件,线性性质也较好。本实验还利用PN节测出了波 尔兹曼常量和禁带宽度,与标准值符合的较好。 关键词:定标转化拟合数学软件 EXPERIMENTAL RESEARCH ON THE NATURE OF TEMPERATURE SENSOR 1.引言 温度是一个历史很长的物理量,为了测量它,人们发明了许多方法。温度传感器通过测温元件将温度转化为电学量进行测量,具有反应时间快、可连续测量等优点,因此有必要对其进行一定的研究。作者对三类测温元件进行了研究,分别得出了电阻率、电动势、正向压降随温度变化的关系。 2.热电阻的特性 2.1实验原理 2.1.1Pt100铂电阻的测温原理 和其他金属一样,铂(Pt)的电阻值随温度变化而变化,并且具有很好的重现性和稳定性。利用铂的此种物理特性制成的传感器称为铂电阻温度传感器,通常使用的铂电阻温度传感器零度阻值为100Ω(即Pt100)。铂电阻温度传感器精度高,应用温度范围广,是中低温区(-200℃~650℃)最常用的一种温度检测器,本实验即采用这种铂电阻作为标准测温器件来定标其他温度传感器的温度特性曲线,为此,首先要对铂电阻本身进行定标。 按IEC751国际标准,铂电阻温度系数TCR定义如下: TCR=(R100-R0)/(R0×100) (1.1) 其中R100和R0分别是100℃和0℃时标准电阻值(R100=138.51Ω,R0=100.00Ω),代入上式可得到Pt100的TCR为0.003851。 Pt100铂电阻的阻值随温度变化的计算公式如下: Rt=R0[1+At+B t2+C(t-100)t3] (-200℃

基于单片机的温度传感器的设计说明

基于单片机的温度传感器 的设计 目录 第一章绪论-------------------------------------------------------- ---2 1.1 课题简介 ----------------------------------------------------------------- 2 1.2 设计目的 ----------------------------------------------------------------- 3 1.3 设计任务 ----------------------------------------------------------------- 3 第二章设计容与所用器件 --------------------------------------------- 4第三章硬件系统设计 -------------------------------------------------- 4 3.1单片机的选择------------------------------------------------------------- 4 3.2温度传感器介绍 ---------------------------------------------------------- 5 3.3温度传感器与单片机的连接---------------------------------------------- 8 3.4单片机与报警电路-------------------------------------------------------- 9 3.5电源电路----------------------------------------------------------------- 10 3.6显示电路----------------------------------------------------------------- 10 3.7复位电路----------------------------------------------------------------- 11 第四章软件设计 ----------------------------------------------------- 12 4.1 读取数据流程图--------------------------------------------------------- 12 4.2 温度数据处理程序的流程图 -------------------------------------------- 13 4.3程序源代码 -------------------------------------------------------------- 14

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

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

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.360docs.net/doc/911606385.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 头文件包含到主程序

基于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) {

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 ℃。固有测温分辨率为0.5 ℃。 ⑤通过编程可实现9~12位的数字读数方式。 ⑥用户可自设定非易失性的报警上下限值。 ⑦支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。 ⑧负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 2.引脚介绍 DS18B20有两种封装:三脚TO-92直插式(用的最多、最普遍的封装)和八脚SOIC贴片式。下图为实验板上直插式DS18B20的原理图。 3.工作原理 单片机需要怎样工作才能将DS18B20中的温度数据独取出来呢?下面将给出详细分析。

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)

温度采集实验报告

课程设计任务书 题目基于AD590的温度测控系统设计 系(部) 信息科学与电气工程学院 专业电气工程及其自动化 班级电气092 学生姓名刘玉兴 学号090819210 月日至月日共周 指导教师(签字) 系主任(签字) 年月日

摘要 温度是工业生产和自动控制中最常见的工艺参数之一。过去温度检测系统设计中,大多采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。随着半导体技术的高速发展,特别是大规模集成电路设计技术的发展, 数字化、微型化、集成化成为了传感器发展的主要方向。 以单片机为核心的控制系统.利用汇编语言程序设计实现整个系统的控制过程。在软件方面,结合ADC0809并行8位A/D转换器的工作时序,给出80C51单片机与ADC0908并行A /D转换器件的接口电路图,提出基于器件工作时序进行汇编程序设计的基本技巧。本系统包括温度传感器,数据传输模块,温度显示模块和温度调节驱动电路,其中温度传感器为数字温度传感器AD590,包括了单总线数据输出电路部分。文中对每个部分功能、实现过程作了详细介绍。 关键词:单片机、汇编语言、ADC0809、温度传感器AD590

Abstract Temperature is the most common one of process parameters in automatic control and industrial production. In the traditional temperature measurement system design, often using simulation technology to design, and this will inevitably encounter error compensation, such as lead,complex outside circuit,poor anti-jamming and other issues, and part of a deal with them Improperly, could cause the entire system of the decline. With modern science and technology of semiconductor development, especially large-scale integrated circuit design technologies, digital, miniaturization, integration sensors are becoming an important direction of development. In the control systems with the core of SCM,assembly language programming is used to achieve the control of the whole system.Combining with the operation sequence of ADC0809,the interface circuit diagrams of 80C51 SCM and ADC0809 parallel A/D conveger ale given.The basic skills of assembly language programming based on the operation se—quenee of the chip ale put forward.This system include temperature sensor and data transmission, the moduledisplays

基于51单片机SHT11温湿度传感器检测程序

基于51单片机SHT11温湿度传感器检测程序(含电路图) 下面是原理图: 下面是SHT11与MCU连接的典型电路: 下面是源代码:

#include #include /******************************************************** 宏定义 ********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1 #define STATUS_REG_W 0x06 #define STATUS_REG_R 0x07 #define MEASURE_TEMP 0x03 #define MEASURE_HUMI 0x05 #define RESET 0x1e enum {TEMP,HUMI}; typedef union //定义共用同类型 { unsigned int i; float f; } value; /******************************************************** 位定义 ********************************************************/ sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcden=P2^2; sbit SCK = P1^0; sbit DATA = P1^1; /******************************************************** 变量定义 ********************************************************/ uchar table2[]="SHT11 温湿度检测"; uchar table3[]="温度为:℃"; uchar table4[]="湿度为:"; uchar table5[]="."; uchar wendu[6]; uchar shidu[6]; /******************************************************** 1ms延时函数

温度传感器实验报告

温度传感器实验 姓名学号 一、目的 1、了解各种温度传感器(热电偶、铂热电阻、PN 结温敏二极管、半导体热敏电阻、集成温度传感器)的测温原理; 2、掌握热电偶的冷端补偿原理; 3、掌握热电偶的标定过程; 4、了解各种温度传感器的性能特点并比较上述几种传感器的性能。 二、仪器 温度传感器实验模块 热电偶(K 型、E 型) CSY2001B 型传感器系统综合实验台(以下简称主机) 温控电加热炉 连接电缆 万用表:VC9804A,附表笔及测温探头 万用表:VC9806,附表笔 三、原理 (1)热电偶测温原理 由两根不同质的导体熔接而成的闭合回路叫做热电回路,当其两端处于不同温度时则回路中产生一定的电流,这表明电路中有电势产生,此电势即为热电势。

图1中T 为热端,To 为冷端,热电势 本实验中选用两种热电偶镍铬—镍硅(K 分度)和镍铬—铜镍(E 分度)。 (2)热电偶标定 以K 分度热电偶作为标准热电偶来校准E 分度热电偶,被校热电偶热电势与标准热电偶热电势的误差为 式中:——被校热电偶在标定点温度下测得的热电势平均值。 ——标准热电偶在标定点温度下测得的热电势平均值。 ——标准热电偶分度表上标定温度的热电势值。

——被校热电偶标定温度下分度表上的热电势值。 ——标准热电偶的微分热电势。 (3)热电偶冷端补偿 热电偶冷端温度不为0℃时,需对所测热电势值进行修正,修正公式为: E(T,To)=E(T,t1)+E(T1,T0) 即:实际电动势=测量所得电势+温度修正电势 (4)铂热电阻 铂热电阻的阻值与温度的关系近似线性,当温度在0℃≤T≤650℃时, 式中:——铂热电阻T℃时的电阻值 ——铂热电阻在0℃时的电阻值 A——系数(=3.96847×10-31/℃) B——系数(=-5.847×10-71/℃2) 将铂热电阻作为桥路中的一部分在温度变化时电桥失衡便可测得相应电路的输出电压变化值。 (5)PN结温敏二极管 半导体PN 结具有良好的温度线性,根据PN 结特性表达公式 可知,当一个PN 结制成后,其反向饱和电流基本上只与温度有关,温度每升高一度,PN 结正向压降就下降2mv,利用PN 结的这一特性可以测得温度的变化。 (6)热敏电阻 热敏电阻是利用半导体的电阻值随温度升高而急剧下降这一特性制成的热敏元件。它呈负温度特性,灵敏度高,可以测量小于0.01℃的温差变化。图2为金属铂热电阻与热敏电阻温度曲线的比较。

基于单片机的数字温度计设计课程设计

摘要 温度的检测与控制是工业生产过程中比较典型的应用。本设计以AT89C52单片机为核心,采用DS18B20温度传感器检测温度,由温度采集、温度显示,温度报警等功能模块组成。基于题目基本要求,本系统对温度采集和温度显示系统行了重点设计。本系统大部分功能能由软件实现,吸收了硬件软件化的思想。实际操作时,各功能在开发板上也能完美实现。本系统实现了要求的基本功能,其余发挥部分也能实现。 关键字:AT89C52单片机、DS18B20温度传感器、数码管显示、温度采集

目录 一.绪论 .............................................................................................................

二.设计目的..................................................................................................... 三.设计要求..................................................................................................... 四.设计思路..................................................................................................... 五.系统的硬件构成及功能................................................................. 5.1主控制器............................................................................................... 5.2显示电路............................................................................................... 5.3温度传感器.......................................................................................... 六.系统整体硬件电路................................................................................. 七.系统程序设计 .......................................................................................... 八.测量及其结果分析 ................................................................................... 九.设计心得体会............................................................................................ 十.参考文献..................................................................................................... 附录1 源程序 附录2 元件清单及PCB图 一.绪论

传感器测试实验报告

实验一 直流激励时霍尔传感器位移特性实验 一、 实验目的: 了解霍尔式传感器原理与应用。 二、基本原理: 金属或半导体薄片置于磁场中,当有电流流过时,在垂直于磁场和电流的方向上将产生电动势,这种物理现象称为霍尔效应。具有这种效应的元件成为霍尔元件,根据霍尔效应,霍尔电势U H =K H IB ,当保持霍尔元件的控制电流恒定,而使霍尔元件在一个均匀梯度的磁场中沿水平方向移动,则输出的霍尔电动势为kx U H ,式中k —位移传感器的灵敏度。这样它就可以用来测量位移。霍尔电动势的极性表示了元件的方向。磁场梯度越大,灵敏度越高;磁场梯度越均匀,输出线性度就越好。 三、需用器件与单元: 霍尔传感器实验模板、霍尔传感器、±15V 直流电源、测微头、数显单元。 四、实验步骤: 1、将霍尔传感器安装在霍尔传感器实验模块上,将传感器引线插头插入实验模板的插座中,实验板的连接线按图9-1进行。1、3为电源±5V , 2、4为输出。 2、开启电源,调节测微头使霍尔片大致在磁铁中间位置,再调节Rw1使数显表指示为零。 图9-1 直流激励时霍尔传感器位移实验接线图 3、测微头往轴向方向推进,每转动0.2mm 记下一个读数,直到读数近似不变,将读数填入表9-1。 表9-1 X (mm ) V(mv)

作出V-X曲线,计算不同线性范围时的灵敏度和非线性误差。 五、实验注意事项: 1、对传感器要轻拿轻放,绝不可掉到地上。 2、不要将霍尔传感器的激励电压错接成±15V,否则将可能烧毁霍尔元件。 六、思考题: 本实验中霍尔元件位移的线性度实际上反映的时什么量的变化? 七、实验报告要求: 1、整理实验数据,根据所得得实验数据做出传感器的特性曲线。 2、归纳总结霍尔元件的误差主要有哪几种,各自的产生原因是什么,应怎样进行补偿。

温湿度计说明书

使用电池:AAA1.5V 1节 HTC-1温湿度计用户手册 产品规格: 湿度分辨率:1% 温度测量范围:-10℃~70℃ 温度测量精度:约±1.0℃(1.8 oF)温度分辨率:0.1℃(0.2 oF) 湿度测量范围:30%RH~99%RH。 湿度测量精度:±5%(30%-70%) ±7%(其他) 基本功能: 温度/湿度显示 ℃/ oF温度切换显示 最高/最低温湿度记忆功能 12/24小时制时钟 整点报时功能 每日闹钟功能 日历显示功能 操作方法: 1、依机背指示方向推开电池门,取出电池隔片,然后装回电池门,该机即可用。 2、按键功能:(MODE)切换时钟与闹钟显示模式/设定当前时间、

闹钟、12或24小时制、日期(ADJ)调整被设项目的数值;(MEMORY)显示记忆中的最高/最低温湿度值/清除记忆的最高/ 最低温湿度值;(℃/ oF)切换温度单位以℃(摄氏度)或oF(华氏度)显示;(RESET)清除所有设定/记忆值,返回初始状态。 3、在初始状态下按住(MODE)1秒,当前时间的分钟数开始闪动,按(ADJ)可以调节分钟数,连续按(MODE)可以分别设定“时钟”、“12/24”、“月(M)”、“日(D)” 4、在当前时钟模式下,(时钟与分钟之间的两点每秒闪动一次)切换显示为闹钟模式(时钟与分钟之间的两点不闪动),此时按(ADJ)可以切换“闹钟”(Alarm)功能/“整点报时”()功能的开与关,再按住(MODE)2秒,可以设定闹铃时间,同时启动“整点极时”功能,()符号出现。 5、在闹钟模式下,若无任何操作则一分钟后自动返回当前时钟,此时按一次(ADJ)切换至日历显示,3秒后自动返回当前时钟按 MAX/MIN钮,显示温/湿度最后次清除(CLEAR)以来的最大值。 6、按(MEMORY)可以显示记忆的温/湿度最大值(MAX)和最小值(MIN),按住(MEMORY)超过2秒可清除记忆的最大/最小值。 注意事项: 1、初次使用/更换电池时请按一次(RESET)(在机背后); 2、若该机出现任何不良,请按一次(RESET) 3、电池用完后请放回政府指定地点

单片机中使用DS18B20温度传感器C语言程序文件

单片机中使用DS18B20温度传感器C语言程序(参考1) /******************************************************************************** DS18B20 测温程序 硬件:AT89S52 (1)单线ds18b20接P2.2 (2)七段数码管接P0口 (3)使用外部电源给ds18b20供电,没有使用寄生电源 软件:Kei uVision 3 **********************************************************************************/ #include "reg52.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int sbit ds=P2^2; sbit dula=P2^6; sbit wela=P2^7; uchar flag ; uint temp; //参数temp一定要声明为int 型 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //不带小数点数字编码uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

0x87,0xff,0xef}; //带小数点数字编码 /*延时函数*/ void TempDelay (uchar us) { while(us--); } void delay(uint count) //延时子函数 { uint i; while(count) { i=200; while(i>0) i--; count--; } } /*串口初始化,波特率9600,方式1 */ void init_com() { TMOD=0x20; //设置定时器1为模式2 TH1=0xfd; //装初值设定波特率

单片机 湿度传感器

基于单片机的温湿度感测系统的实现 2012-03-05来源:中国仪表网 温湿度的测量与控制在工业生产、气象、环保及日常生活的许多领域得到越来越广泛的应用,有很多地方都需要对温度和湿度进行定时或实时监控。人们除对温湿度传感器的普通性能(如精确度、长期漂移特性等)感兴趣外,还把目光聚集到其在不同环境下的耐久性、元件尺寸、数字化、简单和快速的系统综合特性上。SHTll是瑞士Sensirion公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。 1、系统组成及硬件设计 温湿度感测系统将单片机与温湿度传感器等技术相结合,以PIC单片机为微控制器,利用数字温湿度传感器SHTll对环境的温度和相对湿度进行检测,通过二线串行接口将数字温湿度信号送至PIC微控制器,最后利用PIC微控制器完成相对湿度的非线性补偿和温度补偿,并将实际温度和相对湿度值送液晶显示器显示,从而实现对环境温湿度的测控。温湿度感测系统主要由温湿度传感器SHTll和PIC单片机以及162字符型液晶显示屏组成。 1.1数字温湿度传感器SHTll 温湿度传感器SHTll将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图1所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号。SHTll在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准寄存器中,在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHTll 内部还集成了一个加热元件,加热元件接通后可以将SHTll的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHTll温度升高、相对湿度降低,较加热前,测量值会略有差异。 单片机和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA 为数据线,硬件接口电路非常简单。需要注意的是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHTll之间通信同步,由于接口包含了完全静态逻辑,所以对SCK 最低频率没有要求,当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V时,SCK最高频率为1MHz。由于所用单片机不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,并利用RA0口来虚拟数据线DATA,RA1口线来虚拟时钟线,并

相关文档
最新文档