#include "reg52.h"
sbit switcher = P1^0;
sbit D0_ON = P1^1;
sbit D2_OFF = P1^2;
sbit vibrate = P1^3;
void Delay1500ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 11;
j = 130;
k = 111;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
int flag = 0;//警报模式状态位,0为关,1为开
while(1)
{
//1.当D0按下,长响1.5秒,开启警报模式
if(D0_ON == 1)
{
switcher = 0;
Delay1500ms();
switcher = 1;
flag = 1;
}
//2.当D2按下,端响0.5秒,取消警报模式
if(D2_OFF == 1)
{
switcher = 0;
Delay500ms();
switcher = 1;
flag = 0;
}
//3.当处于警报模式的时候,发生震动时,继电器打开,不发生震动时,继电器不打开
if(flag == 1)
{
if(vibrate == 0)
{
switcher = 0;
}
}
//4.不处于警报模式的时候,关闭继电器
if(flag == 0)
{
switcher = 1;
}
}
}
C51-电动车简易报警器
最新推荐文章于 2024-06-08 08:15:00 发布