華南理工大學(xué)數(shù)電課程設(shè)計(jì)_第1頁(yè)
華南理工大學(xué)數(shù)電課程設(shè)計(jì)_第2頁(yè)
華南理工大學(xué)數(shù)電課程設(shè)計(jì)_第3頁(yè)
華南理工大學(xué)數(shù)電課程設(shè)計(jì)_第4頁(yè)
華南理工大學(xué)數(shù)電課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告書題目:矩陣鍵盤識(shí)別電路的設(shè)計(jì)題目:矩陣鍵盤識(shí)別電路的設(shè)計(jì) 學(xué)學(xué) 院院 自動(dòng)化學(xué)院自動(dòng)化學(xué)院 專專 業(yè)業(yè) 自動(dòng)化控制自動(dòng)化控制 學(xué)生姓名學(xué)生姓名 學(xué)生學(xué)號(hào)學(xué)生學(xué)號(hào) 201330581089201330581089 班內(nèi)序號(hào)班內(nèi)序號(hào) 9 9 指導(dǎo)教師指導(dǎo)教師 馬楚儀馬楚儀 課程編號(hào)課程編號(hào) 135070135070 課程學(xué)分課程學(xué)分 1 1 學(xué)分學(xué)分 起止日期起止日期 2015.052015.05 19192015.07.032015.07.03 教師簽名:日期:目錄目錄第 1 章、選題背景.1第 2 章、方案論證(設(shè)計(jì)理念).11 設(shè)計(jì)任務(wù).12 方案論證; .2第 3 章、過(guò)程論

2、述.21 總電路.22 分頻模塊.33 掃描模塊:.44 譯碼模塊.5第 4 章、結(jié)果分析.61 分頻模塊.62 譯碼模塊.63 掃描模塊.74 總電路.7第 5 章、課程設(shè)計(jì)總結(jié).81 收獲與心得.82 致謝.9附錄 1:參考文獻(xiàn) .10參考文獻(xiàn).10附錄 2:部分采用 VERILOG 語(yǔ)言編寫的模塊的原程序 .10掃描模塊程序.10譯碼模塊程序:.151課題名稱:數(shù)字電子技術(shù)基礎(chǔ)課題名稱:數(shù)字電子技術(shù)基礎(chǔ)第第 1 章、選題背景章、選題背景在現(xiàn)代電子工業(yè)的控制電路中,鍵盤掃描和顯示電路對(duì)系統(tǒng)的調(diào)試和設(shè)置有著重要的作用。隨著 EDA 技術(shù)的發(fā)展,基于 FPGA 的掃描鍵盤因其結(jié)構(gòu)簡(jiǎn)單能有效防止

3、機(jī)械鍵盤按鍵抖動(dòng)帶來(lái)的數(shù)據(jù)錯(cuò)誤等優(yōu)點(diǎn)在許多電子設(shè)備中都得到了廣泛的應(yīng)用。本課題的內(nèi)容是設(shè)計(jì)一個(gè)電路來(lái)識(shí)別 4x4 矩陣鍵盤,單獨(dú)按某個(gè)鍵,數(shù)碼管顯示該鍵的數(shù)字,如 J0,顯示 00,J1,顯示 01,J15 顯示 15,同時(shí)發(fā)出發(fā)出一音“嘀”同時(shí)按兩個(gè)或以上按鍵,數(shù)碼管顯示 ER,發(fā)出一音“嘀”,連續(xù)發(fā)出“嘟嘟嘟”,直到松開(kāi)按鍵,聲音關(guān)閉。所主要解決的問(wèn)題是設(shè)計(jì)電路,通過(guò)運(yùn)用 Quartus軟件平臺(tái)生成電路符號(hào),并仿真分析,消除各種存在的問(wèn)題,直到下載到芯片中通過(guò)硬件實(shí)現(xiàn)上述所要求的功能。對(duì)該系統(tǒng)要求:應(yīng)具有集成度高、穩(wěn)定性好、設(shè)計(jì)靈活和設(shè)計(jì)效率高等優(yōu)點(diǎn)。設(shè)計(jì)指導(dǎo)思想:矩陣鍵盤識(shí)別電路從原理上

