您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 的单片机全自动洗衣机设计方案(北理工)
个人收集整理资料,仅供交流学习,勿作商业用途全自动洗衣机课程设计基于51单片机,C语言实现。基本要求模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间洗衣程序可自定义,时间精度:秒)。洗衣时交替正、反转。扩展要求洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。设计用Preteus仿真:仿真图如下:个人收集整理资料,仅供交流学习,勿作商业用途个人收集整理资料,仅供交流学习,勿作商业用途C文件函数代码:#includereg51.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。x0。x--for(y=120。y0。y--。}//******************************////工作on处理子程序//********************************//voidon({TMOD=0x01。TH0=(65536-50000/256。TL0=(65536-50000%256。EA=1。ET0=1。TR0=1。P0=0xff。if(flag0==0in(。if(flag0==1xi(。if(flag0==2pao(。个人收集整理资料,仅供交流学习,勿作商业用途if(flag0==3xx(。if(flag0==4out(。}//*******************************////结束子程序//*********************************//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=5flag0=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((sec0&&(min==0&&(flag0==0//进水结束{switch(flag1{case1:flag0=1。xi(。break。case2:flag0=2。pao(。b
本文标题:的单片机全自动洗衣机设计方案(北理工)
链接地址:https://www.777doc.com/doc-2334261 .html