




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程设计报告 模板模板 1摘要随着时代的进步和发展 单片机技术已经普及到我们生活 工 作 科研 各个领域 已经成为一种比较成熟的技术 本文将介绍一 种基于单片机控制的数字温度计关键词单片机 数字控制 温度计 DS18B20 89s5222引言随着人们生活水平的不断提高 单片机控制 无疑是人们追求的目标之一 它所给人带来的方便也是不可否定的 其中数字温度计就是一个典型的例子 但人们对它的要求越来越 高 要为现代人工作 科研 生活 提供更好的更方便的设施就需 要从数单片机技术入手 一切向着数字化控制 智能化控制方向发 展 本设计所介绍的数字温度计与传统的温度计相比 具有读数方便 测温范围广 测温准确 其输出温度采用数字显示 主要用于对测 温比较准确的场所 或科研实验室使用 该设计控制器使用单片机S TC89C51 测温传感器使用DS18B20 用3位共阳极LED数码管以串口 传送数据 实现温度显示 能准确达到以上要求 3内容及要求3 1设计内容1 利用数字温度传感器DS18B20设计环境温 度检测器 2 利用给定的数据采集板 完成环境温度的数据采集工 作 3 完成信号的数字滤波 环境温度显示等程序设计工作 3 2设计要求1 装置的结构和电路原理图 2 调试过程 说明发现的向题及处理过程 3 分析存在的问题 4 收获与改进方案 4总体计设计方案4 1方案提出考虑到用温度传感器 在单片机电路 设计中 大多都是使用传感器 所以这是非常容易想到的 所以可 以采用一只温度传感器DS18B20 此传感器 可以很容易直接读取被 测温度值 进行转换 就可以满足设计要求 4 2总体设计框图温度计电路设计总体设计方框图如图1所示 控制 器采用单片机3AT89S52 温度传感器采用DS18B20 用4位LED数码管 实现温度显示 5系统工作基本原理DS18B20温度传感器是美国DALLAS半导体公司最 新推出的一种改进型智能温度传感器 与传统的热敏电阻等测温元 件相比 它能直接读出被测温度 并且可根据实际要求通过简单的 编程实现 位的数字值读数方式 DS18B20的性能特点如下 独特的单线接口仅需要一个端口引脚进行 通信 多个DS18B20可以并联在惟一的三线上 实现多点组网功能 无须外部器件 可通过数据线供电 电压范围为3 0 5 5 零待机功耗 温度以 或 位数字 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度 温度报警条件 的器件 负电压特性 电源极性接反时 温度计不会因发热而烧 毁 但不能正常工作 主控制器LED显示温度传感器单片机复位时钟 振荡ISP接口4DS18B20采用 脚PR 35封装或 脚SOIC封装 其内部 结构框图如图2所示64位ROM的结构开始 位是产品类型的编号 接 着是每个器件的惟一的序号 共有48位 最后 位是前面56位的CRC 检验码 这也是多个DS18B20可以采用一线进行通信的原因 温度报警触发器 和 可通过软件写入户报警上下限 DS18B20温度传感器的内部存储器还包括一个高速暂存 和一个 非易失性的可电擦除的EERAM 高速暂存RAM的结构为 字节的存储器 结构如图3所示 头 个字节包含测得的温度信息 第 和第 字节 和 的拷 贝 是易失的 每次上电复位时被刷新 第 个字节 为配置寄存器 它的内容用于确定温度值的数字转换 分辨率 DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值 该字节各位的定义如图3所示 低 位一直为 是工作模式位 用于设置DS18B20在工作模式 还是在测试模式 DS18B20出厂时该位被设置为 用户要去改动 R1和 0决定温度转换的精度位数 来设置分辨率 TM R11R01111 温度LSB温度MSB TH用户字节1TL用户字节2配置寄存器保留C64位ROM和单线接口高速 缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置 寄存器8位CRC发生器Vdd5由表1可见 DS18B20温度转换的时间比较 长 而且分辨率越高 所需要的温度数据转换时间越长 因此 在实际应用中要将分辨率和转换时间权衡考虑 高速暂存 的第 字节保留未用 表现为全逻辑 第 字节读出前面所有 字节的CRC码 可用来检验数据 从而保证 通信数据的正确性 当DS18B20接收到温度转换命令后 开始启动转换 转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在 高速暂存存储器的第 字节 单片机可以通过单线接口读出该数据 读数据时低位在先 高位在 后 数据格式以0 0625 LSB形式表示 当符号位 时 表示测得的温度值为正值 可以直接将二进制 位转换为十进制 当符号位 时 表示测得的温度值为负值 要先将补码变成原码 再计算十进制数值 表2是一部分温度值对应的二进制温度数据 表1DS18B20温度转换时间表R00101R100119101112分辨率 位温度最 大转向时间 ms93 75187 5375750 DS18B20完成温度转换后 就把测 得的温度值与RAM中的TH T 字节内容作比较 若 TH或T TL 则将该器件内的报警标志位置位 并对主机发出 的报警搜索命令作出响应 因此 可用多只DS18B20同时测量温度并进行报警搜索 在64位ROM的最高有效字节中存储有循环冗余检验码 CRC 主机ROM的前56位来计算CRC值 并和存入DS18B20的CRC值作比较 以判断主机收到的ROM数据是否正确 DS18B20的测温原理是这这样的 器件中低温度系数晶振的振荡保留 保留CRC6频率受温度的影响很小 用于产生固定频率的脉冲信号送 给减法计数器 高温度系数晶振随温度变化其振荡频率明显改变 所产生的信号作为减法计数器 的脉冲输入 器件中还有一个计数门 当计数门打开时 DS18B20就对低温度系数 振荡器产生的时钟脉冲进行计数进而完成温度测量 计数门的开启时间由高温度系数振荡器来决定 每次测量前 首先 将 55 所对应的一个基数分别置入减法计数器 温度寄存器中 计数器 和温度寄存器被预置在 55 所对应的一个基数值 减法计数器 对低温度系数晶振产生的脉冲信号进行减法计数 当 减法计数器 的预置值减到 时 温度寄存器的值将加 减法计 数器 的预置将重新被装入 减法计数器 重新开始对低温度系数 晶振产生的脉冲信号进行计数 如此循环直到减法计数器计数到 时 停止温度寄存器的累加 此时温度寄存器中的数值就是所测温 度值 其输出用于修正减法计数器的预置值 只要计数器门仍未关闭就重 复上述过程 直到温度寄存器值大致被测温度值 表2一部分温度对应值表温度 二进制表示十六进制表示 12500000 1111101000007D0H 8500000101010100000550H 25 062500000001100 100000191H 10 125000000001010000100A2H 0 500000000000000100 008H000000000000010000000H 0 51111111111110000FFF8H 10 1251111111101011110FF5EH 25 06251111111001101111FE6FH 551111110010010000FC90H另外 由于DS18B20单线通信功能是分时 完成的 它有严格的时隙概念 因此读写时序很重要 系统对DS18B20的各种操作按协议进行 操作协议为初使化DS18B20 发复位脉冲 发ROM功能命令 发存 储器操作命令 处理数据76系统整体硬件电路 原理图 主板电路系 统整体硬件电路包括 传感器数据采集电路 温度显示电路 单片 机主板电路等 如图所示 85系统软件设计5 1程序设计组成 系统程序主要包括主程序 读出 温度子程序 温度转换命令子程序 计算温度子程序 显示数据刷 新子程序等 5 2程序代码 程序名称DS18B20数码管温度显示简要说明开机时对DS 18B20进行检测 如果DS18B20检测不正常则关闭显示 四位数码管 显示温度 若高位为0则隐藏 include define uintunsigned int define ucharunsigned char 宏定义sbit DQ P3 3 定义DS18B20端口DQ sbitDIN P0 7 小数点uchar presence uchar codeLEDData 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 xff uchar datatemp data 2 0 x00 0 x00 uchar datadisplay 5 0 x00 0 x00 0 x00 0 x00 0 x00 uchar codeditab 16 0 x00 0 x01 0 x01 0 x02 0 x03 0 x03 0 x04 0 x04 0 x05 0 x06 0 x06 0 x07 0 x08 0 x08 0 x09 0 x09 bit flash 0 显示开关标记 延时子程序 void Delay uint num while num 9 初始化DS18B20 Init DS18B20 void DQ 1 D Q复位Delay 8 稍做延时DQ 0 单片机将DQ拉低Delay 90 精确延时大于480us DQ 1 拉高总线Delay 8 presence DQ 如果 0则初始化成功 1则初始化失败Delay 100 DQ 1 return presence 返回信号 0 presence 1 no presence 读字节子程序 ReadOneChar void 读一个 字节 uchar i 0 uchar dat 0 for i 8 i 0 i DQ 0 给脉冲信号dat 1 DQ 1 给脉冲信号if DQ dat 0 x80 Delay 4 return dat 写字节子程序 10WriteOneChar uc har dat 写一个字节 uchar i 0 for i 8 i 0 i DQ 0 DQ datDelay 5 DQ 1 dat 1 读温度子程序 Read Temperatur e void 读取温度 Init DS18B20 if presence 1 flash 1 e lse flash 0 WriteOneChar 0 xCC 跳过读序号列号的操作WriteO neChar 0 x44 启动温度转换Init DS18B20 WriteOneChar 0 xCC 跳过读序号列号的操作WriteOneChar 0 xBE 读取温度寄存器 temp data 0 ReadOneChar 温度低8位temp data 1 ReadOneC har 温度高8位 11 显示子程序 Disp Temperature 显示温度 uchar n 0 display 4 temp data 0 display 0 ditab display 4 查表得小数位的值display 4 temp data 0 display 3 display 4 100 display 1 display 4 100 display 2 display 1 10 display 1 display 1 10 if display 3 高位为0 不显示 display 3 0 x0a if display 2 次高位为0 不显示display 2 0 x0a P0 LEDData display 0 显示小数位P2 0 xf7 Delay 250 P0 LEDData display 1 显示个位DIN 0 小数点P2 0 xf b Delay 250 P0 LEDData display 2 显示十位P2 0 xfd Delay 250 P0 LEDData display 3 显示百位P2 0 xfe 12Delay 250 P2 0 xff 关闭显示 主函数 void main void while 1 Read Temperature if flash 0 Disp Temperature els e P2 0 xff DS18B20不正常 关闭显示 END 8系统调试 结果系统显示不正常 9结果分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集安市2025-2026学年九年级下学期语文月考测试试卷
- 高速铁路行车安全课件
- 高速铁路工务安全课件
- 电脑知识培训技术课程课件
- 建设工程涉及土地利用总体规划修改服务合同
- 电脑打开课件显示问题
- qe考试题及答案
- 电磁学知识培训心得总结
- 电焊知识点培训总结课件
- 电焊班基础知识培训课件
- 乡镇卫生院服务能力调查表
- 景区旅游安全风险评估报告
- 江西天宇化工有限公司30万吨年离子膜氯碱项目环境影响报告书
- 职业学院食品药品监督管理专业核心课《餐饮食品安全控制与管理》课程标准
- 《高危妊娠》课件
- 顺丰快递员工入职合同范本
- 开学第一课(班主任)(课件)-小学生主题班会
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 常用急救药品课件
- 幼儿园食品安全培训内容资料
- 人教部编版语文八年级上册第一单元分层作业设计12
评论
0/150
提交评论