[信息与通信]基于单片机的全自动洗衣机控制系统设计

上传人:仙*** 文档编号:29821674 上传时间:2021-10-08 格式:DOC 页数:40 大小:666.88KB
返回 下载 相关 举报
[信息与通信]基于单片机的全自动洗衣机控制系统设计_第1页
第1页 / 共40页
[信息与通信]基于单片机的全自动洗衣机控制系统设计_第2页
第2页 / 共40页
[信息与通信]基于单片机的全自动洗衣机控制系统设计_第3页
第3页 / 共40页
点击查看更多>>
资源描述
基于单片机的全自动洗衣机控制系统设计 河南工业职业技术学院 毕业论文 题目:基于单片机的全自动洗衣机控制系统设计 专业(系别):机电一体化 姓 名:肖 向 前 班 级:机电0905班 学 号:0202090521 指 导 老 师 : 李 仁 摘要该系统是基于单片机的全自动洗衣机控制系统设计。系统采用AT89C51单片机作为核心控制芯片。并且辅以必要的外围器件和电路,通过I/O口输出控制电动机运行和停止,通过AT89C51单片机内部定时器中断来记录洗衣时间和进水时间,通过按键来进行洗衣参数设置。通过AT89C51单片机驱动数码管显示洗衣机的工作时间,LED指示灯用作洗衣机的工作状态显示,用两个电控水龙头进行加水和放水,通过蜂鸣器提示洗衣结束。通过外部中断来控制进水和放水。论文重点阐述单片机和控制系统模块的设计。关键词:单片机,全自动洗衣机,数码管,蜂鸣器,中断,定时器 Summary The system is . System uses AT89C51 microcontroller as the core control chip. And supplemented by the necessary peripheral devices and circuits, through the I/O port output control and stop the motor running, AT89C51 microcontroller via an internal timer interrupt to record the laundry time and water time, through the key parameters for laundry. AT89C51 microcontroller driven by digital display washing machine working hours, LED indicator for status display of washing machines work, carried out by two electronically controlled tap water and turn on the water, laundry tips by the end of the buzzer. Water through an external interrupt to control and turn on the water. Paper focuses on the single-chip module design and control system. keywords: MCU ,Automatic washing machine, LE Buzzer ,Interrupt ,Timer目录绪论第一章 系统整体设计1.1设计功能要求1.2系统设计方案1.3芯片选择1.3.1什么是单片机1.3.2单片机的应用领域1.3.3单片机的确定1.4单片机的结构1.4.1 AT89C51单片机的引脚功能1.4.2电源1.4.3时钟1.4.4控制信号引脚线1.4.5输入/输出引脚(I/O口线)1.5 继电器的选择第二章 系统硬件设计2.1 电源电路设计2.2 保护电路设计2.3 显示电路设计2.4 按键控制设计2.5 状态指示电路设计2.6 硬件总体电路设计第三章 系统软件设计3.1 软件整体结构设计3.2主程序结构设计与分析3.3子程序结构设计与分析3.3.1 定时器中断1子程序3.3.2 外部中断0子程序3.3.3 定时器中断0子程序3.3.4 外部中断1子程序3.3.5 数码管显示子程序总结致谢参考文献绪论1.全自动洗衣机的发展过程随着社会的进步和生活水平的提高,洗衣机是一种在家庭中不可缺少的家用电器,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、摔干等一系列过程自动完成。家用洗衣机从发明到现在已经经历了一个多世纪,经历以下一些发展阶段:世界上第一台洗衣机实在1874年由美国的比尔.布莱克斯通(Bill Blackstone)研制成功的。1910年前后,第一台卧轴滚筒式电动洗衣机问世,标志着人类家务劳动自动化的开始。20世纪20年代,第一台立轴搅拌式洗衣机再美国试制成功,由此,洗衣机开始了“立轴”与“卧轴”之分。50年代中叶,日本三洋公司推出单桶波轮式洗衣机。开始确定了滚筒式、搅拌式和波轮式三种工作方式。60年代,日本推出了带甩干桶半自动洗衣机,并且大量应用塑料,使洗衣机的发展进入一个新的阶段。70年代,日本推出波轮式套桶全自动洗衣机,从此开始有了“全自动”洗衣机的概念。70年代后期,日本推出了微电脑控制的全自动洗衣机。完成了由机械电动程序控制到电脑控制的过渡,开始了电脑控制时代。这时,洗衣机在发达国家已进入饱和期,而在亚太地区发展中国家开始进入普及期。80年代后期,“模糊控制”洗衣机开始出现,实现了家电器控制方式上的高度自动化。出现“白色家电”的概念。90年代,随着变频技术的发展,日本最先推出了电动机直接驱动洗衣机,实现了洗衣机驱动方式上的革命。今后洗衣机将以高可靠性,完善的功能,节水省电,降噪省时以及规格品种多样化为发展方向。2.洗衣机的发展前景及待解决的问题国外先进技术及开发前景:当今世界是技术、知识大爆炸的年代,只要人们有需要,就有可能生产出某种产品来满足人们的需要。洗衣机的发展正是这样,人们在生活中发现了它的某些不便,就会在实际中不断地改进和完善它,新型的洗衣机正是在这种情况下诞生的。(1)超声波洗衣机超声振动产生空穴现象,在洗涤中通过气泡的生产和消失的运动,产生强水压,再加入小量洗衣剂,振动纤维,超声乳化,去污,水中气泡上升,产生了从洗涤桶中央向外侧翻动的水流,使衣服之间相互摩擦,并与洗涤剂充分接触产生很有效的洗涤作用。这种洗衣机洗涤桶小,桶内无运动部件,无机械电气故障,修理方便。不缠绕,不伤布料,洗衣效果好,省水,省电。(2)电磁洗衣机这种洗衣机洗涤桶内有4个洗涤头,上面各有有个夹子,把衣物伸展夹住,每个洗涤头上有有个电磁线圈,接通电源发生2500次/秒的微击振动,使衣物在洗涤液中洗涤。因不用电机驱动,无噪声,省水50%,省电75%。(3)高温泡沫洗衣机日本大阪大研制的一种不用水用高温泡沫来洗净衣物的洗衣机。洗涤剂罐于洗衣机低部,放衣物后拨动开关,开始鼓风,将空气送入罐中产生泡沫,由加热到70C高温泡沫洗净衣物,然后进入洗衣桶旁边的消泡装置,一般洗510分钟/次,21L/1kg干衣。(4)真空洗衣机原苏联研制的不用洗衣粉或洗涤剂的洗衣机,真空泵将洗衣桶内吸成真空状态,桶中水运动产生气泡爆破并去污。洗净度高,不损衣、无噪声、造价高。实际上是采用冷沸腾洗涤原理,在几秒钟内从洗涤桶的上部那空气抽空出。稀薄空气与水如沸腾壮,衣物在泡沫旋涡钟搅动,1.52分钟就能洗净衣物,一般洗衣服710分钟即可完成全过程。(5)喷射式洗衣机意大利扎努西公司研制一种将洗涤剂不断喷向衣物的洗衣机,似乎无水,可以省水20%,省洗涤剂30%,省能35%,省时间10%。这种洗衣机完全不同于前装式滚筒洗衣机,安装在喷淋系统内的喷射装置持续不断地将水和洗涤剂喷淋在衣物上进行洗涤,并在不锈钢桶内搅动衣物。衣物在液体中不停地搅动,就像桶内根本没有水一样。然而水却渗透过衣物流入位于滚筒底部的一个储水槽中。在槽中,水被从新加热再次循环喷射到衣物上去,洗涤桶做周期性脱水,以排去水和污物,随后漂洗3次,最后脱水洗完。洗衣机待解决的一些问题:由于我国洗衣机厂起步晚,加上技术方面的一些问题,不可避免的在现有的机型中出现一些弊端。主要弊端有:噪声大,耗水、耗电,进水不畅或进水不止或排水不畅,工作周期不平稳、振动大,损伤洗涤物,洗涤效果不佳,脱水桶自动性不佳,脱水不良,重量大,容量不合理。具体来说,洗衣机的问题存在于结构、质量、原材料和模具及管理方面(1)结构类型方面我国洗衣机多属波轮式。今后波轮式仍然是主要型式。为了适应国外市场的不同需求,要适当地生产些新型式的滚筒式和搅拌式洗衣机,进而生产具有波轮式、搅拌式两种洗衣机优点的新机型。为了使波轮式洗衣机洗涤更合理,应努力将全自动洗衣机提高到电脑型的水平。双桶洗衣机再提高漂洗的条件下,以重点生产全自动型喷淋式洗衣机为宜。同时要注意避免新水流洗衣机一味地提高波轮式的转数极其转动时间或增高波轮筋高的倾向,以免损伤衣率和缠绕率回升增高,降低了新水流洗衣机的优越性。(2)质量方面我国洗衣机的质量问题,具体反映再功能、外观和可靠性三方面,与国外存在再较大的差距。国内外洗衣机相比较:从功能、电源插头、面板装饰、旋钮结合,塑料件的光整度(光洁、毛刺和变形),外箱和螺丝钉的成形及防锈,皮带的耐磨及噪音,进排水阀和水位开关质量,电脑控制各种功能的能力,电脑的抗电压波动、抗干扰防静电的能力,以及传感器的灵敏度等方面,很容易看出整体质量的好坏。再加上装配工艺较落后,致使我国洗衣机的质量稳定性差,出口有一定的困难。目前我国洗衣机无故障运行水平约为250500小时,而国外同类产品达15002000小时,即十年不需修理。因此提高洗衣机的质量要从提高零部件的质量入手。关键电器件和传动件应组织专业分工,制定标准,组织攻关,进行认证,在改进功能方面、外观质量和可靠性三方面,进行全面整理,提高水平。综合以上分析介绍,全自动洗衣机由于具有对衣物的磨损小、洗涤量大、节约水电等特点,越来越得到广大家庭的青睐。由于人们对全自动洗衣机在价格低廉的基础上也提出了功能齐全、操作简单、不缠绕、不伤布料、洗衣效果好、性能可靠、工作效率高、便于维修等更高的要求。为满足人们这种需求,特设计出这种有微控制器控制的全自动洗衣机控制系统。第一章 系统整体设计在进行系统设计之前,首先应根据对系统的功能要求及其应用环境等确定合理的、具体的功能和技术指标,对应用系统的可靠性、通用性、先进性、可维护性、以及成本等进行综合考虑,以尽量合理并符合相应的标准。然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选择合适的机型。接下来要根据系统中遇到的重要器件进行选择,使之符合系统在精度、速度和可靠性等方面的要求。最后确定硬件和软件的功能划分。由于在系统设计中某些功能用硬件和软件都能实现,在设计中应综合考虑研制周期和成本等因素具体划分软硬件功能。1.1设计功能要求(1)通过按键控制洗衣机的工作方式,并且相应工作方式的指示灯亮。(2)数码管用于显示相应工作方式的剩余时间(3)洗衣机具有强洗(电动机正转)和弱洗(电动机正,反交替运行)(4)打开电源洗衣机自动在强洗模式(并且可调整强洗和弱洗)(5)当洗衣时间或脱水时间到蜂鸣器响(6)通过延时控制洗衣机的进水水位1.2系统设计方案通过设对计要求的分析,主控制系统运用的是AT89C51单片机,控制对象包括:按键、电控水龙头1(进水阀)、电控水龙头2(出水阀)、电动机、数码管显示、LED指示灯、蜂鸣器等。这些被控对象需要根据不同的洗衣程序来设定他们的工作状态和工作时间,电控水龙头1(进水阀)和电控水龙头2(出水阀)来控制进水和出水,同时需要LED指示灯和数码管显示不同的工作状态和剩余时间,按键用来控制程序运行和设置洗衣模式,蜂鸣器用来提示洗衣完成提示。按照上述的系统方案得到的系统整体构架如图1-1:图1-1系统整体构架1.3芯片选择 1.3.1什么是单片机单片机即单片微型计算机。(Single-Chip Microcomputer ),是 集CPU 、RAM 、ROM 、定时器、计数器和多种接口于一体的微控制器。这样所组成的芯片级芯片级微型计算机称为单片微型计算机(Single-Chip Microcomputer ),简称位单片微机或单片机。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。由于单片机的硬件结构与指令系统都是按工业控制要求设计的,常用于工业的检测、控制装置中,因而也称为微控制器或嵌入式控制器。单片机按用途可分为通用型和专用型两大类,按内部数据通道的宽度又可分为位、位、位及位。而51 单片机是各单片机中最为典型和最有代表性的一种。1.3.2单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:(一)在智能仪器仪表的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。(2) 在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(三)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(四)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(五)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。1.3.3单片机的确定通过设计方案整体分析,根据单片机的使用性、技术性、经济性、以及对控制系统的设计要求与性能,本系统选择AT89C51单片机作为核心控制对象。其中AT89C51单片机具有以下基本特性:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,外围电路简单、硬件设计方便、I/O口操作简单、资源丰富、能满足一般的使用功能、 价格便宜、容易购买。通过以上的介绍和分析,AT89C51完全满足设计要求和性能。因此,本系统选择AT89C51单片机作为核心控制对象。 1.4单片机的结构AT89C51 芯片内部集成了 CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些部件连接在一起。AT89C51 单片机内部包含以下一些功能部件:(1) 一个8位CPU;(2) 一个片内振荡器和时钟电路;(3) 4KB 的ROM(4) 128x8字节内部RAM;(5) 可寻址64KB的外ROM和外RAM控制电路;(6) 两个16位定时/计数器;(7) 21个特殊功能寄存器;(8) 4个8位并行I/O口,共32条可编程I/O端线;(9) 一个可编程全双工串行口;(10) 5个中断源;1.4.1 AT89C51单片机的引脚功能AT89C51单片机一般采用双列直插DIP封装,共40个引脚,图1-2为单片机引脚排列图。40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。图1-2 单片机引脚排列图1.4.2电源(1)VCC(40脚)芯片电源,接+;(2)VSS(GND20脚)接地端。1.4.3时钟XTAL1(19脚)、XTAL2(18脚)晶体振荡电路反相输入端和输出端。使用内部振荡电路时外接石英晶体如图1-3。 图1-3晶体振荡电路 1.4.4控制信号引脚线控制线共有4根,其中3根是复用线。所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。(1)ALE/PROG(30脚)地址锁存允许/片内EPROM编程脉冲。ALE功能:用来锁存P0口送出的低8位地址。AT89C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。那么如何区分是低8位地址还是8位数据信号呢?当ALE为高电平时,P0口传送的是低8位地址信号;ALE为低电平时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1 / 6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。ALE端可驱动8个LSTTL门电路。PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。(2) PSEN(29脚)外ROM读选通信号。80C51读外ROM时,没个机器周期内PSEN两次有效输出。PSEN可作为外ROM芯片输出允许OE的选通信号。在读内ROM或读外RAM时,PSEN无效。PSEN可驱动8个LSTTL门电路。 (3) RST/Vpd(9脚)复位/备用电源。正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。8051的复位方式可以是自动复位,也可以是手动复位,见下图14上电自动复位电路 和图15手动复位电路。 图1-4上电自动复位电路 图1-5 手动复位电路 Vpd功能:在Vcc掉电情况下,该引脚可接上备用电源,由Vpd向片内供电,以保持片内RAM中的数据不丢失。(4) EA/VPP(31脚) 内外ROM选择/片内EPROM编程电源。EA功能:正常工作时,EA为内外ROM选择端。AT89C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外。当EA保持高电平时,先访问内部ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转向执行外ROM中的程序。当EA保持低电平时,则CPU只访问外ROM,当EA为高电平时,则CPU要先对内部ROM访问,然后自动延至外部超过4KB的ROM。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。1.4.5输入/输出引脚(I/O口线)(1)P0口(3239脚)8位双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P0口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。P0口能驱动8个LSTTL门。 (2)P1口(18脚)8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。 P1口能驱动为4个LSTTL门。(3) P2口(2128脚)8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P2口可用于传送高8位地址(属地址总线) 。P2口能驱动4个LSTTL门。引脚上拉电阻同P1口。在结构上,P2口比P1口多一个输出控制部分。(4) P3口(1017脚)8位准双向I/O口。可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口驱动能力为4个LSTTL门。 P3口第二功能如下:P3.0RXD:串行口输入端;P3.1TXD:串行口输出端;P3.2INT0:外部中断0请求输入端;P3.3INT1:外部中断1请求输入端P3.4T0:定时/计数器0外部信号输入端;P3.5T1:定时/计数器1外部信号输入端;P3.6WR:外RAM写选通信号输出端;P3.7RD:外RAM读选通信号输出端。上述4个I/O口,各有各的用途。 在不并行扩展外存储器(包括并行扩展I/O口)时, 4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时, P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端。1.5 继电器的选择继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,用来接通和断开控制电器,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。根据控制电路的电源电压,能提供的最大电流,被控电路需的触点形式。根据单片机的控制特点AT89C51单片机带负载能力不强,一般用三极管控制继电器,因此本系统采用的是:松乐T73 SRD-5VDC-SL-C继电器。第二章 系统硬件设计 2.1 电源电路设计电源为单片机提供+5V电压供电,原理图如图2-1所示,交流220V电源经变压器降压在经过整流、滤波后产生直流电压,输入到集成稳压器7805的输入端,7805输出稳定的+5V电压为单片机供电。图2-1电源电路2.2 保护电路设计保护电路如图2-2所示,该电路主要是对与电动机在运行过程中出现过载或短路保护,通过自恢复保险丝与电动机串联,当电动机过载或短路时,流经保险丝的大电流使其集温升高,当达到居里温度时,其态密度迅速减小,相变增大,内部的导电链路呈雪崩态变或断裂,保险丝呈阶跃式迁到高阻态,电流被迅速夹断,从而对电路进行快速、准确的限制和保护,当故障排除后,其集温降低,态密度增大,相变复原,纳米晶体还原成链状导电通路,自恢复保险丝恢复为正常状态,无需人工更换。从而起到保护作用。2-2保护电路2.3 显示电路设计显示部分主要是通过一个两位数码管显示系统的工作时间信息。该数码管共有10个管脚,其中AG 7个管脚为数码管的段选,1和2为数码管的位选,DP为小数点显示。其中数码管的段选与单片机的P0.0P0.6口相连接,数码管的位选1和2分别与单片机的P2.0和P2.1相连接。具体电路如图23所示。图2-3 显示电路2.4 按键控制设计该系统通过四个独立按键来控制系统的启动、停止和工作状态设置,四个键分别为:程序、增加、减少、启动,其中四个键分别与单片机的P1.0P1.3口相连接:具体连接如图24所示。 图2-4 按键连接2.5 状态指示电路设计状态指示是通过8个LDE显示系统的工作状态,LED与74LS138的输出端相连接,其中74LS138的三个使能端分别与单片机的P1.4P1.6相连接,通过单片机输出高低电平控制74LS138相应的引脚,使LED点亮,指示出工作状态。具体连接如图2-5所示。图25指示灯电路2.6 硬件总体电路设计 通过上面的分析硬件电路(如图2-6)主要有这几部分组成:1.单片机最小系统:(1)复位电路 (2)时钟电路 (3)AT89C512.按键控制部分 3.LED与数码显示部分 4. 74LS138译码器5.报警部分(蜂鸣器) 6.继电器控制部分 7.电动机部分其中按键部分为四个独立按键与单片机的P1.0P1.3口相连接,分别是程序的增加、减少和启动主要用于设置洗衣机的工作状态。D0D7是洗衣机的工作状态指示灯,其中D0D5与38译码器的Y0Y5相连接分别表示:进水时间设定,脱水剩余时间,脱水定时,洗衣剩余时间,洗衣定时,洗涤次数。D6与D7分别与单片机的P2.6与P2.7相连接表示:弱洗和强洗。数码管用于显示洗衣机工作的时间,其中P0口控制数码管的段选,P2.0与P2.1控制数码管的位选。报警部分(蜂鸣器)用于洗衣完毕是的报警,通过三极管驱动与单片机的P1.7相连接。继电器控制部分主要用于电动机的正反转控制,通过三极管驱动与单片机的P2.2P2.5相连接。单片机的P3.0与P3.2分别连接两个电控水龙头用于洗衣机的进水和脱水。2-6 电路原理图第三章 系统软件设计3.1 软件整体结构设计该系统的主要程序图框如图3-1所示。系统程序可以分为:主程序,定时器中断1程序,定时器中断0程序,外部中断0和外部中断1程序,延时程序,数码管显示程序,等几部分组成。定时中断1和外部中断0来控制电控水龙头进水,利用定时器中断0记录洗衣时间,通过外部中断1判断水是否放完,来进行脱水,定时中断1记录脱水时间。下面分别以各部分的程序流程图进行分析程序3.2主程序结构设计与分析首先,开机可以先进行选择强洗和弱洗(弱洗是电动机进行正反转每10s交替运行)并且相应指示灯亮。连续按下“程序”键可进行相应功能的选择,当进水时间、洗衣时间、脱水时间、洗涤次数、脱水时间以及强洗或弱洗设置完成后,按下“启动”键系统开始工作,进水龙头打开,当进水时间到或水加满开始进行洗衣,当洗衣时间到,开始进行脱水。当脱水时间到,若洗涤次数不到,继续下一次洗涤,否则结束工作且蜂鸣器报警5秒,工作结束。其应用程序如下:开始启动键按下否 否 洗衣参数设定状态 是 洗衣加水 是 加水时间到否或满否启动键按下否 否 是 是 洗衣状态 脱水状态 是 洗衣时间到否 否 是脱水时间到否 否 洗涤次数到否 否 是 是结束 图3-1 主程序图框 main() int a; P1=0xff; TMOD=0x11;/定时器0和定时器1同时工作在模式0; ET0=1; /打开内部中断0 ET1=1; /打开内部中断1 led7=0; while(d) shao_maio(); if(b=1200)/b=20刚好1秒 b=0; m=m-1; if(m0) m=0; if(t=0&b=600&b=400&b=800&b1000)q1=1;q4=1; q2=0;q3=0; if(led6=1&led7=0) /强洗 q1=0; q4=0; q2=1; q3=1; /*开始脱水*/if(m=0) sw1=1;/关水龙头1 sw2=0;/开水龙头2 EX0=0;/关外部中断0 ET0=0;/关定时器中断0 TR0=0; EA=1;/开总中断 TMOD=0x11; TH1=(65536-50000)/256; /定时50毫秒 TL1=(65536-50000)%256; ET1=1; /打开内部中断0 TR1=1; EX1=1; /外部中断1打开为放水准备 sn1=0;/4脱水剩余时间指示灯亮 sn2=0;/2 sn3=1;/1 x=5;/显示脱水剩余时间 if(tuo_s=1200) tuo_s=0; t=t-1; if(t=0) jins_time=jins_time1; m=m1; t=t; d=d-1; x=0; xi_di=1;/判断是否跳转 if(d=0) EA=0;/关总中断 sw2=1;/关水龙头2 sm1=sm2=0;/数码管熄灭 sn1=sn2=sn3=1;/LED熄灭 q1=q2=q3=q4=1;/电动机停止 feng_m_qi=0;/蜂鸣器响 delay(2);/延时5秒 feng_m_qi=1;/蜂鸣器停止 else goto start;/*强洗弱洗选择*/if(sb2=0&x=0)/弱洗 for(a=0;a140;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb2=0&x=0) led6=0; led7=1; if(sb3=0&x=0)/强洗 for(a=0;a140;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb3=0&x=0) led6=1; led7=0; /*功能选择*/ if(sb1=0) EA=0; for(a=0;a130;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb1=0) x=x+1; if(x=1)/洗涤次数设置 sn1=1;/4 sn2=0;/2 sn3=1;/1 if(x=2)/洗衣定时 sn1=1;/4 sn2=0;/2 sn3=0;/1 if(x=3)/洗衣剩余时间 sn1=0;/4 sn2=1;/2 sn3=1;/1 if(x=4)/脱水定时时间 sn1=0;/4 sn2=1;/2 sn3=0;/1 if(x=5)/脱水剩余时间 sn1=0;/4 sn2=0;/2 sn3=1;/1 if(x=6)/进水时间 sn1=0;/4 sn2=0;/2 sn3=0;/1 if(x=7)/强洗 x=0; led6=1; led7=0; /*增加设置*/if(sb2=0&x=1) /洗涤次数增加 /EA=0; for(a=0;a99) d=0; /*/if(sb2=0&x=2) /洗衣定时增加 for(a=0;a99) m=0;/*/if(sb2=0&x=4)/脱水定时增加 for(a=0;a99) t=0; /*/ if(sb2=0&x=6)/进水水定时增加 for(a=0;a99) jins_time=0; /*减少设置*/ if(sb3=0&x=1)/洗涤次数减少 EA=0; for(a=0;a130;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb3=0&x=1) d=d-1; if(d0) d=0; /*/ if(sb3=0&x=2)/洗衣定时减少 EA=0; for(a=0;a130;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb3=0&x=2) m=m-1; m1=m; if(m0) m=m1; /*/if(sb3=0&x=4) /脱水定时减少 EA=0;for(a=0;a130;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb3=0&x=4) t=t-1; t1=t; shao_maio(); if(t0) t=0; /*/ if(sb3=0&x=6) /进水定时减少 EA=0; for(a=0;a130;a+)/按键去抖 shao_maio(); /扫描数码管 if(sb3=0&x=6) jins_time=jins_time-1; jins_time1=jins_time; shao_maio(); if(jins_time0) start: xi_di=0;/如果洗涤次数不到重新赋值 for(a=0;a0) EA=1;/开总中断 EX0=1;/开外部中断0 sw1=0;/开水龙头1 sw2=1; TMOD=0x11; TH1=(65536-50000)/256; /定时50毫秒 TL1=(65536-50000)%256; ET1=1; /打开内部中断0 TR1=1; x=6; sn1=0;/4 sn2=0;/2 sn3=0;/1 3.3子程序结构设计与分析3.3.1 定时器中断1子程序图3-2为定时器中断1程序框架,当启动键按下后,系统将打开定时器中断1,每50ms中断一次,作为进水时间的记录,当进水时间到定时器中断1关闭停止计时。或者水加满后,利用外部中断0来停止加水。其主要程序如下:洗衣参数设定状态 启动键按下否 否 是开始每50ms中断一次 进水时间到否 否 是开始进入洗衣状态关闭定时器中断1打开定时器中断0图3-2定时器中断1 void ds1zhong_duan() interrupt 3 /定时器1中断 /进水水和脱水时间 /shaomaio(); /扫描数码管 TH1=(65536-50000)/256;/高8位 TL1=(65536-50000)%256;/低8位 if(EX0=1) b1=b1+1; /记录中断次,数每次中断50ms else tuo_s=tuo_s+1; 3.3.2 外部中断0子程序外部中断0程序框架(如图3-3所示),其主要功能是:当设置加水时间过长,水就会溢出,为防止水溢出,当水加到一定高度时就会进入该中断子程序关闭进水阀,开始执行下一步任务。其主要程序如下:图3-3 外部中断0 void wai0_zhong_duan() interrupt 0/外部中断0 sw1=1;/关闭水龙头 jins_time=1; if(led6=0&led7=1) /弱洗 void dian_zf(); if(led6=1&led7=0) /强洗 led6=1; led7=0; sw1=0;/关闭水龙头1 EA=1;/开总中断 TMOD=0x11; jins_time=1; TH0=(65536-50000)/256; /定时50毫秒 TL0=(65536-50000)%256; ET0=1; /打开内部中断0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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