利用熱釋電紅外傳感器來測試人體接近目標的方法,當人走近垃圾桶時讓桶蓋自動開合的自動感應垃圾桶設計。采用單片機來控制一個直流電機轉動,實現垃圾桶蓋的閉合控制。
proteus仿真圖
仿真圖
單片機源程序:
//功能:自動感應垃圾桶(判斷是否有人接近,有人電機正轉,離開反轉)
#include "reg51.h" //包含頭文件reg51.h,定義了51單片機的專用寄存器
sbit hw=P0^1; //紅外控制端
sbit P1_3=P1^3; //電機驅動控制端
sbit P1_4=P1^4; //電機驅動控制端
sbit P1_5=P1^5; //電機驅動控制端
//函數名:delay
//函數功能:實現軟件延時
//形式參數:無符號整型變量i,控制空循環的循環次數
//返回值:無
void delay(unsigned int i) //延時函數
{
unsigned int k;
for(k=0;k<i;k++);
}
void main()
{
bit flag; //桶蓋打開標志位變量,為1表示桶蓋打開,否則表示桶蓋關閉
flag=0; //桶蓋關閉標志
while(1)
{
if((hw==1)&&(flag==0))
{ P1_3=1; //電機運轉,控制打開桶蓋
P1_4=0;
P1_5=1;
delay(20000); //延時,等待桶蓋打開完成
P1_5=0; //電機停轉,保持桶蓋打開狀態
flag=1; //設置桶蓋打開標志
}
else if(hw==0&&flag==1)
{
P1_3=0; //電機反向運轉,關閉桶蓋
P1_4=1;
P1_5=1;
delay(20000); //延時,等待桶蓋關閉完成
P1_5=0; //電機停轉,保持桶蓋關閉狀態
flag=0; //設置桶蓋關閉標志
}
}
}
keil5代碼和proteus8.8仿真下載:
Proteus8.8與代碼.7z
(100.11 KB, 下載次數: 44)
2022-10-7 04:53 上傳
點擊文件名下載附件
keil5代碼和proteus仿真
|