找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4227|回复: 4
打印 上一主题 下一主题
收起左侧

单片机全自动洗衣机代码调试 Proteus仿真 原理图 文档

  [复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


学习电机驱动、继电器的原理及编程方法。
学习键盘的原理及编程方法。
掌握51单片机定时器与中断的使用。

主要技术指标和说明
● 由独立式按键确定功能键,包括“标准”、“经济”、“单独”、“排水”、“强洗”、“弱洗”等等;
● 排水与进水由时间控制;
● 开机默认状态为标准方式、强洗;
● 在洗涤和漂洗过程中,电动机正转一次,反转一次,连续运行;
● 在进水和脱水过程中,相应指示灯亮,继电器吸合;
● 当在执行某个步骤时,只有“K3”键有效,按下暂停,再按下恢复运行。

全自动洗衣机就是将洗衣的全过程(泡浸-洗涤-漂洗-脱水)预先设定好N个程序,洗衣时选择其中一个程序,打开水龙头和启动洗衣机开关后洗衣的全过程就会自动完成,洗衣完成时由蜂鸣器发出响声。洗衣机的标准洗衣程序是:洗涤——脱水——脱水——漂洗——脱水——漂洗——脱水。经济洗衣程序少一次漂洗和脱水过程。
洗衣机控制器由单片机作为控制器的核心所构成,该控制器具有以下特点:
(1)具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。
(2)采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。
(3)具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。
(4)具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原运行程序的工作状态并继续完成洗衣程序。
(5)各种操作和洗衣机的运行状态均用LED显示.
一、设计任务与要求
利用51单片机模拟全自动智能洗衣机。
  • 按键功能要求
  • 通过K1”键步进改变“标准]经济、单独、排水”四种方式,执行相应的程序。对应指示灯亮。
  • 通过K2”键步进改变“强洗、弱洗”两种方式,执行相应的程序,对应指示灯亮。
  • 通过“K3”键控制洗衣机运行、暂停和解除报警功能。
  • 方式功能选择要求
一般洗衣机的步骤为:洗涤,漂洗,脱水,当处于某种状态时,对应的指示灯以0.7S周期闪烁,当洗衣机在洗涤过程中,洗涤指示灯闪烁。可以通过方式选择设定具体的运行过程。
  • 标准方式:进水—> 洗涤 > 排水 > 进水 > 漂洗 > 排水 >进水 > 漂洗—> 排水 > 脱水。
  • 经济方式:进水 > 洗涤 > 排水 > 进水 > 漂洗 > 排水 > 脱水。
  • 单独方式:进水 > 洗涤。
  • 排水方式:排水 > 脱水。
  • 强洗即电动机转速快,弱洗即电动机转速慢。
  • 整机功能要求
  • 开机默认状态为标准方式、强洗。
  • 在洗涤和漂洗过程中,电动机正转一次,反转一次,连续运行。
  • 在进水和脱水过程中,相应的指示灯亮,继电器吸合。
  • 当执行某个步骤时,只有“K3”键有效,按下暂停,再按恢复运行。
  • 方案设计与论证
全自动洗衣机的实现方案组成框图如图一所示。它主要有电源、单片机最小系统、开关检测电路、控制按键输入电路和LED指示电路、继电器和电动机电路。
  • 硬件电路设计
图二
  • 电动机驱动模块电路设计
电动机驱动采用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时对应的阀关闭。
软件设计
1)流程图
主程序流程图如图三所示。
  • 程序
程序附在最后
图三
  • 调试与分析
1、软件调试:
写程序代码时应先搭建好硬件电路,然后根据硬件电路写程序代码。在调试程序过程中,先保证程序能够运行无错误,然后在烧到实物中观察结果。
2、硬件调试:
硬件电路设计与软件设计完成后,将程序烧写到单片机中,观察运行结果是否符合要求。如果不符合设计要求,应先检查硬件是否能正常工作,如用实验板自带的正确代码检测硬件电路;然后根据设计要求到程序代码中分模块进行调试,比如该设计需用到液晶、矩阵键盘、定时器、独立键盘、中断和LED灯等,如果测试过程中液晶模块不能正常显示或者显示乱码,应将液晶模块单独分离出来进行测试,其他模块亦是如此。程序调试完成后,应在硬件电路上反复运行,以确保程序和硬件电路的稳定性。
  • 总结
