文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图

基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图

基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图
基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图

AM2301温湿度传感器模块

AM2301数字温湿度传感器是一各包括有数字校准输出的温湿度传感器。它采用独特的数字采集模块和高新温湿度采集传感技术,可以确保产品可靠性高以及稳定性好。该款传感器具有响应快、抗干扰力强、性价比高、品质卓越等优点。以及超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用的最佳选则。[9]

AM2301 引脚图

图3-10 AM2301引脚图

AM2301各引脚说明

表3-7 AM2301引脚

引脚颜色名称注释

1 红色VDD 供电 3.3-5.5VDC

2 黄色SDA 串行数据,单总线

3 黑色GND 接地,电源负极

4 NC 空脚,请悬空(不要接Vcc或Gnd)

AM2301 技术参数

表3-8 AM2301技术参数

参数条件Min Typ Max 单位

湿度

分辨率0.1 %RH

16 Bit

重复性±1 %RH 精度25℃±3 %RH 0-50℃±5 %RH 互换性可完全互换

采样周期 1 2 S

响应时间1/e(63%)25℃,

1m/s 空气

2 S

迟滞±0.3 %RH 长期稳定性典型值±1 %RH/yr

温度

分辨率0.1 ℃

16 Bit

重复性±0.5 ℃精度±1 ℃

量程范围-40 80 ℃

响应时间1/e(63%) 6 20 S AM2301 驱动电路

图3-11 AM2301驱动电路图

温湿度传感器模块流程设计

用户主机(MCU)发送一次开始信号后,AM2301自动从休眠模式转换到高速模式。等待主机开始,信号发送后,AM2301发送响应信号,送出40比特的数据,发送数据结束之后触发一次信号采集,对外部环境进行数据采集,采集结束传感器自动转入休眠模式,直到下一次通信信号的来临。此时AM2301的SDA数据线由上拉电阻拉高,一直保持高电平,且AM2301的SDA引脚处于输入状态,时刻检测外部信号。一旦接收到主机发送的信号,再次进入采集状态,对外部数据进行一次采集。整个过程流程图如下:

图4-10温湿度传感器流程图

1602 LCD显示屏测试

根据第三章说明的LCD硬件连线要求,将屏幕的14个接口按要求分别连接至单片机的各端口,确认无误后,个单片机上电,并将编完的程序通过STC-ISP 软件烧入到单片机中,连线图如下:

图5-3 LCD1602连线图

给单片机上电之后,屏幕显示如下:

图5-4 LCD1602显示效果

该LCD显示屏能正常显示预期设置字幕。

AM2301温湿度传感器测试

根据温湿度传感器驱动电路,实物连接图如下:

图5-7 AM2301连线图

给单片机上电,则可在LCD屏幕上得到如下数据:

图5-8 AM2301采集数据

LCD屏幕第一行显示当前室内湿度情况,第二行显示当前室内温度情况,若用吹风机对其吹风,则温湿度会相应变化。

附录

主要程序源代码:

1.REG5

2.H

/*--------------------------------------------------------------------------

REG52.H

Header generic 80C52 and 80C32 microcontroller.

Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.

--------------------------------------------------------------------------*/

#ifndef __REG52_H__

#define __REG52_H__

/* BYTE Registers */

sfr P0 = 0x80;

sfr P1 = 0x90;

sfr P2 = 0xA0;

sfr P3 = 0xB0;

sfr PSW = 0xD0;

sfr ACC = 0xE0;

sfr B = 0xF0;

sfr SP = 0x81;

sfr DPL = 0x82;

sfr DPH = 0x83;

sfr PCON = 0x87;

sfr TCON = 0x88;

sfr TMOD = 0x89;

sfr TL0 = 0x8A;

sfr TL1 = 0x8B;

sfr TH0 = 0x8C;

sfr TH1 = 0x8D;

sfr IE = 0xA8;

sfr IP = 0xB8;

sfr SCON = 0x98;

sfr SBUF = 0x99;

/* 8052 Extensions */

sfr T2CON = 0xC8;

sfr RCAP2L = 0xCA;

sfr RCAP2H = 0xCB;

sfr TL2 = 0xCC;

sfr TH2 = 0xCD;

/* BIT Registers */

/* PSW */

sbit CY = PSW^7;

