基于cpld的数字锁

基于cpld的数字锁

ID:3143715

大小:121.00 KB

页数:13页

时间:2017-11-19

基于cpld的数字锁_第1页
基于cpld的数字锁_第2页
基于cpld的数字锁_第3页
基于cpld的数字锁_第4页
基于cpld的数字锁_第5页
资源描述:

《基于cpld的数字锁》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于CPLD设计的数字锁EDA技术作为现代电子技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试。一、总体设计思路关于这个课题,我们把逻辑功能划分为两个大的模块:控制部分和处理部分。控制模块是整个系统的控制核心,负责接收其模块传来的输入信号,再根据系统的功能产生相应的控制信号送到相关的模块。具体思路如下:密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容

2、,当结果相同时M=1,LT绿灯亮,并开锁;当结果不同时M=0,LF红灯亮,不开锁。用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制数,然后再按下确定键完成操作。总设计框图如下:键盘译码开锁LED显示输入密码寄存器键盘消抖密码预存寄存器绿灯亮键盘扫描红灯亮报警M=1消除密码输入两位十进制数密码修改YN二、单元模块设计2.1消除抖动模块我们使用的按键通常都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串

3、的抖动(如下图所示)。然而,抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。在这里,我们用软件去除抖动。当检测到键闭合时,执行一个延时程序产生数毫秒的延时,让前沿弹跳消失后再检测闭合;当发现键松开后,也给数毫秒的延时,当后沿弹跳消失后,再检测下一个键的输入。或者当前沿弹跳消失后,将检测到的信号所存,然后再输出,这样就不需要后沿延时了。消除抖动的电路封装图如下:程序如下:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_arith.ALL;

4、USEieee.std_logic_unsigned.ALL;LIBRARYaltera;USEaltera.maxplus2.ALL;ENTITYxiaodouISPORT(CLK,B_IN:INSTD_LOGIC;B_OUT:OUTSTD_LOGIC);END;ARCHITECTUREaOFxiaodouISsignalVcc,INV_B:std_logic;signalA0,A1:std_logic;signalB0,B1:std_logic;BEGINVcc<='1';INV_B<=notB_IN;dff1:dffPORTMAP(d=>Vcc,q=>

5、A0,clk=>CLK,prn=>Vcc,clrn=>INV_B);dff2:dffPORTMAP(d=>Vcc,q=>A1,clk=>CLK,prn=>Vcc,clrn=>INV_B);process(CLK)beginifCLK'EVENTandCLK='1'thenB0<=notA1;B1<=B0;endif;endprocess;B_OUT<=not(B1andnotB0);END;消抖电路的仿真波形图:2.2键盘扫描模块我们在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘

6、编码就可以进行键盘按键识别了。键盘扫描封装图如下:该模块程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSAOMIAOISPORT(CLK:INSTD_LOGIC;CLK_SAOMIAO:OUTSTD_LOGIC_VECTOR(4downto1));END;ARCHITECTUREaOFSAOMIAOISSignalM:STD_LOGIC_VECTOR(2DOWNTO1);SIGNALN:S

7、TD_LOGIC_VECTOR(4DOWNTO1);BeginPROCESS(CLK)BeginIFCLK'EventANDCLK='1'THENN<=N+1;M<=N(4DOWNTO3);ENDIF;ENDPROCESS;CLK_SAOMIAO<="1110"WHENM=0ELSE"1101"WHENM=1ELSE"1011"WHENM=2ELSE"0111"WHENM=3ELSE"1111";END;键盘扫描模块仿真图:2.3七段数码显示电路模块本模块我们通过串行扫描方式驱动LED数码管,可较少地占用可编程器件资源;并利用MAXPLUSⅡ对动态扫描LED

8、显示电路进行仿真。显示电路模块封装图如下:程序如下:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。