亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? elec_lock.vhd

?? 用于模仿密碼鎖的工作過程。完成密碼鎖的核心控制功能。可實現數碼輸入、清除、退位、設置密碼、錯誤提示、系統報警、解除報警、系統關閉等功能。
?? VHD
字號:
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 elec_lock is
port(
     clk_4M:in std_logic;
     col:in std_logic_vector(3 downto 0);
     f_keyboard:out std_logic_vector(1 downto 0);
     f_scan:out std_logic_vector(3 downto 0);
     enlock:out std_logic;
     s_alert:out std_logic;
     s_state:out std_logic;
     BCD_code:out std_logic_vector(15 downto 0);
     LED_wrong:out std_logic_vector(3 downto 0);
     flag_no:out std_logic;     
     f1:out std_logic_vector(3 downto 0);
     f2:out std_logic_vector(3 downto 0);
     LED_seg:out std_logic_vector(6 downto 0));
end elec_lock;
--信號f_keyboard,s_state,BCD_code,flag_no,f1,f2用于波形仿真時驗證系統功能
--實際應用時可去除。

architecture behavior of elec_lock is
  component debouncing
  port(
       clk:in std_logic;
       d_in:in std_logic;
       d_out:out std_logic);
  end component;
  signal clk:std_logic;
  signal fkeyboard:std_logic_vector(1 downto 0);
  signal fdisplay:std_logic_vector(1 downto 0);
  signal fscan:std_logic_vector(3 downto 0);
  signal f1hz:std_logic;
  signal key_in:std_logic_vector(3 downto 0);
  signal num:std_logic_vector(3 downto 0);
  signal ff1:std_logic_vector(3 downto 0);
  signal ff2:std_logic_vector(3 downto 0);
  signal key_pressed:std_logic;
  signal flag_num:std_logic;
  signal flag:std_logic;
  signal in_code:std_logic_vector(15 downto 0);
  signal code:std_logic_vector(15 downto 0);
  signal db:std_logic_vector(3 downto 0);
  signal n:integer range 0 to 4;
  signal num_wrong:integer range 0 to 3;
  signal state:std_logic;
  signal alert:std_logic;
  signal clear:std_logic;
  signal set_code:std_logic;
  signal o_lock:std_logic;
  signal q1,q2:std_logic;
  signal LEDseg:std_logic_vector(6 downto 0);

begin
  s_state<=state;
  s_alert<=alert;
  flag_no<=flag_num;
  BCD_code<=in_code;
  f1<=ff1;
  f2<=ff2;
  f_keyboard<=fkeyboard;
  f_scan<=fscan;
  LED_seg<=LEDseg;

count:block
  signal Q:std_logic_vector(21 downto 0);
begin
  process(clk_4M)
  begin  
    if clk_4M'event and clk_4M='1' then
       Q<=Q+1;
    end if;
  end process;
  clk<=Q(0);
  f1hz<=Q(2);    --for testing
  --f1hz=Q(21);  --for reality
  fkeyboard<=Q(5 downto 4);
  fdisplay<=Q(5 downto 4);
end block;

key_scan:block
  signal row:std_logic_vector(3 downto 0);
begin
  row<="1110" when fkeyboard=0 else
       "1101" when fkeyboard=1 else
       "1011" when fkeyboard=2 else
       "0111" ;
  fscan<=row;
end block;

debounced:block
begin
  u1:debouncing port map(d_in=>col(0),d_out=>key_in(0),clk=>clk);
  u2:debouncing port map(d_in=>col(1),d_out=>key_in(1),clk=>clk);
  u3:debouncing port map(d_in=>col(2),d_out=>key_in(2),clk=>clk);
  u4:debouncing port map(d_in=>col(3),d_out=>key_in(3),clk=>clk);
end block;

key_decoder:block
  signal y:std_logic_vector(5 downto 0);
  signal c0,c1:std_logic;