sbit AC = PSW^6;

sbit F0 = PSW^5;

sbit RS1 = PSW^4;

sbit RS0 = PSW^3;

sbit OV = PSW^2;

sbit P = PSW^0; //8052 only

/* TCON */

sbit TF1 = TCON^7;

sbit TR1 = TCON^6;

sbit TF0 = TCON^5;

sbit TR0 = TCON^4;

sbit IE1 = TCON^3;

sbit IT1 = TCON^2;

sbit IE0 = TCON^1;

sbit IT0 = TCON^0;

/* IE */

sbit EA = IE^7;

sbit ET2 = IE^5; //8052 only sbit ES = IE^4;

sbit ET1 = IE^3;

sbit EX1 = IE^2;

sbit ET0 = IE^1;

sbit EX0 = IE^0;

/* IP */

sbit PT2 = IP^5;

sbit PS = IP^4;

sbit PT1 = IP^3;

sbit PX1 = IP^2;

sbit PT0 = IP^1;

sbit PX0 = IP^0;

/* P3 */

sbit RD = P3^7;

sbit WR = P3^6;

sbit T1 = P3^5;

sbit T0 = P3^4;

sbit INT1 = P3^3;

sbit INT0 = P3^2;

sbit TXD = P3^1;

sbit RXD = P3^0;

/* SCON */

sbit SM0 = SCON^7;

sbit SM1 = SCON^6;

sbit SM2 = SCON^5;

sbit REN = SCON^4;

sbit TB8 = SCON^3;

sbit RB8 = SCON^2;

sbit TI = SCON^1;

sbit RI = SCON^0;

/* P1 */

sbit T2EX = P1^1; // 8052 only

sbit T2 = P1^0; // 8052 only

/* T2CON */

sbit TF2 = T2CON^7;

sbit EXF2 = T2CON^6;

sbit RCLK = T2CON^5;

sbit TCLK = T2CON^4;

sbit EXEN2 = T2CON^3;

sbit TR2 = T2CON^2;

sbit C_T2 = T2CON^1;

sbit CP_RL2 = T2CON^0;

#endif

2.INTRINS.H

/*-------------------------------------------------------------------------- INTRINS.H

Intrinsic functions for C51.

Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.

--------------------------------------------------------------------------*/

#ifndef __INTRINS_H__

#define __INTRINS_H__

extern void _nop_ (void);

extern bit _testbit_ (bit);

extern unsigned char _cror_ (unsigned char, unsigned char); extern unsigned int _iror_ (unsigned int, unsigned char); extern unsigned long _lror_ (unsigned long, unsigned char); extern unsigned char _crol_ (unsigned char, unsigned char); extern unsigned int _irol_ (unsigned int, unsigned char); extern unsigned long _lrol_ (unsigned long, unsigned char); extern unsigned char _chkfloat_(float);

extern void _push_ (unsigned char _sfr);

extern void _pop_ (unsigned char _sfr);

#endif

3.STDIO.H

/*-------------------------------------------------------------------------- STDIO.H

Prototypes for standard I/O functions.

Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.

--------------------------------------------------------------------------*/

#ifndef __STDIO_H__

#define __STDIO_H__

#ifndef EOF

#define EOF -1

#endif

#ifndef NULL

#define NULL ((void *) 0)

#endif

#ifndef _SIZE_T

#define _SIZE_T

typedef unsigned int size_t;

#endif

#pragma SA VE

#pragma REGPARMS

extern char _getkey (void);

extern char getchar (void);

extern char ungetchar (char);

extern char putchar (char);

extern int printf (const char *, ...);

extern int sprintf (char *, const char *, ...);

extern int vprintf (const char *, char *);

extern int vsprintf (char *, const char *, char *);

extern char *gets (char *, int n);

extern int scanf (const char *, ...);

extern int sscanf (char *, const char *, ...);

extern int puts (const char *);

#pragma RESTORE

#endif

4.LCD1602.H

#include

#ifndef _LCD1602_H_H

#define _LCD1602_H_H

#define uchar unsigned char

#define uint unsigned int

//----------------函数声明--------------------------

void delayms(uchar z);

void writecmd(uchar com);

void writedata(uchar dat);

void init_LCD();

//----------------函数声明结束----------------------

//1602端口定义

