版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 1 1 章章 绪 论 1.1 课题背景 单片机自 1976 年由 Intel 公司推出 MCS-48 开始,迄今已有三十多年了。由于单片 机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点, 目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为” 。单片机的应 用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自 动化、汽车电子、PC 机外围以及网络通讯等广大领域,对各个行业的技术改造和产品更 新换代起着重要的推动作用。 单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储 器和数据存储器合用一个存储器空间
2、的结构,称为普林斯顿结构。另一种是将程序存储 器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器。目前的单片 机以采用程序存储器和数据存储器截然分开的结构为多。 本设计讨论的单片机多功能定时器的核心是目前应用极为广泛的 51 系列单片机,配 置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等 特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。 20 世纪 80 年代中期以后,Intel 公司以专利转让的形式把 8051 内核技术转让给许 多半导体芯片生产厂家,如 ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS
3、等。这些厂家 生产的芯片是 MCS-51 系列的兼容产品,准确地说是与 MCS-51 指令系统兼容的单片机。 这些兼容机与 8051 的系统结构(主要是指令系统)相同,采用 CMOS 工艺,因而,常用 80C51 系列来称呼所有具有 8051 指令系统的单片机,它们对 8051 单片机一般都作了一些 扩充,使其更有特点。其功能和市场竞争力更强,其实不该把它们直接称呼为 MCS-51 系 列单片机,因为 MCS 只是 Intel 公司专用的单片机系列型号。MCS-51 系列及 80C51 单片 机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使 用的 MCS-51 系列
4、单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、 专用型、超 8 位型、片内闪烁存储器型。其中 ATMEL 公司的标准型 AT89 单片机因其与 MCS-51 的完全兼容性、优良的工作性能、使用的灵活性以及较高的性能价格比,成为 AT89 系列单片机的主流机型,在嵌入式控制系统中获得广泛应用。 1.2 课题来源 众所周知,环境温度一直是生物能否较适宜生存的一个重要因素,而人们对环境温 度的感知也从单纯的身体感官的感受发展到用各种温度计来对环境温度进行准确的测量。 但是受限于技术等原因,温度计通常都有体积较大,精度不高等各种缺陷。而数字温度 测量芯片的出现则解决了这些问题,其中的一
5、款芯片 DS1620 是 DALLAS 公司生产的 1- Wire,即单总线器件,具有线路简单,体积小的特点。因此,用它来组成一个测温系统, 具有线路简单,在一根通信线上可以挂载很多这样的数字温度芯片,十分方便。 美国 Dallas 半导体公司的数字化温度传感器 DS16202是世界上第一片支持 “一线 总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及 转换电路集成在形如一只三极管的集成电路内。 “一线总线”独特而且经济的特点,使用 户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的 DS1620 体积更小、更经济、更灵活。使你可以充分
6、发挥“一线总线”的优点。 同 DS1620 一样, DS1620 也支持“一线总线”接口,测量温度范围为-55+125C,在 0+70C 范围内, 精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗 干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消 费电子产品等。与前一代产品不同,新的产品支持 2.7V5.0V 的电压范围,使系统设计 更灵活、方便。而且新一代产品更便宜,体积更小,这就为用最低的成本制作出用途更 广,精度更高的便携带的数字温度计提供了可能。 目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展
7、。 1.3 课题内容及要求 本设计主要介绍了用单片机和数字温度传感器 DS1620 相结合的方法来实现温度 的采集,以单片机 AT89C51 芯片为核心,辅以温度传感器 DS1620 和 LED 数码管及必要的 外围电路,构成了一个多功能单片机数字温度计。该装置适用于人民的日常生活和工、 农业生产的温度测量与报警,实现对温度的监测。其主要研究内容包括两方面,一是对 系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应 用 C 语言实现温度的采集与显示。通过利用数字温度传感器 DS18B20 进行设计,能够满 足实时检测温度的要求,同时通过 LED 数码管的显示功能,可以
8、实现不间断的温度显示, 并带有复位功能。 本次设计的主要思路是利用 51 系列单片机,数字温度传感器 DS1620 和 LED 数码显 示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。通过对单片机编写 相应的程序,达到能够实时检测周围温度的目的。 通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片 机、DS1620、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完 成对数字温度计的总体设计。其具体的要求如下: 1、根据设计要求,选用 AT89C51 单片机为核心器件; 2、温度检测器件采用 DS1620 数字式温度传感器; 3、显示电路采
9、用 3 位 LED 数码管以串口传送数据实现温度显示 第第 2 2 章章 基于单片机的基于单片机的数字温度计设计 2.1 引言 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传 感器DS1620 是一片8引脚的片内建有温度测量并转换为数字值的集成电路,他集温度传感、 温度数据转换与传输、温度控制等功能于一体。测温范围:55125,精度为 05。该芯片非常容易与单片机连接,实现温度的测控应用,单独做温度控制器使用时, 可不用外加其他辅助元件,它具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使 用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统
10、温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本人利用集成温度传 感器DS1620设计并制作了一款基于AT89C51的4位数码显示的数字温度计,其电路简单, 软硬件结构模块化,易于实现。 2.2 设计内容及性能指标 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计, 并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器(DS1620)测量某一点环境温度 测量范围为-55125,精度为0.5 用3位LED数码管以串口传送数据实现温度显示 能够根据需要方便设定上下限报警温度 2.3 系统方案论证与比较 该系统主要由温度测量和数据采集两部分电路组成
11、,实现的方法有很多种,下面将列出两种在日 常生活中和工农业生产中经常用到的实现方案。 2.3.1方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在 一起的异金属导线所组成(热电偶的构成如图 3.1),热电偶产生的热电势由两种金属 的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压, 便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测 温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理, 在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且 体积小,但是它们也
12、存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较 高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。 图 3.1热电偶电路图 系统主要包括对A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这 几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动 电路等。故现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为51 芯片,执行机构 有4 位数码管、报警器等。系统框图如图 3.2所示: 图 3.2热电偶温差电路测温系统框图 2.3.2 方案二 该数字温度计利用 DS1620 集成温度传感器及其接口电路完成温度的测量并转换成 模拟电压
13、信号,经由模数转换器转换成单片机能够处理的数字信号,然后送到单片机 AT89C51 中进行处理变换,最后将温度值显示在 D4、D3、D2、D1 共 4 位七段码 LED 显示 器上。 系统以AT89C51单片机为控制核心,加上DS1620测温电路、模数转换电路、4位温 度数据显示电路以及外围电源、时钟电路等组成。系统组成框图如图1所示。 从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方 案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。 2.4 系统器件选择 2.4.1 单片机的选择 2.4.1.1 AT89C51 的
14、简介 对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又 需要大量内存存储数据,因而不适用。AT89S51 是美国 ATMEL 公司生产的低功耗,高性 能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法 进行编程,所以低价位 AT89S51单片机可为提供许多高性价比的应用场合,可灵活应用 于各种控制领域,对于简单的测温系统已经足够。单片机AT89S51 具有低电压供电和体 积小等特点,四个端口只需要两个口就能满足电路
15、系统的设计需要,很适合便携手持式 产品的设计使用系统可用二节电池供电。主要特性如下 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2.4.1.2 AT89C51引脚图 芯片AT89C51的引脚排列和逻辑符号如图3.1所示。 图 4.1 AT89C51 单片机引脚图 2.4.1.3 AT89C51引脚功能介绍 单片机芯片AT89C51 为40 引脚双列直插
16、式封装。 各引脚功能简单介绍如下: 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
17、编程和校验时, P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个 TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。 作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。 P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址 的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存 储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接 收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I
18、/O口,可接收输出4个TTL门电流。 当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由 于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可 作为AT89C51的一些特殊功能口: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 WR (外部数据存储器写选通) P3.7 RD (外部数据存储器读选通) 同时P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复
19、位器件时,要保持RST脚两个机器周期的高电平时间。 ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地 位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周 期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于 定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁 止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作 用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信
20、号。在由外部程序存储器取址期间,每个机器周 期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为 RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.4.2 温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的 外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DAL
21、LAS公司的数字温度传感器 DS18B20作为测温元件。 2.4.2.1 DS1620 简单介绍 DS1620 是 Dallas 公司推出的数字温度测控器件。 2.7 5.0V 供电电压,测量温度范 围为-55+125,9 位数字量表示温度值,分辨率为 0.5。在 0+70精确度为 0.5, - 400和+70+85精确度为 1,-55-40和+85 +125精确度为 2。TH 和 TL 寄存 器中的温度报警限设定值存放在非易失性存储器中,掉电后不会丢失。通过三线串行接口,完 成温度值的读取和 TH、TL 的设定。 DS1620 的温度值为 9 位数字量,数据用补码表示,最低位表示 0.5。几
22、个典型温度 的数字量如表 2 所列。通过三线传送数据时,低位在前,高位在后。DS1620 读出或写入的 温度数据值可以是 9 位的字(在第 9 位后将置为低电平),也可以作为两个 8 位字节的 16 位字。这时高 7 位为无关位。这种方式在 8 位单片机中处理是比较方便的。 DS1620 的性能特点如下: 独特的单线接口方式,DS1620在与微处理器连接时仅需要一条口线即可实现微处 理器与DS1620的双向通讯 DS160支持多点组网功能,多个DS1620可以并联在唯一的三线上,实现组网多点测 温 DS1620在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只 三极管的集成电路内
23、 适应电压范围更宽,电压范围:2.75.0V,在寄生电源方式下可由数据线供电 温度测量范围55125,在0+70时精度为0.5,-400和 +70+85精确度为1,-5540和+85+125精确度为2 九位数字量表示温度值,分辨率为0.5 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 2.4.2.2 DS1620 使用中的注意事项 DS1620 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在 实际应用中也应注意以下几方面的问题: DS1620
24、从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的, 不然会出现转换错误的现象,使温度输出总是显示85。 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温 度精度降低。 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1620与微处理器间采用串行数 据传送,因此,在对DS1620进行读写编程时,必须严格的保证读写时序,否则将无 法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1620操作部 分最好采用汇编语言实现。 在DS1620的有关资料中均未提及单总线上所挂DS1620 数量问题,容易使人误认为可以 挂任意多个DS162
25、0,在实际应用中并非如此,当单总线上所挂DS1620 超过8 个时, 就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注 意。 在DS18B20测温程序设计中,向DS1620 发出温度转换命令后,程序总要等待DS620的返回信号,一 旦某个DS1620 接触不好或断线,当程序读该DS1620 时,将没有返回信号,程序进入死循环, 这一点在进行DS1620硬件连接和软件设计时也要给予一定的重视。 2.4.2.3 DS1620 内部结构 (1) DS1620 的内部框图 图为 DS1620 的内部框图,它主要包括寄生电源、温度传感器、64 位激光 ROM 单线接 口、存放中间
26、数据的高速暂存器(内含便笺式 RAM) ,用于存储用户设定的温度上下限值 的 TH 和 TL 触发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。 DS18B20采用8脚DIP 封装或脚SOIC封装,其内部结构框图如图 4.4所示 图 4.4 DS1620内部结构框图 (2)DS1620 的工作状态都是由外部输入的指令来控制的, 具体的指令如下: AAH读取转换好的温度数据; 从指令输入后的 第9 个时钟(亦称移位) 脉冲开始, 将输出温度寄存 器中的数据。 01H给高温临界寄存器写入T H 数据。 02H给低温临界寄存器写入T L 数据。 A 1H读高温临界寄存器中的T H
27、数据。 A 2H读低温临界寄存器中的T L 数据。 EEH开始转换温度数据。 22H停止转换温度数据。 0CH写工作方式寄存器。 ACH写工作方式寄存器 (3) DS1620 温度传感器主要用于对温度进行测量,数据可用 16 位符号扩展的二进制补 码读数形式提供,并以 0.0625LSB 形式表示。 表 2 DS1620 的几个典型温度和数字量对应关系。 温度/数字输出(二进制)数字输出(十六进制) +12500FAH +250032H +0.50001H 00000H -0.501FFH -2501CEH -550192H 表 2 部分温度值 DS1620 完成温度转换后,就把测得的温度值与
28、 RAM 中的 TH、TL 字节内容作比较,若 TTH 或 TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。 因此,可用多只 DS1620 同时测量温度并进行告警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余校验码(CRC)。主机根据 ROM 的前 56 位来计算 CRC 值,并和存入 DS620 中的 CRC 值做比较,以判断主机收到的 ROM 数 据是否正确。 2.4.4 DS1620 的工作原理 DS1620 的测温原理如图 2 所示,图中低温度系数晶振的振荡频率受温度的影响很小 用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化
29、其震荡频率 明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数 门打开时,DS1620 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测 量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的 基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的 预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此
30、循环直到减法计数器 2 计数 到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图 2 中的斜率 累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只 要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 DS18B20 的测温原理。 另外,由于 DS1620 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时 序很重要。系统对 DS1620 的各种操作必须按协议进行。操作协议为:初始化 DS1620 (发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。 图(2) DS1620 测温原理图 在正常测温情况下,DS1620
31、 的测温分辨力为 0.5,可采用下述方法获得高分辨 率的温度测量结果:首先用 DS1620 提供的读暂存器指令(BEH)读出以 0.5为分辨 率的温度测量结果,然后切去测量结果中的最低有效位(LSB) ,得到所测实际温度的 整数部分 Tz,然后再用 BEH 指令取计数器 1 的计数剩余值 Cs 和每度计数值 CD。考虑 到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 Ts 可 用下式计算: Ts=(Tz-0.25)+(CD-Cs)/CD 2.4.5 提高 DS1620 测温精度的途径 2.4.5.1 DS1620 高精度测温的理论依据 DS1620 正常使
32、用时的测温分辨率为 0.5,这对于水轮发电机组轴瓦温度监测来讲 略显不足,在对 DS1820 测温原理详细分析的基础上,我们采取直接读取 DS1620 内部暂 存寄存器的方法,将 DS1820 的测温分辨率提高到 0.10.01 DS1820 内部暂存寄存器的分布如表 1 所示,其中第 7 字节存放的是当温度寄存器停 止增值时计数器 1 的计数剩余值,第 8 字节存放的是每度所对应的计数值,这样,我们 就可以通过下面的方法获得高分辨率的温度测量结果。首先用 DS1620 提供的读暂存寄存 器指令(BEH)读出以 0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位 (LSB),得到所测
33、实际温度整数部分 T 整数,然后再用 BEH 指令读取计数器 1 的计数剩余 值 M 剩余和每度计数值 M 每度,考虑到 DS1620 测量温度的整数部分以 0.25、0.75为 进位界限的关系,实际温度 T 实际可用下式计算得到:T 实际=(T 整数0.25)+(M 每度 M 剩余)/M 每度。 B7B6B5B4B3B2B1B0 DONETHFTLFXXCCPU1SHOT 表 1 DS1620 内部工作方式 该字节各位的定义如下: TMR1R011111 低 5 位一直都是 1,TM 是测试模式位,用于设置 DS1620 在工作模式还是在测试模 式。在 DS1620 出厂时该位被设置为 0,
34、用户不要去改动,R1 和 R0 决定温度转换的精度 位数,即是来设置分辨率,如表 1 所示(DS1620 出厂时被设置为 12 位)。 R1R0 分辨率温度最大转换时 /mm 00 9 位 93.75 01 10 位 187.75 10 11 位 275.00 11 12 位 750.00 表 1 R1 和 R2 模式表 由表 1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在 实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还 有其他 8 个字节组成,其分配如下所示。其中温度信息(第 1,2 字节) 、TH和 TL值 第 3,4 字节、第 68 字节
35、未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个 字节的 CRC 码,可用来保证通信正确。 根据 DS1620 的通讯协议,主机控制 DS1620 完成温度转换必须经过三个步骤: 每一次读写之前 都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令, 最后发送 RAM 指令,这样才能对 DS1620 进行预定的操作。复位要求主 CPU 将数据线 下拉 500 微秒,然后释放,DS1620 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 2.4.5.2 测量数据比较 表 2 为采用直接读取测温结果方法和采用
36、计算方法得到的测温数据比较,通过比较 可以看出,计算方法在 DS1620 测温中不仅是可行的,也可以大大的提高 DS1620 的测温 分辨率。 表 2 DS1620 直度测温结果与计算测温结果数据比较 2.4.5.3 显示及报警模块器件选择 在本设计中温度测量范围为0125,精度为0.5,因此只需要液晶就可以完成相关的 显示功能。 2.5 硬件设计电路 2.5.1 硬件连线 图 5 是用 AT89C51 单片机作 CPU 来操作 DS1620 的。单片机的 P1 口连接 DS1620 的三 线通信接口:P1.1 接 DQ,P1.2 接 CLK/,P1.3 接。 2.5.2 主控制器 单片机AT
37、89C51具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很合 适携手特式产品的使用。主机控制DS1620完成温度转换必须经过三个步骤:初始化、ROM操作指令、 存储器操作指令。必须先启动DS1620开始转换,再读出温度转换值。 2.5.3 七段码LED温度显示电路 由发光二极管组成的七段码 LED 显示器是单片机应用产品中最常用的廉价输出设备, 用于显示各种数字和字符。该数字温度计的温度显示由 4 位七段码 LED 显示器组成,单 片机以并行通信方式从 P1.0P1.7 口输出段码和控制信号,通过 7447TTL BCD 译码器译 码,用 4 个共阳极 LED 动态显示温度
38、的各个数位。具体硬件连接如图 3 所示。 图 3 温度显示及单片机时钟、复位电路 2.5.4 温度检测电路 DS1620 最大的特点是单总线数据传输方式,DS1620 的数据I/O 均由同一条线来 完成。DS1620 的电源供电方式有2 种: 外部供电方式和寄生电源方式。工作于寄生 电源方式时, VDD 和GND 均接地, 他在需要远程温度探测和空间受限的场合特别有用, 原理是当1 W ire 总线的信号线DQ 为高电平时, 窃取信号能量给DS1620 供电, 同时 一部分能量给内部电容充电, 当DQ为低电平时释放能量为DS1620 供电。但寄生电源 方式需要强上拉电路, 软件控制变得复杂(特
39、别是在完成温度转换和拷贝数据到 E2PROM 时) , 同时芯片的性能也有所降低。因此, 在条件允许的场合, 尽量采用外 供电方式。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电。在 这里采用前者方式供电。 外部电源供电方式是DS1620最佳的工作方式,工作稳定可靠,抗干扰能力强,而 且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发 中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方 式下,可以充分发挥DS1620宽电源电压范围的优点,即使电源电压VCC 降到3V 时, 依然能够保证温度量精度。 由于DS1620 只有一根数据
40、线,因此它和主机(单片机)通信是需要串行通信, 而AT89C51 有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问 DC1620 必须遵循如下协议:初始化、ROM 操作命令、存储器操作命令和控制操作。 要使传感器工作,一切处理均严格按照时序。 主机发送(Tx)-复位脉冲(最短为480s 的低电平信号)。接着主机便释放 此线并进入接收方式(Rx)。总线经过4.7K的上拉电阻被拉至高电平状态。在检测到 I/O 引脚上的上升沿之后,DS1620 等待1560s,并且接着发送脉冲(60240s 的低电平信号)。然后以存在复位脉冲表示DS1620 已经准备好发送或接收,然后给 出正确的ROM
41、 命令和存储操作命令的数据。DS1620 通过使用时间片来读出和写入数 据,时间片用于处理数据位和进行何种指定操作的命令。它有写时间片和读时间片两 种: 写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时 间片。有两种类型的写时间片:写1 时间片和写0 时间片。所有时间片必须 有60 微秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间. 读时间片:从DS1620 读数据时,使用读时间片。当主机把数据线从逻辑 高电平拉至逻辑低电平时产生读时间片。数据线在逻辑低电平必须保持至少1 微秒;来自DS1620 的输出数据在时间下降沿之后的15 微秒内有效。为了读 出从读时间片开始算起1
42、5微秒的状态,主机必须停止把引脚驱动拉至低电平。 在时间片结束时,I/O 引脚经过外部的上_鱯_9L_%拉电阻拉回高电平,所 有读时间片的最短持续期为60 微秒,包括两个读周期间至少1s 的恢复时 间。 一旦主机检测到DS1620 的存在,它便可以发送一个器件ROM 操作命令。所有ROM 操作命令均为8位长。 所有的串行通讯,读写每一个bit 位数据都必须严格遵守器件的时序逻辑来编程, 同时还必须遵守总线命令序列,对单总线的DS18B20 芯片来说,访问每个器件都要遵 守下列命令序列:首先是初始化;其次执行ROM 命令;最后就是执行功能命令(ROM 命令和功能命令后面以表格形式给出)。如果出现
43、序列混乱,则单总线器件不会响应 主机。当然,搜索ROM命令和报警搜索命令,在执行两者中任何一条命令之后,要返 回初始化。 基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复 位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机,且准备就 绪。 在主机检测到应答脉冲后,就可以发出ROM 命令。这些命令与各个从机设备的唯 一64 位ROM 代码相关。在主机发出ROM命令,以访问某个指定的DS1620,接着就可以 发出DS1620支持的某个功能命令。这些命令允许主机写入或读出DS18B20便笺式RAM、 启动温度转换。软件实现DS18B20的工作严格遵守单总线协议:
44、(1)主机首先发出一个复位脉冲,信号线上的DS1620 器件被复位。 (2)接着主机发送ROM命令,程序开始读取单个在线的芯片ROM编码并保存在单片 机数据存储器中,把用到的DS1620 的ROM 编码离线读出,最后用一个二维数 组保存ROM 编码,数据保存在X25043中。 (3)系统工作时,把读取了编码的DS1620 挂在总线上。发温度转换命令,再总线 复位。 (4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度读取命令 就可以获得对应的度值了。 在主机初始化过程,主机通过拉低单总线至少480us,来产生复位脉冲。接着, 主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将
45、单总线拉高。在单总 线器件检测到上升沿后,延时1560us,接着通过拉低总线60240us,以产生应答 脉冲。 写时序均起始于主机拉低总线,产生写1 时序的方式:主机在拉低总线后,接着 必须在15us之内释放总线。产生写0 时序的方式:在主机拉低总线后,只需在整个时 序期间保持低电平即可(至少60us)。在写字节程序中的写一个bit 位的时候,没有按 照通常的分别写0时序和写1 时序,而是把两者结合起来,当主机拉低总线后在15us 之内将要写的位c 给DO:如果c 是高电平满足15us 内释放总线的要求,如果c是低电 平,则DOc这条语句仍然是把总线拉在低电平,最后都通过延时58us 完成一个
46、写时 序(写时序0或写时序1)过程。 写时间时序:当主机把数据从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。 有两种写时间隙,写1 时间隙和写0 时间隙。所有写时间隙必须最少持续60s,包 括两个写周期至少1s 的恢复时间。I/O线电平变低后,DS18B20 在一个15s 到 60s 的窗口内对I/O 线采样。如果线上事高电平,就是写1,如果是低电平,就是 写0。主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开 始后的15s 内允许数据线拉到高电平。主机要生成一个写0 时间隙,必须把数据线 拉到低电平并保存60s。 每个读时隙都由主机发起,至少拉低总线1us,在主机发起读
47、时序之后,单总线 器件才开始在总线上发送0 或1。所有读时序至少需要60us。 源程序: 假设要写1 B 的数据, 且数据放在A 中。 SETBTEM PDN NOP NOP WRITEDS1820LOP: CLRTEM PD IN MOV R6, # 08H ; 延时15 Ls DJN ZR6, RRCA ; 将要写数据存入C MOV TEM PD IN , C ; 将数据写入总线 MOV R6, # 14H ; 延时40 Ls DJN ZR6, SETBTEM PD IN ; 释放总线 DJN ZR7,WR ITEDS1820LO P ; 写8 位 RET 读时间时序:当从DS1620 读
48、数据时,主机生成读时间隙。当主机把数据从高电平拉 到低电平时,写时间隙开始,数据线必须保持至少1s;从DS1620输出的数据在读时间 隙的下降沿出现后15s 内有效。 因此,主机在读时间隙开始后必须把I/O 脚驱动拉为的电平保持15s,以读取I/O 脚状态。在读时间隙的结尾,I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必 须最少60s,包括两个读周期至少1s的恢复时间。 源程序: 假设要读1B 的数据, 且数据放在A 中。 READDS1820:MOV R7, # 08H ; 1 个字节8 位 SETBTEM PD IN NO P NO P READDS1820LOO P: CLRTE
49、M PD IN NO P SETBTEM PD IN ; 释放总线 MOV R6, # 05H ; 延时10 Ls DJN ZR6, MOV C, TEM PD N ; 采样总线数据 MOV R6, # 14H ; 延时40 Ls DJN ZR6, RRCA ; 采样数据存入A SETBTEM PD IN ; 释放总线 DJN ZR7, READDS1820LOO P ; 采样下一位 MOV R6, # 14H ; 延时40 Ls DJN ZR6, RET 读 复位时序:复位要求主CPU将数据线下拉500微秒,然后释放,DS1620收到信号后等 待1660 微秒左右,后发出60240 微秒的存
50、在低脉冲,主CPU 收到此信号表示复位成 功。 源程序: 其中TEM PD IN 定义为DS1620 的数据管脚, 主机为AT89C51。 N ITDS1620: SETBTEM PD N NO P NO P CLRTEM PD N MOV R6, # 0A 0H ; 延时640 Ls DJN ZR6, MOV R6, # 0A 0H DJN ZR6, SETBTEM PD N ; 释放总线 MOV R6, # 32H ; 延时100 Ls, 等待回 应 DJN ZR6, MOV R6, # 3CH LOO P1820: MOV C, TEM PD N ; 采样总线信号 JCN ITDS182
51、0OU T DJN ZR6,LOO P1820 MOV R6, # 064H DJN ZR6, SJM PN ITDS1820 RET IN ITDS1820OU T: SETBTEM PD N RET 第3章 系统软件设计及编程 该数字温度计软件部分用 MCS-51 会变语言编程实现,采用模块化程序设计思想,将 软件划分成若干单元,主要包括主程序、十进制数据转换及调整子程序、LED 数码显示子 程序和延时子程序等。本系统具体汇编源程序见后附。 3.1 系统主程序 在主程序中,系统上电自动复位以后首先设置堆栈,然后启动 ADC0804,开始转换 DS1620 测温电路输入的电信号,待数据转换结
52、束后读入到累加器 A,然后进行十进制数 据转换调整,输出给显示电路。主程序流程图如图 4 所示。 3.2 十进制数据转换调整子程序 由于 ADC0804 转换后的数据时二进制数据,而七段码 LED 显示器所要显示的数据 时十进制数据,因此需要进行二、十进制数据转换。ADC0804 输出的最大转换值为 FFH(255) ,由于运放 A3 放大 5 倍,因此本数字温度计的最大测量温度为 5.1V/5=1.02V,即 102。由 255*X=102,得知 X=0.4,即先乘 4 再除 10。255*4=1020, 其中高位 10 送高位显示缓冲区 R4,低位 20 送低位显示缓冲区 R5 将小数点设
53、在 D2 位上, 并将其分别显示为 1(D4)0(D3)2(D2).0(D1)。所以,十进制转换调整流程为 A/D(二 进制)十进制乘 4显示。程序流程图如图 5 所示。 3.3 LED 数码显示子程序 十进制转换调整后的数据送到寄存器 R5、R4 中,然后通过 P1 口把数据输出给 D4、D3、D2、D1 四个数码显示器中,从而最终把测得的温度显示出来。显示子程序流程 图如图 6 所示。 3.4 温度检测流程 DS1620在单片机控制下分三个阶段: DS1620 初始化:初始化流程图见 读DS1620时序:读DS1620流程见图 6.3: 写DS1620时序:写DS1620 流程见图6.4
54、图 6.3读DS1620流程图 图 6.4写DS1620流程图 3.5 中断设定流程 中断模块采用了外中断和内中断套用方法。当设计需要实现上下限报警时,利用 INT0 口进行中断,set 键进行上下限报警温度设定,进入温度设定状态后(按一下温度 设定键),首先会提示显示“UP”字母,表示要用户设定高温报警温度,按 S3 键 ,表 示本位数字+1,按 S4 表示移向下一位,如果 4 位高温设定完毕,则显示“DO”,表示 要用户设定低温报警温度。4 位低温设定完毕,如果用户设置的高温比设定的低温高的话 则显示“ERRO”表示错误提示,同时会有蜂鸣器及时报警提示,然后自动显示“UP”, 让用户重新进
55、行温度设定。中断设定子程序流程图见下图 图6.6 中断设定子程序流程图 第4章 总结和体会 本设计利用89C51 芯片控制温度传感器DS1620,再辅之以部分外围电路实现对环 境温度的测控,性能稳定,精度教高,而且扩展性能很强大。由于DS1620 支持单总 线协议,我们可以将多个DS1620 可以并联到3 根或2 根线上,CPU 只需一根端口线 就能与诸多DS18B20 通信,占用较少的微处理器的端口就可以实现多点测温监控系统。 可以加入1302 时钟芯片实现对时间进行显示,加之AT24C16 存储芯片来实现对时间 和温度数据的记录,利用MAX232芯片和计算机实现串口通讯,这样就可以方便的统
56、计 出特定时间内的需要的时间和温度数据。由于DS18B20的测量精度只有0.5 度,往 往很多场合需要更加精确的温度,在所测温度精度不变的基础上必须对数据进行校正。 由于DS1620 是基于带隙结构的数字式温度传感器,PN 结增量电压正比于IC 绝对温 度(PTAT),它的测温精度较高,但存在着一定的误差.不过,其误差在时间和外部环 境变化的条件下,保持相当高的稳定性。针对这一特性,基于线性插补的数学思想,利 用DSP技术,对其进行误差校正补偿.这种误差校正的补偿方法,不需增加硬件电路,计 算方法简单,软件费用也很小,既提高了测量精度,又不需增加成本。它充分利用监控 计算机的处理能力,在监控计
57、算机上用线性插补的数学方法对其进行误差校正补偿, 能轻易地将其提高其精度。 经过将近三周的单片机课程设计,终于完成了我的数字温度计的设计,虽然没有 完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来, 高兴之余不得不深思呀! 在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设 计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙 的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事, 举个例子,以前写的那几次,数据加减时,我用的都是 BCD 码,这一次,我全部用的 都是 16 进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的 东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的, 更谈不上掌握。 从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际, 把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写 与读的过程中才能提高,这就是我在这次课程设计中的最大收获。 致谢 经过几个月的紧张忙碌,我的毕业设计也已经接近尾声。在这段毕业设计期间,我 的老师给了我很大的帮助。在此,我要衷心感谢我的指导教师,在毕业设计期间我的设 计和论文都是在老师全面、具体的指导下进行的,老师对论文的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农产品追溯体系建设与实践
- 2026年中国高温超导产业链全景图及重点企业竞争力对比
- 2026年国家人工智能产业投资基金降低AI创新创业成本申请指引
- 2026年合成生物学替代蛋白与未来食品制造
- 2026年钙钛矿发光材料效率国际领先产业化应用基础
- 2026年新污染物去除技术装备揭榜挂帅任务攻关进展
- 2026年失能失智老年人照护服务体系实施方案
- 2025年公务员(养老服务体系构建)试题及答案
- 2026江西工业职业技术学院图书管理员岗位招聘1人备考题库【含答案详解】
- 2026海南省烟草专卖局(公司)招聘34人备考题库及答案详解(夺冠系列)
- 部编版三年级下册语文课课练全册(附答案)
- 军用靶场设计方案
- 管理会计学 第10版 课件 第3章 本-量-利分析
- Unit 3 Zhong Nanshan- Part B(小学英语教学)闽教版英语五年级下册
- 消防维保方案(消防维保服务)(技术标)
- 车辆交通危险点分析预控措施
- QC成果提高SBS防水卷材铺贴质量一次合格率
- 大舜号海难事故案例分析
- TGRM 057.1-2023 非煤岩岩爆倾向性评价规范 第1部分:室内指标测定及等级分类
- 2023年安徽新闻出版职业技术学院单招考试职业技能考试模拟试题及答案解析
- LY/T 2271-2014造林树种与造林模式数据库结构规范
评论
0/150
提交评论