begin
  process(clk)
  begin 
    y<=fkeyboard&key_in;
    if clk'event and clk='1' then
       case y is
              when "101011"=>num<="0000";
              when "000111"=>num<="0001"; 
              when "001011"=>num<="0010"; 
              when "001101"=>num<="0011"; 
              when "001110"=>num<="0100"; 
              when "010111"=>num<="0101"; 
              when "011011"=>num<="0110";
              when "011101"=>num<="0111"; 
              when "011110"=>num<="1000"; 
              when "100111"=>num<="1001"; 
              when others=>num<="1111";
       end case;
    end if;
    if clk'event and clk='1' then
       case y is
              when "101101"=>ff1<="0001";
              when "101110"=>ff1<="0010"; 
              when "110111"=>ff1<="0100"; 
              when others=>ff1<="1000"; 
       end case;
    end if;
    if clk'event and clk='1' then
       case y is
              when "111011"=>ff2<="0001";
              when "111101"=>ff2<="0010"; 
              when "111110"=>ff2<="0100"; 
              when others=>ff2<="1000"; 
       end case;
    end if;
  end process;
  flag_num<=not(num(3) and num(2) and num(1) and num(0));
  flag<=flag_num or ff2(0);
  key_pressed<=not(num(0) and num(1) and num(2) and num(3) and ff1(3) and ff2(3));
  process(clk)
  begin
    if clk'event and clk='1' then
       c1<=c0;
       c0<=ff2(2);
    end if;
  end process;
  clear<=c1 and not c0;
end block;

func_select:block
begin
  process(clk)
  begin
    if clk'event and clk='1' then
       if ff1(1)='1' then
          set_code<='1';
          o_lock<='0';
       elsif ff1(2)='1' then
          set_code<='0';
          o_lock<='1';
       end if;
    end if;
  end process;
end block;

storage:block
begin
  process(flag)
  begin
    if ff2(1)='1' or ff1(1)='1' or ff1(2)='1' or clear='1' then
       in_code<=(others=>'1');
       n<=0;
    elsif flag'event and flag='1' then
       if n<4 and ff2(0)='0' then 
          in_code<=in_code(11 downto 0)&num;
          n<=n+1;
       elsif ff2(0)='1' then
          in_code<="1111"&in_code(15 downto 4);
          if n>0 then
             n<=n-1;
          end if;
       end if;
    end if;
  end process;
end block;

key_func:block
  signal set_new:std_logic;
begin
process(clk)
  begin
    if clk'event and clk='1' then
       if state='1' then
          if n=4 then
             if set_code='1' and ff2(2)='1' then
                code<=in_code;
                q1<='1';
                q2<='0';
                set_new<='1';
             elsif o_lock='1' and ff2(2)='1' and alert='0'then
                if set_new='0' then
                   if in_code="0001001000110100" then
                      q1<='0';
                      q2<='1';
                   else 
                      if num_wrong<3 then
                         LED_wrong(num_wrong)<='1';
                         num_wrong<=num_wrong+1;
                      else 
                         num_wrong<=3;
                      end if;
                   end if;
                else 
                   if code=in_code then
                      q1<='0';
                      q2<='1';
                   else 
                      if num_wrong<3 then
                         LED_wrong(num_wrong)<='1';
                         num_wrong<=num_wrong+1;
                      else 
                         num_wrong<=3;
                      end if;
                   end if;
                end if;
             end if;
          end if;
       elsif state='0' then
          q1<='1';
          q2<='0';
          num_wrong<=0;
          LED_wrong<="0000";
       end if;
    end if;
    if num_wrong=3 then
       alert<='1';
    else alert<='0';
    end if;
  end process;
  enlock<=q1 and not q2;
  --BCD_code<=in_code;
end block;

set_state:block
  signal counter:integer range 0 to 60;
  signal s_flag:std_logic;
