毕业设计(论文)-基于51单片机的指纹密码锁设计

合集下载

毕业设计(论文)-基于51单片机控制的电子密码锁设计

毕业设计(论文)-基于51单片机控制的电子密码锁设计

基于51单片机控制的电子密码锁设计摘要:本设计以单片机以AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构,实现要是信息在主机的初步认证注册、密码信息的加密、钥匙丢失报废等功能。

根据51单片机之间的串行通信原理,这便对于密码信息的随机加密和保护。

而且采用键盘输入的电子密码锁具有较高的优势。

采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。

软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统可扩展性和运行的稳定性。

测试结果表明,本系统各功能已达到本设计的所有要求。

关键词:AT89C51;密码锁;单片机设计;电子锁目录摘要 (1)关键词 (1)第一章密码锁的简介及现况 (1)1.1引言 (1)1.2电子密码锁的简介 (1)1.3电子密码锁发展趋势 (2)1.4本设计所要实现的目标 (2)1.5设计的密码锁的功能 (2)第二章设计方案的选择 (3)2.1方案的论证与比较 (3)第三章单片机的组成 (4)3.1AT89C51单片机的简介 (4)3.2电路图的绘制 (7)第四章单片机硬件资源 (7)4.1开锁机构 (7)4.2按键电路设计 (8)4.3显示电路设计 (10)4.4AT89C51单片机复位方式 (11)4.5密码锁的电源电路设计 (12)第五章程序调试 (13)5.1程序调试用到的软件及工具 (13)5.2KEIL C51简介 (14)5.3调试过程 (14)5.4调试、仿真与实现 (15)第六章软件设计 (16)6.1系统软件设计的总统思想 (16)6.2各子程序设计 (17)1 键盘扫描子程序 (17)2 LED显示子程序 (18)3 密码比较和报警程序 (19)设计总结与展望 (21)致谢 (22)附录:总原理图 (22)参考文献 (24)第一章密码锁的简介及现况1.1引言在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

基于51单片机密码锁设计与调试 电子信息工程毕业设计论文

基于51单片机密码锁设计与调试 电子信息工程毕业设计论文

目录第一部分设计任务与调研 (1)第二部分设计说明 (2)第三部分设计成果 (5)第四部分结束语 (11)第五部分致谢 (12)第六部分参考文献 (13)第一部分设计任务与调研1.1设计的主要任务给抽屉设计一个四位密码的单片机密码锁控制系统,实现开锁功能,自动报警功能,改密功能,并取得仿真模拟调试成功。

1.2设计的思路本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号,开锁密码位为四位。

能够让LCD1602显示器在密码正确时显示open!,密码错误时显示ERROR,输入密码时显示PASSWORD。

实现输入密码错误超过限定的三次电子密码时报警。

1.3设计的方法使用学校编写程序所学的单片机和C语言知识,利用在电工实训中学到的焊接技术焊接控制模块和LED接线及CAD所学的知识绘制驱动电路和控制电路,制作详细的设计方案和资料搜集后进行实际操作,通过程序设计,模拟仿真调试,修订完善后制作出成品。

1.4调研的目的和总结由于对电子密码锁的一些情况并不了解,为了使自己的电子密码锁能够更加完善,所以需要查阅大量的资料,通过查阅的资料与自己的想法进行一些结合做出取舍,最后获得了一些总结。

本设计从经济实用的角度出发,采用宏晶公司的单片机STC89C51与低功耗CMOS型作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。

经实验证明,该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室用锁要求,具有推广价值。

第二部分设计说明2.1设计方案2.1.1系统框架图本次设计选用单片机STC89C51作为系统的核心元件,利用单片机灵活的编程设计和丰富的IO端口及其控制的准确性,实现基本的密码锁功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。

基于51单片机的指纹密码锁设计技术指标

基于51单片机的指纹密码锁设计技术指标

基于51单片机的指纹密码锁设计技术指标1. 引言1.1 概述本文将介绍基于51单片机的指纹密码锁设计技术指标。

随着科技的发展和人们对安全性的要求提高,传统的密码锁已经不能满足大众对安全性和便捷性的需求。

指纹密码锁通过结合指纹识别技术和密码锁工作原理,提供了更加安全可靠,并且便于使用的解决方案。

因此,本文将详细介绍51单片机技术、指纹密码锁设计原理以及基于51单片机的指纹密码锁设计方案,并在最后评估其技术指标和性能。

1.2 文章结构本文共分为五个部分。

首先,引言部分将介绍文章内容的概述、结构以及目的。

其次,单片机技术介绍部分将对51单片机进行概述,包括其特点和在嵌入式系统中的应用。

接着,指纹密码锁设计原理部分将简要介绍指纹识别技术和密码锁工作原理,并评估指纹密码锁的优点与不足。

然后,基于51单片机的指纹密码锁设计方案部分将详细说明系统框架设计、硬件设计要点与考虑因素,以及软件设计流程及功能实现方式。

最后,技术指标及性能评估部分将选择安全性能评估标准与指标,讨论反复使用次数与响应速度的考量,并探讨功耗及电源管理方案。

1.3 目的本文的目的是为读者提供基于51单片机的指纹密码锁设计技术指标。

通过对51单片机技术、指纹密码锁设计原理和基于51单片机的指纹密码锁设计方案进行详细介绍和评估,读者可以了解到该技术在安全性能、便捷性以及系统稳定性等方面的优势和挑战。

同时,本文还将探讨如何衡量技术指标和评估性能,并提供相应解决方案。

2. 单片机技术介绍2.1 51单片机概述51单片机是一种基于哈佛架构的8位单片机,由Intel公司设计。

它采用的是CISC(复杂指令集计算机)架构,具有高的运算速度和强大的功能。

51单片机采用六段流水线结构,在时钟频率达到12MHz时,可以达到每秒执行12,000,000条指令的速度。

2.2 51单片机特点2.2.1 芯片资源丰富:51单片机内置了存储器、输入输出端口、定时器/计数器等多个功能模块,可以满足复杂系统设计需求。

(完整版)基于51单片机的简易电子密码锁课程设计毕业设计论文

(完整版)基于51单片机的简易电子密码锁课程设计毕业设计论文

前言随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。

电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。

目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。

下面就是现在主流电子密码锁:目前常见的遥控式电子防盗锁主要有光遥控和无线电遥控两类。

键盘式电子密码锁从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。

卡式电子防盗锁使用各种“卡”作为钥匙的电子防盗锁是当前最为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。

生物特征防盗锁人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害)。

因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。

人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。

随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。

据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。

这种锁是通过键盘输入一组密码完成开锁过程。

研究这种锁的初衷,就是为提高锁的安全性。

由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。

电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。

电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC 卡锁,生物锁等。

但较实用的还是按键式电子密码锁。

20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。

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

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

基于单片机的指纹密码锁的设计1. 本文概述随着科技的进步和社会的发展,安全性已成为现代社会关注的焦点。

在众多安全措施中,指纹密码锁作为一种高安全性的识别技术,逐渐成为人们生活的重要组成部分。

本文旨在设计一种基于单片机的指纹密码锁系统,该系统利用先进的指纹识别技术,结合单片机的数据处理能力,实现对个人财产和隐私的有效保护。

本文首先对指纹密码锁的原理和工作流程进行详细阐述,分析其在实际应用中的优势。

随后,本文将重点介绍系统的硬件设计和软件编程。

硬件设计包括指纹模块、单片机控制模块、锁控模块等关键部分的选型和连接软件编程则涵盖指纹识别算法的实现、用户信息管理、安全策略等方面的内容。

本文还将对系统的性能进行测试与分析,评估其安全性、稳定性和实用性。

