面向气体传感器测试的温度控制系统_第1页
面向气体传感器测试的温度控制系统_第2页
面向气体传感器测试的温度控制系统_第3页
面向气体传感器测试的温度控制系统_第4页
面向气体传感器测试的温度控制系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、 大连海事大学装订线 毕 业 论 文 二一四年六月 面向气体传感器测试的温度控制系统专业班级: 电子信息科学与技术2班姓 名: 饶钰玮 指导教师: 刘剑桥 信息科学技术学院 摘 要在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、实验室里经常需要对气体温度进行检测,并根据实际的要求对封闭空间温度进行控制。本文针对DS18B20气体传感器进行独立空间温度控制器的设计。针对DS18B20的特性,本设计采用AT89C52单片机进行信息处理。首先,对DS18B20进行初始化,从DS18B20中读入温度信息,在AT89C52中与通过按键模块设定的初始温度上下限进行比较,同时将温度信号在LED数

2、码管上显示,比较结果通过继电器,低于设定下限则电热丝工作加热,高于设定上限则停止加热。用Protues软件绘制电路原理图,再根据电路原理图捍接电路板。捍接的电路板实现温度的自动化控制。关键词:气体温度控制;AT89C52;DS18B20;ABSTRACTIn the industrial production and the experimental study ,in electric power chemical petroleum metallurgy machinery manufacturing the laboratory often need to detect the gas

3、temperature and according to the actual requirements for closed space temperature control .Design aiming at DS18B20 gas sensors are independent space temperature controller .Aiming at the characteristics of the DS18B20,this design uses AT89C52 microcontroller for information processing.First of all

4、,the initialization of DS18B20,read from the temperature information in DS18B20,and the key module set initial temperature in AT89C52 ,while the temperature signal in the LED digital tube display ,the comparative result by relay ,below the lower limit is the heating wire heating ,is higher than the

5、set upper limit stops heating.Using Protues software to draw circuit diagrams, then according to the circuit principle diagram of welding circuit board .Welding circuit board to realize the automation control of temperature.Keywords: Gas temperature control ,AT89C52 ,DS18B20目 录第1章 绪论11.1 课题研究的背景及意义1

6、1.2 气体传感器测试的研究现状11.3 设计主要内容2第2章 开发技术基础32.1 单片机简介32.1.1 硬件特性32.1.2 基本结构42.2 开发软件Protues简介52.2.1 功能模块62.2.2 联合仿真72.3 芯片功能介绍82.3.1 AT89C52系列单片机介绍82.3.2 DS18B20单总线数字温度传感器简介11第3章 系统硬件电路设计143.1 主控制电路图143.2 时钟电路143.3 复位电路153.4 DS18B20 传感器电路153.5 显示电路163.6 继电器加热电路17第4章 软件编程调试及性能分析184.1 主程序设计184.2 温度检测184.2.

7、1 读取温度设计184.2.2 温度数据处理设计194.3 数码管显示204.4 按键输入21第5章 实物展示及误差分析235.1 实物焊接235.2 实验演示24总结与展望27参考文献29致 谢30面向气体传感器测试的温度控制系统第1章 绪论随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。单片机在测控领域中具有十分广泛的应用,它既可以测量电信号,又可以测量温度湿度等非电信号。由单片机构成的温度控制系统可广泛应用于很多领域。单片机在工业控制、尖端武器、通信设备、信息处理等各测控领域的应用中都占有一席之地。今天,我们的生活环境和工作环境有越来越多

8、称之为单片机的小电脑在为我们服务。温度是工业控制中主要的被控参数之一,随着社会的进步和工业技术的发展, 人们越来越重视温度因素特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻 的作用。因此温度检测在工业的生产过程中都扮演着重要的角色,同时,随着社会的发展,自动化程度会越来越高, 随着电子技术和微型计算机的迅速发展, 微机测量和控制技术得到了迅速的发展和广泛的应用。微机与下位机相结合实现更为友好的人机界面,是未来社会发展的必然趋势。 1.1 课题研究的背景及意义温度控制在生活中的应用无处不见,许多工业、研究中空间气体温度控制系统的帮助实现恒

