《恒温烤烟房控制系统设计.doc》由会员分享,可在线阅读,更多相关《恒温烤烟房控制系统设计.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大学本科生毕业设计(论文)目 录第一章绪论11.1课题背景11.2国内外恒温控制技术发展现状及趋势11.3设计目的和要求21.3.1系统设计技术指标21.3.2 系统功能31.3.3 设计思路3第二章恒温烤房控制系统总体方案设计42.1恒温烤房的技术要求42.2恒温烤房中央处理器的选择42.3 AT89C51单片机介绍42.3.1AT89C51单片机的概述42.3.2单片机引脚图52.3.3各引脚功能52.4恒温烤房控制系统结构72.5恒温烤房结构设计9第三章信号采集及处理单元设计113.1传感器的选择113.2 DS18B20传感器介绍123.2.1 DS18B20的特点123.2.2 DS
2、18B20内部结构123.2.3 DS18B20的引脚介绍143.2.4 DS18B20的硬件接口153.2.5 DS18B20与AT89C51通信分析:163.2.6 DS18B20173.3按键输入电路设计183.4 LED显示电路设计213.5 电源稳压电路设计243.6 加热器功率驱动电路设计253.7 晶振电路与复位电路的设计273.8 报警电路设计28第四章 控制系统软件设计304.1工作流程304.2程序模块304.21主程序304.2.2温度传感器驱动子程序314.2.3数据转换子程序324.2.4温度检测与控制子程序334.2.5温度动态显示子程序344.2.5键盘输入中断服
3、务子程序35第五章总结38参考文献39致 谢40附录A 软件程序41-52-第一章 绪论1.1 课题背景随着电子技术的飞速发展,自动控制、智能仪器、智能家电的广泛应用,给社会带来了巨大改变。单片机技术的发展给智能仪器、智能家电注入了新的活力。单片微型计算机的功能不断增强,许多高性能的新型机种不断涌现出来。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为自动化和各个测控领域中广泛应用的器件,在工业生产中称为必不可少的器件,而温度是工业对象中主要的控制参数之一。现代工业设计、工程建设及日常生活中常常需要用到温度控制,早期温度控制主要应用于工厂中,例如钢铁的水溶温度,不同等级的钢铁
4、要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。烟叶烘烤是将烟叶在田间生长过程中形成和积累的优良状态充分发挥和显露出来,是生产优质烟叶至关重要的技术环节,同时也是我国烤烟生产质量和效益的技术瓶颈之一。影响烟叶烘烤质量的重要因素之一就是烤房内的温度,温度的变化很复杂,目前一些有经验的烤烟技术人员根据长期的烘烤经验采用人工控制的方法,虽然能取得很好的效果,但是这样消耗了太多的人力,也很难避免出于人为的疏忽,也与智能化的发展方向不吻合。采用模糊控制的方法设计系统,不需要对被控制对象建立数学模型,只要根据有经验的工作人员或有关专家的经验和知识建立模糊控制查询表,结合单片机
5、控制技术对目标系统进行控制。从实际应用来看,它可以很好的处理各种不确定性、非线性、时变性和耦合性。因此,本设计采用单片机技术对烟叶烘烤过程中的温度进行智能控制。1.2国内外恒温控制技术发展现状及趋势随着计算机控制技术的发展,恒温控制己在工业生产领域中得到了广泛应用,并取得了巨大的经济和社会效益。在不同的领域内,由于控制环境、目标、成本等因素,需要针对具体情况来设计系统结构和功能,以取得最佳的控制效果。其中,恒温环境的自动化控制技术在工业生产、商业运营中是一个重要研究课题。自70年代以来,由于工业过程控制的需要,特别是在微电子技术和计算机技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国
6、外恒温控制系统发展迅速,并在智能化,自适应参数的自整定等方面取得了很大的科技成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表。目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。虽然温度控制系统在国内各行各业的应用已经十分广泛,但从国内生产的温度控制器及技术来讲,其总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。我国目前在恒温控制技术这方面总体技术水平处于20世纪80年代中后期水平,成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后、复杂、时
7、变的温度系统控制。在适应于较高控制场合的智能化、自适应控制仪表领域内,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。因此,我国在恒温控制等控制仪表行业与国外还有着一定的差距。从过程量的检测角度出发,温度是最常见的过程变量之一,它是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。而恒温控制技术在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。其温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。尽管恒温控制很重要,但是要控制好温度常常会遇到意
8、想不到的困难。随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。1.3 设计目的和要求我国农村的烤烟房都是以煤炭为燃料,通过人工加热等方式来控制烤烟房内的温度,这种烤房结构复杂,温度控制不准确,浪费人力、燃料等资源,和当今社会提倡的环保,可持续发展道路不想符合。所以本设计的目的是设计一个由电力系统来控制的烤房,系统由温度传感器、中央处理器、显示器、键盘输入等模块组成,系统符合温度自动调节,操作人员能从键盘设置需要
9、的温度,能在显示器上看到实际温度等人性化要求,减少人力和资源的浪费,提高资源利用率。1.3.1系统设计技术指标设计的恒温控制系统的技术指标:(1)预置时显示设定温度,达到定温度时显示实时温度,显示精确到1。(2)恒温箱温度可预置,在误差范围内恒温控制,温度控制误差1。(3)恒温系统由1KW电炉加热。 (4)启动后有运行指示,温度低于预置温度5时进行220V全加热。(5)具有相应的保护功能。1.3.2 系统功能(1)可以对温度进行自由设定,但必须在0100内,设定时可以实时显示出设定的温度值。(2) 加热1KW电炉来实现,如果温度不在设定温度时,根据设定的温度值与实际检测的温度值之差来采取不同的
10、加热方式。(3) 能够保持实时显示温度1.3.3 设计思路 采用温度传感器检测房内温度,经过数据转换后送入中央处理器中处理,通过相关的程序达到自动控制温度的效果,同时在显示器上显示出实际温度和设置温度,设计有键盘输入电路,报警电路等。第二章 恒温烤房控制系统总体方案设计2.1 恒温烤房的技术要求设计的恒温控制系统的技术指标:(1)预置时显示设定温度,达到定温度时显示实时温度,显示精确到1。(2)恒温箱温度可预置,在误差范围内恒温控制,温度控制误差1。(3)恒温系统由1KW电炉加热。 (4)启动后有运行指示,温度低于预置温度5时进行220V全加热。(5)具有相应的保护功能。2.2 恒温烤房中央处
11、理器的选择目前主要的中央处理器中常用的有通用型单片机、MCU单片机和单片模糊控制器FMC。这三种控制器中,通用型数字单片机虽然可以完成多变量模糊逻辑的处理,但是外围接口较多,印制电路板面积大,抗干扰性比较差,不宜选用;单片模糊控制器FMC是专用集成模糊控制器,只需要配置少量外围元件就可以构成独立的模糊控制系统。但是,FMC在推理上采用了单一的最小最大模糊推理方法,也不宜采用。MCU除了用软件处理模糊变量、推理之外,不增加任何其他器件,且抗干扰能力很强,因此,MCU是此设计的选择。目前运用的较多的单片机是51系列单片机,其中具有代表性的型号是ATMEL公司的AT89系列单片机,常常用在工业测控系
12、统中。此系统要求对温度的控制较精确,AT89系列的AT89C51单片机能满足要求,所以本系统选用AT89C51作为中央处理器。2.3 AT89C51单片机介绍2.3.1 AT89C51单片机的概述AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片
13、机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。此外, AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3.2 单片机引脚图图2.1 单片机引
14、脚图2.3.3 各引脚功能1)I/O引脚(4832):P0,P1,P2,P3。1、P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 2、P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和
15、校验时,P1口作为第八位地址接收。 3、P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 4、P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输
16、出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:表2.1 P3口的第二功能口管脚备选功能P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记时器1外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。(2)控制引脚(4个):1、ALE地址锁存使能。当访问
17、外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。2、/PSEN外部程序存储器ROM的选通信号。在由外部程序存储器ROM取指期间,每个机器周期两次/PSEN有效。但在访问外部数
18、据存储器RAM时,这两次有效的/PSEN信号将不出现。3、/EA/VPP/EA访问外部程序存储器控制信号。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。4、RSE复位。当晶振在运行中,只要复位管脚出现2个机械周期高电平即可复位。内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。(3)时钟晶体引脚(2):1、XTAL1反相振荡放大器输入和内部时钟发生电路输入。2、XT
19、AL2反相振荡放大器输出。要使用外部时钟源驱动器件时,XTL2可以不连接而由XTL1驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。(4)电源引脚(2)1、Vss地。2、Vcc电源。提供掉电、空闲、正常工作电压.。2.4 恒温烤房控制系统结构要控制温度在一个恒定值上有很多种方案,其中:方案一:是一位式的模拟控制方案:固态继电器此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静差大,不稳定,受环境影响大,不能实现复杂的控制算法
20、,难以用数码管显示,难以用键盘设定,其方案一框图如图2.2所示。比较器温度预置信号放大加热装置数据采集信号放大图2.2 一位式模拟控制方案图方案二:二位式的模拟控制方案此方案采用单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。单片机系统通过温度传感器对烤房内的温度进行检测,得到模拟的温度信号,在经过A/D转换成数字信号之后,则可用数码管来显示水温的实际值,还能用键盘输入设定值,也可实现打印功能。本方案还可选用51单片机(内部含有4KB的EEPROM),不需要外扩展存储器可使系统整体结构较为简单。但是它是一种传统的模拟控制方式,而模拟控制系统难以实现复杂控
21、制规律,控制方案的修改也比较麻烦,其方案二框图如图2.3所示加热装置上限比较温度预置信号放大信号采集固态继电器信号处理下限比较图2.3 二位式模拟控制方案框图方案三: 此方案采用单片机为控制核心的控制系统,尤其对温度控制,它可达到核心的控制作用,并且可方便实现数码显示、键盘设定,烤房的温度控制系统可采用开关控制方案,通过一个继电器隔离输出控制电热丝的通断。当烤房内的温度低于设定温度时,继电器就会闭合,电热丝接通使烤房开始加热温度升高;反之则继电器断开,烤房停上加热。本系统是以AT89C51单片机为核心,组成的一个集温度的采集、处理、显示、自动控制为一身的温度闭环控制系统。硬件组成主要由以下几部
22、分组成:单片机信息处理、温度采集、显示、报警、键声及控制部分。具体工作如下:采用一种新型的可编程温度传感器(DS18B20),不需复杂的信号处理电路和AD转换电路就能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。我们预先从键盘输入一个温度,通过温度采集系统检测出环境的温度,由数字显示电路显示出当时的实际温度,当温度高于或低于报警的上下限值时,报警器发声,提醒工作人员此时温度太高或太低,以做出相应的措施。 其中:1、为使整个系统的运行更加完善,本系统在设计时匹配了矩阵式键盘以及由四位LED数码管组成的显示器以显示实际的温度值及预置温度值。2、为提高系统的抗干扰能力
23、,在原有硬件的基础上设计了电源检测、报警等电路以促进整个系统的功能更加完善。烤房内温度经DS18B20检测送至单片机, 由单片机调用显示程序显示当前温度, 并与设计定值相比较来决定电炉的通断。功率驱动、输出继电器、电炉构成一个输出通道, 它与温度采集电路一起构成一个闭合回路,以保证房内温度恒定.在控制器检测到房内温度超过极限值时, 报警电路动作。系统控制原理图如下:方案比较:以上三种方案中,方案一结构和电路简单,不需要编程,易于实现控制。但是系统所得结果的精度不高并且调节动作频繁,系统静差大,不稳定,抗干扰能力不强。而且没有显示器,不能显示温度值,也没有键盘设置电路,操作很不方便,不能满足实际
24、就用,固不选用。方案二虽然能编程,结构也简单,但是它和方案一一样是一各传统的模拟控制方式,对一些复杂的控制规律难以实现,对本系统也不是一个最好的控制方式。方案三中采用了数字温度传感器,不需复杂的信号处理电路和AD转换电路就能直接与单片机完成数据采集和处理,实现方便、精度高,尤其在多点测温系统中体现其优越性,有显示器、键盘输入、报警等电路,只要对单片机写入相应的程序就能很容易实现温度的自动控制,使用方便简单,所以方案三是一个合适的控制方案。系统最终控制方案图如图2.4单片机译码器显示报 警加热驱动电路温度检测电路电源稳压电路键盘输入电路图2.4 恒温烤房控制系统结构图2.5 恒温烤房结构设计本设
25、计是设计一个长度为6米、宽3米、高3米的烤烟房,利用单片机控制房内温度保持不变,显示设定温度和实时温度,显示精确到1。用DS18B20温度传感器分4个点检测房内温度,在相应的地方用加热丝进行加热保温。门外安装键盘和LED显示器。烤房的结构简图如图2.5:图2.5 恒温烤房结构简图第三章 信号采集及处理单元设计3.1 传感器的选择方案一:由热敏电阻式传感器检测温度数据,经放大电路、A/D转换电路后送入单片机处理,如图3.1温度检测信号放大A/D转换单片机图3.1 温度检测模块结构图此方案硬件接口比较复杂,在多点测温中需要占用较多的单片机接口,对单片机程序的要求较简单,但是本设计中烤房的尺寸比较大
26、,需要多点测温,这就必须要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。而且一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。,此方案不是最优方案。方案二:采用PN结温度传感器,PN结温度传感器利用二极管或晶体管PN结的结电压随温度变化的原理工作的,这种传感器具有尺寸小、灵敏度高、线性度好、时间常数小等特点,在很多方面得到广泛应用。但是这种传感器同样有接线复杂,抗干扰能力差等缺点,同样要解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,使用不方
27、便。方案三:采用美国DALLAS公司生产的单线数字温度传感器DS18B20采集温度数据,它有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,而且能直接读出温度实际值,可直接将温度转化成串行数字信号进行处理,经编程把数据转换成二进制后直接输入单片机,使用方便,特别适合于构成多点温度测控系统,因此,在单片机测温系统中被广泛应用。此方案可以在一条数据总线上布多个传感器,通过对单片机编写程序实现对传感器的读取,方便实现多点测温,占用接口少。对比三个方案,方案三符合本系统的各个要求,只是需比较要复杂的程序编写。考虑到程序编写只要一次,所以还是选择DS18B20作为温度检测元件,温度检测模块结构
28、如图3.2DS18B20DS18B20DS18B20 单 片 机图3.2 温度检测模块结构图3.2 DS18B20传感器介绍DS18B20温度传感器是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的温度传感器,十分方便。3.2.1 DS18B20的特点1. 只要求一个端口即可实现通信。2. 在DS18B20中的每个器件上都有独一无二的序列号。3. 实际应用中不需要外部任何元器件即可实现测温。4. 测量温度范围55到125。5. 数字温度计的分辨率用户可以从9位到12位选择。6. 内部有温度上、下
29、限告警设置。3.2.2 DS18B20内部结构 DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3.3所示。 64位ROM和单线接口 存储器与控制逻辑 高速缓存 温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器图3.3 DS18B20内部结构框图64位ROM的位结构如图3.4所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器和,可通过软件写入用户报警上下限数据。8位检验CRC48位序列号8位工厂代码(10H)MSB LSB
30、 MSB LSB MSB LSB图3.4 64位ROM的位结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的PROM。高速暂存RAM的结构为9字节的存储器,结构如表3.1所示。前2字节包含测得的温度信息。第3和第4字节是和的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图3.4所示,其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要
31、去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表3.2。 表3.1 高速暂存RAM结构字节地址高速缓存内容0温度数据低字节1温度数据高字节2高温报警触发器3低温报警触发器4配置寄存器5保留6保留7保留88位CRC编码表3.2 DS18B20分辨率定义和规定分辨率/位温度最大转换时间/ms00993.750110187.7510113751112750 由表可见,DS18B20温度转换的时间比较长,而且庙宇的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前
32、面8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。 单片机可以通过单线接口读出该数据。读数据时,低位在先,高位在后,数据格式以0.0625C/LSB形式表示。温度值格式如图3.5所示:低字节232221202-12-22-32-4高字节SSSSS262524图3.5 温度数值格式3.2.3 DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图3.6,其引脚功能描述见表3.2。图3.6(底视图)表3.3 DS18B20详细引脚
33、功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。3.2.4 DS18B20的硬件接口DS18B20的硬件接口非常简单,图3.7和3.8给出了在两各供电方式下的硬件接口电路。图3.6为寄生电源供电,在过程温度测量和测量空间受限制的情况下特别有价值,寄生电源供电的原理是在数据线为高电平的时候“窃取”数据线的电源,电荷被存储在寄生供电电容上,用于在数据线为代的时候为设备提供电源。需要注意的是,DS1820在进行温度转换或者将高速缓存里面的数据复制到PRO
34、M中时,所需要的电流会达到1.5mA,超出了电容所能提供的电流,此时可采用如图3.7所示的一个MOSFET三极管来供电。图3.8为外部供电,当DS18B20采用外部供电时,只需将其数据线与单片机的一位双向端口相连就可以实现数据的传递。图3.7 寄生电源供电图3.8 外部供电3.2.5 DS18B20与AT89C51通信分析:当程序运行时,首先将DS18B20初始化,设置好要求的初始值,再调用温度读取子程序读取温度测量值,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号
35、位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。 DS18B20暂存寄存器分布寄存器内容字节地址温度值低位0温度值高位1高温限值TH2低温限值TL3配置寄存器4保留5保留6保留7CRC检验8根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,
36、主CPU收到此信号表示复位成功。 根据ROM指令表指令约定代码 功能读ROM 33H读DS1820ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位 ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。根据RAM指令表 指令约定代码功能温度变换44H启动
37、DS1820进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换
38、时的延时时间由2s减为750ms。根据上述工作编写相关子程序:1.读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。2温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。3计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。将以上子程序或单独调用或加入初始化中优化程序布局。温度数据的计算处理方法:从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18
39、B20的转换精度为912位可选项的,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.625,就是实际的二进制温度值。一个十进制值和二进制值之间有很明显的关系,就是把二进制的高字节的低半字节和低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0F,转换成十进制小数值就是0。0625的倍数(015)。采用1位显示小数,可以精确到0.1。3.2.6 DS18B20DS18B20的硬件连接很简单,但是需要相对复杂的软件进行补充。在对DS18B20进行读写编程时,必须严格保证读写
40、时序,否则将无法读取测温结果。对DS18B20进行软件操作的命令主要包括ROM操作命令和存储器命令。1ROM操作命令(1) 读命令(33H):通过该命令主机可以读出ROM中的8位系列产品代码、48位产品序列号和8位CRC码。(2) 选择定位命令(55H)多片DS18B20在线时,主机发出该命令和一个64位数列,DS18B20内部ROM与主机数列一致者,才响应主机发送的寄存器操作,其他的等待复位,也可用于单片DS18B20的情况。(3) 跳过ROM序列号检测命令(CCH):若系统只有一片DS18B20,该命令允许主机跳过ROM序列号检测,节省时间,对于多片的情况会发生冲突。(4) 查询命令(F0
41、H)该命令可以使主机查询到总路线上有多少个DS18B20,和它们的序列号。(5) 报警查询命令(ECH):该命令的操作过程和查询命令一样,但是仅当上次温度测量值已置们报警标志时,才会响应该命令2存储器命令(1) 写入命令(4EH)(2) 读出命令(BEH)(3) 复制命令(48H)(4) 开始转换命令 (44H)(5) 回调命令 (B8H)(6) 读电源标志命令 (B4H)3.3 按键输入电路设计按键输入电路可以由三个按键实现温度的设置输入,K1是复位按键,K2是温度上调按键,K3是温度下调按键,按键后系统自动调节温度设定值。原理是K2接单片机P3.2口,设置为预设温度个位调整。K3接P3.3
42、口,设置位预设温度十位调整。预定低电平为有效按键,采用去抖动子程序确定按键的有效性按键电路运行分析:当系统通电正常运行时,系统每一秒钟就对按键电路扫秒一次,扫描结束后,将扫描的结果送至系统中进行校验,如果有按键按下,则判断是那个键按下,在进行相关操作。例如,判断是K2按下,此按键设定为预设温度个位调整位,每检测一次有按键按下,则预设位就自动加一,当加到9时再加一则变为0.十位调整为调整方法相同。同时,在DS18B20里面的存储数据也会改变,进行温度的调整。其流程图如3.9所示:开始是否是K1按下是否K2键按下 数码显示返回主程序否否上调子程序下调子程序是是图3.9 按键输入电路图这种按键输入电
43、路的优点是按键少,程序设计简单,占用接口少,在需要按键少的情况下能满足要求。缺点是按键少,在设置温度的时候要重复按下按键,在设置操作上比较麻烦。在单片机设计中,矩阵键盘输入是一种很常用的方式,采用外部中断0控制键盘输入请求,键盘输入主要采用3x4矩阵键盘扫描技术。如图3.10所示,当按下“设置/切换”键时,进入恒定温度的设置,可从键盘中自由输入09的数字,如果输入错误可按“删除(*)”键进行删除,如果要设置偏差温度,再按一下“设置/切换”键,可进入偏差温度的设置,按“确定(#)”键,保存设置并退出键盘输入,进入温度控制状态。图3.10 键盘输入原理图为了避免从键盘输入的数据错误,该键盘输入电路
44、还为判断按键是否释放的功能做了铺垫,如图3.11所示,该电路由3个与门构成,当有键按下时SA、SB、SC、SD端中将会有一个为低电平,此时与门的SS端将会输出低电平,同时控制了单片机的P0.7端口,再通过软件控制按键是否释放。图3.11 判断是否有键按下矩阵键盘的优点是在按键较多,设置有从0到9和确定、删除键,输入方便、直观,而且输入是不用重复按一个键,输入快速,矩阵键盘具有很强的通用性,能适应各种场合,只需要编写好程序就能方便使用。缺点是硬件接口比较复杂,因为矩阵键盘扫描方式很复杂,所以编写程序也很复杂。在上述两种按键输入电路中,虽然矩阵键盘比较复杂,但是考虑到它的通用性和简单使用性,本设计
45、还是选择了矩阵键盘,在复杂的程序编写后能够很方便使用。3.4 LED显示电路设计用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。静态显示数据稳定,使用的硬件较多。静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式各位数码管相互独立,公共端恒定接地(共阴极)获接正电源(共阳极)每个数码管的8个字段分别与一个8位I/O地址相连,I/O口只要有断码输出,相应字符即显示出来并保持不变直动I/O口输出新的端码采用静态显示的方式。较小的电流即可获得较大亮度。且占用CPU时间少编程简单,显示,便于检测和控制
46、,但其占用口线多,硬件电路复杂、成本高,只适合于显示位数较少场合。如图3.12图3.12 LED静态显示动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。动态显示是一位一位地轮流点亮各位数码管。这种逐位点亮显示方式称为位扫描。通常各位数码管的段选线相应并联在一起由8位I/O口控制。各位选线(公共阴极或阳极)有另外I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管。并送出相应端码,在另一位数码管并送出相应的端码。依此规律循环,即可使各位数码管显示将要显示字符。虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每