4、講就是一個(gè)典型的數(shù)字電路,包括組合邏輯電路和時(shí)序邏輯電路。設(shè)計(jì)鍵盤掃描程序,將程序劃分為時(shí)序產(chǎn)生模塊、鍵盤掃描模塊、鍵值譯碼模塊,蜂鳴器模塊四個(gè)模塊,時(shí)序產(chǎn)生模塊為鍵盤掃描和蜂鳴器模塊產(chǎn)生時(shí)鐘信號(hào),鍵盤掃描模塊采用行掃描法對(duì) 4*4 矩陣鍵盤進(jìn)行掃描,鍵值譯碼模塊將所按鍵值譯碼為共陰極 8 位 7 段數(shù)碼管的顯示碼幾個(gè)模塊組合起來(lái)實(shí)現(xiàn)鍵盤掃描的設(shè)計(jì)要求。第第 2 章、方案論證章、方案論證(設(shè)計(jì)理念設(shè)計(jì)理念)1 設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù)的設(shè)計(jì)功能包括:1 單獨(dú)按某個(gè)鍵,數(shù)碼管顯示該鍵的數(shù)字,如 J0,顯示 00,J1,顯示 01,J15 顯示 15。2 同時(shí)按兩個(gè)或以上按鍵,顯示 ER。23 單獨(dú)按某個(gè)

5、鍵,發(fā)出一音“嘀”, 同時(shí)按兩個(gè)或以上按鍵,發(fā)出一音“嘀”,連續(xù)發(fā)出“嘟嘟嘟”,直到松開(kāi)按鍵,聲音關(guān)閉。(1)設(shè)計(jì)理念:將矩陣鍵盤識(shí)別電路各個(gè)功能分成模塊來(lái)實(shí)現(xiàn),包括分頻模塊描模塊、鍵值譯碼模塊,蜂鳴器模塊四個(gè)模塊, 在主電路中通過(guò)連線實(shí)現(xiàn)識(shí)別功能。分模塊能使電路看起來(lái)更有條理,接線更清晰,功能更加可靠,排查錯(cuò)誤更簡(jiǎn)單和更有針對(duì)性。2 方案論證;一:識(shí)別方式:判斷鍵盤上哪個(gè)鍵被按下,可以采用靜態(tài)譯碼法或掃描法,靜態(tài)譯碼法原理簡(jiǎn)單,容易理解,但電路復(fù)雜,掃描法比較抽象,電路相對(duì)簡(jiǎn)單,通常采用,掃描法又稱為逐行或列掃描查詢法,它是一種最常用的多按鍵識(shí)別方法。綜上,選取掃描方法二:實(shí)現(xiàn)方式方案 1:

6、采用用門電路和各種寄存器等搭建組合時(shí)序電路的方式來(lái)實(shí)現(xiàn),可以采用移位寄存器循環(huán)掃描信號(hào),并通過(guò)數(shù)據(jù)選擇器來(lái)判斷各種情況,這種方法實(shí)現(xiàn)原理簡(jiǎn)單,但搭電路的時(shí)候復(fù)雜,接線繁多,尤其是識(shí)別兩個(gè)以上的按鍵時(shí)不靈活,容易漏接錯(cuò)接,且檢查錯(cuò)誤比較麻煩。方案 2:采用用硬件描述語(yǔ)言 Verilog hdl 來(lái)實(shí)現(xiàn),Verilog hdl 語(yǔ)言和 c 語(yǔ)言比較類似,所以上手比較快,因此,雖然之前沒(méi)接觸過(guò)該語(yǔ)言,但在做課程設(shè)計(jì)的這段時(shí)間里,用它來(lái)實(shí)現(xiàn)課程設(shè)計(jì)所要實(shí)現(xiàn)的功能還是可以的。用這種方法的話,程序簡(jiǎn)單易懂,而且比較簡(jiǎn)潔,思路比較清晰,尤其在識(shí)別兩個(gè)按鍵以上的時(shí)候優(yōu)越性特別明顯。方案 3:采用用硬件描述語(yǔ)言

