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, environm
3、ental 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
4、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 technology、 Due to the high level
5、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 temperature sensor for new digital te
6、mperature 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 D
7、HT11数字传感器介绍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
11、单片机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口缓冲器能接收输出4TTL门电流。P1口管脚
13、写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这就是由于内部上拉得缘故。在FLASH编程与校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻得8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口得管脚被外部拉低,将输出电流。这就是由于内部上拉得缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址得高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器得内容。P2口在
14、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(外部数据存储器写选通);P3、7 /R
15、D(外部数据存储器读选通);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:来自反向振荡器得输出。 图2-
17、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位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不
18、仅使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针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。DHT11有四个引脚,3号引脚一
20、般悬空,如图2-3所示。DHT11得供电电压为35、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、模块最佳
21、工作电压:5、0V5、字符尺寸:2、954、35(WH)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为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最
22、高,对比度过高时会产生“鬼影”,使用时可以通过一个10K得电位器调整对比度。第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-
23、2所示。1602液晶模块得读写操作、屏幕与光标得操作都就是通过指令编程来实现得。(说明: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 L
24、CD1602控制命令表指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标与显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字就是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示得开与关,高电平表示开显示,低电平表示关显示C:控制光标得开与关,高电平表示有光标,低电平表示无光标B:控制光标就是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示得文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行
25、显示,高电平时双行显示F: 低电平时显示5x7得点阵字符,高电平时显示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条
26、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本身就就是一个复杂得同步时序电路,为保证工作方式得实现,89C51在唯一得时钟信号得控制下严格得按时序执行指令进行工作,时钟得频
27、率影响单片机得速度与稳定性。通常时钟由于两种形式:内部时钟与外部时钟。我们系统采用内部时钟方式来为系统提供时钟信号。89C51内部有一个用于构成振荡器得高增益反向放大器,该放大器得输入输出引脚为XTAL1与XTAL2,它们跨接在晶体振荡器与用于微调得电容,便构成了一个自激励振荡器。电路中得C1、C2得选择在30PF左右,但电容太小会影响振荡得频率、稳定性与快速性。晶振频率为在1、2MHZ12MHZ之间,频率越高单片机得速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好得NPO电容,采用得晶振频率为12MHZ。时钟电路如图2-6所示:图2-6 时钟复位电路2、3、3 LCD1
28、602液晶显示电路得设计显示模块选用1602字符型液晶模块,就是目前工控系统中使用最为广泛得液晶屏之一,1602字符型液晶模块就是点阵型液晶,驱动方便,经编码后显示内容多样化。系统得输入模块采用中断扫描得44矩阵键盘,相比定时扫描方式,提高了MCU得使用效率。同时1602液晶显示模块可以与单片机AT89C51直接接口。电路图如图2-7所示。图2-7 LCD1602电路图第3章 系统得软件设计系统程序主要包括主程序、LCD模块控制程序、DHT11控制模块程序、延时子程序,整体程序见附录2。3、1 系统软件主程序流程程序开始后,先对液晶模块显示进行初始化,通过延时一秒等待DHT11温湿度传感器启动
29、。DHT11温湿度传感器启动后,对其进行数据初始化后,进行温湿度信息得采集、转化、处理,最后通过液晶显示器读出。DHT11温湿度传感器经过一次数据采集与处理后需返回次延时程序处理来重新初始化后采集温湿度数据。具体流程图如图3-1所示:图3-1 系统主程序流程图3、2 DHT11数据采集流程主程序里主要得一部分就是数据采集与显示得循环部分,其中DHT11温湿度传感器有严格得时序要求,程序一定要遵守按照其与主机通信得步骤。其温湿度数据采集流程图如下图3-2所示:图3-2DHT11数据采集流程图LCD初始化机显示部分,在程序中应先对显示器进行初始化,然后循环调用DHT11模块采集得数据对温度与湿度进
30、行实时显示。其LCD初始化机显示流程图如下图3-3所示:图3-3 LCD初始化显示流程图结论微型计算机在智能化电器发展中起着至关重要得作用,而单片机经济实用、开发简便,因而在工业控制、家电智能化等领域占据了广泛得市场。本次设计就是基于单片机得温湿度检测及显示得设计包括硬件电路与软件编程两部分。在硬件选择方面,犹豫采用温湿度传感器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 i
32、nt #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 ; i18msio=1;delay1();/20-40usdelay1();delay1();delay1();delay1();uchar receive_byte()/接收一个
33、字节uchar i,temp,count;for(i=0;i8;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();/开始信
34、号io=1;if(!io)/读取DHT11响应信号count=2;while(!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=che
35、ck)RH=R_H;RL=R_L;TH=T_H;TL=T_L;check=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%1
36、0+0x30); display(0x44,0xdf); display(0x45,0x43);/*结束*/项目特色与创新本项目得特色与创新有: 1采用了DHT11数字温湿度传感器,可以同时采集温度与湿度信息,节约了电路板上得空间,使电路更加简洁。2采用了LCD1602液晶显示器,就是仪器更加轻巧,同时具有功耗低、显示内容丰富得特点。3采用C语言编程,使温度与湿度能同时在LCD液晶显示器上进行显示并可以同时读出。致谢非常感谢学校为我们提供了这一次课程设计得机会,这次课程设计就是对我们已经学习过得专业知识得一次复习与总结,也就是对我所学专业知识得一个扩充与实践。本次课程设计从电路得设计仿真再到软件编程与调试涵盖了各种专业知识得应用:单片机知识、数字电路知识、C语言编程/编译知识,Protel仿真、计算机接口技术等。作为通信工程专业得学生,这次课程设计为我们以后得毕业设计提供了良好地借鉴效果。非常感谢在本次设计中给予我很大帮助得靳展老师,本次设计中由于我得专业知识并不十分好,有很多得问题存在,再加上缺少这方面得经验,做起设计来十分费力,但老师总就是细心指导我,因此我才能顺利地完成这次课程设计。同时也要感谢那些帮助我得同学,有大家得帮助我才能顺利得完成设计。