最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

电阻炉温度控制系统的设计及其应用

来源:动视网 责编:小OO 时间:2025-09-29 19:00:10
文档

电阻炉温度控制系统的设计及其应用

摘要ⅠAbstractⅡ摘要电阻炉被广泛地应用在工业生产中,它的温度控制效果直接影响到生产效率和产品质量,因而对温度控制系统的要求很高。目前工业电阻炉通常采用常规PID控制,但是工业电阻炉的温度控制具有非线性、大惯性、大滞后等特点,因而常规PID控制难以取得良好的控制效果。因此,设计一个控制精度高、运行稳定的电阻炉温度控制系统具有很高的应用价值。本文以电阻炉为控制对象,以单片机ATC51为硬件核心元件,设计一种控制精度高的温度控制系统。在论文中详细阐述了控制系统的硬件设计和软件设计方法。本
推荐度:
导读摘要ⅠAbstractⅡ摘要电阻炉被广泛地应用在工业生产中,它的温度控制效果直接影响到生产效率和产品质量,因而对温度控制系统的要求很高。目前工业电阻炉通常采用常规PID控制,但是工业电阻炉的温度控制具有非线性、大惯性、大滞后等特点,因而常规PID控制难以取得良好的控制效果。因此,设计一个控制精度高、运行稳定的电阻炉温度控制系统具有很高的应用价值。本文以电阻炉为控制对象,以单片机ATC51为硬件核心元件,设计一种控制精度高的温度控制系统。在论文中详细阐述了控制系统的硬件设计和软件设计方法。本
摘要    Ⅰ

Abstract     Ⅱ

摘  要 

电阻炉被广泛地应用在工业生产中,它的温度控制效果直接影响到生产效率和产品质量,因而对温度控制系统的要求很高。目前工业电阻炉通常采用常规PID控制,但是工业电阻炉的温度控制具有非线性、大惯性、大滞后等特点,因而常规PID控制难以取得良好的控制效果。因此,设计一个控制精度高、运行稳定的电阻炉温度控制系统具有很高的应用价值。

本文以电阻炉为控制对象,以单片机ATC51为硬件核心元件,设计一种控制精度高的温度控制系统。在论文中详细阐述了控制系统的硬件设计和软件设计方法。

本系统的温度检测电路中采用芯片MAX6675,简化了系统的软硬件设计,提高了温度检测的精度。在输出控制中主要采用硬件电路实现,降低了程序的复杂性。系统的软件设计采用了模块化结构,具有可移植性强和通用性强的特点。

采用常规PID控制和论文设计的控制系统在电阻炉上进行控制实验,并对控制效果进行比较和分析。控制实验结果表明,该控制系统的控制效果优于常规PID,其具有超调小、控制精度高、运行稳定等优点,具有较好的应用前景。

关键词:温度控制;电阻炉;单片机 

ABSTRACT

Resistance furnace is applied extensively in industry production.The control result of  temperature control system will directly affect quality of products and efficiency of production  SO the exact precision is demanded.At present conventional PID control method is used usually  by most domestic resistance fumes in industries.The temperature control for resistance furnace  has many characteristics such as non—linearity, big  inertia, great lag. SO we can't  obtund  the satisfied result using the conventional PID  control method.Therefore,it is very valuable to design the temperature control system which has  exact precision and steady operation

In the thesis,the temperature control system with  exact precision is designed.This system  that the object is resistance furnace applies ATC51as the center unit. the design of hardware and software  is expatiated  particularly in the thesis.

The chip MAX6675 is applied in the temperature measure circuit in the system.It simplifies  the design of hardware and software  and improves precision of control system.ne output  program is brief because the output control is carried out mainly by output circuit. The  design of software in this system adopts module structure.It makes the program have portability  and this system have stronger interoperability.

 A lot of experiments have been made using conventional PID control method or this system.The results of control have been compared and analyzed.These experiments indicate that this system has better control result and more advantages such as higher precision, more stable.Through these experiments the result that this system is effective and value is obtained.

Keywords:Temperature control;Resistance furnace;Single-chip computer

第1章 绪论

1.1课题背景和意义

从20世纪20年代开始,电阻炉就在工业上得到使用。随着科学技术的发展,电阻炉被广泛的应用在冶金、机械、石油化工、电力等工业生产中,在很多生产过程中,温度的测量和控制与生产安全、生产效率、产品质量、能源节约等重大技术经济指标紧紧相连。因此各个领域对电阻炉温度控制的精度、稳定性、可靠性等要求也越来越高,温度测控制技术也成为现代科技发展中的一项重要技术。

温度控制技术发展经历了三个阶段:l、定值开关控制;2、PID控制;3、智能控制。定值开关控制方法的原理是若所测温度比设定温度低,则开启控制开关加热,反之则关断控制开关。其控温方法简单,没有考虑温度变化的滞后性、惯性,导致系统控制精度低、超调量大、震荡明显。PID控制温度的效果主要取决于P、I、D三个参数。PID控制对于确定的温度系统,控制效果良好,但对于控制大滞后、大惯性、时变性温度系统,控制品质难以保证。电阻炉是由电阻丝加热升温,靠自然冷却降温,当电阻炉温度超调时无法靠控制手段降温,因而电阻炉温度控制具有非线性、滞后性、惯性、不确定性等特点。目前国内成熟的电阻炉温度测控系统以PID控制器为主,PID控制对于小型实验用电阻炉控制效果良好,但对于大型工业电阻炉就难以保证电阻炉控制系统的精度、稳定性等。智能控制是一类无需人的干预就能驱动智能机械而实现其目标的自动控制,随着科学技术和控制理论的发展,国外的温度测控系统发展迅速,实现对温度的智能控制。应用广泛的温度智能控制的方法有模糊控制、神经网络控制、专家系统等,具有自适应、自学习、自协调等能力,保证了控制系统的控制精度、抗干扰能力、稳定性等性能。比较而言,国外温度控制系统的性能要明显优于国内,其根本原因就是控制算法的不同。

