1、实验目的
遥控开关警报模式,喇叭响2秒表示打开警报模式,喇叭响0.5秒表示关闭警报模式;当处于警报模式下,电动车发生震动时,喇叭响,没有震动时,喇叭不响。
2、接线
3、代码
#include "reg52.h"
#include<intrins.h>
#define ON 1
#define OFF 0
sbit switcher = P1^0;//继电器
sbit D0_ON = P1^1;//A按键
sbit D1_OFF = P1^2;//B按键
sbit vibrate = P1^3;//震动传感器
void Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void 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 mark = ON;
while(1){
//A键按下开启警报模式
if(D0_ON == 1)
{
switcher = 0; //长响2秒表示进入警报模式
Delay2000ms();
switcher = 1;
mark = ON; //标记进入警报模式
}
//B键按下关闭警报模式
if(D1_OFF == 1)
{
switcher = 0; //短响0.5秒表示解除警报模式
Delay500ms();
switcher = 1;
mark = OFF; //标记解除警报模式
}
//在警报模式下
if(mark == ON)
{
//如果发生震动喇叭响
if(vibrate == 0)
{
switcher = 0;
}
//如果不发生震动喇叭不响
else
{
switcher = 1;
}
}
}
}