




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆邮电大学本科毕业设计(论文)摘 要SHT11是贴片封装型的数字温湿度传感器。可以在一块微型电路板上同时集成传感元件和信号处理电路,并且输出的数字信号是完全标定。产品的可靠性和稳定性很强。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上无缝连接了14位的A/D转换器以及串行接口电路。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。AT89C51单片机是最常用的51单片机,并且在日常生活中也有很多的使用,在学习中的电子制作方面,在工业上的机电控制方面都能见到其身影,用AT89C51单片机作为温湿度传感器的控制部分也是十分的方便实用。使用AT89C51单片机的优点在于性价比高,易于掌握和学习,并且能实现温湿度的测量与控制。使用AT89C51单片机设计温湿度控制系统,可以准确及时的反应出室内的温湿度,还可以反映出温湿度的变化,并能以直观的数值形式反应在液晶显示屏上。本系统可以用来对温度和湿度进行监控。【关键词】 AT89C51 SHT11 温湿度传感器 性价比高ABSTRACTSHT11 is a SMD package digital temperature and humidity sensors. Can be simultaneously integrated in a micro- sensor circuit board and the signal processing circuit, and outputs the digital signal is complete standard. Product has a strong reliability and stability. Sensor includes a capacitive polymer humidity measuring sensor, a temperature measurement used by devices band gap material, and seamless connectivity on the same chip 14 -bit A / D converter and a serial interface circuit. Therefore, the product has excellent quality, fast response, anti-interference ability and highly cost-effective. AT89C51 microcontroller is the most common 51 microcontroller, and used in everyday life, there are many uses in electronics manufacturing in learning, in industrial electromechanical control could be seen, use AT89C51 microcontroller for the control temperature and humidity sensor the control section is also very convenient and practical. The advantage of using AT89C51 microcontroller is highly cost-effective, easy to grasp and learn, and be able to achieve measurement and control of temperature and humidity. Using AT89C51 microcontroller design temperature and humidity control system, can accurate and timely responses indoor temperature and humidity, and also can reflect changes in temperature and humidity, are able to react intuitively numerical form on the LCD screen. The system can be used to monitor temperature and humidity.【Key words】AT89C51 SHT11 Temperature and humidity sensor Highly cost-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 - 66 -前 言温度和湿度与人们的生活有着密切的联系。在一些地方对温度和湿度的要求很高,必须进过精确的测量和控制,比如在工、农业的生产方面,气象、环保的探测,还有科研部门都有着严格的要求,在制药和食品加工方面也对温湿度有特殊的要求。人们常用的温度计是水银温度计,它的优点是结构简单、价钱低,但缺点是精度不高而且不宜读数。常用的湿度计的原理是干湿球显示法,温度计是用的水银,不仅复杂而且测量精度不高。在这方面单片机就体现出了优势,用单片机控制进行温湿度的测量,就会使测量变得更简单、灵活,控制上也更方便,还对温湿度控制的技术指标有大幅提升。用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.0P0.7分别与LCD1602液晶显示屏的D0D7端口相连;P2.0P2.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单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 与MCS-51兼容 4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式二、单片机的引脚介绍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.2MHZ12MHZ之间选择,而两个电容的值一般选取在20pf100pf之间。在本次设计中,考虑到计算和其他方面因素晶振选取频率为12MHZ,电容值选择为20pf。图2-1 时钟晶振电路图图2-2晶振频率选择第二节 传感器部分设计一、SHT11温湿度传感器介绍SHT11数字温湿度传感器是温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器采用专利的CMOSens 技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接5。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP 内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单6。微小的体积、极低的功耗,使SHT11 成为各类应用的首选。1、传感器的电学特性传感器的电学特性如表2-1所示。表2-1传感器电学特性参数条件MinTypMax单位供电电压2.43.35.5V功耗休眠状态25W测量状态3mW平均150W2、传感器接口介绍传感器的各接口如图2-3所示。图2-3 传感器接口介绍(1)、串行时钟输入(SCK)SCK 用于微处理器与SHT11 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK 频率。(2)、串行数据 (DATA)DATA 引脚为三态结构,用于读取传感器数据。当向传感器发送命令时, DATA 在SCK 上升沿有效且在SCK 高电平时必须保持稳定,DATA 在SCK 下降沿之后改变。为确保通讯安全,DATA 的有效时间在SCK 上升沿之前和下降沿之后应该分别延长至 TSU and THO 参见图2-4。 当从传感器读取数据时, DATA TV 在 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-3 SHT11命令集命令代码预留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-6 SHT11传感器电路图第三节 液晶显示部分设计一、 LCD1602液晶显示屏介绍LCD1602是工业字符型液晶显示屏,可以同时显示32个字符(16列2行)。1602显示屏可以用来显示字母、数字、符号等点阵类型的液晶模块。液晶显示器在工业和生活中用的很多,如手表、计算器、电子称等地方都有使用,在单片机学习中也经常用到液晶显示器,常用来显示数字、字母等,在这些显示器中LCD1602是用的最多、最基本、最容易上手液晶显示屏,在这个毕业设计中就正是采用LCD1602液晶显示屏来显示温度和湿度的数值。1、显示器的主要技术参数显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm2、显示器的引脚说明这里采用的是LCD1602标准的14脚无背光显示器,各引脚说明如下表。表2-4 LCD1602 显示器引脚说明符号引脚说明符号引脚说明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脚:D0D7为8位双向数据线。3、显示器的指令说明LCD1602液晶显示屏的内部控制有11条控制指令,见下表。表2-5 LCD1602液晶屏控制指令序号指令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读出的数据内容详细解释: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 主控程序流程图一、 主函数介绍主函数是一个循环函数,目的是一直进行温湿度测量并计算,在进行温湿度补偿,主函数如下: void main()lcd_init(); /调用液晶屏初始化子函数while(1) /无限循环下面的语句: text_jishuan_temp11(); TEM0=xianzhi_t+10;/修正温度补偿 HUM0=xianzhi_h-30;/修正湿度补偿 display();/定时中断 显示一次改变的数据 二、 显示函数介绍后面跟上一个液晶显示屏的显示数据函数,并设定从指定地方开始显示,还要将得到的数据分开成十位数据和个位数据,在从指定地方开始显示,函数如下:void display() 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、温度计算温度计算函数如下:void text_jishuan_temp() float aa=0,bb=0,temp_zi;int abcd=0;aa=(float)temp_h*256+(float)temp_LL; /把高八位和低八位和在一起 temp_zi=0.01*aa-40;/ if (temp_zi0) temp_zi=0; temp_zi=temp_zi*10; xianzhi_t=(int)temp_zi;/给显示值2、湿度计算湿度计算函数如下:void text_jishuan_humi() float aa=0,bb=0,humi_zi;int abcd=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-3 LCD1602显示屏程序流程图在显示模块的设计中主要用到了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;a16;a+)write_1602dat(tab1a);write_1602com(er+0);/湿度显示固定符号写入位置,从第0个位置后开始显示for(a=0;a16;a+)write_1602dat(tab2a);二、 液晶屏写入指令函数介绍写入指令函数的作用是发给显示器一个指令告诉显示器要显示数据,准备接收数据,并确定把数据显示在哪个位置。大体程序如下:write_1602com(uchar com)/*液晶写入指令函数* /在哪写rs=0;/数据/指令选择置为指令rw=0; /读写选择置为写P0=com;/送入数据delay(1);en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);en=0;/en由高变低,产生下降沿,液晶执行命令三、 液晶屏写入数据函数介绍写入数据函数的作用是告诉显示屏显示的具体数据是啥,传输数据给显示屏,程序如下:write_1602dat(uchar dat)/*液晶写入数据函数* /写啥rs=1;/数据/指令选择置为数据rw=0; /读写选择置为写P0=dat;/送入数据delay(1);en=1; /en置高电平,为制造下降沿做准备delay(1);en=0; /en由高变低,产生下降沿,液晶执行命令第三节 SHT11传感器模块设计SHT11数字温湿度传感器是这次设计选用的传感器,在启动和初始化传感器后,使用传感器测量温湿度,再将测量的数据分为高8位和低8为传入单片机,并进行温湿度值的补偿计算,流程图如图3-4。图3-4 SHT11传感器流程图传感器的模块设计有初始化函数、驱动函数、温湿度测量函数、温湿度处理函数、传输函数14。下面对其中几个函数进行简单介绍。一、 温湿度测量函数介绍温湿度测量函数的作用是测量温度或湿度,并返回校验值,程序如下:void text_a(unsigned char ml) unsigned int i; start_sht11(); /启动 write(ml);/写入测温度 if (ack=1) sht_rest() ;/复位 write(ml);/写入测温度 for (i=0;i55535;i+) if(DATA=0) break; read();/读温度二、 温湿度处理函数介绍温湿度处理函数主要是调用的前面所设计过的计算函数,对测量的温湿度值进行处理,主要程序如下:void text_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使用的程序文件。这些问题后来都在查阅资料,请教老师和同学的帮助下完成了。第四节 本章小结在本章中详细的介绍了系统的仿真过程,和仿真结果,变化初始条件检测系统的实时性与准确性。通过仿真系统达到了最初要求的设计功能,实现了温湿度的实时测量与数字化显示。也对遇到的问题做了反思与修改。结 论测量温湿度对人们的生产生活是十分重要的,在农业上的恒温恒湿蔬菜大棚,工业上的恒温恒湿,还有很多高精尖的实验室对温湿度的要求也是很严格的。随着经济的发展,人们生活水平的提高和电子技术的应用。已经不能像原来一样使用老式的人工读数温度、湿度计,这即浪费了时间也不方便电子自动化控制。在这个信息和计算机飞速发展的时代,要把传感器数字化,这样才能方便与电子系统联系,才能方便后续的自动化管理。而这次的毕业设计所做正是温湿度传感器,也是一个很贴近生活的题目。在这段做毕业设计的时间里所得到的最大感触就是“纸上得来终觉浅,绝知此事要躬行”。刚开始看看书认为还不算难,但是经过自己动手做之后才发现平时学习知识中的不足之处,看着都会的东西,自己一做就会被很多小问题卡住,以为没问题的程序结果运行就报错,在设计方面也会遇到些平时不注意的细节。经过这一段时间的努力,从确定题目,到查阅资料,学习基础理论知识,查看并了解芯片、传感器、显示器的使用方法和功能,学习编程并调试程序,这都使我的理论知识和动手能力有了很大的提升。也对单片机的功能和运用有了更深一步的掌握,同时,对一些外围的设备和电路,如:传感器、显示屏、时钟电路也有了一定的了解。最后也仿真成功,达到预期设定目的,完成了毕业设计所要求的仿真实现的要求。但我知道这毕竟不是实物,离实物的实现还是有一段距离,想要完成实物并且在生活生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子导航设备与通信技术考核试卷
- 皮革制品生产过程中的质量管理方法考核试卷
- 印刷设备操作培训体系的科技创新与应用案例考核试卷
- 森林公园生态旅游市场风险分析与应对策略考核试卷
- 机器人多自由度运动控制与协调考核试卷
- 煤化工生产调度与优化控制考核试卷
- 电子专业录音设备考核试卷
- 核果类果树种植园品种优化配置考核试卷
- 宠物口腔保健考核试卷
- 《享受生活》课件-1
- 2024年中国壁球馆市场调查研究报告
- 水杨酸产品原材料供应与需求分析
- 地下车库等环氧地坪漆工程投标文件(技术标)
- XXX小学“三会一课”活动记录
- 1《谏太宗十思疏》公开课一等奖创新教学设计统编版高中语文必修下册
- 2024年湖北省中考地理生物试卷(含答案)
- 21《庄子》二则 北冥有鱼 公开课一等奖创新教案
- JBT 5928-2014 工程机械 驱动桥 试验方法
- 小升初小学生简历模板
- 幼儿园中班绘本课件-《小金鱼逃走了》
- 2023-2024学年三年级下学期综合实践活动水果拼盘教案
评论
0/150
提交评论