sbit RS = P2^4 ; //数据命令选择端(H/L)

sbit RW = P2^5 ;//读写选择端(H/L)

sbit E=P2^6;

/* //自定义的字符(5X8)

uchar code tab1[]={0x03,0x05,0x19,0x19,0x19,0x05,0x03,0x00};//小喇叭

uchar code tab2[]={0x08,0x0f,0x12,0x0f,0x0a,0x1F,0x02,0x02,};//年

uchar code tab3[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00};//月

uchar code tab4[]={0x00,0x1F,0x11,0x1F,0x11,0x11,0x1F,0x00};//日

uchar code tab5[]={0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00};//C(温度符号) */

/*

void lcd_pos(uchar pos)//设定显示位置

{

lcd_wcmd(pos | 0x80) ;

}

*/

void delayms(uchar z) //延时函数

{

uint i,j;

for(i=z;i>0;i--)

for(j=100;j>0;j--);

}

void writecmd(uchar com) //写指令

{

RS=0;

RW=0;

E=0;

delayms(1);

P0=com;

delayms(1);

E=1;

delayms(1);

E=0;

}

void writedata(uchar dat) //写数据

{

RS=1;

RW=0;

E=0;

delayms(1);

P0=dat;

delayms(1);

E=1;

delayms(1);

E=0;

}

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

* 写汉字编码到CGRAM函数

**************************************************

void writetab()

{

unsigned char i ;

lcd_wcmd(0x40) ; //写CGRAM

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

lcd_wdat(mytab1[ i ]) ;

}

*/

void init_LCD() //初始化1602

{

delayms(15);

writecmd(0x38); //不检测忙信号

delayms(5);

writecmd(0x38); //不检测忙信号

delayms(5);

writecmd(0x38); //不检测忙信号

delayms(5);

writecmd(0x38); //显示模式设置

delayms(5);

writecmd(0x01); //显示清屏

delayms(5);

writecmd(0x06); //显示光标移动设置

delayms(5);

writecmd(0x0c); //显示开及光标设置

delayms(5);

/*

writetab() ; //自定义字符写入CGRAM delay(5) ;

lcd_pos(0x4d) ;

lcd_wdat(0x00) ; //显示自定义字符

*/

}

#endif

5.主程序

#include

#include

#include

#include "lcd1602.h"

typedef unsigned char U8; /* 无符号8位整型变量*/

typedef signed char S8; /* 有符号8位整型变量*/

typedef unsigned int U16; /* 无符号16位整型变量*/

typedef signed int S16; /* 有符号16位整型变量*/

typedef unsigned long U32; /* 无符号32位整型变量*/

typedef signed long S32; /* 有符号32位整型变量*/

typedef float F32; /* 单精度浮点数(32位长度)*/

typedef double F64; /* 双精度浮点数(64位长度)*/

#define uchar unsigned char

#define uint unsigned int//----------------IO口定义-------------------//

sbit DHT = P2^0 ; //AM2301端口定义

//----------------全局变量--------------------//

bit flagtemp;//温度正负标志位,k U8count,

bit flagsendtemp;//发送温度的标志位

U8 U8FLAG;

U8 U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

U8

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_t emp;

U8 U8comdata;

U16 DHTData1,DHTData2;

U8 outdata[5]; //定义发送的字节数

U8 indata[5];

U8 count, count_r=0;

U8 str[5];

U8 data tab[6]={0x00,0x00,0x00,0x00,0x00,0x00};//存储温湿度数据

U8 code dis1[]={"Humdity: % "} ;

U8 code dis2[]={"Temper: c "} ;

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

函数名称: 延时子程序

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

void Delay(U16 j)

{ U8 i;

for(;j>0;j--)

{

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

}

}

void Delay_10us(void)//延时10uS

{

U8 i;

i--;

i--;

i--;

i--;

i--;

i--;

}