本文的研究,以电阻炉为控制对象,以单片机ATC51为硬件核心元件,设计一种新型的温度测控系统,使其具有硬件电路简单、系统性能优良等优点。

1.2 国内外温度控制系统的发展与现状

国外先进国家设计的各种温度控制自动化水平较高,装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。而国内大多数采用仪表控温,由于控制设备精度低,使产品质量受到很大影响。很多企业由于种种原因,尚力购置先进的温度自动控制系统。

随着国内外工业的日益发展,温度检测技术也有了不断的进步。温度测量系统主要由两部分组成,一部分是传感器,它将温度信号转换为电信号。另一部分是电子装置,它主要完成对信号的接收、处理、对测点进行控制、温度显示等功能。对应于不同的温度段及测量精度要求,测温装置也不尽相同,从传感器方面看,已出现有各种金属材料、非金属材料、半导体材料制成的传感器,也有红外传感器。仪器本身也趋向小型化,多采用集成度较高的芯片或元件组成电路。对于测点较多,并具有报警、巡测、控制等多功能测温装置,一般采用单片机电路。目前的温度检测技术原理很多,大致包括以下几种:(1)物体热胀冷缩原理(2)热电效应(3)热阻效应(4)利热辐射原理。

传统的温度传感器(如,热电偶、铂电阻、双金属开关等)虽然有着各自不可替代的优点,但由于自身因自热效应影响了测量精度,从而制约了它们在微型化高端电子产品中的应用。与之相比较,半导体温度传感器具有灵敏度高、体积小、功耗低、时间常数小、自热温升小、抗干扰能力强等诸多优点,无论是电压、电流还是频率输出,在相当大的温度范围内( - 55~150 ℃)都与温度成线性关系,适合在集成电路系统中应用。目前,半导体温度传感器工作的温度范围还限于- 50~150 ℃。未来主要的研究方向将是如何扩大它的温度适用范围,以及智能化、网络化等方面。 

近年来,在温度检测技术领域中,多种新的检测原理与技术的开发应用己取得了具有实用性的重大进展。新一代温度检测元件正在不断出现和完善化,主要包括以下几种。(1)晶体管温度检测元件(2)集成电路温度检测元件(3)核磁共振温度检测器(4)热噪声温度检测器(5)石英晶体温度检测器(6)光纤温度检测器(7)激光温度检测器。

目前国内外的温度控制方式越来越趋向于智能化,温度测量首先是由温度传感器来实现的。测温仪器由温度传感器和信号处理两部分组成。温度测量的过程就是通过温度传感器将被测对象的温度值转换成电的或其它形式的信号,传递给信号处理电路进行信号处理转换成温度值显示出来。温度传感器随着温度变化而引起变化的物理参数有: 膨胀、电阻、电容、热电动势,磁性能、频率、光学特性及热噪声等等。随着生产的发展,新型温度传感器还会不断出现,目前,国内外通用的温度传感器及测温仪大致有以下几种: 热膨胀式温度计、电阻温度计、热电偶、辐射式测温仪表、石英温度传感器测温仪。

目前市场上大致有3类温度控制系统分别是:单片机温度控制系统、嵌入式温度控制系统、基于SOPC的温度控制系统。它们有各自的优点与缺点,我们可以根据具体要求进行选择。

单片机温度自动控制系统中,材料温度由热电阻测量,信号通过放大器放大,毫伏信号放大后由A/D转换成相应的数字量,再通过光电耦合器,进入主机电路。由主机进行数据处理,判断分析,再输出数字控制量,去控制加热功率,从而实现对温度的控制。同时,超过上下限时进行自动报警,控制中自动显示温度值。

基于ARM的测控系统主要由测温器件、ARM微处理器、键盘及显示单元组成。测温器件是用作温度的采集。ARM微处理器是系统的核心部分,它用来控制整个系统的工作流程。整个系统的硬件部分分为五个部分,即电路部分、检测电路部分、控制及显示电路部分以及输出控制。系统工作原理为ARM微处理器向传感器发出信号,启动温度传感器采集温度数据,温度传感器采集完一次数据后,将模拟量转换为ARM处理器能识别的数值信号。ARM微处理器实时扫描进行数据的采集,对采集到的信号进行处理。

基于ARM的温度控制系统通过合理地搭建ARM嵌入式平台,采用PID自整定算法,与常规PID控制算法比较,使被控对象的温度波动大幅度减小,具有响应时间短、超调量小、控制精度高、稳定性好、智能化等优点。在进行软硬件调试的基础上,应用于热电系数测量仪中,经测试,此控制系统工作稳定可靠,满足了系统温度控制精度要求,具有较高的实用价值。

市场上大多数的温度自动控制系统是基于单片机或ARM系列芯片来设计的。对比这两种设计,基于单片机的温度自动控制系统的使用更方便,价格低廉,易于实现,因此受到广泛使用。

1.3 温度控制系统在国内外的应用实例

