




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文设计毕业论文设计 题目:题目: 基于基于51单片机的数字温度计设计单片机的数字温度计设计 姓姓 名:名: 所在系部:所在系部: 班级名称:班级名称: 学学 号:号: 指导老师:指导老师: 2010 年年 12 月月 设计(论文)任务书毕业设计(论文)任务书毕业 设计(论文)题目:基于基于 5151 单片机的数字温度计设计单片机的数字温度计设计 指导教师:职称:类别:毕业设计 学生:学号:设计(论文)类型:论文 专业:班级:是否隶属科研项目:否 1、设计(论文)的主要任务及目标 本设计是以 at89s51 单片机为核心,利用 ds18b20 温度传感器作为温度采集点,通过 3 个 sm4105 共阳极数码管以及 74ls244 等元件组成的数字温度计。此温度计能够根据温度的变化 自动调节显示。最大显示温度为 100 度,最小显示-10 度。 2、论文的主要内容 (1)89s51 单片机的原理 (2)ds18b20 温度传感器结构 (3)74ls224 反相器简介 (4)电路原理图 3、论文的基本要求 (1)严格按照学院机电专业毕业设计格式要求 (2)论文必须包含中英文的摘要,参考文献等 (3)论文必须从硬件和软件方面对设计内容进行阐述 (4)论文中保留有单片机的编程、软件仿真技术及系统调试方法的痕迹 (5)在附录中包有整个电子琴系统设计的电路图 (6)设计时,能正确理解电子琴系统设计的目的和要求,掌握系统设计的一般程序 (7)通过设计具有收集参考资料加以消化、归纳的能力 (8)通过设计具有调研、收集、查阅资料、分析判断确定设计/论文方案的能力 (9)通过设计具有归纳、整理技术资料,撰写技术文件的能力 (10)通过设计具有阐述论证设计/论文成果及其技术答辩的能力 4、主要参考文献 1 张洪润单片机应用技术教程m 北京:清华大学出版社,1997 2 李广弟单片机基础m 北京:北京航空航天大学出版社,2001 3 万光毅单片机实验与实践教程m 北京:北京航空航天大学出版社,2001 4 何立名mcs-51 系列单片机应用系统设计系统配置与接口技术m 北京:北京航空航 天大学出版社,1990 5 蔡美琴mcs-51 单片机系统及应用m 北京:高等教育出版社,1992 6 马彪单片机应用技术m 上海:同济大学出版社,2009 7 陈忠平单片机原理及接口m 北京:清华大学出版社,2007 8 李华mcs-51 系列单片机实用接口技术m 北京:北京航空航天大学出版社,2000 9 韩志军,刘新民数字温度传感器 ds18b20 及其应用j 南京工程学院学报:自然科学 版,2003(1):9-14 10 陈惠明,李燕华,王静滨单片机控制手机的软硬件接口技术及应用j 微计算机信息, 2005(1):139-141 5、进度安排 设计(论文)个阶段任务起至日期 1设计原始资料的准备及系统方案的确定2010-9-13 至 2010-9-17 2控制系统硬件电路设计2010-10-8 至 2010-10-30 3软件编程及调试2010-11-1 至 2010-11-25 4撰写设计说明书,装订及答辩2010-1-2 至 2010-1-8 5合 计( 10 周 ) i 目 录 第 1 章 概述.1 1.1 简述 1 1.2 任务描述 1 1.3 设计思路 2 第 2 章 系统主要元器件介绍.3 2.1 单片机的选用及功能介绍 3 2.2 ds18b20 温度传感器介绍5 2.2.1 引脚功能.6 2.2.2 ds18b20 内部结构6 2.2.3 ds18b20 的工作原理9 2.2.4 ds18b20 的测温原理12 2.3 74ls244 反相器简介.14 第 3 章 硬件电路的设计.15 3.1 接口设计 15 3.2 主板电路设计 15 3.3 其他电路设计 16 第 4 章 软件设计.19 4.1 主程序.19 4.2 读出温度子程序 19 4.3 温度转换命令子程序 20 4.4 计算温度子程序 20 4.5 显示数据刷新子程序 21 4.6 主要设计程序 21 4.7 调试 23 第 5 章 结束语.24 ii 参考文献.25 致 谢.26 附录一.27 iii 摘 要 本文主要介绍了一种基于at89s51单片机和ds18b20数字温度传感器来进行测温 的方法。具体设计时,作者对at89s51和ds18b20进行了接口电路设计,同时利用 74ls244进行段码驱动、实现数码管的显示输出;并在此基础上,通过软件设计实现温 度的数据采集和传输。由于ds18b20数字温度传感器是单总线器件,与at89s51单片 机组成一个测温系统,具有线路简单、体积小等特点,并且由于是在同一根通信线上, 因此可以扩展、挂接很多这样的测温系统,十分方便。 关键词:数字温度计;at89s51;ds18b20;74ls244 iv abstract this paper presents a temperature- measuring method using single-chip at89s51 and digital temperature sensor ds18b20. the author has designed the interface circuit for at89s51 and ds18b20. 74ls244 is also used to drive the devices by block code and in this way the results and be displayed through the digital display. all data will be collected and transported by an designed software. the digital temperature sensor ds18b20 is a monobus device, but with the combination of single-chip at89s51, a temperature- measuring system is made. this system has many advantages, such as its simple circuit, small size, etc. this system also brings convenience. a number of systems like this can be attached to only one communication line at the same time. key words: digital temperature sensor; at89s51;ds18b20;74ls244 1 第 1 章 概述 1.1 简述 单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也可以间 接处理温度、湿度、压力等非电信号。由于该特点,因而被广泛应用于工业控制领域。 另一方面,由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、 压力等这类非电信号的信息处理,必须使用对应的传感器进行a/d或d/a转换,最后再 传输给单片机进行最终的数据处理和显示。在测温领域,人们通常使用温度传感器, 将温度信息转换为电流或电压进行输出,进而完成数据的处理和显示。 本文正是基于温度传感器和单片机而构建的电路,进而完成温度的测量和显示。 温度传感器的发展经历了三个发展阶段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器。 目前使用最广的是智能温度传感器 (亦称数字温度传感器) ,是在20世纪90年代中 期问世的。它是微电子技术、计算机技术和自动测试技术(ate)的结晶,特点是能输出 温度数据及相关的温度控制量,适配于各种微控制器(mcu)。社会的发展使人们对传 感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字 式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准 化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技 的方向迅速发展,本文将介绍了智能集成温度传感器ds18b20的结构特征及控制方法, 并以此传感器为测温元件,at89s51单片机为控制核心,构成的数字温度测量装置, 并对其的工作原理及程序设计作了详细的介绍。 1.2 任务描述 设计要以 at89s51 单片机为核心,利用 ds18b20 温度传感器作为温度采集点, 2 通过 3 个 sm4105 共阳极数码管以及 74ls244 等元件组成的数字温度计。此温度计能 够根据温度的变化自动调节显示。最大显示温度为 100 度,最小显示-10 度。 1.3 设计思路 单片机的接口信号是数字信号。要想用单片机获取温度这类非电信号的信息,必 须使用温度传感器,将温度信息转换为电流或电压输出。如果转换后的电流或电压输 出是模拟信号,还必须进行ad转换,以满足单片机接口的需要。传统的温度检测大 多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度准确率低, 而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。本文介绍一 种采用数字温度传感器实现的基于单片机的数字温度计。 设计单片机数字温度计需要考虑以下3个方面: 温度传感器芯片的选择; 单片机和温度传感器的接口电路; 控制温度传感器实现温度信息采集以及数据传输的软件。 3 第 2 章 系统主要元器件介绍 2.1 单片机的选用及功能介绍 at89s51 是美国atmel公司生产的低功耗,高性能cmos型8位单片机,片内含 4kbytes 的可编程的flash只读程序存储器,兼容标准8051指令系统及引脚。它集flash rom程序存储器,并支持可在线编程(isp)功能;另一方面,由于价格低、因而被广 泛应用于许多高性价比的场合,如工业控制、消费电子等各种控制领域,对于简单的 测温系统而言,它已经足够。单片机at89s51具有低电压供电和体积小等特点,四个 端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用 系统可用二节电池供电。设计中采用89s51单片机。其主要特性如下: 与mcs-51产品指令系统完全兼容; 4k字节可编程闪烁存储器; 1000擦写周期; 4.05.5v工作电压范围; 全静态工作:0hz-33mhz; 程序存储器具有3级加密保护; 128*8位内部ram; 32可编程i/o线; 两个16位定时器/计数器; 6个中断源和2个优先级; 可编程全双工串行通道; 图2.1 89s51单片机引脚图 低功耗的闲置和掉电模式; 看门狗(wdt)及双数据指针; 具有jtag接口,可方便地在线编程或在系统编程。 4 at89s51 单片机为40引脚双列直插式封装。其引脚排列和逻辑符号如图2.1 所示。 各引脚功能简单介绍如下: vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每个管脚可吸收8ttl门电流。当p1口 的管脚写“1”时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以 被定义为数据/地址的第八位。在flash编程时,p0口作为原码输入口,当flash 进行校验时,p0输出原码,此时p0外部电位必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出 4ttl门电流。p1口管脚写入“1”后,电位被内部上拉为高,可用作输入,p1口被 外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和 校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个 ttl门电流,当p2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。 作为输入时,p2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘 故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输 出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地 址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编 程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。 当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于 外部下拉为低电平,p3口将输出电流(ill),也是由于上拉的缘故。p3口也可作为 at89c51的一些特殊功能口:p3.0 rxd(串行输口);p3.1txd(串行输出口) ;p3.2 int0(外部中断0);p3.3 int1(外部中断1) ;p3.4 t0(定时器0外部输入);p3.5 t1(定时器1外部输入);p3.6 wr (外部数据存储器写选通);p3.7 rd (外部数据存储 器读选通)。同时p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 5 ale / prog :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地 位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变 的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输 出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过 一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在 执行movx,movc指令时ale才起作用。另外,该引脚被略微拉高。如果微处理 器在外部执行状态ale禁止,置位无效。 psen:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周 期psen两次有效。但在访问外部数据存储器时,这两次有效的psen信号将不出现。 ea/vpp:当ea保持低电平时,访问外部rom;注意加密方式1时,ea将内部锁定 为reset;当ea端保持高电平时,访问内部rom。在flash编程期间,此引脚也 用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 2.2 ds18b20 温度传感器介绍 ds18b20 是美国 dallas 半导体公司推出的一款智能温度传感器。与传统的热 敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式,可以分别在 93.75750ms 内完成 912 位的数字量,并且从 ds18b20 读出的信息或写入 ds18b20 的信息仅需一根线读写,温度变换功率来源于数 据总线,总线本身也可以向所挂接的 ds18b20 供电,而无须额外电源。因而使用 ds18b20 可使系统结构更趋简单,可靠性更高。它在测温精度、转换时间、传输距离、 分辨率等方面都给用户的使用带来了方便,效果也令人满意。 其主要特点如下: 独特的单线接口方式:ds18b20 在与微处理器连接时仅需要一条口线即可实现微 处理器与 ds18b20 的双向通讯。 ds18b20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一 6 只三极管的集成电路内。 可用数据线供电,电压范围:+3.0+5.5v。 测温范围:55125,固有测温分辨率为 0.5。 通过编程可实现 912 位的数字读书方式。 用户可自设非易失性的报警上下限值。 支持多点组网功能,多个 ds18b20 可以并联在唯一的三线上,实现组网多点测温。 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 ds18b20 的管脚排列、各种封装形式如图 2.2 所示 gnd dq vdd n n n ds18b20p tsoc 1 2 3 4 6 5 图 2.2 ds18b20 的外形及管教排列 2.2.1 引脚功能 ds18b20 为三引脚元件,外形同普通三极管,见图 2.1,引脚功能详见表 2-1 表 2-1 ds18b20 详细引脚功能描述 序号 名称 引脚功能描述 1 gnd 地信号 2 dq 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向 器件提供电源。 3 vdd 可选择的 vdd 引脚。当工作于寄生电源时,此引脚必须接地。 nc nc vdd nc nc nc 1 2 3 4 6 5 dq gn 7 8 ds18b20z 8-pin soic(150-mil) 7 2.2.2 ds18b20 内部结构 ds18b20 主要由 64 位 rom、温度传感器、非挥发的温度报警触发器 th 和 tl 及 配置寄存器等组成,见图 2.3。 64 位 rom 和 单 线 接 口 高 速 缓 存 存储器与控制逻 辑 温度传感器 高温触发器 th 低温触发器 tl 配置寄存器 8 位 crc 发生器 vdd dq vd1 vd2 c 图 2.3 ds18b20 内部结构图 1)64 位光刻 rom。开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共 有 48 位,最后 8 位是前 56 位的 crc 校验码,非挥发的温度报警触发器 th 和 tl,可通过软件写入用户报警上下限值。64 位闪速 rom 的结构如下表 2-2 所示。 表 2-2 rom 结构 8b 位检验 crc 48 位序列号 8 位工厂代码(10h) msb lsb msb lsb msb lsb 2)9 字节高速缓存存储器,结构如表 2-3 所示 表 2-3 ds18b20 内部存储器结构 字节 0 温度测量值 lsb(50h) 字节 1 温度测量值 msb(50h) e2prom 字节 2 th 高温寄存器 - th 高温寄存器 字节 3 tl 低温寄存器 - tl 低温寄存器 字节 4 配位寄存器 - 配位寄存器 字节 5 预留(ffh) 字节 6 预留(0ch) 8 字节 7 预留(ioh) 字节 8 循环冗余码校验(crc) ds18b20 温度传感器的内部存储器还包括一个高速暂存 ram 和一个非易失性的 可电擦除的 e2pram。高速暂存 ram 的结构为 8 字节的存储器。头 2 个字节包含测 得的温度信息,第 3 和第 4 字节 th 和 tl 的拷贝,是易失的,每次上电复位时被刷新。 第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20 工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定 义如表 2-4 和表 2-5 所示。低 5 位一直为,tm 是工作模式位,用于设置 ds18b20 在工作模式还是在测试模式。 表 2-4 ds18b20 字节定义 ds18b20 出厂时该位被设置为 0,用户要去改动,r1 和 r0 决定温度转换的精度位 数,来设置分辨率,详见表 2-5。 表 2-5 ds18b20 分辨率设置 r1 r0 分辨率/位温度最大转向时间/ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 由表 2-5 可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应 用中要将分辨率和转换时间权衡考虑。 高速暂存 ram 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面 所有 8 字节的 crc 码,可用来检验数据,从而保证通信数据的正确性。 3)温度数据值格式。 当 ds18b20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通 过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 0.0625lsb tm r1 r0 1 1 1 1 1 9 形式表示。温度值格式见表 2-6 所示。 10 表 2-6 温度数据值格式 ls 字节 ms 字节 其中“s”为标志位,对应的温度计算:当符号位 s0 时,表示测得的温度值为 正值,可以直接将二进制位转换为十进制;当符号位 s1 时,表示测得的温度值为负 值,要先将补码变成原码,再计算十进制数值。 表 2-7 是一部分温度值对应的二进制温度数据。 表 2-7 一部分温度对应值表 温度/ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07d0h +85 0000 0101 0101 0000 0550h +25.0625 0000 0001 1001 0000 0191h +10.125 0000 0000 1010 0001 00a2h +0.5 0000 0000 0000 0010 0008h 0 0000 0000 0000 1000 0000h -0.5 1111 1111 1111 0000 fff8h -10.125 1111 1111 0101 1110 ff5eh -25.0625 1111 1110 0110 1111 fe6fh -55 1111 1100 1001 0000 fc90h 2.2.3 ds18b20 的工作原理 工作时,主机控制 ds18b20 使各种命令对 ds18b20 进行操作:初始化 ds18b20, 发 rom 功能指令、发存储器操作指令。这些 rom 和 ram 指令集如表 2-8 和表 2-9 所示。 23 22 21 20 2-1 2-2 2-3 2-4 s s s s s 26 25 24 11 表 2-8 rom 指令表 指令 约定代码 功 能 读 rom 33h 读 ds18b20 rom 中的编码 匹配 rom 55h 发出此命令之后,接着发出 64 位 rom 编码,访问单线总线上 与该编码相对应的 ds18b20 使之作出响应,为下一步对该 ds18b20 的读写作准备 搜索 rom 0f0h 用于确定挂接在同一总线上 ds18b20 的个数和识别 64 位 rom 地址,为操作各器件作好准备 跳过 rom 0cch 忽略 64 位 rom 地址,直接向 ds18b20 发温度变换命令,适用 于单片工作。 报警搜索 命 令 0ech 执行后,只有温度超过设定值上限或者下限的片子才做出响应 表 2-9 ram 指令表 温度变换 44h 启动 ds18b20 进行温度转换,转换时间最长为 500ms,结果存 入内部 9 字节 ram 中 读暂存器 0beh 读内部 ram 中 9 字节的内容 写暂存器 4eh 发出向内部 ram 的第 3,4 字节写上、下限温度数据命令,紧 跟读命令之后,是传送两字节的数据 复制暂存 器 48h 将 e2pram 中第 3,4 字节内容复制到 e2pram 中 重调 e2pram 0bbh 将 e2pram 中内容恢复到 ram 中的第 3,4 字节 读 供 电 方 式 0b4h 读 ds18b20 的供电模式,寄生供电时 ds18b20 发送“0” ,外接 电源供电 ds18b20 发送“1” 根据 ds18b20 的通讯协议,主机控制 ds18b20 完成温度转换必须经过三个步骤: 1. 每一次读写之前都必须要对 ds18b20 进行复位; 2. 复位成功后发送一条 rom 指令; 3. 最后发送 ram 指令,这样才能对 ds18b20 进行预定的操作。 12 复位要求主 cpu 将数据线下拉 500 微秒,然后释放,ds18b20 收到信号后等待 1560 微秒左右后发出 60240 微秒的存在低脉冲,主 cpu 收到此信号表示复位成功。 其工作时序包括初始化时序、写时序和读时序,具体工作方法如图 2.4,2.5,2.6 所示。 (1) 初始化时序 响应脉 冲60240 等待15-60 主机最小480 主机复位脉冲 最小480us 图 2.4 初始化时 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主 机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少 480us,以产生复位脉冲。接着主机释放总线,4.7k 上拉电阻将总线拉高,延时 1560us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时 480us。 (2) 写时序 采 样1545 采 样1545 11 主机写“1“时序 主机写“0“时序 图 2.5 写时序 写时序包括写 0 时序和写 1 时序。所有写时序至少需要 60us,且在 2 次独立的写 时序之间至少需要 1us 的恢复时间,都是以总线拉低开始。写 1 时序,主机输出低电 平,延时 2us,然后释放总线,延时 60us。写 0 时序,主机输出低电平,延时 60us, 13 然后释放总线,延时 2us。 14 (3) 读时序 主机采样 主机采样 4545 11 主机写“1“时序 主机写“0“时序 图 2.6 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据 命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us, 且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少 拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总 线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当 前电平,然后延时50us。 2.2.4 ds18b20 的测温原理 ds18b20的测温原理如图2.7所示,图中低温度系数晶振的振荡频率受温度的影响 很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震 荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门, 当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而 完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被 预置在-55 所对应的一个基数值。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的 预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到 0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累 加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只 15 要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 ds18b20的测温原理。 另外,由于ds18b20单线通信功能是分时完成的,他有严格的时隙概念,因此读 写时序很重要。系统对ds18b20的各种操作必须按协议进行。操作协议为:初始化 ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。 增加 停止 减法计数器 斜坡累加器 减到 0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到 0 图 2.7 ds18b20 测温原理图 在正测温情况下,ds1820 的测温分辨力为 0.5,可采用下述方法获得高分辨率的 温度测量结果:首先用 ds1820 提供的读暂存器指令(beh)读出以 0.5为分辨率的 温度测量结果,然后切去测量结果中的最低有效位(lsb) ,得到所测实际温度的整数 部分 tz,然后再用 beh 指令取计数器 1 的计数剩余值 cs 和每度计数值 cd。考虑到 ds1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 ts 可用下 式计算: ts=(tz-0.25)+(cd-cs)/cd 16 2.3 74ls244 反相器简介 74ls244 为三态输出的八组缓冲器和总线驱动器,其主要电器特性的典型值如表 2- 10 所示(不同厂家具体值有差别): 表 2-10 电器特性的典型值 1)引出端符号: 1a11a4,2a12a4输入端 /1g, /2g三态允许端(低电平有效) 1y11y4,2y12y4输出端 2)逻辑图: 图 2.8 双列直插封装 3)功能表: 图 2.9 功能表 型号 tplh tphl pd 74ls244 12ns 12ns 110mw 17 第 3 章硬件电路的设计 硬件电路由单片机主控电路、显示电路、ds18b20 温度传感器、电路晶振电路、复 位电路等组成,通过接口的设计将各电路与单片机引脚接口相连接组成完整的数字温度 计硬件电路。 (详细见附录一) 3.1 接口设计 ds18b20 可以采用两种方式供电:一种是采用电源供电方式,此时 ds18b20 的 1 脚 接地,2 脚作为信号线,3 脚接电源;另一种是寄生电源供电方式,如图 3.1 所示单片机 端口接单线总线,为保证在有效的 ds18b20 时钟周期内提供足够的电流,可用一个 mosfet 管来完成对总线的上拉。本设计采用电源供电方式, p1.1 口接单线总线为保证 在有效的 ds18b20 时钟周期内提供足够的电流,可用一个 mosfet 管和 89s51 的 p1.0 来完成对总线的上拉。当 ds18b20 处于写存储器操作和温度 a/d 变换操作时,总线上必 须有强的上拉,上拉开启时间最大为 10 s。采用寄生电源供电方式是 vdd 和 gnd 端均 接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制 ds18b20 完 成温度转换必须经过 3 个步骤:初始化、rom 操作指令、存储器操作指令。 ds18b20 p1.0 p1.1 mcs-51 +3+5.5v 4.7k i/o gnd +3+5.5v 图 3.1 ds18b20 与单片机的接口电路 3.2 主板电路设计 单片机的 p1.0 接 ds18b20 的 2 号引脚,p0 口送数 p2 口扫描。如图 3.2 所示。 18 图 3.2 主板 3.3 其他电路设计 1) 单片机电路 图 3.3 单片机电路引脚图 19 p0 口接 9 个 2.2k 的排阻接 74ls244 然后接到显示电路上。 p1.0 温度传感器 ds18b20 如图 5.1 所示。p1.1 和 p1.2 引脚接继电器电路的 4.7k 电 阻上,其他引脚悬空。 p2 口中 p2.0、p2.1、p2.2、p2.3 分别接到显示电路的 4.7k 电阻上,p2.5 接蜂鸣器电 路,其他引脚悬空。 p3 口中 p3.5、p3.6、p3.7 接到按键电路。 ale 引脚悬空,复位引脚接到复位电路、vcc 接电源、vss 接地、ea 接电源。 2)显示电路 显示电路采用 3 位共阳 led 数码管,从 p3 口 rxd、txd 串口输出段码。 图 3.4 显示电路图 3)ds18b20 温度传感器电路 图 3.5 温度传感器电路引脚图 20 4)晶振控制电路 单片机 xial1 和 xial2 分别接 30pf 的电容,中间再并个 12mhz 的晶振,形成 单片机的晶振电路。 图 3.6 晶振控制电路图 5)复位电路 图 3.7 复位电路 21 第 4 章 软件设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程 序,显示数据刷新子程序显示子程序等。主程序的主要功能是负责温度的实时显示、读 出并处理 ds18b20 的测量温度值,温度测量每 1s 进行一次。读出温度子程序可以读出 ram 中的 9 字节,然后通过温度转换命令子程序发出温度转换开始命令,计算温度子程 序进行 bcd 码的转换运算,并进行温度值正负的判定,最后显示数据刷新子程序对显示 数据进行刷新。 4.1 主程序 图 4.1 主程序流程图 图 4.2 读温度流程图 4.2 读出温度子程序 读出温度子程序的主要功能是读出 ram 中的 9 字节,在读出时需进行 crc 校验, 校验有错时,不进行温度数据的改写。其程序流程图如图 4.2 所示。 y ds18b20 复位命令 令 发跳过 rom 命令 发读取温度命令 读取操作,crc 校 验 9 字节完? crc 校验正? 确? 移入温度暂存器 结束 n n y 开始 初始化 示化 获取温度值 与温度上 下限比较 报警 转换并显示 yes y 22 4.3 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。温度转换命令子程序 流程图,如图 4.3 所示. 图 4.3 温度转换子程序流程图 图 4.4 计算温度子程序流程图 4.4 计算温度子程序 计算温度子程序将 ram 中读取值进行 bcd 码的转换运算,并进行温度值正负的判 定,其程序流程图如图 4.4 所示。 发 ds18b20 复位命令 发跳过 rom 命令 发温度转换开始命令 结束 开始 温度零下? 温度值取补码置“”标志 计算小数位温度 bcd 值 计算整数位温度 bcd 值 结束 置“+”标 志 n y 23 4.5 显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作。当最高显示 位为 0 时,将符号显示位移入下一位,程序流程图如图 4.5 所示。 图 4.5 显示数据刷新流程图 4.6 主要设计程序 写 ds18b20 的程序 write: mov r2,#8 clr c wr1: clr p2.0 nop nop nop nop rrc a mov p2.0,c mov r3,#35 djnz r3,$ setb p2.0 nop djnz r2,wr1 温度数据移入显示 寄存器 十位数 0? 百位数 0? 十位数显示符 号百位数不显 示 百位数显示 数据(不显 示符号) 结束 n n y y 24 setb p2.0 ret 读 ds18b20 的程序 read: mov r4,#2 ; 将温度高位和低位 ds18b20 中读 re00: mov r2,#8 re01: clr c setb p2.0 nop nop clr p2.0 nop nop nop setb p2.0 nop nop mov c,p2.0 mov r3,#35 re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret 25 4.7 调试 系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后 可用万用表测试或通电检测。软件调试先编写显示程序并进行硬件的正确性检验,然后 分别进行主程序、读出温度子程序、温度子程序、显示数据刷新等子程序的编程及调试, 由于 ds18b20 与单片机采用串行数据传送,因此,我对 ds18b20 进行读写编程时严格地 保证读写时序,以防无法读取测量结果。本程序采用单片机汇编编写,用 keil 编程调试。 软件调试到能显示温度值,而且在有温度变化时(例如用手去
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 喷泉公园管理办法
- 噪音超标管理办法
- 团学活动管理办法
- 园区出租管理办法
- 国企发文管理办法
- 国企资产管理办法
- 国库集中管理办法
- 招投标文件制作服务费协议
- 2025至2030中国汽车密封件行业项目调研及市场前景预测评估报告
- 《现代计算机图形学基础》课件 chap9-计算机动画;chap10-基于GPU的图形计算
- 内控管理制度会议纪要
- 企业员工焦虑课件
- 《高危新生儿分类分级管理专家共识(2023)》解读 2
- 西班牙语教学课件
- 行吊安全操作规程及注意事项
- 消防作战训练安全课件
- 艾欧史密斯热水器CEWH-50P5说明书
- 洗涤投资项目可行性研究报告(立项备案模板)undefinedundefined
- 2025年南充市中考化学试卷真题(含标准答案及解析)
- 商户银行联谊活动方案
- 矿山工程师培训课件
评论
0/150
提交评论