资源简介
本系统采用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数模
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 12864滚动显示汉字
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
评论
共有 条评论