通过网上查询,翻阅图书了解到目前国内外市场单片机为核心的温度控制系统很多,而且方便灵活,且应用面比较广,可用于工业上的加热炉、热处理炉,在生活中的应用也比较广泛,如热水器,室温控制,农业中的大棚温度控制。以上出现的温度控制系统产品,根据其系统组成、使用技术、功能特点、技术指标。选出其中具有代表性的几种如下:

(1)虚拟仪器温室大棚温度控制系统在农业应用方面

虚拟仪器大棚温度控制系统是一种比较智能,经济的方案,适用于大力推广,该系统能够对大棚内的温度进行采集,然后再进行比较,通过比较对大棚内的温度是否超过温度进行分析,如果超过温度,温度报警系统进行报警,来通知管理员。

(2)电烤箱温度控制系统

该方案采用美国TI公司生产的FLASH型超低功耗16位单片机MSP430F123为核心器件,通过热电偶监测系统温度,用集成传感器AD590作为温度测量器件利用该芯片内置的比较器完成高精度AD信号采样,根据温度的变化情况,通过单片机编写闭环算法,从而成功地实现了对温度控制的测量和自动控制功能。其温度范围较低,大概在0-250之间,具有精度高,相应速度开等特点。

(3)小型热水炉温度控制系统

该系统解决了北方冬季分散取暖采用人工定时烧水供热耗煤量大,浪费人力温度变化大的问题。设计方案硬件方面采用MCS-51系列8031单片机为核心,扩展程序存储器2732,AD590温度检测元件测量环境温度和供水温度,AD0809进行模数转换,同向驱动器7407光电耦合器及9103的功放完成对点击的控制。软件方面建立了供暖系统的控制系统数学模型。本系统的硬件电路简单,程序易于实现。它可用于一台或多台小型取暖热水锅炉的温度控制,可是居室温度基本恒定,节煤节电省人力。

(4)单片机控制电阻炉温度系统

该系统由8098单片机,27/62存贮器, 8279键盘显示, pp40微打、双向晶闸管过零触发控制, 掉电检测与保护, 故障声光报警、自动与手动转换等电路组成。控制回路采用Dahlin或积分分离增量式PID算法。系统具有结构先进合理、功能完善、控制精度高、杭干扰能力强、通用性好、价格低, 使用方便等特点, 具有很好的社会经济效益。

(5)单片机在水温控制中的应用

传统的公众浴室采用双回路冷热水分开供给的系统, 使用中需经常调节阀门, 阀门损坏率较高。应用单片机技术对浴室水温进行自动控制, 水温可人工或自动设定, 这对传统的浴室供水系统是一种突破。电路大量采用新型集成电路, 提高了系统的可靠性。

(6)电阻炉温度单片机控制系统

该系统把二端式半导体集成温度传感器AD590置于一个封闭严密的箱内的中心位置, 通过ADC0804与单片机MCS-51接口, 控制电阻。因此, 系统应具有对工业现场数据进行采集、处理的功能。

1.4  温度控制系统模型

单片机应用系统的硬件电路设计就是为本单片机温控系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、设计合适的接口电路等。系统设计应本着以下原则:

(1) 尽可能选择典型电路,并符合单片机常规用法。本设计采用了典型的显示电路、A/D转化电路,为硬件系统的标准化、模块化打下良好的基础。

(2) 硬件结构应结合应用软件考虑。软件能实现的功能尽可能由软件实现,以简化硬件结构。由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实现,如键盘的去抖动问题。

(3) 系统中的相关器件要尽可能做到性能匹配。系统中所有芯片都应尽可能选择低功耗产品。

第2章 系统总体方案设计

本设计要实现对电阻炉温度的检测与控制,本系统由单片机ATC51、ADC0808转换器及报警电路、显示电路、温度控制电路等部分组成, 本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成传感器信号的采集处理,信息的显示等;软件主要完成对采集的温度信号进行处理及显示控制等功能。系统结构框图如图2-1所示:

图2-1 系统结构框图

在系统中,利用ADC0808将测得的电压信号经过转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过LCD1602液晶显示器显示温度并判断是否报警,同时将温度与设定温度比较,由设定的控制算法计算出控制量,根据控制量通过控制固态继电器的导通和关闭从而控制电阻丝的导通时间,以实现对炉温的控制。电阻炉内温度小于280度电阻丝全速加热,超过300度则进入降温,以使温度控制在280-300度之间。

第3章 硬件设计

单片机应用系统的硬件电路设计就是为本单片机温控系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、设计合适的接口电路等。系统设计应本着以下原则:

(1) 尽可能选择典型电路,并符合单片机常规用法。本设计采用了典型的显示电路,为硬件系统的标准化、模块化打下良好的基础。

(2) 硬件结构应结合应用软件方案一并考虑。软件能实现的功能尽可能由软件实现,以简化硬件结构。由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实现,如键盘的去抖动问题。

(3) 系统中的相关器件要尽可能做到性能匹配。系统中所有芯片都应尽可能选择低功耗产品。

本系统的硬件电路主要包括模拟部分和数字部分,从功能模块上来分有主机电路、数据采集电路、键盘显示电路、控制执行电路。系统硬件包括:温度传感器、ATC51单片机、键盘输入、LCD温度显示器、温度控制电路。

3.1 ATC51单片机简介

ATC51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。ATC2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微控制器,ATC2051是它的一种精简版本。ATC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-1所示:

图3-1 ATC51引脚图

VCC:供电电压。 

GND:接地。 

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 

