电热水器控制系统_第1页
电热水器控制系统_第2页
电热水器控制系统_第3页
电热水器控制系统_第4页
电热水器控制系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WordWord资料电子信息工程专业课程设计任务书题目:电热水器控制系统设计设计容设计一个由8051MCU组成的电热水器控制系统。能够测量当前水温并显示;可以设置烧水温度,当无水时要有报警功能。通过这个过程熟悉温度传感器、键盘控制和七段数码管的使用,掌握51系列单片机控制和测试方法。;用LED显示测量得到的水温值。完成基本要求,可以适当发挥进行扩展设计。1)数码管显示:年月日时分秒;2)键盘输入修改时间、日期设置;设计步骤一、总体方案设计以51系列MCU构成核心模块.合理分配存储器资源和I/O资源。温度采集模块建议采用DS18B20,或采用PtlOO再经模数转换;显示模块用2位LED可满足需要;报警模块可采用声光等形式;输入模块可选用矩阵式键盘或键盘驱动芯片;可选用8255进行I/O扩展。二、硬件选型工作对于每一个芯片要有具体型号,对每个分立元件要给出其参数三、硬件的设计和实现.选择计算机机型(采用51核的单片机);.设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);.接口电路;.其它相关电路的设计或方案(电源、通信等)四、软件设计.分配系统资源,编写系统初始化和主程序模块;.编写相关子程序;.其它程序模块(显示与键盘等处理程序)。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。TOC\o"1-5"\h\z\o"CurrentDocument"一、设计要求 1\o"CurrentDocument"二、设计目的 1\o"CurrentDocument"三、设计的具体实现 1.硬件设计 2单片机的选择 2\o"CurrentDocument"12水位检测电路 6\o"CurrentDocument"L3.温度检测电路 7\o"CurrentDocument"A/D转换器 9\o"CurrentDocument"15报警电路 10\o"CurrentDocument".软件设计 11\o"CurrentDocument".温度测量子程序 12\o"CurrentDocument"22判断子程序 13重要代码 \o"CurrentDocument"四、结论与展望 14\o"CurrentDocument"五、心得体会及建议 14\o"CurrentDocument"六、附录 14电热水器控制系统设计报告一、设计要求设计一个由8051MCU组成的电热水器控制系统。能够测量当前水温并显示;可以设置烧水温度,当无水时要有报警功能。通过这个过程熟悉温度传感器、键盘控制和七段数码管的使用,掌握51系列单片机控制和测试方法。设计以AT89C51单片机为核心,用LED显示测量得到的水温值。完成基本要求,可以适当发挥进行扩展设计。1)数码管显示:年月日时分秒;2)键盘输入修改时间、日期设置;以51系列MCU构成核心模块,合理分配存储器资源和I/O资源。温度采集模块建议采用DS18B20,或采用PtlOO再经模数转换;显示模块用2位LED可满足需要;报警模块可采用声光等形式;输入模块可选用矩阵式键盘或键盘驱动芯片;可选用8255进行I/O扩展。二、设计目的运用我们所学的专业知识,采用单片机为主控芯片设计电热水器控制系统并辅以外围电路设计।既能加深我们对专业知识的理解,又能培养专业知识与实践相结合的实践技能,提高我们分析、解决问题的能力。三、设计具体实现电热水器控制系统的整体设计方案包括硬件设计方案和软件设计方案。硬件是指以微控制器作为核心,由外接温度测量电路、键盘、复位、热水器加热开关、LED显示电路、报警电路组成。根据功能需求说明,本着节约开发成本、增加系统可靠性、减小体积等原则进行电热水器控制系统的硬件设计。本系统采用51系列单片机AT89C52作为整个系统的核心,利用AT89C52现有的接口组织外围硬件模块。由于环境的特殊性,温度测量主要是由PtOO粕电阻温度传感器、温度传感器的信号调理电路和基于ADC0801的A/D转换电路组成;键盘由三个按键组成:分别为开关和;水位检测电路检测是否有水,避免干烧;LED显示电路主要用于显示温度;报警装置为单片机I/O口驱动蜂鸣器,达到报警的效果。

