




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計多功能密碼鎖姓名:陳遠(yuǎn)賓班級:電子3班學(xué)號:09101103課程設(shè)計多功能密碼鎖一 任務(wù)要求:a) 利用開發(fā)系統(tǒng)板設(shè)計一個多功能密碼鎖控制芯片。b) 利用開發(fā)板上的8個撥碼開關(guān)設(shè)定開鎖密碼、輸入開鎖密碼。8個LED燈顯示工作狀態(tài)以及輸入密碼正誤提示。3個按鍵用來切換不同德模式,包括設(shè)定密碼、開鎖等。七段數(shù)碼管用來顯示輸入密碼的數(shù)值或者相應(yīng)的編號。系統(tǒng)的輸入信號包括8個撥碼開關(guān)和時鐘信號,輸出信號有8個LED、3個七段數(shù)碼管。多功能密碼鎖控制芯片需要8撥碼開關(guān),可以0255,共計256個數(shù),密碼可以設(shè)定為0255中任意一個數(shù)。2個按鍵可以作為控制開關(guān),第一個按鍵代表設(shè)置密碼狀態(tài),第二個
2、按鍵代表上鎖狀態(tài),第3個俺家那倒不輸入密碼開鎖。同時8個發(fā)光二極管LED在不哦天哪狀態(tài)下也有不同的含義:LED4:設(shè)置密碼信號燈LED5:上鎖信號燈LED6:開鎖信號燈8個LED全亮:密碼錯誤,報警信號系統(tǒng)的狀態(tài)轉(zhuǎn)換過程:1. 當(dāng)復(fù)位以后,系統(tǒng)進(jìn)入等待狀態(tài),此時所有LED燈熄滅2. 按下第一個鍵Keyin0,進(jìn)入設(shè)置密碼狀態(tài),表示設(shè)置密碼。密碼設(shè)置信號燈LED4亮,并且把撥碼開關(guān)上的密碼存入系統(tǒng),有七段數(shù)碼管顯示此時的密碼數(shù)據(jù)。3. 按下第二個鍵Keyin1,進(jìn)入鎖定狀態(tài),即密碼保護(hù)狀態(tài),上鎖信號燈LED5亮,數(shù)碼管顯示“0”。4. 處于鎖定狀態(tài),按下第一個鍵Keyin0,系統(tǒng)判斷密碼(撥碼開
3、關(guān)代表的數(shù)值)是否正確,如果密碼正確,則開鎖信號燈LED6亮,表示開鎖;如果密碼錯誤,8個LED燈全亮,進(jìn)入報警狀態(tài),表示報警。5. 開鎖之后,如果按下按鍵Keyin1,則可以再次鎖定系統(tǒng),等待下一次開鎖操作。二系統(tǒng)設(shè)計1.系統(tǒng)結(jié)構(gòu)框圖多功能密碼鎖控制芯片系統(tǒng)結(jié)構(gòu)框圖如圖:2.系統(tǒng)原理分析多功能密碼分3個模塊:分頻模塊、核心狀態(tài)控制模塊和按鍵與七段數(shù)碼管控制。其中,分頻器模塊主要是產(chǎn)生供按鍵、七段數(shù)碼管掃描的時鐘,周期大約在0.0010.0001s之間。同時,分頻時鐘也可以用于核心控制模塊的基本控制,由于掃描時鐘要和按鍵、七段數(shù)碼管控制電路構(gòu)成一個同步電路,因此,必須使用同一個分頻時鐘。按鍵和
4、七段數(shù)碼管顯示控制電路時對外部的控制以及動態(tài)顯示硬件進(jìn)行驅(qū)動,該模塊嘟ianjia內(nèi)進(jìn)行掃描,輸出經(jīng)過掃描至后的按鍵結(jié)果,并且可以把核心模塊輸出的二進(jìn)制顯示數(shù)據(jù)轉(zhuǎn)換為BCD嗎,通過BCD譯碼和動態(tài)顯示技術(shù)最終輸出到動態(tài)七段數(shù)碼管顯示。核心控制模塊的作用是控制系統(tǒng)的狀態(tài)。系統(tǒng)一共有5個狀態(tài),狀態(tài)之間由外部按鍵和撥碼進(jìn)行切換,而狀態(tài)顯示則由LED燈以及數(shù)碼管進(jìn)行輸出。3.系統(tǒng)接口信號描述多功能密碼鎖系統(tǒng)接口信號定義如表所示:信號名I/O位寬含義clk11bit系統(tǒng)時鐘輸入rst11bit系統(tǒng)復(fù)位信號led08bit8個led數(shù)碼管boma18bit8個撥碼開關(guān)scan04bit動態(tài)顯示掃描片選信號
5、m07bit七段數(shù)碼管的段碼控制信號keyin011bit矩陣鍵盤輸入,2X4矩陣鍵盤第一行信號keyin111bit矩陣鍵盤輸入,2X4矩陣鍵盤第二行信號三模塊設(shè)計1. 分頻器模塊設(shè)計(1)模塊原理分析。分頻器完成由50MHz時鐘產(chǎn)生0.0010.0001s時鐘的功能,原始 未分頻時鐘是50MHz,根據(jù)計算公式:n=T/2t,令n=5000,也就是每次計數(shù)5000個原始時鐘周期以后就把輸出的分頻時鐘信號反轉(zhuǎn)一次。輸出時鐘頻率而10KHz。(2)模塊接口定義。分頻器模塊接口定義如下表信號名I/O位寬含義clk11bit系統(tǒng)50Hz時鐘輸入clk101bit分頻后頻率為5KHz的時鐘輸出(3)模
6、塊Verilog代碼設(shè)計,代碼如下:/clk_div.v/Verilog 代碼段6-19module clk_div(clk,clk1);inputclk;/輸入時鐘outputclk1;/輸出時鐘reg12:0counter;/定義計數(shù)器來計數(shù)時鐘,計數(shù)5000,需要用13位計數(shù)器regclk1;always(posedge clk)if(counter=13d5000)/如果等于5000begincounter=13b1;/把counter恢復(fù)成1clk1=clk1;/把clk1翻轉(zhuǎn)endelse/如果不等于5000counter=counter+1b1;/counter繼續(xù)計數(shù)endmo
7、dule狀態(tài)編碼狀態(tài)含義8b00000000 初始狀態(tài)8b00010000設(shè)定密碼狀態(tài)8b00100000鎖定狀態(tài)8b01000000開鎖狀態(tài)8b11111111報警狀態(tài)2. 核心控制模塊設(shè)計(1)模塊原理分析。核心控制模塊控制五個狀態(tài),分別是“初始狀態(tài)”、“設(shè)定密碼狀態(tài)”、“鎖定狀態(tài)”、“開鎖狀態(tài)”和“報警狀態(tài)”,分別對應(yīng)5種LED燈的輸出狀態(tài)。核心控制模塊的狀態(tài)編碼如下表:1. 當(dāng)復(fù)位以后,系統(tǒng)進(jìn)入等待狀態(tài),此時所有LED燈熄滅,四位數(shù)碼管顯示為“0000”,等待第一個鍵Keyin0按下,如果沒按下,則狀態(tài)不改變。2. 按下第一個鍵Keyin0,進(jìn)入設(shè)置密碼狀態(tài),LED燈顯示“000100
8、00”,表示設(shè)置密碼。密碼設(shè)置信號燈LED4亮,并且把撥碼開關(guān)上的密碼存入系統(tǒng),有七段數(shù)碼管顯示此時的密碼數(shù)據(jù)。3. 按下第二個鍵Keyin1,進(jìn)入鎖定狀態(tài),即密碼保護(hù)狀態(tài),上鎖信號燈LED5亮,顯示為“00100000”,數(shù)碼管顯示“0000”。4. 處于鎖定狀態(tài),按下第一個鍵Keyin0,系統(tǒng)判斷密碼(撥碼開關(guān)代表的數(shù)值)是否正確,如果密碼正確,則開鎖信號燈LED6亮,顯示為“01000000”,表示開鎖;如果密碼錯誤,8個LED燈全亮,顯示為“11111111”,進(jìn)入報警狀態(tài),表示報警。5. 開鎖之后,如果按下按鍵Keyin1,則可以再次鎖定系統(tǒng),等待下一次開鎖操作。(2)模塊接口定義。
9、控制模塊接口定義如下表:信號名I/O位寬含義rst11bit系統(tǒng)復(fù)位信號clk111bit分頻后頻率為5KHz的時鐘輸出led08bit8個led數(shù)碼管boma18bit8個撥碼開關(guān)display08bit七段數(shù)碼管顯示的二進(jìn)制數(shù)據(jù)key_s18bit鍵制(3)模塊Verilog代碼設(shè)計,代碼如下:/state.v/Verilog代碼段module state(rst,clk1,led,boma,display,key_s);inputrst,clk1;input7:0boma;/撥碼開關(guān)input7:0key_s;/鍵值,此處只用到 key_s0.key_s1,key_s2output7:0
10、led;/8個LED輸出信號output7:0display;/七段數(shù)碼管顯示數(shù)據(jù)/-reg7:0led;/ LED數(shù)碼管儲存狀態(tài)機(jī)的狀態(tài)編碼areg7:0display;reg7:0mima;/+always(posedge clk1)beginif(rst=1b0) /如果復(fù)位信號有效,密碼清零begindisplay=8b00000000; /七段數(shù)碼管顯示數(shù)據(jù)led=8b00000000;mima=8b00000000;endelsebegincase(led)8b00000000:begin/處于復(fù)位狀態(tài),只能接受密碼設(shè)定if(key_s0=1b1) /如果按鍵1按下,LED4亮,并
11、且確認(rèn)密碼beginled=8b00010000;display=boma;mima=boma;endend8b00010000:begin/處于密碼設(shè)定完畢狀態(tài),只能等待上鎖設(shè)定if(key_s1=1b1) /如果按鍵2按下,LED5亮,密碼上鎖beginled=8b00100000;display=8b0;endend8b00100000:begin/處于鎖定狀態(tài),只能等待開鎖操作if(key_s2=1b1)/ 判斷密碼是否正確,如果正確則LED6亮beginif(boma=mima)beginled=8b01000000;display=boma;endelsebeginled=8b11
12、111111;/密碼不正確則8個LED燈全亮display=boma;endendenddefault:begin /處于開鎖狀態(tài),或者其他無關(guān)狀態(tài),直接轉(zhuǎn)換到鎖定狀態(tài)if(key_s1=1b1) /如果按鍵2按下,LED5亮,密碼上鎖beginled=8b00100000;display=8b0;endendendcaseendendendmodule3. 按鍵、七段數(shù)碼管控制模塊設(shè)計(1)模塊原理分析。該模塊是整個設(shè)計比較復(fù)雜的模塊,其結(jié)構(gòu)圖如下。按鍵、七段數(shù)碼管控制模塊主要負(fù)責(zé)包要顯示的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為BCD碼,進(jìn)而通過動態(tài)顯示技術(shù)在七段數(shù)碼管上顯示出來。此外,還負(fù)責(zé)外部2 *4矩陣鍵盤
13、的掃描處理。電路首先對二進(jìn)制數(shù)據(jù)進(jìn)行BCD譯碼,輸入數(shù)據(jù)在0255之間,經(jīng)過BCD轉(zhuǎn)換,可以得到3個四位二進(jìn)制數(shù)據(jù)。為了配合動態(tài)顯示,需要生成一個動態(tài)掃描信號,不停地掃描動態(tài)數(shù)碼管的位碼,再配合掃描信號,把靜態(tài)七段數(shù)碼管的數(shù)據(jù)放到“段碼數(shù)據(jù)總線”。(2)模塊接口定義。模塊接口定義如下表:信號名I/O位寬含義display18bit七段數(shù)碼管要顯示的數(shù)據(jù)key_s08bit鍵制scan04bit矩陣鍵盤和數(shù)碼管的掃描信號m07bit七段數(shù)碼管的段碼控制信號,采用keyin011bit矩陣鍵盤的輸入信號keyin111bit矩陣鍵盤的輸入信號clk111bit分頻后周期為0.0010.0001s的
14、時鐘輸出(3)模塊Verilog代碼設(shè)計,代碼如下:/scan_crl.v/Verilog 代碼段module scan_crl(display, /七段數(shù)碼管顯示二進(jìn)制數(shù)據(jù)key_s, /鍵盤輸出信號scan, /矩陣鍵盤和數(shù)碼管的掃描信號m, /七段數(shù)碼管的段碼控制信號keyin0, /矩陣鍵盤的第一行輸入信號keyin1, 矩陣鍵盤的第二行輸入信號clk1);input7:0display;inputke段yin0,keyin1,clk1;output7:0key_s;output3:0scan;/掃描控制output6:0m;/7個段碼reg3:0scan;reg7:0key_s;re
15、g6:0m;/產(chǎn)生用于矩陣鍵盤和數(shù)碼動態(tài)掃描的scan信號reg1:0st;always(posedge clk1)st=st+1b1;always(st)begincase(st)2b00:scan=4b0001;2b01:scan=4b0010;2b10:scan=4b0100;2b11:scan=4b1000;default:scan=4b0000;endcaseend/由矩陣按鍵產(chǎn)生內(nèi)部使用的鍵值always(posedge clk1)beginif(scan=4b0001)beginif(keyin0=1b0)key_s0=1b1;else key_s0=1b0;if(keyin1=
16、1b0)key_s4=1b1;else key_s4=1b0;endif(scan=4b0010)beginif(keyin1=1b0)key_s1=1b1;else key_s1=1b0;if(keyin1=1b0)key_s5=1b1;else key_s5=1b0;endif(scan=4b0100)beginif(keyin0=1b0)key_s2=1b1;else key_s2=1b0;if(keyin1=1b0)key_s6=1b1;else key_s6=1b0;endif(scan=4b1000)beginif(keyin0=1b0)key_s3=1b1;else key_s3
17、=1b0;if(keyin1=1b0)key_s7=1b1;else key_s78d199)bai7d99)bai=4d1;elsebai=7d90)shi=7d80)shi=7d70)shi=7d60)shi=7d50)shi=7d40)shi=7d30)shi=7d20)shi=7d10)shi=4d1;elseshi=4d0;endassign ge=display_2wei-shi*4d10;/BCD convert/利用bai shi ge,生成動態(tài)數(shù)碼管顯示數(shù)據(jù)”bin”reg4:0bin;always(st,ge,shi,bai)begincase(st)2b00:bin=4b
18、0000;2b01:bin=bai;2b10:bin=shi;2b11:bin=ge;default:bin=4b0000;endcaseend/七段數(shù)碼管譯碼模塊always(bin)begincase(bin)4b0000:m=7b0111111;4b0001:m=7b0000110;4b0010:m=7b1011011;4b0011:m=7b1001111;4b0100:m=7b1100110;4b0101:m=7b1101101;4b0110:m=7b1111101;4b0111:m=7b0000111;4b1000:m=7b1111111;4b1001:m=7b1101111;default:m=7b0000000;endcase endendmodule4. 頂層鏈接模塊設(shè)計前面設(shè)計了三個電路模塊,包括分頻器、核心控制模塊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)直播內(nèi)容監(jiān)管服務(wù)補(bǔ)充協(xié)議書
- 企業(yè)高端禮儀培訓(xùn)師長期聘用協(xié)議
- 動脈瘤病人護(hù)理
- 肢體活動障礙護(hù)理
- 初一常見傳染病預(yù)防要點
- 城鄉(xiāng)居民健康體檢工作規(guī)范與實施方案
- 數(shù)據(jù)統(tǒng)計分析流程圖培訓(xùn)
- 兒童骨折飲食護(hù)理
- 被害妄想護(hù)理措施
- 2025版高考物理一輪復(fù)習(xí)全程訓(xùn)練計劃課練36機(jī)械振動機(jī)械波含解析
- 管道注水法試驗記錄
- 民用無人駕駛航空器系統(tǒng)駕駛員訓(xùn)練大綱
- 大樹遮陽腳手架搭設(shè)方案
- “危大工程”驗收標(biāo)識牌
- 人民幣的故事(課堂PPT)
- 生產(chǎn)異常及停線管理規(guī)范(1)
- 學(xué)生英語讀寫情況調(diào)查分析報告(二)
- 河北工業(yè)大學(xué)本科生體育課程考核管理辦法-河北工業(yè)大學(xué)本科生院
- 病房發(fā)生火災(zāi)應(yīng)急預(yù)案
- 熱學(xué)李椿__電子
- 煤倉安全管理規(guī)范標(biāo)準(zhǔn)
評論
0/150
提交評論