利用单片机实现极简单的测温电路(转)

源:http://www.sinochip.net/TechSheet/67.htm

参考:http://www.docin.com/p-281643435.html

利用单片机实现极简单的测温电路

  单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制,但那些温度检测与控制电路通常较复杂,成本也高,本文提供了一种低成本的利用单片机多余I/O口实现的温度检测电路,该电路非常简单,且易于实现,并且适用于几乎所有类型的单片机。其电路如下图所示:

图中:

  P1.0、P1.1和P1.2是单片机的3个I/O脚;

  RK为100k的精密电阻;

  RT为100K-精度为1%的热敏电阻;

  R1为100Ω的普通电阻;

  C1为0.1μ的瓷介电容。   

其工作原理为:

  1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。

  2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。

  3.将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。

  4.再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T2。

  5.从电容的电压公式:

  可以得到:T1/RK=T2/RT,即  RT=T2×RK/T1 通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。

  从上面所述可以看出,该测温电路的误差来源于这几个方面:单片机的定时器精度,RK电阻的精度,热敏电阻RT的精度,而与单片机的输出电压值、门嵌电压值、电容精度无关。因此,适当选取热敏电阻和精密电阻的精度,单片机的工作频率够高,就可以得到较好的测温精度。

  当单片机选用4M工作频率,RK、RT均为1%精度的电阻时,温度误差可以做到小于1℃。

  如果P1.2具有外部上升沿中断的功能,程序可以更简单,效果更好。

  单片机工作的程序流程图如下:

时间: 2024-10-14 16:57:24

利用单片机实现极简单的测温电路(转)的相关文章

经典测温电路

惠斯通电桥测电阻: 令VAIN0+ = V+,VAIN0- = V-,则V+ - V-= 传感器基准电压需满足比较稳定,电路如下:

PT100测温电路经验

P100电压采集放大电路:前半部分是4.096V恒压源电路,然后是一个桥式电压采样电路,后面是一个电压放大电路. 一 4.096V恒压源电路: 因Vref = 2.5V,故有4.096 = (1 + R1/R2)*2.5,得出R1/R2 = 1.6384,可以通过调节滑动变阻器实现.                二 桥式电压采样电路        这是一个桥式电压采样电路,其原理是将V2作为参考电压,通过V1的变化去得到一个相对的电压数值,这样就能得到PT100的电阻数值,从而得到当前温度数值

基于51单片机的无线测温系统

本51项目基于STC89C52MCU,温度传感器为DS18B20,显示模块用的是LCD1602,无线模块用的是Nodemcu. 项目用到的编程语言:C,C++,Lua. 实现思路是这样,DS18B20测温,然后数据串行传送给51单片机,然后51通过串口将数据传送给Nodemcu,Nodemcu通过其WIFI模块将数据发送给上位机,上位机上的程序是用Qt编写的GUI.(这里无线传输采用的是无连接的UDP协议) 1.DS18B20温度测量模块 DS18B20是单总线器件,所以时序要求非常严格,程序编

基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目

一.前言 1.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目包括用Keil软件编写单片机C语言程序和用Proteus软件仿真单片机外围电路 2.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目构思 (1).声明程序变量思维导图 (2).程序子函数思维导图 (3).程序主函数思维导图 二.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目的Keil软件编写的单片机C语言程序 1 #include<reg52.h>//声明51单片机

DS18B20测温原理及逻辑时序

DS18B20测温原理: 图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入, DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲. 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲. 初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄

环网柜(开关柜)超高频UHF局放在线监测及无线测温2合1装置方案简介

环网柜(开关柜)超高频UHF局放在线监测及无线测温2合1装置方案简介一.局放监测的几种技术流派二.超高频局放的优势三.系统的设计方案1. 概述广州智昊电气IHPS-3300型开关柜局部放电及温升在线监测装置通过检测伴随局部放电而产生的电磁波辐射及开关柜接头温升现象,装置扫描10~100MHz频率范围内的电磁波辐射并自动确定现场局部放电的实际检测频率,随后将检测的局部放电脉冲簇数据和开关柜头温升数据上传DTU.高压开关柜是使用极广且数量最多的开关设备.由于在设计.制造.安装和运行维护等方面存在着不

燃太TN901红外测温模块LCD1602显示

山远的博客 学以致用 首页 旧版 首页 标签 留言本 单片机 文学 趣闻 美图 C#编程 燃太TN901红外测温模块LCD1602显示 燃太TN901红外测温模块LCD1602显示,可设置高温低温报警. 手工焊接电路板,使用STC89C52RC 单片机控制,红外测温模块非接触式测温. 可以设置高温和低温报警. 测量温度超出范围,蜂鸣器发出声音报警,两个指示灯分别表示高温和低温. Tags: TN901 红外测温模块 LCD1602 温度报警

Arduino 负温度系数热敏电阻(NTC)测温

一直都用NTC作为温度传感器来测温,采用Arduino没有现成的例子用NTC测温的,LM35D温度传感器,这款传感器能够测量0-100摄氏度的温度,并以电压的数值输出.从0度开始温度每升高1度输出电压就会提高10mv.而NTC则不然,NTC根据温度变化产生电阻阻值变化,而且是非线性的变化,这就需要用上拉电阻或下拉电阻来选择分辨率较好的区间. #define Pot A2 //电位器引脚命名 int PotBuffer = 0; //AD读取数据缓存变量 void setup() { Serial

利用for循环制作简单的99乘法表

利用for循环制作简单的99乘法表 public class chengfabiao { public static void main(String[] args) { for(int a = 1;a <= 9;a++) { for(int b = 1; b <= a;b++) { int res = a * b; System.out.print("["+a+"x"+b+"="+res+"]"); } Syst