毕业设计单片机太阳能热水器进行控制的设计

上传人:仙*** 文档编号:135247601 上传时间:2022-08-15 格式:DOC 页数:35 大小:3.40MB
返回 下载 相关 举报
毕业设计单片机太阳能热水器进行控制的设计_第1页
第1页 / 共35页
毕业设计单片机太阳能热水器进行控制的设计_第2页
第2页 / 共35页
毕业设计单片机太阳能热水器进行控制的设计_第3页
第3页 / 共35页
点击查看更多>>
资源描述
太阳能热水器进行控制的设计摘要本文提出了一种以MCS51系列单片机8051为主要控制芯片,辅之以其他功能芯片对太阳能热水器进行控制的设计方案,使太阳能热水器使用起来更加方便、安全。本设计采用的是8051单片机,其内部ROM容量为256B,对于本设计,无须外部扩展存储器。除了8051,本设计还用到一些重要的外部功能器件,如采用AD转换器0809来实现温度和水位信号的模数转换,还有可编程输入输出接口8255来实现键盘和显示器接口。键盘由四个按键来设置水温或水位,用六位LED显示器分别显示水温和水位。本设计充分利用8051单片机系统的三总线控制,即数据总线、地址总线、控制总线的设计方式,为应用系统功能的实现奠定了基础。通过对8051单片机的外部功能扩展使系统具有自动上水与保温的功能,还能自动驱动加热及上水装置来满足系统的设置,使用起来安全可靠。此外,设计方案中还考虑了一些抗干扰措施,例如采用光电隔离器4N25使输入输出有效隔离,采用硬件去抖动措施解决按键抖动的问题等等。本文阐述了此应用系统的工作原理,并给出部分硬件及软件框图。关键字: 单片机,温度控制,水位控制目 录前言1第一章 系统总体方案设计31.1设计思路31.2设计总框图4第二章 系统硬件部分设计52.1数据采集52.1.1温度传感器AD59052.1.2水位传感器62.1.3采样保持器92.2 数据转换102.2.1AD转换概述 102.2.2ADC0809112.3 MCS-51系列单片机805113 2.3.1单片机概述 132.3.2单片机8051142.4LED数码显示与键盘162.4.1可编程并行接口8255172.4.2 6位LED数码显示与键盘182.5输出驱动与执行机构192.5.1加热器的电路连接与分析192.5.2达林顿管的原理及应用202.5.3上水阀的驱动电路分析212.6 系统的硬件抗干扰设计212.6.1按键消抖措施212.6.2光电隔离的应用23第三章系统软件部分设计243.1主程序流程图243.2 部分中断服务程序与子程序25 3.2.1 8255初始化253.2.2 AD转换程序263.2.3 LED数码显示程序283.2.4 键盘扫描子程序28结论31致谢32参考文献33附录前言目前,单片机已进入人类生活的各个领域,如家用电器的冰箱、洗衣机、空调等,由于配上了单片机,增加了功能,实现了智能化,使人类生活更加方便。近几年来,MCS51系列单片机的开发应用深受各个应用领域的关注和重视,应用十分广泛,发展极快,特别是8051,在国内是应用最多、影响最大的单片机。本设计就是以8051单片机为主要控制芯片,辅之以其他外设及功能部件,对太阳能热水器工作进行控制。目前,太阳能热水器以其安全、节能、无污染等优点受到越来越多的消费者的欢迎。但太阳能热水器也存在一些缺点,如阴雨天无法使用,不能显示水温水位,无法自动上水,不能根据用户的要求设置水温水位等,通常须采用太阳能加热和电加热相结合的方式来解决阴雨天的使用问题。这就需要设计一套控制系统来实现自动电加热,同时用这套系统实现自动上水、保温和水温水位的检测和显示。本设计的目的是设计适于日常应用的能自动上水的太阳能热水器,要求能自动检测水的温度和水位;当水位低于30L自动上水;水温未达到设定值而又长时间无变化,系统自动启动电加热器将水加热到设定温度,当用户按下加热键时系统也可启动电加热器将水加热到设定温度,水温达到设定值后系统自动进入保温状态。本设计的技术要求是利用LED显示水温水位;四个按键设置水温/水位;A/D转换模块;上水装置,电加热装置;要求本系统具有较高的抗干扰性、实时性、能根据检测数据迅速做出处理,本设计要采用的是MCS51系列单片机8051,其内部ROM为4KB,内部RAM为256B(包括特殊功能寄存器),要接A/D转换器,以实现温度和水位信号的模数转换。另外,由于本设计要用到6位LED显示器及四个功能按键,故采用一片可编程输入输出接口芯片8255来实现这部分的设计。此外,本设计方案还考虑了抗干扰措施,如光电隔离、键盘消抖等,将在后面详细阐述。本系统充分利用了8051单片机的各种资源,使系统使用方便,安全可靠,克服了太阳能热水器的一些缺点,实现了其运行的自动化。第一章 系统总体设计方案1.1 设计思路本次设计的目的是设计一个太阳能热水器单片机控制系统。现在一般的太阳能热水器虽然有着不少优点,如节能、无污染、安全方便等,但在实际应用中也存在着一些缺点,如阴雨天无法使用、无自动上水功能、不显示水温水位等等。为了解决上述存在的问题,比较理想的方案就是采用单片机作为应用系统的主控芯片,利用其强大的控制能力和丰富的资源,通过连接各种功能外设,使系统能正确、有效地完成服务。在此,我将系统的设计分为两大部分,即硬件设计部分和软件设计部分。在硬件部分中,主要解决系统的硬件连接与各功能的分配,各部分的地址分配也被分到硬件部分里。在软件部分中,则具体分析系统的工作流程,编出部分子程序和中断服务程序。1.2 设计总框图系统总体设计框图如下:驱动装置LED数码显示可编程82558051单片机A/D转换器传感器被控对象键盘光电隔离驱动装置执行机构图1-1 系统总体框图由图可知,本系统采用MCS-51系列单片机8051作为系统的主要控制芯片。根据本应用系统的设计任务,输入通道部分需由传感器采样温度和水位信号,经A/D转换器转换,将模拟量信号转换为数字量信号后送入8051,再由8051外接的8255送LED数码管显示。键盘有四个按键来设置水温和水位,当8051扫描到有按键按下时,就输出控制信号驱动相应的执行机构,或控制加热器改变水温,或控制上水阀改变水位。系统相应的功能由编程来具体实现。第二章 系统硬件部分设计2.1 数据采集2.1.1 温度传感器AD5901温度传感器AD590的工作原理AD590集成温度传感器,内部含有放大电路,是一种两端器件。其工作电压为+4+30V,测温范围是-55150摄氏度,对应于热力学温度T每变化1K,输出电流就变化1A。在298.15K(对应于25.15摄氏度)时输出电流恰好等于298.15A。这表明,其输出电流I(A)与热力学温度T(K)严格成正比。AD590的电路符号为: AD590作为一种高阻电流源,不存在反馈线上的电压信号损失和噪声干扰问题,其等效于一个高阻抗的恒流源,其输出阻抗大于10M,能大大减小因电源电压波动而产生的测温误差。例如,当电源电压从5V变化到10V时,所引起的电流最大变化量仅为1A,等价于1摄氏度的测温误差。2AD590在本系统设计中的应用由AD590构成的温度检测电路如图2-1所示:从图中可知,由MC1403型带隙基准电压源输出的+2.5V基准电压,经可调电阻R1接AD590的正极,并且还经过CD4051型八选一模拟开关接LM324型四运放中的一个运算放大器反向输入端。AD590的负极接-5V电源。设通过R1、R2的电流分别为I0、I1,则AD590的电流表达式为IO=I0+I1 (2-1)因为LM324的电压增益AVO1,所以图2-1中的M点为虚地,即UM为零伏。只要在0以下调整R1,使I0等于AD590在该温度下的工作电流值(此时I1=0,IO=I0),I0即为恒定值,在测温过程中I1仅随IO变化。显然,温度上升t时,I1必须增加到t1A,使LM324的输出电压UO(V)为 (2-2)由于与被测温度t成正比,从而实现了t/U转换,这就是利用AD590测量摄氏温度的原理。分别用于校准0和100。硅二极管VD(1N4001)可防止LM324进入饱和状态。多路模拟开关CD4051的通断状态受单片微机的控制。2.1.2 水位传感器1压差式液位传感器的工作原理压差式液位传感器是根据液面的高度与液压成比例的原理制成的。如果液体的密度恒定,则液体加在测量基准面上的压力与液面到基准面的高度成正比,因此通过压力的测定便可得知液面的高度。如图2-2所示,其基准面上的压力由下式确定,即 (2-3)式2-3中,为测量基准面的压力;为液体的密度;为液面距测量基准面的高度;为所控最高液面与最小液面之间的高度;为最小液面距测量基准面的高度。由于需要测定的是高度,因此移动压力传感器的零点,把零点提高,就可以得到压力与液面高度成比例的输出。 当储液罐为密封型时(见图2-3) 压差、液位高度及零点的移动关系如下:高压侧的压力为 (2-4)低压侧的压力为 (2-5)压力差为 (2-6)式2-4至2-6中,为液体的密度;为所控最高液面与最低液面之间的高度;为最小控制液面距测量基准面的高度;为填充液体密度;为罐内压力;为填充液面距最小液位的高度。同样,只要移动压差式传感器的零点,就可以得到压差与液面高度成比例的输出。图2-4是压差式液位传感器的结构原理图。它由压差传感器和电路两部分组成。压差传感器实际上是一个差动电容式压力传感器,它由动电极感压膜片、固定电极隔液膜片等组成。当被测的压力差加在高压侧和低压侧的输入口时,该压力差经隔液膜片的传递作用于感压膜片上,感压膜片便产生位移,从而使动电极与固定电极之间的电容量发生变化。用电路将这种变化进行转换及放大,便可获得与压力差成比例的直流电压输出。 这种传感器具有可靠性高、性能稳定、体积小和重量轻等特点,因此,广泛应用于液面测量和液面自动控制。2液位变送器CB900本系统采用液位变送器CB900作为采样水位信号的传感器,现简单介绍一下CB900。CB900系列液位变送器是采用高性能扩散硅膜片差压传感技术,将液位压差转换为420mA或15V标准直流信号,可作液位传感器。其工作电压为12V。CB900的工作原理:加于变送器的压力(或差压)使变送器内膜片变形,从变形的扩散硅膜片上检出与差压或成线形变化的电信号,并转换为标准信号输出。具体工作原理见上一节,这里不再累述。2.1.3 采样保持器在对模拟信号进行A/D转换时,从启动变换到变换结束,需要一定的时间,即AD转换器的孔径时间。当输入信号频率较高时,由于孔径时间的存在,会造成较大的孔径误差。要防止这种误差的产生,必须在A/D转换开始时将信号电平保持不变,而在A/D转换结束后又能跟踪输入信号的变化,即输入信号处于取样状态 。能完成上述功能的器件称为取样保持器。由上述分析可知,取样保持器在保持阶段相当于一个“模拟信号存储器”。在A/D转换过程中,取样保持对保证A/D转换的精确度具有重要作用。取样保持电路的基本原理如图2-1所示。主要由保持电容C,输入、输出缓冲放大器以及控制开关S组成。图中,两个放大器均接成跟随形式,取样期间,开关闭合,输入跟随器的输出给电容器C快速充电;保持期间,开关断开,由于输出缓冲放大器的输入阻抗极高,电容器上存储的电荷基本维持不变,保持充电时的最终值供A/D转换。取样保持器工作状态由外部控制信号控制,由于开关状态的切换需要一定的时间,因此实际保持的信号电压会存在一定的误差,这个误差必须远小于A/D的转换时间,同时也必须远小于信号的变化时间。2.2 数据转换2.2.1 AD转换器概述由于单片微机面向测控领域的应用,常需将连续变化的模拟量转换成离散的数字量,才能送计算机进行数值处理。反之,由计算机数值处理的数字量也必须经转换成模拟量,以实现连续变化的模拟量控制。前者称为模/数转换(简称A/D),后者称为数/模转换(简称D/A)。本系统仅用A/D转换器。A/D转换器按其转换的原理,可分为四种:计数式、双积分式、逐次逼近式和并行式。目前最常用的是双积分式和逐次逼近式。双积分式A/D转换器的主要优点是,抗干扰能力强,价格便宜。逐次逼近式A/D转换器的优点是,速度高,其转换时间在几微秒到几百微秒之间。常用的逐次逼近式A/D转换器主要有:美国国家半导体公司生产的ADC0801ADC0805,ADC0808/0809,精度都是8位,转换时间约为100s。其中,ADC0808/0809增加了8路模拟开关,可对8路模拟信号进行分时采样。本设计需分别采样温度与水位信号,故采用ADC0809作为转换器来实现模数转换。2.2.2 ADC08091ADC0809的主要特性分辨率为8位;转换时间为100s;无零度和满刻度调整;单一+5V供电,模拟输入电压为05V,正负5V,正负10V;8路通道转换,带锁存控制逻辑;具有锁存的三态输出,输出与TTL兼容;功耗为15mW。2ADC0809的工作原理ADC0809是最常用的8位A/D转换器,属CMOS工艺逐次逼近型。ADC0809由单一+5V电源供电,片内带有锁存功能的8路模拟电子开关,可对05V8路的输入模拟电压信号分时进行转换,完成一次转换约需100s,输出具有TTL三态锁存缓冲器,可直接与MCS-51数据总线相接,通过适当的外接电路,还可对05V的双极性模拟信号进行A/D转换。ADC0809的工作时钟为10kHz1.2MHz。在进行A/D转换时,路地址先送到AC地址输入端。然后在ALE输入端加一个正跳变脉冲,将路地址锁存到ADC0809内部的路地址寄存器中。这样,对应路的模拟电压就和内部变换电路接通。为了启动变换工作序列,必须在START端加一个负跳变信号。此时变换工作开始进行,标志ADC0809正在工作的状态信号是EOC由高电平(闲状态)变成为低电平(工作状态)。一旦变换结束,EOC信号就又由低电平变成高电平。此时,只要在OE端加一高电平,即可打开数据线的三态缓冲器从D0D7数据线读得一次变换后的数据。3ADC0809的外特性ADC0809片内集成了8路模拟多路开关、地址锁存与译码、8位A/D转换器以及8位三态输出锁存器四部分组成。了解芯片的外特性是设计系统的基础,ADC0809各引脚的功能含义如下:D0D7:8位二进制数字量输出端口。N0IN7:8路模拟量开关输入端口。Vcc:+5V工作电源。GND:接地端。VREF(+)、VREF(-):参考电压(+)、(-)连接端。START:A/D转换启动信号输入端口,高电平有效。ALE:地址锁存允许信号输入端口,ALE的下降沿将地址输入锁存器。EOC:A/D转换结束信号输出端口,开始转换时为低电平,一旦转换结束时输出高电平。OE:完成转换后数字量输出允许控制信号输入端口,高电平有效,用以打开三态数据锁存器的输出。CLK:时钟信号输入端。A、B、C:地址输入端口。用三位编码组成3:8译码输出,选通8路模拟电子开关,实现IN0IN78路选1。A、B、C三位地址的输入与8路通道的对应关系如下: 4ADC0809在系统设计方案中的应用 AD转换硬件原理图如下: 根据对ADC0809的转换结束信号EOC的不同处理方法,8051(将在下一节介绍)配置ADC0809可分为:查询方式和中断方式。本系统采用的是中断方式,由系统的硬件电路图可知,当ADC0809的转换工作结束时,EOC送出高电平,经一非门后成低电平,送入8051的INT0引脚,提出中断请求,8051响应该中断读入转换后的数据,完成一次A/D转换。ADC0809需要外接变换时钟和参考电压,在实际应用中变换时钟常将MCS-51单片机的时钟经分频得到。而参考电压常用现成的由厂家提供的高精度电源集成块。在本设计中,借用主机8051的ALE作为ADC0809的CLK。本设计中有两个模拟输入信号:水温信号和水位信号,所以需要两路模数转换,故采用IN0和IN1来分别作为水位和水温模拟量的输入通道,由AC地址译码选通。利用8051的低三位地址线A0A2输出路地址,分别与地址输入端口AC连接。采用地址线选方式,用8051的P2.6引脚与读、写信号组合作为ADC0809的START、ALE和OE信号。即P2.6低电平有效。所以,在软件编程时ADC0809的地址为:P2.6即A14=0,由A0A2给出通道(IN0IN7)的选通地址码,由此可知,ADC0809的口地址为0B000H。AD转换硬件原理图如下:2.3 MCS-51系列单片机80512.3.1单片机概述随着大规模集成技术的进一步发展,为满足实时应用领域的急切需要,要求进一步缩小体积和降低成本,实现了把组成计算机的五大部分集成在一块芯片上,既在一块芯片上集成了:CPU、振荡器电路、ROM和RAM存储器、定时/计数器和并行/串行接口等,一块芯片就构成一台具有一定功能的计算机,称为单片微型计算机。单片机是在一块大规模集成电路(LSI)或大规模集成电路(VLSI)芯片上集成的一台微型计算机,它具有许多独特优点,体积小、低功耗、低电压、低成本、面向控制、可以满足工业控制的不同要求,已进入人类生活的各个领域,如家用电器中的冰箱、彩电等,由于是用单片机控制系统,使系统功能更多,使用更方便,更加智能化。单片微机的应用特点是“面向测控”。因此,它总是以其强有力的信息处理、检测、控制以及指挥中心,成为整个应用系统的首脑,从而对单片微机的功能要求、规模大小和复杂程度等随应用系统的不同而不同。MCS-51单片微机正是以其外部功能扩展简单、灵活、方便的特点,满足了广泛的各种不同应用系统的要求,成为应用最广的单片机系列,既可构成最简单系统,也可设计成相当复杂的系统。8位单片机是目前广泛应用的主要机型。32.3.2 MCS-51系列单片机805118051内部的功能部件8位CPU;振荡器和时钟电路;4K字节的程序存储器ROM;128数据存储器RAM;可寻址外部程序存储器和数据存储器各64K字节;20多个特殊功能寄存器;32线并行I/O口;1个全双工串行I/O口;2个16位定时/计数器;5个中断源,有2个优先级,同级中断则按优先顺序查询;具有较强功能的位处理(布尔)能力。28051的主要外部功能引脚说明Vss:电路低电平;Vcc:正常运行时为+5V电源;RST:复位信号输入端;ALE:允许地址锁存信号输出。当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。在非访问外部存储器期间,ALE仍以1/6振荡频率固定不变的速率输出,因而它能作外部时钟或定时信号用。当访问外部数据存储器时,将以1/12振荡频率输出。PSEN:访问外部程序存储器选通信号,低电平有效;EA:访问内部或外部程序存储器选择信号。高电平为访问内部程序存储器,低电平只访问内部程序存储器;P0口:8位漏极开路双向并行I/O端口,当访问外部存储器时,它是地址总线(低8位)和数据总线复用,外部不扩展而单片应用时,则作双向I/O口用 ;P1口:8位准双向并行I/O端口;P2口:8位准双向并行I/O端口,当访问外部存储器时作高8位地址用,不做外部功能扩展(单片应用)时,则作准双向I/O口用;P3口:具有内部上拉电路的8位准双向并行I/O端口,它还提供特殊的第二功能,它的每一位均可独立定义为第一功能的I/O口和第二特殊功能,其具体含义为如下P3.0RXD,串行数据接收端P3.1TXD,串行数据发送端P3.2INT0,外部中断0请求端,低电平有效P3.3INT1,外部中断1请求端,低电平有效P3.4T0,定时/计数器0外部事件计数输入端P3.5T1,定时/计数器1外部事件计数输入端P3.6WR,外部数据存储器写选通,低电平有效P3.7RD,外部数据存储器读选通,低电平有效38051的具体应用8051作为系统的主要控制芯片起着指挥中心的作用,是系统输入部分和输出部分建立联系的桥梁。由于本设计是小型应用系统,8051内部的程序存储器和数据存储器已够用,所以不需要外扩ROM和RAM。 关于8051与ADC0809的硬件接口设计思路已经在上一节介绍过了,在这里就不再重复。如图2-7,8051控制着整个系统的运行。在运行过程中,8051不断输出信号控制温度传感器AD590和水位传感器CB900,使它们自动检测水温、水位,采集信号,当8051启动ADC0809实行转换时,传感器的信号经处理后送入ADC0809,转换后的数据经8051读入处理后送LED显示。同时,根据事先编好的程序,如果温度或水位没有达到要求(如本系统要求水位不可低于30L,水温如果未达到设定值而又长时间无变化就自动加热,达到设定值后自动保温)则8051就驱动执行机构进行相应的操作,直到系统满足设定的条件,达到自控的目的。当8051扫描到有按键按下时,便转去执行相应的中断服务,即调节水温或者水位,在调整LED数码显示的同时去驱动相应的执行机构来加热或者上水来实现使用者的设置。2.4 LED数码显示和键盘2.4.1 可编程并行接口8255由于主机的I/O口数量有限,在大多数应用系统中均需外扩I/O接口部件。Intel配套外围接口器件的种类齐全,并与MCS-51单片微机外部接口配置逻辑电路极为简单、方便,这也是MCS-51单片微机应用广泛的原因之一。8255是Intel公司生产的可编程并行I/O接口芯片,它具有3个8位的并行I/O口,分别成为PA、PB、PC口,其中PC口又分为高4位口和低4位口两部分。它们都可通过软件编程来设置各I/O口的工作方式。8255I/O口多功能强,与8051配置接口设计简单。如果全用单片机本身的并行口作键盘和显示器接口,会占用过多的端口而影响其他控制任务的实现,因此本系统采用8255作为LED数码显示和键盘的并行接口。18255的外特性D0D7:双向数据总线;CS:片选信号端,低电平有效;RD/WR:读/写选通信号端,低电平有效;A0、A1:通道选择信号,它与CS、WR、RD的信号端组合,用来控制PA、PB、PC三个通道口和控制字端口及其功能选择。它通常与地址总线的最低位A1A2相连;RESET:复位信号输入端,高电平有效,复位后全部内部寄存器,包括控制字寄存器均清“0”,所有通道均置为输入方式,24条I/O引脚均呈高阻状态;PA口(PA07):一个8位数据输出锁存/缓冲而输入锁存功能的输入/输出通道口;PB口(PB07):一个8位数据输出锁存/缓冲而输入缓冲功能的输入/输出通道口;PC口(PC07):一个8位数据输出锁存/缓冲而输入缓冲功能的输入/输出通道口;Vcc:+5V电源;GND:接地端。28255的应用8255有三种工作方式,其操作方式是通过软件编程将方式控制字写入8255的控制字寄存器进行选择的。因此在使用8255之前必须要先对其初始化编程。由系统的硬件设计图可知,8255的CS与8051的P2.7相连,即P2.7=0,由此可知,分配给8255的地址空间为7FFC7FFFH,其中,PA口地址为7FFCH,PB口地址为7FFDH,PC口地址为7FFEH,控制口地址为7FFFH。在本设计中,键盘由8255的A端口PA0和PA1作列扫描,由C端口的PC0和PC1作行输入口。显示器为6位LED数码显示,共阴极接法。数位的扫描信号也由8255的A端口PA0PA5提供,字段信号由8255的B端口PB0PB7输出。采用7406和7407进行驱动。8255的端口A和端口B均作为输出口,控制字PA位和PB位均为1,端口C作输入口,控制字PC2,PC1为0,其他位不用为0,控制字为3H。8051输出的数据是通过锁存器74LS373送入8255的, 74LS373的作用是暂存8051输出的8位数据。2.4.2 6位LED数码显示和键盘本设计根据系统的设计要求,用了6位LED数码管,其中,3位显示温度,其它三位显示水位,显示值精确到个位。且根据程序的编写来分时显示设定值以及实际值。当使用者有按键要求时,6位数码管显示使用者设定的温度和水位,设定结束后及其它工作时间,6位LED显示热水器当前的实际温度和水位值。用四个2*2按键作为热水器的功能键,即1号按键:水位设定键(按一下加1L水),2号按键:开始加水键,3号按键:水温设定键(按一下升1摄氏度,在0摄氏度与100摄氏度之间循环),以及4号按键:开始加热键。按1号键对水位进行设置,设置结束后按2号键即启动进水装置;按3号键可对水温进行设置,设定结束后按4号键即启动加热装置。2.5 输出驱动与执行机构2.5.1加热器的电路连接与分析电热型功率接口通常用继电器或可控硅控制,本设计采用的是双向可控硅控制的电热型功率接口。电路图见图2-9。电热器件由双向可控硅KS控制,KS由光电耦合器4N25和晶体管9013触发采用直流脉冲触发,触发电压由变压器的其中一个绕组L2提供,经整流滤波后,产生触发电流。单片机8051的P1.7端输出的触发信号,经7407后,送到光电耦合器4N25。P1.7端输出高电平时,4N25没有电流输入,晶体管T截止,双向晶闸管KS关,电热器不加热。当P1.7输出低电平时,7404输出低电平,4N25输出的电流经晶体管9013放大后流向双向可控硅门极,双向可控硅导通,电热器加热。过零检测电路由变压器B的其中一个绕组L3和电容器C2组成。L3产生2.5V的交流电压,通过C2交连到T0和T1端。T0是过零检测端,它可对过零的上升信号检测而发生中断;T1也是过零检测端,它可对过零的下降信号检测而发生中断。把T0和T1产生的中断综合处理,即可得到电源电压过零的时刻。其中,T0和T1采用溢出中断方式。2.5.2 达林顿管的原理与应用由8051输出的控制信号要经过光电隔离后去控制上水阀进行工作,但由于控制信号太小,需要接驱动电路将信号适当放大,在这里,我采用的是达林顿管。达林顿管采用复合连接方式,将两只或更多只晶体管的集电极连在一起,而将第一只晶体管的发射极直接耦合到第二只晶体管的基极,依次级连而成。达林顿管具有增益高、开关速度快、能简化设计电路等优点。本系统采用的是由两只NPN型晶体管构成的达林顿管,其基本电路如下所示: 图2-10 达林顿管基本电路2.5.3 上水阀的驱动电路及分析单片机8051的P1.6利用OC门与光电耦合器4N25相连,4N25的输出接达林顿管作为上水阀的驱动电路。P1.6为低电平时,4N25有电流流入,达林顿管驱动上水阀打开,向热水器充水。 2.6 系统的硬件抗干扰设计2.6.1 按键消抖1键盘输入的特点键盘实质上是一组按键开关的集合。通常,按键所用开关为机械弹性开关,均利用了机械触电的合、断。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下断开。因而,在闭合和断开的瞬间均伴随着一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510ms。按键的稳定闭合时间由操作人员的按键动作持续时间决定,一般为十分之几秒到几秒时间。按键的闭合与否,反映在电压上就是出现高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下没有。为了确保按键的状态,必须消除按键抖动的影响,这也是按键抗干扰的主要的一个方面,同时,由于按键一般与系统是通过传输线相连的,传输线很容易受到电磁干扰的影响,因此键盘传输线的抗干扰问题也是按键接口电路应该解决的问题。2按键接口电路的消抖措施消除按键抖动影响通常有硬件、软件两种方法,本系统采用的是硬件方法:双稳态消抖。其电路原理如图2-1所示:设按键首先处于a位置,此时RS触发器的与非门输出端OUT1为高电平1,与非门2的输出端OUT2为0,此输出引入到与非门1的一个输入端,会把与非门1锁住,使其固定输出为1。如果此时按下此键,即使按键在a位置因弹性而产生瞬间抖动,形成一连串的抖动波形,即与非门1输入端出现了一连串的高和低电平,由于与非门2的输入端在按键没有到达b位置时始终是0,所以无论与非门1输入端的信号电平怎么变化,与非门1输出端OUT1的输出恒为1。当按键到达b时,一旦与非门2的输入端呈现低电平时,RS触发器将出现状态的翻转,此时,OUT2端输出为1,OUT1端输出为0 。 图2-12 双稳态消抖电路OUT1又引回与非门2的一个输入端,锁住与非门2,保证其输出恒为1,这样即使按键出现抖动,也不会影响OUT2的输出,因此OUT1的输出也恒为0。同样,在松开按键的过程中,只要接通a,输出为1,在接通a的过程中,即使产生了弹性抖动,只要按键不与按键b发生接触,RS触发器的输出将保持不变。由以上分析可知,如果在按键信号输入端加上一个RS触发器就可以消除按键抖动产生的干扰。2.6.2 光电隔离光电隔离器主要用于电信号的隔离和传输,它通常把发光器件和受光器件置于同一壳体内,在发光器件端口加入控制电信号,使得发光器件发光,受光器件受光,产生光电效应,输出电信号,从而可以实现电光电的信号传输和控制。本设计采用的光电隔离器是4N25。4N25由发光二极管和光敏三极管组成。当发光二极管流有一定电流时,发光二极管就发光,发出的光照射到光敏三极管上,就会产生一定的基极电流,使光敏三极管导通。若没有电流(或电流非常小)流过发光二极管,则其不发光,光敏三极管就处于截止状态。 图2-13 光电隔离器4N25第三章 系统软件部分设计3.1 主程序流程图本设计属于小型应用系统,系统并不复杂,但要求一定的可靠性和抗干扰性。单片机的主频为12kHz,显示部分由定时器中断控制。总的来说,软件的实现没有高难度的算法,在这里省略了详细的程序。下图为主程序流程图:开始 初始化扫描键盘有键按下吗?Y响应中断N采样水位信号并处理 低于30L?低于30L? Y启动上水阀N N温度信号采样并处理等于设定值?N启动加热器Y图3-1 主程序流程图3.2 部分中断服务程序3.2.1 8255初始化8255的初始化程序为:PI8255:MOV DPTR,#7FFFH ;8255控制寄存器地址送A MOV A,#3H ;控制字送A MOVX DPTR,A ;方式控制写入8255控制寄存器3.2.2 A/D转换程序1A/D转换中断子程序流程图中断返回等待从IN0重新开始转换两路都转换过?启动A/D转换 转换个数记录加1修改缓冲区地址存入缓冲区读取A/D转换结果开始 图3-2 AD转换中断服务程序流程图2A/D转换程序在主程序中要对INT0外部中断进行预置,然后启动ADC0809进行A/D转换。设由IN0路开始,IN0和IN1轮流输入。转换结束后,转入中断服务子程序,把转换结果读入8051的累加器,并存入相应缓冲存储单元50H51H,再由主程序对这些数据进行处理。转换程序如下:预置外部中断0 SETB IT0 ;置INT0为下降沿触发SETB EA ;总中断开放SETR EX0 ;开放INT0中断启动ADC0809MOV DPTR,#0D000H ;ADC0809口地址MOV R0,#50 ;R0作存数缓冲器指针MOV R1,#00H ;R1作通道数指针MOV A,R1 ;从IN0开始MOVX DPTR,A ;启动转换 ;继续主程序,等待中断中断子程序ORG 0003H ; INT0中断向量地址AJMP RDDAT ;转移至读入数据处RDDAT: MOVX A,DPTR ;读入数据MOV R0,A ;存入缓冲器INC R0 ;增量缓冲器指针INC R1 ;指向下一通道REP: MOV A,R1 MOVX DPTR,A ;启动对下一路的转换CJNE A,#01H,RMP0 ;两路都转换过了吗?MOV R1,#00H ;是,重新从IN0开始SJMP REPRMP0: RETI ;否,返回主程序等待 3.2.3 LED数码显示程序设显示缓冲区为58H5FH共8个存储单元,显示子程序从地址0400H开始。显示子程序如下: ORG 0400HDSPY: MOV R0,#58H ;R0为显示缓冲区指针 MOV R1,#01H ;R1为显示器数位指针LOOP: MOV A,R1 ;扫描模式送A MOV DPTR,#7FFCH ;DPTR指向8255的PA口 MOVX DPTR,A ;扫描一位LED INC DPTR ;DPTR指向PB口 MOV A,R0 ; 取要显示的数 ADD A,#12H ;加上到字形表的偏移量 MOVC A,A+PC ;取字形码,查表 MOVX DPTR,A ;字形送到PB口MOV R7,#02H ;延迟1ms以充分显示DL0: MOV R6,#0FFHDL1: DJNZ R6,DL1 DLNZ R7,DL0 INC R0 ;R0指向下一位缓冲单元 MOV A,R1 ;R1指向下一位LED RL A MOV R1,A JNB ACC.0,LOOP ;所有位都扫描过了吗? RET ; 是,返回3.2.4 键盘扫描子程序调用显示子程序作为延迟以消除按键抖动,扫描子程序如下: ORG 0440H ;键盘扫描子程序RDKB: ACALL DSPY ;调用显示子程序MOV A,#00H ACALL SCAN ;扫描全键盘JZ RDKB ;有键按下?否,返回等待ACALL DSPY ;是,显示延迟12msACALL DSPY ;消抖MOV R3,#00H ;R3作列值寄存器MOV R4,#00H ;R4作行初值寄存器MOV R2,#0FEH ;R2作列扫描寄存器RK1: MOV A,R2 ;先扫描最右一列ACALL SCAN ;本列有键按下吗?JNZ RK2 ;有,测键值INC R3 ;否,列值加1MOV A,R2 ;准备扫下一列JNB ACC.7,TRDKB ;所有列都扫过了吗?RL A ;是,重新开始MOV R2,ASJMP RK1 ;否,继续扫下一列RK2: RRC,A ;找出哪一行有键按下JC KEYD ;此行有键按下?PUSH ACC ;是,去计算键值MOV A,R4 ;否,测下一行ADD A,#08H ;行初值加8MOV R4,APOP ACCSJMP RK2KEYD: ACALL DSPY ;找到了按下的键MOV A,#00H ;等待键释放ACALL SCAN ;消抖JNZ KEYDMOV A,R4 ;计算键值=行值+列值ADD A,R3RETSCAN: MOV DPTR,#07FFCH ;8255的PA口地址 MOVX DPTR,A ;列扫描从PA口输出MOV DPTR,#07FFEH ;8255的PC口地址MOVX A,DPTR ;行信号从PC口输入CPL A ;变反码ANL A,#07H ;屏蔽掉无用位RET 结 论至此,关于太阳能热水器弹片机控制系统的设计已经结束。本系统充分利用了单片机的各种资源,且辅之以其它各种外设,系统设计简单、性能优良、工作可靠且成本较低,克服了一般太阳能热水器阴雨天无法使用、无水温水位显示、无法自动上水等缺点,实现了太阳能热水器运行的自动化。通过完成本次设计任务,使我对由单片机控制的应用系统有了更深层次的认识,作为应用系统的指挥中心,单片机发挥着不可替代的作用。在查阅书籍和资料的过程中,我学到了不少新知识,如达林顿管驱动、光电隔离的作用、电热功率接口电路、按键消抖软件和硬件措施等等。在补充新知识的同时,也将以前学过的8051、8255、ADC0809、74LS373等知识进行了扩充。此外,本次设计先总体设计后分硬件和软件设计的设计思路,是今后解决类似问题可以借鉴的经验。通过完成设计任务,我感觉最大的收获是自学能力得到了很大程度的提高,收获了独立解决问题的自信!致 谢在毕业设计的整个过程中,王老师为我提供了部分参考书籍和资料,悉心解答,及时指出设计方案中的不足,在此,我要再次感谢老师们的悉心指导。自动化的其他老师和同学们也提供了大量的帮助,在此,表示对学校、老师和同学们的衷心的感谢!参考文献1. 郑宝涛,毛海林.太阳能热水器单片机控制设计.电子与自动化,19982. 刘光斌,刘冬,姚志成.单片机系统实用抗干扰技术.人民邮电出版社,20033. 孙育才.MCS-51系列单片微型计算机及其应用. 东南大学出版社,20004. 谢剑英,贾青.微型计算机控制技术.国防工业出版社,20015. 何立民.单片机应用技术选编(二).北京航空航天大学出版社,1993
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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