毕业设计(论文)基于单片机的实验室智能温度控制系统.doc

上传人:laozhun 文档编号:3980462 上传时间:2023-03-30 格式:DOC 页数:32 大小:445.50KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的实验室智能温度控制系统.doc_第1页
第1页 / 共32页
毕业设计(论文)基于单片机的实验室智能温度控制系统.doc_第2页
第2页 / 共32页
毕业设计(论文)基于单片机的实验室智能温度控制系统.doc_第3页
第3页 / 共32页
毕业设计(论文)基于单片机的实验室智能温度控制系统.doc_第4页
第4页 / 共32页
毕业设计(论文)基于单片机的实验室智能温度控制系统.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的实验室智能温度控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的实验室智能温度控制系统.doc(32页珍藏版)》请在三一办公上搜索。

1、 毕 业 论 文(设 计) 题 目:基于单片机的实验室智能温度控制系统 学 院:机电工程学院 班 级:08电气本(1)班 姓 名: 学 号: 指导老师: 摘 要 实验室及一些对温度极其敏感的大型公共场所,为达到对其温度的良好控制,本文从实用的角度以AT89C51为核心设计了一套温度智能控制系统。本文主要介绍基于AT89C51 单片机和DS18B20 数字温度传感器的温度测量系统。该系统利用AT89C51 单片机分别采集各个温度点的温度,实现温度显示、报警等功能。它以AT89C51 单片机为主控制芯片,采用数字温度传感器DS18B20 实现温度的检测,测量精度可以达到0.5。该系统采用了1602

2、 显示模块,形象直观的显示测出的温度值。 基于AT89C51 单片机的单总线温度测控系统具有硬件组成简单、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。 关键词:数字温度传感器;AT89C51 单片机;温度测量ABSTRACT Laboratory temperature is extremely sensitive to a number of large public places, in order to achieve good control of its temperature, from a practical point of view to AT89C51 a

3、s the core design of a temperature intelligent control system.This subject introduces the temperature measurement system based on AT89C51single-chip and DS18B20 digital temperature sensor. Adopting the AT89C51 single-chip-micro computer in the system to collected temperature from various temperature

4、 positions realizes the temperature display and alarm function. Applying AT89C51 single-chip microcomputer-based as main control chip, it realizes the muti-temperature testing by using of digital temperature sensor DS18B20, and measurement accuracy reaches to 0.5 . At the time the system uses a 1602

5、 display module to show the measured temperature values.Based on AT89C51 single-chip single-bus muti-point temperature measurement and control systems hardware assemble simply, reading data conveniently, high accuracy and widely temperature measuring, in the actual projects it is widely appliedKeywo

6、rds:digital temperature sensor;AT89C51 microcontroller; temperature measure目 录摘要.1ABSTRACT.2目录.3一 绪论.4 二 系统方案设计 2.1 方案设计.5 2.2 方案论证.5三 系统设计 3.1 单片机的选择.6 3.2 温度传感器的工作原理与单片机的连接.8 3.3 单片机与报警电路.14 3.4 电源电路.15 3.5 显示电路.16四 系统软件设计 4.1 软件设计.18五 元器件调试 5.1 调试产品.21参考文献.22致谢.23附录1.24附录2.30一 绪论 在信息高速发展的21 世纪,科学

7、技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用工程的各个领域。温度是一个永恒的话题和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。温度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量至关重要。其测量控制一般使用各式各样形态的温度传感器。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日显突出,已成为自动检测、自动

8、控制系统和计量测试中不可缺少的重要技术工具,其用途已遍及工农业生产和日常生活的各个领域。二 系统方案设计2.1 方案设计 该方案使用了AT89C51 单片机作为控制核心,以智能温度传感器DS18B20 为温度测量元件,对各点温度进行检测,设置温度上下限,超过其温度值就报警。显示电路采用1602 液晶模块显示,使用二极管,电阻和蜂鸣器组成的报警电路。A/D转换器DS18B20温度传感器数据采集1602液晶显示电路 单 片 机 报警电路键盘 图2-1 温度测量系统方案框2.2 方案论证基于DS18B20 的温度测量系统是一种分布式的温度测量系统,它可以远程对温度实现测量和监控,广泛应用于电力工业、