begin 
  process(clk)
  begin
    if clk'event and clk='1' then
       s_flag<=(not q1 and q2 and ff2(2)) or ff1(0); 
       if s_flag='1' then
          state<='0';
       elsif ff1(1)='1' or ff1(2)='1' then
             state<='1';
       elsif counter=60 then
             state<='0';
       end if;
    end if;
  end process;
  process(key_pressed,f1hz)
  begin
    if key_pressed='1' then
       counter<=0;
    elsif f1hz'event and f1hz='1' then  
       if counter<60 then
          counter<=counter+1;
       else counter<=60;
       end if;
    end if;
  end process;
end block;

display:block
begin
  db<=in_code(15 downto 12) when fdisplay=0 else
      in_code(11 downto 8) when fdisplay=1 else
      in_code(7 downto 4) when fdisplay=2 else
      in_code(3 downto 0);
end block;

seven_segment:block
begin
  LEDseg<="0111111" when db=0 else
           "0000110" when db=1 else
           "1011011" when db=2 else
           "1001111" when db=3 else
           "1100110" when db=4 else
           "1101101" when db=5 else
           "1111101" when db=6 else
           "0000111" when db=7 else
           "1111111" when db=8 else
           "1101111" when db=9 else
           "0000000";
  end block;
end behavior;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品精品亚洲| 精品亚洲国产成人av制服丝袜| 亚洲一区二区在线播放相泽| 久久精品久久99精品久久| 91丝袜美女网| 久久久亚洲欧洲日产国码αv| 亚洲一级二级三级| 91色在线porny| 26uuu久久天堂性欧美| 亚洲va欧美va人人爽午夜| youjizz国产精品| 久久久久久久久伊人| 丝袜美腿成人在线| 欧美亚男人的天堂| 亚洲欧洲精品天堂一级| 久久99精品久久久久| 欧美体内she精高潮| 中文字幕亚洲不卡| 成人免费va视频| 久久久99久久| 激情综合色播五月| 日韩一卡二卡三卡| 午夜视频一区二区| 欧美三级电影网| 一区二区三区在线看| 成人激情免费视频| 中文字幕欧美日韩一区| 国产精品一品二品| 国产欧美日韩麻豆91| 韩国欧美国产1区| 日韩视频一区二区在线观看| 丝袜亚洲另类欧美| 欧美精品日韩一本| 午夜国产精品影院在线观看| 欧美久久久久免费| 日韩福利视频导航| 欧美一区二区性放荡片| 秋霞电影网一区二区| 欧美一级生活片| 激情文学综合网| 国产情人综合久久777777| 国产成人免费xxxxxxxx| 国产精品久久久久久妇女6080| 床上的激情91.| 国产精品久久久99| 色天使色偷偷av一区二区| 亚洲激情综合网| 欧美另类高清zo欧美| 日本va欧美va欧美va精品| 精品欧美乱码久久久久久| 国产在线精品一区二区三区不卡 | 在线观看亚洲a| 亚洲资源在线观看| 欧美日产国产精品| 免费观看在线综合| 欧美激情一区二区三区在线| 91年精品国产| 日韩在线一区二区| 国产三级精品三级在线专区| 99国产精品国产精品毛片| 亚洲一二三区视频在线观看| 日韩一区二区精品| 丁香婷婷综合色啪| 亚洲国产成人tv| 精品国产在天天线2019| 99国产欧美另类久久久精品| 香蕉乱码成人久久天堂爱免费| 欧美成人免费网站| 色天使色偷偷av一区二区| 毛片不卡一区二区| 日韩理论片中文av| 欧美成人艳星乳罩| 色就色 综合激情| 精品午夜一区二区三区在线观看| 国产色婷婷亚洲99精品小说| 欧美日韩一区二区三区在线| 国产在线日韩欧美| 日韩精品久久理论片| 国产欧美日韩精品a在线观看| 在线免费观看成人短视频| 久久av老司机精品网站导航| 一区二区中文字幕在线| 欧美日韩国产不卡| 91日韩在线专区| 精久久久久久久久久久| 亚洲在线视频网站| 中文在线一区二区| 91精品久久久久久久91蜜桃| 成人免费av在线| 久久99精品国产麻豆婷婷| 亚洲乱码精品一二三四区日韩在线| 日韩欧美在线影院| 欧美性三三影院| 99精品视频中文字幕| 国产在线精品一区在线观看麻豆| 日韩专区欧美专区| 亚洲香肠在线观看| 亚洲欧美激情一区二区| 国产网站一区二区| 欧美www视频| 91精品国产综合久久久久| 一本到不卡免费一区二区| 国产成人精品三级| 青青青伊人色综合久久| 视频一区二区欧美| 亚洲一区影音先锋| 亚洲欧美一区二区三区极速播放| 国产欧美一区二区精品秋霞影院| 精品国产一区二区三区忘忧草| 欧美日韩另类一区| 欧美日韩在线电影| 欧美中文字幕一区二区三区| 99热在这里有精品免费| 99精品视频在线免费观看| 白白色亚洲国产精品| 91视频免费播放| 色综合一区二区三区| 一本一道综合狠狠老| 在线观看视频一区二区欧美日韩| 日本乱人伦aⅴ精品| 91麻豆精品秘密| 欧美性大战久久久| 欧美日韩激情一区二区| 91精品婷婷国产综合久久性色| 91精品国产一区二区人妖| 91精品国模一区二区三区| 精品国精品自拍自在线| 中文字幕+乱码+中文字幕一区| 中文字幕在线观看一区| 亚洲免费观看在线视频| 亚洲r级在线视频| 久久国产精品99久久人人澡| 国产一区二区三区av电影 | 亚洲精品一区二区三区香蕉 | 777亚洲妇女| 91精品国产全国免费观看| 欧美一区二区成人| 久久综合丝袜日本网| 中文字幕精品综合| 亚洲精品欧美二区三区中文字幕| 一二三区精品视频| 奇米在线7777在线精品 | 国产偷国产偷精品高清尤物| 日本一区二区动态图| 亚洲黄色尤物视频| 免费观看成人av| eeuss鲁片一区二区三区在线看| 在线观看不卡一区| 欧美www视频| 成人免费一区二区三区在线观看| 亚洲综合色在线| 韩国女主播成人在线| 一本大道久久a久久精二百| 日韩视频免费直播| 国产精品家庭影院| 免费看黄色91| 91麻豆国产福利在线观看| 日韩欧美色电影| 亚洲精品视频在线看| 美女任你摸久久| 91在线精品一区二区| 欧美大片日本大片免费观看| 亚洲欧美激情小说另类| 国产一区啦啦啦在线观看| 日本高清视频一区二区| 久久这里只有精品6| 亚洲综合视频网| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产一区二区调教| 一本到一区二区三区| 久久久久久久久久久99999| 亚洲国产成人porn| 99免费精品在线| 久久久亚洲午夜电影| 日韩国产欧美在线观看| 99re亚洲国产精品| 国产日韩精品一区二区三区| 午夜精品久久久久久久蜜桃app| 不卡影院免费观看| 久久久不卡影院| 久草这里只有精品视频| 欧美精品亚洲二区| 依依成人综合视频| av中文字幕不卡| 久久久国产午夜精品| 久久电影网站中文字幕 | 91丨porny丨最新| 国产欧美一区二区三区在线老狼| 麻豆国产欧美日韩综合精品二区| 欧美日韩电影在线播放| 亚洲精品成a人| 一本色道**综合亚洲精品蜜桃冫| 日本一区二区免费在线| 国产精品一区二区你懂的| 精品久久人人做人人爰| 精品在线免费视频| 欧美成人性福生活免费看| 美女一区二区在线观看| 日韩手机在线导航| 精品一区二区三区不卡 |