设计方案
系统设计方案
    利用所学的电子技术知识和电子设计方法,设计出一个电子密码锁有以下两种基本方案可以选择:
方案一:利用数字逻辑电路,运用各种门电路,计数器,触发器,锁存器,编/译码器等数字逻辑器件实现电子控制。从而实现想要设计的电子密码锁的功能。此方法设计简单,但硬件电路比较多,操作起来比较复杂。
方案二:使用MCS-51系列单片机为核心控制附加一些简单的外围电路,利用单片机的一个I/O端口组成4×4键盘作为输入电路,采用汇编语言编写程序来实现电子密码锁的各项功能,程序语言功能强大,调试较为简单。具有很强的实用性。
设计方案选择
综上提出的两种方案,方案一给出的采用数字逻辑电路的设计方法的好处就是设计简单,因
为采用数字逻辑电路可以分成各个功能模块来设计,每个模块实现各自的一个功能。这钟方法设计的密码锁电路大致包含:按键输入、密码核对、密码修改、开锁电路、错误提示电路等功能模块。采用数字电路虽然设计简单但是操作繁琐,要运用很多数字逻辑器件,硬件电路复杂,而且可能会出现较多器件故障,同时难以检查和维护。方案二提出的使用单片机为核心控制的方案,利用单片机丰富的I/O端口和灵活的编程设计,不但能实现密码锁的功能,而且控制准确性高,外围电路少硬件电路简单,方便灵活,调试简单不易出错,体积小成本低也利于现实中实现,具有较高的实际意义和实用价值。这个设计方案的最关键的地方就在于编程,利用程序的执行来实现密码锁的基本功能,因此单片机方案还有较大活动空间,能在很大程度上扩展功能,方便对系统进行升级。
针对第一种方案系统vhdl设计
功能描述:
    假设设计的密码锁有7个数据输入键,分别用K1K7表示;一个“确认键”(按一下确认键,密码锁内部就产生一个正脉冲),用暗黑3 鉴定CLK_AFFIRM表示;一个“重置和修改密码使能键”,用S/W表示;一个开锁状态指示灯GREENLED;一个密码输入错误报警器REDLED.
1. 密码预置。未使用过的密码锁初始状态为“打开”,内部密码为随机数,故使用前必须进行密码预置。通过按键将S/W调为“1”,密码锁进入密码预置模式,按照K1~K7→确认键→K1~K7→确认键的顺序输入想要设置的密码,其中K1~K7表示的意思是,给K1K7赋值,赋值顺序可任意改变,但一旦按下确认键,K1K7分别对应的数值便不可改变。整个过程中只要按下两次确认键,密码预置便成功完成。
2. 密码验证。通过按键将S/W调为“0”,密码锁进入密码验证模式。按照K1~K7→确认键→K1~K7→确认键的顺序输入密码,如果密码与预置的密码(如果修改过密码,则与最后一次修改成功后的密码)相匹配,开锁指示灯GREENLED变亮,同时锁子被打开。如果没反应,需要重新输入密码,但是输入密码的次数最多为3次,如果3次都输入了错误密码,那么错误报警器REDLED就会报警,如果继续输入了正确密码,报警器就会解除警报。
3. 密码修改。用户必须提供正确的密码后方能进入密码修改模式,否则,修改无效。如果用户通过了密码验证,那么此时将S/W给市长的一封信调为“1”便可顺利进入密码修改模式。修改密码过程与重置类似,即按照K1~K7→确认键→K1~K7→确认键的顺序输入更改后的密码,便可顺利完成密码的修改。
电路设计:
电路原理图
原理图分析
    主要部分为寄存器与比较器构成。其中R1R2分别存储预置密码或修改密码的低七位与高七位;R3R4分别寄存输入密码的低七位与高七位。下面主要介绍一下各个模块的功能实现。
