ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:502.53KB ,
资源ID:16681536      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16681536.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SOPCEDA综合课程设计Word格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SOPCEDA综合课程设计Word格式.docx

1、1.2 系统设计要求及内容利用基于所学EDA以及QuartusII9.0 软件相关知识设计一个具有较高安全性和较低成本的通用电子密码锁,其具体功能要求如下: (1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,同时将先前输入的数据依序左移一个数字位置。 (2)数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。 (3)密码更改:按下此键时会将目前的数字设定成新的密码。 (4)激活电锁:按下此键可将密码锁上锁。 (5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。其中所有功能自行设计。第二章 系统设计方案 2.1. 密码锁的组成部分作为通

2、用电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。 根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,整个电子密码锁系统的总体组成框图如图2.1所示。密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(3)七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。 图2.1 数字电子密码锁系统总体

3、框图图2.2是电子密码锁的输入电路框图,由键盘扫描电路、弹跳消除电路、键盘译码电路、按键数据缓存器,加上外接的一个34矩阵式键盘组成。 图2.2电子密码锁的输入电路框图2.2矩阵式键盘的工作原理矩阵式键盘是一种常见的输入装置,在日常的生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。图2.3是一个34矩阵式键盘的面板配置图,其中数字09作为密码数字输入按键,*作为“上锁”功能按键,#作为“解锁/清除”功能按键。图2.3.34矩阵式键盘的面板配表2.1. 行扫描信号、列按键输入信号与按键位置的关系KY3KY01110110110110111KX2KX001110111

4、0按键号123456789*#2.3密码锁输入电路各主要功能模块的设计 2.3.1 时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。2.3.2 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号(表4.1中的KY3KY0)的,扫描信号变化的顺序依次为11101101101101111110.依序地周而复始。2.3.3 弹跳消除电路由于本设计中采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输

5、入,从而影响到密码锁操作的正确性。从图1.4中可以观察出弹跳现象产生的原因,虽然只是按下按键一次然后放掉,然而实际产生的按键信号却不止跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。如果调整抽样频率(如图1.5所示),可以发现弹跳现象获得了改善。图2.4弹跳现象产生错误的抽样结果 图2.5 调整抽样频率后得到的抽样结果弹跳消除电路的实现原理如图1.6所示,先将键盘的输入信号D_IN做为电路的输入信号,CLK是电路的时钟脉冲信号,也就是取样信号,D_IN经过两级D触发器延时后再使用RS触发器处理。 图2.6 弹跳消除电路的内部实现原理图 此处RS触发器的前端连接和非门的处理原则

6、是:因为一般人的按键速度至多是10次/秒,亦即一次按键时间是100ms,所以按下的时间可估算为50ms。以取样信号CLK的周期为8ms计,则可以取样到6次。 (2)对于不稳定的噪声,在4ms以下则至多抽样一次。在触发器之前,接上AND-NOT之后,SR的组态如表1.2所示。 表2.2RS触发器真值表SRD-OUT不变2.3.4 键盘译码电路上述键盘中的按键可分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除数码、退位、激活电锁、开锁等,详细功能参见表1.3。表2.3 键盘参数表扫描位置键盘输出对应键盘按键键盘译码输出实现按键功能F=0001数码输入F=0010F=0011F=010

7、0F=0101F=0110F=0111F=1000F=1001T=0100激活电锁F=0000T=0001退格、解锁2.3.5 按键存储电路 因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个键盘扫描完毕后的结果记录下来。按键存储电路可以使用移位寄存器构成。2.3.6 密码锁输入电路模块框图 输入电路引脚图如下图所示,图中CLK_1K为系统原始时钟脉冲(1 kHz)KEY_IN为键盘按键输入,CLK_SCAN为键盘扫描序列输出,DATA_N:数字输出功能,DATA_F:功能输出,FLAG_N为数字输出标志,FLAG_F为功能输出(上锁及开锁)标志,CLK_C

8、TR是控制电路工作时钟信号,CLK_DEBOUNCE是去抖电路工作时钟信号,大约125 Hz 。 图2.7. 密码输入模块框图密码锁控制电路的设计密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。2.4.1数字按键输入的响应控制1)如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。 2)假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。 3)由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,