P3口也可作为ATC51的一些特殊功能管脚备选功能 

P3.0 RXD(串行输入口) 

P3.1 TXD(串行输出口) 

P3.2 /INT0(外部中断0) 

P3.3 /INT1(外部中断1) 

P3.4 T0(记时器0外部输入) 

P3.5 T1(记时器1外部输入) 

P3.6 /WR(外部数据存储器写选通) 

P3.7 /RD(外部数据存储器读选通) 

P3口同时为闪烁编程和编程校验接收一些控制信号。 

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 

XTAL2:来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

    此外,ATC51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

复位电路的设计

复位使单片机处于起始状态,并从该起始状态开始运行。ATS51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,内部RAM处于不断电状态。其中的数据信息不会丢失,也即复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。按键复位电路如图3.1所示。      

图3-2  ATC51复位电路

3.2模数转换器和ADC0808结构

3.2.1模数转换器的转换原理及主要技术指标

随着数字电子技术的迅速发展,各种数字设备,特别是数字电子计算机的应用日益广泛,几乎渗透到国民经济的所有领域之中。数字计算机只能够对数字信号进行处理,处理的结果还是数字量,它在用于生产过程自动控制的时候,所要处理的变量往往是连续变化的物理量,如温度、压力、速度等都是模拟量,这些非电子信号的模拟量先要经过传感器变成电压或者电流信号, 然后再转换成数字量,才能够送往计算机进行处理。 

模拟量转换成数字量的过程被称为模数转换,简称A/D(Analog to Digital)转换;完成模数转换的电路被称为 A/D 转换器,简称 ADC(Analog to Digital Converter)。 数字量转换成模拟量的过程称为数模转换, 简称D/A(Digital to Analog)转换;完成数模转换的电路称为D/A转换器,简称DAC(Digital to Analog Converter)。模拟信号由传感器转换为电信号,经放大送入 AD 转换器转换为数字量,由数字电路进行处理,再由 DA转换器还原为模拟量,去驱动执行部件。为了保证数据处理结果的准确性, AD转换器和DA转换器必须有足够的转换精度。同时,为了适应快速过程的控制和检测的需要,AD转换器和 DA转换器还必须有足够快的转换速度。因此,转换精度和转换速度乃是衡量 AD转换器和 DA转换器性能优劣的主要标志。

分辨率(Resolution)

指数字量变化一个最小量时模拟信号的变化量, 定义为满刻度与2n的比值。分辨率又称精度,通常以数字信号的位数来表示。

转换速率(Conversion Rate)

指完成一次从模拟转换到数字的AD转换所需的时间的倒数。

积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。