7、 vhdl 來(lái)實(shí)現(xiàn),與 Verilog hdl 相似,但是 vhdl 的語(yǔ)法比 Verilog hdl 復(fù)雜一點(diǎn),由于沒(méi)有學(xué)過(guò),對(duì)該語(yǔ)言一竅不通。所以該方案不考慮。綜上所述,選取方案二。第第 3 章、過(guò)程論述章、過(guò)程論述1 總電路作用:將各個(gè)模塊串連起來(lái)以實(shí)現(xiàn)識(shí)別電路的功能。3圖 1 總電路圖輸入 1kHZ 的頻率,首先經(jīng)過(guò)分頻器成 1HZ ,100HZ,250HZ, 500HZ 的脈沖,用于驅(qū)動(dòng)蜂鳴器,1kHZ 的脈沖進(jìn)入掃描模塊,掃描模塊將掃描結(jié)果分別送給顯示譯碼器模塊和蜂鳴器模塊,從而驅(qū)動(dòng)兩個(gè) led 數(shù)碼管顯示結(jié)果,只有一個(gè)鍵按下時(shí),蜂鳴器發(fā)出一音“嘀”,當(dāng)同時(shí)按兩個(gè)或以上按鍵,發(fā)出一

8、音“嘀”,連續(xù)發(fā)出“嘟嘟嘟”。2 分頻模塊作用:在輸入脈沖只有 11kHZ 的情況下,將 1kHZ 的脈沖分頻成 1HZ ,100HZ,250HZ, 500HZ 的脈沖,用于驅(qū)動(dòng)蜂鳴器,不同的頻率使蜂鳴器發(fā)出不同的聲音。4圖 2 分頻模塊電路圖圖中各成分的作用,和成分之間的交互:輸入 1kHZ 的脈沖,運(yùn)用 7490 芯片構(gòu)成分頻電路,當(dāng) 7490 的 SET9A,SET9B,CLRA.CLRB管腳接低電平 CLKA 接 QD 輸出管腳,CLKB 接輸入脈沖,QA 輸出脈沖,構(gòu)成十分頻電路。依據(jù)這樣的原理,經(jīng)過(guò)三個(gè)十分頻即可輸出100,1HZ 的脈沖信號(hào)。分頻模塊的下部分是用 D 觸發(fā)器構(gòu)成的

9、二分頻電路,因此可以分頻出 500HZ,250HZ 的脈沖信號(hào)。3 掃描模塊:作用:判斷按鍵的狀態(tài),即識(shí)別按鍵,按照識(shí)別結(jié)果輸出一個(gè)按鍵標(biāo)志位 flag,錯(cuò)誤按鍵標(biāo)志位 flag2,和按鍵值 key_value。圖 3.掃描模塊電路邏輯符號(hào)圖圖 4 矩陣鍵盤結(jié)構(gòu)圖5程序見(jiàn)附錄,各成分的作用,和成分之間的交互:掃描流程1、 判斷鍵盤中有無(wú)鍵按下 將全部列線 KR0-KR3 置低電平然后檢測(cè)行線 KL0-KL3 的狀態(tài),只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與 4 根行線相交叉的 4 個(gè)按鍵之中,若所有行線均為高電平則表示鍵盤中無(wú)鍵按下。 2、 判斷按鍵所在的位置

10、在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程,其方法是依次將列線置為低電平,即在置某根列線為低電平時(shí),其它線為高電平,例如: KR0 KR1 KR2 KR3 置 0111,之后掃描 KL 端,當(dāng)J0 鍵按下,則 KL0 輸出為 0,其余則為 1,即 KL3 KL2 KL1 KL0 輸出為 1110,此時(shí)就可以判斷為 J0 鍵被按下,數(shù)碼管顯示 01,依此類推,判斷其他鍵。而在一次掃描過(guò)程中,當(dāng)掃描到某列有鍵按下,即將該列的按鍵標(biāo)志置 1,在掃描結(jié)束后,如果有多列置 1,就判斷有多個(gè)鍵按下,從而 key_value=16,即報(bào)錯(cuò),而在一行之中的最后判斷之中,例如 KR0-KR3 置 1110

