文档库 最新最全的文档下载
当前位置:文档库 › 基于DS18B20传感器的数字温度计设计

基于DS18B20传感器的数字温度计设计

电路原理图如下图所示:

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

* 程序名; 基于DS18B20的测温系统

* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来

* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限

* 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动

* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;在调节上下限

* 温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温* 度正负的。

* 编程者:ZPZ

* 编程时间:2009/10/2

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

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar max_int=0x00,max_dot=0x00,min_int=0x00,min_dot=0x00;

bit s=0,s1=0;

#include"ds18b20.h"

#include"keyscan.h"

#include"display.h"

/***********************主函数************************/

void main()

{

beer=0;

led=1;

IT1=1;

EX1=0;

EA=1;

timer1_init(0);

get_temperature(1);

while(1)

{

keyscan();

get_temperature(0);

keyscan();

display(temp,temp_d*0.625);

alarm();

keyscan();

}

}

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

* 程序名; __ds18b20_h__

* 功能:DS18B20的c51编程头文件

* 编程者:ZPZ

* 编程时间:2009/10/2

* 说明:用到的全局变量是:无符号字符型变量temp(测得的温度整数部分),temp_d * (测得的温度小数部分),标志位f(测量温度的标志位…0?表示“正温度”…1?表

* 示“负温度”),标志位f_max(上限温度的标志位…0?表示“正温度”、…1?表

* 示“负温度”),标志位f_min(下限温度的标志位…0?表示“正温度”、…1?表

* 示“负温度”),标志位w(报警标志位…1?启动报警…0?关闭报警)。

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

#ifndef __ds18b20_h__

#define __ds18b20_h__

#define uint unsigned int

#define uchar unsigned char

sbit DQ= P2^3;

sbit beer=P3^0;

sbit led=P3^1;

uchar temp=0; //温度的整数部分

uchar temp_d=0; //温度的小数部

uchar n;

bit f=0,f_max=0,f_min=0;w=0;

/***********************延时子函数************************/

void ds18b20_delayus(uint t)

{

while(t--);

}

void ds18b20_delayms(uint t)

{

uint i,j;

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

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

}

/******************ds18b20初始化函数*********((*********/

void ds18b20_init() // DS18B20初始化

{

DQ=1;

DQ=0; //控制器向DS18B20发低电平脉冲

ds18b20_delayus(30); //延时480μs

DQ=1; //控制器拉高总线,

while(DQ); //等待DS18B20拉低总线,在60-240μs之间

ds18b20_delayus(20); //延时,等待上拉电阻拉高总线

DQ=1; //提升数据线,准备数据传输;

}

/******************ds18b20字节读函数******************/

uchar ds18b20_read() //DS18B20 字节读取

{

uchar i;

uchar d = 0;

DQ = 1; //准备读;

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

{

d >>= 1; //低位先发;

DQ = 0;

_nop_();

_nop_();

_nop_();

DQ = 1; //必须写1,否则读出来的将是不预期的数据;

if(DQ) //在12us处读取数据;

d |= 0x80;

ds18b20_delayus(10);

}

return d;

}

/******************ds18b20字节写函数******************/

void ds18b20_write(uchar d) // ds18b20字节写

