【资源下载】下载地址如下:
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 ;//探头检测到报警