基于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仿真电路基于单片机恒温箱温度控制系统设计