基于51单片机的全自动洗衣机系统设计-protues原理图程序(转发)

Posted Mr song song

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于51单片机的全自动洗衣机系统设计-protues原理图程序(转发)相关的知识,希望对你有一定的参考价值。

摘 要

本文详细介绍了国内洗衣机控制系统的发展现状,发展中所面临的问题。从产品质量、性能及应用方面看洗衣机的差距,同时也详尽的介绍了此次设计中最重要的组成部件单片机的概念、工作原理及设备总体结构。根据洗衣机的控制要求,从功能要求、硬件设计、软件设计三个方面描述了一个以AT89C51单片机为核心的洗衣机控制电路系统。基于AT89C51单片机的洗衣控制系统,控制面板由按键、指示灯组成.按键选择洗衣机工作方式,指示灯配合按键工作。洗衣机的整体电路模块包括键盘矩阵、指示灯、电动机控制及电源电路.控制程序设计包括定时中断服务程序、外中断服务程序及主程序。

关键词:洗衣机;单片机;控制面板

该洗衣机控制电路系统的硬件电路框图如图4.1所示,在该硬件系统中主要由核心单元电路、进/排水阀控制电路、电机控制电路、按键和开关电路、输出控制电路、特殊功能电路、电源电路等单元组成。

图4.1 硬件电路框图

在设计过程中采用AT89C51作为控制核心。其中P1.0到P2.0分别控制标准经济、单独、排水、强洗、弱洗、洗涤、漂洗、脱水的LED指示灯。由于AT89C51每根I/O线的低电平驱动电流达到20mA,所有I/O线的总驱动电流达80mA,而这7个灯最多只有3个灯同时亮,每个灯只需3.5mA左右的电流,再算上其它I/O线的驱动电流,总电流也不会超过80mA,所以可这样直接驱动LED发亮;P3.0接程序选择键,P3.1接强弱选择键,P3.2接暂停/启动/解除警报键,P3.6接水位开关,用于进/排水过程中的水位控制,为CPU提供洗衣机水位信息,P3.7接盖开关,这是安全保护措施,P2.1来控制蜂鸣器,P2.2引脚来控制进水阀和进水状态显示灯,P2.3引脚来控制排水阀和排水状态显示灯,单片机的复位引脚RST接洗衣机的强制复位键。

进/排水阀电路图如图4.5所示:

图4.5 进、排水阀电路图

在控制系统中,分别用P2.2和P2.3两引脚控制进水阀和排水阀的开启和关闭。当引脚被设置为高电平,电磁阀开启:当引脚被设置为低电平,电磁阀关闭。

论文内容

仿真电路

程序

/***************************头文件***********************/
#include     <reg51.h>
/************************数据类型宏定义******************/
#define     uchar    unsigned char
#define        uint    unsigned int
/***********************使能、禁止宏定义*****************/
#define        Enable();    EA=1;
#define        Disable();    EA=0;
/********************程序选择功能标志宏定义**************/
#define        BIAOZHUN        0
#define        JINGJI            1
#define        DANDU            2
#define        PAISHUI            3
/********************强弱选择功能标志宏定义**************/
#define        QIANGXI            0
#define        RUOXI            1    
/*******************进水、排水时间限制宏定义*************/
#define        T_JinShui        10        //4min*60s
#define        T_PaiShui        10        //1min*60s
#define        T_XiDi            10        //6min*60s
#define        T_PiaoXi_1        10        //4min*60s
#define        T_PiaoXi_2        10        //2min*60s
#define        T_TuoShui        10        //2min*60s
/**********************电机控制宏定义********************/
#define        ZHENGZHUAN        0
#define        STOP            1
#define        FANZHUAN        2
#define        ZhengZhuan();    PIN_Motor_A = 0; PIN_Motor_B = 1;
#define        Stop();            PIN_Motor_A = 1; PIN_Motor_B = 1;
#define        FanZhuan();        PIN_Motor_A = 1; PIN_Motor_B = 0;
/*******************暂停、继续控制宏定义*****************/
#define        ZanTing();        ET0 = 0; ET1 = 0; Stop();
#define        JiXu();            ET0 = 1; ET1 = 1; 
/*************************管脚定义***********************/
//都是低有效,因LED是灌电流,而PNP也是低电平时导通
sbit    LED_BiaoZhun    =    P1^0;    //标准程序显示灯
sbit    LED_JingJi        =    P1^1;    //经济程序显示灯
sbit    LED_DanDu        =    P1^2;    //单独程序显示灯
sbit    LED_PaiShui        =    P1^3;    //排水程序显示灯
sbit    LED_QiangXi        =    P1^4;    //强洗状态灯
sbit    LED_RuoXi        =    P1^5;    //弱洗状态灯
sbit    LED_XiDi        =    P1^6;    //洗涤状态灯
sbit    LED_PiaoXi        =    P1^7;    //漂洗状态灯
sbit    LED_TuoShui        =    P2^0;    //脱水状态灯
sbit    PIN_BaoJing        =    P2^1;    //报警喇叭
sbit    PIN_JinShui        =    P2^2;    //进水控制
sbit    PIN_PaiShui        =    P2^3;    //排谁控制
sbit    PIN_Motor_A        =    P2^4;    //电机脚A
sbit    PIN_Motor_B        =    P2^5;    //电机脚B
sbit    K_SEL_ChengXu    =    P3^0;    //选择程序键
sbit    K_SEL_QiangRuo    =    P3^1;    //选择强弱键
sbit    p32                =    P3^2;    //
sbit    p33                =    P3^3;    //
sbit    SW_ShuiWei        =    P3^6;    //水位开关
sbit    SW_AnQuan        =    P3^7;    //安全开关
/************************函数申明***********************/
void Programme_PaiShui(void);
/*************************数据定义***********************/
uchar    flag_SEL_ChengXu;            //默认为标准程序,            
bit        flag_SEl_QiangRuo;            //默认为强洗,1为弱洗
bit        flag_Run;                    //运行标志,1为运行
//bit        flag_ZanTing;                //暂停标志,1为暂停
bit        flag_JinShui;                //进水标志,1为进水
bit        flag_PaiShui;                //排水标志,1为排水
bit        flag_XiDi;                    //置洗涤标志
bit        flag_PiaoXi;                //置漂洗标志
bit        flag_TuoShui;                //脱水标志
bit        flag_BaoJing;                //报警标志
uchar     _50ms;                        //每50ms加一次的变量
uint    s;                            //秒
uint    T_S;                        //定时总时间
uchar    T_Motor;                    //电机控制时间
/*************************延时程序*********************/
void Delay_10ms(uint T1)    
    uint t1,t2;
    for(t1=0;t1<T1;t1++)
        for(t2=0;t2<1250;t2++);//10ms

/**********************管脚初始化程序******************/
void Pin_Init(void)    

编号1663,转发自:https://www.aiesst.cn/share.html

以上是关于基于51单片机的全自动洗衣机系统设计-protues原理图程序(转发)的主要内容,如果未能解决你的问题,请参考以下文章

基于51单片机的反向计时秒表protues仿真设计(源码+仿真+论文)

基于51单片机手动计步器protues仿真设计(源码+仿真)

基于51单片机动态数码管显示protues仿真设计(源码+仿真)

[资料转发]基于单片机自动感应干手器控制系统protues仿真电路基于单片机恒温箱温度控制系统设计

转发分享基于8086简易洗衣机控制仿真设计 protues仿真

基于51单片机PT100热电偶AD转换protues仿真设计(源码+仿真)