国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

    • 方案介紹
    • 附件下載
    • 相關(guān)推薦
    申請入駐 產(chǎn)業(yè)圖譜

    基于51單片機(jī)的藍(lán)牙密碼鎖設(shè)計(jì)

    2024/10/22
    2678
    加入交流群
    掃碼加入
    獲取工程師必備禮包
    參與熱點(diǎn)資訊討論

    有需要資料的可了解一下.docx

    共1個(gè)文件

    本設(shè)計(jì)以STC89C52單片機(jī)為核心控制器,加上其他的模塊一起組成藍(lán)牙密碼鎖的整個(gè)系統(tǒng),其中包含中控部分、輸入部分和輸出部分。

    中控部分采用了STC89C52單片機(jī),其主要作用是獲取輸入部分?jǐn)?shù)據(jù),經(jīng)過內(nèi)部處理,控制輸出部分。

    輸入由五部分組成:
    第一部分是DS1302時(shí)鐘模塊,通過該模塊可檢測當(dāng)前的時(shí)間;
    第二部分是儲(chǔ)存模塊,采用AT24C02芯片,存儲(chǔ)按鍵輸入的信息;
    第三部分是DS18B20溫度檢測模塊,通過該模塊可檢測當(dāng)前的溫度;
    第四部分是4*4矩陣鍵盤,按鍵主要功能有一鍵關(guān)門、顯示時(shí)間、重新設(shè)置密碼、取消鍵、確認(rèn)鍵、輸入密碼;
    第五部分是供電電路,給整個(gè)系統(tǒng)進(jìn)行供電。

    輸出由三部分組成:
    第一部分是LCD1602顯示模塊, 通過該模塊可以顯示門的開關(guān)狀態(tài)、輸入的密碼顯示、重置密碼時(shí)的顯示等;
    第二部分是藍(lán)牙模塊,通過該模塊可連接手機(jī);
    第三部分是蜂鳴器,當(dāng)鍵盤鎖定且有按鍵按下時(shí),蜂鳴器作為按鍵音提醒。

    #include "main.h"

    #include "lcd1602.h"

    #include "key.h"

    #include "IIC.h"

    #include "ds18b20.h"

    #include "ds1302.h"

    #include "uart.h"

    /**********************************

    變量定義

    **********************************/

    extern char time_buf[8];

    extern uchar uart_num;

    uint temp_value;

    uint randdata;

    uint randdata1;

    uchar TimeOutCounter = 0;

    uchar LeftOrRight = 0;

    uchar key_bianma = 0; //按鍵編碼標(biāo)志位變量

    uchar key_num = 0; //按鍵掃描標(biāo)志位變量

    uchar flag_key_en = 1; //按鍵使能標(biāo)志位變量

    uchar flag_reset_password = 0; //重置密碼標(biāo)志位變量

    uchar flag_reset_adminpassword = 0;

    uchar flag_stat_door = 0; //門狀態(tài)標(biāo)志位

    uchar flag_reset_password_num = 0; //重置密碼次數(shù)標(biāo)志位變量

    uchar flag_error_num = 0; //密碼錯(cuò)誤次數(shù)標(biāo)志位變量

    uchar flag_error_time = 180; //密碼錯(cuò)誤時(shí)間標(biāo)志位變量

    uchar password[6] = {1,2,3,4,5,6}; //初始密碼數(shù)組

    uchar adminpassword[6] = {1,2,3,4,5,6}; //初始管理員密碼數(shù)組

    uchar password_input[6] = {0,0,0,0,0,0}; //輸入密碼數(shù)組

    uchar password_reset[6] = {0,0,0,0,0,0}; //重置密碼數(shù)組

    uchar password_num = 0; //密碼數(shù)量標(biāo)志位變量

    uint time_jishi = 0; //10ms計(jì)時(shí)變量

    /**********************************

    函數(shù)聲明

    **********************************/

    void Delay_function(uint x); //延時(shí)函數(shù)

    void Key_function(void); //按鍵函數(shù)

    void Ensure_function(void); //確定函數(shù)

    void Reset_password_function(void); //重置密碼函數(shù)

    void Write_init_EEPROM();

    void Timer0Init();

    /****

    ******* 主函數(shù)

    *****/

    void main()

    {

    Timer0Init();

    Uart_Init();

    Ds1302_Init();

    Lcd1602_Init(); //LCD1602初始化

    Delay_function(50); //延時(shí)50ms

    lcd1602_clean(); //清屏

    Delay_function(50); //延時(shí)50ms

    Init_IIC(); //總線初始化,拉高釋放總線

    Delay_function(50); //延時(shí)50ms

    //寫過一次后關(guān)閉,無需重復(fù)寫初值

    // Write_init_EEPROM(); //寫入初始密碼123456到E2PROM

    // ds1302_write_time();

    lcd1602_display_str(1,0,"===Coded Lock===");//初始化界面

    lcd1602_display_str(2,0,"Password:");

    while(1)

    {

    //將密碼從24C02中讀出來,包括管理員密碼以及使用密碼

    password[0]=read_add(1);

    password[1]=read_add(2);

    password[2]=read_add(3);

    password[3]=read_add(4);

    password[4]=read_add(5);

    password[5]=read_add(6);

    adminpassword[0]=read_add(7);

    adminpassword[1]=read_add(8);

    adminpassword[2]=read_add(9);

    adminpassword[3]=read_add(10);

    adminpassword[4]=read_add(11);

    adminpassword[5]=read_add(12);

    Key_function(); //按鍵函數(shù)

    Reset_password_function(); //重置密碼函數(shù)

    //輸入密碼三次錯(cuò)誤后執(zhí)行如下程序

    if(flag_error_num == 3)

    {

    flag_key_en = 0;

    紛傳文章借鑒與此

    • 有需要資料的可了解一下.docx
      下載

    相關(guān)推薦

    方案定制

    去合作
    方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!
    桃园市| 昌邑市| 津南区| 阿鲁科尔沁旗| 都江堰市| 岳阳县| 萨迦县| 乌拉特中旗| 芒康县| 措勤县| 如皋市| 彭水| 疏勒县| 湟源县| 潼南县| 鸡西市| 都昌县| 阿荣旗| 天门市| 东乌| 凤凰县| 永昌县| 清水河县| 淮阳县| 金湖县| 渝中区| 曲沃县| 大城县| 石楼县| 平顶山市| 社会| 灵宝市| 北票市| 庆城县| 罗田县| 盘山县| 洞口县| 静乐县| 张北县| 兴文县| 那曲县|