基于热敏电阻的数字温度计设计.docx
- 文档编号:30010167
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:22
- 大小:406.75KB
基于热敏电阻的数字温度计设计.docx
《基于热敏电阻的数字温度计设计.docx》由会员分享,可在线阅读,更多相关《基于热敏电阻的数字温度计设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于热敏电阻的数字温度计设计
1课程设计的目的
(1)掌握单片机原理及应用课程所学的理论知识;
(2)了解使用单片机设计的基本思想和方法,学会科学分析和解决问题;
(3)学习单片机仿真、调试、测试、故障查找和排除的方法、技巧;
(4)培养认真严谨的工作作风和实事求是的工作态度;
(5)锻炼自己的动手动脑能力,以提高理论联系实际的能力。
2课程设计的任务和要求
(1)采用LED数码管显示温度;
(2)测量温度范围为-10℃~110℃;
(3)测量精度误差小于0.5℃。
3设计方案与论证
方案一:
本方案主要是在温度检测部分利用了一款新型的温度检测芯片DS18B20,这个芯片大大简化了温度检测模块的设计,它无需A/D转换,可直接将测得的温度值以二进制形式输出。
该方案的原理框图如图3-1所示。
DS18B20是美国达拉斯半导体公司生产的新型温度检测器件,它是单片结构,无需外加A/D即可输出数字量,通讯采用单线制,同时该通讯线还可兼作电源线,即具有寄生电源模式。
它具有体积小、精度易保证、无需标定等特点,特别适合与单片机合用构成智能温度检测及控
制系统。
图3-1方案一系统框图
方案二:
温度检测部分采用传统的热敏电阻,热敏电阻的阻值随环境温度变化而变化,将热敏电阻与固定电阻串联后分压,经A/D转换器将其转换为单片机可识别得二进制数字量,然后根据程序查表得到温度值,单片机主要控制LED显示器显示正确的温度值,并根据设置的上下限控制继电器动作,从而控制外部负载。
该方案的原理框图如图3-2所示。
图3-2方案二系统框图
方案一与方案二的主要区别在温度检测部分,方案一主要利用DS18B20这块芯片进行温度检测,并将采集到的模拟量转换为单片机识别的二进制数。
方案二是采用热敏电阻检测温度,然后利用A/D转换器将温度模拟量转换为二进制数供单片机处理。
它最大的特点就是它能检测的温度范围很大,热敏电阻的性能决定了整个设计的所能检测的温度范围。
方案一的温度检测范围已经由系统中的DS18B20的特性所决定,它能检测的温度范围为-55℃到120℃,其温度检测范围很宽,已能足够满足一般测量需要,方案一是利用现有的智能温度传感芯片DS18B20,无需A/D转换,直接输出数字量,从整体上来看方案二比方案一更具有实际的锻炼意义,所以本设计采用方案二。
4电路设计
系统硬件电路主要包括3个部分:
(1)温度测量电路;
(2)单片机最小系统;(3)LED数码显示电路。
4.1温度测量电路
温度测量电路主要由ADC0809、TL431、热敏电阻和电阻组成。
TL431是一个由良好的热稳性能的三端可调分流基准电压源。
它的输出电压用两个电阻就可以任意设置到2.5V到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如数字电压表、运放电路、可调电压源、开关电源等等。
在此电路中,它用于给ADC0809和热敏电阻提供可调电压。
电路中的热敏电阻作为测温元件,它是利用感温元件(导体)的电阻随温度变化的性质,将电阻的变化值用显示仪表反映出来,从而达到测温的目的。
导体测温元件,它与热电阻的温阻特性刚好相反,即有很大负温度系数,也就是说温度升高时,其阻值降低。
它们的关系为
(4-1)
式(4-1)中RT-在温度T(K)时的电阻值;
RT0:
在温度T0(K)时的电阻值;
E:
自然对数的底数;
B:
与热敏电阻特性有关的系数;
T:
被测温度;
T0与热敏电阻有关的温度参数。
根据这一公式,如果能测得热敏电阻两端的电压,并知道参数T0和B,则可以计算出热敏电阻的环境温度,即:
被测温度,就这样就把电阻随温度的变化关系转变为电压随温度变化的关系。
系统中的A/D转换电路,负责将的温度测量电路中输出的模拟电压信号转化为可供单片机识别的数字信号。
主要采用ADC0809串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。
由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。
ADC0809芯片有28条引脚,采用双列直插式封装,其管脚图如图4-1所示。
图4-1ADC0809引脚图
引脚功能如下。
IN0~IN7:
8路模拟量输入端。
OUT1~OUT8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路。
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLOCK:
时钟脉冲输入端。
REF(+)、REF(-):
基准电压。
VCC:
电源,单一+5V。
GND:
地。
ADC0809工作过程:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先,送出出口地址,并且在信号有效时,即OE信号有效,把转换数据送到数据总线,供单片机接收。
利用热敏电阻和电阻串联,用TL431制作4V电压用于A/D的参考电压和热敏电阻的供电,R7是分压电阻,R9是可调电位器,用于调节TL431的输出电压。
当温度升高时,R8热敏电阻的阻值变小,串联的30k的电阻两端的电压就会升高,ADC0809采集到电压信号经过转换后将数字量传输给单片机。
温度测量电路图如图4-2所示。
图4-2温度测量电路
4.2单片机最小系统
STC89C51是一种低功耗、高性能的CMOS8位微控制器,具有4K可编程Flash,其引脚如图4-3所示。
图4-3STC89C51的引脚图
单片机的最小系统由时钟电路和复位电路组成。
时钟电路:
此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
STC89C51内部有一个用于构成振荡器的高增益反相放大器。
引脚X1和X2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C2和C3构成并联谐振电路,接在放大器的反馈回路中。
时钟电路图如图4-4所示。
图4-4时钟电路
复位电路:
STC89C51的复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按键复位两种方式,此电路系统采用的是上电与按钮复位电路。
复位电路图如图4-5所示。
图4-5复位电路
4.3LED数码显示电路
该电路选用的数码管是四位八段共阳极的,数码管的扫描方式分为静态扫描和动态扫描两种,由于单片机资源有限,这里采用的是动态扫描的方法。
在该接法中,用到单片机的P0和P1口,其中P0作为输出口;电路中利用三极管驱动数码管,用电阻起到限流作用,使得数码管亮度适中,其电路图如图4-6所示。
图4-6LED数码显示电路图
5系统软件设计
系统程序主要包括初始化、温度采集、数据处理和显示温度四部分。
该电路设计的程序流程图如图5-1所示。
开始
初始化
采集温度
数据处理
显示温度
图5-1程序流程图
温度采集和数据处理部分主要由热敏电阻、数模转换器ADC0809、单片机及四位共阳数码管组成。
通过测得热敏电阻阻值,利用热敏电阻阻值与电压的对应关系,将热敏电阻阻值转化为输出电压,ADC0809采集输出的电压信号,并将采集的电压信号转换为数字信号,传送给单片机,由单片机P0口输出,最后由四位共阳数码管采用动态扫描方式显示温度。
6系统调试
在整个调试过程中首先应注意各个模块的供电问题,其中单片机和A/D等芯片使用5V电压供电。
由热敏电阻构成的测温部分和A/D的参考电压输入端则使用+4V电压供电,表6-1为系统的调试数据。
表6-1系统调试数据
热敏电阻输出电压
理论测量温度
实际测量温度
3.23V
-6℃
-7℃
3.67V
-3℃
-3℃
3.8V
18℃
18℃
调试结果如图6-1、图6-2、图6-3所示。
图6-1调试结果一
图6-2调试结果二
图6-3调试结果三
7总结
经过一周的课程设计,通过对热敏电阻的数字温度计系统的设计过程及计算得出如下结论。
设计电路关键在于对设计要求的理解分析以及对基本电路相关知识的熟练掌握。
设计电路时,将总体的功能分成若干个部分来实现,是简化电路设计思路的很好方法;且搞清各个模块的功能与实现要求操作的具体方法,对电路故障的检查也是很有帮助。
通过这次设计,学到了很多东西,如查找资料,设计比较,从各种图中提取所需。
焊接时学到了好多,如如何在一定大小的板子上正确摆放好芯片,如何布线等等,调试时也是,知道了用工具如万用表来检查、修复故障。
本设计对有限温度范围内的温度测量具有较高的精度,在这过程中,感谢老师和同学对我们的帮助,程序经过无数次地调试,实现了测量温度显示。
在做实物的过程中,我们在焊接时还是谨小慎微,但是由于焊接时引脚短路的问题导致实物没出来现象。
学会了用Proteus软件的应用。
在以后的学习中更加地完善自己,努力提升自己。
参考文献
[1]杨素行.模拟电子技术基础[第3版].北京:
高等教育出版社,2006.
[2]阎石.数字电子技术基础[第5版].北京:
高等教育出版社,2006.
[3]赵茂泰.智能仪器原理及应用[第3版].北京:
电子工业出版社,2009.
[4]郭天祥.51单片机C语言教程.北京:
电子工业出版社,2006.
[5]张忠梅.单片机的C语言应用程序设计[第4版].北京:
北京航空航天大学出版社,2006.
[6]李朝青.单片机原理及接口技术[第3版].北京:
北京航空航天大学出版社,2006.
[7]孙有才.新型AT89S51系列单片机及其应用.北京:
清华大学出版社,2001.
[8]姚福安.电子电路设计与实践.济南:
山东科学技术出版社,2009.
[9]李青.电路与电子技术基础.杭州:
浙江科学技术出版社,2004.
附录1:
总体电路原理图
附录2:
元器件清单
序号
名称
型号规格
数量
1
单片机
STC89C51
1
2
模数转换器
ADC0809
1
3
数码管
4位共阳
1
4
三极管
9012
4
5
晶振
12MHZ
1
6
排阻
10K
1
7
电阻
220
1
2.2K
4
10K
1
30K
1
8
瓷片电容
30pF
2
100nF
1
9
电解电容
10uF
1
10
电位器
10K
1
11
可调分流基准电压源
TL431
1
12
导线
若干
13
焊锡
若干
附录3:
实物图
附录4:
源程序
//程序头函数
#include
//宏定义
#defineuintunsignedint
#defineucharunsignedchar
#defineData_ADC0809P1
//管脚声明
//ADC0809
sbitST=P3^3;
sbitEOC=P3^4;
sbitOE=P3^2;
//显示数组0-9H,L,-
ucharData_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x76,0x38,0x40};
ucharcodeData_T[]={//AD数值对应的温度
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,/*0-11*///此范围内为无效值,读到的数据为---7
0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,/*12-20*///此范围内为负温度值-9~-1
0,1,2,3,4,5,6,6,7,8,/*21-30*///以下为正温度0-111
9,9,10,11,11,12,13,13,14,15,/*31-40*/
15,16,17,17,18,18,19,19,20,21,/*41-50*/
21,22,22,23,23,24,24,25,25,26,/*51-60*/
26,27,27,28,28,29,29,30,30,30,/*61-70*/
31,31,32,32,33,33,33,34,34,35,/*71-80*/
35,36,36,36,37,37,38,38,39,39,/*81-90*/
39,40,40,41,41,42,42,42,43,43,/*91-100*/
44,44,44,45,45,46,46,47,47,47,/*101-110*/
48,48,49,49,49,50,50,51,51,51,/*111-120*/
52,52,53,53,54,54,54,55,55,56,/*121-130*/
56,57,57,57,58,58,59,59,60,60,/*131-140*/
60,61,61,62,62,63,63,64,64,65,/*141-150*/
65,65,66,66,67,67,68,68,69,69,/*151-160*/
70,70,71,71,72,72,73,73,74,74,/*161-170*/
75,75,76,76,77,78,78,79,79,80,/*171-180*/
80,81,82,82,83,83,84,85,85,86,/*181-190*/
87,87,88,89,89,90,91,91,92,93,/*191-200*/
94,94,95,96,97,98,99,99,100,101,/*201-210*/
102,103,104,105,106,107,108,109,110,111/*211-220*/
};
sbitWei1=P2^7;
sbitWei2=P2^6;
sbitWei3=P2^5;
sbitWei4=P2^4;
//函数声明
voidDisplay(ucharData);
uinttemp,temp1;
ucharp;
//ADC0809读取信息
ucharADC0809()
{
uchartemp_=0x00;
//初始化高阻太
OE=0;
//转化初始化
ST=0;
//开始转换
ST=1;
ST=0;
//外部中断等待AD转换结束
while(EOC==0);
//读取转换的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
returntemp_;
}
//延时
voiddelay(uintt)
{
uinti,j;
for(i=0;i for(j=0;j<10;j++); } voidmain() { uchari; uintpp; while (1) { for(i=0;i<50;i++) { temp=ADC0809(); pp=pp+temp; Display(temp1); } temp1=pp/50; pp=0; temp1=Data_T[temp1]; for(p=0;p<50;p++) Display(temp1); } } //显示Data表示数据 voidDisplay(ucharData) { Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=0xff; if(Data>128) { Data=Data-128; P0=~Data_[12]; Wei1=0; Wei2=1; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=~Data_[Data/10]; Wei1=1; Wei2=0; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=~Data_[Data%10]; Wei1=1; Wei2=1; Wei3=0; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=0xa7; Wei1=1; Wei2=1; Wei3=1; Wei4=0; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; } elseif(Data<128) { if(Data/100==0) P0=0xff; else P0=~Data_[Data/100]; Wei1=0; Wei2=1; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=~Data_[Data/10%10]; Wei1=1; Wei2=0; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=~Data_[Data%10]; Wei1=1; Wei2=1; Wei3=0; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=0xa7; Wei1=1; Wei2=1; Wei3=1; Wei4=0; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 热敏电阻 数字 温度计 设计