毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc

上传人:laozhun 文档编号:3975181 上传时间:2023-03-30 格式:DOC 页数:33 大小:499KB
返回 下载 相关 举报
毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc_第1页
第1页 / 共33页
毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc_第2页
第2页 / 共33页
毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc_第3页
第3页 / 共33页
毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc_第4页
第4页 / 共33页
毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于89C2051单片机的洗衣机的控制系统设计.doc(33页珍藏版)》请在三一办公上搜索。

1、前 言目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。目前的洗衣机都没有实现全方面的兼容,大多洗衣的厂家都注重各自品牌的洗衣机的特长,突出一两个与别的洗衣机不同的个性化的功能,洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。本设

2、计采用STC 89C2051为控制核心,为保证洗衣机及人身安全,设计了蜂鸣报警电路.因本设计输入按键较少,所以采用直接输入方式,使电路简单化。为方便理解与熟悉本,本文还介绍了与全自动洗衣机有关的一些常见的电子元器件的基本功能。本设计只设计了全自动洗衣机的基本功能,其他的一些功能可在原有的基础上扩展升级,使全自动洗衣机能更加智能化,更加完善。1洗衣机的功能及设计1.1洗衣机功能要求 洗衣机的主要工作程序是:洗涤脱水漂洗脱水漂洗脱水。上述工作程序中,包含三个过程,洗涤过程、漂洗过程、脱水过程。 (1)洗涤过程:放好待洗物,启动开关,进水阀通电,向洗衣机供水,当供水达到预定水位时,水位开关接通,进水

3、阀断电关闭,停止供水。洗涤电动机接通电源,带动波轮(或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。通过电动不停的正转、停、反转、反复循环,形成洗涤水对洗涤物产生强烈的翻滚作用。同时,衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,以次达到洗涤衣物的目的。 (2)漂洗过程:漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电器动作是完全相同的。 (3)脱水过程:洗涤或漂洗后,需要对衣物进行脱水以便晾干,节省水资源,所以脱水是洗衣过程中必不可少的环节。洗涤或漂洗过程结束后,电动机停止转动,排水阀通电,打开排水阀门排水。当水位低到一定程度时,满足安全条件,脱水电动机接通,电机带动脱水桶

4、高速旋转,利用离心力把衣服上的水从桶壁的小眼里甩出。全部洗衣工作完成后,由蜂鸣器发出音响,表示衣物已洗干净。1.2洗衣机硬件电路设计1.2.1 洗衣机总体设计框图 椭圆型表示指示灯:从上到下依次为强洗、弱洗、洗涤次数、洗衣定时、脱水定时、洗衣剩余时间、脱水剩余时间。电动机正转为强洗,正反交替转动设定为弱洗,初始设定的状态为强洗,若要选择弱洗模式需按下增加按键,再次按下选择按键,则表示洗涤次数的指示灯被点亮,选择增加或减少按键对时间进行加减。然后对脱水时间设定,最后按下启动键,洗衣机开始工作。数码管2(显示时间)数码管1(显示时间)出水进水开始/暂停反转正转51单片机38译码器电动机蜂鸣器 选择

5、 增加 减少 启动 图一 总体设计框图1.2.2元器件介绍(1)STC51单片机STC89C51系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,是MCS-51系列单片机的派生产品;它们在指令系统中、硬件系统和片内资源与标准的8052单片机完全兼容,DIP-40封装系列与8051为pin-to-pin兼容,指令代码是与8051完全兼容的单片机。STC89C51单片机具有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5V-3.4V(5V单片机)/3.8V-2.0V(5V单片机);工作频率范围:0-40MHZ,相当于普通8051的0-80MHZ。实际频率可达48

6、MHZ。用户应用程序空间为4K/8K/13K/16K/20K/32K/64K字节 ;片上集成1280字节/512字节RAM;有32/36个通用I/O口,P1/P2/P3/P4是准双向口;集成ISP(在系统可编程)/IPA(在应用可编程),无需专用的编程器/仿真器,可通过串行口(P3.0/P3.1)直接下载用户程序,8K程序3秒就可以完成一片,具备EEPROM功能,工作温度范围在0-750,共有3个16位定时器/计数器,其中定时器T0还可以当成2个8位定时器使用;封装形式有DIP-40,PLCC-44,PQFP-44等。本文选取的是DIP-40引脚的。(2)74LS3874LS138 为3 线8

7、 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其中74LS138工作原理:当一个选通端为高电平,另两个选通端和为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 表一74LS138真值表输 入输 出S1 S2 S3A2 A1 A0Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y70 1 11 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 0 0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1

8、10 1 1 1 1 1 1 11 0 1 1 1 1 1 11 1 0 1 1 1 1 11 1 1 0 1 1 1 11 1 1 1 0 1 1 11 1 1 1 1 0 1 11 1 1 1 1 1 0 11 1 1 1 1 1 1 0 (3)晶振晶振全称为晶体振荡器,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是娱乐级声卡为了降低成本,通常都采用SRC将

9、输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。 晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给它通电,它就会产生机械振荡,反之,如果给它机械力,它又会产生电,这种特性叫机电效应。他们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路,即谐振回路

10、。他们的机电效应是机-电-机-电.的不断转换,由电感和电容组成的谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即Q值非常高,做振荡器用时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定和陡削的带通或带阻曲线。图二 STC89C51单片机元件图图三 晶振实物图(4)蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准

11、用“FM”、“LB”、“JD”等)表示。蜂鸣器的结构原理1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁

12、线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。图四 蜂鸣器实物图(5)数码管数码管是一种半导体发光器件,其基本单元是发光二极管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将

13、所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。主要参数(1)8字高度 8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。(2)长*宽*高长数码管正放时,水平方向的长度;宽数码管正放时,垂直方向上的长度;高数码管的厚度。(3)时钟点四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。图五 数码管原理图(6)LED灯LED结构以及发光原理LED(Light Emitting Diod

14、e),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片 发光二极管晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。最初LED用作仪器仪表的指示光源,后来各种光色的

15、LED在交通信号灯和大面积显示屏中得到了广泛应用,产生了很好的经济效益和社会效益。对于一般照明而言,人们更需要白色的光源。(7)直流电动机将直流电能转换为机械能的转动装置。电动机定子提供磁场,直流电源向转子的绕组提供电流,换向器使转子电流与磁场产生的转矩保持方向不变(8)ULN2003ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。一、电路的特点ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500

16、mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。 ULN2003 采用DIP16 或SOP16 塑料封装。ULN2003内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固

17、体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,9脚可以悬空。比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。二、作用ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动

18、的系统。1.2.3硬件电路的主要模块 根据洗衣机的基本功能,硬件电路设计需要考虑:水流强度的问题、洗涤、漂洗、脱水时间设定长短的问题、工作时间或剩余时间的显示、工作过程中的暂停、启动、复位、洗完后的报警等问题。采用5l系列单片机作为控制核心,主要包括功能设置及控制电路、洗衣机状态显示及输出控制电路。主要组成部件有:单片机、74LSl38译码器、ULN2003、指示灯、数码管、电动机、蜂鸣器以及按键等。(1)功能设置及控制电路暂停键K0,接P33,用外部中断1实现工作过程的暂停,根据人的需要可以进行手工洗涤;水位开关K1,接P1O,水位到位时,K1闭合。在进水期间,系统不断检测K1,当检测到K1

19、闭合就停止进水;按键K2,接P16,作为工作过程中的启动键;按键K3是洗衣强度选择键,接P34,每按一次代表一种强度。分别是标准、弱洗、强洗和自编,由4个指示灯进行显示;按键K4,接P35,对洗衣时间进行设置,并用数码管LEDl和LED2显示:按键K5,接P36,对漂洗、脱水次数进行设置,并用数码管LEDI显示;压电蜂鸣器接P17,作为洗衣时间到以及故障发生的报警器。图六 控制电路(2)洗衣机状态显示 74LSl38译码器为38译码器,选用它可以解决I0口线数量不足问题。从控制要求可知,洗衣机的工作模式以及工作程序必须有7中不同的显示加以区别。74LSl38译码器的输入端C、B、A分别接P13

20、、P14、P15,输出端分别与7个发光二极管DO-D6的阴极相连,发光二极管阳极接电源。输出端YO控制D0“弱洗”指示灯:Y1控制D1“标准洗”指示灯,Y2控制D2“强洗”指示灯,Y3控制D3“自编”指示灯,Y4控制D4“洗衣”指示灯,Y5控制D5“漂洗”指示灯,Y6控制D6“脱水”指示灯图七 状态显示图(3)输出控制电路输出控制电路由触发器电路和相应的双向晶闸管组成。控制电机正反转以及进水阀和排水阀的开启和关闭。通过触发器电路和相应的双向晶闸管,电动机的正转和反转用单片机P11和P12进行控制;进水电磁阀和排水电磁阀用单片机的P30和P31进行控制(4)整体设计图把上述电路图整合在一起如图所

21、示图七 整体设计图1.3洗衣机软件系统设计1.3.1主程序设计根据硬件设计要求,控制主程序流程图如图所示。洗衣机通电之后,单片机上电,首先进行程序的初始化,包括定时器O、外部中断O、外部中断l的初始化,以及各参数初值的设定。默认洗衣强度为“标准洗”,漂洗次数3次。然后扫描K2、K3、K4、K5键的状态,确定洗衣强度R2、洗衣时间R3和漂洗次数R4。洗衣机处于待命状态,控制指示灯显示洗衣强度,液晶显示预设洗衣时间。当发现启动键K2按下,洗衣机从待命状态进入工作状态。完成进水洗涤脱水漂洗的循环过程。当洗衣结束时,控制蜂鸣器发声。开始结束报警?脱水、漂洗程序洗涤程序进水程序启动?初始化查询洗衣强度R

