1、 本科生毕业设计(论文) 题 目: 智能型数字温度计的设计 学生姓名: 系 别: 机械与电气 工程系 专业年级: 2011 级电气工程及其自动化专业 指导教师: 2013 年 6 月 20 日 中国石油大学胜利学院本科毕业设计 (论文 ) 2 摘 要 本文设计了一种多点温度数据 进行 采集 显示系统 , 并 对 该 系统的设计思路和整体框架进行了分析。简要说明了系统的硬件构成,具体阐述了系统的软件流程。 系统硬件 以低功耗、高性能的单片机 AT89C51 为核心 ,采用多个 单总线数字温度传感器DSl8B20 用于采集数据,并使用 易于编程的 LCD1602 液 晶屏用于显示 。 系统软件采用
2、汇编语言和 C 语言混合编程实现。单片机首先选取特定的传感器,并从中读取温度数据,然后处理数据,最后将温度送入液晶屏显示。程序 设计完成后进行了调试,所设计的程序完全满足要求,可以投入实际应用。 关键词 : 温度; AT89C51; DS18B20;液晶屏 1602 中国石油大学胜利学院本科毕业设计 (论文 ) 3 Abstract This article designs a new multiple temperature collecting and display system, and makes detailed designing ideas and general frame
3、of muti-temperature collection and transmission system. It elaborates the software and expounds the hardware briefly. System hardware with low-power, high-performance AT89C51 microcontroller as the core, the use of multiple 1-wire digital temperature sensors DSl8B20 for data collection and use LCD16
4、02 which is easy programming for display.System software using hybrid programming of assembly language and C language.First, MCU selects a specific sensor and reads temperature data, then process the data, and finally send the temperature into the LCD to display. The program has been debugged after
5、designation. The program can come up to the expectation completely, which can be used in practical application. Keywords: Temperature ; AT89C51 ; DS18B20 ; LCD 1602中国石油大学胜利学院本科毕业设计 (论文 ) 目 录 前 言 . 4 第 一 章 系统硬件设计 . 5 1.1 系统的总体结构 . 7 1.2 温度采集端硬件 电路设计 . 7 1.2.1 数字式温度传感器 DSl8B20 . 7 1.2.2 温度采集端硬件连接图 . 9
6、 1.3 液晶显示电路设计 . 9 1.3.1 液晶显示器 . 9 1.3.2 LCD1602 液晶显示电路连接图 . 11 第 二 章 温度采集程序设计 . 12 2.1 DS18B20 的时序 . 12 2.1.1 DS18B20 的复位时序 . 12 2.1.2 DS18B20 的读写时序 . 12 2.2 DS18B20 内部结构和指令 . 14 2.2.1 DS18B20 内部结构 . 14 2.2.2 DS18B20 的指令表 . 15 2.3 温度测量程序 . 16 2.3.1 选择 DS18B20 函数 . 16 2.3.2 获取 DS18B20 序列号程序 . 17 2.3.
7、3 DS18B20 测温程序 . 18 第三章 液晶显示屏( LCD)显示程序设计 . 20 3.1 LCD 接口定义及操作时序 . 20 3.1.1 LCD 接口定义 . 20 3.1.2 LCD 操作时序 . 21 3.2 LCD 内部结构及指令 . 22 3.2.1 LCD 液晶模块内部结构 . 22 3.2.2 LCD 指令表和内部显示地址 . 23 3.3 LCD 初始化及读写数据 . 25 中国石油大学胜利学院本科毕业设计 (论文 ) 5 3.3.1 LCD 初始化 . 25 3.3.2 判断 LCD1602 是否处于忙状态 . 26 3.3.3 写指令或显示数据到 LCD . 2
8、7 3.4 LCD1602 显示程序设计 . 30 3.4.1 设定显示位置 . 30 3.4.2 液晶显示程序 . 30 第四章 系统测试 . 31 4.1 工具介绍 . 31 4.1.1 软件设计的调试环境 . 31 4.1. 2 程序仿真环境 . 31 4.2 程序仿真结果 . 32 4.2.1 程序仿真环境 . 32 4.2.2 单 DS18B20 温度传感器温度测试程序 . 32 4.2.3 S18B20 传感器 ID 读取程序 . 33 4.2.4 单总线多个 DS18B20 显示程序 . 34 总结 . 35 致谢 . 36 参考文献 . 37 中国石油大学胜利学院本科毕业设计
9、(论文 ) 6 前 言 随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。温度作为一个重要的物理量,随着工业的不断发展,对温度测量的要求越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高。 随着微电子技术、计算机技术和自动测试技术的发展,人们开发出将温度传感器和数字电路集成在一起的新型数字式集成温度传感器。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠 性相对较差。测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示
10、,适用范围宽等特点。 此次设计采用低功耗、高性能单片机 AT89C51、单总线数字式测温器件 DS18B20以及 LCD1602 液晶显示器构成测温系统。通过 DSl8820 直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好 ,最大线性偏差小于 0.1。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度。从而简化数据传输 与处理过程。 中国石油大学胜利学院本科毕业设计 (论文 ) 7 第 1 章 系统硬件设计 1.1 系统的总体结构 本论文提出的多点温度采集,由温度传感器、微处理器和温度显示模块组成,微处理器命令温度传感器采
11、集数据,然后从传感器中读取数据,数据经过处理后送入温度显示模块进行显示。系统硬件结构图如图 1.1。 图 1.1 系统硬件结构图 1.2 温度采集硬件电路设计 1.2.1 数字式温度传感器 DSl8B20 DSl8B20 是美国 DALLAS 公司推出的数字式温度传感器,全部传感组件及转换电路集成在一个三极管的集成电路中。 目前常用的微机与外设之间进行 数据传输的串行总线主要有 IC 总线、 SPI 总线和SCI 总线 5-6。这些总线至少需要两条或两条以上的信号线。近年来,美国 DALLAS 半导体公司开发了一种新技术即单总线技术。它采用单根信号线完成数据的双向传输,并且可以通过该信号线为单
12、总线器件提供电源。它具有节省 I 0 口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,适用于远距离、多点测试、集中控制、现场缺电等场合。 信息经过单线接口送入 DSl8B20或从 DSl8B20送出,因此从中央处理器到 DSl8B20仅需连接一条线。读、写和完成温度变换所需的 电源可以由数据线本身提供,而不需中国石油大学胜利学院本科毕业设计 (论文 ) 8 要外部电源。 DSl8B20 支持 一线总线 接口,测量温度范围为 -55 +125 ,在 -10 +85范围内,精度为 0 5 1。现场温度直接以 单总线 的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量
13、,如:环境控制、设备或过程控制、测温类消费电子产品等。 1.DSl8B20 特性: (1) 先进的单总线数据通信。 (2) 全数字温度转换及输出。 (3) 最高 12 位分辨率,精度可达土 0.5 摄氏度。 (4) 12 位分辨率时的最大工作周期为 750 毫秒。 (5) 全数字温度转换及输出。 (6) 测温范围从 -55 +125 ,增量值为 0 5 。 (7) 可选择寄生工作方式。 (8) 检测温度范围为 55C +125C (67F +257F) (9) 内置 EEPROM,限温报警功能。 (10) 64 位光刻 ROM,内置产品序列号,方便多机挂接。 (11) 多样封装形式,适应不同硬
14、件系统。 2.DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的引脚排列如下 : (1) DQ 为数字信号输入 /输出端。 (2) GND 为电源地。 (3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 3.DS18B20 使用中注意事项: DSl8B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1) 较小的硬件开销需要相对复杂的软件进行补偿,由于 DSl8B20 与微处理器间采用串行数据传送,因此,在对 DSl8B
15、20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用 PL/M、 C 等高级语言进行系统 程序设计时,对中国石油大学胜利学院本科毕业设计 (论文 ) 9 DSl8B20 操作部分最好采用汇编语言实现。 (2) 在 DSl8B20 的有关资料中均未提及单总线上所挂 DSl8B20 数量问题,容易使人误认为可以挂任意多个 DSl8B20,在实际应用中并非如此。当单总线上所挂 DSl8B20超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3) 连接 DSl8B20 的总线电缆是有长度限制的。当将总线电缆改为双绞线带屏蔽电缆时,正
16、常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这 种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用 DSl8B20 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4) 在 DSl8B20 测温程序设计中,向 DSl8B20 发出温度转换命令后,程序总要等待 DSl8B20 的返回信号,一旦某个 DSl8B20 接触不好或断线,当程序读该 DSl8B20 时,将没有返回信号,程序进入死循环。 1.2.2 温度采集端硬件连接图 系统的温度采集端完成多点温度采集,使用数字式温度传感器 DS18B20。由于DS18B20
17、 具有单总线特点,可以在单片机的 一个 I/O 口上并接多个温度传感器,节省I/0 口线。硬件连接图如图 1.2 所示。 123D S 1 8 B 2 0 _ 0H e a d e r 3123D S 1 8 B 2 0 _ 1H e a d e r 3123D S 1 8 B 2 0 _ 2H e a d e r 3123D S 1 8 B 2 0 _ 3H e a d e r 3V C C V C C V C C V C CV C C4 K 7R2R e s 2D S 1 8 B 2 0图 1.2 温度采集端硬件连接原理图 1.3 液晶显示电路设计 1.3.1 液晶显示器 液晶显示模块具有
18、体积小,功耗低,显示内容丰富,超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应中国石油大学胜利学院本科毕业设计 (论文 ) 10 用设计中最常用的信息显示器件。本设计选用的是 LCDl602 液晶显示模块,它可以显示两行,每行 16 个字符,采用单 +5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比 7。 在单片机系统中 应用液晶显示器作为输出器件有以下几个优点:显示质量高、数字式接口、体积小、重量轻、功耗小。 1.液晶显示原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液
19、晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机等众多领域。 2.液晶显示器的分类 液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等 。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动( Static)、单纯矩阵驱动( Simple Matrix)和主动矩阵驱动( Active Matrix)三种。 3.液晶显示器图形的显示原理 ( 1)线段的显示 点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128列,每 8 列对应 1 字
20、节的 8 位,即每行由 16 字节,共 168=128 个点组成,屏上 6416个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显 示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H00FH 的 16 字节的内容决定,当( 000H) =FFH 时,则屏幕的左上角显示一条短亮线,长度为 8 个点;当( 3FFH)=FFH 时,则屏幕的右下角显示一条短亮线;当( 000H) =FFH,( 001H) =00H,( 002H)=00H, ( 00EH) =00H,( 00FH) =00H 时,则在屏幕的顶部显示一条由 8 段亮线和 8 条暗线组成的虚线。这就是 LCD 显示的基本原理。 ( 2)字符的显示 用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组 成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为1,其它的为 0,为 1的点亮,为 0的不亮。这样一来就组成某个字符。但由于内