本实践以单片机为基础,实现了全自动洗衣机控制系统设计。系统包含单片机、LCD显示屏、水位传感器、温度传感器等。全自动洗衣机包含的功能有:标准洗衣、经济洗衣、单独洗衣以及排水四种洗衣方式,有强洗、弱洗及运行/暂停、显示及报警功能,有自动烘干功能等。
仿真原理图如下
单片机源程序如下:
#include
#define uint unsigned int //定义字符uint
#define uchar unsigned char //定义字符uchar
#define TIME0H 0xff //定时器0计数器高位
#define TIME0L 0x9c //定时器0计数器低位
#define TIME1H 0x3c //定时器1计数器高位
#define TIME1L 0xb0 //定时器1计数器低位
#define MOTOR_COUNT 100 //PWM波输出周期计数
#define sol 0x6c //将"so"宏定义为低音"5"的频率 784Hz
#define Dol 0x44 //将"Do"宏定义为中音"1"的频率 523Hz
#define Rel 0xac //将"Re"宏定义为中音"2"的频率 587Hz
#define Mil 0x09 //将"Mi"宏定义为中音"3"的频率 659Hz
#define Fal 0x34 //将"Fa"宏定义为中音"4"的频率 698Hz
#define Sol 0x82 //将"So"宏定义为中音"5"的频率 784Hz
#define Lal 0xc8 //将"La"宏定义为中音"6"的频率 880Hz
#define Sil 0x05 //将"Si"宏定义为中音"7"的频率 523H
#define soh 0xfc //将"so"宏定义为低音"5"的频率 784Hz
#define Doh 0xfc //将"Do"宏定义为中音"1"的频率 523Hz
#define Reh 0xfc //将"Re"宏定义为中音"2"的频率 587Hz
#define Mih 0xfd //将"Mi"宏定义为中音"3"的频率 659Hz
#define Fah 0xfd //将"Fa"宏定义为中音"4"的频率 698Hz
#define Soh 0xfd //将"So"宏定义为中音"5"的频率 784Hz
#define Lah 0xfd //将"La"宏定义为中音"6"的频率 880Hz
#define Sih 0xfe //将"Si"宏定义为中音"7"的频率 523H
//定义宏变量
sbit speaker =P2^6; //蜂鸣器控制引脚
sbit RS=P1^5; //LCD RS引脚
sbit R_W=P1^6; //LCD 读写信号
sbit EN=P1^7; //LCD 使能引脚
sbit motor_high=P1^0; //PWM输出高电平引脚
sbit motor_low=P1^1; //PWM输出低电平引脚
sbit motor_1_en=P1^2; //进水阀门引脚
sbit motor_2_en=P1^3; //出水阀门引脚
sbit motor_3_en=P1^4; //洗衣机电动使能引脚
sbit EOC=P2^4; //AD EOC
sbit START=P2^5; //AD START
sbit con=P3^5; //AD CON
sbit add_A=P3^0; //位选信号A
sbit lock_OE=P3^1; //74ls373锁存控制引脚
//定义全局变量
uchar process; //当前洗衣机运行状态全局变量
uchar method; //当前洗衣机运行方式全局变量
uchar speed; //当前电动机速度全局变量
uchar flag; //标志位
uchar state; //洗衣机运行状态选择
uint ad_level; //水位采样全局变量
uint ad_voltage; //电压采样全局变量
uint time_count; //定时器0中断次数全局变量
uint time_count1; //定时器1中断次数全局变量
uint MOTOR_ON,MOTOR_NOW; //电动机pwm控制计数,高电平脉冲数和当前脉冲数
uchar st_pau; //当前洗衣机运行全局变量
uchar step; //当前洗衣机运行步骤全局变量
uint Cl=0; //
uint Ch=0; //
uchar close=0;
//声明子函数
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』