9、而且不再显示第四个以后的数字。2.4.2功能按键输入的响应控制控制功能如下:清除键:清除所有的输入数字,即做归零动作。激活电锁键:按下此键时可将密码锁的门上锁。(上锁前必须预先设定一个四位的数字密码。解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。 图2.8电子密码锁的三种模式及关系2.4.3. 密码控制模块图模块引脚如下图所示:图中DATA_N3.0:4位行输入.DATA_N3.0:为4位列扫描输出,FLAG_N和FLAG_F则对应ENLOCK实现清除/上锁功能,CLK为全局时钟信号,DATA_BCD15.0为输出16位BCD码,经译码器后转换为4位密码输出。 图2.9.

10、密码控制模块图2.5、密码锁显示电路的设计密码锁显示电路的设计比较简单,这里直接采用四个4-7译码器来实现。BCD-七段显示译码器(74LS48)1)输入:8421BCD码,用A3 A2 A1 A0表示(4位)。 2)输出:七段显示,用Ya Yg 表示(7位) 图中A3.0为按键输入在经过去抖电路后的的BCD码的高4位输入数值,经过4-7译码器译码后输出09之间的数值,因为输入为16位的BCD码,而每一个译码器仅4位输入,故一共需要4个译码器来实现密码锁显示电路的设计。译码器引脚如下图所示:图2.10. 七段译码器输入输出引脚图第三章 密码锁的整体组装设计将前面各个设计好的功能模块进行整合,可

11、得到一个完整的电子密码锁系统的整体组装设计原理图,如图1.8所示 图3.1密码锁的整体组装设计原理如上图所示为系统设计原理图,图中CLK为输入信号系统原始时钟脉冲(1 kHz),KEY_IN2.0为按键输入信号,即当有键按下时时钟脉冲信号检测到有信号输入,KEYBOARD模块对输入信号进行键盘扫描处理,判断按下的是数字键还是功能键,每次的输入数值都会通过七段译码器显示结果,最后在核定密码真确后则开锁。第四章 各个模块VHDL源程序及其仿真波形图4.1键盘输入去抖电路的VHDL源程序(附仿真图)-DEBOUNCING.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164

12、.ALL;LIBRARY ALTERA;USE ALTERA.MAXPLUS2.ALL;ENTITY DEBOUNCING ISPORT(D_IN, CLK: IN STD_LOGIC;DD1, DD0, QQ1, QQ0 : OUT STD_LOGIC;D_OUT, D_OUT1: OUT STD_LOGIC );END ENTITY DEBOUNCING ;ARCHITECTURE ART OF DEBOUNCING ISCOMPONENT DCFQ ISPORT(CLK, CLRN, PRN, D:Q: OUT STD_LOGIC);END COMPONENT DCFQ;SIGNAL V

13、CC, INV_D : STD_LOGIC ;SIGNAL Q0, Q1 :SIGNAL D1, D0 :BEGINVCC = 1 ;INV_D CLK, CLRN = INV_D, PRN = VCC, D =VCC , Q = Q0);U2: Q0, PRN = Q1);PROCESS (CLK)IF CLKEVENT AND CLK= THEND0 = NOT Q1;D1 = D0;END IF ;END PROCESS ;DD0 DD1 = D1; QQ1 = Q1; QQ0 = Q0;D_OUT = NOT (D1 AND NOT D0);D_OUT1 = NOT Q1 ;END A

