电热水器控制系统设计-电子信息工程课程论.doc

上传人:wux****ua 文档编号:8895337 上传时间:2020-04-01 格式:DOC 页数:23 大小:217KB
返回 下载 相关 举报
电热水器控制系统设计-电子信息工程课程论.doc_第1页
第1页 / 共23页
电热水器控制系统设计-电子信息工程课程论.doc_第2页
第2页 / 共23页
电热水器控制系统设计-电子信息工程课程论.doc_第3页
第3页 / 共23页
点击查看更多>>
资源描述
电子信息工程专业课程设计任务书题目:电热水器控制系统设计设计内容设计一个由8051MCU组成的电热水器控制系统。能够测量当前水温并显示;可以设置烧水温度,当无水时要有报警功能。通过这个过程熟悉温度传感器、键盘控制和七段数码管的使用,掌握51系列单片机控制和测试方法。;用LED显示测量得到的水温值。完成基本要求,可以适当发挥进行扩展设计。1)数码管显示:年月日时分秒;2)键盘输入修改时间、日期设置; 设计步骤一、总体方案设计以51系列MCU构成核心模块,合理分配存储器资源和I/O资源。温度采集模块建议采用DS18B20,或采用Pt100再经模数转换;显示模块用2位LED可满足需要;报警模块可采用声光等形式;输入模块可选用矩阵式键盘或键盘驱动芯片;可选用8255进行I/O扩展。二、硬件选型工作对于每一个芯片要有具体型号,对每个分立元件要给出其参数三、硬件的设计和实现1. 选择计算机机型(采用51内核的单片机);2. 设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);3. 接口电路;4. 其它相关电路的设计或方案(电源、通信等)四、软件设计1. 分配系统资源,编写系统初始化和主程序模块;2. 编写相关子程序;3. 其它程序模块(显示与键盘等处理程序)。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。目 录一、设计要求1二、设计目的1三、设计的具体实现 11.硬件设计 21.1.单片机的选择 21.2.水位检测电路 61.3.温度检测电路 71.4.A/D转换器 91.5.报警电路102.软件设计 112.1.温度测量子程序 122.2.判断子程序 132.3重要代码四、结论与展望14五、心得体会及建议 14六、附录14七、参考文献14电热水器控制系统设计报告一、设计要求设计一个由8051MCU组成的电热水器控制系统。能够测量当前水温并显示;可以设置烧水温度,当无水时要有报警功能。通过这个过程熟悉温度传感器、键盘控制和七段数码管的使用,掌握51系列单片机控制和测试方法。设计以AT89C51单片机为核心,用LED显示测量得到的水温值。完成基本要求,可以适当发挥进行扩展设计。1)数码管显示:年月日时分秒;2)键盘输入修改时间、日期设置; 以51系列MCU构成核心模块,合理分配存储器资源和I/O资源。温度采集模块建议采用DS18B20,或采用Pt100再经模数转换;显示模块用2位LED可满足需要;报警模块可采用声光等形式;输入模块可选用矩阵式键盘或键盘驱动芯片;可选用8255进行I/O扩展。二、设计目的运用我们所学的专业知识,采用单片机为主控芯片设计电热水器控制系统并辅以外围电路设计,既能加深我们对专业知识的理解,又能培养专业知识与实践相结合的实践技能,提高我们分析、解决问题的能力。三、设计具体实现电热水器控制系统的整体设计方案包括硬件设计方案和软件设计方案。硬件是指以微控制器作为核心,由外接温度测量电路、键盘、复位、热水器加热开关、LED显示电路、报警电路组成。根据功能需求说明,本着节约开发成本、增加系统可靠性、减小体积等原则进行电热水器控制系统的硬件设计。本系统采用51系列单片机AT89C52作为整个系统的核心,利用AT89C52现有的接口组织外围硬件模块。由于环境的特殊性,温度测量主要是由Pt00铂电阻温度传感器、温度传感器的信号调理电路和基于ADC0801的A/D转换电路组成;键盘由三个按键组成:分别为开关和“+”、“-”;水位检测电路检测是否有水,避免干烧;LED显示电路主要用于显示温度;报警装置为单片机I/O口驱动蜂鸣器,达到报警的效果。键盘显示电路加热开关控制水位检测 温度检测蜂鸣报警A/DAT89C52图1 系统硬件图1硬件设计1.1 单片机的选择图2 AT89C52芯片引脚图AT89C52 主要性能:1、 与MCS-51 单片机产品兼容2、 8K 字节在系统可编程Flash 存储器3、 1000 次擦写周期4、 全静态操作:0Hz33Hz 5、 三级加密程序存储器6、 32 个可编程I/O 口线7、 三个16 位定时器/计数器8、 八个中断源9、 全双工UART 串行通道10、低功耗空闲和掉电模式l1、掉电后中断可唤醒l2、看门狗定时器13、双数据指针l4、掉电标识符功能特性描述:AT89C52提供以下表中功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。VCC : 电源电压GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。作为输出口,每位能吸收电流的方式驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表1 P1.0和P1.1口的第二功能P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表2 P3口的第二功能RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。Flash 编程并行模式:AT89C52 带有用作编程的片上Flash 存储器阵列。编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash 或EPROM 编程器。编程方法:对AT89C52 编程之前,需设置好地址、数据及控制信号,可采用下列步骤对AT89C52 编程:1在地址线上输入编程单元地址信号2在数据线上输入正确的数据3激活相应的控制信号4把EA/Vpp 升至12V 5每给Flash 写入一个字节或程序加密位时,都要给ALE/PROG 一次脉冲。每个字节写入周期是自身定时的,通常均为1.5ms。重复15步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。1.2.水位检测电路在这里我采用排阻式水位传感器的方法,排阻式水位传感器的工作原理大致是分别用两个根铜针分别置于水箱内的底部位置。若是无水,铜针不接触水面,其输出为高电平;若铜针与其对应水面接触时则输出为低电平,输出接至电子开关,接到AT89S52的 P33引脚。单片机对引脚进行判断后 ,判断是否有水,避免干烧。水位传感器采用电压跟随器与电压比较电路相结合实现。图3 水位检测电路1.3.温度检测电路在温度检测电路采用WZP型Pt100温度传感器进行设计,温度的测量范围为0+400之间,分辨率为2,温度显示设置为小数点后1位数据。Pt100是模拟量输出的温度传感器,随温度变化的是电阻,所以需要通过模拟电路将电阻转变为电压,然后经放大电路处理后再送入A/D转换器。Pt100热电阻是利用金属导体再温度变化时自身的电阻值也随着发生变化的特性来测量温度的。热电阻的受热部分是用细金属丝均匀地双绕在绝缘材料制成的骨架上。当被检测介质中有温度梯度存在时,所测得的温度是感温元件所在范围内介质层中的平均温度。Pt100温度传感器为正温度系数热敏电阻传感器,主要技术参数如下:1. 测温范围:-200+850;2. 允许偏差值:A级(0.15+0.02|t|),B级(0.30+0.05|t|);3. 最小置入深度:热电阻的最小置入深度200mm;4. 允许通过的通电流5mA;5. 另外,Pt100温度传感器还具有抗震动、稳定性好、准确度高、耐高压等优点。Pt100的线性好,在0100之间变化时,最大非线性偏差小于0.5。虽然Pt100的线性度比较好,但是可以从数据之间发现Pt100的电阻与测量的温度之间并不是完全的线性关系。因此在实际使用Pt100时,往往需要通过查表法或线性插值算法来计算出测量的温度。查表法是指在单片机的ROM存储区间中建立一个电阻和温度之间的分度表。当测量温度时,通过软件先计算出Pt100的阻值,然后再去查询分度表获得该阻值所对应的温度值。显而易见,在检测值的范围内对标定的点数设置的越多表格越大,占用的的ROM存储容量也就越大,但是对Pt100的描述也就越精确。另一种计算温度的方法就是采用线性插值算法。这种方法就是通过已知的Pt100分度表中的数据,将温度的变化曲线分为相应的几段。然后,找一个最佳的函数关系式来表示各段曲线上Pt100的阻值与被测温度之间的函数关系式。由于每个区间段都是用了一个函数解析式来进行描述,因此这种方法在程序设计时十分方便。所以在此我们采用线性插值算法。根据系统的温度测量范围先将曲线分为四段,每100分为一段。每一段的温度与阻值之间的关系如下:当0t100时,t=2.558*Rpt100-256.02当100t200时,t=2.637*Rpt100-267.01当200t300时,t=2.721*Rpt100-281.9当300t400时,t=2.81*Rpt100-300.94图4 温度测量电路图放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图 3.4所示,前一级约为10倍,后一级约为3倍。温度在0100度变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压Av对应升高。1.4.A/D转换器ADC0801是一个8位、单通道、低价格A/D转换器,主要特点是:摸数转换时间大约100us;方便的TTL或CMOS标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时(0V5V)输入信号电压范围是0V5V;不需要调零等等。CS:片选信号。低电平有效,高电平时芯片不工作。RD:外部读数据控制信号。此信号低电平时ADC0804把转换完成的数据加载到DB口。WR:外部写数据控制信号。此信号的上升沿可以启动ADC0804的A/D转换过程。CLKIN:时钟输入引脚。ADC0804使用RC振荡器作为A/D时钟,CLKIN是振动的输入端。INTR:转换结束输出信号。ADC0804完成一次A/D转换后,此引脚输出一个低脉冲。对单片机可以称为中断触发信号。Vin(+):输入信号电压的正极。Vin():输入信号电压的负极。可以连接到电源地。AGND:模拟电源的地线。Vref/2:参考电源输入端。参考电源取输入信号电压(最大值)的二分之一。例如输入信号电压是0V5V时,参考电源取2.;输入信号电压是0V4V时,参考电源取2.0V。DGND:数字电源的地线。DB8DB0:数字信号输出口,连接单片机的数据总线。CLKR:时钟输入端。VCC:5V电源引脚。补充说明:CLKI和CLKR:ADC08010805片内有时钟电路,只要在外部“CLKI”和“CLKR”两端外接一对电阻电容即可产生A/D转换所要求的时钟,其振荡频率为fCLK1/1.1RC。其典型应用参数为:R=10K,C=150PF,fCLK640KHz,转换速度为100。若采用外部时钟,则外部fCLK可从CLKI端送入,此时不接R、C。允许的时钟频率范围为100KHz1460KHz。图5 A/D转换器电路图1.5.报警电路蜂鸣器是采用直流电压供电的一种一体化结构的电子讯响器,目前广泛应用于我们的生活中,比如说在电脑、各种报警器、汽车电子设备、电话机、定时器等常见的电子产品中作为发声器。本设计采用的蜂鸣器为电磁式蜂鸣器。电磁式蜂鸣器由振荡器、磁铁、电磁线圈、振动膜片以及外壳组成,电磁式蜂鸣器基本原理是在电源接通后,在电磁线圈和磁铁的相互作用下,振荡膜片周期性地振动发声。因为蜂鸣器通常工作电流比较大,但是单片机I/O口输出的电流很小驱动不了蜂鸣器,所以还得选用的NPN型三极管9013来驱动蜂鸣器。报警电路设计原理:当水箱的水位降到一定值时,输出的低电平信号,或者烧水温度达到预置温度时,单片机通过指令将P1.5置成高电平,三极管Q5导通,扬声器工作,发出吱吱的声音。同理当水箱的水过高时,P1.5为高电平,报警电路开始工作。蜂鸣器报警电路如图3.6所示。图6 电磁式蜂鸣器报警电路图2 软件设计软件设计由主程序,键扫描子程序及若干功能模块子程序组成。其中主控制器子程序包括A/D转换子程序(水位、水温),键盘处理及显示子程序,加热控制子程序(使用输出比较功能)等组成。主程序要先初始化系统的工作参数,主要是单片机的定时器,COP模块、A/D转换、端口、键中断等的工作模式参数设定,之后系统主程序循环调用各个功能模块子程序,对相关事件的处理依靠标志位和判断标志位实现。在本次设计中运用到了PROTEUS的ISIS电路分析实物仿真系统和KEIL单片机编程软件,通过对它们联调可以仿真出本次设计的要求。主程序设计思路:软件设计采用各个模块功能分开独立设施的设计方式,将各个功能分成独立模块,有系统和监控程序一起管理执行。本设计的软件包括主程序,键盘扫描子程序,显示子程序,水位测量子程序以及有关的Pt100的程序。我主要说明了两个最主要的子程序:温度测量、水位测量的流程和液晶显示流程。主程序完成功能:系统对传感器PT100、显示器进行初始化,并且读取用户通过键盘设置的最高烧水温度信息,随之系统自动读取当前水位,系统执行相应功能,完成后等待下一次的启动命令。当检测到无水时,系统会启动报警电路工作,当检测到超过设定的烧水温度时,启动报警电路并关闭加热电路。本设计的系统整体流程图如图8所示。开始初始化测量当前温度显示当前温度判断是否有按键 否 是更改设定温度开电磁阀判断当前是否有水温度是否低于预定值 是 否图7 系统总体程序流程图2.1温度测量子程序温度测量由Pt100温度传感器来完成,温度测量子程序流程如图3.8所示。根据系统的温度测量范围温度与阻值之间的关系编写程序,使阻值变换为温度,进行温度的测量,送入AT89C51单片机内,之后送入显示电路进行显示温度。图8 Pt100测温程序流程图2.2判断子程序判断整个程序的运行,当水温超过预定设置温度值时,关闭加热电路,如果低于预定设置温度值时,开通加热电路,进行加热。当无水的时候,自己断电避免干烧,并蜂鸣报警。断电水温高于设定值吗?水温低于设定值吗?通电加热报警断电无水吗?NNYNY开始图9 判断程序流程图2.3重要代码主函数:void main()TMOD=0x01;TH0=(65536-46000)/256;TL0=(65536-46000)%256;EA=1;ET0=1;TR0=1;zd=0;num=21;aaa=0;bbb=0;num1=21;num2=21;num3=21;while(1)uint a;uchar b;changetemp();a=gettemp();b=scanff();numy=gettemp();display(a,b);显示函数的分析:void display(uint a,uchar b)uchar i,temp,srtemp,dis4;uint dda;dda=abs(a);numx=dda/1000;num4=dda%1000/100;num5=dda%100/10;num6=dda%10;dis0=numx;dis1=num4;dis2=num5;dis3=num6;dis2+=10; if(dis0=0)&(dis1=0)dis1=20; if(a0) dis3+=10;elseif(dis0!=0) dis1=dis1+10;temp=0xfb;for(i=1;i4;i+)P0=0xff;wei=1;temp=_crol_(temp,1);P0=temp;wei=0;P0=0;duan=1;P0=tabledisi;duan=0;delay(3);duan=1;P0=0x00;duan=0;if(aaa=1&ccc!=21)bbb+;switch(bbb)case 0:dis1=b;num1=b;dis2=num2;dis3=num3;if(dis2=21)dis2+;elsedis2+=10;srtemp=0xfe;for(i=1;i4;i+)P0=0xff;wei=1;P0=srtemp; wei=0;srtemp=_crol_(srtemp,1);P0=0x00;duan=1;P0=tabledisi;duan=0;delay(1);duan=1;P0=0x00;duan=0;break;case 1:dis1=num1;dis2=b;num2=b;dis3=num3;if(dis2=21)dis2+;elsedis2+=10;srtemp=0xfe;for(i=1;i=numy&num1!=21&num2!=21&num3!=21)jiar=1;P1=0xfd;jiar=0;elsejiar=1;P1=0xff;jiar=0;四、结论与展望本课题通过以AT89C52单片机为核心并辅以外围电路的设计方法实现了低成本的控制要求。该系统具备简单、经济的特点,灵活的键盘控制方式来设定功能等参数增加了系统的灵活性,对水温的采集和显示、实时时钟的显示增加了系统的实用性。电热水器内部器件较多,控制也较为复杂,应该说本课题是实时电热水器控制系统的小的缩影,整个系统的框架具有很高的应用价值,可以在此构架的基础上,增加多种传感器和其他一些智能化设计,实现一个功能齐全的电热水器控制系统。五、心得与体会这次课设目的在于将锻炼我们动手能力,加强我们自学能力,体会我们大学四年所学的知识的具体应用在哪方面,熟悉设计硬件设计和软件设计,这是一个熟悉软件proteus和keil软件来进行仿真,为将来的毕设打下基础。通过对本次电热水器的设计,让我深刻了解到电热水器的内部硬件组成以及软件设计,电热水器内部器件较多,控制也较为复杂,应该说本设计是真实电热水器控制系统一个小的缩影,整个系统的构架具有很高的应用价值,可以在此构架的基础上,增加多种传感器和其他一些智能化设计,实现一个功能齐全的电热水器控制系统。在本次设计过程中遇到了许多困难,有时无从下手,通过大量的查找资料和寻求别人的帮助,最终让我顺利的完成了这次课设。在课堂上的学习的内容看似简单,但真正用于实践还是有很多困难,因此要理论结合实践,不断在实践中磨练提升自己。六、附录所用元件:表3 元器件表七、参考文献1 楼然苗、李光飞.单片机课程设计指导.北京航空航天大学出版社.20122 白延敏.51单片机典型系统开发实例精讲.电子工业出版社20093 刘坤.51单片机应用系统典型模块开发大全.中国铁道出版社.20134 朱清慧.proteus教程电子线路设计、制版与仿真. 清华大学出版社20165 程国钢、陈跃琴.51单片机典型模块开发查询手册.电子工业出版社.20126陈志旺.51单片机案例笔记.机械工业出版社.20157 郭海文.单片机原理及智能仪表技术.煤炭工业出版社.200156陈志旺.51单片机案例笔记.机械工业出版社.2015
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!