多功能温湿度计设计论文_第1页
多功能温湿度计设计论文_第2页
多功能温湿度计设计论文_第3页
多功能温湿度计设计论文_第4页
多功能温湿度计设计论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . 1 / 47多功能数字温湿度计设计多功能数字温湿度计设计 摘要摘要 温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。因此研究温湿度的测量方法具有重要的意义。本论文讲述了一种以单片机 AT89C52 为主要控制器件,以 DHT22 为数字温湿度传感器的新型数字温湿度计,具有时间、温湿度显示,并且可以自行设置温度预警值,当温度超出预警值时报警,存储温湿度的功能。 关键词关键词 温度;湿度;DHT22;时间 . 2 / 47Multifunct

2、ionMultifunction digitaldigital hygrometerhygrometer designdesignAbstractAbstract Temperature and humidity are the two most basic environmental parameters, peoples life is closely related to temperature and humidity. In industrial and agricultural production, meteorology, environmental protection, n

3、ational defense, scientific research departments, often need to measure temperature and humidity to the environment. Accurate measurement of temperature and humidity in biological pharmaceutical, food processing, paper making industries is of vital importance. So the temperature and humidity measure

4、ment method has the vital significance.This paper tells the story of a single chip microcomputer AT89C52 as the main control device, a new type of digital temperature and humidity for DHT22 digital temperature and humidity meter, time, temperature and humidity display, and was able to set temperatur

5、e warning value, when temperature exceeds the warning alarm, the function of storage temperature and humidity. KeywordKeywordTemperature; humidity; DHT22; time . 3 / 47目目 录录1.1.温湿度计发展史温湿度计发展史 1 11.11.1 温度计的发展史温度计的发展史 1 11.21.2 湿度计的发展史湿度计的发展史 2 22.2. 设计任务分析与方案论证设计任务分析与方案论证 3 32.12.1 设计数字温湿度计的需求分析设计数字

6、温湿度计的需求分析 3 32.22.2 设计任务与要求设计任务与要求 3 32.32.3 设计总体方案与方案论证设计总体方案与方案论证 3 32.42.4 器件的选择器件的选择 4 42.4.1 主控制器芯片 42.4.2 温湿度传感器 72.4.3 时钟芯片 82.4.4 存储芯片 82.4.5 LCD1286492.52.5 温湿度测量的方法与分析温湿度测量的方法与分析 11113.3. 硬件电路的设计硬件电路的设计 12123.13.1 总体结构框图总体结构框图 12123.23.2 主控制电路和测温湿电路主控制电路和测温湿电路 12123.33.3 存储模块与时钟模块电路存储模块与时钟

7、模块电路 13133.43.4 显示模块电路显示模块电路 14144.4. 软件设计与分析软件设计与分析 15154.14.1 程序流程图程序流程图 15154.24.2 DHT22DHT22 工作原理工作原理 16164.34.3 DS1302DS1302 工作原理工作原理 22224.44.4 AT24C02AT24C02 工作原理工作原理 2525 . 4 / 474.54.5 LCD12864LCD12864 的工作原理的工作原理 31315.5. 结论结论 3434参参 考考 文文 献献 3535致致 3636附录附录 A A 实物图实物图 3737附录附录 B B 元件清单元件清单

8、 3939 . 1 / 471.1.温湿度计发展史温湿度计发展史1.11.1 温度计的发展史温度计的发展史世界上记录最热的温度是在利比亚,时间是 1922 年 9 月 13 日,温度是摄氏 58 度,之后 1953 年在墨西哥记录到 60 度。美国记录的最高温度是在加州的死亡谷,1913 年 7 月 10 日,温度是 56.7 度,曾经有人描述过在这个温度下的感受,人可以感受到死亡的威胁,鸟热的从天上掉下来。古希腊人早就知道空气在受热的时候会膨胀,在大约 2000 年前,亚历山大的英雄(Hero of Alexandria) ,这其实是一希腊人,生活在埃与的亚历山大,名字叫Hero” ,他发明

