1. 程式人生 > 實用技巧 >270【畢設課設】基於51微控制器的人體熱釋感測器自動門控制系統設計

270【畢設課設】基於51微控制器的人體熱釋感測器自動門控制系統設計

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

本設計由STC89C52微控制器電路+熱釋紅外模組電路+LED指示燈電路+到位開關檢測電路+紅外避障感測器電路+蜂鳴器報警電路+ULN2003步進電機驅動電路+電源電路組成。

1、通過熱釋紅外感測器檢測是否有人,步進電機預設停止(即預設門是關的)。如果有人,則步進電機一直正轉(模擬開門),直到1號到位開關檢測到訊號(開門到了最大),則步進電機停轉。如果再次檢測到沒人,則,步進電機反轉(模擬關門),知道2哈到位開關檢測到訊號(門已關死),則步進電機停轉。依次迴圈……

2、熱釋紅外檢測到有人時,黃色LED燈亮,否則黃燈不亮。

3、如果紅外避障感測器檢測到障礙物,蜂鳴器報警,否則蜂鳴器不報警。

4、如果在關門過程中,檢測到有人,此時,步進電機正轉開門。

#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部斷電

unsigned char zfFlag = 0 ;		 //正反轉標誌
unsigned char guanIng = 1;//關閉過程中
unsigned long time_20ms=0;		   //定時器計數
unsigned char daoweiFlag = 2;//記錄當前狀態
void Init_Timer0(void);

void main (void)
{     

	Init_Timer0();        //定時器0初始化
	DelayMs(200);          //延時有助於穩定
	while (1)         //主迴圈
	{

		if(tanTou == 0) buzzer =0 ;//探頭檢測到報警