11、時(shí),當(dāng) KL3 KL2 KL1 KL0輸出至少兩個(gè)管腳為低電平時(shí),也判斷為多個(gè)按鍵按下,即就報(bào)錯(cuò)。即識(shí)別思想是在一次輪回中,依次將 KR0 KR1 KR2 KR3 分別置為 00000,0111,1011,1101,1101,此次掃描結(jié)束才判斷掃描結(jié)果,判斷按鍵錯(cuò)誤的順序是先列后行。表 1 按鍵位置與數(shù)碼的關(guān)系 KRKLJ0J1J2J3J4J51110_11101101_11101011_11100111_11101110_11011101_1101J6J7J8J9J10J111011_11010111_11011110_10111101_10111011_10110111_1011J12J3

12、J14J15J16(即報(bào)錯(cuò)標(biāo)志)61110_01111101_01111011_01110111_0111defualt4 譯碼模塊作用:將輸進(jìn)來(lái)的 key_value 譯碼出相應(yīng)的碼給 led1,led2 顯示。程序見(jiàn)附錄。圖 5.譯碼模塊邏輯符號(hào)圖第第 4 章、結(jié)果分析章、結(jié)果分析1 分頻模塊Clk 輸入 1KHZ 的脈沖信號(hào),分頻出 500HZ,250HZ,100HZ,1HZ的信號(hào),分析波形結(jié)果正確。圖 6 分頻模塊仿真波形2 譯碼模塊當(dāng)電路輸入 key_value 分別為:00000,00001,00010,00011,00100,00101,00110,00111,01000,010

13、01,01010,01011,01100,01101,01110,01111,10000led1 輸出:00111111,00111111,00111111,00111111,0011111100111111,00111111,00111111,00111111,00111111,00110000700110000,00110000,00110000,00110000,00110000,01111001led2 輸出:00111111,00110000,01011011,01001111,0110011001101101,01111100,00000111,01111111,01101111,

14、0011111100110000,01011011,01001111,01100110,01101101, 01110111圖 7.譯碼模塊的仿真波形圖3 掃描模塊掃描程序依次將 KR0 KR1 KR2 KR3 置0111,1011,1101,1110,進(jìn)行掃描。圖 8.掃描模塊的仿真波形圖84 總電路在時(shí)鐘的控制下,掃描程序依次將 KR0 KR1 KR2 KR3 置0111,1011,1101,1110,進(jìn)行掃描,如果第一個(gè)鍵按下時(shí),此時(shí) flag置一,數(shù)碼管中 led1,led2 都置00111111。其他的同理。圖 9.總電路仿真波形圖第第 5 章、課程設(shè)計(jì)總結(jié)章、課程設(shè)計(jì)總結(jié)1 收獲與

15、心得通過(guò)本次課程設(shè)計(jì),我收獲到在課堂上所不能給予我的知識(shí)和處理問(wèn)題的能力,也深刻體會(huì)到,正如老師在任務(wù)書中說(shuō)的一樣,做設(shè)計(jì)是一件很辛苦的事情,千萬(wàn)不能夠浮躁,想走捷徑,只有靜下心來(lái),根據(jù)本課程的知識(shí)、查找資料、學(xué)習(xí)前人經(jīng)驗(yàn),才能有自己的作品。在設(shè)計(jì)過(guò)程中,感覺(jué)自己收獲到了很多比僅僅做題,上課更豐富的知識(shí),同時(shí)也加深了對(duì)數(shù)電知識(shí)的理解,并且這個(gè)過(guò)程現(xiàn)在回想起來(lái)真的很奇妙自己能夠獨(dú)立地運(yùn)用自己學(xué)的知識(shí)來(lái)設(shè)計(jì)電路,真的很有成就感。讓我感受最深的是在這次設(shè)計(jì)之中出現(xiàn)的那些問(wèn)題,真的,做設(shè)計(jì)如同人生,并不是一帆風(fēng)順的,也不能一蹴而就。從選擇矩陣鍵盤的這道題開(kāi)始,就意味著我要開(kāi)始接受一個(gè)新的挑戰(zhàn)。說(shuō)實(shí)話,

