洗衣机人机界面的设计.doc_第1页
洗衣机人机界面的设计.doc_第2页
洗衣机人机界面的设计.doc_第3页
洗衣机人机界面的设计.doc_第4页
洗衣机人机界面的设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

广东石油化工学院单片机原理及应用技术课程设计题目:洗衣机人机界面的设计班级:电气专09-1团队: 8号队 成员:郑伟宁(队长)、冯超宇、孙政、曾建平学号:09033160142 090331601120903316012809033160139 2011年7月4日2011年7月8日目 录一、设计任务及团队分工说明3二、总体设计及需求分析4三、硬件选型及电路设计5四、软件设计6五、结论7六、设计心得8七、致谢9参考文献1014一、 设计任务及团队分工说明题目十二:洗衣机人机界面的设计 1.见下图,包括洗涤过程、脱水转速、温度的调节及程序切换、启动暂停等功能(20分)2.用2个7段LED数码管显示剩余洗涤时间。(30分) 3.设计一个“预约”键,用于定时启动洗衣机;(30分)4*.不同模式下的过程及转速组合例如,在棉普通方式下,过程包括洗涤、脱水;脱水转速为800,水温30度 ( 10 ) 。5. 其他功能(创新部分 10分)团队分工说明:总体设计及需求分析由团队所有人负责;硬件选型及电路设计由团队所有人分析负责;软件设计由团队所有人负;设计心得由冯超宇负责;结论由孙政负责;致谢由郑伟宁,曾建平负责。特别感谢余春辉提供技术支持。二、 总体设计及需求分析1. 设计总体思路:洗涤过程就是电机的正反转,脱水就是一个方向高速转,温度调节可以采用DS18B20检测水温,程序切换、启动、暂停以及预约都是键盘功能处理。从课程设计要求来看,要求实现电机的正传、反转、暂停,实际上没有电机给我们接上,这回要用四个LED灯的状态来表示 Y 开始系统初始化启动相关功能洗衣状态显示洗衣功能设置结束三、 硬件选型及电路设计1. 单片机(如图):本次设计使用单片机芯片AT89C51,AT89C51的工作特性:内含4KB的FLASH存储器擦写次数1000次;内含128字节的RAM;具有32根可编程I/O线;具有2个16位编程定时器;具有6个中断源,5个中断矢量,2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有1个数据指针DPTR;具有可编程3级程序锁定位;AT89C51的工作电源为5(10.2)V且典型值为5V;最高工作频率为24MHZ;AT89C51的编程程序频率为324MHZ,编程启动电流和电压分别为1mA、5或12V。2.keil软件介绍 keil软件是目前最流行开发MCS-51系列单片机的软件,这从近几年各仿真机厂商纷纷宣布全面支持keil即可看出。keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开放方案,通过一个集成开发环境将这些部分组成在一起. . 3. 总电路设计图: 四、 软件设计(1).keil软件介绍keil软件是目前最流行开发MCS-51系列单片机的软件,这从近几年各仿真机厂商纷纷宣布全面支持keil即可看出。keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开放方案,通过一个集成开发环境将这些部分组成在一起. 单片机应用系统的软件设计是系统设计中最基本而且工作量较大的任务。与系统机上操作系统支持下的纯软件不同,单片机的软件设计是在裸机的条件下进行的,而且随应用系统的不同而不同。在软件中一般需考虑以下几个方面:1)根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现场的保护和恢复,以及它们和主程序之间的信息交换方法。2)程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向下的方法。3)在进行程序设计时,先根据问题的定义描述出各个输入变量和输出变量之间的数学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编写。4)在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的机器码6。本设计中系统软件是采用C51编写的.在研制单片机应用系统时,汇编语言是一种常用的软件工具,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统。(2)程序设计:#include #define ucharunsigned char#defineuintunsigned int#defineEnable();EA=1;#defineDisable();EA=0;#defineBIAOZHUN0#defineJINGJI1#defineDANDU2#definePAISHUI3#defineQIANGXI0#defineRUOXI1#defineZanTing();ET0 = 0; ET1 = 0; Stop();#defineJiXu();ET0 = 1; ET1 = 1; sbitLED_BiaoZhun=P10;/标准程序显示灯sbitLED_JingJi=P11;/经济程序显示灯sbitLED_DanDu=P12;/单独程序显示灯sbitLED_PaiShui=P13;/排水程序显示灯sbitLED_QiangXi=P14;/强洗状态灯sbitLED_RuoXi=P15;/弱洗状态灯sbitLED_XiDi=P16;/洗涤状态灯sbitLED_PiaoXi=P17;/漂洗状态灯sbitLED_TuoShui=P20;/脱水状态灯sbitK_SEL_ChengXu=P30;/选择程序键sbitK_SEL_QiangRuo=P31;/选择强弱键sbitp32=P32;/void Programme_PaiShui(void);ucharflag_SEL_ChengXu;/默认为标准程序,bitflag_SEl_QiangRuo;/默认为强洗,1为弱洗bitflag_Run;/运行标志,1为运行bitflag_JinShui;/进水标志,1为进水bitflag_PaiShui;/排水标志,1为排水bitflag_XiDi;/置洗涤标志bitflag_PiaoXi;/置漂洗标志void Delay_10ms(uint T1)uint t1,t2;for(t1=0;t1T1;t1+)for(t2=0;t21250;t2+);/10msvoid Pin_Init(void)LED_BiaoZhun=0;/默认为标准程序,灯亮 LED_JingJi=1;/经济程序显示灯,灭 LED_DanDu=1;/单独程序显示灯,灭 LED_PaiShui=1;/排水程序显示灯,灭 LED_QiangXi=0;/默认为强洗状态,灯亮 LED_RuoXi=1;/弱洗状态灯,灭 LED_XiDi=1;/洗涤状态灯,运行后灯亮 LED_PiaoXi=1;/漂洗状态灯,运行后灯亮 LED_TuoShui=1;/脱水状态灯,运行后灯亮void ExInt_Init(void)IT0=1;EX0=1;IT1=1;EX1=1;void Timer0_Init(void)TMOD =TMOD | 0X01;TH0=0X3C;TL0=0XB0;TR0= 1;void Timer1_Init(void)TMOD =TMOD | 0X10;TH1=0X3C;TL1=0XB0;void int0(void) interrupt 0if(!p32)Delay_10ms(1);if(!p32)if(!flag_Run)flag_Run = 1;static bit flag_ZanTing;flag_ZanTing = flag_ZanTing;if(flag_ZanTing)if(!flag_ZanTing)JiXu();void Timer0(void) interrupt 1TR0 = 0;/停止计数TH0 = 0X3C;/重装定时器值TL0 = 0XB0;TR0 = 1;void SEL_ChengXU(void)if(!K_SEL_ChengXu)/程序选择键Delay_10ms(1);/延时10ms左右,去抖动if(!K_SEL_ChengXu)while(!K_SEL_ChengXu);flag_SEL_ChengXu+;if(flag_SEL_ChengXu=4)flag_SEL_ChengXu = 0;switch(flag_SEL_ChengXu)case BIAOZHUN:LED_BiaoZhun= 0;/亮LED_JingJi= 1;/灭LED_DanDu= 1;/灭LED_PaiShui= 1;/灭break;case JINGJI:LED_BiaoZhun= 1;LED_JingJi= 0;LED_DanDu= 1;LED_PaiShui= 1;break;case DANDU:LED_BiaoZhun= 1;LED_JingJi= 1;LED_DanDu= 0;LED_PaiShui= 1;break;case PAISHUI :LED_BiaoZhun= 1;LED_JingJi= 1;LED_DanDu= 1;LED_PaiShui= 0;break;default:break; void SEL_QiangRuo(void)if(!K_SEL_QiangRuo)/强弱选择键Delay_10ms(1);/延时10ms左右,去抖动if(!K_SEL_QiangRuo)while(!K_SEL_QiangRuo);flag_SEl_QiangRuo = flag_SEl_QiangRuo;if(!flag_SEl_QiangRuo)LED_QiangXi= 0;/强洗状态,灯亮LED_RuoXi= 1;/弱洗状态灯,灭elseLED_QiangXi= 1;/强洗状态,灯亮LED_RuoXi= 0;/弱洗状态灯,灭void JinShui(void)TR1 = 0;TR0 = 0;TF0 = 0;void XiDi(void)flag_XiDi = 1;TR1 = 1;Timer0_Init();while(flag_XiDi);TR1 = 0;LED_XiDi = 1;void Programme_BiaoZhun(void)LED_XiDi= 0;/洗涤状态灯LED_PiaoXi= 0;/漂洗状态灯LED_TuoShui = 0;/脱水状态灯JinShui();XiDi();void Programme_JingJi(void)TR1 = 0;LED_XiDi= 0;/洗涤状态灯LED_PiaoXi= 0;/漂洗状态灯LED_TuoShui = 0;/脱水状态灯void Programme_DanDu(void)LED_XiDi= 0;/洗涤状态灯LED_PiaoXi= 1;/漂洗状态灯LED_TuoShui = 1;/脱水状态灯void Programme_PaiShui(void)LED_XiDi= 1;/洗涤状态灯LED_PiaoXi= 1;/漂洗状态灯LED_TuoShui = 0;/脱水状态灯void main()Pin_Init();/管脚初始化ExInt_Init();/外中断初始化Timer1_Init();ET0=1;ET1=1;Enable();/开总中断while(1)if(!flag_Run)/运行前按键才有效SEL_ChengXU();/程序选择程序SEL_QiangRuo();/强弱选择程序 if(flag_Run)switch(flag_SEL_ChengXu)case BIAOZHUN:Programme_BiaoZhun();/标准洗衣程序break;case JINGJI:Programme_JingJi();/经济洗衣程序break;case DANDU:Programme_DanDu();/单独洗衣程序break;case PAISHUI :Programme_PaiShui();/排水洗衣程序break;default:break; flag_Run = 0;五、结论本设计以MCS-51单片机为核心,设计洗衣过程主要包括洗涤过程、漂洗过程、脱水过程。根据洗衣过程的要求,控制程序设计主要包括主程序、内部定时中断服务程序、外部服务中断程序的设计。本设计侧重于软件的设计,采用C语言编程,通过程序实现洗衣机的自动完成注水、洗涤、漂洗、和脱水全过程。用数码管来显示洗衣各功能的剩余时间以及实时所处的洗衣状态。本设计已基本实现洗衣机的各种功能,但是由于自身水平有限等原因,本设计中没有设计不同模式下的过程及转速组合,所以本设计还存在一些不足,有待改进。六、设计心得经过了一周的课程设计,深有感触啊。我们组直到星期四晚才设计完成,其他组的同学有的在第一天就有做完的了,每天一直搞到凌晨那是家常便饭了,每天都在想这个问题该如何解决,那个地方有什么不对;大家都急啊,千呼万唤经过近5 天出来了,第二天,赶快去进行仿真,吃饭也宿舍,吃完就直接去调试,这么个小事就搞得大家这样,可以想象搞开发是如何的不容易了,工作更是不简单,生活不是我们在寝室里所想象的那样,首先自己的事情主要还是靠自己,虽然合作也同样重要,有一个好的合作伙伴也是不容忽视的,现在的很多工程、项目或者开发都是一个团体共同努力,每一个成员都要用功,一个项目或课题决定在一个人手里,那是不健康的、没有什么更好的前途的,从本次课程设计的目的来看,收获也是不少的,它使我们对课本以及以前学过的知识有了一个更好的总结与理解,也让我们知道了,光分开使不够的,从外面学到的知识要把形成一各整体,这也很好的训练了外面对开发一个项目应该有怎样的思路和准备更清晰。来学校两年多了,无论是从C语言课程设计到金工实习,还是到现在的单片机的课程设计,每一次自己都觉得有一个进步,虽然有些方面自己做不出,但可以从老师和其他同学那里学到更好更多的东西,他们从另一个方面透析了自己的困难,这是很重要的,它让我学会了怎样学习别人的长处并把它变成自己的长处。有这样的机会和收获,要感谢老师的辅导以及同学的帮助,是他们让自己有了一个更好的认识。 经过一个星期的课程设计,我们小组的每一个成员都收获了许多。刚开始时,我们接到这个任务,大脑一片茫然,根本不知道如何下手。因为基础知识不够扎实,对各种硬件和程序的认识存在各方面的不足。前期这些障碍给我们造成了很大的困难。我们从最初开始,通过查找各种书籍,上网查阅相关知识,加入各种单片机Q群向网友们请教。最终才得已完成这份设计。用isis及keil uVisiion4软件进行仿真分析。首先要搞清楚步进电机的工作原理,与外部电路的连接,单片机原理,汇编语言等。电路图设计出来后,总是存在各种的问题,我们总是不停地修改

温馨提示

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

评论

0/150

提交评论