毕业设计(论文)-基于单片机的温度检测控制系统设计.doc_第1页
毕业设计(论文)-基于单片机的温度检测控制系统设计.doc_第2页
毕业设计(论文)-基于单片机的温度检测控制系统设计.doc_第3页
毕业设计(论文)-基于单片机的温度检测控制系统设计.doc_第4页
毕业设计(论文)-基于单片机的温度检测控制系统设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

III基于单片机的温度检测控制系统设计摘 要随着控制理论和电子技术的发展,工业控制器的适应能力增强和高度智能化正逐步成为现实。其中以单片机为核心实现的数字控制器因其体积小、成本低、功能强、简便易行而得到广泛应用。PID温度控制器作为一种重要的控制设备,在化工、食品等诸多工业生产过程中得到了广泛的应用。本文主要讨论在过程控制中得到广泛应用的数字PID控制在单片机温度控制系统中的应用。本设计阐述了基于单片机的温度控制系统的硬件组成、软件设计及相关的接口电路设计。并且充分考虑了系统的可靠性,采取了相应的措施予以保证。针对控制对象的特点,在系统辨识的基础上对系统的控制算法进行了仿真研究,并在单片机系统中实现了控制算法。最后针对温控系统进行了实验,通过对实验数据的分析表明本文所述的基于单片机的温度控制系统的设计的合理性和有效性。关键词:单片机,温度控制Design of Temperature Control System Based on MicrocontrollerABSTRACTWith the improvement of control theory and electric technology,the intelligent control for industry has been accomplishing.The digital controller based on Microcontroller has been applied widely,as its cabinet cubage,low-cost,abundant function,simple and convenientPID temperature controller,as all important control device,have been widely used in producing chemical products,foods and many other fieldsThe paper mainly introduces the application of the digital PID control algorithm,which,at present,is popularly used in digital control system,in Microcontroller temperature control systemThe hardware and software of the temperature control system and the design of relevant interface circuit are described in this paperThe reliability of the system is considered,and a series of measures are realizedAccording to the difficulty to control of the system,methods of system control are analyzed based on the system identification,and realized the control algorithm in the Microcontroller system.The experiment data shows that the design oftemperature control system based on Microcontroller iS availability and rationalityKEY WORDS:Microcontroller ,temperature control system 目 录摘要IABSTRACTII1 绪论11.1 选题背景11.2 温度测控技术的发展与现状11.2.1 定值开关控温法21.2.2 PID线性控温法21.2.3 智能温度控制法21.3 系统总体设计方案31.3.1系统性能要求及特点31.3.2 系统硬件方案分析31.3.3 系统软件方案分析41.4 本文主要工作52 硬件设计62.1 系统硬件总体结构62.2 主控模块器件选型及设计62.2.1 单片机的选用62.2.2 单片机介绍72.2.3 主控模块设计132.3 输入通道设计132.3.1 AD590温度传感器142.3.2 AD转换142.4.可控硅输出电路172.5 硬件抗干扰措施182.6 本章小结183 软件设计193.1 软件设计思想193.2 软件组成203.3 主程序模块203.4 数据处理模块243.5 数字滤波243.6 显示处理243.7 软件抗干扰措施243.8 本章小结254 系统调试264.1 TKS仿真器与集成开发环境KEIL264.1.1 TKS仿真器264.1.2 集成开发环境KEIL264.1.3 利用KEIL开发系统软件流程274.2 系统硬件调试284.3 系统软件调试284.4 本章小结295 结论与展望305.1 结论305.2 展望30致 谢32参考文献33附录3531基于单片机的温度检测控制系统设计1 绪论1.1 选题背景温度是生活及生产中最基本的物理量,它表征的是物体的冷热程度。自然界中任何物理、化学过程都紧密的与温度相联系。在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。在实际的生产实验环境下,由于系统内部与外界的热交换是难以控制的,其他热源的干扰也是无法精确计算的,因此温度量的变化往往受到不可预测的外界环境扰动的影响。为了使系统与外界的能量交换尽可能的符合人们的要求,就需要采取其他手段来达到这样一个绝热的目的,例如可以让目标系统外部环境的温度与其内部温度同步变化。根据热力学第二定律,两个温度相同的系统之间是达到热平衡的,这样利用一个与目标系统温度同步的隔离层,就可以把目标系统与外界进行热隔离。 另外,在大部分实际的环境中,增温要比降温方便得多。因此,对温度的控制精度要求比较高的情况下,是不允许出现过冲现象的,即不允许实际温度超过控制的目标温度。特别是隔热效果很好的环境,温度一旦出现过冲,将难以很快把温度降下来。这是因为很多应用中只有加热环节,而没有冷却的装置。同样道理,对于只有冷却没有加热环节的应用中,实际温度低于控制的目标温度,对控制效果的影响也是很大的。鉴于上述这些特点,高精度温度控制的难度比较大,而且不同的应用环境也需要不同的控制策略。下面就简要的讨论一下温度测控技术的发展与现状。1.2 温度测控技术的发展与现状近年来,温度的检测在理论上发展比较成熟,但在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。温度测控技术包括温度测量技术和温度控制技术两个方面。在温度的测量技术中,接触式测温发展较早,这种测量方法的优点是:简单、可靠、低廉、测量精度较高,一般能够测得真实温度;但由于检测元件热惯性的影响,响应时间较长,对热容量小的物体难以实现精确的测量,并且该方法不适宜于对腐蚀性介质测温,不能用于超高温测量,难于测量运动物体的温度。另外的非接触式测温方法是通过对辐射能量的检测来实现温度测量的方法,其优点是:不破坏被测温场,可以测量热容量小的物体,适于测量运动物体的温度,还可以测量区域的温度分布,响应速度较快。但也存在测量误差较大,仪表指示值一般仅代表物体表观温度,测温装置结构复杂,价格昂贵等缺点。因此,在实际的温度测量中,要根据具体的测量对象选择合适的测量方法,在满足测量精度要求的前提下尽量减少投入。温度控制技术按照控制目标的不同可分为两类:动态温度跟踪与恒值温度控制。动态温度跟踪实现的控制目标是使被控对象的温度值按预先设定好的曲线进行变化。在工业生产中很多场合需要实现这一控制目标,如在发酵过程控制,化工生产中的化学反应温度控制,冶金工厂中燃烧炉中的温度控制等;恒值温度控制的目的是使被控对象的温度恒定在某一给定数值上,且要求其波动幅度(即稳态误差)不能超过某允许值。本文所讨论的基于单片机的温度控制系统就是要实现对温控箱的恒值温度控制要求,故以下仅对恒值温度控制进行讨论。从工业控制器的发展过程来看,温度控制技术大致可分以下几种:1.2.1 定值开关控温法所谓定值开关控温法,就是通过硬件电路或软件计算判别当前温度值与设定目标温度值之间的关系,进而对系统加热装置(或冷却装置)进行通断控制。若当前温度值比设定温度值高,则关断加热器,或者开动制冷装置;若当前温度值比设定温度值低,则开启加热器并同时关断制冷器。这种开关控温方法比较简单,在没有计算机参与的情况下,用很简单的模拟电路就能够实现。目前,采用这种控制方法的温度控制器在我国许多工厂的老式工业电炉中仍被使用。由于这种控制方式是当系统温度上升至设定点时关断电源,当系统温度下降至设定点时开通电源,因而无法克服温度变化过程的滞后性,致使被控对象温度波动较大,控制精度低,完全不适用于高精度的温度控制。1.2.2 PID线性控温法这种控温方法是基于经典控制理论中的调节器控制原理,控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好、可靠性高等优点被广泛应用工业过程控制中,尤其适用于可建立精确数学模型的确定性控制系统。由于调节器模型中考虑了系统的误差、误差变化及误差积累三个因素,因此,其控制性能大大地优越于定值开关控温。其具体控制电路可以采用模拟电路或计算机软件方法来实施调节功能。前者称为模拟控制器,后者称为数字控制器。其中数字控制器的参数可以在现场实现在线整定,因此具有较大的灵活性,可以得到较好的控制效果。采用这种方法实现的温度控制器,其控制品质的好坏主要取决于三个参数(比例值、积分值、微分值)。只要参数选取的正确,对于一个确定的受控系统来说,其控制精度是比较令人满意的。但是,它的不足也恰恰在于此,当对象特性一旦发生改变,三个控制参数也必须相应地跟着改变,否则其控制品质就难以得到保证。1.2.3 智能温度控制法为了克服线性控温法的弱点,人们相继提出了一系列自动调整参数的方法,如参数的自学习,自整定等等。并通过将智能控制与控制相结合,从而实现温度的智能控制。智能控温法以神经网络和模糊数学为理论基础,并适当加以专家系统来实现智能化。其中应用较多的有模糊控制、神经网络控制以及专家系统等。尤其是模糊控温法在实际工程技术中得到了极为广泛的应用。目前已出现一种高精度模糊控制器,可以很好的模拟人的操作经验来改善控制性能,从理论上讲,可以完全消除稳态误差。所谓第三代智能温控仪表,就是指基于智能控温技术而研制的具有自适应算法的温度控制仪表。目前国内温控仪表的发展,相对国外而言在性能方面还存在一定的差距,它们之间最大的差别主要还是在控制算法方面,具体表现为国内温控仪在全量程范围温度控制精度比较低,自适应性较差。这种不足的原因是多方面造成的,如针对不同的被控对象,由于控制算法的不足而导致控制精度不稳定。1.3 系统总体设计方案本系统以AT89C52单片机为核心,利用AD590温度传感器进行温度测量,组成一个集温度采集、显示、处理、自动控制为一身的闭环控制系统。系统的技术指标如下(1)能对55+125。(范围内的各种环境温度进行精确测量,测量精确度为1,误差为0.3)(2)能对所测环境温度进行实时显示。(3)能方便设置所要控制的温度范围,能对所测温度进行智能控制。1.3.1系统性能要求及特点(1)系统性能要求:(a)可以人为方便地通过控制面板或PC机设定控制期望的温度值,系统应能自动将温控箱加热至此设定温度值并能保持,直至重新设定为另一温度值,即能实现温度的自动控制;(b)能够实现对温控箱温度的测量并且通过控制面板上的液晶显示实时的显示出来;(C) 模块化设计,安装拆卸简单,维修方便;(d)系统可靠性高,不易出故障;(e)尽量采用典型、通用的器件,一旦损坏,易于在市场上买到同样零部件进行替换。鉴于上述系统功能要求以及智能仪表应具有的体积小、成本低、功能强、抗干扰并尽可能达到更高精度的要求。本系统在硬件设计方面具有如下特点:控制主板采用AT89C52作为核心芯片。作为与MCS一51系列兼容的单片机,无论在运算速度,还是在内部资源上均可胜任本系统的性能要求。1.3.2 系统硬件方案分析目前,温度控制仪的硬件电路一般采用(Analog Circuit) (Microcontroller) 模拟电路和单片机两种形式。模拟控制电路的各控制环节一般由运算放大器、电压比较器、模拟集成电路以及电容、电阻等外围元器件组成。它的最大优点是系统响应速度快,能实现对系统的实时控制。根据计算机控制理论可知,数字控制系统的采样速率并非越快越好,它还取决于被控系统的响应特性。在本系统中,由于温度的变化是一个相对缓慢的过程,对温控系统的实时性要求不是很高,所以模拟电路的优势得不到体现。另外,模拟电路依靠元器件之间的电气关系来实现控制算法,很难实现复杂的控制算法。单片机是大规模集成电路技术发展的产物,属于第四代电子计算机。它是把中央处理单元CPU(Central Processing Unit)、随机存取存储器RAM(RandomAccess Memory)、只读存储器ROM(Read only Memory)、定时计数器以及IO(InputOutput)输入输出接口电路等主要计算机部件都集成在一块集成电路芯片上的微型计算机,它的特点是:功能强大、运算速度快、体积小巧、价格低廉、稳定可靠、应用广泛。由此可见,采用单片机设计控制系统,不仅可以降低开发成本,精简系统结构,而且控制算法由软件实现,还可以提高系统的兼容性和可移植性。另外,随着微电子技术和半导体工业的不断创新和发展,片上系统SOC(System On Chip)得到了十足的发展。一些厂家根据系统功能的复杂程度,将这种SOC芯片应用到先进的控制仪表中。SOC芯片通常含有一个微处理器核(CPU),同时,它还含有多个外围特殊功能模块和一定规模的存储器(RAM和ROM),并且这种片上系统一般具有用户自定义接口模块,使得其功能非常强大,适用领域也非常广。它不仅能满足复杂的系统性能的需要,而且还使整个系统的电路紧凑,硬件结构简化。从实现复杂系统功能和简化硬件结构的角度出发,SOC是实现温度控制系统的最佳选择,但目前市场上SOC的价格还比较昂贵,并且SOC的封装形式几乎都采用贴片式封装,不利于实验电路板的搭建。从降低成本,器件供货渠道充足的角度看,应用单片机实现温度控制系统是比较经济实用的。目前,市面上的单片机不仅种类繁多,而且在性能方面也各有所长。AT89C52单片机是ATMEL公司出品的与MCS51系列兼容的低电压、高性能CMOS 8位单片机。本系统选择AT89C52为核心器件组成的控制系统。此外,在选取外围扩展芯片时,本着节约成本的原则,尽量选取典型的、易于扩展和替换的芯片及器件。1.3.3 系统软件方案分析目前,MCS5 1单片机的开发主要用到两种语言:汇编语言和C语言。与汇编语言相比,C语言具有以下的特点:(1)具有结构化控制语句结构化控制语言的显著特点是代码和数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护及调试;(2)适用范围大和可移植性好 同其他高级语言一样,C语言不依赖于特定的CPU,其源程序具有良好的可移植性。目前,主流的CPU和常见的MCU都有c编译器。加之集成开发环境KEIL编译生成的代码效率很高(仅比汇编语言生成的代码效率低10一15)。所以,本系统的软件选择使用c语言开发。由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块间数据关系松散的原则,将各功能模块组织成模块化的软件结构。1.4 本文主要工作(1)在对温度控制发展现状、系统控制要求进行研究的基础上,选择了整个控制系统的控制设计;(2)系统的硬件设计,包括采样电路、AD转换电路、主控制电路、保护电路等等的设计;(3)该系统的软件设计,包括主程序模块、控制运算模块、数据输入输出及处理模块等一些子功能模块的设计;(4)该系统的控制策略。在建立温度控制系统数学模型的基础之上,通过对控制的分析设计了系统控制器;2 硬件设计2.1 系统硬件总体结构温度控制系统硬件部分按功能大致可以分为以下几个部分:单片机主控模块、输入通道、输出通道、保护电路等。硬件总体结构框图如图2-1所示。由结构框图可见,温度控制系统以AT89C52单片机为核心,并扩展外部存储器成主控模块。再通过8位的AD转换器ADC0809转换成数字量。此数字量经过数字滤波之后,一方面将测得的室内温度通过控制面板上的液晶显示器显示出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,采用控制算法进行运算,最后通过控制电炉达到对室内温度进行控制的目的。图2-1系统硬件图2.2 主控模块器件选型及设计2.2.1 单片机的选用针对一定的用途,恰当的选择所使用的单片机是十分重要的。有句古话为“杀鸡焉用牛刀就是说做事要选用合适的工具。对于明确的应用对象,选择功能过少的单片机,无法完成控制任务;选择功能过强的单片机,则会造成资源浪费,使产品的性能价格比下降。目前,市面上的单片机不仅种类繁多,而且在性能方面也各有不同。在实际应用中,针对不同的需求要选择合适的单片机,选择单片机时要注意下几点:(1)单片机的基本性能参数,例如指令执行速度,程序存储器容量,中断能力及IO口引脚数量等;(2)单片机的增强功能,例如看门狗,双串口,RTC(实时时钟),EEPROM,CAN接口等;(3)单片机的存储介质,对于程序存储器来说,Flash存储器和OTP(一次性可编程)存储器相比较,最好是选择Flash存储器;(4)芯片的封装形式,如DIP封装,PLCC封装及表面贴附封装等。选择DIP封装在搭建实验电路时会更加方便一些;(5)单片机的工作电压范围,例如设计电视机遥控器时,使用2节干电池供电,至少选择的单片机能够在5V电压工作;(6)单片机的抗干扰性能好;根据上面所述的原则,结合本系统实际情况综合考虑,设计讨论的温度控制系统选用ATMEL公司生产的AT89C52单片机作为主控模块的核心芯片2.2.2 单片机介绍本系统选用ATMEL公司生产的AT89系列单片机中的AT89C52,AT89C52单片机是一种新型的低功耗、高性能的8位CMOS微控制器,与工业标准MCS51指令系列和引脚完全兼容。具有超强的三级加密功能,其片内闪电存储器(FlashMemory)的编程与擦除完全用电实现,数据不易挥发,编程擦除速度快。AT89C52单片机DIP封装的引脚如图2-2所示。AT89C52的主要特点有:(1)内部程序存储器为电擦除可编程只读存储器EEPROM,容量8KB,内部数据存储器容量256字节,最大寻址空间64KB;(2)三个16Ate_定时计数器;(3)可利用两根IO口线作为全双工的串行口,有四种工作方式,可通过编程设定;(4)内部ROM中开辟了四个通用工作寄存器区,共32个通用寄存器,以适应多种中断或子程序嵌套的情况;(5)6个中断源,分为两个中断优先级,每个中断源优先级都是可编程的;(6)内部有一个由直接可位寻址组成的布尔处理机,在指令系统中包含了一个指令子集,专门用于对布尔处理机的各位进行各种布尔处理,特别适用于控制目的和解决逻辑问题;(7)AT89C52的状态周期由晶体振荡器2分频后获得,作为芯片工作的基本时间单位,在采用12MHz晶振时,AT89C52的状态周期为(212)x10-6=167ns。图2-2 PDIP封装的AT89C52引脚图AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主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脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFE),SFR 的地址空间。并非所有的地址都被定义,从80HFFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52除了与AT89C51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于T2CON,T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2 在16位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2 口)地址单元。MOV 0A0H,#data间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中,R0 的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)。MOV R0,#data堆栈操作也是间接寻址方式,所以,高128 位数据RAM 亦可作为堆栈区使用。定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最 高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。在捕获方式下,通过T2CON 控制位EXEN2 来选择两种方式。如果EXEN2=0,定时器2 是一个16 位定时器或计数器,计数溢出时,对T2CON 的溢出标志TF2 置位,同时激活中断。如果EXEN2=1,定时器2 完成相同的操作,而当T2EX 引脚外部输入信号发生1 至0 负跳变时,也出现TH2 和TL2 中的值分别被捕获到RCAP2H 和RCAP2L中。另外,T2EX 引脚信号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2也会激活中断。当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON的DCEN 位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,当DCEN=0 时,定时器2 自动设置为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果中断允许,同样产生中断。定时器2 的中断入口地址是:002BH 0032H 。当DCEN=1 时,允许定时器2 向上或向下计数。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装载到TH2 和TL2 中。 T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。波特率发生器:当T2CON中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能。若RCLK 和TCLK 置位,则定时器2工作于波特率发生器方式。波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16位数值重新装载,该数值由软件设置。在方式1 和方式3 中,波特率由定时器2 的溢出速率根据下式确定:方式1和3的波特率=定时器的溢出率/16定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。波特率的计算公式如下:方式1和3的波特率=振荡频率/32*65536-(RCP2H,RCP2L)式(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16位无符号数。定时器2 作为波特率发生器使用的电路。T2CON 中的RCLK 或TCLK=1时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使TF2 置位,故而不产生中断。但若EXEN2 置位,且T2EX 端产生由1 至0 的负跳变,则会使EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2 和TL2 中。所以,当定时器2 作为波特率发生器使用时,T2EX 可作为附加的外部中断源来使用。需要注意的是,当定时器2 工作于波特率器时,作为定时器运行(TR2=1)时,并不能访问TH2 和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。然而,对RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器2或RCAP2 寄存器之前,应将定时器关闭(清除TR2)。定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号,如图8 所示。P1.0 引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输出时钟频率范围为61Hz4MHz。当设置定时/计数器2 为时钟发生器时,C/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:输出时钟频率=振荡器频率/4*65536-(RCP2H,RCP2L)在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2 作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L和RCAP2L。AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用陶瓷谐振器建议选择40pF10pF。用户也可以采用外部时钟。采用外部时钟的电路如图10 右图所示。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期内查询到该标志。在空闲工作模式状态,CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。AT89C52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息。AT89C52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM 程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。AT89C52 有3 个程序加密位,可对芯片上的3 个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。当加密位LB1 被编程时,在复位期间,EA 端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA 电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。AT89C52 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。Ready/Busy:字节编程的进度可通过“RDY/BSY 输出信号监测,编程期间,ALE 变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4 变为高电平表示准备就绪状态。程序校验:如果加密位LB1、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。芯片擦除:利用控制信号的正确组合(表6)并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。读片内签名字节:AT89C52 单片机内有3 个签名字节,地址为030H、031H 和032H。用于声明该器件的厂商、型号和编程电压。读AT89C52 签名字节需将P3.6 和P3.7 置逻辑低电平,读签名字节的过程和单元030H、031H 及032H 的正常校验相仿。2.2.3 主控模块设计主控模块电路由AT89C52单片机、外部时钟电路、复位电路、存储器扩展电路组成。2.3 输入通道设计系统输入通道的作用是室内的温度(非电量)通过传感器电路转化为电量(电压或电流)输出,本系统就是将温度转化为电压的输出。由于此时的电量(电压)还是单片机所不能识别的模拟量,所以还需要进行AD转换,即将模拟的电量转化成与之对应的数字量,提供给单片机判断和控制。输入通道由传感器、AD转换等电路组成。2.3.1 AD590温度传感器温度传感器的种类比较繁杂,各种不同的温度传感器由于其构成材料、构成方式及测温原理的不同,使得其测量温度的范围、测量精度也各不相同。因此,在不同的应用场合,应选择不同的温度传感器。根据综合因素我们选择AD590作为温度传感器。AD590的引脚如图2-3。AD590有以下特点:(1)流过器件的电流(A) 等于器件所处环境的热力学温度(开尔文) 度数:Ir/T=1 (1) 式中,Ir流过器件(AD590) 的电流,单位为A;T热力学温度,单位(2)测温范围 55+125,固有测温分辨率0.3。 (3)AD590的电源电压范围为430 V,可以承受44 V正向电压和20 V反向电压,因而器件即使反接也不会被损坏;(4) 工作电源: 35V/DC (5)输出电阻为710 m; 图2-3 AD590引脚图2.3.2 AD转换在单片机控制系统中,控制或测量对象的有关变量,往往是一些连续变化的模拟量,如温度、压力、流量、位移、速度等物理量。但是大多数单片机本身只能识别和处理数字量,因此必须经过模拟量到数字量的转换(AD转换),才能够实现单片机对被控对象的识别和处理。完成AD转换的器件即为AD转换器。AD转换器的主要性能参数有:(1) 分辨率分辨率表示AD转换器对输入信号的分辨能力。AD转换器的分辨率以输出二进制数的位数表示;(2) 转换时间转换时间指AD转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。不同类型的转换器转换速度相差甚远;(3) 转换误差转换误差表示AD转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示;(4) 线性度线性度指实际转换器的转移函数与理想直线的最大偏移。目前有很多类型的AD转换芯片,它们在转换速度、转换精度、分辨率以及使用价值上都各具特色,综合全部因素设计决定采用美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器ADC0809。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片主要特性:(1)8路输入通道,8位A/D转换器,即分辨率为8位。 (2)具有转换起停控制端。 (3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) (4)单个+5V电源供电 (5)模拟输入电压范围0+5V,不需零点和满刻度校准。 (6)工作温度范围为-40+85摄氏度 (7)低功耗,约15mW。ADC0809是CMOS单片型逐次逼近式A/D转换器,8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。 ADC0809芯片有28条引脚,采用双列直插式封装如图2-4。IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns

温馨提示

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

评论

0/150

提交评论