基于AD590的数字式温度值.docx
《基于AD590的数字式温度值.docx》由会员分享,可在线阅读,更多相关《基于AD590的数字式温度值.docx(10页珍藏版)》请在冰豆网上搜索。
![基于AD590的数字式温度值.docx](https://file1.bdocx.com/fileroot1/2022-11/16/75b7d82d-978d-4332-bac6-c024ea8ca57c/75b7d82d-978d-4332-bac6-c024ea8ca57c1.gif)
基于AD590的数字式温度值
·第一节引言
随着科学研究、工业和家用电器等方面对测温和温控的需要,各种新型的集成电路温度传感器不断被研制出来。
集成温度传感器是将温敏晶体管与相应的辅助电路集成在同一块芯片上。
它能直接给出正比于绝对温度的理想线性输出。
利用AT89C51单片机为核心,配合温度传感器,信号处理电路,显示电路,可将温度传感器检测到的水温模拟量转换成数字量,显示于LED显示器上。
在众多温度传感器中,集成温度传感器AD590因其线性好、精确度高和易于实现计算机在线测试与数据处理等优点.在生活中有着广泛的应用。
·1.1温度检测系统概述
能源问题已经是当前最为热门的话题,离开能源的日子,世界将失去一切颜色,人们将寸步难行,虽然本设计是节省电能角度出发,而电能又是可再生能源,但是在今天还是有很多的电能是依靠火力,核电等一系列不可再生的自然资源所产生,一旦这些自然资源耗尽,我们将面临电能资源的巨大的缺口,因而本设计从开源节流的截角度出发,节省电能,保护环境。
·1.2本设计任务和主要内容
设计并制作一个温度检测系统。
本设计主要内容如下:
(1)温度测定范围为40-90℃,最小区分度为1℃,标定温度≤1℃。
(2)环境温度降低时温度测量的静态误差≤1℃。
(3)用十进制数码管显示水的实际温度。
·第二节系统主要硬件电路设计
·2.1单片机控制系统原理
由三端稳压器7805给单片机、A/D和数码管提供5V电压。
A/D采样电路直接12V的电源,将温度传感器AD590的电流信号转换成电压信号输送给ADC0804。
·2.2单片机电源部分
采用三端稳压器7805给单片机供电。
7805的输入电压为12V。
·2.3温度采样电路
·2.3.1温度传感器的选取
目前市场上温度传感器较多,有以下几种:
方案一:
选用铂电阻温度传感器,此类温度传感器线性度、稳定性等方面性能都很好,但其成本较高。
方案二:
采用热敏电阻,选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。
方案三:
选用美国AnalogDevices公司生产的二端集成电流传感器AD590。
其测量范围在-50℃--+150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃。
此器件具有体积小、质量轻、线形度好、性能稳定等优点其各方面特性都满足此系统的设计要求。
比较以上三种方案,方案三具有明显的优点,因此选用方案三。
2.3.2温度传感器AD590
测量范围在-50℃--+150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃。
AD590为电流型传感器温度每变化1℃其电流变化1uA在35℃和95℃时输出电流分别为308.2uA和368.2uA。
其外形如图1,采用金属圆壳3脚封装,管脚1为电源正端“+”,2脚为电流输出端“-”,3脚为管壳接地端,一般不用。
电路符号如图2所示。
·2.3.3电路原理及参数计算
3、接下来我们用差动放大器使其输出V。
为(100K/10K)·(V2-V1)=T/10。
由于ADC0804的最大输入电压为5V,所以将电路中的100KΩ电阻分别用一个47KΩ的电阻和5KΩ的滑动变阻器的串联电路代替。
这样,当温度在0-100℃变化时,输出的电压V。
的范围是0-5V。
·2.3.4ADC0804性能描述
ADC0804为8bit的一路A/D转换器,其输入电压范围在0—5v,转换速度小于100us,转换精度0.39﹪。
ADC0804的Vin接采样电路的V。
口,
用两个1KΩ的电阻分压得到。
CS管脚接地,使ADC0804始终处于选通的状态。
输出口DB0-DB7分别接到单片机STC89C52的P1^0-P1^7管脚,将转换后的模拟信号输给单片机。
读信号输入端RD和写信号输入端分WD分别接到单片机的P2^3和P2^4端口。
·2.4温度显示部分
温度显示部分采用两个数码管,显示范围为0-99.数码管采用公阴极数码管,a-dp分别接在锁存器74HC573的Q0-Q7上。
数码管的gnd分别接到单片机的P2^6和P2^5,以控制位选。
而锁存器74HC573的输入端D0-D7分别接到单片机的P0^0-P0^7,锁存端与P2^7连接,以控制数据的输入。
·2.5单片机控制部分
单片机控制部分采用STC89C52控制。
管脚接法如下图
其中,CON9为上拉电阻。
所用晶振为12MHz。
·第三节系统的软件设计
·3.1简述软件设计思路
用单片机控制A/D对输入的电压信号的读入与读出。
将从A/D读入到单片机的电压信号通过函数的转换,转换成相应的温度。
接着将温度的数值存入到一个变量,分解变量的十位数和各位数,再由P0口控制数码管动态显示。
·3.2软件内容
#include//52系列单片机头文件
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2^7;//申明U3锁存器的锁存端
sbitled_a=P2^6;//申明数码管a的gnd
sbitled_b=P2^5;//申明数码管b的gnd
sbitadwr=P2^3;
sbitadrd=P2^4;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelayms(uintxms)//延时函数
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay(ucharshi,ucharge)//显示子函数
{
led_a=0;led_b=1;//选通数码管a,关闭数码管b
dula=1;
P0=table[shi];//送段选数据
dula=0;
delayms(5);//延时
led_a=1;led_b=0;//选通数码管b,关闭数码管a
dula=1;
P0=table[ge];
dula=0;
delayms(5);
}
voidmain()
{
uchara,A1,A2,advalue,temperature;
dula=1;//数码管显示清零
P0=0x00;
dula=0;
while
(1)
{
adwr=1;//关闭A/D转换
_nop_();//延时一个机械周期
adwr=0;//启动A/D转换
_nop_();
adwr=1;
for(a=20;a>0;a--)
{
display(A1,A2);
}
P0=0x00;//读取P1口之前先给其写全0
adrd=1;
_nop_();
adrd=0;//A/D读使能
_nop_();
advalue=P1;//A/D数据读取赋给P1口
adrd=1;
temperature=(uchar)(advalue/255.0*100.0);
A1=temperature/10;//分出十位和个位
A2=temperature%10;
}
}
·第四节系统测试方法
·4.1测试仪器
万用表
·4.2部分指标调试方法
·调节滑动变阻器R2使R2加上R3的阻值为10KΩ
·调节滑动变阻器R10使R10加上R8的阻值为50KΩ
·调节滑动变阻器R11使R11加上R9的阻值为50KΩ
·调节50KΩ的滑动变阻器R5,使运算放大器的反向输入端输入电压为2.73V
·第五节误差分析
1、运算放大器做减法运算器用时,电阻阻值必须精确调节才能使输出结果和理论值更加接近。
2、7805输出电压为4.95V,使得通过函数运算后得到的温度与理想值存在一定的差距。
3、应该给稳压管加强散热,长时间使用时稳压管会长时间处于高温的状态。
4、由于运算放大器没有进行调零,所以温度采集电路的输出电压下限大概在1.39V,所以能显示的最小温度大约为28摄氏度。
由此决定了,本电路的温度测量范围在30℃以上。
5、需要在电路稳定后再调节减法运算器的正向输入端电压为2.73V。
参考文献
【1】郭天祥.51单片机C语言教程——入门、提高、开发、拓展全攻略-北京:
电子工业出版,2009.1ISBN978-7-121-07893-4
【2】康华光.电子技术基础模拟部分(第五版)-高等教育出版社
【3】吴友宇.模拟电子技术基础清华大学出版社
附录:
一、原器件清单:
元器件名称
元器件值或元器件个数
电阻
1K(2个),10K(5个),47K(2个)
滑动变阻器
1k(1个),5k(2个),50k(1个)
电解电容
10uF(1个)和1000uF(2个)
点触式开关
1个
瓷片电容
30pF(2个)、150pF(1个)、0.01uF(1个)
晶振
12MHz(1个)
稳压管
6V(1个)
运算放大器OP07
2个
温度传感器AD590
1个
三端稳压器7805
1个
A/D转换器ADC0804
1个
单片机STC89C52
1个
7段数码管(共阴极)
2个
附表一: