




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..全自动洗衣机课程设计基于51单片机,C语言实现。根本要求模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态〔进水、浸泡、洗衣、脱水、完毕〕。显示工作剩余时间〔洗衣程序可自定义,时间精度:秒〕。洗衣时交替正、反转。扩展要求洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。设计用Preteus仿真:仿真图如下:C文件函数代码:#include<reg51.h>//****************************//#defineucharunsignedchar#defineuintunsignedint//*******************************////***************************//sbitmo_r=P3^2; //电机右控制线sbitmo_l=P3^3; //电机左控制线//****************************//sbitkey_menu=P3^4;//菜单按键sbitkey_on=P3^5; //开场按键sbitkey_off=P3^6;// 完毕按键sbitkey_se=P3^7; // 菜单项选择择按键//***************************//sbitled_in=P0^0; // 进水指示灯sbitled_xi=P0^1; //洗衣指示灯sbitled_pao=P0^2; // 泡洗指示灯sbitled_**=P0^3; //脱水指示灯sbitled_out=P0^4;//出水指示灯sbitled_over=P0^5;//洗衣完毕指示灯sbitled_work=P0^6;//电机工作指示灯sbitled_wring=P0^7; // 报警指示灯sbitother=P3^1; // 脱水电源控制开关sbitanther=P3^0; // 洗衣电源控制开关//******************************//ucharcodenum[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; ////*****************************//charsec=0; //时间秒charmin=0; //时间分ucharcount=0; //中断计数ucharflag0=0; //洗衣机工作状态标志ucharflag1=0; //进水次数标志ucharflag2=0; //出水次数标志ucharflag3=0; // 泡洗次数标志ucharerr=0; // 报警标志ucharquan=0;//正反转计数//**********************************//// 函数声明//*************************************//voiddelay();// 延时函数voidin(); // 进水子程序voidout(); // 出水子程序voidover();//完毕子程序voidxi(); // 洗衣子程序voidpao(); // 泡衣子程序void**();// 脱水子程序voidon();//工作on处理子程序voidse();//显示菜单项选择择voidSEG_display(); //显示时间子程序voidkey_scan();//按键扫描子程序//*****************************////延时函数//****************************//voiddelay(uinti){ uintx,y; for(x=i;x>0;x--) for(y=120;y>0;y--);}//******************************//// 工作on处理子程序//********************************//voidon(){ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; P0=0xff; if(flag0==0) in(); if(flag0==1) xi(); if(flag0==2) pao(); if(flag0==3) **(); if(flag0==4) out();}//*******************************//// 完毕子程序//*********************************//voidover(){ other=0; anther=0; P0=0xff; mo_r=0; mo_l=0; led_over=0; EA=0;}//*********************************//// 进水子程序//*********************************//voidin(){ anther=0; other=0; P0=0xff; led_in=0; flag1++; mo_r=0; mo_l=0; min=0; sec=8;}//*********************************//// 洗衣子程序//*********************************//voidxi(){ anther=1; other=0;P0=0xff; led_work=0; led_xi=0; mo_r=1; mo_l=0; min=1; sec=36; quan=0;}//*********************************//// 泡衣子程序//*********************************//voidpao(){ anther=1; other=0; P0=0xff; led_pao=0; led_work=0; flag3++; mo_r=1; mo_l=0; min=1; sec=35; quan=0;}//*********************************//// 脱水子程序//*********************************//void**(){ other=1; anther=0; P0=0xff; led_**=0; mo_r=0; mo_l=1; min=0; sec=50;}//*********************************//// 出水子程序//*********************************//voidout(){ anther=0; other=0; P0=0xff; led_out=0; flag2++; mo_r=0; mo_l=0; min=0; sec=5;}//*********************************//// 显示菜单项选择择//*********************************//voidse(){ P0=0xff; if(flag0>=5) flag0=0; if(flag0==0) { led_in=0; } if(flag0==1) { led_xi=0; } if(flag0==2) { led_pao=0; } if(flag0==3) { led_**=0; } if(flag0==4) { led_out=0; }}//********************************//// 菜单处理子程序//**********************************//voidmenu(){ 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(); } } }}//*********************************//// 按键扫描子程序//*********************************//voidkey_scan(){ if(key_menu==0) { delay(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(); } }}//*******************************//// 显示子程序//*********************************//voidSEG_display(){ P1=0x01; P2=num[min/10]; delay(10); P1=0x02; P2=num[min%10]; delay(10); P1=0x04; P2=num[sec/10]; delay(10); P1=0x08; P2=num[sec%10]; delay(10);}//*********************************////主函数//*********************************//voidmain(){ led_in=0; anther=0; other=0; while(1) { SEG_display(); key_scan(); }}//**********************************//// 定时器0中断处理程序//**********************************//voidtimer0()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;if(count==20) { count=0; sec--; if((flag0==1)||(flag0==2)) { quan++; switch(quan) { case1:mo_r=1;mo_l=0;break; case10:mo_r=0;mo_l=0;break; case15:mo_r=0;mo_l=1;break; case25:mo_r=0;mo_l=0;break; default:; } if(quan==30) { quan=0; } } //**********************************// if((sec==0)&&(min!=0)) { min--; sec=59; } //**********************************// if((sec<0)&&(min==0)&&(flag0==0)) //进水完毕 { switch(flag1) { case1:flag0=1;xi();break; case2:flag0=2;pao();break; case3:flag0=2;pao();break; case4:flag0=2;pao();break; default:err=1;led_wring=0; } } //**********************************// if((sec<0)&&(min==0)&&(flag0==1))//洗衣完毕 {
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新人教版三年级数学竞赛复习计划
- 小学语文四年级下册学习目标与计划
- 再婚夫妻离婚协议书
- 儿童阅读推广疫情期间工作计划
- 保证金质押担保协议
- 九年级班级道德与法治教育计划
- 专业医疗影像设备租赁合作协议
- 热力公司2025年产品多样化工作计划
- 分手补偿协议书分手协议
- 劳务派遣协议甲方
- 取消订单协议模板(5篇)
- 东风天锦5180勾臂式垃圾车的改装设计
- 浦发银行个人信用报告异议申请表
- 高考试卷命题设计的技巧 课件24张
- 施工进度计划网络图-练习题知识讲解
- 防孤岛测试报告
- 按摩常用英语
- 食品公司规章制度
- midas NFX使用指南(八)
- 成都高新区小学数学五年级下册半期考试数学试卷
- 2018年人教版九年级英语单词表
评论
0/150
提交评论