通过今天的学习,我把电动车报警项目做了一下,真的挺有趣的,代码如下.
#include “reg52.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_();
//_nop_();
i = 85;
j = 12;
k = 155;
do
{
do
{
while (–k);
} while (–j);
} while (–i);
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;//_nop_();
//_nop_();
i = 22;
j = 3;
k = 227;
do
{
do
{
while (–k);
} while (–j);
} while (–i);
}
void main(){
//查询方式哪个按键被按下
while(1){ mark = J_OFF;
//如果A键被按下,设定为警报模式
if(D0_ON==1){
//长响,表示进入警报模式
switcher = 0;
Delay2000ms();
switcher = 1;
//设定警报模式标记
mark = J_ON;
}
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;
}
}}
}