9、煤矿、森林、火灾、高层建筑等场合,按照DS18B20 的通信协议,由主机向DS18B20 发送命令,读取DS18B20 转换的温度,从而实现对环境的温度的测量,当温度超过一定的值时,报警器开始报警。采用智能温度传感器DS18B20,它直接输出数字量,精度高,电路简单,只需要模拟DS18B20 的读写时序,根据DS18B20 的协议读取转换的温度。此方案硬件电路非常简单,但程序设计复杂一些,但是在课外对DS18B20、字符型液晶显示有所了解,而且曾经在网上看到过此类程序程序设计,并且我已经使用过开发工具KEIL 用C 语言对系统进行了程序设计,用单片机开发板对系统进行了测试,达到了预期的结果。由

10、此可见,该方案完成具有可行性,体现了技术的先进性,经济上也没有任何问题。三 系统设计3.1 单片机的选择 AT89C51 作为温度测试系统设计的核心器件。该器件是INTEL 公司生产的MCS-51 系列单片机中的基础产品,采用了可靠的CMOS 工艺制造技术,具有高性能的8 位单片机,属于标准的MCS-51 的CMOS 产品。不仅结合了HMOS 的高速和高密度技术及CHMOS 的低功耗特征,而且继承和扩展了MCS 一48 单片机的体系结构和指令系统。 (1)中央处理器AT89C51 简介 AT89C51 的特点 AT89C51 具有以下几个特点: AT89C51 与MCS-51 系列的单片机在指

11、令系统和引脚上完全兼容; 片内有4k 字节在线可重复编程快擦写程序存储器; 全静态工作,工作范围:0Hz24MHz; 三级程序存储器加密; 1288 位内部RAM; 32 位双向输入输出线; 两个十六位定时器/计数器 五个中断源,两级中断优先级; 一个全双工的异步串行口; 间歇和掉电两种工作方式。 AT89C51 的功能描述AT89C51 是一种低损耗、高性能、CMOS 八位微处理器,片内有4k 字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000 次,数据保存时间为十年。它与MCS-51 系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51 系列单片机,而

12、且能使系统具有许多MCS-51 系列产品没有的功能1。AT89C51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O 口全部提供给用户。可用5V 电压编程,而且擦写时间仅需10 毫秒,仅为8751/87C51 的擦除时间的百分之一,与8751/87C51 的12V 电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽(2.7V6V),全静态工作,工作频率宽在0Hz24MHz 之间,比8751/87C51 等51 系列的6MHz12MHz 更具有灵活性,系统能快能慢。AT89C5

13、1 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0 口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。 AT89C51 引脚功能 端口引脚各个功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INTO (外部中断0 请求输入端,低电平有效)P3.3INT1 (外部中断1 请求输入端,低电平有效)P3.4T0 (定时器/计数器0 计数脉冲输入端)P3.5T1 (定时器/计数器1 计数脉冲输入端)P3.6WR (外部数据存储器写选择通信输出端,低电平有效)P3.7RD (外部数据存储器读选择通信输

14、出端,低电平有效)AT89C51 单片机P3 口第二功能如表3-1 所示2。表3-1 P3 口的第二功能3.2 温度传感器的工作原理与单片机的连接温度传感器的单总线(1-Wire)与单片机的P27 连接,P27 是单片机的高位地址线。P2 端口是一个带内部上拉电阻的8 位双向IO,其输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流3。如图3-1 所示:DS18B20 与单片机的接口电路非常简单。DS18B20 只有三个引脚,一个接地,一个接电

