標(biāo)題:
51單片機模擬自動感應(yīng)門(原理圖+仿真圖+源程序)
[打印本頁]
作者:
手插口袋
時間:
2019-9-3 12:07
標(biāo)題:
51單片機模擬自動感應(yīng)門(原理圖+仿真圖+源程序)
采用的是模擬的形式 步進(jìn)電機模擬開門關(guān)門
制作出來的實物圖如下:
實物圖.png
(208.89 KB, 下載次數(shù): 92)
下載附件
實物圖
2019-9-3 12:03 上傳
電路原理圖如下:
仿真圖.png
(34.12 KB, 下載次數(shù): 87)
下載附件
仿真圖
2019-9-3 12:03 上傳
仿真說明
RV1模擬人體檢測,端口變成綠色0無人,端口變成紅色是有人
其他照著操作說明操作即可
實物中的步進(jìn)電機仿真中沒有對應(yīng)的,你就加載仿真看看端口電平變化效果吧
Comment Designator
22P電容 C1, C2
10UF電容 C3
LED D1
人體檢測模塊 H1
步進(jìn)電機 P1
1K電阻 R2
10K電阻 R15
AJ按鍵 SW1, SW2
單片機 U2
ULN2003 U5
12M 晶振1
單片機源程序如下:
#include<reg51.h> //調(diào)用頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int //宏定義
/******** 端口定義 **********/
sbit k1=P2^6;//手動開接口
sbit k2=P2^7;//手動關(guān)接口
sbit led=P3^4;//人體感應(yīng)指示燈
sbit ir=P3^2;//人體感應(yīng)
uchar code fan[4]={0xf8,0xf4,0xf2,0xf1};//反轉(zhuǎn)
uchar code zheng[4]={0xf1,0xf2,0xf4,0xf8};//正轉(zhuǎn)
uchar num,num1;
uint quan;
bit flag;//開關(guān)標(biāo)志位,0為關(guān),1為開
/***************延時函數(shù)*******************/
void delay(uint time)//延時函數(shù) 延時Time ms
{
uint j;
for(;time>0;time--)
for(j=150;j>0;j--);
}void main()
{
TMOD=0x11;//設(shè)置定時器1為16位計時模式
TH0=(65536-50000)/256; //定時器0高八位裝初值
TL0=(65536-50000)%256; //定時器0低八位裝初值
EA=1;//開啟總中斷
ET0=1;//開啟定時器中斷0
TR0=0;//關(guān)閉定時器0
TH1=(65536-4000)/256; //定時器1高八位裝初值
TL1=(65536-4000)%256; //定時器1低八位裝初值
ET1=1;//開啟定時器中斷1
TR1=0;//關(guān)閉定時器1
flag=0;//門關(guān)閉狀態(tài)
P2=0xf0;
while(1)
{
while(flag==0)//門關(guān)閉狀態(tài)
{
if(TR1==0)P2=0xf0;
if((ir==1)||(k1==0))//檢測到人體信號或者手動開門按鍵按下模擬開門
{
if(ir==1)led=0;
TR1=1;
num=0;
}
else led=1;
}
//門開啟狀態(tài) 延時5S檢測不到人 自動關(guān)閉 延時5S檢測到人 延時清零繼續(xù)
//關(guān)閉時檢測到人 反方向自動開啟
while(flag==1)
{
if(TR1==0)P2=0xf0;
if(ir==1){num=0;led=0;}//門開啟檢測到人體信號定時清零
else led=1;
if((num>=100)||(k2==0))//5S 或者手動關(guān)門按鍵按下執(zhí)行關(guān)門
{
TR0=0;//關(guān)閉定時器
TR1=1;
num=0;
}
}
}
}
void time0() interrupt 1 //中斷函數(shù)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
void time1() interrupt 3 //中斷函數(shù)
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
num1++;
if((flag==0)&&(TR1==1))
{
if(num1==4)
{
lp:
num1=0;
quan++;
}
P2=zheng[num1];
if(quan>=125){TR1=0;flag=1;TR0=1;P2=0xf0;}//90°
}
if((flag==1)&&(TR1==1))
{
if(num1==4)
{
num1=0;
if((ir==1)||(k1==0))//檢測到人體信號或者手動開門按鍵按下模擬開門
{
flag=0;
if(ir==1)led=0;
TR1=0;
delay(1000);
TR1=1;
goto lp;
}
quan--;
}
P2=fan[num1];
if(quan==0){TR1=0;flag=0;P2=0xf0;}
}
}
全部資料51hei下載地址:
自動感應(yīng)門資料.rar
(173.83 KB, 下載次數(shù): 212)
2019-9-3 12:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
往初
時間:
2019-12-5 23:06
好資料,51黑有你更精彩!!!
作者:
zcANDzc
時間:
2019-12-23 14:31
請問這個人體檢測模塊用的是什么呢?紅外檢測嗎?
作者:
追風(fēng)少年cuzz
時間:
2020-5-12 12:59
你這資料打開用不上!
作者:
zyjones
時間:
2021-6-21 14:35
大家有沒有推薦比較好用的人體感應(yīng)模塊呀
作者:
為01518
時間:
2021-6-21 18:22
好資料,51黑有你更精彩!!!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1