资源描述:
《基于RC充放电的NTC热敏电阻测温试验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于RC充放电的NTC热敏电阻测温试验利用单片机I/O口使用RC充放电原理进行温度测量,前提是单片机的I/O口应有高阻功能,若为AT89C51/AT89C2051系列单片机其I/O口为准双向口无高阻功能;所以,需加一只三极管进行高阻功能扩展。下图中RK为10K精密电阻(精度为1%),RT为10K精度为1%的NTC热敏电阻,C1为0.1uf的瓷片电容。其中电阻和电容的选择应更据单片机的时钟频率及RC充放电时间常数进行选择;选择方法是在保证RK与RT和C1之间的充放电时间常数不能大于单片机内部的定时器的最大定
2、时时间,若无法达到要求,则需降低单片机的时钟频率。本文提供了一种电路非常简单,且易于实现,并且适用于几乎所有类型的单片机。其电路原理图如下所示:图中:P1.0、P1.1和P1.2是单片机的3个I/O脚;RK为100k的精密电阻;RT为100K-精度为1%的热敏电阻;R1为100Ω的普通电阻,若单片机的I/O口灌入电流大于20mA则R1可用导线代替;C1为0.1μ的瓷片电容。其工作原理为:1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。2.将P1.1、P1.2设置为输入状态,P1.0
3、设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间TK。3.将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。4.再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2
4、口转变为高电平的时间TT。5.从电容的电压公式:可以得到:TK/RK=TT/RT,即 RT=(TT/TK)×RK通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。从上面所述可以看出,该测温电路的误差来源于以下几个方面:单片机的定时器精度,RK电阻的精度,热敏电阻RT的精度,而与单片机的输出电压值、门嵌电压值、电容精度无关。因此,适当选取热敏电阻和精密电阻的精度,单片机的工作频率够高,就可以得到较好的测温精度。当单片机选用4MHz的工作频率,RK、RT均为1%精度的电阻时,温度误差可以做到
5、小于1℃。如果P1.2具有外部上升沿中断的功能,程序可以更简单,效果更好。本试验使用AT89C2051单片机,利用了AT89C2051的P1.0或P1.1脚无上拉电阻的特点,否则需I/O口具有高阻功能的单片机或在放电回路加入一只二极管才能实现。原理图如下:图2本图使用了内部比较器注意:电路中的P1.2与P1.3应对调连接,即P1.2控制热敏电阻充电,P1.3控制固定电阻充电。若采用比较器则比较器同相输入端的分压电阻供电应使用精密稳压电源(如TL431等),令外RC充放电回路也应采用精密稳压电源供电,否则,
6、显示的温度值将在很大范围内跳变,这是由于电压波动造成的,可以在单片机供电电路中加一个精密稳压器件。由于AT89C2051的I/O口为准双向口无高阻态功能,所以加入三极管来实现高阻态。图3使用I/O口程序如下:/******************************************************************************************本程序利用I/O口的阀值电压来代替电压比较器进行RC充电时间的计算***************************
7、***************************************************************/#includesbitover=P1^1;//用于检测充电电压sbitCLK=P1^7;//MAX7219时钟信号线sbitLD=P1^6;//数据加载线sbitDIN=P1^5;//数据输入线unsignedcharcodedisp_table[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x77
8、,0x1f,0x4e,0x3d,0x01,0x00};//非译码方式时的共阴数码管显示编码,0~9,E,o,r,d,-,息灭unsignedintcodetemp_table1[]={2953,3092,3238,3392,3554,3726,3908,4099,4302,4516,4743,4983,5237,5507,5792,6095,6416,6756,7118,7502,7910,8348,8804,9295,981