温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器(共28页).doc

上传人:飞****2 文档编号:14117346 上传时间:2022-05-02 格式:DOC 页数:28 大小:354KB
返回 下载 相关 举报
温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器(共28页).doc_第1页
第1页 / 共28页
温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器(共28页).doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器(共28页).doc》由会员分享,可在线阅读,更多相关《温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器(共28页).doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上摘要此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器单片机STC89C52 对温度湿度分别测量并通过液晶显示屏1602经行显示。 温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。HS1101是电容式空气湿度传感器,在不同的湿度环境下呈现出不同的电容值,0%100%RH湿度范围内,电容从162PF变化到200PF,误差误差为2%RH。可见其精度非常高,为了反映出其电容的变化,本系统采用555多谐震荡电路产生不同的频率,用于检测湿度。单片机采集到两

2、个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。关键词:温湿度测量系统 精度高 速度快 体积小Abstract: The temperature and humidity measurement system is based on singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by L

3、CD display. The line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directi

4、ve given readable. HS1101 is capacitive sensor, air humidity in different humidity presents different capacitance, 0% 100% RH humidity, within the scope of capacitance change to 200PF, from 162PF error for 2% RH error. e can see its precision is very high, in order to reflect the capacitance change,

5、 the system USES the 555 more harmonic concussion circuits produce different frequency, which is used to detect humidity. SCM acquisition to two sensor gives data processing and calculated, the current temperature and humidity and give the display on the LCD panel. This system has a readable, high s

6、tability, reaction speed, measured values exact characteristic.Keywords: temperature and humidity measurement system high precision speed small volume目录1. 设计要求(1)设计制作一个温湿度计,温度测量范围为-10-50,湿度为0-100%;(2)温度测量误差为0.1,湿度测量误差为3%;(3)具有量程自动转换功能;(4)其他创新性设计,如低功耗等。2. 2. 方案设计及论证2.1 总体方案设计显示模块经分析,将系统分为两个DS18B20温度检

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

8、灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。2.2.2温度湿度检测模块的选择与论证 方案一:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。 方案二:选用DS18B20温度传感器和HS1101湿度传感器。是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在,误差为-+0.5。最高精度可达0.0625。HS1101是电容式湿度传感器,可测相对湿度范围在0%10

9、0%RH,误差为-+2%RH。方案选择,有上述数据可知,根据设计要求(温度测量范围为-10-50,湿度为0-100%;温度测量误差为0.1,湿度测量误差为3%;),从设计要求的精度来看,本方案更优。 综上所述,虽然方案一具有综合作用,但是方案二的测试范围和精度都由于方案一,故本模块采用方案二。2.2.3显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案

10、。综上所述,显示模块选择方案二。2.3 系统组成本系统由单片机主控电路、DS18B20温度检测模块、HS1101湿度检测模块、1602液晶显示模块4部分组成,其中单片机主控电路3. 3. 理论分析及计算3.1 HS1101的湿度测量方法分析HS1101是电容式湿度传感器,由于电容不可直接测量,故选用555多谐震荡电路检测到频率,然后由单片机计算的电容值,再根据电容值算出相应的湿度值。3.1HS1101的湿度测量计算电路如图4.2 ,由电路可知 图3.1电容值与相对湿度值的关系t 充电 =C(R2 +R1 ) ln2 t 放电 =CR4 ln2 因而 , 输出的方波率􄸺 f=

11、1 /(t 充电 +t 放电 )= 1 /C(R2+ 2 R1) ln2 )由图3.1可知相对湿度与电容的关系可看成直线段,所以有相对湿度RH=2.7C+163所以有4. 系统电路设计4.1单片机主控电路设计 单片机主控电路原理图如下所示:图4.1 单片机主控电路原理图 单片机主控模块包括了振落电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。控制电路的核心器件是由美国Atmel公司生产的

12、AT89S52单片机,属于MCS-51系列。AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。 4.2 DS18B20温度检测模块和HS1101湿度检测模块电路设计 DS18B20温度检测模块和HS1101湿度检测模块电路原理图如下所示:图