采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率(Sample Rate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是kips和Maps,表示每 秒采样千/百万次(kilo / Million Samples per Second)。

量化误差(Quantizing Error) 

由于AD的有限分辨率而引起的误差,即有限分辨率AD的阶梯状转移特性曲线与无限分辨率AD(理想AD)的转移特性曲线(直线)之间的最大偏差。通常是1个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。

偏移误差(Offset Error) 

输入信号为零时输出信号不为零的值,可外接电位器调至最小。

满刻度误差(Full Scale Error) 

满度输出时对应的输入信号与理想输入信号值之差。

线性度(Linearity) 

实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。

其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性和无错码,总谐波失真(Total Harmonic Distortion缩写THD)和积分非线性。

3.2.2 ADC0808结构

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

图3-3 ADC0808管脚图

(1)内部结构

ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。 

(2)引脚功能(外部特性)

ADC0808芯片有2引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 

1~5和26~28(IN0~IN7):8路模拟量输入端。 

8、14、15和17~21:8位数字量输出端。

22(ALE):地址锁存允许信号,输入,高电平有效。 

6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 

7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 

9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 

10(CLK):时钟脉冲输入端。要求时钟频率不高于0KHZ。 

12(VREF(+))和16(VREF(-)):参考电压输入端 

11(Vcc):主电源输入端。 

13(GND):地。 

23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路

3.2.3单片机与ADC0808接口设计

单片机与ADC0808接口设计如图3-4所示

图3-4 单片机与ADC0808接口图

3 .3温度传感器

3.3.1传感器的基本概念

传感器的定义是:“能感受规定的被测量件并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。 

3.3.2传感器的分类

(1)传感器按照其用途分类

  压力敏和力敏传感器 ;位置传感器 ; 液位传感器;能耗传感器 ; 速度传感器;加速度传感器; 射线辐射传感器; 热敏传感器。 4GHz雷达传感器

(2)传感器按照其原理分类

  振动传感器 湿敏传感器 磁敏传感器 气敏传感器 真空度传感器 生物传感器等。 

(3)传感器按照其输出信号为标准分类

  模拟传感器——将被测量的非电学量转换成模拟电信号。 

  数字传感器——将被测量的非电学量转换成数字输出信号(包括直接和间接转换)。 

  膺数字传感器——将被测量的信号量转换成频率信号或短周期信号的输出(包括直接或间接转换)。 

  开关传感器——当一个被测量的信号达到某个特定的阈值时,传感器相应地输出一个设定的低电平或高电平信号。

3.3.3传感器的选用原则

当我们在做系统设计的时候,选用产品是一个重要组成部分。拿传感器来说,一个好的产品,可以给后期工作带来很多方便。传感器种类很多,我们该怎么选择呢?那些参数都是什么意思?

一、根据测量对象和环境确定类型

首先,认真分析测量工作,考虑采用哪种原理的传感器进行测量,因为即使测量同一物理量,也可以通过不同的原理实现。其次就得考虑量程、体积(空间是否足够)、安装方式、信号类型(模拟还是数字信号)、测量方式(直接测量还是间接测量)等等。

二、精度

传感器的精度等级关乎到整个系统精度,是一个非常重要的参数。一般,精度越高,价格越贵。所以我们选择的时候,得从整体考虑,适合自己的才是最好的,不要一味追求所谓的高精度,除非在需要定量测量精确值的场合,我们才选用精度等级高些的传感器。

三、灵敏度的选择

灵敏度指输出量的增量与相应的输入量增量之比。我们得正确认识该参数,它分为两方面:1、在线性范围内,灵敏度高,输出信号值比较大,这是优点。2、灵敏度高,与测量无关的外界噪声也容易混入,在处理过程中,影响精度。

四、线性范围

线形范围是指输出与输入成正比的范围,所以我们都希望线性范围越宽越好,线性范围越宽,量程就大,精度就高。但是任何传感器的线性范围都是相对的。我们只需要把测量量估算好,以便在线性范围内。

五、频率响应特性

在测量过程中,传感器的输出总有一定的延迟,跟实际值也有一定的差别。所以我们希望频率响应快一点,这样延迟时间就短一点。但由于受到结构等特性的影响,频率也难以提高。

六、稳定性

稳定性指使用时间长了以后,其性能还能维持不变的能力。影响稳定性的因素除自身原因外,主要是环境因素。因此,选用的传感器要具有较强的环境适应能力,适当的时候还得采取保护措施。

3.3.4测温原理及选用材料

通过温度传感器检测当前电炉的电压值,经过A|D转换成数字量再送入单片机进行处理,通过单片机的处理在LCD数码管上显示当前温度值。按键用来设定想要控制的温度值的上下限,单片机在内部通过比较设定的温度和当前的温度,当前温度小于温度下限时,电阻丝会加热,当温度达到设定的上限值时,报警器报警,温度开始下降,以保持在上下限之间。

此次设计应该选用热电偶,热电偶是工程上应用最广泛的温度传感器,它具有构造简单、使用方便、准确度高、稳定性好、温度测量范围宽等特点,在温度测量中占有很重要的地位。热电偶的类型有多种,在测量高温时通常使用的有镍铬一镍硅(K型)、铂铑一铂(S型)、镍铬一铜镍(E型)三种热电偶,在本设计中选用的是镍铬一铜镍E型热电偶:温度范围:-200—800℃,精度等级分两级一级误差±1.5℃,二级误差±2.5℃;其特点是热电势大,热电势率高,灵敏度最高。故选择这种热电偶。

3.4键盘和显示电路的设计

键盘和显示电路实现了人机交互功能,通过键盘电路可以设置系统运行状态和系统参数,显示电路可以显示系统的运行状态、设定温度、实际温度等。

3.4.1键盘电路的设计

根据硬件连接方式的不同,键盘可以分为式键盘和矩阵式键盘。式键盘是指各按键相互,每个按键分别与单片机的I/O口或外扩I/O芯片的一根输入线相连,通常每根输入线上按键的工作状态不会影响其他输入线的工作状态,通过检测输入线的电平就可以很容易地判断哪个按键被按下了。式键盘电路配置灵活,软件简单,但在按键数较多时就会占用大量的输入口线,该设计方法只适用于按键较少或操作速度较高的场合。矩阵式键盘适用于按键数量多的场合,它通常由行线和列线组成,按键位于行、列的交叉点上。单片机的键盘检测通常有三种方式:查询、中断、定时扫描。查询和中断方式同普通的I/O传送是一致的,定时扫描方式是利用单片机内部定时器产生定时中断,在中断服务程序中对键盘进行扫描获得键值。

在本设计中采用的是键组成的键盘,其电路图如图3-5所示,电路5个按键,包括设置键、4个温度参数设置键。通过设置温度键来进入调节状态,进行温度上限限值的调节,再按一下设置键,系统则进入工作状态。电阻炉开始工作。

图3-5 键盘与单片机接口

3.4.2显示电路的设计

在单片机应用系统中使用的显示器主要有发光二极管显示器(LED)和液晶显示器(LCD)。由于LED不能实现温度值及其单位“℃”的理想表示,并且LED连接占用较多的单片机I/O口,此外多位LED动态扫描占用CPU处理时间,因此本方案中选择LCD1602串口显示。

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形

1602采用标准的16脚接口,其中: 

第1脚:VSS为电源地 

第2脚:VDD接5V电源正极 

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 

第6脚:E(或EN)端为使能(enable)端。 

第7~14脚:D0~D7为8位双向数据端。 

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

  

图3-6 显示器与单片机接口

3.5声光报警电路设计

声光报警电路由单片机控制,输出控制信号,驱动声光报警电路.声光报警电路由一个发光二级管,一个蜂鸣器,一个三极管组成,如图3-7所示:

图3-7 声光报警电路

3.5.1蜂鸣器简介

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

1.压电式蜂鸣器    压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 

多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 

压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 

2.电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声

(1)驱动设计

由于这里要介绍两种驱动方式的方法,所以在设计模块系统中将两种驱动方式做到一块,即程序里边不仅介绍了PWM 输出口驱动蜂鸣器的方法,还要介绍I/O 口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统来说明单片机对蜂鸣器的驱动:系统有两个他激蜂鸣器,频率都为2000Hz,一个由I/O 口进行控制,另一个由PWM 输出口进行控制;系统还有两个按键,一个按键为PORT 按键,I/O 口控制的蜂鸣器不鸣叫时按一次按键I/O 口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM 按键,PWM 口控制的蜂鸣器不鸣叫时按一次按键PWM输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。 

(2)软件设计方法 

先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。软件设计上,我们将根据两种驱动方式来进行说明。 

a) PWM 输出口直接驱动蜂鸣器方式 

