洗衣机人机界面的设计

上传人:d**** 文档编号:138995117 上传时间:2022-08-22 格式:DOCX 页数:33 大小:437.51KB
收藏 版权申诉 举报 下载
洗衣机人机界面的设计_第1页
第1页 / 共33页
洗衣机人机界面的设计_第2页
第2页 / 共33页
洗衣机人机界面的设计_第3页
第3页 / 共33页
资源描述:

《洗衣机人机界面的设计》由会员分享,可在线阅读,更多相关《洗衣机人机界面的设计(33页珍藏版)》请在装配图网上搜索。

1、洗衣机人机界面的设计摘要:单片机是计算机家庭的一个重要分支,它具有体积小、价格低、面向控制的特点,适 用于各种工业控制、仪器仪表装置,在人类生产和生活的各个领域都有极为广泛应用。本洗衣机控制系统,采用目前常用的AT89C51单片机,用c语言的编程方法,完成 对洗衣机洗衣全过程的自动控制,并采用LED数码显示洗衣剩余时间。使全自动洗衣机的 使用更加简单、直观和方便。本设计取材容易,结构简洁,易于制作,具有一定的实用价 值。关键字:单片机、洗衣机、c语言目录引言1第一章绪论11.1功能概述11.2设计分析及方法论证1第二章基础知识介绍22.2 LED数码管模块52.3键盘模块7第三章 系统硬件电路

2、设计73.1主控制系统电路73.1.1时钟电路83.1.2复位电路93.2信号灯显示电路103.3数码管时间显示电路103.4独立式按键电路11第四章系统软件设计124.1 keil软件介绍124.2程序设计134.2.1主流程图134.2.3自动模式下的洗衣流程14第五章结论15附录:16参考文献31引言单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控 制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化 的心脏和大脑。由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电 器品种多,功能差异也大,所以又要求其控制器有灵活的控

3、制功能。单片机以微小的体 积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。第一章绪论1.1功能概述通电后,洗衣机进入暂停状态,以便放好衣物。若不选择洗衣周期,则洗衣机从进 水过程开始,进水过程完成后,自动进入洗涤,洗涤完成后进入漂洗模式:排水一进水 一漂洗,连续三次漂洗后进行脱水,脱水完成后洗衣机暂停工作。电机是一个正反转电 机,可以形成往返水流,有利于洗涤衣物。能够显示洗涤剩余时间,如果洗衣机出现故 障,将会有声光报警装置显示。1.2设计分析及方法论证洗涤过程实质就是使水与洗涤液的混合液与衣服之间有充分的行程冲刷,以使衣服 上的污垢得以清除,以达到洗衣的目的,因此,在设计洗衣

4、和漂洗过程中我们通过充分 讨论决定使用电机的正反转来实现水的充分搅拌。脱水以电机的快速转动产生的离心力 来实现,经过讨论和实际生活中的经验以及仿真的结果,以上方法完全可行。本设计用AT89C51单片机实现洗衣机的控制,通过对拨码开关和键盘的操作实现菜 单的选择,当选择好模式后进入该模式设置该模式下的参数,然后再次扫描键盘,按开 始键使洗衣机进入该模式进行工作。在P3.4为低电平是进入菜单选择,菜单选择模式下若P0.0为低电平则进入进水程 序,按开始键可进行进水,进水完成后自动进入洗衣程序;若P3.7为低电平检查P0.0、 p0.1、p0.2、p0.3、p0.4的电平,若为低则往下移一位,进入下

5、一个模式,按开始键 可从这一模式开始工作。在P3.4为高电平时不是菜单模式,则去扫描键盘,扫描键盘为进水,洗涤,漂洗, 排水,脱水模式,待选择好模式设定好参数后,然后进入相应模式运行。洗衣机进入自动开始洗衣时,包括进水、洗涤、排水、漂洗、脱水几个过程。洗衣过程:进入洗衣程序开定时器开始倒计时,根据选择的水位进水,进水完成后, 进入洗涤过程,电动机开始正反转过程根据所选模式中设置的正反转次数正反转的时间 自动洗衣;待洗涤完成就进入排水过程,排水时间由水位模式设置,排水结束后进入漂 洗过程。漂洗过程:先进行一段时间排水,排水结束再进水,进水完成再进行漂洗,漂 洗完成再排水,然后重复上述过程两次即完

