基于PT100热敏电阻的数字温度计.docx
- 文档编号:10057593
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:11
- 大小:121.38KB
基于PT100热敏电阻的数字温度计.docx
《基于PT100热敏电阻的数字温度计.docx》由会员分享,可在线阅读,更多相关《基于PT100热敏电阻的数字温度计.docx(11页珍藏版)》请在冰豆网上搜索。
基于PT100热敏电阻的数字温度计
嵌入式设计
基于热敏电阻的数字温度计设计
院(系)
专业
班级
指导老师
学生姓名
成绩
2015年7月10日
第一章绪论1
第二章设计要求及构思1
2.1设计要求1
2.2设计构思2
第三章总体程序流程图3
第四章原理框图4
4.1PT100伯热电阻:
4
4.2信号放大电路4
4.4主芯片电路图6
4.5四位数码管7
第五章仿真电路图8
第六章心得体会10
参考文献11
附录程序代码12
第一章绪论
随着以知识经济为特征的信息化时代的到来人们对仪器仪表的认识更加深入,温度作为一个重要的物理量,是工业生产过程中最普遍,最重要的工艺参数之一。
随着工业的不断发展,对温度的测量的要求也越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高,因此,温度测量及其测量技术的研究也是一个很重要的课题。
目前温度计按测使用的温度计种类繁多,应用范围也比较广泛,大致可以包括以下儿种方法:
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°C〜110°C;
(2)精度误差小于0.5°C;
(3)LED数码管显示。
2.2设计构思
(1)本题目使用钮热敏电阻PT100,其阻值会随着温度的变化而改变,PT100后的100即表示它在0°C时阻值为100欧姆,在110°C时它的阻值约为142.29欧姆,在・50°C它的电阻值为80.31欧姆。
厂家提供有PT100在各温度下电阻值值的分度表,在0°C到110°C电阻的变化率为(142.29-100)/110«0.3845Q/°C,4-50到0°C电阻的变化率为(100-80.31)750=0.3938Q/°Co向PT100输入稳恒电流,使PT100输出的电压与其内部电阻成线性关系变化。
(2)其输出的的电压是模拟信号,需要进行模数转换后才能被有效显示。
查找相关模数转换元器件后暂选ADC0808进行模数转换,其有效电压为0〜5V。
向PT100输入稳恒电流,再通过A/D转换后测PT100两端电压,即得到PT100的电阻值,进而算出当前的温度值。
(3)由于。
.3850相对于100多欧姆的电阻来说很小,即温度变化1C时输出的电压变化量很小,这么小的电压不能改变ADC0808输出的一个数字信号。
所以要对PT100输出的电压进行放大。
放大倍数是根据最大测量温度确定的,即110°C时输出的电压不能超过+5V,否则测量不到110的温度,最终经调试后取放大倍数为36。
再将放大后的电压输入ADC0808模数转换器。
(4)综上所述。
采用2.49V的电压与运算放大器搭建成的恒流源对PT100进行供电,然后用运算放大器OP07搭建的同相放大电路将其电压信号放大36倍后输入到ADC0808中。
ADC0808根据输入0到5V的电压,转换成对应的十进制。
到255数字。
再利用电阻变化率的特性,计算出当前温度值,数码管直接显示温度。
由于本设计要求测量的最大温度为110C,所以本人设计时使+5V的电压对应温度110°Co通过电压变化量求出电阻的变化量,再通过电阻变化率的特性求出温度的变化量,然后用110与温度变化量相比较即可求得当前的温度。
第三章总体程序流程图
第四章原理框图
U!
pt100是钮热电阻,它的阻值会随着温度的变化而改变。
PT后的100即表示它在0°C时阻值为100欧姆,在100°C时它的阻值约为138.5欧姆。
4.2信号放大电路:
图4・2放大电路图
采用OP07搭建成仪表运算放大器,Vout=(V2-V1)x(1+2R5/R4x(R9/R7),其中R5=R6,
R7=R8,R9=R10o本设计的放大倍数为36。
4.3A/D转换电路
图4-3ADC0808电路图
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
模拟信号输入0到5V电压,8位数字输出端口输出二进制00000000JlJ11111111,即十进制。
到255,所以分辨率为5V/255M.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工作时序图如下:
当START上收到一个启动转换命令(正脉冲)后,8位A/D转换器开始对输入端的信号进行转换,100us后转换结束,转换结果D(0~2A8-1)存入三态输出锁存缓冲器,转换结束信号EOC由低电平变为高电平,通知CPU可以读结果。
CPU可用查询方式(将EOC信号接至一条I/O线上)或中断方式(EOC信号作为中断请求信号导入中断逻辑)了解A/D转换过程是否结束。
4.4主芯片电路图
采用8051单片机作为主芯片,由于P0口内部没有上拉电阻,所以P0口作为输出要接上拉电阻』
4.5四位数码管
图4・6七段四位数码管图
本设计最大显示为三位小数和一位小数,所以采用七段四位共阴数码管,其中段接8051的
P0口,位接8051的P2.0-P2.3口o
第五章仿真电路图
本设计测量的最大温度为11CTC,当温度大于110°C时依然显示为110笆。
这是因为温度为110°C时输入ADC0808的电压为最大值,即+5V,当温度大于110C时,输入ADC0808的有效电压依然为+5V。
图5-3温度为91度时显示的温度
随机选择巧0~110的一个温度,实际为91的温度,测量值为91.1,符合要求的0.5度的范围内。
ABCDEFGDF
图5・4温度为0时显示的温度
温度为。
时,检测的温度为・0.2°C。
线性关系好,符合设计要求。
图5-5-26度时所显示的温度
实际温度为・26度时,测量的温度为・25.8度,符合设计要求。
本设计测量的最小温度为・50C,当温度低于・50°C时,输出数码管的值无效,显示为0。
第六章心得体会
参考文献
[1]黄勤,单片机原理及应用,,清华大学出版社,2006年。
[2]郭天祥,51单片机C语言教程,,电子工业出版社,2012年。
附录程序代码
#include
#includevmath.h>
^defineucharunsignedchar
sbitSIAR=P2A4;
sbitEOC=P2A6;
sbitCLOCK=P2A5;
sbitOE=P2A7;
sbitP20=P2A0;
sbitP21=P2A1;
sbitP22=P2A2;
sbitP23=P2A3;
uchargetdata;
doublechange;
longinttemp;
uchardispbuf[6];
ucharcode
tablei[]=(0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40);//无小数点
ucharcodetable2[]=(0xbf,0x86,Oxdb,Oxcf,0xe6,Oxed,Oxfd,0x87,Oxff,Oxef);
//带小数点09";
/***************j-p***********/
voidTimelnitial()
TMOD=0x10;//定时器1选择2A16
TH1=(65536-200)/256;〃赋初值,定时0.2毫秒
TL1=(65536-200)%256;
EA=1;〃开中断允许
ET1=1;TR1=1;〃开定时器1
)
/★★会★★条•延片早|jz****************/
voidDelay(uchari)
unsignedintj;
for(;i>0;i-)
for(j=0;j<125;j++)
{;}
}
}
/***************^yj-J[^gJ.-J;**************I
voidt1(void)interrupt3using0〃选用0组工作寄存器
TH1=(65536-200)/256;
TL1=(65536-200)%256;
CLOCKaCLOCK;
//取反,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;
}
************11*^^^./'^:
**************
voidPT100()
(doublePR,aveT,aT,deal,U,aR;//电阻值,温度对电阻的变化量(Q/°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
}
//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();//调用显示函数
*************j;^A***********
voidmain()
Timelnitial();
while
(1)
(
STAR=O;//关闭转换
OE=0;//关闭输出
S1AR=1;//开启转换
STAR=O;//关闭转换while(EOC==0)(
OE=1;//开启数据输出允许
Delay(1O);//延时
getdata=P1;〃模数转换后的值赋给getdata
OE=0;
PT1OO();〃调用温度计算函数
})
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PT100 热敏电阻 数字 温度计
![提示](https://static.bdocx.com/images/bang_tan.gif)