基于单片机的温湿度计的设计_第1页
基于单片机的温湿度计的设计_第2页
基于单片机的温湿度计的设计_第3页
基于单片机的温湿度计的设计_第4页
基于单片机的温湿度计的设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、通信092班 刘明 基于单片机的温湿度检测与显示单片机课程设计项目名称 基于单片机的湿度显示器设计 专业班级 通信092 学生姓名 指导教师 2012年12月12日25摘 要温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要。因此,研究温湿度的测量方法和装置具有重要的意义。随着科技的不断发展,单片机技术已经普及到我们的工作、生活、科研等各个领域。已经成为一种比较成熟的技术。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便等

2、优点,目前已经渗透到我们工作和生活的方方面面。本论文介绍了一种以AT89C51为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。本设计主要包括硬件电路的设计和系统软件的设计。关键词:温湿度传感器; LCD1602; AT89C51; DHT1 1;Abstract Temperature and humidity are the two most basic environmental parameters, people's life is closely related with the temperature and humidity. In daily life,

3、 industry, medicine, environmental protection, chemical industry, petroleum and other fields, we often need to environment temperature and humidity measurement and control. Accurate measuring temperature and humidity in biological pharmacy, food processing, paper making industries is very important.

4、 Therefore, the study of the temperature and humidity measurement method and equipment has important significance. With the continuous development of science and technology, microcontroller technology has spread to our work, life, scientific research, and other fields. Has become a more mature techn

5、ology. Due to the high level of integration SCM, strong function, high reliability, small volume, low power consumption, easy to use, etc., and has penetrated into our work and all aspects of life. This paper introduces a kind of AT89C51 as the main control device, in order to DHT11 digital temperat

6、ure sensor for new digital temperature and humidity meter. This design mainly includes hardware circuit design and software design. Keywords: Temperature and humidity sensor; LCD1602; AT89C51; DHT1 1; 目录摘 要IAbstractII目录III第1章 绪论11.1 课程设计背景概述11.2 本课程设计的内容11.3 本课程设计的意义1第2章 系统设计方案及硬件设计22.1 系统设计方案22.2 系

7、统硬件介绍22.2.1 AT89C51介绍22.2.2 DHT11数字传感器介绍52.2.3 LCD1602介绍62.3 系统部分硬件电路设计介绍82.3.1 主控制电路的设计82.3.2 温湿度检电路的设计92.3.3 LCD1602液晶显示电路的设计11第3章 系统的软件设计123.1 系统软件主程序流程123.2 DHT11数据采集流程13结论15参考文献16附录117附录218项目特色与创新24致谢25第1章 绪论1.1 课程设计背景概述进入21世纪后,各行各业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提升很多企业对温湿度的测控手段很粗糙,十分落后,绝大多数仍在使用湿

8、球湿度计,采用人工观测人工调节阀门、风机的方法,很少有人使用温湿度传感器。随着科技的发展进步,工业及电器行业对温湿度的要求的提高,温湿度传感器的应用范围也越来越加广泛。1.2 本课程设计的内容在本次课程设计中,为实现对温湿度的检测与显示,主要利用以AT89C51为核心构架硬件电路,DHT11温湿度传感器采集环境温度及湿度信息,(温度检测范围: -30至+55。测量精度: 2.;湿度检测范围: 20%-90%RH。检测精度:5%RH)。LCD1602显示器直接显示温度和湿度(显示方式: 温度:四位显示;湿度:四位显示);同时利用C语言编程实现温湿度信息的显示功能。1.3 本课程设计的意义最近几年

9、来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。“单片机原理及应用课程设计”是电子类专业的学科基础科,它是继“汇编语言程序设计”,“接口技术”等课程之后开出的实践环节课程。现代社会越来越多的场所会涉及到温度与湿度并将其显示。由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25,湿度为30%至80%;夏天温度为23至28,湿度为3

10、0%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。第2章 系统设计方案及硬件设计2.1 系统设计方案本方案使用AT89C51作为控制核心,一直能温湿度传感器DHT11作为温湿度测量元件,显示电路采用LCD1602模块显示,采用单片机最小系统。系统硬件电

