freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vhdl4位電子密碼鎖的設(shè)計說明書(已修改)

2025-05-23 19:09 本頁面
 

【正文】 1 大連理工大學(xué) 本科實驗報告 題目: 基于 VHDL 4 位電子密碼鎖的設(shè)計 課程名稱: 數(shù)字電路課程設(shè)計 學(xué)院(系): 電子信息與電氣工程 專 業(yè): 電子英強(qiáng) 班 級: 學(xué)生姓名: 學(xué) 號: 完成日期: 成 績: 2021 年 7 月 08 日 2 題目: 基于 VHDL 4 位電子密碼鎖的設(shè)計 1 設(shè)計要求 ○ 1 電子密碼鎖為 4 位 8421BCD 碼 ,多于 4 位,密碼只取前 4 位。 ○ 2 在輸入密碼錯誤,給出一個錯誤信號,有三次輸入機(jī)會,若三次密碼都輸入錯誤,則給出一個報警信號,此后只能由密碼管理員取消報警信號。 ○ 3 在輸入密碼正確的情況下,可以再次設(shè)定密碼 。 ○ 4 每次輸入一個密碼,將顯示在 7 段 數(shù)碼管 上,并依次左移。 ○ 5 每次輸入密碼的時候,按 取消( cancel) 鍵可以取消這次密碼的輸入,課重新輸入 4 位密碼。 2 設(shè)計分析及系統(tǒng)方案設(shè)計 在實驗室 DE2 開發(fā)板的條件下, 考慮到 key 鍵只有 4 個, 可以用 switch 開關(guān)來實現(xiàn)密碼輸入模塊, 用 switch[9]~switch[0] 來實現(xiàn) 數(shù)字 9~0 的輸入,并通過譯碼模塊將其轉(zhuǎn)化為 8421BCD 碼,由 8421BCD 碼來驅(qū)動 7 段數(shù)碼管作為密碼鎖的顯示模塊。 每按一個鍵,產(chǎn)生一個上升沿,給 4 個數(shù)碼管做時鐘,實現(xiàn)沒輸入一個數(shù)左移一位的效果。 為了實現(xiàn)密碼輸入多于 4 位,可以 構(gòu)造一個模為 4 的計數(shù)器來控制只取前 4位密碼。共有三次輸入密碼的機(jī)會 , 可以構(gòu)造一個模為 3 的計數(shù)器來控制。 密碼比較模塊:當(dāng)按下確定鍵( yes)鍵,則將輸入的密碼和內(nèi)置密碼進(jìn)行比較。密碼輸入模塊:當(dāng)輸入密碼正確時,再輸入密碼,利用重置密碼鍵( set_psw)直接將其賦值給內(nèi)置的密碼 psw 即可實現(xiàn)。 LED 顯示模塊,用來顯示密碼輸入的正確與否。若輸入密碼與內(nèi)置密碼一致,則鎖打開,輸出一個高電平 給 LEDG,綠燈亮 ,密碼錯誤則輸出一個高電平給 LEDR,紅燈亮。 綜合上述分析, 本系統(tǒng)的硬件部分主要由 密碼鎖輸入譯碼模塊、 密碼鎖 顯示模塊 、密碼鎖 控制模塊 、 密碼比較和重置模塊和 LED顯示模塊五 個部分組成。 密碼鎖輸入譯碼 密碼鎖顯示模塊 密碼鎖比較和重置 LED顯示模塊 密碼鎖控制模塊 3 3系統(tǒng)以及 模塊硬件電路設(shè)計 說明: 1. 密碼鎖顯示模塊: 段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。在本設(shè)計中使用的是 4個四位一體、共 陽 極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如 右圖 所示。 : 用 switch[9]~[0]實現(xiàn)數(shù)字 9 到 0 的輸入。 4 clk Clk_in 分頻器 密碼鎖輸入和譯碼 start reset Num[9] 至 Num[0] Out0 Out1 Out2 Out3 q(4 downto 0) Cancel 5 Out_q(15 downto 0) Psw(15 downto 0) DE2開發(fā)板上使用的元件 的 管腳編號 如下: 端口名 FPGA 管腳 說明 alarm pin_af23 報警信號,紅燈亮 cancel pin_v1 取消密碼輸入 clk pin_n2 50MHz 時鐘 correct pin_ae22 密碼正確,綠燈亮 num[0] pin_n25 輸入數(shù)字 0到 9 num[1] pin_n26 num[2] pin_p25 num[3] pin_ae14 num[4] pin_af14 num[5] pin_ad13 num[6] pin_ac13 num[7] pin_c13 num[8] pin_b13 num[9] pin_a13 out0[0] pin_af10 u0 數(shù)碼管 out0[1] pin_ab12 out0[2] pin_ac12 out0[3] pin_ad11 out0[4] pin_ae11 out0[5] pin_v14 Correct Out_error alarm yes 密碼比較和重置 Set_psw 6 out0[6] pin_v13 out1[0] pin_v20 u1 數(shù)碼管 out1[1] pin_v21 out1[2] pin_w21 out1[3] pin_y22 out1[4] pin_aa24 out1[5] pin_aa23 out1[6] pin_ab24 out2[0] pin_ab23 u2 數(shù)碼管 out2[1] pin_v22 out2[2] pin_ac25 out2[3] pin_ac26 out2[4] pin_ab26 out2[5] pin_ab25 out2[6] pin_y24 out3[0] pin_y23 u3 數(shù)碼管 out3[1] pin_aa25 out3[2] pin_aa26 out3[3] pin_y26 out3[4] pin_y25 out3[5] pin_u22 out3[6] pin_w24 out_error pin_ae23 密碼錯,紅燈亮 reset pin_v2 管理員權(quán)限,為 0時取消報警信號 set_psw pin_n23 設(shè)置密碼 start pin_u4 開始輸入密碼信號 yes pin_g26 確定信號 7 4 系統(tǒng) 的 VHDL 設(shè)計 說明 ,即做一個模 5000 的計數(shù)器,從而將 50MHz 的時鐘轉(zhuǎn)化為10000Hz的時鐘。 ,顯示模塊。 switch[9]~switch[0]模擬數(shù)字 9~0 的輸入,例如 switch[9]為高電平,而其他為低電平,則通過程序譯碼為 9,同時產(chǎn)生一個 clock 時鐘上升沿,由于人操作的時間必定大于 (即 10000Hz的時鐘周期),所以在下次按鍵是, clock 已經(jīng)回到低電平,此后再按鍵 clock又產(chǎn)生一個上升沿。由此構(gòu)造的 clock 時鐘可以為左移寄存器當(dāng)時鐘。 : switch 改變一次,即每輸入一個數(shù),譯碼產(chǎn)生一個四位的BCD 碼,來驅(qū)動數(shù)碼管。并隨著 clock 上升沿,依次左移顯示。 比較和重置模塊:在輸入了 4位密碼后, 16 位 BCD碼已經(jīng)保存在 out_q里,通過與內(nèi)置密碼比較即可。 數(shù)碼管的真值表 (0 代表亮, 1代表不亮 ) ??3??2??1??0 0 1 2 3 4 5 6 0000 0 0 0 0 0 0 1 0001 1 0 0 1 1 1 1 0010 0 0 1 0 0 1 0 0011 0 0 0 0 1 1 0 0100 1 0 0 1 1 0 0 0101 0 1 0 0 1 0 0 0110 0 1 0 0 0 0 0 0111 0 0 0 1 1 1 1 1000 0 0 0 0 0 0 0 1001 0 0 0 0 1 0 0 8 VHDL 源代碼 ○ 1 .主程序 coded_lock 代碼: library ieee。 use 。 use 。 entity coded_lock is port(clk: in std_logic。 start:in std_logic。 reset:in std_logic。 num:in std_logic_vector(9 downto 0)。 out3,out2,out1,out0:out std_logic_vector(6 downto 0)。 correct: buffer std_logic。 yes:in std_logic。 admin:in std_logic。 set_psw:std_logic。 alarm: out std_logic。 cancel: in std_logic。 out_error: buffer std_logic)。 end。 architecture behave of coded_lock is ******************************************************************* ponent decoder is 顯示譯碼器的元件例化 port(qq:in std_logic_vector(3 downto 0)。 result: out std_logic_vector(6 downto 0))。 end ponent。 ******************************************************************* signal out_q: std_logic_vector(15 downto 0):=1111111111111111。 out_q 為 4位密碼鎖的 8421BCD碼 signal q:std_logic_vector(3 downto 0)。 輸入一個 9~0的數(shù)字, q為其 8421BCD 碼 signal clock : std_logic:=39。039。 每按一次鍵, clock 輸出一個上升沿 9 signal counter: integer range 0 to 2:=0。 模為 3的計數(shù)器 signal t4: integer range 0 to 4:=0。 模為 5的計數(shù)器 signal enable: std_logic:=39。139。 當(dāng)輸錯 3 次密碼,則此使能端為 0,使無法譯碼 signal psw:std_logic_vector(15 downto 0):=1001100001110110。 默認(rèn)密碼為 9876 signal clk_in: std_logic。 5000 分頻之后的時鐘 begin ******************************************************************* process(clk_in,start,reset,enable) begin if reset=39。039。 then clock=39。039。 elsif rising_edge(clk_in) then if start=39。139。 and enable=39。139。 then case num is 按個鍵, clock 來一個上升沿 when 1000000000=q=1001。clock=39。139。 when 0100000000=q=1000。clock=39。139。 when 0010000000=q=0111。clock=39。139。 when 0001000000=q=0110。clock=39。139。 when 0000100000=q=0101。clock=39。139。 when 0000010000=q=0100。clock=39。139。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1