emm 跟老陈学习 搞完的第一个项目吧 电动车报警器 。具体思路就是 利用遥控器遥控 点击A按键 进入报警模式,利用一个标记mark来标记,mark初始值为0,进入了报警模式,mark就是1 。解锁模式反之,在while(1)里面 有三个if语句 前面两个判断按键按下了A或者B,第三个if语句判断,Mark 是否等于 J_ON , 可以在头文件那里设置两个 define J_ON 1 define J_Off 0; mark如果等于J_on,则再用一个if语句 判断传感器 vabrate 是否等于0 等于0 就相当于有震动 。
具体的硬件细节,就是要记得看代码插线,然后其他的vcc就接5v,gnd就接gnd。还有编译代码的时候,可以先把传感器的v5那条线先拔掉。差不多就这些。哦对了 还有on 和com 两个口是连电源的红线
具体代码如下
#include "reg52.h"
#include "intrins.h"
#define J_ON 1
#define J_OFF 0
sbit D0_ON = P1^1;
sbit D1_OFF = P1^2;
sbit switcher = P1^0;
sbit vibrate = P1^3;
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 Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
int mark = J_OFF;
while(1)
{
if(D0_ON == 1){//收到遥控信号A,表示进入警报模式
switcher = 0;//长响两秒
Delay2000ms();
switcher =1 ;
mark = J_ON;//设置一个标记,进入警报模式
}
if(D1_OFF == 1)//收到遥控信号B,表示进入解锁模式
{
switcher = 0;//短响两秒,进入解锁模式
Delay500ms();
switcher = 1;
mark = J_OFF;//设置一个标记,解锁警报模式
}
if(mark == J_ON){
if (vibrate == 0 )
{
switcher = 0;
}
else {
switcher = 1;
}
}
}
}