版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..摘要SHT11是贴片封装型的数字温湿度传感器。可以在一块微型电路板上同时集成传感元件和信号处理电路,并且输出的数字信号是完全标定。产品的可靠性和稳定性很强。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上无缝连接了14位的A/D转换器以及串行接口电路。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。AT89C51单片机是最常用的51单片机,并且在日常生活中也有很多的使用,在学习中的电子制作方面,在工业上的机电控制方面都能见到其身影,用AT89C51单片机作为温湿度传感器的控制部分也是十分的方便实用。使用AT89C51单片机的优点在于性价比高,易于掌握和学习,并且能实现温湿度的测量与控制。使用AT89C51单片机设计温湿度控制系统,可以准确及时的反应出室内的温湿度,还可以反映出温湿度的变化,并能以直观的数值形式反应在液晶显示屏上。本系统可以用来对温度和湿度进行监控。[关键词]AT89C51SHT11温湿度传感器性价比高ABSTRACTSHT11isaSMDpackagedigitaltemperatureandhumiditysensors.Canbesimultaneouslyintegratedinamicro-sensorcircuitboardandthesignalprocessingcircuit,andoutputsthedigitalsignaliscompletestandard.Producthasastrongreliabilityandstability.Sensorincludesacapacitivepolymerhumiditymeasuringsensor,atemperaturemeasurementusedbydevicesbandgapmaterial,andseamlessconnectivityonthesamechip14-bitA/Dconverterandaserialinterfacecircuit.Therefore,theproducthasexcellentquality,fastresponse,anti-interferenceabilityandhighlycost-effective.AT89C51microcontrolleristhemostcommon51microcontroller,andusedineverydaylife,therearemanyusesinelectronicsmanufacturinginlearning,inindustrialelectromechanicalcontrolcouldbeseen,useAT89C51microcontrollerforthecontroltemperatureandhumiditysensorthecontrolsectionisalsoveryconvenientandpractical.TheadvantageofusingAT89C51microcontrollerishighlycost-effective,easytograspandlearn,andbeabletoachievemeasurementandcontroloftemperatureandhumidity.UsingAT89C51microcontrollerdesigntemperatureandhumiditycontrolsystem,canaccurateandtimelyresponsesindoortemperatureandhumidity,andalsocanreflectchangesintemperatureandhumidity,areabletoreactintuitivelynumericalformontheLCDscreen.Thesystemcanbeusedtomonitortemperatureandhumidity.[Keywords]AT89C51SHT11TemperatureandhumiditysensorHighlycost-effective目录前言1第一章总体设计概述3第一节系统实现的主要功能3第二节系统工作原理3第三节总体设计介绍3一、总体设计框图3二、总体设计方法与流程4第四节本章小结5第二章系统模块设计6第一节主要控制部分设计6一、单片机的基本特性6二、单片机的引脚介绍6三、时钟电路介绍7第二节传感器部分设计8一、SHT11温湿度传感器介绍8二、SHT11传感器电路设计11第三节液晶显示部分设计12一、LCD1602液晶显示屏介绍12二、LCD1602液晶显示屏电路设计15第四节本章小结16第三章系统程序设计17第一节总体程序构架17第二节主控制模块设计17一、主函数介绍17二、显示函数介绍18三、计算函数介绍18第二节LCD1602显示模块设计20一、液晶屏初始化函数介绍20二、液晶屏写入指令函数介绍21三、液晶屏写入数据函数介绍21第三节SHT11传感器模块设计22一、温湿度测量函数介绍22二、温湿度处理函数介绍23第四节本章小结23第四章系统仿真与调试24第一节系统仿真24一、仿真软件介绍24二、电路图的连接与程序导入24三、系统仿真26第二节系统调试26第三节所遇问题与解决方法29第四节本章小结30结论31致谢32参考文献33附录34一、英文原文:34二、英文翻译:45三、工程设计图纸:53四、源程序:54..前言温度和湿度与人们的生活有着密切的联系。在一些地方对温度和湿度的要求很高,必须进过精确的测量和控制,比如在工、农业的生产方面,气象、环保的探测,还有科研部门都有着严格的要求,在制药和食品加工方面也对温湿度有特殊的要求。人们常用的温度计是水银温度计,它的优点是结构简单、价钱低,但缺点是精度不高而且不宜读数。常用的湿度计的原理是干湿球显示法,温度计是用的水银,不仅复杂而且测量精度不高。在这方面单片机就体现出了优势,用单片机控制进行温湿度的测量,就会使测量变得更简单、灵活,控制上也更方便,还对温湿度控制的技术指标有大幅提升。用LCD显示器来显示温湿度的数值,看起来更加直观。为了达到生产和生活的需要,从古代开始人们就想过很多方法来测量和改变环境的温湿度。在古代的时候人们通过扇子、雨伞、毛巾等试图去改变和控制温度和湿度,而当今人们也通过高科技手段发明出许多控制和改变温湿度的工具,如风扇、空调、加热器等,这充分反映出人们非常希望能改变温度和湿度这两个对人们生活生产十分关键的环境因数。随着现代科技的发展,人们将传感器和单片机应用在了温湿度测量和控制上,使得系统的测量精度和自动化程度有了很大程度的提高,并取得了良好的效果。以前人们对温湿度的控制方法都是人工的,采取温度计和湿度计测量温湿度,并用人工读数,然后通过控制一些设备如:升、降温,增加、降低湿度的设备来实现温湿度的控制,但是这样做的精确性不高,操作人员的劳动强度很大,而且实时性很差。在有些地方使用半导体二极管作为温湿度传感器,由于没有达到很好的互换性能,在测量中效果也不是很理想。并且在一些对温湿度要求很高的行业中,很有可能因为温湿度的超标从而产生危险引发事故。比如在大型电力系统中,就会由于温度和湿度的过高和过低发生漏电或短路的情况,这就会产生事故,危机操作人员的生命安全,就需要加装自动控制温湿度的装置。在温湿度的测量中起关键作用的是温湿度传感器。以前测量温湿度都是分开进行的,随着科技的进步,人们发明了一体式传感器,可以同时测量温度和湿度。温度传感器的发展大概经历了3个阶段,分别是:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。现在,温度传感器正从模拟向数字方向发展并且有逐渐取代模拟器件的可能,向智能化、网络化发展SHTXX系列温湿度传感器是一款高度集成的温湿度传感器芯片,是现今国内外用的最广泛的,全程都是数字标量输出。产品具有很高的稳定性和可靠性。其包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件,并与一个14位的A/D转换器以及一个串行接口电路设计集成。SHTXX系列传感器有许多方面的优势,比如:品质卓越、响应超快、抗干扰能力强、极高的性价比。每个传感器芯片在制作过程中都是在极其精确的温湿度下经行标定的。通过将标定得到的校准系数以储存在其OTP内存中。接口配置很简单,只需通过两线制的串行接口就可调整内部电压,使外围系统集成变得快速、简单、体积微小、极低功耗等,因此,该类产品成为各类应用中的首选。整体而言,其如下优点:全标定输出、卓越的长期稳定性、无需额外电路、低能耗、超小尺寸、自动休眠、超快响应时间等。在SHTXX系列温湿度传感器中,此次设计选用比较熟悉的SHT11数字温湿度传感器,该芯片在PROTEUS中具有仿真原型,同时选用最常用和简单的单片机AT89C51,这款传感器与单片机连接的外围电路比较简便。所以本次设计采用的测量的传感器为SHT11数字温湿度传感器,核心控制芯片采用AT89C51,再辅助外围电路,构建一套温湿度测量系统。第一章总体设计概述第一节系统实现的主要功能这个系统所要实现的主要功能是:实现温度、湿度的测量与显示。整体设计工作的流程如下:通过SHT11数字温湿度传感器采集当前环境下的温湿度数据,然后送入单片机进行数据处理,进而控制LCD1602的显示时序,将采集到的数据显示出来。第二节系统工作原理从总体角度来说这个设计主要涉及有温度、湿度的测量,显示以及简单的控制。分为三个部分,即AT89C51单片机为主控部分、SHT11温湿度传感器部分、LCD1602显示屏显示部分。还需要加一些外围的驱动电路。主控部分主要用的是AT89C51单片机,在后面会有对单片机的介绍。在这部分还有时钟电路。传感器部分是使用的SHT11数字温湿度传感器。通过SHT11传感器检测当前环境下的温湿度,然后把测得的数据送入单片机进行处理,提供给后续的部分使用。显示部分是使用的LCD1602液晶显示器,显示分为两行,上面一行显示湿度,下面一行显示温度,后面显示湿度的百分比和温度的单位。第三节总体设计介绍一、总体设计框图如图1-1所示为总体设计框图,是根据上述部分模块与设计理念画出来的。并且在保证功能实现的基础上,尽可能的简化电路,减少元器件从而降低成本。图1-1总体设计框图从图中可以看出有单片机处理模块,传感器模块,液晶显示器模块,外围电路还有时钟电路。整个系统以AT89C51单片机为核心,实现温湿度的采集和温湿度具体数值的显示。二、总体设计方法与流程从上一步可以看出,这次设计分3个部分。首先需要做的就是搞懂AT89C51单片机,学习单片机的引脚、端口,功能等基本内容。这是一款十分常见的51单片机,可以查到很多资料。然后就是开始学习LCD1602液晶显示屏,学习显示屏的使用方法,连接方法。最后还要对SHT11数字温湿度传感器进行研究,通过查资料、看文献学习传感器的使用。在这3个部分掌握了后,再开始学习Proteus仿真软件。最后进行程序的编写和系统的仿真。整个流程图如图1-2所示。图1-2总体设计流程图第四节本章小结在这章中主要介绍了这次毕业设计要实现的主要功能,和这次毕业设计的设计方案的大体流程,并对设计的总体设计方法和系统的工作原理做了个简单的介绍。提出了这次设计的总体思路,在后续的工作中将按照这个流程把后续的系统设计完成,达到预期的效果。第二章系统模块设计第一节主要控制部分设计这次毕业设计的核心控制部分采用的是AT89C51单片机,其中接口连接如下:将单片机的P0口作为数据传输口,P0.0——P0.7分别与LCD1602液晶显示屏的D0——D7端口相连;P2.0~P2.2分别作为液晶屏的RS、R/W和E,并与液晶屏的相应端口相连接,以控制液晶显示;P2.6和P2.7分别与SHT11的SCK和DATA端口相连。一、单片机的基本特性AT89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器,也是高性能CMOS8位微处理器,这种储存器俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器[1]。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。=1\*GB3①与MCS-51兼容=2\*GB3②4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年=3\*GB3③全静态工作:0Hz-24Hz=4\*GB3④三级程序存储器锁定=5\*GB3⑤128*8位内部RAM=6\*GB3⑥32可编程I/O线=7\*GB3⑦两个16位定时器/计数器=8\*GB3⑧5个中断源=9\*GB3⑨可编程串行通道=10\*GB3⑩低功耗的闲置和掉电模式二、单片机的引脚介绍VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高[2]。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1"时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故[3]。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址"1"时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号[4]。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。三、时钟电路介绍设计用的AT89C51单片机有两种产生时钟的方法,一种是内部电路产生的方法,还有一种是用外加外围电路产生。内部产生方法就是利用单片机芯片内部的振荡电路产生时钟。在这次毕业设计中,采用的是外部振荡的方法,其目的是为了简化电路,也是从实际出发。对于AT89C51单片机来说,要形成时钟,需要有外接元件。所以在实际设计的电路中,振荡时钟电路的外接部分就是晶振和电容C1、C2构成的并联谐振电路,并接在放大器的反馈回路中。在电容和晶振的选择上并没有严格的要求。一般要考虑电容的大小和振荡频率的高低,还有振荡器的稳定性、起振反应速度和温度等特性。大概晶振频率在1.2MHZ~12MHZ之间选择,而两个电容的值一般选取在20pf~100pf之间。在本次设计中,考虑到计算和其他方面因素晶振选取频率为12MHZ,电容值选择为20pf。图2-1时钟晶振电路图图2-2晶振频率选择第二节传感器部分设计一、SHT11温湿度传感器介绍SHT11数字温湿度传感器是温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器采用专利的CMOSens®技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接[5]。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单[6]。微小的体积、极低的功耗,使SHT11成为各类应用的首选。1、传感器的电学特性传感器的电学特性如表2-1所示。表2-1传感器电学特性参数条件MinTypMax单位供电电压V功耗休眠状态25μW测量状态3mW平均150μW2、传感器接口介绍传感器的各接口如图2-3所示。图2-3传感器接口介绍〔1、串行时钟输入<SCK>SCK用于微处理器与SHT11之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。〔2、串行数据<DATA>DATA引脚为三态结构,用于读取传感器数据。当向传感器发送命令时,DATA在SCK上升沿有效且在SCK高电平时必须保持稳定,DATA在SCK下降沿之后改变。为确保通讯安全,DATA的有效时间在SCK上升沿之前和下降沿之后应该分别延长至TSUandTHO–参见图2-4。当从传感器读取数据时,DATATV在SCK变低以后有效,且维持到下一个SCK的下降沿[7]。图2-4串行数据状态图注:上图中加重的DATA线由传感器控制,普通的DATA线由单片机控制。有效时间依据SCK的时序。请注意数据读取的有效时间为前一个切换的下降沿。其中缩写词解释见表2-2。表2-2缩写词解释FSCKTSCKxTR/TFTFOTROTVTSUTHOSCK频率SCK高/低时间SCK上升/下降时间DATA下降时间DATA上升时间DATA有效时间DATA设置时间DATA保持时间3、传感器通信用一组"启动传输"时序,来完成数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。参见图2-5。图2-5传感器"启动传输"后续命令包含三个地址位〔目前只支持000",和五个命令位。SHT11会以下述方式表示已正确地接收到指令:在第8个SCK时钟的下降沿之后,将DATA下拉为低电平〔ACK位。在第9个SCK时钟的下降沿之后,释放DATA〔恢复高电平[8]。命令见下表。表2-3SHT11命令集命令代码预留0000x温度测量00011湿度测量00101读状态寄存器00111写状态寄存器00110预留0101x-1110x4、温湿度测量发布一组测量命令〔‘00000101’表示相对湿度RH,‘00000011’表示温度T后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多可能有-30%的变化。SHT11通过下拉DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个"数据备妥"信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRC奇偶校验〔可选择读取。uC需要通过下拉DATA为低电平,以确认每个字节。所有的数据从MSB开,右值有效〔例如:对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节则无意始义。在收到CRC的确认位之后,表明通讯结束。如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持ACK高电平终止通讯[9]。在测量和通讯完成后,SHT11自动转入休眠模式。二、SHT11传感器电路设计SHT11传感器连接AT89C51单片机的电路图还是比较简单的,调用出Protues里现成的SHT11传感器模块,再把时钟端SCK和数据端DATA与单片机对应的端口相连。图2-6SHT11传感器电路图第三节液晶显示部分设计一、LCD1602液晶显示屏介绍LCD1602是工业字符型液晶显示屏,可以同时显示32个字符〔16列2行。1602显示屏可以用来显示字母、数字、符号等点阵类型的液晶模块。液晶显示器在工业和生活中用的很多,如手表、计算器、电子称等地方都有使用,在单片机学习中也经常用到液晶显示器,常用来显示数字、字母等,在这些显示器中LCD1602是用的最多、最基本、最容易上手液晶显示屏,在这个毕业设计中就正是采用LCD1602液晶显示屏来显示温度和湿度的数值。1、显示器的主要技术参数显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA<5.0V>模块最佳工作电压:5.0V字符尺寸:2.95×4.35<W×H>mm2、显示器的引脚说明这里采用的是LCD1602标准的14脚无背光显示器,各引脚说明如下表。表2-4LCD1602显示器引脚说明符号引脚说明符号引脚说明VSS电源地D1数据VDD电源正极D2数据VL液晶显示偏压D3数据RS数据/命令选择D4数据R/W读/写选择D5数据E使能信号D6数据D0数据D7数据具体解释:VSS脚:VSS为地电源。VDD脚:VDD接5V正电源。VL脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生"鬼影",使用时可以通过一个10K的电位器调整对比度[10]。RS脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读取信号,当RS为高电平R/W为低电平时可以写入数据。E脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0-D7脚:D0~D7为8位双向数据线。3、显示器的指令说明LCD1602液晶显示屏的内部控制有11条控制指令,见下表。表2-5LCD1602液晶屏控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容详细解释:1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。〔说明:1为高电平、0为低电平指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置,I/D:光标移动方向,高电平右移,低电平左移;S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示;C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁[11]。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令,DL:高电平时为4位总线,低电平时为8位总线;N:低电平时为单行显示,高电平时双行显示;F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符[12]。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。4、显示器的标准字符表LCD1602液晶显示器内部的字符储存器存储了160个不同的点阵类型的字符、图形,有阿拉伯数字、常用符号、日语中的平假名片假名。每个字符都有一个对应的固定代码,只要调用代码,显示器就能把对应的字符显示出来。代码与字符的对应表见图2-7。图2-7显示屏代码与字符对应图二、LCD1602液晶显示屏电路设计上文已经介绍了LCD1602液晶显示屏的基本内容和使用方法,这次毕业设计的显示部分就是用这个显示屏来实现的。将显示屏的RS、RW、E三个端口接到单片机对应设定的端口,D0-D7为数据传输端口也接到单片机的数据传输端并加上个10K的排阻,因为单片机P0口内部没有上拉电阻,排阻在这里起上拉电阻的作用,就是给P0口提供电流,否则会显示就会异常。显示电路的设计电路图见图2-8。图2-8显示器设计电路图第四节本章小结在本章中,重点对系统各个模块的设计做了介绍,分别对控制、显示、传感三个组成模块的线路图与电路连接方法作了阐述。对所用到的单片机、传感器、显示屏的使用环境,工作电压和各引脚的连接与使用做了详细解释。在传感器部分,说明了传感器要如何去测量温湿度、传感器的初始化、传感器的信号和数据的传输的办法。在显示屏部分,说明了显示器的使用方法,简单介绍了下显示器的命令与字符表。第三章系统程序设计第一节总体程序构架在对要设计的东西有一个了解后,先建立一个总体框图和流程图,然后分块进行设计,逐个模块的设计并实现功能,最后再把各个模块连接起来,形成总程序。流程如图3-1。图3-1主程序流程图总体构架的思路就是:检测温湿度,温湿度的计算,温湿度的补偿,温湿度的处理,最后还要将处理后的值发送给显示器,实现显示器的数值显示。第二节主控制模块设计在主控制部分,主要有一个主函数和一个显示程序。主函数中包括液晶屏初始化函数、温湿度计算函数、温度和湿度补偿函数。设计图如图3-2。图3-2主控程序流程图一、主函数介绍主函数是一个循环函数,目的是一直进行温湿度测量并计算,在进行温湿度补偿,主函数如下:voidmain<>{ lcd_init<>;//调用液晶屏初始化子函数 while<1>//无限循环下面的语句: { text_jishuan_temp11<>;TEM0=xianzhi_t+10;//修正温度补偿HUM0=xianzhi_h-30;//修正湿度补偿display<>;//定时中断显示一次改变的数据}}二、显示函数介绍后面跟上一个液晶显示屏的显示数据函数,并设定从指定地方开始显示,还要将得到的数据分开成十位数据和个位数据,在从指定地方开始显示,函数如下:voiddisplay<>{write_1602com<yh+12>;//显示从第一行第12个位置之后开始显示write_1602dat<HUM0/100+0X30>; //0X30:"0"字符的ask码write_1602dat<HUM0/10%10+0X30>;write_1602com<er+12>;//数据显示写入位置,从第12个位置后开始显示 write_1602dat<TEM0/100+0X30>;write_1602dat<TEM0/10%10+0X30>;}在上述两个主函数中都调用到了许多自己定义的函数,这些函数有些是用来显示的,有些是用来计算数据的,还有的是测量用的,这些函数后面都会有所介绍[13]。三、计算函数介绍在主控函数里还调用了一个计算函数,这个函数是用来计算温湿度的。因为传入单片机的温度和湿度的数据是分两次传入的,分为高八位和低八位传入的,这里要将数据进行重新整合,并对数据进行处理,最后给出提供给显示器的显示值。1、温度计算温度计算函数如下:voidtext_jishuan_temp<>{floataa=0,bb=0,temp_zi; intabcd=0;aa=<float>temp_h*256+<float>temp_LL; //把高八位和低八位和在一起 temp_zi=0.01*aa-40;//if<temp_zi<0>{ temp_zi=0;}temp_zi=temp_zi*10;xianzhi_t=<int>temp_zi;//给显示值2、湿度计算湿度计算函数如下:voidtext_jishuan_humi<>{floataa=0,bb=0,humi_zi; intabcd=0;aa=<float>temp_h*256+<float>temp_LL;bb=aa*aa*2.8/1000000;aa=0.0405*aa;aa=aa-4-bb;humi_zi=aa;//humi_zi=humi_zi*10;xianzhi_h=<int>humi_zi;}第二节LCD1602显示模块设计在设计显示器的程序时,在初始化时首先设计恒定显示的温度、湿度单词和单位符号,确定要变化的那4位,然后定义写入指令,再定义写入数据,最后就能显示了。设计流程如下图。图3-3LCD1602显示屏程序流程图在显示模块的设计中主要用到了3个函数:一个液晶屏初始化函数,一个液晶屏写入指令函数,一个液晶屏写入数据函数一、液晶屏初始化函数介绍液晶屏初始化函数,用处是初始化液晶屏,定义温湿度表示符号,温湿度的单位符号,并确定它们的显示位置和哪些位置用来显示温湿度的数值,程序如下:lcd_init<>//***液晶初始化函数****{ write_1602com<0x38>;//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com<0x0c>;//开显示不显示光标 write_1602com<0x06>;//整屏不移动,光标自动右移 write_1602com<0x01>;//清显示write_1602com<yh+0>;//温度显示固定符号从第一行第1个位置之后开始显示 for<a=0;a<16;a++> { write_1602dat<tab1[a]>;} write_1602com<er+0>;//湿度显示固定符号写入位置,从第0个位置后开始显示 for<a=0;a<16;a++> { write_1602dat<tab2[a]>; }}二、液晶屏写入指令函数介绍写入指令函数的作用是发给显示器一个指令告诉显示器要显示数据,准备接收数据,并确定把数据显示在哪个位置。大体程序如下:write_1602com<ucharcom>//****液晶写入指令函数**** //在哪写{ rs=0;//数据/指令选择置为指令 rw=0;//读写选择置为写 P0=com;//送入数据 delay<1>; en=1;//拉高使能端,为制造有效的下降沿做准备 delay<1>; en=0;//en由高变低,产生下降沿,液晶执行命令}三、液晶屏写入数据函数介绍写入数据函数的作用是告诉显示屏显示的具体数据是啥,传输数据给显示屏,程序如下:write_1602dat<uchardat>//***液晶写入数据函数**** //写啥{ rs=1;//数据/指令选择置为数据 rw=0;//读写选择置为写 P0=dat;//送入数据 delay<1>; en=1;//en置高电平,为制造下降沿做准备 delay<1>; en=0;//en由高变低,产生下降沿,液晶执行命令}第三节SHT11传感器模块设计SHT11数字温湿度传感器是这次设计选用的传感器,在启动和初始化传感器后,使用传感器测量温湿度,再将测量的数据分为高8位和低8为传入单片机,并进行温湿度值的补偿计算,流程图如图3-4。图3-4SHT11传感器流程图传感器的模块设计有初始化函数、驱动函数、温湿度测量函数、温湿度处理函数、传输函数[14]。下面对其中几个函数进行简单介绍。一、温湿度测量函数介绍温湿度测量函数的作用是测量温度或湿度,并返回校验值,程序如下:voidtext_a<unsignedcharml> { unsignedinti;start_sht11<>;//启动 write<ml>;//写入测温度 if<ack==1> { sht_rest<>;//复位write<ml>;//写入测温度}for<i=0;i<55535;i++>{if<DATA==0>break;}read<>;//读温度}二、温湿度处理函数介绍温湿度处理函数主要是调用的前面所设计过的计算函数,对测量的温湿度值进行处理,主要程序如下:voidtext_jishuan_temp11<> { error=0; ack=0;sht_rest<>;//复位 text_a<TEMP_ML>;text_jishuan_temp<>; text_a<HUMI_ML>;text_jishuan_humi<>;}第四节本章小结在这一章中主要对这次设计的软件部分做了介绍,软件部分的设计分为了三大模块,其中也有些函数在几大模块中都有使用到。本章中也对用到的基本函数程序做了介绍,在下一章将会把这些代码导入单片机中,进行系统的仿真。第四章系统仿真与调试第一节系统仿真一、仿真软件介绍这次毕业设计使用的仿真软件是Proteus,Proteus是著名的EDA工具,软件可以将代码调试与原理电路图协同起来再加上单片机和外围电路实现仿真,并可以经行PCB软件设计,也支持51系类的单片机的仿真[15]。是最实用、最简单的单片机仿真软件,也很容易上手。在软件安装完成后,就可以进入软件主界面,如图4-1。图4-1仿真软件界面二、电路图的连接与程序导入在软件中新建工程、文件,然后就开始画电路,在软件中找到所需的元器件,包括:AT89C51单片机、SHT11数字温湿度传感器、LCD1602液晶显示屏、排阻、电容、电阻、晶振,在用导线将元器件按需要的电路连接起来,并加上高电位和接地。连接好的电路图如图4-2所示。图4-2系统连接电路图连接好后在Keil中生成能为Proteus仿真使用的文件如图4-3。图4-3生成程序仿真文件然后再进入Proteus里,双击单片机模块,将仿真用的程序文件导入到系统里〔见图4-4,到此,仿真的前期准备就都完成了。图4-4仿真程序导入三、系统仿真电击左下角的开始按钮,软件开始仿真,可以看见电路图中的管脚处出现了表示高低电位的红蓝点,SHT11有了显示,LCD1602上也显示出了温湿度,系统出现效果,如图4-5。图4-5仿真效果第二节系统调试在仿真出效果后,现在对系统进行测试,看是否如设计的一样能实时的反应温湿度的数值变化。对SHT11模块进行调节,用来模拟外接温湿度变化传感器的反应。用鼠标点击SHT11左下角的两个按钮可以对数值大小进行调节〔左边是减少,右边是增加,右下角的那个按钮是切换调节的数值是温度还是湿度。现在将SHT11调节到温度调节,可以看见有一个红箭头指向温度的数值,点击温度增加按钮,可以看见每点一下,SHT11显示的温度就增加一度,如图4-6。图4-6温度调节在温度调节的过程中观察LCD1602液晶显示屏的变化,可以看到显示屏管脚的红蓝色点颜色在变化,并且屏上temperature后面显示的温度数值也一直在变化〔见图4-7,通过观察发现显示屏上的温度值与传感器上的温度值是一样,并且保持同步的变化。进过验证温度测量成功,系统能成功实现温度的实时测量与显示。图4-7温度变化同理,将SHT11传感器的调节按钮选定为湿度,用同样的方法进行湿度变化,并观察显示屏。发现湿度测量也实现了实时、准确的变化并显示出数值〔见图4-8。再多次变化温湿度观察变化〔见图1-10,图4-11。到此为止,系统成功实现设定功能,成功的实现对温湿度的实时变化的测量并显示,设计仿真取得成功。图4-8湿度变化调节与显示图4-9温湿度变化调节第三节所遇问题与解决方法在这次毕业设计中也遇到了许多问题,其中有软件编程方面的,也有仿真方面的。在编程方面就遇到了函数没定义等问题,由于要调用的自定义函数很多,顺序又放的不是很整齐,就会碰到一编译就弹出错误说有哪些函数没定义就直接调用了;在仿真时遇到过Keil软件无法生成能供Proteus使用的程序文件。这些问题后来都在查阅资料,请教老师和同学的帮助下完成了。第四节本章小结在本章中详细的介绍了系统的仿真过程,和仿真结果,变化初始条件检测系统的实时性与准确性。通过仿真系统达到了最初要求的设计功能,实现了温湿度的实时测量与数字化显示。也对遇到的问题做了反思与修改。结论测量温湿度对人们的生产生活是十分重要的,在农业上的恒温恒湿蔬菜大棚,工业上的恒温恒湿,还有很多高精尖的实验室对温湿度的要求也是很严格的。随着经济的发展,人们生活水平的提高和电子技术的应用。已经不能像原来一样使用老式的人工读数温度、湿度计,这即浪费了时间也不方便电子自动化控制。在这个信息和计算机飞速发展的时代,要把传感器数字化,这样才能方便与电子系统联系,才能方便后续的自动化管理。而这次的毕业设计所做正是温湿度传感器,也是一个很贴近生活的题目。在这段做毕业设计的时间里所得到的最大感触就是"纸上得来终觉浅,绝知此事要躬行"。刚开始看看书认为还不算难,但是经过自己动手做之后才发现平时学习知识中的不足之处,看着都会的东西,自己一做就会被很多小问题卡住,以为没问题的程序结果运行就报错,在设计方面也会遇到些平时不注意的细节。经过这一段时间的努力,从确定题目,到查阅资料,学习基础理论知识,查看并了解芯片、传感器、显示器的使用方法和功能,学习编程并调试程序,这都使我的理论知识和动手能力有了很大的提升。也对单片机的功能和运用有了更深一步的掌握,同时,对一些外围的设备和电路,如:传感器、显示屏、时钟电路也有了一定的了解。最后也仿真成功,达到预期设定目的,完成了毕业设计所要求的仿真实现的要求。但我知道这毕竟不是实物,离实物的实现还是有一段距离,想要完成实物并且在生活生产中应用还有很长的一段路要走。通过这次毕业设计,实现了从理论到实际的跨度,知道了理论与实际的差距,并加强了动手能力,为以后的工作和学习打下了坚实的基础。致谢毕业设计成功的完成,在这个过程中我学到了很多的东西。首先我要感谢我的导师朱治国老师,朱老师在我毕业设计和论文的撰写过程中给予了我很大的帮助,从设计初期的基本思路构架,到最后设计的完成,从论文结构和文献的选取,到后来的论文修订与定稿我都或多或少的出现了问题和疑惑,朱老师都耐心的帮我解答问题,最后在老师的指导下我顺利的完成了毕业设计和论文的撰写。其次,我也要感谢我的同学们,他们也在我的设计过程中给予了我帮助,他们帮我查找了资料,在我不懂时给予了我解答。最后,还要感谢学校给我们提供的像图书馆之类的学习与查阅环境,在其中我查阅到了很多书籍,对完成毕业设计也有很大的帮助。参考文献巧媛.单片机原理及应用<第二版>[M].北京:电子工业出版社,2003.刘刚.FPGA与单片机的接口设计[J].电子世界,2004,<9>:32-32.胡晓颖.基于单片机的LCD的滚动显示[J].硅谷,2012,<3>:58-59.于会山.一种新型红外线遥控智能密码锁[J].电子技术〔上海,2005,32<10>:45-49.钱显毅.传感器原理与应用[M].XX:东南大学出版社,2008.陈华龙.基于USB接口的多路温湿度采集系统设计[J].硅谷,2010,<11>:83-83.NikolayKakanakov.MeasurementOfTemperatureAndHumidityUsingSHT11/71IntelligentSensor[R].TechnicalUniversity–branchPlovdiv,2005.焦斌亮.仓库温湿度监测与nRF905无线传输系统的设计[J].传感器与微系统,2011,30<5>:101-103.V.Yu.Teplov,A.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffec[J].IEEE,2002.皮大能.LCD显示器与PIC16F877单片机连接[J].微计算机信息,2004,20<10>:94-95.GeneBogdanov.MicrocontrollerTheoryandSystems[M].PublishingHouseofElectronicsIndustry,2003.ChandraM.Kudsia.ApplicationVISLCD1602Module[J].ElectricalTechnology,2009,32<3>:21-23.谭浩强.C程序设计[M].北京:清华大学出版社,2005.DavidM.PrinciplesandApplicationsofTemperatureandHumiditySensorsSHT10[J].MicrocontrollerandEmbeddedSystems,2009,<4>:52-54.赵伟军.Protel99SE原理图与PCB仿真[M].北京:机械工业出版社,2005.附录一、英文原文:StructureandfunctionoftheMCS-51seriesStructureandfunctionoftheMCS-51seriesone-chipcomputerMCS-51isanameofapieceofone-chipcomputerserieswhichIntelCompanyproduces.Thiscompanyintroduced8top-gradeone-chipcomputersofMCS-51seriesin1980afterintroducing8one-chipcomputersofMCS-48seriesin1976.Itbelongtoalotofkindsthislineofone-chipcomputerthechipshavesuchas8051,8031,8751,80C51BH,80C31BH,etc.,theirbasiccomposition,basicperformanceandinstructionsystemareallthesame.8051dailyrepresentatives-51serialone-chipcomputers.Anone-chipcomputersystemismadeupofseveralfollowingparts:<1>Onemicroprocessorof8<CPU>.<2>AtslicedatamemoryRAM<128B/256B>,itusenotdepositingnotcanreading/datathatwrite,suchasresultnotmiddleofoperation,finalresultanddatawantedtoshow,etc.<3>ProcedurememoryROM/EPROM<4KB/8KB>,isusedtopreservetheprocedure,someinitialdataandforminslice.ButdoesnottakeROM/EPROMwithinsomeone-chipcomputers,suchas8031,8032,80C,etc..<4>Four8runsidebysideI/OinterfaceP0fourP3,eachmouthcanuseasintroduction,mayuseasexportingtoo.<5>Twotimer/counter,eachtimer/countermaysetupandcountintheway,usedtocounttotheexternalincident,cansetupintoatimingwaytoo,andcanaccordingtocountorresultoftimingrealizethecontrolofthecomputer.<6>Fivecutoffcuttingoffthecontrolsystemofthesource.<7>OneallduplexingserialI/OmouthofUART<universalasynchronousreceiver/transmitter<UART>>,isitrealizeone-chipcomputerorone-chipcomputerandserialcommunicationofcomputertousefor.<8>Stretchoscillatorandclockproducecircuit,quartzcrystalfinelytuneelectriccapacityneedouter.Allowoscillationfrequencyas12megahertasnowatmost.Everytheabove-mentionedpartwasjoinedthroughtheinsidedatabus.Amongthem,CPUisacoreoftheone-chipcomputer,itisthecontrolofthecomputerandcommandcentre,madeupofsuchpartsasarithmeticunitandcontroller,etc..Thearithmeticunitcancarryon8personsofarithmeticoperationandunitALUoflogicoperationwhileincludingone,the1storingdevicetemporalitiesof8,storingdevice2temporarily,8'saccumulationdeviceACC,registerBandprocedurestateregisterPSW,etc.PersonwhoaccumulateACCcountby2inputendsenteredofcheckingetc.temporarilyasoneoperationoften,comefrompersonwhostore1operationisitisitmakeoperationtogoontocounttemporarily,operationresultandloopbackACCwithanotherone.Inaddition,ACCisoftenregardedasthetransferstationofdatatransmissionon8051inside.Thesameasgeneralmicroprocessor,itisthebusiestregister.HelprememberingthatagreeingwithAexpressesintheorder.Thecontrollerincludestheprocedurecounter,theorderisdepositted,theorderdecipherstheoscillatorandtimingcircuit,etc.Theprocedurecounterismadeupofcounterof8fortwo,amountsto16.Itisabyteaddresscounteroftheprocedureinfact,thecontentisthenextIAthatwillcarriedoutinPC.Thecontentwhichchangesitcanchangethedirectionthattheprocedurecarriesout.Shakethecircuitin8051one-chipcomputers,onlyneedouterquartzcrystalandfrequencytofinelytunetheelectriccapacity,itsfrequencyrangeisits12MHZof1.2MHZ.Thispulsesignal,as8051basicbeatsofworking,namelytheminimumunitoftime.8051isthesameasothercomputers,theworkinharmonyunderthecontrolofthebasicbeat,justlikeanorchestraaccordingtothebeatplaythatiscommanded.ThereareROM<procedurememory,canonlyread>andRAMin8051slices<datamemory,canisitcanwrite>twotoread,theyhaveeachindependentmemoryaddressspace,disposewaytobethesamewithgeneralmemoryofcomputer.Procedure8051memoryand8751sliceprocedurememorycapacity4KB,addressbeginfrom0000H,usedforpreservingtheprocedureandformconstant.Data8051-87518031ofmemorydatamemory128B,addressfalse00FH,useformiddleresulttodepositoperation,thedataarestoredtemporarilyandthedataarebufferedetc..InRAMofthis128B,thereisunitof32bytesthatcanbeappointedasthejobregister,thisandgeneralmicroprocessorisdifferent,8051sliceRAMandjobregisterrankoneformationthesametoarrangethelocation.ItisnotverythesamethatthememoryofMCS-51seriesone-chipcomputerandgeneralcomputerdisposesthewayinaddition.Generalcomputerforfirstaddressspace,ROMandRAMcanarrangeindifferentspacewithintherangeofthisaddressatwill,namelytheaddressesofROMandRAM,withdistributingdifferentaddressspaceinaformation.Whilevisitingthememory,correspondingandonlyanaddressMemoryunit,canROM,itcanbeRAMtoo,andbyvisitingtheordersimilarly.ThiskindofmemorystructureiscalledthestructureofPrinceton.8051memoriesaredividedintoprocedurememoryspaceanddatamemoryspaceonthephysicsstructure,therearefourmemoryspacesinall:Theprocedurestoresinoneanddatamemoryspaceoutsidedatamemoryandoneinprocedurememoryspaceandoneoutsideone,thestructureformsofthiskindofproceduredeviceanddatamemoryseparatedfromdatamemory,calledHarvardstructure.Butusetheanglefromusers,8051memoryaddressspaceisdividedintothreekinds:<1>intheslice,arrangesblocksofFFFFH,0000Hoflocation,inunisonoutsidetheslice<use16addresses>.<2>Thedatamemoryaddressspaceoutsideoneof64KB,theaddressisarrangedfrom0000H64KBFFFFH<with16addresses>tooktothelocation.<3>Datamemoryaddressspaceof256B<use8addresses>.Threeabove-mentionedmemoryspaceaddressesoverlap,fordistinguishinganddesigningtheordersymbolofdifferentdatatransmissionintheinstructionsystemof8051:CPUvisitslice,ROMorderspendMOVC,visitblockRAMorderusesMOVXoutsidetheslice,RAMorderusesMOVtovisitinslice.8051one-chipcomputerhavefour8walkabreastI/Oport;callP0,P1,P2andP3.Eachportis8accuratetwo-waymouths,accountsfor32pinsaltogether.EveryoneI/Olinecanbeusedasintroductionandexportedindependently.Eachportincludesalatch<namelyspecialfunctionregister>,oneexportsthedriverandaintroductionbuffer.Makedatacanlatchwhenoutputting,datacanbufferwhenmakingintroduction,butfourfunctionofpasswaytheseself-same.Expandamongthesystemofmemoryoutsidehavingslice,fourportsthesemayserveasaccuratetwo-waymouthofI/Oincommonuse.Expandamongthesystemofmemoryoutsidehavingslice,P2mouthseehigh8addressoff;P0mouthisatwo-waybus,sendtheintroductionof8lowaddressesanddata/exportintimesharingOutputgrade,P3ofmouth,P1ofP1,connectwithinsidehaveloadresistanceofdrawing,everyoneoftheycandrive4ModelLSTTLloadtooutput.Aswhileinputtingthemouth,anyTTLorNMOScircuitcandriveP1of8051one-chipcomputersasP3mouthinanormalway.Becausedrawresistanceonoutputgradeofthemhave,canopenawaycollectortooordrain-sourceresistanceisiturgetoopenaway,donotneedtohavetheresistanceofdrawingouterly.Mouthsareallaccuratetwo-waymouthstoo.Whentheconductisinput,mustwritethecorrespondingportlatchwith1first.Asto80C51one-chipcomputer,portcanonlyoffermilliampereofoutputelectriccurrents,isitoutputmouthgowhenurgingoneordinarybasingoftransistortoregardas,shouldcontactaresistanceamongtheportandtran
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026吉林省路桥工程(集团)有限公司项目部劳务派遣人员招聘114人笔试备考题库及答案解析
- 2026年江西工业职业技术学院单招综合素质考试备考试题含详细答案解析
- 2026上半年杭州市卫生健康委员会所属十家事业单位招聘116人笔试备考试题及答案解析
- 2026“才聚齐鲁成就未来”山东土地资本投资集团有限公司社会招聘11人笔试备考试题及答案解析
- 2026上海高等研究院光源科学中心博士后研究人员招收2人笔试备考题库及答案解析
- 2026江西事业单位联考吉安市事业单位招聘944人笔试备考试题及答案解析
- 2026云南昆明市西山区人才资源运营管理有限公司招募高校毕业见习人员6人笔试备考题库及答案解析
- 2026北京市海淀区实验小学教育集团招聘笔试备考题库及答案解析
- 2026江苏南京大学XZ2026-021海外教育学院行政主管招聘笔试备考题库及答案解析
- 2026山东菏泽学院计算机学院诚聘高层次人才笔试备考题库及答案解析
- 2026年新广西安全员a证考试试题及答案
- 合同法讲座课件
- 2026年及未来5年市场数据中国多旋翼无人机行业市场全景调研及投资规划建议报告
- 扁鹊凹凸脉法课件
- 足浴店入股合同协议书
- JJF(石化) 001-2023 漆膜耐洗刷试验仪校准规范
- 【百思特】华为手机品牌变革历程研究白皮书
- 2025年湖南铁路科技职业技术学院单招职业技能测试题库及答案1套
- 加气站气瓶充装质量保证体系手册2024版
- Rexroth (博世力士乐)VFC 3610系列变频器使用说明书
- 全麻苏醒期躁动
评论
0/150
提交评论