16、一開(kāi)始選擇這道題目是因?yàn)橹坝薪佑|過(guò)矩陣鍵盤,后來(lái)才發(fā)現(xiàn)用數(shù)電知識(shí)來(lái)實(shí)現(xiàn)和我之前接觸的有特別大的區(qū)別,真的可以說(shuō)天壤之別。在選擇方案的時(shí)候,一開(kāi)始挺糾結(jié),是要用描述語(yǔ)言還是用搭電路的方法,因?yàn)槲抑皼](méi)接觸過(guò)硬件描述語(yǔ)言。后來(lái)通過(guò)論證,果斷選了硬件語(yǔ)言,硬件語(yǔ)言對(duì)我來(lái)說(shuō)真的是一個(gè)新的東西,所以這不得不說(shuō)是9一個(gè)新的挑戰(zhàn)。也正因?yàn)榇舜卧O(shè)計(jì),我對(duì) Verilog hdl 語(yǔ)言有了一個(gè)大概的了解。選擇了用描述語(yǔ)言來(lái)描述電路,首先就是要補(bǔ)充知識(shí),我把數(shù)電課本的關(guān)于硬件語(yǔ)言的那章看了,然后就到處于找關(guān)于 Verilog hdl 的語(yǔ)法資料。在寫掃描程序的過(guò)程中,單個(gè)按鍵檢測(cè)比較容易,但當(dāng)然這個(gè)過(guò)程出現(xiàn)了很

17、多小問(wèn)題,這些小問(wèn)題有時(shí)候也是挺難發(fā)現(xiàn)的,有時(shí)候就改了一個(gè)地方,然后程序就可以正常工作了,所以程序編譯了數(shù)不清 n 遍,出現(xiàn)問(wèn)題的時(shí)候就找找書,例如阻塞語(yǔ)句和非阻塞語(yǔ)句的區(qū)別,還有 case 語(yǔ)句在 Verilog hdl 中的應(yīng)用等,尤其是阻塞語(yǔ)句和非阻塞語(yǔ)句,花了很久才搞懂是什么回事。最困難的部分是兩個(gè)以上按鍵的檢測(cè),首先是掃描方法,如何檢測(cè)出兩個(gè)以上的按鍵,真的想了好久,看著那個(gè)矩陣鍵盤原理圖想了不知道多少遍了。一開(kāi)始想出來(lái)的程序,按照原理,它應(yīng)該能夠檢測(cè)出不同行的兩個(gè)按鍵以上的,但是結(jié)果卻出乎我意料,竟然只能夠識(shí)別同一列的兩個(gè)以上按鍵,然后檢測(cè)很久也沒(méi)發(fā)現(xiàn)問(wèn)題,真的考驗(yàn)人的耐心,奇怪的

18、是在之后的寫的程序,沒(méi)怎么改,它就正常工作了。之后用它又寫了一個(gè)程序,雖然感覺(jué)那個(gè)原理能夠檢測(cè)任意兩個(gè)以上按鍵但結(jié)果卻是只能檢測(cè)不同行。迫于無(wú)奈,只能改另外一種掃描方法,前一種掃描方法由于時(shí)間關(guān)系,只能先放下查找它的錯(cuò)誤,自己感覺(jué)可能對(duì)Verilog hdl 有些細(xì)節(jié)的東西還不是很清楚 ,可能這也是此次設(shè)計(jì)遇到的最大問(wèn)題。之后的那個(gè)程序掃描方法在實(shí)現(xiàn)過(guò)程中也是遇到各種問(wèn)題,經(jīng)過(guò)查資料,最后很幸運(yùn)都解決了。在程序調(diào)試的時(shí)候,需要的是發(fā)現(xiàn)問(wèn)題的細(xì)心和耐心,程序問(wèn)題才能夠一一解決。數(shù)電課程設(shè)計(jì)過(guò)程充滿挑戰(zhàn),既有有趣的地方,又有困難的讓人想要放棄的地方。每當(dāng)想到一個(gè)新方法,就想去用它,驗(yàn)證它,有時(shí)睡在