22、2的值查询洗衣时间R3的值查询漂洗次数R4的值图八 主程序流程图进水程序设计 当P30=1时,打开进水电磁阀开始进水。当水位到达要求时,P10=0,即水位开关K1闭合,关闭进水电磁阀,P30=0,迸水结束; 洗涤过程程序设计 电机正反转均为10S,根据R2的值确定洗衣强度、洗衣时间R3以及电动机的间歇时间。洗衣开始电机正转10s电机停转延时1s进入漂洗脱水程序电机反转10s剩余时间=0R2=0?图九 洗涤过程流程图脱水、漂洗过程程序设计 脱水前先打开排水阀排水1min。然后启动电动机脱水1min,并保持排水阀开启,然后停止脱水。接着判断漂洗次数即R4的值,若R4为0则洗衣结束,开蜂鸣器提醒洗衣

23、结束,系统返回初始待命状态;若R4不为0,则再次执行进水操作,进入下一循环。程序如下图所示:关脱水,关脱水阀漂洗脱水开始开排水闸开电动机脱水继续漂洗关蜂鸣器开蜂鸣器报警R4=0?图十 脱水、漂洗程序流程图 1.3.2内部定时中断设计 工作过程中所需的各种计时均有定时器0定时中断服务64程序提供。单片机晶振频率12Mllz,定时器0选择工作方式1,设置时间常数,每01S中断次。中断处理程序流程图如下图所示。中断入口显示子程序计数清零秒值加1秒值清0分值减1是否到1s是否到1民、中断返回图十一 内部定时中断流程图1.3.3外部中断设计 为了防止外部电压过高或过低对洗衣机的电器及控制硬件产生破坏,用

24、外部中断0进行保护。当电压过高或过低时,引起外部中断0,洗衣机停止一切动作,进入保护状态。用外部中断1来实现洗衣过程停止工作。在洗衣过程中,当暂停键K0按下时,引起外部中断1,转入中断1处理程序。中断l处理程序将使洗衣机停止工作,并将停止前的状态存储起来。当按下启动键K2时,洗衣机又恢复工作。程序设计流程图中断入口相关寄存器进栈暂停否?相关寄存器出栈置外部中断控制字中断返回图十二 外部中断流程图1.3.4源程序#include /各个引脚功能定义sbit key_move_stop = P20; /启动、暂停按键sbit key_wash_dehydration = P21; /洗涤、脱水按键

25、sbit key_water_detection = P32; /水位检测按键 外部中断0sbit key_cap_open = P33; /机盖装置按键 外部中断1sbit LED1 = P00; /启动指示灯sbit LED2 = P01; /暂停指示灯sbit LED3 = P02; /洗涤指示灯sbit LED4 = P03; /脱水指示灯sbit LED5 = P04; /进水阀指示灯sbit LED6 = P05; /排水阀指示灯sbit LED7 = P06; /水位满指示灯sbit LED8 = P07; /机盖松指示灯sbit LED9 = P27; /报警指示灯sbit L

26、S138A = P22; /数码管片选sbit LS138B = P23;sbit LS138C = P24;sbit BEEP = P26; /蜂鸣器报警sbit PWM = P25; /直流电动机/共阴数码管 0-9 - unsigned int code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;unsigned int i=0,LedNumVal=0; /数码管计时 0-9 选择unsigned int lednum = 0;/定时器0 数码管计时速率调控变量unsigned int LedOut

27、3; /数码管计时存储区unsigned char key_s,key_v; /按键扫描变量static unsigned int m = 0; /启动、暂停键计数变量static unsigned int movenum = 0; /暂停功能变量/*/unsigned char scan_key() /启动/暂停键;洗涤/脱水键扫描unsigned char Key_s;Key_s = 0x00;Key_s |= key_wash_dehydration;Key_s 0; a-) for(b = 200; b 0; b-);/*/void delayms( unsigned char ms)

28、/按键消抖延时子程序 unsigned char k;while(ms-)for(k = 0; k 120; k+);/*/void beep()unsigned int n = 0;BEEP = 1;LED9 = 1;for(; n6;n+) BEEP = 0;LED9 = 0; delayms(3000); BEEP = 1;LED9 = 1; delayms(1000); /*/void led_display_zero() /数码管清零并直流电动机停止 蜂鸣器响三下 beep();PWM = 1;while(1) unsigned int i = 0; unsigned int Led

