找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7244|回复: 19
收起左侧

STM32单片机FPC1020指纹门锁程序

  [复制链接]
ID:215520 发表于 2019-2-20 16:21 | 显示全部楼层 |阅读模式
项目方案:
(1)、刷取指纹,指纹识别正确,马上开门
(2)、蜂鸣器提醒,设备的运行状态
(3)OLED实时显示当前时间,和用户操作情况
(4)、门内自动开门,外来访客,用户可无线蓝牙实现开门

制作出来的实物图如下:

PCB版正面

PCB版正面

PCB背面

PCB背面


主函数代码:
  1. uint8_t percent;
  2. uint16_t ad;//ad采集到值
  3. uint16_t t = 0,i = 0;
  4. int main(void)
  5. {               
  6.         SystemInit();//系统时钟初始化
  7.         NVIC_Configuration();//中断向量优先级分组2(抢占优先级2位;子优先级2位)
  8.         delay_init();//延时函数初始化
  9.         uart_init(9600);//串口一初始化
  10.         USART3_Init(9600);//串口三初始化 -- Bluetooth初始化
  11.         FPC1020_Init();//初始化指纹输入接口        
  12.         //LED_Init();//LED初始化
  13.         KEY_Init();//按键初始化
  14.         Beep_Init();//蜂鸣器初始化
  15.         Adc_Init();//初始化ADC
  16.         RTC_Init();//RTC初始化
  17.         Door_Init();//舵机初始化
  18.         OLED_Init();//OLED初始化
  19.         OLED_Clear();//OLED清屏
  20.         WWDG_Init(0x7F, 0x5F, WWDG_Prescaler_8);//窗口看门狗计数器值为7f,窗口寄存器为5f,分频数为8         
  21.         //IWDG_Init(4, 625);  //分频数为64,重载值为625,溢出时间为1s                count = 1 / 40 * 64 * 625
  22.         while(1)
  23.         {
  24.                 if(t++ / 200)
  25.                 {
  26.                         t = 0;//清零
  27.                         ad = Get_Adc_Average(0, 10);//获取AD值
  28.                         percent = ad * ((3.3 / 4096) / 2.9090) * 100;//转化为电量百分比   12 * (24 / (24 + 75)) = 2.90909088
  29.                         //OLED_Clear();//OLED清屏
  30.                         OLED_Static_Display();//固定显示"二零九指纹锁"
  31.                         Battery_Display(percent);//电量显示(0% - 100%)
  32.                         OLED_Display_RealDate(calendar.w_year, calendar.w_month, calendar.w_date, calendar.week);//显示年月日               
  33.                         //LED0 =! LED0;//工作指示灯
  34.                 }
  35. //                if(Door_Flag && Door_Status_Flag)//蓝牙开门--门的状态为关闭时-->开门
  36. //                        Open_Door();//开门        
  37. //                if((i++ / 30) && Door_Status_Flag)//延时时间到和门关闭的时候同时触发测距
  38. //                //if(i++ / 30)
  39. //                {
  40. //                        i = 0;
  41. //                        USART1_Send_Byte(0x55);//触发测距
  42. //                }
  43.                 if(Door_Status_Flag)//门关闭的时候
  44.                 {
  45.                         if(i++ / 30)
  46.                         {
  47.                                 i = 0;//重新计数
  48.                                 USART1_Send_Byte(0x55);//触发测距
  49.                         }
  50.                         if(Door_Flag)//蓝牙开门
  51.                                 Open_Door();//开门        
  52.                         delay_ms(10);//延时100ms
  53.                 }
  54.                 OLED_Display_RealTime(calendar.hour, calendar.min, calendar.sec);//显示时分秒
  55.                 KEY_Judge();//按键扫描
  56.                 FPC1020_Work();//指纹模块工作函数        
  57.                 //delay_ms(1);//延时1ms
  58.                 //IWDG_Feed();//独立看门狗喂狗        
  59.         }               

  60. }
复制代码


0.png

全部资料51hei下载地址:
指纹锁项目.7z (394.01 KB, 下载次数: 161)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:215520 发表于 2019-2-20 16:29 | 显示全部楼层
PCB文件和KEIL工程文件:链接:https://pan.baidu.com/s/11cXARBifUX3iN6JJvGcvRw  提取码:wzsm
回复

使用道具 举报

ID:215520 发表于 2019-2-21 11:38 | 显示全部楼层
指纹门锁PCB文件:链接:https://pan.baidu.com/s/1uwodHKiOb4-iP5VPaN83yQ
提取码:6qbe
回复

使用道具 举报

ID:337069 发表于 2019-2-23 11:37 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:461296 发表于 2019-2-23 14:05 | 显示全部楼层
谢谢分享,学习一下
回复

使用道具 举报

ID:482047 发表于 2019-2-28 11:35 | 显示全部楼层
如果是做的上位机显示指纹图像那应该要怎么下手呢
回复

使用道具 举报

ID:482047 发表于 2019-2-28 11:37 | 显示全部楼层
可以加个联系方式请教一下吗
回复

使用道具 举报

ID:221675 发表于 2019-3-1 00:00 | 显示全部楼层
威武啊,谢谢分享
回复

使用道具 举报

ID:215520 发表于 2019-3-13 11:17 | 显示全部楼层
yoyows 发表于 2019-2-28 11:37
可以加个联系方式请教一下吗

qq:1243675961
回复

使用道具 举报

ID:362398 发表于 2019-3-13 14:49 | 显示全部楼层
感谢分享,下载学习
回复

使用道具 举报

ID:398094 发表于 2019-7-1 12:05 | 显示全部楼层
感谢分享,下载学习
回复

使用道具 举报

ID:379683 发表于 2019-7-1 20:53 | 显示全部楼层
谢谢大佬

回复

使用道具 举报

ID:421308 发表于 2019-7-5 15:40 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:613468 发表于 2019-9-19 10:30 | 显示全部楼层
学习,多谢!
回复

使用道具 举报

ID:613538 发表于 2019-9-19 13:59 | 显示全部楼层
感谢分享,下载学习
回复

使用道具 举报

ID:478023 发表于 2019-11-6 10:15 | 显示全部楼层
感谢分享,下载学习
回复

使用道具 举报

ID:563554 发表于 2019-12-28 10:24 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

ID:471352 发表于 2019-12-31 14:53 | 显示全部楼层
谢谢大佬让我学习!
回复

使用道具 举报

ID:665633 发表于 2020-6-16 08:37 | 显示全部楼层
十分感谢大佬
回复

使用道具 举报

ID:844609 发表于 2021-2-4 20:43 | 显示全部楼层
大佬,想问一下,指纹模块检测到手指后,那个输出的电压是多少,我测的只有0.3V,单片机根本检测不到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表