基于单片机的温湿度检测系统_第1页
基于单片机的温湿度检测系统_第2页
基于单片机的温湿度检测系统_第3页
基于单片机的温湿度检测系统_第4页
基于单片机的温湿度检测系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

福 建 师 范 大 学 应 用 科 技 学 院学 生 论 文论文题目:基于单片机的温湿度检测系统指导教师: 欧琳 学 号: 120352010041 姓 名: 林晓炜 年 级: 2010级 专 业: 电子信息工程 2014年03月09日基于单片机的温湿度检测系统福建师范大学应用科技学院 电子信息工程专业120352010041 林晓炜 指导老师 欧琳摘要:本次设计的是基于单片机STC89C52的温湿度检测系统,单片机的选择对所设计系统的实现以及功能的扩展有着很大的影响,而我选的这款单片机STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内具有4k字节的在线可重复编程、快速擦除、快速写入程序的存储器,可以重复写入或者擦除1000次。它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。在本次设计中,最终选用的集成温度传感器DHT11,该产品品质卓越、抗干扰能力强、性价比高、测量精度高、硬件电路简单,可测试不同环境温湿度,采集到的温湿度信号送至单片机,实现温湿度的显示。用新型的智能温湿度传感器DHT11主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理,为显示电路提供信号。显示部分采用LCD1602,它是属于工业字符型的液晶,专门用来显示字母、数字、符号等点阵型液晶模块。本次系统主要由以上元器件组成,再通过硬件电路的设计和软件程序的设计,实现系统的基本功能。关键词:STC89C52RC;DHT11;LCD1602Temperature and humidity detection system based on single chip microcomputerScience and Technology Practising College Fujian Normal UniversityElectronic Information Engineering 120352010041 Lin Xiaowei Tutor: OulinAbstract: The design of thetemperature and humidity detectionsystem based on single chip microcomputer STC89C52,has great influenceontheselection of MCUexpansiondesign of the systemandfunction,andI chosethis microcontrollerSTC89C52 is a lowloss,high performance,eight bit CMOSmicroprocessor,onlinefilmhas4K bytes ofrepeatable programming,quickly erased,fast writeprogrammemory,can be rewrittenorerased 1000 times.Itwith MCA-51 series single chipandpinin the command systemis fully compatible,not onlycan completely replace the MCS-51series microcontroller,andcan make thesystem has manyMCS-51 productshave nofunction.In this design,the integrated temperature sensor DHT11is chosen,theexcellent product quality,strong anti-interference ability,high performance price ratio,high precision,simple hardware circuit,which cantest differentenvironmenttemperature and humidity,temperature and humiditycollected signalis sent to the single chip computer,display thetemperature and humidity.Intelligent temperature and humiditysensor DHT11model is mainlyto realize the detection oftemperature,humidity,temperatureand humiditysignalwill bethrough the sensorsignal acquisitionand converted into digitalsignal,and thenthe use of single-chip STC89C52analysis anddata processing,a signal tothe display circuit.The display part using LCD1602,it is thecrystalbelongs tothe industrial character,used todisplay letters,numbers,symbols and otherLCD module.Thissystem is mainly composed ofthe abovecomponents,through the designof hardware circuitdesignand software program,realize the basic function of the system.Key Words: STC89C52RC;DHT11;LCD1602目 录第一章:概述5第二章:主要元件介绍52.1、温湿度传感器51、DHT11简介52、引脚说明63、电源引脚64、串行接口(单线双向)65、DHT11传感器指标特性62.2、单片机STC89C5271、STC89C52简介72、STC89C52组成部分83、STC89C52单片机引脚功能84、STC89C52引脚介绍85、STC89C52参数96、STC89C52单片机的工作模式92.3、LCD16029第三章:系统的硬件设计和连接113.1、总电路原理图113.2、信号采集模块123.3、显示模块123.4、复位电路133.5、晶振电路133.6、电源指示灯电路14第四章:仿真软件介绍144.1、Proteus软件144.2、Keil 4软件14第五章:软件设计155.1、软件设置实现的功能155.2、软件流程图155.3、程序代码15第六章:总结21第七章:致谢21参考文献:22附录122附录223第一章:概述在日常生活生产中温湿度是重要的参数。温度是表示物体冷和热的程度,它是个物理量。而湿度则是表示大气干燥程度,它同样也是个物理量,它的测量仪器是湿度表。空气干湿程度叫做“湿度”。温湿度的检测是工业生产过程中比较典型的应用之一。在生产中,温湿度的高低对产品的质量影响很大。由于温湿度的检测控制不当,可能使我们导致无法估计的经济损失。为保证日常工作的顺利进行,首要问题是加强食品仓库内温度与湿度的监测工作,传统的方法费时费力,而且效率低,测试温湿度值误差大,随机性大。我们的生产作业中很多产品对其温湿度的要求都不一样,温湿度的高低对产品的质量影响是十分巨大的。很多产品因为温度湿度的控制检测不对,于是乎就造成了很多我们无法估量的经济损失。为了让我们的产品没问题,我们必须先解决对温度和湿度控制的问题,以前一般需要人工在旁边守着,这种方法又费时间又费力气况且效率不高,经常会有偏差。为了提高效率,本系统采用STC89C52单片机作为主控芯片, STC89C52是一种低耗高性能的微控制器, 它具有MCS-51的所有特性.本系统通过DHT11传感器采集来温度和湿度,再经过STC89C52单片机的一些运算,最后在LCD1602液晶显示屏上显示出温度和湿度。本次设计系统简单、工作稳定、测量精密度高、调试也很简单,具有了一定的使用价值。第二章:主要元件介绍2.1、温湿度传感器1、DHT11简介 本次设计采用DHT11数字温湿度传感器,该产品有4个引脚封装,1脚用来接电源,2脚接单总线,3脚悬空,4脚接地。它还含有一个电阻式感应湿度的元件和一个测量温度的元件,并且与一个性能高的8位单片机相连接。DHT11具有功耗低、体积小的优点,使其可以适应各种应用场合1。DHT11传感器实物图2、引脚说明 Pin 名称 类型 注释 1 VCC 电源 供电3V-5.5VDC2 Dout 输出 单总线,串行数据3 NC 空 空脚4 GND 地 电源地3、电源引脚 DHT11的供电电压为 35.5V。传感器上电后,要等待 1s 以越过不稳定状态。4、串行接口(单线双向)DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,每次通讯时间是4毫秒左右, 当用户发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等到主机开始信号结束后,DHT11发送响应信号,送出40字节的数据,并触发一次信号采集。5、DHT11传感器指标特性DHT11性能指标和特性如下:工作电压范围:3.5V5.5V。工作电流:平均0.5mA。湿度测量范围:2090%RH。温度测量范围:050。湿度分辨率:1%RH 8位。温度分辨率:1 8位。采样周期:1S。单总线结构。与TTL兼容(5V)。2.2、单片机STC89C52 1、STC89C52简介 Atmel公司的STC89C52系列单片机是我国近10年来使用较多的单片机,特别是高校实验室开发实验装置多数都采用它。因为在21世纪初,在我国电子市场上,STC89C52技术资料丰富,货源充足,价格相对便宜,专营教学仪器单片机总和开发实验装置的科技公司也都青睐它。STC89C52是一种内带4KB闪存的ROM、低电压、高性能CMOS制造工艺的8位单片机。它具有MCS-51的所有特性。STC89C52单片机的软件编程既可以用汇编语言,也可以用C51高级语言。单片机STC89C52是一种低耗高性能的微控制器,总共有40个引脚,4组I/O口共计32 位I/O 口,9脚复位,10、11脚是RXD串口输入与TXD串口输出,18、19脚是晶振谐振器,20脚接地,40脚接电源。STC89C52具有8K可编程Flash存储器、512字节存储器、3个16 位定时器/计数器以及4个外部中断2。2、STC89C52组成部分STC89C52内部的基本组成主要包括:中央处理器CPU;内部4KB Flash ROM,这是用来存放程序、数据等一些东西;内部256个RAM单元,通常用户使用低128位单元,主要用来存放和读写数据,而高128位单元系统则是用来分配21个特殊功能寄存器的;两个16位的定时器/计数器,即T0、T1;4个8位的I/0口,即P0、P1、P2、P3;一个全双工串行口,即RXD、TXD;5个中断系统,包括2个外部中断、2个定时器/计数器中断以及1个串行通信中断3;3、STC89C52单片机引脚功能STC89C52引脚功能:VCC:供电电压,接+5V电源。GND:接地端。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果禁止ALE的输出可在SFR8EH上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才其作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效4。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:内部和外部程序存储器选择信号。当EA为低电平时,则访问外部程序存储器,当为高电平时,访问内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。反向放大器可以选择片内振荡器。这时候可以采用石英振荡或陶瓷振荡。如采用外部时钟源驱动器件,XTAL2可悬空。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4、STC89C52引脚介绍前面介绍过STC89C52共有40个引脚,其中包括4个8位的I/0口,即P0、P1、P2、P3。P0口:P0口是一个8位漏极开路双向I口。当作为输出口时,每个脚可吸收8个TTL门电流,当P0口的管脚为“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0口输出原码,此时P0必须接上上拉电阻。P1口:P1口是一个内置上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。当P1口管脚为“1”时,被内部的上拉电阻把端口拉到高电平,可用作输入口,P1口被外部下拉为低电平时,将输出电流。在FLASH编程和校验期间,P1口作为低八位地址接收。P2口:P2口是一个内置上拉电阻的8位双向I/O口,P2口缓冲器可接收4个TTL门电流,当P2口为“1”时,其管脚被内部上拉电阻拉高,可最为输入口。并因此作为输入时,P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,由于内部上拉,将输出电流。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出高八位的地址。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是个双向,内部带上拉电阻的输入输出口,可接收输出4个TTL门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用做输入。作为输入,由于外部下拉为低电平,P3口将输出电流(TTL)这是由于上拉的缘故。P3口作为通用I/O口使用时,是第二功能复用口。55、STC89C52参数 1. 属于增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)3.工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 具有EEPROM 功能7. 有3 个16 位定时器/计数器。即定时器T0、T1、T28. 工作温度范围:-40+85(工业级)/075(商业级)9. PDIP封装6、STC89C52单片机的工作模式 掉电模式:典型功耗0;i-)for(j=0;j0;i-);/*DHT11读取一字节数据时序函数*/void comread(void)uchar i,tem; for(i=0;i8;i+)u8flag=2;while(!P3_3)&(u8flag+);/等待50us时间过去delay10us(); /延时差不多30usdelay10us();delay10us();tem=0;if(P3_3) /如果是高地平则tem=1;tem=1;u8flag=2;while(P3_3)&(u8flag+); /等待70us时间过去if(u8flag=1)break;comdata=1; /左移一位comdata|=tem; /与tem相与elsecomdata=1;comdata|=tem; /*DHT11操作总时序时序函数*/void DTH11(void)uchar temp;P3_3=0; /拉低总线为低电平delay1ms(180); /拉低时间为至少18msP3_3=1; /拉高总线为高地平delay10us(); /拉高时间为20us40usdelay10us();delay10us();delay10us();P3_3=1;if(!P3_3)u8flag=2;while(!P3_3)&(u8flag+);/等待80us的低电平时间过去u8flag=2;while(P3_3)&(u8flag+); /等待80us的高地平时间过去comread(); /读取数据的函数RHdata_H_temp=comdata; /读取数据的RH的高位comread();RHdata_L_temp=comdata; /读取数据的RH的低位comread();Tdata_H_temp=comdata; /读取数据温度的高位comread();Tdata_L_temp=comdata; /读取数据温度的地位comread();checkdata_temp=comdata; /读取数据最后一位是校验位P3_3=1;temp=(RHdata_H_temp+RHdata_L_temp+Tdata_H_temp+Tdata_L_temp);if(temp=checkdata_temp);RHdata_H=RHdata_H_temp;RHdata_L=RHdata_L_temp;Tdata_H=Tdata_H_temp;Tdata_L=Tdata_L_temp;checkdata=checkdata_temp;buf0=(uchar)(0x30+RHdata_H/10); /把十六进制数值转换成十进制buf1=(uchar)(0x30+RHdata_H%10);buf2=(uchar)(0x30+RHdata_L/10);buf3=(uchar)(0x30+Tdata_H/10);buf4=(uchar)(0x30+Tdata_H%10);buf5=(uchar)(0x30+Tdata_L/10);/* LCD1602.H */#ifndef _LCD1602_H_#define _LCD1602_H_#includeconfig.h/* 名称:lcd_init()* 功能:lcd初始化函数*/void lcd_init(void);/* 名称:DisText()* 功能:显示文本函数*/extern void DisText(uint8 addr,char *p);#endif/* LCD1602.C */#includelcd1602.hsbit RS= P26 ; /位定义sbit RW= P25 ; /位定义sbit EN= P27 ; /位定义#define Del() delay1ms(20)/* 名称:WrOp()* 功能:写命令函数*/void WrOp(uint8 dat)RS= 0;/全部清零RW= 0;P0= dat ;EN= 1;Del();EN= 0;/* 名称:WrDat()* 功能:写数据函数*/void WrDat(uint8 dat)RS= 1;/全部清零RW= 0;P0= dat ;EN= 1;Del();EN= 0;/* 名称:lcd_init()* 功能:lcd初始化函数*/void lcd_init(void)WrOp(0x38);WrOp(0x06);/光标加1WrOp(0x0c);/开显示delay1ms(100);/* 名称:DisText()* 功能:显示文本函数*/void DisText(uint8 addr,char *p)WrOp(addr);while(*p !=0)WrDat(*(p+);/* CONFIG.H */#include#include#define uchar unsigned char /宏定义#define uint unsigned int /宏定义#define uint8 unsigned int /宏定义#includelcd1602.h#includeDTH11.h/* MAIN.C */#includeconfig.hvoid main()uchar buff16;lcd_init();while(1)DTH11();sprintf(buff,SHIDU:%c%c.%c RH,buf0,buf1,buf2);DisText(0x80,buff);sprintf(buff,WENDU:%c%c.%c C,buf3,buf4,buf5);DisText(0xc0,buff);delay1ms(20);第六章:总结 这次毕业设计让我更加熟悉了从理论到实践的跨越,我从中学到很多很多的东西,同时不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,这对于我来说这是一段比较艰辛的历程。虽然说之前也做过类似的课程设计,但是课程设计与毕业设计不同的是,毕业设计需要自己独立完成的作品,这对于我来说有点儿难度,以前一般都是几个同学组队完成,每人分担一点任务。从选题到方案的选择以及软件硬件的设计,这些都是需要我们自己去琢磨,自己也翻看了很多相关的材料,终于经过努力才画出了原理图。在这次设计中先要设计出硬件电路制作PCB板,然后腐蚀,焊接电路,再编写软件程序,最后把程序烧写进去,进行调试。每一个过程都不容易,渐渐发现自己所掌握的知识实在是太少了,所以基本上每一步我都要查资料、问同学、请教老师,所幸最终还是完成作品。通过这次课程设计使我明白了理论与实际相结合是很重要的,如果单单依靠理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能得到真正的提高。在本次设计过程中遇到很多问题,比如说硬件电路的设计,自己对这方面不太了解,好在有同学的帮助和老师的指导,还是完成了硬件的设计。设计完硬件电路就开始画PCB图,然后

温馨提示

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

评论

0/150

提交评论