资源简介
本系统采用51单片机作为控制器,12864作为显示屏吗,以及指纹模块设计了一款指纹锁,开机上电显示菜单界面,可以通过按键设置管理员以及保存的指纹数据,可以对已保存的指纹数据进行增减,或者新加入新指纹数据,用户通过识别指纹,可以进行解锁,希望对大家有一定的帮助
代码片段和文件信息
#include
#include
#include“24C02.h“
#define uchar unsigned char
#define uint unsigned int
/********************************************************************
* 名称 : flash()
* 功能 : 延时时间为5个NOP,大概为5US
* 输入 : 无
* 输出 : 无
***********************************************************************/
void flash(void)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/********************************************************************
* 名称 : x24c02_init()
* 功能 : 24c02初始化子程序
* 输入 : 无
* 输出 : 无
***********************************************************************/
void x24c02_init(void)
{
scl = 1;
flash();
sda = 1;
flash();
}
/********************************************************************
* 名称 : start(void)
* 功能 : 启动I2C总线
* 输入 : 无
* 输出 : 无
***********************************************************************/
void start(void)
{
scl = 1;
flash();
sda = 1;
flash();
sda = 0;
flash();
scl = 0; //钳住低电平,准备发送信号
flash();
}
/********************************************************************
* 名称 : stop()
* 功能 : 停止I2C总线
* 输入 : 无
* 输出 : 无
***********************************************************************/
void stop()
{
scl = 0;
flash();
sda = 0;
flash();
scl = 1;
flash();
sda = 1;
flash();
}
/********************************************************************
* 名称 : writex()
* 功能 : 写一个字节
* 输入 : j(需要写入的值)
* 输出 : 无
***********************************************************************/
void writex(uchar j)
{
uchar itemp;
temp = j;
for(i=0; i<8; i++)
{
scl = 0;
flash();
sda = (bit)(temp & 0x80); //把数据的最高位电平赋值给SDA
flash();
scl = 1;
flash();
temp = temp << 1; //数据左移一位
}
scl = 0;
flash();
}
/********************************************************************
* 名称 : readx()
* 功能 : 读一个字节
* 输入 : 无
* 输出 : 读出的值
***********************************************************************/
uchar readx(void)
{
uchar i j k = 0;
for(i=0; i<8; i++)
{
scl = 0;
flash();
if(sda == 1)
{
j = 1;
}
else j = 0;
k = (k << 1) | j;
scl = 1;
flash();
}
return(k);
}
/********************************************************************
* 名称 : ack()
* 功能 : I2C总线时钟
* 输入 : 无
* 输出 : 无
***********************************************************************/
void ack(void)
{
uchar i = 0;
scl = 1;
flash();
while((sda == 1) && (i < 255))
{
i++; //i的作用是当SDA时钟为1时,程序不会一直锁死在这里
}
scl = 0;
flash();
}
/********************************************************************
* 名称 : x24c02_write()
* 功能 : 想24c02中写入数据
* 输入 : address(地址) , info(值)
* 输出 : 无
***********************************************************************/
void x24c02_write(uchar address uchar info)
{
start();
writex(0xa0);
ack();
writex(address);
ack();
writex(info);
ack();
stop();
}
/************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-05-13 22:50 1-指纹密码锁源程序\
文件 3595 2018-04-26 19:23 1-指纹密码锁源程序\24C02.c
文件 975 2018-05-11 11:42 1-指纹密码锁源程序\24C02.h
文件 7923 2018-05-13 22:50 1-指纹密码锁源程序\24C02.LST
文件 7156 2018-05-13 22:50 1-指纹密码锁源程序\24C02.OBJ
文件 4031 2018-05-11 11:14 1-指纹密码锁源程序\LCD12864.c
文件 510 2018-04-25 20:37 1-指纹密码锁源程序\LCD12864.H
文件 8199 2018-05-13 22:50 1-指纹密码锁源程序\LCD12864.LST
文件 7712 2018-05-13 22:50 1-指纹密码锁源程序\LCD12864.OBJ
文件 54496 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁
文件 22357 2018-05-13 22:41 1-指纹密码锁源程序\指纹密码锁.c
文件 15778 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.hex
文件 83 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.lnp
文件 49528 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.LST
文件 70677 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.M51
文件 50624 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.OBJ
文件 2066 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.plg
文件 430735 2015-03-10 15:22 1-指纹密码锁源程序\指纹密码锁.uvgui.SP
文件 430076 2015-03-04 08:41 1-指纹密码锁源程序\指纹密码锁.uvgui_SP.bak
文件 58131 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁.uvopt
文件 13612 2018-04-25 20:43 1-指纹密码锁源程序\指纹密码锁.uvproj
文件 58131 2018-05-13 22:50 1-指纹密码锁源程序\指纹密码锁_uvopt.bak
文件 13612 2018-04-25 18:47 1-指纹密码锁源程序\指纹密码锁_uvproj.bak
文件 1796096 2014-12-25 19:14 1-指纹密码锁源程序\指纹识别系统原理图.Bkp
- 上一篇:校医院门诊收费管理系统设计
- 下一篇:DNA序列分类模型2000数模
相关资源
- 027 简易电子秤 LCD1602显示 超重报警
- 基于PIC单片机的多功能万年历
- 基于51单片机的1602万年历设计_温度
- 51单片机温度报警器设计程序及prote
- 基于单片机的热电偶测温系统设计
- 基于单片机的水质浊度分析仪的设计
- 51单片机 啤酒生产线计数器
- 基于51和hx711的电子秤
- ATMEGA16 PROTUES 热水器
- 基于传感器的温度测量与报警系统设
- 51单片机和1602显示18b20温度报警系统
- 51单片机 CH452驱动数码管,按键,按键
- 单片机数字温度计的设计与实现论文
- 蔬菜大棚温度的温度控制程序
- 51单片机多任务的切换和堆栈的保护
- 基于51单片机的的电子密码锁设计.r
- 基于嵌入式开发的智能医药箱设计与
- 单片机甲醛浓度
- 51单片机实现温度检测数码管显示,控
- 51单片机蜂鸣器音乐盒程序代码
- HC-SR04超声波测距显示LED灯闪烁
- 基于51开发板的温度报警闹钟按键控制
- 51单片机8位抢答器源程序
- 基于51单片机指纹解锁设计程序
- 基于51单片机的智能小车循迹寻迹避障
- 51单片机例程1602显示秒表
- 基于51单片机的俄罗斯方块
- 基于单片机的锅炉温度水位控制系统
- 基于STC89C52单片机的宿舍智能防火报警
- 开源单片机GPS+谷歌定位地图
评论
共有 条评论