9、了一个类似蒸汽机的东西,用的就是热气膨胀的原理,但这个还不是温度计。直到 1592 年,伽利略发明了一个类似温度计的东西,这个也可以测定气压,1612 年,伽利略的朋友 Santorio Santorio (1561-1636) ,(并不是我把名字打重了,他的名字和姓氏就是一样的,)他把伽利略的温度计改造了一下,在一个封闭的系统里,随着温度的变化,空气收缩膨胀,彩色的液体高度也随着变化,他用这个测定人体的温度变化,算是世界上第一个体温表。直到 1713 年,Daniel Fahrenheit(1686-1736)在温度计上放上了刻度,首先把冰融化的温度和健康人体的温度两个刻度标上,但他很快意识

10、到,冰融化的温度是不变的,但水结冰的温度则是变化的,他把冰,水和盐混在一起,这个温度作为 0 度,而冰融化的温度是 32 度,人体的温度是 96 度。1835 年,人们发现人体的正常温度是 98.6 度(就是摄氏 37 度) 。Fahrenheit 有的时候用酒精作为表示温度的液体,但后来他选择了水银,以后这个温度计的上限订到了水沸腾的点,212 度。这个就是英国美国使用的华氏度。1742 年,瑞典的天文学家 Anders Celsius(1701-1744)把水结冰的点定位 0 度,水沸腾的点定位 100 度,之后 Carolus Linnaeus(1707-1778)把这个顺序倒了过来,就

11、是现在世界上使用最广泛的摄氏度。从摄氏度的国家来到使用华氏度的国家非常不习惯,要经常把华氏度转换成摄氏度,才能明白天气预报是什么意思,很多年后才习惯华氏度,具体转换 . 2 / 47是 F=9/5C+32,C=5/9(F-32),心算还是比较困难的。1848 年 Kelvin 引入一个绝对 0 度的概念,就是摄氏零下 273.5 度,然后摄氏 0 度就是 273.15K, 100 摄氏度就是 373.15K。1.21.2 湿度计的发展史湿度计的发展史湿度计是测量空气含水分多少的仪器。 史记天官书中即有测湿的记载。我国汉朝初年就已出现湿度计,它是利用天平来测量空气干燥或潮湿的。天平湿度计的使用方

12、法,是把两个重量相等而吸湿性不同的物体,例如灰和铁,分别挂在天平两端。当空气湿度发生变化时,由于两个物体吸入的分水不同,重量也就起了变化,于是天平发生偏差,从而指示出空气潮湿的程度。这就是湿度计的由来。空气的湿度可通俗地理解为空气的潮湿程度它有绝对湿度和相对湿度之分绝对湿度:空气中水蒸气的压强 p 叫做空气的绝对湿度空气的湿度可以用空气中所含水蒸汽的密度,即单位体积的空气中所含水蒸汽的质量来表示由于直接测量空气中水蒸气的密度比较困难,而水蒸气的压强随水蒸气密度的增大而增大,所以通常用空气中水蒸气的压强来表示空气的湿度,这就是空气的绝对湿度相对湿度:(1)概念的引入:为了表示空气中水蒸气离饱和状

13、态的远近而引入相对湿度的概念(2)相对湿度 B :某温度时空气的绝对湿度 p 跟同一温度下水的饱和汽压 ps 的百分比叫做这时空气的相对湿度不同温度下水的饱和汽压可以查表得到在绝对湿度 p 不变而降低温度时,由于水的饱和汽压减小而使空气的相对湿度增大。居室的相对湿度以 60 % 70 %较适宜。 . 3 / 472.2. 设计任务分析与方案论证设计任务分析与方案论证2.12.1 设计数字温湿度计的设计数字温湿度计的需求分析需求分析温度与湿度与人们的生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量与控制。准确测量温湿度在生物制药、食品加工、造纸等行业更是

