基于单片机电子温度计的设计与实现备份.doc_第1页
基于单片机电子温度计的设计与实现备份.doc_第2页
基于单片机电子温度计的设计与实现备份.doc_第3页
基于单片机电子温度计的设计与实现备份.doc_第4页
基于单片机电子温度计的设计与实现备份.doc_第5页
免费预览已结束,剩余58页可下载查看

下载本文档

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

文档简介

目录目录 摘摘 要要.I ABSTRACT.II 第第 1 1 章章 绪论绪论 .1 1.1 研究数字温度计的目的与意义.1 1.2 数字温度计的发展现状和前景展望.1 1.3 数字温度计的设计方法.3 第第 2 2 章章 基本器件的选择及接口电路基本器件的选择及接口电路 .4 2.1 主要元器件的选择.4 2.1.1 主控制器.4 2.1.2 显示电路.5 2.1.3 温度传感器.7 2.1.4 时钟电路.10 2.1.5 按键调时电路.14 2.1.6 报警电路.16 2.2 DS18B20 温度传感器与单片机的接口电路.16 2.3 DS1302 与单片机的接口电路.17 2.4 LCD1602 与单片机的接口电路.18 第第 3 3 章章 系统软件电路编程系统软件电路编程 .19 3.1 主程序.19 3.2 读出温度子程序.20 3.3 温度转换命令子程序.20 3.4 计算温度子程序.21 3.5 显示数据刷新子程序.21 第第 4 4 章章 软件仿真与调试及软件仿真与调试及 PCBPCB 板的制作板的制作 .22 4.1 顶层电路图.22 4.2 调试结果.23 4.3 PCB 板的制作.24 4.3.1 绘制电路原理图并仿真调试.25 4.3.2 加载网络表及元件封装.25 4.3.3 规划电路板并设置相关参数.26 4.3.4 元件布局及调整.27 4.3.5 布线并调整.28 4.3.6 输出及制作 PCB.28 结束语结束语 .59 参考文献参考文献 .60 致谢致谢 .60 I 基于单片机电子温度计的设计与实现基于单片机电子温度计的设计与实现 摘 要:本设计提出了用单片机实现电子温度计,基于 Proteus 仿真平台,C 语 言编程,实现对温度的测量。系统主要集成在一片 STC89C51 芯片上,它可以控 制温度传感器的检测与数据的输入输出,还可以接受外部时钟控制产生单独的 时钟模块,还能控制液晶显示与键盘的输入输出。整个设计软件部分采用 C 语 言编程,硬件部分采用 Proteus 仿真,并用 Proteus 制作 PCB 板,最后做出实 物。其中采用 C 编程有以下优点,程序设计简单,方便读者阅读,极易修改, 可移植性强。 关键词:STC89C51;DS1302;DS18B20;液晶 1602;按键;发光二极管。 II Electronic thermometer based on the single-chip Design and Implementation Abstract:The design of the electronic thermometer with single-chip, based on the Proteus simulation platform, C language programming, to achieve the measurement of temperature. The whole system STC89C51 all integrated in a chip. It can control temperature sensor detection and data input and output, but also can accept an external clock to control the clock have a separate module, but also control the liquid crystal display and keyboard input and output. Keil software used throughout the design of the C language programming and simulation Proteus, and Proteus production of PCB board. Using C programming which has the following advantages, the program is designed to be simple to allow readers to read, easy to modify, strong portability. Key words: STC89C51; DS1302; DS18B20; LCD1602; button; light-emitting diodes. 基于单片机电子温度计的设计与实现 1 第 1 章 绪论 1.1 数字温度计的目的与意义 数字温度计具有读数方便直观,而且精确度高的优点,它在工农业的生产中具有 重要的用途。本文中的数字温度计采用直流电源供电模式,即可以采用电脑 USB(+5V) 供电,在做硬件仿真时容易实现,还可以采用电池,在生活工作中使用方便。温度的 采集采用当今最流行的温度传感器 DS18B20,它具有体积小和测量精度高的优点。核心 器件采用价格便宜性能优良的单片机(STC89C51)进行数字信号的处理。显示部分采 用液晶显示器(LCD1602)显示数据,醒目直观。另外增加了可调万年历的功能,可显 示年月日,星期,时间,还设置了低温高温报警功能,可在工业和生活中起到低温或 高温自动报警功能。 传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,而利用 集成温度传感器设计的这款基于单片机的并用 LCD 液晶显示的数字温度计,其电路简 单,软硬件结构模块化,易于实现。 该数字温度计利用集成温度传感器及其接口电路完成对温度的测量,并直接采集 信号送到单片机中进行处理变换,最后将温度值显示在液晶显示器上。 系统以 STC89C51 单片机为控制核心,加上测温电路、报警电路、液晶显示电路以 及外围电源、时钟电路等组成。随着时代的进步和发展,单片机技术已经普及到我们 生活、工作、科研等各个领域,已经成为一种比较成熟的技术。本设计将完成一种基 于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度, 当温度不在设置范围内时,自动报警。还有其他扩展功能。 1.2 数字温度计的发展现状和前景展望 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人 带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,人们对它的要求 也越来越高,要为现代人工作、科研、生活、提供更好更方便的设施就需要从单片机 技术入手,一切向着数字化控制,智能化控制方向发展。本文所设计的数字温度计与 传统的温度计相比,具有读数方便、测温范围广、测温准确等特点,主要用于对温度 的精确度高的场所,或科研实验室使用。 本文介绍了温度计的测量和控制之间的关系:检测是控制的基础和前提,而检测 基于单片机电子温度计的设计与实现 2 的精度必须高于控制的精确度,否则无从实现控制的精度要求。科学技术的发展和检 测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等, 在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高, 又为检测技术、传感器技术提供了条件。目前,温度计的发展很快,从原始的玻璃管 温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。 现在的温度计中传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精 度、测量范围、控制范围和用途等。传感器经过多年的发展,如今已有了许多种性能 各异的传感器。作为应用系统的设计人员,需要根据系统要求选用适合的传感器,应 用于自己设计的系统中,设计出性能良好的监控系统。 随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度 检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏 电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,精确度低,检测系统 也存在一定的误差。与传统的温度计相比,本文中的数字温度计具有读数方便,测温 范围广,测温精确,数字显示,适用范围宽等特点。选用 STC89C51 型单片机作为主控 制器件,DS18B20 作为测温传感器通过液晶显示器传送数据,显示温度。通过 DS18B20 直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在- 20100最大线性偏差小于 0.1。该器件可直接向单片机传输数字信号,便于单 片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传 输与处理过程。 基于单片机电子温度计的设计与实现 3 1.3 数字温度计的设计方法 数字温度计首先通过温度传感器把温度转化成电信号,这里采用 DS18B20 直接输 出是数字信号不用经过模数转换,采用单片机编程实现十进制转换能够显示的数字信 号,然后在数码管或液晶屏上面显示出来。通过单独的时钟计数模块记录时间,与检 测 DS18B20 不冲突。用发光二极管设置上下温度报警,按键调节时间,供电方式采用 USB 直流供电,与电脑连接方便,调试简单容易实现。 图 1.1 基本原理框图 基本原理框图如图 1.1 所示,系统构成简单,采用的元件常见方便,硬件仿真也 容易实现。其中主要元件有:STC89C51、DS18B20、DS1302、按键、LCD1602、发光二 极管。 STC89C51 液晶 显示 温度传感器 调时按键 时钟振荡 高低温 报警 基于单片机电子温度计的设计与实现 4 第 2 章 基本器件的选择及接口电路 2.1 主要元器件的选择 2.1.1 主控制器 单片机 STC89C51 具有低电压供电和体积小等特点,很适合便携手持式产品,四个 PI/O 口只需要两个口就能满足电路系统的设计需要,设计系统使用可用电池供电,简 单、方便,也容易实现,此器件是系统的核心部分。 根据初步设计方案的分析,设计这样一个简单的应用程序,可选择带有 EPROM 的 单片机,应用程序直接存储在片内,不用在外部扩张程序存储器,电路可以简化。 Intel 公司的 8051 和 8751 芯片均可以选用。其他一些 MCS-51 系列相兼容的芯片,如 ATMEL 公司生产的 AT89C系列单片机。采用 MCS-51 系列的单片机相比有两大优势: (1)片内程序存储器采用闪速存储器,是程序写入更加方便。 (2)提供了更小的芯片,使整个硬件电路的体积更小、良好的性价比倍受青睐。 本次设计我们采用了 STC89C52 单片机(89C51 芯片如图 2.1 所示) ,它具有程序加 密功能且物美价廉,经济实用。 基于单片机电子温度计的设计与实现 5 图 2.1 89C51 芯片 2.1.2 显示电路 显示电路采用液晶 LCD1602,从 P0、P2 口输出数据。液晶显示模块是一种将液晶 显示器件、连接件、集成电路、PCB 线路板、背光源、结构件装配在一起的组件,通常 称作 LCD。液晶显示器件有一套自己的读写指令。主要的程序流程如图 2.2 其内部结构 框图如图 2.2 所示,程序见附录程序清单。 图 2.2 液晶显示程序流程图 图 2.3 LCD1602 内部结构图 开始 清屏 LCD 初始化 设定数据位置 输入显示数据 结束 基于单片机电子温度计的设计与实现 6 操作时序图如图 2.3、2.4 所示,其中图 2.3 是写操作时序图,图 2.4 是读操作时序图。 图 2.3 写操作时序图 图 2.4 读操作时序图 表 2.1 时序参数表 表 1 时序参数 基于单片机电子温度计的设计与实现 7 表 2.1 为读写操作时序图对应的时序参数表。 2.1.3 温度传感器 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传 感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际 要求通过简单的编程实现 9-12 位的数字值读数方式。其内部结构框图如图 2.5 所示。 DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,元件封装如图 2.6 所示。 C 64 位 ROM 和 单 线 接 口 高 速 缓 存 存储与控制逻辑 温度传感器 高温触发器 TH 低温触发器 TL 配置寄存器 8 位 CRC 发生器 Vdd 图 2.5 DS18B20 内部结构 I/O 基于单片机电子温度计的设计与实现 8 图 2.6 DS18B20 的封装形式 64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共 有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进 行通信的原因。温度报警触发器 TH 和 TL,可通过软件写入户报警上下限。 图 2.7 DS18B20 字节定义 DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电 擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 2.7 所示。头 2 个字 节包含测得的温度信息,第 3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位 时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 2.7 所示。低 5 位一直为 1,TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测 试模式,DS18B20 出厂时该位被设置为 0,用户要去改动,R1 和 R0 决定温度转换的精 度位数,来设置分辨率。 由表 2.2 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度 数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 配置寄存器 保留 保留 保留 CRC TM R1 1R01111 . . . 基于单片机电子温度计的设计与实现 9 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通 过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 0.0625LSB 形式表示。 当符号位 S=0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制; 当符号位 S=1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数 值。表 2 是一部分温度值对应的二进制温度数据。 表 2.2 DS18B20 温度转换时间表 R1R0分辨率/位温度最大转向时间/ms 00993.75 0110187.5 1011375 1112750 DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。 若 TTH 或 TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出 响应。因此,可用多只 DS18B20 同时测量温度并进行报警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC) 。主机 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的 ROM 数据是 否正确。 DS18B20 的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响 很小,用于产生固定频率的脉冲信号送给减法计数器 1;高温度系数晶振随温度变化其 振荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入。器件中还有一个计 数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数进而 完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 55所对应的一个基数分别置入减法计数器 1、温度寄存器中,计数器 1 和温度寄存 器被预置在55所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 基于单片机电子温度计的设计与实现 10 的预置值减到 0 时,温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法 计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计 数器计数到 0 时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。 其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到 温度寄存器值大致被测温度值。 表 2.3 一部分温度对应值表 温度/二进制表示十六进制表示 +1250000 0111 1101 000007D0H +850000 0101 0101 00000550H +25.06250000 0001 1001 00000191H +10.1250000 0000 1010 000100A2H +0.50000 0000 0000 10000008H 00000 0000 0000 00000000H -0.51111 1111 1111 1000FFF8H -10.1251111 1111 0101 1110FF5EH -25.06251111 1110 0110 1111FE6FH -551111 1100 1001 0000FC90H 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读 写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为:初使化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。 2.1.4 时钟电路 1. DS1302 是 DALLAS 公司推出的串行接口实时时钟芯片。它既提供实时时钟, 又把关键的数据位存储于RAM。芯片使用简单,外部连线少,在智能化仪表及自动控制 领域具有广泛用途。其主要特点是: 基于单片机电子温度计的设计与实现 11 (1)简单的三线串行 I/O 接口; (2)2.55.5V 的电压工作范围(在 2.5V 工作时耗电小于 300nA); (3)与 TTL 兼容(Vcc=5V)时; (4)实时时钟包括秒、分、小时、日、月、星期和年(闰年)等信息; (4)31*8 静态 RAM 可供用户使用; (5)可选的涓流充电方式; (6)工作电源和备份电源双引脚输入; (7)备份电源可由大容量电容来替代。 电源 控制 输入移位 寄存器 实时时钟 命令与控 制逻辑 振荡器与 分频器 1cc V 2cc V GND 318 RAM OI / SCLK DATABUS RST 图2.8 DS1302管脚图及内部结构图 表2.4 DS1302引脚功能表 引脚号引脚名称功能 1Vcc主电源 2、3X1、X2振荡源,外接32768HZ晶振 4GND地线 5RST复位/片选线 基于单片机电子温度计的设计与实现 12 6I/O串行数据输入/输出端(双向) 7SCLK串行数据输入端 8Vcc后备电源 图2.8和表2.4分别是DS1302的引脚功能表及内部结构图和引脚功能表。 2 操作及控制 (1) 复位和时钟控制 向 DS1302 写入数据时,数据应在时钟下降沿发生变化,上升沿将数据写入 DS1302 内部移位寄存器。 读取 DS1302 数据时,数据也在时钟下降沿变化,即在下降沿数据从移位寄存器 输出,但当 CLK 时钟为正半周时,I/O 线为高阻态,所以应在上升沿前读取,否则将 读出全为 FFH。 通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通 控制逻辑,允许地址命令序列送入移位寄存器;其次,提供了终止单字节或多字节 数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操 作。如果在传送过程中置为低电平,则会终止此次数据传送,并且 I/O 引脚变为高阻 态。上电运行时,在 Vcc2.5V 之前,必须保持低电平。只有在 SCLK 为低电平时, 才能将 RST 置为高电平。 (2)DS1302 的控制字节 DS1302 的控制字如表2.5 所示。控制字节的最高有效位(位 7)必须是逻辑 1 如 果它为 0,则不能把数据写入 DS1302 中,位 6 如果为 0,则表示存取日历时钟数据, 为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示 要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。 1RAM CK A4A3A2A1A0RAM K 基于单片机电子温度计的设计与实现 13 表 2.5 DS1302的控制字节 数据输入输出(I/O)在控制指令字输入后的下一个 SCLK 的时钟的上升沿时数据 被写入 DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的 下一个 SCLK 脉冲的下降沿读出 DS1302的数据,读出数据时从低位 0 开始到高位 7。 (3)DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位 为 BCD 码形式,其日历、见表2.6,DS1302 日历、时钟寄存器及其控制字。 表2.6 时间寄存器及其控制字 命令字各位内容寄存器名 写操作读操作 取值范围 76543210 秒寄存器80H81H00-59CH10SECSEC 分钟寄存器82H83H00-59010MINMIN 小时寄存器84H85H01-12或00-2312/24010/APHRHR 日期寄存器86H87H01-28,29,30,310010DATADATA 月份寄存器88H89H01-1200010MMONTH 周日寄存器8AH8BH01-0700000DAY 年份寄存器8CH8DH00-9910YEARYEAR 表中 12 或 24 小时的方式选择位,当为 1 时,选择 12 小时。有 AP 那位是上 午和下午的选择位,当为1 是表示为下午。CH 是暂停位,当 CH=1 时,时钟振荡停止, 器件被置入低功率备份方式,其电源电流小于 100NA,当 CH=0 时,时钟启动。 片内 2 个控制用的寄存器各位定义如下: 寄存器的名称 寄存器的地址D7 D6 D5 D4 D3 D2 D1 D0 写保护寄存器 07H WP 0 0 0 0 0 0 0 慢速充电寄存器 08H TCS TCS TCS TCS TCS TCS TCS 表中 WP 时写保护位。在对时钟或 RAM 进行写操作前 WP 必须为 0,否则不可写 入,在读操作时总是读出 0。当 WP=1 时,可防止对任何寄存器进行写操作。此外, 基于单片机电子温度计的设计与实现 14 DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关 的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元 组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写 操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 (4)数据输入输出 在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入 从低位即位0 开始。同样,在紧跟 8 位的控制指令字后的下一个SCLK脉冲的下降沿读 出DS1302 的数据,读出数据时从低位 0 位至高位 7,数据读写时序见图2.9。 10A1A2A 4A WR/CR/ 3A 图2.9 数据读写时序 如果命令字节中的寻址位 A0A4 均为 1,可以把时钟/日历或 RAM 存储器规 定为多字节方式。当命令字节为 FFH 或 FEH,可以对片内 31 字节 RAM 进行读/写操 作;当命令字节为 BFH 或 BEH 时,可对 8 个时钟/日历寄存器进行读/写操作,在时 钟/日历寄存器中的地址 9-31 或 RAM 存储器中的地址 31 均不能使用。在多字节方 式中读或写都是从地址 0 的第 0 位开始。当以多字节方式写时钟/日历寄存器时,必 须按传送是次序写满 8 个寄存器;但是,当以多字节方式写 RAM 时,根据发送的要 求,数据不必写入所有 31 字节。不管是否写入全部 31 字节,所写的字节都将传入 送至 RAM。 另外,应注意在写操作时,CLK 的每一个时钟上升沿,I/O 引线将为高阻 态,数据必须在 CLK 上升沿前读取。 2.1.5 按键调时电路 此系统调时输入是通过独立式键盘来完成的。由于STC89C51单片机的八位I/O口足 基于单片机电子温度计的设计与实现 15 以能实现控制时间输入输出,并且独立式键盘的编程容易易懂,结构简单,实现起来 方便,而且每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,所以采 用独立式键盘。采用P2.0-P2.3口的四个独立按键,可以P2.0可实现对时间的调节, P2.1、P2.2实现时间的加一,减一的功能,P2.3实现调节时间返回。如图2.10所示。 图2.10 四个调试按键 当用手按下一个键时,如图 2.11 所示,往往按键在闭合位置和断开位置之间跳几 下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。 抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很容易想到, 抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题, 这就是通过延迟 10ms 来等待抖动消失,这之后,在读入键盘码。 键按下 前沿抖动后沿抖动 闭合 稳定 基于单片机电子温度计的设计与实现 16 图 2.11 键抖动信号波形 2.1.6 报警电路 当温度超过设置的上下限时,这里用的是控制P1.3口低高电平交错。发光二极管 会间断的闪烁报警。如图2.12所示 图2.12 发光二极管报警电路 2.2 DS18B20 温度传感器与单片机的接口电路 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚 接地,2 脚作为信号线,3 脚接电源,如图 2.13 所示。另一种是寄生电源供电方式, 单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用 一个 MOSFET 管来完成对总线的上拉。 当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉, 上拉开启时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于单线制只有一 基于单片机电子温度计的设计与实现 17 根线,因此发送接口必须是三态的。 图 2.13 温度传感器与单片机接口电路 2.3 DS1302 与单片机的接口电路 DS1302与单片机如图2.14所示,其中2、3管脚外加晶振(32.768KHz),5、6、7 管脚分别接在P1.5、P1.7、P1.6上,管脚1、8为电源(8为后备电源),4管脚接地 ds1302采用双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七 个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等 基于单片机电子温度计的设计与实现 18 图 2.14 ds1302 与单片机接口电路 2.4 LCD1602 与单片机的接口电路 LCD1302 与单片机接口采用 P0.0-P0.7 做数据输入输出,采用 P2.5、P2.6、P2.7 做控制,其如图 2.15 所示 图 2.15 LCD1602 与单片机接口电路 基于单片机电子温度计的设计与实现 19 第 3 章 系统软件电路编程 系统软件算法分析系统软件算法分析 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子 程序,时钟电路子程序,显示数据刷新子程序等。 3.1 主程序 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温 度值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程 见图 3.1 所示 初始化 调用显示子程序 1S 到? 初次上电 读出温度值温 度计算处理显 示数据刷新 发温度转换开始命令 N Y N Y Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作,CRC 校验 9 字节完? CRC 校验正? 确? 移入温度暂存器 结束 N N Y 基于单片机电子温度计的设计与实现 20 发 DS18B20 复位命 令 发跳过 ROM 命令 发温度转换开始命令 结束 图 3.1 主程序流程图 图 3.2 读温度流程图 3.2 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验, 校验有错时不进行温度数据的改写。其程序流程图如图 3.2 示 图 3.3 温度转换流程图 3.3 温度转换命令子程序 温度转换命令子程序主要序是发温度转换开始命令,当采用 12 位分辨率时转换时 间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。温度转换命 令子程序流程图如上图,图 3.3 所示 基于单片机电子温度计的设计与实现 21 3.4 计算温度子程序 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判 定,其程序流程图如图 3.4 所示。 图 3.4 计算温度流程图 图 3.5 显示数据刷新流程图 3.5 显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显 示位为 0 时将符号显示位移入下一位。程序流程图如图 3.5。 开始 温度零下? 温度值取补码置“” 标志 计算小数位温度 BCD 值 计算整数位温度 BCD 值 结束 置“+”标 志 N Y 温度数据移入显示寄存器 十位数 0? 百位数 0? 十位数显示符号百位 数不显示 百位数显示数据 (不显示符号) 结束 N N Y Y 基于单片机电子温度计的设计与实现 22 第 4 章 软件仿真与调试及 PCB 板的制作 4.1 顶层电路图 根据电子温度计功能要求,将控制电路分成六个小模块,每个模块分别对应一种 功能。最后利用 keil 编程软件编写程序,用 Proteus 仿真。电路图如图 4.1 所示。 电路总原理图 图 4.3 设计的硬件连接图 基于单片机电子温度计的设计与实现 23 4.2 调试结果 该系统调试成功,可以调节温度计,液晶显示温度也随之变化,调试按键能很好 的调节液晶显示的日期,时间。 基于单片机电子温度计的设计与实现 24 4.3 PCB 板的制作 用 Proteus 制作 PCB 板包括以下一些步骤:(1)绘制电路原理图并仿真调试; (2)加载网络表及元件封装;(3)规划电路板并设置相关参数;(4)元件布局及调 整;(5)布线并调整;(6)输出及制作 PCB。 图 6.1 温度计的设计电路 基于单片机电子温度计的设计与实现 25 4.3.1 绘制电路原理图并仿真调试 在 Proteus 7 Professional 中用 ISIS 7 Professional 设计好电路原理图,并 结合 Keil C51 进行软件编程和硬件的仿真调试,调试成功后,便可开始制作 PCB。 (在 4.2 节已经做过其电路图如图 6.1 所示) 4.3.2 加载网络表及元件封装 图 6.2 ARES 6 Professional 窗口 (一)加载网络表 在 ISIS 7 Professional 界面中单击 Design Toolbar 中的图标或通过 Tools 菜单的 Netlist to ARES 命令打开 ARES 7 Professional 窗口如图 6.2 所示。可以看 到,在图 6.2 中左下角的元器件选择窗口中列出了从原理图加载过来的所有元器件。 若原理图中的某些器件没有自动加载封装或者封装库中没有合适的封装,那么在加载 网络表时就会弹出一个要求选择封装的对话框,如图 6.3 所示。这时就需要根据具体 的元件及其封装进行手动选择并加载。 基于单片机电子温度计的设计与实现 26 图 6.3 要求选择封装的对话框 图 6.4 完成后的按钮封装的设计 (二)设计元件封装 对于封装库中没有的封装或者是与实际的元件不符的封装,就需要自己画。那么, 在此电路中没有按钮的封装,这里要做按钮开关元件的封装。 1、放置焊盘 在图 6.2 所示的界面中根据按钮的引脚间距放置 2 个焊盘,并修改焊盘的标号, 使之与原理图中的元件引脚标号一致,否则,会弹出没有网络连接的错误提示,或者 加载后没有连线。 2、放置外边框 利用 2D 画图工具中的图标根据按钮的实际大小加一个外边框,如此便完成了 按钮封装的设计(如图 6.4 所示) 。 图 6.5 保存封装对话框 图 6.6 加载封装对话框 基于单片机电子温度计的设计与实现 27 3、保存封装 选中封装,用左键单击图标,出现保存对话框(如图 6.5 所示) ,在 New Package Name 中键入要保存的元件封装名称(在此用 KS) ;在 Package Category(保 存范畴)中选中 Miscellaneous;在 Package Type(封装类型)中选中 Through Hole;在 Package Su

温馨提示

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

评论

0/150

提交评论