图1系统硬件图1硬件设计1.1单片机的选择PDIP(T2JP1-0图1系统硬件图1硬件设计1.1单片机的选择PDIP(T2JP1-0匚(T2EXJP1.1匚PI.2匚P1a3匚P1.4匚(MOSI)P1.5匚(MISOP1.6匚(SCKJP1.7匚RST匚iRXJDjR3.0匚(TXJD)P3.1匚CINTP>R3.2匚iiNTT)P3.3匚(TC)/3.4匚(T1JR3.5C:W=R3.6匚(RO1P3.7匚XTAL2UXTAL1匚GtsID匚交油相373635/33323130292«衣*,258A1工nVCGnpcc(Acxhh□FC1I:AD:!PC2i:AD2^□PO.3(ATO)PO4(AD4>□FC.E(405,□foe(ad«>nFO_7(ATXrji□Ea^vppZ]A1L&-PRCMBPSEMP27i:A15)R2.CI;A1-:F25(A13)F2-4i:A1^:psa(Al1)R2J2i:A1DjP21(A0)P2_Ci:A9)□Z1Z1Z]□Z1□□图2AT89c52芯片引脚图AT89C52主要性能:K与MCS-51单片机产品兼容2、8K字节在系统可编程Flash存储器3、1000次擦写周期4、全静态操作:0Hz~33Hz5、三级加密程序存储器6、32个可编程I/O口线7、三个16位定时器/计数器8、八个中断源9、全双工UART串行通道10、低功耗空闲和掉电模式IK掉电后中断可唤醒12、看门狗定时器13s双数据指针14、掉电标识符功能特性描述:AT89c52提供以下表中功能:8k字节Flash闪速存储器,256字节部RAM,32个I/O口线।3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89c52可降至0Hz的静态逻辑操作।并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作I但允许RAM,定时/计数器:串行通信口及中断系统继续工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。VCC:电源电压GND:地P0□:P0口是一个8位漏极开路的双向I/O□,也即地址/数据总线复用口。作为输出口।每位能吸收电流的方式驱动8个TTL逻辑电平。对P0端口后丁时।引脚用作高阻抗输入。当访问外部程序和数据存储器时:P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在flash编程时,P0□也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有部上拉电阻的8位双向I/O□,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口后“1”时,部上拉电阻把端口拉高।此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(HL)o此外,P1.0和PL1分别作定时器/计数器2的外部计数输(PL0/T2)和时器/计数器2的触发输入(PLl/T2EX)i具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表1PL0和PL1口的第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时.器/计数器T2的捕捉/重载触发信号和方向控制)P2□:P2口是一个具有部上拉电阻的8位双向I/O□,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时।部上拉电阻把端口拉高।此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(HL)o在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3□:P3口是一个具有部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口目丁时,部上拉电阻把端口拉高।此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(肌)。P3口亦作为AT89c52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时:P3口也接收一些控制信号。表2P3口的第二功能引脚号第二功能P3.0RXD(中行输入)P3.1TXD(中行输出)P3.2INTO(外部中断0)P3.3INT0(夕卜部困10)P3.4TO(定时器。外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数如存储器可选通)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时।此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲।可用来作为外部定时器或时钟使用。然而,特别强调।在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要।通过将地址为8EH的SFR的第。位置S',ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令:EA必须接GNDO为了执行部程序指令,EA应该接VCC。在flash编程期间:EA也接收12伏VPP电压。灯AL1:振荡器反相放大器和部时钟发生器的输入端。灯AL2:振荡器反相放大器的输出端。Flash编程一并行模式:AT89C52带有用作编程的片上Flash存储器阵列。编程接口需要一个高电压(12V)编程使能信号।并且兼容常规的第三方Flash或EPROM编程器。编程方法:对AT89C52编程之前,需设置好地址、数据及控制信号,可采用下列步骤对AT89c52编程:.在地址线上输入编程单元地址信号.在数据线上输入正确的数据.激活相应的控制信号.把EA/Vpp升至12V.每给Flash写入一个字节或程序加密位时।都要给ALE/PROG一次脉冲。每个字节写入周期是自身定时的,通常均为L5ms。重复1—5步骤,改变编程单元的地址和写入的数据।直到全部文件编程结束。12水位检测电路在这里我采用排阻式水位传感器的方法,排阻式水位传感器的工作原理大致是分别用两个根铜针分别置于水箱的底部位置。若是无水,铜针不接触水面:其输出为高电平;若铜针与其对应水面接触时则输出为低电平:输出接至电子开关,接到AT89s52的P3.3引脚。单片机对引脚进行判断后,判断是否有水,避免干烧。水位传感器采用电压跟随器与电压比较电路相结合实现。

图3水位检测电路图3水位检测电路二三三二二二二二一13温度检测电路在温度检测电路采用WZP型PtlOO温度传感器进行设计,温度的测量围为。〜+400C。之间,分辨率为2C。,温度显示设置为小数点后1位数据。PtlOO是模拟量输出的温度传感器,随温度变化的是电阻,所以需要通过模拟电路将电阻转变为电压,然后经放大电路处理后再送入A/D转换器。PtlOO热电阻是利用金属导体再温度变化时自身的电阻值也随着发生变化的特性来测量温度的。热电阻的受热部分是用细金属丝均匀地双绕在绝缘材料制成的骨架上。当被检测介质中有温度梯度存在时,所测得的温度是感温元件所在围介质层中的平均温度。Ptioo温度传感器为正温度系数热敏电阻传感器,主要技术参数如下:.测温围:-200C。〜+850C。;.允许偏差值:A级±(0.15+0.02附B级土(0.30+0.05忖);.最小置入深度:热电阻的最小置入深度2200mm;.允许通过的通电流W5nnA;.另外।PtIOO温度传感器还具有抗震动、稳定性好、准确度高、耐高压等优点。PtlOO的线性好,在0〜100C。之间变化时,最大非线性偏差小于0.5C。。虽然PtlOO的线性度比较好;但是可以从数据之间发现PtlOO的电阻与测量的温度之间并不是完全的线性关系。因此在实际使用PtlOO时।往往需要通过查表法或线性插值算法来计算出测量的温度。查表法是指在单片机的ROM存储区间中建立一个电阻和温度之间的分度表。当测量温度时,通过软件先计算出PH00的阻值,然后再去查询分度表获得该阻值所对应的温度值。显而易见।在检测值的围对标定的点数设置的越多表格越大,占用的的ROM存储容量也就越大,但是对PtlOO的描述也就越精确。另一种计算温度的方法就是采用线性插值算法。这种方法就是通过已知的Ptioo分度表中的数据,将温度的变化曲线分为相应的几段。然后,找一个最佳的函数关系式来表示各段曲线上Ptioo的阻值与被测温度之间的函数关系式。由于每个区间段都是用了一个函数解析式来进行描述I因此这种方法在程序设计时十分方便。所以在此我们采用线性插值算法。根据系统的温度测量围先将曲线分为四段,每100C。分为一段。每一段的温度与阻值之间的关系如下:当OCVWIOOC。时,t二2.558*Rpt100-256.02当100C0<tW200co时।t=2,637*Rptl00-267.01当200C0<t。300co时।t=2,721*Rptl00-281.9当300Co<tW400C。时।t二2.81*Rptl00-300.94图4温度测量电路图放大电路采用LM358集成运算放大器:为了防止单级放大倍数过高带来的非线性误差।放大电路采用两级放大,如图3.4所示,前一级约为10倍:后一级约为3倍。温度在。〜100度变化।当温度上升时,PtlOO阻值变大।输入放大电路的差分信号变大,放大电路的输出电压Av对应升高。A/D转换器ADC0801是一个8位、单通道、低价格A/D转换器、主要特点是:摸数转换时间大约100us;方便的TTL或CMOS标准接口;可以满足差分电压输入;具有参考电压输入端;含时钟发生器;单电源工作时(0V〜5V)输入信号电压围是0V〜5V;不需同专*寺寺OCS:片选信号。低电平有效,高电平时芯片不工作。RD:外部读数据控制信号。此信号低电平时ADC0804把转换完成的数据加载到DB口。WR:外部写数据控制信号。此信号的上升沿可以启动ADC0804的A/D转换过程。CLKIN:时钟输入引脚。ADC0804使用RC振荡器作为A/D时钟,CLKIN是振动的输入端。INTR:转换结束输出信号。ADC0804完成一次A/D转换后.此引脚输出一个低脉冲。对单片机可以称为中断触发信号。Vin(+):输入信号电压的正极。Vin(-):输入信号电压的负极。可以连接到电源地。AGND:模拟电源的地线。Vref/2:参考电源输入端。参考电源取输入信号电压(最大值)的二分之一。例如输入信号电压是0V〜5V时।参考电源取2.;输入信号电压是0V〜4V时,参考电源取2.0V。DGND:数字电源的地线。DB8〜DBO:数字信号输出口,连接单片机的数据总线。CLKR:时钟输入端。VCC:5V电源引脚。补充说明:CLKI和CLKR:ADC0801~0805片有时钟电路,只要在外部“CLKI”和“CLKR”两端外接一对电阻电容即可产生A/D转换所要求的时钟,其振荡频率为fCLK-1/l.lRCo其典型应用参数为:R=10KQ,C=150PF,fCLK-640KHz,转换速度为100口S。若采用外部时钟:则外部fCLK可从CLKI端送入।此时不接R、C。允许的时钟频率围为lOOKHz〜1460KHZo图5A/D转换器电路图报警电路蜂鸣器是采用直流电压供电的一种一体化结构的电子讯响器,目前广泛应用于我们的生活中।比如说在电脑、各种报警器、汽车电子设备、机、定时器等常见的电子产品中作为发声器。本设计采用的蜂鸣器为电磁式蜂鸣器。电磁式蜂鸣器由振荡器、磁铁、电磁线圈、振动膜片以及外壳组成,电磁式蜂鸣器基本原理是在电源接通后।在电磁线圈和磁铁的相互作用下,振荡膜片周期性地振动发声。因为蜂鸣器通常工作电流比较大,但是单片机I/O口输出的电流很小驱动不了蜂鸣器,所以还得选用的NPN型三极管9013来驱动蜂鸣器。报警电路设计原理:当水箱的水位降到一定值时।输出的低电平信号,或者烧水温度达到预置温度时।单片机通过指令将P1.5置成高电平।三极管Q5导通,扬声器工作,发出吱吱的声音。同理当水箱的水过高时,PL5为高电平:报警电路开始工作。蜂鸣器报警电路如图3.6所示。图6电磁式蜂鸣器报警电路图2软件设计软件设计由主程序।键扫描子程序及若干功能模块子程序组成。其中主控制器子程序包括A/D转换子程序(水位、水温),键盘处理及显示子程序,加热控制子程序(使用输出比较功能)等组成。主程序要先初始化系统的工作参数,主要是单片机的定时器,COP模块、A/D转换、端口、键中断等的工作模式参数设定,之后系统主程序循环调用各个功能模块子程序,对相关事件的处理依靠标志位和判断标志位实现。在本次设计中运用到了PROTEUS的ISIS电路分析实物仿真系统和KEIL单片机编程软件,通过对它们联调可以仿真出本次设计的要求。主程序设计思路:软件设计采用各个模块功能分开独立设施的设计方式।将各个功能分成独立模块।有系统和监控程序一起管理执行。本设计的软件包括主程序,键盘扫描子程序,显示子程序,水位测量子程序以及有关的PtIOO的程序。我主要说明了两个最主要的子程序:温度测量、水位测量的流程和液晶显示流程。主程序完成功能:系统对传感器PTIOOs显示器进行初始化,并且读取用户通过键盘设置的最高烧水温度信息,随之系统自动

读取当前水位,系统执行相应功能I完成后等待下一次的启动命令。当检测到无水时,系统会启动报警电路工作,当检测到超过设定的烧水温度时,启动报警电路并关闭加热电路。本设计的系统整体流程图如图8所示。开始二开始二图7系统总体程序流程图温度测量子程序温度测量由Ptioo温度传感器来完成,温度测量子程序流程如图3.8所示。根据系统的温度测量围温度与阻值之间的关系编写程序,使阻值变换为温度,进行温度的测量।送入AT89c51单片机:之后送入显示电路进行显示温度。图8PtlOO测温程序流程图判断子程序判断整个程序的运行,当水温超过预定设置温度值时:关闭加热电路,如果低于预定设置温度值时।开通加热电路,进行加热。当无水的时候,自己断电避免干烧।并蜂鸣报警。

开始图9判断程序流程图重要代码主函数:voidmain(){TMOD=0x01;TH0二(65536-46000)/256;TL0=(65536-46000)%256;EA=1;ETO=1;TRO=1;zd=O;num=21;aaa=0;bbb=0;numl=21;num2=21;num3=21;while(l){uinta;ucharb:changetempO;a=gettemp();b=scanff();numy=gettemp();display(a,b);))显示函数的分析:voiddisplay(uinta.ucharb){uchari,temp:srtemp,dis[4];uintdda;dda=abs(a);numx=dda/1000;num4=dda%1000/100;num5=dda%100/10;num6=dda%10;dis[O]=numx;dis[l]=num4;dis[2]=num5;dis[3]=num6;dis[2]+=10;if((dis[O]==0)&&(dis[l]==0))dis[l]=20;if(a<0)dis[3]+=10;else{if(dis[0]!=0)dis[l]=dis[l]+10;temp=Oxfb;for(i=l;i<4;i++){PO=Oxff;wei=l;temp=_croL(temp1l);PO=temp;wei=O;P0=0;duan=l;PO=table[dis[i]];duan=O;delay⑶;)duan=l;PO=OxOO;duan=O;if(aaa==l&&ccc!=21)bbb++;switch(bbb){case0:dis[l]=b;numl=b;dis[2]=num2;dis[3]=num3;if(dis[2]==21)dis[2]++;elsedis[2]+=10;srtemp=0xfe;for(i=l;i<4:i++){P0=0xff;wei=l;PO=srtemp;wei=O;srtemp=_croL(srtemp,1);PO=OxOO;duan=l;PO=table[dis[i]];duan=O;delay⑴;duan=l;PO=OxOO;duan=O;)break;case1:dis[l]=numl;dis[2]=b;num2=b;dis[3]=num3;if(dis[2]==21)dis[2]++;elsedis[2]+=10;srtemp=Oxfe;for(i=l;i<4;i++){PO=Oxff;wei=l;PO=srtemp;wei=O;srtemp=_croI_(srtempf1);P0=0x00;duan=l;PO=table[dis[i]];duan=0;delay⑴;duan=l;PO=OxOO;duan=O;)中断加热子函数的分析:voidtimerO()interrupt1{inta;THO二(65536-46000)/256;TL0=(65536-46000)%256;zd++;if(zd==6)(zd=O;a=numl*100+num2*104-num3;if(a>=numy&&numl!=21&&num2!=21&&num3!=21){jiar=l;Pl=Oxfd;jiar=O;else(jiar=l;Pl=Oxff;jiar=O;)))四、结论与展望本课题通过以AT89C52单片机为核心并辅以外围电路的设计方法实现了低成本的控制要求。该系统具备简单、经济的特点,灵活的键盘控制方式来设定功能等参数增加了系统的灵活性,对水温的采集和显示、实时时钟的显示增加了系统的实用性。电热水器部器件较多,控制也较为复杂,应该说本课题是实时电热水器控制系统的小的缩影

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论