基于51单片机洗衣机课程设计报告_第1页
基于51单片机洗衣机课程设计报告_第2页
基于51单片机洗衣机课程设计报告_第3页
基于51单片机洗衣机课程设计报告_第4页
基于51单片机洗衣机课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及系统课程设计报告-7-附录1源程序#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_xx=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(); //泡衣子程序voidxx();//脱水子程序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) xx(); 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;}//*********脱水子程序********//voidxx(){ other=1; anther=0; P0=0xff; led_xx=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_xx=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))//洗衣结束 { flag0=4; out(); } //**********************************// if((sec<0)&&(min==0)&&(flag0==2))//泡衣结束 { switch(flag3) { case1:flag0=4;out();break; case2:flag0=4;out();break; case3:flag0=4;out();break; default:err=1;led_wring=0; } } //**********************************// if((sec<0)&&(min==0)&&(flag0==4)) //出水结束 { switch(flag2) {

温馨提示

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

评论

0/150

提交评论