1) 确认键CLK_AFFIRM与预置或密码修改使能键S/W的功能实现。确认键每按下一下产生一个正脉冲,作为R1R2R3R4的时钟,实现数据读入相应寄存器的功能。S/W为“1”时,R3R4被锁死,无法输入密码;同时与其相连的下面那个与门打开,确认键的信号便能顺利进入⑥中的与门,为密码锁进入预置或密码修改模式提供必要条件。S/W为“0”时,R1R2被锁死,R3,R4被打开,确认信号只能进入R3R4,密码锁进入密码验证模式。
2) 由四位减计数器组成,时钟输入为R3R4的时钟信号,可记录在密码验证过程中用户共按了几下确认键,间接记录密码输入次数。当用户连续3次输入错误的密码时,计数器由1111计到1010,此时QA’·QB·QC’0变为1,相当于一个上升沿,作为④中上面那个D触发器的时钟信号,使该触发器输出1,此时如果密码仍不匹配,即与REDLED相连的与门另一个输入端也为1,那么输出REDLED1,启动报警装置。如果在3次之内输入了正确密码,③中或非门的输入有1,输出为0,对计数器清零操作。
3) 在②中已介绍。
4) 当验证密码通过时,比较器输出为1,在⑤中的与非门使能的情况下,最终输入到④中下面的D触发器的时钟端的信号经历了由01的变化,相当于时钟上升沿,D触发器被打开,输出为1,开锁指示灯GREENLED变亮,同时锁被打开。
5) ②中计数器的QA端对时钟进行了二分频,即对S/W=0的情况下的确认信号进行了二分频,亦即QA经历一个周期说明用户完成了一次完整的密码输入。也可以说QA=0的期间都对应用户刚输入了一次完整的密码。所以在QA=0的情况下,再让后面的电路判断密码的匹配情况并做相应操作,就避免了用户输入密码的过程中就偶然的打开了锁的情况。
6) 该模块实现进入密码修改模式前用户是否提供了正确的密码验证的检验功能。若密码验证通过,该模块中的D触发器的D端就为0,此时如果用户试图进入密码修改模式,即将S/W0改变成了1D触发器使能,将D的值送到Q端,此时QN1,接入该模块中的与门后将与门打开,允许确认信号进入R1R2,也就是进入了密码修改模式。否则,如果密码不匹配,D=1S/W01后,QN=0,将与门锁死,确认信号无法进入R1R2,也就无法进入密码修改模式。即使按照修改密码的步骤操作,修改的密码也是无效的。
7) 该模块是对S/W取非后接入与GREENLED相连的触发器清零端。及当S/W1时,对GREENLED触发器清零,密码锁上锁。实现在修改密码过程中维持密码锁为关闭的状态。同时可见,S/W还有“上锁”的功能。
一、 基于maxplus的原理图(graphic)仿真
原理图与之前的原理图一样。下面分别仿真几种典型情况。
1.密码预置与报警。
预置密码为0010101 1000011(顺序为K1K2K7),用户将S/W调为0后,连续按了6次确认键,相当于输错了三次密码,于是在第6个时钟(即确认键CLK_AFFIRM)上升
沿处REDLED0变为1,启动报警。此时用户由输入了正确密码,然后REDLED变为0演员潘虹简历,警报解除,GREENLED变为1,锁打开。
    2.密码修改失败的情况仿真
密码预置为0101001 0011001,然后退出密码预置模式,即S/W = 0,然后未进行密码验证相当于密码验证失败,此时就令S/W =1,试图进入密码修改模式,并输入了0000010 0010000,然后令S/W = 0, 0000010 0010000进行密码验证,结果GREENLED仍为0,然后再以预置密码0101001 0011001欧阳夏丹结婚了吗进行验证,结果GREENLED变为1,锁打开。说明密码修改失败,因为修改前未进行密码验证。
3密码修改成功的情况仿真
预置密码为0101001 0011001,然后退出密码预置模式,然后使用0101001 0011001进行密码验证,结果GREENLED变为1,说明密码验证通过。此时将S/W改为1,键入新密码为0010010 1011000,然后将S/W 调为0,使用0010010 1011000进行密码验证,结果GREENLED变为1,说明密码修改成功。
方案改进:
1. 如果单次输入密码错误,应该有相应的指示灯予以显示。改进可在3次连续输入错误        的基础的进行简化便可实现。
2. 由实际应用分析可知,修改密码一般要连续输入两次以保证密码的正确性。由此可将方案作如下改进:
        另加入两个8位寄存器R5R6,连接方式与预置或修改密码寄存器相同。在预置或密码修改模式下,用门电路对确认信号进行分流,即前两个信号进入R1R2,后两个信号进入R3,R4, 然后通过数据比较器看R1R2是否分别与R3R4的数据相等,将结果用指示灯显示。如果两次密码不匹配,用户便可根据指示灯的提示重新输入密码。