9、温状态,工厂车间同样需要使环境气体处于恒温状态以保证产品质量。面对如此应用广泛的系统,我们更需要努力将它完善、简化,使其具有体积小、精度高的优点。1.2 气体传感器测试的研究现状传感器属于信息技术的前沿尖端产品,尤其是温度传感被广泛用于工业生产究和生活领域,数量高居各种传感器之首。温度传感器的发展大致经历了一下三个阶段:传统的分离式温度传感器(含敏感元件)、模拟集成温度传感器/控制器和数字温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。传统的方法,人们采用温度计来采集温度值,通过人工操作

10、加热、降温来控制温度。但由于温度计的精度低,以及人工读数的人为原因影响,温度检测不仅速度慢、精度低、实时性差,而且操作人员劳动强度大。1.3 设计主要内容本设计以AT89C52单片机的温度测量和控制系统为核心来对温度进行实时巡检。单片机能独立完成各自功能,同时能根据主控机的指令对温度进行定时采集。测量结果不仅能够直接通过LED数码管显示,而且同时通过与设定值比较控制继电器工作。 在设计的过程中充分考虑到性价比和精度,在选用低价格、通用元件的的基础上,尽量满足设计要求,并使系统具有高的精度。本控制系统以单片机的控制为核心,实时监测环境的温度,并设定了参数的上下限定值,当超过设定的限定值

11、时,单片机驱动继电器打开相应的开关使相应的执行机构运行。当参数值恢复到设定值范围内时,单片机控制执行机构停止运行。从而使环境的温湿度在一定的范围内得到控制。第2章 开发技术基础2.1 单片机简介单片机(Single chip microcomputer)微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机(Single chip microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的

12、中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。单片机由运算器、控制器、存储器、输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳

13、选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作。单片机的数量远远超过PC机和其他计算机的总和。2.1.1 硬件特性1、主流单片机包括CPU、4KB容量的ROM、128 B容量

14、的RAM、 2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。2、系统结构简单,使用方便,实现模块化;3、单片机可靠性高,可工作到106 107小时无故障;4、处理功能强,速度快。5、低电压,低功耗,便于生产便携式产品6、控制功能强7、环境适应能力强。2.1.2 基本结构运算器运算器由运算部件算术逻辑单元(Arithmetic & Logical Unit,ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或

15、、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。运算器有两个功能:(1) 执行各种算术运算。(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。控制器控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:(1) 从内存

16、中取出一条指令,并指出下一条指令在内存中的位置。(2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。主要寄存器(1)累加器A图1-2 单片机组成框图累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑

17、运算结果。(2)数据寄存器DR数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。(3)指令寄存器IR和指令译码器ID指令包括操作码和操作数。指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。(4)程序计数器PCPC用于确定下一条指令的地址,以保证程序能够连续地执行下去,

18、因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。(5)地址寄存器AR地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。2.2 开发软件Protues简介

19、Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/

20、12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译。2.2.1 功能模块器件库超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。

21、仿真功能ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等; 生动

22、的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。单片机协同支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用外设模型:如字

23、符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信; 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。设计平台

24、原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理; 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。2.2.2 联合仿真Protues与Keil C的联合仿真Pro

25、tues ISIS与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。同时,当原理图调试成功后,利用Protues ARES(Advanced Routing and Editing Software)软件,很容易获得其PCB图,为今后的制造提供了方便。Protues 与Keil C的接口实现Protues与Keil C的接口步骤如下:1) 安装Protues与 Keil C并同时安装v

26、dmagdi.exe程序。2) 进入Protues ISIS,选择Debug|Use Remote Debug Monitor菜单选项。3) 进入Keil C Vision3集成开发环境,创建一个新项目(Project),并为该项目选定合适的单片机型号,加入Keil C 源程序。随后,选择Project|Options for Target菜单项,或者单击工具栏中的Options for Target按钮,在弹出的界面选择Debug选项卡,在Use的下拉列表框中选择Protues VSM Simulator,并且选中Use单选框,即在Use前面的小圆圈内出现小黑点。在单击Settings按钮,

27、设置通信接口在Host文本框输入“127.0.0.1”;茹阔使用的不是同一台电脑,则需要在这里输入另一台电脑的IP地址(另一台电脑安装Protues)。在Port文本框输入“8000”。设置好以后单击OK按钮即可。最后将工程编译,进入调试状态,并运行。此后,便可实现Keil C 与 Protues连接调试。 Protues 与Keil C的联合仿真实例前面已经绘制出了8051驱动LED显示原理图,下面在此基础上,完整地展示一个Protues 与 Keil C 相结合的仿真过程。1) 硬件设计2) 程序设计3) 仿真实现步骤2.3 芯片功能介绍2.3.1 AT89C52系列单片机介绍芯片介绍AT