14、至关重要的。传统的温度计是用水银柱来显示的,虽然结构简单、价格便宜,但是它的精确度不高,不易读数。传统湿度计采用干湿球显示法,不仅复杂而且测量精度不高。而采用单片机对温湿度进行测量,不仅具有控制方便,简单和灵活等优点,而且可以提高温湿度的测量精度。用 12864 液晶显示屏来显示温湿度的数值和时间,看起来更加直观。测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技术的进步和人们生活的需要出现了温湿度传感器。温度传感器的发展经历了3 个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向

15、发展。湿度传感器也是经历了这样一个阶段逐渐走向数字智能化。总之,无论在日常生活中还是在工业、农业方面都离不开对周围环境进行温湿度的测量。因此,研究温湿度的测量具有非常重要的意义。2.22.2 设计任务与要求设计任务与要求设计一个以单片机为核心的多功能温湿度测量系统,可实现的功能为:(1)有日期,时间等显示功能;(2)用户还可自行设置合适的温度;(3)超出设置的合适温度时,蜂鸣器会提示;(4)可存储并查看温湿度。 . 4 / 472.32.3 设计总体方案与方案论证设计总体方案与方案论证按照系统设计功能的要求,确定系统由 7 个模块组成:主控制器模块,温湿度传感模块,键盘输入模块,时钟模块,存储

16、模块,LCD 显示电路与蜂鸣器模块。主控制器的功能有单片机来完成,主要负责处理由温湿度传感器、时钟芯片传递来的数据,并把处理好的数据送向显示模块,以与把数据发给存储芯片和接收存储芯片发来的数据。温湿传感器主要用来采集周围环境参数,并把所采集来的参数送往主控制器。按键电路主要用来完成时间的调整,设定温湿度适宜围,存储和查询温湿度。这里需要 6 个按键,两个用来调整时间,两个用来设定温湿度适宜围,还有两个用来存储和查询温湿度。蜂鸣器模块是由一个蜂鸣器组成,用来判断周围环境的温度是否超出设定值了,当温度超出设置的预警值时,蜂鸣器会发出声响。2.42.4 器件的选择器件的选择2.4.12.4.1主控制

17、器芯片主控制器芯片AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片置通用 8 位中央处理器和 Flash 存储单元,AT89C52 单片机在电子行业中有着广泛的应用。AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规方

18、法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89C52 为 8 位通用微处理器,采用工业标准的 C51 核,在部功能与管脚排布上与通用的 8xc52 一样,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 部寄存器、数据 RAM 与外部接口等功能部件的初始化,会聚调整控 . 5 / 47制,会聚测试图控制,红外遥控信号 IR 的接收解码与与主板 CPU 通信等。主要管脚有:XTAL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为

19、复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的SDAS(18 脚)和 SCLS(19 脚)端口,12 脚、27 脚与 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测与会聚调整状态进入的控制功能。P0:P0 口是一组 8 位漏极开

20、路型双向 I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1:P1 口 是一个带部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因

21、为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1 接收低 8 位地址,其第二功能如表 2.1 所示。表 2.1 P1.0 和 P1.1 的第二功能引脚号功能特性P1.0T2,时钟输出P1.1T2EX(定时/计数器)P2:P2 口是一个带有部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可 . 6 / 47驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1”,通过部的

22、上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地数据存储器(例如执行 MOVX DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行MOVXRI 指令)时,P2 口输出 P2 锁存器的容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。P3:P3 口是一组带有部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被部上拉电阻拉高并可作为输入端口

23、。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 2.2所示。表 2.2 P3 的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断 0)INTOP3.3(外部中断 1)INT1P3.4T0(定时/计数器 0)P3.5T1(定时/计数器 1)P3.6(外部数据存储器写选通)WRP3.7(外部数据存储器读选通)RDP3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。AT89C52 的电路仿真图如图 2.1。 . 7 / 47图 2.1 AT89

24、C52 仿真图2.4.22.4.2温湿度传感器温湿度传感器温湿度传感器采用 DHT22,DHT22 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT22 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP存中,传感器部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。