29、NumVal = 0; PWM = 1; if(key_wash_dehydration =0)/洗涤后脱水按下键跳出 LED3 =1;LED4 =0;LED6 =0;break; LedOut0=Disp_TabLedNumVal%1000/100|0x80; /百位带小数点 LedOut1=Disp_TabLedNumVal%100/10; /十位 LedOut2=Disp_TabLedNumVal%10; /个位 for( i=0; i3; i+) P1= LedOuti; switch(i) case 0:LS138A=1; LS138B=0; LS138C=0; break; cas

30、e 1:LS138A=0; LS138B=1; LS138C=0; break; case 2:LS138A=0; LS138B=0; LS138C=1; break;default:break; delay(10); P1 = 0x00; /*/void led_display_over() /数码管清零并直流电动机停止 蜂鸣器响三下 beep();PWM = 1;while(1) unsigned int i = 0; unsigned int Led = 0; LED1 = 1; /启动指示灯 LED2 = 1; /暂停指示灯 LED3 = 1; /洗涤指示灯 LED4 = 1; /脱水

31、指示灯 LED5 = 1; /进水阀指示灯 LED6 = 1; /排水阀指示灯 LED7 = 1; /水位满指示灯 LED8 = 1; /机盖松指示灯 LED9 = 1; /出水阀指示灯 if(key_move_stop =0)/脱水后按下键跳出 LED1 = 0; /启动指示灯 LED2 = 1; /暂停指示灯 LED3 = 1; /洗涤指示灯 LED4 = 1; /脱水指示灯 LED5 = 0; /进水阀指示灯 LED6 = 1; /排水阀指示灯 LED7 = 1; /水位满指示灯 LED8 = 1; /机盖松指示灯 LED9 = 1; /报警指示灯 break; LedOut0=Disp

32、_TabLed%1000/100|0x80; /百位带小数点 LedOut1=Disp_TabLed%100/10; /十位 LedOut2=Disp_TabLed%10; /个位 for( i=0; i3; i+) P1= LedOuti; switch(i) case 0:LS138A=1; LS138B=0; LS138C=0; break; case 1:LS138A=0; LS138B=1; LS138C=0; break; case 2:LS138A=0; LS138B=0; LS138C=1; break;default:break; delay(10); P1 = 0x00;

33、/*/void cap_open() /数码管清零并直流电动机停止 蜂鸣器响三下 beep(); /需要复位跳出PWM = 1;while(1) unsigned int i = 0; unsigned int LedNum = 0; LedOut0=Disp_TabLedNum%1000/100|0x80; /百位带小数点 LedOut1=Disp_TabLedNum%100/10; /十位 LedOut2=Disp_TabLedNum%10; /个位 for( i=0; i3; i+) P1= LedOuti; switch(i) case 0:LS138A=1; LS138B=0; LS

34、138C=0; break; case 1:LS138A=0; LS138B=1; LS138C=0; break; case 2:LS138A=0; LS138B=0; LS138C=1; break;default:break; delay(10); P1 = 0x00; /*/void led_display_move() /数码管计时并直流电动机运转while(1) PWM = 0; if(LedNumVal = 101) /计时到100时自动清零并蜂鸣器响三下 LedNumVal = 0; TR0 = 0; break; if(key_move_stop =0) movenum+;i

35、f(movenum%2=1) LED1 = 1; /启动指示灯 LED2 = 0; /暂停指示灯 TR0 = 0; /关闭定时器0 else LED1 = 0;LED2 = 1;TR0 = 1; /开启定时器0 while(key_move_stop =0); /等待按键释放 LedOut0=Disp_TabLedNumVal%1000/100|0x80; /百位带小数点 LedOut1=Disp_TabLedNumVal%100/10; /十位 LedOut2=Disp_TabLedNumVal%10; /个位 for( i=0; i1)&(m%2=1) LED1 = 0; /启动指示灯 L

36、ED2 = 1; /暂停指示灯else LED1 = 1; /启动指示灯LED2 = 0; /暂停指示灯 TR0 = 0; /停止定时器工作 /*/void wash_dehydration_led()static unsigned int j = 0;j+;if(j%2 = 1) /启动并洗涤 LED1 = 0; /启动指示灯 LED2 = 1; /暂停指示灯 LED3 = 0; /洗涤指示灯 LED4 = 1; /脱水指示灯 LED5 = 1; /进水阀指示灯 LED6 = 1; /排水阀指示灯 LED7 = 1; /水位满指示灯 LED8 = 1; /机盖松指示灯 LED9 = 1; /报警指示灯led_display_move();led_display_zero(); else /启动并脱水

展开阅读全文
相关资源
猜你喜欢
相关搜索

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号