基于单片机的温湿度计的设计.doc

上传人:文库蛋蛋多 文档编号:3890854 上传时间:2023-03-26 格式:DOC 页数:30 大小:1.06MB
返回 下载 相关 举报
基于单片机的温湿度计的设计.doc_第1页
第1页 / 共30页
基于单片机的温湿度计的设计.doc_第2页
第2页 / 共30页
基于单片机的温湿度计的设计.doc_第3页
第3页 / 共30页
基于单片机的温湿度计的设计.doc_第4页
第4页 / 共30页
基于单片机的温湿度计的设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的温湿度计的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的温湿度计的设计.doc(30页珍藏版)》请在三一办公上搜索。

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

2、介绍了一种以AT89C51为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。本设计主要包括硬件电路的设计和系统软件的设计。关键词:温湿度传感器; LCD1602; AT89C51; DHT1 1;Abstract Temperature and humidity are the two most basic environmental parameters, peoples life is closely related with the temperature and humidity. In daily life, industry, medicine, environmen

3、tal 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. Therefore, the study of the te

4、mperature 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 technology. Due to the high level of

5、 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 temperature sensor for new digital temp

6、erature 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 系统硬件介绍22.2.1 AT89C51介绍22.2.2 DHT

7、11数字传感器介绍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,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的

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

11、显示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口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作

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

14、信号和控制信号。 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(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为

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

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

17、工作模式: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位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载

18、到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针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。DHT11有四个引脚,3号引脚一般悬空,如图2-3所示。DHT11的供电电压为35

20、.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。图2-3 DHT11引脚图2.2.3 LCD1602介绍1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602的主要技术参数:1、显示容量:162个字符2、芯片工作电压:4.55.5V3、工作电流:2.0mA(5.0V)4、模块最佳工作电压:5.0V5、字符尺寸:2.954.35(W

21、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脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个1

22、0K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。LCD1602指令说明及时序:1602液晶模块内部的控制器共有11条控制指令,如下表2-2所示。1602液晶模块的读写操作、屏幕和光标的操作

23、都是通过指令编程来实现的。(说明:1为高电平、0为低电平)序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表2-2 LCD1602控制命令表指令1:清显示,指令码01H,光

24、标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,

25、高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。2.3 系统部分硬件电路设计介绍2.3.1 主控制电路的设计MCS-51系列单片机是采用高性能的静态89C51设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM 32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1

26、个串行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本身就是一个复杂的同步时序电路,为保证工作方式的实现,89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部

27、时钟。我们系统采用内部时钟方式来为系统提供时钟信号。89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。时钟电路如图2-6所示:图2-6 时钟复位电路2.3.3 LCD1602液晶显示电路的设计显示模块选用1602字符型液晶模块,是目

28、前工控系统中使用最为广泛的液晶屏之一,1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。系统的输入模块采用中断扫描的44矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。同时1602液晶显示模块可以和单片机AT89C51直接接口。电路图如图2-7所示。图2-7 LCD1602电路图第3章 系统的软件设计系统程序主要包括主程序、LCD模块控制程序、DHT11控制模块程序、延时子程序,整体程序见附录2。3.1 系统软件主程序流程程序开始后,先对液晶模块显示进行初始化,通过延时一秒等待DHT11温湿度传感器启动。DHT11温湿度传感器启动后,对其进行数据初始化后,进行温湿度信息

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

30、D初始化显示流程图结论微型计算机在智能化电器发展中起着至关重要的作用,而单片机经济实用、开发简便,因而在工业控制、家电智能化等领域占据了广泛的市场。本次设计是基于单片机的温湿度检测及显示的设计包括硬件电路和软件编程两部分。在硬件选择方面,犹豫采用温湿度传感器DHT11,使电路链接更加方便,并且容易读数,简化了设计。显示电路比较了LED和LCD之后,发现LED显示的信息量较少,外接电路复杂且耗电量大,而LCD正好弥补了LED的缺点,所以选择了用LCD来连接显示电路。在软件编程方面,初次完成的程序十分复杂,在很多方面联系不上,我在网上查找了很多的资料,也看了一些教学视频,来不断的完善程序。而且通过

31、和同学、老师的交流讨论,我学到了很多编程方面的技巧和思想,同时也精简了部分程序。参考文献1 何立民.单片机高级教程-应用与设计M.北京:北京航空航天大学出版社,2002.2 徐爱钧.单片机高级语言C51 Windows环境编程与应用M.北京:电子工业出版社,2001.3 白雪冰,张延林,等.单片机原理及应用M.哈尔滨:哈尔滨东北林业大学出版社,2006.4 张佳薇,孙丽萍,等.传感器原理与应用M.哈尔滨:哈尔滨东北林业大学出版社,2003.附录1附录2源程序:#include #define uint unsigned int #define uchar unsigned chartypede

32、f 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 ; i18msio=1;delay1();/20-40usdelay1();delay1();delay1();delay1();uchar receive_byte()/接收一个字节uchar i,temp,count;for(i=0;i8;i+)c

33、ount=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();/开始信号io=1;if(!io)/读取DHT11响应信号count=2;whi

34、le(!io)&count+);/DHT11高电平80us是否结束count=2;while(io)&count+);R_H=receive_byte();R_L=receive_byte();T_H=receive_byte();T_L=receive_byte();check=receive_byte();io=0; /拉低延时50usdelay1();delay1();delay1();delay1();delay1();io=1;num_check=R_H+R_L+T_H+T_L;if(num_check=check)RH=R_H;RL=R_L;TH=T_H;TL=T_L;check=

35、num_check;/*主函数*/void main()lcd_init();delay(10);while(1) receive(); delay(100); display(0x00,R) ; display(0x01,:); display(0x02,RH/10+0x30); display(0x03,RH%10+0x30); display(0x04,%); display(0x40,T) ; display(0x41,:); display(0x42,TH/10+0x30); display(0x43,TH%10+0x30); display(0x44,0xdf); display(

36、0x45,0x43);/*结束*/项目特色与创新本项目的特色与创新有: 1采用了DHT11数字温湿度传感器,可以同时采集温度和湿度信息,节约了电路板上的空间,使电路更加简洁。2采用了LCD1602液晶显示器,是仪器更加轻巧,同时具有功耗低、显示内容丰富的特点。3采用C语言编程,使温度与湿度能同时在LCD液晶显示器上进行显示并可以同时读出。致谢非常感谢学校为我们提供了这一次课程设计的机会,这次课程设计是对我们已经学习过的专业知识的一次复习和总结,也是对我所学专业知识的一个扩充和实践。本次课程设计从电路的设计仿真再到软件编程和调试涵盖了各种专业知识的应用:单片机知识、数字电路知识、C语言编程/编译知识,Protel仿真、计算机接口技术等。作为通信工程专业的学生,这次课程设计为我们以后的毕业设计提供了良好地借鉴效果。非常感谢在本次设计中给予我很大帮助的靳展老师,本次设计中由于我的专业知识并不十分好,有很多的问题存在,再加上缺少这方面的经验,做起设计来十分费力,但老师总是细心指导我,因此我才能顺利地完成这次课程设计。同时也要感谢那些帮助我的同学,有大家的帮助我才能顺利的完成设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号