/********************************************************* 函数名称: 读温湿度字节函数

功能: 读取温湿度每个字节

说明: 无

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

void COM(void)//读字节

{

U8 i;

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

{

U8FLAG=2;

while((!DHT)&&U8FLAG++);

Delay_10us();

Delay_10us();

Delay_10us();

U8temp=0;

if(DHT)U8temp=1;

U8FLAG=2;

while((DHT)&&U8FLAG++);

//超时则跳出for循环

if(U8FLAG==1)break;

//判断数据位是0还是1

// 如果高电平高过预定0高电平值则数据位为1

U8comdata<<=1;

U8comdata|=U8temp; //0

}//end i

}

//--------------------------------------------------------------

//--------------------------------

//-----湿度读取子程序------------

//--------------------------------

//----以下变量均为全局变量--------

//----温度高8位== U8T_data_H------

//----温度低8位== U8T_data_L------

//----湿度高8位== U8RH_data_H-----

//----湿度低8位== U8RH_data_L-----

//----校验8位== U8checkdata-----

//----调用相关子程序如下----------

//---- Delay();, Delay_10us();,COM();

//--------------------------------

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

函数名称: 温湿度读取函数

功能: 读取温湿度数据

说明: 无

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

void RH(void)//读取温湿度

{

//主机拉低1-5ms

DHT=0;

Delay(5);

DHT=1;

//总线由上拉电阻拉高主机延时40us

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

//主机设为输入判断从机响应信号

DHT=1;

//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行

if(!DHT) //T !

{

U8FLAG=2;

//判断从机是否发出80us 的低电平响应信号是否结束

while((!DHT)&&U8FLAG++);

U8FLAG=2;

//判断从机是否发出80us 的高电平,如发出则进入数据接收状态

while((DHT)&&U8FLAG++);

//数据接收状态

COM();

U8RH_data_H_temp=U8comdata;

COM();

U8RH_data_L_temp=U8comdata;

COM();

U8T_data_H_temp=U8comdata;

COM();

U8T_data_L_temp=U8comdata;

COM();

U8checkdata_temp=U8comdata;

DHT=1;

//数据校验

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);

if(U8temp==U8checkdata_temp)

if(1)

{

U8RH_data_H = U8RH_data_H_temp;//湿度

U8RH_data_L = U8RH_data_L_temp;

DHTData1 = U8RH_data_H;

DHTData1 <<= 8;

DHTData1 |= U8RH_data_L;//获得完整的湿度

tab[0]=DHTData1/100+0x30; //湿度百位

tab[1]=DHTData1%100/10+0x30;//湿度十位

tab[2]=DHTData1%10+0x30; //湿度个位

U8T_data_H = U8T_data_H_temp;//温度

U8T_data_L = U8T_data_L_temp;

DHTData2 = U8T_data_H;

DHTData2<<=8;

DHTData2 |= U8T_data_L;//获得完整的温度

if(DHTData2&0x8000)//如果温度为负值

{

flagtemp=1;

DHTData2&=0x7FFF;

}

tab[3]=DHTData2/100+0x30;

tab[4]=DHTData2%100/10+0x30;

tab[5]=DHTData2%10+0x30;//

U8checkdata=U8checkdata_temp;

}//fi

}//fi

}

/********************************************************* 函数名称: 显示温湿度函数

功能: 显示温湿度数据

说明: 无

*********************************************************/ void display()

{

U8 m;

//====显示湿度======

m = 0 ;

writecmd(0x80);

while(dis1[m] != '\0')//显示字符

{

writedata(dis1[m]) ;

m++ ;

}

writecmd(0x89);

writedata(tab[0]);

writedata(tab[1]);

writedata('.');

writedata(tab[2]);

//=====显示温度=====

m = 0 ;

writecmd(0xc0);

while(dis1[m] != '\0')//显示字符

{

writedata(dis2[m]) ;

m++ ;

}

writecmd(0xC8);

if(flagtemp)writedata('-');

else writedata('+');

writecmd(0xC9);

writedata(tab[3]);

writedata(tab[4]);

writedata('.');

writedata(tab[5]);

}

void main()

{

//U8 buff[4];

//U8 timecount;

init_LCD();

while(1)

{

RH();//调用温湿度读取子程序

display(); //1602显示数据

Delay(2000);

}

}

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

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

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.wendangku.net/doc/bb11170979.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单片机的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;

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

关于温度传感器特性的实验研究 摘要:温度传感器在人们的生活中有重要应用,是现代社会必不可少的东西。本文通过控制变量法,具体研究了三种温度传感器关于温度的特性,发现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℃

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

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

