




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘摘 要要 DS18B20 是一种可组网的高精度数字式温度传感器 由于其具有单总线的独 特优点 可以使用户轻松地组建起传感器网络 并可使多点温度测量电路变得简 单 可靠 本文结合实际使用经验 介绍了 DS18B20 数字温度传感器在单片机下 的硬件连接及软件编程 并给出了软件流程图 该系统由上位机和下位机两大部分组成 下位机实现温度的检测并提供标准 RS232 通信接口 芯片使用了 ATMEL 公司的 AT89C51 单片机和 DALLAS 公司的 DS18B20 数字温度传感器 上位机部分使用了通用 PC 该系统可应用于仓库测温 楼宇空调控制和生产过程监控等领域 关键字关键字 温度测量 单总线 数字温度传感器 单片机 Abstract As a kind of high accuracy digital net temperature sensor DS18 B20 can be used building a sensor net easily It can also make the net simple and reliable with it s special 1 wire interface This paper introduces the application of DS18B20 with single chip processor Thesystem is constituted by two parts the temperature measured part and displayed part The temperature measured part has a RS232 interface It used AT89C51 of ATMEL company and DS18B20 of DALLAS company The displayed part uses PC This system is applied in such domains as warehouse detecting temperature air conditioner controlling system in building and supervisory productive process etc Key words temperature measure single bus digital thermometer single chip processor 目录 摘摘 要要 1 ABSTRACT 2 第一章第一章 绪绪 论论 4 1 11 1 系统背景系统背景 4 1 21 2 系统概述系统概述 4 第二章第二章 方案论证方案论证 5 2 12 1 传感器部分传感器部分 5 2 22 2 主控制部分主控制部分 6 2 32 3 系统方案系统方案 6 第三章第三章 硬件电路设计硬件电路设计 8 3 13 1 单片机单片机 STC89C51STC89C51 介绍介绍 8 3 23 2 电源以及看门狗电路电源以及看门狗电路 9 3 33 3 温度采集电路温度采集电路 11 3 43 4 键盘以及显示电路键盘以及显示电路 15 3 53 5 串口通讯电路串口通讯电路 18 3 63 6 整体电路整体电路 19 第三章第三章 软件设计软件设计 20 4 14 1 概述概述 20 4 24 2 主程序方案主程序方案 20 4 34 3 各模块子程序设计各模块子程序设计 21 第四章第四章 系统调试系统调试 26 5 15 1 分步调试分步调试 26 5 25 2 统一调试统一调试 26 总结总结 27 参考文献参考文献 28 附录一 电路原理图附录一 电路原理图 29 第一章第一章绪绪 论论 1 1 1 1 系统背景系统背景 在工 农业生产和日常生活中 对温度的测量及控制占据着极其重要地位 首先让我们了解一下多点温度检测系统在各个方面的应用领域 消防电气的非破 坏性温度检测 电力 电讯设备之过热故障预知检测 空调系统的温度检测 各 类运输工具之组件的过热检测 保全与监视系统之应用 医疗与健诊的温度测试 化工 机械等设备温度过热检测 温度检测系统应用十分广阔 1 2 1 2 系统概述系统概述 本设计运用主从分布式思想 由一台上位机 PC 微型计算机 下位机 单 片机 多点温度数据采集 组成两级分布式多点温度测量的巡回检测系统 该系 统采用 RS 232 串行通讯标准 通过上位机 PC 控制下位机 单片机 进行现 场温度采集 温度值既可以送回主控 PC 进行数据处理 由显示器显示 也可以由 下位机单独工作 实时显示当前各点的温度值 对各点进行控制 下位机采用的是单片机基于数字温度传感器 DS18B20 的系统 DS18B20 利用 单总线的特点可以方便的实现多点温度的测量 轻松的组建传感器网络 系统的 抗干扰性好 设计灵活 方便 而且适合于在恶劣的环境下进行现场温度测量 本系统可以应用在大型工业及民用常温多点监测场合 如粮食仓储系统 楼宇自 动化系统 温控制程生产线之温度影像检测 医疗与健诊的温度测试 空调系统 的温度检测 石化 机械等 第二章第二章方案论证方案论证 温度检测系统有着共同的特点 测量点多 环境复杂 布线分散 现场离监 控室远等 若采用一般温度传感器采集温度信号 则需要设计信号调理电路 A D 转换及相应的接口电路 才能把传感器输出的模拟信号转换成数字信号送到计算 机去处理 这样 由于各种因素会造成检测系统较大的偏差 又因为检测环境复 杂 测量点多 信号传输距离远及各种干扰的影响 会使检测系统的稳定性和可 靠性下降 所以多点温度检测系统的设计的关键在于两部分 温度传感器的选择 和主控单元的设计 温度传感器应用范围广泛 使用数量庞大 也高居各类传感 器之首 2 1 2 1 传感器部分传感器部分 方方案一 采用热敏电阻 可满足 40 摄氏度至 90 摄氏度测量范围 但热敏电阻精度 重复性 可靠性较差 对于检测 1 摄氏度的信号是不适用的 而且在温度测量系 统中 采用单片温度传感器 比如 AD590 LM35 等 但这些芯片输出的都是模拟信号 必须经过 A D 转换后才能送给计算机 这样就使得测温装置的结构较复杂 另外 这 种测温装置的一根线上只能挂一个传感器 不能进行多点测量 即使能实现 也要用 到复杂的算法 一定程度上也增加了软件实现的难度 方案二方案二 在多点测温系统中 传统的测温方法是将模拟信号远距离采样进行 AD 转换 而为了获得较高的测温精度 就必须采用措施解决由长线传输 多点测量切换及 放大电路零点漂移等造成的误差补偿问题 采用数字温度芯片 DS18B20 测量温度 输出信号全数字化 便于单片机处理及控制 省去传统的测温方法的很多外围电 路 且该芯片的物理化学性很稳定 它能用做工业测温元件 此元件线形较好 在 0 100 摄氏度时 最大线形偏差小于 1 摄氏度 DS18B20 的最大特点之一采用 了单总线的数据传输 由数字温度计 DS1820 和微控制器 AT89C51 构成的温度测 量装置 它直接输出温度的数字信号 可直接与计算机连接 这样 测温系统的结构就 比较简单 体积也不大 且由于 AT89C51 可以带多个 DS18B20 因此可以非常容易实 现多点测量 轻松的组建传感器网络 采用温度芯片 DS18B20 测量温度 可以体现系统芯片化这个趋势 部分功能 电路的集成 使总体电路更简洁 搭建电路和焊接电路时更快 而且 集成块的 使用 有效地避免外界的干扰 提高测量电路的精确度 所以集成芯片的使用将 成为电路发展的一种趋势 本方案应用这一温度芯片 也是顺应这一趋势 2 2 2 2 主控制部分主控制部分 方案一方案一 此方案采用 PC 机实现 它可在线编程 可在线仿真的功能 这让调试变得方 便 且人机交互友好 但是 PC 机输出信号不能直接与 DS18B20 通信 需要通过 RS232 电平转换兼容 硬件的合成在线调试 较为繁琐 很不简便 而且在一些 环境比较恶劣的场合 PC 机的体积大 携带安装不方便 性能不稳定 给工程带 来很多麻烦 方案二方案二 此方案采用 AT89C51 八位单片机实现 单片机软件编程的自由度大 可通过 编程实现各种各样的算术算法和逻辑控制 而且体积小 硬件实现简单 安装方 便 既可以单独对多 DS18B20 控制工作 还可以与 PC 机通信 运用主从分布式思 想 由一台上位机 PC 微型计算机 下位机 单片机 多点温度数据采集 组 成两级分布式多点温度测量的巡回检测系统 实现远程控制 另外 AT89C51 在工业 控制上也有着广泛的应用 编程技术及外围功能电路的配合使用都很成熟 2 3 2 3 系统方案系统方案 综上所述 温度传感器以及主控部分都采用第二方案 系统采用针对传统温度测温系统测温点少 系统兼容性及扩展性较差的特点 运用分布式通讯的思想 设计一种可以用于大规模多点温度测量的巡回检测系统 该系统采用的是 RS 232 串行通讯的标准 通过下位机 单片机 进行现场的温度 采集 温度数据既可以由下位机模块实时显示 也可以送回上位机进行数据处理 具有巡检速度快 扩展性好 成本低的特点 实际采用电路方案如图 2 1 图 2 1 第三章第三章 硬件电路设计硬件电路设计 系统底层电路的功能主要包括 多点温度测试及其相关处理 实时显示温度 信息 与上位机通讯传输温度数据 硬件设计主要包括以下几个模块 电源以及 看门狗电路 键盘以及显示电路 温度测试电路 串口通讯电路 下面对电路分 模块进行说明 3 1 3 1 单片机单片机 STC89C51STC89C51 介绍介绍 STC89C51 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编 下位机 AT89C51 上位机 PC 下位机 AT89C51 传感器模块 显示模块 控制模块 传感器模块 显示模块 控制模块 上位机 PC 下位机 AT89C51 传感器模块 显示模块 控制模块 传感器模块 显示模块 控制模块 程 Flash 存储器 使用宏晶公司高密度非易失性存储器技术制造 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规 编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 STC89C51 为众多嵌入式控制应用系统提供高灵活 超有效的解决方案 其内部主 要由 CPU RAM ROM 通用 I O 及总线构成 内部结构图如 3 1 所示 8051 时钟 程序存储器数据存储器定时计数器 并行 I O 口串行通信口中断系统 数据 总线 地址 总线 控制 总线 图 3 1 CPU 由运算和控制逻辑组成 同时还包括中断系统和部分外部特殊功能寄 存器 RAM 用以存放可以读写的数据 如运算的中间结果 最终结果以及欲显示 的数据 ROM 用以存放程序 一些原始数据和表格 STC89C51具有以下标准功能 8k字节Flash 256字节RAM 32 位I O 口线 看门狗定时器 2 个数据指针 三个16 位定时器 计数器 一个6向量2级中断结构 全双工串行口 片内晶振及时钟电路 另外 STC89C51 可降至0Hz 静态逻辑操 作 支持2种软件可选择节电模式 空闲模式下 CPU停止工作 允许RAM 定时 器 计数器 串口 中断继续工作 掉电保护方式下 RAM内容被保存 振荡器被 冻结 单片机一切工作停止 直到下一个中断或硬件复位为止 1 振荡周期 也称时钟周期 是指为单片机提供时钟脉冲信号的振荡源的周期 2 状态周期 每个状态周期为时钟周期的 2 倍 是振荡周期经二分频后得到 的 3 机器周期 一个机器周期包含 6 个状态周期 S1 S6 也就是 12 个时钟周 期 在一个机器周期内 CPU 可以完成一个独立的操作 4 指令周期 它是指 CPU 完成一条操作所需的全部时间 每条指令执行时间 都是有一个或几个机器周期组成 STC89C51 系统中 有单周期指令 双周 期指令和四周期指令 3 2 3 2 电源以及看门狗电路电源以及看门狗电路 a 电源电路 因为单片机工作电源为 5V 且底层电路功耗很小 采用 7805 三端稳压片即 可满足要求 具体电路图如图 3 2 图 3 2 b 看门狗电路 考虑到底层电路板的工作环境相对恶劣 单片机会受到周围环境的干扰 而 出现程序跑飞 死机等一些不可预知的不正常工作现象 工作人员也不可能到现 场对单片机重起 本设计为单片机电路添加一个外部看门狗电路 定时查询单片 机的工作状态 一但发现异常即对单片机延时重起 保证系统安全可靠的运行 NE56604 能为多种微处理器和逻辑系统提供复位信号 其门限电平为 4 2V 在电源突然掉电或电源电压下降到低于门限电平时 NE56604 将产生精确的复位 信号 NE56604 内置一个看门狗定时器 用于监控微处理器 以确保微处理器的 正常运行 看门狗能产生一个系统复位信号用来终止任何由于微处理器故障而引 发的不正常的系统操作 NE56604 的看门狗的监控周期为 100mS 典型值 特性特性 正负双逻辑输出的有效复位信号 精准的门限电平监测 上电复位内部延时 可利用外部电阻调节的内部看门狗定时器 看门狗定时器的监控周期为 100mS 典型值 VCC 0 8VDC 时产生有效的复位信号典型值 仅需很少的外围元件 具体电路图如图 3 3 图 3 3 3 3 3 3 温度采集电路温度采集电路 这里我们用到温度芯片 DS18B20 DS18B20 是 DALLAS 公司生产的一线式数 字温度传感器 具有 3 引脚 TO 92 小体积封装形式 测温分辨率可达 0 0625 被测温度用符号扩展的 16 位数字量方式串行输出 其工作电源既可在远端引入 也可采用寄生电源方式产生 CPU 只需一根端口线就能与诸多 DS18B20 通信 占 用微处理器的端口较少 可节省大量的引线和逻辑电路 DS18B20 支持 一线总线 接口 测量温度范围为 55 C 125 C 在 10 85 C 范围内 精度为 0 5 C 现场温度直接以 一线总线 的数字方式传输 大大提高 了系统的抗干扰性 适合于恶劣环境的现场温度测量 如 环境控制 设备或过 程控制 测温类消费电子产品等 DS18B20DS18B20 内部结构内部结构 1 DS18B20 的内部结构如图 3 4 所示 图 3 4 DS18B20 有 4 个主要的数据部件 64 位激光 ROM 64 位激光 ROM 从高位到低位依次为 8 位 CRC 48 位序 列号和 8 位家族代码 28H 组成 温度灵敏元件 非易失性温度报警触发器 TH 和 TL 可通过软件写入用户报警上下限值 配置寄存器 配置寄存器为高速暂存存储器中的第五个字节 DS18B20 在 0 工作时按此寄存器中的分辨率将温度转换成相应精度的数值 其各位定义如 图 3 5 所示 TMR1R011111 MSB DS18B20 配置寄存器结构图 LSB 图 3 5 其中 TM 测试模式标志位 出厂时被写入 0 不能改变 R0 R1 温度计 分辨率设置位 其对应四种分辨率如下表所列 出厂时 R0 R1 置为缺省值 R0 1 R1 1 即 12 位分辨率 用户可根据需要改写配置寄存器以获得合适的分 辨率 配置寄存器与分辨率关系表 3 1 R0R1 温度计分辨率 bit最大转换时间 us 00993 75 0110187 5 1011375 1112750 表 3 1 2 高速暂存存储器 高速暂存存储器由 9 个字节组成 其分配如下图所示 当温度转换命令发布 后 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节 单片机可通过单线接口读到该数据 读取时低位在前 高位在后 数据 格式如图所示 对应的温度计算 当符号位 S 0 时 直接将二进制位转换为十进 制 当 S 1 时 先将补码变为原码 再计算十进制值 如表 3 2 温度低位温度高位 THTL 配置保留保留保留8 位 CRC LSB DS18B20 存储器映像图 MSB 表 3 2 温度值格式图 DS18B20 温度数据表 3 3 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 表 3 3 典型对应的温度值表 3 4 温度 二进制表示十六进制表示 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 表 3 4 DS18B20 最大的特点是单总线数据传输方式 DS18B20 的数据 I O 均由同一 条线来完成 硬件连接电路如图 3 6 AT89C51 DS18B 20 1 DS18B 20 2 DS18B 20 3 DS18B 20 20 VCC 5V 4 7K 1 WIRE 图 3 6 本系统为多点温度测试 DS18B20 采用外部供电方式 理论上可以在一根数 据 8B20 但时间应用中发现 如果挂接 25 个以上的 DS18B20 仍旧有可能产生功耗 问题 另外单总线长度也不宜超过 80M 否则也会影响到数据的传输 在这种情 况下我们可以采用分组的方式 用单片机的多个 I O 来驱动多路 DS18B20 在实 际应用中还可以使用一个 MOSFET 将 I O 口线直接和电源相连 起到上拉的作用 对 DS18B20 的设计 需要注意以下问题 1 对硬件结构简单的单线数字温度传感器 DS18B20 进行操作 需要用较 为复杂的程序完成 编制程序时必须严格按芯片数据手册提供的有关操作顺序进 行 读 写时间片程序要严格按要求编写 尤其在使用 DS18B20 的高测温分辨力 时 对时序及电气特性参数要求更高 2 有多个测温点时 应考虑系统能实现传感器出错自动指示 进行自动 DS18B20 序列号和自动排序 以减少调试和维护工作量 3 测温电缆线建议采用屏蔽 4 芯双绞线 其中一对线接地线与信号线 另 一组接 VCC 和地线 屏蔽层在源端单点接地 DS18B20 在三线制应用时 应将 其三线焊接牢固 在两线应用时 应将 VCC 与 GND 接在一起 焊接牢固 若 VCC 脱开未接 传感器只送 85 0 的温度值 4 实际应用时 要注意单线的驱动能力 不能挂接过多的DS18B20 同时 还应注意最远接线距离 另外还应根据实际情况选择其接线拓扑结构 3 4 3 4 键盘以及显示电路键盘以及显示电路 键盘电路键盘电路 单片机应用系统中除了复位按键有专门的复位电路 以及专一的复位功能外 其 它的按键或键盘都是以开关状态来设置控制功能或输入数据 键盘有编码和非编 码两种 非编码键盘硬件电路极为简单 故本系统采用拨码开关来控制 具体电 路如图 3 7 图 3 7 A A 开关状态的可靠输入开关状态的可靠输入 键开关状态的可靠输入有两种解决方法 一种是软件去抖动 它是在检测到 有键按下时 执行一个 10ms 的延时程序后 再确认该键电平是否仍保持闭合状态 电平 如保持闭合状态电平则确认为真正键按下状态 从而消除了抖动影响 另 一种为硬件去抖动 即为按键添加一个锁存器 两种方法都简单易行 本设计采 用的是硬件去抖 B B 对按键进行编码给定键值或给出键号对按键进行编码给定键值或给出键号 对于按键无论有无编码 以及采用什么编码 最后都要转换成为与累加器中 数值相对应的键值 以实现按键功能程序的散转转移 为使编码间隔小 散转入 口地址安排方便 常采用依次序排列的键号 如表 3 5 拨码开关值拨码开关值含义含义 0000 实时显示通道一的温度值 0001 实时显示通道二的温度值 0010 实时显示通道三的温度值 0011 实时显示通道四的温度值 0100 实时显示通道五的温度值 0101 实时显示通道六的温度值 0110 实时显示通道七的温度值 0111 实时显示通道八的温度值 1 自动循环显示所有通道的温度 表 3 5 C C 选择键盘监测方法选择键盘监测方法 对是否有键按下的信息输入方式有中断方式与查询方式两种 本设计采用的 查询法 即在在 CPU 空闲时调用键盘扫描子程序 温度显示电路温度显示电路 设计采用的是共阴极七段数码管 显示方式有动态扫描和静态显示 两种方 法在本设计中皆可 由于静态扫描要用到多片串入并出芯片 考虑到电路板成本 计算 本人采用是节约硬件资源的动态扫描方式 即用两块芯片就可以完成显示 功能 显示数据由 4511 译码器输出 ULN2003 为位驱动扫描信号 具体电路图如图 3 8 图 3 8 3 5 3 5 串口通讯电路串口通讯电路 AT89C51 有一个全双工的串行通讯口 所以单片机和电脑之间可以方便地进 行串口通讯 进行串行通讯时要满足一定的条件 比如电脑的串口是 RS232 电平 的 而单片机的串口是 TTL 电平的 两者之间必须有一个电平转换电路 我们采 用了专用芯片 MAX232 进行转换 虽然也可以用几个三极管进行模拟转换 但是 还是用专用芯片更简单可靠 具体电路如图 3 9 C2 5 C2 4 R2O 9 T2IN 10 T1O 14 R1IN 13 C1 3 C1 1 GND 15 VS 6 R2IN 8 T2O 7 T1IN 11 R1O 12 VS 2 VCC 16 U18 MAX232 VCC C32 1u 25V C33 1u 25V C34 1u 25V C35 1u 25V C36 1u 25V 1 6 2 7 3 8 4 9 5 J15 DB9 RXD TXD 图 3 9 我们采用了三线制连接串口 也就是说和电脑的 9 针串口只连接其中的 3 根 线 第 5 脚的 GND 第 2 脚的 RXD 第 3 脚的 TXD 这是最简单的连接方法 但是对本设计来说已经足够使用了 电路如上图所示 通信线采用交叉接法 即 两者信号线对应成为 R T T R 具体连接电路如图 3 10 1 6 2 7 3 8 4 9 5 J1 DB9 AT89C51 1 6 2 7 3 8 4 9 5 J2 DB9 PC RXDRXD TXDTXD 图 3 10 3 6 3 6 整体电路整体电路 见附件一 电路原理图 第三章第三章软件设计软件设计 4 1 4 1 概述概述 整个系统的功能是由硬件电路配合软件来实现的 当硬件基本定型后 软件 的功能也就基本定下来了 从软件的功能不同可分为两大类 一是监控软件 主 程序 它是整个控制系统的核心 专门用来协调各执行模块和操作者的关系 二 是执行软件 子程序 它是用来完成各种实质性的功能如测量 计算 显示 通 讯等 每一个执行软件也就是一个小的功能执行模块 这里将各执行模块一一列 出 并为每一个执行模块进行功能定义和接口定义 各执行模块规划好后 就可 以规划监控程序了 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构 然 后根据实时性的要求 合理地安排监控软件和各执行模块之间地调度关系 4 2 4 2 主程序方案主程序方案 主程序调用了 4 个子程序 分别是数码管显示程序 键盘扫描以及按键处理 程序 温度测试程序 中断控制程序 单片机与 PC 机串口通讯程序 键盘扫描电路及按键处理程序 实现键盘的输入按键的识别及相关处理 温度测试程序 对温度芯片送过来的数据进行处理 进行判断和显示 数码管显示程序 向数码的显示送数 控制系统的显示部分 中断控制程序 实现循环显示功能 串口通讯程序 实现 PC 机与单片机通讯 将温度数据传送给 PC 机 程序结构图如 4 1 图 4 1 将各个功能程序以子程序的形式写好 当写主程序的时候 只需要调用子程序 然后在寄存器的分配上作一下调整 消除 寄存器冲突和 I O 冲突即可 程序应该尽 可能多的使用调用指令代替跳转指令 因 为跳转指令使得程序难以看懂各程序段之 间的结构关系 而调用指令则不同 调用 指令使得程序结构清晰 无论是修改还是 维护都比较方便 将功能程序段写成子程 序的形式 除了方便调用之外 还有一个 好处那就是以后写程序的时候如果要用到 就可以直接调用这个单元功能模块 图 4 2 主程序流程图如图 4 2 程序结构 LED 显示 数码管 显示程 序 键盘 扫描 程序 中断 控制 程序 温度芯片 传数据程序 继电器控制程序 与当前温度相比较程序 串口通 讯程序 程序结构 LED 显示 数码管 显示程 序 键盘 扫描 程序 中断 控制 程序 温度芯片 传数据程序 继电器控制程序 与当前温度相比较程序 串口通 讯程序 开始 系统初始化 系统硬件测试程序 串口通讯子程序 温度显示子程序 拨码开关扫描子程序 温度测试及处理子程序 开始 系统初始化 系统硬件测试程序 串口通讯子程序 温度显示子程序 拨码开关扫描子程序 温度测试及处理子程序 4 3 4 3 各模块子程序设计各模块子程序设计 下面对主要几个子程序的流程图做介绍 1 温度测试子程序设计如图 4 3 初始化 DS18B20 匹配ROM命令 发一个 DS18B20 序列号 等待1u s 读当前 DS18B20 温度 开始 所有 DS18B20 都访问完毕 存在一个 DS18B20 发搜索 ROM命令 读并存储当前 DS18B20 序列号 跳过ROM命令 初始化 DS18B20 温度转换命令 初始化 DS18B20 Y Y N NY Y N N 初始化 DS18B20 匹配ROM命令 发一个 DS18B20 序列号 等待1ms转换结束 读当前 DS18B20 温度 开始 所有DS18B20 都访问完毕 存在一个 DS18B20 发搜索 ROM命令 读并存储当前 DS18B20 序列号 跳过ROM命令 初始化 DS18B20 初始化 DS18B20 Y Y N NY Y N N 图 4 3 2 中断控制程序设计 如图4 4 3 串口通信程序设计 本次通讯中 测控系统分位上位机和下位机之间的通信 系统中单片机负责数据采 集 处理和控制 上位机进行现场可视化检测 通信协议采用半双工异步串行通信方式 通过 RS232 的 RTS 信号进行收发转换 传输数据采用二进制数据 上位机与下位机之 间采用主从式通讯 本人采用的 VB 环境下 PC 机与单片机之间实现串行通讯的软硬件 方案 VB 是 Microsoft 公司推出的 Windows 应用程序开发工具 因其具有界面友好 编程简便等优点而受到广泛的使用 而且 Visual Basic 6 0 版本带有专门实现串行通讯 的 MSCOMM 控件 MSComm控件串口具有完善的串口数据的发送和接收功能 通过此控件 PC机可 以利用串行口与其它设备实现轻松连接 简单高效地实现设备之间的通讯 此控件的事 件响应有两种处理方式 事件驱动方式 由MSComm控件的OnComm事件捕获并处理 通讯错误及事件 查询方式 通过检查CommEvent属性的值来判断事件和错误 1 MSComm 控件的主要属性和方法 a CommPort 设置或返回串行端口号 其取值范围为 1 99 缺省为 1 b Setting 设置或返回串行端口的波特率 奇偶校验位 数据位数 停止位 c PortOpen 打开或关闭串行端口 d RThreshold 该属性为一阀值 它确定当接收缓冲区内字节个数达到或超过该值后 就产生 MSComml OnComm 事件 e Input 从接收缓冲区移走一串字符 f Output 向发送缓冲区传送一字符串 PC 通讯程序流程图如图 4 5 单片机程序流程如图 4 6 图 4 4 图 4 6 开始 自动接收数据子程序 读一个数据且存储 回复55H 接受字节数据 是联络信号AAH 返回 8个字节到否 N Y N Y 开始 自动接收数据子程序 读一个数据且存储 回复55H 接受字节数据 是联络信号AAH 返回 8个字节到否 N Y N Y 开始 发联络信号AAH 发储存单元数据 是联络信号55H N Y 返回 开始 发联络信号AAH 发储存单元数据 是联络信号55H N Y 返回 中断入口 到否 定时器 重新赋值 装下一个温度显示 存储单元地址 返回 中断入口 到否 定时器 重新赋值 装下一个温度显示 存储单元地址 返回 图 4 5 参数设定 通信端口选择 COM1 波特率设定为 1200B S MSCOmm CommPort 1 MSComm Setting 1200 n 8 1 START MOVSP 60H MOVTMOD 20H MOVTH1 0E6H MOVTL1 0E6H 1200B S 晶振为12MHZ MOV PCON 00H MOVSCON 50H SETBTR1 第四章第四章系统调试系统调试 5 1 5 1 分步调试分步调试 1 1 测试环境及工具 测试温度 0 100 摄氏度 模拟多点不同温度值环境 测试仪器及软件 数字万用表 温度计 0 100 摄氏度 串口调试助手 测试方法 目测 2 2 测试方法 测试方法 使系统运行 观察系统硬件检测是否正常 包括单片机最小系统 键盘电路 显示 电路 温度测试电路等 系统自带测试表格数据 观察显示数据是否相符合即可 采用温度传感器和温度计同时测量多点水温变化情况 取温度值不同的多点 目 测显示电路是否正常 并记录各点温度值 与实际温度值比较 得出系统的温度指标 使用串口调试助手与单片机通讯 观察单片机与串口之间传输数据正确否 3 3 测试结果分析 自检正常 各点温度显示正常 串口传输数据正确 因为芯片是塑料封装 所以对温度的感应灵敏度不是相当高 需要一个很短的时间 才能达到稳定 5 2 5 2 统一调试统一调试 将硬件及软件结合起来进行系统的统一调试 实现 PC 机与单片机通讯 两者可以 实时更新显示各点温度值 总结总结 AT89C51 的时钟为 12M I O 口可达 32 个 高的时钟频率和丰富的 I O 都为实 现电路功能提供了非常有利的条件 同时也 AT89C51 内含 4KB FLASH ROM 开发环 境友好 易用 方便 大大加快本系统设计开发 拨码开关的使用 使操作更为简洁 易懂 实时显示电路的设计 使温度信息更迅速 直观地发布 本制作的设计中使用了 传感器的只是插座电路 因此 该系统的可扩展性很强 整个系统硬件简单 可靠 系 统成本低 在设计过程中也遇到一些问题 由于 LCD 是现实的字符型数据 数字不能直接送去 显示 所有对于数字的显示首先要转换为字符格式 方法为 数字 0 对于温度传 感器的小数处理也遇到一些问题 两个选的是 12 位 精度为 0 0625 DS18B20 的温度 寄存器里低八位的低四位为小数部分 小数的值为 0 0625 低八位的低四位 但是由于 单片机的数据处理能力较差 不能处理小数的乘法运算 用上方法就显示错误 后来想 到可以把小数先变成整数处理 令低八位的低四位为 t 小数后的第一位 625 t 1000 然后将这个数字在小数点后显示即可 致此本人设计基本完成了预期的目标 系统在硬件自动测试 键盘操作 实时显示 方面做的比较好 但是由于时间仓促 条件有限 设计成果并不是很完美 还存在下面 问题 串口通讯不稳定 未对温度数值统计处理以及存储 我准备在今后的工作过程中 进一步完善此设计 参考文献参考文献 1 贾振国 DS1820 及高精度温度测量的实现 J 电子技术应用 2000 1 58 59 2 余永权 单片机原理及应用 北京 电子工业出版社 1997 3 邦田 电子电路实用抗干扰技术 北京 人民邮电出版社 1994 4 Dallas semiconductor inc ds18b20 programmable resolution 1 wiredigital thermometer 2001 Z 5 曲喜贵 电子元件材料手册 M 北京 电子工业出版社 1989 422 430 6 黄贤武 郑筱霞 曲波等 传感器实际应用电路设计 M 成都 电子科技大学出版社 1997 4 10 7 刘君华 智能传感器系统 M 西安 西安电子科技大学出版社 1999 8 余永权 Flash 单片机原理及应用 M 北京 电子工业出版社 1997 9 邦田 电子电路实用抗干扰技术 M 北京 人民邮电出版社 1994 10 周云波 由DS18B20单线数字温度计构成的单线多点温度测量系统 电子技术应用 1996 2 15 20 11 吉鹏 马云峰等 微机原理与接口技术 M 北京 高等教育出版社 2001 12 振国 DS1820 及高精度温度测量的实现 J 电子技术应用 2000 1 13 东耀 汪仁煌 数字温度传感器在仓库温度检测系统的应用 J 传感器世界 2001 12 30 33 14 月霞 孙传友 DS18B20 硬件连接及软件编程 J 传感器世界 2001 12 25 29 15 一线数字温度传感器资料 M 武汉 武汉力源电子有限公司 1996 16 贤武 郑霞 曲波 传感器实际应用电路设计 M 成都 电子科技大学出版社 1997 附录一 电路原理图 1 2 J1 CON2 V in 1 GND 2 V out 3 U1 7805 V CC 5 R1 680 C1 4700uF C3 1uF C2 10uF D1 LED 串串串串 V CC D LED R 1K 12 U A 74HC04 C CAPACIT ORS SW SPST RESET V S RCT V CC CT RESET CLK GND U15 NE56604 V CC C30 0 1uF R8 1K RESET T O 串串串串串 C2 C2 R2O T 2IN RIO T 1IN C1 C1 GND V S R2IN T 2O R1IN T 1O V S V CC C 2 2uF C 2 2uF C 2 2uF C 2 2uF C 1 0uF V CC 1 6 2 7 3 8 4 9 5 J15 DB9 RX D T X D U18 MAX232 串串串串串串 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS11 DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS12 DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS10 DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS13 DPY 7 SEG DP A 7 B 1 C 2 D 6 LT 3 BI 4 LE 5 A 13 B 12 C 11 D 10 E 9 F 15 G 14 U 4511 EA V P 31 X 1 19 X 2 18 RESET 9 RD 17 WR 16 IN T0 12 IN T1 13 T 0 14 T 1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 T X D 11 RX D 10 U 8051AH VCCGND 1 2 3 4 5 6 7 8 9 J CON9 1 2 3 4 5 6 7 8 9 J CON9 V CC L IN DUCT OR C 2 2uF C 2 2uFV CC E I0 I1 I2 I3 I4 I5 I6 I7 O0 O1 O2 O3 O4 O5 O6 O7 U ULN2003 D0 D2 D1 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D6 V CC V CC SELB GND DS0 DS1 DS2 DS3 R 1K U BUZ Z ER D LED V CC V CC Y CRYST AL C CAP C CAP RESET T 0 C CAP I0 4 I1 3 I2 2 I3 1 I4 15 I5 14 I6 13 I7 12 A 11 B 10 C 9 E 7 Z 5 Z 6 U 74ALS151 1A1 2 1A2 4 1A3 6 1A4 8 2A1 11 2A2 13 2A3 15 2A4 17 1Y1 18 1Y2 16 1Y3 14 1Y4 12 2Y1 9 2Y2 7 2Y3 5 2Y4 3 1G 1 2G 19 U 74ALS244 1 2 3 4 5 J CON5 1 2 3 4 8 7 6 5 S SW DIP 4 1 2 3 4 8 7 6 5 S SW DIP 4 1 2 3 4 8 7 6 5 S SW DIP 4 V CCA0 SDAA1 A2SCL GNDNP AT 24C16 V CC RX D T X D V CC SEL2 SEL1 SEL0 T 7 T 6 T 5 T 4 T 3 T 2 T 1 T 0 SEL V CC VCC C CAP C CAP C CAP C CAP C CAP C CAP C CAP C CAP C CAP V CCV CCV CCV CCV CCV CCV CCV CCV CC 1 2 3 4 5 J CON5 D LED D LED D LED D LED D LED 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 1 2 3 J CON3 V CC V CC V CC V CC V CC V CC V CC V CC 串串串串串串 串串串串串51串串串串串串串串串串串 串串串 04093102 串串串 04093076 串串串 串串串 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆 薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级造价工程师土建专业考试答题技巧与思路解析
- 2025年医疗机构护理员岗位培训考试模拟题及答案
- 2025年乡镇财政所招聘考试财务知识预测题
- 拉得茨斯基进行曲课件
- 抹灰工地安全培训课件
- 2025年经济与商务咨询服务项目发展计划
- 2025年重有色金属矿产:锌矿项目建议书
- 2025年水利工程勘察设计合作协议书
- 2025年皮革、毛皮及其制品加工专用设备项目发展计划
- 宁海护理编制题目及答案
- 生物●广东卷丨2023年广东省普通高中学业水平选择性考试生物试卷及答案
- 恒瑞医药基础管理制度
- 化肥质量安全管理制度
- 2025年湖南长沙市一中学集团七下英语期末经典模拟试题含答案
- 国企员工合同协议书模板
- 软件移交协议书
- 租赁厂房移交协议书
- 高尿酸血症的预防与治疗
- 景区用电安全培训课件
- 国内外美育研究现状
- 2025年军事专业基础知识考核试题及答案
评论
0/150
提交评论