15、源,一个数字输入输出引脚接单片机I/O 口,电源与数字输入输出脚间需要接一个4.7K 的电阻4。图3-1 温度传感器与单片机的连接图(3)DS18B20 的工作原理 DS18B20 数字温度传感器概述DS18B20 数字温度传感器是DALLAS 公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 产品的特点只要求一个端口即可实现通信。在DS18B20 中的每个器件上都有独一无二的序列号。实际应用中不需要外部任何元器件即可实现测温。测量温度范围在55.C 到125.C 之间。

16、数字温度计的分辨率用户可以从9 位到12 位选择。内部有温度上、下限告警设置。DS18B20 引脚功能描述见表3-2表3-2 DS18B20 详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD 引脚,当工作于寄生电源时,该引脚必须接地DS18B20 的内部结构DS18B20 的内部框图如图3-2 所示。64 位ROM 存储器件独一无二的序列号。暂存器包含两字节(0 和1 字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2 和

17、3 字节),和一字节的配置寄存器(4 字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6 和7 字节器件内部保留使用。第八字节含有循环冗余码(CRC )。使用寄生电源时,DS18B20 不需额外的供电电源;当总线为高电平时,功率由单总线上的上拉电阻通过DQ 引脚提供;高电平总线信号同时也向内部电容CPP 充电,CPP 在总线低电平时为器件供电。(注:INTERNAL VDD-内部VDD 64-BIT ROM AND 1-wire PROT-64 位ROM 和单线端MEMORY CONTROL LOGIC- 存储器控制逻辑SCRATCHPAD 暂存器TEMPERATURE SE

18、NSOR 温度传感器ALARM HIGHTRIGGER( TH)REGISTER 上限温度触发ALARM LOW TRIGGER( TL)REGISTER 下限温度触发8-BIT CRC GENERTOR 8 位CRC 产生器POWER SUPPLLY SENSE 电源探测PARASITE POWER CIRCUIT 寄生电源电路)图3-2 DS18B20 的内部结构图(4)DS18B20 的4 个主要数据部件:光刻ROM 中的64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64 位光刻ROM 的排列是:开始8 位(28H)是产品类型标号,接着的48 位是该DS18

19、B20 自身的序列号,最后8 位是前面56 位的循环冗余校验码。光刻ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。在该系统中温度范围设定在050,但经A/D转换后的采样值为对应于该温度的电压值,因此本系统的标变换公式为:这样计算后该系统中温度范围在051DS18B20 温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL 和结构寄存器。配置寄存器表3-4 配置寄存器TMR1R011111低五位一直都是1,TM 是测试模式位,用于

20、设置DS18B20 在工作模式还是在测试模式。在DS18B20 出厂时该位被设置为0,用户不要去改动。R1 和R0 用来设置分辨率,如表3-5 所示:(DS18B20 出厂时被设置为12 位)表3-5 R1 与R0 确定传感器分辨率设置表R1R0传感器精度/bit转换时间/ms00993.750110187.510113751112750(5)DS18B20 的工作过程初始化ROM 命令跟随着需要交换的数据;功能命令跟随着需要交换的数据。访问DS18B20 必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20 都不会响应主机。a初始化:DS18B20 所有的数据交换都由一个初始

21、化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20 发出的应答脉冲构成。当DS18B20 发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。b. ROM 命令:ROM 命令通过每个器件64-bit 的ROM 码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20 的ROM 如表3-6 所示,每个ROM 命令都是8 bit 长。c. 功能命令:主机通过功能命令对DS18B20 进行读/写Scratchpad 存储器,或者启动温度转换。DS18B20 的功能命令如表3-6 所示。表3-6 DS18B20 的功能命令图指令代码功能读ROM33H读

22、DS18B20 中的编码(即64 位地址)符合ROM55H发出此命令后,接着发出64 位ROM 编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20 的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20 的个数和识别64 位ROM 地址,为操作各器件作好准备跳过ROM0CCH忽略64 位ROM 地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20工作报警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应温度转换44H启动DS18B20 进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部

23、9 字节RAM 中读暂存器BEH读内部RAM 中9 字节的内容写暂存器4EH发出向内部RAM 的第3、4 字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM 中第3、4 字内容复制到E2PROM 中重调EEPROM0B8H将EEPROM 中内容恢复到RAM 中的第3、4 字节读供电方式0B4H读DS18B20 的供电模式,寄生供电时DS18B20 发送“0”,外部供电时DS18B20发送“1”(6)DS18B20 的信号方式DS18B20 采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0 和读1。除了

24、应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。a.初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,4.7k的上拉电阻将单总线拉高。DS18B20 检测到这个上升沿后,延时15s60s,通过拉低总线60s240s 产生应答脉冲。初始化波形如图3-3 所示。图3-3 初始化脉冲b.读和写时序在写时序期间,主机向DS18B20 写入指令;而在读时序期间,主机读入来自DS18B20 的指令。在每一个时序,总线只能传输一位数据。读/写时序如图3-4 所

25、示。写时序存在两种写时序:“写1”和“写0”。主机在写1 时序向DS18B20 写入逻辑1,而在写0 时序向DS18B20 写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s 的恢复时间。两种写时序均以主机拉低总线开始。产生写1 时序:主机拉低总线后,必须在15s 内释放总线,然后由上拉电阻将总线拉至高电平。产生写0 时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60s)。在写时序开始后的15s60s 期间,DS18B20 采样总线的状态。如果总线为高电平,则逻辑1 被写入DS18B20;如果总线为低电平,则逻辑0 被写入DS18B20。读时序DS18B20 只能在