19、床上想著,想出一些解決方案,于是跳下床,到電腦前操作,這也許就是它的魅力,每一個(gè)困難都讓人躍躍欲試下想要克服它。在每一個(gè)問(wèn)題解決的背后需要一顆有耐心的心和思考的大腦。在不斷發(fā)現(xiàn)問(wèn)題和解決問(wèn)題的過(guò)程中,收獲的不僅僅是知識(shí),更是一種主動(dòng)的態(tài)度。學(xué)習(xí)是一種態(tài)度。我覺(jué)得我很享受做課程設(shè)計(jì)的過(guò)程,它讓我經(jīng)歷了柳暗花明的喜悅,讓我在這個(gè)過(guò)程中的到很多的滿足感。2 致謝衷心感謝老師在實(shí)驗(yàn)過(guò)程中的諄諄教導(dǎo),通過(guò)實(shí)驗(yàn),我更加鞏固10了課堂上的知識(shí),也感謝學(xué)校安排了這次數(shù)電設(shè)計(jì),讓我有了這次不同以往的經(jīng)歷,增加了我實(shí)踐的機(jī)會(huì)。 附錄附錄 1:參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn) 1閻石.數(shù)學(xué)電子技術(shù)基礎(chǔ).北京:高等教

20、育出版社2夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程.北京.北京航空航天大學(xué)出版社3 魏家明.Verilog 編程藝術(shù).電子工業(yè)出版社附錄附錄 2:部分采用:部分采用 verilog 語(yǔ)言編寫的模塊的原程序語(yǔ)言編寫的模塊的原程序 掃描模塊程序/*時(shí)鐘 CLK 管腳:PIN_18 *鍵盤 col 輸入管腳:PIN_8,PIN_7,PIN_6,PIN_5 *鍵盤 row 輸出管腳:PIN_14,PIN_13,PIN_12,PIN_11 *實(shí)驗(yàn)結(jié)果:按鍵每個(gè)數(shù)字對(duì)應(yīng)亮燈數(shù),其它按鍵對(duì)應(yīng)不同結(jié)果 */module juzhen(clk,incol,outrow,key_value,key_flag,ke

21、y_flag1);input clk; /定義時(shí)鐘引腳input3:0incol; /定義橫向數(shù)據(jù)輸入output3:0outrow; /定義縱向數(shù)據(jù)輸出 output4:0key_value; /定義識(shí)別的按鍵值11output key_flag,key_flag1; /定義按鍵標(biāo)志,flag 表示一個(gè)flag/flag2 表示兩個(gè)按鍵 reg 3:0row;reg3:0incol_reg ; /寄存掃描行值reg3:0 outrow_reg; /寄存掃描列值reg2:0state; /狀態(tài)標(biāo)志reg key_flag,key_flag1; /按鍵標(biāo)志位reg 4:0 key_value;

22、/讀取的狀態(tài)值reg 3:0incol_1,incol_2,incol_3,incol_4;reg state1,state2,state3,state4;reg 3:0 statez;/總的按鍵標(biāo)志always(posedge clk)begincase(state)0:begin row=4b0000; key_flag=1b0;key_flag1=1b0; if(incol!=4b1111)begin state=1;row=4b1110;endelse state=0;end1:beginif(incol!=4b1111)beginincol_1=incol;state1=1b1;st

