HS1101电容式空气湿度传感器_第1页
HS1101电容式空气湿度传感器_第2页
HS1101电容式空气湿度传感器_第3页
HS1101电容式空气湿度传感器_第4页
HS1101电容式空气湿度传感器_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、键入文字编号: 传感器实训(论文)说明书题 目: HS1101湿度检测计 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 邱俊凯 学 号: 1001130126 指导教师: 王守华 2012年 7月2日桂林电子科技大学实训论文说明书专用纸摘 要随着科技的发达,以及人民生活水平的提高,人民室内生活环境不断改善,出现了空调、智能温度器、室内净化器等一系列改善人民生活条件的高科技产品。然而这并不能满足人民越来越高的生活需求,有些人提出了湿度的要求,本设计就在此基础上,设计一种基于89C51单片机控制的智能湿度控制系统。此系统采用了精密的检测电路(包刮精密对称方波发生器、对数放大及半

2、波整流、温度补偿及温度自动校正及滤波电路等几部分电路组成),能够自动、准确检测环境空气的相对湿度,并将检测数据通过A/D转换后,送到处理器(AT89C51)中,然后通过软件的编程,将当前环境的相对湿度值转换为十进制数字后,再通过数码管来显示;而且,通过软件编程,再加上相应的控制电路(光电耦合及继电器等部分电路组成),设计出可以自动的调节当前环境的相对湿度:当室内空气湿度过高时,控制系统自动启动抽风机,减少室内空气中的水蒸气,以达到降低空气湿度的目的;当室内空气湿度过低时,控制系统自动启动蒸汽机,增加空气的水蒸气,以达到增加湿度的目的,使空气湿度保持在理想的状态;键盘设置及调整湿度的初始值,另外

3、在设计个过程当中,考虑了处理器抗干扰,加入了单片机监视电路。通过对基于单片机的相对湿度控制器设计,加深对传感器技术及检测技术的了解,巩固对单片机知识的掌握,并系统的复习本专业所学过的知识。关键词:湿度检测,对数放大,湿度调节,温度补偿目录1.设计要求12. 方案设计及论证12.1 总体方案设计12.2 系统主要单元的选择与论证12.2.1单片机控制模块的选择论证12.2.2湿度检测模块的选择与论证12.2.3显示模块的选择与论证22.3 系统组成23. 理论分析及计算23.1 HS1101的湿度测量方法分析23.2 HS1101的湿度测量计算24. 系统电路设计24.1单片机主控电路设计34.

4、2 HS1101湿度检测模块电路设计44.2.1 HS1101湿度检测传感器工作原理54.3 1602液晶显示模块电路设计65. 系统软件设计75.1 软件设计流程图75.2 软件设计分析86. 系统测试86.1主要指标测试86.2测试结果分析87. 结论9参考文献10附录11附录一:系统的总原理图11附录二:系统的PCB元件分布图11附录三:程序清单12附录五:元器件清单181. 设计要求(1)设计制作一个湿度计,湿度为0-100%;(2)湿度测量误差为3%;(3)具有量程自动转换功能;2. 2. 方案设计及论证2.1 总体方案设计经分析,将系统分为两个部分,一个是由湿度传感器组成的检测部分

5、,另一个是由单片机和1602液晶组成的主控与显示部分。如图所示HS1101湿度检测电路将检测到的数送到单片机,单片机对接收到的数据进行处理并送到1602显示,5V稳压电源给各个部分供电。单片机显示模块HS1101湿度检测电路电源 图2.1 系统组成框图2.2 系统主要单元的选择与论证 2.2.1单片机控制模块的选择论证方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。 方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为

6、成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。2.2.2湿度检测模块的选择与论证 方案一:选用DHT11作为湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。 方案二:选用HS1101湿度传感器。HS1101是电容式湿度传感器,可测相对湿度范围在0%100%RH,误差为-+2%RH。方案选择,有上述数据可知,根据设计要求:湿度为0-100%;湿度测量误差为3%,从设计要求的精度来看,本方案更优。 综上所述,虽然方案一具有综合作用,但是方案

7、二的测试范围和精度都由于方案一,故本模块采用方案二。2.2.3显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。综上所述,显示模块选择方案二。2.3 系统组成本系统由单片机主控电路、HS1101湿度检测模块、1602液晶显示模块4部分组成,其中单片机主控电路3. 3. 理论分析及计算3.1 HS1101的湿度测量方法分析HS1101是电容式湿度传感器

