HS1101程序及应用原理Word文件下载.doc

上传人:b****3 文档编号:15494680 上传时间:2022-11-02 格式:DOC 页数:11 大小:92KB
下载 相关 举报
HS1101程序及应用原理Word文件下载.doc_第1页
第1页 / 共11页
HS1101程序及应用原理Word文件下载.doc_第2页
第2页 / 共11页
HS1101程序及应用原理Word文件下载.doc_第3页
第3页 / 共11页
HS1101程序及应用原理Word文件下载.doc_第4页
第4页 / 共11页
HS1101程序及应用原理Word文件下载.doc_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

HS1101程序及应用原理Word文件下载.doc

《HS1101程序及应用原理Word文件下载.doc》由会员分享,可在线阅读,更多相关《HS1101程序及应用原理Word文件下载.doc(11页珍藏版)》请在冰豆网上搜索。

HS1101程序及应用原理Word文件下载.doc

从特性曲线曲线图上我们可以看出,HSll01具有极好的线性输出。

可以近似看成相对湿度值与电容值成比例。

因此在测量过程中,采集电容值即可。

2测量电路

2.1湿度定义

湿度指的是相对湿度。

用%RH表示。

即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其空气在相同情况下饱和水蒸气量(饱和水蒸气压)的百分比。

2.2测量原理

HSll00湿度传感器是一种基于电容原理的湿度传感器,相对湿度的变化和电容值呈线性规律。

在自动测试系统中,电容值随着空气湿度的变化而变化,因此将电容值的变化转换成电压或频率的变化,才能进行有效地数据采集。

用555集成电路组成振荡电路,HSl100湿度传感器充当振荡电容,从而完成湿度到频率的转换。

2.3测量方法

HSll01湿敏传感器是采用侧面开放式封装,只有两个引脚,有线性电压输出和线性频率输出两种电路。

在使用时,将2脚接地,这里选用频率输出电路。

该传感器采用电容构成材料,不允许直流方式供电。

所以我们使用555定时器电路组成单稳态电路。

具体电路分析如下。

电源电压工作范围是UCC=+3.5~+12V。

利用一片CMOS定时器TLC555.配上HSll01和电阻R2、R4构成单稳态电路,将相对湿度值变化转换成频率信号输出。

输出频率范围是7351-6033Hz,所对应的相对湿度为0~100%。

当RH=55%时,f=6660Hz。

输出的频率信号可送至数字频率计或控制系统,经整理后送显示。

R3为输出端的限流电阻,起保护作用。

通电后.电源沿着Uc→R4→R2→C对HSl101充电。

经过t1时间后湿敏电容的压降Uc就被充电到TI~C555的高触发电平(Uh=0.67Ucc),使内部比较器翻转,OUT的输出变成低电平。

然后C开始放电,放电回路为C→R2→D→内部放电管地。

经过t2时间后,Uc降到低触发电平(Ul=0.33Ucc),内部比较器再次翻转,使OUT端的输出变成高电平。

这样周而复始的进行充、放电,形成了振荡。

充电、放电时间计算公式分别为:

tl=C(R2+R4)ln2;

t2=CR21n2;

输出波形的频率(f)和占空比(D)的计算公式如下:

f=1/T=1/(t1+t2)=1/C(2R2+R4)ln2;

D=tl/T=t1/t1+t2=R2+R4/(2R2+R4);

通常取R4《R2,使D≈50%,输出接近于方波。

例如,取人R2=567kQ,R4=49.9kΩ。

湿度传感器只是保证传感探头的精度,在实际使用中,综合精度除了与湿度传感器本身元件有关,还与外围电路的器件选择相关。

为了与HSll01温度系数相匹配,Rl数值应取为1%精度,且最大温漂不超过100ppm(ppm:

百万分之一,表示当温度变化1℃,所对应的电阻相对变化量)。

为了保证达到6660Hz/55%,R2与555电路选取参照如下表:

