电子密码锁源程序(带功能简介)

合集下载

智能电子密码锁【范本模板】

智能电子密码锁【范本模板】

智能电子密码锁目录摘要 (3)一、背景 (4)二、系统总体方案设计 (4)三、主要功能实现 (5)四、方案设计与论证 (5)4.1按键解锁部分 (5)4。

2手机通信部分 (6)4。

2。

1 采用WIFI模块 (6)4.2。

2 采用蓝牙模块 (6)4。

3射频卡控制部分 (6)4.4显示部分 (7)4.4.1 采用七段数码管显示 (7)4。

4.2 采用LCD1602液晶显示器显示 (7)4.4。

3 采用NOKIA5110液晶显示器显示 (7)五、各部分电路 (7)5。

1按键解锁部分电路 (7)5.2蓝牙部分电路 (7)5.3液晶显示部分电路 (8)5。

4射频卡部分电路 (8)5。

5指示灯、蜂鸣器电路 (8)六、程序结构框图 (9)七、源程序代码 (10)7.1各部分定义 (10)7。

2主程序 (11)八、结语 (13)九、参考文献 (13)摘要:自从人类开始制造锁以来长期所使用的锁都是机械锁,通俗的讲就是弹子芯锁.而传统的弹子芯锁,由于其本身锁芯密齿的有限加之开锁工具钥匙的容易复制性,使得其安全性大大降低,随着人们生活质量的提高,如何实现安全有效的防盗这一问题受到越来越多人的关注。

传统的机械锁由于安全性能太差,被撬的事件屡见不鲜,相比之下,电子密码锁因其保密性强,使用灵活性好,安全系数高,还省去了传统机械锁的钥匙,使用者只要记得其密码,便可以开启,从而大大提高了防盗功能,本文主要设计了一种以STC89C51为核心的电子密码锁,详细的介绍了该电子密码锁完整的设计过程以及外围的开锁电路和报警电路的设计。

本电子密码锁开锁方式为键盘开锁、手机APP开锁、刷卡开锁,同时具有以下功能:更改密码,误输入报警等。

关键词:STC89C51 刷卡键盘控制手机遥控指示灯电机控制基于51单片机的电子密码锁的设计一、背景在人们的日常生活中,锁被广泛使用,人们常用锁具来保证一些贵重物品乃至自己家庭的安全,目的就是为了提高安全性。

PIC单片机电子密码锁

PIC单片机电子密码锁

一、系统主要功能1)基本要求1.硬件设计要求:(1)CPU使用PIC16F877A。

(2)用4x4矩阵键盘作为操作信息输入。

(3)用LCD1602或六位数码管作为信息输出。

(建议使用LCD1602)(4)用蜂鸣器及发光二极管作为错误报警及状态显示。

2.系统功能要求:(1)输入密码功能。

输入密码时用“*”号或“-”显示。

在输入密码时,具有清除前一位密码功能(用CLR键)。

密码输入完毕,按(ENTER键)确认并生效。

(2)上锁功能。

在锁开状态下,通过(LOCK键)上锁。

(3)在锁合的状态下,通过密码开锁功能。

开锁时,直接在键盘上输入六位密码,按(ENTER键)确认,如果密码正确,转入锁开状态。

(4)在锁开状态下,修改密码功能。

在键盘上输入六位新的密码,按(ENTER键)确认,代替旧密码,并保存在RAM中。

(4)在开锁时,如果输入密码三次错误,产生声、光报警功能。

(5)0~9为密码键数字键,E为ENTER键,C为清除键CLR键,D作为上锁键LOCK键,如果用到其他键时,可自行定义。

2)进阶要求密码保存在PIC16F877A内部的EEPROM中,以防断电密码丢失。

(不使用外挂的EEPROM,如:AT24C02等)二、系统设计要求1)根据系统的功能和目标,画出系统功能框图。

2)根据系统功能框图用Proteus画出仿真电路图。

3)根据系统的功能要求,画出程序流程图。

4)根据程序流程图,用PIC C语言编写系统源程序。

5)进行编译、调试建立目标代码。

6)在Proteus环境下进行仿真。

三、设计报告报告内容包括系统设计思路、方案选择、器件选择及电路元器件明细表、系统功能框图、程序流程图、源程序清单、系统工作原理和设计心得等。

四、评分标准:1、完成《基本要求》者,得分80~89分;2、完成《基本要求》及《进阶要求》者,得分90~100分;五、设计时间安排十九周的星期一至星期五(2011年6月27日至7月1日)1)周一:布置任务,进行方案选择、器件选择。

基于FPGA的电子密码锁设计

基于FPGA的电子密码锁设计

一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。

目前设计密码锁的方法很多,例如传统的PCB板设计、用PLC设计或者单片机设计等等。

而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。

VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。

二、方案设计密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。

根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。

其原理框图如下所示:图一、电子密码锁原理框图三、功能模块的实现1、时序电路在密码锁的电路中,输入计时、报警计时需要的1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法得到1HZ的计时脉冲,程序如下:process(clk_1k)variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ计时脉冲。

2、密码设置为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,password,enter_p) isbeginif rst='0' thenif enter_p='1' thenram<=password;en1<='1';end if;end if;end process;程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。

电子密码锁制作及源代码

