自动温度检测系统设计论文.doc_第1页
自动温度检测系统设计论文.doc_第2页
自动温度检测系统设计论文.doc_第3页
自动温度检测系统设计论文.doc_第4页
自动温度检测系统设计论文.doc_第5页
免费预览已结束,剩余58页可下载查看

下载本文档

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

文档简介

多点温度检测系统设计 第 1 页 共 63 页 西安电子科技大学西安电子科技大学 毕毕 业业 设设 计计 论论 文文 题题 目目 8 8 通道自动温度检测系统通道自动温度检测系统 学生姓名学生姓名 张齐文 学号 07211029 所所在在院院 系系 电子工程系 专业班级专业班级 电子信息工程 指导教师指导教师 2011 年 月 日 多点温度检测系统设计 第 2 页 共 63 页 目目 录录 摘要 3 ABSTRACT 4 第一章绪 论 4 1 1 系统背景 5 1 2 系统概述 5 第二章方案论证 6 2 1 传感器部分 6 2 2 主控制部分 7 2 3 系统方案 7 第三章 硬件电路设计 8 3 1 基本硬件设计思路基本硬件设计思路 8 3 1 1 基本设计框图基本设计框图 8 3 2 主要部件介绍主要部件介绍 一 一 AT89S52 单片机单片机 8 二 数字温度传感器 二 数字温度传感器 DS18B20 18 三 三 74HC595寄存器寄存器 25 第四章软件设计 28 4 1 概述 28 4 2 主程序方案 28 4 3 各模块子程序设计 29 4 4 4 4 程序设计程序设计 31 31 多点温度检测系统设计 第 3 页 共 63 页 第五章系统调试 54 5 1 分步调试 54 5 2 统一调试 54 结束语 55 参考文献 56 附录一 温度测试子程序流程图温度测试子程序流程图 57 附录二 电路原理图 59 致 谢 61 多点温度检测系统设计 第 4 页 共 63 页 摘 要 随着社会的进步和工业技术的发展 人们越来越重视温度因素 许多产品 对温度范围要求严格 而目前市场上普遍存在的温度检测仪器大都是单点 测量 同时还有温度信息传递不及时 精度不够的缺点 不利于工业控制 者根据温度变化及时做出决定 在这样的形式下 开发一种能够同时测量 多点 并且实时性高 精度高 能够综合处理多点温度信息的测量系统就 很有必要 本课题以AT89S51单片机系统为核心 能对多点的温度进行实时巡检 各 检测单元 从机 能独立完成各自功能 同时能够根据主控机的指令对温 度进行定时采集 测量结果不仅能在本地显示 而且可以利用单片机串行 口 通过RS 485总线及通信协议将采集的数据传送到主控机 进行进一步 的存档 处理 主控机负责控制指令的发送 控制各个从机进行温度采集 收集测量数据 并对测量结果 包括历史数据 进行整理 显示和存储 主控机与各从机之间能够相互联系 相互协调 从而达到系统整体统一 和谐的效果 关键词 单片机 RS485协议 温度测量 多点温度检测系统设计 第 5 页 共 63 页 Abstract As the industry and the society developing the temperature becom es more and more important and a lot of products are sensitive to temperature However temperature measuring apparatus in the market now only can check and measure the temperature of one point at the same time the temperature i nformation is not real time and the precision is low It takes a great of troubles for the industry controllers to make decision In this situation design and imple ment one applicable system which can watch measure and control th e temperature and the measuring results is real time and the prec ision is great is more essential In order to meeting this applic ation this paper talk about The Multiple Point s temperature Measuring System This system based on single chip computer can inspect and contro l multiple temperatures in real time The Slaved Machine can col lect temperature information on its own and display it on the LED module Following the Master Machine s command the Slaved Mach ine can up send the temperature information to the Master Machine through th e RS 485 bus interface and the communication protocol The Master Mach ine sends commands controls the Slaved Computer gathering and up sending the temperature data including history information and i t manages processes and stores the temperature information The M aster and Slaved Computer will exchange information and correspon d to each other so it works together perfectly 多点温度检测系统设计 第 6 页 共 63 页 Key words single chip computer RS 485 protocol measure temperature Key words temperature measure single bus digital thermometer single chip processor 第一章第一章绪绪 论论 1 1 系统背景 在工 农业生产和日常生活中 对温度的测量及控制占据着极其重要地位 首先让 我们了解一下多点温度检测系统在各个方面的应用领域 消防电气的非破坏性温度检测 电力 电讯设备之过热故障预知检测 空调系统的温度检测 各类运输工具之组件的过 热检测 保全与监视系统之应用 医疗与健诊的温度测试 化工 机械 等设备温度过 热检测 温度检测系统应用十分广阔 1 2 系统概述系统概述 本设计运用主从分布式思想 由一台上位机 PC 微型计算机 下位机 单片机 多点温度数据采集 组成两级分布式多点温度测量的巡回检测系统 该系统采用 RS 232 串行通讯标准 通过上位机 PC 控制下位机 单片机 进行现场温度采集 温度 值既可以送回主控 PC 进行数据处理 由显示器显示 也可以由下位机单独工作 实时 显示当前各点的温度值 对各点进行控制 下位机采用的是单片机基于数字温度传感器 DS18B20 的系统 DS18B20 利用单总线 的特点可以方便的实现多点温度的测量 轻松的组建传感器网络 系统的抗干扰性好 设计灵活 方便 而且适合于在恶劣的环境下进行现场温度测量 本系统可以应用在大 型工业及民用常温多点监测场合 如粮食仓储系统 楼宇自动化系统 温控制程生产线 多点温度检测系统设计 第 7 页 共 63 页 之温度影像检测 医疗与健诊的温度测试 空调系统的温度检测 石化 机械 等 第二章第二章方案论证方案论证 温度检测系统有则共同的特点 测量点多 环境复杂 布线分散 现场离监控室远 等 若采用一般温度传感器采集温度信号 则需要设计信号调理电路 A D 转换及相 应的接口电路 才能把传感器输出的模拟信号转换成数字信号送到计算机去处理 这样 由于各种因素会造成检测系统较大的偏差 又因为检测环境复杂 测量点多 信号传输 距离远及各种干扰的影响 会使检测系统的稳定性和可靠性下降 所以多点温度检测 系统的设计的关键在于两部分 温度传感器的选择和主控单元的设计 温度传感器应用 范围广泛 使用数量庞大 也高居各类传感器之首 2 1 传感器部分传感器部分 方案一 方案一 采用热敏电阻 可满足 40 摄氏度至 90 摄氏度测量范围 但热敏电阻精度 重复性 可靠性较差 对于检测 1 摄氏度的信号是不适用的 而且在温度测量系统中 采用单片 温度传感器 比如 AD590 LM35 等 但这些芯片输出的都是模拟信号 必须经过 A D 转换后 才能送给计算机 这样就使得测温装置的结构较复杂 另外 这种测温装置的一根线上只 能挂一个传感器 不能进行多点测量 即使能实现 也要用到复杂的算法 一定程度上也 增加了软件实现的难度 方案二 方案二 在多点测温系统中 传统的测温方法是将模拟信号远距离采样进行 AD 转换 而为 了获得较高的测温精度 就必须采用措施解决由长线传输 多点测量切换及放大电路零 多点温度检测系统设计 第 8 页 共 63 页 点漂移等造成的误差补偿问题 采用数字温度芯片 DS18B20 测量温度 输出信号全数字 化 便于单片机处理及控制 省去传统的测温方法的很多外围电路 且该芯片的物理化 学性很稳定 它能用做工业测温元件 此元件线形较好 在 0 100 摄氏度时 最大线 形偏差小于 1 摄氏度 DS18B20 的最大特点之一采用了单总线的数据传输 由数字温度 计 DS1820 和微控制器 AT89C51 构成的温度测量装置 它直接输出温度的数字信号 可直 接与计算机连接 这样 测温系统的结构就比较简单 体积也不大 且由于 AT89C51 可以 带多个 DSB1820 因此可以非常容易实现多点测量 轻松的组建传感器网络 采用温度芯片 DS18B20 测量温度 可以体现系统芯片化这个趋势 部分功能电路的 集成 使总体电路更简洁 搭建电路和焊接电路时更快 而且 集成块的使用 有效地 避免外界的干扰 提高测量电路的精确度 所以集成芯片的使用将成为电路发展的一种 趋势 本方案应用这一温度芯片 也是顺应这一趋势 2 2 主控制部分主控制部分 方案一 方案一 此方案采用 PC 机实现 它可在线编程 可在线仿真的功能 这让调试变得方便 且人机交互友好 但是 PC 机输出信号不能直接与 DS18B20 通信 需要通过 RS232 电平 转换兼容 硬件的合成在线调试 较为繁琐 很不简便 而且在一些环境比较恶劣的场 合 PC 机的体积大 携带安装不方便 性能不稳定 给工程带来很多麻烦 方案二 方案二 此方案采用 AT89C51 八位单片机实现 单片机软件编程的自由度大 可通过编程实 现各种各样的算术算法和逻辑控制 而且体积小 硬件实现简单 安装方便 既可以单 独对多 DS18B20 控制工作 还可以与 PC 机通信 运用主从分布式思想 由一台上位机 PC 微型计算机 下位机 单片机 多点温度数据采集 组成两级分布式多点温度测 量的巡回检测系统 实现远程控制 另外 AT89C51 在工业控制上也有着广泛的应用 编 程技术及外围功能电路的配合使用都很成熟 2 3 系统方案 综上所述 温度传感器以及主控部分都采用第二方案 多点温度检测系统设计 第 9 页 共 63 页 系统采用针对传统温度测温系统测温点少 系统兼容性及扩展性较差的特点 运用 分布式通讯的思想 设计一种可以用于大规模多点温度测量的巡回检测系统 该系统采 用的是 RS 232 串行通讯的标准 通过下位机 单片机 进行现场的温度采集 温度数 据既可以由下位机模块实时显示 也可以送回上位机进行数据处理 具有巡检速度快 扩展性好 成本低的特点 实际采用电路方案如下图 第三章第三章 硬件电路设计硬件电路设计 3 1 基本硬件设计思路基本硬件设计思路 本设计用温度传感器将被测温度转换为数字量 无需放大即可与单片机相连 CPU 采用 AT89S52 单片机 它与 MCS 51 系列单片机完全兼容 同时具有较大的存储空间 以及具有在线编程功能 减少了编程时配套工具的使用 键盘 显示通过可编程的键盘显 示接口芯片 ZLG7290 实现温度限值的设定和显示 同时使用具有实时性能的动态显示模 块 3 1 1 基本设计框图基本设计框图 下位机 AT89C51 上位机 PC 下位机 AT89C51 传感器模块 显示模块 控制模块 传感器模块 显示模块 控制模块 上位机 PC 下位机 AT89C51 传感器模块 显示模块 控制模块 传感器模块 显示模块 控制模块 多点温度检测系统设计 第 10 页 共 63 页 1 DS18B20 检测温度 将温度值送 CPU AT89S52 处理 2 CPU 接受 DS18B20 传送的温度 并送 ZLG7290 芯片 由数码管显示 3 CPU 将接受的温度与设定的最大值 最小值进行比较 如果温度超过所设温度限值 转报警处理程序 4 由小键盘控制所需显示路数的温度 并在数码管上显示 3 2 主要部件介绍主要部件介绍 一 一 AT89S52 单片机单片机 AT89S52 是一个低功耗 高性能 采用 CMOS 工艺的 8 位单片机 其片内含 8kB 的可 在线编程 ISP In systemprogrammable 的 Flash 的可反复擦写 1000 次的 Flash 只读程 序存储器 该器件采用 AtmelL 公司的高密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引脚结构 芯片内集成了通用 8 位中央处理器和 ISPFlash 存 储单元 从而使其功能更加完善 应用更加灵活 具有较高的性能价格比 使其在嵌入 式控制应用系统中有着广泛的应用前景 1 1 主要性能主要性能 与 MCS 51 单片机产品兼容 8KB 的 Flash 片内程序存储器 1000 次擦写周期 全静态 操作 0Hz 33Hz 三级加密程序存储器 32 个可编程 I O 口线 三个 16 位定时器 计 数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可 唤醒 看门狗定时器 双数据指针 掉电标识符 1 2 引脚排列及功能引脚排列及功能 VCC 电源 GND 地 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻 辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 当访问外部程序和数据存储器 时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 具有内部上拉电阻 在 flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令字节 程序校验 时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 P1 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入 口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL 多点温度检测系统设计 第 11 页 共 63 页 此外 P1 0 和 P1 2 分别作定时器 计数器 2 的外部计数输入 P1 0 T2 和时器 计数器 2 的触发输入 P1 1 T2EX 引脚号第二功能 P1 0T2 定时器 计数器 T2 的外部计数输入 时钟输出 P1 1T2EX 定时器 计数器 T2 的捕捉 重载触发信号和方向控制 P1 5MOSI 在系统编程用 P1 6MISO 在系统编程用 P1 7SCK 在系统编程用 在 flash 编程和校验时 P1 口接收低 8 位地址字节 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入 口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL 在访问外部程序存储器或用 16 位地址读取外部数据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上 拉发送 1 在使用 8 位地址 如 MOVX RI 访问外部数据存储器时 P2 口输出 P2 锁 存器的内容 在 flash 编程和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入 口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL P3 口亦作为 AT89S52 特殊功能 第二功能 使用 引脚号第二功能 P3 0RXD 串行输入 P3 1TXD 串行输出 P3 3INT1 外部中断 0 P3 4T0 定时器 0 外部输入 P3 5T1 定时器 1 外部输入 P3 6WR 外部数据存储器写选通 多点温度检测系统设计 第 12 页 共 63 页 P3 7RD 外部数据存储器写选通 在 flash 编程和校验时 P3 口也接收一些控制 RST 复位输入 晶振工作时 RST 脚持续 2 个机器周期高电平将使单片机复位 看门 狗计时完成后 RST 脚输出 96 个晶振周期的高电平 特殊寄存器 AUXR 地址 8EH 上 的 DISRTO 位可以使此功能无效 DISRTO 默认状态下 复位高电平有效 ALE PROG 地址锁存控制信号 ALE 是访问外部程序存储器时 锁存低 8 位地址的 输出脉冲 在 flash 编程时 此引脚 PROG 也用作编程输入脉冲 在一般情况下 ALE 以晶振六分之一的固定频率输出脉冲 可用来作为外部定时器或时钟使用 然而 特别强调 在每次访问外部数据存储器时 ALE 脉冲将会跳过 如果需要 通过将地 址为 8EH 的 SFR 的第 0 位置 1 ALE 操作将无效 这一位置 1 ALE 仅在执行 MOVX 或 MOVC 指令时有效 否则 ALE 将被微弱拉高 这个 ALE 使能标志位 地 址为 8EH 的 SFR 的第 0 位 的设置对微控制器处于外部执行模式下无效 PSEN 外部程序存储器选通信号 PSEN 是外部程序存储器选通信号 当 AT89S52 从外部程序存储器执行外部代码时 PSEN 在每个机器周期被激活两次 而在访问外部数据存储器时 PSEN 将不被激活 EA VPP 访问外部程序存储器控制信号 为使能从 0000H 到 FFFFH 的外部程序存储器 读取指令 EA 必须接 GND 为了执行内部程序指令 EA 应该接 VCC 在 flash 编程期间 EA 也接收 12 伏 VPP 电 XTAL1 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2 振荡器反相放大器的输出端 1 3 存储器组织和特殊功能寄存器存储器组织和特殊功能寄存器 特殊功能寄存器 SFR 的地址空间都有具体的定义 但并不是所有的地址都被定义了 片上没有定义的地址是不能用的 读这些地址 一般将得到一个随机数据 写入的数据 将会无效 用户不应该给这些未定义的地址写入数据 1 由于这些寄存器在将来可能 被赋予新的功能 复位后 这些位都为 0 定时器 2 寄存器 寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位 如表 2 3 所示 寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉 自动重载寄存器 多点温度检测系统设计 第 13 页 共 63 页 中断寄存器 各中断允许位在 IE 寄存器中 六个中断源的两个优先级也可在 IE 中设置 双数据指针寄存器 表 2 3T2CON 定时器 计数器 2 控制寄存器 T2CON 地址 0C8H 可位寻址 复位值 00000000B TF2EXF2RCLKTCLKEXEN2RT2C T2CP TL2 76543210 符号功能 TF2 定时器 2 溢出标志位 必须软件清零 RCLK 或 TCLK 1 时 该位不用置位 EXF2T2 外部标志 EXEN2 1 时 T23EX P1 1 引脚上的负跳变将引起 T2 的捕捉 重装 操作 此时 EXF2 1 在 T2 中断允许的条件下 EXF2 1 将引起中断 EXF2 位只能用 软件清除 在 T2 的向上 向下计数模式下 DCEN 1 EXF2 的置位将不引起中断 RCLK 接收时钟允许 当 RCLK 1 时 T2 的溢出脉冲可用做串行口的接收时钟信号 适用于串行模式 1 和 3 当 RCLK 0 时 T1 的溢出脉冲用做串行口接收时钟信号 TCLK 发送时钟允许 当 TCLK 1 时 T2 的溢出脉冲可用做串行口的发送时钟信号 适用于模式 1 和 3 当 TCLK 0 时 T1 的溢出脉冲可用做串行口的发送时钟信号 EXEN2T2 的外部事件 引起捕捉 重装的外部信号 允许 当 EXEN2 1 时 如果 T2 没有作串行时钟输出 即 RCLK TCLK 0 则在 T2EX P1 1 引脚的负跳变将引起 T2 的 捕捉 重装操作 当 EXEN2 0 时 T2EX P1 1 的负跳变不起作用 RT2T2 的启动 停止控制 当 TR2 1 时 T2 为外部计数方式 P1 0 脚的输入脉冲的下 降沿触发计数 当 TR2 0 时 T2 为定时器 C T2T2 的计数 定时方式的选择 当 C T2 1 时 T2 为外部计数方式 P1 0 脚的输入脉 冲的下降沿触发计数 当 C T2 0 时 T2 为定时器 CP RL2 捕捉 重装载选择 当 CP RL2 1 且 EXEN2 1 时 T2EX P1 1 引脚的负跳变将 引起捕捉操作 当 CP RL2 0 且 EXEN2 1 时 T2EX P1 1 引脚的负跳变将引起自动重 装载操作 当 CP RL2 0 且 EXEN2 0 时 T2 溢出将引起 T2 的自动重装操作 为了更有利于访问内部和外部数据存储器 系统提供了两路 16 位数据指针寄存器 位 多点温度检测系统设计 第 14 页 共 63 页 于 SFR 中 82H 83H 的 DP0 和位于 84H 85 特殊寄存器 AUXR1 中 DPS 0 选择 DP0 DPS 1 选择 DP1 用户应该在访问数据指针寄存器前先初始化 DPS 至合理的值 掉电标志位 掉电标志位 POF 位于特殊寄存器 PCON 的第四位 PCON 4 上电期间 POF 置 1 POF 可以软件控制使用与否 但不受复位影响 存储器结构 MCS 51 器件有单独的程序存储器和数据存储器 外部程序存储器和数据存储器都可以 64K 寻址 程序存储器 如果 EA 引脚接地 程序读取只从外部存储器开始 对于 89S52 如果 EA 接 VCC 程 序读写先从内部存储器 地址为 0000H 1FFFH 开始 接着从外部寻址 寻址地址为 2000H FFFFH 数据存储器 AT89S52 有 256 字节片内数据存储器 高 128 字节与特殊功能寄存器重叠 也就是说 高 128 字节与特殊功能寄存器有相同的地址 而物理上是分开的 当一条指令访问高于 7FH 的地址时 寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间 直接寻址方式访问特殊功能寄存器 SFR 堆栈操作也是间接寻址方式 因此 高 128 字节数据 RAM 也可用于堆栈空间 1 4 低功耗节电模式低功耗节电模式 有两种节电模式 空闲模式和掉电模式 空闲模式 在空闲工作模式下 CPU 处于睡眠状态 而所有片上外部设备保持激活状态 这种状 态可以通过软件产生 在这种状态下 片上 RAM 和特殊功能寄存器的内容保持不变 空闲模式可以被任一个中断或硬件复位终止 由硬件复位终止空闲模式只需两个机器周 期有效复位信号 在这种情况下 片上硬件禁止访问内部 RAM 而可以访问端口引脚 空闲模式被硬件复位终止后 为了防止预想不到的写端口 激活空闲模式的那一条指令 的下一条指令不应该是写端口或外部存储器 多点温度检测系统设计 第 15 页 共 63 页 掉电模式 在掉电模式下 晶振停止工作 激活掉电模式的指令是最后一条执行指令 片上 RAM 和特殊功能寄存器保持原值 直到掉电模式终止 掉电模式可以通过硬件复位和外部中 断退出 复位重新定义了 SFR 的值 但不改变片上 RAM 的值 在 VCC 未恢复到正常 工作电压时 硬件复位不能无效 并且应保持足够长的时间以使晶振重新工作和初始化 在空闲模式和掉电模式下各引脚的状态如表 2 4 所示 表 2 4 空闲模式和掉电模式下的外部引脚状态 模式程序存储器 ALEPSENPORT0PORT1PORT2PORT3 空闲内部 11 数据数据数据数据 空闲外部 11 浮空数据数据数据 掉电内部 00 数据数据数据数据 掉电外部 00 浮空数据数据数据 1 5 定时器定时器 AT89S52 系列单片机含有 3 个可编程定时器 计数器 T0 T1 T2 和 1 个看门狗定时器 WDT 狗定时器 WDT 是一种需要软件控制的复位方式 WDT 由 13 位计数器和特殊功能寄存器中的看 门狗定时器复位存储器 WDTRST 构成 WDT 在默认情况下无法工作 为了激活 WDT 户用必须往 WDTRST 寄存器 地址 0A6H 中依次写入 01EH 和 0E1H 当 WDT 激活后 晶振工作 WDT 在每个机器周期都会增加 WDT 计时周期依赖于外部 时钟频率 除了复位 硬件复位或 WDT 溢出复位 没有办法停止 WDT 工作 当 WDT 溢出 它将驱动 RSR 引脚一个高个电平输出 定时器 0 和定时器 1 在 AT89S52 中 定时器 0 和定时器 1 的操作与 AT89C51 AT89C52 和 MCS 51 系列单 片机一样 定时器 2 定时器 2 是一个 16 位定时 计数器 它既可以做定时器 又可以做事件计数器 其工作 多点温度检测系统设计 第 16 页 共 63 页 方式由特殊寄存器 T2CON 中的 C T2 位选择 如表 2 5 所示 定时器 2 有三种工作模 式 捕捉方式 自动重载 向下或向上计数 和波特率发生器 如表 3 所示 工作模式 由 T2CON 中的相关位选择 定时器 2 有 2 个 8 位寄存器 TH2 和 TL2 在定时工作方 式中 每个机器周期 TL2 寄存器都会加 1 由于一个机器周期由 12 个晶振周期构成 因此 计数频率就是晶振频率的 1 12 表 2 5 定时器 2 工作模式 RCLK TCLKCP RL2TR2MODE 00116 位自动重载 01116 位捕捉 1X1 波特率发生器 XX0 不用 默认在计数工作方式下 寄存器在相关外部输入角 T2 发生 1 至 0 的下降沿时增加 1 在这种方式下 每个机器周期的 S5P2 期间采样外部输入 一个机器周期采样到高电平 而下一个周期采样到低电平 计数器将加 1 在检测到跳变的这个周期的 S3P1 期间 新的计数值出现在寄存器中 因为识别 10 的跳变需要 2 个机器周期 24 个晶振周期 所以 最大的计数频率不高于晶振频率的 1 24 为了确保给定的电平在改变前采样到 一次 电平应该至少在一个完整的机器周期内保持不变 自动重载 当定时器 2 工作于 16 位自动重载模式 可对其编程实现向上计数或向下计数 这一功 能可以通过特殊寄存器 T2MOD 见表 2 6 中的 DCEN 向下计数允许位 来实现 通过复位 DCEN 被置为 0 因此 定时器 2 为向上计数 DCEN 设置后 定时器 2 就 可以取决于 T2EX 向上 向下计数 表 2 6T2MOD 定时器 2 控制寄存器 T2MOD 地址 0C9H 不可位寻址 复位值 XXXXXX00B T2OEDCEN 76543210 符号功能 无定义 预留扩展 多点温度检测系统设计 第 17 页 共 63 页 T2OE 定时器 2 输出允许位 DCEN 置 1 后 定时器 2 可配置成向上 向下计数 如图 2 2 所示 DCEN 0 时 定时器 2 自动计数 通过 T2CON 中的 EXEN2 位可以选 择两种方式 如果 EXEN2 0 定时器 2 计数 计到 0FFFFH 后置位 TF2 溢出标志 计 数溢出也使得定时器寄存器重新从 RCAP2H 和 RCAP2L 中加载 16 位值 定时器工作 于捕捉模式 RCAP2H 和 RCAP2L 的值可以由软件预设 如果 EXEN2 1 计数溢出或 在外部 T2EX P1 1 引脚上的 1 到 0 的下跳变都会触发 16 位重载 这个跳变也置位 EXF2 中断标志位 如图 2 2 所示 置位 DCEN 允许定时器 2 向上或向下计数 在这种模式下 T2EX 引 脚控制着计数的方向 T2EX 上的一个逻辑 1 使得定时器 2 向上计数 定时器计 0FFFFH 溢出 并置位 TF2 定时器的溢出也使得 RCAP2H 和 RCAP2L 中的 16 位值分 别加载到定时器存储器 TH2 和 TL2 中 T2EX 上的一个逻辑 0 使得定时器 2 向下计数 当 TH2 和 TL2 分别等于 RCAP2H 和 RCAP2L 中的值的时候 计数器下溢 计数器下 溢 置位 TF2 并将 0FFFFH 加载到定时器存储器中 定时器 2 上溢或下溢 外部中断 标志位 EXF2 被锁死 在这种工作模式下 EXF2 不能触发中断 图 2 2 定时器 2 重载模式 DCEN 0 波特率发生器 通过设置 T2CON 见表 2 4 中的 TCLK 或 RCLK 可选择定时器 2 作为波特率发生器 如果定时器 2 作为发送或接收波特率发生器 定时器 1 可用作它用 发送和接收的波特 率可以不同 如图 2 3 所示 设置 RCLK 和 或 TCLK 可以使定时器 2 工作于波特率 产生模式 波特率产生工作模式与自动重载模式相似 因此 TH2 的翻转使得定时器 2 寄存器重 载被软件预置 16 位值的 RCAP2H 和 RCAP2L 中的值 模式 1 和模式 3 的波特率由定时器 2 溢出速率决定 具体如下公式 定时器可设置成定时器 也可为计数器 在多数应用情况下 一般配置成定时方式 CP T2 0 定时器 2 用于定时器操作与波特率发生器有所不同 它在每一机器周期 1 12 晶振周期 都会增加 然而 作为波特率发生器 它在每一机器状态 1 2 晶振 周期 都会增加 波特率计算公式如下 多点温度检测系统设计 第 18 页 共 63 页 图 2 3 定时器 2 波特率发生器模式 其中 RCAP2H RCAP2L 是 RCAP2H 和 RCAP2L 组成的 16 位无符号整数 定时器 2 作为波特率发生器 如图 2 3 所示 图中仅仅在 T2CON 中 RCLK 或 TCLK 1 才有 效 特别强调 TH2 的翻转并不置位 TF2 也不产生中断 EXEN2 置位后 T2EX 引 脚上 1 0 的下跳变不会使 RCAP2H RCAP2L 重载到 TH2 TL2 中 因此 定 时器 2 作为波特率发生器 T2EX 也还可以作为一个额外的外部中断 定时器 2 处于波特率产生模式 TR2 1 定时器 2 正常工作 TH2 或 TL2 不应该读写 在这种模式下 定时器在每一状态都会增加 读或写就不会准确 寄存器 RCAP2 可以 读 但不能写 因为写可能和重载交迭 造成写和重载错误 在读写定时器 2 或 RCAP2 寄存器时 应该关闭定时器 TR2 清 0 1 6 中断中断 AT89S52 有 6 个中断源 两个外部中断 INT0 和 INT1 三个定时中断 定时器 0 1 2 和一个串行中断 如图 2 4 所示 每个中断源都可以通过置位或清除特殊寄 存器 IE 中的相关中断允许控制位分别使得中断源有效或无效 IE 还包括一个中断允许 总控制位 EA 它能一次禁止所有中断 如表 2 7 所示 IE 6 位是不可用的 对于 AT89S52 IE 5 位也是不能用的 用户软件不 应给这些位写 1 它们为 AT89 系列新产品预留 定时器 2 可以被寄存器 T2CON 中的 TF2 和 EXF2 的或逻辑触发 程序进入中断服务后 这些标志位都可以由硬件清 0 实际上 中断服务程序必须判定是否是 TF2 或 EXF2 激 活中断 标志位也必须由软件清 0 定时器 0 和定时器 1 标志位 TF0 和 TF1 在计数溢出的那个周期的 S5P2 被置位 它们的 值一直到下一个周期被电路捕捉下来 然而 定时器 2 的标志位 TF2 在计数溢出的那 个周期的 S2P2 被置位 在同一个周期被电路捕捉下来 EA ET2ESET1EX1ET0EX0 中断允许控制位 1 允许中断 中断允许控制位 0 禁止中断 符号位地址功能 EAIE 7 中断总允许控制位 EA 0 中断禁止 EA 1 各中断由各自的控制位设定 多点温度检测系统设计 第 19 页 共 63 页 IE 6 预留 ET2IE 5 定时器 2 中断允许控制位 ESIE 4 串行口中断允许控制位 ET1IE 3 定时器 1 中断允许控制位 EX1IE 2 外部中断 1 允许控制位 ET0IE 1 定时器 0 中断允许控制位 EX0IE 0 外部中断 1 允许控制位 1 7 时钟时钟 如图 2 5 所示 AT89S52 单片机有一个用于构成内部振荡器的反相放大器 XTAL1 和 XTAL2 分别是放大器的输入 输出端 石英晶体和陶瓷谐振器都可以用来一起构成自 激振荡器 从外部时钟源驱动器件的话 XTAL2 可以不接 而从 XTAL1 接入 如图 2 6 所示 由于外部时钟信号经过二分频触发后作为外部时钟电路输入的 所以对外部 时钟信号的占空比没有其它要求 最长低电平持续时间和最少高电平持续时间等还是要 符合要求的 二 数字温度传感器 二 数字温度传感器 DS18B20 2 1 DS18B20 的描述的描述 DS18B20 是 DALLAS 公司生产的一线式数字温度传感器 具有 3 引脚 TO 92 小 体积封装形式 温度测量范围为 55 125 可编程为 9 位 12 位 A D 转换精度 测温分辨率可达 0 0625 被测温度用符号扩展的 16 位数字量方式串行输出 其工作 电源既可在远端引入 也可采用寄生电源方式产生 多个 DS18B20 可以并联到 3 根或 2 根线上 CPU 只需一根端口线就能与诸多 DS18B20 通信 占用微处理器的端口较少 可节省大量的引线和逻辑电路 现场温度直接以 一线总线 的数字方式传输 大大提高 了系统的抗干扰性 适合于恶劣环境的现场温度测量 如 环境控制 设备或过程控制 测温类消费电子产品等 2 2 DS18B20 的主要特性的主要特性 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由数据线供电 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理 器与 DS18B20 的双向通讯 多点温度检测系统设计 第 20 页 共 63 页 DS18B20 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现组网多点 测温 DS18B20 在使用中不需要任何外围元件 全部传感元件及转换电路集成在形如一只三 极管的集成电路内 温度范围 55 125 在 10 85 时精度为 0 5 可编程的分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 可实现高精度测温 在 9 位分辨率时最多在 93 75ms 内把温度转换为数字 12 位分辨率时最多在 750ms 内 把温度值转换为数字 速度更快 测量结果直接输出数字温度信号 以 一线总线 串行传送给 CPU 同时可传送 CRC 校 验码 具有极强的抗干扰纠错能力 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工作 2 3 DS18B20 内部结构内部结构 1 DS18B20 的内部结构如下图所示 DS18B20 内部结构图 2 4 工作过程及时序工作过程及时序 DSl820 工作过程中的协议如下 初始化 RoM 操作命令 存储器操作命令 处理数据 多点温度检测系统设计 第 21 页 共 63 页 初始化 单总线上的所有处理均从初始化开始 ROM 操作品令 总线主机检测到 DSl820 的存在便可以发出 ROM 操作命令之一这些命令如 下表 指令代码 ReadROM 读 ROM 33H MatchROM 匹配 ROM 55H SkipROM 跳过 ROM CCH SearchROM 搜索 ROM F0H Alarmsearch 告警搜索 ECH 存储器操作命令 指令代码 WriteScratchpad 写暂存存储器 4EH ReadScratchpad 读暂存存储器 BEH CopyScratchpad 复制暂存存储器 48H ConvertTemperature 温度变换 44H RecallEPROM 重新调出 B8H ReadPowersupply 读电源 B4H 时序 主机使用时间隙 timeslots 来读写 DSl820 的数据位和写命令字的位 初始化 主机总线 to 时刻发送一复位脉冲 最短为 480us 的低电平信号 接着在 tl 时刻释放总线 并进入接收状态 DSl820 在检测到总线的上升沿之后 等待 15 60us 接着 DS1820 在 t2 时刻发出存在脉冲 低电平持续 60 240us 写时间隙 当主机总线 to 时刻从高拉至低电平时 就产生写时间隙 从 to 时刻开始 15us 之内应将 所需写的位送到总线上 DSl820 在 to 后 15 60us 间对总线采样 若低电平 写入的位 多点温度检测系统设计 第 22 页 共 63 页 是 0 若高电平 写入的位是 1 连续写 2 位间的间隙应大于 1us 读时间隙 主机总线 to 时刻从高拉至低电平时 总线只须保持低电平 l7ts 之后在 t1 时刻将总线 拉高 产生读时间隙 读时间隙在 t1 时刻后 t2 时刻前有效 tz 距 to 为 15 捍 s 也就是 说 tz 时刻前主机必须完成读位 并在 to 后的 60 s 120fzs 内释放总线 读位子程序 读得的位到 C 中 2 5 系统底层电路的功能系统底层电路的功能主要包括 多点温度测试及其相关处理 实时显示温度信息 与上位机通讯传输温度数据 A A 开关状态的可靠输入开关状态的可靠输入 键开关状态的可靠输入有两种解决方法 一种是软件去抖动 它是在检测到有键 按下时 执行一个 10ms 的延时程序后 再确认该键电平是否仍保持闭合状态电平 如 保持闭合状态电平则确认为真正键按下状态 从而消除了抖动影响 另一种为硬件去 抖动 即为按键添加一个锁存器 两种方法都简单易行 本设计采用的是硬件去抖 B B 对按键进行编码给定键值或给出键号对按键进行编码给定键值或给出键号 对于按键无论有无编码 以及采用什么编码 最后都要转换成为与累加器中数值相 对应的键值 以实现按键功能程序的散转转移 为使编码间隔小 散转入口地址安排方 便 常采用依次序排列的键号 拨码开关值拨码开关值含义含义 0000 实时显示通道一的温度值 0001 实时显示通道二的温度值 0010 实时显示通道三的温度值 0011 实时显示通道四的温度值 0100 实时显示通道五的温度值 0101 实时显示通道六的温度值 0110 实时显示通道七的温度值 0111 实时显示通道八的温度值 1 自动循环显示所有通道的温度 多点温度检测系统设计 第 23 页 共 63 页 C C 温度显示电路温度显示电路 设计采用的是共阴极七段数码管 显示方式有动态扫描和静态显示 两种方法在 本设计中皆可 由于静态扫描要用到多片串入并出芯片 考虑到电路板成本计算 本人 采用是节约硬件资源的动态扫描方式 即用两块芯片就可以完成显示功能 显示数据由 4511 译码器输出 ULN2003 为位驱动扫描信号 具体电路图如下 DS18B20 有 4 个主要的数据部件 64 位激光 ROM 64 位激光 ROM 从高位到低位依次为 8 位 CRC 48 位序列号和 8 位家 族代码 28H 组成 温度灵敏元件 非易失性温度报警触发器 TH 和 TL 可通过软件写入用户报警上下限值 配置寄存器 配置寄存器为高速暂存存储器中的第五个字节 DS18B20 在 0 工作时 按此寄存器中的分辨率将温度转换成相应精度的数值 其各位定义如图所示 多点温度检测系统设计 第 24 页 共 63 页 TMR1R011111 MSB DS18B20 配置寄存器结构图 LSB 其中 TM 测试模式标志位 出厂时被写入 0 不能改变 R0 R1 温度计分辨率 设置位 其对应四种分辨率如下表所列 出厂时 R0 R1 置为缺省值 R0 1 R1 1 即 12 位分辨率 用户可根据需要改写配置寄存器以获得合适的分辨率 配置寄存器与分辨率关系表 R0R1 温度计分辨率 bit最大转换时间 us 00993 75 0110187 5 1011375 1112750 2 高速暂存存储器 高速暂存存储器由 9 个字节组成 其分配如下图所示 当温度转换命令发布后 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节 单 片机可通过单线接口读到该数据 读取时低位在前 高位在后 数据格式如图所示 对 应的温度计算 当符号位 S 0 时 直接将二进制位转换为十进制 当 S 1 时 先将补码 变为原码 再计算十进制值 温度低位温度高位 THTL 配置保留保留保留8 位 CRC LSB DS18B20 存储器映像图 MSB 温度值格式图 DS18B20 温度数据表 2 23 32 22 22 21 12 20 02 2 1 12 2 2 22 2 3 32 2 4 4 MSBMSBLSBLSB S SS SS SS SS S2 26 62 25 52 24 4 多点温度检测系统设计 第 25 页 共 63 页 典型对应的温度值表 温度 二进制表示十六进制表示 125 25 0625 10 125 0 5 0 0 5 10 125 25 0625 55 00000111 11010000 00000001 10010001 00000000 10100010 00000000 00001000 00000000 00000000 11111111 11111000 11111111 01011110 11111110 01101111 11111100 10010000 07D0H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H DS18B20 最大的特点是单总线数据传输方

温馨提示

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

评论

0/150

提交评论