由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。 

首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。系统使用4MHz 的晶振作为主振荡器,一个tosc 的时间就是0.25μs,若是将PWM 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500μs 的计数值为500μs/0.25μs=(2000)10=(7D0)16,7D0H 为11 位的数据,而SH69P43 的PWM 

输出周期宽度只是10 位数据,所以选择PWM 的时钟为tosc 是不能实现蜂鸣器所要的驱动波形的。 

这里我们将PWM 的时钟设置为4tosc,这样一个PWM 的时钟周期就是1μs 了,由此可以算出500μs 对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2 位、中4 位和低4 位三个寄存器中填入1、F 和4,就完成了对输出周期的设置。再来设置占空比寄存器,在PWM 输出中占空比的实现是 

通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250μs 的宽度计数值为250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2 位、中4 位和低4 位中分别填入0、F 和A 就可以完成对占空比的设置了,设置占空比为1/2duty。 

以后只需要打开PWM 输出,PWM 输出口自然就能输出频率为2000Hz、占空比为1/2duty 的方波。 

b) I/O 口定时翻转电平驱动蜂鸣器方式 

使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2duty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统时钟(主振荡器时钟/4),在TIMER0 的载入/计数寄存器的高4 位和低4 位分别写入00H 和06H,就能将TIMER0 的中断设置为250μs。当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0 中断的时候对该 

I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。

第4章 软件设计方案

本次单片机温控系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。系统的软件设计采用模块化设计,采用模块化设计可以简化系统软件的编写,使软件编写思路更加简单明了。系统软件主要由三大模块组成:主程序模块、功能实现模块和运算控制模块。主程序模块用于实现各个子程序间的跳转。功能实现模块主要由键盘处理子程序、显示子程序等部分组成。

4.1系统软件设计思想

由于系统程序比较复杂,为了便于编写、调试、修改,系统程序的编写采用了模块化的结构,整个系统包括主模块、初始化模块、温度检测模块、键盘输入模块、液晶显示模块、中断服务模块、控制算法模块、输出控制模块等几个部分,其软件总体结构图如图4-1所示。

图4-1 软件总体结构

4.2主程序

主程序的编写是为了实现程序在各个模块间的跳转。这样使程序编写思路更加明了,简化了程序的编写难度,有利于程序的调试。本软件系统包括温度采集模块,显示模块,键盘模块,控制模块等。主程序流程图如图4-2所示。

    

   

                                   

                                   

图4-2主程序流程图

4.3 键盘子程序

键盘是人与微机打交道的主要设备,从系统监控软件的设计角度来看,仅仅通过键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要解决,否则,在操作键盘时就容易引起误操作和操作失控等现象。

在非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。非编码键盘的键输入程序应完成的基本任务:①监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。②判断是哪个键按下。③完成键处理任务。 

按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会使按键命令的错误执行或重复执行。在这里采用软件延时的方法来避开抖动阶段,这一延时程序一般大于5ms。在第一次检测到有键按下时,执行一段延时子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。这种消除抖动影响的软件措施是切实可行的。键盘子程序流程图如图4-3所示。

                                N

                  Y

                    N

 

图4-3 键盘子程序流程图

4.4 LCD显示子程序

程序包括显示程序、初始化程序等,显示内容包括当前温度和设定温度两个参数。程序流程图如图4-4所示。

图4-4 LCD显示流程图

4.5 温度采集子程序

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

图4-5温度采集流程图

4.6控制子程序

本系统是一个典程的线性也没有要求,因此,系统采用最简单的通断控制方式,当电阻炉温度达到上限值时,电阻炉停止加热,温度低于下限值时,开始加热,从而保持对温型的闭环控制系统。从技术指标可以看出,系统对控制精度的要求不高,对升降温度的控制,如图4-6所示。

图4-6 温度控制子程序

第5章 调试与仿真

本设计运用了Protues仿真,其中用Keil编译程序

5.1 Keil编译程序

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

将编译好的C语言程序输入Keil中进行调试,调试结果如下:

图5-1 keil调试结果

5.2 protues软件仿真

Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。

Protues软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: 

  (1)原理布图 

  (2)PCB自动或人工布线 

  (3)SPICE电路仿真  

性的特点: 

(1)互动的电路仿真。用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 

(2)仿真处理器及其外围电路。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues建立了完备的电子设计开发环境。

将keil编译程序输入单片机进行仿真,仿真结果如下图5.2,5.3所示

图5-2 加热状态

图5-3 停止加热

5.3报警电路仿真

当温度大于上限值时,单片机向声光报警电路发出控制信号,二极管发光,蜂鸣器发出响声.                                                  

  

图5-4报警电路

第6章 结论

本次设计是以ATC51单片机为基础,根据电阻炉加热原理,运用C语言,设计并实现了电阻炉温度控制的功能.在设计过程中,通过查阅大量文献资料,详细介绍了电阻炉温度控制系统及发展趋势等.

硬件电路设计,通过ADC0808转化信号,输入单片机,单片机把当前温度送入LCD1602,LCD显示当前温度.通过与设定值相比较,结果送入单片机,单片机输出控制信号,判定是否报警.

