基于某PT100热敏电阻地数字温度计.docx

上传人:b****5 文档编号:5719916 上传时间:2022-12-31 格式:DOCX 页数:18 大小:224.54KB
下载 相关 举报
基于某PT100热敏电阻地数字温度计.docx_第1页
第1页 / 共18页
基于某PT100热敏电阻地数字温度计.docx_第2页
第2页 / 共18页
基于某PT100热敏电阻地数字温度计.docx_第3页
第3页 / 共18页
基于某PT100热敏电阻地数字温度计.docx_第4页
第4页 / 共18页
基于某PT100热敏电阻地数字温度计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于某PT100热敏电阻地数字温度计.docx

《基于某PT100热敏电阻地数字温度计.docx》由会员分享,可在线阅读,更多相关《基于某PT100热敏电阻地数字温度计.docx(18页珍藏版)》请在冰豆网上搜索。

基于某PT100热敏电阻地数字温度计.docx

基于某PT100热敏电阻地数字温度计

嵌入式设计

基于热敏电阻的数字温度计设计

 

院(系)

专业

班级

指导老师

学生姓名

成绩

 

2015年7月10日

 

第一章绪论

随着以知识经济为特征的信息化时代的到来人们对仪器仪表的认识更加深入,温度作为一个重要的物理量,是工业生产过程中最普遍,最重要的工艺参数之一。

随着工业的不断发展,对温度的测量的要求也越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高,因此,温度测量及其测量技术的研究也是一个很重要的课题。

目前温度计按测使用的温度计种类繁多,应用范围也比较广泛,大致可以包括以下几种方法:

1,利用物体热胀冷缩原理制成的温度计2,利用热电效应技术制成的温度检测元件3,利用热阻效应技术制成的温度计4,利用热辐射原理制成的高温计5,利用声学原理进行温度测量本系统的温度测量采用的就是热阻效应。

温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。

将输出的微弱电压信号通过OP07放大,将放大后的信号输入AD转换芯片,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。

第二章设计要求及构思

2.1设计要求

1.系统硬件设计

(1)使用热敏电阻PT100;

(2)单片机采用MCS51系列;

(3)LED数码管显示温度。

2.系统软件设计

(1)温度可以通过PT100热敏电阻实调程序;

(2)AD转换芯片检测温度的模拟量程序;

(3)LED显示程序;

3.系统功能  

(1)测量温度范围−50℃~110℃;

(2)精度误差小于0.5℃;

(3)LED数码管显示。

 

2.2设计构思

(1)本题目使用铂热敏电阻PT100,其阻值会随着温度的变化而改变,PT100后的100即表示它在0℃时阻值为100欧姆,在110℃时它的阻值约为142.29欧姆,在-50℃它的电阻值为80.31欧姆。

厂家提供有PT100在各温度下电阻值值的分度表,在0℃到110℃电阻的变化率为(142.29-100)/110≈0.3845Ω/℃,在-50到0℃电阻的变化率为(100-80.31)/50=0.3938Ω/℃。

向PT100输入稳恒电流,使PT100输出的电压与其内部电阻成线性关系变化。

(2)其输出的的电压是模拟信号,需要进行模数转换后才能被有效显示。

查找相关模数转换元器件后暂选ADC0808进行模数转换,其有效电压为0~5V。

向PT100输入稳恒电流,再通过A/D转换后测PT100两端电压,即得到PT100的电阻值,进而算出当前的温度值。

(3)由于0.385Ω相对于100多欧姆的电阻来说很小,即温度变化1℃时输出的电压变化量很小,这么小的电压不能改变ADC0808输出的一个数字信号。

所以要对PT100输出的电压进行放大。

放大倍数是根据最大测量温度确定的,即110℃时输出的电压不能超过+5V,否则测量不到110的温度,最终经调试后取放大倍数为36。

再将放大后的电压输入ADC0808模数转换器。

(4)综上所述。

