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

下载本文档

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

文档简介

多功能数字温湿度计设计多功能数字温湿度计设计 摘要摘要 温度和湿度是两个最基本的环境参数 人们生活与温湿度息息相关 在工农业生产 气象 环保 国防 科研等部门 经常需要对环境温度与湿度 进行测量 准确测量温湿度在生物制药 食品加工 造纸等行业更是至关重要 的 因此研究温湿度的测量方法具有重要的意义 本论文讲述了一种以单片机 AT89C52 为主要控制器件 以 DHT22 为数字温 湿度传感器的新型数字温湿度计 具有时间 温湿度显示 并且可以自行设置 温度预警值 当温度超出预警值时报警 存储温湿度的功能 关键词关键词 温度 湿度 DHT22 时间 Multifunction digital hygrometer design Abstract Temperature and humidity are the two most basic environmental parameters people s life is closely related to temperature and humidity In industrial and agricultural production meteorology environmental protection national 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 measurement 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 temperature warning value when temperature exceeds the warning alarm the function of storage temperature and humidity Keyword Temperature humidity DHT22 time 目目 录录 1 1 温湿度计发展史温湿度计发展史 1 1 1 11 1 温度计的发展史温度计的发展史 1 1 1 21 2 湿度计的发展史湿度计的发展史 2 2 2 2 设计任务分析及方案论证设计任务分析及方案论证 3 3 2 12 1 设计数字温湿度计的需求分析设计数字温湿度计的需求分析 3 3 2 22 2 设计任务及要求设计任务及要求 3 3 2 32 3 设计总体方案及方案论证设计总体方案及方案论证 3 3 2 42 4 器件的选择器件的选择 4 4 2 4 1 主控制器芯片 4 2 4 2 温湿度传感器 7 2 4 3 时钟芯片 8 2 4 4 存储芯片 8 2 4 5 LCD12864 9 2 52 5 温湿度测量的方法及分析温湿度测量的方法及分析 1111 3 3 硬件电路的设计硬件电路的设计 1212 3 13 1 总体结构框图总体结构框图 1212 3 23 2 主控制电路和测温湿电路主控制电路和测温湿电路 1212 3 33 3 存储模块与时钟模块电路存储模块与时钟模块电路 1313 3 43 4 显示模块电路显示模块电路 1414 4 4 软件设计及分析软件设计及分析 1515 4 14 1 程序流程图程序流程图 1515 4 24 2 DHT22DHT22 工作原理工作原理 1616 4 34 3 DS1302DS1302 工作原理工作原理 2222 4 44 4 AT24C02AT24C02 工作原理工作原理 2525 4 54 5 LCD12864LCD12864 的工作原理的工作原理 3131 5 5 结论结论 3434 参参 考考 文文 献献 3535 致致 谢谢 3636 附录附录 A A 实物图实物图 3737 附录附录 B B 元件清单元件清单 3939 1 1 1 温湿度计发展史温湿度计发展史 1 11 1 温度计的发展史温度计的发展史 世界上记录最热的温度是在利比亚 时间是 1922 年 9 月 13 日 温度是摄 氏 58 度 之后 1953 年在墨西哥记录到 60 度 美国记录的最高温度是在加州的 死亡谷 1913 年 7 月 10 日 温度是 56 7 度 曾经有人描述过在这个温度下的 感受 人可以感受到死亡的威胁 鸟热的从天上掉下来 古希腊人早就知道空气在受热的时候会膨胀 在大约 2000 年前 亚历山大 的英雄 Hero of Alexandria 这其实是一希腊人 生活在埃及的亚历山大 名字叫 Hero 他发明了一个类似蒸汽机的东西 用的就是热气膨胀的原理 但这个还不是温度计 直到 1592 年 伽利略发明了一个类似温度计的东西 这个也可以测定气压 1612 年 伽利略的朋友 Santorio Santorio 1561 1636 并不是我把名字 打重了 他的名字和姓氏就是一样的 他把伽利略的温度计改造了一下 在一 个封闭的系统里 随着温度的变化 空气收缩膨胀 彩色的液体高度也随着变 化 他用这个测定人体的温度变化 算是世界上第一个体温表 直到 1713 年 Daniel Fahrenheit 1686 1736 在温度计上放上了刻度 首先把冰融化的温度和健康人体的温度两个刻度标上 但他很快意识到 冰融 化的温度是不变的 但水结冰的温度则是变化的 他把冰 水和盐混在一起 这个温度作为 0 度 而冰融化的温度是 32 度 人体的温度是 96 度 1835 年 人们发现人体的正常温度是 98 6 度 就是摄氏 37 度 Fahrenheit 有的时候 用酒精作为表示温度的液体 但后来他选择了水银 以后这个温度计的上限订 到了水沸腾的点 212 度 这个就是英国美国使用的华氏度 1742 年 瑞典的天文学家 Anders Celsius 1701 1744 把水结冰的点定 位 0 度 水沸腾的点定位 100 度 之后 Carolus Linnaeus 1707 1778 把这 个顺序倒了过来 就是现在世界上使用最广泛的摄氏度 从摄氏度的国家来到使用华氏度的国家非常不习惯 要经常把华氏度转换 成摄氏度 才能明白天气预报是什么意思 很多年后才习惯华氏度 具体转换 2 是 F 9 5C 32 C 5 9 F 32 心算还是比较困难的 1848 年 Kelvin 引入一个绝对 0 度的概念 就是摄氏零下 273 5 度 然后 摄氏 0 度就是 273 15K 100 摄氏度就是 373 15K 1 21 2 湿度计的发展史湿度计的发展史 湿度计是测量空气内含水分多少的仪器 史记 天官书 中即有测湿的记 载 我国汉朝初年就已出现湿度计 它是利用天平来测量空气干燥或潮湿的 天平湿度计的使用方法 是把两个重量相等而吸湿性不同的物体 例如灰和铁 分别挂在天平两端 当空气湿度发生变化时 由于两个物体吸入的分水不同 重量也就起了变化 于是天平发生偏差 从而指示出空气潮湿的程度 这就是 湿度计的由来 空气的湿度可通俗地理解为空气的潮湿程度 它有绝对湿度和相对湿度之 分 绝对湿度 空气中水蒸气的压强 p 叫做空气的绝对湿度 空气的湿度可以用空气中所含水蒸汽的密度 即单位体积的空气中所含水 蒸汽的质量来表示 由于直接测量空气中水蒸气的密度比较困难 而水蒸气的 压强随水蒸气密度的增大而增大 所以通常用空气中水蒸气的压强来表示空气 的湿度 这就是空气的绝对湿度 相对湿度 1 概念的引入 为了表示空气中水蒸气离饱和状态的远近而引入相对湿 度的概念 2 相对湿度 B 某温度时空气的绝对湿度 p 跟同一温度下水的饱和汽 压 ps 的百分比叫做这时空气的相对湿度 不同温度下水的饱和汽压可以查表得到 在绝对湿度 p 不变而降低温度时 由于水的饱和汽压减小而使空气的相 对湿度增大 居室的相对湿度以 60 70 较适宜 3 2 2 设计任务分析及方案论证设计任务分析及方案论证 2 12 1 设计数字温湿度计的设计数字温湿度计的需求分析需求分析 温度与湿度与人们的生活息息相关 在工农业生产 气象 环保 国防 科研等部门 经常需要对环境温度与湿度进行测量及控制 准确测量温湿度在 生物制药 食品加工 造纸等行业更是至关重要的 传统的温度计是用水银柱 来显示的 虽然结构简单 价格便宜 但是它的精确度不高 不易读数 传统 湿度计采用干湿球显示法 不仅复杂而且测量精度不高 而采用单片机对温湿 度进行测量 不仅具有控制方便 简单和灵活等优点 而且可以提高温湿度的 测量精度 用 12864 液晶显示屏来显示温湿度的数值和时间 看起来更加直观 测量温湿度的关键是温湿度传感器 过去测量温度与湿度是分开的 随着 技术的进步和人们生活的需要出现了温湿度传感器 温度传感器的发展经历了 3 个阶段 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传 感器 目前 国际上新型温度传感器正从模拟式向数字式 从集成化向智能化 网络化的方向发展 湿度传感器也是经历了这样一个阶段逐渐走向数字智能化 总之 无论在日常生活中还是在工业 农业方面都离不开对周围环境进行 温湿度的测量 因此 研究温湿度的测量具有非常重要的意义 2 22 2 设计任务及要求设计任务及要求 设计一个以单片机为核心的多功能温湿度测量系统 可实现的功能为 1 有日期 时间等显示功能 2 用户还可自行设置合适的温度 3 超出设置的合适温度时 蜂鸣器会提示 4 可存储并查看温湿度 4 2 32 3 设计总体方案及方案论证设计总体方案及方案论证 按照系统设计功能的要求 确定系统由 7 个模块组成 主控制器模块 温 湿度传感模块 键盘输入模块 时钟模块 存储模块 LCD 显示电路及蜂鸣器 模块 主控制器的功能有单片机来完成 主要负责处理由温湿度传感器 时钟芯 片传递来的数据 并把处理好的数据送向显示模块 以及把数据发给存储芯片 和接收存储芯片发来的数据 温湿传感器主要用来采集周围环境参数 并把所 采集来的参数送往主控制器 按键电路主要用来完成时间的调整 设定温湿度 适宜范围 存储和查询温湿度 这里需要 6 个按键 两个用来调整时间 两个 用来设定温湿度适宜范围 还有两个用来存储和查询温湿度 蜂鸣器模块是由 一个蜂鸣器组成 用来判断周围环境的温度是否超出设定值了 当温度超出设 置的预警值时 蜂鸣器会发出声响 2 42 4 器件的选择器件的选择 2 4 1主控制器芯片主控制器芯片 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 可以按照常规方法进行编程 也可以在线编程 其将通用的微处理器 和 Flash 存储器结合在一起 特别是可反复擦写的 Flash 存储器可有效地降低开 发成本 AT89C52 为 8 位通用微处理器 采用工业标准的 C51 内核 在内部功能 及管脚排布上与通用的 8xc52 相同 其主要用于会聚调整时的功能控制 功能 包括对会聚主 IC 内部寄存器 数据 RAM 及外部接口等功能部件的初始化 会 5 聚调整控制 会聚测试图控制 红外遥控信号 IR 的接收解码及与主板 CPU 通 信等 主要管脚有 XTAL1 19 脚 和 XTAL2 18 脚 为振荡器输入输出端 口 外接 12MHz 晶振 RST Vpd 9 脚 为复位输入端口 外接电阻电容组 成的复位电路 VCC 40 脚 和 VSS 20 脚 为供电端口 分别接 5V 电源 的正负端 P0 P3 为可编程通用 I O 脚 其功能用途由软件定义 在本设计中 P0 端口 32 39 脚 被定义为 N1 功能控制端口 分别与 N1 的相应功能管脚 相连接 13 脚定义为 IR 输入端 10 脚和 11 脚定义为 I2C 总线控制端口 分 别连接 N1 的 SDAS 18 脚 和 SCLS 19 脚 端口 12 脚 27 脚及 28 脚定 义为握手信号功能端口 连接主板 CPU 的相应功能端 用于当前制式的检测 及会聚调整状态进入的控制功能 P0 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数据总线复用 口 作为输出口用时 每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路 对端 口 P0 写 1 时 可作为高阻抗输入端用 在访问外部数据存储器或程序存储器时 这组口线分时转换地址 低 8 位 和数据总线复用 在访问期间激活内部上拉电阻 在 Flash 编程时 P0 口接收 指令字节 而在程序校验时 输出指令字节 校验时 要求外接上拉电阻 P1 P1 口 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓冲级 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部 的上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部 存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 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 0 T2 时钟输出 P1 1 T2EX 定时 计 数器 P2 P2 口是一个带有内部上拉电阻的 8 位双向 I O 口 P2 的输出缓冲级 6 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口 P2 写 1 通过 内部的上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为 内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器或 16 位地数据存储器 例如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在访问 8 位地址的外部数据存储器 如执行 MOVX RI 指令 时 P2 口输出 P2 锁存器的内容 Flash 编程或校验时 P2 亦接收高位地址和一些控制信号 P3 P3 口是一组带有内部上拉电阻的 8 位双向 I O 口 P3 口输出缓冲级 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写入 1 时 它 们被内部上拉电阻拉高并可作为输入端口 此时 被外部拉低的 P3 口将用上 拉电阻输出电流 IIL P3 口除了作为一般的 I O 口线外 更重要的用途是它的第二功能 如表 2 2 所示 表 2 2 P3 的第二功能 端口引脚第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 外部中断 0 INTO P3 3 外部中断 1 INT1 P3 4 T0 定时 计数器 0 P3 5 T1 定时 计数器 1 P3 6 外部数据存储器写选通 WR P3 7 外部数据存储器读选通 RD P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号 AT89C52 的电路仿真图如图 2 1 7 图 2 1 AT89C52 仿真图 2 4 2温湿度传感器温湿度传感器 温湿度传感器采用 DHT22 DHT22 数字温湿度传感器是一款含有已校准数字信号 输出的温湿度复合传感器 它应用专用的数字模块采集技术和温湿度传感技术 确保产品具有极高的可靠性与卓越的长期稳定性 传感器包括一个电容式感湿 元件和一个 NTC 测温元件 并与一个高性能 8 位单片机相连接 因此该产品具 有品质卓越 超快响应 抗干扰能力强 性价比极高等优点 每个 DHT22 传感 器都在极为精确的湿度校验室中进行校准 校准系数以程序的形式储存在 OTP 内存中 传感器内部在检测信号的处理过程中要调用这些校准系数 单线制串 行接口 使系统集成变得简易快捷 超小的体积 极低的功耗 信号传输距离 可达 20 米以上 使其成为各类应用甚至最为苛刻的应用场合的最佳选则 产品 为 4 针单排引脚封装 连接方便 特殊封装形式可根据用户需求而提供 其引 脚功能如图 2 2 所示 8 图 2 2 DHT22 的引脚 2 4 3时钟芯片时钟芯片 时钟芯片采用 DS1302 DS1302 是美国 DALLAS 公司推出的一种高性 能 低功耗 带 RAM 的实时时钟电路 它可以对年 月 日 周 时 分 秒进行计时 具有闰年补偿功能 工作电压为2 5V 5 5V 采用三线接口 与 CPU 进行同步通信 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数据的 RAM 寄 存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后备电源双电源引脚 同时提供了对后备电源进行涓细电流充电的能力 其引脚如图 2 3 所示 图 2 3 DS1302 的引脚图 2 4 4存储芯片存储芯片 本次设计采用的 是 AT24C02 存储模块 AT24C02 是一个 2K 位串行 引脚名称描述 VDD 电源 3 3V 5 5V SDA 串行数据 双向口 NC 空脚 GND 地 9 CMOS E2PROM 内部含有 256 个 8 位字节 CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗 AT24C02 有一个 8 字节页写缓冲器 该器件通过 IIC 总线接口进行操作 有一个专门的写保护功能 AT24C02 支持 I2C 总线数据传送协议 I2C 总线协议规定任何将数据 传送到总线的器件作为发送器 任何从总线接收数据的器件为接收器 数据 传送是由产生串行时钟和所有起始停止信号的主器件控制的 主器件和从器 件都可以作为发送器或接收器 但由主器件控制传送数据 发送或接收 的 模式 由于 A0 A1 和 A2 可以组成 000 111 八种情况 即通过器件地址输 入端 A0 A1 和 A2 可以实现将最多 8 个 AT24C02 器件连接到总线上 通 过进行不同的配置进行选择器件 其封装及引脚如 图 2 4 所示 图 2 4 AT24C02 的三种封装图及引脚图 2 4 5 LCD12864LCD12864 带中文字库的 128X64 是一种具有 4 位 8 位并行 2 线或 3 线串行多种 接口方式 内部含有国标一级 二级简体中文字库的点阵图形液晶显示模块 其显示分辨率为 128 64 内置 8192 个 16 16 点汉字 和 128 个 16 8 点 ASCII 字符集 利用该模块灵活的接口方式和简单 方便的操作指令 可构成 全中文人机交互图形界面 可以显示8 4 行 16 16 点阵的汉字 也可完成 10 图形显示 低电压低功耗是其又一显著特点 由该模块构成的液晶显示方案与 同类型的图形点阵液晶显示模块相比 不论硬件电路结构或显示程序都要 简洁得多 且该模块的价格也略低于相 同点阵的图形液晶模块 主要技术参数和显示特性 电源 VDD 3 3V 5V 内置升压电路 无需 负压 显示内容 128 列 64 行 显示颜色 黄绿屏 蓝屏 显示角度 6 00 钟直视 LCD 类型 STN 与 MCU 接口 8 位并口或串行 配置 LED 背光 多种软件功能 光标显示 画面移位 自定义字符 睡眠模式等 12864 的引脚功能如表 2 3 所示 表 2 3 LCD12864 的引脚功能 管脚管脚 号号 管脚名称管脚名称电平电平管脚功能描述管脚功能描述 1VSS0V电源地 2VCC3 0 5V电源正 3V0 对比度 亮度 调整 4RS CS H L RS H 表示 DB7 DB0 为显示数据 RS L 表示 DB7 DB0 为显示指令数据 5R W SID H L R W H E H 数据被读到 DB7 DB0 R W L E H L DB7 DB0 的数据被写 到 IR 或 DR 6E SCLK H L使能信号 7DB0H L三态数据线 8DB1H L三态数据线 9DB2H L三态数据线 10DB3H L三态数据线 11DB4H L三态数据线 12DB5H L三态数据线 13DB6H L三态数据线 14DB7H L三态数据线 11 15PSBH LH 8 位或 4 位并口方式 L 串口方式 16NC 空脚 17 RESETH L复位端 低电平有效 18VOUT LCD 驱动电压输出端 19AVDD背光源正端 5V 20KVSS背光源负端 2 52 5 温湿度测量的方法及分析温湿度测量的方法及分析 DHT22 是一个单总线 接口的数字温湿度传感器 它是四针单排封装 一个接电源 一个接地线 DATA 接口直接和单片机的 P2 7 相连 另外一 个是空引脚 不接线 连接线长度短于 20 米时用 5K 上拉电阻 单片机通 过 P2 7 向 DHT22 发送命令 DHT22 接收到命令后做出相应的应答 由于 DHT22 内部包含一个 14 位 A D 转换器 所以单片机接收到就是数字信号 只需要做相应的处理就能得到所需要的数据 这里减少了很多外部的电路的 连接 用起来比较方便 12 3 3 硬件电路的设计硬件电路的设计 3 13 1 总体结构框图总体结构框图 图 3 1 总结构框图 3 23 2 主控制电路和测温湿电路主控制电路和测温湿电路 本次硬件设计的核心就是 AT89C52 其他部位的硬件都是围绕着它来设计 的 数字温湿度传感器 DHT22 的 DATA 口与 AT89C52 的 P2 7 口相连 按键电路 就是 7 个按键分别与 AT89C52 的 P3 2 P3 3 P2 3 P2 4 P2 5 P0 0 和 P0 1 口相 连 当有按键按下时单片机接收到有效的信号 S1 键和 S2 键用来调整温度报 警范围 S1 键是增加温度值 S2 键是减少温度值 S3 S4 和 S5 键是用来调整 时间和日期的 S3 键用来移动设置的光标 S4 键是增加键 S5 键是减少键 S6 和 S7 键是用来保存和查询温湿度的 S6 键用来查询温湿度和退出界面 S7 键用来保存温湿度和日期 报警电路就是蜂鸣器与单片机的 P2 6 口相连 当温 度超过设置的预警值时 蜂鸣器就会发出警报 其电路接线图如图 3 2 所示 键盘输入模块 温湿度传感模块 DS18B20 主控制器 时钟模块 LCD 显示模块 蜂鸣器模块 存储模块 13 图 3 2 DHT22 电路接线图 3 33 3 存储模块与时钟模块电路存储模块与时钟模块电路 本次设计使用的存储模块是以 AT24C02 存储芯片为核心的 该模块有四个 引脚 其中的 VCC 和 GND 引脚分别接电源和接地 SDA 引脚与单片机的 P3 6 口 连接 SCL 引脚与单片机的 P3 7 口连接 存储芯片主要是用来存储想要保存的 温湿度 时钟模块是以 DS1302 芯片为核心的 该模块有五个引脚 其中 VCC 引 脚悬空 GND 引脚接地 CLK 引脚与单片机的 P2 0 口连接 DAT 引脚与单片机 的 P2 1 口连接 RST 引脚与单片机的 P2 2 口连接 时钟芯片主要是用来提供 秒分时日日期月年的信息 并具有掉电存储的功能 DS1302 的电路接线图如图 3 3 所示 图 3 3 DS1302 的电路接线图 AT24C02 的电路接线图如图 3 4 所示 14 图 3 4 AT24C02 电路图 3 43 4 显示模块电路显示模块电路 本次设计采用的显示屏是 LCD12864 LCD12864 一共有 20 个引脚 其中 RS 引脚与单片机的 P0 3 口连接 R W 引脚与 P0 4 口连接 E 引脚与 P0 5 口连 接 PSB 引脚与 P0 6 口连接 D0 D7 分别与 P1 0 P1 7 连接 其他的电源口 接地口和空引脚分别对应相应的引脚或悬空 LCD 显示的时候分为四行 第一 行显示日期 第二行显示时间 第三行显示湿度 第四行显示温度和预警值 12864 的接线电路图如图 3 5 所示 图 3 5 12864 接线电路图 15 4 4 软件设计及分析软件设计及分析 4 14 1 程序流程图程序流程图 Y N N Y 图 4 1 程序流程图 开始 清屏及初始化 读 DS1302 DHT22 外部中断 扫描键盘 显示历史记录 是否按下 调整时间 温度上 限 显示 结束 16 4 24 2 DHT22DHT22 工作原理工作原理 DHT22 为单总线接口 DATA 用于微处理器与 DHT22 之间的通讯和同步 采 用单总线数据格式 一次通讯时间 5ms 左右 具体格式在下面说明 当前数据传输 为 40bit 高位先出 如下 数据格式 40bit 数据 16bit 湿度数据 16bit 温度数据 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 2 RH 温度 35 1 当温度低于 0 时温度数据的最高位置 1 例如 10 1 表示为 1000 0000 0110 0101 用户主机 MCU 发送一次开始信号后 DHT22 从低功耗模式转换到高速模 式 等待主机开始信号结束后 DHT22 发送响应信号 送出 40bit 的数据 并触发 一次信号采集 如图 4 2 所示 图 4 2 接收开始信号 空闲时总线为高电平 通讯开始时主机 MCU 拉低总线 500us 后释放总线 延时 20 40us 后主机开始检测从机 DHT22 的响应信号 从机的响应信号是一 个 80us 左右的低电平 随后从机在拉高总线 80us 左右代表即将进入数据传送 如图 4 3 所示 17 图 4 3 进入数据传送 高电平后就是数据位 每 1bit 数据都是由一个低电平时隙和一个高电平组 成 低电平时隙就是一个 50us 左右的低电平 它代表数据位的起始 其后的高 电平的长度决定数据位所代表的数值 较长的高电平代表 1 较短的高电平代 表 0 共 40bit 数据 当最后一 Bit 数据传送完毕后 从机将再次拉低总线 50us 左右 随后释放总线 由上拉电阻拉高 数字 1 信号表示方法如图 4 4 所示 图 4 4 数字 1 信号表示方法 数字 0 信号表示方法 如图 4 5 所示 18 图 4 5 数字 0 信号表示方法 DHT22 的的电气特性如表 4 1 所示 表 4 1 DHT22 的电气特性 VDD 5V T 25 除非特殊标注 参数参数条件条件 minmintyptypmaxmax 单位单位 供电供电 DC3 36V 测量 11 5mA 供电电流供电电流 待机 4050uA 采样周期采样周期秒 2 次 注 采样周期间隔不得低于 2 秒钟 建议 2 秒以上 读八位数据子程序 void COM void uchar i for i 0 i 8 i FLAG 2 while DATA Delay 10us Delay 10us Delay 10us u8temp 0 19 if DATA u8temp 1 FLAG 2 while DATA if FLAG 1 break comdata Temper chu beep 0 delayms 10 else beep 1 4 34 3 DS1302DS1302 工作原理工作原理 DS1302 的控制字如表 4 2 所示 表 4 2 DS1302 的控制字 76543210 RAMRD1 CK A4A3A2A1A0 WR 控制字的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数据写 入到 DS1302 中 位 6 如果为 0 则表示存取日历时钟数据 为 1 表示存取 RAM 数据 位 5 至位 1 A4 A0 指示操作单元的地址 位 0 最低有效位 如为 0 表示要进行写操作 为 1 表示进行读操作 控制字总是从最低位开始 输出 在控制字指令输入后的下一个 SCLK 时钟的上升沿时 数据被写入 DS1302 数据输入从最低位 0 位 开始 同样 在紧跟 8 位的控制字指令后 的下一个 SCLK 脉冲的下降沿 读出 DS1302 的数据 读出的数据也是从最低位 到最高位 23 DS1302 的时序 图 4 6 单个字节读 图 4 7 单个字节写 如以上图 4 6 和图 4 7 所示 CE 输入驱动高启动所有的数据传输 CE 输入有两个功能 首先 CE 打开 控制逻辑 允许访问的移位寄存器的地址 命令序列 其次 CE 提供了一个终 止单字节或多字节数据传输方法 一个时钟周期是由一个下降沿之后的上升沿 序列 对于数据传输而言 数据必须在有效的时钟的上升沿输入 在时钟的下 降沿输出 如果 CE 为低 所有的 I O 引脚变为高阻抗状态 数据传输终止 对于数据输入 开始的 8 个 SCLK 周期 输入写命令字节 数据字节在后 8 个 SCLK 周期 的上升沿输入 数据输入位 0 开始 对于数据输出 开始的 8 个 SCLK 周期 输入一个读命令字节 数据字节在后 8 个 SCLK 周期的下降沿输出 注意 第一个数据字节的第一个下降沿发生后 命令字的 最后一位被写入 命令字节的最后一位被写入 当 CE 仍为高时 如果还有额 外的 SCLK 周期 DS1302 将重新发送数据字节 这使 DS1302 具有连续突发读 取的能力 DS1302 的写字节子程序 void DS1302WriteByte uchar dat 24 uchar 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 delayus 2 SCLK 0 delayus 2 25 return dat DS1302 的读数据子程序 uchar DS1302Read uchar cmd uchar dat RST 0 SCLK 0 RST 1 DS1302WriteByte cmd dat DS1302ReadByte SCLK 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 4 4 AT24C02AT24C02 工作原理工作原理 AT24C02 的使用方法 26 时钟及数据传输 SDA 引脚通常被外围器件拉高 SDA 引脚的数据应在 SCL 为低时变化 当数据在 SCL 为高时变化 将视为下文所述的一个起始或停止命 令 起始命令 当 SCL 为高 SDA 由高到低的变化被视为起始命令 必须以起 始命令作为任何一次读 写操作命令的开始 停止命令 当 SCL 为高 SDA 由低到高的变化被视为停止命令 在一个读 操作后 停止命令会使 EEPROM 进入等待态低功耗模式 应答 所有的地址和数据字节都是以 8 位为一组串行输入和输出的 每收 到一组 8 位的数据后 EEPROM 都会在第 9 个时钟周期时返回应答信号 每当 主控器件接收到一组 8 位的数据后 应当在第 9 个时钟周期向 EEPROM 返回一 个应答信号 收到该应答信号后 EEPROM 会继续输出下一组 8 位的数据 若此 时没有得到主控器件的应答信号 EEPROM 会停止读出数据 直到主控器件返回 一个停止命令来结束读周期 等待模式 AT24C02 特有一个低功耗的等待模式 可以通过以下方法进入该 模式 1 上电 2 收到停止位并且结束所有的内部操作后 器件复位 在协议中断 下电或系统复位后 器件可通过以下步骤复位 1 连续输入 9 个时钟 2 在每个时钟周期中确保当 SCL 为高时 SDA 也 为高 3 建立一个起始条件 总线时序图如图 4 8 所示 SCL 串行时钟输入 SDA 串行输入 输出 图 4 8 总线时序图 27 写周期时序图如图 4 9 所示 注 写周期 Twr 是指一个写序列最后一个有效停止命令到内部擦 写周期结束的时间 图 4 9 写周期时序 数据有效时序图如图 4 10 所示 图 4 10 数据有效时序图 起始 停止命令定义如图 4 11 所示 图 4 11 起始命令 停止命令时序图 输出应答如图 4 12 所示 28 图 4 12 输出应答时序图 发送字节子程序 void i2c sendbyte unsigned char bt unsigned char i for i 0 i 8 i if bt else SDO 0 nops SCL 1 bt 1 nops SCL 0 接收字节子程序 unsigned char i2c recbyte unsigned char dee i for i 0 i 8 i SCL 1 nops dee 1 29 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 waitACK i2c stop delayus 20 读字节子程序 unsigned char i2c readbyte unsigned char add unsigned char hep i2c start i2c sendbyte SLAVEADDR i2c waitACK i2c sendbyte add 30 i2c waitACK i2c start i2c sendbyte SLAVEADDR 1 i2c waitACK hep i2c recbyte i2c ACK 0 i2c stop return hep 写数据子程序 void i2c serwrite unsigned char p unsigned char add unsigned char num unsigned char n i2c start i2c sendbyte SLAVEADDR i2c waitACK i2c sendbyte add i2c waitACK for n 0 n num n i2c sendbyte p i2c waitACK p i2c stop delayus 20 读数据子程序 31 void i2c serread unsigned 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 n num 1 n k i2c recbyte i2c ACK 1 k k i2c recbyte i2c ACK 0 i2c stop 4 54 5 LCD12864LCD12864 的工作原理的工作原理 8 位并行连接时序图如图 4 13 所示 32 图 4 13 写数据到 12864 写命令 数据子程序 void wr lcd uchar dat comm uchar content chkbusy lcd if dat comm 1 lcd rs 1 lcd rw 0 else lcd rs 0 lcd rw 0 lcd e 1 lcddata content nop lcd e 0 初始化 LCD 子程序 void init lcd void 33 wr lcd 0 0 x30 delayms 1 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 if y 4 wr lcd 0 0 x90 x 8 显示子程序 void print uchar str while str 0 wr 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 陈海宴 51单片机原理及应用 基于Keil C与Proteus M 北京 航空航天大 学出版社 2010 10 王东峰 单片机C语言应用100例 M 北京 电子工业出版社 2009 11 李勋 刘源 李新民 单片机实用教程 M 北京 北京航空航天大学出版 社 2000 12 李朝青 单片机原理及接口技术 简明修订版 M 杭州 北京航空航天 大学出版社 1998 13 王津 单片机原理与应用 M 重庆 重庆大学出版社 2000 14 李建中 单片机原理及应用 M 西安 西安电子科技大学出版社 2010 15 Steven F Barrett Daniel J Pack Embedded System M 北京 电子工业 出版社 2006 附录附录 A 实物图实物图 图 A1 最小系统模块 图 A2 AT24C02 模块 图 A3 12864 显示模块 图 A4 DHT22 传感器模块 图 A5 DS1302 图 A6 实物接线图 附录附录 B 元件清单元件清单 元件名 数量 STC89C52RC 单片机 2 DHT22 传感器 1 LCD 液晶 12864 1 开关按键 7 时钟芯片模块 1 AT24C02 存储芯片模块 1 5V 电源线 1 万用板 若干 电阻 若干 电容 若干 导线 若干 排母 若干 排针若干 毕业设计 论文 原创性声明和使用授权说明毕业设计 论文 原创性声明和使用授权说明 原创性声明原创性声明 本人郑重承诺 所呈交的毕业设计 论文 是我个人在指导教 师的指导下进行的研究工作及取得的成果 尽我所知 除文中特别 加以标注和致谢的地方外 不包含其他人或组织已经发表或公布过 的研究成果 也不包含我为获得 及其它教育机构的学位 或学历而使用过的材料 对本研究提供过帮助和做出过贡献的个人 或集体 均已在文中作了明确的说明并表示了谢意 作 者 签 名 日 期 指导教师签名 日 期 使用授权说明使用授权说明 本人完全了解 大学关于收集 保存 使用毕业设计 论 文 的规定 即 按照学校要求提交毕业设计 论文 的印刷本和 电子版本 学校有权保存毕业设计 论文 的印刷本和电子版 并 提供目录检索与阅览服务 学校可以采用影印 缩印 数字化或其 它复制手段保存论文 在不以赢利为目的前提下 学校可以公布论 文的部分或全部内容 作者签名 日 期 学位论文原创性声明学位论文原创性声明 本人郑重声明 所呈交的论文是本人在导师的指导下独立进行 研究所取得的研究成果 除了文中特别加以标注引用的内容外 本 论文不包含任何其他个人或集体已经发表或撰写的成果作品 对本 文的研究做出重要贡献的个人和集体 均已在文中以明确方式标明 本人完全意识到本声明的法律后果由本人承担 作者签名 日期 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留 使用学位论文的规定 同意学校保留并向国家有关部门或机构

温馨提示

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

评论

0/150

提交评论