11、路设计框图如下图2-1。AT89C51单片机LCD1602液晶显示DHT11温湿度传感器数据采集时钟复位电路图2-1 系统硬件电路设计框图2.2 系统硬件介绍2.2.1 AT89C51介绍AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据存储器(RAM),可灵活应用于各种控制领域。由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作,掉电模式保存RAM的内容,

12、但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据,运行可从时钟停止处恢复。AT89C51的制作工艺为CMOS,采用40管脚双列直插DIP封装,引脚说明如下:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收

13、输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊

14、功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5 T1(记时器1外部输入);P3.6 /WR(外部数据存储器写

15、选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作

16、用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器

17、的输出。 图2-2 单片机AT89C51引脚图AT89C51的工作模式:89C51有四种工作模式:模式0,模式1,模式2,模式3。模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲。模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲。模式2:把TL0和TL1配置成一个自动重装载的8位定时器/

18、计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲。模式3:对T0和T1不大相同。若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为02。2.2.2 DHT11数字传感器介绍DHT11数字温湿

19、度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引

20、脚封装。连接方便,特殊封装形式可根据用户需求而提供。DHT11有四个引脚,3号引脚一般悬空,如图2-3所示。DHT11的供电电压为35.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。图2-3 DHT11引脚图2.2.3 LCD1602介绍1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602的主要技术参数:1、显示容量:16

21、15;2个字符2、芯片工作电压:4.55.5V3、工作电流:2.0mA(5.0V)4、模块最佳工作电压:5.0V5、字符尺寸:2.95×4.35(W×H)mmLCD1602引脚功能说明LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,引脚功能如下表2-1所示。编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表2-1 LCD1602引脚接口说明表第1脚:

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

23、源正极。第16脚:背光源负极。LCD1602指令说明及时序:1602液晶模块内部的控制器共有11条控制指令,如下表2-2所示。1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地

24、址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表2-2 LCD1602控制命令表指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显

25、示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。2.3 系统部分硬件电路设计介绍2.3.1 主控制电路的设计MCS-51系列单片机是采用高性能的静态89C51设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12时钟

26、和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM 32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。电路如图2-4所示:图2-4 主控制电路图2.3.2 温湿度检电路的设计DHT11的供电电压为35.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电路如图2-5所示:图2-5 温湿度采集电路2.3.3 AT89C51的系统时钟电路的设计时钟电路是用来产生89C51单片机工作时所必须的时钟信号,89C51本身就是一个复杂的同

27、步时序电路,为保证工作方式的实现,89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。我们系统采用内部时钟方式来为系统提供时钟信号。89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的

28、NPO电容,采用的晶振频率为12MHZ。时钟电路如图2-6所示:图2-6 时钟复位电路2.3.3 LCD1602液晶显示电路的设计显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。系统的输入模块采用中断扫描的4×4矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。同时1602液晶显示模块可以和单片机AT89C51直接接口。电路图如图2-7所示。图2-7 LCD1602电路图第3章 系统的软件设计系统程序主要包括主程序、LCD模块控制程序、DHT11控制模块程序、延时子程序,整体程序见附

29、录2。3.1 系统软件主程序流程程序开始后,先对液晶模块显示进行初始化,通过延时一秒等待DHT11温湿度传感器启动。DHT11温湿度传感器启动后,对其进行数据初始化后,进行温湿度信息的采集、转化、处理,最后通过液晶显示器读出。DHT11温湿度传感器经过一次数据采集和处理后需返回次延时程序处理来重新初始化后采集温湿度数据。具体流程图如图3-1所示:图3-1 系统主程序流程图3.2 DHT11数据采集流程主程序里主要的一部分是数据采集和显示的循环部分,其中DHT11温湿度传感器有严格的时序要求,程序一定要遵守按照其与主机通信的步骤。其温湿度数据采集流程图如下图3-2所示:图3-2DHT11数据采集

30、流程图LCD初始化机显示部分,在程序中应先对显示器进行初始化,然后循环调用DHT11模块采集的数据对温度和湿度进行实时显示。其LCD初始化机显示流程图如下图3-3所示:图3-3 LCD初始化显示流程图结论微型计算机在智能化电器发展中起着至关重要的作用,而单片机经济实用、开发简便,因而在工业控制、家电智能化等领域占据了广泛的市场。本次设计是基于单片机的温湿度检测及显示的设计包括硬件电路和软件编程两部分。在硬件选择方面,犹豫采用温湿度传感器DHT11,使电路链接更加方便,并且容易读数,简化了设计。显示电路比较了LED和LCD之后,发现LED显示的信息量较少,外接电路复杂且耗电量大,而LCD正好弥补

31、了LED的缺点,所以选择了用LCD来连接显示电路。在软件编程方面,初次完成的程序十分复杂,在很多方面联系不上,我在网上查找了很多的资料,也看了一些教学视频,来不断的完善程序。而且通过和同学、老师的交流讨论,我学到了很多编程方面的技巧和思想,同时也精简了部分程序。参考文献1 何立民.单片机高级教程-应用与设计M.北京:北京航空航天大学出版社,2002.2 徐爱钧.单片机高级语言C51 Windows环境编程与应用M.北京:电子工业出版社,2001.3 白雪冰,张延林,等.单片机原理及应用M.哈尔滨:哈尔滨东北林业大学出版社,2006.4 张佳薇,孙丽萍,等.传感器原理与应用M.哈尔滨:哈尔滨东北

32、林业大学出版社,2003.附录1附录2源程序:#include <reg51.h>#define uint unsigned int #define uchar unsigned chartypedef bit BOOL ; sbit io = P20 ;sbit rs = P27; sbit rw = 26 ;sbit ep = P25 ;uchar data_byte;uchar RH,RL,TH,TL;/*延时模块*/void delay(uchar ms) / 延时子程序 uchar i ; while(ms-) for(i = 0 ; i<250;i+) ; voi

33、d delay1()/延时10usuchar i;i-;i-;i-;i-;i-;i-;void longdelay(uchar s) /长延时 while(s-) delay(60) ; /*LCD模块*/BOOL lcd_bz()/测试LCD忙碌状态 BOOL result ; rs = 0 ; rw = 1 ; ep = 1 ; result = (BOOL)(P1 & 0x80) ; ep = 0 ; return result ; void write_cmd(uchar cmd)/ 写指令 while(lcd_bz() ;rs = 0 ;rw = 0 ;ep = 0 ;P1

34、= cmd ;ep = 1 ;ep = 0 ; void write_addr(uchar addr)/写地址 write_cmd(addr|0x80) ;void write_byte(uchar dat)/写字节 while(lcd_bz() ; rs = 1 ; rw = 0 ; ep = 0 ; P1 = dat ; ep = 1 ; ep = 0 ; void lcd_init()/ 初始化 write_cmd(0x38) ; delay(1); write_cmd(0x08) ; delay(1); write_cmd(0x01) ; delay(1); write_cmd(0x0

35、6) ; delay(1); write_cmd(0x0c) ; delay(1);void display(uchar addr, uchar q)/在某一地址上显示一字节 delay(10) ; write_addr(addr) ; write_byte(q) ; longdelay(2) ; /*DHT11测试模块*/void start()/开始信号io=1;delay1();io=0;delay(20);/>18msio=1;delay1();/20-40usdelay1();delay1();delay1();delay1();uchar receive_byte()/接收一

36、个字节uchar i,temp,count;for(i=0;i<8;i+)count=2;while(!io)&&count+)/等待50us低电平结束temp=0;delay1();delay1();delay1();delay1();if(io=1)temp=1;count=2;while(io)&&count+);if(count=1)break;data_byte<<=1;data_byte|=temp;return data_byte;void receive()/接收数据uchar T_H,T_L,R_H,R_L,check,num_check;uchar count;start()

温馨提示

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

评论

0/150

提交评论