6、成漂洗过程,漂洗完成进入脱水过程,电机 高速旋转,脱水结束,整个洗衣过程也结束,若在洗涤过程中洗衣机出现故障,将会有 声光报警装置报警。电机的正反转实现方式:当P3.2为1,P3.3为0时电机正转,当P3.2和P3.3都为 0时电机停转,当P3.2为0,P3.3为1时电机反转。电机正常工作时电机工作状态LED 灯亮。第二章基础知识介绍2.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器, 俗称单片机。AT89

7、C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制 造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉 的方案。2.1.1主要特性:与MCS-51兼容4K字节可编程闪烁存储器1 VCCw”| FCI.Q AU01134qi F.1 fAOl4SRj t wvFl * E.:5“J F.34I

8、S言*fir 鼻fqrAJ4HRST Cb”K心g J *忙 )-.1 FJV中炉(TACIS P3 1 弓Idj ALE/FHaainmr)ra i tITZ1 J P5EN :Zipi.* 1:42T:剃云 l|A14|lJfi e Htitn r:174%” J 4 A1 91MTA.L1 um P9-.3 (Ata:Pz T (加31p P2 &寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线AT89C51两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2.1.2

9、管脚说明:VCC:供电电压。GND:接地。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当P1 口 的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被 定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校 验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收输出 4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为 低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P

10、1 口作为 第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL门电流,当P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因 此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的高 八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行 读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八位 地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的

11、双向I/O 口,可接收输出4个TTL门电 流。当P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外 部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2/INT0 (外部中断0)P3.3/INT1 (外部中断1)P3.4T0 (记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR (外部数据存储器写选通)P3.7/RD (外部数据存储器读选通P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输

12、入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出 正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时 目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止 ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才 起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通

13、信号。在由外部程序存储器取指期间,每个机器周 期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管 是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高 电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。2.2 LED数码管模块LED数码管是由若十个发光二级管组成显示字段的显示器件,有七段和“米”字段

14、 之分。LED数码管有共阴极和共阳极两种,发光二极管的阳极接在一起的称为共阳极数 码管,阴极接在一起的称为共阴极数码管。一个数码管由8个发光二极管组成,其中, 7个发光二极管ag构成字型“8”的各个笔划,另一个dp发光二极管为小数点。当某段 发光二极管上施加一定的正向电压时,该段比划就亮;不加电压就暗。另外,为了保护 各段LED不被损坏,应该使其工作在安全电流下,故必须外加限流电阻。本系统使用两位共阴七段数码管,其引脚如下图所示:在实际应用中,LED数码管有静态显示和动态显示两种显示方式。静态显示方式,即七段LED数码管在显示某一个字符时,相应的段恒定的导通 或截止,直至换显其他字符为止。LE

15、D的静态显示虽然有编程容易、管理简单等优点,但是静态显示所要占的I/O 口资源很多,所以在显示的LED点较多的情况下,一般都采用动态显示方式,即在多 位七段LED显示中,将所有位的段选线并联在一起,由8个I/O 口来控制8个段。而 公共端(共阳极/共阴极)则分别由相应的I/O 口控制,以实现各个位的分时选通。 由于所有的段选线并联到同一个I/O,由这个I/O 口来控制,因此,若是所有的4位7段 LED都选通的话,4位7段LED将会显示相同的字符。要使各个位的7段LED显 示不同的字符,就必须采用动态扫描方法来轮流点亮每一位7段LED,即在每一瞬间 只选通一位7段LED进行显示单独的字符。在此段

16、点亮时间内,段选控制I/O 口输出 要显示的相应字符的段选码,而位选控制I/O 口则输出位选信号,向要显示的位送出选 通电平(共阴极则送出低电平,共阳极则送出高电平),使得该位显示相应字符。这样 将四位7段LED轮流去点亮,使得每位分时显示该位应显示的字符。由于人眼的视觉 暂留时间为0.1秒,当每位显示的间隔未超过33ms时,并在显示时保持直到下一位显 示,则由于人眼的视觉暂留效果眼睛看上去就像是4位7段LED都在点亮。设计时, 要注意每位显示的间隔时间,由于一位7段LED的熄灭时间不能超过100ms,也就是 说点亮其它位所用的时间不能超过100ms,这样当有N位的7段LED用来显示时,每 一

17、位间隔的时间t就必须符合下面的式子:tM100ms/(N-1)比如,现在使用2位,也就是N=2,则由式子可以算出t 100ms,就是每一位的 间隔时间不能超过50ms。实际应用中,时间可以设得短一些,比如5ms5。2.3键盘模块在单片机应用系统中,用户要向计算机输入数据和命令,这些任务主要由键盘来完 成。键盘由若十个按键按一定规则组合而成,根据按键的识别方法分类,可分为编码键 盘和非编码键盘,在单片机系统中多用非编码键盘。键盘中的按键都是一个常开开关电路,是利用机械触点来实现按键的闭合和释放。 由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信 号的抖动现象。键的抖动

18、时间一般为510ms。这种现象会引起单片机对于一次键操作 进行多次处理,因此须设法消除键接通或断时的抖动现象。去抖动的方法有硬件和软件 两种方法,本系统采用软件延时的方法来避开抖动阶段。采用软件去抖动的方法是在单片机检测到有键按下时执行一个510ms的延时程 序后再次检查该键电平是否仍保持闭合状态.如保持闭合状态,则确认为有键按下,否 则按无键按下处理。当检测到按键释放后,也同样要延时510ms,等待后沿抖动消失 后才能转入该键的处理程序,只有这样才能保证当按键一次时,CPU仅做一次相应处理。第三章系统硬件电路设计3.1主控制系统电路主控制器采用MCS51系列单片机AT89C51,是一款性能稳

19、定的8位单片机。 AT89C51单片机内部由CPU、8KB的Flash ROM、256B的RAM、4个8位的I/O并行 端口、一个串行口、三个16位定时/计数器及中断系统等组成。AT89C51外部需接时钟 电路和复位电路,单片机才能正常工作。此外,VCC引脚需接电源,GND引脚需接地, EA/VPP引脚需接上拉电阻连接到电源。整套电路系统由主控制系统电路、信号灯显示 电路、数码管时间显示电路和独立式键盘电路等组成。系统总电路图如下所示:R15zaiX:H.EE:P.h.l:k-SiSCTALIPOHADnPD.1MD1POUiADZ:7T.h.L2POaADl-POiADSFDjaH )hRS

20、TPD.T/ADTFZU.fEP2.1i.hSFZih.IQFE:EMPSJ.h.IIALE筋P2A13PSJS.A.UPS.TiHjf;p 1 nmvnxnP1.1Pl.irrxDP1.2P32iIH 1UpiaPzaMTTTp *1 *PT 4/TT1F估P3ST1p 1 jSPTijnnrP1.7F3.T/KTmo_X3.1.1时钟电路时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路 形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反 向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方 式时,电路简单

21、,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图3-1所 示。在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益 反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器 并产生振荡时钟脉冲8图3-1中,外接晶体以及电容C1和C2构成并联谐振电路,它 们起稳定振荡频率、快速起振的作用,其值为22pF,晶振频率约为12MHz。XXTAL2图3-1 MCS-51单片机内部高增益反向放大器3.1.2复位电路为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使 CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复

22、位是 靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的 高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位 状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF 内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电 时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统 采用上电复位方式。图3-2中R1和Cl组成上电复位电路,其值R取为8.2K。,C取为10p F。图3-2上电复位电路3.2信号灯显示电路P3 口外接6个发光二极管,米用共阳极接

23、法,相应口线输出高电平则“信号灯” 灭,相应口线输出低电平则“信号灯”亮。为了保护发光二极管不被损坏,应该使其工作 在安全电流下,故必须外加限流电阻,选用1k的电阻,如图3-3所示。.LJI CD dP01 LEDELLQW. .豚” .A图3-33.3数码管时间显示电路LED数码管通过P0和P2 口以共阴极接法连接,如图3-4所示,P0作字形口, 输出段码,故两个数码管的段码线对应并联在一起,由P0 口控制数码管的显示。P2 口 作字位口,输出位码。其中,P2.0P2.3分别控制两个数码管的个、十位显示,以实现 各位的分时选通。图3-43.4独立式按键电路AT89C51单片机的P3.4P3.

24、7 口分别接菜单、开始、停止、菜单选择按键,当菜单按键按下 时进入菜单选择模式,按菜单选择键进行洗衣机工作状态的选择。需按下“启动”键才能进入正常 工作,按下停止键,洗衣机工作停止,结束工作。第四章系统软件设计4.1 keil软件介绍keil软件是目前最流行开发MCS-51系列单片机的软件,这从近几年各仿真机厂商 纷纷宣布全面支持keil即可看出。keil提供了包括C编译器、宏汇编、连接器、库管 理和一个功能强大的仿真调试器等在内的完整开放方案,通过一个集成开发环境将这些 部分组成在一起.单片机应用系统的软件设计是系统设计中最基本而且工作量较大的 任务。与系统机上操作系统支持下的纯软件不同,单

25、片机的软件设计是在裸机的条件下 进行的,而且随应用系统的不同而不同。在软件中一般需考虑以下几个方面:1)根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件 的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程 序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停 地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现 场的保护和恢复,以及它们和主程序之间的信息交换方法。2)程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的 程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向

26、下的方法。3)在进行程序设计时,先根据问题的定义描述出各个输入变量和输出变量之间的数 学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编 写。4)在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的 机器码6。本设计中系统软件是采用C51编写的.在研制单片机应用系统时,汇编语言是一种 常用的软件工具,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率 高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编 写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩 充,从而开发出大规模、高性能的应用系