26、主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20 能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s 的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1 或0。若DS18B20 发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0 时,DS18B20 在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20 发出的数据在读时序下降沿起始后的15s 内有效,因此主机必须在读时序开始后的15s 内释放总线,并且采样总线状态。DS18B20 在

27、使用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机1 位I/O 线相连,且单片机的1 位I/O 线可挂接个DS18B20 ,就可实现单点或多点温度检测。图3-4 DS18B20 读/写时序图3.3 单片机与报警电路系统中的报警电路是由三极管,蜂鸣器,发光二极管和限流电阻组成,并与单片机的P1.0P1.3 端口连接。P1 端口的作用和接法与P2 端口相同,不同的是在Flash 编程和程序校验期间,P1 接收低8 位地址数据,如图所示 图3-5 报警电路3.4 电源电路由于该系统需要稳定的5 V 电源,因此设计时必须采用能满足电压、电流和稳定性要求的电源。该电源采用三端集

28、成稳压器LM7805。它仅有输入端、输出端及公共端3 个引脚,其内部设有过流保护、过热保护及调整管安全保护电路由于所需外接元件少,使用方便、可靠,因此可作为稳压电源。图3-6 为电源电路连接图6。图3-6 电源电路连接图3.5 显示电路采用技术成熟,价格便宜的1602 液晶显示器做为输出显示。本次设计使用的1602液晶显示器为5V 电压驱动,带背光,可显示两行,每行16 个字符,不能显示汉字,内置128 个字符的ASCII 字符集字库,只有并行接口,无串行接口7。3.5.1 1602 型液晶接口信号说明1602 型液晶接口信号说明如表3-7 所示表3-7 1602 液晶接口信号说编号符号引脚说

29、明编号符号引脚说明1VSS电源地9D2数据口2VDD电源正极10D3数据口3VO液晶显示器对比度调节端11D4数据口4RS数据命令选择端12D5数据口5R/W读写选择端(H/L)13D6数据口6E使用信号14D7数据口7D0数据口15BLA背光电源正极8D1数据口16BKL背光电源负极3.5.2 液晶主要技术参数表3-8 1602 液晶主要技术参数表显示容量显示容量162 个字符芯片工作电压4.55.5V工作电压2.0mA(5.0V)模块最佳工作电压5.0Vf字符尺寸2.954.35(WH)mm3.5.3 基本操作时序读状态输入:RS=L, R/W=H,E=H 输出:D0D7=状态字。读数据输

