基于温度传感器的数字温度计.docx

上传人:b****1 文档编号:14924982 上传时间:2023-06-28 格式:DOCX 页数:19 大小:141.85KB
下载 相关 举报
基于温度传感器的数字温度计.docx_第1页
第1页 / 共19页
基于温度传感器的数字温度计.docx_第2页
第2页 / 共19页
基于温度传感器的数字温度计.docx_第3页
第3页 / 共19页
基于温度传感器的数字温度计.docx_第4页
第4页 / 共19页
基于温度传感器的数字温度计.docx_第5页
第5页 / 共19页
基于温度传感器的数字温度计.docx_第6页
第6页 / 共19页
基于温度传感器的数字温度计.docx_第7页
第7页 / 共19页
基于温度传感器的数字温度计.docx_第8页
第8页 / 共19页
基于温度传感器的数字温度计.docx_第9页
第9页 / 共19页
基于温度传感器的数字温度计.docx_第10页
第10页 / 共19页
基于温度传感器的数字温度计.docx_第11页
第11页 / 共19页
基于温度传感器的数字温度计.docx_第12页
第12页 / 共19页
基于温度传感器的数字温度计.docx_第13页
第13页 / 共19页
基于温度传感器的数字温度计.docx_第14页
第14页 / 共19页
基于温度传感器的数字温度计.docx_第15页
第15页 / 共19页
基于温度传感器的数字温度计.docx_第16页
第16页 / 共19页
基于温度传感器的数字温度计.docx_第17页
第17页 / 共19页
基于温度传感器的数字温度计.docx_第18页
第18页 / 共19页
基于温度传感器的数字温度计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于温度传感器的数字温度计.docx

《基于温度传感器的数字温度计.docx》由会员分享,可在线阅读,更多相关《基于温度传感器的数字温度计.docx(19页珍藏版)》请在冰点文库上搜索。

基于温度传感器的数字温度计.docx

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

 

DSP综合设计报告

 

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

 

系别:

物理与电子工程学院

专业:

1011电科

姓名:

学号:

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

 

一、课题背景及必要性

  随着电子技术的发展,现在的温度控制系统功能越来越强,可靠性和准确性的要求也越来越高。

以前温度控制系统大部分都是基于数字电路组成的,其功能较为单一,使用起来也不够方便,制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。

由于近年来单片机发展迅速,逐渐出现用单片机制作的温度显示及控制系统,制作过程简单,而且安装、维护简单。

目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。

智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展。

  在这样的背景下,设计出一种用普遍用于工业和生活中的新型高精度电子温度计,且数字温度计能快速准确的显示读数、携带方便和不会造成环境污染等特点。

它在稳定性方面比传统的温度计有着显著的优势,精度要求也能和传统的温度计相媲美。

二、方案设计与论证

总体方案设计

 本次设计采用STC89C52单片机为核心,通过一片STC89C52单片机控制外围电路,使得系统实现实时温度测量与显示功能。

根据系统要求,本设计可分为三个模块,分别为温度采集模块、STC89C52单片机控制模块、数码管显示模块。

2.1温度检测模块的设计及论证

方案一

  由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。

而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。

方案二

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。

2.2显示模块的设计及论证

方案一

  用4位共阳极LED数码管以串口传送数据,实现温度显示,这样的显示模块只能是显示数字,不能显示英文与汉字;而且硬件电路也比较复杂,会增加布线的难度。

优点是价格比较便宜,质量轻。

方案二

  用1602液晶显示屏显示,可以显示英文与数字,可以给人比较直观的感觉,而且硬件电路比较简单,质量也比较轻,使用效果比数码管好,在显示要求不高的情况下,但也不能太差的情况下使用。

方案三

  采用12864液晶显示屏来显示,12864液晶显示比较清新,视觉效果比较好,可以显示画面,英文,汉字以及数字,但是质量比较大,价格比较高。

综上所述,考虑到我们组显示要求不高以及其他因素,我们选用了方案一。

2.3控制器模块的设计及论证

单片机是指一个集成在一块电路芯片上的完整计算机系统。

尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:

中央处理单元

、存储器

和各种

接口,目前大部分还会具有外部存储扩展。

它使用简洁方便,体积小,结构最为简单,成本低廉,很容易嵌入到各种应用系统中。

单片机的选择方案可以有以下两种:

方案一

采用STC89C52单片机。

它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8的微处理器。

该器件采用

高密度非易失存储器技术制造,与工业标准

指令集和输出管脚相兼容。

属于51单片机系列,是C51单片机向下完全兼容51全部系列产品。

该款单片机片内含8kBytesISP(I-systemprogrammable)可反复擦写1000次的Flash只读存储器,可以通过串口进行程序的烧写,内带2kBytesEEPROM存储空间,4个8位的可编程并行I/O口(P0口,P1口,P2口,P3口),一个全双工串口,5个中断源,2级中断优先权,3个16位的定时器/计数器),具有四种工作方式以及特殊功能寄存器(SFR)等。

