基于51單片機(jī)的電動(dòng)車防盜系統(tǒng)設(shè)計(jì) 數(shù)碼管顯示!(最終版本)
文件全部放在附件中了,自行下載,包含電路圖、仿真圖、流程圖、仿真、程序。
51hei.png (2.82 KB, 下載次數(shù): 67)
下載附件
文件包含的內(nèi)容很全
2021-4-8 16:15 上傳
電動(dòng)車防盜仿真修改數(shù)碼管顯示后最后版本.zip
(796.47 KB, 下載次數(shù): 57)
2021-4-8 10:14 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
功能如下:
1. 遙控器與主機(jī)采用315m無(wú)線方式通信,兩路檢測(cè)(震動(dòng)+人體); 2. 遙控器上3個(gè)按鍵,功能是布防、撤防和報(bào)警提示; 3. 按下布防按鍵,主板人體感應(yīng)模塊和震動(dòng)傳感器檢測(cè)人體和震動(dòng),當(dāng)檢測(cè)到有信號(hào)時(shí),相應(yīng)的LED燈亮,蜂鳴器響報(bào)警。30S后停止報(bào)警,也可以通過(guò)撤防按鍵取消報(bào)警; 4. 當(dāng)在布防狀態(tài),兩個(gè)傳感器都檢測(cè)到信號(hào),就都報(bào)警,同時(shí)對(duì)應(yīng)的指示燈亮,一路檢測(cè)到信號(hào),也會(huì)有相應(yīng)的指示燈亮和報(bào)警; 5.加繼電器端口模擬被盜取時(shí)切斷整車電源。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
O1Y[95BF`]XN[S%ZNWE@0CN.png (105.96 KB, 下載次數(shù): 56)
下載附件
仿真圖
2021-4-8 10:06 上傳
電路原理圖如下:
MFN[E%6Z_]943EXGLDLAU3B.png (160.54 KB, 下載次數(shù): 59)
下載附件
電路原理圖(有源文件)
2021-4-8 10:03 上傳
單片機(jī)程序很簡(jiǎn)潔:
#include <reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit SOS = P1^2;//測(cè)試
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;//第一路報(bào)警
sbit sos2=P0^1;//第二路報(bào)警 //熱釋電
bit bdata flag,flag1;//flag布防標(biāo)志,flag1布防倒計(jì)時(shí)標(biāo)志
uc t,t1,js; //定時(shí)器專用變量
void delay(ui x) //延時(shí)函數(shù)1ms
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void kongzhi() //控制函數(shù)
{
if((bufang==1)&&(flag==0)) //在報(bào)警等待時(shí)按下布防鍵
{
delay(10);
if((bufang==1)&&(flag==0))
{
P2=0x85; //顯示字母b
t=0;
t1=0; //清零計(jì)時(shí)器
TR0=1; //打開計(jì)時(shí)器
baojing=0;
led1=0;
led2=0;
delay(500);
baojing=1;
led1=1;
led2=1;
}
}
if((flag==1)&&(sos1==0)) //震動(dòng)傳感器按下,人體傳感器必然起作用,但是人體傳感器觸發(fā)震動(dòng)傳感器不一定觸發(fā)//
{
flag1=1; //蜂鳴器鳴響
led1=0;
led2=0;
jdq=0;
TR0=1; //開啟定時(shí)器
}
if((flag==1)&&(sos2==0)) //報(bào)警按鍵按下
{
TR0=1;
led2=0;
}
if((flag==0)&&(SOS==1)) //報(bào)警按鍵按下
{
flag1=1; //蜂鳴器鳴響
led1=0;
led2=0;
P2=0xbf; //顯示"-"
jdq=0;
TR0=1; //開啟定時(shí)器
}
if(chefang==1) //撤防鍵按下
{
delay(10);
if(chefang==1)
{
{
P2=0xff; //關(guān)閉顯示
flag1=0;
baojing=1; //關(guān)閉蜂鳴器
flag=0; //停止計(jì)時(shí)器計(jì)時(shí)
TR0=0; //關(guān)閉計(jì)時(shí)器
led1=1;
led2=1;
jdq=1;
}
}
}
}
void init() //初始化函數(shù)
{
TH0=0x4b;
TL0=0xff;
TMOD=0x01;
EA=1;
ET0=1;
TR0=0; //定時(shí)器初始化
bufang=0;
SOS=0;
chefang=0; //按鍵初始化
jdq=1;
}
void main() //主函數(shù)
{
init(); //調(diào)用初始化
while(1)//循環(huán)
{
kongzhi();//控制函數(shù)
}
}
void time() interrupt 1//定時(shí)器函數(shù)
{
TH0=0x4b;
TL0=0xff; //重新賦初值
t++;
if(t==20)
{
t=0;
t1++;
if(t1==2)//計(jì)時(shí)到30s時(shí)開啟布防數(shù)碼管停止顯示 關(guān)閉定時(shí)器
{
t1=0;
flag=1;
P2=0xff;
TR0=0;
}
}
if((t>=10)&&(flag1==1))//報(bào)警
{
baojing=~baojing;
js++;
if(js==120)
{
js=0;
flag1=0;
baojing=1; //關(guān)閉蜂鳴器
flag=0; //停止計(jì)時(shí)器計(jì)時(shí)
TR0=0; //關(guān)閉計(jì)時(shí)器
led1=1;
led2=1;
jdq=1;
t=0;
t1=0; //清零計(jì)時(shí)器
TR0=1; //打開計(jì)時(shí)器
}
t=0;
}
}
|