欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    水温控制课设.docx

    • 资源ID:18531087       资源大小:352.09KB        全文页数:35页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    水温控制课设.docx

    1、水温控制课设 单片机应用课程设计报告书 系别:信息工程系 专业:自动化 班级:自动112 学号: 201107074246 姓名:张海鹏 目录单片机应用 1课程设计报告书 1引言 1(一)课题研究的背景 2(二)课题研究的目的和意义 2(三)课程设计分析设计 21、题目:水温控制系统的设计 23、设计键盘电路,完成温度给定。 25、系统设计技术指标 2(四)方案选择 31、控制电路选择的论证 32、测温电路方案的选择 33、加热控制方案的论证 34、软件算法方案选择 4(五)课程设计分析设计 41、系统总体方案设计 42、温度传感器DS18B20简介 53、控制芯片 AT89C51单片机简介

    2、64、 时钟电路简介 75、键盘与LED数码显示电路简介 86、 加热控制电路简介 8(六)系统硬件电路设计 91、 温度采集电路的设计 92、 加热控制电路的设计 103、 键盘、显示电路的设计 114、显示电路 115、报警模块 11(七)系统软件设计 121、 读取DS18B20温度模块子程序 122、数据处理子程序 133、 键盘扫描子程序 154、PID控制算法的程序设计 165、系统主程序流程图 17(八)程序源代码 18(九)上机调试运行结果及分析 18(十)心得体会 19(十一)参考文献 20附录一 21附录二 22附录三(源程序) 23引言随着微机测量和控制技术的迅速发展与广

    3、泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括STC89C52单片机最小系统,测温电路、实时时钟电路、LCD液晶显示电路以及通讯模块电路等。系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。关键词 STC89C52单片机;DS18B20;显示电路(一)课题研究的背景工业控制是计算机的

    4、一个重要应用领域,计算机控制系统正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通过信息技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计就是基于单片机STC89C52温度控制系统的设计,通过本次课程实践,我们更加的明确了单片机的广泛用途和使用方法,以及其工作的原理。(二)课题研究的目的和意义随着社会的发展,温度的测量及控制变得越来越重要。本文采用单片机STC89C52设计了温度实时测量及控制系统。单片

    5、机STC89C52 能够根据温度传感器DS18B20 所采集的温度在液晶屏上实时显示,通过控制从而把温度控制在设定的范围之内。所有温度数据均通过液晶显示器LCD显示出来。系统可以根据时钟存储相关的数据。通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。 (三)课程设计分析设计1、题目:水温控制系统的设计2、设计要求:被控对象为1公斤净水。容器为搪瓷器皿。温度设定范围40-90度。误差小于1度。以51系列单片机控制核心通过温度传感器检测当前的水温。并在LED数码管上显示

    6、当前的温度。3、设计键盘电路,完成温度给定。4、发挥部分:以上为基本功能要求,学生可根据实际情况,在程序设计和实现功能上做进一步的扩展。比如,设计超温报警功能、语音提示功能等等。5、系统设计技术指标 本设计水温设定由人工设定,温度设定范围为40-90,最小区分度为1,标定温差1;环境温度降低时,温度控制的静态误差1;用十进制数码管显示水的实际温度;采用适当的控制方法,当设定温度突变(由40提高到90)时,减小系统的调节时间和超调量。根据任务和测量控制现象以及现有的条件,此方案采用了AT89C51单片机为核心,采用温度传感器DS18B20进行温度采集,用固态继电器控制加热,使其达到电路简单、可靠

    7、的目的。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系还具有控制精度高的特点。(四)方案选择1、控制电路选择的论证方案一:采用运放等模拟电路搭建一个控制器,用模拟方式实现PID控制,对于纯粹的水温控制,这是足够的。但是附加显示、温度设定等功能,还要附加许多电路,稍显麻烦。同样,使用逻辑电路也可实现控制功能,但总体的电路设计和制作比较烦琐。方案二:采用FPGA实现控制功能。使用FPGA时,电路设计比较简单,通过相应的编程设计,可以很容易地实现控制和显示、键盘等功能,是一种可选的方案。但与单片机相比,价格较高,显然大材小用。方案三

    8、:采用单片机最小系统同时完成控制、显示、键盘等功能,电路设计和制作比较简单,成本也低,是一种非常好的方案。 综上所述本设计采用方案三作为控制电路。2、测温电路方案的选择方案一:采用热敏电阻作为测温元件。热敏电阻精度高,需要配合电桥使用,要实现精度测量需要配上精密较高的电阻。此外还需要制作相应的调理电路。方案二:采用半导体集成温度传感器作为测温元件,半导体集成温度传感器应用也很广泛,它的精度、可靠性都不错,价格也适中,使用比较简单,是一个较好的选择。综上所述本设计采用方案二作为测温电路。3、加热控制方案的论证首先要选择好加热装置。根据题目,可以采用热得快进行加热,控制热的快的功率即可控制加热速度

    9、。当水温过高时,一般不能对水进行降温控制,而只能关掉热得快,让其自然冷却。在制作中,为了达到更好的控制效果,也可以放置一个小风扇,当加热时开启热得快关闭风扇,当水温超高时关闭热得快开启风扇加速散热。热得快这类电阻性电器可直接使用220V交流电,控制有两种实现方式。它们的电压波形如图所示。 (a) (b)具体方案如下。方案一:采用控制导通交流周期数的方式如图(a)所示,为了达到控制的精度,需要在一个较多的周期数中控制导通的数目,不适用于动态性能较高的控制。水温控制系统具有较大的惯性,可以考虑这种控制方式。方案二:采用控制导通角的方式如图(b)所示,由于对每个周期的交流电都进行控制,因此响应速度比

    10、较高,另外由于导通角连续可调,因此控制精度比较高。4、软件算法方案选择方案一:采用模糊控制算法,对于一个典型的模糊控制系统,考虑它的输入信号有偏差和偏差变化率两种,输出信号为控制信号。根据测试经验,可选取三角型隶属函数,分为正大、正中、正小、正零、零、负零、负小、负中、负大,9个档次。然后根据控制规则列出规则基表。这种控制方法能够较精确的实现设计要求,但是考虑到单片机的存储量,和实时性,不采取这种尚未完全推广的控制方法。 方案二:采用经典PID控制算法和根据实验数据分区间控制的算法,对于温度系统来说,被控对象没有精确的数学模型。热得快加热使得水温具有有热惯性,而且检测的实时数据是检测点附近的实

    11、时温度并不能完全体现1升水的实际温度,所以经典PID控制算法不能满足设计要求,还必须根据实验数据进行调整。这种控制算法基本能够满足设计要求,且通用性较强 本设计采用方案二作为控制算法。(五)课程设计分析设计1、系统总体方案设计本系统的电路设计方框图如图2-1所示,它由七部分组成:控制部分主芯片采用单片机AT89C51;显示部分采用4位LED数码管以动态扫描方式实现温度显示;温度采集部分采用DS18B20温度传感器;加热控制部分采用继电器电路;时钟电路;复位电路;单列3按键键盘输入设定温度值。 图2-1 系统设计方框图 2、温度传感器DS18B20简介温度传感器是整个控制系统获取被控对象特征的重

    12、要部件,它的特性直接影响系统的精度。美国DALLAS公司生产的单线数字温度传感器DS1820,可把温度信号直接转换成串行数字信号供微机处理,是最新的“一线器件”。它具有体积小、适用电压宽、经济、实用、线性度很好,精度较高且其本身已经进行了校正,使用时不需再进行调整等特点。本设计采用DS18B20作为智能温度传感器,采集的数据以“一线总线”的数字方式传输直接送到单片机中,同时可传送CRC校验码,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。 图2-2 DS18B20外部结构用一线制数字温度传感器DS18B20来作为本课题的温度传感器。传感器输出信号进4.7K的上拉电阻直接接到单片机的P

    13、1.0引脚上。DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:(1)系统的特性:测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。(2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功

    14、能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。(3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。(4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ

    15、,外供电源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。3、控制芯片 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位处理器,俗称单片机。单片机的可擦除

    16、存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,其结构图及各管脚如图2-4所示。图2-4 AT89C51结构图管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原

    17、码输入口,当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位

    18、地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位期间时,要保持RST脚两个机器周期的高电平。当51芯片通电,时钟电路开始工作,在RST引脚上出现24个时钟周期以上的高电平,系

    19、统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM的状态。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出,可在SFR8EH地址上置0。

    20、此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,只允许外部程序存储器(0000H-FFFFH)使用,不管是否有内部程序存储器。注意加密方式为“1”时,EA将内部锁定为RESET;当EA端保持高电平时,只允许内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部

    21、时钟工作电路的输入。XTAL2:反向振荡放大器的输出及内部时钟工作电路的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4、 时钟电路简介时钟电路是计算机的心脏,它控制着计算机的工作节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部

    22、引入。时钟电路频率范围为1.212MHz。单片机虽然有内部振荡电路,但要形成时钟,外接晶振以及电容,构成并联谐振电路,接在放大器的反馈回路中,这种方式称为内部时钟方式。对外接电容的值虽然没有严格的要求,但电容的大小多少会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度稳定性。当时钟频率为12MHz时典型值为30pF11。本控制器采用的是内部振荡方式,振荡频率为12MHz,因为这种方式得到的时钟信号比较稳定。 5、键盘与LED数码显示电路简介数码管由7个发光二极管组成,行成一个日字形,它们可以共阴极,也可以共阳极。通过解码电路得到的数码接通相应的发光二极而形成相应的字。数码管具有:低耗能

    23、、低损耗、低压、寿命长耐老化,对外界环境要求低。同时数码管采用BCD编码显示数字,程序编译容易、资源占用少。说到七段数码管,它在家电及工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等等,具有显示醒目、直观的优点,七段数码管是由7个独立的二极管采用共阴或共阳的方法连接而成。通常将这7个独立的二极管做成a、b、c、d、e、f、g这7个笔划,数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。本电路采用三位LED 7段共阴数码管分别显示温度的十位、个位和小数位,用单列3按键进行温度设定。扫描电路,节约了单片机的输出端口,便于程序的编写8。其显示数字对

    24、应的二进制电平信号如表2-2所示。表2-2 显示数字对应的二进制电平信号显示数字abcdefg01111110101100002110110131111001401100115101101160011111711100008111111190001101数码管使用条件: 段及小数点上加限流电阻; 使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定; 使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA峰值电流 100mA;数码管使用注意事项说明: 数码管表面不要用手触摸,不要用手去弄引角; 焊接温度:260;焊接时间:5s 表面有保护膜的产品,可以在使用前撕下

    25、来6、 加热控制电路简介根据设计要求,可以使用电热丝进行加热,控制电热丝的功率即可以控制加热的速度。当水温过高时,关掉电热丝进行降温处理,让其自然冷却。由于加热的功率较大,考虑到简化电路的设计,本设计直接采用220V的电源,采用继电器控制。使用继电器可以很容易实现通过低电压、低电流控制高电压、高电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离,这种电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,但可以由多路加热丝组成功率控制,由单片机对温差的处理实现分级功率控制提高系统动态性能9。因此,采用继电器控制省去光耦和交流过零检测电路,在软件上选用适当的控制

    26、算法,可以达到更好的效果。(六)系统硬件电路设计本系统的执行方法是循环查询执行的,键盘扫描也是循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。各电路的关系图如图3-1所示。 图3-1 系统硬件电路关系1、 温度采集电路的设计本系统采用半导体智能温度传感器DS18B20作为敏感元件,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。DS18B20应用广泛,性能可以满足题目的设计要求。DS18B20的测温电路如图3-2所示。图3-2 DS18B20测温电路2、 加热控制电路的设计 由于本系统要控制电热丝加热,功率较大,因此要借助

    27、功率电路。在器件选择上留足余量,增加安全性。加热部分采用继电器控制,电路简单可靠。电路如图3-3所示。图3-3 继电器控制当实际温度低于设定值时,由单片机输出高电平信号。三极管2N3904导通,继电器开始对水加温,为了防止继电器频繁动作,在软件中对水温测量精确到0.1,而在温度设定时只取整数,可以有1的余量。3、 键盘、显示电路的设计本设计中以动态显示方式采用共阴极连接来驱动三个七段数码管,分别显示温度的十位、个位和小数位。数码管采用共阴极,由于AT89C51单片机每个I/O的电流只有1-2mA,所以在位码和段码上加了相同驱动器。键盘采用按键开关经上拉电阻分别接P1.5、P1.6、P1.7口上

    28、,起到设置、上调和下调作用。每按上调和下调键,设定温度值增1减1。原理图如图3-5所示。 图3-5 键盘按键电路4、显示电路显示与指示采用七段LED共阳数码管显示,相对于LCD显示电路,电路简单多了,电路如下图4-6所示: 图4-6 显示电路原理图电路采用了8个七段共阳数码管来作为显示单元,电路通过AT89C2051单片机P0口分别与每个数码管输入端相连来分时输出数据。5、报警模块根据设计要求,在保温阶段,温度控制精度为正负1度,故当温度超过设定温度时需要报警提醒。所以在电路设计上应用了蜂鸣器和发光二极管,系统正常运行时绿色发光二极管点亮,当出现故障时红色发光二极管点亮并且蜂鸣器鸣叫,提醒操作

    29、人员注意。(七)系统软件设计 1、 读取DS18B20温度模块子程序 每次对DS18B20操作时多要按照DS18B20中的协议进行。初始化DS18B20发ROM功能命令发存储器操作命令处理数据。程序流程图如图4-1所示。图4-1 读取DS18B20温度子程序流程图void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x

    30、=1则初始化失败 delay(20);/*从18B20中读一个字节*/uchar Read_OneChar(void) uchar i = 0; uchar dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat = 1; DQ = 1; / 给脉冲信号 if(DQ) dat |= 0x80; delay(8); return(dat);2、数据处理子程序由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。由于本程序采用的是0.0625的精度,小数部分的值可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取四舍五入,保留一位小数即可17。也就是说,本系统的温度精确到了0.1。数据处理子程序流程图如图4-2所示。 图4-2 数据处理子程序流程图void timer0_isr(void) interrupt 1 /中断 uchar j; TR0 = 0; EA = 0; TH0 = 0xec; TL0 = 0x78; TR0 = 1; EA = 1; cp+; if(cp = 200) /刚好


    注意事项

    本文(水温控制课设.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开