四回路控制器软件设计_第1页
四回路控制器软件设计_第2页
四回路控制器软件设计_第3页
四回路控制器软件设计_第4页
四回路控制器软件设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

论文题目:四回路控制器软件设计专业:自动化本科生:解肖华(签名)____指导教师:王再英(签名)____摘要本文较为系统、全面的叙述了四回路控制器的设计过程,以控制系统的发展为基础,从设计的功能要求、硬件电路原理分析、软件设计思路以及系统的调试过程等方面对设计过程进行了详细的说明。该系统由主控制器、测温电路、显示电路及控制电路四大部分组成,芯片使用了ATMEL公司的AT89S52单片机和美国DALLAS公司的DS18B20数字温度传感器。本文针对AT89S52单片机的性能和工作原理做了简单介绍;同时对测量范围在-55~+125℃之间的数字温度传感器DS18B20做了详细介绍。对软、硬件的各个模块,逐步分析设计,画出各模块流程图。经过反复的模拟运行、调试,最该系统可应用于粮食仓储系统、楼宇自动化系统、空调系统的温度检测和生产过程监控等领域。关键词四回路控制器,单片机AT89S52,温度传感器DS18B20,控制继电器Subject:SoftwareDesignofFour-loopControllerSpecilty:AutomationName:XieXiaohua(Signature)____Instructor:WangZaiying(Signature)____ABSTRACTAdesignedaboutthefour-loopcontrollerbaseonthedevelopmentofthecontrolsystemisdiscussedsystematicallyandcomprehensivelyinthispaper.Inthispapergiveadetaildiscussedaboutthefunctionalrequirements,thehardwarecircuittheoryanalysis,thesoftwaredesign,debuggingprocessofthesystemandotheraspectsofthedesign.Thesystemincludedfourmajorcomponents:themaincontroller,temperaturemeasurementcircuits,displaycircuitsandcontrolcircuits.ThesystemusedAT89S52SCMofATMELCompanyandDS1820digitaltemperaturetransduceroftheUnitedStatesDALLAScompany.First,theperformanceandworkingprincipleofSCMAT89S52simplyisintroducedinthispaper.Second,DS18B20isusedasatemperaturedetector,whichthetemperaturemeasuringscopewasbetween-55and+125℃.Thisarticlekeytothehardware,thesoftwarecompositioncarriedonthesub-item,themodulationhasanalyzedthedesigngraduallyanddrawflowchartofeachmodule.Atlast,theexperimentshowsthatthesystemcanThesystemcanbeappliedingrainstoragesystems,buildingautomationsystems,air-conditioningsystems,temperaturetestingandproductionprocessmonitoringandotherfields.KEYWORDSFour-loopcontroller,SinglechipprocessorAT89S52,TemperaturetransducerDS18B20,ControlrelayPAGEII目录前言 1第1章绪论 21.1计算机控制系统发展概况 21.1.1可编程控制器(PLC) 21.1.2采用新型的控制系统 21.1.3实现最优控制 21.1.4自适应控制 21.1.5人工智能 31.1.6模糊控制 31.1.7模型预测控制 31.2过程控制系统国内外发展概况 31.2.1局部自动化阶段 31.2.2集中控制阶段 41.2.3集散控制阶段 41.3本课题研究目的及意义 41.4论文主要研究内容 51.4.1熟悉一种单片机及编程语言 51.4.2掌握温度传感器DS18B20软件编程 61.4.3完成软件设计,进行软硬件联合调试 6第2章基于AT89S52的四回路控制系统功能要求 82.1四回路控制系统工作原理 82.2四回路温度控制工作原理 8第3章基于AT89S52单片机的系统硬件电路设计 103.1单片机最小系统 103.1.1系统组成及工作原理 103.1.2AT89S52单片机结构 103.1.3AT89S52单片机功能特性描述 113.1.4单片机AT89S52外部引脚说明 113.2基于DS18B20的温度采集电路 133.2.1温度传感器DS18B20结构及工作原理 143.2.2温度传感器DS18B20性能特点 153.2.3DS18B20工作时序 153.2.4DS18B20常用ROM命令 173.2.5DS18B20使用中注意事项 183.3显示驱动电路 193.4继电器控制电路 193.5按键控制电路 19第4章基于AT89S52单片机的系统软件设计 214.1概述 214.2系统软件需求分析 214.3系统各部分程序设计方案及流程图 214.3.1主程序模块 214.3.2继电器控制电路模块 224.3.3读取温度模块 244.3.4按键控制模块 294.3.5按键扫描模块 314.3.6LED数码显示子程序 324.3.7延时(1MS)子程序 334.3.8温度转换子程序 344.3.9数据处理子程序 35第5章调试结果及讨论 365.1硬件调试 365.2软件调试 365.3软硬件实时调试 375.4结果分析及讨论 385.4.1系统理论运行结果 385.4.2系统实际调试结果 385.5设计中遇到的问题及讨论 39致谢 40参考文献 41论文小结 42附录 44附录1系统总体程序设计 44附录2系统总体硬件设计电路图 59附录3实物图 60PAGE59前言在工农业生产和科学实验中,通常需要对分布在生产现场的各处温度进行实时监控,以保障生产现场的安全运行。这个工作如果靠人工去完成,既费人力,又难以做到准确、及时。由单片机、温度传感器、相应控制电路以及检测仪表组成的巡回检测系统,可以实现对多路温度的自动巡回检测,相对于单回路控制系统,多回路控制系统可以做到节能、高效、省材,大大地提高了经济效率。单片机四回路温度控制系统采用四个温度传感器满足温度采集,将采集到的各路温度值,经单片机处理通过驱动电路显示于共阴极数码显示器。该温度控制系统可实现四个不同区域温度的测量。还具有超温报警和自动控制功能,当温度超过某一设定值时,系统控制继电器来可以实现声、光报警功能。由以上大致分析,整个控制系统将由AT89S52单片机为核心构成,采用四路温度传感器DS18B20对分布在生产现场的四个不同区域进行温度巡检,单片机对测量结果(包括历史数据)进行整理、存储和显示,并且通过按键控制,将处理后的温度值送到LED数码显示器显示出来,并由软件保证系统的抗干扰能力。当某回路温度超出限值时,发出声、光报警,提醒操作人员引起注意并及时进行处理,避免事故的发生,保障控制系统的安全、可靠运行。本文详细介绍了四回路控制系统的发展背景、功能设计要求、硬件电路设计原理、系统软件设计思想以及系统的调试结果和问题讨论。本文中所提供的完整源程序清单及电路原理设计图有助于读者分析和实验验证。本文设计的系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、空调系统的温度检测、石化、机械等。本文在编写中得到了电气与控制工程学院各位老师的大力支持和热情帮助,尤其是我的指导老师王再英老师,在此对你们表示忠心的感谢!

