基于单片机的智能洗衣机控制系统.doc_第1页
基于单片机的智能洗衣机控制系统.doc_第2页
基于单片机的智能洗衣机控制系统.doc_第3页
基于单片机的智能洗衣机控制系统.doc_第4页
基于单片机的智能洗衣机控制系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

芜湖职业技术学院毕 业 论 文题 目:基于单片机的智能洗衣机控制系统设计 院系名称: 专业班级: 学生姓名: 学 号: 指导教师: 2012 年 5 月 6 日摘要 本设计是利用89C51单片机微处理器来实现对智能洗衣机的控制,利用主程序选择按钮、启动按键和增减按键作为输入参数,通过Keil软件编程来控制电机旋转、LED数码管显示等主要动作。在实现具体的洗衣程序时通过洗涤和脱水子程序代码来完成整个过程的控制。本设计可以实现洗衣代码选择显示、洗衣倒计时显示、进水指示、排水指示、电机旋转等主要显示过程。关键词 89C51单片机 智能洗衣机 电机旋转 目 录第一章 绪论51.1 研究目的51.2研究意义61.3研究价值与应用6第二章 系统总体设计82.1功能需求分析82.2硬件设计方案82.3软件设计方案9第三章 硬件电路设计113.1 基于AT89C51单片机控制的智能洗衣机原理113.2 原理图的说明113.2.1.主芯片电路113.2.2.LED数码管显示电路123.2.3.按键电路部分123.2.4蜂鸣电路和电机控制电路133.2.5指示灯电路14第四章 系统软件设计154.1 Keil c51集成开发环境154.2 仿真软件Proteus介绍194.3 Keil与Proteus的在线联合仿真204.4 主程序设计及各子程序模块204.4.1.主程序204.4.2. INT0中断模块224.4.3. 进入待机状态224.4.4. 设置洗涤次数模块234.4.5 设置洗涤时间模块234.4.6.设置脱水时间模块244.4.7. 开始脱水模块254.4.8. 开始洗涤模块25第五章 系统调试275.1硬件调试275.2 程序加载285.3系统调试结果28结论30致 谢31参考文献32附录:33 第一章 绪论随着国民经济的发展,人民的生活水平不断提高,智能洗衣机作为人们从繁复的家务劳动中解放出来的好助手,越来越受到消费者的喜爱。通过对于基于单片机控制的智能洗衣机的研究我们可以更清晰,更实际的掌握单片机的一些基本的控制和应用。单片机在日常家电中的应用比较广泛,洗衣机智能控制系统就是一种以单片机为控制核心的系统,它把以往对洗衣机的繁琐的操作变得简单化,不但其机器性能显著提高,还增加了难以实现得功能,同时也提高了控制的精确度,硬件和软件相互配合实现洗衣机工作的智能化和自动化。因此对于智能洗衣机的研究一方面可以让我们对于所学的单片机和电路有关知识有个更好的理解和巩固,一方面也锻炼了自身的动手能力,特别是能够实现软硬连调所具备的能力。1.1 研究目的本文设计并实现了一种基于单片机的智能洗衣机控制系统。该设计方案电路简单、可靠性强、价格便宜。系统主要包括单片机控制电路、稳压电源电路、LED数码管显示电路、按键电路、蜂鸣电路和电机控制电路等。(1).培养学生运用所学的单片机方面的知识的能力,熟练应用AT89C51单片机,更进一步的理解单片机精华;(2).让单片机方面的知识能够在日常生活中得以更广泛的实践和运用;(3).让自己的理论在实践中得到体验,巩固和加强之前所学的知识,使之前模糊的和不明白的地方得到更深刻的理解。1.2研究意义 以单片机AT89C51为核心,数码管显示实现电动机的自动控制,减少手动控制,并且由于该系统的设计在应用中可以提高工作强度,可以让人们放心使用, 提高产品的安全性。由于其功能简单,设备要求性能不高,可移植性比较强,此外,洗衣机的各项功能都是由单片机控制实现的,单片机体积小,控制功能灵活,因此,设计出基于单片机的洗衣机智能控制系统具有很强的实用性,可以广泛使用。1.3研究价值与应用 基于单片机的洗衣机智能控制系统具有精度高、功能强。经济性好的特点。无论在提高产品数量,节约能源还是改善劳动条件等方面都显示出无比的优越性。对基于单片机的洗衣机智能洗衣机控制系统设计进行深入研究是我们掌握智能洗衣机这种重要家电的工作原理和控制系统,进一步了解单片机在不同领域的应用方法,学会单片机的洗衣机智能控制系统设计,同时也会为我们将来从事电子行业或在生活中得以运用打下一定基础,此外,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的智能洗衣机,使人们的生活更方便、舒适。智能洗衣机从结构上分有波轮式,搅拌式,滚筒式,目前,国内市场上销售的大都是波轮式和滚筒式。智能洗衣机是集洗涤,脱水于一体,并且能自动完成洗衣全过程的洗衣机,真正做到了它工作,您休息。智能洗衣机有各种洗涤程序,可供用户自由选择,工作时间可任意调节,工作状态及洗,脱时间在面板上都有显示,能自动处理脱水不平衡(具有各种故障和高低电压自动保护功能),工作结束或电源故障会自动断电,无需看管,确保安全。波轮式智能洗衣机的特点是洗净率高,但对衣服的磨损很大,随着人们生活水平的不断提高,丝绸,毛料等大步走进普通家庭,厂商又适时地推出了滚筒洗衣机,它最大的优点是磨损率小,但洗净率比波轮式低。如今,消费者已不满足于半自动洗衣机的洗涤方式,而改用智能洗衣机。第二章 系统总体设计 2.1功能需求分析能够实现基本功能,执行相应的按键操作,通过某个按键控制数码管显示相应的时间或次数,通过指示灯提示洗衣机进行到某个流程,蜂鸣器起提示和报警作用。具体实现功能如下:1. 具备数码管显示功能,并且能够实现信息的显示2. 能够对洗涤时间和次数显示3. 能够实现洗衣代码选择显示、洗衣倒计时显示、进水指示、排水指示、电机旋转等主要显示过程功能。4. 具备复位功能2.2硬件设计方案整个硬件系统主要包括如下几个部分:主控模块、按键控制模块、数码管显示模块、指示灯显示模块、电机控制和蜂鸣器模块。如图:数码管显示模块按键控制模块按键控制At89c51为主控芯片电机控制和蜂鸣器模块指示灯显示模块采用AT89C51单片机作为主控单元,对整个系统进行控制,按键控制模块起到开启,选择次数和时间,关闭整个系统作用;数码管显示模块起到显示系统的功能;指示灯模块起到显示系统的工作状态;电机控制和蜂鸣器起到洗衣和报警作用;通过按键作为系统的输入,当按下开关按钮时,其对应的指示灯亮,选择适当的时间和次数,电动机工作,数码显示其对应的工作状态和时间或次数。2.3软件设计方案单片机C51语言兼备高级语言与低级语言的优点。语法结构和标准C语言基本一致,语言简洁,便于学习。运行于单片机平台,支持的微处理器种类繁多,可移植性好。对于兼容的8051系列单片机,只要将一个硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同型号的单片机中运行。具有高级语言的特点,尽量减少底层硬件寄存器的操作。单片机C51语言提供了完备的数据类型、运算符及函数。C51语言是一种结构化程序设计语言,可以使用一对花括号“”将一系列语句组合成一个复合语句,程序结构清晰明了。C51语言代码执行的效率方面十分接近汇编语言,且比汇编语言的程序易于理解,便于代码共享。在本设计中,鉴于C51 语言的优势,本文的软件部分设计采用单片机C51语言编写程序。我们用Keil c51软件对设计中的程序进行调试。用Protel软件对原理图进行绘制,用Proteus和Keil c51共同完成本设计的仿真。 第三章 硬件电路设计 3.1 基于AT89C51单片机控制的智能洗衣机原理控制板电路使用AT89C51芯片,时钟电路采用6MH晶振。输入信号有:设置洗涤次数,洗衣时间和脱水时间。输出信号包括:一个8位LED数码管动态显示(洗衣或脱水剩余时间)和蜂鸣器鸣叫、进排水、电机旋转信号。其中+5V电压由线性稳压电源得到。3.2 原理图的说明3.2.1.主芯片电路主芯片电路如图3-1所示,控制电路采用AT89C51芯片,时钟电路采用6HZ晶振,主芯片左边部分电路即为晶振和复位电路。作为控制中心的单片机,在进入工作之前应预先清零复位,给单片机初始化,以清除由于某种原因引起内部程序紊乱的状态。在系统控制电路中,复位电路是靠电容充放电完成的。图 3-1主芯片及晶振和复位电路3.2.2.LED数码管显示电路如图3-2所示,输出口P1.0-P1.7控制8位LED数码管显示电路。它可用来显示时间(即洗衣时间、脱水时间、洗衣剩余时间和脱水剩余时间);显示主程序控制过程(即洗涤时间设置、洗涤次数设置、脱水时间设置等)。 图3-2LED数码管显示电路3.2.3.按键电路部分按键主控开关,如图3-3所示,为主程序控制选择键,当洗衣机接通电源后,处于待机状态(SET=0),数码管显示A,按下按键主控开关(SET=1),LED数码管显示为b,按下加时间或次数或减时间或次数设置洗涤次数;再按下主控开关(SET=2),LED数码管显示为C,设置洗涤时间;再次按下主控开关(SET=3),LED数码管显示为d,设置脱水时间;最后按下主控开关(SET=4),LED数码管显示为F,表示等待洗涤。此时按下按键S1,洗衣机开始工作。若只进行脱水工作,再按下主控开关(SET=5),进入脱水流程。洗衣机工作结束后,再按下启动开关,进入待机状态。 图3-3控制电路中的按键3.2.4蜂鸣电路和电机控制电路蜂鸣器在洗衣机中起提示和报警作用。P2.7口输出电机控制信号,由继电器触发电路完成电机的驱动。另外电机电源接220V交流电。如图3-4所示:图3-4蜂鸣电路和电机控制电路3.2.5指示灯电路指示灯电路在洗衣全过程中起提示洗衣机进行到某个流程的作用。图3-5指示灯电路第四章 系统软件设计在本设计中,我们用Keil c51软件对设计中的程序进行调试。用Protel软件对原理图进行绘制,用Proteus和Keil c51共同完成本设计的仿真。4.1 Keil c51集成开发环境随着单片机的不断发展,以C为主流的单片机高级语言也不断被更多的单片机爱好者和工程师所喜爱。使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持PLM,汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。Keil的使用方法如下:(1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图4-1。接着弹出一个标准Windows文件对话窗口,如图4-2,在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”。“保存”后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后可以直接点击此文件以打开先前做的项目。图4-1 Project 菜单图4-2 New Project 菜单(2)首先在项目中创建新的程序文件或加入旧程序文件。如果您没有现成的程序,那么就要新建一个程序文件。这里采用Hello World!串行通讯程序。图4-3 选取芯片 图4-4 新建程序文件(3)点击图4-3中的3保存新建的程序,也可以用菜单FileSave或快捷键Ctrl+S进行保存。因是新文件所以保存时会弹出类似图4-4的文件操作窗口,把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。如图4-5鼠标在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。选“Add File to Group Source Group 1”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。图4-5 把文件加入到项目文件组中(4)C程序文件已被加到了项目中了,下面就剩下编译运行了。这个项目只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件。先看图4-6,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译链接当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5是菜单中的它们。在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是开启关闭调试模式的按钮,它也存在于菜单DebugStartStop Debug Session,快捷键为Ctrl+F5。图4-6 编译程序(5)进入调试模式,软件窗口样式大致如图4-7所示。图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。按4可以打开5中的串行调试窗口,这个窗口可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。这些在菜单中也有。首先按4打开串行调试窗口,再按运行键,这时就可以看到串行调试窗口中不断的打印“HelloWorld!”。最后要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调试模式按钮。然后就可以进行关闭KEIL 等相关操作了。图4-7 调试模式窗口4.2 仿真软件Proteus介绍 在学习、开发单片机系统时,常常需要硬件仿真设备,用于加快学习和开发的进度,但此设备对单片机数量、种类和固定外围电路有所限制,并且价格较贵。而联合运用仿真软件Proteus和单片机开发软件环境Keil uVision构建单片机虚拟实验室,在没有硬件实物的环境下虚拟建立了一个硬件仿真平台,大大扩充实验灵活性,为单片机的学习、开发提供了一种十分方便有效的平台。Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者,从事单片机教学的教师,致力于单片机开发应用的科技工作者的青睐。Proteus可提供的仿真元器件资源:仿真数字和模拟,交流和直流等数千种元器件,有30多个元件库。Proteus可提供的仿真仪表资源:示波器,逻辑分析仪,虚拟终端,SPI调试器,I2C调试器,信号发生器,模式发生器,交直流电压表,交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗,极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 4.3 Keil与Proteus的在线联合仿真Keil与Proteus在各自的环境下都可以进行一定程度仿真调试。然而,Keil只能对程序进行调试,不能看到硬件的运行结果,因此并不直观;而Proteus软件在对单片机系统进行仿真调试的时候只能对硬件做出改动,不能直观的了解程序运行的情况,难以对程序中存在的不足和错误进行修改。如果能把这两者结合起来,同时观察程序的运行情况和当时硬件系统所处的状态,则可以方便地找出系统设计中存在的软、硬件错误。根据Proteus软件的官方文档,在单片机仿真模型中包含了专门的代码,可以联合Keil uVision集成开发环境,提供源代码级的仿真调试,即在Keil中调试、运行程序,而将硬件输入输出结果显示在Proteus中,两者可以进行无缝联合仿真。4.4 主程序设计及各子程序模块4.4.1.主程序 主程序的工作过程为:先进行初始化工作,随后根据输入的键值分别散转至对应的子程序(待机、设置洗涤次数、设置洗涤时间、设置脱水时间、等待洗涤、等待脱水)。洗衣机开始工作。INT0外中断服务子函数用于实现功能选择。主程序流程图如图4-8所示:图4-8 主程序流程图主程序如下:#include at89x51.h#define char unsigned char #define int unsigned intchar code DATA_7SEG10=0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F,; /*段码*/char set=0; /*功能键值*/int m=1; /*全局变量,洗涤次数*/int t1=8; /*洗涤时间*/int t2=3; /*脱水时间*/main() EA=1;EX0=1;while(1) /*无限循环*/switch(set) /*根据Set标志散转*/case 0:stop();break; /*待机*/case 1:times();break; /*设置洗衣次数*/ case 2:run_time();break; /*设置洗衣时间*/ case 3:last_time();break; /*设置脱水时间*/ case 4:begin_x();break; /*开始洗衣*/ case 5:begin_t();break /*开始脱水*/ default:break; 上述主程序调用的子程序见附录1。4.4.2. INT0中断模块按一下SET键,给INT0一个外部中断,当SET值大于5时,值重新置0。中断子函数见附录1。中断子程序流程图如下所示: 图4-9 INT0外部中断子程序流程图4.4.3. 进入待机状态 当SET键值为0时,进入待机状态。void stop() P0_1=1; /*D2点亮*/ P1=0x77; /*数码管显示A */delay(1); /*进入节电待机状态*/delay(1);4.4.4. 设置洗涤次数模块当SET键值为1时,设置洗涤次数子程序,如果使用者不设置则默认为1次(开始定义变量m=1)。void times() P0=0xff; P0_2=0; /*D3点亮*/ P1=0x7c; /*数码管显示b,设置洗衣次数*/while(1) if(P2_1=0)delay(10);/*按下UP键数码管作0-9递增显示*/if(P2_1=0)m+;if(m=6)m=10;P1=DATA_7SEGm;delay(300); if(P2_2=0)delay(10);if(P2_2=0)m-;if(m0)m=9;P1=DATA_7SEGm;delay(300); if(set!=1)break; 4.4.5 设置洗涤时间模块当SET键值为2时,设置洗涤时间子程序,如果使用者不设置则默认为8(开始定义变量t1=8)。void run_time() P0=0xff; P0_3=0; /*D4点亮*/ P1=0x39; /*数码管显示C*/while(1) if(P2_1=0)delay(10); /*按下UP键数码管作0-9递增显示*/ if(P2_1=0)t1+;if(t1=10)t1=0;P1=DATA_7SEGt1;delay(300); if(P2_2=0)delay(10); if(P2_2=0)t1-;if(t10)t1=9;P1=DATA_7SEGt1;delay(300); if(set!=2)break; 4.4.6.设置脱水时间模块当SET键值为3时,设置脱水时间子程序,如果使用者不设置则默认为3(开始定义变量t2=3)。void last_time() P0=0xff; P0_4=0; /*D5点亮*/ P1=0x5e; /*数码管显示d*/while(1) if(P2_1=0)delay(10); /*按下UP键数码管作0-9递增显示*/ 4.4.7. 开始脱水模块当SET键为5时, D6点亮,数码管显示E,电机转动开始脱水,脱水时间倒计时,若不为0,指示灯灭,电机停转,脱水后洗衣结束,蜂鸣器提醒。反之为0,则重新待机,进入循环,电机转动,开始脱水。脱水子程序流程图如下:图4-10开始脱水子程序流程图 4.4.8. 开始洗涤模块当SET键为4时,开始洗衣。按下S1键,开始进水,若P0.6不为1,停止进水,电机转动,开始洗涤,进入洗衣倒计时,反之则重新回到开始进水状态。当洗衣倒计时结束,此时若P2.7不为0,则电机停转,开始出水,反之则进入洗涤状态。洗涤次数和洗涤时间、脱水时间可以设置也可以使用默认值。洗涤子程序流程图如下:图4-11 开始洗涤子程序流程图 第五章 系统调试 5.1硬件调试单片机应用系统的硬件和软件调试是交叉进行的,但通常是先排除样机中明显的硬件故障,尤其是电源故障,然后才能安全地和仿真机相连,进行综合调试。在没有烧写程序的情况下,对电路中每个结点连接是否完好以及元器件的连接进行检测。如果完好,则进行各单元电路的检测。系统整体硬件电路如下图5-1所示:图5-15.2 程序加载双击AT89C51单片机,打开如图5-2所示的对话框: 图5-2程序加载对话框单击Program File后面的文件夹浏览按钮,弹出Select file name对话框,选择目标文件.hex,点击打开按钮即可加载成功。5.3系统调试结果(1)如图5-3所示,为洗衣机的洗涤过程,LED数码显示为洗涤剩余时间。图5-3洗衣机的洗涤过程仿真(2)如图5-4所示,LED数码显示为洗衣机的脱水过程,D7灯亮表示洗衣机排水过程。图5-4洗衣机的脱水过程仿真(3)如图5-5所示,为洗衣机洗涤结束,蜂鸣器发声结束后的仿真过程。图5-5 洗衣机洗涤过程结束显示结论在本次设计中利用AT89C51单片机作为主控芯片,P1口为输入端口,P2,P0口为输出端口,通过调用洗涤、脱水代码子程序来完成全部的正常控制过程。智能洗衣机实现了从进水到脱水的全部洗衣过程,极大地增强了洗衣机的功能。如若在本系统中加入模糊控制,可以判断衣物的质量,衣物是否被洗干净等等情况,将能更大程度的提高洗衣机的智能化。取得以下几点成果:1. 对Proteus仿真软件有一定的了解,能熟练掌握仿真软件的使用。2. 对单片机有了深入的了解,对今后的学习有更多的帮助。3. 在实际项目中,如何选择用例、确定对象等做了一次尝试和分析。4. 完成了智能洗衣机的控制系统,符合用户的需求。通过这次的毕业论文设计使我学习了很多以前不知道的东西,也对单片机这门课有了进一步的了解。但是由于时间的仓促以及对单片机学习的不是很好,很多功能还没有完善,希望在以后的时间里多看一些有关单片机方面的书籍,以弥补很多不知道的知识。致 谢 走的最快的总是时间,来不及感叹,大学生活已近尾声,三年多的努力与付出,随着本次设计和论文的完成,将要划下完美的句号。 从课题选择到具体的写作过程,无不凝聚着老师的心血和汗水。老师要指导很多同学的设计和论文,加上本来就有的教学任务和科研项目,工作量之大可想而知,他还在百忙之中抽出大量的时间来指导我们。他循循善诱的教导和不拘一格的思路给予我无尽的启迪,他渊博的专业知识,精益求精的工作作风,严以律己、宽以待人的崇高风范,将一直是我工作、学习中的榜样。在我的毕业设计和论文写作期间,老师为我提供了种种专业知识上的指导和一些富于创造性的建议,没有这样的帮助和关怀,我不会这么顺利的完成毕业设计和论文。在此仅向杨会伟老师表示衷心的感谢和崇高的敬意。 同时,设计和论文的顺利完成,离不开其他各位老师、同学和朋友的关心和帮助。在整个的设计和论文写作中,各位老师、同学和朋友积极的帮助我查资料和提供有利于论文写作的建议和意见,在他们的帮助下,设计和论文得以不断的完善,最终帮助我完美的完成了设计和论文。 最后,也是最重要的,我要感谢我的父母,因为没有他们,就没有现在站在这里的我,是他们给予我生命,给予我上大学的机会,是他们创就今天的我。对于你们,我充满无限的感激。 谢谢大家! 参考文献1 闫玉德 俞虹,MCS-51单片机原理与应用,机械工业出版社2 周鸣争 钱峰,微机原理与接口技术,电子科技大学出版社,3 谭浩强 C程序设计(第三版),清华大学出版社4 郭天祥 编 新概念51单片机C语言教程-入门、提高、开发、拓展全攻略,电子工业出版社5徐玮.C51单片机高效入门M.第1版.北京:机械工业出版社,2002.6赵晓安.MCS-51单片机原理及应用M.天津:天津大学出版社,2001.3.7李广第.单片机基础M.第1版.北京:北京航空航天大学出版社,1999.8徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:北京邮电大学出版社,1996.9张靖武、周灵彬.单片机系统的PROTEUS设计与仿真M.第1版.北京:电子工业出版社,2001.10钱逸秋.单片机原理与应用M.北京:电子工业出版社,2001.附录: 程序清单1)延时子程序void delay(uint k) /*1ms*k延时子程序*/ uint i,j; for(i=0;ik;i+) for(j=0;j5)set=0; again:if(P3_2=0) goto again;3)待机子程序void stop() P0_1=0; /*D2点亮*/ P1=0x77; /*数码管显示A */delay(1); /*进入节电待机状态*/delay(1);4)设置洗涤次数子程序void times() P0=0xff; P0_2=0; /*D3点亮*/ P1=0x7c; /*数码管显示b,设置洗衣次数*/while(1) if(P2_1=0)delay(10); /*按下UP键数码管作0-9递增显示*/ if(P2_1=0)m+;if(m=6)m=0;P1=DATA_7SEGm;delay(300); if(P2_2=0)delay(10); if(P2_2=0)m-;if(m0)m=9;P1=DATA_7SEGm;delay(300); if(set!=1)break; 5)设置洗涤时间子程序void run_time() P0=0xff; P0_3=0; /*D4点亮*/ P1=0x39; /*数码管显示C*/while(1) if(P2_1=0)delay(10); /*按下UP键数码管作0-9递增显示*/ if(P2_1=0)t1+;if(t1=10)t1=0;P1=DATA_7SEGt1;delay(300); if(P2_2=0)delay(10); if(P2_2=0)t1-;if(t10)t1=9;P1=DATA_7SEGt1;delay(300); if(set!=2)break; 6)设置脱水时间子程序void last_time() P0=0xff; P0_4=0; /*D5点亮*/ P1=0x5e; /*数码管显示d*/while(1) if(P2_1=0)delay(10); /*按下UP键数码管作0-9递增显示*/ if(P2_1=0)t2+;if(t2=10)t2=0;P1=DATA_7SEGt2;delay(300); if(P2_2=0)delay(10); if(P2_2=0)t2-;if(t20;m-) P2_5=0; /*开始进水*/ while(1) if(P0_6=1) break; P2_5=1; /*停止进水*/ P2_7=0; /*电机开始转*/ for(;t1=0;t1-) P1=DATA_7SEGt1; /*洗衣倒计时*/ delay(2000); /t1=k; P2_7=1; P2_6=0; /*开始出水*/ while(1) if(P0_6=1) break; P2_6=1; /*停止出水*/ P2_7=0; for(;t2=0;t2-) P1=DATA_7SEGt2; /*脱水倒计时*/ delay(2000); P2_7=1; if(m=0) /*判断洗涤次数*/ begin_t(); else P2_0=0if(set!=4)break; 8)脱水子程序void begin_t() int i; P0=0xff; P0_5=0; /*D6点亮*/ P1=0x79; /*数码管显示E,表示脱水*/ P2_7=0; for(;t2=0;t2-) P1=DATA_7SEGt2; delay(2000); P0=0xff; P1=0x00; P2_7=1; for(i=0;i5;i+) P2_3=1; /*蜂鸣器响*/ delay(1000); P2_3=0; delay(1000);P2_3=1; while(1) if(set!=5)break; 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿

温馨提示

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

评论

0/150

提交评论