本文将总结设计过程中的关键点和创新之处,并对未来指纹密码锁的发展趋势进行展望。

通过本文的研究,我们期望为指纹密码锁的设计和应用提供有益的参考,推动其在智能家居、金融安全等领域的广泛应用。

2. 系统设计原理与方案指纹密码锁的设计基于单片机技术,其核心原理在于将指纹识别技术与密码验证功能集成于一个紧凑、安全的系统中。

单片机作为控制核心,负责处理指纹识别模块采集的指纹信息,并与预设的指纹数据库进行比对,同时管理密码输入与验证过程。

系统设计方案包括硬件设计和软件设计两部分。

硬件设计主要涉及单片机的选型、指纹识别模块的集成、密码输入界面的设计以及锁体控制模块的搭建。

单片机应选用性能稳定、功耗低、具有足够处理能力的型号,以满足系统实时性和安全性的要求。

指纹识别模块需选用高精度、高识别率的型号,以确保指纹信息的准确采集与比对。

密码输入界面应设计简洁、易操作,方便用户输入密码。

锁体控制模块则负责控制锁的开关状态,确保在验证通过后才能解锁。

软件设计方面,主要包括指纹识别算法的实现、密码验证逻辑的设计以及单片机控制程序的编写。

指纹识别算法需考虑算法的准确性、速度和稳定性,以应对不同环境和用户的使用需求。

毕业设计(论文)-基于51单片机的指纹识别

毕业设计(论文)-基于51单片机的指纹识别

随着现代化各种科学新技术的快速发展,在日常生活中,我们需要各种身份认证和各种密码认证,还有对各种设备配备钥匙,对保险柜安装防盗系统等等,社会的进步,科技的发展,促使传统的安全系统的抵御能力越来越薄弱。

因此,生物特征识别应用而生,开始走进我们身边的各种安全系统,指纹识别作为生物特征识别的一个典型应用已经得到很广泛的应用和认可,指纹特征具有唯一性,是每个人终生不变的特征之一,并且各个人的各个指纹都不一样。

本系统采用89C52RC单片机作为主芯片,通过与指纹识别模块FM-180之间通过串口通信方式的通信,采用液晶12864作为显示器,加上简单的外围电路,如按键输入、LED灯报警电路、蜂鸣器电路,最后通过编写软件和制作硬件,实现一个可以通过单片机对指纹的录入,识别,删除等功能操作的指纹识别系统。

关键词指纹识别系统;单片机89C52;液晶12864With the rapid development of modern science a variety of new technologies, in everyday life, we need a variety of authentication and a variety of password authentication, as well as a variety of devices with keys for the safe installation of security systems, etc., social progress the development of technology, to promote the traditional security system resilience increasingly weak. Thus, biometric applications, born around us began to enter various security systems, biometric fingerprint identification as a typical application has been very widely used and recognized, unique fingerprint characteristics, life is not for everyone one variable characteristics, and each person's fingerprints are not the same individual.The system uses 89C52RC microcontroller as the main chip, it passes between the fingerprint recognition module FM-180 serial communication with the communication method by using a liquid crystal display as 12864, plus simple peripheral circuits, such as key input, LED light alarm circuit, buzzer circuit, and finally through the preparation and production of software, hardware, you can implement a microcontroller on the fingerprint input, recognition, and delete functions operate fingerprint identification system.Key words Fingerprint identification system;SCM 89C52;LCD 12864目录1 绪论 (5)1.1 课题的背景和意义 (5)1.2 生物识别技术概述 (5)1.3 指纹识别技术概述 (6)1.4 本章小结 (6)2 设计方案 (8)2.1 设计要求 (8)2.2 设计方案 (8)2.3 本章小结 (8)3 硬件设计 (9)3.1 主要元器件选型 (9)3.1.1 单片机选型 (9)3.1.2 指纹模块 (10)3.1.3 液晶显示 (11)3.2 电路设计 (14)3.2.1 最小系统 (14)3.2.3 液晶显示电路 (15)3.2.4 指纹通信电路 (16)3.2.5 蜂鸣器电路 (17)3.2.6 按键电路 (18)3.2.7 LED电路 (18)3.3 本章小结 (19)4 软件设计 (20)4.1 系统方框图 (20)4.2 功能介绍 (20)4.3 开发环境介绍 (23)4.3.1 Keil编译器 (23)4.3.2 STC-ISP下载器 (24)4.3.4 Protel软件 (25)4.4 部分代码说明 (26)4.5 本章小结 (30)5 系统调试 (31)5.1 制作和调试 (31)5.1.1 原理图设计 (31)5.1.2 PCB制作 (32)5.2 调试过程 (34)5.3 调试完成、实物图 (36)5.4 本章小结 (37)6 总结 (38)参考文献 (39)致谢 (40)1 绪论1.1 课题的背景和意义随着如今各种各样的高新技术的迅猛发展,在百姓日常生活中经常需要我们去确认各种身份的认证。

基于单片机指纹识别电子密码锁的设计

基于单片机指纹识别电子密码锁的设计

在软件编写方面,需要编写指纹识别算法和控制系统程序。指纹识别算法需 要实现图像采集、预处理、特征提取和比对等功能;控制系统程序需要实现系统 的逻辑控制和操作,包括对指纹信息的处理、密码的验证和系统的启动、停止等 控制。
在硬件配置方面,需要选择合适的单片机、指纹采集设备和存储器等。单片 机是整个系统的核心,需要根据系统的性能要求和成本等因素进行选择;指纹采 集设备需要根据实际应用场景进行选择,例如光学式或电容式指纹采集设备;存 储器需要选择具有高可靠性和稳定性的Flash存储器或EEPROM存储器。
3、开发智能化和网络化的电子密码锁:通过接入互联网或物联网技术,实 现远程控制和监控,提高密码锁的使用便利性和安全性。
参考内容
引言
随着科技的进步和人们生活水平的提高,各种电子设备的应用越来越广泛, 人们对个人隐私和数据安全的保护需求也在不断增加。为了提高密码锁的安全性, 人们提出了许多设计方案,其中基于单片机的指纹识别电子密码锁设计是一种高 效、便捷的保
。在特征提取阶段,通过对指纹图像的细节特征进行分析,提取出用于比对 的特征点。最后,将这些特征点与存储在系统中的模板进行比对,以判断用户的 身份。
密码存储是保证密码安全性的重要环节。在基于单片机的指纹识别电子密码 锁设计中,通常采用Flash存储器或EEPROM存储器来存储密码和指纹模板。这些 存储器具有反复擦写和掉电不丢失数据的特性,可以保证密码的安全性和可靠性。
四、系统调试
在系统调试过程中,我们需要分别对电路、单片机控制程序和指纹识别算法 进行调试。
1、电路调试:首先,我们需要检查电源电路的稳定性和信号传输电路的通 断性,确保电路工作正常;其次,我们需要调试电阻网络部分,确保指纹信号的 准确转化。
2、单片机控制程序调试:在程序编写完成后,我们需要通过串口调试工具 对程序进行调试,检查程序是否能够正常工作、是否存在语法错误等。

大学毕设论文__基于51单片机的密码锁设计程序

大学毕设论文__基于51单片机的密码锁设计程序

