使用的模块
接线
所有模块
VCC——5V
GND——GND
振动传感器
D0——P3^3
继电器
IN——P1^3
高功率喇叭
电源黑色线与喇叭黑色线相接
电源红色线与继电器COM相接
喇叭红色线与继电器NO相接
433M无线发射接收模块
D0——P1^0
D1——P1^1
代码实现
#include "reg52.h"
#include "intrins.h"//sbit led1 = P3^7;
//sbit led2 = P3^6;
sbit vibrate = P3^3;
sbit switcher = P1^3;
sbit ABCD_A = P1^0;
sbit ABCD_B = P1^1;#define J_ON 1
#define J_OFF 0void Delay500ms() //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{int J_Mask = J_OFF;switcher = 1;while(1){if(ABCD_A == 1) //如果a按键被按下,设定为开启警报模式{switcher = 0;Delay500ms();switcher = 1; //响一下,表示进入警报模式J_Mask = J_ON; //设定警报模式标记}if(ABCD_B == 1) //如果b按键被按按下,设定为关闭警报模式{switcher = 0;Delay500ms();switcher = 1;Delay500ms();switcher = 0;Delay500ms();switcher = 1; //响两下,表示进入解出警报模式J_Mask = J_OFF; //设定解除警报模式标记}if(J_Mask == J_ON) //如果标记是在警报模式下{if(vibrate == 0) //如果发生了震动{switcher = 0; //喇叭响,给继电器低电平,导通}else{switcher = 1; //喇叭不响,给继电器高电平,不导通}}}
}