【文章內(nèi)容簡介】
。如果 en 為高電平且 s 為 1 時 系統(tǒng)將 g 和 h 的值改為當前 a, b 所代表的密碼的四 位二進制數(shù),達到改變密碼的作用。 輸出部分設(shè)計 輸出由兩部分組成,第一部分為輸入密碼 的顯示,由對應(yīng)的十進制數(shù)字轉(zhuǎn)換成七段數(shù)碼管的輸入 [3]。 此處兩個七段數(shù)碼管的輸出為 7 位標準邏輯矢量 c 和 d, 當 a, b 的值發(fā)生變化時在進行輸入部分的操作后還會把 相對應(yīng)的 7 位邏輯矢量賦給 c 和 d。其 對照表如表 32 所示: 表 32 密碼 — 七段數(shù)碼館輸 出 對照表 輸入密碼 七段數(shù)碼管輸出 0 0111111 1 0000110 2 1011011 3 1001111 4 1100110 5 1101101 6 1111101 7 0000111 8 1111111 9 1100111 第二部分為指示燈的輸出。系統(tǒng)當前設(shè)置的密碼存儲在 g 和 h 中。當 a, b 改變時,它們對應(yīng)的二進制密碼會分別存入四位標準邏輯矢量 e 和 f 中。當 en1 為高電平時,系統(tǒng)對 e, g 和 f, h 進行比較,如果兩者皆相等則將代表密碼正確的綠燈 k 置為 1, m 置為 0,否則將 k 置 0, m 置 1.。當 en 和 en1 都為 0 時, k 和 m 都為低電平,亮燈同滅。 芯片總體設(shè)計 電子鎖芯片共有五個輸入,四個輸出,分別表示如下: A[9..0]和 B[9..0],密碼輸入 ;EN,密碼確認鍵,用于修改密碼; CLK,時鐘信號; EN1,密碼檢驗鍵; C[6..0]和 D[6..0],七段數(shù)碼管輸入; K 和 M 分別表示綠燈(密碼正確)和紅燈(密碼錯誤) [4]。 根據(jù)不同的輸入,系統(tǒng)課自動判斷是對密碼進行修改還是對密碼進行檢驗,從而產(chǎn)生相應(yīng)動作,實現(xiàn)電子密碼鎖的功能。 總體設(shè)計如圖 所示: 圖 芯片總體設(shè)計圖 4 VHDL 語言設(shè)計 實現(xiàn)密碼鎖功能的 VHDL 語言源程序及注解如下: library ieee。 use 。 use 。 entity lock2 is port(a:in std_logic_vector(9 downto 0)。 十位輸入端 b: in std_logic_vector(9 downto 0)。 個位輸入端 en,clk:in std_logic。 en 為密碼確認開關(guān) en1:in std_logic。 en1 為密碼檢驗開關(guān) c,d:out std_logic_vector(6 downto 0):=0111111。 輸出七段數(shù)碼館的控制 k,m:out std_logic)。 k 綠燈, m 紅燈 end lock2。 architecture behave of lock2 is signal e : std_logic_vector(3 downto 0)。 signal f : std_logic_vector(3 downto 0)。 signal g : std_logic_vector(3 downto 0)。:=0000。 g, h 用于修改密碼的保存 signal h : std_logic_vector(3 downto 0)。:=0000。 signal count1,count2:std_logic:=39。039。 signal s: std_logic:=39。039。 begin process(a,e) 十位的數(shù)據(jù)轉(zhuǎn)換 begin if(a(9 downto 0)=0000000000) then c(6 downto 0) =0111111。 elsif (a(0)=39。139。) then e=0000。c(6 downto 0) =0111111。 elsif(a(1)=39。139。) then e=0001。c(6 downto 0) =0000110。