这次单片机程序设计,我感觉收获了很多,尤其是在提升自身的工作和自主学习能力方面。我在大二上学期就开始在实验室自学单片机,但是因为是自学,自觉性就很差,而且自学也是一件比较难的事,学习过程中一直都是学习和模仿别人的代码,看着别人写出来的程序代码,总觉得都能看懂,所以自己基本上没有自己构思写程序代码,
唯一做过一次全自动洗衣机也是看着别人写的源程序代码,不停的修修改改。
这次刚拿到设计时,本以为不难,一开始还信心满满,然而开始做就感觉有些茫然了,尤其是还有些知识是我还没学过的,比如液晶。所以我们组就必须得先把液晶学了,把需要学习的模块学完后,先是毫无头绪的写主程序,整个过程举步维艰,然后我们去学习了别人的设计方法,开始分工和分模块进行。组内分组搭建硬件电路,和写程序,先把电路搭建好,再写程序。写程序的过程中,我们是把程序分成几个小模块:液晶显示模块、键盘输入模块、抢答模块,然后每个模块写成子程序,在主程序中只需调用各个子程序即可。
在程序调试过程中,也遇到各种问题,但都逐个解决了。在整个设计过程中,我学到了许多课堂上老师无法传授的知识,也真正地做出了一件自己的产品。

单片机源程序如下:
  1. #include<reg52.h>
  2.         #define uchar unsignd char
  3.         #define uint unsigned int
  4.         uchar num=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0,flag=0,flag1=0,flag4=0,flag5=0,circle=0;
  5.         sbit ledbiaozhun=P1^0; //LED指示灯
  6.         sbit ledjingji  =P1^1;
  7.         sbit leddandu   =P1^2;
  8.         sbit ledpaishui =P1^3;
  9.         sbit ledqiangxi =P1^4;
  10.         sbit ledruoxi   =P1^5;
  11.         sbit ledxidi    =P1^6;
  12.         sbit ledpiaoxi  =P1^7;
  13.         sbit ledtuoshui =P2^0;
  14.         
  15.         sbit sshuiwei   =P3^6; //水位开关
  16.         sbit sgai       =P3^7; //盖开关
  17.         sbit paishui=P2^3; //排水阀控制
  18.         sbit jinshui=P2^2; //进水阀控制
  19.         
  20.         sbit U2=P2^4;
  21.         sbit U3=P2^5;
  22.         sbit k1=P3^0;  // 步进改变"标准、经济、单独、排水"四种方式
  23.         sbit k2=P3^1;  //强洗、弱洗
  24.         sbit k3=P3^2;  //运行、暂停和解除报替功能
  25.         void init()
  26.         {
  27.                 uchar a=0,b=0,c=0;
  28.                 TMOD=0x01;                       //T0工作于方式1
  29.                 TH0=(65536-50000)/256; //定时时间50ms
  30.                 TL0=(65536-50000)%256;
  31.                 EA=1;                                   //开总中断
  32.                 ET0=1;                                   //开T0中断
  33.                 TR0=0;                                   //关闭T0
  34.                 EX0=1;                                   //开外部中断0
  35.                 IT0=1;                                   //外部中断0边沿触发方式
  36.                 U2=1;                                   //电机停转
  37.                 U3=1;
  38.                 P0=0xff;
  39.         }
  40.         void delayms(uint xms) //延时
  41.         {
  42.                 uint i,j;
  43.                 for(i=xms;i>0;i--)
  44.                         for(j=110;j>0;j--);
  45.         }
  46.         
复制代码

全部资料51hei下载地址:
全自动洗衣机仿真电路 程序 原理图 设计简单文档.zip (323.04 KB, 下载次数: 185)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:92810 发表于 2021-3-11 22:37 | 只看该作者
刚好需要的,谢谢楼主分享,好好学习一波了。
回复

使用道具 举报

板凳
ID:92810 发表于 2021-3-11 22:38 | 只看该作者
先下载下来学习先,谢谢楼主分享了
回复

使用道具 举报

地板
ID:744941 发表于 2021-12-16 18:39 | 只看该作者
先下载下来学习先,谢谢楼主分享了
回复

使用道具 举报

5#
ID:1084173 发表于 2023-6-14 22:03 | 只看该作者
先下载下来学习先,谢谢楼主分享了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表