• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的洗鞋机【数码管,直流电机,继电器】(仿真)

01/02 08:56
1889
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

有需要资料的可了解一下.docx

共1个文件

[相关器件] SX1308IMLTRT

射频/微波组件,SX1308 - RF - Other Gateway FSK, GPS, LoRa 64-QFN T/R

自动洗鞋机控制

电机转动(正反转)带动中心柱转,从而带动鞋子转动,同时小电机转动带动中心柱上齿轮转动,带动支撑件上下移动,洗刷结束后,控制电磁阀打开排水,排完之后中心柱再转起来,给鞋子脱水,脱水结束后控制风扇的小电机转动,PTC陶瓷发热片接电发热(一定时间),最后有个蜂鸣器报警。洗刷-排数-脱水-烘干

bit smg1=P2^0;//数码管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit out1=P2^4;//电机
sbit out2=P2^5;
sbit out3=P2^6;
sbit out4=P2^7;
sbit beep=P1^7;//蜂鸣器
sbit out5=P3^0;//输出控制
sbit out6=P3^1;
sbit out7=P3^2;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit led1=P3^4;//LED
sbit led2=P3^5;
sbit led3=P3^6;
sbit led4=P3^7;
sbit led5=P3^3;

//数码管编码
uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点

uchar time=0,mode=0;//系统变量
uchar fen=0,miao=0;//计时
uchar fen_set=0,miao_set=50;//总时间
uchar motor1_time=0,flag=0;//大电机计时
uchar beep_time=0;
uint sec=0;
uchar bei=0;
//延时
void delay(uint i)
{
	while(i--);
}
//主函数
void main()
{
	uchar i=0,k=0;
	sec=fen_set*60+miao_set;
	sec=sec/10;//时间拆分成10份
	miao=miao_set;
	fen=fen_set;
	TMOD|=0X01;//初始化定时器
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//启动
		if(!k1)
		{
			if(mode==0)
				mode=1;
			if(mode==5)
				mode=bei;
			led5=1;
		} 
		//停止
		if(!k2)
		{
			mode=0;led5=1;
		}
		//暂停
		if(!k3 &&(k!=3))
		{
			k=3;
			if((mode>0)&&(mode<5))
			{
			bei=mode;
			mode=5;
			led5=0;
			led1=1;
			led2=1;
			led3=1;
			led4=1;
			out1=1;
			out2=1;
			out3=1;
			out4=1;
			out5=1;
			out6=1;
			out7=1;
			}
			else if(mode==5)
			{
				mode=bei;
				led5=1;
			}
		}
		if(k3)
			k=0;
		//电机调速
		if(i<10)
			i++;
		else
		{
			i=0;
		}
		if(mode==1)
		{
		if(flag==0)//洗刷
		{
			out2=1;
			if(i<4)
				out1=0;
			else
				out1=1;
		}
		else
		{
			out1=1;
			if(i<4)
				out2=0;
			else
				out2=1;
		}
		}
		if(mode==3)//脱水
		{
			out1=0;
			out2=1;
		}
		//显示
		P0=smgduan0[fen/10];
		smg1=0;
		delay(30);
		smg1=1;
		P0=smgduan1[fen%10];
		smg2=0;
		delay(30);
		smg2=1;
		P0=smgduan0[miao/10];
		smg3=0;
		delay(30);
		smg3=1;
		P0=smgduan0[miao%10];
		smg4=0;
		delay(30);
		smg4=1;
	}
}
//定时器中断
void Timer0() interrupt 1
{
	uint i;
	if(time<20)//1s

资料借鉴于此 纷传

  • 有需要资料的可了解一下.docx
    下载
[相关器件] SX1308IMLTRT

射频/微波组件,SX1308 - RF - Other Gateway FSK, GPS, LoRa 64-QFN T/R

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!