




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题题 目 目 DS18B20 数字温度计数字温度计 姓姓 名 名 吴远超吴远超 学学 号 号 093521029 指导老师 指导老师 李东京老师李东京老师 设计时间 设计时间 20122012 年年 4 4 月月 9 9 日日 4 4 月月 2222 日日 电子与信息工程学院电子与信息工程学院 单片机原理及应用 课程设计报告书 目 录 1 引 言 1 1 1 设计意义 1 1 2 系统功能要求 1 2 方案设计 1 3 硬件设计 2 4 软件设计 5 5 系统调试 7 6 设计总结 8 7 附 录 9 8 作品展示 15 9 参考文献 17 DS18B20 数字温度计设计 1 引 言 1 1 设计意义 在日常生活及工农业生产中 经常要用到温度的检测及控制 传统的测温 元件有热电偶和热电阻 而热电偶和热电阻测出的一般都是电压 再转换成对 应的温度 需要比较多的外部硬件支持 其缺点如下 硬件电路复杂 软件调试复杂 制作成本高 本数字温度计设计采用美国 DALLAS 半导体公司继 DS1820 之后推出的一种 改进型智能温度传感器 DS18B20 作为检测元件 测温范围为 55 125 最高 分辨率可达 0 0625 DS18B20 可以直接读出被测温度值 而且采用三线制与单片机相连 减少 了外部的硬件电路 具有低成本和易使用的热点 1 2 系统功能要求 设计出的 DS18B20 数字温度计测温范围在 55 125 误差在 0 5 以内 采用 LED 数码管直接读显示 2 方案设计 按照系统设计功能的要求 确定系统由 3 个模块组成 主控制器 测温电 路和显示电路 数字温度计总体电路结构框图如 4 1 图所示 AT89C2051 主 控 制 器 DS18B20 显示电路 扫描驱动 图 4 1 3 硬件设计 温度计电路设计原理图如下图所示 控制器使用单片机 AT89C2051 温度 传感器使用 DS18B20 使用四位共阳 LED 数码管以动态扫描法实现温度显示 主控制器 单片机 AT89C2051 具有低电压供电和小体积等特点 两个端口刚好满足电路系统的设计需要 很适合便携手持式产品的设计使用 系统可用两节电池供电 AT89C2051 的引 脚图如右图所示 1 VCC 电源电压 2 GND 地 3 P1 口 P1 口是一个 8 位双向 I O 口 口引脚 P1 2 P1 7 提供内部 上拉电阻 P1 0 和 P1 1 要求外部上 拉电阻 P1 0 和 P1 1 还分别作为片 内精密模拟比较器的同相输入 ANI0 和反相输入 AIN1 P1 口输出缓冲器 可吸收 20mA 电流并能直接驱动 LED 显示 当 P1 口引脚写入 1 时 其可用作输入端 当引脚 P1 2 P1 7 用作输入并被外部拉低时 它们将因内部的写入 1 时 其 可用作输入端 当引脚 P1 2 P1 7 用作输入并被外部拉低时 它们将因内部的 上拉电阻而流出电流 4 P3 口 P3 口的 P3 0 P3 5 P3 7 是带有内部上拉电阻 的七个双向 I O 口引脚 P3 6 用于固定输入片内比较器的输出信号并且它作为一通用 I O 引脚 而不可访问 P3 口缓冲器可吸收 20mA 电流 当 P3 口写入 1 时 它们被内 部上拉电阻拉高并可用作输入端 用作输入时 被外部拉低的 P3 口脚将用上拉 电阻而流出电流 5 RST 复位输入 RST 一旦变成高 电平所有的 I O 引脚就复位到 1 当振 荡器正在运行时 持续给出 RST 引脚两个 机器周期的高电平便可完成复位 每一个 机器周期需 12 个振荡器或时钟周期 6 XTAL1 作为振荡器反相器的输入 和内部时钟发生器的输入 7 XTAL2 作为振荡器反相放大器的输出 总线驱动器 74LS244 74LS244 为 3 态 8 位缓冲器 一般 用作总线驱动器 引脚图见上图 显示电路 显示电路采用 4 位共阳极 LED 数码管 从 P1 口输出段码 列扫描用 P3 0 P3 3 口来实现 列驱动用 8055 三极管 温度传感器 DS18B20 DS18B20 的性能特点 1 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由数 据线供电 2 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线即 可实现微处理器与 DS18B20 的双向通讯 3 DS18B20 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现组网多点测温 4 DS18B20 在使用中不需要任何外围元件 全部 传感元件及转换电路集 成在形如一只三极管的集成电路内 5 温范围 55 125 在 10 85 时精度为 0 5 6 可编程 的分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 可实现高精度测温 7 在 9 位分辨率时最多在 93 75ms 内把温度转 换为数字 12 位分辨率时最多在 750ms 内把温度值转 换为数字 速度更快 8 测量结果直接输出数字温度信号 以 一线总 线 串行传送给 CPU 同时可传送 CRC 校验码 具有极 强的抗干扰纠错能力 9 负压特性 电源极性接反时 芯片不会因发 热而烧毁 但不能正常工作 DS18B20 与单片机的接 口电路 引脚图见右图 DS18B20 可以采用电源供电方式 此时 DS18B20 的第 1 脚接地 第 2 脚 作为信号线 第 3 脚接电源 4 软件设计 系统程序主要包括主程序 读出温度子程序 温度转换命令子程序 计算 温度子程序和显示数据刷新子程序等 4 1 主程序 主程序的主要功能是负责温度的实时显示 读出并处理 DS18B20 的测量温 度值 温度测量每 1s 进行一次 主程序流程图如图 4 1 所示 4 2 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节 在读出时必须进行 CRC 校验 校验有错时不能进行温度数据的改写 读出温度子程序流程图如下 图所示 初始化 调用显示子程序 1s 到 初次上电 读出温度值 温度计酸处理 显示数据刷新 发温度转换开始命令 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节 在 读出时须进行 CRC 校验 校验有错时不进行温度数据的改写 得出温度子程序 流程图如下图所示 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令 当采用 12 位分辨率时 转换时间约为 750ms 在本程序设计中 采用 1s 显示 程序延时法等待转换的完成 温度转换命令子程序流程图如下图所示 计算温度子程序 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算 并进行温度值正负的判定 计算温度子程序流程图如下左图所示 现实数据刷新子程序 现实数据刷新子程序主要是对显示缓冲器中的显示 发 DS18B20 复位指令 发跳过 ROM 指令 发读取温度指令 读取操作 CRC 校验 9 字节完 CRC 校验正确 移入温度暂存器 结束 发 DS18B20 复位命令 发温度转换开始命令 结束 发跳过 ROM 命令 数据进行刷新操作 当最高数据显示位为 0 时 将符号显示位移入下一位 现 实数据刷新子程序流程图如下右图所示 5 系统调试 系统的调试以程序调试为主 硬件调试比较简单 首先检查电感的焊接是否正确 然后可用万用表测试 或通电检测 软件调试可以先编写显示程序并进行硬件的正确性检验 然后分别进行主 程序 读出温度子程序 温度转换命令子程序 计算温度子程序和现实数据刷 新子程序等的编程及调试 由于 DS18B20 与单片机采用串行数据传送 因此 对 DS18B20 进行读 写编 程时必须严格地保证读 写时序 否则将无法读取测量结果 本程序采用单片机 汇编或 C 语言编写用 Wave3 2 或 Keil C51 编译器编程调试 软件调试到能显示温度值 并且在有温度变化时显示温度能改变 救基本 完成 性能测试可用制作的温度机和已有的成品温度计同时进行测量比较 由于 DS18B20 的精度很高 所以误差指标可以限制在 0 5 以内 另外 55 125 的测温范围使得该温度计完全适合一般的应用场合 其 开始 温度零下 温度值取补码置 一 标志 置 标志 计算小数位温 度 BCD 值 计算整数位温 度 BCD 值 结束 温度数据移入显示寄存器 十位数 0 百位数 0 十位数显示符 号百位数不显 示 百位数显示数 据 不显示符 号 结束 低电压供电特性可做成用电池供电的手持温度计 DS18B20 温度计还可以在高低温报警 远距离多点测温控制等方面进行应 用开发 但在实际设计中应注意以下问题 1 DS18B20 工作时电流高大 1 5mA 总线上挂接点数较多且同时进行转换 时要考虑增加总线驱动 可用单片机端口在温度转换时导通一个 MOSFET 供电 2 连接 DS18B20 的总线电缆是有长度限制的 因此在用 DS18B20 进行长距 离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题 3 在 DS18B20 测温程序设计中 向 DS18B20 发出温度转换命令后 程序总 要等待 DS18B20 的返回信号 一旦某个 DS18B20 接触不好或断线 当程序读 DS18B20 时 将没有返回信号 程序进入死循环 这一点在进行 DS18B20 硬件 连接和软件设计时要给予一定的重视 6 设计总结 历时 2 个星期的单片机课程设计已经结束了 在这两个星期的时间里 我 们在老师的指导下完成了基于 DS18B20 的数字温度计的设计和制作 在进行实 验的过程中 我们了解并熟悉 DS18B20 AT89C2051 以及 74LS244 的工作原理和 性能 并且通过温度计的制作 我们将电子技能实训课堂上学到的知识进行运 用 并在实际操作中发现问题 解决问题 更加增加对知识的认识和理解 在课程设计的过程中 也遇到了一些问题 比如最开始根据课本上的电路 图进行合理的设计布局和布线 有些同学的布局不合理 导致焊接的过程中任 务相当繁重 并且不美观 在之后的烧程序调试的时候 出现问题之后 没有 合理布线的同学在查找问题的过程中相当棘手 在焊接过程中 出现最多的就是虚焊问题 对于这个问题 在焊接的过程 中 我尽量依照书中的指导 尽量将焊点焊成水滴状 最后接电后再根据数码 管的显示情况进行逐个排查 在将程序烧到单片机之后 接上电源 发现数码管没有出现正常的 000 0 而是出现了 666 6 在检查线路无误之后 和其他的同学讨论之后 得出结论 书中程序是对于单片机 电阻及数码管是直接连接而设计的 而在 加入了 74LS244 之后 要将 8 个输入输出端口进行掉序 于是 我便将 8 个端 口进行调换 之后再次接通电源 数码管显示 000 0 调试成功 在自己的温度计制作完成之后 我还帮助其他没有完成的同学进行检修 并且成功帮助 2 位同学找到问题进行解决 最后都调试成功 总之 在这 2 个星期中 通过自己在实验室动手制作数字温度计 不仅将 课本的知识与实践相结合 而且在实践中更加深入了解书中原本抽象的知识 这也是整个课程设计中最有收获的地方 7 附 录 源程序代码 DS18B20 温度计 C 程序 2005 2 28 通过调试 使用 AT89C2051 单片机 12MHZ 晶振 用共阳 LED 数码管 P1 口输出段码 P3 口扫描 pragma src d aa asm include reg51 h include intrins h nop 延时函数用 define Disdata P1 段码输出口 define discan P3 扫描口 define uchar unsigned char define uint unsigned int sbit DQ P3 7 温度输入口 sbit DIN P1 0 LED 小数点控制 uint h 温度小数部分用查表法 Uchar code ditab 16 0 x00 0 x01 0 x01 0 x02 0 x03 0 x03 0 x04 0 x04 0 x05 0 x06 0 x06 0 x0 7 0 x08 0 x08 0 x09 0 x09 uchar code dis 7 12 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 xff 0 xb f 共阳 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 uchar code scan con 4 0 xfe 0 xfd 0 xfb 0 xf7 列扫描控制字 uchar data temp data 2 0 x00 0 x00 读出温度暂放 uchar data display 5 0 x00 0 x00 0 x00 0 x00 0 x00 显示单元数据 共 4 个数据 一个运算暂存用 11 微秒延时函数 void delay uint t for t 0 t 显示扫描函数 scan char k for k 0 k0 i DQ 1 nop nop DQ 0 nop nop nop nop nop 5us DQ val 最低位移出 delay 6 66us val val 2 右移一位 DQ 1 delay 1 18B20 读 1 个字节函数 从总线上读取一个字节 uchar read byte void uchar i uchar value 0 for i 8 i 0 i DQ 1 nop nop value 1 DQ 0 nop nop nop nop 4us DQ 1 nop nop nop nop 4us if DQ value 0 x80 delay 6 66us DQ 1 return value 读出温度函数 read temp ow reset 总线复位 write byte 0 xCC 发 Skip ROM 命令 write byte 0 xBE 发读命令 temp data 0 read byte 温度低 8 位 temp data 1 read byte 温度高 8 位 ow reset write byte 0 xCC Skip ROM write byte 0 x44 发转换命令 温度数据处理函数 work temp uchar n 0 if temp data 1 127 temp data 1 256 temp data 1 temp data 0 256 temp data 0 n 1 负温度求补码 display 4 temp data 0 display 0 ditab display
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 足浴店总经理合同协议书
- pocib百科合同范本
- 合伙后如何分家协议合同
- 合作加盟合同协议书模板
- 检测实验员兼职合同范本
- 转让润滑油罐子合同范本
- 就业协议书模板2025
- 厂里施工安全协议书范本
- 打砂油漆合同协议书模板
- 口头协议未签订劳动合同
- 2025年综合类-农艺师考试-农艺师考试-园艺工考试-高级花卉工考试历年真题摘选带答案(5卷100题)
- 辽宁动物检疫管理办法
- 小学六年级综合实践环境保护计划
- 肺癌免疫治疗病例分享
- 2025年汽车智能驾驶技术及产业发展白皮书-清华大学
- 2025云南师范大学辅导员考试题库
- 2025年国考行测试题及答案解析
- 联邦学习框架下的设备故障智能诊断算法研究
- 财务岗位安全培训课件
- 2025年贵州省中考语文试卷真题(含答案)
- 2025至2030中国电容膜片真空计行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论