25、超小的体积、极低的功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。其引脚功能如图 2.2 所示。 . 8 / 47图 2.2 DHT22 的引脚2.4.32.4.3时钟芯片时钟芯片时钟芯片采用 DS1302,DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与 CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1

26、302 部有一个 318 的用于临时性存放数据的 RAM 寄存器。DS1302是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源 /后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。其引脚如图 2.3所示。图 2.3 DS1302 的引脚图2.4.42.4.4存储芯片存储芯片本次设计采用的 是 AT24C02 存储模块,AT24C02 是一个 2K 位串行 CMOS E2PROM, 部含有 256 个 8 位字节,CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗。 AT24C02 有一个 8 字节页写缓冲器。该器件通过 IIC总线接口进行操作,

27、有一个专门的写保护功能。AT24C02 支持 I2C,总线数据传送协议 I2C,总线协议规定任何将数据传送引脚名称描述VDD电源(3.3V5.5V)SDA串行数据,双向口NC空脚GND地 . 9 / 47到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于 A0、A1 和 A2 可以组成 000111 八种情况,即通过器件地址输入端A0、A1 和 A2 可以实现将最多 8 个 AT24C02 器件连接到总线上,通过进行不同的配置进行选择器件。其

28、 封装与引脚如图 2.4 所示。图 2.4AT24C02 的三种封装图与引脚图2.4.52.4.5LCD12864LCD12864带中文字库的 128X64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 置 8192 个 16*16 点汉字,和 128 个 16*8 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行 1616 点阵的汉字 . 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型

29、的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于一样点阵的图形液晶模块。主要技术参数和显示特性 :电源:VDD 3.3V+5V(置升压电路,无需负压 );显示容:128 列 64 行;显示颜色:黄绿屏,蓝屏;显示角度: 6:00 钟直视;LCD 类型:STN;与 MCU 接口:8 位并口或串行;配置 LED 背光;多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。12864 的引脚功能如表 2.3 所示:表 2.3 LCD12864 的引脚功能管脚管脚号号管脚名称管脚名称电平电平管脚功能描述管脚功能描述1VSS0V电源地2VCC3.0+5V电源

30、正 . 10 / 473V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示 DB7DB0 为显示数据RS=“L”,表示 DB7DB0 为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到 DB7DB0R/W=“L”,E=“HL”, DB7DB0 的数据被写到 IR 或 DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8 位或 4 位并口方式, L:串口方

31、式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD 驱动电压输出端19AVDD背光源正端( +5V)20KVSS背光源负端2.52.5 温湿度测量的方法与分析温湿度测量的方法与分析DHT22 是一个单总线接口的数字温湿度传感器。它是四针单排封装,一个接电源,一个接地线, DATA 接口直接和单片机的 P27 相连,另外一个是空引脚,不接线。连接线长度短于 20 米时用 5K 上拉电阻。单片机通过P27 向 DHT22 发送命令,DHT22 接收到命令后做出相应的应答。由于DHT22 部包含一个 14 位 A/D 转换器,所以单片机接收到就是数字信号,只 . 11 /

32、47需要做相应的处理就能得到所需要的数据。这里减少了很多外部的电路的连接,用起来比较方便。3.3. 硬件电路的设计硬件电路的设计3.13.1 总体结构框图总体结构框图键盘输入模块温湿度传感模块(DS18B20)主控制器时钟模块LCD 显示模块蜂鸣器模块存储模块 . 12 / 47图 3.1 总结构框图3.23.2 主控制电路和测温湿电路主控制电路和测温湿电路本次硬件设计的核心就是 AT89C52,其他部位的硬件都是围绕着它来设计的。数字温湿度传感器 DHT22 的 DATA 口与 AT89C52 的 P27 口相连。按键电路就是 7 个按键分别与 AT89C52 的 P32,P33,P23,P

