欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    [毕业设计精品]以C51单片机为核心的电烤箱温度控制系统.doc

    • 资源ID:10309881       资源大小:474.50KB        全文页数:22页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [毕业设计精品]以C51单片机为核心的电烤箱温度控制系统.doc

    前 言 近年来,电烤箱等西式小家电越来越受到大家的追捧。给我们生活带来了很多方便!电烤箱所用的发热元件大致可分为三类:一类是选用一根远红外管和一根石英加热管的电烤箱,它是所有的电烤箱中档次较低的类型。不过,基本的电烤功能还是能实现的,只是烤的速度相对会慢一点。因此,它比较适合经济状况一般,但却需要买电烤箱的家庭以及单身一族。另一类是采用两根远红外管和一根石英加热管的电烤箱,这类烤箱的特点是加热速度比较快。不过,与前者相比,价格要稍微高出一些,一般贵上一两百元。还有一类则是在附件中备有一根紫外线加热管,可附带用于高温消毒。它能杀菌消毒,卫生程度较高,而且加热速度快,所以价格就比较贵了,它适合于经济条件好的消费者。本文介绍了以C51单片机为核心的电烤箱温度控制系统。电烤箱的温度控制系统由硬件和软件两个部分构成。其中硬件部分包括:单片机电路、传感器电路、放大器转换电路、转换器电路以及显示电路。软件部分包括:主程序、运算控制程序、以及各功能实现模块的程序。关键词:单片机,电烤箱,温度控制第一章 概述温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有必要的。根据温度变化快慢,并且控制精度不易掌握的特点,本文以电烤箱的温度控制模型,设计了以C51单片机为检测控制中心的温度控制系统。温度控制采用PID数字控制算法,采用三位LED静态显示。该设计结构简单,控制算法新颖,控制精度高,有较强的通用性。1.1 电烤箱温度控制设计要求(1) 当控制设定100时,从室温开始升温要求控制系统调节时间ts5 分钟,超调量10%。(2) 要求控制温度范围为50200连续可调。(3) 用数码管实时显示箱内温度。1.2电烤箱温度控制方案 产品的工艺不同,控制温度的精度也不同,因而所采用的控制算法也不同。就温度控制系统的动态特性来看,基本上都是具有纯滞后的一阶环节,当系统精度及温控的性能要求较高时,多使用PID算法实现温度的过程控制。本系统是个典型的闭环控制系统。从温控要求可以看出,系统对温度控制精度要求不高,通过控制加热炉的通断从而实现温度控制。第二章 硬件部分设计系统的硬件部分包括:单片机电路、传感器电路、放大器转换电路、转换器电路以及显示电路等。 电烤箱温度控制结构2.1 C51单片机简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 ? 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。(参考附录1 图2-1)1主要特性:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写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口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能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信号将不出现。 2.2温度传感器检测放大电路设计 利用物质各种物理性质随温度变化的规律把温度转换为电量的传感器。这些呈现规律性变化的物理性质主要有体。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。 现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器控制器;(3)智能温度传感器。国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。在20世纪90年代中期最早推出的智能温度传感器,采用的是8位A/D转换器,其测温精度较低,分辨力只能达到1C。国外已相继推出多种高精度、高分辨力的智能温度传感器,所用的是912位A/D转换器,分辨力一般可达0.50.0625C。由美国DALLAS半导体公司新研制的DS1624型高分辨力智能温度传感器,能输出13位二进制据,其分辨力高达0.03125C,测温精度为0.2C。为了提高多通道智能温度传感器的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。以AD7817型5通道智能温度传感器为例,它对本地传感器、每一路远程传感器的转换时间分别仅为27us、9us。进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。目前,智能温度传感器的总线技术也实现了标准化、规范化,所采用的总线主要有单线(1_wire)总线、I2C总线、SMBus总线和spI总线。温度传感器作为从机可通过专用总线接口与主机进行通信。pt100是铂热电阻,它的阻值会随着温度的变化而改变。PT后的100即表示它在0时阻值为100欧姆,在100时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。常见的pt100感温元件有陶瓷元件,玻璃元件,云母元件,它们是由铂丝分别绕在陶瓷骨架,玻璃骨架,云母骨架上再经过复杂的工艺加工而成。热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量。通常将其放到电桥的桥臂上,温度变化时,热电阻两端的电压信号被送到仪器放大器LM741的输入端,经过仪器放大器放大后的电压输出送给A/D转换芯片,从而把热电阻的阻值转换成数字量。对方大信号,使用低价格,高精度的仪器放大器LM741,它运用方便,可以通过外接电阻方便的进行各种增益(11000)的调整。(参考附录1 图2-2)2.3A/D转换电路设计 ADC0804转换器就是模拟/数字转换器(ADC),是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提供给微处理器,以便广泛地应用。(参考附录1 图2-3-1)ADC0804的规格:8位COMS依次逼近型的A/D转换器.三态锁定输出存取时间:135US分辨率:8位转换时间:100US总误差:正负1LSB工作温度:ADC0804LCN-070度AGND:模拟信号地。DGND:数字信号地。CLKIN:外电路提供时钟脉冲输入端。CLKR:内部时钟发生器外接电阻端,与CLKIN端配合可由芯片自身产生时钟脉冲,其频率为1/1.1RC。CS:片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器被选中,可启动工作。WR:写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平有效,当CS、WR同时为低电平时,启动转换。RD:读信号输入,低电平有效,当CS、RD同时为低电平时,可读取转换输出数据。INTR:转换结束输出信号,低电平有效。输出低电平表示本次转换已完成。该信号常作为向微机系统发出的中断请求信号。(参考附录1 图2-3-2和2-3-3)2.4LED电路设计 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。(参考附录1 图2-4)2.5 蜂鸣器电路设计蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。(参考附录 图2-5)2.6 加热器控制电路加热器控制电路主要由光电耦合器MOC3041和双向可控硅BAT12组成。采用脉宽调制输出控制电炉与电源的接通和断开比例,以通断控制调压法控制电炉的输入功率。MOC3041光电耦合器常用作大功率可控硅的光电隔离触发器,且是即时触发的,其耐压值为400V,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100欧姆电阻与0.01微法电容组成双向可控硅保护电路。(参考附录 图2-6加热控制电路)2.7 键盘电路设计 键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。 组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,当开关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机中常用软件法,因此,对于硬件办法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。而在检测到按钮释放后(P1。0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们常常不对按钮释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。(参考附录 图2-7-1和2-7-2) 第三章 软件部分设计3.1 工作流程烤箱在上电复位后先处于停止加热状态,这时可以用“1”键设定预置温度,显示器显示预订温度,温度设定好后就可以按启动键启动系统工作了。温度检测系统不断检测当前温度,并送往显示器显示达到预定值后停止加热并显示当前温度;当温度下降到下限时再启动加热。这样不断重复上述过程,使温度保持在预订范围内。启动后不能再修改预置温度,必须复位后才重新设定。3.2 功能模块 根据上面对工作流程的分析,系统软件可以分为以下几个模块:(1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。(2) 显示:显示设定温度和当前温度。(3) 温度检测及温度值变换:完成A/D转换。(4) 温度控制:根据检测到得温度控制电烤箱工作。(5) 报警:当温度超过范围时报警。 流程图:3.3 资源分配 I/O口:P10P17用作A/D,P34,P35,P22,P24用作键盘接口,P23接蜂鸣器,P26接数码管段选线,P27接数码管位选线,P00P07接数码管,P21接加热控制电路结 论通过使用C51单片机控制电烤箱,它可达到模拟控制所达不到的控制效果,还可实现显示,键盘设定等多种功能,且易于扩展,大大提高了系统的智能化,也使得系统测量结果的精度大大提高。通过PID对温度的过程控制,使得温度控制精度更高。如果在低温控制时,数字温度传感器DS18B20是个不错的选择,单总线控制方式,这对I/O口不多的C51单片机来说相当重要。参考文献1.马俊.基于单片机系统烤箱温度闭环控制实验的设计与实验.A.2003.2.李静.快速学通51单片机C语言程序设计.M.北京:人民邮电大学出版社,2010.8.3.谢维成.单片机原理与应用及C51程序设计.M.北京:清华大学出版社,2009.7.附录1:图2-1 89S52单片机引脚图图2-2 信号采集与放大 图2-3-1 ADC0804的规格和引脚图 图2-3-2 ADC0804的外部电路图图2-3-3ADC0804与单片机接线图 图2-4 数码管与单片机接线图图2-5 蜂鸣器与单片机接线图图2-6 加热器控制电路图1图2图2-7-1 键盘消抖图2-7-2 独立键盘电路附录2:#include<reg52.h>#include<intrins.h>#include<stdio.h>#include<math.h>#include <string.h>/C语言中memset函数头文件#define uint unsigned int#define uchar unsigned charsbit ctr=P21;/加热控制电路sbit dula=P26;/数码管段选线sbit wela=P27;/数码管位选线sbit beep=P23;/蜂鸣器sbit key=P34;/温度设定键sbit up=P35;/温度调大键,每按一次加1sbit down=P22;/温度调小键,没按一次减1sbit sure=P24;/温度确认按钮,同时启动系统sbit adwr=P36;/定义A/D的WR端口sbit adrd=P37;/定义A/D的RD端口uint temp,m,shu;/定义整形的温度数据float f_temp;/定义浮点型的温度数据uint warn_l=50;/定义温度下限值 uint warn_h=200;/定义温度上限值uchar flag=0;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/带小数点的的09编码void dis_temp1(uint t);void delay(uint z)/延时函数 uint x,y;for(x=z;x>0;x-)for(y=0;y>0;y-);void keyscan()/键盘扫描 if(key=0)/键盘按下delay(10);/消抖if(key=0) flag=1; while(!key); /键盘松手 while(flag)if(up=0)delay(10);if(up=0) shu+;dis_temp1(shu); while(!up);/if(down=0)delay(10);if(down=0)shu-; while(!down);if(sure=0)delay(10);if(sure=0) flag=0; ctr=1;dis_temp1(shu);while(!sure);typedef struct PID double SetPoint; / 设定目标Desired value double Proportion; / 比例常数Proportional Const double Integral; / 积分常数Integral Const double Derivative; / 微分常数Derivative Const double LastError; / Error-1 double PrevError; / Error-2 double SumError; / Sums of Errors PID; /*= PID计算部分 =*/ double PIDCalc( PID *pp, double NextPoint ) double dError, Error; Error = pp->SetPoint - NextPoint;/ 偏差 pp->SumError += Error; / 积分 dError = Error - pp->LastError; / 当前微分 pp->PrevError = pp->LastError; pp->LastError = Error; return (pp->Proportion * Error / 比例项 + pp->Integral * pp->SumError / 积分项 + pp->Derivative * dError / 微分项 ); /*= Initialize PID Structure PID参数初始化=*/ void PIDInit (PID *pp) memset ( pp,0,sizeof(PID); /*= Main Program 主程序=*/ double sensor (void) / Dummy Sensor Function return 100.0; uint get_temp(uint z)/读取寄存器中存储的温度数据 f_temp=z*0.894;/温度在寄存器中为12位,分辨率为0.0625temp=f_temp+0.5;/加0.5是四舍五入 return temp;/temp是整形void display(uchar num,uchar dat)/数据显示程序 num是第几个数码管,dat是要显示的数字uchar i; P0=tabledat;/编码赋给p0口dula=1;dula=0;wela=0;i=0xff;i=i&(0x01)<<(num);/用i来存储位选数据,只有一位为0P0=i;wela=1;wela=0;delay(1);void dis_temp1 (uint t)/按键显示温度数值函数 t传递的是整形的温度值uchar i;i=t/100;/除以100得到商,为温度的百位display(3,i);/在第四个数码管显示i=t%100/10;/为温度的十位display(4,i);/在第五个数码管上显示i=t%100/10;/为温度的个数位display(5,i);/在第六个数码管上显示void dis_temp2 (uint t)/测控显示温度数值函数 t传递的是整形的温度值uchar i;i=t/100;/除以100得到商,为温度的百位display(0,i);/在第一个数码管显示i=t%100/10;/为温度的十位display(1,i);/在第二个数码管上显示i=t%100/10;/为温度的个数位display(2,i);/在第三个数码管上显示void deal(uint t)/温度处理函数 if(t>=warn_h) beep=0;ctr=0; else if(warn_l<t<warn_h) dis_temp2(t);elsebeep=0;ctr=1;void main()int a;PID sPID; / PID Control Structure double rOut; / PID Response (Output) double rIn; / PID Feedback (Input) keyscan(); wela=1;P0=0X7f;/置CASD为0,选通ADCS以后不必再管ADCSwela=0;while(1)adwr=1;_nop_();/延时一个机器周期adwr=0;/启动A/D转换_nop_();adwr=1;for(a=10;a>0;a-)/实验板上A/D工作频率较低,启动后多留点时间用来转换 /显示部分放这也是为了延长转换时间 dis_temp2(temp);P1=0xff;/读取P1口之前先全置1adrd=1;_nop_();adrd=0;/A/D读使能_nop_();m=P1;temp=get_temp(m);PIDInit( &sPID ); / Initialize Structure sPID.Proportion = 0.5; / Set PID Coefficients sPID.Integral = 0.5; sPID.Derivative = 0.0; sPID.SetPoint = 100.0; / Set PID Setpoint for (;) / Mock Up of PID Processing rIn = sensor (); / Read Input rOut = PIDCalc ( &sPID,rIn ); / Perform PID Interation deal(temp);

    注意事项

    本文([毕业设计精品]以C51单片机为核心的电烤箱温度控制系统.doc)为本站会员(土8路)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开