360建设网站免费下载,为什么建设厅的网站不好打开,如何免费做网站域名,怎么自学建筑设计基于51单片机智能垃圾桶 #xff08;仿真#xff0b;程序#xff0b;原理图#xff0b;PCB#xff0b;设计报告#xff09; 功能介绍
具体功能#xff1a;
1.ULN2003驱动步进电机控制打开关闭垃圾桶#xff1b;
2.一个红外对管检测有没有人#xff0c;一个红外对管…
基于51单片机智能垃圾桶 仿真程序原理图PCB设计报告 功能介绍
具体功能
1.ULN2003驱动步进电机控制打开关闭垃圾桶
2.一个红外对管检测有没有人一个红外对管检测垃圾满
3.若检测到人垃圾桶自动打开扔完垃圾后再自动关闭
4.若检测到垃圾满了声光报警垃圾桶就不会自动打开
5.这时可以按手动按键打开垃圾桶清理垃圾 添加图片注释不超过 140 字可选 程序
#include reg52.h //包括一个52标准内核的头文件
#includeintrins.h
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long//***********************************************
sbit HW1P3^3;
sbit HW2P3^5; //红外IO端口定义HW1是检测垃圾是否满HW2是检测是否有人扔垃圾
bit HW2_flag0; //红外触发标志位
sbit beepP3^4; //蜂鸣器端口定义
sbit led1P1^0; //指示灯IO
sbit key1P1^5; //按键IO
bit key1_flag0; //按键按下标志位
uchar loop; //步进电机转动变量
bit hand_flag0;
uint m_i; //电机转动次数计数
uchar ms,c_ms,p_ms199;
uchar open_time0;uchar beep_num; //蜂鸣器响次数控制变量
uchar open_flag0; //控制电机转动与不转动总开关置一执行电机控制否则不执行电机控制
bit open_flag11; //该变量等于0说明是开盖子等于1是关盖子
uchar code fz[] //正转数据
{0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code zz[] //反转数据
{0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
void Delay800us() //短延时函数
{unsigned char i, j;i 2;j 139;do{while (--j);} while (--i);
}void proc() //正反转函数
{if(open_flag1!open_flag1) //关{ P2zz[loop]; //将正转数据赋值给P2端口P2接的是步进电机loop(loop1)%8; //循环加Loop变化范围是 0 - 7这样结合上一句话就可循环将转动数据送给P2Delay800us(); //短延时一下调节这个短延时可以控制步进电机的转动速度越小就越快m_i; //变量加加当加到1080相当于送1080次电机转动数据就停止加同时停止驱动电机1080是目测的差不多刚好打开盖子的数据if(m_i1080){m_i0; //清零open_flag0; //清零关电机控制open_flag11; //数据反转}}else if(open_flag2open_flag1) //开{P2fz[loop]; //步骤和上面的基本一致都是送电机转动数据使其转动然后转动1080次就停止转动loop(loop1)%8;Delay800us();m_i;if(m_i1080){m_i0;open_flag10;open_flag0;}}
}
******//完整资料
***//***微信公众号木子单片机********/
void dis_pose()
{if(!HW1) //当这个红外被触发相当于垃圾桶满了{led10; //指示灯点亮if(!key1) //按键按下{if(key1_flag) //这个标志位只有当按键没按下的时候才会置一功能是确保只执行一次{key1_flag0; //清零这样只有当按键松开之后才回去置一才会再次执行if(open_flag1) //如果此时为关盖子{hand_flag1; open_flag2; //变量置 2 执行开盖子}else {hand_flag0;open_flag1; //如果是开盖子执行这个会去关盖子} }}else key1_flag1; //按键松开就置一}else {led11; //指示灯熄灭if(!HW2) //这个红外被触发有人要扔垃圾{if(HW2_flag) //和按键的功能是一样的确保只执行一次{HW2_flag0; //清零只有人离开才会置一if(open_flag1) open_flag2; //执行开盖子}}else {HW2_flag1;}}
}
硬件设计
使用元器件
单片机STC89C52
注意单片机是通用的无论51还是52、无论stc还是at都一样引脚功能都一样。程序也是一样的。
蜂鸣器;10uF电解电容;
30p瓷片电容;电源接口;
轻触按键;9012三极管;
5mm红色LED/黄色LED;
5P白插座步进电机;
1K电阻;10K电阻;自锁开关;
ULN2003电机驱动DIP16底座;
红外接收模块3p排针;
12M晶振;导线若干 添加图片注释不超过 140 字可选 流程图 添加图片注释不超过 140 字可选 设计资料
01仿真图
本设计使用proteus7.8和proteus8.9两个版本设计向下兼容无需担心具体如图 添加图片注释不超过 140 字可选
02原理图
本系统原理图采用Altium Designer19设计具体如图 添加图片注释不超过 140 字可选
03程序
本设计使用keil5版本编程设计具体如图 添加图片注释不超过 140 字可选
04设计报告
一万一千字设计报告具体如下 添加图片注释不超过 140 字可选
05设计资料
全部资料包括程序含注释、仿真源文件 、AD原理图、任务书、PCB、设计报告、流程图、实物图、元件清单等。具体内容如下全网最全! 添加图片注释不超过 140 字可选
点赞分享一起学习成长。