基于单片机的温度传感器 的设计 目录 第一章绪论-------------------------------------------------------- ---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温度传感器的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) {

基于51单片机的数字温度报警器

摘要:随着传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发。本文设计了一种基于单片机AT89C52的温度检测及报警系统。该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。本次课程设计的测量范围为0℃--99℃,测量误差为±2℃。 关键字:温度传感器、单片机、报警、数码管显示 一、概述 本次设计可以应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能,来提醒农民当前大棚内温度是否适合农作物的生长。 电子技术是在十九世纪末、二十世纪初开始发展起来的新兴技术,在二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。 随着电子技术的飞速发展,电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。 本次课设应用Protues软件设计一个温度检测报警系统,用温度传感器DS18B20采集大棚内的温度,当大棚内的温度高于30℃。或低于15℃。时,电路发出报警信号并显示当前温度,达到提醒农民的效果。 本次课设要求设计一个温度监测报警显示电路,要求温度范围:0℃--99℃;测量误差为±2℃;报警下限温度为:15℃;报警上限温度为:30℃。 二、方案论证 设计一个用于温室大棚温度监测系统。大棚农作物生长时,其温度不能太低,也不能太高,太低或太高均不适合农作物生长。该系统可实时测量、显示大棚的温度,当大棚温度超过农作物生长的温度范围时,报警提醒农民。 方案一: 方案一原理框图如图1所示。 图1 大棚温度检测系统的原理框图 方案二: 方案二原理框图如图2所示。

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中的温度数据独取出来呢?下面将给出详细分析。

温度采集实验报告

课程设计任务书 题目基于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为金属铂热电阻与热敏电阻温度曲线的比较。

传感器测试实验报告

实验一 直流激励时霍尔传感器位移特性实验 一、 实验目的: 了解霍尔式传感器原理与应用。 二、基本原理: 金属或半导体薄片置于磁场中,当有电流流过时,在垂直于磁场和电流的方向上将产生电动势,这种物理现象称为霍尔效应。具有这种效应的元件成为霍尔元件,根据霍尔效应,霍尔电势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、电池用完后请放回政府指定地点

单片机 湿度传感器

基于单片机的温湿度感测系统的实现 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口线来虚拟时钟线,并

AD590温度测试系统实验报告

AD590温度测试系统实验报告 一实验感想与总结 经过一个多月的实验,从开始的温度传感器到最后的接口总线,16单片机,TLC2543,串口等等的学习,完成了一个小的智能开换系统的了解,制作与测试。同时也让我学到了不少知识及动手操作能力,第一次感觉自己在课间时间也学到了东西,也见识到了一些简单的器材,机械,这样的感觉真的特别好,我希望这样的实验可以多安排一些,能让我们好好学一番,在这里先谢谢老师啦,谢谢! 1 具体的一些感想: (1)我是从原理图打印出来以后开始对这个实验了解的。画原理图时不能为了快单纯的画线,要注意图中接口处的标注,每个接口的功能是不一样的,要提前认识原件的接口设置。 (2)假如不借用标准号直接Update生成pCB图时,画线要注意每根线的连接必须正确,否则将导致PCB图无法显示或整个设计的错误;另外,就是可以借助标准号直接生成。 (3)在设置原理图时,每个元器件的封装必须要有,否则就会和我们一样,在Update后元器件就没有,无法进行布线连接。另外就是在对每个元器件画封装的时候,要注意管脚处的数字标号设置,应该完全按照器件结构去描述(我们在设置AD590封装设计时,标号用‘0’和‘1’显然在封装时就无法显示,导致AD590就只有一根连接线,无法完成正确的布线连接) (4)在Update后进行布线时,我看着视频学了一下,可当自己

操作时,一点都不如意(开始的第一次安放元器件后,布线开始,有好多线要跳接,线看着还凌乱)。又试着做了四五次之后才真正体会到“话真不是说说的,自己操作后才知道它的难啊”。最后实验室回来,按照老师发的那个PCB布线图,自己再开始尝试,遇到一个新问题,布线时,那些GND,VCC,+5v线的连接用的是一些不规则图形布线,我还是无法触及。 (5)焊接电路板,自己完成了通孔的打眼,焊点的焊接。 (6)测试时,发现自己做的电路板没有电源显示的LED灯,当测试时不能醒目的了解电路是否供电;电路通过一个7805T输入9.25v电压输出5.11v使电路正常工作;部分器件的安放还是不太好,电路板整体看上去比较凌乱。 (7)我们还没进行程序调试,在后八周会好好完成。 2 总结 经过一个月的实验学习,从刚开始的AD590温度测试原理图的分析,到最后电路板的制作测试,我们小组完成了一个小型的智能测试系统的制作,不进让我们体会到理实验是检验真理的唯一标准,还让我们认识到了一部分的元器件,学习到了一些经验。读AD590手册制作指出,AD590的工作电压是4到30v,如果是4.8v是不能实现的,必须通过实验才让我们记得更确切。一个月的学习制作,让我从实验中领悟到了课本上无法学到的很多东西,知道了真实制作和想想是很大区别的,用理论联系实际,从实践中学习,总结过去的错误,注重现实制作的重要,读懂更

【51单片机】温度传感器DS18B20程序-LCD1602显示

仿真截图: //仿真文件网盘地址: //程序: #include #include #define uchar unsigned char #define uint unsigned int sbit P00 = P0^0; sbit P01 = P0^1; sbit P02 = P0^2; sbit P03 = P0^3; sbit P04 = P0^4; sbit P05 = P0^5; sbit P06 = P0^6; sbit P07 = P0^7; sbit P10 = P1^0; sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit P14 = P1^4;

sbit P15 = P1^5; sbit P16 = P1^6; sbit P17 = P1^7; sbit P20 = P2^0; sbit P21 = P2^1; sbit P22 = P2^2; sbit P23 = P2^3; sbit P24 = P2^4; sbit P25 = P2^5; sbit P26 = P2^6; sbit P27 = P2^7; sbit P30 = P3^0; sbit P31 = P3^1; sbit P32 = P3^2; sbit P33 = P3^3; sbit P34 = P3^4; sbit P35 = P3^5; sbit P36 = P3^6; sbit P37 = P3^7; //****** DS18B20 ****** #define DQ P17 /*************精确延时函数*****************/ void delay10us(void) //误差0us { unsigned char a,b; for(b=1;b>0;b--) for(a=2;a>0;a--); } void delay20us(void) //误差0us { unsigned char a,b; for(b=1;b>0;b--) for(a=7;a>0;a--); } void delay30us() //误差0us { unsigned char a,b; for(b=3;b>0;b--) for(a=3;a>0;a--); }

温度传感器说明书.

SWD系列 温度传感器用户使用说明书北京传感星空自控技术有限公司 SWD 系列温度传感器 使用说明书 SWD 系列温度传感器是用铂金属丝制成的测温度电阻器,可用来测量各种液体、气体等流体的温度。具有精度高、分辨率好,安全可靠、使用方便等优点,也可以直接测量各种生产过程中的液体、蒸气和气体介质的温度。 一、原理 本传感器是利用铂金属(PT100)在温度变化时自身电阻也随着变化的特性来测量温度的。它的受热元件是利用细铂丝均匀的双绕在绝缘材料制成的骨架上。 二、技术指标 1、0℃对应电阻为100Ω,100℃对应电阻为138.5Ω 2、测量范围:-200~500℃ 3、时间参数:<5秒 4、外型尺寸:参照定货要求 三、传感器接线示意图 四、 安装使用方法及注意事项1、本温度传感器通过螺纹固定。在固定的时候切记不要用力过度,以免损坏传感器。

2、如传感器有杂质粘附于传感器上,要及时清洗,保证传感器可靠、准确运行。 3、线缆的铺设以不防碍现场工作人员的现场操作和不易被砸碰、损坏且架 设安全可靠为原则。三线制四线制 4、传感器接触的介质应为经常流动的介质,这样才能保证所测值的准确性。 五、故障现象及现场处理办法 1、如果温度传感器在使用过程中发生故障,如无信号输出或超过标准输出,首先应检查线缆的断线、短路及接线的脱落。 2、怀疑温度传感器有故障,可用万用表测量铂电阻的电阻值是否在正常范围之内。如铂电阻的输入正常,则应检查上位仪表。 3、本传感器出厂时已作密封处理,如出现故障,请送厂里维修,用户不要自行拆卸。 4、本传感器自出售之日起。一年内出现故障,可免费维修或更换,终身维修。

相关文档
相关文档 最新文档