当前位置:文档之家› 洗衣机人机界面的设计(新)

洗衣机人机界面的设计(新)

洗衣机人机界面的设计摘要:单片机是计算机家庭的一个重要分支,它具有体积小、价格低、面向控制的特点,适用于各种工业控制、仪器仪表装置,在人类生产和生活的各个领域都有极为广泛应用。

本洗衣机控制系统,采用目前常用的AT89C51单片机,用c语言的编程方法,完成对洗衣机洗衣全过程的自动控制,并采用LED数码显示洗衣剩余时间。

使全自动洗衣机的使用更加简单、直观和方便。

本设计取材容易,结构简洁,易于制作,具有一定的实用价值。

关键字:AT89C51单片机、洗衣机、c语言目录引言 (1)第一章绪论 (1)1.1功能概述 (1)1.2设计分析及方法论证 (1)第二章基础知识介绍 (2)2.2 LED数码管模块 (5)2.3 键盘模块 (7)第三章系统硬件电路设计 (7)3.1 主控制系统电路 (7)3.1.1 时钟电路 (8)3.1.2 复位电路 (9)3.2 信号灯显示电路 (10)3.3 数码管时间显示电路 (10)3.4 独立式按键电路 (11)第四章系统软件设计 (12)4.1 keil软件介绍 (12)4.2 程序设计 (13)4.2.1 主流程图 (13)4.2.3 自动模式下的洗衣流程 (14)第五章结论 (15)附录: (16)参考文献 (30)引言单片机又称微控制器,或称嵌入式控制器。

而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。

它是家用电器实现智能化的心脏和大脑。

由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。

而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。

单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。

第一章绪论1.1功能概述通电后,洗衣机进入暂停状态,以便放好衣物。

若不选择洗衣周期,则洗衣机从进水过程开始,进水过程完成后,自动进入洗涤,洗涤完成后进入漂洗模式:排水—进水—漂洗,连续三次漂洗后进行脱水,脱水完成后洗衣机暂停工作。

电机是一个正反转电机,可以形成往返水流,有利于洗涤衣物。

能够显示洗涤剩余时间,如果洗衣机出现故障,将会有声光报警装置显示。

1.2设计分析及方法论证洗涤过程实质就是使水与洗涤液的混合液与衣服之间有充分的行程冲刷,以使衣服上的污垢得以清除,以达到洗衣的目的,因此,在设计洗衣和漂洗过程中我们通过充分讨论决定使用电机的正反转来实现水的充分搅拌。

脱水以电机的快速转动产生的离心力来实现,经过讨论和实际生活中的经验以及仿真的结果,以上方法完全可行。

本设计用AT89C51单片机实现洗衣机的控制,通过对拨码开关和键盘的操作实现菜单的选择,当选择好模式后进入该模式设置该模式下的参数,然后再次扫描键盘,按开始键使洗衣机进入该模式进行工作。

在P3.4为低电平是进入菜单选择,菜单选择模式下若P0.0为低电平则进入进水程序,按开始键可进行进水,进水完成后自动进入洗衣程序;若P3.7为低电平检查P0.0、p0.1、p0.2 、p0.3、p0.4的电平,若为低则往下移一位,进入下一个模式,按开始键可从这一模式开始工作。

在P3.4为高电平时不是菜单模式,则去扫描键盘,扫描键盘为进水,洗涤,漂洗,排水,脱水模式,待选择好模式设定好参数后,然后进入相应模式运行。

洗衣机进入自动开始洗衣时,包括进水、洗涤、排水、漂洗、脱水几个过程。

洗衣过程:进入洗衣程序开定时器开始倒计时,根据选择的水位进水,进水完成后,进入洗涤过程,电动机开始正反转过程根据所选模式中设置的正反转次数正反转的时间自动洗衣;待洗涤完成就进入排水过程,排水时间由水位模式设置,排水结束后进入漂洗过程。

漂洗过程:先进行一段时间排水,排水结束再进水,进水完成再进行漂洗,漂洗完成再排水,然后重复上述过程两次即完成漂洗过程,漂洗完成进入脱水过程,电机高速旋转,脱水结束,整个洗衣过程也结束,若在洗涤过程中洗衣机出现故障,将会有声光报警装置报警。

电机的正反转实现方式:当P3.2为1,P3.3为0时电机正转,当P3.2和P3.3都为0时电机停转,当P3.2为0,P3.3为1时电机反转。

电机正常工作时电机工作状态LED 灯亮。

第二章基础知识介绍2.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.1.1主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.1.2管脚说明: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编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

2.2 LED数码管模块LED数码管是由若干个发光二级管组成显示字段的显示器件,有七段和“米”字段之分。

LED数码管有共阴极和共阳极两种,发光二极管的阳极接在一起的称为共阳极数码管,阴极接在一起的称为共阴极数码管。

一个数码管由8个发光二极管组成,其中,7个发光二极管a~g构成字型“8”的各个笔划,另一个dp发光二极管为小数点。

当某段发光二极管上施加一定的正向电压时,该段比划就亮;不加电压就暗。

另外,为了保护各段LED不被损坏,应该使其工作在安全电流下,故必须外加限流电阻。

本系统使用两位共阴七段数码管,其引脚如下图所示:在实际应用中,LED数码管有静态显示和动态显示两种显示方式。

静态显示方式,即七段LED数码管在显示某一个字符时,相应的段恒定的导通或截止,直至换显其他字符为止。

LED 的静态显示虽然有编程容易、管理简单等优点,但是静态显示所要占的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 进行显示单独的字符。

在此段点亮时间内,段选控制I/O 口输出要显示的相应字符的段选码,而位选控制I/O 口则输出位选信号,向要显示的位送出选通电平(共阴极则送出低电平,共阳极则送出高电平),使得该位显示相应字符。

这样将四位7 段LED 轮流去点亮,使得每位分时显示该位应显示的字符。

由于人眼的视觉暂留时间为0.1 秒,当每位显示的间隔未超过33ms 时,并在显示时保持直到下一位显示,则由于人眼的视觉暂留效果眼睛看上去就像是4 位7 段LED 都在点亮。

设计时,要注意每位显示的间隔时间,由于一位7 段LED 的熄灭时间不能超过100ms,也就是说点亮其它位所用的时间不能超过100ms,这样当有N位的7 段LED 用来显示时,每一位间隔的时间t 就必须符合下面的式子:t≦100ms/(N-1)比如,现在使用2位,也就是N=2,则由式子可以算出t≦100ms,就是每一位的间隔时间不能超过50ms。

相关主题