23、ate=2;row=4b1101;endelsebeginstate=2;row=4b1101;state1=1b0;end12end2:beginif(incol!=4b1111)beginincol_2=incol;state2=1b1;state=3;row=4b1011;endelsebeginstate=3;row=4b1011;state2=1b0;endend3:beginif(incol!=4b1111)beginincol_3=incol;state3=1b1;state=4;row=4b0111;endelsebeginstate=4;row=4b0111;state3=1

24、b0;endend4:beginif(incol!=4b1111)beginincol_4=incol;state4=1b1;state=5;endelse begin state=5;state4=1b0;end end 5:begin13statez=state4,state3,state2,state1;case(statez)4b1000:begin incol_reg=incol_4;outrow_reg=4b0111;case(incol_4)4b1110:key_flag=1b1;4b1101:key_flag=1b1;4b1011:key_flag=1b1;4b0111:key

25、_flag=1b1;4b0011:key_flag1=1b1;4b1100:key_flag1=1b1;4b1001:key_flag1=1b1;4b0101:key_flag1=1b1;4b1010:key_flag1=1b1;4b0110:key_flag1=1b1;default:key_flag=1b0;endcaseend4b0100:begin incol_reg=incol_3;outrow_reg=4b1011;case(incol_3)4b1110:key_flag=1b1;4b1101:key_flag=1b1;4b1011:key_flag=1b1;4b0111:key_

26、flag=1b1;4b0011:key_flag1=1b1;4b1100:key_flag1=1b1;4b1001:key_flag1=1b1;4b0101:key_flag1=1b1;4b1010:key_flag1=1b1;4b0110:key_flag1=1b1;default:key_flag=1b0;endcaseend144b0010:begin incol_reg=incol_2;outrow_reg=4b1101;case(incol_2)4b1110:key_flag=1b1;4b1101:key_flag=1b1;4b1011:key_flag=1b1;4b0111:key

27、_flag=1b1;4b0011:key_flag1=1b1;4b1100:key_flag1=1b1;4b1001:key_flag1=1b1;4b0101:key_flag1=1b1;4b1010:key_flag1=1b1;4b0110:key_flag1=1b1;endcaseend4b0001:begin incol_reg=incol_1;outrow_reg=4b1110;case(incol_1)4b1110:key_flag=1b1;4b1101:key_flag=1b1;4b1011:key_flag=1b1;4b0111:key_flag=1b1;4b0011:key_f

28、lag1=1b1;4b1100:key_flag1=1b1;4b1001:key_flag1=1b1;4b0101:key_flag1=1b1;4b1010:key_flag1=1b1;4b0110:key_flag1=1b1;default:key_flag=1b0;endcaseenddefault:begin incol_reg=4b0000;outrow_reg=4b0000;key_flag1=1b1;endendcase state=0;end15endcaseendalways(clk or outrow_reg or incol_reg)begincase(outrow_reg

29、,incol_reg)8b1110_1110:begin key_value=5b00000;end8b1101_1110:begin key_value=5b00001;end8b1011_1110:begin key_value=5b00010;end8b0111_1110:begin key_value=5b00011;end8b1110_1101:begin key_value=5b00100;end8b1101_1101:begin key_value=5b00101;end8b1011_1101:begin key_value=5b00110;end8b0111_1101:begi

30、n key_value=5b00111;end8b1110_1011:begin key_value=5b01000;end8b1101_1011:begin key_value=5b01001;end8b1011_1011:begin key_value=5b01010;end8b0111_1011:begin key_value=5b01011;end8b1110_0111:begin key_value=5b01100;end8b1101_0111:begin key_value=5b01101;end8b1011_0111:begin key_value=5b01110;end8b0111_0111:begin key_value=5b01111;enddefault:begin key_value=5b10000;endendcaseendassign outrow=row;endmodule譯碼模塊程序:module yima(key_value,led1,led2);input 4:0 key_value;reg7:0led_reg1,led_reg2;output7:0led1; output7:0led2;always(key_value)begin 16case(key_value)5b00000:begin led_reg1=8b001111

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論