




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計多功能密碼鎖姓名:陳遠賓班級:電子3班學號:09101103課程設計多功能密碼鎖一 任務要求:a) 利用開發系統板設計一個多功能密碼鎖控制芯片。b) 利用開發板上的8個撥碼開關設定開鎖密碼、輸入開鎖密碼。8個LED燈顯示工作狀態以及輸入密碼正誤提示。3個按鍵用來切換不同德模式,包括設定密碼、開鎖等。七段數碼管用來顯示輸入密碼的數值或者相應的編號。系統的輸入信號包括8個撥碼開關和時鐘信號,輸出信號有8個LED、3個七段數碼管。多功能密碼鎖控制芯片需要8撥碼開關,可以0255,共計256個數,密碼可以設定為0255中任意一個數。2個按鍵可以作為控制開關,第一個按鍵代表設置密碼狀態,第二個
2、按鍵代表上鎖狀態,第3個俺家那倒不輸入密碼開鎖。同時8個發光二極管LED在不哦天哪狀態下也有不同的含義:LED4:設置密碼信號燈LED5:上鎖信號燈LED6:開鎖信號燈8個LED全亮:密碼錯誤,報警信號系統的狀態轉換過程:1. 當復位以后,系統進入等待狀態,此時所有LED燈熄滅2. 按下第一個鍵Keyin0,進入設置密碼狀態,表示設置密碼。密碼設置信號燈LED4亮,并且把撥碼開關上的密碼存入系統,有七段數碼管顯示此時的密碼數據。3. 按下第二個鍵Keyin1,進入鎖定狀態,即密碼保護狀態,上鎖信號燈LED5亮,數碼管顯示“0”。4. 處于鎖定狀態,按下第一個鍵Keyin0,系統判斷密碼(撥碼開
3、關代表的數值)是否正確,如果密碼正確,則開鎖信號燈LED6亮,表示開鎖;如果密碼錯誤,8個LED燈全亮,進入報警狀態,表示報警。5. 開鎖之后,如果按下按鍵Keyin1,則可以再次鎖定系統,等待下一次開鎖操作。二系統設計1.系統結構框圖多功能密碼鎖控制芯片系統結構框圖如圖:2.系統原理分析多功能密碼分3個模塊:分頻模塊、核心狀態控制模塊和按鍵與七段數碼管控制。其中,分頻器模塊主要是產生供按鍵、七段數碼管掃描的時鐘,周期大約在0.0010.0001s之間。同時,分頻時鐘也可以用于核心控制模塊的基本控制,由于掃描時鐘要和按鍵、七段數碼管控制電路構成一個同步電路,因此,必須使用同一個分頻時鐘。按鍵和
4、七段數碼管顯示控制電路時對外部的控制以及動態顯示硬件進行驅動,該模塊嘟ianjia內進行掃描,輸出經過掃描至后的按鍵結果,并且可以把核心模塊輸出的二進制顯示數據轉換為BCD嗎,通過BCD譯碼和動態顯示技術最終輸出到動態七段數碼管顯示。核心控制模塊的作用是控制系統的狀態。系統一共有5個狀態,狀態之間由外部按鍵和撥碼進行切換,而狀態顯示則由LED燈以及數碼管進行輸出。3.系統接口信號描述多功能密碼鎖系統接口信號定義如表所示:信號名I/O位寬含義clk11bit系統時鐘輸入rst11bit系統復位信號led08bit8個led數碼管boma18bit8個撥碼開關scan04bit動態顯示掃描片選信號
5、m07bit七段數碼管的段碼控制信號keyin011bit矩陣鍵盤輸入,2X4矩陣鍵盤第一行信號keyin111bit矩陣鍵盤輸入,2X4矩陣鍵盤第二行信號三模塊設計1. 分頻器模塊設計(1)模塊原理分析。分頻器完成由50MHz時鐘產生0.0010.0001s時鐘的功能,原始 未分頻時鐘是50MHz,根據計算公式:n=T/2t,令n=5000,也就是每次計數5000個原始時鐘周期以后就把輸出的分頻時鐘信號反轉一次。輸出時鐘頻率而10KHz。(2)模塊接口定義。分頻器模塊接口定義如下表信號名I/O位寬含義clk11bit系統50Hz時鐘輸入clk101bit分頻后頻率為5KHz的時鐘輸出(3)模
6、塊Verilog代碼設計,代碼如下:/clk_div.v/Verilog 代碼段6-19module clk_div(clk,clk1);inputclk;/輸入時鐘outputclk1;/輸出時鐘reg12:0counter;/定義計數器來計數時鐘,計數5000,需要用13位計數器 regclk1;always(posedge clk)if(counter=13'd5000)/如果等于5000begincounter<=13'b1;/把counter恢復成1clk1<=clk1;/把clk1翻轉endelse/如果不等于5000counter<=counte
7、r+1'b1;/counter繼續計數endmodule狀態編碼狀態含義8b00000000 初始狀態8b00010000設定密碼狀態8b00100000鎖定狀態8b01000000開鎖狀態8b11111111報警狀態2. 核心控制模塊設計(1)模塊原理分析。核心控制模塊控制五個狀態,分別是“初始狀態”、“設定密碼狀態”、“鎖定狀態”、“開鎖狀態”和“報警狀態”,分別對應5種LED燈的輸出狀態。核心控制模塊的狀態編碼如下表:1. 當復位以后,系統進入等待狀態,此時所有LED燈熄滅,四位數碼管顯示為“0000”,等待第一個鍵Keyin0按下,如果沒按下,則狀態不改變。2. 按下第一個鍵K
8、eyin0,進入設置密碼狀態,LED燈顯示“00010000”,表示設置密碼。密碼設置信號燈LED4亮,并且把撥碼開關上的密碼存入系統,有七段數碼管顯示此時的密碼數據。3. 按下第二個鍵Keyin1,進入鎖定狀態,即密碼保護狀態,上鎖信號燈LED5亮,顯示為“00100000”,數碼管顯示“0000”。4. 處于鎖定狀態,按下第一個鍵Keyin0,系統判斷密碼(撥碼開關代表的數值)是否正確,如果密碼正確,則開鎖信號燈LED6亮,顯示為“01000000”,表示開鎖;如果密碼錯誤,8個LED燈全亮,顯示為“11111111”,進入報警狀態,表示報警。5. 開鎖之后,如果按下按鍵Keyin1,則可
9、以再次鎖定系統,等待下一次開鎖操作。(2)模塊接口定義。控制模塊接口定義如下表:信號名I/O位寬含義rst11bit系統復位信號clk111bit分頻后頻率為5KHz的時鐘輸出led08bit8個led數碼管boma18bit8個撥碼開關display08bit七段數碼管顯示的二進制數據key_s18bit鍵制(3)模塊Verilog代碼設計,代碼如下:/state.v/Verilog代碼段module state(rst,clk1,led,boma,display,key_s);inputrst,clk1;input7:0boma;/撥碼開關input7:0key_s;/鍵值,此處只用到 k
10、ey_s0.key_s1,key_s2output7:0led;/ 8個LED輸出信號output7:0display;/七段數碼管顯示數據/-reg7:0led;/ LED數碼管儲存狀態機的狀態編碼areg7:0display;reg7:0mima;/+always(posedge clk1)beginif(rst=1'b0) /如果復位信號有效,密碼清零begindisplay<=8'b00000000; /七段數碼管顯示數據led<=8'b00000000;mima<=8'b00000000;endelsebegincase(led)8&
11、#39;b00000000:begin /處于復位狀態,只能接受密碼設定if(key_s0=1'b1) /如果按鍵1按下,LED4亮,并且確認密碼beginled<=8'b00010000;display<=boma;mima<=boma;endend8'b00010000:begin /處于密碼設定完畢狀態,只能等待上鎖設定if(key_s1=1'b1) /如果按鍵2按下,LED5亮,密碼上鎖beginled<=8'b00100000;display<=8'b0;endend8'b00100000:begi
12、n /處于鎖定狀態,只能等待開鎖操作if(key_s2=1'b1) / 判斷密碼是否正確,如果正確則LED6亮beginif(boma=mima)beginled<=8'b01000000;display<=boma;endelsebeginled<=8'b11111111; /密碼不正確則8個LED燈全亮display<=boma;endendenddefault:begin /處于開鎖狀態,或者其他無關狀態,直接轉換到鎖定狀態if(key_s1=1'b1) /如果按鍵2按下,LED5亮,密碼上鎖beginled<=8'b
13、00100000;display<=8'b0;endendendcaseendendendmodule3. 按鍵、七段數碼管控制模塊設計(1)模塊原理分析。該模塊是整個設計比較復雜的模塊,其結構圖如下。按鍵、七段數碼管控制模塊主要負責包要顯示的二進制數據轉換為BCD碼,進而通過動態顯示技術在七段數碼管上顯示出來。此外,還負責外部2 *4矩陣鍵盤的掃描處理。電路首先對二進制數據進行BCD譯碼,輸入數據在0255之間,經過BCD轉換,可以得到3個四位二進制數據。為了配合動態顯示,需要生成一個動態掃描信號,不停地掃描動態數碼管的位碼,再配合掃描信號,把靜態七段數碼管的數據放到“段碼數據
14、總線”。(2)模塊接口定義。模塊接口定義如下表:信號名I/O位寬含義display18bit七段數碼管要顯示的數據key_s08bit鍵制scan04bit矩陣鍵盤和數碼管的掃描信號m07bit七段數碼管的段碼控制信號,采用keyin011bit矩陣鍵盤的輸入信號keyin111bit矩陣鍵盤的輸入信號clk111bit分頻后周期為0.0010.0001s的時鐘輸出(3)模塊Verilog代碼設計,代碼如下:/scan_crl.v/Verilog 代碼段module scan_crl(display, /七段數碼管顯示二進制數據key_s, /鍵盤輸出信號scan, /矩陣鍵盤和數碼管的掃描信
15、號m, /七段數碼管的段碼控制信號keyin0, /矩陣鍵盤的第一行輸入信號keyin1, 矩陣鍵盤的第二行輸入信號clk1);input7:0display;inputke段yin0,keyin1,clk1;output7:0key_s;output3:0scan;/掃描控制output6:0m;/7個段碼reg3:0scan;reg7:0key_s;reg6:0m;/產生用于矩陣鍵盤和數碼動態掃描的scan信號reg1:0st;always(posedge clk1)st<=st+1'b1;always(st)begincase(st)2'b00:scan<=4
16、'b0001;2'b01:scan<=4'b0010;2'b10:scan<=4'b0100;2'b11:scan<=4'b1000;default:scan<=4'b0000;endcaseend/由矩陣按鍵產生內部使用的鍵值always(posedge clk1)beginif(scan=4'b0001)beginif(keyin0=1'b0)key_s0<=1'b1;else key_s0=1'b0;if(keyin1=1'b0)key_s4<=1&
17、#39;b1;else key_s4<=1'b0;endif(scan=4'b0010)beginif(keyin1=1'b0)key_s1<=1'b1;else key_s1=1'b0;if(keyin1=1'b0)key_s5<=1'b1;else key_s5<=1'b0;endif(scan=4'b0100)beginif(keyin0=1'b0)key_s2<=1'b1;else key_s2<=1'b0;if(keyin1=1'b0)key_s
18、6<=1'b1;else key_s6<=1'b0;endif(scan=4'b1000)beginif(keyin0=1'b0)key_s3<=1'b1;else key_s3<=1'b0;if(keyin1=1'b0)key_s7<=1'b1;else key_s7<=1'b0;endend/按鍵模塊/BCD convertreg3:0bai,shi;wire3:0ge;always(display)if(display>8'd199)bai<=4'd2;
19、else if(display>7'd99)bai<=4'd1;elsebai<=4'd0;wire7:0display_2wei;/十位和個位assigndisplay_2wei=display-bai*7'd100;/處理十位和個位always(display_2wei)beginif(display_2wei>=7'd90)shi<=4'd9;else if(display_2wei>=7'd80)shi<=4'd8;else if(display_2wei>=7'd7
20、0)shi<=4'd7;else if(display_2wei>=7'd60)shi<=4'd6;else if(display_2wei>=7'd50)shi<=4'd5;else if(display_2wei>=7'd40)shi<=4'd4;else if(display_2wei>=7'd30)shi<=4'd3;else if(display_2wei>=7'd20)shi<=4'd2;else if(display_2wei&
21、gt;=7'd10)shi<=4'd1;elseshi<=4'd0;endassign ge=display_2wei-shi*4'd10;/BCD convert/利用bai shi ge,生成動態數碼管顯示數據”bin”reg4:0bin;always(st,ge,shi,bai)begincase(st)2'b00:bin<=4'b0000;2'b01:bin<=bai;2'b10:bin<=shi;2'b11:bin<=ge;default:bin<=4'b0000
22、;endcaseend/七段數碼管譯碼模塊always(bin)begincase(bin)4'b0000:m<=7'b0111111;4'b0001:m<=7'b0000110;4'b0010:m<=7'b1011011;4'b0011:m<=7'b1001111;4'b0100:m<=7'b1100110;4'b0101:m<=7'b1101101;4'b0110:m<=7'b1111101;4'b0111:m<=7'b0000111;4'b1000:m<=7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游戲異常處理與故障排查考核試卷
- 民間非營利組織新舊會計制度有關銜接問題的處理規定2025
- 3.20國際幸福日幸福其實并不遙遠幸福可以很簡單課件
- 四川省內江市東興區2025屆小升初常考易錯數學檢測卷含解析
- 湘潭理工學院《新媒體產品設計與項目管理》2023-2024學年第二學期期末試卷
- 雅安市重點中學2024-2025學年初三5月聯合調研數學試題試卷含解析
- 江西省2024-2025學年高三1月物理試題含解析
- 遼寧特殊教育師范高等專科學校《心理咨詢技術與實務》2023-2024學年第二學期期末試卷
- 臺州科技職業學院《管理會計應用指引》2023-2024學年第二學期期末試卷
- 西安航空職業技術學院《生物多樣性》2023-2024學年第二學期期末試卷
- 山東節制閘工程施工組織設計
- 中藥化學試題及答案
- 2024春期國開電大本科《現代漢語專題》在線形考(任務1至6)試題及答案
- HJ 1235-2021 入河(海)排污口命名與編碼規則-PDF解密
- 公路消防知識培訓內容
- JTG F80-1-2004 公路工程質量檢驗評定標準 第一冊 土建工程
- 《1984》讀書分享課件
- 肺動脈高壓的傳統治療
- 園林植物識別-草本花卉的識別
- 班組長怎樣抓好生產管理
- 【湘少版】(三起)三年級英語下冊(全冊)配套練習
評論
0/150
提交評論