#include "1302.h"void write_ds1302_byte(uchar dat){uchar i;for(i=0;i<8;i++){T_IO=dat&0x01;T_CLK=1;T_CLK=0;dat=dat>>1;}}uchar read_ds1302_byte(){uchar i;for(i=0;i<8;i++){ACC=ACC>>1;ACC7=T_IO;T_CLK=1;T_CLK=0;}return (ACC);}void write_ds1302_dat(uchar addr,uchar dat) {T_EN=0;T_CLK=0;T_EN=1;write_ds1302_byte(addr);write_ds1302_byte(dat);T_CLK=1;T_EN=0;}uchar read_ds1302_data(uchar addr){uchar date;T_EN=0;T_CLK=0;T_EN=1;write_ds1302_byte(addr);date=read_ds1302_byte();T_EN=0;T_CLK=0;return (date);}void set_real_time(uchar *pclock){uchar i,addr=0x80;EA=0;write_ds1302_dat(0x8e,0x00);for(i=0;i<7;i++){write_ds1302_dat(addr,*pclock);pclock++;addr+=2;}// write_ds1302_dat(0x8e,0x80);EA=1;}void get_real_time(uchar Curtime[]){uchar j;uchar address=0x81;EA=0;for(j=0;j<7;j++){Curtime[j]=read_ds1302_data(address);address+=2;}EA=1;}#ifndef __1302_H__#define __1302_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit T_IO=P2^5;sbit T_CLK=P2^4;sbit T_EN=P1^0;sbit ACC0=ACC^0;sbit ACC7=ACC^7;void write_ds1302_byte(uchar dat);uchar read_ds1302_byte();void write_ds1302_dat(uchar addr,uchar dat);uchar read_ds1302_data(uchar addr);void set_real_time(uchar *pclock);void get_real_time(uchar Curtime[]);#endif#include "delay.h"#include "1602.h"void lcd_busy_wait() /*LCD1602 忙等待*/{lcd_rs_port = 0;lcd_rw_port = 1;lcd_en_port = 1;lcd_data_port = 0xff;while (lcd_data_port&0x80);lcd_en_port = 0;}void write_com(uchar command) /*LCD1602 命令字写入*/ {lcd_busy_wait();lcd_rs_port = 0;lcd_rw_port = 0;lcd_en_port = 0;lcd_data_port = command;lcd_en_port = 1;lcd_en_port = 0;}void write_data(uchar dat)lcd_busy_wait();lcd_rs_port=1;lcd_rw_port =0;lcd_en_port=0;P0=dat;lcd_en_port=1;lcd_en_port=0;}void wtite_lcd_1602_dat(uchar x_pos,uchar y_pos,uchar dat) {x_pos&=0x0f;y_pos&=0x01;if(y_pos==0){x_pos=x_pos+0x80;}else{x_pos=x_pos+0x80+0x40;}write_com(x_pos);lcd_busy_wait();lcd_rs_port=1;lcd_rw_port=0;lcd_en_port=0;P0=dat;lcd_en_port=1;lcd_en_port=0;}void lcd_init() /*LCD1602 初始化*/{lcd_delay(20);write_com(0x38);lcd_delay(100);write_com(0x38);lcd_delay(50);write_com(0x38);lcd_delay(10);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0c);lcd_data_port = 0xff; /*释放数据端口*/}#ifndef __1602_H__#define __1602_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit lcd_rs_port=P3^5;sbit lcd_rw_port=P3^6;sbit lcd_en_port=P3^4;#define lcd_data_port P0void lcd_busy_wait();void write_com(uchar command);void write_data(uchar dat);void wtite_lcd_1602_dat(uchar x_pos,uchar y_pos,uchar dat); void lcd_init();#endif#include "2402.h"#include "delay.h"void i2c_start(){scl=1;delay1();sda=1;delay1();sda=0;delay1();}void i2c_stop(){sda=0;delay1();scl=1;delay1();sda=1;delay1();}void i2c_ack(){uchar i;scl=1;delay1();while((sda==1)&&(i<250)) i++;scl=0;delay1();}void i2c_nack(){scl=1;delay1();sda=1;scl=0;delay1();}void i2c_write_byte(uchar date)// { //uchar i,temp;temp=date;for(i=0;i<8;i++)//{ //temp=temp<<1;//scl=0; //delay1();; //sda=CY;//delay1();//scl=1;//} //scl=0; //delay1();//sda=1;//delay1();//}//uchar i2c_read_byte(){uchar i,temp=0;scl=0;// delay1();;// sda=1;delay1();for(i=0;i<8;i++){temp=temp<<1;scl=1;delay1();temp=temp|sda;scl=0;delay1();}return (temp);}void write_at2404(uchar addr,uchar dat) {i2c_start();i2c_write_byte(0xa0);i2c_ack();i2c_write_byte(addr);i2c_ack();i2c_write_byte(dat);i2c_ack();i2c_stop();delay3(5000);}uchar read_at2402(uchar addr){uchar temp;i2c_start();i2c_write_byte(0xa0);i2c_ack();i2c_write_byte(addr);i2c_ack();i2c_start();i2c_write_byte(0xa1);i2c_ack();temp=i2c_read_byte();i2c_nack();i2c_stop();return (temp);}#ifndef __2402_H__#define __2402_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit scl=P2^1;sbit sda=P2^0;void i2c_start();void i2c_stop();void i2c_ack();void i2c_nack();void i2c_write_byte(uchar);uchar i2c_read_byte();//void write_at2404(uchar addr,uchar dat); uchar read_at2402(uchar addr);#endif#include"delay.h"void delay(uchar x){uchar a,b;for(a=x;a>0;a--)for(b=200;b>0;b--);}void lcd_delay(uchar ms) {uchar j;while(ms--){for(j=0;j<250;j++){;}}}void delay1(){ ; ;}void delay3(uint q){uint e;for(e=0;e<q;e++);}#ifndef __DELAY_H__#define __DELAY_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned intvoid delay(uchar x);void lcd_delay(uchar ms); void delay1();void delay3(uint m);#endif#include "display.h"void display(){P0=0;dula=1;dula=0;P0=0x7f;wela=1;wela=0;}#ifndef __DISPLAY_H__#define __DISPLAY_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;void display();#endif#include "delay.h"//一般放在最前面这个前后由调用先后决定着#include "scan.h"#include "1602.h"//extern void write_data(uchar dat);//extern void write_com(uchar command);uchar key;uchar temp,count,aa,bb,cc; /*一般将这些变量定义在C文件中当主函数需要时用extern引用*/ bit shu_flag,modify_flag,rst;bit fun_flag; //功能键标志位没使用bit down_flag,up_flag,open_flag;void keyscan(){P1=0xfe;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay(15);if(temp!=0xf0){temp=P1;switch(temp){case 0xee: key=0;shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0xde: key=1;shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0xbe: key=2;shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0x7e: key=3;shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;// beep=0;delay(500);}// beep=1;// write_data('*');count++;}while(temp!=0xf0);{temp=P1;temp=temp&0xf0;}}P1=0xfd;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay(15);if(temp!=0xf0){temp=P1;switch(temp){case 0xed: shu_flag=1;key=4;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break; //aa,bb,cc定时器中使用case 0xdd: shu_flag=1;key=5;write_data('*'); //每次按键清零count++;if(count>6) count=0;aa=0;bb=0;cc=0;break; //保证在按键器件不会自动返回case 0xbd: shu_flag=1;key=6;write_data('*'); //count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0x7d: shu_flag=1;key=7;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;// beep=0;delay(500); // 松手检测屏蔽蜂鸣器噪音污染}// beep=1;// write_data('*');count++;}}P1=0xfb;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay(15);if(temp!=0xf0){temp=P1;switch(temp){ //fun_flag 功能键标志位case 0xeb: key=8; shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0xdb: key=9; shu_flag=1;write_data('*');count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;case 0xbb: modify_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break; //修改键case 0x7b: rst=1;fun_flag=1;aa=0;bb=0;cc=0;break; //返回键}while(temp!=0xf0){temp=P1;temp=temp&0xf0;// beep=0;delay(500);}// beep=1;}}P1=0xf7;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay(15);if(temp!=0xf0){temp=P1;switch(temp){ //清除键case 0xe7: //key=12;shu_flag=1;break;aa=0;bb=0;cc=0;switch(count){case 1: write_com(0x80+0x40+5);write_data(' ');write_com(0x80+0x40+5);break;case 2: write_com(0x80+0x40+6);write_data(' ');write_com(0x80+0x40+6);break;case 3: write_com(0x80+0x40+7);write_data(' ');write_com(0x80+0x40+7);break;case 4: write_com(0x80+0x40+8);write_data(' ');write_com(0x80+0x40+8);break;case 5: write_com(0x80+0x40+9);write_data(' ');write_com(0x80+0x40+9);break;case 6: write_com(0x80+0x40+0x0a);write_data(' ');write_com(0x80+0x40+0x0a);break;}case 0xd7: key=13;up_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break; //开门键case 0xb7: key=14;down_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break;case 0x77: key=13;open_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break;while(temp!=0xf0){temp=P1;temp=temp&0xf0;// beep=0;delay(500);}// beep=1;if(count>0) count--;break;} //清除数字}}}#ifndef __SCAN_H__#define __SCAN_H__#include <reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intvoid keyscan();#endif/***********************************************************名称:电子密码锁时间:2014年8月2日16:33:48 WRITE BY:KengkengToday is Valentine's Day程序功能:1 :开机1302显示时间,按下key15:开门键进入输入密码界面2 :输入密码输入错误超过三次电子锁锁死倒计时60s之后重新设置蜂鸣器快速响3 :输入正确进入菜单页面两个选择key13:开门key10:修改密码4 :修改已输入密码可由key12键清除重新输入5 :选择key13开门打开继电器显示倒计时15s开门蜂鸣器慢响提示15s内开门否则15后关门关闭继电器并自动返回时间页面6 :选择key10修改密码共两次两次密码一致时设置成功否则会一直提示输入密码7 :修改的密码存入2402中上电读出8 :修改密码无限循环直到输入正确为止可以使用key11:返回键返回9 :在10s内无任何按键按下时自动返回时间页面可重新进入10:在20s内无任何按键按下时进入掉电模式外部中断唤醒键盘列表:00 01 02 0304 05 06 0708 09 修改返回清除开锁切换开门修改modify_flag 返回rst 清除key12 //切换down_flag// 开锁up_flag 开门open_flag//切换的功能跟返回大致相同***********************************************************/#include<reg52.h>#include<intrins.h>#include "delay.h" //delay.h最好放在最前面#include "scan.h"#include "1302.h"#include "2402.h"#include "1602.h"#include "display.h"#define uchar unsigned char#define uint unsigned intextern uchar key;extern uchar temp,count,aa,bb,cc; /*一般将这些变量定义在C文件中extern声明不是定义当主函数需要时用extern引用*/extern bit shu_flag,modify_flag,rst;extern bit fun_flag; //功能键标志位没使用extern bit down_flag,up_flag,open_flag;uchar data lcd1602_line1[]={" 2014/08/02 000"};uchar data lcd1602_line2[]={" 10:42:50 "};uchar data time_data_buff[7]={0x50,0x42,0x10,0x02,0x08,0x06,0x14};uchar code Weeks[][3]={{"SUN"},{"MON"},{"TUE"},{"WED"},{"THU"},{"FRI"},{"SAT"},{"SUN"}};//二维数组八行三列bit mod_flag,rst_flag;uchar code num_to_char[] = {"0123456789ABCDEF"};uchar k,s,w;bit return_flag=0;//切换时间页面标志位bit sleep_flag;//进入掉电模式标志位uchar m,l;bit k_flag=0;bit b_flag=0; //倒计时标志位bit flag10; //保护标志位bit flag3,flag4,flag2,flag1;/*数字标志位修改密码标志位返还标志位1 2 3 4 保护数据标志位,防重复写入*/ sbit beep=P2^3;//sbit sda=P2^0; //IO口定义//sbit scl=P2^1;uchar code table[]={"Enter password:"};uchar code table1[]={"Error!try again:"};uchar code table2[]={"Welcome to China"};uchar code table4[]={"Set password: "};uchar code table5[]={"Input again: "};uchar code table6[]={" Fuck you!!! "};uchar code table7[]={" Get out!!!! "};uchar code table8[]={" Set succed "};uchar code table9[]={"Be patient..."};uchar code table10[]={" Count down..."};uchar code table12[]={"Please select "};uchar code table13[]={"KEY10:For modify"};uchar code table14[]={"KEY13:For open "};uchar code table15[]={"Open the door"};void T0_init(){TMOD=0x11;TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。