13、4.2.1 DS18B20温度检测模块和HS1101湿度检测模块电路原理图图4.2.2 DS18B20温度检测模块和HS1101湿度检测模块电路仿真图图4.2.3 DS18B20温度检测模块和HS1101湿度检测模块电路仿真结果图4.2.1 HS1101湿度检测传感器工作原理T1为HS1101湿度检测传感器,其工作电路由555多谐振荡器来实现,HS1101作为电容变量接在555芯片的2、5脚之间,引脚7用作电阻R2的短路,等量电容HS1101通过R1、R2充电到门限电压(约0.67V),通过R4放电到触发电平,然后R2通过7短路到地,传感器由不同的电阻R1、R2充放电,进行工作循环,形成方波。

14、其周期计算如下: T充电=C*(R1+R2)*In2; T放电=C*R1*In2; 由此可知输出方波频率为f=1/(T充电+ T放电)=1/C*(R2+2R1)*In2; 可见空气湿度通过555测量振荡电路,就转变为与之呈反比例的频率信号。4.2.2 DS18B20温度检测传感器工作原理 DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系

15、列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的C

16、RC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。4.4.3蜂鸣器电路原理 蜂鸣器额定电流IB30mA,而对于AT89S52单片机,P1口的灌电流为 16mA,拉电流为60A,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用 PNP型晶体管9012。AT89S52采用的晶振电路采用110592MHz的无源晶振,微调电容大小取30pF。显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,电路

17、图如图6所示。1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。系统的输入模块采用中断扫描的44矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。4.3 1602液晶显示模块电路设计 1602液晶显示模块电路原理图如下所示:图4.3 1602液晶显示模块电路原理图在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。 在单片机系统中应用晶液显示器作为输出器件有以下几个优

18、点:显示质量高、数字式接口 、体积小、重量轻 、功耗低 、 1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm 引脚功能说明:1602LCD 采用标准的 14脚(无背光)或 16脚(带背光)接口, 第 1 脚:VSS 为地电源。 第 2 脚:VDD接 5V正电源。 第 3 脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电

19、平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W为低电平时可以写入数据。 第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714脚:D0D7为 8 位双向数据线。 第 15脚:背光源正极。 第 16脚:背光源负极。5. 系统软件设计5.1 软件设计流程图 主程序流程图 液晶显示程序流程开始开始是否忙碌Key1键按下?显示湿度 是是 否 否写指令Key2键

20、按下?显示温度 是写数据 否设置显示位显示初始化图5.1.1 主程序流程图 图5.1.2液晶显示程序流程温度检测程序流程湿度检测流程图开始开始 开定时T0,T1初始化初始化是否成功是否计满1S否 否 是从18B20读字节是关闭T0并根据频率算出湿度值向18B20写字节显示湿度读取温度显示温度图5.1.3温度检测程序流程 图5.1.4 湿度检测流程图5.2 软件设计分析主程序进行键盘扫描,单片机根据判断键盘那个键按下,显示温度或湿度。如果key1键按下就调用温度检测程序,单片机对18B20进行初始化,成功则读字节,再写入字节,读取温度数据送到1602显示。如果key2键按下,就调用湿度显示程序,

21、开启定时中断T0、T1,T0进行定时,T1对湿度电路给的频率计数,当计满1S时关闭T1,单片机对计的数进行运算,的出湿度值,送往液晶显示。6. 6. 系统测试6.1主要指标测试 本系统主要指标就在于所测得的温湿度的数据是否达到了题目要求,本系统测量范围为-10-50,湿度为0-100%;温度测量误差为0.1,湿度测量误差为2%;在8栋111测试温度为16.7度,湿度为41%。6.2测试结果分析 通过测试,与标准仪器所测得的温湿度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。7. 结论本温湿度计的制作基本上达到了题目要求的技术指标,温度测量范围为-10-50,湿度为0-100%;温

22、度测量误差为0.1,湿度测量误差为3%;实现了量程自动转换功能。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程

23、设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 参考文献(1) 康华光等.电子技术基础M. 北京:高等教育出版社(2) 彭介华.电子技术课程设计指导M. 北京:高等教育出版社(3) 郭