当RH=55%、TA=+25℃时,典型输出方波频率与相对湿度的数据对照见表3。

2.4与微处理器IPC2132接口

LPC2132是一种支持实时仿真和跟踪的16/32位基于ARM7TDMI-S内核的CPU,并带有64KB嵌入的高速FLASH存储器。

LPC2132的实时仿真和跟踪功能方便了代码调试,降低了开发成本。

并且I/O口能够接受5V容限。

整个湿度传感器由于采用频率输出电路,接口简单,可直接与LPC2132普通I/0对接,这里选用PO.6脚做为频率测量接口。

3软件设计

软件设计主要完成对HSl101在单位时间内的频率测量。

软件设计采用端口扫描方式,间隔8S开始测量,测量时间为1S。

统计单位时间内脉冲的个数,与表3对照,确定湿度值的范围,并将湿度值通过LCD显示。

为了保证测量精度,可以取3次以上测量数据,求平均值后,作为最终送显示数据。

微处理器工作晶体选用12.000MHz。

程序代码采用嵌入式C语言编写,经在ADSl.2编译环境中进行编译后,移植到微处理器内执行。

参考软件代码之一:

Do

{

IODIR0=10DIROIRO&OXOfffffbf:

//p0.6设置成输入

d0//读IO口寄存器

{if((IOPIN0&

(1<

<

0x06))==0x00000000)

break:

//检测0电平

}while

(1);

0x06))!

=Ox00000000)

//检测l电平

}while

(1);

fdat++:

//累积1S时间内脉冲个数

}while(pt8s%8==0);

//间隔8S测量一次

fdat--;

time

(1);

//延时必须保留

if((fdat>

6033)&

(fdat<

6187))rhb=90;

//将测量数值转换为对应百分比,1%一100%

6186)&

6331))rhb=80;

6330)&

6469))rhb=70;

6468)&

6601))rhb=60;

6600)&

6729))rhb=50;

6728)&

6854))rhb=40;

6853)&

6977))rhb=30;

6976)&

7101))rhb=20;

7100)&

7225))rhb=10;

if(fdat>

7224)rhb=00:

lhb=fdat%100:

//对测量数值取低两位

//处理需要等待一段时间,否则lhb=0

if((rhb==60)\(rhb==70)\(rhb==90))lhb=lhb/

13:

//对低两位数值取个位,

elseif(rhb==80)lhb=lhb/14;

elselhb=lhb/12;

rhb=rhb+lhb;

//将数据合成一起,送显示

fdat=Ox00000000;

//清0,为下次准备

}

参考软件代码之二:

#include"

reg51.h"

#defineucharunsignedchar

#defineuint 

unsignedint

uchar 

tem0,tem1;

 

temp0,temp1;

uint 

f=0;

//初值

/****************************************************************************

*名称:

timer0()

*功能:

定时器1,每50000us中断一次。

*入口参数:

****************************************************************************/

voidtimer0()interrupt1

EA=0;

TR0=0;

TR1=0;

TL0=0xFF;

//重装值 

定时50000us 

OX4BFFH

TH0=0x4B;

tem0=TL1;

//读数

tem1=TH1;

TL1=0x00;

//定时器1清零

TH1=0x00;

f=1;

//作标注位

TR0=1;

TR1=1;

EA=1;

timer1()

计数器,用于计数将555输出的频率,以计数相对湿度。

voidtimer1()interrupt3 

//T1中断,表示计数的频率溢出,超出了可测量的频率范围,显然在这里不可能。

所以重新启动。

TL0=0x00;

定时50000us

TH0=0x4C;

voidInit_timer()

TMOD=0x51;

//01010001定时器0在模式1下工作16位定时器,定时方式 

定时器1在模式1下工作16位计数器,T1负跳变加1

//定时器0初值定时50000us

ET0=1;

//使能定时器0中断

ET1=1;

//使能定时器1中断

//使能总中断

//开始计时

voidtran()

f=tem1;

f=(f<

8)|t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1