8、,由于电容不可直接测量,故选用555多谐震荡电路检测到频率,然后由单片机计算的电容值,再根据电容值算出相应的湿度值。3.2 HS1101的湿度测量计算电路如图4.2 ,由电路可知 图3.1电容值与相对湿度值的关系t 充电 =C(R2 +R1 ) ln2 t 放电 =CR4 ln2 因而 , 输出的方波率 f= 1 /(t 充电 +t 放电 )= 1 /C(R2+ 2 R1) ln2 )由图3.1可知相对湿度与电容的关系可看成直线段,所以有相对湿度RH=2.7C+163所以有4. 系统电路设计4.1单片机主控电路设计 单片机主控电路原理图如下所示:图4.1 单片机主控电路原理图 单片机主控模块包

9、括了振落电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。控制电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在

10、系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。 4.2 HS1101湿度检测模块电路设计 HS1101湿度检测模块电路原理图如下所示:图4.2.1 HS1101湿度检测模块电路原理图图4.2.2 HS1101湿度检测模块电路仿真图图4.2.3 HS1101湿度检测模块电路仿真结果图4.2.1 HS1101湿度检测传感器工作原理HS1101湿度检测传感器,其工作电路由555多谐振荡器来实现,HS1101作为电容变量接在555芯片的2、5脚之间,引脚7用作电阻R2的短路,等量电容

11、HS1101通过R1、R2充电到门限电压(约0.67V),通过R4放电到触发电平,然后R2通过7短路到地,传感器由不同的电阻R1、R2充放电,进行工作循环,形成方波。其周期计算如下: T充电=C*(R1+R2)*In2; T放电=C*R1*In2; 由此可知输出方波频率为f=1/(T充电+ T放电)=1/C*(R2+2R1)*In2; 可见空气湿度通过555测量振荡电路,就转变为与之呈反比例的频率信号。4.3 1602液晶显示模块电路设计 1602液晶显示模块电路原理图如下所示:图4.3 1602液晶显示模块电路原理图在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过

12、器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口 、体积小、重量轻 、功耗低 、 1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm 引脚功能说明:1602LCD 采用标准的 14脚(无背光)或 16脚(带背光)接口, 第 1 脚:VSS 为地电

13、源。 第 2 脚:VDD接 5V正电源。 第 3 脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W为低电平时可以写入数据。 第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。

14、第 714脚:D0D7为 8 位双向数据线。 第 15脚:背光源正极。 第 16脚:背光源负极。5. 系统软件设计5.1 软件设计流程图 主程序流程图 液晶显示程序流程开始开始Key键按下?是否忙碌显示湿度 是是 否 否写指令 写数据 设置显示位显示初始化图5.1.1 主程序流程图 图5.1.2液晶显示程序流程湿度检测流程图开始 开定时T0,T1显示湿度关闭T0并根据频率算出湿度值是否计满1S 否 是 5.2 软件设计分析主程序进行扫描。单片机显示湿度,调用湿度显示程序,开启定时中断T0、T1,T0进行定时,T1对湿度电路给的频率计数,当计满1S时关闭T1,单片机对计的数进行运算,得出湿度值,

15、送往液晶显示。6. 6. 系统测试6.1主要指标测试 本系统主要指标就在于所测得的湿度的数据是否达到了题目要求,本系统测量范围湿度为0-100%,湿度测量误差为2%,在17栋211测试湿度为41%。6.2测试结果分析 通过测试,与标准仪器所测得的湿度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。7. 结论本温湿度计的制作基本上达到了题目要求的技术指标,湿度为0-100%,湿度测量误差为3%,实现了量程自动转换功能。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机

16、已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,

17、难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 参考文献(1) 康华光等.电子技术基础M. 北京:高等教育出版社(2) 彭介华.电子技术课程设计指导M. 北京:高等教育出版社(3) 黄智伟全国大学生电子设计竞赛制作实训M北京:北京航空航天大学出版社,2007(4) 黄智伟全国大学生电子设计竞赛系统设计M北京:北京航空航天大学出版社,2006(5) 黄智伟全国大学生电子设计竞赛技能训练M北京:北京航空航天大学出版社

18、,2007(6) 黄智伟全国大学生电子设计竞赛电路设计M北京:北京航空航天大学出版社,2006(7) 黄智伟全国大学生电子设计竞赛 常用电路模块制作M北京:北京航空航天大学出版社,2010(8) 黄智伟等.基于NI multisim的电子电路计算机仿真设计与分析M北京:电子工业出版社,2007(9) 黄智伟.印制电路板(PCB)设计技术与实践M北京:电子工业出版社,2009(10) 高吉祥等.电子技术基础实验与课程设计M北京:电子工业出版社,2002(11) 吴运昌.模拟集成电路原理与应用M广州:华南理工大学出版社,2001年(12) 谭博学等. 集成电路原理及应用M北京:电子工业出版社,20

