51单片机——电动车报警器
1.震动控制灯
硬件:震动传感器,51单片机
#include "reg52.h"sbit led1 = P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口
sbit vibrate = P3^3;//Do接到了P3.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 main()
{//查询方式判断是否发生震动while(1){if(vibrate == 0)//模块说明告诉我们,震动的话,D0输出低电平{led1 = 0;//亮灯Delay2000ms();led1 = 1;}else{led1 = 1;//灭灯}}
}
2.震动控制继电器
#include "reg52.h"sbit vibrate = P3^3;//Do接到了P3.3口
sbit switcher = P1^1;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()
{//查询方式判断是否发生震动while(1){if(vibrate == 0)//模块说明告诉我们,震动的话,D0输出低电平{//当发生震动适合,导通继电器,给继电器IN一个低电平switcher = 0;Delay2000ms();switcher = 1;//高电平,继电器N0和COM不通}else{switcher = 1;}}
}
3.遥控接收433M控制继电器
#include "reg52.h"
sbit D0_ON = P1^2;
sbit D1_OFF = P1^3;
sbit switcher = P1^1;
void main()
{//查询方式哪个按键被按下while(1){if(D0_ON == 1)//收到遥控信号A,D0表现为高电平{//A被按下,我们导通继电器,给继电器IN一个低电平switcher = 0;}if(D1_OFF == 1)//收到遥控信号C,D1表现为高电平{//B被按下,我们不导通继电器,给继电器IN一个高电平switcher = 1;}}
}
电动车报警器开发
#include "reg52.h"
#include<intrins.h> #define J_ON 1
#define J_OFF 0
sbit switcher = P1^0;
sbit D0_ON = P1^1;
sbit D1_OFF = P1^2;
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 = J_OFF;while(1){//1. 如果a按键被按下,设定为开启警报模式if(D0_ON == 1){//长响,表示进入警报模式switcher = 0;Delay2000ms();switcher = 1;//设定警报模式标记mark = J_ON ;}//2. 如果b按键被按按下,设定为关闭警报模式if(D1_OFF == 1){//短响,表示进入解除警报模式switcher = 0;Delay500ms();switcher = 1;//设定警报解除模式标记mark = J_OFF ;}//3. 如果标记是在警报模式下if(mark == J_ON){//3.1 如果发生了震动if(vibrate == 0){//喇叭响,给继电器低电平,导通switcher = 0;}//3.2 如果不发生震动else{//喇叭不响,给继电器高电平,不导通switcher = 1;}}}
}