软件设计方面用C语言编写程序,其程序模块主要包括模数转换程序,显示程序和声光报警程序等.

本次设计是对我大学四年里所学的知识进行了综合利用。在设计中涉及到得知识涵盖了大学所学的所有知识,包括单片机、自动控制控制、电工电子技术、传感器等多领域知识。通过这次设计学会了查找问题、分析问题、处理问题的方法,可以说为今后的工作、学习都打下了比较坚实的基础。

致  谢

本论文是在我的指导老师赵保亚老师的亲切关怀与细心指导下完成的。非常感谢赵保亚老师、康会峰老师在我大学的最后学习阶段—毕业设计阶段给自己的指导,从最初的无从下手到最后的顺利完成,我收获了很多,学到了很多知识。老师在百忙之中把休息时间腾出来给我们讲解而且对本设计的重视让我看到老师的无私的精神,和对我们的期望,让我们一步一个脚印,学到知识并完成论文设计。在此向她表示诚挚的感谢。同时感谢所有任课教师和所有同学在这四年对我的指导和帮助,是你们让我成长,让我体会大爱无私,很高兴跟你们走过四年,最后祝愿老师工作顺利,桃李满天下。

经过一短时间的努力,我的论文《电阻炉温度控制系统的设计及其应用》终于完成了,这意味着我的大学生活即将结束,在即将面对的社会我做好了充分准备,希望自己学有所用,为社会做一份贡献。

感谢各位老师的批评指导。

参考文献

[1]程启明,8098单片机控制电阻炉温度系统《电测与仪表》,1994.4

[2]宋德风 曹建敏  单片机对温度的控制,哈尔滨电工学院学报,第十八卷第四期,1995.12

[3]刘昭斌,单片机控制的温度控制系统,兰州石化职业技术学院学报〔综合版,〕1992,2

[4]臧芝玉,单片机控制的温度自动调节系统,辽宁师专学报第7卷第2期2005,4

[5]廖天河,张斌,王国宏 单片机控制的智能测温仪 信息工程学院,1995.5

[6]王书城,单片机在水温控制中的应用,《机械设计与制造工程》 第28 卷 第6 期1999 .11

[7]王华,电阻炉温度单片机控制系统,四川冶金,1995.2

[8]赵辉 刘晓丽,基于单片机的实验用恒温箱设计与制作《电脑学习》第4期1999.8

[9]王瑞兰,基于单片机控制的电锅炉温度控制系统的设计, 潍坊学院学报第8 卷第6 期2008.11

[10]沈静桥,基于单片机控制的燃气热水器控制设计,电子科技

[11]艾学忠,翟玉文,杨潇.基于单片机控制的热处理炉温度控制系统,吉林化工学院学报,122006.2

[13]胡洪波,章勇高,基于单片机控制的水温控制系统设计,邯郸学院学报第19卷第3期2009.09

[14]陈源,基于单片机原理的简易温度控制系统研究,江大学学报第6卷4 期 2009 12

[15]Spyros Tzafestas, P Nikolos Papanikolopoulos. IncrementalFuzzy Expert PID Control [J]. IEEE Transactions on Industrial Electronics.1990,37(5):365-371.

附  录

#include

#define uchar unsigned char

#define uint unsigned int

sbit oe=P3^0;            //ADC0808管脚定义

sbit eoc=P3^1;

sbit st=P3^2;

sbit clk=P3^3;

sbit E=P3^6;

sbit RS=P3^7;

sbit beep=P3^4;

sbit led=P3^5;

sbit s1=P2^0;          //  注水(继电器)开关

sbit s2=P2^1;          //s1-s5键为温度调节按键

sbit s3=P2^2;

sbit s4=P2^3;

sbit s5=P2^4;

sbit jiare=P2^5;

uchar bai,shi,ge,flag,numkey,numkey1,numkey2,numkey3,numkey4,m1;

uint num1,num,t1,t2;

uchar table[]="  liuwenlong    work...       ";

uchar table1[]="temperature:";

uchar table2[]=" liuwenlong    set....      ";

void delay(uint z)              //延时函数

{

    uint x,y;

for(x=z;x>0;x--)

     for(y=110;y>0;y--);

}

void write_com(uchar a)                //LCD1602的写命令函数

 {   

   E=0;

   RS=0;

   P0=a;

   delay(3);

   E=1;

   delay(3);

   E=0;

 }

 void write_dat(uchar b)          //对LCD1602写数据函数

 { 

   RS=1;

   P0=b;

   delay(3);

   E=1;

   delay(3);

   E=0;

 

}

void init_1602()                    //对LCD1602进行初始化

{

 E=0;

 write_com(0x38);

 write_com(0x0c);

 write_com(0x06);

 write_com(0x80);

 }

void disply(uchar add,date)    //1602的显示函数的计数显示

{

 bai=date/100%10;

 shi=date/10%10;

 ge=date%10;

 write_com(0x80+add);

 write_dat(0x30+bai);

 write_dat(0x30+shi);

 write_dat(0x30+ge);

 }

void disply1()    //温度设置界面的显示

{

 uchar i;

 write_com(0x80);

for(i=0;i<21;i++)        //LCD1602输出“set....”

 {

  write_dat(table2[i]);

 }

}

void init_time()//定时器初始化

