找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2783|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的電動車防盜仿真修改數(shù)碼管顯示(最終版本)源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:312929 發(fā)表于 2021-4-8 10:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機的電動車防盜系統(tǒng)設(shè)計數(shù)碼管顯示。ㄗ罱K版本)
文件全部放在附件中了,自行下載,包含電路圖、仿真圖、流程圖、仿真、程序。

電動車防盜仿真修改數(shù)碼管顯示后最后版本.zip (796.47 KB, 下載次數(shù): 57) 功能如下:
1. 遙控器與主機采用315m無線方式通信,兩路檢測(震動+人體);
2. 遙控器上3個按鍵,功能是布防、撤防和報警提示;
3. 按下布防按鍵,主板人體感應(yīng)模塊和震動傳感器檢測人體和震動,當(dāng)檢測到有信號時,相應(yīng)的LED燈亮,蜂鳴器響報警。30S后停止報警,也可以通過撤防按鍵取消報警;
4. 當(dāng)在布防狀態(tài),兩個傳感器都檢測到信號,就都報警,同時對應(yīng)的指示燈亮,一路檢測到信號,也會有相應(yīng)的指示燈亮和報警;
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布防標(biāo)志,flag1布防倒計時標(biāo)志
uc t,t1,js;                        //定時器專用變量

void delay(ui x)        //延時函數(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))        //在報警等待時按下布防鍵
        {
                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))        //震動傳感器按下,人體傳感器必然起作用,但是人體傳感器觸發(fā)震動傳感器不一定觸發(fā)//
        {
            
                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;                //關(guān)閉顯示
                                flag1=0;
                                baojing=1;        //關(guān)閉蜂鳴器
                                flag=0;                //停止計時器計時
                                TR0=0;                //關(guān)閉計時器
                                led1=1;
                                led2=1;
                                jdq=1;
                        }
                }
        }
}

void init()        //初始化函數(shù)
{
        TH0=0x4b;
        TL0=0xff;
        TMOD=0x01;
        EA=1;
        ET0=1;
        TR0=0;                //定時器初始化
        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ù)
{
        TH0=0x4b;
        TL0=0xff;                //重新賦初值
        t++;
        if(t==20)
        {
                t=0;
                t1++;
                if(t1==2)//計時到30s時開啟布防數(shù)碼管停止顯示  關(guān)閉定時器   
                {
                        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;        //關(guān)閉蜂鳴器
                        flag=0;                //停止計時器計時
                        TR0=0;                //關(guān)閉計時器
                        led1=1;
                        led2=1;
                        jdq=1;
                        t=0;
                        t1=0;                        //清零計時器
                        TR0=1;                        //打開計時器
                }
                t=0;
        }
}


評分

參與人數(shù) 1黑幣 +90 收起 理由
admin + 90 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:312929 發(fā)表于 2021-4-8 10:17 | 只看該作者
仿真軟件需要用8.7版本以上才能打開哦
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表