基于51单片机的密码锁设计报告

基于51单片机的密码锁设计报告

基于51单片机的密码锁设计报告一、引言随着科技的不断发展,安全问题越来越受到人们的关注。

密码锁作为一种常见的安全防护设备,在保护个人财产和隐私方面发挥着重要作用。

本设计报告介绍了一种基于 51 单片机的密码锁系统,该系统具有成本低、可靠性高、操作简单等优点,适用于家庭、办公室等场所。

二、系统总体设计(一)设计目标设计一个基于 51 单片机的密码锁系统,实现以下功能:1、密码输入与验证功能。

2、密码修改功能。

3、错误输入次数限制及报警功能。

4、开锁状态指示功能。

(二)系统组成本系统主要由 51 单片机、矩阵键盘、液晶显示屏(LCD)、电磁锁驱动电路、报警电路等组成。

1、 51 单片机作为核心控制器,负责处理密码输入、验证、修改等操作,并控制其他模块的工作。

2、矩阵键盘用于输入密码和执行相关操作。

3、 LCD 显示屏用于显示系统状态和提示信息。

4、电磁锁驱动电路用于控制电磁锁的开关。

5、报警电路在密码输入错误次数超过限制时发出报警信号。

三、硬件设计(一)51 单片机选型本设计选用 STC89C52 单片机,该单片机具有丰富的 I/O 口资源、较高的性价比和良好的稳定性。

(二)矩阵键盘设计矩阵键盘采用 4×4 行列式结构,通过扫描的方式获取按键值。

(三)LCD 显示屏接口设计选用 1602 液晶显示屏,通过并行接口与单片机连接,实现数据的传输和显示。

(四)电磁锁驱动电路设计电磁锁采用直流电源供电,通过三极管驱动电路控制其开关。

(五)报警电路设计报警电路采用蜂鸣器实现,当密码输入错误次数超过限制时,单片机输出高电平驱动蜂鸣器发声报警。

四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、LCD 初始化等。

然后进入密码输入状态,等待用户输入密码。

用户输入密码后,进行密码验证,如果密码正确,则打开电磁锁,并显示开锁成功信息;如果密码错误,则记录错误次数,并显示错误提示信息。

基于51单片机电子密码锁设计论文

基于51单片机电子密码锁设计论文

基于单片机的电子密码锁设计1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。

锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。

锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。

现代人类文明社会里,由于社会中各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自已的行为,“非礼不为”,虽无钥匙亦不会乱闯。

然而,那些毫无道德观念的盗贼却想方设法利用高科技手段撬门开锁,使广大居民防不胜防。

为什么会出现这种情况呢?因为传统锁具都存在致命的弱点:第一、锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;第二、锁具制作工艺,技术落后,无法阻止技术手段的开启。

目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。

在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,有的惯偷甚至公开扬言:“没有我打不开的锁。

”其实,不是他们多高明,而是一般锁具技术原理太过简单。

