比较简单就贴个代码行了
后面学习了定时器和中断这些可以加入其中,效果会更好
#include <stdio.h>
#include "reg52.h"
#include <intrins.h>
sbit led = P2^2; //指示灯 亮:0 灭:1
sbit wireless_D0 = P1^0; //433无线射频 按下:1 无按下:0
sbit wireless_D1 = P1^1; //433无线射频
sbit shake = P1^2; //震动传感器: 震动输出:1 不震动输出:0
sbit buzzer = P3^3; //蜂鸣器 响:0 不响:1
#define led_ON 0
#define led_OFF 1
#define ON 1
#define OFF 0
void Delay5000us() //@12.000MHz
{
unsigned char i, j;
i = 10;
j = 183;
do
{
while (--j);
} while (--i);
}
/*防盗报警器*/
/*
433M无线射频作为遥控警报开关
A键被按下,led指示灯亮起表示开启了警报模式
B键被按下,led指示灯熄灭表示关闭警报模式
警报模式:震动传感器一直工作,每次检测到震动,蜂鸣器响起5秒
*/
int main()
{
buzzer = 0;
while(1){
//如果sw_a按下,设定为开启警报模式,led指示灯亮起
if(wireless_D0 == 1){
led = led_ON;//指示灯亮起,表示警报模式
}
//如果sw_b按下,设定为关闭警报模式,led指示灯关闭
if(wireless_D1 == 1 ){
led = led_OFF;
}
if(led == led_ON){
if(shake == 1){
buzzer = 0;
Delay5000us();
buzzer = 1;
}
}
}
return 0;
}