您当前的位置:五五电子网电子知识单片机-工控设备凌阳单片机凌阳单片机温度计设计 正文
凌阳单片机温度计设计

凌阳单片机温度计设计

点击数:7229 次   录入时间:03-04 11:51:14   整理:http://www.55dianzi.com   凌阳单片机
常见的玻璃管温度计,是靠管内水银升降来判断温度值的高低。当光线较暗时,就看不清水银位置,给观察带来不便。这里介绍一种采用热敏电阻测温并用语音报告温度值的热敏电阻温度计,它具有使用方便的优点。

电阻测温原理
  热敏电阻是一种新型半导体感温元件,具有灵敏度高、体积小、寿命长的优点。热敏电阻可分为正温度系数和负温度系数两种类型。
  负温度系数热敏电阻具有负的电阻温度特性,当温度升高时,电阻值减小;当温度降低时,电阻值增大,其阻值棗温度特性曲线如0所示。热敏电阻的阻值棗温度特性曲线是一条指数曲线,非线性较大,在实际使用中要进行线性化处理,但比较复杂,一般只使用线性度较好的一段(如图所示ab段)。如果测出热敏电阻的阻值,就可以间接的算出对应的温度值。


温度特性曲线

硬件电路
  用热敏电阻测温的硬件连接见0。将热敏电阻RT与固定电阻R串联,接3.3V电源,当温度改变时,RT阻值改变,其两端的电压随之改变,测量两端的电压,通过以下公式求得温度值: T=T0-KVT
其中:
  T-被测温度
  T0-与热敏电阻特性有关的温度参数
  K-与热敏电阻特性有关的系数
  VT-热敏电阻两端的电压
  此例中选用负温度系数热敏电阻MFD-502-34,其线性化较好的一段是在-20℃~80℃。


硬件连接图

  固定电阻R阻值的选取:
  MFD-502-34型热敏电阻线性化较好的一段是在-20℃棗80℃,为了在最高温度和最低温度时使被测信号基本接近满量程值,采取线性区域内中间某一点温度的阻值作为固定电阻的值。它们分压后,AD的输入电压是AD的输入电压范围一半。在25℃时热敏电阻的阻值为5KΩ,所以选取固定电阻R的值为5KΩ。
  在-20℃时热敏电阻的阻值为37.399KΩ,热敏电阻两端电压VRT=2.9V,接近A/D输入电压的上限3.3V;在80℃时热敏电阻的阻值为0.796KΩ,热敏电阻两端电压VRT=0.45V,接近A/D输入电压的下限0V。
  在温度线性化较好的区域内SPCE061A的A/D值都没有达到极限值。按照0接法时,T0=76,K=0.1022,根据以上公式和参数,测出热敏电阻两端的电压就可以求出被测温度。

温度计算
  系统扩展了一个按键,接于IOA15,当按键按下时,就进行A/D转换初始化,并进行4次A/D转换,SPCE061A的A/D转换结果在高10位,每次将其移入低10位再计算4次平均值作为AD有效结果返回;为了提高准确度,变量TempAD、Temper都采用浮点数,计算完成用语音将温度值报出来。由于在放音时播放函数会改变一些参数,为了稳定期间,在每次A/D转换前都做一次初始化。
  由于每个热敏电阻的特性并非一样、与热敏电阻串联的固定电阻的不准确等原因,每支温度计在整个测量范围内至少找5点进行校正,并适当的修改参数以达到最佳状态。

A/D转换程序:

.publIC _ReadAD
_ReadAD: .proc
R2=4
R3=0
TestLoop:
R1=[P_ADC_MUX_Data]
R1=0x8000
TempConverLoop:
TEST R1,[P_ADC_MUX_CTRl]
JZ TempConverLoop
R1=[P_ADC_MUX_Data]
R1=R1 LSR 4
R1=R1 LSR 2
R3+=R1
R2-=1
JNZ TestLoop
R3=R3 LSR 2
R1=R3
retf
.endp 

温度计算及语音播报部分程序:

 

//进4转换




//进AD转换


//转换H
 
//读AD转换 
 
 
 

if(Key==0x8000)
{
InitAD();
TempAD=ReadAD();             
Temper=76-0.1022*TempAD;
if(Temper<-20 | Temper>80)
Temper=0xFFFF;                  
PlayVoice(Temper);               
}


本文关键字:单片机  温度计  凌阳单片机单片机-工控设备 - 凌阳单片机