33、24,P25,P00 和 P01 口相连。当有按键按下时单片机接收到有效的信号,S1 键和 S2 键用来调整温度报警围,S1 键是增加温度值,S2 键是减少温度值;S3,S4 和 S5 键是用来调整时间和日期的,S3 键用来移动设置的光标,S4 键是增加键,S5 键是减少键;S6和 S7 键是用来保存和查询温湿度的,S6 键用来查询温湿度和退出界面,S7 键用来保存温湿度和日期。报警电路就是蜂鸣器与单片机的 P26 口相连,当温度超过设置的预警值时,蜂鸣器就会发出警报。其电路接线图如图 3.2 所示。图 3.2DHT22 电路接线图3.33.3 存储模块与时钟模块电路存储模块与时钟模块电路本次

34、设计使用的存储模块是以 AT24C02 存储芯片为核心的,该模块有四个引脚,其中的 VCC 和 GND 引脚分别接电源和接地,SDA 引脚与单片机的 P36 口连接,SCL 引脚与单片机的 P37 口连接,存储芯片主要是用来存储想要保存的温湿度。时钟模块是以 DS1302 芯片为核心的,该模块有五个引脚,其中 VCC 引 . 13 / 47脚悬空,GND 引脚接地,CLK 引脚与单片机的 P20 口连接,DAT 引脚与单片机的 P21 口连接,RST 引脚与单片机的 P22 口连接,时钟芯片主要是用来提供秒分时日日期月年的信息,并具有掉电存储的功能。DS1302 的电路接线图如图 3.3 所示

35、:图 3.3DS1302 的电路接线图AT24C02 的电路接线图如图 3.4 所示:图 3.4AT24C02 电路图3.43.4 显示模块电路显示模块电路本次设计采用的显示屏是 LCD12864,LCD12864 一共有 20 个引脚,其中 RS引脚与单片机的 P03 口连接,R/W 引脚与 P04 口连接,E 引脚与 P05 口连接,PSB 引脚与 P06 口连接,D0D7 分别与 P10P17 连接,其他的电源口、接地口和空引脚分别对应相应的引脚或悬空。LCD 显示的时候分为四行,第一行显示日期,第二行显示时间,第三行显示湿度,第四行显示温度和预警值。12864的接线电路图如图 3.5

36、所示。图 3.5 12864 接线电路图 . 14 / 474.4. 软件设计与分析软件设计与分析4.14.1 程序流程图程序流程图 YNN Y图 4.1 程序流程图开始清屏与初始化读 DS1302、DHT22外部中断扫描键盘显示历史记录是否按下调整时间、温度上限显示结束 . 15 / 474.24.2 DHT22DHT22 工作原理工作原理DHT22 为单总线接口,DATA 用于微处理器与 DHT22 之间的通讯和同步,采用单总线数据格式,一次通讯时间 5ms 左右,具体格式在下面说明,当前数据传输为 40bit,高位先出。如下:数据格式: 40bit 数据=16bit 湿度数据+16bit

37、 温度数据+8bit 校验和例子: 接收 40bit 数据如下:0000 0010 1000 1100 0000 0001 0101 1111 1110 1110湿度数据温度数据校验和湿度高 8 位+湿度低 8 位+温度高 8 位+温度低 8 位=的末 8 位=校验和例如:0000 0010+1000 1100+0000 0001+0101 1111=1110 1110湿度=65.2RH 温度=35.1当温度低于 0时温度数据的最高位置 1。例如:-10.1表示为 1000 0000 0110 0101用户主机(MCU)发送一次开始信号后,DHT22 从低功耗模式转换到高速模式,等待主机开始信

38、号结束后,DHT22 发送响应信号,送出 40bit 的数据,并触发一次信号采集。如图 4.2 所示:图 4.2 接收开始信号空闲时总线为高电平,通讯开始时主机(MCU)拉低总线 500us 后释放总线,延时 20-40us 后主机开始检测从机(DHT22)的响应信号。从机的响应信号是一个 80us 左右的低电平,随后从机在拉高总线 80us 左右代表即将进入数据传送。如图 4.3 所示: . 16 / 47图 4.3 进入数据传送高电平后就是数据位,每 1bit 数据都是由一个低电平时隙和一个高电平组成。低电平时隙就是一个 50us 左右的低电平,它代表数据位的起始,其后的高电平的长度决定数