采用2.49V的电压与运算放大器搭建成的恒流源对PT100进行供电,然后用运算放大器OP07搭建的同相放大电路将其电压信号放大36倍后输入到ADC0808中。

ADC0808根据输入0到5V的电压,转换成对应的十进制0到255数字。

再利用电阻变化率的特性,计算出当前温度值,数码管直接显示温度。

由于本设计要求测量的最大温度为110℃,所以本人设计时使+5V的电压对应温度110℃。

通过电压变化量求出电阻的变化量,再通过电阻变化率的特性求出温度的变化量,然后用110与温度变化量相比较即可求得当前的温度。

 

第三章总体程序流程图

 

0.2ms

 

 

 

 

第四章原理框图

4.1PT100铂热电阻:

图4-1PT100铂热电阻

pt100是铂热电阻,它的阻值会随着温度的变化而改变。

PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。

4.2信号放大电路:

图4-2放大电路图

采用OP07搭建成仪表运算放大器,Vout=(V2-V1)x(1+2R5/R4x(R9/R7),其中R5=R6,R7=R8,R9=R10。

本设计的放大倍数为36。

4.3A/D转换电路

图4-3ADC0808电路图

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

模拟信号输入0到5V电压,8位数字输出端口输出二进制00000000到11111111,即十进制0到255,所以分辨率为5V/255≈0.0196V。

例如输入的信号为+5V电压时,其输出为数字255。

ADC0808芯片有28条引脚,采用双列直插式封装,如图4-3所示。

各引脚功能如下:

1~5和26~28(IN0~IN7):

8路模拟量输入端。

8、14、15和17~21:

8位数字量输出端。

22(ALE):

地址锁存允许信号,输入,高电平有效。

6(START):

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

7(EOC):

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

9(OE):

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

10(CLK):

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

12(VREF(+))和16(VREF(-)):

参考电压输入端

11(Vcc):

主电源输入端。

13(GND):

地。

23~25(ADDA、ADDB、ADDC):

3位地址输入线,用于选通8路模拟输入中的一路

ADC0808/0809工作时序图如下:

图4-4ADC0808转换时序示意图

当START上收到一个启动转换命令(正脉冲)后,8位A/D转换器开始对输入端的信号进行转换,100us后转换结束,转换结果D(0~2^8-1)存入三态输出锁存缓冲器,转换结束信号EOC由低电平变为高电平,通知CPU可以读结果。

CPU可用查询方式(将EOC信号接至一条I/O线上)或中断方式(EOC信号作为中断请求信号导入中断逻辑)了解A/D转换过程是否结束。

4.4主芯片电路图

图4-58051电路图

采用8051单片机作为主芯片,由于P0口内部没有上拉电阻,所以P0口作为输出要接上拉电阻。

4.5四位数码管

图4-6七段四位数码管图

本设计最大显示为三位小数和一位小数,所以采用七段四位共阴数码管,其中段接8051的P0口,位接8051的P2.0~P2.3口。

第五章仿真电路图

图5-1温度为110℃显示的温度

图5-2温度为112℃显示的温度

本设计测量的最大温度为110℃,当温度大于110℃时依然显示为110℃。

这是因为温度为110℃时输入ADC0808的电压为最大值,即+5V,当温度大于110℃时,输入ADC0808的有效电压依然为+5V。

图5-3温度为91度时显示的温度

随机选择-50~110的一个温度,实际为91的温度,测量值为91.1,符合要求的0.5度的范围内。

图5-4温度为0时显示的温度

温度为0时,检测的温度为-0.2℃。

线性关系好,符合设计要求。

图5-5-26度时所显示的温度

实际温度为-26度时,测量的温度为-25.8度,符合设计要求。

图5-6温度为-50℃时所显示的温度

图5-7温度为-51℃所显示的温度

本设计测量的最小温度为-50℃,当温度低于-50℃时,输出数码管的值无效,显示为0。

 

第六章心得体会

 

 

参考文献

[1]黄勤,单片机原理及应用,北京,清华大学出版社,2006年。

[2]郭天祥,51单片机C语言教程,北京,电子工业出版社,2012年。

 

附录程序代码

#include

#include

#defineucharunsignedchar

sbitSTAR=P2^4;

sbitEOC=P2^6;

sbitCLOCK=P2^5;

sbitOE=P2^7;

sbitP20=P2^0;

sbitP21=P2^1;

sbitP22=P2^2;

sbitP23=P2^3;

uchargetdata;

doublechange;

longinttemp;

uchardispbuf[6];

ucharcodetable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//无小数点"0~9","-"

ucharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点"0~9";

/***************定时器初始化程序***********/

voidTimeInitial()

{

TMOD=0x10;//定时器1选择2^16

TH1=(65536-200)/256;//赋初值,定时0.2毫秒

TL1=(65536-200)%256;

EA=1;//开中断允许

ET1=1;

TR1=1;//开定时器1

}

/*************延时程序****************/

voidDelay(uchari)

{

unsignedintj;

for(;i>0;i--)

{

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

{;}

}

}

/***************定时/计数器1程序**************/

voidt1(void)interrupt3using0//选用0组工作寄存器

{

TH1=(65536-200)/256;

TL1=(65536-200)%256;

CLOCK=~CLOCK;//取反,0.2ms给ADC0808一个时钟脉冲

}

/*************数码管显示程序***********/

voidDisplay()//

{P0=table1[dispbuf[3]];//显示百位

P20=0;

P21=1;

P22=1;

P23=1;

Delay(8);

P0=0x00;

P0=table1[dispbuf[2]];//显示十位

P20=1;

P21=0;

P22=1;

P23=1;

Delay(8);

P0=0x00;

P0=table2[dispbuf[1]];//显示个位

P20=1;

P21=1;

P22=0;

P23=1;

Delay(8);

P0=0x00;

P0=table1[dispbuf[0]];//显示小数位

P20=1;

P21=1;

P22=1;

P23=0;

Delay(8);

P0=0x00;

}

/************计算温度**************/

voidPT100()

{doublePR,aveT,aT,deal,U,aR;//电阻值,温度对电阻的变化量(Ω/°C),温度变化量,结果,电压,电阻变化量

U=5.0/255.0*getdata;//计算某一刻的电压值

aR=(5.0/255.0*getdata)/(5.0/142.29);//计算某一刻的电阻值

PR=142.29-aR;//计算电阻变化量,110°C阻值为142.29

aveT=42.29/110.0;//1°C=42.29/110(Ω)

aT=PR/aveT;//温度变化量

deal=10*(110.0-aT);//所得温度x10

temp=(longint)deal;//最终温度取整(实际值x10倍)

if(U<3.52&&U>2.82)//计算并显示-50~0的温度

{aveT=(100.0-80.31)/50.0;//

PR=100.0-aR;

aT=10*(PR/aveT);

temp=(longint)aT;

dispbuf[0]=temp%10;//计算小数位

dispbuf[1]=temp/10%10;//计算个位

dispbuf[2]=temp/100%10;//计算十位

dispbuf[3]=10;//使显示'-'号

}

//if(temp%2==0)

//temp=temp-5;

else//计算并显示0~110的温度

{dispbuf[0]=temp%10;

dispbuf[1]=temp/10%10;

dispbuf[2]=temp/100%10;

dispbuf[3]=temp/1000;//显示百位

}

Display();//调用显示函数

}

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

voidmain()

{

TimeInitial();

while

(1)

{

STAR=0;//关闭转换

OE=0;//关闭输出

STAR=1;//开启转换

STAR=0;//关闭转换

while(EOC==0)

{

OE=1;//开启数据输出允许

Delay(10);//延时

getdata=P1;//模数转换后的值赋给getdata

OE=0;

PT100();//调用温度计算函数

}}

}

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

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1