24、天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略M.电子工业出版社,2009.(3) 黄智伟全国大学生电子设计竞赛制作实训M北京:北京航空航天大学出版社,2007(4) 黄智伟全国大学生电子设计竞赛系统设计M北京:北京航空航天大学出版社,2006(5) 黄智伟全国大学生电子设计竞赛技能训练M北京:北京航空航天大学出版社,2007(6) 黄智伟全国大学生电子设计竞赛电路设计M北京:北京航空航天大学出版社,2006(7) 黄智伟全国大学生电子设计竞赛 常用电路模块制作M北京:北京航空航天大学出版社,2010(8) 黄智伟等.基于NI multisim的电子电路计算机仿真设计与分析M北

25、京:电子工业出版社,2007(9) 黄智伟.印制电路板(PCB)设计技术与实践M北京:电子工业出版社,2009(10) 高吉祥等.电子技术基础实验与课程设计M北京:电子工业出版社,2002(11) 吴运昌.模拟集成电路原理与应用M广州:华南理工大学出版社,2001年(12) 谭博学等. 集成电路原理及应用M北京:电子工业出版社,2003(13) 魏立军.CMOS 4000系列60种常用集成电路的应用M北京:人民邮电出版社,1993(14) 杨宝清.实用电路手册M北京:机械工业出版社.2002 (15) 陈有卿.报警集成电路和报警器制作实例M人民邮电出版社1996 附录附录一:系统的总原理图图附

26、1.1 系统总原理图附录二:系统的PCB图及元件分布图 图附2.1 单片机主控电路及液晶PCB布线图图附2.2 DS18B20温度检测模块和HS1101湿度检测模块PCB布线图图附2.3 单片机主控电路及液晶PCB元件分布图图附2.24DS18B20温度检测模块和HS1101湿度检测模块PCB元件分布图附录三:程序清单#include #include #define uchar unsigned char#define uint unsigned intsbit DQ = P20 ; /定义DS18B20端口DQ sbit BEEP=P22 ; /蜂鸣器驱动线bit presence ;sb

27、it LCD_RS = P12; sbit LCD_RW = P11; sbit LCD_EN = P10;sbit led= P21; sbit key1= P23;sbit key2= P24;uchar code cdis1 = wendujishiyan ;uchar code cdis2 = T= . C ;uchar code cdis3 = shidujishiyan ;uchar code cdis4 = shidu: % ;uchar code cdis5 = the system of ;uchar code cdis6 = temp and hum ;unsigned c

28、har data temp_data2 = 0x00,0x00 ;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,0x09,0x09 ;void beep() ; unsigned char code mytab8 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00 ;bit int_flag; /定时

29、器0 1S到标志位unsigned char volatile int_count; /定时器0中断次数unsigned char volatile T1count; /定时器1中断次数unsigned long sum,wet; /1S内脉冲总个数unsigned char le6; /LED显示缓存#define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;/*/void delay1(int ms) unsigned char y ; while(ms-) for(y = 0 ; y250 ; y+) _nop_() ; _nop

30、_() ; _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)(P0&0x80) ; LCD_EN = 0 ; return(result) ; /*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */*/void lcd_wcmd(uchar cmd) while(

31、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=数据。 */*/void lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1

32、; 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_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; /移动光标 delay1(5) ; lcd_wcmd(0x01) ; /清

33、除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 ; i 0 ; i-) DQ = 0 ; / 给脉冲信号 dat = 1 ; DQ = 1 ; / 给脉冲信号 if(DQ) dat |= 0x80 ; Delay(4) ; return (dat) ;/* 写一个字节 */*/

34、WriteOneChar(unsigned char dat) unsigned char i = 0 ; for (i = 8 ; i 0 ; i-) DQ = 0 ; DQ = dat&0x01 ; Delay(5) ; DQ = 1 ; dat=1 ; /* 读取温度 */*/ Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0xCC) ; / 跳过读序号列号的操作 WriteOneChar(0x44) ; / 启动温度转换 Init_DS18B20() ; WriteOneChar(0xCC) ; /跳过读序号列号的操作 WriteOneChar(0xBE) ; /读取温度寄存器 temp_data0 = ReadOneChar() ; /温度低8位 temp_data1 = ReadOneChar() ; /温度高8位 /* 数据转换与温度显示 */*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