28、89C52 是美国ATMEL 公司生产的低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,与标准MCS-51 指令系统及8052产品引脚兼容,片内置通用8 位中央处理器(CPU)和Flash 存储单元,功能强大的AT89C52 单片机适合于许多较为复杂控制应用场合。 图2.1 AT89C52外部AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

29、功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为

30、I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 图2.2 AT89C52单片机的内部结构引脚功能Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在Fla

31、sh 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 图2.3 PDIP封装的AT89C52引脚图P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表2.1。表2.1 引脚P1.0、P1.1的

32、第二功能引脚号 功能特性P1.0 T2(定时计数器2外部计数脉冲输入),时钟输出P1.1 T2EX(定时计数器2捕获重装载触发和方向控制Flash 编程和程序校验期间,P1 接收低8位地址。 P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2口送出高8 位地址数据。在访问8 位

33、地址的外部数据存储器(如执行MOVX RI 指令)时,P2口输出P2 锁存器的内容。 Flash 编程或校验时,P2亦接收高位地址和一些控制信号。 P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。 P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2.2所示:表2.2 引脚P3口的第二功能端口引脚号第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INTO(外中断0)

34、P3.3/INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)此外,P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

35、对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为00

36、00HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。2.3.2 DS18B20单总线数字温度传感器简介性能介绍温度传感器DS18B20独特的一线接口,只需要一条口线通信,简化了分布式 温度传感应用,无需外部元件,可用数据总线供电,电压范围为3.0 V

37、至5.5 V 无需备用电源,测量温度范围为-55°C至+125°C,精度为±0.5°C。温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。DS18B20芯片出厂时默认为12位的转换精度。读取或写入DS18B20仅需要一根总线,要求外接一个约4.7k的上拉电阻,当总线闲置时,其状态为高电平。此外DS18B20是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。引脚结构DS18B20采用3脚TO-92封装或8脚的SOIC封

38、装,如图2.4所示。各引脚的功能:GND为电压地;DQ为单数据总线;V为电源电压;NC为空引脚。图2.4 DS18B20引脚图工作原理及应用DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解DS18B20的内部存储器资源。DS18B20共有二种形态的存储器资源,它们分别是: (1)ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后而48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。数据在出厂时设置不由用户

39、修改。DS18B20共64位ROM (2) RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失DS18B20共9个字节RAM每个字节为8位。第1, 2个字节是温度转换后的数据值信急,第3和第4字节是高温触发器TH和低温触发器TL的易失性拷贝,第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。以上字节内容每次上电复位时被刷新。配置寄存器字节各位的定义如表2.3所示。低5位是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率,决定

40、温度转换的精度位数。表2.3 寄存器字节各位的定义R0R1温度计分辨率/bit最大转换时间/ms00993.750110187.510113751112750 第3章 系统硬件电路设计系统的硬件组成部分包括:主控制器AT89C52单片机、温度传感器DS18B20、显示电路LED、晶振、复位、加热装置等构成。AT89C52连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图捍接电路板。3.1 主控制电路图首先对硬件系统定义端口为P3.0,P3.1,P3.2,P3.3和P0口控制液晶 LED3461的显示。首先对温度采集,将采集到的温度转换数字,采集到