14、RCHITECTURE ART;-DCFQ.VHDENTITY DCFQ ISEND ENTITY DCFQ ;ARCHITECTURE ART OF DCFQ ISPROCESS (CLK, CLRN, PRN)IF CLRN=0 AND PRN=Q=;ELSIF CLRN=ELSIF CLKQ =D; 对上述去抖电路源程序用quartus9.0进行时序仿真,得到仿真图如下:图中输出信号QQ0,QQ1,D_OUT1,DD0,DD1是为便于仿真时观察中间结果而增加的观测点的输出,可以在程序中去掉,CLK为时钟脉冲信号,当检测到有键按下时,即D_IN为高电平时,对按键进行去抖,可以消除在开关切换

15、的瞬间会在接触点出现信号来回弹跳的现象。图4.1 键盘输入去抖电路DEBOUNCING.VHD的仿真结果图4.2密码锁输入电路的VHDL源程序(附仿真图)-KEYBOARD.VHDUSE IEEE.STD_LOGIC_ARITH.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL ;ENTITY KEYBOARD IS PORT (CLK_1K: IN STD_LOGIC ; -系统原始时钟脉冲(1 kHz)KEY_IN: IN STD_LOGIC_VECTOR (2 DOWNTO 0); -按键输入CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DO

16、WNTO 0) ;-( 仿真时用)键盘扫描序列DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -数字输出DATA_F: -功能输出FLAG_N: OUT STD_LOGIC ; -数字输出标志FLAG_F: -功能输出标志CLK_CTR: -控制电路工作时钟信号CLK_DEBOUNCE: OUT STD_LOGIC -(仿真时用)去抖电路工作时钟信号);END ENTITY KEYBOARD ;ARCHITECTURE ART OF KEYBOARD ISCOMPONENT DEBOUNCING ISPORT(D_IN:CLK:D_OUT: OUT STD

17、_LOGIC ) ;END COMPONENT DEBOUNCING;SIGNAL CLK: -电路工作时钟脉冲SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0);-键扫信号“00-01-10-11”寄存器SIGNAL C_DEBOUNCE: -去抖时钟信号SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0) ;-键盘输入去抖后的寄存器SIGNAL N , F: STD_LOGIC_VECTOR(3 DOWNTO 0) ;-数字、功能按键译码值的寄存器SIGNAL FN , FF: -数字、功能按键标志值数字、功能按键SIGN

18、AL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0) ;-内部连接DATA_N = N ;DATA_F = F ;FLAG_N = FN ;FLAG_F = FF ;CLK_CTR = CLK ;-扫描信号发生器 COUNTER : BLOCK ISSIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0); STD_LOGIC_VECTOR (3 DOWNTO 0);-1110-1101-1011-0111 PROCESS (CLK_1K) IS IF CLK_1KEVENT AND CLK_1K = Q+1;END IF;C_DEBOUNCE = Q

19、(2) ; -去抖时钟信号, 大约125 Hz C_KEYBOARD = Q(2 DOWNTO 1) ;- 产生键扫信号*“00-01-10-11”, 大约16 Hz-C_DEBOUNCE = Q(1) ; -仿真时用 -C_KEYBOARD = Q(5 DOWNTO 4) ; -仿真时用CLK = Q(0) ;END PROCESS;CLK_DEBOUNCE=C_DEBOUNCE;SEL = 1110 WHEN C_KEYBOARD=0 ELSE1101 WHEN C_KEYBOARD=1 ELSE1011 WHEN C_KEYBOARD=2 ELSE0111 WHEN C_KEYBOARD

20、=3 ELSE1111CLK_SCAN KEY_IN(0) , D_OUT = C(0), CLK = C_DEBOUNCE); KEY_IN(1) , D_OUT = C(1), U3: KEY_IN(2) , D_OUT = C(2), C_DEBOUNCE );END BLOCK DEBOUNUING ;-键盘译码KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ; -按键位置PROCESS(CLK)Z N END CASE ;WHEN 11011 F FN = NOT ( N(3) AND N(2) AND N(1) AND N(0) ) ;FF = F(2) OR F(0) ;END BLOCK KEY_DECODER ;说明 1、键盘译码电路除了负责将键盘送出的数据进行译码外,另外就是在译码的同时,必须判别所按下的是数字键还是功能键。2、若

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1