30、入:RS=H, R/W=H,E=H 输出:无。写指令输入:RS=L, R/W=L,D0D7=指令码,E=高脉冲输出:D0D7=数据。写数据输入:RS=H, R/W=L, ,D0D7=数据,E=高脉冲输出:无3.5.4 写操作时序(见图3-7)8分析时序图可知操作1602 液晶的流程如下:(1)通过RS 确定是写数据还是写命令。写命令包括使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不需要移屏、在液晶的什么位置显示,等等。写数据是指要显示什么内容。(2)读/写控制端设置为写模式,即低电平。(3)将数据或命令送达数据线上。(4)给E 一个高脉冲将数据送入液晶控制器,完成写操作。(注:tsp1-地

31、址建立时间(30ns) tsp2-数据建立时间(40ns) tHD1 地址保持时间(10ns ) tHD2 数据保持时间(20us) tpw 脉冲宽度(150us) tR tF 上升/下降沿时间(小于25us)Valid Data-数据)图3-7 1602 液晶写操作时序图四 系统软件设计4.1 软件设计DSl8B20 的主要数据元件有:64 位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH 和TL。DSBl820 可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外

32、,还可外接5 V 电源,给DSl8820 供电。DSl8820 的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图4-1 为读取数据流程图,具体代码参考附录19。 开始DS18B20 初始化 发温度读取命令清DQ 准备发送延时1us 以上读一位数据延时15us释放总线延时1545us8 位数据是否读完?结束读取图4-1 数据读取流程图主程序代码为:#include / 51 系类单片机头文件#include LCD1602.h /包含对1602 读写操作的头文件#include Delay.h /延时操作头文件#include 18B20.h /包含对18B20 操作的头文件#inc

33、ludesbit beep = P30; /定义蜂鸣器信号线sbit led0=P10; /定义发光二极管端口sbit led1=P11;sbit led2=P12;sbit led3=P13;uint warn_l1=250; /定义温度下限值温度*10uint warn_l2=150;uint warn_h1=300;/* 函数名称:deal(uint t) * * 函数功能:对18B20 获取的温度进行相应的处理* 入口参数:temp * 出口参数:无*/void deal(uint t) if(twarn_l2)&(t=warn_l1) /1525 度 led0=0; /第一个闪烁 D

34、elayms(20); led0=1; mdi(); /蜂鸣器慢“滴” /模拟开启制热else if(t=warn_l2) / warn_h1)&(t=warn_h1) / 30 度 led2=0; /第三四个灯闪烁 led3=0; Delayms(10); led2=1; led3=1; kdi(); /蜂鸣器慢“滴” /模拟加大制冷功率 else beep=1; /温度正常/* 函数名称:display(uint t); * 函数功能:显示温度* 入口参数:t * 出口参数:无*/void display(uint t) write_com(0x80+12); / 第一行第13 列 wri

35、te_data(t/100+0x30); / 十位+0X30 转换为字符显示 write_com(0x80+14); write_data(t%100/10+0x30); write_com(0x80+15); write_data(t%10+0x30);/* 函数名称:main(void); * 函数功能:主函数 * 入口参数:无 * 出口参数:无 */void main(void) uchar i = 0; uint temp = 0; while(1) init(); /LCD 初始化 tempchange(); /温度转换 _nop_(); /稍作延时 temp = get_temp(); deal(temp); /温度处理 nop_(); for(i=10;i0;i-) display(temp(); /温度处理 五 元器件调试5.1 调试产品5.1.1 测试环境及工具测试温度:1525 摄氏度。测试仪器:,温度计0100 摄氏度,keil 51 软件。测试方法:目测。5.1.2 温度检测部分测试 当环境温度低于15 摄氏度是,蜂鸣器开始以慢“滴”声报警,并且伴随

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号