电子设计竞赛论文及总结报告-单片机数字显示温度计.doc_第1页
电子设计竞赛论文及总结报告-单片机数字显示温度计.doc_第2页
电子设计竞赛论文及总结报告-单片机数字显示温度计.doc_第3页
电子设计竞赛论文及总结报告-单片机数字显示温度计.doc_第4页
电子设计竞赛论文及总结报告-单片机数字显示温度计.doc_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

摘要 2012年黑龙江八一农垦大学电子协 会电子设计竞赛论文及总结报告 题目:数字显示温度计 组号:2012205001 组员: 导师: 时间:2012年3月20日-4月1日 摘要 摘要说明 随着现代化信息技术的飞速发展,单片机技术已经十分普及,在实时检测和 自动控制的单片机应用系统中,单片机往往是作为核心部件来使用。 本论文介绍了一种以单片机 at89s52 为主要控制器件,以 ds18b20 为温度传 感器通过 lcd 液晶屏传送数据,实现温度显示的新型数字温度计。该数字温度计 的测量范围为 0120,显示分辨率为 0.1,误差0.10。由于采用了温 度传感器 ds18b20 作为检测元件,与传统的温度计相比,本文设计的数字温度计 减少了外部的硬件电路,具有读数方便,测温范围广,测温精确,数字显示,适 用范围宽等特点。ds18b20 温度计还可以在高温报警、远距离多点测温控制等方 面进行应用开发。该系统结构简单,抗干扰能力强,适合于各种环境下进行现场 温度测量,可广泛应用于工业控温系统、温度计、消费产品以及其它温度测控系 统。我们利用单片机的这种强大的多功能控制了水温的系统,我们相信在我们的 努力下,一定能够实现我们的目的,单片机有着极其远大的发展前途。 关键词关键词:单片机at89s52;温度传感器ds18b20;ds1302;lcd液晶屏显示;变 压器等。 目录3 abstract with the rapid development of modern information technology, microcontroller technology has become quite common, real-time detection and automatic control in the microcomputer application systems, microcontroller is often used as a core component to use. this paper introduces a single-chip control device for main at89s52 for temperature sensor ds18b20, to transmit data by lcd screen, realize temperature display of the new digital thermometer. this digital thermometer measurement range is 0 120 , the display resolution for 0.1 , error acuities + 0.5.as a result of the temperature sensor ds18b20 as the test components compared with the traditional thermometer, this paper designed digital thermometer reduce external hardware circuit, which readings convenient, temperature measuring range, temperature measurement precision, the digital display characteristics, wide application scope. ds18b20 thermometer can still in high temperature alarm, long-range multi-point measurement temperature control aspects of application development. the system structure is simple, strong anti-jamming capability, suitable for all kinds of environment temperature measurement on the site, and can be widely used in industrial control temperature system, thermometer, consumer products and other temperature measurement and control system. keywords: scm at89s52 single; temperature sensor ds18b20; digital thermometer; lcd display 目录i 目 录 一. 绪论绪论 1 1.1 研究背景 1 1.2 研究现状 1 二二. . 总体设计方案总体设计方案 3 2.1 设计思路 3 2.2 总体设计框图 3 2.3 所用材料 4 三三. . 硬件设计硬件设计 5 3.1 单片机的选择5 3.2 温度传感器的选择9 3.3 温度检测电路.16 3.4 温度报警电路.17 3.5 复位电路.18 3.6 时钟电路.19 3.7 显示电路.20 3.8 主电路原理图.21 四四. . 软件设计软件设计 23 4.1 概述.23 4.2 主程序模块.23 4.3 各模块流程设计.24 4.4 报警模块流程.27 五五. . 仿真仿真 29 5.1 proteus 介绍 .29 5.2 altium designe介绍30 六六. .综合调试综合调试 33 6.1 焊接 .33 6.2 调试 .33 目录ii 七七. . 总结与体会总结与体会 35 致谢致谢 37 参考文献参考文献 39 附录附录 41 第一部分 绪论1 第一部分 绪论 1.1 研究背景 随着现代信息技术的飞速发展和传统工业改造的逐步实现,人们在生产过程 中会越来越关注精密而实用的仪器,能够独立工作的温度检测和显示系统应用于 诸多领域。其中数字温度计就是一个典型的例子,但人们对它的要求越来越高, 要为现代人工作、科研、生活等提供更好更方便快捷的设施就需要从单片机技术 入手,一切向着数字化控制,智能化控制方向发展。 目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度 计、热电偶温度计、数字温度计、电子温度计等等,温度计中传感器是它的重要 组成部分,它的精度、灵敏度基本决定了温度计的精度、测量范围、控制范围和 用途等。传感器应用极其广泛,目前已经研制出多种新型传感器。 传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续 信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广, 测温精确,数字显示,适用范围宽等特点,主要用于对测温比较准确的场所或科 研实验室使用,可广泛用用于工业控温系统、温度计、消费产品以及其它温度测 控系统。目前,该产品已在温控系统中得到了广泛使用。 因此本设计就尝试通过编程与芯片的结合来解决传统数字温度计的弊端,设 计出新型数字温度计。 1.2 研究现状 温度传感器的发展现状:温度传感器使用范围广,数量多,居各种传感器之 首,其发展大致经历了以下 3 个阶段: 1、传统的分立式温度传感器(含敏感元件)热电偶传感器,主要是能够进行 非电量和电量之间转换。 数字显示温度计的设计2 2、模拟集成温度传感器/控制器,集成传感器是采用硅半导体集成工艺制成的, 因此亦称硅传感器或单片集成温度传感器。 3、智能温度传感器。它是微电子技术、计算机技术和自动测试技术(ate_)的 结晶。智能温度传感器内部包含温度传感器、a/d 传感器、信号处理器、存储器 (或寄存器)和接口电路。 本设计课题的研究可以应用领域生产、生活等很多领域。对于家用电器从洗 衣机、微波炉到音响等等到处都可以用到温度控制器来方便大家的日常生活。开 发此产品后也可方便应用安装在小至家庭大到工厂车间,小至一个芯片大到一个 机械设备。例如在家庭客厅卧室等必要地方显示室温,可防止家里食物是否变质 及早采取措施。工业生产控制中用数字温度计可清晰显示温度来防止元气件失效 或损坏等不必要的非人为损失,对做好车间机器维修与保养起很重要的作用。 第二章 总体设计方案3 第二部分 总体设计方案 2.1 设计思路 本设计是一个基于单片机 at89s51 的数字温度计和温度传感器 ds18b20 的设 计,用来测量环境温度,测量范围为 0120,显示分辨率为 0.1,误差 0.5,当温度高于 55或低 35于程序设定值时,报警电路就会发出报警, 并且在 lcd 液晶屏第二行温度值的后面显示出高温超限或低温超限。 整个设计系统主要包括硬件电路的设计和系统软件的设计。硬件电路主要包 括主控制器,测温电路和显示电路等。主控制器采用单片机 at89c51,温度传感 器采用美国 dallas 半导体公司生产的 ds18b20 来实现环境温度的采集和 a/d 转 换,同时因其输出为数字形式,且为串行输出,这就方便了单片机进行数据处理, 但同时也对编程提出了更高的要求。单片机把采集到的温度进行相应的转换后, 显示电路采用 lcd 液晶显示器以动态扫描法直读显示。系统程序主要包括主程序, 读出温度子程序,写入温度子程序,报警子程序等。 2.2 总体设计框图 本系统采用单片机作为微控制器,如图 2.2.1,分为:测温电路,显示电路, 报警电路,复位电路。单片机用 at89c51、温度传感器用 ds18b20,采用 12mhz 晶振,电源采用 5v。该电路经过设计分析、绘图、仿真调试、制板、焊接等工作 后温度计成形。 采用数字温度芯片ds18b20测量温度,输出信号全数字化。便于单片机处理 及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定, 它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小 于1摄氏度。ds18b20的最大特点之一采用了单总线的数据传输,由数字温度计 ds18b20和微控制器at89c51构成的温度测量装置,它直接输出温度的数字信号,可 直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用52单片 数字显示温度计的设计4 机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制, 而且体积小,硬件实现简单,安装方便。 图 2.2.1 总体设计框图 2.3 所用主要元器件 单片机 at89s51 一个,温度传感器 ds18b20 一个,12mhz 晶振一个, lcd12864 个,蜂鸣器一个,电源一个,排阻一个,三极管一个,usb 一个, , 电阻电容及导线若干。 第三章 硬件设计5 第三章 硬件设计硬件设计 3.1 单片机的选择 at89s51 作为温度测试系统设计的核心器件。该器件是 intel 公司生产的 mcs 一 5l 系列单片机中的基础产品,采是一个低电压,高性能 cmos 8 位单片机, 片内含 8k bytes 的可反复擦写的 flash 只读程序存储器和 256 bytes 的随机存 取数据存储器(ram),器件采用 atmel 公司的高密度、非易失性存储技术生产, 兼容标准 mcs-51 指令系统,片内置通用 8 位中央处理器和 flash 存储单元, at89s51 单片机在电子行业中有着广泛的应用。单片机小系统的电路图如图 3-1- 1 所示。 图 3.1.1 单片机小系统电路 数字显示温度计的设计6 3.1.1 at89s51 单片机的主要特性: (1)兼容 mcs-51 指令系统,4k 字节可编程闪烁存储器; (2)8k 可反复擦写(大于 1000 次)flash rom; (3)寿命为 1000 次写/擦周期,数据保留时间可 10 年以上; (4)全静态工作模式:0hz-33hz; (5)三级程序存储器锁定; (6)128*8 位内部 ram,32 可编程 i/o 线; (7)两个 16 位定时器/计数器,6 个中断源; (8)全双工串行 uart 通道,低功耗的闲置和掉电模式; (9)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; (10)有 pdip、pqfp、tqfp 及 plcc 等几种封装形式,以适应不同产品的需求。 3.1.2 引脚功能及管脚电压 at89s51 为 8 位通用微处理器,采用工业标准的 c51 内核,在内部功能及管 脚排布上与通用的 8xs52 相同,其主要用于会聚调整时的功能控制。功能包括对 会聚主 ic 内部寄存器、数据 ram 及外部接口等功能部件的初始化,会聚调整控 制,会聚测试图控制,红外遥控信号 ir 的接收解码及与主板 cpu 通信等。主要 管脚有:xtal1(19 脚)和 xtal2(18 脚)为振荡器输入输出端口,外接 12mhz 晶振。rst(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚) 和 vss(20 脚)为供电端口,分别接+5v 电源的正负端。p0p3 为可编程通用 i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为 n1 功能控制端口,分别与 n1 的相应功能管脚相连接,13 脚定义为 ir 输入端, 10 脚和 11 脚定义为 i2c 总线控制端口,分别连接 n1 的 sdas(18 脚)和 scls(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 cpu 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。如图 3.1.2 所示。 第三不封 硬件设计7 图 3.1.2 pdip 封装的 at89c52 引脚图 (1)p0 口 p0 口是一组 8 位漏极开路型双向 i/o 口,也即地址/数据总线复用口。作为 输出口用时,每位能吸收电流的方式驱动 8 个 ttl 逻辑门电路,对端口 p0 写 “1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位) 和数据总线复用,在访问期间激活内部上拉电阻。 在 flash 编程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校 验时,要求外接上拉电阻。 (2)p1 口 p1 是一个带内部上拉电阻的 8 位双向 i/o 口,p1 的输出缓冲级可驱动(吸 收或输出电流)4 个 ttl 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端 口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某 个引脚被外部信号拉低时会输出一个电流(iil)。 与 at89c51 不同之处是,p1.0 和 p1.1 还可分别作为定时/计数器 2 的外部计 数输入(p1.0/t2)和输入(p1.1/t2ex) ,参见表 3.1.1。 flash 编程和程序校验期间,p1 接收低 8 位地址。 表 3.1.1 p1.0 和 p1.1 的第二功能 引脚号功能特性 数字显示温度计的设计8 p1.0 t2,时钟输出 p1.1 t2ex(定时/计数器 2) (3)p2 口 p2 是一个带有内部上拉电阻的 8 位双向 i/o 口,p2 的输出缓冲级可驱动 (吸收或输出电流)4 个 ttl 逻辑门电路。对端口 p2 写“1” ,通过内部的上拉电 阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电 阻,某个引脚被外部信号拉低时会输出一个电流(iil)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 movxdptr 指令)时,p2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执 行 movxri 指令)时,p2 口输出 p2 锁存器的内容。 flash 编程或校验时,p2 亦接收高位地址和一些控制信号。 (4)p3 口 p3 口是一组带有内部上拉电阻的 8 位双向 i/o 口。p3 口输出缓冲级可驱动 (吸收或输出电流)4 个 ttl 逻辑门电路。对 p3 口写入“1”时,它们被内部上 拉电阻拉高并可作为输入端口。此时,被外部拉低的 p3 口将用上拉电阻输出电 流(iil) 。 p3 口除了作为一般的 i/o 口线外,更重要的用途是它的第二功能。 p3 口还接收一些用于 flash 闪速存储器编程和程序校验的控制信号。 (5)rst 复位输入。当振荡器工作时,rst 引脚出现两个机器周期以上高电平将使单 片机复位。 (6)ale/prog 当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用 于锁存地址的低 8 位字节。一般情况下,ale 仍以时钟振荡频率的 1/6 输出固定 的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外 部数据存储器时将跳过一个 ale 脉冲。 对 flash 存储器编程期间,该引脚还用于输入编程脉冲(prog) 。 如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位, 可禁止 ale 操作。该位置位后,只有一条 movx 和 movc 指令才能将 ale 激活。此 外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。 第三不封 硬件设计9 (7)psen 程序储存允许(psen)输出是外部程序存储器的读选通信号,当 at89c52 由 外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两 个脉冲。在此期间,当访问外部数据存储器,将跳过两次 psen 信号。 (8)ea/vpp 外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为 0000hffffh) , ea 端必须保持低电平(接地) 。需注意的是:如果加密位 lb1 被编程,复位时内 部会锁存 ea 端状态。 如 ea 端为高电平(接 vcc 端) ,cpu 则执行内部程序存储器中的指令。 flash 存储器编程时,该引脚加上+12v 的编程允许电源 vpp,当然这必须是 该器件是使用 12v 编程电压 vpp。 (9)xtal1 振荡器反相放大器的及内部时钟发生器的输入端。 (10)xtal2 振荡器反相放大器的输出端。 3.2 温度传感器的选择 ds18b20温度传感器是美国dallas公司推出的一种改进型智能温度传感器, 与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且具有耐磨耐碰, 体积小,使用方便,封装形式多样等特点,适用于各种狭小空间设备数字测温和 控制领域。 3.2.1 ds18b20的主要特性 (1)适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线 供电; 数字显示温度计的设计10 (2)独特的单线接口方式,ds18b20 在与微处理器连接时仅需要一条口线即可 实现微处理器与 ds18b20 的双向通讯; (3)ds18b20 支持多点组网功能,多个 ds18b20 可以并联在唯一的三线上,实 现组网多点测温; (4)ds18b20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在 形如一只三极管的集成电路内; (5)温范围55125,在-10+85时精度为0.5; (6)可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、 0.125和 0.0625,可实现高精度测温; (7)在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多 在 750ms 内把温度值转换为数字,速度更快; (8)测量结果直接输出数字温度信号,以“一线总线”串行传送给 cpu,同时 可传送 crc 校验码,具有极强的抗干扰纠错能力; (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 3.2.2 ds18b20的引脚结构 温度传感器ds18b20引脚如图3.2.1所示。 图 3.2.1 ds18b20 引脚 引脚功能说明: (1)nc(1、2、6、7、8 脚):空引脚,悬空不使用; (2)vdd(3 脚):可选电源脚,电源电压范围 35.5v。当工作于寄生电源时, 第三不封 硬件设计11 此引脚必须接地。 (3)dq(4 脚):数据输入/输出脚。漏极开路,常态下高电平。 (4)gnd(5 脚):为电源地 3.2.3 ds18b20 工作原理 图 3.2.2 ds18b20 内部结构图 ds18b20 的读写时序和测温原理与 ds1820 相同,只是得到的温度值的位数因 分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。ds18b20 测温原 理如图 3.2.3 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生 固定频率的脉冲信号送给计数器 1。高温度系数晶振 随温度变化其振荡率明显改 变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在 55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减 法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预 置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器 中的数值即 为所测温度。图 3.2.3 中的斜率累加器用于补偿和修正测温过程中 的非线性,其输出用于修正计数器 1 的预置值。 数字显示温度计的设计12 图 3.2.3 ds18b20 测温原理框图 ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非挥发 的温度报警触发器 th 和 tl、配置寄存器。 (1)光刻 rom 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 ds18b20 的地址序列码。64 位光刻 rom 的排列是:开始 8 位(28h)是产品类型 标号,接着的 48 位是该 ds18b20 自身的序列号,最后 8 位是前面 56 位的循环冗 余校验码(crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一个 ds18b20 都各不相同, 这样就可以实现一根总线上挂接多个 ds18b20 的目的。 (2)ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/lsb 形式表达,其中 s 为符号位。 表 3.2.1:ds18b20 温度值格式表 这是 12 位转化后得到的 12 位数据,存储在 ds18b20 的两个 8 比特的 ram 中, 二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测 到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的 数值需要取反加 1 再乘于 0.0625 即可得到实际 温度。例如+125的数字输出为 07d0h,+25.0625的数字输出为 0191h,-25.0625的数字输出为 fe6fh,- 55的数字输出为 fc90h。 第三不封 硬件设计13 表 3.2.2: ds18b20 温度数据表 温度数字输出(二进制) 数字输入(十六进制) +1250000 0111 1101 000007d0h +850000 0101 0101 00000550h +25.06250000 0001 1001 00010191h +10.1250000 0000 1010 001000a2h +0.50000 0000 0000 10000008h 00000 0000 0000 00000000h -0.51111 1111 1111 1000fff8h -10.1251111 1111 0101 1110ff5eh -25.06251111 1110 0110 1111ff6fh -551111 1100 1001 0000fc90h (3)ds18b20 温度传感器的存储器 ds18b20 温度传感器的内部存储器包括一个高 速暂存 ram 和一个非易失性的可电擦除的 eepram,后者存放高温度和低温度触发 器。th、tl 和结构寄存器。 (4)配置寄存器 该字节各位的意义如下: 表 3.2.3: 配置寄存器结构 tmr1r011111 低五位一直都是“1“,tm 是测试模式位,用于设置 ds18b20 在工作模式还是在 测试模式。在 ds18b20 出厂时该位被设置为 0,用户不要去改动。r1 和 r0 用来 设置分辨率,如下表所示:(ds18b20 出厂时被设置为 12 位) 表 3.2.4:温度分辨率设置表 r1r0 分辨率温度最大转换时间 00 9 位 93.75ms 01 10 位 187.5ms 10 11 位 375ms 11 12 位 750ms 数字显示温度计的设计14 3.2.4 高速暂存存储器 高速暂存存储器由 9 个字节组成,其分配如表 3.2.5 所示。当温度转换命令 发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和 第 1 个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后, 数据格式如表 3.2.1 所示。对应的温度计算:当符号位 s=0 时,直接将二进制位 转换为十进制;当 s=1 时,先将补码变为原码,再计算十进制值。表 3.2.2 是对 应的一部分温度值。第九个字节是 冗余检验字节。 表 3.2.5: ds18b20 暂存寄存器分布 寄存器内容字节地址 温度值低位 (ls byte) 0 温度值高位 (ms byte) 1 高温限值(th) 2 低温限值(tl) 3 配置寄存器 4 保留 5 保留 6 保留 7 crc 校验值 8 根据 ds18b20 的通讯协议,主机(单片机)控制 ds18b20 完成温度转换必须 经过三个步骤:每一次读写之前都要对 ds18b20 进行 复位操作,复位成功后发 送一条 rom 指令,最后发送 ram 指令,这样才能对 ds18b20 进行预定的操作。复 位要求主 cpu 将数据线下拉 500 微秒,然后 释放,当 ds18b20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 cpu 收到此信号表示复 位成功。 第三不封 硬件设计15 表 3.2.6:rom 指令表 指令约定代码功能 读 rom 33h 读 ds1820 温度传感器 rom 中的编码(即 64 位地址) 符合 rom 55h 发出此命令之后,接着发出 64 位 rom 编码,访问单总线 上与该编码相对应的 ds1820 使之作出响应,为下一步对 该 ds1820 的读写作准备。 搜索 rom 0foh 用于确定挂接在同一总线上 ds1820 的个数和识别 64rom 地址。为操作各器件作好准备。 跳过 rom 0cch 忽略 64 位 rom 地址,直接向 ds1820 发温度变换命令。适 用于单片工作。 告警搜索 命令 0ech 执行后只有温度超过设定值上限或下限的片子才做出响应。 表 3.2.7: ram 指令表 指令约定代码功能 温度变换 44h 启动 ds1820 进行温度转换,12 位转换时最长为 750ms(9 位为 93.75ms)。结果存入内部 9 字节 ram 中 读暂存器 0beh 读内部 ram 中 9 字节的内容 写暂存器 4eh 发出向内部 ram 的 3、4 字节写上、下限温度数据命令, 紧跟该命令之后,是传送两字节的数据。 复制暂存 器 48h 将 ram 中第 3 、4 字节的内容复制到 eeprom 中。 重调 eeprom 0b8h 将 eeprom 中内容恢复到 ram 中的第 3 、4 字节。 3.2.5 ds1820 使用中注意事项 ds1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, 但在实际应用中也应注意以下几方面的问题: 数字显示温度计的设计16 (1)较小的硬件开销需要相对复杂的软件进行补偿,由于 ds1820 与微处理 器间采用串行数据传送,因此 ,在对 ds1820 进行读写编程时,必须严格的保证 读写时序,否则将无法读取测温结果。在使用 pl/m、c 等高级语言进行系统程序 设计时,对 ds1820 操作部分最好采用汇编语言实现。 (2)在 ds1820 的有关资料中均未提及单总线上所挂 ds1820 数量问题,容 易使人误认为可以挂任意多个 ds1820,在实际应用中并非如此。当单总线上所 挂 ds1820 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多 点测温系统设计时 要加以注意。 (3)连接 ds1820 的总线电缆是有长度限制的。试验中,当采用普通信号电 缆传输长度超过 50m 时,读取的 测温数据将发生错误。当将总线电缆改为双绞 线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带 屏蔽电缆时,正 常通讯距离进一步加长。这种情况主要是由总线分布电容使信 号波形产生畸变造成的。因此,在用 ds1820 进行长距离测温系统设计时要充分 考 虑总线分布电容和阻抗匹配问题。 (4)在 ds1820 测温程序设计中,向 ds1820 发出温度转换命令后,程序总 要等待 ds1820 的返回信号,一旦 某个 ds1820 接触不好或断线,当程序读该 ds1820 时,将没有返回信号,程序进入死循环。这一点在进行 ds1820 硬件连接 和软件设计时也要给予 一定的重视。 测温电缆线建议采用屏蔽 4 芯双绞线,其 中一对线接地线与信号线,另一组接 vcc 和地线,屏蔽层在源端单点接地。 3.3 温度检测电路 ds18b20 最大的特点是单总线数据传输方式,ds18b20 的数据 i/o 均由同一 条线来完成。ds18b20 的电源供电方式有 2 种:外部供电方式和寄生电源方式。 工作于寄生电源方式时,vdd 和 gnd 均接地,他在需要远程温度探测和空间受限 的场合特别有用,原理是当 1wire 总线的信号线 dq 为高电平时,窃取信号能量 给 ds18b20 供电,同时一部分能量给内部电容充电,当 dq 为低电平时释放能量 为 ds18b20 供电。但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是 在完成温度转换和拷贝数据到 e2prom 时),同时芯片的性能也有所降低。因此, 第三不封 硬件设计17 在条件允许的场合,尽量采用外供电方式。无论是内部寄生电源还是外部供电, i/o 口线要接 5k 左右的上拉电。在这里采用前者方式供电。ds18b20 与芯片连 接电路如图 3.3.1 所示: 图 3.3.1 ds18b20 和单片机的接口连接 外部电源供电方式是ds18b20最佳的工作方式,工作稳定可靠,抗干扰能力 强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。在开发中 使用外部电源供电方式,毕竟比寄生电源方式只多接一根vcc引线。在外接电源 方式下,可以充分发挥ds18b20宽电源电压范围的优点,即使电源电压vcc降到 3v时,依然能够保证温度量精度。 由于ds18b20只有一根数据线,因此它和主机(单片机)通信是需要串行通 信,而at89s51有两个串行端口,所以可以不用软件来模拟实现。经过单线接口 访问ds18b20必须遵循如下协议:初始化、rom操作命令、存储器操作命令和控 制操作。要使传感器工作,一切处理均严格按照时序。 3.4 温度报警电路 本设计的发挥部分,是加入了报警,如果我们所设计的系统是监控某一设备, 一当设备的温度超过我们所设定的温度值(3555)时,系统会产生报警。 报警时由单片机产生一定频率的脉冲,由 p2.7 引脚输出,p2.7 外接一只 pnp 的三极管来驱动杨声器发出声音,以便操作员来维护,从而达到报警的目的。 如下图 3-4-1 所示: 数字显示温度计的设计18 图 3.4.1 温度报警电路 3.5 复位电路 本系统中上电复位采用电平方式开关复位,如图 3.5.1 所示。上电复位用 rc 电路,电容用 10f,电阻用 10k。 根据 ds18b20 的通讯协议,主机(单片机)控制 ds18b20 完成温度转换必须 经过三个步骤:每一次读写之前都要对 ds18b20 进行复位操作,复位成功后发送 一条 rom 指令,最后发送 ram 指令,这样才能对 ds18b20 进行预定的操作。复位 要求主 cpu 将数据线下拉 500 微秒,然后释放,当 ds18b20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 cpu 收到此信号表示复 位成功。 单片机复位是使 cpu 和系统中的其它功能部件都处在一个确定的初始状态, 复位是单片机的初始化操作,其主要功能是把 pc 初始化为 0000h,使单片机从 0000h 单元开始执行程序。单片机复位的条件是:必须使 rst 引脚加上持续两个 机器周期的高电平,复位电路在接电瞬间,reset 端的电位与 vcc 相同,随着充 电电流的减少,reset 的电位逐渐下降。只要保证 reset 为高电平的时间大于两 个机器周期,便能正常复位。复位后 pc 值为 0000h,表明复位后程序从 0000h 开 始执行,从第一个单元取指令。例如,若时钟频率为 12mz,每机器周期为 1us, 则只需 2us 以上的高电平,在 rst 引脚出现高电平后的第二个机器周期执行复位。 第三不封 硬件设计19 单片机复位期间不产生 ale 信号,即 ale=1.表明单片机复位期间不会有任何取指 操作。 本设计采用的是按键电平复位的方式,其电路如图 3.5.1 所示,这种方式 电路比较简单,且又避免了上电自动复位需要切断电源的缺点。 图 3.5.1 复位电路 3.6 时钟电路 单片机的晶振频率低于 40mhz,所用我们采用 12mhz,加两个 30p 电容。如 图 3.6.1 所示。 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂 的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制 下严格的按时序进行工作。 一般的晶振振荡电路都是在一个反相放大器的两端接入晶振,再有两个电容 分别接到晶振的两端,另一端接地,这两个电容串联的容量值应该等于负载电容。 在单片机内部有一个高增益反相放大器,其输入端为芯片引脚 xtal1,输出端 为引脚 xtal2,在芯片的外部通过这两个引脚跨接晶体震荡器和微调电容,形成 反馈电路,就构成一个稳定的自激震荡器,一般的晶振的负载电容为 20p-45p 之 间,考虑到元件引脚的等效输入电容,本设计采用两个 22p 的电容构成晶振的振 荡电路。设计电路中所使用的是 12mhz 的晶振,机器周期为 1us,具体的时钟电 路如图 3.6.1 所示。 数字显示温度计的设计20 图 3.6.1 晶振电路 第三不封 硬件设计21 数字显示温度计的设计22 3.7 显示电路 温度的显示可以采用 led 数码管来显示,led 亮度高、醒目,但是电路复杂, 占用资源多且信息量小。而采用液晶显示器有明显的优点:工作电流比 led 小几 个数量级,故其功耗低;尺寸小,厚度约为 led 的 1/3;字迹清晰、美观,寿命 长,使用方便,故本设计采用 lcd12864 来显示温度。 3.7.1 lcd12864 引脚接口 lcd12864 采用标准的 20 脚接口,其中: 第 1 脚:vss 为地电源 第 2 脚:vdd 接 5v 正电源 第 3 脚:v0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对 比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10k 的电位器调 整对比度 第 4 脚:rs 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:rw 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 rs 和 rw 共同为低电平时可以写入指令或者显示地址,当 rs 为低电平 rw 为高电平 时可以读忙信号,当 rs 为高电平 rw 为低电平时可以写入数据。 第 6 脚:e 端为使能端,当 e 端由高电平跳变成低电平时,液晶模块执行命令。 第 714 脚:d0d7 为 8 位双向数据线。 第 1517 脚:地址的传输端。 第 18 脚: 空引脚。 第 19 脚:接高电平+5v。 第 20 脚:接地引脚。 3.7.2 lcd12864 和 at89s51 连接 第三不封 硬件设计23 lcd12864 液晶显示模块可以和单片机 at89s51 直接接口,电路如图 3.7.1 所示。 图 3.7.1 lcd12864 和 at89s51 连接 3.8 主电路原理图 数字显示温度计的设计24 图 3.5.1 主电路原理图 数字显示温度计的工作原理: 基于 at89s51 的温度测量系统电路图把温度转化成带符号的数字信号(以十 六位补码形式,占两个字节),若采用带屏蔽的双绞电缆线,连线的长度可以达 到 150m,输出脚 i0 直接与单片机的 p34 相连,r1 为上拉电阻,传感器采用 外部电源供电。at89s51 是整个系统的核心部分,内含 2 kb 的 flash rom,用户 程序存放在这里。显示器模块由四位一体的共阳数码管和四个 9012 组成。系统 程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照 dsl8b20 的 通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显 示。 产品的主要技术指标:测量范围:0+125,测量精度:05;反应时 间小于等于 500ms。 第四部分 软件设计25 第四部分 软件设计 4.1 概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件 的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主 程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。 二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、 通讯等。每一个执行软件是一个小的功能执行模块。这里将各执行模块一一列出, 并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规 划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然 后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 4.2 主程序模块 主程序需要调用 4 个子程序,各模块程序功能如下: (1)数码管显示程序:向数码的显示送数,控制系统的显示部分。 (2)温度测试及处理程序:对温度芯片送过来的数据进行处理,进行判断和显 示。 (3)报警子程序:进行温度上下限判断及报警输出。 (4)中断设定程序:实现设定上下限报警功能。 主程序流程见图 4.2.1: 4.3 各模块流程设计 下面对主要子程序的流程图做介绍 温度检测流程 ds18b20 在单片机控制下分三个阶段: 数字显示温度计的设计26 (1)ds18b20 初始化: 4.4 报警模块流程 报警程序 读出温度值 c 清除报警标志位 c max? c #include #include #define uchar unsigned char #define uint unsigned int /* 端口定义*/ #define lcd_data p0 /数据口 sbit lcd_rs = p20; /寄存器选择输入 sbit lcd_rw = p21; /液晶读/写控制 sbit lcd_en = p22; /液晶使能控制 sbit lcd_psb = p37; /串/并方式控 void delay_1ms(uint x) uint i,j; for(j=0;j 0; i-) 附录45 dq = 0; / 给脉冲信号 dat = 1; dq = 1;

温馨提示

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

评论

0/150

提交评论