面对这一残酷的现状,新时代提出了锁具必须革命的迫切的要求。

1.2 电子密码锁的背景随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。

在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。

(如指纹、眼底视网膜等)来控制锁的开启。

从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。

当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

1.3 电子锁设计的意义的本设计特点单片机,亦称单片微电脑或单片微型计算机。

基于单片机的指纹密码锁设计 毕业论文

基于单片机的指纹密码锁设计 毕业论文

基于单片机的指纹密码锁设计毕业论文目录目录 (2)第一章概述 (1)1.1 系统设计目的及意义 (1)1.2 指纹识别原理及其前景 (1)1.3 系统设计流程 (2)第二章硬件系统设计 (4)2.1 硬件系统整体设计 (4)2.2 单片机最小系统设计 (7)2.3 液晶显示模块-FYD12864-0402B (11)2.4 按键控制部分电路 (15)2.5 指纹模块 (19)2.6 存储芯片AT24C02 (23)2.7 继电器模块 (27)2.8 报警电路 (28)第三章系统软件的设计 (30)3.1 主程序流程图 (30)3.2键盘检测扫描程序 (31)3.3 LCD12864显示流程图 (32)3.4指纹模块通信流程图 (33)3.5 定时器的设置 (33)3.6 串口初始化 (35)3.7 按键扫描程序 (37)3.8 主程序 (38)第四章系统调试 (40)4.1 功能模块的测试 (40)4.2 程序的烧写 (43)4.3 蜂鸣器、继电器调试 (44)4.4 液晶的调试 (44)4.5 按键的调试 (46)第五章总结与展望 (47)参考文献 (48)致谢 (49)第一章概述1.1 系统设计目的及意义在日常的生活和工作中,住宅、物业、单位、银行的财产以及一些重要的资料的安全都会选择用加锁的办法来保证其安全。

但使用传统的机械锁,需要携带多把钥匙,而且一旦丢失、被盗或遗忘,不仅配置相当麻烦,而且可能被他人复制冒用,造成极大的安全隐患,甚至财产损失。

现代社会对安全的认证方式标准是简单、快捷和高效。

而生物特征识别技术具有随身携带、不易仿制等优点比之传统的方法更安全、方便和,恰好满足人们对防伪精度高,快捷高效的需求。

目前生物特征有手形、手指静脉、指纹、脸形、视网膜、虹膜、语音等,根据这些特征,分别研究出相应的识别技术,如手形识别、指纹识别、面部识别、虹膜识别等等。

但基于技术的理论和实际生产之间的差距,以及不同行业不同人群对于安全级别和使用场合的要求不同。

基于MCS_51单片机电子密码锁的毕业设计

基于MCS_51单片机电子密码锁的毕业设计

2013届毕业设计(论文)材料院、部:学生:指导教师:职称:讲师专业:电子信息工程班级:学号:2013年6月材料清单1、毕业设计(论文)课题任务书2、开题报告3、工作进度检查表4、指导教师评阅表5、评阅评语表6、答辩资格审查表7、答辩及最终成绩评定表8、毕业设计说明书工学院毕业设计(论文)开题报告2013届毕业设计说明书基于MCS-51单片机电子密码锁的设计院、部:学生:指导教师:职称专业:电子信息工程班级:完成时间: 2013年5月25日摘要本设计采用的是AT89C52作为主控芯片与数据存储器单元所设计的电子密码锁。

通过单片机与外围的矩阵键盘输入、LCD液晶显示、报警等电路相结合,利用单片机的灵活性和丰富的I/O口线资源,用C语言编写的主控芯片控制程序与EEPROM AT24C02读写程序相结合,并用Keil软件进行编译,设计了一款简单、实用、方便的电子密码控制系统。

在本次设计中,能够实现密码输入正确及错误的不同显示,在密码泄露后,合法用户能够修改并存储密码,当输入密码错误次数超过三次时,系统会自动报警,并且键盘被锁定2分钟,防止被非法用户无限制的套取密码。

在设计的过程中,采用矩阵键盘减少了对I/O口线的占用,优化了系统。

采用的显示元件是LCD1602液晶显示,使得显示更加清楚,用户使用时也更明白。

存储芯片采用的是AT24C02芯片,具有掉电保护的作用。

通过在Proteus 中仿真测试,能够很好的实现密码锁的所有功能,达到了设计的要求。

关键词:单片机;密码锁;AT24C02ABSTRACTThis design is used as the master chip AT89C52 data memory unit designed electronic locks. Through the microcontroller and peripheral matrix keyboard, LCD liquid crystal display, alarm and other circuits combine the flexibility of the use of single and rich I / O port line resources, using C language master chip control procedures and EEPROM AT24C02 literacy program combined and compiled using Keil software, designed a simple, practical and convenient electronic code control system. In this design, enabling the wrong password is entered correctly and the different display, the password is leaked, the legitimate user can modify and store the password, enter the password when more than three times the number of errors, the system will automatically alarm, to prevent unauthorized users unlimited the taking of passwords. In the design process, using matrix keyboard reduces the I / O port lines occupied, optimize system. LCD1602 display element is used in a liquid crystal display, making the display more clearly, the user is also greater. Memory chip is AT24C02 chip with power-down protection. Through simulation testing in Proteus, can achieve good locks all functions to achieve the design requirements.Key words microcontroller; locks; at24c02目录1 绪论 (1)1.1引言 (1)1.2课题背景和意义 (1)2 总体设计方案的确定 (3)2.1电子密码锁设计的具体要求 (3)2.2总体设计方案选定 (3)3 主要元器件介绍 (5)3.1主控芯片AT89C52 (5)3.1.1 主要特性 (5)3.1.2 引脚功能说明 (6)3.2存储芯片AT24C02 (7)3.2.1 管脚的描述 (8)3.2.2 功能的描述 (8)3.3LCD1602显示器 (9)3.3.1 LCD1602的引脚功能说明 (9)3.3.2 LCD1602的指令说明 (10)4 硬件电路的设计 (12)4.1最小系统的设计 (12)4.1.1 单片机的复位电路 (12)4.1.2 单片机的时钟电路 (13)4.2键盘电路 (14)4.3显示电路 (15)4.4密码锁存电路 (16)4.5报警电路 (16)5 软件系统的设计 (17)5.1主函数模块 (17)5.2键盘扫描及识别子函数 (17)5.3延时子函数 (19)5.4LCD1602初始化函数 (19)5.5AT24C02的初始化函数 (20)6 在PROTEUS中的仿真 (21)6.1仿真原理图 (21)6.2仿真结果 (21)结束语 (25)参考文献 (26)致 (28)附录 (29)1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其性高,使用的灵活性和安全系数都很高,受到了广大用户的喜爱。

(完整版)单片机电子密码锁(可以修改设置密码)——基于51单片机毕业论文

(完整版)单片机电子密码锁(可以修改设置密码)——基于51单片机毕业论文

单片机电子密码锁 (可以修改设置密码)――基于51单片机与AT24C02与LCD1602显示其电路图连接如下:本人已经用硬件实验,程序可用。

正确~~本程序特点:装载后读者可以自改密码,然后需要再次载入程 序时:可以把主程序aa=Sendstring(0xa0,1,table2,6)这一句去掉。

然后 程序的电子锁密码就是你个人设置的密码。

