1.电子密码锁文献综述
关键词:电子密码锁;FPGA;硬件描述语言;EDA目 录1 绪 论 11.1 国内外现状及其发展 11.2 电子密码锁的原理 21.3 电子密码锁的系统简介 41.4 系统设计要求 41.5 本课题的研究目的和意义 52 现场可编程门阵列FPGA 62.1 FPGA的基本结构 62.2 FPGA的优点 102.3 FPGA的设计流程 112.4 自顶向下设计法 172.5用模块化设计FPGA 183 VHDL硬件描述语言 203.1 VHDL语言的基本结构 203.2 结构体的描述方式 213.3 自上而下(TOP DOWN)的设计方法 224 电子密码锁的设计与仿真 244.1 硬件设备 244.2 几个主要功能模块的设计 254.3 计算机仿真 32结 束 语 38参考文献 39附录1英文原文 41附录2中文译文 50附录3源程序 571.1 国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用[1]。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式[2]。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。1.3 电子密码锁的系统简介通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。
(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。
(3)密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码[4]。
1.4 系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。
(3)密码更改:按下此键时会将目前的数字设定成新的密码。(4)激活电锁:按下此键可将密码锁上锁。
(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。1.5 本课题的研究目的和意义随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。
现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。
通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单[3]。
2.电子密码锁设计论文
红外线遥控12位电子密码锁的设计 摘要]采用密码锁专用集成电路设计的红外线遥控电子密码锁,具有密码预置、保密性强、误码报警、耗 电省等特点,适合住宅、办公室用锁要求,有实际开发价值。
[关键词]红外线遥控;电子密码锁;发射器;接收器 0引言 电子密码锁以其使用方便、功能齐全、安全可靠 等优点,受到人们的喜爱。尤其是采用遥控技术的电 子密码锁更受人们的欢迎。
电子密码锁种类繁多,各 具特色,所使用的电路各式各样。如有采用数字比较 器等数字集成电路设计的普通型电子密码锁,也有采 用单片机设计的智能化电子密码锁。
本文采用密码锁 专用集成电路设计电子密码锁。 1遥控电子密码锁的电路组成 遥控电子密码锁由红外发射器、红外接收器和密 码锁三部分组成,如图1所示。
遥控系统采用双音多 频(DTMF)信号专用发生器集成电路S2559及其配套 的专用接收的集成电路MC145436构成的红外遥控系 统。电子密码锁采用专用集成电路ZH9437。
2遥控电子密码锁的工作原理 将发射器对准接收器的接收头,按下发射器键盘 中的某一按键时,发射器的红外发射二极管就发射出与该按钮对应的DTMF信号。接收器按光电转换后,信 号先放大,然后送到与专用DTMF信号发生器S2559配 套的专用DTMF信号接收器MC145436进行解调,检出 用四位二进制码表示的指令信号,再送到译码器进行 译码,把指令信号的数码分配到相应的1 2个输出端。
事先,电子密码锁电路ZH9437中已输入并存储了12 位密码。如使用者按照它所储存的12位密码顺序依次 输入,它就输出开锁脉冲,进行开锁;如按错三次,则 发出长达6 0秒的报警信号。
2.1红外发射器 红外发射电路由IC 1 (S2559)及3X4矩阵按钮键盘 为主组成,如图2所示。核心元件S2559是DTMF信号 产生的专用集成电路[1]156-161。
S2559的技术参数如下: 工作电压为2.5~10V;静态工作电流为0.4~1.5μA; 输出驱动电流为1~10mA。 2.2红外接收器 红外接收电路由接收放大电路和解调电路组成, 如图3所示。
由于16脚直接输出的DTMF信号一般只有几百毫 伏,不能直接驱动红外线发光二极管发出DTMF信号, 因此,必须采用达林顿管输出方式进行功率放大,然 后才能驱动红外发光二极管发出D TMF信号。 为了保证运算放大器输出电压有较大的动态范围, 在静态时,应将输出端电位设置在1/2V DD 处。
所用两个 10K电阻(即R 4 R 5 )对电源进行1/2分压,并将1/2V DD 电压移引至LM358的同相输入端,相当于运算放大器 的输入偏置电压为1/2V DD ,从而使输出电压为1/2V DD 。 信号由C 2 进入IC 2 ,经过两级反相放大后,总增益 为A=A 1 A 2 =(1MΩ/10KΩ)2=104(A 1 =A 2 =-R6/R3)。
(2)解调电路。电路由专用集成电路IC 3 (MC145436) 为核心组成[1]164-168,它将双音频选频电路与指令解调 电路集于一体,主要由拨号音滤波器、前置放大器、高 低频组信号分离器、输入译码器、基准时钟振荡器等 组成。
经放大电路放大后的DTMF信号由IC 2 的7脚输入, (1)接收放大电路。以集成运算放大器LM358为 核心构成了接收前置放大电路。
当V D 2 接收到由发射 器发射的经DTMF调制的红外光信号时,就将红外线的 光信号转换为相应频率的电信号,这一信号耦合到IC 2 (LM358)上作两级运放。 首先经拨号音滤波器将DTMF信号以外的噪声滤除掉, 以提高电路抗干扰性能,然后经过前置放大器进行放 大。
检出有效信号后启动数据有效输出端12脚输出高 电平。同时D 0 ~D 3 (2、1、14、13脚)输出四位二进 制码。
D 0 ~D 3 输出的指令信号是由输出数据译码器对 电平幅度检测器输出的信号进行译码得到的。 IC 3 的9脚和10脚之间并联晶体的谐振频率为 3.579MHZ,与内部反相器构成晶体振荡器,产生本电 路所需的时钟信号。
IC 3 的5脚(GT)为保持时间输入 端,4脚(V DD )和8脚(V SS )分别为电源正极和负极。 IC 3 的2、1、14、13脚输出的四位二进制码,再经IC 4 (CD4514)译码为16个指令码输出。
CD4514是4位锁存/4-16线译码器、数据分配器, 有16位高电平锁存输出功能。它把IC 3 送来的8421码 译码后,将指令信号的数码分配到相应的输出端。
这 里只采用它的S 1 ~S 12 等12根输出线。由于采用继电 器,再加上驱动电路,选用两片MC1413,每片内部具 有7个独立的达林顿驱动管,作为输出级用。
经过红外发射电路和红外接收电路后,从遥控器 按钮产生信号到相应的继电器吸合,从而完成了指令 的空间传递。 2.3密码锁电路 密码锁电路是开锁的具体执行者,核心元件是 IC 7 (ZH9437)[2]。
密码锁电路如图4所示。IC 7 的5、6、7、8脚为横向信号输入端,10、11脚为纵向信号输入 端。
将输入信号与已存的密码进行自动对比判断,如 遇到错误输入信号,即由15脚向外接高响度喇叭输出 报警信号;如输入信号正确,则由17脚输出开锁信号。 其内部对比的标准是预先输入的密码。
密码锁电路拥 有1 0亿组密码总量,随机捕捉密码开锁的概率极低, 同时按错三次码就有长达60秒的报警,更增加了保险 性,再加上码位长达1 2位数,保密性能极佳。 密码的输入控制端为13端。
当KB闭合,即13脚 。
3.要一份电子密码锁设计的论文 3000字左右 标准格式 有摘要关键词和参
电子密码锁摘要 本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安工作,有极高的安全系数。
关键词 电子密码锁 电压比较器 555单稳态电路 计数器 JK触发器 UPS电源。1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。
2 总体方案设计2.1设计思路共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。2.2总体方框图 3 设计原理分析电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。3.1 键盘输入、密码修改、密码检测、开锁及执行电路 . 其电路如下图1所示: 图1 键盘输入、密码修改、密码检测、开锁、执行电路开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T11基极,使T11导通,其集电极输出低电平,送往IC1~IC4,实现清零。
密码修改电路由双刀双掷开关S1~S4组成(如图2所示), 它是利用开关切换的原理实现密码的修改。例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。
本电路有16组的密码可供修改。 图2 密码修改电路 由两块74LS112(双JK触发器,包含IC1~IC4)组成密码检测电路。
由于IC1处于计数状态,当用户按下第一个正确的密码后,CLK端出现了一个负的下降沿,IC1计数,Q端输出为高电平,用户依次按下有效的密码,IC2~IC3也依次输出高电平,送入与门IC5,使其输出开锁的高电平信号送往IC13的2脚,执行电路动作,实现开锁。执行电路是由一块555单稳态电路(IC13),以及由T10、T11组成的达林顿管构成。
若IC13的2脚输入一高电平,则3脚输出高电平,使T10导通,T11导通,电磁阀开启,实现开门,同时T10集电极上接的D5(绿色发光二极管)发亮,表示开门,20秒后,555电路状态翻转,电磁阀停止工作,以节电。其中电磁阀并联的电容C24使为了提高电磁阀的力矩。
3.2 报警电路报警电路实现的功能是:当输入密码的时间超过40秒(一般情况下用户输入不会超过),电路报警80秒,防止他人恶意开锁。电路包含两大部分,2分钟延时和40秒延时电路。
其工作原理是当用户开始输入密码时,电路开始2分钟计时,超出40秒,电路开始80秒的报警。如图3所示 图3 报警电路 有人走近门时,触摸了TP端(TP端固定在键盘上,其灵敏度非常高,保证电路可靠的触发),由于人体自身带的电,使IC10的2脚出现低电平,使IC10的状态发生翻转,其3脚输出高电平,T5导通(可以通过R12控制T1的基极电流),其集电极接的黄色发光二极管D3发光,表示现在电子锁处于待命状态,T6截止,C4开始通过R14充电(充电时间是40秒,此时为用户输入密码的时间,即用户输入密码的时间不能超过40秒,否则电路就开始报警, 由于用户经常输入密码,而且知道密码,一般输入密码的时间不会超过40秒),IC2开始进入延时40秒的状态。
开始报警:当用户输入的密码不正确或输入密码的时间超过40秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即40秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警.停止报警:当达到了80秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信号。3.3 报警次数检测及锁定电路若用户操作连续失误超过3次,电路将锁定5分钟。
其工作原理如下:当电路报警的次数超过3次,由IC9(74161)构成的3位计数器将产生进位,通过IC7,输出清零信号送往74161的清零端,以实现。
4.求电子密码锁毕业设计一份,至少八千字
目 录1.概 述 11.1 电子密码锁简介 11.2 电子密码锁的发展趋势 11.3 本设计所要实现的目标 22.设计方案的选择 32.1 方案一:采用数字电路控制 32.2 方案二:采用以单片机为核心的控制方案 33.主要元器件介绍 43.1 主控芯片AT89S51 43.1.1 AT89S51性能简介 43.1.2 AT89S51引角功能说明 53.1.3 AT89S51芯片内部结构 63.2 存储芯片AT24C02 83.3 LCD1602显示器 93.3.1 接口信号说明 93.3.2 主要技术参数 103.3.3 基本操作程序 103.4 晶体振荡器 104.系统硬件构成 124.1 设计原理 124.2 电路总体构成 124.3 电源输入部分 134.4 键盘输入部分 144.5 密码存储部分 144.6 复位部分 154.7 晶振部分 164.8 显示部分 164.9 报警部分 174.10 开锁部分 175.系统软件设计 195.1 主程序流程图 195.2 键功能流程图 205.3 密码设置流程图 215.4 开锁流程图 226.结束语 23参考文献 24致 谢 25附 录 26附录一 程序清单 27附录二 设计图纸 47附录2.1 原理图 47附录2.2 PCB图 48附录三 材料清单 49。
5.急需:电子密码锁及自动报警系统的毕业设计
基于单片机控制的电子密码锁摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用关键词:AT89S51,AT24C02, 电子密码锁,矩阵键盘一、引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。
考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。二、方案论证与比较方案一:采用数字电路控制。
其原理方框图如图1-1所示。图2-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。方案二:采用一种是用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图1-2所示。
图2-2单片机控制方案通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。三、电路的功能单元设计1.开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。
其原理如图2-1所示。图3-1密码锁开锁机构示意图当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
其实际电路如图2-2所示。电路驱动和开锁两级组成。
由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。图3-2密码锁开锁机构电路图2.按键电路设计由于设计要求使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图2-3所示。图3-3 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N*M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图2-3所示的44键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。按键的操作面板如图图2-3所示。
共计数字键10个,功能键6个。键盘上还有3个指示灯和一个蜂鸣器。
图3-4 按键操作面板示意图10个数字键用来输入密码,另外6个功能键分别是:CLR、EN、F1、F2、F3、F4。其中CLR键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。
6.密码锁的设计用VHDL语言描述
一、系统功能概述 数字密码锁实现:1、了不需要带钥匙,只要记住开锁密码即可开锁的功能。
2、在输入密码正确后,还可以修改密码。3、在输入密码的过程中,不显示密码,只显示无规律的提示某位密码是否输入完毕,防止了密码的泄漏,大大加强了密码锁的保密性。
本演示系统实现了:1、输入密码正确后,正确小灯(led)亮,错误小灯(led1)不亮;2、正确修改密码后,正确小灯(led)不亮,错误小灯(led1)不亮;3、输入错误密码,正确小灯(led)不亮,错误小灯(led1)亮,并有1KHz闹铃声产生;4、按下reset后,密码归为初始密码。开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯D3。
否则系统进入“错误”状态,并发出报警信号。开锁程序由设计者确定,并锁内给定的密码是可调的,且预置方便,保密性好。
串行数字锁的报警方式是点亮指示灯D6,并使喇叭鸣叫来报警,报警动作直到按下复位开关,报警才停止。此时,数字锁自动进入等待下一次开锁的状态。
源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity code isport( clk: in std_logic;--电路工作时的时钟信号 clk1: in std_logic;--闹铃产生需要的时钟信号 k: in std_logic;--高电平表示输入1 led: 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;--是否接通闹铃begin process(clk) begin if ring='1' then alarm<=clk1;--闹铃接通 else alarm<='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 then led<='1';--正确灯亮 led1<='0'; ring<='0'; allow<='1';--允许修改密码 elsif allow='1' and want='1' then--如果允许输入且想输入 code<=getcode;--输入新密码 led<='0'; led1<='0'; else allow<='0'; led<='0'; led1<='1';--错误灯亮 ring<='1';--闹铃响 end if; counter<="0000";--重新计数 else counter<=counter+1; --累加 temp<=temp+1;--为防止泄露密码,特别设置 end if; end if; show <= temp; end process;end;。
7.基于单片机数字密码锁的课程设计
根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
图4.32.1系统板上硬件连线(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端子上;程序设计内容(1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。(2). 密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
(3). 按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。C语言源程序#include unsigned 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)%256;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。
8.急求: 4*4键盘及8位数码管显示构成的电子密码锁论文
用4*4组成0-9数字键及确认键。
用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用led发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。2. 电路原理图图4.33.13. 系统板上硬件连线(1). 把“单片机系统”区域中的p0.0-p0.7用8芯排线连接到“动态数码显示”区域中的abcdefgh端子上。
(2). 把“单片机系统“区域中的p2.0-p2.7用8芯排线连接到“动态数码显示”区域中的s1s2s3s4s5s6s7s8端子上。(3). 把“单片机系统”区域中的p3.0-p3.7用8芯排线连接到“4*4行列式键盘”区域中的r1r2r3r4c1c2c3c4端子上。
(4). 把“单片机系统”区域中的p1.0用导线连接到“八路发光二极管模块”区域中的l2端子上。(5). 把“单片机系统”区域中的p1.7用导线连接到“音频放大模块”区域中的spk in端子上。
(6). 把“音频放大模块”区域中的spk out接到喇叭上。4. 程序设计内容(1). 4*4行列式键盘识别技术:有关这方面内容前面已经讨论过,这里不再重复。
(2). 8位数码显示,初始化时,显示“p ”,接着输入最大6位数的密码,当密码输入完后,按下确认键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“8.”。
当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“del”键删除刚才输入的错误的数字。
(3). 4*4行列式键盘的按键功能分布图如图4.33.2所示:图4.33.25. c语言源程序#include unsigned char ps[]={1,2,3,4,5};unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0x73,0xff};unsigned char dispbuf[8]={18,16,16,16,16,16,16,16};unsigned char dispcount;unsigned char flashcount;unsigned char temp;unsigned char key;unsigned char keycount;unsigned char pslen=5;unsigned char getps[6];bit keyoverflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa,bb;unsigned int cc;bit okflag;bit alarmflag;bit hibitflag;unsigned char oka,okb;void main(void){unsigned char i,j;tmod=0x01;th0=(65536-500)/256;tl0=(65536-500)%256;tr0=1;et0=1;ea=1;while(1){p3=0xff;p3_4=0;temp=p3;temp=temp & 0x0f;if (temp!=0x0f){for(i=10;i>0;i--)for(j=248;j>0;j--);temp=p3;temp=temp & 0x0f;if (temp!=0x0f){temp=p3;temp=temp & 0x0f;switch(temp){case 0x0e:key=7;break;case 0x0d:key=8;break;case 0x0b:key=9;break;case 0x07:key=10;break;}temp=p3;p1_1=~p1_1;if((key>=0) && (key<10)){if(keycount<6){getps[keycount]=key;dispbuf[keycount+2]=19;}keycount++;if(keycount==6){keycount=6;}else if(keycount>6){keycount=6;keyoverflag=1;//key overflow}}else if(key==12)//delete key{if(keycount>0){keycount--;getps[keycount]=0;dispbuf[keycount+2]=16;}else{keyoverflag=1;}}else if(key==15)//enter key{if(keycount!=pslen){errorflag=1;rightflag=0;second3=0;}else{for(i=0;i
9.有关单片机的电子密码锁的参考文献 和资料 急啊 (参考文献最好有作
;----------------------------------------------; LP1.ASM 8051 LCD PASSWORD 4; 8051 ASM USE: KEIL; COPYRIGHT CMY 2003;----------------------------------------------KA EQU 0AH ; 按键定义KB EQU 0BHKC EQU 0CHKD EQU 0DHKE EQU 0EHKF EQU 0FH; VAR DEFINE。
.PASS EQU 30H ; 30 31 32 33 34 35 I/P TO CHECKPASSNEW EQU 36H ; 36 37 38 39 3A 3BBUF_KEY EQU 4AH ; 按键数据缓冲区KEY_NO EQU 4BH ; 按键编码CO EQU 4CH ; 计数变量LCDE EQU 4DH ; LCD 延迟变量X EQU 53H ; LCD 显示的地址; USER RAM 。
..5FH 60H-->SP;----------------------------------------------FKEY EQU 20H.0 ; KEY PRESSEDALF EQU 20H.1 ; ALARM FLAG; I/O DEFINE 。
.; LCDRS EQU P2.0 ; LCD RS 引脚定义RW EQU P2.1 ; LCD RW 引脚定义EN EQU P2.2 ; LCD EN 引脚定义SPK EQU P3.7 ; 压电蜂鸣器引脚定义REL EQU P2.0 ; 继电器引脚定义WLED EQU P2.1 ; 工作指示灯引脚定义;-------------------- ORG 0000H ; 程序代码由地址0000开始 JMP BEGIN;---------------------BEGIN: LCALL INIT_PORT LCALL LED_BL ; LED闪动,表示程序开始执行 LCALL BZ ; 压电喇叭发出一声 LCALL SET_LCD ; LCD初始化 LCALL MLOOP ; 执行主程序 JMP $;-----------------------------------------------------------------MESS: DB "LP1.ASM 8051 PASSWORD WITH LCD"PASS0: DB 1,2,3,4;--------------------------------------------; DELAY Xms R5*10 msDELAY: ; 总延迟时间R5*10ms MOV R6,#50D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET;---------------------LED_BL: ; 工作指示灯闪烁3次 MOV R4,#6LE1: CPL WLED ; 位反向 MOV R5,#3 ; 延迟30ms LCALL DELAY DJNZ R4, LE1 RET;-------------------------------------------------; KEY PAD: TYPE A ; 按键编码; F E D C; B 3 6 9; A 2 5 8; 0 1 4 7TABLE_DIG: DB 0FH, 0BH, 0AH, 00H DB 0EH, 03H, 02H, 01H DB 0DH, 06H, 05H, 04H DB 0CH, 09H, 08H, 07H;--------------------------------------------------; USE P1; R0 : BUF PT NO USE ; 未使用; R1 : COUNT 1 ; 循环计数1; R2 : COUNT 2 ; 循环计数2; R3 : SCAN SIGNAL ; 循环扫描输出信号; R4 : COUNT KEY_NO ; 按键计数编码;------------------SCAN: MOV R3,#0FEH ; 按键计数编码清除为0 MOV R4,#0 ; KEY NO COUNT MOV R1,#4 ; 循环1执行4次 CLR PSW.5 ; PSW.5=0 表示未按键;。
..L1:; SEND OUT SCAN SIGNAL VIA P1.0~P1.3 MOV A,R3 MOV P1,A ; 由P1口送出扫描输出信号;。
.; DELAY A WHILE 。
. MOV R5,#1 ; 延迟10ms LCALL DELAY; READ I/P DATA FROM P1.4~P1.7 MOV A,P1 ; 读取P1数据以便判断是否有按键 ANL A,#0F0H ; 取得高4位值 EX:1110XXXX; CHECK KEY PRESSED ? ; 检测是否按键 MOV R2,#4 ; 循环2执行4次;。
L2: JB ACC.4,N1 ; 累加器A位4若为1表示没按键 MOV KEY_NO,R4 ; 加载按键编号 SETB PSW.5 ; 按键标志设为1 N1: ; 没按键 INC R4 ; 按键编号加1 RR A ; 累加器向右移动一位,以便检查下一位 DJNZ R2,L2 ; 循环2判断是否继续执行; CHANGE SCAN CODE ; 改变扫描码 EX:XXXX1101 MOV A,R3 ; 加载旧的扫描码 RL A ; 累加器向左移动一位 MOV R3,A DJNZ R1,L1 ; 循环1判断是否继续执行;。
; SET FKEYBACK: JNB PSW.5,NO_KEY ; 设置是否按键 SETB FKEY ; 若有按键 FKEY=1 RETNO_KEY: CLR FKEY ; 若没按键 FKEY=0 RET;---------------------------------------------------------; SCAN KEY ON AND OFF THEN PASS KEY_NOSCAN_KEY: CLR FKEY ; 清除按键标志 LCALL SCAN ; 执行按键扫描; IF(KEY_ON) WAIT KEY_OFF ; 若有按键等待按键放开来 JB FKEY,WAIT_OFF ; 测试按键标志; NO KEY ON RETURN。
. ; 若没有按键则直接返回 RETWAIT_OFF: LCALL SCAN ; 执行按键扫描 JB FKEY,WAIT_OFF ; 若有按键等待按键放开来 RET;----------------------------------------; WAIT KEY IN。
.; RETURN A: DIGIT NOGET_KEY: ; 等待按键并传回按键码 CLR FKEY ; 清除按键标志 LCALL SCAN ; 执行按键扫描; IF(KEY_ON) WAIT KEY_OFF ; 若有按键等待按键放开来 JB FKEY,G1 ; 测试按键标志; NO KEY ON WAIT KEY IN。. ; 若没有按键则继续等待按键 JMP GET_KEYG1: LCALL SCAN ; 执行按键扫描 JB FKEY,G1 ; 等待按键放开来; KEY INDEX TO DIGIT NO. ; 按键扫描值转换为按键码 MOV A,KEY_NO MOV DPTR,#TABLE_DIG; 经过查表的方式找出按键码 MOVC A,@A+DPTR RET;-----------------------------------------------LOOK: ; 显示所输入的新密码 MOV CO,#4 MOV R0,#PASSNEW ; 指向密码存放的变量区LO1: MOV A,@R0 ; 取出密码值 INC R0 ; 指向下一变量区 DJNZ CO,LO1 ; 是否完成4位数 RET;----------------------CHECK_PASS: ; 密码比较程序 LCALL IP_PASS ; 取得要比较的密码 LCALL LO。
转载请注明出处众文网 » 语言识别密码锁毕业论文(电子密码锁文献综述)