已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计论文题 目 高精度温度、湿度检测器的设计与实现学 院 专 业 学生姓名 导师姓名 摘 要基于单片机的温湿度控制仪的设计摘要:本设计实现的是单片机温湿度检测系统,通过 LCD 显示所测量的温湿度。系统采用集温湿度传感器与 A/D 转换器为一体的 SHT11 芯片,通过单片机处理进行显示,其它模块包括了超限报警处理电路,对所测量的值进行显示和报警处理。本文介绍了基于 ATMEL 公司的AT89C51 系列单片机的温湿度实时测量与控制系统和显示系统的设计,包括介绍了硬件结构原理,并分析了相应的软件的设计及其要点,包括软件设计流程及其程序实现。系统结构简单、实用,提高了测量精度和效率。关键词:单片机、SHT11、LCD、温湿度控制;The Design of Temperature and Humidity ControlInstrument which is based on MCUAbstract: The design and implementation of measurement and control temperatureand humidity is MCU system, through which the temperature and humidity measurement LCD. System adopts set temperature and humidity sensor and A/D converter for SHT11 chip microcontroller processing, through that other modules including real-time clock/date produce circuit and the off-gauge alarm circuit, the value of measurement for real-time display and alarm. The paper introduces the ATMEL company based on AT89C51 single-chip series of temperature and humidity measurement and control system and real-time display system design, including the hardware structure and principle, and the corresponding software design, including the design of the software and its key process and procedure. System structure is simple, practical, and improve the measuring precision and efficiency.Key words: MCU, SHT11, LCD, DS1302, temperature and humidity control 目录1 整体设计 2仿真软件介 2.1 Protel简介2.2 Proteus简介错误!未定义书签。2.3 KEIL C51编译器简介错误!未定义书签。3 硬件设计部分错误!未定义书签。3.1 芯片介绍错误!未定义书签。3.1.1 单片机AT89C51错误!未定义书签。3.1.2 LCD显示LCD1604 3.1.3 湿温度传感器SHT11 3.2 模块功能介绍错误!未定义书签。3.2.1 复位电路部分3.2.2 传感器电路部分3.2.3 显示电路部分3.3.4 超限处理电路部分3.4 整体电路图错误!未定义书签。4 软件设计部分错误!未定义书签。4.1 主程序框图错误!未定义书签。4.2 湿温度采集及处理框图错误!未定义书签。4.3 LCD显示框图错误!未定义书签。 4.4 主函数解析5 仿真与调试错误!未定义书签。6 总结错误!未定义书签。参考文献错误!未定义书签。附录主程序错误!未定义书签。附录原理图错误!未定义书签。PCB图错误!未定义书签。引言目前我国农业正处于从传统农业向以优质、高产、高效益为目标的现代农业转化的新阶段。环境控制工程作为农业生物速生、优质、高产的手段,是农业现代化的重要标志。温室大棚中的环境由多个因子组成,如温度、光照、湿度及二氧化碳浓度等。时下,我国温室环境控制目前仍靠人工经验来管理,严重影响了农业生产的效益,阻碍了农业生产的发展,因此,采用先进的人工智能技术,科学、合理地控制影响作物的环境因子,通过计算机控制设备进行环境控制,以便给作物生长创造一个最佳的环境条件,做到既提高产品的质量、产量、经济价值和社会效益,同时尽量降低生产成本,这对温室环境施行自动检测和控制是非常必要的。温室设施的关键技术是环境控制,主要是温湿度的控制,其目的是提高控制及作业精度。温湿度控制仪的发展相当迅速,近几十年内,由于电子行业的迅速发展和集成电路和高集成电路的产生,控制仪走向微型化、多功能化。温湿度传感器在工农业生产、气象、环保、医学等领域得到越来越广泛的应用。温湿度控制仪目前普遍采用的几种方案:方案一:采用单总线的 DS1820 的温度传感器和 HS110X 相对湿度传感器组成的控制仪。方案二:采用集温湿度传感器于一体的 SHT11 芯片为主要芯片的控制仪。由于传统的模拟式湿度传感器(方案一)一般不仅要设计信号调理电路,还要经过复杂的校准和标定过程,其测量精度难以保证。而SHT11是瑞士Sensiri-on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。所以本设计采用的是方案二。1.整体设计本设计核心部件为 AT89C51,信号采集及处理部分由 SHT11 构成,进入单片机后经处理后通过 LCD1604 显示温湿度,信号显示采用的液晶屏为 5X7 点阵,一行可显示 16 字,四行。其他组成部分为实时时钟发生电路,产生同现在相同的时间和具体日期,通过 LCD1604 液晶模块显示。在软件设计部分有对测量的温湿度进行上下值的设定,当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣。硬件中包括一个开关,为复位开关。开机后,所有器件初始化,DS1302 产生实时时间和日期,温湿度传感器 SHT11 开始进行温湿度测量和计算,最后通过两个 LCD 液晶显示器显示结果。在测量结果中有超过设定的温湿度上下限的,通过超限模块作出反应。其他是一些附件,比如复位、晶振电路。整体电路框图如下:AT89C51复位电路晶振电路SHT11LCD1602信号显示电源超限模块 图1 整体框图2.仿真软件介绍本设计用到了 proteus 和 keil c51 两种软件,两者能完美的结合在一起,实现虚拟的实物效果,为以后的实物焊接提供了保障。2.1 Proteus 简介Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件,Proteus 软件有十多年的历史,在全球广泛使用,除了其具有和其它 EDA 工具一样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。Proteus 组合了高级原理布图、混合模式 SPICE 仿真,PCB 设计以及自动布线来实现一个完整的电子设计系统。此系统受益于 15 年来的持续开发,被电子世界在其对 PCB 设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了革命性的 VSM 技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如 LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。其功能模块:个易用而又功能强大的 ISIS 原理布图工具;PROSPICE 混合模型 SPICE 仿真; ARES PCB 设计。PROSPICE 仿真器的一个扩展 PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs 甚至 LCD 显示 CPU 模型。 支持许多通用的微控制器,如 PIC,AVR,HC11 以及 8051. 最新支持 ARM 交互的装置模型包括: LED 和 LCD 显示,RS232 终端,通用键盘,I2C,SPI器件 强大的调试工具,包括寄存器和存储器,断点和单步模式 IAR C-SPY 和 Keil uVision2 等开发工具的源层调试 应用特殊模型的 DLL 界面-提供有关元件库的全部文件最新版支持非常丰富仿真元件共 7000 多种,还有很多第三方模型。如 MMC卡,以太网卡,ATA 硬盘,麦克风,等等。2.2 KEIL C51 编译器简介1.8051 开发工具KEIL C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强,使你可以更加贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到 uVision2 的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。2.uVision2 集成开发环境1)项目管理工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的 uVision2 工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。uVision2 包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra datapointer)或者加速器(math accelerator)的特性。uVision2 可以为片外存储器产生必要的连接选项:确定起始地址和规模。2)集成功能uVision2 的强大功能有助于用户按期完工。A.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。B.文件寻找功能:在特定文件中执行全局文件搜索。C.工具菜单:允许在 V2 集成开发环境下启动用户功能。D.可配置 SVCS 接口:提供对版本控制系统的入口。E.PCLINT 接口:对应用程序代码进行深层语法分析。F.Infineon 的 EasyCase 接口:集成块集代码产生。G.Infineon 的 DAVE 功能:协助用户的 CPU 和外部程序。DAVE 工程可被直接输入 uVision2。3.第三部分编辑器和调试器(1)源代码编辑器uVision2 编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对 C 源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。(2)断点uVision2 允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动 V2 调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。(3)调试函数语言uVision2 中,你可以编写或使用类似 C 的数语言进行调试。A.内部函数:如 printf, memset, rand 及其它功能的函数。B.信号函数:模拟产生 CPU 的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。C.用户函数:扩展指令范围,合并重复动作。(4)变量和存储器用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:A.当前函数的局部变量B.用户在两个不同 watch 窗口页面上的自定义变量C.堆栈调用(call stack)页面上的调用记录(树)(call tree)D.不同格式的四个存储区4.C51 编译器KEIL C51 编译器在遵循 ANSI 标准的同时,为 8051 微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。a.存储器和特殊功能寄存器的存取C51 编译器可以实现对 8051 系列所有资源的操作。 的存取由 sfr 和 sbitSFR两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达 32 个,这就允许用户在原有 64K ROM 的 8015基础上扩展程序。在 V2 的编译器和许多高性能仿真器中,可以支持应用程序的调试。b.中断功能C51 允许用户使用 C 语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使 C 语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。c.灵活的指针C51 提供了灵活高效的指针。通用指针用 3 个字节来存储存储器类型及目标地址,可以在 8051 的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需 12 字节,因此,指针存取非常迅速。3.硬件设计部分3.1 芯片介绍3.1.1 单片机AT89C5189C51是一种带4k字节可编程可擦除只读存储器( FPEROMFalshProgrammable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。89C2051是一种带 2K 字节可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微控制器,89C2051 是它的一种精简版本。89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1A主要特性:与 MCS-51 兼容 32 可编程 I/O 线4K 字节可编程闪烁存储器 两个 16 位定时器/计数器寿命:1000 写/擦循环 5 个中断源数据保留时间:10 年 可编程串行通道全静态工作:0Hz-24Hz 低功耗的闲置和掉电模式三级程序存储器锁定 片内振荡器和时钟电路128*8 位内部 RAMB管脚说明: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 后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3口管脚是8个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为 AT89C51 的一些特殊功能口,如下表所示:表 3.1 P3 口管脚备选功能P3.0 RXD串行输入口P3.4 T0记时器0 外部输入P3.1 TXD串行输出口P3.5 T1记时器 1 外部输入P3.2 /INT0外部中断 0P3.6 /WR外部数据存储器写选通P3.3 /INT1外部中断 1P3.7 /RD外部数据存储器读选通P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。C振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。D芯片擦除:整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器、串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。E结构特点: 8 位 CPU; 片内振荡器和时钟电路; 32 根 I/O 线; 外部存贮器寻址范围 ROM、RAM64K; 2 个 16 位的定时器/计数器; 5 个中断源,两个中断优先级; 全双工串行口; 布尔处理器;3.1.2 LCD 显示-LCD1604A、LCD1604 原理1604 采用标准的 16 脚接口,其中:第 1 脚:VSS 为地电源第 2 脚:VDD 接 5V 正电源第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 1516 脚:空脚。1604 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如图 3.1 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”图 3.1 字符发生存储器31604 液晶模块内部的控制器共有 11 条控制指令,如图 3.2 所示,图 3.2 1604 液晶模块内部的控制器3它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0 为低电平)指令 1:清显示,指令码 01H,光标复位到地址 00H 位置指令 2:光标复位,光标返回到地址 00H指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标指令 6:功能设置命令 DL:低电平时为 4 位总线,高电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符指令 7:字符发生器 RAM 地址设置指令 8:DDRAM 地址设置指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令 10:写数据指令 11:读数据B、LCD1604 初始化延时 15mS 写指令 38H(不检测忙信号)、延时 5mS 写指令 38H(不检测忙信号)、延时 5mS 写指令 38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令 38H:显示模式设置写指令 08H:显示关闭写指令 01H:显示清屏写指令 06H:显示光标移动设置写指令 0CH:显示开及光标设置 3.1.4 温湿度传感器 SHT11a.SHT11 简介SHT11 是瑞士Scnsirion 公司推出的一款数字温湿度传感器芯片。温湿度传感器SHT11集温度传感器和湿度传感器于一体,因此采用SHT11 进行温湿度实时监测的系统具有精度高、成本低、体积小、接口简单等优点;另外SHT11 芯片内部集成了14位A/D 转换器,且采用数字信号输出,因此抗干扰能力也比同类芯片高。该芯片在温湿度监测、自动控制等领域均已得到广泛应用。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。共主要特点如下:高度集成,将温度感测、湿度感测、信号变换、A/D 转换和加热器等功能集成到一个芯片上;提供二线数字串行接口SCK和DATA,接口简单,支持CRC 传输校验,传输可靠性高;测量精度可编程调节,内置A/D 转换器(分辨率为812位,可以通过对芯片内部寄存器编程选择);测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的露点计算功能;封装尺寸超小(7.62 mm5.08mm2.5 mm),测量和通信结束后,自动转入低功耗模式;高可靠性,采用CMOSens工艺,测量时可将感测头完全浸于水中。b.SHT11 的引脚功能SHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,接口非常简单,引脚名称及排列顺序如图3.4 所示。图 3.4 SHT11 引脚图各引脚的功能如下:脚1和4-信号地和电源,其工作电压范围是2.45.5 V;脚2和脚3-二线串行数字接口,其中DA-TA为数据线,SCK为时钟线;脚58-未连接。c.SHT11的内部结构和工作原理温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图3.5所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D 转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11 的温度升高5左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(95RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。图 3.5 SHT11 内部结构图微处理器是通过二线串行数字接口与SHT11进行通信的。通信协议与通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。微处理器对SHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表3.2所列。表3.2命令代码 命令代码含 义00011测量温度00101测量湿度00111读内部状态寄存器00110写内部状态寄存器11110复位命令,使内部状态寄存器恢复默认值。下一次命令前至少等待 11ms其他保留d.SHT11 应用设计微处理器采用二线串行数字接口和温湿度传感器芯片SHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O口模拟通信协议。硬件设计SHT11通过二线数字串行接口来访问,所以硬件接口电路非常简单。需要注意的地方是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求;当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V 时,SCK最高频率则为1MHz。硬件连接如图3.6 所示。图 3.6 微处理器和 SHT11 之间的硬件连接图(1)软件设计微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。该二线串行通信协议和I2C协议是不兼容的。在程序开始,微处理器需要用一组“启动传输”时序表示数据传输的启动,如图3.7所示。当SCK时钟为高电平时,DATA翻转为低电平;紧接着SCK变为低电平,随后又变为高电平;在SCK时钟为高电平时,DATA再次翻转为高电平。图 3.7数据传输启动时序SHT11湿度测试时序如图3.8所示。其中,阴影部分为SHT11控制总线。主机发出启动命令,随后发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位;发送完该命令码,将DATA总线设为输入状态等待SHT11的响应;SHT11接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为从机的ACK;在第9个时钟下降沿之后,从机释放DATA(恢复高电平)总线;释放总线后,从机开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;得知湿度测量已经结束,给出SCK时钟信号;从机在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,主机将DATA总线拉低作为ACK信号。然后释放总线DATA;在随后8个SCK 周期下降沿,从机发出低字节数据;接下来的SCK下降沿,主机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿从机发出CRC校验数据,主机不予应答(NACK)则表示测量结束。S地址和命令ACK测量数据(高)ACK数据(低)ACKCRCMACK图 3.8 SHT11 湿度测试时序图由于微处理器通过二线串行数字接口访问湿度传感器SHT11,而访问协议是芯片生产商定义的,所以需要用通用I/O口模拟该通信协议。我们选用Atmel公司的微处理器ATmega128。通过对I/O口寄存器的编程,该处理器的I/O口可以根据需要设置成输入、输出、高阻等状态。这为模拟该通信协议提供了条件。在软件实现过程中,通过宏定义来实现I/O口状态的改变。#define set_data_0() DDRB|=(1PB5);PORTB&=(1PB5) /DATA 输出 0#define set_data_1() DDRB|=(1PB5);PORTB|=(1PB5) /DATA 输出 1#define release_data_1() DDRB&=(1PB5)/释放总线,总 DATA 设为输入状态,因为外接上拉电阻,DATA总线被上拉为高电平#define set_sck_output() DDRB|=(1PB4) /设置 SCK 为输出#define set_sck_1() PORTB|=(1PB4) /SCK 输出高电平#define set_sck_0() PORTB&=(1PB4) /SCK 输出为低电平通过以上宏定义,可以实现SCK和DATA总线的各种输入和输出状态。为了模拟该二线串行数字协议,还需要一个延时函数。WINAVR 库函数提供了一个延时函_delay_loop_2(unsigned char s),该延时函数运行用4个时钟周期,所以自定义延时1s函数可以定义如下:#define CPU_CRYSTAL7.3728 /系统晶振(频率单位为 MHz)void delay_us(unsigned char us)_delay_loop_2(unsigned int)(us)*CPU_CRYSTAL/4);/延时 1us 程序基于以上宏定义和延时函数,可以方便地使SCK和DATA总线输出持续一定时间的高电平或低电平,从而可以模拟图3.8 所示的温湿度传感器SHT11的读写协议。(2)湿度线性补偿和温度补偿SHT11可通过DATA数据总线直接输出数字量湿度值。该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值:RH linear = = C1 + C2 SORH + C3 SORH式中:RHlinear为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3 为线性补偿系数,取值如表3.3所列。由于温度对湿度的影响十分明显,而实际温度和测试参考温度25有所不同,所以对线性补偿后的湿度值进行温度补偿很有必要。补偿公式如下:RH true = (T - 25) (t1 + t2 SORH ) + RH linear式中:RHtrue为经过线性补偿和温度补偿后的湿度值,T为测试湿度值时的温度(),t1和t2为温度补偿系数,取值如表3.4所列。表3.3湿度线性补偿系数表 3.4 湿度值温度补偿系数 (3)温度值输出由于SHT11是采用PTAT能隙材料制成的温度敏感元件,因而具有很好的线性输出。实际温度值可由下式算得:Temperature=d1+d2SOT式中:d1和d2为特定系数,d1的取值与SHT11工作电压有关,d2的取值则与SHT11内部A/D转换器采用的分辨率有关,其对应关系分别如表3.5和表3.6所列。表3.5 d1与工作电压的对应关系表 3.6 d2 与分辨率的对应关系 (4)露点计算露点是一个特殊的温度值,是空气保持某一定湿度必须达到的最低温度。当空气的温度低于露点时,空气容纳不了过多的水分,这些水分会变成雾、露水或霜。露点可以根据当前相对湿度值和温度值计算得出,具体的计算公式如下:LogEW=0.66077+7.5T(237.3+T)+log10(SORH)-2Dp=(0.66077-logEW)237.3)(logEW-8.16077)式中:T为当前温度值,SORH为相对湿度值,Dp为露点。3.2 模块功能介绍3.2.1 复位电路部分这种复位电路的工作原理是:单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V 的电通过电阻给电容进行充电,电容两端的电会由 0V 慢慢的升到 4V 左右(此时间很短一般小于 0.3 秒),RC 构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C51将复位。正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST 端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(这是单片机的上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到 0V 了,于是又进行了一次复位工作(这是手动复位原理)。图 3.9 手动复位及晶振电路3.2.2 传感器电路部分此模块是整个电路设计的信号采集及初步处理的模块,由温湿度传感器芯片SHT11 构成,主要的功能结构在前面的芯片介绍中已有,这里不重新介绍。图 3.10 SHT11 传感器电路3.2.4 显示电路部分此模块是由 LCD1604 芯片组成温湿度显示的电路部分,部分。LCD1604 是一个四行每行 16 字的液晶显示屏,D0-D7 接 P0 口,RS、RW、E接 P3.5、P3.6、P3.7 起控制作用。图 3.12 LCD1604 显示及其连接电路3.2.5 超限处理电路部分此部分电路是由 5 个发光二极管和一个蜂鸣报警器构成,分别是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密码系统工程师密钥管理方案
- 未来五年糜子行业直播电商战略分析研究报告
- 未来五年合金弹簧钢丝行业跨境出海战略分析研究报告
- 影视制作流程相关主题建议
- 未来五年生态农业行业跨境出海战略分析研究报告
- 心理健康与职业规划的探讨
- 2023年淄博市直遴选考试真题汇编含答案解析(夺冠)
- 2023年大连市选调公务员笔试真题汇编附答案解析(夺冠)
- 2025年云南康旅职业培训学校有限公司招聘(1人)考试模拟卷含答案解析(夺冠)
- 2023年厦门市税务系统遴选考试真题汇编含答案解析(夺冠)
- 大型工厂门禁管理制度
- DB31/T 1341-2021商务办公建筑合理用能指南
- 2024秋新人教版数学一年级上册教学课件 第六单元 复习与关联1. 数与运算
- GB/T 10250-2025船舶电气与电子设备电磁兼容性金属船体船舶
- 涂装质量培训课件
- 肠梗阻病人护理教学查房
- 数据库应用技术-第三次形考作业(第10章~第11章)-国开-参考资料
- 市政道路绿化养护方案
- 湖南省高职单招《英语》备考重点试题库(含历年真题)
- 配网培训课件
- 2025年银联商务股份有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论