0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

白茶茶668 ? 來源:白茶茶668 ? 作者:白茶茶668 ? 2023-08-01 01:00 ? 次閱讀

本設(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;

wKgZomTH6MiAVD0DAAMgFt8ayLg135.png

?

wKgaomTH6MiAeLVDAAN425NnQEE114.png

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    114

    文章

    5684

    瀏覽量

    168085
  • 密碼鎖
    +關(guān)注

    關(guān)注

    6

    文章

    249

    瀏覽量

    34786
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    272

    文章

    5689

    瀏覽量

    122167
收藏 人收藏

    評論

    相關(guān)推薦

    基于51單片機(jī)的電子密碼鎖程序

    基于51單片機(jī)的電子密碼鎖程序,51單片機(jī)控制的萬能密碼鎖系統(tǒng),PROTEUS仿真文件初始
    發(fā)表于 07-14 07:26

    基于單片機(jī)MCS_51的智能密碼鎖設(shè)計(jì)

    基于單片機(jī)MCS_51的智能密碼鎖設(shè)計(jì)。
    發(fā)表于 02-17 16:50 ?28次下載

    基于51單片機(jī)電子密碼鎖的Proteus仿真設(shè)計(jì)

    基于51單片機(jī)電子密碼鎖的Proteus仿真設(shè)計(jì)
    發(fā)表于 06-17 16:00 ?77次下載

    基于51單片機(jī)的矩陣鍵盤電子密碼鎖

    基于51單片機(jī)的矩陣鍵盤電子密碼鎖,使用矩陣鍵盤輸入四位密碼,有錯(cuò)誤和正確提示音。
    發(fā)表于 07-21 11:23 ?116次下載

    單片機(jī)密碼鎖

    STC80C51--單片機(jī)密碼鎖源程序。
    發(fā)表于 09-01 15:44 ?37次下載

    51單片機(jī)密碼鎖

    基于89C51單片機(jī)的時(shí)間可調(diào),密碼可更改斷電保存的密碼鎖設(shè)計(jì),包括源代碼和說明書,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-20 17:34 ?50次下載

    基于51單片機(jī)密碼鎖資源下載

    基于51單片機(jī)密碼鎖資源下載
    發(fā)表于 08-12 17:49 ?64次下載

    基于51單片機(jī)密碼鎖

    本次的項(xiàng)目是基于51單片機(jī)密碼鎖,適合用來作為課程設(shè)計(jì)主要實(shí)現(xiàn)了:密碼鎖功能,通過矩陣按鍵輸入密碼,輸入范圍為0-F,共有四位;同時(shí),也可
    發(fā)表于 11-04 12:36 ?37次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>密碼鎖</b>

    51單片機(jī)密碼鎖案例

    51單片機(jī)密碼鎖案例免費(fèi)下載。
    發(fā)表于 04-27 15:58 ?55次下載

    基于51單片機(jī)密碼鎖(掉電可記憶密碼)例程源代碼

    基于51單片機(jī)密碼鎖(掉電可記憶密碼)例程源代碼
    發(fā)表于 05-16 11:13 ?18次下載

    如何實(shí)現(xiàn)基于51單片機(jī)藍(lán)牙密碼鎖設(shè)計(jì)呢?

    本設(shè)計(jì)以STC89C52單片機(jī)為核心控制器,加上其他的模塊一起組成藍(lán)牙密碼鎖的整個(gè)系統(tǒng),其中包含中控部分、輸入部分和輸出部分。
    發(fā)表于 08-21 16:29 ?686次閱讀
    如何實(shí)現(xiàn)基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>藍(lán)牙</b><b class='flag-5'>密碼鎖</b>設(shè)計(jì)呢?

    51單片機(jī)實(shí)現(xiàn)電子密碼鎖

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)實(shí)現(xiàn)電子密碼鎖.zip》資料免費(fèi)下載
    發(fā)表于 10-11 09:21 ?2次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)電子<b class='flag-5'>密碼鎖</b>

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

    基于51單片機(jī)藍(lán)牙密碼鎖(實(shí)物)
    發(fā)表于 01-02 09:44 ?11次下載

    基于51單片機(jī)的電子密碼鎖設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電子密碼鎖設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:20 ?24次下載

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

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)藍(lán)牙密碼鎖設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:14 ?1次下載