GYJ-0163-A 阻挡延时报警 接近报警器 物体检测报警 运动检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【简要说明】
【标注说明】
【控制直流负载接线说明】
【控制交流负载接线示意图】
【输出控制设备】
【时间调节对照表】
********************************************************************/ #include "STC15W408AS.h"
#include <intrins.H>
#define uchar unsigned char //宏定义字符型变量
#define uint unsigned int //宏定义整型变量
/********************************************************************
初始定义
*********************************************************************/ uchar keycnt=0;//按下次数值
uchar tcnt1,tcnt2; //键值判断
bit flag;
uchar bjz=0;//设置报警值
//sfr WDT_CONTR=0XC1; //看门狗设置寄存器
/********************************************************************
I/O定义
*********************************************************************/ sbit OUT=P3^7; //继电器输出控制端
sbit IN=P5^4; //输入端
/********************************************************************
定时器T0初始化
*********************************************************************/ void timer0_init()
{
TMOD=0x01; //定时器T0、T1工作在方式1
TH0=(65536-50000)/256; //对TH0 TL0 赋值
TL0=(65536-50000)%256; //接通电源延时10分钟
ET0=1;
EA=1;
TR0=1;
}
/********************************************************************
主函数
*********************************************************************/ void main()
{ OUT=1;
P12=1;
P13=1;
P14=1;
P15=1;
timer0_init();
if((P12==1)&&(P13==1)&&(P14==1)&&(P15==1)){bjz=15;}//1秒15 if((P12==0)&&(P13==1)&&(P14==1)&&(P15==1)){bjz=30;}//2秒14 if((P12==1)&&(P13==0)&&(P14==1)&&(P15==1)){bjz=45;}//3秒13 if((P12==0)&&(P13==0)&&(P14==1)&&(P15==1)){bjz=60;}//4秒12 if((P12==1)&&(P13==1)&&(P14==0)&&(P15==1)){bjz=75;}//5秒11 if((P12==0)&&(P13==1)&&(P14==0)&&(P15==1)){bjz=90;}//6秒10 if((P12==1)&&(P13==0)&&(P14==0)&&(P15==1)){bjz=105;}//7秒9 if((P12==0)&&(P13==0)&&(P14==0)&&(P15==1)){bjz=120;}//8秒8 if((P12==1)&&(P13==1)&&(P14==1)&&(P15==0)){bjz=135;}//9秒7 if((P12==0)&&(P13==1)&&(P14==1)&&(P15==0)){bjz=150;}//10秒6 if((P12==1)&&(P13==0)&&(P14==1)&&(P15==0)){bjz=165;}//11秒4 if((P12==0)&&(P13==0)&&(P14==1)&&(P15==0)){bjz=180;}//12秒4 if((P12==1)&&(P13==1)&&(P14==0)&&(P15==0)){bjz=195;}//13秒3 if((P12==0)&&(P13==1)&&(P14==0)&&(P15==0)){bjz=210;}//14秒2 if((P12==1)&&(P13==0)&&(P14==0)&&(P15==0)){bjz=225;}//15秒1 if((P12==0)&&(P13==0)&&(P14==0)&&(P15==0)){bjz=240;}//16秒0 while(1)
{
// if(IN==0){OUT=1;} else {OUT=0;}
if(IN==0)
{
tcnt1=0;
flag=0;
}
else
{
flag=1;
tcnt2=0;
}
}
}
/********************************************************************
定时器T0中断服务函数
*********************************************************************/ void t0(void) interrupt 1 using 1 //定时中断服务函数
{
if(flag)
tcnt1++;//每过50ms tcnt 加一
else
tcnt2++;
if((tcnt1>=bjz)||(tcnt2>=bjz)) //2s
{
OUT=0; //继电器闭合等于0是闭合==1是断开
}
else
OUT=1;//断开
if(tcnt1>=(bjz+5))
{
tcnt1=(bjz+5);
}
if(tcnt2>=(bjz+5))
{
tcnt2=(bjz+5);
}
}
/********************************************************************
结束
*********************************************************************/ 【尺寸图】
【装壳后效果展示】。