编者2008年6月第1章绪论1.1计算机控制系统发展概况随着现代化工业生产过程复杂性与集成度的提高,计算机控制系统已发展到了一个崭新的阶段。计算机控制系统利用计算机的软件和硬件代替自动控制系统的控制器,它以自动控制理论和计算机为基础,综合了计算机、自动控制和生产过程多方面的知识,是测量技术、计算机技术、通信技术和控制理论的结合。由于计算机具有大量存储信息的能力、强大的逻辑判断能力及快速运算的能力,使计算机控制能够解决常规控制所不能解决的难题,能够达到常规控制达不到的优异的性能指标,其发展前景是非常广阔的。1.1.1可编程控制器(PLC)可编程控制器是用于控制生产过程的新型自动控制装置。它可以将顺序控制和过程控制结合起来,实现对生产的控制,并具有很高的可靠性。目前,PLC的应用非常广泛,在冶金、机械、石化、过程控制等工业领域中均得到了广泛的应用,它可以代替传统的继电器完成开关量控制,如输入、输出、定量、计数等。不仅如此,它还可以和上位机一起构成复杂的控制系统,完成对温度、压力、流量、液位、成分等各种参数的自动检测和过程控制。1.1.2采用新型的控制系统(1)广泛使用智能调节器智能调节器不仅可以接受4~20mA电流信号,还具有RS-232C或RS-485通信接口,可与上位机一起组成分布式测控网络。(2)采用新型的DCS和FCS发展以位总线和现场总线技术等先进网络通信技术为基础的DCS和FCS控制结构,采用先进的控制策略,向低成本综合自动化系统的方向发展,实现计算机集成制造系统(CIMS)。1.1.3实现最优控制最优控制是恰当地选择控制规律,在控制系统的工作条件不变以及某些物理条件的限制下,使用系统的某种性能指标取得最大值或最小值,即获得最好的经济效益。1.1.4自适应控制在最优控制系统中,当被控对象的工作条件发生变化时,就不再是最优状态了。若系统在本身工作条件变化的情况下,能自动地改变控制规律,使系统仍能处于最佳工作状态,其性能指标仍能取到最佳,这就是自适应控制。1.1.5人工智能人工智能是用计算机来模拟人工所从事的推理、学习、思考、规划等思维活动,从而解决人类专家才能解决的复杂问题。其中最具有代表性的两个尖端领域是专家系统和机器人。1.1.6模糊控制在自动控制领域中,对于难以建立数学模型、非线性和大滞后的控制对象,模糊控制技术具有很好的适应性。模糊控制是以模糊集合论、模糊语言变量及模糊逻辑推理为基础的一种计算机数字控制。模糊控制是一种非线性控制,属于智能控制的范畴。1.1.7模型预测控制由于工业对象通常是多输入、多输出的复杂关联系统,具有非线性、时变性、强耦合与不确定性等特点,难以得到精确的数学模型。面对理论发展和实际应用之间的不协调。在工业过程控制领域内,首先出现了一类新型计算机控制算法,如动态矩阵控制、模型算法控制,这类算法以对象的阶跃响应或脉冲响应作为模型,采用动态预测、滚动优化的策略,具有易于建模、鲁棒性强的显著优点,十分适合复杂工业过程的特点和要求。1.2过程控制系统国内外发展概况过程控制是自动化技术的重要分支,在石化、电力、冶金、轻工等连续型生产过程中有着广泛的应用。近年来,过程控制技术本身及其应用领域得到了迅速发展。1.2.1局部自动化阶段20世纪40年代以前,工业生产技术水平相对落后,生产过程大多处于手工操作状态生产效率低。20世纪50年代,过程控制技术开始得到发展。在这一阶段,过程控制系统绝大多数是单输入—单输出系统;被控参数主要有温度、压力、流量和物位四种参数;控制的目的是保持这些工艺参数的稳定,确保生产安全。20世纪60年代,先后出现了气动和电动的单元组合仪表,采用了集中监控与集中操作的控制系统,实现了工厂仪表化和局部自动化。1.2.2集中控制阶段随着电子技术的迅速发展,集成电路取代了分立元件,电子仪表的可靠性大为提高逐步取代了气动仪表。过程控制系统大量采用单元组合仪表和组装式仪表,生产过程实现集中监控,开发使用了多种复杂控制系统方案,如串级控制、前馈控制、比值控制、均匀控制等,与此同时,计算机开始在过程控制领域中应用。1.2.3集散控制阶段20世纪70年代,随着大规模集成电路出现及微处理器的问世,计算机的性价比和可靠性大为提高,采用冗余技术和自诊断措施的工业计算机完全满足工业控制对可靠性的要求。基于“集中管理,分散控制”理念,在数字化仪表和计算机与网络技术基础上开发的集散型控制系统DCS自大型生产过程控制中得到了广泛应用。过程控制系统的结构也由单变量控制系统发展到多变量系统,由生产过程的定值控制发展到最优控制、自适应控制。十九世纪世界工业革命以来,工业生产过程经过了由简单到复杂、规模由小到大的不断发展,出现了许多大型化、现代化、多品种、精细化的过程生产系统,自适应控制、预测控制、专家控制、模糊控制、神经网络控制、动态矩阵控制等。1.3本课题研究目的及意义随着科技的飞速发展和工业自动化水平的不断提高,工业生产中,为了能够有效地控制生产过程、保证生产安全、保证产品的质量和提高生产效率,通常需要实时监控分布在生产现场各处检测仪表的指示值,如温度、压力、流量等。由计算机、传感器、相应控制电路等元件和检测仪表组成的巡回检测系统,可以实现对多路物理量的自动巡回检测,相对单回路控制系统,多回路控制系统可以做到节能、高效、省材,大大地提高了经济效率。在本设计中,四回路所检测的物理量均是温度,整个控制原理是这样实现的,通过单片机控制,可以依次对不同点的温度进行测量,通过按键控制,将转换结果送到LED数码显示器显示出来,当某回路温度超出规定值时发出声、光报警。提醒操作人员引起注意并及时进行处理,避免事故的发生,保障控制系统的安全、可靠运行。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温度控制过程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。1.4论文主要研究内容1.4.1熟悉一种单片机及编程语言(1)单片机AT89S52该次设计中,主控制器选择的是AT89S52单片机,它是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51的指令和引脚完全兼容。AT89S52可以为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:·8k字节Flash,256字节RAM,32位I/O口线;·看门狗定时器;·2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构;·全双工串行口,片内晶振及时钟电路。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。(2)编程语言方案选择C语言编程的优缺点:C语言是一种源于UNIX操作系统的结构化高级程序语言。它不仅具有高级语言的特点,而且具备汇编语言的功能。优点:1)不需要了解微处理器的具体指令系统,仅仅要求对处理器的存储器有初步的了解;2)C语言的编程和调试时间大大小于汇编语言,系统的开发时间短;3)C语言具有强大的移植性。几乎所有的单片机,都支持C语言编程。缺点:1)C语言程序生成的目标代码占用空间大;2)不能够准确计算程序的运行时间,实时性差;3)对一些特殊功能的操作不易实现。汇编语言编程的优缺点:汇编语言是采用了容易识别和记忆的英文缩写标志符直接对硬件操作,汇编程序通常由指令、伪指令和宏指令三部分组成,它的每一句指令只能对应实际操作过程的一个动作。优点:1)能够直接访问与硬件相关的存储器或I/O端口;2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;3)能够对关键代码进行更准确的控制;4)能够根据特定的应用对代码做最优的优化,提高运行速度;5)能够最大限度地发挥硬件的功能;6)实时性好。缺点:1)开发效率低、时间长;2)只能针对特定的处理器和体系结构编程;3)调试较困难。综上所述,汇编语言适用于实时系统、系统的引导程序、中断处理程序和对时序要求严格的系统中。而C语言编程适用于开发周期较短、系统软件复杂和庞大的情况。在该次设计中,四回路控制系统对时序有一定的要求,尤其对于温度传感器DS18B20来说,它有严格的时隙概念,必须采用严格的时序信号按位发出读、写DS18B20的命令。因此采用汇编语言编程更有利于该次设计。1.4.2掌握温度传感器DS18B20软件编程温度传感器DS18B20是单线接口式器件,它与单片机的硬件接口十分简单,只需占用单片机的一个双向I/O口,但这是以相对复杂的接口编程为代价的。它与单片机的接口协议是通过严格的时序来实现的,数据的写入和读出都是由主机读写特定的时间暂存器来完成的。由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM命令→发存储器操作命令→处理命令。如果测量的结果值高于TH或低于TL中的值,则DS18B20内部的报警标志位就被置位,表示测量值超过测量范围。1.4.3完成软件设计,进行软硬件联合调试系统的调试以程序为主,硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件显示部分的正确性检验,然后分别进行主程序、继电器控制子程序、按键控制子程序和温度数据处理等子程序的编译和调试,由于DS18B20与单片机采用的是串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。第2章基于AT89S52的四回路控制系统功能要求2.1四回路控制系统工作原理在生产现场,通常需要对多个生产对象进行实时监控,要求对多个物理量不断地进行巡回检测,以保障生产的安全、可靠进行。在这里以锅炉系统为例简要介绍四回路控制系统的工作原理。锅炉控制系统的主要功能:对影响锅炉运行安全性和经济性的重要参数,诸如上汽鼓水位、锅炉出口蒸汽压力、炉膛负压和炉烟含氧量进行实时控制。(1)给水调节系统:用给水调节阀门作为调节机构,以给水流量作为调节量。当锅炉蒸发量改变时,调节系统改变给水流量使之与蒸汽流量相平衡,从而将汽鼓水位控制在正常水位上。(2)汽压调节系统:汽压调节系统控制两个副回路,即燃料量调节回路及送风量调节回路。当锅炉蒸发量改变时,调节系统改变送风量和燃料量,使之与蒸发量相适应,从而将锅炉出口汽压控制在额定值。(3)炉膛负压调节系统:用引风调节挡板作为调节机构,以烟气量作为调节量。当送风量随炉膛负荷量改变而改变时,调节系统改变烟气量使之与送风量相平衡,从而将炉膛负压控制在额定值上。(4)烟道含氧量调节系统:以电机作为调节机构,以燃料量作为调节量。当烟气含氧量离开额定值时,调节系统改变转速,使燃料量改变,从而将含氧量控制在额定值,以达到最佳的燃烧状态。通过一次仪表将锅炉的温度、压力、流量、氧量、等物理量转换成电压、电流等送入微机,经软件处理,对微机发出控制信号并由执行部分进行自动操作。微机对整个锅炉的运行进行监测、报警、控制以保证锅炉正常、可靠地运行,除此以外为保证锅炉运行的安全,在进行微机系统设计时,对锅炉水位、炉膛负压等重要参数应设置常规仪表及报警装置,以保证水位和汽包压力有双重甚至三重报警装置,这是必不可少的,以免锅炉发生重大事故。2.2四回路温度控制工作原理本次设计中,重点采用四个数字温度传感器DS18B20,它可以方便的实现多点温度的测量,硬件连接非常简单,按照系统设计功能要求,确定系统由5个模块组成:主控制器、测温电路、继电器控制电路、按键控制电路及显示电路。四回路温度控制系统总体电路结构框图如图2-1所示。 显示电路显示电路按键控制扫描驱动单片机最小系统继电器控制电路信号输入电路图2-1四回路温度测试总体电路结构框图整个控制原理是这样实现的,通过单片机控制,可以依次对四个不同点的温度进行采集,通过软件设定四个存储单元,将测得的四组温度值分别放在四个存储地址里。四个按键,分别控制四个回路温度的实时显示,当某个按键按下时,其对应回路的温度存储值被调出来,经过数据处理后,送到LED数码显示器显示出来,当某回路温度超出限值时,对应回路继电器动作,发出声、光报警,提醒操作人员引起注意并及时进行处理,避免事故的发生,保障控制系统的安全、可靠运行。第3章基于AT89S52单片机的系统硬件电路设计任何一个系统功能的实现都离不开硬件的支持,它是系统功能实现的物质基础。硬件电路要根据系统的工作原理和功能要求进行设计。本章将主要介绍四回路温度硬件电路的设计思想、主要部分的工作原理以及主要器件的选择。四回路温度控制系统的硬件电路主要由五个部分构成,即:单片机最小系统电路、基于DS18B20的温度采集电路、显示驱动电路、继电器控制电路、按键控制电路。系统的硬件原理框图如图2-1所示:本系统中,控制器使用单片机AT89S52,温度传感器使用DS18B20,用三位共阴极LED数码显示器以动态扫描法实现温度显示。3.1单片机最小系统3.1.1系统组成及工作原理单片机的最小系统由内部自带程序存储器的单片机接上时钟电路和复位电路组成,同时接高电平,ALE、信号不用,系统就可以工作。最小系统有大量的I/O线可以供用户使用,P0、P1、P2、P3四个口都可以作为I/O口使用,但最小系统内部存储器的容量非常有限,一般只有128B(或256B)的RAM和4KB(或8KB)的程序存储器,因此,为了以后的扩展考虑,应选内部存储器容量较大的单片机。最小系统接收DS18B20采集到的温度信号,经过运算处理和比较后,化为十进制数,放在一个预置地址单元进行存储,并将该值和预设上限进行比较,启动相应的声、光报警电路,同时等待控制信号的到来,进行温度显示。3.1.2AT89S52单片机结构根据单片机最小系统的特点和本次设计需要实现的外部功能,我们在一系列单片机中选择了AT89S52作为主控制器。AT89S52是ATMEL公司生产的S系列单片机,它具有如下的主要性能:·与MCS-51系列产品兼容·8K字节在系统可编程FLASH存储器·1000次擦写周期·全静态操作·三级加密程序存储器·32个可编程程序存储器·三个16位定时/计数器·八个中断源·全双工UART串行通道·低功耗空闲和掉电模式·掉电后中断可唤醒·看门狗定时器·双数据指针·掉电标志符3.1.3AT89S52单片机功能特性描述AT89S52

