北京经济管理职业学院毕业论文题目:单片机温度控制系统研制系院:工程技术学院学生姓名:张德培学号:20130627115专业:机电一体化年级:2013指导教师:荣瑞芳完成日期:5月11日毕业设计〔论文任务书设计〔论文题目单片机温度控制系统研制学生姓名 张德培 专业 机电一体化 指导教师姓名 荣瑞芳 下发日期 2015 年 12 月 29 日任务起止日期: 2015年 12月 29 日至 2016 年 5 月 15 日设计〔论文的主要内容:进 度 安 排序号设计〔论文工作任务日 期1指导教师指导毕业生选题—2016.3. 42指导教师指导论文提纲—3指导教师指导论文第一稿—4指导教师指导论文第二稿—5指导教师指导论文定稿—6 论文答辩—主要参考文献:[1] 张耀宗.机械加工实用手册编写组.机械工业出版社,2009[2] 李军.数控机床参考点的设定间.制造技术与机床,2013[3] 许镇宇.机械零件.北京:高等教育出版社,2012[4] 孔庆复.计算机辅助设计与制造.XX:XX工业大学出版社,2011[5] 雷宏,机械工程基础.XX:XX出版社2012 [6] 王中发.实用机械设计。
北京:北京理工大学出版社2013[7] 唐宗军,机械制造基础XX:机械工业出版社.2010 系负责人意见:摘 要温度是表征物体冷热程度的物理量,是工农业生产过程中一个很重要而普遍的参数由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位温度控制的发展引入单片机后,可以降低对某些硬件电路的要求基于单片机的温度控制系统,可以实现对温度的精确控制本文以温室为研究对象,以AT89C51单片机为核心所实现的温度控制系统具有自动完成数据采集、数据处理、数据转换控制、键盘终端处理及显示的功能当实际温度低于设定值,PTC进行加热,反之PTC就停止加热实际温度超上限或者低下限时,系统自动报警温度控制采用的是双位控制,简单易行,在精度要求不是特别高的温室,可行度很高 最后对系统进行调试并在PROTEUS里仿真,结果表明该系统原理可行又在一个小空间进行试验,误差在1℃左右,结果符合预期运行稳定、控制效果好、性价比高关键词:单片机,温度控制,DS18B20,温室43 / 39.目录摘要IAbstractI目录II第一章绪论11.1课题研究背景及意义11.2国内外研究现状1国外研究现状1国内研究现状1总的发展阶段21.3课题研究的内容2第二章硬件系统总体方案设计32.1硬件系统总体设计方案一32.2硬件系统总体设计方案二42.3硬件系统的方案选择4第三章控制系统硬件设计63.1单片机63.2 数字温度计DS18B2093.2.1 DS18S20数字温度计的主要特性93.3 4X4键盘93.4数码管103.5光电耦合器123.6 双向晶闸管133.7 PTC加热器143.8 反相器7406153.9双四输入与门74LS21163.9蜂鸣器16第四章控制系统软件设计174.1 主程序模块设计17主程序流程图174.2温度采集模块程序设计184.2.1 DS18B20的时序184.2.3 读温度子程序流程图204.3温度设定模块程序设计21中断服务子程序214.3.2 键盘扫描子程序214.4温度显示模块设计23设定值显示子程序234.4.2 实际值显示子程序244.5温度控制模块设计25双位控制算法设计25温度控制子程序流程图254.6报警模块程序设计26第五章结果分析275.1 PROTEUS仿真275.1.1 键盘设定温度仿真275.1.2 温度采集仿真285.1.3 整体仿真285.2实际运行结果29第六章总结与展望316.1总结316.2展望31致谢32附录程序33参考文献42.第一章 绪论1.1课题研究背景及意义温度是表征物体冷热程度的物理量,是工农业生产过程中一个很重要而普遍的参数。
温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一温度控制采用单片机设计的全数字仪表,是常规仪表的的升级产品温度控制的发展引入单片机后,可以降低对某些硬件电路的要求,但依然需要重视测试电路本身的重要性,尤其是直接获取被测信号的传感器部分,仍应给以充分的重视,有时提高整台仪器的性能的关键仍然在于测试电路尤其是传感器的改进现在传感器也正在受着微电子技术的影响,不断发展变化传感器正朝着小型、固态、多功能和集成化的方向发展基于单片机的温度控制系统,可以实现对温度的精确控制,使得在某些场合下人们对温度高低的要求得以实现对人们的生产和生活影响巨大,比如,在我国的北方,冬天温度极低,但引入温室大棚后,冬天的时候人们也能吃到新鲜的蔬菜;钢铁厂里炼铁,对温度的要求更高,这就使得温度控制变得极为有意义,而在我们的日常生活中,空调让冬天不冷夏天不热,确实让我们感受到温度控制对我们生活质量的提高也有着极大的作用。
总之,现代工业设计,工程建设及日常生活中温度控制都起着重要的作用1.2国内外研究现状国外研究现状国外对温度控制技术研究较早,始于20世纪70年代先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制80年代末出现了分布式控制系统目前正开发和研制计算机数据采集控制系统的多因子综合控制系统990年代中期,智能温控仪问世,它是微电子技术、计算机技术和自动测试技术的结晶目前,国际上已开发出多种智能温控器系列产品智能温控器内部都包含温度传感器、A/D转换器、信号处理器和接口电路有的产品还有多路选择器、中央控制器〔CPU、随机存储器〔RAM和只读存储器〔ROM现在世界各国的温度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展国内研究现状我国对于温度测控技术的研究较晚,始于20世纪80年代我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。
我国温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,存在着装备配套能力差,产业化程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点总的发展阶段总的来说,温控器被广泛应用于工农业生产、科学研究和生活等领域,数量日渐上升近百年来,温控器的发展大致经历了三个阶段:1.模拟温度控制器;2.集成温度控制器;3.能温度控制器,目前,国际上新型温控器正从模拟式向数字式、由集成化向智能化、网络化的方向发展1.3课题研究的内容本文所要研究的课题是基于单片机的温度控制系统的设计,控制对象为温室,主要目标是实现温度的设定值显示、实际值实时测量及显示,温度超上限和低下限危险报警单片机连接的温度调节装置由软件与硬件电路配合来实现温度实时控制,显示可由软件控制并在数码管中显示比较采集到温度与设定值及上下限的大小,然后做出相应的反应,控制执行机构是否降温或升温,判断警报与否第二章 硬件系统总体方案设计本次毕业设计以 51系列单片机为核心对温度进行控制,使被控对象的温度稳定在某一指定数值上,允许有1℃的误差〔不包括元件本身的制造引起的误差,键盘输入设定温度值,LED数码管显示温度值〔实际的或设定的。
基于上述要求,提出以下两种方案,下文是对两种方案的具体论述2.1硬件系统总体设计方案一方案一如图2-1所示,此方案选用DS18B20芯片进行温度采集及模拟量与数字量之间的转换,并直接输出数字量,无需信号放大,且只占用一根口线,然后将其送数码管显示4X4矩阵式键盘,首先要对其进行键盘扫描,判断是否有键按下,如有键按下,要判断是那个键按下,确定键值,然后对其进行输入,把最后设定的温度值送给数码管进行显示如果对一个温度值已经设定完毕后,无需再按任何键即有效,如果温度值设定得不合理,可对温度进行重新设定,温度的上下限可由软件编程设定,这样就完成了对温度的总体设置对于数码管显示模块,采用了动态显示的方法,在程序的设计中也相应的采用动态显示方法对其进行编写首先把设定的〔或采集到数据的十进制数进行字节拆分,分别求出要显示个位数、十位数、百位数〔显示实际温度时,还要求出十分位,然后将其送至数码管显示显示设定值还是实际值,可由按键进行切换对于温度控制模块,首先是把采集的数据和设定的温度上下限进行比较,如低于下限值或高于上限值,蜂鸣器警报,再把实际温度和设定的温度比较,决定加热与否以及加热时间的控制 单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制,不需要向外扩展存储器,可使系统整体结构更为简单。
信号的传递路线短,可以提高系统精度DS18B20 单 片 机键盘设定温度双向可控硅光电耦合器加热装置 报 警 数 码 管 显 示图2-1 方案一框图2.2硬件系统总体设计方案二方案二如图2-2所示,采用 AT89C51作为控制核心,以使用最为普遍的器件 ADC0809作模数转换,控制上使用电阻丝进行加热此方案简易可行,器件的价格便宜,且 ADC0809是 8位的模数转换,测温范围是 0-800℃,误差为 0.5%,即分辨率为 1/200,而 ADC0809的分辨率为 1/256,故能满足本题目的精度要求系统要有温度设定部分,由于 8051的接口不够的问题,所以对其进行接口扩展,采用最常用的 8255并行接口芯片对其扩展,采用 4×4矩阵式键盘接在 8255的 A口和 B口,键盘中有 0到 15之间十六个数字键,对温度的显示采用三个数码管对其进行显示,分别是百位、十位、个位且系统设置报警装置,使用户能够实时知道温度是否在所设定所的范围内控制电路部分采用MOC3041控制可控硅的通断以实现对温室温度的控制AD590放大电路 单 片 机模数转换键盘设定温度82555A双向可控硅光电耦合器 数码管显示加热装置 报 警图2-2 方案二框图2.3硬件系统的方案选择两种方案的区别在于温度的采集部分,由上可知,DS18B20相对于AD590在此系统的优势相当明显,节约单片机的I/O口线,数据传送路径短,精确度高,节约成本,故选用方案一。
此方案以单片机为该系统的控制核心温度的检测部分使用了DS18B20、AT89C51单片机及数码管的硬件电路完成对室温的实时检测与显示,通过4×4键盘设定温室的温度,比较温度的设定值与实测值的大小,然后由单片机发出信号,控制光电耦合器和双向可控硅导通与否,由此控制PTC加热器的通断,实现对温室温度的恒温控制因为温室的温度波动比较小,故不必采用软件滤波对温度进行平滑控制报警部分采用一个3V的有源蜂鸣器,发出危险警报此单片机温度控制系统具有微型化、低功耗、高性能、易配微处理器等优点,可以进行多点测温,DS18B20可以直接将温度转化成串行数字信号供微机处理,而且每片DS18B20都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线上连接多个DS18B20芯片,当然一个I/O口能挂接多少片DS18B20,因单片机的不同而异从DS18B20读出或写入DS18B20信息仅需要一根口线,其读写及温度变换功率来源于数据总线,该总线本身也可以向所连接的DS18B20供电,不需要外部电源,同时DS18B20能提供9-12位温度读数,出厂默认是12位,无需任何外围硬件即可方便地构成温度检测系统。
单片机具体实现的功能如下:1、连续测量温室的温度值,控制数码管显示温室的实际温度;2、控制键盘设定温室的温度值,并用数码管显示设定范围为室温至125℃;实现温室的恒温控制,比如设定值为50℃,则应使实际值与50℃相接近第三章 控制系统硬件设计基于上章的分析,我选择了方案一,方案一的原理图如图3-1所示本章主要介绍介绍控制系统中所使用到的各种元器件图3-1 系统原理图3.1单片机将运算器、控制器、存储器和各种输入/输出接口等计算机的主要部件集成在一块芯片上,就能得到一个单芯片的微型计算机它虽然只是一个芯片,但在组成和功能上已经具有了计算机系统的特点,因此称之为单片微型计算机,简称单片机因为其体积小、功耗低、价格低廉、抗干扰能力强且可靠性高,适合应用于工业过程控制、智能仪器仪表和测控系统的前端装置本次毕业设计所采用的是AT89C51以下简述本次毕业设计所用到的与其相关的知识1、主要特性:〔1与MCS-51兼容〔24K字节可编程闪烁存储器,寿命为1000次写/擦循环,数据可保留时间为10年〔3全静态工作:0Hz-24Hz〔4三级程序存储器锁定〔5128X8位内部RAM〔64个I/O口,共32根可编程口线〔7两个16位定时器/计数器〔85个中断源〔9可编程串行通道〔10低功耗的闲置和掉电模式〔11片内振荡器和时钟电路2、管脚说明:AT89C51的管脚布置如图3-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口管脚写入后,被内部上拉为高,可用作输入,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口管脚备选功能P3.0 RXD〔串行输入口P3.1 TXD〔串行输出口P3.2 /INT0〔外部中断0P3.3 /INT1〔外部中断1 P3.4 T0〔记时器0外部输入P3.5 T1〔记时器1外部输入P3.6 /WR〔外部数据存储器写选通P3.7 /RD〔外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号RST:复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节在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图3-2 AT89C51管脚3.2 数字温度计DS18B20在传统的模拟信号远距离传送的测量系统中,需要很好的解决引线误差补偿问题、多点切换误差问题和放大电路的零点误差问题等技术另外考虑到一般的测量现场的电磁环境非常的恶劣,各种干扰信号较强,模拟信号很容易受到干扰而产生测量误差,影响测量精度因此,在温度测量系统中,采用抗干扰能力较强的新型数字温度传感器是解决这些问题的最有效的方案在实际的温度测量过程中被广泛应用,同时也取得了良好的测量效果3.2.1 DS18S20数字温度计的主要特性1、DS18S20的适应电压范围更宽,其范围为:,而且它能够直接由数据线获取电源<寄生电源>,无需外部工作电源。
2、DS18S20提供了9-12位摄氏温度测量,具有非易失性、上下触发门限用户可编程的报警功能3、DS18S20通过1-Wire总线与中央微处理器通信,仅需要单根数据线<或地线>同时,在使用过程中,它不需要任何的外围的元件,全部的传感元件和转换电路集成在形状如一只三极管的集成电路内4、DS18S20具有-55°C至+125°C的工作温度范围,在-10°C至+85°C温度范围内精度为±0.5°C5、每片DS18B20具有唯一的64位序列码,这些序列码允许多片DS18B20在同一条1-Wire总线上工作,因而,可方便地使用单个微处理器控制分布在大范围内的多片DS18S20器件 6、DS18S20的测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时还可以传送给CRC校验码,它具有极强的抗干扰纠错的能力7、DS18S20具有负载特性,当电源极性接反时,芯片不会因发热而烧毁,但是不能正常的工作 3.3 4×4键盘用于计算机系统的键盘通常有两类:一类是编码键盘,即键盘上闭合键的识别由专用硬件来实现:另一类是非编码键盘,即键盘上闭合键的识别由软件来完成。
本次毕业设计采用的是4×4矩阵键盘,矩阵键盘由行线与列线组成,按键位于行列线的交叉点上如图3-3所示,一个4×4的行列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵键盘较之独立式键盘要节省很多的I/O口线 本次毕业设计中键盘的设计思路如下:对P1赋值使P1=0xff,然后令第一行即P1.0等于零,如果第一行有按键按下,则P1.4至P1.7的值会发生变化:如果第一个按键按下,则P1.4等于0;如果第二个按键按下,则P1.5等于0;如果第三个按键按下,则P1.6等于0;如果第四个按键按下,则P1.7等于0按此规律,直至第四行扫描完成图3-3为键盘的原理图在此系统中,键盘用于设定温度值,只是CPU的工作内容之一CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际运用系统中CPU的工作状况而定,其选择的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间通常,键盘的工作方式有3种,即编程扫描、定时扫描和中断扫描,本次毕业设计采用中断扫描采用编程扫描或定时扫描,无论是否有键按下,CPU都要定时扫描,而按键按下不是经常发生的事件,这样CPU对键盘会时常进行空扫描。
为进一步提高CPU的工作效率,故选用中断扫描,其工作过程如下:当无键按下,CPU处理自己的工作,当键盘上有键按下时才产生一个外部中断请求,CPU响应键盘中断请求,在中断服务子程序中扫描并判别键盘上闭合的键号,求出输入的数值CPU对键盘上闭合键的键号进行确定,可以根据行线和列线的状态确定;也可以预先在程序存储器中放入键盘键值表,本次毕业设计采用前者3.4数码管在单片机应用系统中通常使用的是七段LED,这种显示器的结构如图2-1所示,共有8个发光二极管,其中7个发光二极管七段字形"8",一个发光二极管构成小数点本次毕业设计用的是四位共阴极数码管,数码管的发光二极管阴极接地,当某个发光二极管的阳极为高电平,即逻辑"1"时,发光二极管点亮如图3-4所示,P0口接一个5V的上拉电阻,依次与数码管的A-DP相接,构成数码管的段选,依次与1-4相接,构成数码管的位选图3-4 数码管显示原理图LED显示器工作原理:点亮显示器有静态和动态两种方法所谓静态显示,就是当显示某一字符时,相应的发光二极管恒定的导通或截止,如上图中七段显示器的a、b、c、d、e、f导通,g截止,则显示"0"这种显示方式每一位显示器都需要有一个8位输出口控制,其优点是显示稳定,无闪烁,缺点是占用口线多,适用于显示位数较少的场合。
当显示位数较多时,一般采用动态显示方法所谓动态显示就是一位一位的轮流点亮各位显示器,对于每一位显示器来说每隔一段时间点亮一次由于循环显示的频率高较高时,利用人眼的暂留特性,看不出闪烁现象,显示器的点亮既跟点亮时的导通电流有关,也跟点亮时间和间隔时间有关,调整电流和时间的参数,可实现亮度较高较稳定的显示若显示的位数不大于8位,则控制显示器的公共电极只需一个I/O口控制各位显示器,所显示的字形也只需一个I/O口LED数码管分为共阳极和共阴极,不同的共极方式,显示同样的字符,数码管的段选是不同的,如下表1为七段共阴极LED字型码表1 七段共阴极LED段字型码显示字符dpGfedcba共阴极0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH3.5光电耦合器光电隔离器件从大的方面来看,可粗略的分为光耦合器及应用光耦合器或其他电子器件制成或应用光耦合器制成的器件光耦合器因可实现输入与输出电位上的严格隔离,所以在电力电子设备中晶闸管的门极控制与全控型器件的驱动及信号传输实现输入输出的隔离等方面都得到了广泛的应用,光电耦合器虽种类较多,内部结构有所不同,其速度也有差别,但其基本特性和参数定义却有共同点。
在光电耦合器内部,由于发光二极管和光敏管之间的耦合电容很小,所以共模输入电压通过极间耦合电容对电流Ic的影响很小,因而共模抑制比很高光电耦合器中光敏管的集电极电流与发光二极管的注入电流之比称之为电流传输比对于微小变量输出电流与注入电流之比叫微变电流传输对于线性度比较好的光耦合器,以上两者近似相等光耦合器的发光二极管和光敏晶体管之间额隔离电阻〔绝缘电阻较大 ,隔离电压为500~4000V,有的可达10KV,隔离电容小于2pF光耦合器与晶体管一样,可以线性工作,也可开关状态工作在电源的驱动电路中,光耦合器一般用来传送脉冲信号,所以光耦合器工作在开关状态在高频工作时,应考虑光耦合器的响应时间发光二极管电阻Ri的大小影响光耦合器的响应时间,Ri越小,光耦合器响应的时间越短,所以,在实际应用中,在光耦合器允许的集电极电流范围内,尽量减小负载电阻,以提高光耦合器的响应速度MOC3041是直流输入双向晶闸管输出的光耦合器该器件有输入、输出两部分组成,它的输入端有两个引脚,输入极是一个砷化镓红外发光二极管,工作时该二极管发出足够的红外光,触发输出部分,它的输出端也有两个引脚组成,输出极为具有过零触发的光控双向晶闸管,当红外发光二极管中通过5~15mA的正向电流时,发出红外光,输出极的双向晶闸管的光敏基极受到红外光的照射,而触发双向晶闸管,使输出端电压接近0时导通,即输入与输出端有光耦合,器件导通后,其输出端电压降至很低,当电流小于双向晶闸管维持电流100μA时,双向晶闸管关断。
如图3-5所示,单片机的P3.0通过7406反相器接在MOC3041的阴极〔管脚2,当P3.0口置1时,MOC3041的管脚2被置零,又5/330=0.015A,即MOC的触发电流小于但约等于15Am,MOC3041的红外发光二级管发出足够的红光,触发输出部分当P3.0置0时,MOC3041的管脚2被置1,处于高电平,此时,MOC3041的红外发光二极管处于截至状态,输出部分不被触发 MOC3041相关参数如下:〔1、隔离电压:7500V ac〔2、输出类型:过零检测〔3、输入电流:60mA〔4、输出电压:400V〔5、针脚数:6〔7、光电耦合器类型:三端双向可控驱动器〔8、关态电压:400V〔9、功耗:250mW〔10、工作温度范围:-40°C至+85°C〔11、正向电压Vf最大:1.5V〔12、电压, Vf典型值:1.25V〔13、触发电流, If最大:15mA3.6 双向晶闸管在温度控制系统中,主电路一般使用晶闸管组成开关电路,通过控制晶闸管的导通时间来控制加热时间,因此本系统中,主电路采用了双向晶闸管,在交流电压的正半周期使其沿某方向导通,在负半周期则逆向导通主要参数的选取:负载为220V,120W的PTC加热器负载电流有效值为负载电流峰值为×因为当双向晶闸管全开时,单方向的电流为交流半个周期的电流,所以而流过双向晶闸管的电流的平均值晶闸管额定电压的选择:晶闸管的额定电压应为正常工作峰值电压的2-3倍。
××所以取U=600V晶闸管额定电流的选择:晶闸管通态平均电流为实际正常平均值的倍2.0×=2.0×0.49=0.98A所以晶闸管的额定电流可取8A根据计算的数据选择双向晶闸管的型号为BTA08-600C主要参数为:通态电流IT=8A浪涌电流ITSM=80A正向耐压VDRM>600V反向耐压VRRM>600V触发电流IGT<25mA通态压降VTM<1.55V晶闸管的过流,过压保护采用了一般的阻容保护电路,其参数为:=50×0.1×〔×220×=0.0484w图3-5 光电耦合器控制可控硅原理图3.7 PTC加热器加热装置是对温室进行加热,使温度稳定在设定的温度值本系统采用PTC加热器进行加热PTC是Positive Temperature Coefficient 的缩写,意思是正的温度系数,泛指正温度系数很大的半导体材料或元器件通常我们提到的PTC是指正温度系数热敏电阻,简称PTC热敏电阻图3-6是其电阻随温度变化的曲线,PTC热敏电阻是一种典型具有温度敏感性的半导体电阻,超过一定的温度<居里温度>时,它的电阻值随着温度的升高呈阶跃性的增高陶瓷材料通常用作高电阻的优良绝缘体,而陶瓷PTC热敏电阻是以钛酸钡为基,掺杂其它的多晶陶瓷材料制造的,具有较低的电阻及半导特性。
通过有目的的掺杂一种化学价较高的材料作为晶体的点阵元来达到的:在晶格中钡离子或钛酸盐离子的一部分被较高价的离子所替代,因而得到了一定数量产生导电性的自由电子对于PTC热敏电阻效应,也就是电阻值阶跃增高的原因,在于材料组织是由许多小的微晶构成的,在晶粒的界面上,即所谓的晶粒边界<晶界>上形成势垒,阻碍电子越界进入到相邻区域中去,因此而产生高的电阻,这种效应在温度低时被抵消:在晶界上高的介电常数和自发的极化强度在低温时阻碍了势垒的形成并使电子可以自由地流动而这种效应在高温时,介电常数和极化强度大幅度地降低,导致势垒及电阻大幅度地增高,呈现出强烈的PTC效应图3-6 PTC电阻温度曲线PTC型陶瓷加热器采用PTC陶瓷发热组件与波纹铝条经高温胶粘组成该类型PTC加热器有热电阻小、换热效率高的优点,是一种自动恒温、省电的电加热器它的显著特点有加热器本体的设计加热温度在200摄氏度以下的多档次,任何情况下本体不发红且有保护隔离层,任何应用场合均不需要石棉等隔热材料进行降温处理,可放心使用不存在对人体烫伤和引发火灾的问题比较电热管和电阻丝加热产品,本产品是靠材料自身的特性,根据环境温度的改变来调节自身的热功率输出,所以它能将加热器的电能消耗优化控制在最小,同时高发热效率的材料也大幅提升了电能的利用效率。
本次毕业设计我所选用的PTC加热器的主要参数有电压:220V,功率120w,长40mm,宽40mm,厚7mm属于小功率类型,用其加热时恒温发热、无明火、热转换率高、受电源电压影响小3.8 反相器7406在本系统中,两次运用了7406反向器,一次是在单片机的P3.0口与MOC3041的管脚2之间,作用是使P3.0被置1时,MOC3041的管脚2被置0,且与真实的0更接近,MOC3041的光敏二级管导通;当P3.0被置0时,MOC3041的管脚被置1,且更接近5V,使MOC3041的光敏二级管真正能够处于截至状态另一处是与蜂鸣器的阴极相接,作用和上述的类似我所采用的型号是SN7406N,14管脚,6路独立反向驱动,,VCC的范围为图3-7 反相器7406管脚3.9双四输入与门74LS2174LS21是双输入四与门,Y=ABCD,我所使用的型号是SN74LS21N,14管脚,VCC的范围为,推荐使用5V在此系统中,按键未按下时,P3.2始终为高电平,当有键按下时,通过74LS21的作用,输出低电平,使P3.2的高电平变为低电平,触发外部中断0,在中断程序里扫描键盘,并计算输入的温度的设定值使用中断的好处是使CPU在有键按下时才扫描键,提高了CPU的效率。
图3-8 四输入与门74LS21管脚3.9蜂鸣器本次毕业设计的警报部分是通过一个有源的3V蜂鸣器来实现的,当实际温度超上限或低下限时进行危险报警,其长脚为正极,短脚为负极,正极与5V电压相接,负极通过一个7406与P3.1相接第四章 控制系统软件设计 为了实现系统的温度检测和控制,并能够实时显示,整个系统由如下几个主要模块组成,主程序模块、温度采集模块、温度设定模块、温度显示模块,报警模块,温度控制模块等几个模块组成本章将对如上所叙述的几个模块分别进行介绍,并阐述程序的编写思路和所实现的功能4.1 主程序模块设计主程序的主要设计思想是围绕题目基本要求而展开的,系统按键设定温度产生外部中断0,转入中断服务程序,在中断服务程序中获取设定的温度值,之后在主程序进行数据存储、调用数码管显示、报警控制、温度控制等子程序模块所以主程序主要是对系统的初始化和调用各子程序模块主程序流程图图4-1为主程序流程图图4-1 主程序流程图4.2温度采集模块程序设计温度的采集是数字温度计DS18B20通过单片机进行严格的时序控制来完成的,在空间不是很大的范围内,采用一片DS18B20进行单点测温即可实现对温度的较为精确的控制。
4.2.1 DS18B20的时序DS18B20的时序可分为三个部分:初始化时序、写时序和读时序只有遵守严格的时序,DS18B20才能进行温度的采集4.2.2.1 初始化时序DS18B20的所有通信都是由复位脉冲组成的初始化序列开始该初始化序列由主机发出,后跟由DS18B20发出的存在脉冲〔presence pulse图4-2阐述了这一点,当发出应答复位脉冲的存在脉冲后,DS18B20通知主机它在总线上并且准备好操作了在初始化步骤中,总线上的主机通过拉低单总线至少480μs来产生复位脉冲然后总线主机释放总线并进入接收模式当总线释放后,5kΩ的上拉电阻把单总线上的低电平拉回高电平当DS18B20检测到上升沿后等待15到60μs,然后以拉低总线60-240μS的方式发出存在脉冲,主机将总线拉低最短480μS,之后释放总线由于5kΩ上拉电阻的作用,总线恢复到高电平至此,初始化和存在时序完毕写时序如图4-3所示,所有的写时隙必须至少有60μs的持续时间相邻两个写时隙必须要有最少1μs的恢复时间所有的写时隙〔写0和写1都由拉低总线产生为产生写1时隙,在拉低总线后主机必须在15μs内释放总线〔拉低的电平要持续至少1us。
由于上拉电阻的作用,总线电平恢复为高电平,直到完成写时隙为产生写0时隙,在拉低总线后主机持续拉低总线即可,直到写时隙完成后释放总线〔持续时间60-120μs写时隙产生后,DS18B20会在产生后的15到60μs的时间内采样总线,以此来确定写0还是写1读时序如图4-4所示,DS18B20只有在主机发出读时隙时才能发送数据到主机因此,主机必须在BE〔读存储器命令,B4〔读电源命令后立即产生读时隙以使DS18B20提供相应的数据另外,在44〔温度转换命令,B8〔recall命令后也要产生读时隙所有的读时隙必须至少有60μs的持续时间相邻两个读时隙必须要有最少1μs的恢复时间所有的读时隙都由拉低总线,持续至少1μs后再释放总线〔由于上拉电阻的作用,总线恢复为高电平产生DS18B20输出的数据在下降沿产生1后5μs内有效因此,释放总线和主机采样总线等动作要在15μs内完成图4-2 DS18B20复位时序图图4-3 DS18B20写时序图图4-4 DS18B20读时序图4.2.3 读温度子程序流程图读温度子程序是在单片机的控制下,形成严格的时序,完成温度的转换并作数据的相应处理温度转换命令子程序主要是发温度转换开始命令,本次毕业设计采用12位分辨率,转换所需的时间约为750ms。
因为是单点测温,不需要CRC校验图4-5为读温度子程序流程图图4-5 读温度子程序流程图4.3温度设定模块程序设计温度设定模块是用来设定温度的,通过4X4键盘输入想要控制的温度值本次毕业设计通过中断进行扫描中断服务子程序 系统中中断采用的是外部中断0,外部中断0的初始化子程序在主程序开始时即被调用,当键盘上有键按下时,即产生一个外部中断0,执行中断子程序,获取输入的设定值,之后中断回图4-6为中断服务子程序的流程图图4-6 中断服务子程序流程图4.3.2 键盘扫描子程序键盘的扫描是中断扫描,若有键按下,则从第一行开始扫描,直到确定按键的行与列,确定键值,并返回键值图4-7为键盘扫描子程序流程图图4-7 键盘扫描子程序流程图4.4温度显示模块设计温度显示模块要显示的温度有设定值与实际值,通过P3.5的电平的高低来控制,而P3.5电平的高低由与其相连的开关的通断来控制设定值显示子程序设定的数值范围为自然状态下室温-125℃且为整数,所以四位七段的数码管的左数第一位的位选信号始终被置零,P0口进行段选,P2口的低四位依次进行千、百、十、个位的数码管的位选图4-8为设定值显示子程序的流程图图4-8 设定值显示子程序4.4.2 实际值显示子程序实际值是一个温室自然状态下的室温-125℃之间的数,其带有一位小数,四位八段的数码管从左至右依次是百位、十位、个位、十分位。
数码管的段选口还是P0口,P2口的低四位依次是百位、十位、各位、十分位数码管的位选口线图4-9为实际值显示子程序的流程图图4-9 实际值显示子程序流程图4.5温度控制模块设计温度控制模块简单的说就是要实现温度的控制,实际温度高于设定值,降温;实际温度低于设定值,加热系统中加热的装置为PTC加热器双位控制算法设计温室环境是一个复杂分布式参数系统,由于其本身的复杂性和外界大气候较强的影响,要使自控系统将其控制到一定的指标上存在一定的难度,但由于温室内作物对于各种参数变化不是很敏感,因此,没有必要将各种参数进行精确控制,只要控制在一段适宜的范围内即可,又考虑到本智能终端的通用性,本次毕业设计采用实现起来比较简单的双位控制算法双位控制又称为继电器接触控制,理想的双位控制规律的数学表达式为:双位控制规律是测量值大于<或小于>给定值时,控制器的输出为最大<或最小>值,即系统只有两个输出值,在此系统中,P3.0就相当于一个双位控制器其只有"1"和"0"这两种状态执行机构也只有"开"和"关"两个极限工作位置给定温度的设定值,当被控温室的温度低于设定值时,P3.0置1,PTC加热器工作,而当温室内的温度高于设定值时,P3.0置0,关闭PTC加热器,从而实现温度的控制。
双位控制对象特性好、负荷变化较小、过程滞后小、允许被控制参数在一定的范围内波动,可以适用于温室系统的控制温度控制子程序流程图图4-10为温度控制子程序流程图图4-10 温度控制子程序流程图4.6报警模块程序设计报警模块的工作很简单,就是判断实际温度超上限或低下限报警图4-11为报警控制子程序流程图图4-11报警控制子程序流程图.第五章 结果分析5.1 PROTEUS仿真总体电路原理图设计好后,在KEIL3里用C语言编出相应的程序,程序调试在没有问题后,接着就对程序进行仿真,总体思路是:由局部到整体首先进行键盘设定温度值并用数码管显示的仿真,再进行DS18B20采集温度并用数码管显示的仿真,这两个关键部分完成后,就进行总体程序的仿真5.1.1 键盘设定温度仿真将4×4键盘的扫描程序编好后,在PROTEUS里进行仿真,发现当我按下某个按键时,数码管的百位,十位,各位显示的都是那个键的值,比如我按下3的时候,这三个位的数码管都是3,思考了许久,我初步判断原因可能是是按键按下后,因为键盘一直处于按下的状态,而按键扫描程序扫描按键的速度非常快,以至于我按下一次,键盘扫描了好些次,如此想后,我就设定一个标志位,按键按下置1,键抬起置0,但效果依旧不佳;最后,我在扫描每行键的最后都加上一个判断按键是否释放的程序,如释放,再读取键值,如此之后,就能正确输入按键的值,比如,我要输入123,就只需要依次按下1、2、3。
如图5-1所示,键盘设定初值32℃并用数码管显示图5-1 键盘设定温度32℃仿真5.1.2 温度采集仿真根据DS18B20的时序图编好程序并在KEIL3里检查好语法没有错误后,链接到PROTEUS里进行仿真开始在PROTEUS里设定改变温度的步长为1℃,在软件里也就相应的将采集到的温度设置为整数,上下限与这个整数相差为一度这样会使误差加大,之后将仿真的步长改为0.1℃,程序也做出相应的的修改,使实际温度保留一位小数仿真能够获取实际温度,这个实际温度可从DS18B20的仿真模型中设置如图5-2所示,PROTEUS仿真温度采集,获取当前的环境温度为28.7℃图5-2 温度采集仿真5.1.3 整体仿真因为实际温度保留一位小数,在仿真的时候,就出现了一个错误,比如,我设定的温度为28摄氏度时,在正确的情况下,蜂鸣器会在实际温度小于27℃和大于29℃报警,但是仿真出来的结果是小于27℃时,蜂鸣器报警,但是当温度大于29℃时蜂鸣器并未报警,直至实际大于30℃时蜂鸣器才会报警仔细检查程序后,我发现在读温度子程序模块中,我读取的是实际温度的10倍并取整,然后在我将其与实际值比较之前,又让其除以10,所得值赋给一个整形数,这样就出现了这样种情况,比如,我最初测得的实际值是27.8℃,10倍变为278℃,这是为了方便显示,为了判断是否报警,我要将其与设定值比较,又设定值是个整形数,因此,将此数缩小10倍,赋给一个整形数后实际温度就变为27℃。
如此实际温度就当于自减了1℃,故要到实际值为30℃时才能报警实际温度比设定小1℃能报警,又是因为,只有实际值比设定值小1℃才会报警,实际温度等于设定的下限并不会报警,因此,〔℃赋值给整形数始终是27℃,只有当实际温度小于27℃时,实际值才会小于下限〔设定值28-1,蜂鸣器才会警报找出问题的所在后,我将设定值扩大10倍,再与实际值的10倍比较,这样就很好的解决了这个问题仿真总体完毕由上可知,在仿真调试过程中,我遇到了很大的麻烦在仿真的过程中,有时会感觉程序和硬件都没有一点问题,但是就是不能实现系统所要实现的功能,因为它不允许软件和硬件有一点问题,哪怕是细小的一点问题都不允许举一个最简单的例子,就拿数码管显示程序的调试仿真来说,PROTEUS 里单片机的I/O口可以直接驱动动态显示的数码管,但在实际中却是不可以的因为在PROTEUS中加热装置和实际出入大,所以在PROTEUS里进行加热仿真就是成功也没有太大的实际意义,所以我只进行了系统中两个重要部分的软件仿真,以及这两部分合起来的一个总体仿真5.2实际运行结果仿真结果符合预期后,我就着手实物的制作,将所用到的元件焊接在电路板后,就开始测试系统性能。
第一次因为焊接技术不过关,数码管显示时好时坏,为了求得个良好的结果,我又重新将元件焊接在另一块板子上,积累了上次焊接的经验后,第二次的焊接效果比之前好了很多,数码管显示正常由于是动态显示,数码管的亮度不是很高加热装置我选择的是PTC加热器,其功率为120W,很小,只能在比较小的空间内才能进行温度控制在实际的试验中,DS18B20在以此加热器为圆心,以半径20CM为圆,高度不超过15CM圆柱范围内,控制效果良好,误差较小以下简述实际试验的一些情况首先,给单片机上电后,设定温度为29℃,这个值就是我的期望值了,与此同时,软件中相应的把系统能容忍的温度上下限分别定为30℃和28℃,按下温度的切换键,显示当前温度为27.6℃,低于温控系统要求的下限,产生报警因为实际温度小于设定温度,PTC加热,一小段时间后,警报解除,说明温度已进入温度控制系统的上下限之间,又过了一段时间〔时间长短由DS18B20离PTC加热器的距离而变,但当系统稳定后,时间的差异性变小,实际温度达到29℃,PTC关断,其余温使温度继续上升,但没有触发警报,一段时间后,温度又降到29度,比29℃稍低一点,PTC就会加热,因为PTC的加热很快,冷却较慢,实际温度在PTC关断后,下降超过设定值的幅度很小,即使再小,PTC也会进行加热,如此循环,经过多次长时间的试验,实际温度28.8℃
故本次毕业设计总体来说是成功的图5-3,为本次毕业设计的实物显示设定温度图5-4,为本次毕业设计的实物显示实际温度图5-3 系统运行显示设定温度图5-4 系统运行显示实际温度.第六章 总结与展望6.1总结无论仿真还是在实际试验中,本系统都达到了预期的要求本次毕业设计主要完成的工作有:硬件电路图设计、软件编程与仿真调试、硬件制作等以下是具体的总结:<1>以AT89C51单片机为核心进行系统设计,输入通道采用DS18B20芯片,完成温度的采集以及输出数字量;输出通道采用光电耦合器控制双向可控硅作为开关管理PTC加热器的通断通过双位控制调节可实现对温度的自动控制由于输入端与输出端有光电隔离,能够有效地抑制干扰;<2>在温度控制系统中采用双位控制算法,将单片机的某个口线作为双位控制器,通过置"0"或置"1"控制输出通道的通断<3>采用C51进行编程,通用性强在原理图设计过程中使用了PROTEUS仿真,这些都节约了设计的时间,而且便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法〔4制作硬件的时候采用双面的焊接板,辅于焊锡膏,焊接可靠,在完成时,用万用表对焊接件进行"虚焊"与短路测试。
减少硬件调试不成功寻找因素的麻烦〔5根据温控空间的大小选择加热装置功率的大小〔6使用温度计对18B20所测得的温度进行校正,可使结果更接近真实情况6.2展望本系统使用的AT89C51属于与C51系列兼容的8位单片机,这种单片机共4个I/O口,32根口线,资源较少,运用于较复杂的系统中需要扩展,而且扩展的空间也极为有限随着工业的发展,对象的复杂程度不断加深,双位控制的缺陷也逐渐暴露出来,而另一方面随着智能控制如模糊控制、神经网络控制等先进控制技术的迅速发展,它们与常规PID控制相结合,扬长避短,发挥各自的优势,形成所谓的智能PID控制结合上面的论述,今后还需要做进一步的研究和解决的问题有:<1>硬件方面,采用性能更优良的单片机对系统的硬件进行重新设计; <2>控制算法方面,如要用于精确控制,双位控制不是好的选择,尝试采用现在得到快速发展的智能控制方法,如模糊控制、神经网络控制和模糊PID控制等等;〔3在按键方面,采用4×4键盘,占用了I/O口的十二根口线,对于资源本身就少的89C51单片机来说,不是很经济,在复杂的系统中,按键应尽可能少占用I/O口致 谢本次毕业设计是在导师荣瑞芳老师的细心指导下完成的。
在论文的总体方案的设计、元件的选择、程序的编写和论文的撰写过程中,荣老师都给予了大力支持和细心指导荣老师治学严谨,知识渊博、为人谦虚,每次在毕业设计遇到难题找他答疑的时候,他都会耐心地给我解答,提出了很多建设性的意见更重要的是,荣老师在帮助我的时候,都是给我一个大概的方向,然后让我自己去探索,。