{

 TMOD=0x21;                 //定义定时器的工作方式

 TH1=240;                 //分别对两个定时器的高低位进行赋初值

 TL1=240;

 TH0=(65536-10000)/256;

 TL0=(65536-10000)%256;

 EA=1;                     //打开总中断

 ET0=1;                     //打开定时器0中断

 TR0=1;

 ET1=1;                     //打开定时器1中断

 TR1=1;

 t1=280;

 t2=300;    

}

void panduan()       //判断函数

{

if(num1  jiare=0;

if(num1>=t2)

 {

   jiare=1;

   beep=~beep;

   led=0;

   }

  else

  {

   beep=1;

   led=1;

  }

}

void main()

{

     uchar i,m;

     init_1602();

     init_time();

     while(1)

     {    

       panduan();                                                        

       st=0;       //ADC0808的转换

       st=1;

       st=0;

       while(!eoc);   //等待转换结果

       oe=1;     //允许输出

       num=P1;     //显示A/D转换结果

       oe=0;     //关闭输出

      num1=num*1.0/255*5*200;

      if(flag==0)

      {

         disply(0x40+12,num1);

         write_dat(0xdf);

         write_dat(0x43);

         write_dat(0x80);

         write_dat(0x80);

         write_dat(0x80);

        write_com(0x80);

     for(i=0;i<21;i++)

         {

          write_dat(table[i]);

          delay(1);

         }

         write_com(0x80+0x40);

     for(m=0;m<12;m++)

         {

          write_dat(table1[m]);

              delay(1);

         }

         disply(0x40+12,num1);

        

     }

         if(flag==1)            //判断标志位是否为1,如果是,则显示设置界面

            {

            disply1();              //调用显示函数

            disply(0x40,t1);

            write_dat(0xdf);

            write_dat(0x43);

            write_dat(0x80);

            write_dat(0x80);

             write_dat(0x80);

             write_dat(0x80);

             write_dat(0x80);

             write_dat(0x80);

             write_dat(0x80);

             write_dat(0x80);

            write_dat(0x80);

            write_dat(0x80);

            disply(0x40+15,t2);   //如果s1第一次按下时显示

                 write_dat(0xdf);

                 write_dat(0x43);

            }

     }

     

}

void time1() interrupt 3 //为ADC0808提供工作时钟函数

{

 clk=~clk; //为ADC0808提供工作时钟

}

void timer0() interrupt 1//定时器中断按键

{

 TH0=(65536-10000)/256;     //进入中断函数,赋值后为下一次中断做准备

 TL0=(65536-10000)%256;

 switch(numkey)            //按键函数检测numkey是否为0,若是则numkey++;下次中断来临时在检测numkey是否为1,若是numkey++,下次中端来临时检测numkey是否为

 {

   case 0:               //2,若是,判断s是否为1(即是否松手),若是则表示键按下,以下函数原理雷同

     if(s1==0)

      {

       numkey++;

      } break;    

   case 1:

     if(s1==0)

     {

      numkey++;

      }

      else numkey=0; break;

   case 2:

     if(s1)

      {

       numkey=0;

       m1++;

       flag=1;      //flag是设置温度界面的标志位

       if(m1==2)

        { 

        flag=0;

        m1=0;

        }

     

      }  break;

    }

    switch(numkey1)      //按键s2用于增加下限温度

 {

   case 0:

     if(s2==0)

      {

       numkey1++;

      } break;    

   case 1:

     if(s2==0)

     {

      numkey1++;

      }

      else numkey1=0; break;

   case 2:

     if(s2)

      {

       numkey1=0;

       if(t1==999)

       {

           ;

       }

       else t1++;

      }  break;

    }

  switch(numkey2)         //按键s3用于减小下限温度

 {

   case 0:

     if(s3==0)

      {

       numkey2++;

      } break;    

   case 1:

     if(s3==0)

     {

      numkey2++;

      }

      else numkey2=0; break;

   case 2:

     if(s3)

      {

       numkey2=0;

       if(t1==0)

       {

        ;

       }

       else t1--;

      }  break;

    }

    switch(numkey3)         //按键s4用于增加上限温度

 {

   case 0:

     if(s4==0)

      {

       numkey3++;

      } break;    

   case 1:

     if(s4==0)

     {

      numkey3++;

      }

      else numkey3=0; break;

   case 2:

     if(s4)

      {

       numkey3=0;

       if(t2==999)

       {

        ;

       }

       else t2++;

      }  break;

    }

     switch(numkey4)         //按键s5用于减小上限温度

 {

   case 0:

     if(s5==0)

      {

       numkey4++;

      } break;    

   case 1:

     if(s5==0)

     {

      numkey4++;

      }

      else numkey4=0; break;

   case 2:

     if(s5)

      {

       numkey4=0;

       if(t2==0)

       {

        ;

       }

       else t2--;

      }  break;

    }

  }

文档

电阻炉温度控制系统的设计及其应用

摘要ⅠAbstractⅡ摘要电阻炉被广泛地应用在工业生产中,它的温度控制效果直接影响到生产效率和产品质量,因而对温度控制系统的要求很高。目前工业电阻炉通常采用常规PID控制,但是工业电阻炉的温度控制具有非线性、大惯性、大滞后等特点,因而常规PID控制难以取得良好的控制效果。因此,设计一个控制精度高、运行稳定的电阻炉温度控制系统具有很高的应用价值。本文以电阻炉为控制对象,以单片机ATC51为硬件核心元件,设计一种控制精度高的温度控制系统。在论文中详细阐述了控制系统的硬件设计和软件设计方法。本
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top