27、统。4.2程序设计4.2.1主流程图4.2.2电机正反转流程4.2.3自动模式下的洗衣流程开始进水漂洗进水洗涤脱水排水结束F进水第五章结论经过了一周的课程设计,深有感触。刚开始时,我们接到这个任务,大脑一片茫然, 根本不知道如何下手。用isis及keil uVisiion4软件进行仿真分析。首先要搞清楚洗衣 机的工作原理,与外部电路的连接,单片机原理,c语言等。因为基础知识不够扎实, 对各种硬件和程序的认识存在各方面的不足。前期这些障碍给我们造成了很大的困难。 我们从最初开始,通过查找各种书籍,上网查阅相关知识,向老师及同学请教,经过反 复的修改,最终才得已完成这份设计。虽然还存在各种的不足,

28、但是看着我们自己辛苦 设计出来的作业,心里还是充满了自豪。从本次课程设计的目的来看,收获也是不少的,它使我们对课本以及以前学过的知 识有了一个更好的总结与理解,也让我们知道了,光分开使不够的,从外面学到的知识 要把形成一各整体,这也很好的训练了外面对开发一个项目应该有怎样的思路和准备更 清晰。这次设计实验锻炼了我们的团队合作能力,加强了我们的动手能力,使我们从中 学到了很多知识。最后要感谢本次设计实验的指导老师,在老师的精心指导下,我们才最终突破一些 难以解决的问题,完成这次设计任务,同时还要感谢我的同组同学,在与他和合作中他 给了我很大的帮助,与他的讨论和交流给了自己很多有益的启迪,对自己掌

