本文提供了一种利用单片机多余I/O口实现温度检测电路的低成本方法。该电路非常简单,易于实现,并且适用于几乎所有类型的单片机,其电路如下图所示:
<center><img src="http://mouser.eetrend.com/files/2019-12/wen_zhang_/100046390-85932-2.pn…; alt=“” ></center>
<strong>图中:</strong>
P1.0、P1.1和P1.2是单片机的3个I/O脚;
R<sub>K</sub>为100k的精密电阻;
R<sub>T</sub>为100k±1%的热敏电阻;
R<sub>1</sub>为100Ω的普通电阻;
C1为0.1μ的瓷介电容。
<strong>工作原理:</strong>
1、先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。
2、将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过R<sub>K</sub>电阻对C1充电。单片机内部计时器清零并开始计时,检测P1.2口状态。当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T<sub>1</sub>。
3、将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。
4、再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过R<sub>T</sub>电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T<sub>2</sub>。
5、从电容的电压公式
<center><img src="http://mouser.eetrend.com/files/2019-12/wen_zhang_/100046390-85933-3.pn…; alt=“” ></center>
可以得到:T<sub>1</sub>/R<sub>K</sub>=T<sub>2</sub>/R<sub>T</sub>,即R<sub>T</sub>=T<sub>2</sub>×R<sub>K</sub>/T<sub>1</sub>。通过单片机计算得到热敏电阻R<sub>T</sub>的阻值,并通过查表法可以得到温度值。
从上面所述可以看出,该测温电路的误差来源于这几个方面:单片机的定时器精度,R<sub>K</sub>电阻的精度,热敏电阻R<sub>T</sub>的精度,而与单片机的输出电压值、门嵌电压值、电容精度无关。因此,适当选取热敏电阻和精密电阻的精度,单片机的工作频率够高,就可以得到较好的测温精度。
当单片机选用4M工作频率,R<sub>K</sub>、R<sub>T</sub>均为1%精度的电阻时,温度误差可以做到小于1℃。
如果P1.2具有外部上升沿中断的功能,程序可以更简单,效果更好。
本文转载自:21IC
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理。
<strong><a href="http://www.mouser.cn/applications/" style="color:red;">点击这里,获取更多关于应用和技术的有关信息</a></strong>
<strong><a href="https://www.mouser.cn/blog" style="color:red;">点击这里,获取更多工程师博客的有关信息</a></strong>