41、的温度由LED液晶显示屏显示。再将采集到的温度所属软件设置的哪个范围,而控制P1.4的电平输出。电路原理图如3-1所示:图3.1 主电路图电路原理图用Protues软件绘制而成。用Protues软件绘制电路原理图方便,快捷。Protues软件有丰富的元件库,智能的器件搜索,智能化的连线,可输出高质量的图纸。电路原理图清晰明了。3.2 时钟电路AT89C52芯片内部有一个高增益反向放大器,用于构成震荡器。反向放大器的输入端为XTAL1,输出端为XTAL2。在TXAL1和XTAL2两端跨接由石英晶体及两个电容构成的自激震荡器,如图3-2所示。电容器C1和C2取22pF,选用不同的电容量对震荡频率有

42、微调作用。但石英晶体本身的标定频率才是单片机震荡频率的决定因素。图3.2 时钟电路时钟电路中,两个电容都选择22pF的电容,电容各一端接与晶振相连,各 一端接地。选择的晶振是频率为12MHZ。此模块就是产生象时钟一样准确的振荡电路。3.3 复位电路单片机的复位电路通常有按钮复位和自动复位两种方式,本电路系统采用的就是按钮复位电路,如图3.3所示:图3.3 复位电路单片机的RST引脚是复位信号的输入端,复位后,单片机内部包括程序计数器和特殊功能寄存器在内的各寄存器的内容将被初始化,但复位并不影响片内RAM和片外RAM中的内容。3.4 DS18B20 传感器电路DQ 为数据输入/输出引脚,连接P3

43、.4。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源,GND为地信号;VCC为电源信号。图3.4为DS18B20检测电路。图3.4 DS18B20检测电路3.5 显示电路在本模块中,使用四位数码管显示设定的温度值和实时温度值。用AT89C52的P0 口作为LED四位数码管显示的数据线,用P3.0、P3.1、P3.2、P3.3作为片选数据线连接数码管的1、2、3、4。显示电路如图3.5所示。图3.5 显示电路3.6 继电器加热电路本模块主要是用来控制温度高低,当环境的温度高于或低于设定的温度值,继电器开始工作,进行升温以达到设定温度值。如图3.6所示。图3.6 继电器电路NC:常

44、闭点,以COM为共同点,NC与COM在平时是呈导通状态的。 COM:共通点,输出控制接点的共同接点。 NO:常开点,NO和COM平时呈开路的状态,当继电器工作时,NO和COM导通,NC和COM则呈开路状态。 在本设计中为了达到升温的目的,在单片机的P1.4脚接一个三极管放大信号,继电器的4脚接电热丝,当继电器P1脚输入一个低电平时,C8550B处于截至状态,继电器不工作,当给一个高电平时,由于磁场的吸合作用使得继电器开始工作,4脚接通,继电器在正常的工作,电热丝加热。第4章 软件编程调试及性能分析一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。同时还必须得到相应设计合理的软件的支持,

45、尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。因此充分利用其内部丰富的硬件资源和软件资源。 程序设计语言有三种:机器语言、汇编语言、高级语言。本系统运用的是高级语言所编写,也就是C语言。4.1 主程序设计从软件的功能不同可分为三大类:一是检测软件,它是用来检测温度。二是显示部分,用来显示所检测到的温度。三是当温度大于设定值后,电热丝加热。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。以下为模块代码详细。4.2 温度检测4.2.1 读取温

46、度设计DS18B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接5V电源,给DS18B20供电。读取温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12位数,小数4位,整数7位,还有一位符号位。unsigned char ReadTemp(void)unsigned char TempL=0

47、;unsigned char TempH=0;unsigned char Temp_Value; Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);delay(2,94,17);Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);/delay(1,1,1);TempL=ReadOneChar();TempH=ReadOneChar(); TempL0=TempL&0x0f;if(TempH>>4)=0x0f)/1111=负数 0000=正数symbol = 1;el

48、sesymbol = 0;Temp_Value=TempH<<4 | TempL>>4;return (Temp_Value);4.2.2 温度数据处理设计读出温度数据后,TempL的低四位为温度的小数部分,可以精确到0.0625,TempL的高四位和TempH的低四位为温度的整数部分,TempH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5的话,向个位进1;小于0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20