电子密码锁制作及源代码
rg_key();
didi();
lock=0;
while(l--)
{write_com(0x9e);
write_date(0x30+l); //正在倒计时
for(i=0;i<40;i++)
{if(modify_pw())
{key1=0;
break;}
delay1(25);}
if(key1==0)
{key1=1;
uint a,j;
/*按键声音*/
void didi()
{beep=0;
delay1(70);
beep=1;
delay1(70);
}
/*灯光闪烁*/
void flash()
{leபைடு நூலகம்=0;
delay1(70);
led=1;
delay1(70);
led=0;
delay1(70);
led=1;
delay1(70);}
注释:左图为继电器驱动灯光报警及照明电路图,右图为蜂鸣器报警电路原理图。
5、电磁锁模块设计
电磁锁是本设备中比较重要的电气及机械设备之一,其同样采用继电器驱动,但是由于其功率比较大,所以决定了其工作电流会比正常工作状态要大5倍左右,所以断电瞬间会产生很高的自感电动势,反馈到继电器线圈上,同时其强大的磁场会对单片机的工作造成影响,为了解决这个问题,最好是在单片机输出端加上光耦合器,以起到隔离的目的,但是为了不破坏电路布线的整体性,这里我们在电磁锁两端反向并联了一只高压二极管(1N4148),这样就消除了干扰。
电子密码锁
【摘要】
随着如今智能家居的发展,电子密码锁的兴起也随着得以发展,同时也由于其安全、方便、快捷、美观等特点被广大用户所接受。单片机在此方面的控制也得以普及。本设计是一个电子密码锁成品的模型,共可分为八个模块:主控芯片模块、电源模块、报警电路模块、无线遥控模块、液晶显示模块、键盘扫描、电磁锁模块、照明电路模块。本设计输入正确密码后即可开锁,门便会打开,只有门打开后才可修改密码,同时有密码验证功能。同时密码输入错误三次便会激活报警。为了节约电能,设备无操作一分钟时将会进入省电模式,按任意键后可激活设备。

电子密码锁设计

电子密码锁设计
switch(GPIOA->IDR & 0x00f0)
{
case 0x0010: KeyVal=13; break;
case 0x0020: KeyVal=9; break;
case 0x0040: KeyVal=5; break;
case 0x0080: KeyVal=1; break;
}
GPIO_Write(GPIOA,(GPIOA->ODR&0xfff0|0x8)); switch(GPIOA->IDR&0x00f0)
图1.2 stm32控制方案
通过比较以上两种方案stm32有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
初步设计思路如下:
基于以上思路,本次设计使用stm32设计,其主要具有如下功能:
密码通过键盘输入,若密码正确,则将锁打开。
{
case 0x0010: KeyVal=12; break;
case 0x0020: KeyVal=8; break;
case 0x0040: KeyVal=4; break;
case 0x0080: KeyVal=0; break;
}
return KeyVal;
}
void Delay(__IO uint32_t nCount)//简单的延时函数
密码的设定,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

任务三简易电子密码锁制作概要

任务三简易电子密码锁制作概要

(2)显示密码字符
在显示处理时,任务二是将有效 密码值送显示缓冲区,而本任务 是将密码字符“-”的字型码 “0xbf”在字型码表中对应的位 置(参考程序中为“17”)送显 示缓冲区。
(3)开锁处理
(4)继电器模块介绍
继电器模块内部驱动 电路原理图
控制程序: sbit LOCK = P2^4; LOCK=0;//开锁指令 LICK=1; //关锁指令
项目实施
•1.硬件电路连接:按照硬件电路接线图连线,选择所需的模块并进行布局, 然后将电源模块、主机模块、显示模块、指令模块和继电器模块用导线进行连 接。 •2.打开Keil软件,新建工程“MMS3”,然后再新建并加入名为MMS3.C的源程 序文件,将上面的参考程序输入并保存、编译和链接,产生HEX文件。 •3.对源程序进行编译和链接,如果有错误则必须修改错误,直到编译成功, 设置生成目标代码。 •4.将目标代码通过编程器写入到单片机中。接通电源,让单片机运行,按下 按键,观察显示是否正确,能否正确实现密码锁的功能。 •5.进行扎线,整理。
当LOCK接口中输入低电平时,光电耦合器U1导通,从而
使继电器RL1线圈得电,同时LED灯点亮。若LOCK接口输入
高电平,则光电耦合器U1不工作,继电器RL1线圈不得电,
同时LED灯熄灭。 所以,只要通过单片机的I/O口输出高低电平到输入端KA6 就能控制继电器的工作:单片机输出低电平,继电器线圈 得电,触点动作;单片机输出高电平,继电器不得电,触 点不动作。
硬件电路的设计与搭建
1、硬件电路设计 2、绘制模块接线图
锁 KA1 开 3 锁 4 闭 2 定 确 37F 51 0 1 5 0 V 8 CE LED2 除 B 清 4 K R1 26E 5 K R1 3 K R1 +12V 159D IC2 +5V 048C 2 K R1 ROW0ROW1ROW2ROW3COL3COL0COL1COL2 LOCK 01234567 DDDDDDDD+5V+5VP27LOCKP25P26 12345678901234567890 b c P D 22222222233333333334 7 D a G g d 6 D F ef 5 D 块 E VCC 4 D 模 PSEN D 3 D 示 EA/VPP P2.0(A8)P2.1(A9)P0.7(A7)P0.6(A6)P0.5(A5)P0.4(A4)P0.3(A3)P0.2(A2)P0.1(A1)P0.0(A0) C P2.2(A10)P2.3(A11)P2.4(A12)P2.5(A13)P2.6(A14)P2.7(A15) 2 D 显 ALE/PROG B 管 1 D A 码 0 D 数 位 8 b c IC1 a g D R W d P25 N CS2 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ResetP3.0(Rxd)P3.1(Txd)P3.2(INT0)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL1XTAL2Gef P26 CS1 AT89S51T P27 MK1 12345678901234567890 11111111112 COL0COL1COL2COL3ROW0ROW1ROW2ROW3 XT1 +5V k 1 0 11.0592MHzR1 1 C10μF PP 23 00 C3C3

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

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

本科毕业设计(论文)题目基于单片机的电子密码锁设计院(系部)河北大学专业名称电子信息工程年级班级学生姓名指导教师2011年月日摘要本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机作为数据处理主控芯片。

电子密码锁的设计主要由四部分组成:4×4矩阵键盘接口电路、以AT89S52芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。

另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。

电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。

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

关键词单片机密码锁 4*4矩阵键盘 EEPROM存储芯片实用经济AbstractThis project designed a digital electronic lock which used a MCU as data process and control chip. The main functions digital electronic lock are as follows:The design of the electronic password lock is mainly made up of four parts: 4×4 matrix keyboard interface circuit, data processing and control circuit, eeprom memory chip that is used to keep password when the lock loses power and display circuit. In addition the system also consists of LED lights, alarm buzzers, single-chip reset circuit and so on..The key question of the electronic lock designing is the realization of functions, such as the input password, clear password, unlock, change password and other functions.And the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety and practicality.Besides,it works well as a residence lock and has great potential for commercial development.Key words: SCM Cipher lock 4*4matrix keyboard EEPROM Practical economy目录1 绪论 (1)1.1国内外研究综述 (1)1.2选题的目的和意义 (2)1.3本论文的任务 (3)2电子密码锁总体设计 (4)2.1系统总体设计 (4)2.2单片机 (5)2.3密码存储芯片选择 (10)2.4键盘输入方案比较 (12)2.5显示方案比较 (13)3电子密码锁的硬件设计 (1)3.1系统结构框图 (1)3.2主控部分 (2)3.3显示部分 (3)3.4键盘输入部分 (4)3.5密码存储部分 (5)3.6电源部分 (5)3.7其它功能部分 (8)3.8 电子密码锁的电路原理图 (10)4电子密码锁的软件组成 (12)4.1系统软件设计流程 (12)4.2 Keil uVision2软件介绍 (13)4.3各主要部分的功能实现程序设计 (14)4.3.1初始化程序设计 (14)4.3.2按键处理程序设计 (17)4.3.3密码更改程序设计 (21)5系统仿真 (24)5.1系统仿真过程 (24)5.2仿真调试中遇到的问题及解决办法 (25)总结 (1)致谢 (2)参考文献 (3)附录 (4)1 绪论1.1国内外研究综述在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机械锁已不能满足人们的要求,于是电子锁应用而生。

基于单片机电子密码锁的设计原理

基于单片机电子密码锁的设计原理

本科生毕业设计目录设计总说明 (I)DESIGN INTRODUCTION ................................................................ 错误!未定义书签。

第1章绪论 . (1)1.1背景 (1)1.2电子锁 (1)1.3电子密码锁的特点 (1)1.4电子密码锁的发展趋势 (2)第2章系统总体设计 (2)2.1系统结构 (3)2.2 系统组成 (3)2.3 系统可行性分析 (3)第3章硬件电路设计 (4)3.1单片机AT89C51简介 (4)3.1.1 主要特性 (5)3.1.2 管脚说明 (5)3.1.3 震荡特性 (7)3.1.4 芯片擦除 (7)3.2 4×4矩阵键盘 (7)3.3复位电路 (8)3.4 振荡电路 (8)3.5 数码管 (8)3.6 发光二极管LED (9)3.7 电动锁 (10)3.8 蜂鸣器 (10)3.9 完整电路图 (11)第4章软件程序设计 (13)4.1软件设计流程图 (14)4.2 具体功能软件实施 (15)第5章结束语及展望 (21)第6章鸣谢 (22)第7章参考文献 (23)附录 (22)设计总说明在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

单片机程序设计—电子密码锁

单片机程序设计—电子密码锁

目录目录 (1)中文摘要 (2)第一章概述 (5)第二章系统总体方案设计 (6)第三章硬件电路设计 (10)3.1键盘电路设计 (10)3.2 LED显示电路 (12)3.3 开锁警电路 (15)第四章软件设计 (17)4.1 软件设计思路 (17)4.2各子程序设计 (17)第五章系统调试 (22)第六章心得体会 (23)第七章参考文献 (24)附录 (25)源程序清单 (25)中文摘要摘要:在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣,随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁得使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐替代传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的只能密码锁,它除了具有电子密码锁的功能外,还引进了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是,这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

基于以上思路,本次设计使用ATMEL公司的AT89C51实现—基于单片机的电子密码锁的设计,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开。

单片机及PLC 电子密码锁说明书

单片机及PLC 电子密码锁说明书

班级:电气机电成员:指导老师:2012年月日目录1 主要器件的介绍1.1 AT89S521.1.1AT89S52主要性能1.2功能特性描述1.2 LCD16021.2.2LCD1602管脚分布2 硬件电路方案2.1 总体系统框图2.2 路设计及电路图2.2.1电源部分2.2.2显示部分2.2.3键盘电路2.2.4复位电路2.2.5时钟电路2.2.6蜂鸣器电路2.3 密码锁电路的PCB3 电路整体功能说明4 软件设计4.1 程序模块化4.2程序流程图4.2.1主体流程图4.2.2 R屏幕清0流程图4.2.3SET设置密码流程图4.2.4COMP比较密码流程图5 proteus软件仿真6、结论及新的体会、附源程序1 主要器件的介绍1.1 AT89S52管脚图如图1.1所示图1.1AT89S52管脚图1.2 LCD1602LCD1602是应用范围最广的带背光字符型液晶模块,1602LCD可显示2行,每行16个字符,广泛用于各种便携式仪器仪表中通过试验掌握液晶模块的驱动方法。

它的封装为SIP16。

1.2.1 LCD1602的外形尺寸LCD1602的外形尺寸如图1.2.1图1.2.1LCD1602外形尺寸1.2.2LCD1602管脚分布LCD1602管脚分布如表1.2.1表1.2.12 硬件电路方案2.1 总体系统框图以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的I∕O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其总框图如图2.1所示。

图2.1 单片机控制方案2.2原理图整体电路设计见附录2.2.1电源部分电源电路由一个1.6K电阻,和一个104滤波电容及电源显示LED灯组成,当密码锁电路正常供电时,LED灯就会亮。

电源电路如图2.2.1图2.2.1电源电路2.2.2显示部分密码锁电路的显示是由LCD1602显示,接到89S52芯片的P0口作为显示端,接2K 的排阻作为上拉电阻,同时接个5.1K的电阻到LCD的3口,调节屏幕的背景光对比度。

电子密码锁

电子密码锁

1 概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。

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

传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。

另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

电子密码锁的出现给人们带来了极大的方便,有很广阔的市场前景。

现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。

其性能和安全性已大大超过了机械锁,特点有:(1)保密性好,编码量多;(2)随机开锁成功率几乎为零;(3)密码可变。

用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降;(4)误码输入保护。

当输入密码多次错误时,报警系统自动启动。

目前,在西方发达国家,密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。

在我国密码锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。

但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。

国内的不少企业也引进了世界上先进的技术,发展前景非常可观。

希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。

2 方案选择2.1数字电路控制方案采用数字密码锁电路的好处就是设计简单。

可以用74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,设置9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过设定时间,电路将报警,若电路连续报警三次,电路将锁定键盘,防止他人的非法操作。

利用数字电路实现电子密码锁-毕业设计

利用数字电路实现电子密码锁-毕业设计

利用数字电路实现电子密码锁学生:XXX 指导老师:XXX内容摘要:本数字密码锁采用单片机AT89S52为主控芯片,由EEPROM存储密码。

硬件部分包括主控制系统、人机交互界面以及输出系统三大部分。

主控制系统中主控制芯片使用了AT89S52单片机,该单片机性能优良,能满足一般的普通应用;EEPROM采用AT24C02芯片,掉电后可以存储密码,从而保证了系统的安全性。

人机交互通道部分采用了4×4矩阵键盘输入以及LCD1602标准字符型液晶显示。

输出系统部分包括驱动开锁电路和报警电路;其中,在本系统设计中,驱动开锁电路用发光二极管表示,而报警电路则使用蜂鸣器。

本系统中使用的AT24C02芯片是一个带有I2C总线接口的EEPROM存储器。

I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。

I2C总线结构很简单,只有两条线,包括一条数据线(SDA)和一条串行时钟线(SCL)。

具有I2C接口的器件可以通过这两根线接到总线上,进行相互之间的信息传递。

本数字密码锁的功能为:密码位数为8位,可选值为0~9,从而保证足够的锁体强度;用户可以自行设定和修改密码;防止密码被盗,输入密码错误次数超过3次则报警;友好的人机界面;输入正确的密码后,驱动开锁电路。

软件部分应用单片机C语言实现了本设计的全部控制功能。

C语言编译方便,易读性好,且移植性方便,能够满足实现本系统的功能要求。

在设计过程中,给出了本系统C语言编程的原理和流程图。

本数字密码锁系统稳定性好,设计人性化,由于使用单片机控制并有记忆模块,功能齐全可靠,并有很好的扩展性,而且成本低廉,具有良好的发展前景。

关键词:数字密码锁 AT24C02芯片安全性Electronic combination lockAbstract:Using the digital circuit realize electronic combination lock This digital locks USES the monolithic integrated circuit AT89S52 as the controller chip, by EEPROM memory password. Hardware including master control system, man-machine interface and output system of three.The Lord control system used in the control chip AT89S52 SCM, this single chip good performance, can satisfy the general common application; The AT24C02 chip EEPROM, after power off can be stored password, so as to ensure the security of the system. Man-machine interactive channel part adopts the 4 x 4 matrix keyboard input and LCD1602 standard character type LCD display. The output of system including drive circuit and alarm lock circuit; Which, in the system design, drive the lock circuit using light-emitting diodes said, and alarm circuit is using a buzzer.The system used AT24C02 chip is a with the I2C bus interface EEPROM memory. The I2C bus is a two-way two wire bus, its simple structure, reliability and anti-interference capability. The I2C bus structure is simple, only two lines, including a data line (SDA) and a serial clock line (SCL). Has the I2C devices through this interface to two lines on the bus, the mutual information transfer.This digital locks function for: password digits for eight, optional value is 0 ~ 9, so as to ensure enough lock body strength; The user can set and modify the password; To prevent the password is stolen, the input password mistake number more than three times the alarm; Friendly human-machine interface; To enter the correct password, drive the lock circuit.Application software of single chip microcomputer C language realized this design of all control function. C compiler convenient, easy to read the gender is good, and easy portability, and can meet the requirement of system function realization. In the design process are given, and the system of the C programming language principle and flow chart.This digital locks system stability, humanized design, because use asingle-chip microcomputer control and a memory module, complete function and reliable, and have a good scalability, and the cost is low, have good development prospect.Keywords: Electronic combination lock AT24C02 chip safety目录前言 (1)1 系统的硬件设计 (2)1.1 硬件的总体结构和原理 (2)1.1.1 硬件系统的总体结构图 (2)1.1.2 硬件系统组成 (2)1.1.3 系统的可能性分析 (3)1.2 单片机AT89S51简介 (4)1.2.1 主要性能 (4)1.2.2 引脚功能描述 (5)1.3 AT24C02简介 (7)1.3.1 功能描述 (7)1.3.2 管脚描述 (7)1.3.3 I2C总线协议 (8)1.4 LCD1602介绍 (8)1.4.1 引脚描述 (9)1.4.2 LCDI602控制指令 (9)1.4.3 LCDI602读写控制时序 (11)1.5 4×4矩阵键盘 (11)1.6 复位电路 (12)1.7 振荡电路 (12)1.8 发光二极管LED电路 (13)1.9 报警电路 (13)1.10 电源输入电路 (14)1.11 使用到的元器件列表 (15)2 软件程序设计 (15)2.1 编译器Keil uVision2简介 (16)2.2 软件总设计流程图 (16)2.3 具体功能软件实现 (17)2.3.1 4×4矩阵键盘扫描程序 (17)2.3.2 显示程序 (19)2.3.3 时钟运行子程序 (19)2.3.4 时钟时、分修改子程序 (20)2.3.5 掉电存储服务程序 (21)2.3.7 密码修改子程序 (23)3 结束语 (24)附录1:PCB原理图 (26)附录2:仿真原理图 (27)附录3:单片机硬件实物图 (28)参考文献 (29)利用数字电路实现电子密码锁前言随着社会物质财富的日益增长,安全防盗已成为社会问题。

电子密码锁说明书1

电子密码锁说明书1

电子密码锁设计引言电子锁具有保密性强,防止非法监听复制密钥,使用灵活性好,安全系数高等优点,极大地提高了电子钥匙的安全性,方便了人们的生活。

密码锁在人们的生活中起到了重要的作用,是传统机械锁无法替代的设计本课题时构思了两种方案:一种是用AT89C51单片机控制的密码锁,位8位密码锁,具有按键有效提示、解码有效提示、控制开锁电平、控制报警、密码修改等功能(该为讨论方案)。

另一个方案同为单片机控制,但用8位数码管组成显示电路提示信息,初始化及按键过程屏幕提示。

该方案能完成开锁、操作错误报警、密码输入错误时报警并锁定系统功能,为6位密码锁(此课设中采用了第二方案)。

1 设计意义及要求1.1设计意义设计出一款使用性能高的电子密码锁能够为人们生活带来进步与发展。

1.2设计要求用4*3组成0—9数字键及确认键、删除键;用8位数码管组成显示电路提示信息,当输入密码时,只显示“—”,当密码位数输入完毕按下“确定”键时,对输入的密码与设定的密码进行比较,若密码正确,则锁开,此处用LED发光二极管亮1s作为提示;若密码不正确,禁止按键输入3s,同时发出“嘀、嘀、嘀”的报警声。

本程序设定密码数为6个,在输入过程中,数字输入超过6个时,给出报警信息。

2 方案论证与比较方案一:设计一种单片机控制的密码锁,具有按键有效指示,解码有效指示、解码有效指示、控制开锁电平,控制报警,密码修改等功能。

密码锁的控制程序由延时子程序,修改密码子程序、键盘读入子程序、校验密码子程序及主程序组成。

锁的初始状态为“锁合”指示灯亮。

输入初始密码“0、1、2、3、4、5、6、7”,每输入一位,“键有效”指示灯亮约0.5是:输完8位按确定键,锁打开,“锁开”指示灯亮;按“上锁”键,锁又重新上锁,“锁合”指示灯亮。

“锁开”状态下,可输入新密码,按“确定”键后可更改密码;可重复修改密码。

如果输入密码错误超过3次,蜂鸣器启动发出报警,同时“错误”指示灯常亮。

基于STC89C52单片机的电子密码锁(完整版)-附-仿真图-原理图

基于STC89C52单片机的电子密码锁(完整版)-附-仿真图-原理图

目录1绪论 (1)1.1本设计的研究背景与研究目的 (1)1.2国内外研究现状 (2)2电子密码锁的总体设计方案 (3)2.1方案论证 (3)2.1.1方案一采用单片机控制方案 (3)2.1.2方案二采用数字电路控制方案 (4)2.1.3方案三采用EDA控制方案 (5)2.2方案比较以及可行性 (5)3电子密码锁硬件电路的设计 (6)3.1中央控制模块的设计 (6)3.1.1主控芯片STC89C52单片机的简介 (6)3.1.2时钟电路的设计 (7)3.1.3复位电路的设计 (8)3.2键盘输入模块的设计 (9)3.2.1矩阵键盘工作原理 (9)3.2.2单片机键盘扫描法 (10)3.3LCD显示密码模块的设计 (10)3.3.1LCD1602简介 (11)3.3.2LCD1602液晶显示模块与单片机连接电路 (12)3.4开锁模块的设计 (13)3.5报警模块的设计 (13)3.6硬件电路总体设计 (14)4电子密码锁的软件设计 (15)4.1主程序流程介绍 (15)4.2键盘模块流程图 (16)4.3显示模块流程图 (18)4.4修改密码流程图 (19)4.5开锁和报警模块流程图 (20)5电子密码锁的系统调试及分析 (22)5.1硬件电路调试及结果分析 (22)5.2软件调试及功能分析 (22)5.2.1调试过程 (22)5.2.2仿真结果分析 (24)5.3系统调试 (26)6结论及展望 (28)6.1结论 (28)6.2展望 (28)谢辞 (29)参考文献 (30)附录 (32)附1部分代码 (32)附2总电路图 (40)电子密码锁的设计与制作1绪论1.1本设计的研究背景与研究目的随着人们生活水平的提高和社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。

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

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

数电实验—密码锁报告

数电实验—密码锁报告

电子密码锁实验报告姜岳松一、实验目的1.了解电子密码锁的原理,学会用硬件描述语言来建立电子密码锁的模块。

2.利用该软件进行可编程逻辑器件设计,完成电子密码锁的逻辑仿真功能。

3.使用编译器将设计实现,下载到JDEE—10实验箱上进行调试和验证所设计的电子密码锁的功能。

二、实验器材1.Pentium—Ⅲ计算机一台;2.JDEE—10实验箱一只;三、实验要求设计一个电子密码锁,实现以下的功能:用8个拨码开关分别代表预设的密码和输入待验证的密码。

一个微动开关做为触发判断。

判断结果通过点阵和蜂鸣器表示。

正确的话,所有点阵的绿色灯点亮,同时蜂鸣发出“di”声。

否则,点阵显示红色,同时蜂鸣“do”音。

四、实验方案及设计过程1.第一部是实验电子密码锁的基本功能,该程序的主体是一个密码判断程序:首先是将输入的预设的密码和待验证密码用数组储存起来进行比较,比较结果通过IF语句,相同则触动绿色点阵和蜂鸣器的一个频率,不同则触动红色点阵和蜂鸣器的另一个频率2.开始丰富附肢程序:两种不同的响声需要两个计数器来产生不同的频率;要有一个上升沿保证颜色显示程序和密码判断程序以一个高频率运行,需要一个计数器;一个密码验证开关,由微动开关实现,在密码验证开关触动后能够保持一个高电位,这样则需要一个由D触发器构成的锁存器来锁定高电平。

3.点阵的显示:点阵的显示控制,由于显示OK的原代码之前已经练习过,然后设计好NO的字符,可以直接完成拓展之一。

此部分不需要详述。

五、拓展功能设计拓展主要是为了实现八位密码,这样所有的拨码开关都要用上,所以还需要两个微动开关来确定密码设定和输入。

同时,微动开关启动后,能够将拨码开关的密码储存到数组A[7..0]和B[7..0]中,待判断开关启动后调用,所以要用寄存器储存起来,所以声明一个串进串出的寄存器。

同时对主程序的判断器的输入变量进行修改。

六、顶层文件和源程序文本文件顶层文件文本:SUBDESIGN ECLOCK ( a[7..0],b[7..0]:input;key: input;freq1,freq2: input;red: output;green: output;spk: output;)begindefaultsred=gnd; green=gnd;spk=gnd;end defaults;if key thenif a[]==b[] then red=vcc;spk=freq1;else green=vcc;spk=freq2;end if;end if;end;点阵显示文本:subdesign leddiaplay( green,red: input;clk[2..0]: input;row[8..1],colred[16..1],colgreen[16..1]: output; )begindefaultscolred[]=h"ffff";colgreen[]=h"ffff";end defaults;if green thentableclk[2..0]=>row[8..1],colgreen[16..1];H"0" =>H"1", H"DBC3"; %1101 1011 1100 0011% H"1" =>H"2", H"EBDB";H"2" =>H"4", H"EBDB";H"3" =>H"8", H"F3DB";H"4" =>H"10", H"F3DB";H"5" =>H"20", H"EBDB";H"6" =>H"40", H"EBDB";H"7" =>H"80", H"DBC3";end table;end if;if red thentableclk[2..0]=>row[8..1],colred[16..1];h"0" =>h"1", h"C3DB";h"1" =>h"2", h"DBD3";h"2" =>h"4", h"DBD3";h"3" =>h"8", h"DBC3";h"4" =>h"10", h"DBCB";h"5" =>h"20", h"DBCB";h"6" =>h"40", h"DBCB";h"7" =>h"80", h"C3DB";end table;end if;end;寄存器文本:SUBDESIGN register(clk,load,d[7..0] :input;q[7..0] :OUTPUT;)VARIABLEff[7..0] :DFFE;BEGINff[].clk=clk;ff[].ena=load;ff[].d=d[];q[]=ff[].q;end;七、试验中遇到的问题1、设计八位密码的时候,需要将八位的密码输进判断器,起初采取的不是寄存器的手段,而是自己定义了一个使能开关,当微动开关高电平就允许密码通过使能开关到达a[7..0]或者b[7..0],但是实验发现这样密码并不能被储存起来,后来想明白应该是由于并没有变量储存的机制,所以要想将变量储存必须有寄存器才行,根据教材定义寄存器后,该问题得到解决。

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

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

毕业设计(论文)题目:电子密码锁的设计学院:电气与信息工程学院专业:电子信息工程姓名:学号: ********* 指导老师:**完成时间: 2013年5月28日摘要随着经济社会发展,人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出。

传统的机械锁,由于其构造简单,安全性能低,无法满足人们的需要。

随着电子产品向智能化和微型化的不断发展,数字密码锁作为防盗卫士的作用显得尤为重要。

而单片机以其实用,功能强大,价格低廉等功能,已成为电子产品研制和开发中首选的控制器。

本文从经济实用的角度出发,阐述一个基于单片机的液晶显示电子密码锁的设计与实现。

系统采用ATMEL公司的AT89C51单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用C语言编写。

设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。

关键词:单片机,密码锁,AT89C51,LCD1602,AT24C02AbstractWith the development of our society and the i mprovement of people’s living standard, how to ensure the family security is becoming more and more important in particular. Traditional mechanical lock is unable to meet the need of us because of its simple structure and low security. Nowadays, electronic products become smarter and smaller, electronic password anti-theft lock plays a more important role as the security guards. The MCU with its practical, strong function, low price and other functions , has become the preferred controller in electronic product research and development.This article is written from the economic perspective, elaborates the design and implementation of a LCD electronic password anti-theft lock which is based on MCU. This system is composed of AT89C51 which is designed as the core of this system, LCD1602 as the output device to display the message of this system, 4 * 4 matrix keyboard as the input device, a CMOS serial E2PROM AT24C02 as the data storage, and a buzzer, relay circuit.The software of the system is written in C language. The system displays in a LCD, it can change password easily, and has the function of alarming, locking, and so on. This system has some practical value, and it is simple and easy to use, meets the demand of residential and the need of office lock.Key Words: MCU, Password-Lock, AT89C51, LCD1602, AT24C02目录摘要 (I)Abstract ............................................................................................................................. I I 目录 ................................................................................................................................. I II 1引言 . (1)1.1课题的背景和意义 (1)1.2课题的研究现状 (1)1.3课题研究内容 (2)2 数字密码锁总体设计 (3)2.1 系统方案论证 (3)2.1.1 采用数字电路的设计方案 (3)2.1.2 采用以单片机为核心设计方案 (4)2.2 基于单片机的数字密码锁的设计原理 (5)3 系统硬件设计 (6)3.1 主要元器件介绍 (6)3.1.1 主控芯片AT89C51的的介绍 (6)3.1.2 继电器的介绍 (9)3.1.3 存储芯片AT24C02的介绍 (10)3.1.4 LCD1602显示器的介绍 (10)3.1.5 矩阵键盘模块的介绍 (11)3.2 系统硬件部分 (12)3.2.1 系统电源部分 (12)3.2.2 键盘输入部分 (13)3.2.3 密码存储部分 (14)3.2.4 显示部分 (14)3.2.5 报警部分 (15)3.2.6开锁部分 (16)4 系统软件设计 (17)4.1 系统程序流程图 (17)4.1.1主程序流程图 (17)4.1.2 键功能程序流程图 (18)4.1.3 修改密码程序流程图 (19)4.1.4 开锁程序流程图 (20)4.2 子程序举例 (21)4.2.1 按键扫描子程序 (21)4.2.2 显示子程序 (22)4.2.3 开锁子程序 (22)4.3 系统软件调试及结果 (24)4.3.1 Proteus软件介绍 (24)4.3.2 系统软件调试 (25)4.3.3 仿真结果 (25)5 硬件系统制作及调试 (29)5.1焊接注意事项 (29)5.2硬件调试问题及解决办法 (30)5.3硬件调试效果 (31)总结 (34)致谢 (35)参考文献 (36)附录 (37)附录A 电路原理图 (37)附录B 系统总体程序 (38)1引言1.1课题的背景和意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。

电子密码锁课程设计任务书

电子密码锁课程设计任务书

目录1 系统总体方案设计11.1 系统方案11.2 系统设计思路:12 硬件电路设计22.1 键盘电路设计22.2 LED显示电路32.3 解锁电路52.4 报警电路53 软件设计63.1 软件设计思路63.2 每个子程序的设计64 系统调试104.1 系统硬件连接示意图:104.2 部分系统测试115 经验12参考文献13发送13附录131 系统总体方案设计1.1 系统方案的选择综合其他方案的优缺点,采用基于AT89S51的单片机控制方案。

凭借单片机灵活的编程设计和丰富的IO口,以及其控制的精确性,不仅可以实现基本的密码锁功能,而且还增加了功率调节和存储、声光提示等功能。

遥控。

原理如图1-1所示。

图1-1 单片机控制方案该方案活动空间大,既能实现所需功能,又能在很大程度上扩展功能,还可以方便地进行系统升级。

本方案采用以89S51为核心的单片机控制方案。

凭借单片机灵活的编程设计和丰富的I/O端口,以及其控制的准确性,实现了基本的密码锁功能。

1.2 系统设计思路:1. 使用矩形键盘进行密码输入,包括数字键和功能键。

2.LED数码管显示输入密码,74JS247用于驱动数码管点亮并显示数字,74LS138用于控制各个位置的显示及时显示。

3. 将解锁电路更换为LED,表示解锁。

4、密码输入错误次数超过3次,系统会报警。

5、上电后显示屏显示“”,原密码为“123456”。

只需输入此密码即可开门。

这样可以防止断电后再次调用时没有密码可用。

000000”6. 按“C”键清除显示为“.000000”7. 要重置密码,首先在记录“*”上输入密码。

8. 输入密码,然后按“D”键。

如果密码与设置的密码相同,开门。

否则,显示清零为“00000”。

9、软件设计主要包括键盘读键、LED显示程序、密码比对程序和报警程序。

2 硬件电路设计2.1 键盘电路设计采用矩阵键盘,因此本设计采用行列式键盘,同时可以减少键盘与单片机接口时占用的I/O线数。

数字电子锁报告及VHDL源程序

数字电子锁报告及VHDL源程序

一、系统功能概述数字密码锁实现:1、了不需要带钥匙,只要记住开锁密码即可开锁的功能。

2、在输入密码正确后,还可以修改密码。

3、在输入密码的过程中,不显示密码,只显示无规律的提示某位密码是否输入完毕,防止了密码的泄漏,大大加强了密码锁的保密性。

本演示系统实现了:1、输入密码正确后,正确小灯(led)亮,错误小灯(led1)不亮;2、正确修改密码后,正确小灯(led)不亮,错误小灯(led1)不亮;3、输入错误密码,正确小灯(led)不亮,错误小灯(led1)亮,并有1KHz闹铃声产生;4、按下reset后,密码归为初始密码。

开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯D3。

否则系统进入“错误”状态,并发出报警信号。

开锁程序由设计者确定,并锁内给定的密码是可调的,且预置方便,保密性好。

串行数字锁的报警方式是点亮指示灯D6,并使喇叭鸣叫来报警,报警动作直到按下复位开关,报警才停止。

此时,数字锁自动进入等待下一次开锁的状态。

二、系统组成以及系统各部分的设计1、系统结构描述要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;(1)源代码;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity code isport( c lk: in std_logic;--电路工作时的时钟信号clk1:in std_logic;--闹铃产生需要的时钟信号k: in std_logic;--高电平表示输入1led: out std_logic;--输入正确时亮led1:out std_logic;--输入错误时亮reset: in std_logic;-- 按下时复位want: in std_logic;--是否修改密码alarm: out std_logic;--输出闹铃声show: out std_logic_vector(3 downto 0));--提示作用end;architecture a of code issignal temp: std_logic_vector(3 downto 0);--输入一位加1signal code: std_logic_vector(7 downto 0);--储存密码signal getcode: std_logic_vector(7 downto 0);--储存修改后的密码signal counter: std_logic_vector(3 downto 0);--计数signal allow: std_logic;--是否允许修改密码signal ring:std_logic;--是否接通闹铃beginprocess(clk)beginif ring='1' thenalarm<=clk1;--闹铃接通elsealarm<='0';--闹铃截至end if;if reset='1' then--按下reset后,密码归为初始密码getcode<="00000000";--初始密码counter<="0000";--内部计数code<="11001000";--密码led<='0';led1<='0';allow<='0';elsif clk'event and clk='1' then--输入clk脉冲,则接收1位密码getcode<=getcode(6 downto 0)&k;--将这1位密码并入getcode中的最后一位if counter="1000" then--输入为8位数码时比较if code=getcode thenled<='1';--正确灯亮led1<='0';ring<='0';allow<='1';--允许修改密码elsif allow='1' and want='1' then--如果允许输入且想输入code<=getcode;--输入新密码led<='0';led1<='0';elseallow<='0';led<='0';led1<='1';--错误灯亮ring<='1';--闹铃响end if;counter<="0000";--重新计数elsecounter<=counter+1; --累加temp<=temp+1;--为防止泄露密码,特别设置end if;end if;show <= temp;end process;end;2、系统以及各个模块的仿真波形(1)错误输入密码时的仿真波形(2)输入正确密码时的仿真波形3、下载时选择的开发系统模式以及管脚定义表1 GW48-CK开发系统工作模式:5我设计的数字密码锁简单、实用,基本满足课程设计的要求,并且在单个模块运行状态下,可以实现所有的要求。

电子密码锁 有应用程序的

电子密码锁 有应用程序的

1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

2.电路原理图图4.32.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2).把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4.程序设计内容(1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。

(2).密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

5.C语言源程序#includeunsigned char code ps[]={1,2,3,4,5};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf[9];bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void){unsigned char i,j;P2=dispcode[digitcount];TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%6;TR0=1;ET0=1;EA=1;while(1){if(cmpflag==0){if(P3_6==0) //function key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_6==0){if(hibitflag==0){funcount++;if(funcount==pslen+2){funcount=0;cmpflag=1;}P1=dispcode[funcount];}else{second3=0;}while(P3_6==0);}}if(P3_7==0) //digit key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){if(hibitflag==0){digitcount++; if(digitcount==10){digitcount=0;}P2=dispcode[digitcount];if(funcount==1){pslen=digitcount;templen=pslen;}else if(funcount>1){psbuf[funcount-2]=digitcount; }}else{second3=0;}while(P3_7==0);}}}else{cmpflag=0;for(i=0;i{if(ps[i]!=psbuf[i]){hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;}}cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;}}}void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%6;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(aa==800){aa=0;P0_1=~P0_1;}second3++;if(second3==6400){second3=0;hibitflag=0;errorflag=0;rightflag=0;cmpflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;}}if((errorflag==0) && (rightflag==1)) {P0_1=0;cc++;if(cc<1000){okflag=1;}else if(cc<2000){okflag=0;}else{errorflag=0;rightflag=0;hibitflag=0; cmpflag=0;P0_1=1;cc=0;oka=0;okb=0;okflag=0;P0_0=1;}if(okflag==1){oka++;if(oka==2){oka=0;P0_0=~P0_0; }}else{okb++;if(okb==3){okb=0;P0_0=~P0_0; }}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
case 0xeb:
key=8;
wei++;
break;
case 0xdb:
key=9;
wei++;
break;
case 0xbb:
genggai=1;
wei=0;
break;
case 0x7eak;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量
uchar wei,key,temp;
bit allow,genggai,ok,wanbi,retry,close;//各个状态位
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
P0=0xf7;
wela=1;
wela=0;
delay(5);
P0=table[e];
dula=1;
dula=0;
P0=0xef;
wela=1;
wela=0;
delay(5);
P0=table[f];
dula=1;
dula=0;
P0=0xdf;
wela=1;
wela=0;
delay(5);
}
void keyscan()
{
if((new1==old1)&(new2==old2)&(new3==old3)&(new4==old4)&(new5==old5)&(new6==old6))
allow=1;//当输入的密码正确,会得到allowe置一
}
}
void main()
{
while(1)
{
keyscan();
shumima();
ok=0; wei=0;
genggai=0;
old1=new1;old2=new2;old3=new3; //此时,旧的密码将被代替
old4=new4;old5=new5;old6=new6;
a=16;b=16;c=16;d=16;e=16;f=16;
}
if(retry)//当重试按键S18被按下,retry会被置位
{
keyscan();
shumima();
if(retry|close)//而当探测到重试键S18或者关闭密码锁键S19被按下时,则跳出
{wanbi=1;
break;
}
display(a,b,c,d,e,f);
}
}
}
if(ok)//更改密码时,当所有六位新密码均被按下时,可以按下此键,结束密码更改
{//其他时间按下此键无效
unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};
void delay(unsigned char i)
{
uchar j,k;
/********************************************************************************
功能键
S6---S15数字键0-9
S16---更改密码S17---更改密码完毕后确认
S18---重试密码、重新设定S19---关闭密码锁
初始密码:000000密码位数:6位
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar old1,old2,old3,old4,old5,old6; //原始密码000000
uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密码输入
推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17
确认密码更改---按S18关闭密码锁---输入新的密码打开密码锁
*******************************************************************************/
{
retry=0; wei=0;wanbi=0;
a=16;b=16;c=16;d=16;e=16;f=16;
new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;
}
if(close) //当关闭密码锁按键被按下,close会被置位
{
close=0;genggai=0;//所有变量均被清零。
yanzheng();
if(allow)//验证完后,若allow为1,则开锁
{
P1=0x00;
if(!genggai)
wanbi=0;
}
if(genggai)//当S16更改密码键被按下,genggai会被置一
{
if(allow)//若已经把锁打开,才有更改密码的权限
{
while(!wanbi)//当新的六位密码没有设定完,则一直在这里循环
else a=key;break;
case 2:new2=key;
if(a==17) b=17;
else b=key;break;
case 3:new3=key;
if(a==17) c=17;
else c=key;break;
case 4:new4=key;
if(a==17) d=17;
else d=key;break;
{
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
wei++;
break;
case 0xde:
key=1;
wei++;
break;
case 5:new5=key;
if(a==17) e=17;
else e=key;break;
case 6:new6=key;
if(a==17) f=17;
else f=key;
wanbi=1;break;
}
}
}
void yanzheng()//验证密码是否正确
{
if(wanbi)//只有当六位密码均输入完毕后方进行验证
case 0xbe:
key=2;
wei++;
break;
case 0x7e:
key=3;
wei++;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应
的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。
3、重试密码:
当输入密码时,密码输错后按下键S18,可重新输入六位密码。
当设置密码时,设置中途想更改密码,也可按下此键重新设置。
4、关闭密码锁:
按下S19即可将打开的密码锁关闭。
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
}
}
void shumima()//对按键采集来的数据进行分配
{
if(!wanbi)
{
switch(wei)
{
case 1:new1=key;
if(!allow)a=17;
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:
key=4;
wei++;
break;
case 0xdd:
key=5;
wei++;
break;
case 0xbd:
key=6;
wei++;
break;
case 0x7d:
key=7;
wei++;
wela=0;
delay(5);
P0=table[b];
dula=1;
相关文档
最新文档