1、课程设计说明书唐山学院测控系统原理课程设计题目恒温箱控制器的设计系部机电工程系班级姓名学号指导教师2014年03月02日至03月13日共两周2014年03月13日课程设计说明书测控系统原理课程设计任务书一、设计题目、内容及要求1、设计题目恒温箱控制器的设计2、设计内容运用所学单片机、模拟和数字电路、以及测控系统原理与设计等方面的知识,设计出一台以AT89C52为核心的恒温箱控制器,对恒温箱的温度进行控制。完成恒温箱温度的检测、控制信号的输出、显示及键盘接口电路等部分的软、硬件设计,A/D和D/A转换器件可自行确定,利用按键(自行定义)进行温度的设定,同时将当前温度的测量值显示在LED上。恒温箱
2、控制器要求如下1)目标稳定温度范围为100摄氏度50摄氏度;2)以PID控制算法实现控制精度为1度;3)温度传感器输入量程30摄氏度120摄氏度,电流420MA;4)加热器为交流220V,1000W电炉。3、设计要求1)硬件部分包括微处理器(MCU)、D/A转换、输出通道单元、键盘、显示等;2)软件部分包括键盘扫描、D/A转换、输出控制、显示等;3)用PROTEUS软件仿真实现;4)用PROTEL画出系统的硬件电路图;5)撰写设计说明书一份不少于2000字,阐述系统的工作原理和软、硬件设计方法,重点阐述系统组成框图、硬件原理设计和软件程序流程图。说明书应包括封面、任务书、目录、摘要、正文、参考
3、文献资料等内容,以及硬件电路图和软件程序框图等材料。二、设计原始资料PROTEUS及KEIL51仿真软件,及软件使用说明。三、要求的设计成果(课程设计说明书、设计实物、图纸等)设计说明书一份不少于2000字。课程设计说明书四、进程安排12015年3月2日资料查阅22015年3月3,4日总体设计,硬件设计32015年3月5,6日绘制电路图32015年3月9,10日绘制软件程序流程图,编写软件42015年3月11日软、硬件仿真调试52015年3月12,13日撰写设计说明书五、主要参考资料1王福瑞等单片微机测控系统设计大全北京航空航天大学出版社,19992现代测控技术与系统韩九强清华大学出版社200
4、793智能仪器程德福,林君主编机械工业出版社2005年2月4测控仪器设计浦昭邦,王宝光主编机械工业出版社20015基于AT89C51单片机的数字电压表的设计,黄亮,电子制作,200610,25276KEILC51帮助文档指导教师(签名)教研室主任(签名)课程设计说明书课程设计成绩评定表出勤情况出勤天数缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定指导教师签名年月日课程设计说明书目录摘要1一系统的硬件设计21恒温箱控制系统框图22微处理器AT89C5223温度传感器34显示部分45键盘输入电路56输出控制57温度
5、越线报警电路6二系统的软件设计71温度传感器模块软件设计72键盘管理模块73显示模块84控制模块85温度报警模块9三PID控制算法101PID的数学模型102PID控制规律的离散化10四设计总结11五参考文献12附录1元件清单13附录2硬件电路图14附录3程序清单15课程设计说明书1摘要随着社会发展的需求,人们对恒温箱的应用和需求越来越广泛,在工业生产和日常生活或科学实验中,我们随处都可以看到恒温箱的应用。如,可以根据动物生活习性的需要控制饲养棚合适的温度来进行孵卵或动物培养;在农业上,可用于种子的发芽;在医学上,可用于做细菌培养、放射免疫分析、血清溶化、石腊熔化、试管消毒等。常用的恒温箱主要
6、分为三类高温恒温箱高于60;中温恒温箱1060;低温恒温箱低于1O。恒温箱的温度控制系统可分为人工调节和自动调节两种方式,人工调节是通过温度计进行测量后手动调节变压器,从而控制产生热量的大小;而自动调节往往通过热电偶传感器进行测温,输出电压值,经放大后加到电机上驱动电机来调节变压器,其优点是可以连续、实时、准确的来控制温度。基于单片机技术的温控器和可编程温度传感器相结合使用是目前恒温箱温度控制较为先进的一种方式。单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。如果能利用单片机进行温度的测量和控制,将会大大提高温度
7、测量和控制的可靠性和灵活性。单片机对温度测量控制过程是借助于传感器、A/D转换器以及扩展接口和执行机构来进行的。在闭环型过程控制中,过程的实时参数由传感器和A/D转换器来实时采集,并由单片机自动记录、处理并控制执行机构动作来进行调节和控制。关键词恒温箱,单片机,AT89C52,A/D转换,温度传感器,DS18B20课程设计说明书2一系统的硬件设计1恒温箱控制系统框图根据上面对工作流程的分析,系统可以分为以下几个功能模块1键盘管理监测键盘输入,接收温度预置,启动系统工作。2显示显示设置温度及当前温度。3温度检测及温度值变换4温度控制根据检测到的温度控制电炉工作。5报警当预置温度或当前炉温越限时报
8、警。根据恒温箱控制器的功能要求,并结合对51系列单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C52作为电路系统的控制核心。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使电热器开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器。当自然冷却到设定温度50摄氏度以下时,单片机再次启动加热器,如此循环反复,以达到恒温控制的目的。2微处理器AT89C52AT89C52单片机是一种低功耗、高性能内含8K字节闪电存储器的8
9、位CMOS微控制器,与工业标准MCS51指令系列和引脚完全兼容有超强的加密功能,其片内闪电存储器的编程与擦除完全用电实现,数据不易挥发,编程/擦除速度快。如图所示课程设计说明书3EA/VPP31XTAL119XTAL218RST9P37RD17P36WR16P32INT012P33INT113P34T014P35T115P101P112P123P134P145P156P167P178AD0P0039AD1P0138AD2P0237AD3P0336AD4P0435AD5P0534AD6P0633AD7P0732A8P2021A9P2122A10P2223A11P2324A12P2425A13P2
10、526A14P2627A15P2728PSEN29ALE/PROG30TXDP3111RXDP3010GND20VCC40AT89C52的引脚结构它的主要特点有1内部程序存储器为电擦除可编程只读存储器EEPROM,容量8KB,内部数据存储器容量256B不包括专用寄存器,外部数据存储器寻址空间64KB,外部程序存储器寻址空间64KB;2有三个16位的定时器/计数器;3可利用两根I/O口线作为全双工的串行口,有四种工作方式,可通过编程选定;4内部ROM中开辟了四个通用工作寄存器区,共32个通用寄存器,以适应多种中断或子程序嵌套的情况;5内部有6个中断源,分为二个优先级,每个中断源优先级是可编程的;
11、6堆栈位置是可编程的,堆栈深度可达128字节;3温度传感器采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围55125,采用独特1WIRE总线协议,只需一根口线即实现与MCU的双向通讯,具有连接简单,高精度,高可靠性等特点。并且,DS18B20支持一主多从,若想实现多点测温,可方便扩展。DS18B20的特点(1)独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围3055V。(4)测温范围为55125。在1085范围内误差为0
12、5。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。课程设计说明书4(7)支持多点组网功能,通过识别芯片各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(3)DS18B20在电路中的连接,见图DS18B20测温电路4显示部分显示采用3位共阳LED动态显示方式,显示内容有温度值的十位、个位及小数点后一位。用P2口作为段控码输出,并用74LS164作驱动。P00P02作为位控码输出,用PNP型三极管做驱动。如下图所示
13、显示部分课程设计说明书55键盘输入电路键盘设定用于温度设定。共三个按键。KEY1(P11)状态切换;温度设置确认;温度重新设置。KEY2(P12)设置温度“”。KEY3(P13)设置温度“”。如图所示键盘输入电路6输出控制采用光电藕合器,控制信号与输出信号可以很好的隔离,增强了系统的安全性和抗干扰能力。输出控制电路,MOC3021内部带有过零控制电路,MOC3021输出端额定电压为400V。加热电路中采用MOC3021的目的有两个其一是实现强电与弱电的隔离其二是实现双向可控硅的过零触发,从而使流过双向可控硅的电流波形为正弦波,减少谐波。电路连接如图所示,其在电路中的工作原理是单片机根据传感器和
14、设定开关输入的控制指令,控制电器的电源通断。SW1为双向开关,其最大通态电流为1A。当电源控制电路的输出管脚P16送出的开关控制指令为高电平,MOC3021截止,Q2截止,电器被关闭;当电源控制电路的输出管脚P16送出的开关控制指令为低电平,MOC3041导通,Q2导通,电器被打开。通过MOC3021内部的过零触发电路,保证Q2在电压过零时导通和截止,对供电系统干扰极小。R6和C6是Q2的保护电路。如下图课程设计说明书6光耦控制输出电路7温度越线报警电路报警电路如图所示,该电路采用一个小功率三极管Q2驱动蜂鸣器,当单片机接收到超额温度信号或危险信号时,输出脚P17输出高点平,Q2导通,致使蜂鸣
15、器得电工作,发出报警声。同时,电路中的发光二极管指示出电路的工作状态。报警电路课程设计说明书7二系统的软件设计1温度传感器模块软件设计对DS18B20操作时,首先要将它复位。复位时,DQ线被拉为低电平,时间为480960US;接着将数据线拉为高电平,时间为1560US;最后DS18B20发出60240US的低电平作为应答信号,这时主机才能进行读写操作。进行写操作时,将数据线从高电平拉至低电平,产生写起始信号。从DQ线的下降沿起计时,在15US到60US这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。在开始另一个写周期前,必须有1US以上的高电平恢复期。
16、每个写周期必须要进行写操作时,将数据线从高电平拉至低电平,产生写起始信号。从DQ线的下降沿起计时,在15US到60US这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。温度转换读取温度数值程序流程如下图所示。开始发起CONVERTT命令延时1S,等待温度转换完成读取第1、2字节即为温度数据发起SKIPROM命令初始化DS18B20初始化DS18B20发起READSCRATCHPAD命令应答脉冲应答脉冲NONOYESYES温度转换读取温度数值程序流程2键盘管理模块键盘管理子程序流程如图所示课程设计说明书8当通电或复位以后,系统进入键盘管理状态,单片机只接收
17、设定温度和启动。当检测到有键闭合时先去除抖动,这里采用软件延时的方法,延时一段时间后,再确定是否有键闭合,然后将设定好的值送入预置温度数据区,并调用温度合法检测报警程序,当设定温度超过最大值如100时就会报警,最后当启动键闭合时启动加热。键盘设定用于温度设定。共三个按键。KEY1(P11)状态切换;温度设置确认;温度重新设置。KEY2(P12)设置温度“”。KEY3(P13)设置温度“”。系统上电后,数码管全部显示为零,根据按KEY1次数,决定显示的状态,根据相应的状态,利用KEY2、KEY3进行加减,当温度设定好之后,再按KEY1确定,系统开始测温,启加热器。3显示模块显示子程序的功能是将缓
18、冲区的二进制数据先转换成3个BCD码,再将其分别存入百位、十位、个位3个显示缓冲区,送往串行口,利用单片机的P0口进行扫描,让数据动态的显示出来,可显示设置温度和测量温度。4控制模块温度控制子程序流程如图所示,将当前温度与设定好的温度比较,若当前温课程设计说明书9度小于设定温度时,开启电热器;若当前温度大于设定温度时,关闭电热器;若二者相等时,电热器保持这一状态。5温度报警模块报警子程序流程如图所示。根据设计要求,当检测到当前温度值高于设定温度值1时报警,报警的同时关闭电热器。为了防止误报,设置了报警允许标志,只有在允许报警的情况下,温度值高于设定温度值时才报警。课程设计说明书10三PID控制
19、算法1PID的数学模型PID控制是一种比较成熟的控制理论,它通过比例、积分、微分三部分的合理组合可以用比较简单的方法获得令人满意的控制效果。PID的数学模型如图表示比例微分被控对象积分ETRTUTYTPID数学模型给定值RT与实际值YT构成控制误差E(T)R(T)Y(T)式21PID控制器根据ET将误差的比例P、积分I、和微分D通过线性组合构成控制量,对受控对象进行控制,其控制规律如式2所示UTKPET01TDITDETETDTTDT式22UT控制器输出函数ET控制器误差函数KP比例系数TI积分时间常数TD微分时间常数。2PID控制规律的离散化为了用计算机实现PID控制,采用增量式PID控制算
20、法,增量式PID控制算法是指数字控制器的输出只是控制量的增量UN。当执行机构需要的是控制量的增量时,可由式导出提供增量的PID控制算法。根据递推规律得101112NPIDJUNKENKEJKENEN式26用式25减去式26可得11212DNNPNNNNITTUUKENENEEEETT式27改写成11212NNPIDUUKENENKENKENENEN1PIDUNPPP式28课程设计说明书11四设计总结我们的温度控制系统是基于AT89C52单片机的设计方案,它能实时显示当前温度,并能根据用户的要求做出相应的控制。此系统为闭环系统,工作稳定性高,控制精度高,利用模糊控制算法使超调量大大降低。软件采用
21、模块化结构,提高了通用性。本设计的目的不仅仅是温度控制本身,主要提供了单片机外围电路及软件包括控制算法设计的思想。设计所达到的性能指标如下1)温控系统的标度误差我们将标准温度计和温控系统探头放人同一容器中,选定若干不同的温度点,记录下标准温度计显示的温度和温控系统显示的温度进行比较。测量数据如下所示标准温度计578630728851909()温控系统583629730855905()差值比较0501020404()标度误差152)温控系统的静态误差通过测量在不同的温度点同标准温度的温度差来确定温控系统的静态误差。其测量数据如下所示标准温度600700830902()系统显示值596700833
22、905()差值0400303()静态误差0183)温控系统的控制精度通过设定不同的温度值,使加热器加热,待温度稳定时记录各温度点的温度计数据和温控系统的显示值。其记录数据如下设定温度值550650750870910()系统显示值541646749861912()差值0109010902()控制精度045超调量083结果分析论述该设计具有较小的超调值,超调值大约为083左右。虽然超调为不利结果,但另一方面却减小了系统的调节时间。从其数据表可以看出该系统为稳定系统,而且满足系统的误差要求。课程设计说明书12五参考文献1王福瑞等单片微机测控系统设计大全北京航空航天大学出版社,19992现代测控技术与
23、系统韩九强清华大学出版社200793智能仪器程德福,林君主编机械工业出版社2005年2月4测控仪器设计浦昭邦,王宝光主编机械工业出版社20015基于AT89C51单片机的数字电压表的设计,黄亮,电子制作,200610,25276KEILC51帮助文档课程设计说明书13附录1元件清单类型名型号阻值数量电阻MINRES100R1K3电阻MINRES10K10K3电阻MINRES100R27R1电阻MINRES100R3R1电阻MINRES100R100R1电阻MINRES10K03K10电容HTC0060330PF3电容HTC0060310UF1电容HTC0060310PF1按钮4三极管2N377
24、2三极管PN42503传感器DS18B201光的耦合器MOC30211加热器1芯片74LS1641单片机AT89C521数码管7SEGMPX1CC3课程设计说明书14附录2硬件电路图恒温箱控制器硬件系统图课程设计说明书15附录3程序清单TEMPER_LEQU29H用于保存读出温度的低8位TEMPER_HEQU28H用于保存读出温度的高8位FLAGEQU38H是否检测到DS18B20标志位DAYUEQU44H设温实温XIYUEQU45H设温实际温度MOVA,39HCJNEA,30H,L1SETBDEYUSJMPL2L1JCL2SETBDAYU设温实温,SJMPL2L2RET极限值求取子程序完成上
25、下极限值的求取,并置相应的标志位JIXIANPUSHACCPUSHPSWCLRCMOVA,50HSUBBA,10MOV31H,AMOVA,50HADDA,10MOV32H,APOPPSWPOPACCRET读出转换后的温度值课程设计说明书26GET_TEMPERMOVA,0CCH跳过ROM匹配MOVA,44H发出温度转换命令LCALLDISPLAY调用显示子程序实现延时一段时间,等MOVA,0CCH跳过ROM匹配MOVA,0BEH发出读温度命令LCALLREAD_18200将读出的温度数据保存到35H/36HRET读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_1820
26、0MOVR4,2将温度高位和低位从DS18B20中读出MOVR1,29H低位存入29HTEMPER_L,高位存入RE00MOVR2,8数据一共有8位RE01CLRCNOPNOPNOPNOPNOPMOVR3,9RE10DJNZR3,RE10MOVR3,23RE20DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET显示子程序课程设计说明书27DISPLAYMOVA,29H将29H中的十六进制数转换成10进制MOVB,1016进制/1010进制DIVABMOVBBIT,A十位在AMOVABIT,B个位在BMOVCBIT,30HDIRMOVDPTR,TABMOVA,CBITMOVCA,ADPTRMOVP2,AACALLD1MSMOVDPTR,TAB1指定查表启始地址MOVA,ABIT取个位数MOVCA,ADPTR查个位数的7段代码MOVP2,A送出个位的7段代码ACALLD1MS显示1MSMOVDPTR,TABMOVA,BBIT取十位数MOVCA,ADPTR查十位数的7段代码MOVP2,A送出十位的7段代码ACALLD1MS显示1MSRETD1MSPUSHPSWSETBRS1SETBRS0MOVR7,05HDD1MOVR6,0FFHDD2DJNZR6,DD2DJNZR7,DD1POPPSWRET