49、最低温度只能为-55,所以可以将整数部分的最高位换成一个“-”,表示为负数。由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节高5位是用来保存温度的正负,高字节低3位和低字节来保存温度值。其中低字节的低4位来保存温度的小数位。void Temp_To_String(void)unsigned char Temp_Value;Temp_Value = ReadTemp();if(symbol=1)Temp_Value = 256 - Temp_Value;TempBuffer0=Temp_Value/100+'-'elseTempBuffer0=Te

50、mp_Value/100;TempBuffer1=Temp_Value/10%10;TempBuffer2=Temp_Value%10;TempBuffer3=ditabTempL0;4.3 数码管显示通过数码管显示实时温度值,设置的温度上下限。 a=0;h=500;l=0; LED1=1; LED2=1; LED3=1; LED4=1;H=0;L=0;J=0; while(1) H=0;L=0; if(a=0) Temp_To_String(); P0=LedDataTempBuffer0; LED1=0;delay(15,19,15); LED1=1; P0=LedDataTempBuff

51、er1; LED2=0;delay(15,19,15) ;LED2=1; P0=LedDataTempBuffer2|0x80; LED3=0;delay(15,19,15) ;LED3=1; P0=LedDataTempBuffer3; LED4=0;delay(15,19,15) ;LED4=1;if(TempBuffer1*100+TempBuffer2*10+TempBuffer3<l)J=1;if(TempBuffer1*100+TempBuffer2*10+TempBuffer3>h)J=0; if(a>0&&a<4)H=1; P0=LedD

52、ata0; LED1=0;delay(5,5,5) ;LED1=1; P0=LedDatah/100; LED2=0;delay(5,5,5) ;LED2=1; P0=LedDatah/10%10|0x80; LED3=0;delay(5,5,5) ;LED3=1; P0=LedDatah%10; LED4=0;delay(5,5,5) ;LED4=1; H=0; if(a>3)L=1; P0=LedData0; LED1=0;delay(5,5,5) ;LED1=1; P0=LedDatal/100; LED2=0;delay(5,5,5) ;LED2=1; P0=LedDatal/1

53、0%10|0x80; LED3=0;delay(5,5,5) ;LED3=1; P0=LedDatal%10; LED4=0;delay(5,5,5) ;LED4=1; L=0;4.4 按键输入为增加本设计的可控性,此系统设置三个按键进行上下限值设定。键盘处理子程序流程框图主要完成对键盘设置温度值进行处理,本课题中共需要设置三位数字完成初始化后,循环判断是否有按键。 if(key1=0) delay(2,2,2); if(key1=0) a+; if(a=7)a=0; while(key1=0); if(key2=0) delay(2,2,2); if(key2=0) switch(a) ca

54、se 1:h=h+100;if(h>=1000)h=h-100;break; case 2:h=h+10;break; case 3:h=h+1;break; case 4:l=l+100;if(l>=1000)l=l-100;break; case 5:l=l+10;break; case 6:l=l+1;break; while(key2=0); if(key3=0) delay(2,2,2); if(key3=0) switch(a) case 1:if(h>=100)h=h-100;break; case 2:h=h-10;break; case 3:h=h-1;br

55、eak; case 4:if(l>=100)l=l-100;break; case 5:l=l-10;break; case 6:l=l-1;break; while(key3=0); 第5章 实物展示及误差分析5.1 实物焊接根据电路图在面包板上将芯片按照仿真电路图进行焊接,由于DS18B20耐热性差,所以在焊接时首先将一个底座焊接在电路板上,通过导向连接传感器。实物如图5.1、5.2所示:图5.1 电路板正面图5.2 电路板背面5.2 实验演示首先将5V电源接在电路正负极,DS18B20工作,数码管显示实时温度24.8°C。如图5.3所示: 图5.3 实时温度通过按键,设置温度上下限,红灯亮时代表数码管显示温度上限此时设置30°C,绿灯亮代表显示温度下限此时设置26°C

温馨提示

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

评论

0/150

提交评论