毕业设计论文智能型数字温度计的设计.doc_第1页
毕业设计论文智能型数字温度计的设计.doc_第2页
毕业设计论文智能型数字温度计的设计.doc_第3页
毕业设计论文智能型数字温度计的设计.doc_第4页
毕业设计论文智能型数字温度计的设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计(论文) 题题 目:目: 智能型数字温度计的设计 学生姓名:学生姓名: 王蓓蓓 系系 别:别: 机械与电气工程系 专业年级:专业年级: 2011 级电气工程及其自动化专业 指导教师:指导教师: 何进 2013 年 6 月 20 日 中国石油大学胜利学院本科毕业设计(论文) 2 摘摘 要要 本文设计了一种多点温度数据进行采集显示系统,并对该系统的设计思路和整体 框架进行了分析。简要说明了系统的硬件构成,具体阐述了系统的软件流程。系统硬 件以低功耗、高性能的单片机 AT89C51 为核心,采用多个单总线数字温度传感器 DSl8B20 用于采集数据,并使用易于编程的 LCD1602 液晶屏用于显示。系统软件采 用汇编语言和 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 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 LCD1602 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 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 系统的总体结构.5 1.2 温度采集端硬件电路设计.5 1.2.1 数字式温度传感器 DSl8B205 1.2.2 温度采集端硬件连接图7 1.3 液晶显示电路设计.7 1.3.1 液晶显示器7 1.3.2 LCD1602 液晶显示电路连接图.9 第二章第二章 温度采集程序设计温度采集程序设计.10 2.1 DS18B20 的时序10 2.1.1 DS18B20 的复位时序.10 2.1.2 DS18B20 的读写时序.11 2.2 DS18B20 内部结构和指令12 2.2.1 DS18B20 内部结构.12 2.2.2 DS18B20 的指令表.13 2.3 温度测量程序.14 2.3.1 选择 DS18B20 函数14 2.3.2 获取 DS18B20 序列号程序15 2.3.3 DS18B20 测温程序.16 第三章第三章 液晶显示屏(液晶显示屏(LCD)显示程序设计)显示程序设计18 3.1 LCD 接口定义及操作时序18 3.1.1 LCD 接口定义.18 3.1.2 LCD 操作时序.19 3.2 LCD 内部结构及指令20 3.2.1 LCD 液晶模块内部结构.20 3.2.2 LCD 指令表和内部显示地址.21 3.3 LCD 初始化及读写数据23 中国石油大学胜利学院本科毕业设计(论文) 5 3.3.1 LCD 初始化.23 3.3.2 判断 LCD1602 是否处于忙状态24 3.3.3 写指令或显示数据到 LCD.25 3.4 LCD1602 显示程序设计28 3.4.1 设定显示位置28 3.4.2 液晶显示程序29 第四章第四章 系统测试系统测试.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 中国石油大学胜利学院本科毕业设计(论文) 6 前 言 随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度 检测和显示系统应用于诸多领域。温度作为一个重要的物理量,随着工业的不断发展, 对温度测量的要求越来越高,而且测量的范围也越来越广,对温度的检测技术的要求 也越来越高。 随着微电子技术、计算机技术和自动测试技术的发展,人们开发出将温度传感器 和数字电路集成在一起的新型数字式集成温度传感器。传统的温度检测以热敏电阻为 温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差。 测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温 度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。 此次设计采用低功耗、高性能单片机 AT89C51、单总线数字式测温器件 DS18B20 以及 LCD1602 液晶显示器构成测温系统。通过 DSl8820 直接读取被测温度 值,进行数据转换,该器件的物理化学性能稳定,线性度较好,最大线性偏差小于 0.1。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计 还能直接采用测温器件测量温度。从而简化数据传输与处理过程。 中国石油大学胜利学院本科毕业设计(论文) 7 第 1 章 系统硬件设计 1.1 系统的总体结构 本论文提出的多点温度采集,由温度传感器、微处理器和温度显示模块组成,微 处理器命令温度传感器采集数据,然后从传感器中读取数据,数据经过处理后送入温 度显示模块进行显示。系统硬件结构图如图 1.1。 图 1.1 系统硬件结构图 1.2 温度采集硬件电路设计 1.2.1 数字式温度传感器 DSl8B20 DSl8B20 是美国 DALLAS 公司推出的数字式温度传感器,全部传感组件及转换 电路集成在一个三极管的集成电路中。 目前常用的微机与外设之间进行数据传输的串行总线主要有 IC 总线、SPI 总线 和 SCI 总线5-6。这些总线至少需要两条或两条以上的信号线。近年来,美国 DALLAS 半导体公司开发了一种新技术即单总线技术。它采用单根信号线完成数据的 双向传输,并且可以通过该信号线为单总线器件提供电源。它具有节省 I0 口线资 源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,适用于远距离、多点测 试、集中控制、现场缺电等场合。 信息经过单线接口送入 DSl8B20 或从 DSl8B20 送出,因此从中央处理器到 DSl8B20 仅需连接一条线。读、写和完成温度变换所需的电源可以由数据线本身提供, 中国石油大学胜利学院本科毕业设计(论文) 8 而不需要外部电源。 DSl8B20 支持“一线总线”接口,测量温度范围为-55+125,在-10+85 范围内,精度为051。现场温度直接以“单总线”的数字方式传输,大大提高了系 统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、 测温类消费电子产品等。 1.DSl8B20 特性: (1) 先进的单总线数据通信。 (2) 全数字温度转换及输出。 (3) 最高 12 位分辨率,精度可达土 0.5 摄氏度。 (4) 12 位分辨率时的最大工作周期为 750 毫秒。 (5) 全数字温度转换及输出。 (6) 测温范围从-55+125,增量值为 05。 (7) 可选择寄生工作方式。 (8) 检测温度范围为55C +125C (67F +257F) (9) 内置 EEPROM,限温报警功能。 (10) 64 位光刻 ROM,内置产品序列号,方便多机挂接。 (11) 多样封装形式,适应不同硬件系统。 2.DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。 DS18B20 的引脚排列如下: (1) DQ 为数字信号输入/输出端。 (2) GND 为电源地。 (3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。 3.DS18B20 使用中注意事项: DSl8B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, 但在实际应用中也应注意以下几方面的问题: (1) 较小的硬件开销需要相对复杂的软件进行补偿,由于 DSl8B20 与微处理器间 采用串行数据传送,因此,在对 DSl8B20 进行读写编程时,必须严格的保证读写时序, 否则将无法读取测温结果。在使用 PL/M、C 等高级语言进行系统程序设计时,对 中国石油大学胜利学院本科毕业设计(论文) 9 DSl8B20 操作部分最好采用汇编语言实现。 (2) 在 DSl8B20 的有关资料中均未提及单总线上所挂 DSl8B20 数量问题,容易使 人误认为可以挂任意多个 DSl8B20,在实际应用中并非如此。当单总线上所挂 DSl8B20 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温 系统设计时要加以注意。 (3) 连接 DSl8B20 的总线电缆是有长度限制的。当将总线电缆改为双绞线带屏蔽 电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时, 正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成 的。因此,在用 DSl8B20 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗 匹配问题。 (4) 在 DSl8B20 测温程序设计中,向 DSl8B20 发出温度转换命令后,程序总要等 待 DSl8B20 的返回信号,一旦某个 DSl8B20 接触不好或断线,当程序读该 DSl8B20 时,将没有返回信号,程序进入死循环。 1.2.2 温度采集端硬件连接图 系统的温度采集端完成多点温度采集,使用数字式温度传感器 DS18B20。由于 DS18B20 具有单总线特点,可以在单片机的一个 I/O 口上并接多个温度传感器,节省 I/0 口线。硬件连接图如图 1.2 所示。 1 2 3 DS18B20_0 Header 3 1 2 3 DS18B20_1 Header 3 1 2 3 DS18B20_2 Header 3 1 2 3 DS18B20_3 Header 3 VCCVCCVCCVCCVCC 4K7 R2 Res2 DS18B20 图 1.2 温度采集端硬件连接原理图 1.3 液晶显示电路设计 1.3.1 液晶显示器 液晶显示模块具有体积小,功耗低,显示内容丰富,超薄轻巧等优点,在袖珍式 仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应 中国石油大学胜利学院本科毕业设计(论文) 10 用设计中最常用的信息显示器件。本设计选用的是 LCDl602 液晶显示模块,它可以显 示两行,每行 16 个字符,采用单+5V 电源供电,外围电路配置简单,价格便宜,具 有很高的性价比7。 在单片机系统中应用液晶显示器作为输出器件有以下几个优点:显示质量高、数 字式接口、体积小、重量轻、功耗小。 1.液晶显示原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电 就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路 直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄 像机等众多领域。 2.液晶显示器的分类 液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式 等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分, 可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动 (Active Matrix)三种。 3.液晶显示器图形的显示原理 (1)线段的显示 点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128 列,每 8 列对应 1 字节的 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”的不亮。这样一来就组成某个字符。但由 中国石油大学胜利学院本科毕业设计(论文) 11 于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本 方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设 立光标,在此送上该字符对应的代码即可。 1.3.2 LCD1602 液晶显示电路连接图 V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高, 对比度过高时会产生鬼影,使用时可以通过一个 10K 的电位器调整对比度。 RS:寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。 RW:读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 RW 共同为低电平时,可以写入指令或者显示地址,当 RS 为高电平,RW 为低 电平时可以写入数据。 E:使能端,当 E 端由高电平跳变成低电平时,液晶模块执行行命令。 液晶显示电路连接图如图 1.3。 图 1.3 LCD1602 与单片机的硬件连接图 LCD1602 的数据总线接到单片机的 P3 口,RS、RW 和 E 分别由单片机的 P1.5、P1.6 和 P1.7 控制。液晶 LCD1602 连线方便,编程简单,适于在单片机应用设 计。 中国石油大学胜利学院本科毕业设计(论文) 12 第 2 章 温度采集程序设计 2.1 DS18B20 的时序 由于 DS18B20 采用的是 1Wire 总线协议方式,即在一根数据线实现数据的双 向传输,而对 AT89C51 单片机来说,硬件上并不支持单总线协议,因此,我们必须 采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。 由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时 序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议 定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主 设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时 序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数 据接收。数据和命令的传输都是低位在先。 2.1.1 DS18B20 的复位时序 DS18B20 的复位时序如图 2.1 所示,主机发出复位脉冲,DS18B20 的单总线即 (DQ)接收到高电平,最少 480us,最多 960us。主机将 DQ 拉低,延时大于 480us, 然后 DS18B20 发出应答脉冲,DQ 为 0 复位成功,否则失败,继续复位。 主机发出复位脉冲 min:480us max:960us 主机接收所需最短时间 480us DS18B20 发出 应答脉冲 15 60 us DQ GND 图 2.1 DS18B20 的复位时序 2.1.2 DS18B20 的读写时序 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程,如图 2.2 所示。 中国石油大学胜利学院本科毕业设计(论文) 13 DS18B20 的读时隙是从主机把单总线拉低之后,在 15us 之内就得释放单总线, 以让 DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要 60us 才能完成。 主机读 0 或读 1 时隙 DQ GND 主 CPU 采样 1us 15us15us30us 图 2.2 DS18B20 的读时序 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程如图 2.3 和 2.4。 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至 少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“0”电平, 当要写 1 时序时,单总线被拉低之后,在 15us 之内就得释放单总线。 主机写 0 时隙 60120usDQ GND DS18B20 采样 1us 15us15us30us 1us 图 2.3 DS18B20 的写 0 时序 中国石油大学胜利学院本科毕业设计(论文) 14 主机写 1 时隙 60120us DQ GND DS18B20 采样区 1us 15us15us30us 图 2.4 DS18B20 写 1 时序 2.2 DS18B20 内部结构和指令 2.2.1 DS18B20 内部结构 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的 温度报警触发器 TH 和 TL、配置寄存器14。 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的 地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码 (CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就 可以实现一根总线上挂接多个 DS18B20 的目的。 DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号 扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。见 表 2.1。 表 2.1 温度值存放格式 bit7bit6bit5bit4bit3bit2bit1bit0LS Byte 2 3 2 2 2 1 2 0 2 1 2 2 2 3 2 4 bit15bit14bit13bit12bit1 1 bit10bit9bit8MS Byte SSSSS 2 6 2 5 2 4 中国石油大学胜利学院本科毕业设计(论文) 15 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制 中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘 于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可 电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。用户还 可根据实际情况设定非易失性温度报警上下限值 TH 和 TL。DS18B20 检测到温度值 经转换为数字量后,自动存入存储器中,并与设定值 TH 或 TL 进行比较,当测量温 度超出给定范围时,就输出报警信号,并自动识别是高温超限还是低温超限。 高速暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字 节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是 TH、TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容 在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余 检验字节。 2.2.2 DS18B20 的指令表 在编程过程中需要给单总线写入命令,如常用的启动温度转换,读出 DS18B20 的序列号,匹配 ROM 以选定温度传感器。表 2.2 和表 2.3 中是常用的 ROM 和 RAM 指令。 表 2.2 ROM 指令表 指 令约定代码功 能 读 ROM33H读 DS1820ROM 中的编码(即 64 位地址) 符合 ROM55H 发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与 该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读 写作准备。 搜索 ROM0F0H 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。 跳过 ROM0CCH 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用 于单片工作。 告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。 中国石油大学胜利学院本科毕业设计(论文) 16 表 2.3 RAM 指令表 指 令约定代码功 能 温度变换44H 启动 DS1820 进行温度转换,转换时最长为 500ms(典型为 200ms) 。结果存入内部 9 字节 RAM 中。 读暂存器0BEH内部 RAM 中 9 字节的内容 写暂存器4EH 发出向内部 RAM 的 3、4 字节写上、下限温度数据命令,紧跟 该命令之后,是传送两字节的数据。 复制暂存器48H将 RAM 中第 3、4 字节的内容复制到 EEPROM 中。 2.3 温度测量程序 2.3.1 选择 DS18B20 函数 每一个 DS18B20 在出厂时就有一个特有的序列号,所以在访问它的时候,会进 行序列号的匹配,匹配正确,可以对它进行读写,否则不可以。如果在一定的条件下, 写入 Skip ROM 命令(写入 0xcc) ,默认情况下跳过匹配过程。 当单总线上接多个 DSl8B20 时,用各个芯片的 ID 号选中特定的芯片进行操作。 如果己经获得 ID 号,则先发送寻求匹配命令(OX55H),再发送 ID 号,选中特定的 DSl8B20。 uchar code id48= , /* 保存已有 18b20ID */ , ; /* *选择 ds18b20 */ void selectedDq(uchar select) uchar i; if(select3) writeByte(0xcc); /默认状况下 Skip ROM 中国石油大学胜利学院本科毕业设计(论文) 17 else writeByte(0x55); / matchROM for(i=0;i1.64ms */ wrLCDCmd(FUNC) ; /* 功能设置 */ delay_11us(5); /* 延时40us */ wrLCDCmd(DISP) ; /* 显示设置 */ delay_11us(5); /* 延时40us */ wrLCDCmd(MODE) ; /* 输入模式设置 AC 自动加 1 */ delay_11us(5); /* 延时40us */ wrLCDCmd(CLEAR); /* 清屏 */ delay_11us(200); /* 延时1.64ms */ 中国石油大学胜利学院本科毕业设计(论文) 26 开始 清屏 延时1.64ms 输入模式设置 AC 自动加 1 延时40us 清屏 延时1.64ms 结束 功能设置 延时40us 显示设置 延时40us 图 3.4 LCD 初始化设定流程图 3.3.2 判断 LCD1602 是否处于忙状态 bit isLCDBusy(void) bit isBusy ; LCD_RS = 0 ; /* 控制寄存器选择*/ LCD_RW = 1 ; /* 读操作 */ 中国石油大学胜利学院本科毕业设计(论文) 27 LCD_EN = 1 ; /* 高电平读 */ delay_11us(1); isBusy = LCD_BF; /* 读 LCD 的 BF 位 */ LCD_EN = 0; /* LCD 使能端赋 0 */ return isBusy; /* 返回 isBusy 的值 */ 判断 LCD1602 是否处于忙状态流程图如图 3.5。 开始 RS=0,选指令寄存器 RW=1,读操作 LCD_EN=1,读 读 LCD 的 BF 位 LCD_EN=0 返回 isBusy 的值 结束 图 3.5 判断 LCD1602 是否处于忙状态流程 图 3.3.3 写指令或显示数据到 LCD void wrLCDCmd(uchar cmd) while(isLCDBusy(); /* LCD 空闲时执行下一句 */ LCD_RS = 0 ; /* 控制寄存器选择*/ LCD_RW = 0 ; /* 写操作 */ LCD_EN = 0 ; /* LCD 使能端赋 0 */ 中国石油大学胜利学院本科毕业设计(论文) 28 LCD_DB = cmd ; /* 输出命令 */ delay_11us(1); LCD_EN = 1 ; /* LCD 使能*/ delay_11us(2); LCD_EN = 0 ; /* 下降沿写数据 */ 写指令数据到 LCD,等其空闲时,选择命令寄存器,操作为写操作,EN 为 0, 输出命令,LCD 使能,等下降沿到来写数据。流程图见图 3.6。 开始 LCD 忙? RS=0,选指令寄存器 RW=0,写操作 LCD_EN=0 输出命令,指令数据 LCD_EN=1,使能 EN=0,下降沿写数据 结束 N Y 图 3.6 写指令数据到 LCD 流程 图 void wrLCDDat(uchar dat) while(isLCDBusy(); /* LCD 空闲时执行下一句 */ 中国石油大学胜利学院本科毕业设计(论文) 29 LCD_RS = 1 ; /* 数据寄存器选择 */ LCD_RW = 0 ; /* 写操作 */ LCD_EN = 0 ; /* LCD 使能端赋 0 */ LCD_DB = dat ; /* 输出命令 */ delay_11us(1); LCD_EN = 1 ; /* LCD 使能*/ delay_11us(2); LCD_EN = 0 ; /* 下降沿写数据 */ 写显示数据到 LCD 流程图见图 3.7。 开始 LCD 忙? RS=1,选数据寄存器 RW=0,写操作 LCD_EN=0 输出命令,显示数据 LCD_EN=1,使能 EN=0,下降沿写数据 结束 N Y 图 3.7 写显示数据到 LCD 流程图 中国石油大学胜利学院本科毕业设计(论文) 30 3.4 LCD1602 显示程序设计 3.4.1 设定显示位置 void setAddrLCD(uchar pos) wrLCDCmd(pos | 0x80) ; /* 数据指针=80+地址变量 */ delay_11us(5); /* 延时40us */ 注意:因为写入显示地址时要求最高位 D7 恒定为高电平 1,所以实际写入的数 据应该是地址变量+10000000B(80H)。 3.4.2 液晶显示程序 LCD 显示内容,先设置显示位置,即可将欲显示的内容显示在屏幕上。依次,先 设第一行,然后第二行。LCD 显示流程图见图 3.8。 void dispLCD(void) uchar m; setAddrLCD(0x00); /* 设置第一行*/ for(m=0;m1.64ms 结束 设置第一行显示位置 显示第一行 设置第二行显示位置 显示第二行 图 3.8 LCD 显示流程图 中国石油大学胜利学院本科毕业设计(论文) 32 第四章 系统测试 4.1 工具介绍 在单片机系统的开发中通常用到两个工具:Keil 和 Protues。前者用于编写单片机 程序,并编译连接生成目标文件。而 Protues 则模拟了 MCU 的运行,比较直观的显示 程序的运行结果。 4.1.1 软件设计的调试环境 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系 统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因 而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻13。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发 大型软件时更能体现高级语言的优势。 Keil C51 单片机软件开发系统的整体结构中 uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真 等整个开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然 后分别由 C51 及 A51 编译器编译生成目标文件(.OBJ)。目标文件可由 LIB51 创建 生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由 OH51 转换成标准的 Hex 文件, 以供调试器 dScope51 或 tScope51 使用进 行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存 贮器如 EPROM 中。 4.1.2 程序仿真环境 Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有 其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真 单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事 单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著 名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真, 中国石油大学胜利学院本科毕业设计(论文) 33 一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将 电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型 支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等, 2010 年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编 译方面,它也支持 IAR、Keil 和 MPLAB 等多种编译。 4.2 程序仿真结果 4.2.1 LCD 测试程序 在嵌入式系统编程的时候,LCD 显示程序尤其重要,通过图 4.1 可以看出, LCD1602 能够正常显示我们想显示的内容。 图 4.1 LCD 测试程序 4.2.2 单 DS18B20 温度传感器温度测试程序 图 4.2.2 是对 DS18B20 进行测试,温度传感器能够正常工作,液晶显示的温度 和传感器的温度相同。 中国石油大学胜利学院本科毕业设计(论文) 34 图 4.2 单 DS18B20 温度传感器温度测试程序 4.2.3 DS18B20 传感器 ID 读取程序 当单总线挂载多个 DS18B20 时,51 单片机要读取特定温度计的温度,必须首先 确定 DS18B20 的 ID,图 4.3 中,LCD1602 液晶以 16 进制形式成功显示了 DS18B20 的 8 字节 ID: 中国石油大学胜利学院本科毕业设计(论文) 35 图 4.3 DS18B20 传感器 ID 读取程序 4.2.4 单总线多个 DS18B20 显示程序 图 4.4 显示了单总线挂载多个 DS18B20 传感器的温度测量程序,LCD1602 液晶 会逐个显示每个传感器的温度。 中国石油大学胜利学院本科毕业设计(论文) 36 图 4.4 单总线多个 DS18B20 显示程序 中国石油大学胜利学院本科毕业设计(论文) 37 总结 通过这段时间的学习和研究,我基本按计划完成了本次课题的设计内容。这次课 题设计的经历将使我终生受益,因为我从中学习了很多知识。 本系统以 AT 单片机作为主控芯片,采用数字式温度传感器 DSl8B20,并利用其 特有的单总线特性组成传感器网络,应用液晶 1602 作为人机交互界面,实现多点

温馨提示

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

最新文档

评论

0/150

提交评论