39、据位所代表的数值,较长的高电平代表 1,较短的高电平代表 0。共 40bit 数据,当最后一 Bit 数据传送完毕后,从机将再次拉低总线50us 左右,随后释放总线,由上拉电阻拉高。数字 1 信号表示方法如图 4.4 所示:图 4.4 数字 1 信号表示方法数字 0 信号表示方法.如图 4.5 所示: . 17 / 47图 4.5 数字 0 信号表示方法DHT22 的的电气特性如表 4.1 所示:表 4.1 DHT22 的电气特性VDD=5V,T = 25,除非特殊标注参数参数条件条件minmintyptypmaxmax单位单位供电供电DC3.36V测量11.5mA供电电流供电电流待机4050

40、uA采样周期采样周期秒2次注:采样周期间隔不得低于 2 秒钟(建议 2 秒以上)读八位数据子程序:void COM(void)uchar i;for(i=0;i8;i+) FLAG=2;while(!DATA)&FLAG+);Delay_10us();Delay_10us();Delay_10us();u8temp=0; . 18 / 47if(DATA)u8temp=1;FLAG=2;while(DATA)&FLAG+);if(FLAG=1)break;comdata Temper_chu)beep=0;delayms(10);elsebeep=1;4.34.3 DS1302

41、DS1302 工作原理工作原理DS1302 的控制字如表 4.2 所示:表 4.2 DS1302 的控制字76543210RAMRD1CKA4A3A2A1A0WR控制字的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入到DS1302 中。位 6:如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1(A4A0):指示操作单元的地址;位 0(最低有效位):如为0,表示要进行写操作,为 1 表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0 位)开始。同样,

42、在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从最低位到最高位。 . 22 / 47DS1302 的时序:图 4.6 单个字节读图 4.7 单个字节写如以上图 4.6 和图 4.7 所示:CE 输入驱动高启动所有的数据传输。CE 输入有两个功能。首先,CE 打开控制逻辑,允许访问的移位寄存器的地址/命令序列。其次,CE 提供了一个终止单字节或多字节数据传输方法。一个时钟周期是由一个下降沿之后的上升沿序列。对于数据传输而言,数据必须在有效的时钟的上升沿输入,在时钟的下降沿输出。如果 CE 为低,所有的 I/ O 引脚变为高阻抗状态,数据传

43、输终止。对于数据输入:开始的 8 个 SCLK 周期,输入写命令字节,数据字节在后 8 个 SCLK 周期的上升沿输入。数据输入位 0 开始。对于数据输出:开始的 8 个 SCLK 周期,输入一个读命令字节,数据字节在后 8 个 SCLK 周期的下降沿输出。注意,第一个数据字节的第一个下降沿发生后,命令字的最后一位被写入,命令字节的最后一位被写入。当 CE 仍为高时。如果还有额 . 23 / 47外的 SCLK 周期,DS1302 将重新发送数据字节,这使 DS1302 具有连续突发读取的能力。DS1302 的写字节子程序:void DS1302WriteByte(uchar dat)ucha

