STM32单片机电子密码锁设计详解

一.硬件方案

           本设计主要由STM32单片机+最小系统+LCD1602液晶显示模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+矩阵键盘模块+AT24C02芯片模块;如图:

 

二.设计功能

1.采用矩阵键盘输入、1602液晶显示、AT24C02实现存储的密码掉电保存、继电器模拟开锁。
2.六位数字密码(0-9),更改密码时需要先验证初始密码,初始密码正确,输入两次新密码,两次输入一致即更改密码成功。
3.开锁时密码输入错误,声光报警提示。
4.如修改的密码忘记,可以通过管理员重置。

三.设计原理图

1.原理图主要采用AD软件进行设计,如图:

2.PCB图如下:


 

 

四.软件设计

1.主程序源码
 

int main(void)
{
    BEEP_Init();
    LED_Init();
    delay_init();  
    LCD1602_Init();
    KEY_Init();
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    TIM2_Int_Init(4999,7199);
  TIM3_Int_Init(29,35999);
    TIM4_Int_Init(4999,7199);//每500ms计算一次速度的值,并显示
    .....

    TIM_Cmd(TIM3, ENABLE);
    STMFLASH_Read(ADDR_hum_up_1,(u16*)flash1,sizeof(flash1));
    setpass_flag=flash1[0];
    STMFLASH_Read(ADDR_hum_up_2,(u16*)flash2,sizeof(flash2));
    for(j=0;j<6;j++)
    {
        setpassword1[j]=flash2[j];
        
    }
    j=0;
    
    open_flag=1;
    pass_shuru=0;
    while(1)
    {
        mound();
        if(down_flag==2)
        {
            GPIO_ResetBits(GPIOC,GPIO_Pin_13);
        }

        if(down_flag==5)
        {
            down_flag=0;
            if(setpass_flag11==2)
            {
             TIM_Cmd(TIM2, DISABLE);
            }
            else
            {            
                open_flag=1;
              pass_shuru=0;
              GPIO_ResetBits(GPIOC,GPIO_Pin_13);
              TIM_Cmd(TIM2, DISABLE);
                GPIO_ResetBits(GPIOB,GPIO_Pin_0);
            }

        }
        
        if(errtime_flag==2)
        {
            GPIO_ResetBits(GPIOC,GPIO_Pin_13);
        }

        if(errtime_flag==3)
        {
            GPIO_SetBits(GPIOC,GPIO_Pin_13);
        }

        if(errtime_flag==4)
        {
            GPIO_ResetBits(GPIOC,GPIO_Pin_13);
        }

        if(errtime_flag==5)
        {
            GPIO_SetBits(GPIOC,GPIO_Pin_13);
        }

        if(errtime_flag==6)
        {
            open_flag=1;
            pass_shuru=0;
            errtime_flag=0;
            GPIO_ResetBits(GPIOC,GPIO_Pin_13);
            TIM_Cmd(TIM4, DISABLE);
        }

    }   

}

链接:https://pan.baidu.com/s/1n37IfldC7D0oecjxW5K00A?pwd=yjv2 
提取码:yjv2

物联沃分享整理
物联沃-IOTWORD物联网 » STM32单片机电子密码锁设计详解

发表评论