基于51单片机的电动车防盗系统设计数码管显示!(最终版本)
文件全部放在附件中了,自行下载,包含电路图、仿真图、流程图、仿真、程序。
电动车防盗仿真修改数码管显示后最后版本.zip
(796.47 KB, 下载次数: 57)
功能如下:
1. 遥控器与主机采用315m无线方式通信,两路检测(震动+人体); 2. 遥控器上3个按键,功能是布防、撤防和报警提示; 3. 按下布防按键,主板人体感应模块和震动传感器检测人体和震动,当检测到有信号时,相应的LED灯亮,蜂鸣器响报警。30S后停止报警,也可以通过撤防按键取消报警; 4. 当在布防状态,两个传感器都检测到信号,就都报警,同时对应的指示灯亮,一路检测到信号,也会有相应的指示灯亮和报警; 5.加继电器端口模拟被盗取时切断整车电源。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
电路原理图如下:
单片机程序很简洁:
#include <reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit SOS = P1^2;//测试
sbit bufang = P1^4;//布放按键
sbit chefang= P1^3;//撤防
sbit baojing= P1^1;//蜂鸣器
sbit jdq = P1^0;//继电器
sbit led1=P0^2;
sbit led2=P0^3;
sbit sos1=P0^0;//第一路报警
sbit sos2=P0^1;//第二路报警 //热释电
bit bdata flag,flag1;//flag布防标志,flag1布防倒计时标志
uc t,t1,js; //定时器专用变量
void delay(ui x) //延时函数1ms
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void kongzhi() //控制函数
{
if((bufang==1)&&(flag==0)) //在报警等待时按下布防键
{
delay(10);
if((bufang==1)&&(flag==0))
{
P2=0x85; //显示字母b
t=0;
t1=0; //清零计时器
TR0=1; //打开计时器
baojing=0;
led1=0;
led2=0;
delay(500);
baojing=1;
led1=1;
led2=1;
}
}
if((flag==1)&&(sos1==0)) //震动传感器按下,人体传感器必然起作用,但是人体传感器触发震动传感器不一定触发//
{
flag1=1; //蜂鸣器鸣响
led1=0;
led2=0;
jdq=0;
TR0=1; //开启定时器
}
if((flag==1)&&(sos2==0)) //报警按键按下
{
TR0=1;
led2=0;
}
if((flag==0)&&(SOS==1)) //报警按键按下
{
flag1=1; //蜂鸣器鸣响
led1=0;
led2=0;
P2=0xbf; //显示"-"
jdq=0;
TR0=1; //开启定时器
}
if(chefang==1) //撤防键按下
{
delay(10);
if(chefang==1)
{
{
P2=0xff; //关闭显示
flag1=0;
baojing=1; //关闭蜂鸣器
flag=0; //停止计时器计时
TR0=0; //关闭计时器
led1=1;
led2=1;
jdq=1;
}
}
}
}
void init() //初始化函数
{
TH0=0x4b;
TL0=0xff;
TMOD=0x01;
EA=1;
ET0=1;
TR0=0; //定时器初始化
bufang=0;
SOS=0;
chefang=0; //按键初始化
jdq=1;
}
void main() //主函数
{
init(); //调用初始化
while(1)//循环
{
kongzhi();//控制函数
}
}
void time() interrupt 1//定时器函数
{
TH0=0x4b;
TL0=0xff; //重新赋初值
t++;
if(t==20)
{
t=0;
t1++;
if(t1==2)//计时到30s时开启布防数码管停止显示 关闭定时器
{
t1=0;
flag=1;
P2=0xff;
TR0=0;
}
}
if((t>=10)&&(flag1==1))//报警
{
baojing=~baojing;
js++;
if(js==120)
{
js=0;
flag1=0;
baojing=1; //关闭蜂鸣器
flag=0; //停止计时器计时
TR0=0; //关闭计时器
led1=1;
led2=1;
jdq=1;
t=0;
t1=0; //清零计时器
TR0=1; //打开计时器
}
t=0;
}
}
|