标题目录
- 💫51单片机全自动洗衣机proteus仿真设计
- 💫设计介绍
- 💫仿真图
- 电动机驱动模块电路设计
- 电源模块电路设计
- 控制按键
- 进水阀和排水阀控制继电器
- 💫程序设计
- main函数
- 💫设计报告
- 💫资料清单&&下载链接
- 网盘下载链接
💫51单片机全自动洗衣机proteus仿真设计
(程序+仿真+设计报告+讲解视频)
仿真原版本:proteus 7.8
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0025
💫设计介绍
1、按键功能:
(1)通过“K1”键步进改变“标准、经济、单独、排水”四种方式,执行相应的程序。对应指示灯亮。
(2)通过“K2”键步进改变“强洗、弱洗”两种方式,执行相应的程序,对应指示灯亮。
(3)通过“K3”键控制洗衣机运行、暂停和解除报警功能。
2、方式功能选择:
一般洗衣机的步骤为:洗涤,漂洗,脱水,当处于某种状态时,对应的指示灯以0.7S周期闪烁,当洗衣机在洗涤过程中,洗涤指示灯闪烁。
可以通过方式选择设定具体的运行过程。
(1)标准方式:进水—> 洗涤 —> 排水 —> 进水 —> 漂洗 —> 排水 —>进水 —> 漂洗—> 排水 —> 脱水。
(2)经济方式:进水 —> 洗涤 —> 排水 —> 进水 —> 漂洗 —> 排水 —> 脱水。
(3)单独方式:进水 —> 洗涤。
(4)排水方式:排水 —> 脱水。
(5)强洗即电动机转速快,弱洗即电动机转速慢。
3、整机功能:
(1)开机默认状态为标准方式、强洗。
(2)在洗涤和漂洗过程中,电动机正转一次,反转一次,连续运行。
(3)在进水和脱水过程中,相应的指示灯亮,继电器吸合。
(4)当执行某个步骤时,只有“K3”键有效,按下暂停,再按恢复运行。
💫仿真图
电动机驱动模块电路设计
电动机驱动采用LD298电动机驱动芯片,单片机P25、P24与L298的IN1、IN2分别对应相连,ENA直接接VCC,后面所加4个二极管VD3到VD6起连续作用。电动机驱动电路原理图如图二所示。
电源模块电路设计
电动机驱动芯片的电源VCC和VS之间通过0欧的电阻R20进行隔离后,对LD298进行供电。
控制按键
如图二所示,K3键接到单片机的外部中断0,通过中断实现运行、暂停、继续运行的控制功能,当K3键第一次按下时(num2=1)正常运行,当K3键第二次按下时(num2=2)暂停运行。
进水阀和排水阀控制继电器
如图二所示,单片机的P23用来控制排水阀继电器,P22用来控制进水阀继电器,P22和P23对应输出为0时对应的阀打开,输出为1时对应的阀关闭。
💫程序设计
main函数
void main()
{init();while(1){key(); //键扫描if((num1==0&&num==0)&&circle==1) //标准 强洗 {ledruoxi=1; //关闭弱洗LEDledpaishui=1; //关闭排水LEDledbiaozhun=0;//强标准LED亮 ledqiangxi=0; //强洗LED亮if(num2==1){qbiaozhun(); //强标准洗}if(num2>1) //K3键按下次数为2,暂停洗涤{; }circle=0;}if(num1==0&&num==1) //经济 强洗{ledruoxi=1; ledbiaozhun=1;ledqiangxi=0;ledjingji=0;if(num2==1){qjingji(); //强经济洗ledjingji=1;}circle=0;}if(num1==0&&num==2) //单独 强洗 {ledruoxi=1;ledjingji=1;ledqiangxi=0;leddandu=0;if(num2==1){qdandu(); //强单独洗leddandu=1;}circle=0;}if(num1==0&&num==3){ledruoxi=1; //排水 强洗leddandu=1;ledqiangxi=0;ledpaishui=0;if(num2==1){dpaishui(); //单排水ledpaishui=1;}circle=0;}if(num1==1&&num==0) //弱 标准{ledqiangxi=1;ledpaishui=1;ledruoxi=0;ledbiaozhun=0;if(num2==1){rbiaozhun(); //弱标准洗ledruoxi=1;}circle=0;}if(num1==1&&num==1) //弱经济{ledqiangxi=1;ledbiaozhun=1;ledruoxi=0;ledjingji=0;if(num2==1){rjingji(); //弱经济洗ledruoxi=1;ledjingji=1;}circle=0;}if(num1==1&&num==2){ledqiangxi=1;ledjingji=1;ledruoxi=0;leddandu=0;if(num2==1){rdandu(); //弱单独洗ledruoxi=1;leddandu=1;}circle=0;}if(num1==1&&num==3){ledqiangxi=1;leddandu=1;ledruoxi=0;ledpaishui=0;if(num2==1) //K3键{dpaishui(); //单排水ledpaishui=1;}circle=0;}num2=0;}
}