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

正文內(nèi)容

數(shù)電課程設計電子密碼鎖(已修改)

2025-07-07 07:32 本頁面
 

【正文】 數(shù)字邏輯設計課程設計報告書題目名稱:電子密碼鎖學 院:光 電 信 息 學 院小組成員:鐘永捷2011059080024 侯晨濤2011059170003徐 昊2011059060029指導教師:李 力日 期: 2013年6月28日一、 小組成員分工情況侯晨濤:所有編程工作、資料查找 工作量:60%鐘永捷:輔助編程、圖表制作、資料查找 工作量:20%徐 昊:論文寫作、圖表制作、資料查找 工作量:20%二、 題目分析1. 輸入信號通過掃描鍵盤的行與檢測鍵盤的列得到輸入信號。2. 輸出信號通過譯碼器得到的顯示器顯示信息,開關鎖動作。三、 設計總框圖四、 各模塊說明(一) 鍵盤掃描模塊1. 原理通過時序信號產(chǎn)生脈沖,不間斷地向矩陣鍵盤的行輸入1110110110110111的循環(huán)序列。同時將各列的電平置高,檢測矩陣鍵盤各列的電平變化。若在一定時間內(nèi),掃描到第列電平為零時恰好第行的輸入電平也為零,則判斷鍵盤上位置上鍵被按下。2. 模塊框圖時序信號4*3鍵盤寄存器 比較行列行3. 狀態(tài)表此模塊只需要通過編碼器實現(xiàn)即可,假定前四位表示各行掃描結(jié)果,后三位表示各列掃描的結(jié)果。動作行輸入列輸入狀態(tài)命名編碼輸出按下“0”鍵0111101S00000按下“1”鍵1110110S10001按下“2”鍵1110101S20010按下“3”鍵1110011S30011按下“4”鍵1101110S40100按下“5”鍵1101101S50101按下“6”鍵1101011S60110按下“7”鍵1011110S70111按下“8”鍵1011101S81000按下“9”鍵1011011S91001按下“”鍵0111011S101010按下“*”鍵0111110S1110114. 仿真結(jié)果Key_in代表按鍵按下與否情況,Key_mem將其記錄并輸出,scan為行掃描信號,Key_out為按鍵輸出值。如上仿真結(jié)果所示,當scan為1110時,掃描第一行。按下第一個鍵,即Key_in為110,此時Key_out為0001,即輸出值為1。其它狀態(tài)依此類推。(二) 輸入模塊1. 原理設置兩個寄存器,一個作為用戶所想設置密碼的密碼寄存器。另一個寄存器則是將鍵盤Input的鍵值存儲起來。最后通過一個比較器將兩個寄存器的值進行比較。若相同則輸出“open”,反之,輸出“error”。比較器內(nèi)部通過多位異或門實現(xiàn)。2. 模塊框圖判 斷寄存器輸 入寄存器3. 狀態(tài)圖4. 仿真結(jié)果1) 刪除字符第一次輸入值為0101,Number_sig第0到3位將其保存。第二次輸入值為0011,Number_sig第4到7位將其保存。第三次輸入值為0001,Number_sig第8到11位將其保存。第四次輸入值為1010,即刪除鍵。第五次輸入值為0111,Number_sig第8到11位的值由0001變?yōu)?111,即實現(xiàn)了刪除功能。2) 密碼輸入正確Correct=1說明密碼輸入正確,Number_sig的值為000011001101111000000000,Number_sig的值通過七段顯示譯碼器之后將使數(shù)碼管顯示OPEn00。3) 密碼輸入錯誤Correct=1說明密碼輸入正確,Number_sig的值為110111111111000011110000,Number_sig的值通過七段顯示譯碼器之后將使數(shù)碼管顯示ERROR0。(三) 密碼判斷及更改1. 原理密碼判斷模塊:通過比較器將輸入寄存器與存儲寄存器中的數(shù)據(jù)進行比較,如果數(shù)據(jù)相同,則判斷密碼正確。如果數(shù)據(jù)不同,則返回輸入等待狀態(tài),并對輸入寄存器中的數(shù)據(jù)清零。密碼更改模塊:將第一次與第二次輸入寄存器中的數(shù)據(jù)輸入比較器比較,如果數(shù)據(jù)相同則將該數(shù)據(jù)輸入進密碼存儲寄存器中。如果數(shù)據(jù)不同,則返回數(shù)據(jù)輸入前的數(shù)據(jù)等待狀態(tài)。2. 模塊框圖比較器相同不同存 儲寄存器返回輸入前狀態(tài)第一次輸入寄存器第二次輸入寄存器輸入輸入比較器輸入寄存器存儲寄存器輸入輸入不同相同判斷密碼正確3. 仿真結(jié)果main_state為10000即update狀態(tài),按鍵六次輸入值為0110,0110,0110,0110,0110,0010,第二次輸入相同。即將密碼由666666改為266666。第二次輸入完成same為1,說明兩次輸入相同。按“”鍵確認后。當狀態(tài)變?yōu)?1000時,即in_put輸入密碼Inputpd為001001100110011001100110即266666,correct為1說明密碼修改成功并開鎖。(四) 主狀態(tài)機1. 原理 狀態(tài)分五個狀態(tài):Waits,Input,Pass,Update,F(xiàn)orbid。在Waits狀態(tài)下,摁下“”進入密碼“Input”狀態(tài),在“Input”狀態(tài)下摁“*”可刪除當前Input的字符。若密碼輸入正確則進去“Pass”狀態(tài),否則進入“Forbid”狀態(tài),這時若摁下“”鍵,則重新返回“Waits”狀態(tài)。摁下“*”鍵進入“Update”狀態(tài),輸入兩次密碼然后摁“”鍵進行確定,若兩次密碼不相同則Update失敗,重新返回到“Pass”狀態(tài)。若兩次密碼相同,則返回到“Waits”狀態(tài)。2. 模塊框圖ForbidPass兩次輸入不同+鍵 *UpdateWaitsInputRightWrong兩次輸入相同+ 鍵3. 狀態(tài)表4. 仿真結(jié)果1) 密碼輸入錯誤按下“”鍵,進行密碼輸入(main_state由00001變?yōu)?1000),此時error為1說明密碼輸入錯誤。main_state變?yōu)閒orbid狀態(tài)(由01000變?yōu)?0100)。再按下“”鍵,重新返回waits狀態(tài)(由00100變?yōu)?0001)。2) 密碼輸入正確,且修改密碼成功按下“”鍵,進行密碼輸入(main_state由00001變?yōu)?1000),此時correct為1說明密碼輸入正確。由in_put變?yōu)閜ass(由01000變?yōu)?0010)。按下“*”進行密碼修改,由00010變?yōu)?0000修改正確,主狀態(tài)重新返為wait。3) 密碼輸入正確,但密碼修改失敗按下“”鍵,進行密碼輸入(main_state由00001變?yōu)?1000),此時correct為1說明密碼輸入正確。由in_put變?yōu)閜ass(由01000變?yōu)?0010)。按下“*”進行密碼修改,由00010變?yōu)?0010主狀態(tài)由修改錯誤重新返為pass。(五) 顯示1. 原理這里的選擇24位數(shù)碼管控制模塊,將24位拆分為六組四位編碼輸入七段譯碼器。將譯碼輸出與掃描模塊產(chǎn)生的掃描時序共同作用于六位數(shù)碼管。得到所需顯示結(jié)果。2. 模塊框圖數(shù)碼管控制模塊(24位)七段譯碼器掃描模塊六位數(shù)碼管輸入掃描分六組輸入四位編碼開始掃描3. 仿真結(jié)果輸入信號Number_sig的值為000100100011010001010110即123456,Scan_sig的值為011111時,即第一個數(shù)碼管亮時Duan_date的值為0110000即數(shù)碼管顯示數(shù)字為1。綜合以上,此時第一個數(shù)碼管顯示為1,之后第二個數(shù)碼管顯示為2,第三個數(shù)碼管顯示為3……五、 驗證方案采取自上而下的設計方案,首先將題目要求拆分成各大模塊,然后通過編寫Verilog語言的程序?qū)崿F(xiàn)各模塊的功能。在 中仿真出時序邏輯圖,并驗證程序的正確性。六、 課程設計心得體會通過這次數(shù)字密碼鎖的課程設計,我們掌握了如何通過數(shù)字邏輯知識來設計一個可應用于生產(chǎn)生活中的擁有實際應用功能的數(shù)字邏輯器件。首先我們要了解其具體功能要求,然后采用自上而下的設計方法,建立整體邏輯框圖并將其劃分為各個具體功能模塊。之后,我們通過編寫Verilog程序?qū)崿F(xiàn)每一模塊的功能。在編譯無錯誤后,通過quartus 2軟件自帶的波形仿真功能檢測模塊功能是否實現(xiàn)。當波形達到要求,將各模塊拼接,得到最終的密碼鎖整體邏輯結(jié)構(gòu)(如圖1)。在討論課程設計時,我們最初想通過簡單的邏輯門和邏輯器件來實現(xiàn)密碼鎖功能,以簡化程序部分。但是因為狀態(tài)之間轉(zhuǎn)換的復雜性,無法實現(xiàn)。之后我們決定每一功能模塊均通過程序來實現(xiàn),并自動生成狀態(tài)圖及邏輯圖。這樣工作的任務全部轉(zhuǎn)移到編程上。編程的感想:對于編程,我想說從對verilog一竅不通(C也不太會)到能獨立地使用其進行編程,這將近一月的時間里,我學會了很多,一開始面對這個題目,完全不知道從何下手,從圖書館借了一本書就開始慢慢看,然后就嘗試著去寫,有時候一個簡單的錯誤困擾了我整整一天甚至兩天都想不出來。這個題目的程序是我這將近一個月的心血,每一行都是經(jīng)過思考后寫下的。通過這次課程設計,我體會到了編程的樂趣,當你長時間困擾在一個問題上,突然間的一個奇思妙想就可以解決問題或者實現(xiàn)一個以前實現(xiàn)不了的功能,就是這種偶爾的驚喜使得我堅持了下來。這次課程設計美中不足的是,雖然各個模塊都可以實現(xiàn)其功能,但是將其和在一起就會有問題,雖然編譯無錯誤,但是功能無法實現(xiàn)。因為時間原因,無法對其進行修正,這是我的一個遺憾。程序編寫的同時我們進行狀態(tài)表的繪制,不同于軟件仿真出的狀態(tài)表,我們將狀態(tài)簡化繪制表格,只體現(xiàn)編程時的大致思路。在這個過程中,我們熟練掌握了如何將抽象的狀態(tài)變化繪制成狀態(tài)轉(zhuǎn)移表。以及簡單狀態(tài)圖的繪制方法。七、 源文件(詳見附件)源代碼: //頂層文件******************************************************************************************module top(clk,Rst,key_out,Duan_date,Scan_sig)。input clk。input Rst。input [3:0] key_out。output [6:0] Duan_date。output [5:0] Scan_sig。wire [3:0] scan。wire [2:0] key_in。wire [2:0] key_mem。wire correct。wire error。wire same。wire [4:0] main_state。wire [23:0] Number_sig。wire [23:0]
點擊復制文檔內(nèi)容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1