基于CPLD数字锁.docVIP

  • 10
  • 0
  • 约7.58千字
  • 约 13页
  • 2017-08-31 发布于安徽
  • 举报
基于CPLD设计的数字锁 EDA技术作为现代电子技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试。 一、总体设计思路 关于这个课题,我们把逻辑功能划分为两个大的模块:控制部分和处理部分。控制模块是整个系统的控制核心 ,负责接收其模块传来的输入信号 ,再根据系统的功能产生相应的控制信号送到相关的模块。密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容,当结果相同时=1,LT绿灯亮,并开锁;当结果不同时=0,LF红灯亮,不开锁。用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制, 二、单元模块设计 2.1 消除抖动模块 我们使用的按键机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,。这是一个很重要的时间参数,在很多场合都要用到。 程序如下: LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; LIBRARY altera; USE altera.maxplus2.ALL; ENTITY xiaodou IS PORT ( CLK,B_IN : IN STD_LOGIC; B_OUT : OUT STD_LOGIC ); END ; ARCHITECTURE a OF xiaodou IS signal Vcc, INV_B : std_logic ; signal A0, A1 : std_logic ; signal B0, B1 : std_logic ; BEGIN Vcc = 1 ; INV_B = not B_IN ; dff1 : dff PORT MAP (d =Vcc , q = A0 , clk = CLK, prn = Vcc, clrn = INV_B ); dff2 : dff PORT MAP (d =Vcc , q = A1 , clk = CLK, prn = Vcc, clrn = INV_B ); process (CLK) begin if CLKEVENT and CLK=1 then B0 = not A1; B1 = B0; end if ; end process ; B_OUT = not (B1 and not B0); END ; 消抖电路的仿真波形图: 2.2 键盘扫描模块 我们在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘编码就可以进行键盘按键识别了。键盘扫描封装图如下: 该模块程序如下: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY SAOMIAO IS PORT ( CLK : IN STD_LOGIC ; CLK_SAOMIAO : OUT STD_LOGIC_VECTOR (4 downto 1) ); END ; ARCHITECTURE a OF SAOMIAO IS Signal M : STD_LOGIC_VECTOR(2 DOWNTO 1); SIGNAL N: STD_LOGIC_VECTOR(4 DOWNTO 1); Begin PROCESS (CLK) Begin IF C

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档