欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    热水器水温水位控制仪设计.doc

    • 资源ID:2931309       资源大小:164.50KB        全文页数:45页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    热水器水温水位控制仪设计.doc

    热水器水温水位控制仪设计摘要: 文中介绍了热水器水温水位控制仪系统的整体设计,并简述了设计中各单元电路的工作原理。该设计用汇编语言在P87LPC762BN 芯片上编程实现.系统由水位检测电路、水温检测电路、键盘控制、单片机控制模块、执行电路、显示电路和报警电路构成,共同实现水温水位控制功能。单片机控制模块的设计是整个系统设计的核心,文中详细介绍了单片机控制模块的软件设计。本设计的特点是成本较低,性能稳定,精度高,有一定的开发价值。关键词: 汇编语言   单片机控制   水温水位控制仪目     录第一章 整体方案2  1.1  设计要求 2  1.2  整体设计原理 2第二章 单元电路设计3  2.1  水位检测电路 3  2.2  水温检测电路 3  2.3  单片机(P87LPC76x)简介3  2.4  其它单元电路的分析 4第三章 软件设计 5第四章 系统测试 7  4.1  调试 7  4.2  指标测试 7第五章 结论 7附录 8参考文献 12第一章   整体设计方案1.1  设计要求一           要技术指标:测温精度:±测温范围:99水位分档:  5档二. 主要功能:1.       开机自检: 开机时发出滴的提示音,表示机器处于正常状态;2.       水位预置: 可预置加水水位:20、50、80、100;3.       水温指示: 显示热水器内部的实际水温;4.       水位指示: 显示热水器内部的实际水位;5.         温控上水: 当热水器未加满水,水温又偏高时(水温在60100时),自动补水至合适水温50左右;6.       手动上水: 当水位低于预置水位时,按手动上水按键,则加水至预置水位;按ON/OFF按键则停止上水;7.         自动上水: 当缺水时,延时15分钟自动上水至预置水位,预置水位默认状态为50    档,启动时蜂长声,关水时短鸣三声;上水时水位滚动显示.8.       缺水报警: 当缺水时(处于缺水档)报警,延时15分钟自动进入自动上水;9.  正常工作: 正常工作时,水温、水位交替显示;三. 显示要求:1.     水温: 数字+;2.     水位: 缺水档一段发光管,其余两位;四. 故障显示:1  传感器接触不良,显示:- - 2 雷击破坏,显示:- - - 1.2   整体设计原理方案一:采用模拟分立元件,可以实现水温和水位的控制。通过对实际水温和水位的测量,再与设定值相比较,判断加水方式,并对水位水温进行控制。但采用模拟器件由于元件的分散性太大,各电阻电容之间的影响很大,因所设计的系统指标不高。而且使用的器件较多,连接复杂,体积大,功耗大。电路中焊点和线路较多会,使成品的稳定度和精度大大降低。方案二:采用atmel公司的89C51系列单片机来制作,用汇编来设计程序控制C51实现热水器水温水位控制仪的设计。系统框图如图1.1所示,该系统的核心部分是单片机(MCU)控制的图1.1  热水器水温水位控制仪的系统框图设计,单片机根据不同的输入发出不同的响应。用户通过键盘控制可以选择上水的方式和加水位置;实际的水位、水温通过水位测量电路和水温测量电路进入单片机,单片机对其进行分析判断,决定下一步该发出什么命令给其它电路。如果经过比较需要加水的话,就发出命令给执行电路,进行加水。正常状态时在显示电路中交替显示水位和水温的实际值。当缺水时(处于缺水档),单片机响应报警电路。总之,用单片机可以实现对各功能模块的控制,达到用户所需的要求。目前单片机的应用已经很成熟了,用它来实现对各电路的控制非常的简单方便,而且它的精度也能到达要求。应用单片机来设计产品,降低了成本,缩短了研发时间。根据以上的分析我们选择第二个方案来实现热水器水温水位控制仪的设计。第二章   单元电路设计热水器水温水位控制仪的设计包含不少单元电路的设计,如:水位检测电路,水温检测电路,报警电路,稳压源电路,执行电路等。下面分别介绍各电路的工作原理及器件的选择。2.1   水位检测电路   该电路主要由电热调节器(thermistor)、三个信号放大器、两个电阻和一个电容组成。它的原理图如图2.1所示。水位的具体情况通过电热调节器转换成不同信号的输出,在经过反馈和放大,最终得到一稳定的信号输入单片机的P1.2口。图2.1   水位检测电路图2.2   水温检测电路   水温检测电路和水位检测电路的原理基本类似,它也是通过电热调节器(thermistor)将水温的变化转换成信号的变化并经反馈和放大得到较稳定的信号输入单片机的P0.7口。它的电路原理图如图2.2所示。图2.2   水温检测电路图2.3   单片机(P87LPC76x)简介该系统设计中采用的是P87LPC76x系列单片机中的P87LPC762BN 芯片。P87LPC76x 是20 脚封装的单片机适合于许多要求高集成度低成本的场合可以满足许多方面的性能要求作为Philips 小型封装系列中的一员P87LPC76x 提供高速和低速的晶振和RC 振荡方式可编程选择具有较宽的操作电压范围可编程I/O 口线输出模式选择可选择施密特触发输入LED驱动输出有内部看门狗定时器P87LPC76x 采用80C51 加速处理器结构指令执行速度是标准80C51MCU 的两倍。管脚配置如图2.3所示:  图2.3   P87LPC76x系列单片机的管脚配置图2.4   其它单元电路的分析稳压源电路是一个W78xx系列的三端集成稳压器电路。9V的直流输入电源经过用W7806 图2.4   热水器水位水温控制仪的总体电路原理图芯片制作的三端集成稳压电路后便得到6V的直流稳压电源。稳压源电路中还设置了去耦电容和二极管保护。报警电路中用了一个蜂鸣器(BUZZER)和三极管放大器。热水器水位水温控制仪的设计还有一些的单元电路,原理比较简单,可以根据电路的总原理图自行分析,在此就不介绍了。热水器水位水温控制仪的总体电路原理图如图2.4所示。第三章   软件设计   我们在Windows98的平台上,用广州致远有限公司和广州周立功有限公司生产的MCS51仿真开发系统软件进行汇编语言程序设计来实现热水器水温水位控制仪的功能.它的系统软件设计流程图如图3.1所示。                                                                           是启动计时、计数器                                                            否读取键盘状态                                                                             否                            是                             是上水           否                                                              是交替显示水温水位值                                                           否温控上水                                   否           是图3.1  热水器水温水位控制仪软件设计流程图    该软件设计中包括两个中断子程序模块,显示模块,延迟模块,还有十六进制与十进制之间的转换程序等等。1中断服务子程序   两个中断服务子程序分别是对水温、水位的检测和显示,两者的思路基本相似,只不过是所设置的定时工作方式不同而已。以;定时器0中断服务子程序(LEDINT0)为例,首先对现场进行压桟保护,然后计算水位输入的频率,设定水位的显示时间(20s)并把所测频率的十六进制转换成十进制显示。它的程序流程图如图3.2所示,程序见附录。否                                  是重新对30H赋初值                                            否十六进制转换成十进制                      是图3.2  中断服务子程序的流程图2显示模块程序设计   显示模块就是利用七段数码管交替显示水位和水温的实际值.显示模块采用的是动态显示,即一位一位的显示,为了使人眼能看到并且能分辨清楚,必须使每显示器显示的时间有一定的延迟但又不可过长,这样人眼既看到数据的显示又感觉输出显示是连续的这里所有的七段数码管都是低电平有效,因此要实现数据的显示需要将所要显示的数据译码,在设计中调用了一个显示程序,实际上就是一个数据的译码.例如要显示数字“50”就必须把数据译成“92h 0c0h”才会在数码管上显示出数字“50”。它的程序见附录。3 延迟模块设计   延迟模块主要是对显示模块的一个控制,其功能是实现数据的动态显示。延迟模块的延迟时间可以用公式:T=12/fosc*(2n-a)其中T是我们所要设定的时间周期,fosc是标准频率等于12MHz,n是常数与所设置的工作方式有关,a是时间常数即我们要求的编程数值。此程序中我们设T5ms,取n为16,通过公式计算得a为0EC77H。延迟模块的程序见附录。第四章   系统测试41   调试根据方案设计的要求,调试过程共分三大部分:硬件调试、软件调试和软硬联调。电路按模块调试,各模块逐个调试通过后再联调。单片机软件先在最小系统板上调试,确保外部EPROM及RAM工作正常之后,再与硬件联调。    1硬件调试硬件调试时分小模块进行调试,整个系统可分为若干个小模块,例如:水温检测模块,水位检测模块,执行电路,报警电路的检测和调试等等。2软件调试本系统的软件系统不是很大,全部是用汇编语言来编写的,仿真采用的是西南C51仿真软件进行调试仿真。首先对所编写的程序进行语法差错和逻辑差错,然后装载到仿真头中进行调试。采用自下向上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统调试。3  软硬调试该系统中软硬件间的联系比较紧密,首先要把硬件所测的数据和键盘输入送入单片机中,经过软件的计算、比较和判断等,然后输出信号去控制硬件电路,达到显示、上水和报警的目的。但总体来看,此系统中软硬调试也不是很难。42   指标测试1测试仪器频率计:GFG-8016G稳压电源:DF1731/SL数字万用表:UNI-T2指标测试(1)显示水温精度的测量   在电源为5V的条件下,进行水温精度的测量。输入输出预置水位水温检测()水位检测(档)显示水温()显示水位(档)1501491240241233032934454444×70小于10071ADD由表可见,测量精度超过了题目所给的要求。性能指标或功能,测试方法和步骤,仪器型号名称(厂家)测试记录的数据,图表,曲线第五章   结论采用单片机来作系统的控制部分,完全可以实现热水器水温水位控制仪的功能并达到精度要求。目前,单片机技术的应用已经很成熟,而且单片机的价格比较便宜,开发的时间又短。在能达到要求的情况下,用单片机来实现热水器水位水温控制仪的设计较为经济实惠。但对于程序设计者来说就必须对硬件要有足够的了解,软硬件结合,这样编出的程序才是最优化的。附      录ORG 0000HJMP MAIN org 000bhjmp  LEDINT0org 001bhjmp ledint1ORG 0100HPP5:JMP PP1PP7:JMP PP2MAIN:  MOV 34H,#0FFH       MOV 35H,#0FFH       MOV 36H,#00H       MOV 37H,#00H       clr   p1.6       setb  p1.7MOV SP,#60H     ;给堆栈指针赋初值MOV TMOD,#51H   ;定时器0工作于方式定时器1作为计数器MOV TH0,#0ECH   ;给计数寄存器的高8位赋初值MOV TL0,#77H    ;给计数寄存器的低8位赋初值      MOV   30H,#20      mov   31h,#10      MOV   32H,#20      mov   33h,#10      mov   th1,#00h      mov   tl1,#00h      MOV IE,#82H    SETB    TR0         ;计时开始      setb  tr1         ;开始计数      mov r0,#0      mov r1,#0      mov r2,#0      mov r3,#0      mov r4,#0LOOP:  mov dptr,#0a100h  ;读取键盘状态     movx a,dptr       MOV 21H,A   ;把A的内容赋给缓冲区21H,再比较判断然后输出       JNB 21H.7,PP3     ;加水到50       JNB 21H.6,PP7    ;加水到80       JNB 21H.5,PP5     ;加水到100     MOV A,34H     CLR C     SUBB A,#1     JC PP3              ;C是1 转PP3     JZ TTL4             ;A=0 转TTL4     AJMP BB             ;无条件转移    TTL4:MOV A,35H     CLR C     SUBB A,#10     JC PP3    MOV A,36H     CLR C     SUBB A,#5     JC BB     JZ TTL5     AJMP PP6  TTL5:MOV A,37H     CLR C     SUBB A,#10     JC BB     AJMP PP6   BB:    MOV A,R0       LCALL XIANSHI       MOV   DPTR ,   #0A000h       MOVx  DPTR,A       lcall delay       MOV A,R1       LCALL XIANSHI       MOV   DPTR ,   #0A001h       MOVx  DPTR,A       lcall delay       MOV A,R2       LCALL XIANSHI       MOV   DPTR ,   #0A002h       MOVx  DPTR,A       lcall delay       MOV A,R3       LCALL XIANSHI       MOV   DPTR ,   #0A003h       MOVx  DPTR,A       lcall delay       MOV A,R4       LCALL XIANSHI       MOV   DPTR ,   #0A004h       MOVx  DPTR,A       lcall delay       ajmp loop      pp3:         MOV A,#0       LCALL XIANSHI       MOV   DPTR ,   #0A000h       MOVx  DPTR,A       lcall delay       MOV A,#5       LCALL XIANSHI       MOV   DPTR ,   #0A001h       MOVx  DPTR,A       lcall delay       MOV A,34H       CLR C        SUBB A,#1       JC PP3       JZ TTL           TTL:MOV A,35H       CLR C       SUBB A,#55       JC PP3   JMP LOOPpp2:  MOV A,#8       LCALL XIANSHI       MOV   DPTR ,   #0A001h       MOVx  DPTR,A       lcall delay       MOV A,#0       LCALL XIANSHI       MOV   DPTR ,   #0A000h       MOVx  DPTR,A       lcall delay      MOV A,34H    CLR C     SUBB A,#2    JC PP2    JZ TTL1TTL1:MOV A,35H    CLR C    SUBB A,#55    JC PP2JMP LOOPPP6:  MOV A,#10       LCALL XIANSHI       MOV   DPTR ,   #0A002h       MOVx  DPTR,A       lcall delay       MOV A,#13       LCALL XIANSHI       MOV   DPTR ,   #0A001h       MOVx  DPTR,A       lcall delay       MOV A,#13       LCALL XIANSHI       MOV   DPTR ,   #0A000h       MOVx  DPTR,A       lcall delay      MOV A,34H      CLR C       SUBB A,#4      JC PP6      JZ TTL6      JMP LOOP      TTL6:MOV A,35H      CLR C     SUBB A,#55     JC PP6     JMP LOOPpp1:  MOV A,#9       LCALL XIANSHI       MOV   DPTR ,   #0A000h       MOVx  DPTR,A       lcall delay       MOV A,#9       LCALL XIANSHI       MOV   DPTR ,   #0A001h       MOVx  DPTR,A       lcall delay    MOV A,34H    CLR C     SUBB A,#4    JC PP1    JZ TTL2TTL2:MOV A,35H    CLR C    SUBB A,#55    JC PP1JMP LOOP  ;*;定时器0中断服务子程序;*LEDINT0:    PUSH    PSW     ;压栈保护现场    PUSH    ACCclr   ET0       ;防止连续中断CLR TR0        ;禁止定时器计数     CLR   TR1 MOV TH0,#3CH  ;重新给计数器赋初值MOV TL0,#0B0HDJNZ  30H,LEDRET    ;定时1s到了吗?djnz 31h,ibtd  ;水温水位分别显示20秒CLR   ET0MOV TMOD,#15H   ;定时器1工作于方式定时器0作为计数器MOV TH1,#0ECH   ;给计数寄存器的高8位赋初值MOV TL1,#77H    ;给计数寄存器的低8位赋初值MOV   32H,#20mov   33h,#10   mov   th0,#00hmov   tl0,#00hMOV IE,#88H     ;IE是寄存器,88H的输入设置了中断-setb  tr1                      SETB    TR0             ;开始计数mov r0,#0mov r1,#0mov r2,#0mov r3,#0mov r4,#0POP PSWPOP ACCRETIIBTD:MOV 30H,#20    ;是,则重新赋初值MOV A,TH1MOV 34H,AMOV R2,AMOV A,TL1MOV 35H,AMOV R3,A   MOV TH1,#00HMOV TL1,#00H            CLR    A                        MOV R4,AMOV R5,AMOV R6,AMOV R7,#16PP0:    CLR C       MOV A,R3        RLC A       MOV R3,AMOV A,R2RLC A      ;把十六进制数转换成十进制数MOV R2,AMOV A,R6ADDC A,R6DA A                MOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,PP0     ;转换完毕MOV A,R4        ;把R4,R5,R6中的十进制数一位一位的存放于R4,R3,R2,R1,R0中MOV R4,AMOV A,R5SWAP AANL A,#0FHMOV R3,AMOV A,R5ANL A,#0FHMOV R2,AMOV A,R6SWAP AANL A,#0FHMOV R1,AMOV A,R6ANL A,#0FHMOV R0,ALEDRET:SETB TR0       SETB TR1         ;启动定时器                        ;启动计数器MOV IE,#82HPOP ACC         ;出栈POP PSWRETI                ;中断返回ledint1:PUSH    PSW         ;压栈保护现场PUSH    ACCclr   ET1            ;防止连续中断    CLR TR0          ;禁止定时器计数      CLR   TR1 MOV TH1,#3CH    ;重新给计数器赋初值MOV TL1,#0B0HDJNZ  32H,LEDRET1   ;定时1s到了吗?djnz 33h,IBTD1       ;显示水位时间到了没有啊? 到就去显示水温 MOV    TMOD,#51H       ;定时器0工作于方式定时器1作为计数器MOV TH0,#0ECH       ;给计数寄存器的高8位赋初值MOV TL0,#77H        ;给计数寄存器的低8位赋初值MOV   30H,#20mov   31h,#10   mov   th1,#00hmov   tl1,#00hMOV IE,#82HSETB    TR0         ;计时开始setb  tr1               ;开始计数mov r0,#0mov r1,#0mov r2,#0mov r3,#0mov r4,#0POP PSWPOP ACCRETI        IBTD1:MOV 32H,#20   ;是,则重新赋初值;*;将十六进制转换为BCD码    *; *     MOV A,TH0      MOV 36H,A      MOV R2,A      MOV A,TL0      MOV 37H,A      MOV R3,A         MOV TH0,#00H      MOV TL0,#00H             CLR    A                              MOV R4,A      MOV R5,A      MOV R6,A      MOV R7,#16PP4:    CLR C       MOV A,R3        RLC A       MOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,PP4                ;转换完毕MOV A,R4MOV R4,AMOV A,R5SWAP AANL A,#0FHMOV R3,AMOV A,R5ANL A,#0FHMOV R2,AMOV A,R6SWAP AANL A,#0FHMOV R1,AMOV A,R6ANL A,#0FHMOV R0,ALEDRET1:SETB TR0   ;启动定时器SETB TR1        ;启动计数器      setb et1      setb ea    POP ACC     ;出栈    POP PSW    RETI        ;中断返回delay:  mov r7,#15TM:    mov r6,#10AA:     djnz r6,AA        djnz r7,TM         RET         XIANSHI:            inc a          movc a,a+pc          ret                                                                                                                                                                                                                                                                                                                                      db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h, 0f8h,80h,90h ;数据显示分别  为:0,1,2,3,4,5,6,7,8,9db 88h,83h,0c6h,0a1h,86h,8eh,0ffh, 0f7h   ;为显示ADD而用的数据    END

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开