29、握学科知识、 完成设计任务和论文写作给予了很大帮助。同时,还要感谢学校为我们安排了这个教学 环节,也感谢在此次设计过程中给与我极大帮助和理解班主任和辅导员。附录:程序设计:#include#define uchar unsigned char#define uint unsigned intsbit mo_r = P3A2;电机右控制线sbit mo_l = P3A3;电机左控制线sbit key_menu = P3A4; / 菜单按键sbit key_on = P3A5;/ 开始按键sbit key_off = P3A6; / 结束按键sbit key_se = P3A7;/ 菜单选择按键s

30、bit led_in = PQAQ;/ 进水指示灯sbit led_xi = P0A1;/ 洗衣指示灯sbit led_piao = P0A2; /漂洗指示灯sbit led_xx = P0A3;/ 脱水指示灯sbit led_out = P0A4; / 排水指示灯sbit led_over = P0A5; /洗衣结束指示灯 sbit led_work = P0A6; /电机工作指示灯sbit led_wring = P0A7;/报警指示灯sbit other = P3A1;/脱水电源控制开关sbit anther = P3A0;/洗衣电源控制开关uchar code num16=0x3f,0

31、x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/char sec = 0;/时间秒char min = 0;/时间分uchar count=0;/中断计数uchar flag0=0;/洗衣机工作状态标志uchar flag1=0;/进水次数标志uchar flag2=0;/排水次数标志uchar flag3=0;/漂洗次数标志uchar err =0;/报警标志uchar quan = 0;/正反转计数/ 函数声明void delay();/延时函数void in(); /进水子程序void

32、out(); /排水子程序void over(); /结束子程序void xi();/洗衣子程序void piao();/ 漂衣子程序void xx(); /脱水子程序void on(); /工作on处理子程序void se(); /显示菜单选择void SEG_display();显示时间子程序void key_scan(); /按键扫描子程序/ 延时函数void delay(uint i)uint x,y;for(x=i;x0;x-)for(y=120;y0;y-);/ 工作on处理子程序void on()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536