LCD1Vour Password* ・・程序代码为:#include<reg51.=P0A 2; sbit led=P3A0; uchar code table2[]="123456";EE J KBBI&flEK■i A A —i n Jll 理・J31mTrr W口 t■ i* TTS -■?TWKamHP —・U1■3TF4 LSl^fc 』 _ W>M. _ _, lJ-p — ...... 』 =]初始密码:〕23456XrMJRirF7.!|一 ■«*丿 r^35 一・4|E -L 凰P?E7TEF3 ■ir^OTTuchar code table[]="Your Password...";void delayms(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);},做总线的延时用void delay() 短延时,两个机器周期{;;}void write_com(uchar com){rs=0;rd=0;lcden=0;P2=com;delayms(3);lcden=1;delayms(3);lcden=0;}void write_date(uchar date){rs=1;rd=0;lcden=0;P2=date;delayms(3);lcden=1;delayms(3);lcden=0;}void Display_String(uchar *p,uchar com){ uchar i;write_com(com);for(i=0;i<16;i++){write_date(p[i]);}}void init_lcd(){lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);Display_String(table,0x80);Display_String("Lock OK! ",0xc0);void start() {sda=1;scl=1;delay4us();sda=0;delay4us();scl=0;}void stop(){sda=0;scl=1;delay4us();sda=1;delay4us();scl=0;}void init() 初始化{ sda=1;delay();scl=1;delay();void ack(){sda=0;scl=1; delay4us();scl=0;sda=1;}void noack(){sda=1;scl=1; delay4us();scl=0;sda=0;}uchar recbyte(){uchar i,rd; rd=0x00;sda=1;for(i=0;i<8;i++) {rd<<=1;scl=1;rd|=sda; delay4us(); scl=0;delay4us();}scl=0;delay4us();return rd;}uchar sendbyte(uchar wd){uchar i;bit ack0;for(i=0;i<8;i++){sda=(bit)(wd&0x80);_nop_();_nop_();scl=1;delay4us();scl=0;wd<<=1;}delay4us();sda=1;scl=1;delay4us();ack0=!sda; scl=0;delay4us();return ack0;}uchar Recstring(uchar slave,uchar subaddr,uchar *buffer,uchar n) { uchar i;start();if(!sendbyte(slave)) return 0;if(!sendbyte(subaddr)) return 0;start();if(!sendbyte(slave+1)) return 0;for(i=0;i<n-1;i++){buffer[i]=recbyte();ack();}buffer[n-1]=recbyte();noack();stop();return 1;uchar Sendstring(uchar slave,uchar subaddr,uchar *buffer,uchar n) { uchar i;start();if(!sendbyte(slave)) return 0;if(!sendbyte(subaddr)) return 0; for(i=0;i<n;i++){if(!sendbyte(buffer[i])) return 0;}stop();return 1;}void clear_password(){ uchar i;for(i=0;i<6;i++){Userpassword[i]=' ';} for(i=0;i<16;i++){DSY_BUFFER[i]=' ';}} uchar Keys_Scan()uchar temp,keynum;P1=0x0F;delayms(5);temp=P1A0x0F;switch(temp){case 1:keynum=0;break;case 2:keynum=1;break;case 4:keynum=2;break;case 8:keynum=3;break; break;}P1=0xF0;delayms(5);temp=P1>>4A0x0F;switch(temp){case 1:keynum+=0;break;case 2:keynum+=4;break;case 4:keynum+=8;break;case 8:keynum+=12;break; break;}delayms(600);return keynum;void main(){ uchar temp,i=0,j=0,k=0,n;uchar IS_valid_user;beep=1;init();init_lcd();delayms(5);aa=Sendstring(0xa0,1,table2,6);delayms(5);aa=Recstring(0xa0,1,buffer,6); delayms(10);P1=0x0f;while(1){if(P1!=0x0f){temp=Keys_Scan();switch(temp){case 0: case 1: case 2: case 3: case 4:case 5: case 6: case 7: case 8: case 9:if (i<=5) 密码限制在 6 位以内{Userpassword[i]=temp; DSY_BUFFER[i]='*';Display_String(DSY_BUFFER,0xc0); i++;}break;case 10: 按 A 键开锁for(k=0;k<6;k++) {if(buffer[k]==(Userpassword[k]+48))flag=1;elseflag=0;}if (flag==1){ flag=0;i=0;led=0; 点亮LED clear_password();Display_String("OPEN OK! IS_valid_user =1;",0xc0);j=0;else{j++;led=1; 关闭LEDclear_password();Display_String("ERROR!Have trywrite_com(0xcf);write_date(0x30+j);IS_valid_user=0;}i=0;break;case 11: 按 B 键上锁led=1;clear_password();Display_String(table,0x80);Display_String("Lock OK! i=0;IS_valid_user=0; break;case 12: 按 C 键设置新密码如果是合法用户则提示输入新密码",0xc0);",0xc0);if ( !IS_valid_user){i=0;Display_String("No rights ! ",0xc0); delayms(1000);Display_String("Your Password...",0x80);Display_String("Lock OK! ",0xc0);}else{i=0;Display_String("New Password: ",0x80);Display_String(" ",0xc0); }break;case 13: 按 D 键保存新密码if( !IS_valid_user){ i=0;Display_String("No rights !",0xc0);delayms(1000);Display_String("Your Password...",0x80);Display_String("Lock OK! ",0xc0);else{i = 0;init();delayms(5);for(k=0;k<6;k++){Userpassword[k]=Userpassword[k]+48;} aa=Sendstring(0xa0,1,Userpassword,6); delayms(5);aa=Recstring(0xa0,1,buffer,6); delayms(5); clear_password();Display_String(table,0x00);Display_String("Password Saved! ",0xc0); delayms(1000);Display_String("Do lock agian ? ",0xc0); }break;case 14: 按 E 键消除所有输入i=0;clear_password();Display_String(" ",0xc0); break;case 15: 清除一位if(i!=0)i--;for(n=0;n<i;n++){ DSY_BUFFER1[n]='*';} Display_String(DSY_BUFFER1,0xc0);}P1=0x0f;}if(j==3){ Display_String("THIEF!!!THIEF!!!",0xc0);j=0;beep=0;}。

(完整版)基于51单片机的电子密码锁毕业设计论文

(完整版)基于51单片机的电子密码锁毕业设计论文

(完整版)基于51单⽚机的电⼦密码锁毕业设计论⽂⽬录第1章绪论 (1)1.1电⼦锁的发展状况 (1)1.2设计电⼦密码锁的意义及相关技术指标 (1)第2章总体设计及⽅案论证 (2)2.1单⽚机模块 (2)2.2输⼊键盘模块 (2)2.2.1独⽴式按键 (2)2.2.2矩阵式键盘 (3)2.3数码管显⽰模块 (3)2.3.1 LED静态显⽰⽅式 (3)2.3.2 LED动态显⽰⽅式 (3)2.4电源模块 (3)2.4.1蓄电池供电 (3)2.4.2双路电源供电 (3)2.5开锁电路模块 (4)2.6报警电路模块 (4)2.7最优⽅案 (4)第3章硬件电路设计 (4)3.1输⼊键盘 (4)3.2显⽰数码管 (5)3.3开锁电路 (6)3.4报警电路 (6)3.5电源电路 (7)3.6复位电路 (7)3.7振荡电路 (8)第4章软件设计 (9)4.1主程序流程图及程序 (9)4.2延时⼦程序 (11)4.3修改密码⼦程序 (11)4.4扫描键盘输⼊⼦程序 (11)4.5中断及报警⼦程序 (12)4.6显⽰⼦程序 (13)第5章设计总结 (15)参考⽂献 (16)附录Ⅰ (17)附录Ⅱ (18)第1章绪论1.1电⼦锁的发展状况随着科技的发展,传统的机械锁被破解的概率越来越⾼了,新型的盗贼也学会了与时俱进,通过各种技术⽅法和⼿段即会在短时间内开启结构复杂的机械锁,会不留痕迹的登堂⼊室,给失主和警⽅留下各种不易解惑的疑团。

