基于stc89c52和温度传感器DS18B20及湿度传感器HS1101的温湿度测量系统.docx
- 文档编号:6359792
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:31
- 大小:486.99KB
基于stc89c52和温度传感器DS18B20及湿度传感器HS1101的温湿度测量系统.docx
《基于stc89c52和温度传感器DS18B20及湿度传感器HS1101的温湿度测量系统.docx》由会员分享,可在线阅读,更多相关《基于stc89c52和温度传感器DS18B20及湿度传感器HS1101的温湿度测量系统.docx(31页珍藏版)》请在冰豆网上搜索。
基于stc89c52和温度传感器DS18B20及湿度传感器HS1101的温湿度测量系统
摘要
此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器
单片机STC89C52对温度湿度分别测量并通过液晶显示屏1602经行显示。
温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。
HS1101是电容式空气湿度传感器,在不同的湿度环境下呈现出不同的电容值,0%~100%RH湿度范围内,电容从162PF变化到200PF,误差误差为2%RH。
可见其精度非常高,为了反映出其电容的变化,本系统采用555多谐震荡电路产生不同的频率,用于检测湿度。
单片机采集到两个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。
本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。
关键词:
温湿度测量系统精度高速度快体积小
Abstract:
ThetemperatureandhumiditymeasurementsystemisbasedonsinglelinetypetemperaturesensorDS18B20,capacitivemoisturesensorSCMSTC89C52fortemperaturehumiditymeasurementandrespectivelybyLCDdisplay.Theline1602TemperaturesensorDS18B20issinglelinetype,volumesuper-small,hardwareKaiXiaoultra-low,stronganti-jammingcapability,highprecision,additionalfeaturesstrongidealsingle-chipmicrocomputertemperaturesensor,real-timetemperaturedata,dependingonthedirectivegivenreadable.HS1101iscapacitivesensor,airhumidityindifferenthumiditypresentsdifferentcapacitance,0%~100%RHhumidity,withinthescopeofcapacitancechangeto200PF,from162PFerrorfor2%RHerror.ecanseeitsprecisionisveryhigh,inordertoreflectthecapacitancechange,thesystemUSESthe555moreharmonicconcussioncircuitsproducedifferentfrequency,whichisusedtodetecthumidity.SCMacquisitiontotwosensorgivesdataprocessingandcalculated,thecurrenttemperatureandhumidityandgivethedisplayontheLCDpanel.Thissystemhasareadable,highstability,reactionspeed,measuredvaluesexactcharacteristic.
Keywords:
temperatureandhumiditymeasurementsystemhighprecisionspeedsmallvolume
1.设计要求
(1)设计制作一个温湿度计,温度测量范围为-10-50℃,湿度为0-100%;
(2)温度测量误差为0.1℃,湿度测量误差为3%;
(3)具有量程自动转换功能;
(4)其他创新性设计,如低功耗等。
2.2.方案设计及论证
2.1总体方案设计
经分析,将系统分为两个
部分,一个是由温湿度传感器
组成的检测部分,另一个是由
单片机和1602液晶组成的主控
与显示部分。
如图所示DS18B20
和HS1101湿度检测电路将检测到
的数送到单片机,单片机对接收
到的数据进行处理并送到1602显示,
5V稳压电源给各个部分供电。
图2.1系统组成框图
2.2系统主要单元的选择与论证
2.2.1单片机控制模块的选择论证
方案一:
采用XC9000系列的FPGA。
该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。
方案二:
采用单片机作为控制核心,单片机数学运算功能较强。
在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。
且单片机技术发展较为成熟,价格便宜。
基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。
2.2.2温度湿度检测模块的选择与论证
方案一:
选用DHT11作为温湿度检测模块。
DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测20~90%RH湿度,误差5%RH,0~50摄氏度,误差2摄氏度。
方案二:
选用DS18B20温度传感器和HS1101湿度传感器。
DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在-55℃~125℃,-10℃~85℃,误差为-\+0.5℃。
最高精度可达0.0625℃。
HS1101是电容式湿度传感器,可测相对湿度范围在0%~100%RH,误差为-\+2%RH。
方案选择,有上述数据可知,根据设计要求(温度测量范围为-10-50℃,湿度为0-100%;
温度测量误差为0.1℃,湿度测量误差为3%;),从设计要求的精度来看,本方案更优。
综上所述,虽然方案一具有综合作用,但是方案二的测试范围和精度都由于方案一,故本模块采用方案二。
2.2.3显示模块的选择与论证
方案一:
采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。
方案二:
采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。
因此,本方案为首选方案。
综上所述,显示模块选择方案二。
2.3系统组成
本系统由单片机主控电路、DS18B20温度检测模块、HS1101湿度检测模块、1602液晶显示模块4部分组成,其中单片机主控电路
3.3.理论分析及计算
3.1HS1101的湿度测量方法分析
HS1101是电容式湿度传感器,由于电容不可直接测量,故选用555多谐震荡电路检测到频率,然后由单片机计算的电容值,再根据电容值算出相应的湿度值。
3.1HS1101的湿度测量计算
电路如图4.2,由电路可知图3.1电容值与相对湿度值的关系
t充电=C(R2+R1)ln2
t放电=CR4ln2
因而,输出的方波率
f=1/(t充电+t放电)=1/[C(R2+2R1)ln2)]
由图3.1可知相对湿度与电容的关系可看成直线段,所以有相对湿度
RH=2.7C+163
所以有
4.系统电路设计
4.1单片机主控电路设计
单片机主控电路原理图如下所示:
图4.1单片机主控电路原理图
单片机主控模块包括了振落电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。
硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。
这种设计方法可以降低系统设计的复杂性。
控制电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。
AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。
因此广泛应用于工业控制和嵌入式系统中。
4.2DS18B20温度检测模块和HS1101湿度检测模块电路设计
DS18B20温度检测模块和HS1101湿度检测模块电路原理图如下所示:
图4.2.1DS18B20温度检测模块和HS1101湿度检测模块电路原理图
图4.2.2DS18B20温度检测模块和HS1101湿度检测模块电路仿真图
图4.2.3DS18B20温度检测模块和HS1101湿度检测模块电路仿真结果图
4.2.1HS1101湿度检测传感器工作原理
T1为HS1101湿度检测传感器,其工作电路由555多谐振荡器来实现,HS1101作为电容变量接在555芯片的2、5脚之间,引脚7用作电阻R2的短路,等量电容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.2.2DS18B20温度检测传感器工作原理
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:
ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(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个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
4.4.3蜂鸣器电路原理
蜂鸣器额定电流IB≤30mA,而对于AT89S52单片机,P1口的灌电流为1.6mA,拉电流为60μA,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用PNP型晶体管9012。
AT89S52采用的晶振电路采用11.0592MHz的无源晶振,微调电容大小取30pF。
显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,电路图如图6所示。
1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。
系统的输入模块采用中断扫描的4×4矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。
4.31602液晶显示模块电路设计
1602液晶显示模块电路原理图如下所示:
图4.31602液晶显示模块电路原理图
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
在单片机的人机交流界面中,一般的输出方式有以下几种:
发光管、LED数码管、液晶显示器。
在单片机系统中应用晶液显示器作为输出器件有以下几个优点:
显示质量高、数字式接口、体积小、重量轻、功耗低、1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
引脚功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
5.系统软件设计
5.1软件设计流程图
主程序流程图液晶显示程序流程
是是
否否
是
否
图5.1.1主程序流程图图5.1.2液晶显示程序流程
温度检测程序流程湿度检测流程图
否
否
是
是
图5.1.3温度检测程序流程图5.1.4湿度检测流程图
5.2软件设计分析
主程序进行键盘扫描,单片机根据判断键盘那个键按下,显示温度或湿度。
如果key1键按下就调用温度检测程序,单片机对18B20进行初始化,成功则读字节,再写入字节,读取温度数据送到1602显示。
如果key2键按下,就调用湿度显示程序,开启定时中断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%;温度测量误差为0.1℃,湿度测量误差为3%;实现了量程自动转换功能。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
参考文献
(1)康华光等.电子技术基础[M].北京:
高等教育出版社
(2)彭介华.电子技术课程设计指导[M].北京:
高等教育出版社
(3)郭天祥.新概念51单片机C语言教程:
入门、提高、开发、拓展全攻略[M].电子工业出版社,2009.
(3)黄智伟.全国大学生电子设计竞赛制作实训[M].北京:
北京航空航天大学出版社,2007
(4)黄智伟.全国大学生电子设计竞赛系统设计[M].北京:
北京航空航天大学出版社,2006
(5)黄智伟.全国大学生电子设计竞赛技能训练[M].北京:
北京航空航天大学出版社,2007
(6)黄智伟.全国大学生电子设计竞赛电路设计[M].北京:
北京航空航天大学出版社,2006
(7)黄智伟.全国大学生电子设计竞赛常用电路模块制作[M].北京:
北京航空航天大学出版社,2010
(8)黄智伟等.基于NImultisim的电子电路计算机仿真设计与分析[M].北京:
电子工业出版社,2007
(9)黄智伟.印制电路板(PCB)设计技术与实践[M].北京:
电子工业出版社,2009
(10)高吉祥等.电子技术基础实验与课程设计[M].北京:
电子工业出版社,2002
(11)吴运昌.模拟集成电路原理与应用[M].广州:
华南理工大学出版社,2001年
(12)谭博学等.集成电路原理及应用[M].北京:
电子工业出版社,2003
(13)魏立军.CMOS4000系列60种常用集成电路的应用[M].北京:
人民邮电出版社,1993
(14)杨宝清.实用电路手册[M].北京:
机械工业出版社.2002
(15)陈有卿.报警集成电路和报警器制作实例[M].人民邮电出版社1996
附录
附录一:
系统的总原理图
图附1.1系统总原理图
附录二:
系统的PCB图及元件分布图
图附2.1单片机主控电路及液晶PCB布线图
图附2.2DS18B20温度检测模块和HS1101湿度检测模块PCB布线图
图附2.3单片机主控电路及液晶PCB元件分布图
图附2.24DS18B20温度检测模块和HS1101湿度检测模块PCB元件分布图
附录三:
程序清单
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P2^0;//定义DS18B20端口DQ
sbitBEEP=P2^2;//蜂鸣器驱动线
bitpresence;
sbitLCD_RS=P1^2;
sbitLCD_RW=P1^1;
sbitLCD_EN=P1^0;
sbitled=P2^1;
sbitkey1=P2^3;
sbitkey2=P2^4;
ucharcodecdis1[]={"wendujishiyan"};
ucharcodecdis2[]={"T=.C"};
ucharcodecdis3[]={"shidujishiyan"};
ucharcodecdis4[]={"shidu:
%"};
ucharcodecdis5[]={"thesystemof"};
ucharcodecdis6[]={"tempandhum"};
unsignedchardatatemp_data[2]={0x00,0x00};
unsignedchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};
unsignedcharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
voidbeep();
unsignedcharcodemytab[8]={0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00};
bitint_flag;//定时器01S到标志位
unsignedcharvolatileint_count;//定时器0中断次数
unsignedcharvolatileT1count;//定时器1中断次数
unsignedlongsum,wet;//1S内脉冲总个数
unsignedcharle[6];//LED显示缓存
#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};
/*******************************************************************/
voiddelay1(intms)
{
unsignedchary;
while(ms--)
{
for(y=0;y<250;y++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/******************************************************************/
/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
*/
/******************************************************************/
bitlcd_busy()
{
bitresult;
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=指令码。
*/
/*******************************************************************/
voidlcd_wcmd(ucharcmd)
{
while(lcd_busy());
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
_nop_();
_nop_();
P0=cmd;
delayNOP();
LCD_EN=1;
delayNOP()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 stc89c52 温度传感器 DS18B20 湿度 传感器 HS1101 温湿度 测量 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)