一.硬件方案
本设计主要是利用单片机设计并制作一套智能垃圾箱。要求以单片机为控制核心,通过红外传感器检测是否有人扔垃圾,并自动打开垃圾箱盖,扔完垃圾后再自动关闭。
主要由51单片机+独立按键+电机驱动模块+2个红外传感器+蜂鸣器报警模块等组成;如图:
二.设计功能
(1)两个按键分别为复位按键、手动打开垃圾桶按键。
(2)当智能垃圾桶红外线检测到有人时,将控制步进电机打开垃圾桶。
(3)如果人一直在垃圾桶旁边时,垃圾桶将一直打开,当人离开5S后,盖子将自动盖上。
(4)当桶内红外检测到垃圾满时,单片机将开启声光报警,并且自动取消打开桶盖模式,智能通过手动按键打开桶盖。
(5)当垃圾清理完时,系统将恢复自动模式。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
四.软件设计
(1)程序流程图
(2)主程序源码
void main()
{
TMOD=0x10; //定时器0,定时器1,16位工作方式
EA=1; //打开总中断0
TH1=0x4c;
TL1=0x00;
TR1=1;
ET1=1;
while(1)
{
if(open_flag==0)
{
P2=P2&0xf0;
m_i=0;
}
else
{
proc();
}
}
}
void dis_pose()
{
if(!HW1)
{
led1=0;
if(!key1)
{
if(key1_flag)
{
key1_flag=0;
if(open_flag1)
{
hand_flag=1;
open_flag=2;
}
else
{
hand_flag=0;
open_flag=1;
}
}
}
else key1_flag=1;
}
else
{
led1=1;
if(!HW2)
{
if(HW2_flag)
{
HW2_flag=0;
if(open_flag1) open_flag=2;
}
}
else
{
HW2_flag=1;
}
}
}
关键字:51单片机 智能垃圾桶
引用地址:
基于51单片机的智能垃圾桶设计
推荐阅读最新更新时间:2024-11-12 11:17
51单片机--LCD1602编程入门
这次我来分享一下我的LCD1602的编程经验: 先说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容是不适用的。 我对LCD1602的整体理解 这里说一下我对LCD1602的整体理解哈,LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符,但是每行都只有前16个字符可以显示,每行后面的24个字符无法立即显示,只说不容易明白,下面看一下示意图: 另外LCD1602只能显示字符,数字和一些简单的符号,是无法显示汉字的,切记。 LCD1602引脚: 然后再说一下引脚,每当学习一个芯片或者模块,最先要了解
[单片机]
STC89C51单片机和ADXL345三轴加速度模块实现简易计步器程序
单片机源程序如下: #include STC51PRJ.h extern BYTE BUF ;//接收数据缓存区 /*****************起始信号***************/ void ADXL345_Start() { SDA = 1; //拉高数据线 SCL = 1; //拉高时钟线 Delay5us(); //延时 SDA = 0; //产生下降沿 Delay5us(); //延时 SCL = 0; //拉低时钟线 } /************
[单片机]
基于51单片机的电子时钟课程设计
第一章 设计目的及要求 1.目的 通过对电子时钟系统进行编程与Protues仿真,进一步掌握单片机的组成,P1、P0、P2、P3口的应用,蜂鸣器的应用,定时中断程序的编写及应用,对之前学习的单片机课程进行回顾与应用;初步掌握Protues仿真方法以及用keil软件编写程序的方法。 2.题目与要求 本次课程设计的题目为:电子时钟的设计,其具体要求为: (1)能实现时、分、秒的显示; (2)能实现12、24小时制的切换; (3)能设定时间; (4)能设定闹钟; 整个系统要设计键盘和显示器,利用单片机内部时钟完成定时器的定时设计。 第二章 理论基础 1.AT89C52芯片 AT89C52芯片的引脚图如图1所示。 图1 AT
[单片机]
51单片机学习:独立按键实验
实验名称:独立按键实验 接线说明: 实验现象:下载程序后,按下“独立按键”模块中K1键,控制D1指示灯亮灭 注意事项: ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //定义独立按键控制脚 sbit KEY1=P3^1; sbit KEY2=P3^0; sbit KEY3=P3^2; sbit KEY4=P3^3; //定义LED
[单片机]
基于51单片机自行车码表设计
由于仿真中没有霍尔传感器,实际呢霍尔就是感应磁信号,输出高低电平的脉冲信号,这样用脉冲就可以了,不同的频率代表电机转速的快慢 制作出来的实物图如下: 自行车码表元件清单 1) 9*15万用板 2) AT89C51单片机 3) 40脚IC座 4) 1602液晶 5) 16p母座 6) 16p排针 7) 10k电阻 8) 1K电阻 9) 轻触按键 10) 5MM LED灯(红色) 11) 103电位器 12) 3v直流电机 13) 直流电机底座 14) 磁铁*2 15) 501电位器 16) 3144霍尔传感器 17) 10uf电解电容 18) 30pf瓷片电容*2 19) 12M晶
[单片机]
基于51单片机的pwm波产生
利用定时器的中断来实现PWM调制。如果我们设定脉冲的周期为1000毫秒;每20毫秒产生一次中断,则知道要中断50次。 那么我们可以这样编写程序 TH0=0XFF; TL0=0XEC;这是定时器0产生一次中断的时间,即20毫秒产生一次中断。我们再定义一个计数的变量NUM,让NUM从0开始加到50,程序如下 void Timer0Interrupt(void) interrupt 1 { TH0 = 0x0FE; TL0 = 0x0C; NUM++; if(NUM==33) { NUM=0; } if(NUM =PWM)P1=0x00; if(NUM PWM)P1=0
[单片机]
51单片机外围模块——红外通信
一. 什么是红外线 人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线.红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。 二. 红外线系统的组成 红外线遥控器已被广泛使用在各种类型的家电产品上,它的出现给使用电器提供了很多的便利。红外线系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。通常为了使信号更好的被发射
[单片机]
MCS-51单片机定时器/计数器基础详述
MCS-51子系列单片机有2个定时器/计数器,即定时器/计数器0和1,52子系列单片机(8032/8052)除了有上述2个定时器/计数器外,还有一个定时器/计数器2,后者的功能比前两者强。 1 定时器/计数器0和1 在专用寄存器TMOD(定时器方式)中,有一个控制位(C/T),分别用于控制定时器/计数器0和1是工作在定时器方式还是计数器方式。 1. 输入信号基本要求:24个振荡周期,即两个机器周期; 2. 作为定时器时,计数速率是 振荡频率/12; 3. 由定时器/计数器模式控制寄存器设置工作方式。 2 定时器/计数器2(自己阅读) 定时器/计数器2是一个具有16位自动重装载或捕获能力的定时器/计数器。专用寄存器
[单片机]