19、03(13) 魏立军.CMOS 4000系列60种常用集成电路的应用M北京:人民邮电出版社,1993(14) 杨宝清.实用电路手册M北京:机械工业出版社.2002(15) 陈有卿.报警集成电路和报警器制作实例M人民邮电出版社1996附录附录一:系统的总原理图图附1.1 系统总原理图附录二:系统的PCB图及元件分布图附录三:程序清单#include #include #define uchar unsigned char#define uint unsigned int sbit LCD_RS = P20; sbit LCD_RW = P21; sbit LCD_EN = P22; sbit k

20、ey1= P23;sbit key2= P24;uchar code cdis3 = shidujishiyan ;uchar code cdis4 = shidu: % ;uchar code cdis5 = the system of ;uchar code cdis6 = hum ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08

21、,0x09,0x09 ; unsigned char code mytab8 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00 ;bit int_flag; /定时器0 1S到标志位unsigned char volatile int_count; /定时器0中断次数unsigned char volatile T1count; /定时器1中断次数unsigned long sum=0; /1S内脉冲总个数unsigned long wet=0;unsigned char le6; /LED显示缓存#define delayNOP() ; _nop_() ;_

22、nop_() ;_nop_() ;_nop_() ; ;/*/void delay1(int ms) unsigned char y ; while(ms-) for(y = 0 ; y250 ; y+) _nop_() ; _nop_() ; _nop_() ; _nop_() ; /*/*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */*/ bit lcd_busy() bit result ; LCD_RS = 0 ; LCD_RW = 1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P

23、0&0x80) ; LCD_EN = 0 ; return(result) ; /*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; LCD_RS = 0 ; LCD_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /*/*写显示数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */*/v

24、oid lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /* LCD初始化设定 */*/void lcd_init() delay1(15) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 lcd_wcmd(0x38) ; /16*2显示,5*7点阵,8位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_

25、wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; /移动光标 delay1(5) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 delay1(5) ;/* 设定显示位置 */*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80) ; /数据指针=80+地址变量/*自定义字符写入CGRAM */*/void writetab() unsigned char i ; lcd_wcmd(0x40) ; /写CGRAM for (i = 0

26、 ; i 8 ; i+) lcd_wdat(mytab i ) ; /*us级延时函数 */*湿度测量*/ /软件延时/void delays(unsigned int cnt) /us延时 while(-cnt);/定时器0初始化void inti_t0(void) TMOD=(TMOD&0xF0)|0x01); /定时器0工作于方式1/ TH0=(65536-50000)/256; /定时50ms/ TL0=(65535-50000)%256;TH0=0x3C;TL0=0xB0;/ 定时器1初始化void inti_t1(void) TMOD=(TMOD&0x0F)|0x50); /定时器

27、1用作计时方式1 TH1 =0x00; TL1 =0x00;/定时器0中断服务程序 定时1svoid time_t0(void) interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; int_count+; if(int_count=20) /20*50000=1s TR1=0; int_flag=1;/定时满1s标志位 int_count=0; /定时器1中断服务程序计数void time_t1(void) interrupt 3 T1count+; void disp(void) /湿度显示函数 int_flag=0; sum=

28、TL1+TH1*256+T1count*65536; /计算1秒内的脉冲个数 /以下将数据格式化,转成LED可显示的BCD码 wet=100-(sum-4000)/50;/* 湿度计算公式 le0=wet%10; /最低位 wet=wet/10; le1=wet%10; /第二位 wet=wet/10; le2=wet%10; /第三位 wet=wet/10; int_count=0; T1count=0; lcd_pos(0x4a) ; lcd_wdat(le2+48); lcd_pos(0x4b) ; lcd_wdat(le1+48); lcd_pos(0x4c) ; lcd_wdat(l

29、e0+48); delays(100); TH1=0x00; TL1=0x00; TR1=1;/T1重新开始计数 void shidu_Menu ()/显示湿度的菜单 uchar m ; lcd_pos(0x00) ; /设置显示位置为第一行的第1个字符 m = 0 ; while(m16) /显示字符 lcd_wdat(cdis3m) ; m+ ; lcd_pos(0x40) ; /设置显示位置为第二行第1个字符 m = 0 ; while(m16) lcd_wdat(cdis4m) ; /显示字符 m+ ; writetab() ; /自定义字符写入CGRAM delay1(5) ; lcd_pos(0x4d) ; lcd_wdat(0x00) ; /显示自定义字符/*/* 主函数 */*/void main() EA=1; /开总中断 inti_t0(); /初始化定时器0定时50ms inti_t1();/初始化定时器1定时计数外部脉冲下降沿 ET0=1; /T0中断允许ET1=1; /T1中断允许 TR0=1; /定时器0开始定时 TR1=1; /定时器1开始计数 lcd_init() ; /初始化LCD /T0中断发生时重新计数50ms,若满20次(1s),则显示标志位置位,停止计数/T1溢出就T1count加1,并且使初值为0while(1) shidu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论