




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 怀化职业技术学院 高职生毕业论文 设计 高职生毕业论文 设计 题目 题目 基于半导体集成温度传感器的单片机测温控制系统基于半导体集成温度传感器的单片机测温控制系统 学生姓名 学生姓名 陈像陈像 专专业 业 电气自动化 班班级 级 0808 电气自动化电气自动化 指导教师 指导教师 谷玉玲 完成日期 完成日期 12 月 1 号 教务处印制教务处印制 2 毕业设计 论文 任务书 毕业设计毕业设计 论文论文 课题课题 基于半导体集成温度传感器的单片机测温控制基于半导体集成温度传感器的单片机测温控制 系统系统 学学生生姓姓名 名 陈像陈像 指指导导教教师 师 谷玉玲谷玉玲 设设 计计 论文 论文 要要 求 求 1 学生独立完成设计 在毕业设计的硬件设计过程中必须附有电路原理图或硬件结 构框图 在软件设计部分 必须附有软件流程图和关键部分的程序清单 设计具有一定的 科学性 实用性和新颖性 2 论文撰写 毕业论文的撰写应遵照 2008 届高职毕业生 毕业设计 论文 课 题 的规定执行 论文的质量满足技术性 深度性和先进性的要求 综合体现了学生的知 识结构和运用科学理论 方法及解决电气技术实际问题的能力 3 论文指导与检查 毕业论文由自动控制教研室具有 双师 资质的教师指导 毕 业论文应在教师指导下独立完成 用于论文的时间为 20082008 年年 4 4 月前月前完成毕业设计 在论 文期间应至少安排一次中期检查 检查课题是否按计划进度进行 并填写 毕业论文中期 报告 4 论文题目可以自拟 内容要与所学专业相关 与生产实习相关 5 字数不少于 4000 字 不得抄袭 否则责任自负 而且作不及格处理 6 全部用电脑打印 设计好封面 并装订成册 7 毕业论文 或毕业设计都要求在毕业前进行答辩 学生可以参考一些专业性的杂 志 掌握论文格式 8 毕业论文 或毕业设计具体要求见学院教务处网站 9 时间要求 1 于 2008 年 4 月前完成毕业设计 2 答辩时间 2008 年 4 月 8 日 3 毕业设计 论文 规范化要求 一 论文的要求 1 书写格式要求 必须用钢笔书写 或打印 应含下列内容 并符合下列次序 1 论文题目 2 目录 3 内容提要 200 字左右 用中文和英文各写一份 4 引言 5 正文 6 参考文献 或资料 7 附录 装订要求 首页为封面 第 2 页为毕业设计 论文 任务书及毕业设计 论 文 规范化要求 然后是上述规定的 7 项内容 封面必须用淡色专用纸按规定格式输 出 装订 2 文字要求 文字通顺 语言流畅 书写工整 无错别字 不允许他人代写 文后要 注明参考文献和附录 参考文献要写明作者 书名 或文章题目及报刊名 版次 初版 不注版次 出版地 出版者 出版年 页码 序号使用 1 2 3 3 图纸要求 图面整洁 线条粗细均匀 圆弧连接光滑 尺寸标注规范 文字注释必 须使用工程字书写 4 曲线图表要求 所有曲线 图表 线路图 程序框图 示意图等不准用徒手画 必须按国家规定的标准或工程要求绘制 5 译文内容必须与课题 或专业 内容有联系 并说明出处 6 份量要求 工科专业毕业设计的论文字数不少于 4 千字 文科专业 其中外语专业 毕业论文的字数不少于4千字 单词 其他文科专业毕业设计 论文 的字数不少于6千字 毕业论文也可以是实习调研报告 但字数不少于 4 千字 二 各系 部 必须组成毕业设计 论文 资格审查小组 根据上述规范化要求负责组 织本单位毕业设计 论文 的资格审查工作 三 毕业设计 论文 的资格审查应在毕业设计 论文 答辩前完成 资格审查合格的学 生由审查小组签字后 方能参加答辩 四 凡资格审查不合格的学生 应令其返工 直到达到要求为止 五 在校外进行毕业设计 论文 的学生 其毕业设计 论文 资格的审查一律返校进行 4 目录 摘要 5 1 引言 5 2 设计要求 5 2 1 单片机温度控制器具体要求 5 3 DS18B20 温度传感器 5 3 1 温度传感器的介绍 6 3 2 温度传感器的工作原理 6 3 3 温度传感器的工作时序图 7 4 单片机介绍 8 5 控制部分的设计 9 5 1 温度控制及超温和超温警报部分 9 5 2 数码管显示 10 5 3 串口通信 11 6 程 序 设 计 1 2 6 1 程序结构分析 12 6 2 主程序 13 7 测设分析 14 8 结论 14 9 参考文献 15 10 附录 15 5 基于半导体集成温度传感器的 单片机测温控制系统 摘要 本设计以 AT89C52 单片机为核心的温度控制系统的工作原理和设计方法 温度 信号由温度芯片 DS18B20 采集 并以数字信号的方式传送给单片机 文中介绍了该控制系 统的硬件部分 包括 温度检测控制电路 单片机与 PC 机串口通信和简单的接口电路 单片机通过对温度采集信号进行相应处理 从而实现温度控制的目的 文中还着重介绍了 软件设计部分 在这里采用模块化结构 主要模块有 数码管显示程序 温度信号处理程 序 继电器控制程序 超温报警程序 关键词 AT89C52 单片机DS18B20 温度芯片温度控制 串口通信 1 引言 温度控制系统广泛应用于社会生活的各个领域 如家电 汽车 材料 电力电子等 常用的控制电路根据应用场合和所要求的性能指标有所不同 数字温度传感器 DS18B20 因其内部集成了 A D 转换器 使得电路结构更加简单 而且减少了温度测量转换时的精度 损失 使得测量温度更加精确 数字温度传感器 DS18B20 只用一个引脚即可与单片机进行 通信 大大减少了接线的麻烦 使得单片机更加具有扩展性 由于 DS18B20 芯片的小型化 更加可以通过单跳数据线就可以和主电路连接 故可以把数字温度传感器 DS18B20 做成探 头 探入到狭小的地方 增加了实用性 更能串接多个数字温度传感器 DS18B20 进行范围 的温度检测 2 设计要求 2 1 设计基于单片机的温度控制器 用于控制温度 具体要求如下 1 测温范围为 55 125 2 温度误差 0 5 3 人 机对话方便 4 用数码管显示测量数值 3 DS18B20 温度传感器 6 3 1 温度传感器的介绍 DS18B20 是 DALLAS 公司生产的一线式数字温度传感器 它具有微型化 低功耗 高 性能抗干扰能力 强易配处理器等优点 特别适合用于构成多点温度测控系统 可直接将 温度转化成串行数字信号 按 9 位二进制数字 给单片机处理 且在同一总线上可以挂接 多个传感器芯片 它具有三引脚 TO 92 小体积封装形式 温度测量范围 55 125 可编程为 9 12 位 A D 转换精度 测温分辨率可达 0 0625 CPU 只需一根端口线就能与 多个 DS18B20 通信 占用微处理器的端口较少 可节省大量的引线和逻辑电路 在本系统 中我采用温度芯片 DS18B20 测量温度 该芯片的物理化学性很稳定 它能用做工业测温元 件 且此元件线形较好 在 0 100 摄氏度时 最大线形偏差小于 1 摄氏度 该芯片直接 向单片机传输数字信号 便于单片机处理及控制 图 3 1 温度芯片 DS18B20 3 2 温度传感器工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度 单片机 AT89S51 获取采集的 温度值 经处理后得到当前环境中一个比较稳定的温度值 再根据当前设定的温度上下限 值 通过加热和降温对当前温度进行调整 当采集的温度经处理后超过设定温度的上限值 和下限值时 单片机就会通过三极管驱动扬声器发出警笛声 系统中将通过串口通讯连接 PC 机存储温度变化时的历史数据 以便观察整个温度的 控制过程及监控温度的变化全过程 见下图 3 4 7 3 4 工作原理图 3 3 工作时序图 1 初始化 1 先将数据线置高电平 1 2 延时 该时间要求不是很严格 但是要尽可能短一点 3 数据线拉到低电平 0 4 延时 750us 该时间范围可以在 480 960us 5 数据线拉到高电平 1 6 延时等待 如果初始化成功则在 15 60us 内产生一个由 DS18B20 返回的低电平 0 据 该状态可以确定它的存在 但是应注意 不能无限等待 不然会使程序进入死循环 所以要进行超时判断 7 若 CPU 读到数据线上的低电平 0 后 还要进行延时 其延时的时间从发出高电平算起 第 5 步的时间算起 最少要 480us 8 讲数据线再次拉到高电平 1 后结束 AT89C52 8BITCPU MAX232 电 平 转 换芯片 PC 机 输入电源 DS18B20温 度 芯片传输 数据显示 超温报警 继电器 2 继电器 1 制冷设备 加热器 8 2 写数据 1 数据线先置低电平 0 2 延时确定的时间为 15us 3 按从低位到高位的顺序发送数据 一次只发送一位 4 延时时间为 45us 5 将数据线拉到高电平 1 6 重复 1 5 步骤 直到发送完整个字节 7 最后将数据线拉高到 1 3 读数据 1 将数据线拉高到 1 2 延时 2us 3 将数据线拉低到 0 4 延时 6us 5 将数据线拉高到 1 6 延时 4us 7 读数据线的状态得到一个状态位 并进行数据处理 8 延时 30us 9 重复 1 7 步骤 直到读完一个字节 4 单片机介绍 9 AT89C52 是一个低功耗 高性能 CMOS 8 位单片机 片内含 8k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 AT89C52 具有如下特点 40 个引脚 4k Bytes Flash 片内程序存储器 128 bytes 的随机存取数据存储器 RAM 32 个外部双向输入 输出 I O 口 2 个 16 位可编程定时计数器 1 个全双工串行通信口 由于系统控制方案简单 数据量也不大 考虑到电路的简单和成本等因素 因此在本 设计中选用 ATMEL 公司的 AT89C52 单片机作为主控芯片 主控模块采用单片机最小系统 是由于 AT89C52 芯片内含有 4 kB 的 E2PROM 无需外扩存储器 电路简单可靠 其时钟 频率为 12 MHz 图 4 为 AT89C52 单片机引脚图 5 控制部分的设计 5 1 温度控制及超温和超温警报部分 本设计采用日常室内温度为标准 正常设定温度范围为 17 30 当采集的温度经处理 后超过规定温度上限时 单片机通过 P1 输出控制信号驱动二极管 D1 D2 D3 D4 同时单 片机通过 P3 1 输出一个信号给三极管 Q1 使继电器 K1 开启 制冷压缩机 经过一段时 间后 采集回来的温度超过程序设计的温度下限值时 单片机通过 P1 输出控制信号驱动 二极管 D5 D6 D7 D8 同时单片机通过 P3 0 输出一个信号给三极管 Q2 使继电器 K2 开 启 加热器 在此同时单片机通过三极管驱动扬声器发出警笛声 具体电路连接如图 5 1 所示 10 图 5 1 实际电路连接图 5 2 数码管显示 本电路主要使用七段数码管和锁存器芯片 74HC573 图 5 2 1 采用共阴极的数码管 6 个数码管的断码全部连接在一起由 U1 锁存器控制输出 数码管的位码分别连接在 U2 锁存 器各个 I O 端口 当我们给数码管的任一个阳极加一个高电平时 对应的这个发光二极管 就点亮了 照图 5 2 2 分别介绍各引脚的作用 0E 为三态允许控制端 通常称输出使能端 1D 8D为数据输入端 1Q 8Q为数据输出端 LE为锁存控制端 图5 2 3真值表表示74HC573 芯片工作状态的直观特性 本设计是用锁存器来控制数码管的 因此在设计电路中始终将 0E 端接低电平 图中实际连线是由两个锁存器来控制数码管的显示 锁存器 U1 控制数码 管的段码 锁存器 U2 控制位码具体控制数码管的显示位置 数码管显示时单片机端口应 接上拉电阻 由于单片机 I O 端口作数据输出时电流较小 而数码管的显示需要 5mA 以上 的电流 所以数码管与单片机连接时需要加驱动电路 可以用上拉电阻的方法或使用专门 的数码管驱动芯 片 本设计采用 74HC573 锁存器 其输出电流较大 电路接口简单 具体见实际连线图如下图 11 图 5 2 1 7 段数码管实际连接图 图 5 2 2 74HC573 引脚图图 5 2 3 74HC573 真值表 5 3 串口通讯 max232max232 资料简介 该产品是由德州仪器公司 TI 推出的一款兼容 RS232 标准的芯片 由于电脑串口 rs232 电平是 10v 10v 而一般的单片机应用系统的信号电压是 TTL 电平 0 5v 52 单 12 片机有一个全双工的串行通讯口 而单片机的串口是 TTL 电平的 两者之间必须有一个电 平转换电路 我采用了专用芯片 MAX232 进行转换 虽然也可以用几个三极管进行模拟转 换 但是还是用专用芯片更简单可靠 在本设计中采用了三线制连接串口 也就是说和电脑的9针串口只连接其中的3根线 第 5 脚的 GND 第 2 脚的 RXD 第 3 脚的 TXD 这是最简单的连接方法 但是对我来说已 经足够使用了 电路如下图所示 MAX232 的第 10 脚和单片机的 11 脚连接 第 9 脚和单 片机的 10 脚连接 第 15 脚和单片机的 20 脚连接 串口通讯具体如图 5 3 图 5 3 通讯接口连线图 6 程序设计 6 1 程序结构分析 主程序调用了 3 个子程序 分别是数码管显示程序 温度信号处理程序 单片机与 PC 机串口通讯程序 温度信号处理程序 对温度芯片送过来的数据进行处理 进行判断和显示 数码管显示程序 向数码的显示送数 控制系统的显示部分 串口通讯程序 实现 PC 机与单片机通讯 将温度数据传送给 PC 机 13 异常 图 7 1 程序结构图 6 2 主程序 1 流程图 程序结构 LED 显 示数码 管显示 程序 串口通 讯程序 温度芯片传输 与当前温度相 比较程序 报警 开始 系统初始化 采集温度数据 温度显示 温度数据送 PC 机 比较设置温度与当 前温度大小 继电器控制 继电器控制程序 14 图 7 2 主程序流程图 程序运行初始化 实时读取寄存器中的温度数据同时发送给 PC 机 执行温度处理 函数当前的温度数据与设定的上下限温度值进行比较 显示当前温度函数 2 程序代码 详见附录 程序清单 7 测设分析 1 测试环境 环境温度 28 摄氏度 室内面积 20 平方米 测试仪器 温度计 0 100 摄氏度 2 测试方法 使系统运行 采用温度计同时测量室内度变化情况 得出系统测量的温度 3 测试结果 设定温度由 17 摄氏度到 30 摄氏度 标定温差 1 摄氏度 静态误差 0 5 摄氏度 4 通过测试分析 对于实际室内的温度控制 可以再提出以下方法 增加传感器个数 对各个温度传感器采集的数据进行求算术平均 可得到较为准确 温度值 对实际室内的温度控制 可采用功率较大的电炉 并且通过风扇对箱内温度进 行充分搅和 降温设备可采用空气压缩机等制冷设备 5 通过实验测试和分析 发现传感器的温度采集精度最高可得到 0 06 但测试 得到的数据最小间隔为 0 03 结论 在工业生产和日常生活中 对温度控制系统的要求 主要是保证温度在一定温度范围 内变化 稳定性好 不振荡 对系统的快速性要求不高 在论文中简单分析了单片机温度 控制系统设计过程及实现方法 本系统的测温范围为 17 30 温度检测系统根据用 户设定的温度范围完成一定范围的温度控制 89C52 的时钟最高可达 12M I O 口可达 32 个 高的时钟频率和丰富的 I O 都为我 们实现电路功能提供了非常有利的条件 同时也因为开发环境友好 易用 方便 大大加 快本系统设计开发 15 本设计仅只对室内温度检测做了些实验数据论证 它还支持更多的扩展 应用范围非 常广 由于本人的学识有限仅只做出简单的数据论证 参考文献 1 郭天祥主编 51 单片机 C 语言教程 北京 电子工业出版社出版 2009 2 谭浩强主编 C 程序设计 第三版 北京 清华大学出版社出版 2009 3 赵娜 赵刚 于珍珠等 基于 51 单片机的温度测量系统 J 微计算机信息 2007 1 2 146 148 4 黄鸿 吴石增主编 传感器技术及其应用技术 北京理工大学出版社 2002 附录 程序清单附录 程序清单 主程序 主程序 include include include include include include 机器周期头文件机器周期头文件 define define ucharuchar unsignedunsigned charchar define define uintuint unsignedunsigned intint sbitsbit DQ P2 2 DQ P2 2 DS18B20 DS18B20 数据端口数据端口 sbitsbit dula P2 6 dula P2 6 sbitsbit wela P2 7 wela P2 7 sbitsbit sw P3 0 sw P3 0 sbitsbit jw P3 1 jw P3 1 sbitsbit beep P2 3 beep P2 3 floatfloat temper1 temper1 define define DQ GAO DQ GAO DQ 1DQ 1 宏定义宏定义 define define DQ LOW DQ LOW DQ 0DQ 0 constconst ucharuchar codecode table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f constconstucharucharcodecode table1 0 xbf 0 x86 0 xdb 0 xcf 0 xe6 0 xed 0 xfd 0 x87 0 xff 0 xef table1 0 xbf 0 x86 0 xdb 0 xcf 0 xe6 0 xed 0 xfd 0 x87 0 xff 0 xef 带小数点的 数带小数点的 数 字字 uintuint temper temper ucharuchar a1 a2 a3 a4 a1 a2 a3 a4 voidvoid disp uchar uchar uchar uchar disp uchar uchar uchar uchar 显示函数显示函数 voidvoid delay uintdelay uint z z uintuint t1 y t1 y for t1 z t1 0 t1 for t1 z t1 0 t1 for y 110 y 0 y for y 110 y 0 y voidvoid delayus uintdelayus uint x ucharx uchar y y 微秒延时函数微秒延时函数 16 uintuint i uchari uchar j j for i x i 0 i for i x i 0 i for j y j 0 j for j y j 0 j void void reset reset uintuint i i DQ 0 DQ 0 i 103 i 103 while i 0 i while i 0 i DQ 1 DQ 1 i 4 while i 0 i i 4 while i 0 i voidvoid reset reset 复位复位 初始化初始化 ucharuchar st 1 st 1 DQ GAO DQ GAO nop nop nop nop while st while st DQ LOW DQ LOW delayus 70 30 delayus 70 30 750us750us DQ GAO DQ GAO delayus 4 4 delayus 4 4 70us 70us if DQ 1 if DQ 1 st 1 st 1 初始化不成功初始化不成功 继续继续 whilewhile 循环循环 elseelse st 0 st 0 初始化成功初始化成功 delayus 50 10 500usdelayus 50 10 500us voidvoid write byte ucharwrite byte uchar date date 写数据写数据 一般从低位写一般从低位写 ucharuchar i temp i temp DQ GAO DQ GAO 错误所在错误所在 写数据必须先拉高延时再拉低写数据必须先拉高延时再拉低 nop nop nop nop for i 8 i 0 i for i 8 i 0 i 发完八位数据发完八位数据 temp date 0000temp date 0000 00010001 DQ LOW DQ LOW delayus 0 0 delayus 0 0 15us 15us if temp 1 if temp 1 DQ GAO DQ GAO 数据总线拉高数据总线拉高 表示数据已发出去表示数据已发出去 delayus 2 2 45usdelayus 2 2 45us DQ GAO DQ GAO 17 date date 1 date date 1 0010 0010 10101010 ucharuchar read byte read byte 读数据读数据 ucharuchar i date i date staticstatic bitbit j j 状态位状态位 又称 又称 静态局部变量在下次条用该函数时 该变量已有值 静态局部变量在下次条用该函数时 该变量已有值 就是上一次函数调用结束时的值就是上一次函数调用结束时的值 for i 8 i 0 i for i 8 i 0 i date date 1 date date 1 DQ GAO DQ GAO nop nop nop nop DQ LOW DQ LOW nop nop nop nop nop nop nop nop nop nop nop nop DQ GAO DQ GAO nop nop nop nop nop nop nop nop j DQ j DQ if j 1 if j 1 date date 0 x80 date date 0 x80 1000 1000 00000000一般从低位读只有放到字节的最好高位一般从低位读只有放到字节的最好高位 通过右移的方式才能做到通过右移的方式才能做到 delayus 1 1 delayus 1 1 30us30us return date return date voidvoid get tem get tem 读取寄存器中存储的温度数据读取寄存器中存储的温度数据 ucharuchar tem1 tem2 num tem1 tem2 num reset reset 复位复位 write byte 0 xcc write byte 0 xcc 跳过跳过 ROMROM write byte 0 x44 write byte 0 x44 温度转换温度转换 for num 70 num 0 num for num 70 num 0 num disp a1 a2 a3 a4 disp a1 a2 a3 a4 延时加显示延时加显示 A DA D 转换也类似转换也类似 reset reset 初始化初始化 write byte 0 xcc write byte 0 xcc 跳过跳过 ROMROM write byte 0 xbe write byte 0 xbe 读暂存器内部读暂存器内部 RAMRAM 中中 9 9 字节的温度数据字节的温度数据 tem1 read byte tem1 read byte 单片机读数据时单片机读数据时 一般会读一般会读 2 2 个字节共个字节共 1616 位位低字节低字节 tem2 read byte tem2 read byte 单片机读数据时单片机读数据时 一般会读一般会读 2 2 个字节共个字节共 1616 位位高字节高字节 temper tem2 256 0 tem1 6 2500 temper tem2 256 0 tem1 6 2500 温度系数转换成温度系数转换成 1616 位的温度数据再乘位的温度数据再乘以以 0 06250 0625 就成为实际值了就成为实际值了 temper1 temper 100 0 temper1 temper 100 0 a1 temper 1000 a1 temper 1000 a2 temper 1000 100 a2 temper 1000 100 a3 temper 100 10 a3 temper 100 10 18 a4 temper 10 a4 temper 10 voidvoid disp uchardisp uchar num1 ucharnum1 uchar num2 ucharnum2 uchar num3 ucharnum3 uchar num4 num4 显示函数显示函数 P0 table num1 P0 table num1 dula 1 dula 1 dula 0 dula 0 P0 0 xff P0 0 xff P0 0 xfe P0 0 xfe wela 1 wela 1 wela 0 wela 0 delay 5 delay 5 P0 table1 num2 P0 table1 num2 dula 1 dula 1 dula 0 dula 0 P0 0 xff P0 0 xff P0 0 xfd P0 0 xfd wela 1 wela 1 wela 0 wela 0 delay 5 delay 5 P0 table num3 P0 table num3 dula 1 dula 1 dula 0 dula 0 P0 0 xff P0 0 xff P0 0 xfb P0 0 xfb wela 1 wela 1 wela 0 wela 0 delay 5 delay 5 P0 table num4 P0 table num4 dula 1 dula 1 dula 0 dula 0 P0 0 xff P0 0 xff P0 0 xf7 P0 0 xf7 wela 1 wela 1 wela 0 wela 0 delay 5 delay 5 voidvoid beep1 uintbe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论