针对第二种方案设计拟采用以Intel公司的8051单片机为核心的单片机控制方案,利用单片机丰富的I/O端口和灵活的编程设计及其控制的准确性,实现基本密码锁功能。设计方框图如图:
  单片机控制方案
系统硬件设计
系统总体设计原理
    本设计利用所学电路知识,单片机知识和EDA方面的知识设计一电子密码锁。目的是要有较高的安全性, 密码位数高,错误提示,使用方便,显示界面友好等特点。确定方案与原理框图,设计出硬件线路,给出软件程序。
根据设计目的,本设计以单片机8051AH为核心,用单片机的通用I/O接口P1口组成一个4×4键盘作为输入电路,用发光二极管和蜂鸣器作为指示和警报提示设计一个十四位数字电子密码锁电路。密码锁的开锁密码应是(0-9)中的十四位数字,密码输入完全正才确能控制开锁装置打开密码锁,并且指示灯亮;输入的密码错误则不能打开密码锁,并且发出声音警报提示。采用单片机来完成此电路设计,硬件电路简单,但是需要编程序来实现相应功能。完成此密码锁设计主要有几个方面问题需要解决:1、输入的问题,输入键中包含0-9十四位数字键、一个删除键(删除上一个输入的数字)、开锁键、确认键、改密码键和复位键;岂无白衣与子同裳2、开锁和改密码的问题,密码输入正确了怎样控制电路开锁,密码输入不正确则不能开锁,如何实现修改密码,必须输入了正确的密码后才能修改密码;3、设计出电路图,
编出程序,然后仿真,看是否能实现相应功能。
综上所述,决定采用以下思路来完成十四位数字密码锁电路的设计。用单片机的六级作文范文P18I/O接口线组成4×4键盘有16个按键,本设计用到其中11个键,这11个键包括0-9十个数字键和A(十)键,将A键用作确认键。此外,拟用单片机的外中断0来用作删除(删除上一位输入值),利用单片机的外中断1来修改密码,通过中断优先级寄存器IP把外中断0的中断优先级顺序设为高,这样外中断0优先级高于外中断1,所以即使在执行外中断1的中断服务程序时可以利用中断嵌套来响应外中断0,即当用户修改密码时一样可以使用删除键。这样以来,删除(删除上一位输入)程序和改密码程序只需要写作单片机的外中断01的中断服务程序即可。另外要注意的是,改密码只能在输入正确密码后进行改密码,所以外中断1在输入正确的密码时才允许中断,也就是说必须先输入正确的密码后改密码键才能有效,这时按改密码键就可以进行密码修改。如果在输入了正确的十四位密码后的十秒时间内没有其他任何动作,那么密码锁将自动结束本次运转,回到程序初始位置执行等待输入密码,即用户需在输入正确密码后的十秒时间内执行需要的操作开锁或者修改密码。最后,由于此设计的为十四位数字密码锁,有十四位密码,密码位数较多,所以使用一般的数码管显示电路已不能满足要求,这里选用1602LCD显示器作为显示电路,这样不仅能方
便的显示密码,而且显示界面更加友好,显示内容也可以更加丰富。本设计中设有复位键,实际运用中可以将复位键设在锁内,即开锁后才能按到复位键,因为按了复位键单片机将恢复默认设置,密码也将恢复为默认密码。当然复位键也可以不设,可以将单片机复位方式设为上电复位。总体设计框图如第一章的图1-1所示。