方案二

采用AT89S52单片机,AT89S52同样也是一个低功耗,高性能的8位单片机,也具有8kBytesISP(I-systemprogrammable)可反复擦写1000次的Flash只读存储器,但是它没有内带EEPROM存储空间,且AT89S52的ISP一般要使用专门的下载器才能跟烧写程序。

综合比较方案一与方案二,方案一更优与方案二,因为STC89C52的指令完全兼容AT89S52,程序的烧写方便,STC89C52的其它指令执行周期也比AT89S52的速度快,内部资源和I/O口的设置上比AT89S52更优越,而且STC89C52的价格相对AT89S52的低,故该设计的单片机选择STC89C52。

2.4数字温度计总体设计

温度计电路设计总体设计方框图如下图所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用数码管实现温度显示。

图2-1 总体设计方框图

三、硬件设计

3.1整体电路图

图3-1整体电路图

3.2主控制器模块电路

3.2.1STC89C52主要功能及引脚介绍

单片机STC89C52具有低电压供电高性能COMS8位单片机,片内含有8Kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器,在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程Flash。

图3-1为STC89C52的引脚图:

图3-2STC89C52引脚图

其各引脚介绍如下:

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

  在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

  P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

  P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

  P1.5MOSI(在线系统编程用)

  P1.6MISO(在线系统编程用)

  P1.7SCK(在线系统编程用)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

  端口引脚第二功能:

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2INTO(外中断0)

  P3.3INT1(外中断1)

  P3.4TO(定时/计数器0)

  P3.5T1(定时/计数器1)

  P3.6WR(外部数据存储器写选通)

  P3.7RD(外部数据存储器读选通)

RST——复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平,则单片机复位。

3.2.2DS18B20数字温度传感器

 

图3-3DS18B20内部结构图

DS18B20是美国DALLAS公司生产的全新单线(1-wire)数字式温度传感器,不需要另外再接A/D转换器。

它采用单线技术,与单片机通信只需一个引脚2(地址、命令、数据输入或输出引脚)。

独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

DS18B20功能特性:

1:

GND(地)

2:

DQ(地址、命令、数据输入或输出)

3:

VDD(可选的+5V电源)

DS18B20的温度检测范围是:

-55℃~+125℃,固有测温分辨率0.5℃。

在-10~85℃范围内误差为±0.5℃。

工作电源:

3.0~5.5V/DC。

测量结果以9~12位数字量方式串行传送,适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温,温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置。

应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。

DS18B20的数字温度计提供9至12位可编程设备温度读数。

信息从DS18B20通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。

为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。

因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线。

这使得温度传感器放置在许多不同的地方。

它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。

并且同一根信息线上可挂多个DS18B20而互不影响,因为每个DS18B20有惟一的63位序号,该序号存放在各自的ROM里面。

工作原理:

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率的不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20温度传感器的低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度的温度值。

DS18B20温度传感器中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

3.2.3STC89C52最小系统的基本电路

(1)电源电路

芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在4—5.5之间,可保证单片机系统能正常工作。

为提高电路的抗干扰性能,通常在引脚VCC和GND直接接上一个10μF的电解电容和一个0.1μF陶片电容,这样可以抑制杂波串扰,从而有效确保电路稳定性。

(2)时钟电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。

时钟可以由内部方式产生或外部方式产生。

在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。

定时元件通常采用石英晶体和电容组成的并联谐振回路。

晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。

在本设计中时钟采用内部方式产生,晶振振荡频率使用12MHZ。

晶振电路如下图所示:

图3-4晶振电路

(3)显示电路

系统采用4个八段数码管对温度进行显示。

4个数码管拼接成4位的LED数码管显示器,它们有公共的段选线(a,b,c,d,e,f,g,dp),每一位数码管有各一个位选线,控制该LED显示位的亮与暗。

具体的显示电路如图3-1所示。

由图可知,4位LED数码管的段选线是由STC89C52的P0口控制,又因为LED显示段码时至少需要20mA,所以在段选线与单片机引脚之间加上拉电阻驱动数码管的段。

同时,LED显示器的位选线是由PNP三极管来控制,其中三极管充当的是开关作用,它主要是工作在饱和区和截止区。

三极管的基极接到单片机的I/O口,集电极连接数码管的位选端,基极接Vcc。

(4)温度采集电路

温度传感器DS18B20芯片的数据端连接到单片机的P3_4端,向单片机传送温度信号,它的1引脚接地,3引脚和数据端之间接一个电阻后接电源VCC,这样实现对温度的检测。

四、软件设计

4.1主程序流程图