是一种低功耗、高性能CMOS8位微控制器,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52还具有以下标准功能:2个数据指针,一个6向量2级中断结构,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3.1.4单片机AT89S52外部引脚说明(1)输入/输出引脚P0口(39脚~32脚):P0口是一个三态双向口,可作为地址/数据分时复用口。作为输出口,每位能驱动8个TTL逻辑电平。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用口。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节。P1口(1脚~8脚):P1口是8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。它在结构上与P0口的区别在于输出驱动部分,其输出驱动部分由场效应管和内部上拉电阻组成,可以直接和外电路挂接。此外,P1.0和P1.1还具有第二功能,P1.0可用作定时器/计数器2的计数脉冲输入端T2;P1.1可用作定时器/计数器2的外部控制端T2EX。在flash编程和校验时,P1口接收低8位地址字节。P2口(21脚~28脚):P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口(10脚~17脚):P3口是一个具有内部上拉电阻的8位双向I/O口,是双功能口,它的工作方式、负载能力均与P1、P2口相同。P3口亦作为AT89S52特殊功能(第二功能)使用,如表3-1所示。表3-1P3口第二功能表引脚第二功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2(外中断0,低电平有效)P3.3(外中断1,低电平有效)P3.4T0(定时/计数器0计数脉冲输入端)P3.5T1(定时/计数器1计数脉冲输入端)P3.6(外部数据存储器写选通,低电平有效)P3.7(外部数据存储器读选通,低电平有效)(2)主电源引脚说明Vcc:接+5V电源正端;Vss:接+5V电源地端。(3)外接晶体引脚XTAL1:接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内震荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部震荡器信号的输入端。XTAL2:接外部晶体的另一端。在单片机内部,接至片内震荡器的反相放大器的输出端。采用外部时钟时,对于HMOS单片机,该引脚作为外部震荡器的输入端;对于CHMOS芯片,该引脚悬空不接。(4)控制信号或其它电源复用引脚RST/Vpd:该引脚为单片机的上电复位或掉电保护端。当振荡器工作时,RST引脚出现两个机器周期以上高电平,就可实现复位操作,使单片机回到复位初始状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。:片外程序存储器读选通信号输出端,低电平有效。当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次信号。/Vpp:为访问外部程序存储器控制信号,低电平有效。当保持高电平时,单片机访问片内程序存储器8KB。若超出该范围时,自动转去执行外部程序存储器的程序。当保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。综上所述,AT89S52单片机的引脚作用可归纳为以下两点:(1)单片机功能多,引脚少,因而许多引脚都具有第2功能;(2)单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线;由ALE、、RST、与P3口中的、、T0、T1、、共10个引脚组成控制总线。由于是16位地址总线,因此,可使外部存储器的寻址范围达到64KB。3.2基于DS18B20的温度采集电路温度采集电路主要完成对外界环境温度的采集、量化和编码,使测得的温度值转化为一个可以被单片机识别和处理的量值。温度传感部分完成将采集到的温度转换为对应的电压值,此时的电压值是一个模拟量。将该电压值经A/D转换部分进行量化和编码后,成为数字量暂时存放在寄存器中。当单片机发出读取信号后,将该寄存器的存放值,通过数据总线送入单片机的一个存储单元中,等待单片机的处理。如此,整个采集模块循环重复上述过程,保证随时能采集到变化的环境温度值。经综合考虑后,决定该部分采用智能型的单总线数字式温度计DS182B0。由于温度采集部分是整个系统的关键,它不仅涉及到硬件电路的连接,而且其工作时序、内部结构、读写等编程指令还与软件编程息息相关。所以,这里将会大篇幅介绍DS18B20。3.2.1温度传感器DS18B20结构及工作原理(1)温度传感器DS18B20结构DS18B20具有独特的单线接口方式,即与微处理器接口仅需占用一个I/O端口。DS18B20内部主要由三部分组成:即64位ROM,温度传感器,温度报警触发器TH和TL,此外,还有存储器控制逻辑电路,8位循环冗余校验码(CRC)发生器等。其内部结构框图如图3-1所示:该图引自《单片机课程设计实例指导》64位ROM和64位ROM和单线接口温度传感器高速缓存器低温触发器TL高温触发器TH配置寄存器8位CRC发生器存储器与控制逻辑VDDI/OC图3-1DS18B20内部结构图(2)温度传感器DS18B20工作原理DS18B20正常工作,主机必须先通过数据口给DS18B20发ROM命令,然后发6个存储器命令中的1条命令去控制DS18B20的工作状态,完成温度的转换和数据的输出。由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM命令→发存储器操作命令→处理命令。如果测量的结果值高于TH或低于TL中的值,则DS18B20内部的报警标志位就被置位,表示测量值超过测量范围。3.2.2温度传感器DS18B20性能特点温度传感器DS18B20是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且测量结果以16位数字量方式串行传送。DS18B20的性能特点如下:·独特的单线接口仅需要一个端口引脚进行通信;·多个DS18B20可以并联在唯一的三线上,实现单线多点测温;·可通过数据线供电,电压范围为3.0~5.5V;·测温范围为-55℃~+125℃,最大分辨率可达·报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;·负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;·无须外部器件;·零待机功耗。3.2.3DS18B20工作时序通过单总线的所有操作都必须从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和由DS18B20发出的存在脉冲。存在脉冲让总线控制器知道DS18B20在总线上。并且已经准备好。初始化过程时序如图3-2所示:该图引自《单片微型计算机原理及接口技术》图3-2初始化过程时序图DS18B20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。与DS18B20的通信,是通过操作时序完成单总线上的数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。(1)复位和应答脉冲时隙每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。在每一个时隙,总线只能传输一位数据。(2)写时隙当主机将单总线DQ从逻辑高拉为逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120μS完成,且在每个循环之间至少需要1μS的恢复时间。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15μS之释放总线。(3)读时隙DS18B20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读时隙至少需要60μS,且在两次独立的读时隙之间,至少需要1μS的恢复时间。每个读时隙都由主机发起,至少拉低总线1μS。在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。DS18B20发出的数据,在起始时隙之后保持有效时间为15μS。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15μS之内保持采样总线的状态。3.2.4DS18B20常用ROM命令(1)读ROM命令[33H]这个命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有总线上存在单只DS18B20的时候才能使用这个命令。如果总线上有不止一个从机,并且当所有从机试图同时传送信号时就会发生数据冲突。(2)匹配ROM命令[55H]这个命令后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这个命令在总线上有单个或多个器件时都可以使用。(3)跳过ROM命令[0CCH]这个命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在SKIPROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上会发生数据冲突。(4)搜索ROM命令[0F0H]当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。(5)报警ROM命令[0ECH]这条命令的流程和搜索ROM命令相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。(6)WRITESCRATCHPAD[4EH]这个命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。(7)READSCRATCHPAD[0BEH]这个命令读取暂存器的内容。读取将从第1个字节开始,一直进行下去,直到第9字节读完。(8)CONVERTT[44H]这条命令启动一次温度转换而无需其它数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出0,若温度转换完成,则输出1。3.2.5DS18B20使用中注意事项

DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用I/O口少等优点,但在实际应用中也应注意以下几方面的问题:(1)简单的硬件结构需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。(2)DS18B20工作时电流高达1.5mA,总线上挂接点数较多且同时进行转换时,要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。(3)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.3显示驱动电路本系统将显示数据放在34H~36H单元内,用三位LED共阴极数码显示器进行显示,P0口输出段码数据,P2口作扫描控制,每个LED数码管亮1MS时间再逐位循环。在该次设计,考虑到简化电路、降低成本,单片机和LED数码显示器采用的均是以软件为主的接口方法,三极管9013作为位口驱动器,同相电流驱动器74LS244作为段口驱动器。采用动态扫描显示方法,即逐个地循环点亮各位显示器,每位显示1ms左右。这样虽然在任意时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,使人看起来就好像在同时显示不同的字符。在进行动态扫描显示时,往往事先并不知道应显示什么内容,这样也就无从选择被显示字符的显示段码。为此,一般采用查表的方法,由待显示的字符通过查表得到其对应的显示段码。段控用于驱动LED的8位段码,位控是对LED显示器公共端进行控制,用于选择某一时刻各个数码管的亮灭。三极管9013是专用的驱动器,它没有任何控制端,数据可以随时进入9013经过放大输出。3.4继电器控制电路在该次设计中,采用四个继电器控制电路来控制四路DS18B20的温度测量。分别与P2.3、P2.4、P2.5、P2.6四个端口连接。每一片DS18B20都有对应的一路继电器控制电路,操作人员通过观察指示灯(红、绿二极管)的工作状态,来判断继电器是否动作,进而判断系统是否超过最高温度限制,引起注意并及时进行处理,避免事故的发生,保障控制系统的安全、可靠运行。3.5按键控制电路该次系统设计中,采用四个按键开关来控制LED数码显示管的实时显示,它们一端接地,另一端分别与P1.0、P1.1、P1.2、P1.3四个端口连接。当按键没有被按下时,四个端口均经过一个1K的上拉电阻接VCC;当按键被按下时,给系统一个瞬间脉冲,同时该按键对应的LED数码显示器显示对应DS18B20的实时温度,直到再有别的控制信号的到来,电路如图3-3所示。由于键开关为机械开关结构,其机械触点的弹性及电压突跳等原因,往往在触点闭合或断开的瞬间会出现电压抖动,为保证键识别的准确,需要进行去抖动处理。去抖动有软件和硬件两种方法:软件去抖动是采用时间延迟以避开抖动,待信号稳定之后,再进行键扫描。一般情况下,延迟消抖的时间约为10~20ms;硬件去抖动就是加消抖电路,从根本上避免抖动的产生。考虑到简单易行,本设计采用软件延迟消抖。图3-3按键控制电路原理图第4章基于AT89S52单片机的系统软件设计4.1概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如采集、测量、计算、显示、控制等。每一个执行软件也就是一个小的功能执行模块。本章将详细介绍整个软件设计思路及各部分软件流程图。4.2系统软件需求分析跟据系统的方案要求以及系统最终要实现的功能,同时考虑实时性的要求,合理地安排主程序和各子程序之间地调度关系。最终确定软件编程分成五大模块:主程序模块、继电器控制回路模块、读取温度模块、按键控制模块和键盘扫描模块等。4.3系统各部分程序设计方案及流程图4.3.1主程序模块主程序的功能就是通过调用各个模块的子程序,来完成对温度的采集、转换、计算以及实时显示,并通过主程序的不断循环来检测外界环境温度的变化,按照命令执行显示和报警。主程序模块可以分为三个部分,即程序说明部分、调用子程序部分以及实现附加功能的程序部分。在程序说明部分主要是对各子程序所用到的内存单元,I/O口进行说明。调用子程序部分就是要依次调用读取温度子程序、按键扫描子程序、按键控制子程序以及显示子程序,这样就完成了温度的测量与实时显示。实现附加功能的程序部分主要是完成温度的控制功能,在这一部分中,要调用继电器控制电路子程序,将测得的温度值与原先设定的限值进行比较,然后根据比较所得的结果,启动相应的外电路。该程序部分将会循环执行,以达到对温度的实时检测与控制。流程图如图4-1所示:调用继电器控制电路子程序调用继电器控制电路子程序调用显示子程序调用按键扫描子程序调用按键控制显示子程序初始化,———继电器1动作,声光报警开始LED待显——.1调用读温子程序1调用读温子程序2调用读温子程序3调用读温子程序4图4-1主程序流程图4.3.2继电器控制电路模块根据硬件电路的设计思想,继电器软件编程的控制原理是:把第一片DS18B20测得的温度值放入(28H,29H)单元,调用数据处理子程序进行处理,若该十进制数小于35℃,绿灯亮;若大于35℃,P2.3口置“1”,继电器动作,红灯亮,蜂鸣器鸣叫,进行声、光报警。同理,依次对其它三回路的DS18B回路2的温度上限是40℃,回路3的温度上限是45℃,回路4的温度上限是50开始开始温度是否超过上限值35℃28H,29H←第一片DS18B20测得温度调数据处理子程序继电器动作,声光报警继电器不动作,绿灯亮温度是否超过上限值40℃28H,29H←第二片DS18B20测得温度调数据处理子程序继电器不动作,绿灯亮Y N Y继电器动作,声光报警 继电器动作,声光报警 N第三片DS18B20第二片DS18B20温度是否超过上限值温度是否超过上限值45℃28H,29H←第三片DS18B20测得温度调数据处理子程序继电器不动作,绿灯亮温度是否超过上限值50℃28H,29H←第四片DS18B20测得温度调数据处理子程序继电器不动作,绿灯亮返回继电器动作,声光报警继电器动作,声光报警Y N Y N图4-2继电器控制子程序流程图4.3.3读取温度模块由于四片DS18B20是串接在不同的I/O口上,因此它们的读温子程序是各自独立的,但其工作原理是相同的,以第一片DS18B20为例介绍读温模块的设计思路。读取温度子程序首先要调用DS18B20的初始化子程序,对DS18B20进行复位操作;然后再判断DS18B20是否存在,若存在则程序往下继续执行;不存在则返回主程序。当检测到DS18B20的存在标志位为“1”时,则表示DS18B20存在,此时,就可以发跳过ROM命令,继而发温度转换开始命令,该命令主要是完成温度的A/D转换,A/D转换结束后,对键盘进行多次扫描,然后进行复位操作,复位结束以后,再发跳过ROM指令后才能读取当前温度值,并将该值放入一个特定单元。依次类推,其它三片DS18B20的温度读取过程也是如此四片DS18B20的存放温度值特定单元分别是:(40H,41H),(50H,51H),(60H,61H),(70H,71H)。由于DS18B20具有严格的初始化时序以及读、写协议。因此要从DS18B20中读取温度就必须用到DS18B20的初始化子程序、读子程序以及写子程序。所以,在这一模块的开始部分将会先把这三个子程序流程图罗列出来,以示说明,供读取温度程序随时进行调用。(1)初始化DS18B20子程序流程图(图4-3)(2)写DS18B20子程序流程图(图4-4)(3)读DS18B20子程序流程图(图4-5)(4)DS18B20读取温度子程序流程图(图4-6)NNYDS18B20I/O口置“1将标志DS18B20存在与否的位清零NOP主机发出延时537μS的复位低脉冲DS18B20I/O口清零DS18B20I/O口置“1”延时三个机器周期延时并等待DS18B20回应DS18B20存在?将标志DS18B20存在与否的位清零根据时序要求,延时230μSDS18B20的I/O口置“1返回图4-3初始化DS18B20子程序流程图NY延时等待12延时等待12μSDS18B20的I/O口清零CY中的值放入DS18B20的I/O口进位标志CY清零延时等待45μS累加器ACC中的数带进位循环右移DS18B20的I/O口置“1延时一个机器周期DS18B20的I/O口置“1R2中的值自减一后是否为零?R2中置入初值8返回图4-4写DS18B20子程序流程图A中的值放入28H 中;R1中的值自增1A中的值放入28H 中;R1中的值自增1CY清零寄存器R2中置入立即数8,(用于分别读取各字节的8位)DS18B20的I/O口置1;延时两个机器周期;DS18B20的I/0口清零;延时三个机器周期DS18B20的I/0口置1寄存器R3中置入立即数9延时20μS左右延时45μS左右DS18B20的I/O口数据送到CY中R2中的值自减1后是否为0?A中的值带进位循环右移R4中的值自减1后是否为0?寄存器R4中置入立即数2,(用于取温度的高低2个字节)寄存器R1中置入温度低字节的存储地址返回NYNY图4-5读DS18B20子程序流程图DS18B20读取温度子程序流程图,以第一片DS1820为例:开开始初始化DS18B20发跳过ROM命令启动温度转换初始化DS18B20发跳过ROM命令DS18B20测得数据放入特定单元初始化DS18B20读当前DS18B20温度值扫描键盘250次发读取温度指令返回图4-6DS18B20读取温度子程序流程图4.3.4按键控制模块这一模块主要进行的是对按键的识别,要求在同一时间不能有超过一个以上的按键被按下。单片机从第一路按键开始顺序检测,当单片机检测到是某一路的按键动作时,将其对应的那一路DS18B20感应到的实时温度值放入(28H,29H)单元,调用数据处理子程序进行处理,如果无动作,转向下一个按键,直至第四路按键检测完。流程图如图4-7所示:开始开始按键按键“1”是否按下?28H,29H←第一片DS18B20测得温度调数据处理子程序返回N N按键按键“2”是否按下? Y NY28H,29H28H,29H←第二片DS18B20测得温度调数据处理子程序调数据处理子程序返回返回按键按键“3”是否按下?28H,29H←第三片DS18B20测得温度调数据处理子程序返回 N按键按键“4”是否按下? Y N Y 28H,29H28H,29H←第四片DS18B20测得温度返回调数据处理子程序返回调数据处理子程序返回返回图4-7按键控制子程序流程图4.3.5按键扫描模块这一模块的基本功能是,通过判断按键是否动作,来实现相应回路的温度显示。单片机从第一路按键开始顺序检测,当单片机检测到第一路的按键动作时,调用显示子程序,然后调用数据处理子程序,处理其对应回路的温度值,并令LED数码显示管的最左位显示相应的回路数1;如果检测到第一路按键没有动作,则进行第二路按键是否动作的检测,以此类推顺序执行下去,直至第四路检测完。流程图如图4-8所示:开开始按键“1”是否按下?调数据处理子程序调显示子程序最左边显示1返回按键“1”是否按下?按键“2”是否按下?调数据处理子程序调显示子程序最左边显示2返回按键“2是否按下?N Y NYY按键3 NY N N按键2调数据处理子程序调数据处理子程序最左边显示3返回调数据处理子程序最左边显示4返回按键“4”是否按下?按键“3”是否按下?调显示子程序按键“3”是否按下?按键“4”是否按下?调显示子程序返回 N Y N YYNY N图4-8按键扫描子程序流程图4.3.6LED数码显示子程序在该次设计,单片机和LED数码显示器采用的是以软件为主的接口方法,可以简化电路、降低成本,采用动态扫描显示方法,即逐个地循环地点亮各位显示器,每位显示1mS左右。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,使人看起来就好像在同时显示不同的字符。流程图如图4-9所示:开始开始取段码表地址显示回路编号延时1ms显示十位数字显示个位数字延时1ms返回延时1ms 图4-9LED数码显示子程序流程图4.3.7延时(1MS)子程序在显示子程序中,显示数据在34H~36H单元内,用三位LED共阴极数码管显示,P0口输出段码数据,P2口作扫描控制,每个LED数码管亮1MS时间再逐位循环。由于DJNZ,DE1MS是双字节双周期指令,当单片机主频为12MHZ时,执行一次该指令需24个震荡周期约2μS。因此,当置入循环次数为2×251=502时,执行该循环指令产生1004μS的延时周期,约为1mS。流程图如图4-10所示:开开始R0←#02HR1←#0FAHR1自减1,R1是否为0?R0自减1,R0是否为0?开始NY NY图4-10延时(1mS)子程序流程图4.3.8温度转换子程序温度转换命令子程序主要是发温度转换开始命令,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。发DS18发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图4-11温度转换子程序流程图4.3.9数据处理子程序开始开始测地十六进制温度值放入29H单元中寄存器A←(29H)单元35H←(个位)单元36H←(十位)返回温度值转换成十进制图4-12数据处理子程序流程图第5章调试结果及讨论5.1硬件调试硬件调试比较简单,首先检查硬件电路的焊接是否正确,是否有短路、断路、虚焊等。在检查无误后,可通电检测LED显示器的点亮状况。若亮度不理想,可以调整P0口的电阻大小。5.2软件调试软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、继电器控制子程序、温度读取子程序、按键控制子程序、按键扫描子程序的编译和调试,由于DS18B20与单片机采用的是串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。在软件调试过程中,我们用到了KeilC51和SLISP_V1605两种软件。其中KeilC51用于软件的编译,以生成目标代码。SLISP_V1605是一个编程器可以用于烧录软件,用于将目标代码通过传输线烧录到单片机中,完成软硬件的结合。编写好的软件先通过KeilC51软件进行编译,具体步骤如下:1.打开KeilC51软件,进入KeilC51界面后,首先要新建一个工程,并选择单片机型号AT89S52;2.新建一个文件,保存为xiexiaohua.ASM格式;3.添加该文件到新建的工程中,进行程序的编写;4.程序编写完成后,先保存,再进行编译,系统会自行检查程序中的语法错误,并将错误类型罗列在界面下方的OutWindows中,以便于用户修改;5.当OutWindows中显示0Error(s),0Warning(s)时,表示程序已经编译通过;(如图5-1所示)6.软件编译结束,生成.HEX格式的文件;7.将.HEX格式的文件烧录到单片机中。图5-1软件编译通过图5.3软硬件实时调试在硬件调试和软件编译通过后,进行软硬件联合调试。将形成的.HEX文件烧录到单片机中,接入电源,检查系统能否实现预期功能,然后根据出现的问题,及时调整硬件电路和程序,使系统达到预期功能。硬件电路是系统功能实现的物质基础,因此,在软硬件联合调试之前必须仔细检查硬件,只有硬件电路检查无误,整个系统的调试才有可能成功,而且,排除了所有的硬件错误后,进入联合调试,一旦出现问题,就可以迅速排除硬件上的错误,集中精力检查软件。这样就省去了许多不必要的麻烦,从而为调试赢得时间。软硬件联合调试时,可以将程序分成了几个模块,一个个进行调试,在各个模块都调试成功以后,再将它们组合起来,这样成功的概率就大了许多。5.4结果分析及讨论5.4.1系统理论运行结果根据设计要求,该系统应实现以下几个功能:(1)四片温度传感器DS18B20实现多回路测温;(2)四个按键,分别控制四个回路温度的显示,当某个按键按下时,其对应回路的DS18B20将转换结果送到LED数码显示器显示出来;(3)四路继电器实现保护和监控功能,当某回路温度超出限值时,对应回路继电器动作,发出声、光报警;(4)三位数码显示器,第一位和第二位分别显示温度值的十位和个位,第三位显示对应回路数。5.4.2系统实际调试结果软、硬件调试结果,系统实现预期各个功能:(1)四片温度传感器DS18B20实现了多回路测温,并且能随现场温度的变化而变化,测量精度可达到1℃(2)四个按键控制功能完全实现,显示数据能根据外界的温度实时变化;(3)四路继电器完全实现保护和监控功能,当回路1温度超出限值35℃时,继电器1动作,发出声、光报警;当回路2温度超出限值40℃时,继电器2动作,发出声、光报警;当回路3温度超出限值45℃(4)三位共阴极数码显示器,能根据控制信号,实时显示对应回路温度和回路数,第一位和第二位分别显示温度值的十位和个位,第三位显示对应回路数。(5)在控制信号还没有到来时,显示器一直处于待显状态“——.1”。5.5设计中遇到的问题及讨论问题一:测试显示电路时,系统通电后,数码显示器没有任何反应。解决方法:经检查后,发现问题出在LED数码显示器上。在本系统中,数码显示器接口电路采用的是共阴极接法,在检测中发现,该LED数码显示器是共阳的,与接口电路不符,更换后显示正常。问题二:通电后,LED数码显示器显示不理想,亮度不够。解决方法:在LED数码显示器的段控端加入同相电流驱动器74LS244,显示亮度基本符合要求。问题三:按键不能起到控制作用,始终只能显示一路温度。解决方法:在请教同学后,找到问题出在按键扫描程序上,将按键扫描改成顺序循环检测后,按键控制作用实现。问题四:出现死循环。解决方法:经检测线路后,发现有一片DS18B20断线,使得单片机读取该DS18B20时,没有返回信号,程序进入死循环。连接好后,正常。问题五:始终只能实现单回路温度实时显示,其它三回路不能正常测温。解决方法:在仔细检查硬件电路和软件后,同时也请教了其他同学,依旧无法实现四路测温。最终,我们将原先的单线多点测温改成多线测温,把四个温度传感器分离开来,分别接在不同的端口上。同时,在硬件的基础上,改变软件思想,对每一片DS18B20进行单独读取温度,然后在调用继电器控制子程序、按键控制以及显示子程序,经过反复修改、调试,最终实现了所有的预期功能。致谢在本次设计中,得到了电气与控制工程学院各位老师的大力支持和热情帮助,尤其要感谢我的指导老师王再英老师,王老师在百忙之中抽出宝贵的休息时间,仔细耐心为我们指导,从最初的设计任务布置、开题报告,直到最终的系统软、硬件设计,整个过程中,王老师一并帮我们分析、解决遇到的种种问题。在我们最茫然的时候,一直给予我们最大的支持,指导我们一步一步的深入了解四回路控制器。在软、硬件方案确定时,我们都有些急躁,老师一再强调要平和心态,鼓励我们要循序渐进的解决问题,使得设计最终能够顺利完成。在此同时,和同学们之间的相互探讨也使我获益匪浅。在此,对他们表示由衷的感谢!最后,要感谢电气与控制工程学院的各位老师,是他们的精心栽培为我这次的毕业设计打下了坚实的基础,也使我在走向工作岗位之前,做好了充分准备,谢谢您们!参考文献[1]王再英等.过程控制系统与仪表.北京:机械工业出版社,2006.1[2]于海生等.微型计算机控制技术.北京:清华大学出版社,1999第二章[3]马忠梅等.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,2003.11[4]李正军.计算机控制系统.北京:机械工业出版社,2005.1.第九章305页[5]黄胜军.微机控制应用实验与实例.北京:清华大学出版社,1999.第一章[6]刘文涛.单片机语言C51典型应用设计.北京:人民邮电出版社,2005.10[7]李光飞等.单片机课程设计实例指导.北京:北京航空航天大学出版社,2004[8]张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,2004[9]刘宝坤.计算机过程控制.北京:机械工作出版社.2000.[10]陈学俊、陈听宪等.锅炉原理第二版.北京:机械工业出版社.1979.2[11]清华大学热能工程教研组编著.锅炉原理及计算.北京:科学出版社.1985[12]赖寿涛.微型计算机控制技术.北京:机械工业出版社.1999年论文小结本次设计,我选的课题是王再英老师指导的《四回路控制器设计》软件部分。经过五个月的辛苦努力,在老师和同学的帮助下,我和我的搭档孙曙同学,最终实现了四回路控制系统的全部预期功能,该系统可以对生产现场四个不同区域的温度(0℃~100℃)进行实时监控,保障生产在开始设计之前,按照王老师的建议,我阅读了和本课题有关的专业书籍,了解了一些和四回路控制有关的信息,为着手设计做了一定的准备工作。经过和孙曙同学商量,我们一开始的设计方案是以锅炉系统为基础,对包括水位、水温、炉膛负压、烟道含氧量在内的四个物理量进行实时测量、控制,四个物理量用电位器上的输出电压代表,但是我们的硬件电路和软件无法实现预期的功能。最终,我们将四个测量对象全部更换成温度,对不同点的温度进行实时监控,一开始我们的思路是,利用温度传感器DS18B20的单线多点测温功能,将四片DS18B20都串接到同一个I/O口上,线路简单、直观,但是简单的硬件电路是以复杂的软件编程为基础的,这个方案在软件上出了许多问题,我们始终把四片DS18B20的工作时序转换不好,也在调用四片DS18B20的序列号上出了不少漏洞,使得系统自始至终只能实现一路测温,其余三路无法正常测温。在请教老师和同学之后,我们依旧无法解决DS18B20的时序问题,因而又一次改变了硬件电路。将一开始的单线多点测温更改成现在的多线多点测温,把四片DS18B20的DQ端分别接到四个不同的端口上,这样的话,就不会再存在时序问题,在软件经过反复更改、调试之后,系统功能完全实现。在这次毕业设计中,我获得的不仅仅只是这个系统的实现,在更多的方面我有了进一步的学习。编程语言方面,我不仅仅学习了汇编语言编程,还阅读了有关51系列的C语言编程,已不再停留在以前的二、三级层面,了解到语言编程在实际运用中的一些特点;单片机方面,本系统选择的是较普及的AT89S52,由于S52和MCS-51是完全兼容的,我是在51的基础上逐步掌握52的汇编编程的;在LED的运用上,我们出了不少问题,但是这些问题的出现,也帮我弥补了以前没有掌握的知识,使我对显示器的了解更深一层;在其他方面,由于我的粗心大意,软件编译中出现了不少语法错误,就是这些不留神的失误,可能就会导致整个系统处于瘫痪状态,进入死循环,使得系统的调试走了很多弯路。这些经验对我以后的学习工作敲响了警钟,告诫我做任何事都一定要认认真真、踏踏实实的,不能放松自己,并且要始终对自己有信心,有足够的耐心,坚持到底。在出现问题时,一定要用理性的思维去分析,平和心态,并一直保持灵活开阔的思路不断进行验证,这样才能找到问题症结的所在,具体问题具体分析,找出解决的方法。再次感谢所有支持我和帮助过我的老师、同学,谢谢你们了!附录附录1系统总体程序设计FLAG1EQU38HFLAG2 EQU37HFLAG3 EQU36HFLAG4 EQU35H;DS18B20存在标志位TEMPLEQU31HTEMPHEQU30HJIDIAN1BITP2.3JIDIAN2BITP2.4JIDIAN3BITP2.5JIDIAN4BITP2.6DQ1 BIT

温馨提示

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

评论

0/150

提交评论