44、r i;SCLK=0;delayus(2);for(i=0;i=1;DS1302 的读字节子程序:uchar DS1302ReadByte()uchar i,dat;delayus(2);for(i=0;i=1;if(SDA=1)dat|=0 x80;SCLK=1; . 24 / 47delayus(2);SCLK=0;delayus(2);return dat;DS1302 的读数据子程序:uchar DS1302Read(uchar cmd)uchar dat;RST=0;SCLK=0;RST=1;DS1302WriteByte(cmd);dat=DS1302ReadByte();SCLK

45、=1;RST=0;return dat;DS1302 的写数据子程序:void DS1302Write(uchar cmd, uchar dat)RST=0;SCLK=0; RST=1;DS1302WriteByte(cmd);DS1302WriteByte(dat);SCLK=1;RST=0; . 25 / 474.44.4 AT24C02AT24C02 工作原理工作原理AT24C02 的使用方法:时钟与数据传输:SDA 引脚通常被外围器件拉高。SDA 引脚的数据应在 SCL 为低时变化;当数据在 SCL 为高时变化,将视为下文所述的一个起始或停止命令。起始命令:当 SCL 为高,SDA 由

46、高到低的变化被视为起始命令,必须以起始命令作为任何一次读/写操作命令的开始。停止命令:当 SCL 为高,SDA 由低到高的变化被视为停止命令,在一个读操作后,停止命令会使 EEPROM 进入等待态低功耗模式。应答:所有的地址和数据字节都是以 8 位为一组串行输入和输出的。每收到一组 8 位的数据后,EEPROM 都会在第 9 个时钟周期时返回应答信号。每当主控器件接收到一组 8 位的数据后,应当在第 9 个时钟周期向 EEPROM 返回一个应答信号。收到该应答信号后 EEPROM 会继续输出下一组 8 位的数据。若此时没有得到主控器件的应答信号,EEPROM 会停止读出数据,直到主控器件返回一

47、个停止命令来结束读周期。等待模式:AT24C02 特有一个低功耗的等待模式。可以通过以下方法进入该模式:(1)上电;(2)收到停止位并且结束所有的部操作后。器件复位:在协议中断、下电或系统复位后,器件可通过以下步骤复位:(1)连续输入 9 个时钟;(2)在每个时钟周期中确保当 SCL 为高时 SDA 也为高;(3)建立一个起始条件。总线时序图如图 4.8 所示:SCL:串行时钟输入,SDA:串行输入/输出 . 26 / 47图 4.8 总线时序图写周期时序图如图 4.9 所示:注:写周期 Twr 是指一个写序列最后一个有效停止命令到部擦/写周期结束的时间。图 4.9 写周期时序数据有效时序图如

48、图 4.10 所示:图 4.10 数据有效时序图起始、停止命令定义如图 4.11 所示: . 27 / 47图 4.11 起始命令、停止命令时序图输出应答如图 4.12 所示:图 4.12 输出应答时序图发送字节子程序:void i2c_sendbyte(unsigned char bt) unsigned char i; for(i=0; i8; i+) if (bt & 0 x80) SDO = 1; else SDO = 0; nops(); SCL = 1; bt = 1; nops(); SCL = 0; . 28 / 47 接收字节子程序:unsigned char i2c

49、_recbyte()unsigned char dee, i;for (i=0; i8; i+)SCL = 1; nops();dee = 1;if (SDO) dee = dee | 0 x01;SCL = 0;nops();return dee;写字节子程序:void i2c_writebyte(unsigned char add,unsigned char dat) i2c_start(); i2c_sendbyte(SLAVEADDR); i2c_waitACK(); i2c_sendbyte(add); i2c_waitACK(); i2c_sendbyte(dat); i2c_wa

50、itACK(); . 29 / 47 i2c_stop(); delayus(20);读字节子程序:unsigned char i2c_readbyte(unsigned char add)unsigned char hep;i2c_start();i2c_sendbyte(SLAVEADDR); i2c_waitACK();i2c_sendbyte(add); i2c_waitACK();i2c_start();i2c_sendbyte(SLAVEADDR+1); i2c_waitACK();hep = i2c_recbyte();i2c_ACK(0); i2c_stop(); return

51、 hep;写数据子程序:void i2c_serwrite(unsigned char *p, unsigned char add, unsigned char num)unsigned char n;i2c_start();i2c_sendbyte(SLAVEADDR);i2c_waitACK(); . 30 / 47i2c_sendbyte(add);i2c_waitACK();for(n=0; nnum; n+)i2c_sendbyte(*p);i2c_waitACK();p+;i2c_stop();delayus(20); 读数据子程序:void i2c_serread(unsigne

52、d char *k, unsigned char add, unsigned char num)unsigned char n;i2c_start();i2c_sendbyte(SLAVEADDR);i2c_waitACK();i2c_sendbyte(add);i2c_waitACK();i2c_start(); i2c_sendbyte(SLAVEADDR+1);i2c_waitACK();for(n=0;nnum-1;n+) *k = i2c_recbyte();i2c_ACK(1);k+; . 31 / 47*k = i2c_recbyte();i2c_ACK(0);i2c_stop(

53、);4.54.5 LCD12864LCD12864 的工作原理的工作原理8 位并行连接时序图如图 4.13 所示:图 4.13 写数据到 12864写命令、数据子程序:void wr_lcd(uchar dat_comm,uchar content)chkbusy_lcd();if(dat_comm=1)lcd_rs=1;lcd_rw=0;elselcd_rs=0; . 32 / 47lcd_rw=0;lcd_e=1;lcddata=content;_nop_();lcd_e=0;初始化 LCD 子程序:void init_lcd(void)wr_lcd(0,0 x30);delayms(1)

54、;wr_lcd(0,0 x30);delayms(1);wr_lcd(0,0 x0c);delayms(1);wr_lcd(0,0 x01);delayms(20);wr_lcd(0,0 x06);坐标子程序:void gotoline(uchar y, uchar x)if(y=1)wr_lcd(0,0 x80|x);if(y=2)wr_lcd(0,0 x90|x);if(y=3)wr_lcd(0,(0 x80|x)+8); . 33 / 47if(y=4)wr_lcd(0,(0 x90|x)+8);显示子程序:void print(uchar *str)while(*str!=0) wr_

55、lcd(1,*str+); . 参参 考考 文文 献献1 郭天祥. 新概念51单片机C语言教程:入门、提高、开发、拓展全攻略M.:电子工业,2009.2 谭浩强. C程序设计M.:清华大学,1991.3 朱战立.数据结构:使用C语言M.:电子工业,2009.4戴梅萼,史嘉权.微型计算机技术与应用M.:清华大学,2008.5 毅刚.新编MCS-51单片机应用设计M.:工业大学,2003.6 程捷,何晨.基于单片机的温湿度检测系统设计与实现D.仪表技术,2011.7马斌,志辉. 基于单片机的温湿度监测系统的设计D.新建农业科学,2010.8剑平.智能化检测系统与仪器M.:国防工业,2005.9 海

56、宴.51单片机原理与应用基于Keil C与ProteusM.:航空航天大学,2010.10 王东峰.单片机C语言应用100例M.:电子工业,2009.11勋,源,新民.单片机实用教程M.:航空航天大学,2000.12朝青.单片机原理与接口技术(简明修订版)M.:航空航天大学.1998.13王津.单片机原理与应用M.:大学,2000.14建中.单片机原理与应用M.:电子科技大学,2010.15Steven F.Barrett,Daniel J.Pack.Embedded SystemM.:电子工业,2006.附录附录 A A 实物图实物图 . 2 / 47图 A1 最小系统模块图 A2 AT24

57、C02 模块图 A3 12864 显示模块 . 3 / 47图 A4 DHT22 传感器模块图 A5 DS1302图 A6 实物接线图 . 4 / 47附录附录 B B 元件清单元件清单元件名 数量STC89C52RC 单片机 2DHT22 传感器 1LCD 液晶 12864 1开关按键 7时钟芯片模块 1AT24C02 存储芯片模块 15V 电源线 1万用板 若干电阻 若干电容 若干导线 若干排母 若干排针若干 . 5 / 47毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人重承诺:所呈交的毕业设计(论文) ,是我个人在指导教师的指导下

58、进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者 签 名:日 期:指导教师签名: 日期:使用授权说明使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:学位论文原创性声明学位论文原创性声明 . 6 / 47本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文使用授权书学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论