0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机的蓝牙密码锁设计

白茶茶668 来源:白茶茶668 作者:白茶茶668 2023-08-01 01:00 次阅读

本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成蓝牙密码锁的整个系统,其中包含中控部分、输入部分和输出部分。中控部分采用了STC89C52单片机,其主要作用是获取输入部分数据,经过内部处理,控制输出部分。输入由五部分组成,第一部分是DS1302时钟模块,通过该模块可检测当前的时间;第二部分是储存模块,采用AT24C02芯片,存储按键输入的信息;第三部分是DS18B20温度检测模块,通过该模块可检测当前的温度;第四部分是4*4矩阵键盘,按键主要功能有一键关门、显示时间、重新设置密码、取消键、确认键、输入密码;第五部分是供电电路,给整个系统进行供电。输出由三部分组成,第一部分是LCD1602显示模块, 通过该模块可以显示门的开关状态、输入的密码显示、重置密码时的显示等;第二部分是蓝牙模块,通过该模块可连接手机;第三部分是蜂鸣器,当键盘锁定且有按键按下时,蜂鸣器作为按键音提醒。

#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; //按键编码标志位变量

uchar key_num = 0; //按键扫描标志位变量

uchar flag_key_en = 1; //按键使能标志位变量

uchar flag_reset_password = 0; //重置密码标志位变量

uchar flag_reset_adminpassword = 0;

uchar flag_stat_door = 0; //门状态标志位

uchar flag_reset_password_num = 0; //重置密码次数标志位变量

uchar flag_error_num = 0; //密码错误次数标志位变量

uchar flag_error_time = 180; //密码错误时间标志位变量

uchar password[6] = {1,2,3,4,5,6}; //初始密码数组

uchar adminpassword[6] = {1,2,3,4,5,6}; //初始管理员密码数组

uchar password_input[6] = {0,0,0,0,0,0}; //输入密码数组

uchar password_reset[6] = {0,0,0,0,0,0}; //重置密码数组

uchar password_num = 0; //密码数量标志位变量

uint time_jishi = 0; //10ms计时变量



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

函数声明

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

void Delay_function(uint x); //延时函数

void Key_function(void); //按键函数

void Ensure_function(void); //确定函数

void Reset_password_function(void); //重置密码函数

void Write_init_EEPROM();

void Timer0Init();

/****

******* 主函数

*****/

void main()

{


Timer0Init();

Uart_Init();

Ds1302_Init();

Lcd1602_Init(); //LCD1602初始化

Delay_function(50); //延时50ms

lcd1602_clean(); //清屏

Delay_function(50); //延时50ms

Init_IIC(); //总线初始化,拉高释放总线

Delay_function(50); //延时50ms

//写过一次后关闭,无需重复写初值

// 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(); //按键函数

Reset_password_function(); //重置密码函数

//输入密码三次错误后执行如下程序

if(flag_error_num == 3)

{

flag_key_en = 0;

wKgZomTH6MiAVD0DAAMgFt8ayLg135.png

wKgaomTH6MiAeLVDAAN425NnQEE114.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    112

    文章

    5430

    浏览量

    165670
  • 密码锁
    +关注

    关注

    6

    文章

    249

    浏览量

    34572
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120717
收藏 人收藏

    评论

    相关推荐

    关于51单片机密码锁

    准备用51单片机做个电子密码锁,看了几个例子,但它们的密码位数都是6位的。这是人们习惯还是51单片机
    发表于 05-22 12:42

    基于51单片机的电子密码锁

    基于51单片机的电子密码锁
    发表于 07-04 10:20

    51单片机写的简易密码锁

    51单片机写的简易密码锁
    发表于 03-16 19:10

    51单片机密码锁

    ` 本帖最后由 零下酒酒度 于 2013-5-25 10:14 编辑 1. 电子密码锁采用51单片机作为主控芯片,4x4矩阵键盘作为输入设备,通过LCD1602显示,使用24C02芯片用于存储
    发表于 05-24 10:54

    求基于51单片机的6位密码的电子密码锁的原理图

    求基于51单片机的6位密码的电子密码锁的原理图,和pcb.
    发表于 04-20 11:05

    基于51单片机的电子密码锁程序

    基于51单片机的电子密码锁程序,51单片机控制的万能密码锁系统,PROTEUS仿真文件初始
    发表于 07-14 07:26

    C51单片机学习——密码锁的实现 精选资料分享

    C51单片机学习——密码锁的实现文章目录C51单片机学习——密码锁的实现说在前面:因为我的板子是
    发表于 07-15 09:15

    请问怎样去设计一种基于51单片机密码锁

    怎样去设计一种基于51单片机密码锁?如何对密码锁的开关进行仿真?
    发表于 07-16 11:04

    怎样去设计一种基于51单片机的电子密码锁电路

    怎样去设计一种基于51单片机的电子密码锁电路?基于51单片机的电子密码锁为什么仿真会不成功呢?
    发表于 08-31 07:35

    怎么实现基于STC51单片机密码锁设计?

    怎么实现基于STC51单片机密码锁设计?
    发表于 10-20 06:42

    如何利用51单片机实现密码锁设计?

    如何利用51单片机实现密码锁设计?
    发表于 11-04 07:57

    基于单片机的电子密码锁设计

    单片机电子密码锁Proteus仿真+程序3.6 开锁机构在基于单片机的电子密码锁设计中,用户需要输入密码
    发表于 11-30 08:24

    基于AT89C51单片机的电子密码锁设计

    总体设计本设计是基于AT89C51单片机的电子密码锁设计,实现电子密码锁的基本功能。器件选择序号器件编号Proteus器件名称器件性质参数及说明 1U1AT89C
    发表于 12-13 06:33

    如何实现基于51单片机蓝牙密码锁设计呢?

    本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成蓝牙密码锁的整个系统,其中包含中控部分、输入部分和输出部分。
    发表于 08-21 16:29 449次阅读
    如何实现基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>蓝牙</b><b class='flag-5'>密码锁</b>设计呢?

    基于51单片机蓝牙密码锁设计

    基于51单片机蓝牙密码锁(实物)
    发表于 01-02 09:44 1次下载