单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制,但那些温度检测与控制电路通常较复杂,成本也高,本文提供了一种低成本的利用单片机多余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放电至放完。
再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T2。 从电容的电压公式:可以得到:T1/RK=T2/RT,即 RT=T2×RK/T1 。通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。
从上面所述可以看出,该测温电路的误差来源于这几个方面:单片机的定时器精度,RK电阻的精度,热敏电阻RT的精度,而与单片机的输出电压值、门嵌电压值、电容精度无关。因此,适当选取热敏电阻和精密电阻的精度,单片机的工作频率够高,就可以得到较好的测温精度。
当单片机选用4M工作频率,RK、RT均为1%精度的电阻时,温度误差可以做到小于1℃。
如果P1.2具有外部上升沿中断的功能,程序可以更简单,效果更好。单片机工作的程序流程图如下:
关键字:单片机 IO口 温度检测
引用地址:
低成本的利用单片机多余I/O口实现的温度检测电路
推荐阅读最新更新时间:2024-03-16 13:40
提高MSP430G系列单片机的Flash擦写寿命的方法
摘要 在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存储非易失性数据,但是由于Flash 与EEPROM 在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有客户的需求。本应用笔记介绍了使用代码区域Flash 来模拟EEPROM,通过一定的软件处理算法,可以大大增加数据存储周期的一种方法。本文给出了
[单片机]
单片机智能家居之-窗帘控制器(上电自动识别位置)
//------------------------------------------------------------------------------------ // Copyright (C) 2011 Shenyang 818. // by WEN K // Tool chain: KEIL Full 'c' // //#pragma CD OE DB SB// Compilation directives #include C8051F310.h #define uint unsigned int #define uchar unsigned char sbit LED = P3^3
[单片机]
8051单片机两种减法指令的格式和使用
1.带借位减法 指令 SUBB A,Rn ;(A) (A)-(Rn)-(C),以下类同。 SUBB A,direct SUBB A,@Ri SUBB A,#data 注意:减法之前先清零C,减法指令无不带借位减法指令。 2.减1指令 DEC A ;(A) (A)-1 ,以下类同。 DEC Rn DEC @Ri DEC direct 例、设(R0)=7FH,在内RAM中,(7EH)=00H,(7FH)=40H 执行:DEC @R0 DEC R0 DEC @R0 结果为: (R0)= 7EH,(7EH)=0FFH,(7FH)=3FH。
[单片机]
单片机中断多优先级的软件扩展方法
摘要:为了解决MCS-51系列单片机只能由IP寄存器设定两级优先级的问题,文中给出了利用软件对中断优先级进行扩展的方法,同时给出了高于两个优先级的多优先级软件扩展程序。
关键词:单片机;中断;优先级;寄存器
1 引言
所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。以8051为例,中断系统含有5个中断源,分别是外部中断0请求(INT0),外部中断1请求(INT1),定时/计数器0溢出中断请求(
[应用]
PIC单片机can总线协议收发编程
//该程序运行在pic单片机p18f458上实现发送缓冲器0向接收缓冲器0发送数据的自测试模式,其中接收采用中断方式 //发送采用查询方式 #include "p18f458.h" int CAN_FLAG; //定义标志寄存器 //**************初始化子程序*************** // http://www.51hei.com单片机网提供有问题请联系我们 void initcan() { TRISB=(TRISB|0X08)&0XFB; //设置CANRX/RB3为输入,CANTX/RB2为输出 //设置CAN的波特率为125K,在Fosc=4M时,Tbit=8us,假设BRP=01h //则TQ= /
[单片机]
有了看门狗就不会死机?
死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应,显示凝固。单片机死机后,只有复全才能走出死循环,执行正常的程序流程。众所属知,克服死机的最有效手段是加看门狗(WatchDog)。 目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTimer按固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在DogTimer溢出前强行让DogTimer清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机程序中每隔一段语句放一个清DogTimer的语句 FeedDog语句,以保证程序正常运行时DogTimer不会溢出。一旦程序进入一个不含FeedDog语
[单片机]
PIC单片机CCS之C语言(#INT_DEFAULT的应用)
#INT_DEFAULT 语法: #int_default 目的:如果PIC触发一个中断且没有设置任何中断标志位, 则下面的函数将被调用.如果有一个中断标志,但一次都没触发,则#int_default函数也可被调用. 例子:#int_default default_isr(){ printf( Unexplained interrupt\r\n );
[单片机]
基于单片机C8051F021和时钟芯片实现定时采集存储系统的设计
随着科技的高速发展,现代工业测控领域的很多应用中都需要实现大量数据的定时采集存储。以为海流计设计的海流数据采集存储接口电路为例,介绍一种定时采集存储系统的工作原理及其实现方法。 1 总体结构 在很多情况下,尤其是恶劣的工作环境下,高性能的单片机和大容量的Flash存储器是数据采集存储系统的最佳选择,本文介绍的系统也是基于这样的考虑。系统硬件结构并不复杂,包括高性能单片机C8051F021、实时时钟芯片SD2300、大容量Flash存储器K9G8G08及其外围电路,如图1所示。工作原理也较为简单,通过串口将单片机C8051F021与海流计相连,通过对单片机的编程实现对海流计的控制和使用。同时,为了实现定时采集和数据存储的功能,还
[单片机]