基于51单片机的指纹密码锁(程序部分)

  • 存储器(AT24C02)

存储器(AT24C02)

/*芯片管脚说明A0、A1、A2:器件地址选择。可以拉高,拉低,可串联很多本芯片 SDA:串行数据,地址。用于器件所有数据的发送或接收。 SCL:串行时钟。是一个输入管脚,用来发送时钟信号。 WP:写保护。Vcc:通工作电压。Vss:接地。*//*起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为I^2C总线的起始信号。 停止信号:时钟线保持高电平期间,数据线点评从低到高的跳变作为I^2C总线的停止信号。*//*器件地址位24C02:1   0   1   0   A2  A1  A0  R/W*/
#include <reg52.h>
#include <intrins.h>
#include "at24c02.h" void nop(void)//空操作
{_nop_();       //在使用12m晶振,一句1微秒 _nop_();_nop_();_nop_();
}void at24c02_init(void)
{SCL=1;nop();SDA=1;nop();
}/*24c02起始条件*/
void start(void)
{SCL=1;nop();SDA=1;nop();SDA=0;//在延时4微秒后拉低点平造成跳变,发出起始信号。 nop();SCL=0;nop();
}/*同理可以写出结束条件(停止信号)*/
void stop(void)
{SCL=0;nop();SDA=0;nop();SCL=1;//在延时4微秒后拉高点平造成跳变,发出停止信号。nop();SDA=1;nop();
} //两个应答位为什么是这样可参见文件夹中图片的波形
/*应答位*/
void ack(void)
{unsigned char i=0;SCL=1;nop();while((SDA==1)&&(i<255)){i++;}SCL=0;nop();
}/*读数据指令*/
unsigned char read(void)
{unsigned char i,j,k=0;for(i=0;i<8;i++){SCL=0;nop();if(SDA==1){j=1;} else j=0;k=(k<<1)|j;SCL=1;nop();}return(k);
}/*输入指令*/
void write(unsigned char j)
{unsigned char i,temp;temp=j;for(i=0;i<8;i++){SCL=0;nop();SDA=(bit)(temp&0x80);nop();SCL=1;nop();temp=temp<<1;}SCL=0;nop();
}  /*读取一字节的数据,并返回该字节值*/
/*因为要返回字节,所以不可用void*/
unsigned char readoutrom(unsigned char address)
{unsigned char i;start();write(0xa0);ack();write(address);ack();start();write(0xa1);ack();i=read();stop();return (i);
}/*向24c02写进的函数*/
void writeinrom(unsigned char address,unsigned char number)
{start();write(0xa0);ack();write(address);ack();write(number);ack();stop();
}

为了避免变量定义过多导致冲突和程序冗杂,本模块以头文件的形式添加到主程序中,头文件定义如下

#ifndef _at24c02_h_/*头文件名字叫做at24c02.h*/
#define _at24c02_h_
#define delay4us() _nop_();_nop_();_nop_();_nop_();
sbit SDA=P3^5;
sbit SCL=P3^4;
/*初始化*/
extern void at24c02_init(void);
/*读出*/
extern unsigned char readoutrom(unsigned char address);
/*写入*/
extern void writeinrom(unsigned char address,unsigned char number);#endif