本系统的功能主要是完成温度的实时显示,在测量温度之前先对系统进行初始化,然后再经过DS18B20温度传感器检测温度,将检测到的温度值进行读取与处理后,最终进行显示温度。

其程序流程图如图4-1所示:

图4-1主程序流程图

4.2温度转换子程序

温度转换子程序主要是发出温度过转换开始命令,系统采用12分辨率时转换时间最大为750ms。

在本次程序设计中用地延时法等待温度转换的完成,其温转换子程序流程图如图4-2所示:

图4-2温度转换子程序

4.3读温度子程序流程图

读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

(高速暂存器RAM的第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

)其程序流程图如图4-3所示:

 

图4-3读温度子流程图

4.4程序

#include

#defineu8unsignedchar

#defineu16unsignedint

sbita=P1^0;sbitb=P1^1;sbitc=P1^2;sbitd=P1^3;sbitDQ=P3^3;

u16temp;

u8codetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

u8codetable1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

voiddelay(u8x)

{

while(x--);

}

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

长时间1ms延时函数

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

voidsdelay(u16x)

{

u16i,j;

for(i=0;i

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

}

voidinit_ds18b20()

{

bitflag=1;

while(flag)

{

while(flag)

{

DQ=1;

delay

(1);

DQ=0;

delay(50);//550us

DQ=1;

delay(6);//66us

flag=DQ;

}

delay(45);//延时500us

flag=~DQ;

}

DQ=1;

}

voidwrite_ds18b20_byte(u8dat)//writeabytetods18b20

{

u16i;

u8j;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)//write1

{

DQ=0;

i++;

i++;

DQ=1;

i=8;

while(i>0)

i--;

}

else

{

DQ=0;//write0

i=8;

while(i>0)

i--;

DQ=1;

i++;

i++;

}

}

}

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

18B20读1个字节函数

从1-WIRE总线上读取一个字节

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

u8read_ds18b20_byte()//readabytedate

{

u8i,j,dat;

dat=0;

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

{

DQ=1;

j++;

j++;

dat>>=1;

DQ=0;

j++;

j++;

DQ=1;

j++;

j++;

if(DQ)

dat|=0x80;

j=8;

while(j>0)

j--;

}

DQ=1;

return(dat);

}

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

从ds18b20读出温度

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

u16read_temp()//getthetemperature

{

u8a,b;

init_ds18b20();

write_ds18b20_byte(0xcc);//跳过ROM

write_ds18b20_byte(0x44);

delay(100);

init_ds18b20();//复位

write_ds18b20_byte(0xcc);//发SkipROM命令

write_ds18b20_byte(0xbe);//发读命令

a=read_ds18b20_byte();//温度低8位

b=read_ds18b20_byte();//温度高8位

b<<=4;

b+=(a&0xf0)>>4;

returnb;

}

voiddisplay()

{

temp=read_temp();

a=1;b=0;c=0;d=0;

P0=table[temp/10];

sdelay(4);

a=0;b=1;c=0;d=0;

P0=table1[temp%10];

sdelay(4);

a=0;b=0;c=1;d=0;

P0=table[0];

sdelay(4);

a=0;b=0;c=0;d=1;

P0=0x61;

}

voidmain()//主程序

{

P1=0x00;

P0=0x00;

while

(1)

{

display();

}

}

四、调试

系统的调试以程序为主。

硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。

软件调试则可以先编写显示程序并进行硬件的正确行检验,然后分别进行主程序、温度转换子程序、读温度子程序等的编程及调试,由于DS18B20与单片机采用串行数据的传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。

本程序采用单片机C语言编写,用KeilC51编译器编程调试,软件调试直到能够显示温度值,温度正常显示,此时软件调试基本完成。

五、总结

本次设计主要是实现温度的检测,采用的是数字温度感器DS18B20对温度进行采集,并对温度模拟信号进行处理(即A/D模数转换),然后将数据送入单片机STC89C52,再通过显示电路部分(四位八段数码管)来显示所测得的温度值。

对于本次设计工作,收获很多。

通过查阅大量的文献资料,较为详细的了解了关于温度传感器的分类、各类温度传感器的特点及原理,在原来的学习Protel99se硬件电路绘制的基础之上,进一步熟悉了电路原理图的绘制、元器件的制作与封装及PCB印制板的布线。

同时,又也掌握了Proteus电路仿真软件的应用。

充分认识到单片机的重要性及近年来的发展的迅速,它将会运用到生活、科技领域的各个角落,朝着集成化、智能化的方向发展。

这次设计也存在着一些不足之处,如功能设计方面,还可以加入一个继电器,当温度值超出了预设范围后,这时继电器就可以进行控制操作;同时用于报警的报警电路也可以利用一语音芯片来进行报警提示等。

希望在以后的学习工作中,不断的完善其功能,使得其功能更加强大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2