欢迎来到皮皮网网首页

【音咖源码】【map stl源码】【spring工厂源码】11001000源码

来源:html官网引导页源码 时间:2024-12-28 18:06:49

1.密码锁的源码设计用VHDL语言描述

11001000源码

密码锁的设计用VHDL语言描述

       一、系统功能概述

        数字密码锁实现:1、源码了不需要带钥匙,源码只要记住开锁密码即可开锁的源码音咖源码功能。2、源码在输入密码正确后,源码还可以修改密码。源码3、源码在输入密码的源码过程中,不显示密码,源码只显示无规律的源码map stl源码提示某位密码是否输入完毕,防止了密码的源码泄漏,大大加强了密码锁的源码保密性。

        本演示系统实现了:1、源码输入密码正确后,源码正确小灯(led)亮,spring工厂源码错误小灯(led1)不亮;2、正确修改密码后,正确小灯(led)不亮,错误小灯(led1)不亮;3、输入错误密码,叶老师源码正确小灯(led)不亮,错误小灯(led1)亮,并有1KHz闹铃声产生;4、按下reset后,密码归为初始密码。design特效源码

       开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯D3。否则系统进入“错误”状态,并发出报警信号。

       开锁程序由设计者确定,并锁内给定的密码是可调的,且预置方便,保密性好。

       串行数字锁的报警方式是点亮指示灯D6,并使喇叭鸣叫来报警,报警动作直到按下复位开关,报警才停止。此时,数字锁自动进入等待下一次开锁的状态。

       源代码

       library ieee;

       use ieee.std_logic_.all;

       use ieee.std_logic_unsigned.all;

       entity code is

       port( 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 is

       signal temp: std_logic_vector(3 downto 0);--输入一位加1

       signal 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<="";--初始密码

        counter<="";--内部计数

        code<="";--密码

        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="" 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<="";--重新计数

        else

        counter<=counter+1; --累加

        temp<=temp+1;--为防止泄露密码,特别设置

        end if;

        end if;

        show <= temp;

        end process;

       end;