• 基于stm32单片机的按键智能电子密码锁


    资料编号:127  下面是相关功能视频演示:

    127-基于stm32单片机的按键智能电子密码锁(源码+仿真+原理图+PCB+参考论文)

    功能介绍:

    采用stm32单片机作为主控,矩阵键盘来进行密码输入,LCD1602显示当前状态,初始密码为147258,可以在程序里进行更换,密码输入正确会亮红灯蜂鸣器提醒代表开锁成功,如果密码输入错误会红灯闪烁并且蜂鸣器报警。绿灯是运行闪烁灯

    下面是原理图展示:采用AD绘制 

     下面是PCB展示:采用AD绘制

    下面是部分程序展示:

    while(1)
      {        
            Key_Value = Key_Scan();
                
            if(Key_Value < 10)
            {
                disp_num[i] = Key_Value;
                i++;
                if(i > 5)
                    i = 0;
                
                Key_Value = 27;
            }                

            if(Key_Value == 16)
            {                
                for(i = 0; i < 6; i++)
                {
                    if(disp_num[i] != password[i])
                    {
                        flag = 1; //输入错误
                        break;
                    }
                    else
                    {
                        flag = 0;
                    }
                }
                
                if(flag == 1) //输入错误
                {
                    LCD_write_string(6, 1, Disp_NO);
                    LED_Blink (3, 200);        
                    BEEP_Blink(3, 200);        
                    LCD_write_string(6, 1, Disp_NONE);
                }
                else          //输入正确
                {
                    LCD_write_string(6, 1, Disp_YES);
                    LED_Blink (1, 500);        
                    BEEP_Blink(1, 500);        
                    LCD_write_string(6, 1, Disp_NONE);
                }
                
                memset(disp_num, 27, 6);
                Key_Value = 27;
                i = 0;            
            }

            if(Key_Value == 13)
            {
                memset(disp_num, 27, 6);
                Key_Value = 27;
                i = 0;            
            }

            for(uint8_t j = 0; j < 6; j++)
            {
                if(disp_num[j] > 9)
                    disp_num_tmp[j] = 0;
                else
                    disp_num_tmp[j] = disp_num[j];
            }
            sprintf(toDisplay, DISP_FORMAT, disp_num_tmp[0], disp_num_tmp[1], disp_num_tmp[2], disp_num_tmp[3], disp_num_tmp[4], disp_num_tmp[5]);

            HAL_Delay(20);        
      }
    }

     下面是该资料的分享下载链接:

    https://pan.baidu.com/s/1y3c53dMmSn9-F7TRxaxIZQ?pwd=zwmp

  • 相关阅读:
    PHP 进阶之路 - 亿级 pv 网站架构实战之性能优化
    shell——概述、变量、数组
    02 - DCM模块的配置容器
    Jupyter Notebook,学习python数据科学最好的学习开发环境
    Spring Boot 中使用 Swagger
    JDS-12时间继电器
    lua-arm平台交叉编译
    机试真题3 进制转换2 高精度除法
    分页存储逻辑地址转物理地址
    不同背景+目标图像 Augmentation 代码及使用方法
  • 原文地址:https://blog.csdn.net/m0_74295839/article/details/127836526