{

uchar i;

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

{

DQ=0;

_nop_();

_nop_();

_nop_();

DQ=d&0x01;

ds18b20_delayus(5);

DQ=1;

d >>= 1;

}

/*********************获取温度函数**********************/

void get_temperature(bit f) //得到整数的温度值

{

uchar a=0,b=0,c=0,d=0;

uint i;

ds18b20_init(); //DS18B20初始化

ds18b20_write(0xcc); //向DS18B20发SKIP ROM命令

ds18b20_write(0x44); //启动DS18B20进行温度转换,结果存入内部RAM ds18b20_delayms(1);

ds18b20_init(); //DS18B20初始化

ds18b20_write(0xcc); //向DS18B20发SKIP ROM命令

ds18b20_write(0xbe); //读内部RAM中9字节的内容命令

a=ds18b20_read(); //读内部RAM (LSB)

b=ds18b20_read(); //读内部RAM (MSB)

if(f==1)

{

max_int=ds18b20_read(); //读内部RAM (LSB)

min_int=ds18b20_read();

}

if((max_int&0x80)==0x80)

{f_max=1;max_int=(max_int-0x80);}

if((min_int&0x80)==0x80)

{f_min=1;min_int=(min_int-0x80);}

i=b;

i>>=4;

if (i==0)

{

f=0; //i为0,正温度,设立正温度标记

temp=((a>>4)|(b<<4)); //整数部分

a=(a&0x0f);

temp_d=a; //小数部分

}

else

{

f=1; //i为1,负温度,设立负温度标记

a=~a+1;

b=~b;

temp=((a>>4)|(b<<4)); //整数部分

a=(a&0x0f); //小数部分

temp_d=a;

}

}

void store_t()

{

if(f_max==1)

max_int=max_int+0x80;

if(f_min==1)

min_int=min_int+0x80;

ds18b20_init(); //DS18B20初始化

ds18b20_write(0xcc); //向DS18B20发SKIP ROM命令

ds18b20_write(0x4e);

ds18b20_write(max_int);

ds18b20_write(min_int);

ds18b20_write(0xff);

ds18b20_init(); //DS18B20初始化

ds18b20_write(0xcc); //向DS18B20发SKIP ROM命令

ds18b20_write(0x48);

}

/**********************温度超限报警函数***********************/

void alarm()

{

if(f_max==0)

{

if(f_min==0)

{

if(f==0)

{

if((temp+temp_d*0.0625)<=min_int||(temp+temp_d*0.0625)>=max_int)

{w=1;TR1=1;}

if((temp+temp_d*0.0625)min_int)

{w=0;}

}

if(f==1){w=1;TR1=1;}

}

if(f_min==1)

{

if(f==0)

{

if((temp+temp_d*0.0625)>=max_int)

{w=1;TR1=1;}

if((temp+temp_d*0.0625)

{w=0;}

}

if(f==1)

{

if((temp+temp_d*0.0625)>=min_int)

{w=1;TR1=1;}

if((temp+temp_d*0.0625)

{w=0;}

}

}

}

if(f_max==1)

{

if(f_min==1)

{

if(f==1)

{

if((temp+temp_d*0.0625)<=max_int||(temp+temp_d*0.0625)>=min_int)

{w=1;TR1=1;}

if((temp+temp_d*0.0625)max_int)

{w=0;}

}

if(f==0){w=1;TR1=1;}

}

}

}

#endif

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

* 程序名; __keyscan_H__

* 功能:ds18b20键盘头文件,通过键盘设定设定上下限报警温度

* 编程者:ZPZ

* 编程时间:2009/10/2

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

#ifndef __keyscan_H__

#define __keyscan_H__

sbit key1=P2^2;

sbit key2=P2^1;

sbit key3=P2^0;

sbit key4=P3^3;

uchar a=0,i=0;

bit k4=0,v=0,v1=0,v2=0;

/***************************读键盘延时子函数**************************/ void keyscan_delay(uint z)

{

uint i,j;

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

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

}

/****************************温度调节函数******************************/ int temp_change(int count,bit f)

{

if(key2==0)

{

keyscan_delay(10);

if(key2==0)

{

if(f==0)

{

count++;

if(a==1){if(count>125) count=125;}

if(a==2){if(count>125) count=125;}

}

if(f!=0)

{

count++;

if(a==1){if(count>55) count=55;}

if(a==2){if(count>55) count=55;}

}

}

while(key2==0);

keyscan_delay(10);

}

if(key3==0)

{

keyscan_delay(10);

if(key3==0)

{

count--;

if(a==1){if(count<0) count=0;}

if(a==2){if(count<0) count=0;}

}

while(key3==0);

keyscan_delay(10);

}

return count;

}

/*****************************读键盘函数******************************/ void keyscan()

{

if(key1==0)

{

keyscan_delay(10);

if(key1==0)

{

TR1=1;

k4=1;

v=1;

i++;

if(i>2){i=0;TR1=0;k4=0;v=0;store_t();get_temperature(1);}

switch(i)

{

case 0:a=0;break;

case 1:a=1;break;

case 2:a=2;break;

default:break;

}

}

while(key1==0);

keyscan_delay(10);

}

if(a==1&&v==1)

{led=0;max_int=temp_change(max_int,f_max);}

else if(a==2&&v==1)

{led=1;min_int=temp_change(min_int,f_min);}

else;

if(k4==1)

{

if(key4==0)

{

keyscan_delay(5);

if(key4==0)

{

if(a==1)

{if(max_int>55) f_max=0;else f_max=~f_max;}

if(a==2)

{if(min_int>55) f_max=0;else f_min=~f_min;}

}

while(key4==0);

keyscan_delay(10);

}

}

if(v==0)

{

if(key2==0)

{

keyscan_delay(10);

if(key2==0)

{

a=1;

TR1=1;

s1=1;

}

while(key2==0);

keyscan_delay(10);

}

if(key3==0)

{

keyscan_delay(10);

if(key3==0)

{

a=2;

TR1=1;

s1=1;

}

while(key3==0);

keyscan_delay(10);

}

if(v1==1)

{a=0;v1=0;TR1=0;}

}

}

#endif

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

* 程序名; __ds18b20_display_H__

* 功能:ds18b20数码管动态显示头文件,通过定时器0延时实现数码管动态显示* 编程者:ZPZ

* 编程时间:2009/10/2

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

#ifndef __ds18b20_display_H__

#define __ds18b20_display_H__

#define uint unsigned int

#define uchar unsigned char

sbit wei1=P2^4;

sbit wei2=P2^5;

sbit wei3=P2^6;

sbit wei4=P2^7;

uchar num=0;

uchar code temperature1[]={ 0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

uchar code temperature2[]={ 0xbf,0x86,0xdb,0xcf,0xe6,

0xed,0xfd,0x87,0xff,0xef};

uchar code temperature3[]={ 0x00,0x80,0x40,0x76,0x38};

/***********************延时子函数************************/

void display_delay(uint t)

{

uint i,j;

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

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

}

/**************************定时器1初始化函数***************************/ void timer1_init(bit t)

{

TMOD=0x10;

TH0=0x3c;

TL0=0xb0;

EA=1;

ET1=1;

TR1=t;

}

/**************************定时器1中断函数*****************************/ void timer1() interrupt 3

{

TH0=0x3c;

TL0=0xb0;

num++;

if(num<5) {s=1;if(w==1){beer=1;led=1;}else{beer=1;led=1;}}

else {s=0;if(w==1){beer=0;led=0;}else{beer=1;led=1;}}

if(num>25)

{

num=0;

s1=0;

v1=1;

}

}

/***********************调节选择函数************************/ void selsct_1(uchar f,uchar k)

{

if(f==0)

{

if(k/100==0) P0=temperature3[0];

else P0=temperature1[k/100];

}

if(f==1)

{

if(k%100/10==0) P0=temperature3[0];

else P0=temperature3[2];

}

}

void selsct_2(bit f,uchar k)

{

if(f==0)

{

if((k/100==0)&&(k%100/10==0))

P0=temperature3[0];

else P0=temperature1[k%100/10];

}

if(f==1)

{

if(k%100/10==0) P0=temperature3[2];

else P0=temperature1[k%100/10];

}

}

/***********************显示函数************************/ void display(uchar t,uchar t_d)

{

uchar i;

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

{

switch(i)

{

case 0:

if(a==0){selsct_1(f,t);}

if(a==1)

{

if(s==0) selsct_1(f_max,max_int);

else P0=temperature3[0];

if(s1==1) selsct_1(f_max,max_int);

}

if(a==2)

{

if(s==0) selsct_1(f_min,min_int);

else P0=temperature3[0];

if(s1==1) selsct_1(f_min,min_int);

}

wei2=0;

wei3=0;

wei4=0;

wei1=1;

break;

case 1:

if(a==0){selsct_2(f,t);}

if(a==1)

{

if(s==0) selsct_2(f_max,max_int);

else P0=temperature3[0];

if(s1==1) selsct_2(f_max,max_int);

}

if(a==2)

{

if(s==0) selsct_2(f_min,min_int);

else P0=temperature3[0];

if(s1==1) selsct_2(f_min,min_int);

}

wei1=0;

wei3=0;

wei4=0;

wei2=1;

break;

case 2:

if(a==0){P0=temperature2[t%10];}

if(a==1)

{

if(s==0) P0=temperature2[max_int%10];

else P0=temperature3[0];

if(s1==1) P0=temperature2[max_int%10];

}

if(a==2)

{

if(s==0) P0=temperature2[min_int%10];

else P0=temperature3[0];

if(s1==1) P0=temperature2[min_int%10];

}

wei1=0;

wei2=0;

wei4=0;

wei3=1;

break;

case 3:

if(a==0){P0=temperature1[t_d];}

if(a==1)

{

if(s==0)

P0=temperature1[0];

else P0=temperature3[0];

if(s1==1) P0=temperature1[0];

}

if(a==2)

{

if(s==0)

P0=temperature1[0];

else P0=temperature3[0];

if(s1==1) P0=temperature1[0];

}

wei1=0;

wei2=0;

wei3=0;

wei4=1;

break;

}

display_delay(16);

}

}

#endif

数字式温度计的设计毕业设计

摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温X围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该高精度数字式温度计采用了由DALLAS公司生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式。本毕业论文详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,该温度计具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。 二、总体方案设计 1、数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.2方案二的总体设计框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。 2、硬件设计 1.1 工作原理及硬件框图 基于DS18B20的温度测量装置电路图如图1所示,包括单片机最小系统、温度传感器、和显示电路。温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),单片机对接收到的数字信号进行标度变换,转换成实际的温度值并送数码管显示。DS18B20传感器可置于离装置150米以内的任何地方。STC89C51是整个电路装置的控制核心,STC89C51内带4K字节的FlashROM,用户程序存放在此。 图2 系统硬件框图 3、系统分析: 本设计主要的任务是单片机软件的设计,而软件中的核心在于单片机与集成温度传感器DS18B20接口程序的设计,另外一点便是对数码管扫描显示的理解与运用。由于DS18B20集成了温度数据采集、模数转换

DS18B20数字温度计使用

DS18B20数字温度计使用 1.DS18B20基本知识 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 1、DS18B20产品的特点 (1)、只要求一个端口即可实现通信。 (2)、在DS18B20中的每个器件上都有独一无二的序列号。 (3)、实际应用中不需要外部任何元器件即可实现测温。 (4)、测量温度范围在-55。C到+125。C之间。 (5)、数字温度计的分辨率用户可以从9位到12位选择。 (6)、内部有温度上、下限告警设置。 2、DS18B20的引脚介绍 TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。 (底视图)图1 表1 DS18B20详细引脚功能描述 3. DS18B20的使用方法 由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都

是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 4.实验任务 用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+100度之间,用8位数码管显示出来。 5.电路原理图 6.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。 (2).把“单片机系统”区域中的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。 (3).把DS18B20芯片插入“四路单总线”区域中的任一个插座中,注意电源与地信号不要接反。 (4).把“四路单总线”区域中的对应的DQ端子连接到“单片机系统” 区域中的P3.7/RD端子上。 7. C语言源程序 #include

数字温度计设计

数字温度计 摘要:温度计在实际生产和人们的生活中都有广泛应用。该设计是数字温度计,首先是对总体方案的选择和设计;然后通过控制LM35进行温度采集;将温度的变化转为电压的变化,其次设计电压电路,将变化的电压量通过放大系统转化为所需要的电压;再通过TC7107将模拟的电压转化为数字量后直接驱动数码管LED对实时温度进行动态显示。最后在Proteus仿真软件中构建了数字温度计仿真电路图,仿真结果表明:在温度变化时,可以通过电压的变化形式传递,最终通过3位十进制数显示出来。 关键词:温度计;电路设计;仿真

目录 1 设计任务与要求 (1) 2 方案设计与论证 (1) 3 单元电路的设计及仿真 (2) 3.1传感器 (2) 3.2放大系统 (2) 3.3 A/D转换器及数字显示 (4) 4 总电路设计及其仿真调试过程 (6) 4.1总电路设计 (6) 4.2仿真结果及其分析 (7) 5 结论与心得 (9) 6 参考文献 (11)

1 设计任务与要求 温度计是工农业生产及科学研究中最常用的测量仪表。本课题要求用中小规模集成芯片设计并制作一数字式温度计,即用数字显示被测温度。具体要求如下:(1)测量范围0~100度。 (2)测量精度0.1度。 (3)3位LED数码管显示。 掌握线性系统的根轨迹、时域和频域分析与计算方法; (2)掌握线性系统的超前、滞后、滞后-超前、一二阶最佳参数、PID等校正方法;(3)掌握MATLAB线性系统性能分析、校正设计与检验的基本方法。 2 方案设计与论证 数字温度计的原理是:通过控制传感器进行温度采集,将温度的变化转化为电压的变化;然后设计电压电路,将变化的电压通过放大系统转化为需要的电压;再通过A/D转换器将模拟的电压转换为数字量后驱动数码管对实时温度进行动态显示。 原理框图如图2-1所示: 传感器放大系统A/D转换显示 图2-1 数字温度计原理框图 由设计任务与要求可知道,本设计实验主要分为四个部分,即传感器、放大系统、模数转换器以及显示部分。经过分析,传感器可以选择对温度比较敏感的器件,做好是在某参数与温度成线性关系,比如用温敏晶体管构成的集成温度传感器或热敏电阻等;放大系统可以由集成运放组成或反相比例运算放大器;A/D转换器需要选择有LED 驱动显示功能的,而可供选择的参考元件有ICL7107,ICL7106,MC14433等;显示部分用3位LED数码管显示。 方案一:用一个热敏电阻,通过热敏电阻把温度转化为电压,再得到每一度热敏电

数字温度计的设计

数字温度计的设计 【摘要】 本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于AT89S52单片机的数字温度计的设计用LCD数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。 【关键词】关键词1温度计;关键词2单片机;关键词3数字控制;关键词4DS1620 目录 第一章绪论 (2) 1.1 前言 (3) 1.2 数字温度计设计方案 (3) 1.3 总体设计框图 (3) 第二章硬件电路设计............................ 错误!未定义书签。 2.1 主要芯片介绍 (5) 2.1.1 AT89C51的介绍 (5) 2.1.2 AT89C51各引脚功能介绍 (5) 2.2 温度传感器 (7) 2.2.1 DS1620介绍 (7) 第三章软件设计................................ 错误!未定义书签。

3.1 主程序流程图 (11) 3.4 计算温度子程序流程图 (13) 3.5 显示数据刷新子程序流程图 (13) 第四章 Proteus仿真调试......................... 错误!未定义书签。 4.1 Proteus软件介绍 (15) 4.2 Proteus界面介绍 (16) 4.2.1 原理图编辑窗口 (18) 4.2.2 预览窗口 (23) 4.2.3 模型选择工具栏 (31) 4.2.4 元件列表 (35) 4.2.5 方向工具栏 (37) 4.2.6 仿真工具栏 (38) 4.3 本次设计仿真过程 (39) 4.3.1 创建原理图 (40) 设计总结 (50) 结论 (57) 参考文献 (59) 致谢 (62) 附录 (72)

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

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

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

电子技术基础数字温度计课程设计要点

课程设计(论文) 题目名称数字温度计 课程名称电子技术课程设计 学生姓名屈鹏 学号1141201112 系、专业电气工程系电气工程及其自动化 指导教师李海娜 2013年12月17日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及其自动化学生姓名屈鹏学号1141201112 题目名称数字温度计设计设计时间2013.12.9—2013.12.20 课程名称电子技术课程设计课程编号121202306 设计地点电工电子实验室408、409 一、课程设计(论文)目的 电子技术课程设计是电气工程及自动化专业的一个重要的实践性教学环节,是对已学模拟电子技术、数字电子技术知识的综合性训练,这种训练是通过学生独立进行某一课题的设计、安装和调试来完成,着重培养学生工程实践的动手能力、创新能力和进行综合设计的能力,并要求能设计出完整的电路或产品,从而为以后从事电子电路设计、研制电子产品奠定坚实的基础。 二、已知技术参数和条件 用中小规模集成芯片设计并制作一数字式温度计,具体要求如下: 1、温度范围0-100度。 2、测量精度0.2度。 3、三位LED数码管显示温度。 三、任务和要求 1.按学校规定的格式编写设计论文。 2.论文主要内容有:①课题名称。②设计任务和要求。③方案选择与论证。④方案的原理框图,系统电路图,以及运行说明;单元电路设计与计算说明;元器件选择和电路参数计算的说明等。 ⑤必须用proteus或其它仿真软件对设计电路仿真调试。对调试中出现的问题进行分析,并说明解决的措施;测试、记录、整理与结果分析。⑥收获体会、存在问题和进一步的改进意见等。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

数字式温度计的设计与制作

数字式温度计的设计与制作 10级电子1班 一项目提出 1.1 任务 为某温室大棚设计一个数字式温度计,以便当棚内温度变化时,能及时提醒工作人员进行处理,保证温室温度变化在较小范围。 1.2 要求 (1)能实现温度数据的采集与记录。 (2)能实现各测量值的显示,精度为0.1摄氏度,温度范围在-55到+55摄氏度。 (3)能实现上、下限报警。 二项目分析 2.1 任务意义 一些温室大棚常常需要有较好的恒温性,即当温度变化达到一定数值时,需要及时调整,以保持温度恒定,保证作物的品质。现某大棚希望设计一个数字式温度计,能实时测量和显示大棚温度。当温度发生较大变化时,能及时做出报警提示。 2.2 系统方案设计 根据醒目的需求,本系统使用STC89C52单片机,DS18B20数字温度传感器等,监测大棚的温度变化。具体功能如下: *温度检测:系统能够实时检测大棚温度,温度分辨率为0.1摄氏度,温度范围为—55到+55摄氏度。 *温度显示:系统能实时显示大棚温度值,显示到小数点后一位,在设置上、下限报警时,显示上、下限提醒标志。 *温度报警:系统能够设置大棚温度范围,当棚内温度超出设定范围时发生报警。 *报警设置:系统能够设置上、下限报警温度值,设定精度为0.1摄氏度。 根据以上功能分析,数字温度计基本结构如图1所示,由单片机最小系统、按键模块、温度采样模块、显示模块和报警模块等组成。

图1:数字温度计的基本结构 三项目相关知识 3.1 数字温度传感器DS18B20的使用 可以测量温度的器件很多,但DS18B20是一种无须进过其它变换电路,直接输出被测温度数字量的传感器。它采用单总线专用技术,可通过串口线或其它I/O口线与计算机接口相连,支持多器件扩展,使用相当方便,测温范围为-55到+125摄氏度,其分辨率为0.5摄氏度,最高可达0.0625摄氏度。 3.1.1 DS18B20的外观及内部结构 DS18B20采用3脚TO-92A封装,外形如同普通的半导体三极管,除此之外,DS18B20也有8脚的SOIC封装及6脚的TSOC封装等形式,如图2所示。 图2:DS18B20封装形式

基于ds18b20的数字温度计设计

目录 (一)设计内容及要求 (2) (二)系统的硬件选择及设计 (3) 2.1核心处理器的设计 (3) 1、AT89C51引脚图 (3) 2、AT89C51引脚功能介绍 (3) 2.2温度采集电路的设计 (5) 1、单线技术 (5) 2、DS18B20的简介 (6) 3、DS18B20内部结构 (8) 4、DS18B20测温原理 (11) 5、温度采集电路 (12) 2.3温度显示电路的设计 (13) 1、LED数码管的操作 (13) 2、温度显示电路 (13) (三)系统的软件设计 (15) 3.1概述 (15) 3.2 DS18B20的单线协议和命令 (15) (1)初始化 (15) (2)ROM操作命令 (15) (3)内存操作命令 (16) 3.3温度采集程序流程图的设计 (18) 3.4温度显示程序流程图的设计 (19) (四) 结论 (19) (五)汇编代码 (20) (六)参考文献 (27)

基于DS18B20的数字温度计设计 摘要: 在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过两位共阴极LED数码显示管并行传送数据,实现温度显示。本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用汇编语言实现温度的采集与显示。通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。 关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计 (一)设计内容及要求 本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED 数码管及必要的外围电路,构成了一个多功能单片机数字温度计。 本次设计的主要思路是利用51系列单片机,数字温度传感器DS18B20和LED 数码显示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。通过对单片机编写相应的程序,达到能够实时检测周围温度的目的。 通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。其具体的要求如下: 1、根据设计要求,选用AT89C51单片机为核心器件; 2、温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的P2.2引脚相连; 3、显示电路采用两位LED数码管以串口并行输出方式动态显示。

数字温度计的设计与仿真

单片机原理与应用设计课程综述 设计项目数字温度计 任课教师 班级 姓名 学号 日期

基于AT89C51的数字温度计设计与仿真摘要:随着科学技术的不断发展,温度的检测、控制应用于许多行业,数字温度计就是其中一例,它的反应速度快、操作简单,对环境要求不高,因此得到广泛的应用。 传统的温度测量大多使用热敏电阻,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路将模拟信号转换成数字信号才能由单片机进行处理。本课题采用单片机作为主控芯片,利用DS18B20来实现测温,用LCD液晶显示器来实现温度显示。 温度测量范围为0~119℃,精确度0.1℃。可以手动设置温度上下限报警值,当温度超出所设报警值时将发出报警鸣叫声,并显示温度值,该温度计适用于人们的日常生活和工、农业生产领域。 关键词:数字温度计;DS18B20;AT89C51; LCD1602 一、绪论 1.1 前言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求也越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用。 1.2 课题的目的及意义 数字温度计与传统温度计相比,具有结构简单、可靠性高、成本低、测量范围广、体积小、功耗低、显示直观等特点。该设计使用AT89C51,DS18B20以及通用液晶显示屏1602LCD等。通过本次设计能够更加了解数字温度计工作原理和熟悉单片机的发展与应用,巩固所学的知识,为以后工作与学习打下坚实的基础。 数字温度计主要运用在工业生产和实验研究中,如电力、化工、机械制造、粮食存储等领域。温度是表征其对象和过程状态的重要参数之一。比如:发电厂锅炉

DS18B20数字温度计的设计

单片机原理及应用 课程设计报告书 题目:DS18B20数字温度计的设计 姓名学号:张琪05200102 吕群武05200166 蔡凌志05200178 专业班级:电信1班 指导老师:余琼蓉 设计时间:2010年12月

成绩评定

一、课题介绍 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器18B20,单片机AT89S52,,四位共阴极数码管一个,电容电阻若干。18B20支持“一线总线”接口,测量温度范围-55°C~+125°C 。在-10~+85°C 范围内,精度为±0.5°C 。18B20的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED 显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED 显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55°C~+128°C ,由于能力有限,不能实现报警功能。 二、方案论证 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 方案设计框图如下: 方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

数字温度计设计总结报告

数字温度计(A2题)设计与总结报告专科组:春梁福鑫钟才莉 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研等各个领域,已经成为一种比较成熟的技术, 本设计在参阅了大量前人设计的数字温度计的基础上,利用单片机技术结合DS18B20温度传感器和DS1302时钟芯片构建了一个数字温度计。本温度计属于多功能温度计,当测量温度超过设定的温度上、下限,启动蜂鸣器和指示灯报警,可以显示当前测量日期、时间、温度,可调整显示日期、时间和星期。 关键词:单片机;数字控制;数字温度计;DS18B20;DS1302;报警 前言 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S52,测温传感器使用DS18B20,以及使用时钟芯片DS1302测实时时钟,用一块低功耗的RT1602C液晶显示器以串口传送数据,实现温度和时间显示,能准确达到以上要求。 本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、测温电路、实时时钟电路、声光报警电路、语音报读电路、LED显示电路及电源电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,利用Keil 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。 一、方案论证比较与选择 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦,制作成本高。 方案二: 方案二原理框架图 此设计方案是由数字式温度传感器、单稳态定时电路、计数电路、译码与LED数码管显示电路等组成的。但其测温围较小,电路设计也比较繁琐。 方案三: 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,因此我们改用一种智能传感器DS18B20作为检测元件,测温围-55℃~+125℃,分辨率最大可达0.0625℃。此传感器,可以直接读取被测温度值,而且采用3线制与单片机相连,减少了外部硬件电路,具有低成本和易使用的特点。 从以上三种方案,很容易看出,采用方案三,电路比较简单,软件设计也比较简单,故采用了方案三。 二、系统框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,

数字式温度计设计课程设计

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:数字式温度计的设计学院名称:电气信息学院 专业班级:15电力(3)班 学生学号:1504200623 学生姓名:曾高 学生成绩: 指导教师:易先军 课程设计时间:2017.10.30 至2017.11.5

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,1.5倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,1.5倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,1.1,……;论文中的表、图和公式按章编号,如:表1.1、表1.2……;图1.2、图1.2……;公式(1.1)、公式(1.2)。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 用DS18B20设计一款能够显示当前温度值的温度计; 2. 通过切换按钮可以切换华氏度和摄氏度显示; 3. 测量精度误差在正负0.5摄氏度以内。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

DS18B20数字温度计的设计与实现

DS18B20数字温度计的设计与实现 一、实验目的 1.了解DS18B20数字式温度传感器的工作原理。 2.利用DS18B20数字式温度传感器和微机实验平台实现数字温度计。 二、实验内容与要求 采用数字式温度传感器为检测器件,进行单点温度检测。用数码管直接显示温度值,微机系统作为数字温度计的控制系统。 1.基本要求: (1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。 (2)用4位数码管来显示温度值。 (3)超过警戒值(自己定义)要报警提示。 2.提高要求 (1)扩展温度范围。 (2)增加检测点的个数,实现多点温度检测。 三、设计报告要求 1.设计目的和内容 2.总体设计 3.硬件设计:原理图(接线图)及简要说明 4.软件设计框图及程序清单 5.设计结果和体会(包括遇到的问题及解决的方法) 四、数字温度传感器DS18B20 由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 1.DS18B20性能特点 DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存

储器ROM ,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。 2. DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH 和TL,高速暂存器。64位光刻ROM 是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。64位ROM 结构图如图2所示。不同的器件地址序列号不同。 DS18B20的管脚排列如图1所示。 图1 DS18B20引脚分布图 图2 64位ROM 结构图 DS18B20高速暂存器共9个存储单元,如表所示: 序号 寄存器名称 作 用 序号 寄存器名称 作 用 0 温度低字节 以16位补码形式存放 4 配置寄存器 1 温度高字节 5、6、7 保留 2 TH/用户字节1 存放温度上限 8 CRC 3 HL/用户字节2 存放温度下限 以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM 中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。 LSB MSB 8位检验CRC 48位序列号 8位工厂代码(10H )

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告 专业名称: 自动化专业班级: 全文结束》》级自动化1班学号: 全文结束》》4786 摘要本设计采用的主控芯片是ATMEL公司的AT89C51单片机,数字温度传感器是DALLAS公司的 DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的AT89C51是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是 DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报

警程序报警。本设计的显示模块是用液晶显示屏1602实现温度显示。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 一、实验设计概述本系统所设计的数字温度计采用的是 DS18B20数字温度传感器测温,测温上下限为10°C~40°C。 DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。其输出温度采用LCD1602显示,主要用于对测温比较准确的场所。该设计控制器使用的是51单片机AT89C51,AT89C51单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是 DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用液晶显示屏1602实现温度显示。蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。 二、系统总体方案及硬件设计 2、1系统总体设计框图由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 温度计电路设计总体设计框图如图2-1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,显示采用液晶显示

数字温度计设计报告

重庆文理学院 单片机课程综合设计 设计题目:数字温度计 学号:201308329053 姓名:杨洋 班级:2013级电气S2班 提交日期:2016.01.14 电子电气工程学院

目录 一.引言 二.设计务任和要求 三. 系统总体方案及硬件设计 四. 系统软件算法分析 五. 电路仿真 六.电路板制作过程 七. 电路调试过程 八. 总结与体会 九. 参考文献 十. 源程序

一引言 随着电子技术的不断发展,我们能应用到的电子产品也越来越多。而生活中我们用的很多电子产品都越来越轻巧,价格也越来越便宜.利用电子芯片实现的东西也越来越来越多,比如数字温度计。当然,非电子产品的常用温度计也很便宜。此次课设论文所介绍的是自己动手制作的一个高精度数字温度计。本次课设不但丰富了课余生活,还从实践中学到并了很多新知识,并从中巩固了以前的知识。 用Protel 99软件来设计制作电路板——PCB(Printed circuit Bound)。在PCB上,布置一系列的芯片、电阻、电容等元件,通过PCB上的导线相连,构成电路,一起实现一定的功能。电路通过连接器或者插槽进行输入/输出,有时还有显示部分(如发光二极管LED、.数码显示器等)。可以说,PCB是一块连接板,它的主要目的是为元件提供连接,为整个电路提供输入输出端口和显示,电气连接通性是PCB最重要的特性之一。PCB在各种电子设备中有如下功能:(1)提供集成电路等各种电子元件固定、装配的机械支撑。(2)实现集成电路等各种电子元件之间的布线和电气连接或电绝缘,提供所要的电气特性。(3)为电动装配提供阻焊徒刑,为元器件插装、检查、维修提供识别符和图形。 做本课题的所用到的知识是我们学过的模拟电子电路以及数字逻辑电路等,当然还用到了刚刚学过不久的单片机知识。本次课设是把理论和实践结合起来,这不但可以锻炼自己的动手能力,而且还可以加深对数字逻辑电路和模拟电子电路的学习和理解。同时也激起了我学好单片机的斗志。为了全面清晰的表达,本论文用图文并茂的方式,尽可能详细的地介绍此次设计的全过程。 二设计务任和要求 2.1、基本范围-20℃——100℃ 2.2、精度误差小于0.5℃ 2.3、LED 数码直读显示 2.4、可以任意设定温度的上下限报警功能 三系统总体方案及硬件设计 3.1数字温度计设计方案论证 3.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。 3.1.2 方案二

基于单片机的数字温度计设计报告

课程设计报告 引言 随着电子技术的不断发展,我们能应用到的电子产品也越来越多。而生活中我们用的很多电子产品都越来越轻巧,价格也越来越便宜.利用电子芯片实现的东西也越来越来越多,比如数字温度计。当然,非电子产品的常用温度计也很便宜。此次课设论文所介绍的是自己动手制作的一个高精度数字温度计。本次课设不但丰富了课余生活,还从实践中学到并了很多新知识,并从中巩固了以前的知识。 用Protel 99软件来设计制作电路板——PCB(Printed circuit Bound)。在PCB上,布置一系列的芯片、电阻、电容等元件,通过PCB上的导线相连,构成电路,一起实现一定的功能。电路通过连接器或者插槽进行输入/输出,有时还有显示部分(如发光二极管LED、.数码显示器等)。可以说,PCB是一块连接板,它的主要目的是为元件提供连接,为整个电路提供输入输出端口和显示,电气连接通性是PCB最重要的特性之一。PCB在各种电子设备中有如下功能:(1)提供集成电路等各种电子元件固定、装配的机械支撑。(2)实现集成电路等各种电子元件之间的布线和电气连接或电绝缘,提供所要的电气特性。(3)为电动装配提供阻焊徒刑,为元器件插装、检查、维修提供识别符和图形。 做本课题的所用到的知识是我们学过的模拟电子电路以及数字逻辑电路等,当然还用到了刚刚学过不久的单片机知识。本次课设是把理论和实践结合起来,这不但可以锻炼自己的动手能力,而且还可以加深对数字逻辑电路和模拟电子电路的学习和理解。同时也激起了我学好单片机的斗志。为了全面清晰的表达,本论文用图文并茂的方式,尽可能详细的地介绍此次设计的全过程。

1.设计务任和要求 1.1、基本范围-20℃——100℃ 1.2、精度误差小于0.5℃ 1.3、LED 数码直读显示 1.4、可以任意设定温度的上下限报警功能 2. 系统总体方案及硬件设计 2.1数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。 2.1.2 方案二 考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。 2.2系统总体设计 温度计电路设计总体设计方框图如图2.1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用4位LED 数码管以串口传送数据实现温度显示。

热敏电阻数字温度计的设计与制作

评分: 大学物理实验设计性实验 实《用热敏电阻改装温度计》实验提要 设计要求 ⑴通过查找资料,并到实验室了解所用仪器的实物以及阅读仪器使用说明 书,了解仪器的使用方法,找出所要测量的物理量,并推导出计算公式,在此基础上写出该实验的实验原理。 ⑵选择实验的测量仪器,设计出实验方法和实验步骤,要具有可操作性。 ⑶根据实验情况自己确定所需的测量次数。 实验仪器 惠斯通电桥,电阻箱,表头,热敏电阻,水银温度计,加热电炉,烧杯等实验所改装的温度计的要求 (1)要求测量范围在40℃~80℃。 (2)定标时要求测量升温和降温中同一温度下热敏温度计的指示值(自己确定测量间隔,要达到一定的测量精度)。 (3)改装后用所改装的温度计测量多次不同温度的热水的温度,同时用水银温度计测出此时的热水温度(作为标准值),绘制出校正曲线。 提交整体设计方案时间 学生自选题后2~3周内完成实验整体设计方案并提交。提交整体设计方案,要求电子版。用电子邮件发送到指导教师的电子邮箱里。 思考题 如何才能提高改装热敏温度计的精确度? 用热敏电阻改装温度计 实验目的: 1.了解热敏电阻的特性; 2.掌握用热敏电阻测量温度的基本原理和方法; 3.进一步掌握惠斯通电桥的原理及应用。 实验仪器:

惠斯通电桥,电阻箱,热敏电阻,水银温度计,滑动变阻器,微安表,加热电炉,烧杯等 实验原理: 1.惠斯通电桥原理 惠斯通电桥原理电路图如图1所示。当电桥平衡时,B,D之间的电势相等,桥路电流I=0,B,D之间相当于开路,则U B=U D;I1=I x,I2=I0; 于是I1R1=I2R2,I1R X=I2R0 由此得R1/R X=R2/R0 或R X=R0R1/R2 (1) (1)式即为惠斯通电桥的平衡条件,也是用来测量 电阻的原理公式。欲求R X,调节电桥平衡后,只要知道 R1,R2,R0的阻值,即可由(1)式求得其阻值。 2.热敏电阻温度计原理 热敏电阻是具有负的电阻温度系数,电阻值随温度升高而迅速下降,这是因为热敏电阻由半导体制成,在这些半导体内部,自由电子数目随温度的升高增加的很快,导电能力很快增强,虽然原子振动也会加剧并阻碍电子的运动。但这样作用对导电性能的影响远小于电子被释放而改变导电性能的作用,所以温度上升会使电阻下降。 这样我们就可以测量电桥非平衡时通过桥路的电流大小来表征温度的高低。 热敏电阻温度计的设计电路图如图2示

基于89C51和DS18B20的数字温度计设计

题目:基于89C51和DS18B20的数字温度计设计 一、设计要求 数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C以内,LED 数码管直读显示。 二、方案论证 根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。 该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。检测范围-55摄氏度到125摄氏度。 按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。 数字温度计总体电路结构框图如图1所示。 图1 数字温度计总体电路结构框图 三、系统硬件电路的设计 温度计电路设计原理图如图2所示,控制器使用单片机AT89C51,温度传

感器使用DS18B20,用4位共阳LED数码管实现温度显示。 图2 数字温度计设计电路原理图 1、主控制器 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2、显示电路 显示电路采用4位共阳LED数码管,从P0口输出段码,列扫描用~口来实现,列驱动用8550三极管。 3、温度传感器工作原理 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 DS18B20 的性能特点如下: ●独特的单线接口方式仅需要一个端口引脚进行通信; ●多个DS18B20可以并联在唯一的三线上,实现多点组网功能; ●无需外部器件;

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