由此我们想到,要是在机械锁的基础上再装上⼀把电⼦锁,就彻底杜绝了单⼀机械锁易被开启的弊端,从⽽极⼤提⾼门锁的安全防范性能。

当今世界,电⼦锁发展已经到了⾮常⾼的境界,由于电⼦元件特别是单⽚机应⽤在最近⼏年得到空前发展,电⼦锁⽆论是在功能还是在稳定性⽅⾯都有了较⼤的提⾼,在保密性⽅⾯已经做到了密码识别、指纹识别、⼈声识别等。

就整体形势⽽⾔,电⼦锁在国外发展⽐较早,所以应⽤也⽐较⼴泛,主要⽤于家庭门锁,银⾏公司等的财务保险柜锁和政府机关及⾼级宾馆等重要场合的智能控制门锁等。

基于51单片机的指纹识别系统

基于51单片机的指纹识别系统

三、指纹识别算法
1、算法实现:本系统将采用基于特征点的指纹识别算法,通过提取指纹特 征点,实现指纹的匹配和识别。
2、算法优化:为了提高算法的效率和准确性,我们将采用一些优化手段, 如特征点提取时的滤波处理、相似度计算时的归一化处理等。
3、可靠性提高:为了确保指纹识别的可靠性,我们将采取多种措施,如选 用高精度指纹识别模块、建立可靠的指纹数据库、实现算法的异常处理等。
总结
本次演示介绍了一种基于51单片机的指纹识别系统。该系统具有体积小、成 本低、易集成等优点,可以广泛应用于各种嵌入式设备中。通过将指纹图像与预 先存储的模板进行比对实现身份验证,该系统可以有效地区分不同的指纹特征并 输出相应的控制信号。虽然该系统存在一些缺点需要改进和完善,但是随着科技 的不断进步和应用场景的不断扩展,指纹识别技术将会得到更加广泛的应用和推 广。
设计
指纹识别系统的设计主要包括硬件设计和软件设计两个部分。在硬件设计方 面,指纹识别系统需要使用指纹传感器来采集指纹图像,然后将采集到的图像传 输到51单片机进行处理。此外,还需要一些外围器件来实现电源供电、LED指示 等功能。在软件设计方面,需要编写程序来实现指纹图像的处理和比对等功能。 具体来说,软件设计需要包括以下几个征来进行身份验证的技术。由于每个人 的指纹都是独一无二的,因此指纹识别技术可以作为一种非常有效的身份验证手 段。在现代社会中,指纹识别技术被广泛应用于安全认证和身份识别领域,例如 手机解锁、门禁系统、银行安全等。在这些应用场景中,指纹识别技术可以大大 提高安全性,避免非法入侵和欺诈行为。
2、单片机控制程序测试:我们将通过单片机控制程序,对指纹识别模块进 行控制和调节,检查程序是否能够正常工作、是否能够准确控制指纹识别模块。
3、算法测试:我们将选用多种不同的指纹图像进行测试,比对算法的准确 性和效率,以确保算法在实际应用中的可靠性和稳定性。

基于51单片机的密码锁设计报告

基于51单片机的密码锁设计报告

基于51单片机的密码锁设计报告基于51单片机的密码锁设计报告一、引言随着人们对个人财产安全的关注日益加深,密码锁作为一种智能识别系统,能够提供比传统机械锁更高的安全性和便利性。

51单片机作为一种常见的微控制器,具有体积小、价格低廉、易于编程和扩展等优点,因此被广泛应用于各种控制系统。

在本设计中,我们将基于51单片机构建一个密码锁系统。

二、系统总体设计本系统主要由51单片机、液晶显示屏(LCD)、矩阵键盘、报警模块和电源模块组成。

其中,51单片机作为主控芯片,负责处理用户输入的密码、控制LCD显示和报警模块。

LCD用于显示用户输入的密码和操作提示信息。

矩阵键盘用于用户输入密码。

报警模块在密码错误时发出警报。

电源模块为系统提供稳定的工作电压。

三、硬件设计1、51单片机:采用AT89C51或STC89C52等常见的51单片机。

2、液晶显示屏:选用1602 LCD,显示效果清晰,操作简单。

3、矩阵键盘:采用4×4键盘,按键布局可根据实际需求调整。

4、报警模块:使用蜂鸣器和LED进行声音和灯光提示。

5、电源模块:为系统提供+5V稳定电压。

四、软件设计本系统的软件设计主要分为以下几个模块:1、密码管理:包括密码设置、密码修改和密码重置等功能。

2、密码验证:在用户输入密码后,系统通过与预设的密码进行比对,判断密码是否正确。

3、系统提示:通过LCD显示操作步骤和提示信息,引导用户正确使用密码锁。

4、报警处理:在密码错误时,启动报警模块,发出警报声音和灯光提示。

五、系统调试与结果在完成硬件设计和软件编程后,我们对系统进行了调试和测试。

结果表明,基于51单片机的密码锁系统能够实现预设的功能,包括密码输入、密码验证、错误提示和报警等。

同时,系统运行稳定,具有良好的可靠性和安全性。

六、结论本设计基于51单片机的密码锁系统,实现了对密码的存储、输入和验证等功能,具有较高的安全性和便利性。

通过扩展报警模块,系统能够有效地应对非法入侵等情况。

基于单片机的指纹密码锁系统设计

基于单片机的指纹密码锁系统设计

参考内容
基于单片机的指纹密码锁是一种集成了生物识别技术和嵌入式系统技术的安 全装置。它通过采集并比对指纹信息来决定是否授予访问权限。这种密码锁具有 很高的安全性和便捷性,因此在家庭、办公场所、工业等领域得到了广泛应用。
指纹密码锁的发展可以追溯到20世纪90年代,当时人们开始研究生物识别技 术在安全领域的应用。随着科技的发展和人们安全意识的提高,指纹密码锁逐渐 普及。现在,指纹密码锁已经成为市场上的主流产品,需求量不断增长。
指纹密码锁是一种利用指纹识别技术来控制锁的开启与关闭的设备。它通过 采集用户的指纹信息并存储在芯片中,在开锁时进行比对,以判断是否为合法用 户。单片机作为控制核心,负责处理指纹信息、控制开关门等操作。
设计指纹密码锁的主要步骤包括硬件设计和软件设计。硬件设计主要包括指 纹采集模块、控制开关和报警模块等的设计。软件设计主要涉及指纹信息的采集、 存储和比对等操作。具体步骤如下:
1、选取合适的单片机作为控制核心,例如STM32系列单片机。
2、安装指纹采集模块,并连接单片机。该模块可采用光学或电容式指纹识 别技术。
3、设计控制开关,连接单片机,实现通过单片机的控制进行开关门操作。 4、添加报警模块,如遇到非法入侵,通过单片机控制触发报警系统。
5、在单片机中编写控制程序,实现指纹信息的采集、存储和比对等功能。
总之,基于单片机的指纹密码锁是一种非常实用的安全装置,具有很高的安 全性和便捷性。随着科技的不断进步和应用场景的不断扩展,我们有理由相信它 将成为未来安全领域的重要发展方向。
参考内容二
在当今社会,随着科技的不断发展,人们对于自身财产的安全性越来越重视。 其中,门锁作为保护家庭或重要场所的第一道防线,历来受到广泛。传统门锁存 在被钥匙遗忘、复制钥匙等风险,因此,指纹密码锁作为一种新兴的安全防护设 备,逐渐进入人们的视野。本次演示将介绍一种基于单片机的指纹密码锁的设计。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机指纹电子密码锁设计摘要随着人民生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性低,无法满足人们的需求。