33、-50000)%256;EA=1;ET0=1;TR0=1;P0 = 0xff;if(flag0 = 0)in();if(flag0 = 1)xi();if(flag0 = 2)piao();if(flag0 = 3) xx();if(flag0 = 4) out();/结束子程序void over() other=0;anther=0;P0 = 0xff;mo_r=0;mo_l=0;led_over = 0;EA=0;/进水子程序void in() anther=0;other=0;P0 = 0xff;led_in = 0;flag1+;mo_r = 0;mo_l = 0;min = 0;se

34、c = 8;/ 洗衣子程序void xi() anther=1;other=0;P0 = 0xff;led_work = 0;led_xi = 0;mo_r = 1;mo_l = 0;min = 6;sec = 36;quan = 0;/漂衣子程序void piao()anther=1;other=0;P0 = 0xff;led_piao = 0;led_work = 0;flag3+;mo_r = 1;mo_l = 0;min = 5;sec = 35;quan = 0;/ 脱水子程序void xx() other=1;anther=0;P0 = 0xff;led_xx = 0;mo_r =

35、 0;mo_l = 1;min = 2;sec = 50;/排水子程序void out() anther=0;other=0;P0 = 0xff;led_out = 0;flag2+;mo_r = 0;mo_l = 0;min = 1;sec = 5;/ 显示菜单选择void se()P0 = 0xff;if(flag0 = 5)flag0 = 0;if(flag0 = 0)led_in = 0;if(flag0 = 1)led_xi=0;if(flag0 = 2)led_piao=0;if(flag0 = 3)led_xx=0;if(flag0 = 4)led_out=0;/ 菜单处理子程序

36、void menu()min = 0;sec = 0;mo_r=0;mo_l=0;SEG_display();while(1)if(key_on = 0)delay(5);if(key_on = 0) while(!key_on);on();break;if(key_off = 0)delay(5);if(key_off = 0)while(!key_off);over();break;if(key_se = 0)delay(5);if(key_se = 0)while(!key_se);flag0+;se();/按键扫描子程序void key_scan()if(key_menu = 0)de

37、lay(5);if(key_menu = 0)while(!key_menu);menu();if(key_on = 0)delay(5);if(key_on = 0)while(!key_on);on();if(key_off = 0)delay(5);if(key_off = 0)while(!key_off);over();/ 显示子程序void SEG_display()P1=0x01;P2 = nummin/10;delay(10);P1 = 0x02;P2 = nummin%10;delay(10);P1=0x04;P2 = numsec/10;delay(10);P1 = 0x0

38、8;P2 = numsec%10;delay(10);/ 主函数void main()led_in=0;anther=0;other=0;while(1)SEG_display();key_scan();/ 定时器0中断处理程序void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count = 0;sec-;if(flag0=1)|(flag0=2)quan+;switch(quan)case 1:mo_r=1;mo_l=0;break;case 10:mo_r=0;mo

39、_l=0;break;case 15:mo_r=0;mo_l=1;break;case 25:mo_r=0;mo_l=0;break;default:;if(quan=30)quan=0;if(sec = 0)&(min != 0)min-;sec = 59;if(sec0)&(min=0)&(flag0=0)进水结束switch(flag1)case 1:flag0=1;xi();break;case 2:flag0=2;piao();break;case 3:flag0=2;piao();break;case 4:flag0=2;piao();break;default: err=1;le

40、d_wring = 0;if(sec0)&(min=0)&(flag0=1)洗衣结束flag0 = 4;out();if(sec0)&(min=0)&(flag0=2)漂衣结束switch(flag3)case 1:flag0=4;out();break;case 2:flag0=4;out();break;case 3:flag0=4;out();break;default: err=1;led_wring = 0;if(sec0)&(min=0)&(flag0=4)排水结束switch(flag2)case 1:flag0=0;in();break;case 2:flag0=0;in();break;case 3:flag0=0;in();break;case 4:flag0=3;xx();break;default: err= 1;led_wring = 0;if(sec0)&(min=0)&(flag0=3) sec = 0;over();参考文献1杨欣,王玉凤,刘湘琴编著51单片机应用从零开始.清华大学出版社李泉溪编著.单片机原理与应用实例仿真.北京航空航天出版社

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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