noob的第一步——基于51单片机的指纹密码锁相关推荐

  1. 基于51单片机的指纹密码锁设计

    目录 具体实现功能 设计介绍 单片机介绍 设计思路 资料内容 原理图 程序 仿真实现 全部资料 具体实现功能 具体功能: 本设计采用STC89C52.AT89C52.AT89S52作为主控芯片,LCD ...

  2. 基于51单片机的指纹密码锁

    1.系统功能概述 本次分享的是一款基于51单片机的指纹识别电子密码锁系统,该系统以STC89C52单片机作为模块核心,通过串口通信控制指纹模块AS608实现录取指纹并存储指纹数据,并通过LCD1286 ...

  3. 基于51单片机的指纹解锁自动开门

    基于51单片机的指纹解锁自动开门 目录 基于51单片机的指纹解锁自动开门 一.设计说明 二.总体设计思路 三.系统硬件设计 四.系统软件设计 五. 实物制作与现象 七.体会 一.设计说明 指纹解锁:手 ...

  4. 基于51单片机AS608指纹自动识别电路设计(毕业设计)

    本设计是基于STC89C52单片机的指纹识别设计,采用AS608指纹模块做为传感器,LCD1602显示屏显示信息.具有指纹添加,指纹识别,删除指纹功能.是一款简单的指纹识别毕业设计设计,电路原理图和P ...

  5. 电子密码锁课设单片机c语言,基于51单片机的电子密码锁综合课程设计

    5.大容量片内EEPROM,擦写次数10万次以上 EEPROM,擦写次数10万次以上,擦写次数10万次以上 6.ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器 7.共8通道10位高速A ...

  6. 基于51单片机智能指纹锁设计

    资料编号:181 功能讲解: 本设计师以51单片机作为核心微控制器通过单片机串口通信发送指令控制指纹识别模块进行存贮指纹比对指纹的作业.具体工作原理如下 1.指纹登陆的过程 指纹登陆时通过51单片机发 ...

  7. 基于51单片机的指纹识别锁管理门禁密码锁系统方案原理图程序设计

    硬件电路的设计 (附文件) 3.1系统的功能分析及体系结构设计 3.1.1系统功能分析 本系统由STC89C52单片机电路+指纹模块传感器电路+LCD1602液晶显示电路+继电器电路+按键电路+电源电 ...

  8. 基于51单片机智能电子密码锁的设计

    该题目是作者课程设计时所写题目,隔了段时间了,之前一直放到自己的网站上的,现在网站资源过期了,就放到这里保存了. 题目要求如下: 内容及要求 以MCS-51单片机为核心,设计一个通过面板键盘输入密码的 ...

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

    主要功能: 1.6位密码开锁 可以修改用户密码和管理员密码 断电记忆 3次错误报警锁住键盘 #include <REG51.h> #include<intrins.h> #de ...

  10. 基于51单片机的简易6位密码锁(数码管 led 矩阵)

    本文章是基于51单片机的简易密码锁,无掉电保护,所以没有用到I^C总线协议,仅用到数码管显示,矩阵键盘扫描,led显示. 本例程主要实现功能为:定义一个六位数的初始密码,用矩阵输入,输入正确后led被 ...

最新文章

  1. TensorRT 数据和表格示例
  2. [JS]题解 | #魔法数字#
  3. Python Qt GUI设计:QLabel标签类(基础篇—11)
  4. pytorch 常用问题解决
  5. Phantom.js维护者退出,项目的未来成疑
  6. numpy维度交换_15年!NumPy论文终出炉,还登上了Nature
  7. Python 中print 和return 的区别
  8. JDK8中的新时间API:Duration Period和ChronoUnit介绍
  9. nodejs环境搭建与express安装配置
  10. nowcoderD Xieldy And His Password
  11. android6.0/7.0禁掉Selinux
  12. .Net Core下如何管理配置文件(转载)
  13. matplotlib.pyplot中API介绍
  14. 【车辆检测】基于matlab yolo v2车辆检测识别【含Matlab源码 581期】
  15. JAVA制作QQ空间点赞_利用Javascript实现QQ空间自动点赞
  16. [html] 网页打印与标准纸张换算时,cm和px是如何换算的?
  17. 经常使用的几种OCR文档扫描工具|无水印|避免智商税
  18. Style笔记(css, stylus,less)
  19. 真假内推?直拿offer?别被无良中介给骗了
  20. python中查找文件当前位置定位,Python是怎样定位和修改文件读写位置的?

热门文章

  1. Redundant Paths(边双连通分量缩点+思维构造)
  2. 打造前端 Deepin Linux 工作环境——安装 nodejs 环境,git 版本管理
  3. uva 10105(数论)
  4. idea使用技巧总结,超实用(2年mac idea使用经验)
  5. entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等...
  6. 世界地图新西兰_世界地图新西兰的位置在哪里?新西兰与澳大利亚相隔多远?...
  7. 前端容易忽略的 debugger 调试技巧
  8. 今有物不知其数,三三数只剩其二,五五数只剩其三,七七数只剩其二
  9. shopex使用经验
  10. Java中常见常用的类