随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码锁控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码锁控制的密码量少,安全性能差的缺点。

在传统的身份认证中,我们往往使用密码加密法,但是这种方法只是"防君子不防小人"。

在高明的黑客眼里,由几个字符组成的密码脆弱得不堪一击。

现在,科技的发展让我们有了新的选择——生物识别技术。

将生物识别技术应用于笔记本、门锁等方面,可以对文件、财产起保护作用,并且可以进行身份识别。

生物识别技术的发展主要起始于指纹研究,它亦是目前应用最为广泛的生物识别技术。

本设计开发了一款基于单片机的指纹识别电子密码锁系统。

该系统以STC89C52单片机作为模块核心,通过串口通信控制ZFM-60指纹模块实现录取指纹并存储指纹数据,并通过HS12864-15C液晶显示比对流程及比对结果,辅以直流继电器与发光二极管模拟开锁的动作。

本系统具有体积小、性价比高、传输速度快、适合家庭及单位使用。

关键词:单片机,密码锁,指纹识别51 single fingerprint-based electronic code lockdesignABSTRACTWith the improvement of people's living standards, how to achieve family security issue has become particularly prominent, the traditional mechanical locks because of its simple structure, low security, can not meet people's needs. As electronic products to intelligent miniaturized and the continuous development of SCM has become the electronic product research and development preferred controller, the electronic lock control system with anti-theft alarm function gradually replace the traditional mechanical control systems with code, overcome password less, poor safety performance shortcomings of mechanical lock control.In traditional identity, we tend to use password encryption method, but this method only "anti-anti-villain is not a gentleman." In the eyes of clever hackers, password consists of several characters fragile too vulnerable. Now, the development of science and technology so that we have a new option - biometrics. The biometric technology used in notebook, door locks, etc., they can file for protection of property, and can be identifiable. biometric technology in fingerprint primary origin research, it is also the most widely used biometric technology.The system design of fingerprint recognition electron password lock based on Single-chip microprocessor is developed in the thesis. The system STC89C52 MCU as the core module, through the serial communication control ZFM-60 fingerprint module for taking fingerprints and store fingerprint data and liquid crystal display by HS12864-15C ratio than on the processes and results, supported by simulation of DC relays and LEDs unlock action. The system is small, cost-effective, and fast and suitable for families and units.Key Words:Single-chip microprocessor, password, Fingerprint recognition目录第一章绪论 (1)1.1课题研究意义 (1)1.2国内外指纹密码锁发展历史及现状 (3)1.3本文主要内容 (4)第二章整体设计方案 (5)2.1方案比较与论证 (5)2.2系统总体设计 (7)2.2.1 系统功能描述 (7)2.2.2系统总体框架 (7)2.3本章小节 (8)第三章系统硬件设计 (9)3.1单片机及最小系统 (9)3.1.1 STC89C52单片机介绍 (9)3.1.2外部晶振设计 (12)3.1.3复位电路设计 (13)3.2指纹模块设计 (15)3.2.1指纹识别技术简介 (15)3.2.2 指纹模块简介 (16)3.2.3 指纹模块指令 (18)3.2.4 指纹模块接口电路设计 (21)3.3按键电路设计 (21)3.4液晶显示模块设计 (23)3.4.1 FYD12864工作流程 (24)3.4.2 FYD12864指令说明 (24)3.4.3 FYD12864液晶显示接口电路设计 (29)3.5本章小节 (31)第四章系统软件设计 (32)4.1系统工作过程分析 (32)4.2主程序流程图 (33)4.3键盘程序流程设计 (35)4.4LCD显示模块程序流程设计 (35)4.5指纹识别程序设计 (36)4.5.1 指纹模块通讯协议说明 (36)4.5.2 指纹模版的采集存储 (38)4.5.3 指纹比对程序设计 (39)4.6K EIL编程 (40)4.7本章小结 (41)第五章实物制作与调试 (42)5.1电路的焊接 (42)5.2程序的烧写 (44)5.3小灯、继电器的调试 (45)5.4液晶的调试 (45)5.5指纹模块、按键的调试 (46)5.6本章小结 (47)总结 (48)参考文献 (49)附录一 (50)附录二 (51)英文原文 (56)中文翻译 (65)第一章绪论我们今天的工作生活中,很多场合需要身份验证。

而基于传统的标志的身份认证技术由于受到证件伪造以及密码破解等手段的威胁,逐渐表现得有些不足。

如何保护自己的重要文件,如何保证自己的隐私不被泄露?在传统的身份验证下,我们倾向于使用密码加密方法,但这种方法“只是防得住君子,防不住小人”。

在高明黑客的眼中,密码由几个字符脆弱得不堪一击。

现在,科学技术的发展,使我们有了新的选择- 生物识别技术。

在笔记本,门锁等加上生物识别的技术,它们可以对文件财产进行保护,并且是高安全性,高效率的。

生物识别技术是基于对人的外貌,声音和对其它生物特征身份验证的科学解决方案,现有的生物识别技术,包括指纹识别技术一般,掌纹识别,视网膜识别,虹膜识别,脸部识别技术,语音识别技术和手写识别技术[1]。

生物识别技术的主要优点是:1,减少,杜绝假冒身份,确认真实身份; 2,降低管理成本,免去了人工身份认证过程; 3,人性化,减少或消除使用卡,钥匙或密码等问题。

指纹是研究生物特征识别技术的起源,它也是应用最广泛的生物识别技术。

指纹识别技术的发展依靠于现代电子集成制造技术和快速可靠的算法的研究。

虽然指纹是人体皮肤的一小部分,但其中所包含的数据信息却大到我们难以想象。

对这些包含的数据信息对比不是一个简单的问题,而是使用模糊匹配算法,加以大量的操作。

现代电子集成制造技术使我们能够制造相对小的指纹图像读取装置,而在计算速度迅速发展的今天,使在单片机上进行两个指纹的对比运算成为可能。

此外,匹配算法的可靠性也在不断提高,使得指纹识别技术越来越成熟[2]。

1.1课题研究意义随着社会的发展和技术的进步,传统的安全防盗系统面临极大的挑战。

长久以来,安防系统验证身份的方法是验证一个人是否持有有效的信物,如照片、密码、钥匙、磁卡和IC卡等。

因此从本质上来看,这种方法验证的是该人持有的某种“物”,而不是验证该人本身。

只要“物”的有效性得到确认,则持有该“物”的人的身份也就随之得到确认。

这种通过“物”来确认人的身份的办法存在的漏洞是显而易见的:“物”的丢失或出错都会导致合法的人无法被认证,并且各种信物容易被伪造、破译。

在网络化时代的今天,我们每个人都拥有大量的认证密码,比如开机密码、邮箱密码、银行密码、论坛登陆密码等等;密码作为身份识别的标志已被广泛采用。

密码容易被遗忘,也有被人窃取的可能,无论是在智能化还是安全性能方面都已经不能满足需求,现在的各种钥匙,如门锁钥匙,汽车钥匙,保险柜钥匙等也如同密码一样存在显而易见的漏洞。

这些传统的安全系统所采用的方式,随着社会的发展,其安全性越来越脆弱不堪一击。

但是我们不能回避这个尴尬的问题,我们的生活中随时都需要进行个人身份的确认和权限的认定,尤其是在信息社会,人们对于安全性的要求越来越高,同时也希望认证的方式简单快速。

为了解决这一存在已久的问题,人们把目光转向了近年来兴起的生物识别技术,希望能借助人体的生理特征或行为动作来进行身份识别。

这样就可以不必携带大串钥匙,也不用费心去记各种密码。

相关文档
最新文档