仿真设计|基于51单片机的智能垃圾桶仿真
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
·
目录
具体实现功能
(1)用LCD1602显示人体靠近信息、垃圾重量信息;
(2)用压力传感器检测垃圾投入后重量变换;
(3)用HC-SR501模块检测人体靠近信息;用舵机转动模拟垃圾箱盖开闭;
(4)当检测到人体靠近信息后,开启箱盖;开盖后检测到重量变化(已投入垃圾),关闭箱盖。

仿真演示视频:
68-基于51单片机的智能垃圾桶仿真-仿真视频
设计介绍

51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
///////////////////////////////////////////////////
//****************************************************
//主函数
//****************************************************
void main()
{
char flage=0;
CTRL = 0;
R_TL0 = 65536 - TIME;
R_TH0 = (65536 - TIME) >> 8;
//设置定时器0
TMOD = 0x01; //16位计数
TL0 = R_TL0;
TH0 = R_TH0;
ET0 = 1; //定时器0中断开关打开
TR0 = 1; //定时器0计数开始
//设置定时器1
TMOD |= 0x10; //16位计数
TL1 = 65536 - aTime;
TH1 = (65536 - aTime) >> 8;
ET1 = 1; //定时器1中断开关打开
TR1 = 0; //定时器1计数停止
EA = 1; //中断总开关打开
Init_LCD1602(); //屏幕初始化
aTime=2300; //关垃圾桶盖
Delay_ms(1000); //延时,等待传感器稳定
Get_Maopi1(); //称毛皮重量,误差校验
while(1)
{
if(People==1&&flage==0)
{
flage=1;
aTime=1400;//开盖
LCD1602_write_com(0x80);
LCD1602_write_word("People:Yes");
Delay_ms(150);
while(1)
{
LCD1602_write_com(0x80+0x40);//1602位置命令
Get_Weight1(); //称重
LCD1602_write_word("W:");
LCD1602_write_data(Weight_Shiwu1/1000 + 0X30);
LCD1602_write_data(Weight_Shiwu1%1000/100 + 0X30);
LCD1602_write_data(Weight_Shiwu1%100/10 + 0X30);
LCD1602_write_data(Weight_Shiwu1%10 + 0X30);
LCD1602_write_word("g");
Delay_ms(1000);
if(Weight_Shiwu1>=10)
{
LCD1602_write_com(0x01);
aTime=2300;//关垃圾桶盖
break;
}
}
}
else
{
flage=0;
Get_Maopi1();
//aTime=2300;//关垃圾桶盖
LCD1602_write_com(0x80);
LCD1602_write_word("People:No");
}
}
}
程序运行结果如图:

全部内容
全部资料包括程序(keil5)、protues仿真(protues8.7)、开发资料、资料使用介绍、仿真视频、程序讲解视频、仿真讲解视频、最小系统介绍视频等。

资料获取
https://docs.qq.com/doc/DT2RkSFhZbGh6ZWNm
更多推荐



所有评论(0)