知乎:Fragtex
CSDN: 川明_Fragtex


代码

代码速览:

源码

【闲鱼】https://m.tb.cn/h.U1SDh0Z?tk=npyX2Dqp114 CZ0001 「我在闲鱼发布了【单片机指纹锁代码!!注释详尽!!耦合性低!!模块化封装!!完】」

产品描述

本门禁拥有两个检验模块,指纹识别模式密码输入模式
在使用指纹或者密码打开门禁后可以更改密码或者增删指纹,键入密码一共有三次机会,使用完以后会进入锁定状态并且蜂鸣器报警。

![](https://img-blog.csdnimg.cn/img_convert/fcbcb44c8116b6daaae68599be57157c.png

硬件原理图


需要将舵机和指纹模块的的VCC、GND和单片机链接,然后将舵机的PWM线(我这个舵机的是橙色线)连到P10,然后将指纹模块的TX和RX与单片机的RX和TX相连。接线图如下


软件逻辑图

指纹解锁逻辑

AS608的使用

此处将所有的可能会用到的代码指令封装成了数组,便于下面指纹功能调用的时候调用串口Uart发送指令。


我们将所有的功能通过层层封装,最后只保留了几个接口

  • 添加指纹
  • 搜索指纹
  • 删除指纹库
  • 模式初始化

最后封装出来的头文件如下图所示,在主函数中只要包含这个头就可以直接使用该库了(当然需要你讲串口正确链接)

AS608的串口通信

该模块主要是为了为单片机与指纹模块通信服务的,主要封装了三个功能:

  • 串口初始化
  • 串口发送一个Byte
  • 串口接受一个Byte

此处有坑我们踩到了:就是串口通信在使用之前要用初始化函数配置好定时器,不然单片机会一直连不上指纹 模块。

SG90舵机的使用

SG90外部流出了三个引脚分别是GND、VCC、PWM,我们需要在单片机中模拟符合SG90标准的脉冲信号,改变脉冲信号的占空比来实现,此处详见代码

#include <REGX52.H>
#include "Delay.h"static int k=0;
sbit signal=P1^0;                      //SG90PMW的引脚接线的时候要注意接到这个口//旋转度数的宏定义,更改旋转角度
#define spin0 1
#define spin45 2
#define spin90 3
#define spin135 4
#define spin180 5
unsigned int spin;void timer_init()             //0.5ms定时器初始化
{TMOD=0x01;                        //定时器0工作模式16位计数器ET0=1;                             //允许定时器0中断TR0=1;                               //开启定时器0中断EA=1;                                    //开启总中断TH0=0xFE;TL0=0x33;                         //0.5ms定时对应到Unlock里面那个Delay(500)}void timer_close()
{ET0=0;                                //不允许定时器0中断TR0=0;                              //关闭定时器0中断EA=0;                                    //关闭总中断
}void Timer0() interrupt 1
{TR0=0;                                //关闭计数k=k+1;TH0=0xFE;TL0=0x33;                          //重置使得下次定时器只计时0.5msif(k<=spin){signal=1;}else{signal=0;if(k==40){k=0;}}TR0=1;                             //开启计数}
void delayms(int ms)
{int i,j;for(j=ms;j>0;j--)for(i=110;i>0;i--);
}
void Unlock()
{P1=0x00;timer_init();             //0.5ms定时器初始化spin=spin180;delayms(500);timer_close();          //关闭其中断
}
void Lock()
{P1=0x00;timer_init();                 //0.5ms定时器初始化spin=spin0;delayms(500);P1=0x00;timer_close();               //关闭其中断}

在这个代码中,我们将SG90的PWM引脚插在单片机的P1-0位置

其他

其他模块使用了江科大自化协老师封装的非常好用的模块如LCD1602,Delay,MatrixKey
大家如果想要了解的话可以转至B站深入学习,在此非常感谢他们的精品课程
点击查看【bilibili】


功能流图


成品展示:

详情可以看我们在B站发的视频:
点击查看【bilibili】


PPT下载链接

PPT下载链接如果想要下载可以联系qq2189665826,有偿下载答辩PPT模板,希望大家能够支持一下。如果购买了我愿意提供力所能及的代码讲解服务。

51单片机课程设计 || 基于AS608模块的指纹锁相关推荐

  1. 51单片机课程设计:基于DHT11的温湿度报警器

    51单片机课程设计:基于DHT11的温湿度报警器 本程序适用于51系列单片机,主要用于读取DHT11温湿度模块数值,显示在数码管上,同时还具备温湿度报警功能,当超出预设值,蜂鸣器报警,可在吉林农业大学 ...

  2. 温度报警程序c语言设计,51单片机课程设计:基于DS18B20的温度报警器

    51单片机课程设计:基于DS18B20的温度报警器 本程序用于读取DS18B20温度,同时具备报警功能,工程分为3个文件,main.c.temp.c.temp.h,经本人修改部分代码,适用于吉林农业大 ...

  3. 8155与单片机c语言设计,51单片机课程设计报告-基于8155的8LED显示电子码表设计.doc...

    51单片机课程设计报告 --基于8155的8LED显示电子码表设计 实验目的 本次课程设计是基于51单片机在理论课程的基础上,通过电路设计.理论计算.实际编程.调试.测试.分析查找故障,解决在实际设计 ...

  4. 51单片机课程设计《三路步进电机控制》

    说明:最近抽出了几天时间完成了单片机的课程设计,用了51单片机做了三路步进电机控制器,美名其曰3d打印机控制器(其实是瞎搞的,与3D打印机毫无关系),因为单片机课程设计是在大四上学期,与考研复习时间冲 ...

  5. 单片机课程设计-基于单片机直流电机控制器设计

    本科单片机课程设计,附Proteus仿真效果图 要求: 思路很简单,使用定时器0控制单片机IO口输出不同占空比的触发脉冲即可控制转速 代码参考: #include <reg52.h>#de ...

  6. 单片机课程设计——基于51单片机温湿度检测系统的设计与实现

    本文主要介绍了怎么使用51单片机最小系统板和温湿度传感器制作一个温湿度检测系统. 本次设计主要涉及了温湿度的测量.显示以及实现简单控制.硬件方面有五个模块,即STC89C52单片机主控模块.传感器模块 ...

  7. 51单片机课程设计——利用51单片机的定时器设计一个时钟论文

    计科在读,分享自己做过的作业,欢迎指正,有需要课程设计论文的可以私信我 摘要 单片机是一种数字集成电路芯片,是指集成在一块芯片上的微型计算机.一个比较完整的单片机应该包括微处理器(CPU). 存储器( ...

  8. 51单片机开发设计 基于52单片机的电子琴

    一.系统设计 8个按键可以弹奏8个音符,蜂鸣器可以播放按键弹奏的音乐,数码管会显示相应的音符,通过无线模块可以将按下的音阶数据上传到上位机端并进行显示,可以按照乐谱进行音乐演奏,在与上位机进行通信时会 ...

  9. 智能手环功能模块设计_基于51单片机的智能手环蓝牙模块设计

    龙源期刊网 http://www.qikan.com.cn 基于 51 单片机的智能手环蓝牙模块设计 作者:王烈进 王游司 陈洪燕 孙超 卢宇 来源:<电脑知识与技术> 2018 年第 2 ...

最新文章

  1. Ubuntu查看端口占用情况
  2. 01 菜单栏和工具栏(一)
  3. unity捕捉全景图_DronePan:可捕捉飞机全景的应用程序
  4. SRM 578 DIV 2
  5. STM32工作笔记0037---STM32时钟系统精讲-M3
  6. mysql判断用户名和密码是否正确_怎样分别判断用户名和密码是否正确
  7. Udacity CH2中.bag 文件解析
  8. [02.20][中国][人再囧途之泰囧][HD-RMVB.720p.国语中字][2012年喜剧]
  9. win7快捷方式去箭头_学会WIN+R,你的桌面再不需要快捷方式!
  10. 【总结】漫画机器学习入门(大关真之著)
  11. CorelDRAW X8超低价优惠啦,你却还在用CDR X4破解?!
  12. 使用ajax爬取今日头条街拍图片
  13. 基于C++实现(控制台+界面)通讯录管理系统【100010012】
  14. 《LeetCode刷题》—121. 买卖股票的最佳时机
  15. 亿道丨三防平板丨加固平板丨三防加固平板丨改善资产管理
  16. react中 ajax跨域请求
  17. Unexpected content storage modification: page=xxx; newRecord=xxx
  18. 7000字,详解仓湖一体架构!
  19. Elastic 许可更新
  20. NSIS制作Qt自定义界面安装包(三):禁默安装运行软件所需的运行环境(Vc_redist, bonjoursdk)

热门文章

  1. 半入耳式耳机好用吗?游戏半入耳式耳机推荐
  2. dellg3计算机rom,戴尔G3电脑怎么重装win10系统详细教程
  3. 一文带你理解深度学习的局限性
  4. 关于海康,宇视,天地伟业摄像头调试
  5. 计算机怎么把图标放在桌面,“我的电脑”图标怎么添加到桌面?
  6. Microsoft Office 365开通试用(Outlook、Lync、团队网站)(一)
  7. 雷军抖音直播破2亿,品牌看懂了什么
  8. ipad极品飞车无限狂飙无法连接服务器,极品飞车无极限iPad版
  9. strspn、strcspn、strchr、strrchr特殊字符校验
  10. python装饰器带参数函数二阶导数公式_MVision/caffe_简介_使用.md at master · Ewenwan/MVision · GitHub...