欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PDF文档下载
     

    电子设计综合训练课程设计报告-基于单片机的温度控制器设计.pdf

    • 资源ID:5026152       资源大小:3.71MB        全文页数:40页
    • 资源格式: PDF        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子设计综合训练课程设计报告-基于单片机的温度控制器设计.pdf

    河南理工大学课程设计 1 河河南南理理工工大大学学 电子设计综合训练报告电子设计综合训练报告 题目题目 温度控制器 温度控制器 姓 名: 学 号: 专业班级: 指导老师: 所在学院:电气工程与自动化学院 2010 年 11 月 日 河南理工大学课程设计 2 摘要摘要 基于单片机的温度控制器,采用 DS18B20 温度传感器采集所要测 量的当前环境的温度,通过单片机进行处理并加以显示。单片机采用 的是 STC89C52 系列单片机。温度传感器 DS18B20 具有 12 位精度,可 较为精确的测量当前环境的温度。 该温度控制器具有设定温度上下限的功能,通过控制继电器控制 外部加热及制冷装置,从而实现环境温度处于设定温度上下限范围 内。当 DS18B20 所测量的环境温度低于设定温度下限时,蜂鸣器发出 报警,控制外部加热装置的继电器动作,使外部加热装置工作,直到 温度高于温度设定下限时,警报解除。加热装置停止加热。当环境温 度高于温度上限时,蜂鸣器发出报警,控制外部降温装置的继电器动 作,使外部降温装制工作,直到环境温度低于温度上限,警报解除, 降温装置停止工作。 该温度控制器的显示部分采用 LED 数码管显示,具有显示当先温 度、温度上限值、温度下限值的功能。按键部分采用四个按键,每个 按键的功能不同,用过各个按键的配合使用,可以实现切换 LED 数码 管显示,调节温度上下限的功能。 本设计原理简单,制作方便是广大电子爱好者的首选。设计采用 已经普遍使用的温度传感器 DS18B20,通过该温度控制器的设计可以 是广大电子爱好者掌握 DS18B20 的工作原理,并且能够熟练的应用。 还可以对单片机的基本工作原理及编程,有一个更深的认识。 关键字:单片机 DS18B20 控制器 数码管 继电器 河南理工大学课程设计 3 目录 目录 1 概述 . 4 1.1 功能描述 . 4 1.2 设计的主要内容 5 2 系统总体方案及硬件设计 . 6 2.1 系统总体方案 . 6 2.2 硬件设计 . 7 2.2.1 单片机型号选择 7 2.2.2 单片机最小系统电路设计 9 2.2.3 按键电路设计 . 10 2.2.4 蜂鸣器报警电路设计 10 2.2.5 继电器控制电路设计 11 2.2.6 温度采集电路设计 13 2.2.7 LED 数码管显示电路设计 . 22 3 软件设计 25 3.1 主程序设计 . 25 3.2 定时器 0 中断程序 26 4 Proteus 软件仿真 29 4.1 Proteus 软件仿真步骤 . 29 4.2 仿真过程出现的问题及解决办法 29 5 体统调试 31 5.1 软件调试 . 31 5.2 硬件调试 . 31 5.3 软硬联调 . 32 参考文献 . 33 附录 . 34 河南理工大学课程设计 4 1 概述 1 概述 温度是工业生产中常见的工艺参数之一,任何物理变化和化学反 应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。 例如:在农业温室大棚生产、冶金工业、化工生产、电力工程、造纸 行业、 机械制作、 和食品加工等诸多领域中, 人们都需要对各类环境、 加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单 片机对温度进行控制,不仅具有控制方便、组态简单和灵活兴大等优 点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产 品的质量和数量。因此,单片机对温度的控制问题是一个工业中经常 遇到的问题。 基于单片机的温度控制系统可以实现温度的显示、预警等功能, 对于工业生产效率的提高,可以起到很大的作用。科学技术是第一生 产力, 对温度实现比较系统化的检测控制使人们的生产节奏有一个良 好的循环。从而将节约更多的人力物力,降低生产过程中可以省略的 一些繁琐的细节。 一个简单有效地控制系统可以在一定程度上使工厂 的生产的效益上一个台阶,只要运用得当,就有可能做到。 本设计是基于当前社会发展的良好形势下,经过慎重考虑后决定 的,也是对自己所学指示的一次检验,期望能够获得温故而知新的效 果。只有不断地学习才能不断的进步。结合社会的实际情况,然后根 据自己的特点,更好的去了解自己,充分挖掘自己的潜力。学以致用 使老师要求我们的努力的方向, 现今社会要求我们对知识的应用越来 越熟练,只有靠自己锲而不舍的奋发图强,争取自己的一片天地。 1.11.1 功能描述 功能描述 本温度控制器系统可以实现以下功能: 采集温度,并通过 LED 数码管显示当前温度。LED 数码管显示温 度格式为,例如:20.3 通过按键调节温度上下限,并通过 LED 数码管显示设定的温度上 下限值。 数码管显示温度上限格式, 例如: 25.0L。温度下限格式, 例如:35.0H。 河南理工大学课程设计 5 控制继电器,从而达到控制外部加热、制冷装置。使环境温度保 持在设定温度范围内。 具有报警装置。当温度高于上限、或低于下限时,蜂鸣器发出不 同频率的报警声。 通过报警声就可以分辨出是温度过高还是过低。 1.2 设计主要内容 1.2 设计主要内容 本温度控制器系统的设计所涉及的主要内容有: 对 STC89C52RC 单片机的了解及应用主要有: 单片机最小系统的设 计、单片机外围电路设计以及程序设计 温度传感器 DS18B20 的应用:DS18B20 与单片机接口电路的设计, 对 DS18B20 采集温度的程序设计,包括对 DS18B20 温度传感器的 初始化、设定精度,读取温度值等。 4 位共阴极数码管的应用:数码管驱动电路的设计,数码管动态 扫描程序设计。 继电器控制电路设计及蜂鸣器报警电路设计。 按键电路的设计:由于按键并不是太多单片机端口有剩余,每个 按键可以接到一个端口上。这样就可以简化按键电路的设 计。按键部分的设计主要在于程序设计。 河南理工大学课程设计 6 系统总题方案及硬件电路设计 2.1 系统总体方案 系统总题方案及硬件电路设计 2.1 系统总体方案 1) 系统分析 基于单片机的温度控制系统的基本结构图如图 2-1 所示。该系统 主要包含输入控制电路、晶振复位电路、LED 数码管显示电路、蜂鸣 器报警电路、继电器控制电路、DS18B20 温度传感器电路等外围电路 组成。 2) 系统功能划分 硬件功能:主要包括按键输入控制电路、晶振复位电路、4 位 LED 数码管驱动电路、温度采集电路、蜂鸣器报警电路、继电器控制电路 等都是有硬件功能来实现的。 软件功能:软件部分主要是程序的设计,它是在硬件电路的基础 上实现的。 程序设计主要包括数码管动态显示、 温度采集、 按键扫描、 蜂鸣器报警、继电器控制等程序的设计。当然程序设计难点、重点在 晶振、 复位 单片机 (STC89C52RC) 输入控 制 数码管显 示 蜂鸣器报 警 温度采 集 继电器控制 图 2-1 温度控制系统功能模块图 河南理工大学课程设计 7 于数码管动态显示部分及温度上下限的调节及显示。 硬件与软件部分具体设计方法、步骤及再设计过程中需要注意的 问题,在以后的章节中将会做出详细的说明。 3) 机型器件选择 单片机采用 STC89C52RC 型号单片机。由于 STC 系列单片机具 有 51 单片机内核,并且价格便宜,便于程序的下载。 按键采用一个自锁按键用于控制电源的开关, 四个轻触按键用 于切换数码管显示的内容及调节温度上下限。 4 为 7 段 LED 数码管用于显示温度数据及温度上下限。 温度传感器采用 DS18B20。 2.2 硬件设计 2.2 硬件设计 基于单片机的温度控制系统器其硬件电路方框图如图 2-2 所示。 有图可知,硬件电路有 6 部分组成。即单片机按键输入电路、单片机 最小系统电路、温度采集电路、继电器控制电路、蜂鸣器报警电路、 4 位数码管驱动电路等。 2.2.1 单片机型号的选择 2.2.1 单片机型号的选择 单 片 机 按键输入电路 最小系统电路 温度采集电路 数码管显示 电路 蜂鸣器报警 电路 继电器控制 电路 图 2-2 硬件电路方框图 河南理工大学课程设计 8 单片机型号的选择是根据设计的内容而定的,并不是什么单片机 都可以用。 一方面要考虑选用的单片机能否在不需要外扩的情况下就 可以满足要实现的功能。比如:单片机的存储器空间的大小、单片机 的 I/O 口数等。另一方面还要考虑单片机的性价比,是否容易买到等 一些外部因素。 由于实现该系统功能的程序不会超过 8K,而 STC89C52 单片机内 部有 8K 的 FlASH 程序存储器和 512B 的数据存储器, 因而不需要外扩 程序存储器和数据存储器。并且该型号单片机程序下载方便、价格便 宜的优点,因而被广泛的应用。STC89C52RC 单片机引脚排列及功能 见图 2-3 所示。 有图可知该单片机共有 40 个引脚,按其功能类别将他们分为三 类: 1.电源和时钟引脚。如 Vcc、GND、XTAL1、XTAL2。 2.编程控制引脚。如 RST、PSEN、ALE、 EA/Vpp。 3.I/O 口引脚。如 P0、P1、P2、P3,4 组 8 位 I/O 口。 图2-3 STC89C52RC单片 河南理工大学课程设计 9 具体各个管脚的功能和作用请参考相关书籍。 2.2.2 单片机最小系统电路设计 2.2.2 单片机最小系统电路设计 单片机最小系统就是保证单片机能够正常工作的最基本的硬件电 路。主要包括时钟电路、复位电路。 单片机工作的时间基准是有时钟电路提供的。在单片机的 XTAL1 和 XTAL2 管脚, 按图 2-4 所示接上晶振和电容就够成了单片机的时钟 电路。 图 2-4 时钟电路 图中电容 C2、C3 对晶振频率有微调的作用,通常的取值范围为 (30+10pf) 。石英晶体选择 12MHz,选择不同的石英晶体,其结果只 是机器周期不同。 单片机的复位方式有上电复位和手动复位两种。本设计系统采用 上电自动复位和手动复位组合电路,如图 2-5 所示复位电路。 图 2-5 复位电路 河南理工大学课程设计 10 图中可以看到单片机的 RST 引脚连接 R1(10K)、C1(10uf), 按键 S2 可以选择专用的复位按键,也可以选择轻触开关。只要 Vcc 上升时间不超过 1ms,他们都能很好的工作。 2.2.3 按键电路设计 2.2.3 按键电路设计 基于单片机的温度控制系统工作时应具备以下功能:一、可以切 换显示实时温度和温度上下限的值。二、可以调节温度上下限。要实 现这些功能,可以通过按键输入电路。 键盘结构可分为独立式键盘和行列式键盘(矩阵式)两类,由于 本系统只采用 4 个按键,因此可选用独立式按键。如图 2-6 所示,电 路有四个按键组成,按键采用轻触开关。 图 2-6 按键电路 各个按键的功能为:S5 用来切换数码管显示界面,当数码管界面 显示的是温度上下限时通过按键 S4 可以调节要调整的温度上下限的 整数位和小数位。当数码管界面显示为某一位闪动时通过按键 S1、 S3 调节闪动位的数值。 小数位的数值变化范围 0-9 之间, 整数位 0-99 之间的数。S3 加数值,S1 减数值。 2.2.4 蜂鸣器报警电路设计2.2.4 蜂鸣器报警电路设计 按照设计要求,当温度低于下限或高于上限时,应具有报警功能。 这样就可以用一只蜂鸣器作为三极管 VT1 的集电极负载, 当 VT1 导通 时,蜂鸣器发出鸣叫声;VT1 截止时,蜂鸣器不发声。图 2-7 为蜂鸣 器驱动电路。 河南理工大学课程设计 11 图 2-7 蜂鸣器驱动电路 有图可以看出,蜂鸣器通过三极管 9012 的基极连接到单片机的 P20 管脚。当 P2.0=0 时,VT1 导通,使蜂鸣器的两个管脚间获得将近 5V 的直流电压,蜂鸣器中有电流通过,而产生蜂鸣声; 当 P2.0=1 时,VT1 截止,蜂鸣器的两个管脚间的直流电压接近于 0,蜂鸣器不 发生。其中 R8=100 为限流电阻。 2.2.5 继电器控制电路设计 2.2.5 继电器控制电路设计 继电器工作原理和特性: 继电器工作原理和特性: 继电器是当输入量(如电压、电流、温度等)达到规定值时,使 被控制的输出电路导通或断开的电器。它可以分为电器量(如电流、 电压、频率、功率等)继电器及非电器量(如温度、压力、速度等) 继电器两大类。继电器具有动作快、工作稳定、使用寿命长、体积小 等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等 装置中。 继电器是一种电子控制器件,它具有控制系统(又称输入回路) 和被控制系统(又称输出回路) ,通常应用于自动控制电路中,他实 际上是用较小的电流去控制较大电流的一种“自动开关” 。故在电路 中起着自动调节、安全保护、转换电路等作用。 继电器的选用: 继电器的选用: 1.先了解必要的条件 控制电路的电源电压,能提供的最大电流; 河南理工大学课程设计 12 被控制电路中的电压和电流; 被控电路需要几组、什么形式的触点。选用继电器时,一般控 制电路的电源电压可作为选用的依据。 控制电路应能给继电器提供足 够的工作电流,否则继电器吸合是不稳定的。 2.查阅有关资料确定使用条件后,可查找相关资料,找出需要的 继电器的型号和规格号。若手头已有继电器,可依据资料核对是否可 以利用。最后考虑尺寸是否合适。 3.注意器具的容积。若是用于一般用电器,除考虑机箱容积外, 小型继电器主要考虑电路板安装布局。对于小型电器,如玩具、遥控 装置则应选用超小型继电器产品。 本设计采用的继电器的型号为SDR-05VDC-SL-C松乐10A250VAC单 刀双掷继电器其实物图如图 2-8 所示。 图 2-8 继电器实物图 继电器的控制电路如图 2-9 所示。 有图可知单片机的 P2.2 端口控 制一个单刀双掷继电器,继电器的常开端引出到 P7 端子上。与继电 器内部线圈相连接的两个端子,一端直接与 5V 电源的正极相连,另 一端接至三极管的射极。当单片机控制端给三极管基极一个低电平 时,三极管导通,线圈有电流流过,继电器吸和;当单片机控制端给 三极管基极一个高电平时,三极管截止,线圈无电流流过,继电器断 开。 河南理工大学课程设计 13 图 2-9 继电器控制电路 在应用该电路时需要注意以下几点: 1.图中 LED 发光二极管用来指示继电器工作情况,继电器吸合时 指示灯亮。 但是与发光二级管相连的限流电阻与单片机相连的限流电 阻的比值一定要大于 10 倍,即(R9/R11)10。否则,由于加在继电器 两端的电压过低而不能使继电器吸和。 2.在继电器线圈两端反接一个二极管。这个二极管非常重要,当 使用电磁继电器时必须连接。原因:线圈通电正常工作时,二极管对 电路不起作用。 当继电器线圈在断电的一瞬间会产生一个很强的反向 电动势, 在继电器线圈两端反向并联二极管就时用来消耗这个反向电 动势的, 通常这个二极管叫做消耗二极管, 如果不加这个消耗二极管, 反向电动势会直接作用在驱动三极管上,很容易将三极管损坏。 2.2.6 温度采集电路设计 2.2.6 温度采集电路设计 本设计采用 DS18B20 温度传感器作为温度采集电路核心部件。在 介绍温度采集电路之前限详细的介绍 DS18B20 温度传感器。 DS18B20 是美国 DALLAS 半导体公司推出的第一片支持 “一线总线” 接口的温度传感器, 它具有微型化、 低功耗、 高性能、 抗干扰能力强、 易配微处理器等优点, 可直接将温度转化成串行数字信号供处理器处 理。 河南理工大学课程设计 14 1.DS18B20 温度传感器特性 1.DS18B20 温度传感器特性 适应电压范围宽,电压范围在 3.0-5.5V,再寄生电源方式下 可有数据线供电。 独特的单线接口方式, 它与微处理器连接时仅需一条口线即可 实现微处理器与 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.应用范围 2.应用范围 冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温 和控制领域。 轴瓦、缸体、纺机、空调等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜以及中低温干燥箱等。 供热、制冷管道热量计量、中央空调分户热量计量等。 3.引脚介绍 3.引脚介绍 DS18B20 有两种封装:三脚 TO-92 直插式和八脚 SOIC 贴片式,封 河南理工大学课程设计 15 装引脚见图 2-10 所示。表 2-11 列出了引脚定义。 图 2-10 DS18B20 引脚封装图 表 2-11 DS18B20 引脚定义 引 脚 定 义 GND 电源负极 DQ 信号输入输出 VDD 电源正极 NC 空 4.硬件连接 4.硬件连接 我们首先来了解“单总线”的概念。目前常用的单片机与外设之 间进行数据传输的串行总线主要有 I²C 总线以同步串行二线方式进 行通信(一条时钟线,一条数据线),SPI 总线则以同步串行三线方 式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而 SCI 总线是以异步方式进行通信的(一条数据输入线,一条数据输出 线)。这些总线至少需要两条或两条以上的信号线,而 DS18B20 使用 河南理工大学课程设计 16 的单总线技术与上述总线不同,它采用单条信号线,即可传输时钟, 又可传输数据,而且数据传输是双向的,因而这只中单总线技术具有 线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单 总线实用与单主机系统,能够控制一个或多个从机设备。 主机可以是微控制器,从机可以是单总线器件,他们之间的数据 交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系 统操作;当有从机设备时,系统则按多节点系统操作。设备(主机或 从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不 发送数据时能够释放出总线,而让其他设备使用总线。单总线要求外 接一个约为 5k的上拉电阻。本设计系统的温度采集电路图如图 2- 12 所示。 图 2-12 DS18B20 温度传感器采集电路 有图可以看出,DS18B20 和单片机的连接非常简单,单片机只需 要一个 I/O 口就可以控制 DS18B20。这个图的接法是单片机于一个 DS18B20 通信,如果要控制多个 DS18B20 进行温度采集,只要将所有 的 DS18B20 的 I/O 口全部连在一起就可以了。在具体操作时,通过读 取每个 DS18B20 内部芯片的序列号来识别。本系统仅操作一个 DS18B20 进行温度采集。 5.工作原理 5.工作原理 硬件电路连接好后,单片机需要怎样工作才能将 DS18B20 中的温 度数据读取出来呢?下面将给出详细的分析。 河南理工大学课程设计 17 首先我们来看控制 DS18B20 的指令: 33H读 ROM。读 DS18B20 温度传感器 ROM 中的编码(即 64 位 地址) 。 55H匹配 ROM。发出此命令之后,接着发出 64 位 ROM 编码, 访问单总线上与改编码对应的 DS18B20 并使之做出响应, 为下一步对 该 DS18B20 的读/写做准备。 F0H搜索 ROM。用于确定挂接在同一总线上的 DS18B20 的个 数,识别 64 位 ROM 地址,为操作各器件做好准备。 CCH跳过 ROM。忽略 64 位 ROM 地址,直接向 18B20 发送温度 变换命令,适用于一个从机工作。 ECH告警搜索命令。执行后只有温度超过设定值上限或下限 芯片才做出响应。 以上这些指令涉及的存储器是 64 位光刻录 ROM,表 2-13 列出了 它的各位定义。 表 2-13 64 位光刻录 ROM 各位定义 8 位 CRC 码 48 位序列号 8 位产品类型标号 64 位光刻录 ROM 中的序号是出厂前被光刻录好的,它可以看做该 DS18B20 的地址序列号。其各位排列顺序是:开始 8 位为产品类型标 号,接下来 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位 的 CRC 循环冗余校验码(CRC=X8+X5+X4+1) 。光刻录 ROM 的作用是使 每一个 DS18B20 都各不相同,就这样可以实现一条总线上挂接多个 DS18B20 的目的。 下面介绍以上几条指令的用法。当主机需要对众多在线 DS18B20 中的某一位进行操作时,首先应将主机逐个与 DS18B20 挂接,读出其 序列号;然后再将所有的 DS18B20 挂接到总线上,单片机发出匹配 ROM 命令(55H) ,紧接着主机提供的 64 位序列(包括该 DS18B20 的 48 位序列号)之后的操作就是针对该 DS18B20 的。 如果主机只对一个 DS18B20 进行操作,就不需要读取 ROM 编码以 河南理工大学课程设计 18 及匹配 ROM 编码了,只要用跳过 ROM(CCH)命令,就可以进行如下 温度转换和读取操作。 44H温度转换。启动 DS18B20 进行温度转换,12 位转换时最 长为 750ms(9 位为 93.75ms) 。结果存入内部 9 字节 RAM 中。 BEH度暂存器。读内部 RAM 中 9 字节的温度数据。 4EH写暂存器。发出向内部 RAM 的第 2,3 字节写上、下限温 度数据命令,紧跟该命令之后,是传送两字节的数据。 48H复制暂存器。将 RAM 中第 2,3 字节的内容复制到 E²PROM 中。 B8H重调 E²PROM。将 E²PROM 中内容恢复到 RAM 中的第 3,4 字节。 B4H读供电方式。读 DS18B20 的供电模式。寄生供电时, DS18B20 发送 0;外接电源供电时,DS18B20 发送 1。 以上这些指令涉及的存储器为高速暂存器 RAM 和可电擦除 E² PROM,见表 2-14 所示。 表 2-14 高速暂存 RAM 寄存器内容 字节地址 温度值低位(LSB) 0 温度值高位(MSB) 1 高温限值(TH) 2 低温限制(TL) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校验值 8 高速暂存器 RAM 由 9 个字节的存储器组成。第 0-1 个字节是温度 的显示位;第 2 和第 3 个字节是复制的 TH 和 TL,同时第 2 和第 3 个 河南理工大学课程设计 19 字节的数字可以更新;第四个字节是配置寄存器,同时第 4 个字节的 数字可以更新;第 5,6,7 三个字节是保留的。可电擦除 E²PROM 又包 括温度触发器 TH 和 TL,以及一个配置寄存器。 表 2-15 列出了温度数据在高速暂存器 RAM 的第 0 和第 1 个字节中 的存储格式。 表 2-15 温度数据存储格式 位 7 位 6 位 5 位 4 位 3 位 2 位 1 位 0 3 2 2 2 1 2 0 2 1 2 2 2 3 2 4 2 位 15 位 14 位 13 位 12 位 11 位 10 位 9 位 8 S S S S S 6 2 5 2 4 2 DS18B20 在工厂时默认配置为 12 位,其中最高位为符号位,即温 度值共 11 位单片机在读取数据时,一共会读两个字节共 16 位,读完 后将低11位的二进制数转换为十进制数后再乘以0.0625便为所测的 实际温度值。另外,还需要判断温度正负。前 5 个数字为符号位,这 5 位同时变化,我们只需要判断 11 为就可以了。前 5 位为 1 时,读 取的温度为负值,且测到数值需要取反加 1 再乘以 0.0625 才可以得 到实际值。前 5 位为 0 时,读取温度为正值,且温度为正值时,只需 要将测得数值乘以 0.0625 即可得到实际温度值。 6.工作时序图 图 2-16 为时序图中各总线状态。 6.工作时序图 图 2-16 为时序图中各总线状态。 图 2-16 时序图中各总线状态 图 2-16 时序图中各总线状态 (1)初始化(时序图见图 2-17) 河南理工大学课程设计 20 图 2-17 初始化时序图 先将数据线置高电平 1。 延时(改时间要求不是很严格,但是要尽可能短一点) 。 数据线拉到低电平 0. 延时 750us(改时间范围可以在 480-960us) 。 数据线拉到高电平 1。 延时等待。如果初始化成功则在 15-60ms 内产生一个有 DS18B20 返回的低电平 0,据该状态可以确定它的存在。 但是应注意不 能无限的等待,不然会使程序进入死循环,所以要进行超时判断。 若 CPU 读到数据线上的低电平 0 后,还要进行延时,其延时的 时间从发出高电平算起(第 5 步的时间算起)最少要 480us。 将数据线再次拉到高电平 1 后结束。 (2)DS18B20 写数据(时序图见图 2-18) 图 2-18 写数据时序图 数据线先置低电平 0。 河南理工大学课程设计 21 延时确定的时间为 15us。 按从低位到高位的顺序发送数据(一次只发送一位) 。 延时时间为 45us。 将数据线拉到高电平 1。 重复-步骤,直到发送完整个字节。 最后将数据线拉到高电平 1。 (3)DS18B20 读数据(时序图见图 2-19) 图 2-19 读数据时序图 将数据线拉到高电平 1。 延时 2us。 将数据线拉低到 0。 延时 6us。 将数据线拉高到 1。 延时 4us。 读数据线的状态得到一个状态位,并进行数据处理。 延时 30us。 重复-步骤,直到读完一个字节。 河南理工大学课程设计 22 2.2.7 LED 数码管显示电路设计 2.2.7 LED 数码管显示电路设计 单片机应用系统中,通常都需要进行人机对话,这包括人对应用 系统的状态干预与数据输入, 以及应用系统向人们显示运行状态与运 行结果等。 LED 显示电路由段驱动电路和位驱动电路组成。由于单片机的并 行口不能驱动 LED 显示器,必须采用专门的驱动电路芯片,使之产生 足够大的电流,显示器才能正常工作。如果驱动电路能力差,即负载 能力不够,显示器亮度就低,而且驱动电路长期在超负荷下运行容易 损坏。 LED 显示器的显示控制方式分为静态显示和动态显示两种,若选 择静态显示,则 LED 驱动器的选择较为简单,只要驱动器的驱动能力 与显示器的电流相匹配即可,而且一般只需考虑断的驱动;动态显示 则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因 此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动 能力。 本系统采用并行驱动动态显示。采用单片机 P2 口的低 4 位作为 L ED 的位码输出信号,P0 口作为段码输出信号。该驱动电路如图 2-20 所示,P0 口作为段码输出信号需外接上拉电阻。图 2-21 为 4 位共阴 极数码管带时钟的引脚图。 有图2-20可以看到, 原理图中用4个三极管作为数码管的位驱动。 用三极管作为位驱动虽然在焊接时有点复杂,也容易焊错,但是能够 大大的将低成本。所以在焊接时一定要注意不要将三级管的管教焊 错。 P0 口接上拉电阻时应注意的几点:PO 口作为 I/O 口输出的时候, 输出低电平位 0, 输出高电平为高阻态 (并非 5V, 相当于悬空状态) 。 河南理工大学课程设计 23 也就是说 PO 口不能真正的输出高电平给所接的负载提供电流,因此 必须接上拉电阻,有电原通过这个上拉电阻给负载提供电流。 1.P0 口作为普通 I/O 口时,需要外接上拉电阻。 2.若外电路可提供高电平,则 P0 口是否外接上拉电阻没什么影 响。但是要知道,有些 IC 的驱动能力并不强,如果 P0 口作为输入而 加了不必要的上拉,有可能驱动 IC 无法将其拉回低电平,从而输入 失败。 3.如果是驱动 LED 数码管,那么用 1K 左右的上拉电阻就行了。如 果希望亮度大一些,电阻可减小,最小不要小于 200,否则电流太 大;如果希望亮度小一些,电阻可增大,增大到多少呢?主要看亮度 情况,以亮度合适为准。一般来说,超过 3K 以上时,亮度就很弱了, 但是对于超高亮度的 LED,有时候电阻为 10K 时感觉亮度还够用。通 常就用 1K 的。 4.对于驱动光耦合器,如果是高电位有效,就耦合器输入端接端 口和地之间,那么和 LED 的情况是一样的;如果是低电位有效,即耦 合器输入端接端口和 VCC 之间,那么除了要串接一个 1-4.7K 之间的 电阻一外,同时上拉电阻的阻值就可以用的特别大,用 100-500K 之 间的都可以。 5.对于驱动晶体管,又分为 PNP 和 NPN 管两种情况:对于 NPN, 毫无疑问 NPN 管是高电平有效地, 因此上拉电阻的阻值用 2-20K 之间 的,具体的大小还要看晶体管的集电极接的是什么负载。对于 LED 类 负载,由于发管电流很小,因此上拉电阻的阻值可以用 20K 的,但是 对于管子的集电极为继电器负载时,由于集电极电流大,因此上拉电 阻的阻值最好不要大于 4.7K,有时候甚至用 2K 的。对于 PNP 管,毫 无疑问 PNP 管事低电平有效,因此上拉电阻的阻值用 100K 以上的就 河南理工大学课程设计 24 行了,且管子的基极必须串一个 1-10K 的电阻,阻值的大小要看管子 的集电极的负载是什么,对于 LED 类负载,基极串联的电阻阻值可以 用 20K 的,但是对于管子的集电极为继电器负载时,基极电阻的阻值 最好不要大于 4.7K。 图 2-20 4 位 LED 数码管驱动电路 图 2-21 4 位共阴极数码管带时钟的引脚分布 4 位共阴极数码管带时钟的引脚分布,正面逆时针方向依次为 1 12。 段码引脚连线为 A-11 B-7 C-4 D-2 E-1 F-10 G-5 D5-3 D6-3 位码引脚连线为 DIG.1-12 DIG.2-9 DIG.3-8 DIG.4-6 河南理工大学课程设计 25 3 系统软件程序设计 3 系统软件程序设计 硬件部分设计制作完成后,关键是程序的编写。该系统程序的编 写才用模块化程序设计,采用模块化程序设计的优点在于: 每个模块都可以分配给不同的程序员完成,从而缩短开发周期。 各个模块高聚合、模块之间低耦合,只要模块之间确定了参数传 递的接口,不管那个模块内部的改动,均不会影响其他模块,从 而使件产品的生产更加灵活。 系统细化到模块,条理清晰,系统更加容易理解和实现。 容易维护、系统可靠。 系统程序主要包括以下几个部分:主程序(main.c) 、按键扫描子 程序(key.c) 、温度传感器子程序(DS18B20.c) 、数码管显示子程序 (display.c) 、定时器 0 中断子程序。 3.1 主程序设计 3.1 主程序设计 主程序通过调用各个子程序,实现温度的采集、按键扫描、数码 管显示、数据处理等功能。其主程序流程图如图 3-1 所示。 本论文只给出主程序和定时器 0 中断程序的流程图。其它子程序 的流程图在这没有给出,程序代码中有详细说明。 注意:改程序数码管显示并不是按照常规的共阴极数码管编码显 示的。其共阴极数码管显示编码是根据硬件连接编码的,该设计的数 码管显示编码如表 3-3 所示。 河南理工大学课程设计 26 开始 初始化 按键扫描 flag=1? 判断温度 是否超限 且 k=0? 温度高于 上限? 1 号继电器工作、 蜂鸣器以 200Hz 频率报警 2 号继电器工作、 蜂鸣器以 500Hz 频率报警 图 3-1 主程序流程图 否 是 是 否 是 关 蜂 鸣 器、1、2 号 继 电 flag=0 否 温度低于 下限 采集温度 河南理工大学课程设计 27 定时器 0 中断程序,实现数码管的动态扫描显示。其程序流程图 如图 3-2 所示。 定时器 0 中断 赋初值 TH0=0xe8; TL0=0xf0; P+;p=50? k=1? k=0? k=2? 给 buf赋值, 数码管显示温 度值。 给 buf赋值, 数码管显示温 度上限。 给 buf赋值, 数码管显示温 度下限。 数码管显示第 num 位 Num+ num=4? Num=0 flag=0? P=0 是 否 是 否 是 是 是 是 结束 否 图 3-2 定时器 0 中断程序 河南理工大学课程设计 28 表 3-3 共阴极数码管编码 序号 编码 0 0xeb 1 0x88 2 0xb3 3 0xba 4 0xd8 5 0x7a 6 0x7b 7 0xa8 8 0xfb 9 0xfa 河南理工大学课程设计 29 4 Proteus 软件仿真 4.1 Proteus 软件仿真步骤 4 Proteus 软件仿真 4.1 Proteus 软件仿真步骤 以上程序完成之后, 在 Proteus 软件中对所设计的系统进行仿真。 仿真的具体步骤为: 1、 根据设计的硬件电路在 Proteus 软件中元件库中选择所需的元 器件。 本系统所需的元器件有 AT89C52、 7SEG-MPX4CC、 SPEAKER、 CAP、 LED-RED、RES、CRYSTSL、RESPACK-8、CAP-ELEC、BUTTON、POWER、 GROUND、DS18B20、PNP、RELAY。 2、有原理图把所选元器件连接起来。仿真电路图如图 4-1 所示。 3、仿真电路连接完毕后,将调试好的程序下载到单片机。双击单 片机图标,将出现 Edit Companent 框。点击 Program File 后文件 夹图标,在弹出的对话框中选择 HEX 文件,点击 OK。这样所写的程 序就被下载到单片机内。 以上步骤完成后,单击 Proteus 软件界面左下角的 Play 按钮,进 行仿真实验。观察现象,是否符达到预期结果。若未能达到预期结果 分析出现错误的原因。有软件方面也有硬件方面。 4.2 仿真过程中出现的问题及解决的方法 4.2 仿真过程中出现的问题及解决的方法 在仿真过程中出现的问题及解决的方法: 1、在仿真过程中出现 LED 不显示,主要原因在与 P0 口未接上拉 电阻。经调整后,又有 LED 出现闪烁现象,经分析主要原因在于数码 管扫描时间间隔过大。对程序调整后能够正常显示。 2、对按键进行操作时,不能对时间进行调整。经检查电路连接无 误,主要原因在与软件部分。对程序修改后能正常工作。 河南理工大学课程设计 30 3、在仿真过程中,当温度超过上下限时未能听到蜂鸣器的报警声 或声音很微弱。经检查分析,主要原因在于为接三极管驱动电路。 图 4-1 基于单片机的温度控制系统仿真图(1) 图 4-2 基于单片机的温度控制系统仿真图(2) 河南理工大学课程设计 31 5 系统调试 5 系统调试 根据系统设计方案,本系统调试共分为三大部分:硬件调试、软 件调试和软硬件级联调试。由于在系统设计过程中采用模块化设计, 所以方便了对各电路功能模块的逐级测试。 包括: 按键操作功能调试、 蜂鸣器声音调试、继电器控制调试、数码管显示调试、温度采集调试 等。 5.1 硬件调试 5.1 硬件调试 电路安装完成后,首先进行检查,即确认电路无焊虚、无短路、

    注意事项

    本文(电子设计综合训练课程设计报告-基于单片机的温度控制器设计.pdf)为本站会员(西安人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开