




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、汕頭大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三4X4鍵盤掃描時(shí)序邏輯電路的VHDL模型實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、了解普通4X4鍵盤掃描的原理。掌握組合邏輯電路和時(shí)序邏輯電路的混和設(shè)計(jì)。進(jìn)一步加深七段碼管顯示過(guò)程的理解。二、硬件要求1、4X4鍵盤陣列。2、FPGA主芯片。3、可變時(shí)鐘源。4、七段碼顯示區(qū)。5、LED顯示模塊。三、實(shí)驗(yàn)原理本實(shí)驗(yàn)主要完成的實(shí)驗(yàn)是完成4X4鍵盤掃描的,然后獲取其鍵值,并對(duì)其進(jìn)行編碼,從而進(jìn)行按鍵的識(shí)別,并將相應(yīng)的按鍵值進(jìn)行顯示。鍵盤掃描的實(shí)現(xiàn)過(guò)程如下:對(duì)于4X4鍵盤,通常連接為4行、4歹U,因此要識(shí)別按鍵,只需要知道是哪一行和哪一列即可,為了完成這一識(shí)別過(guò)程,我們的思想是,首先固定輸出4行為高電平
2、,然后輸出4列為低電平,在讀入輸出的4行的值,通常高電平會(huì)被低電平拉低,如果讀入的4行均為高電平,那么肯定沒(méi)有按鍵按下,否則,如果讀入的4行有一位為低電平,那么對(duì)應(yīng)的該行肯定有一個(gè)按鍵按下,這樣便可以獲取到按鍵的行值。同理,獲取列值也是如此,先輸出4列為高電平,然后在輸出4行為低電平,再讀入列值,如果其中有哪一位為低電平,那么肯定對(duì)應(yīng)的那一列有按鍵按下。獲取到行值和列值以后,組合成一個(gè)8位的數(shù)據(jù),根據(jù)實(shí)現(xiàn)不同的編碼在對(duì)每個(gè)按鍵進(jìn)行匹配,找到鍵值后在7段碼管和LED顯示。四、實(shí)驗(yàn)內(nèi)容及步驟本實(shí)驗(yàn)內(nèi)容是完成4X4鍵盤的掃描,然后將正確的鍵值進(jìn)行顯示,實(shí)驗(yàn)步驟如下:1、編寫鍵盤掃描和顯示的VHDL代
3、碼。2、用MaxPlusII對(duì)其進(jìn)行編譯仿真。3、在仿真確定無(wú)誤后,選擇芯片ACEX1KEP1K30QC208。4、給芯片進(jìn)行管腳綁定,在此進(jìn)行編譯。5、根據(jù)自己綁定的管腳,在實(shí)驗(yàn)箱上對(duì)鍵盤接口、顯示接口和FPGA之間進(jìn)行正確連線。6、給目標(biāo)板下載代碼,在4X4鍵盤輸入鍵值,觀看實(shí)驗(yàn)結(jié)果。五、VHDL程序設(shè)計(jì)代碼及結(jié)果1、4X4鍵盤掃描源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;WHENWHEN0=ENTITYVhdl1ISPORT(CL
4、K_1K:INSTD_LOGIC;時(shí)鐘輸入1KHZCLK_40K:INSTD_LOGIC;-40KTimeClkKEY_LIE:INSTD_LOGIC_VECTOR(3DOWNTO0);-列輸入START:OUTSTD_LOGIC;-二-十進(jìn)制數(shù)據(jù)輸出標(biāo)志KEY_HANG:OUTSTD_LOGIC_VECTOR(3DOWNTO0);-行輸出DATA_P:OUTSTD_LOGIC_VECTOR(7DOWNTO0);-二-十進(jìn)制數(shù)輸出DISP_DATA:OUTSTD_LOGIC_VECTOR(6DOWNTO0);-數(shù)碼管顯示譯碼輸出DISP_SEL:OUTSTD_LOGIC_VECTOR(1dow
5、nto0);-數(shù)碼管顯示掃描輸出END;ARCHITECTURERTLOFVhdl1ISSIGNALINT:STD_LOGIC;-列與非信號(hào)SIGNALCLK_SEL:STD_LOGIC;-鍵值控制1khz的時(shí)鐘信號(hào)SIGNALSTART_REG:STD_LOGIC;-數(shù)據(jù)輸出標(biāo)志信號(hào)SIGNALDISP_SEL_REG:STD_LOGIC_VECTOR(1DOWNTO0);-數(shù)碼管顯示掃描信號(hào)SIGNALDATA_L,DATA_H:STD_LOGIC_VECTOR(3DOWNTO0);-二-十進(jìn)制低位、高位信號(hào)SIGNALDATA_TMP:STD_LOGIC_VECTOR(3DOWNTO0)
6、;-二-十進(jìn)制低位高位暫存信號(hào)SIGNALKEY_HANG_TMP:STD_LOGIC_VECTOR(3DOWNTO0);-行輸出信號(hào)SIGNALDISP_DATA_REG:STD_LOGIC_VECTOR(3DOWNTO0);-二-十進(jìn)制低位、高位暫存信號(hào)(數(shù)碼管用)SIGNALKEY_CODE:STD_LOGIC_VECTOR(7DOWNTO0);-行列相并信號(hào)SIGNALDATA_P_REG:STD_LOGIC_VECTOR(7DOWNTO0);-二-十進(jìn)制數(shù)信號(hào)BEGINKEY_CODE=KEY_HANG_TMP&KEY_LIE;-行、列相并DATA_P=DATA_P_REG;STAR
7、T=START_REG;KEY_HANG=KEY_HANG_TMP;DISP_SEL=DISP_SEL_REG;CLK_SEL=CLK_1KAND(NOTINT);-無(wú)鍵按下時(shí)有CLK-SEL時(shí)鐘信號(hào)輸出PROCESS(CLK_SEL,CLK_40K,INT)VARIABLESTATE:INTEGERRANGE0TO3;BEGINIFRISING_EDGE(CLK_40K)THEN-一個(gè)40K的脈沖上升沿到來(lái)輸入一次列狀態(tài)以判斷是否有按鍵按下INT=NOT(KEY_LIE(3)ANDKEY_LIE(2)ANDKEY_LIE(1)ANDKEY_LIE(0);ENDIF;IFRISING_EDGE
8、(CLK_SEL)THEN-一個(gè)1K的脈沖的上升沿到來(lái)輸出一個(gè)帶表行的狀態(tài)CASESTATEIS-變量表示狀態(tài)機(jī),4循環(huán)KEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPDATA_TMP再嵌套一個(gè)CASE語(yǔ)句CASEKEY_CODEIS-實(shí)現(xiàn)把像并數(shù)據(jù)譯碼十六進(jìn)制的1到FWHEN01110111=DATA_L=0001;-把1放入低四位DATA_HDATA_L=0010;DATA_HDATA_L=0011;DATA_HDATA_L=0100;DATA_HDATA_L=0101;DATA_HDATA_L=0110;DATA_HDATA_L=0111;
9、DATA_HDATA_L=1000;DATA_H-9鍵DATA_L=1001;DATA_H-0鍵DATA_L=0000;DATA_H-A鍵,實(shí)現(xiàn)步進(jìn)加一功能IFDATA_H=1001THENIFDATA_L=1001THENDATA_H=1001;DATA_L=1001;ELSEDATA_L=DATA_L+1;ENDIF;ELSIFDATA_L=1001THENDATA_L=0000;DATA_H=DATA_H+1;ELSEDATA_L=DATA_L+1;DATA_H-B鍵,實(shí)現(xiàn)步鍵加十IFDATA_H=1001THENDATA_H=1001;ELSEDATA_L=DATA_L;DATA_H-
10、C鍵,實(shí)現(xiàn)步進(jìn)減一IFDATA_L=0000ANDDATA_H=0000THENDATA_L=0000;DATA_H=0000;ELSIFDATA_L=0000THENDATA_L=1001;DATA_H=DATA_H-1;ELSEDATA_L=DATA_L-1;DATA_H-D鍵,實(shí)現(xiàn)步進(jìn)減十IFDATA_H=0000THENDATA_H=0000;ELSEDATA_L=DATA_L;DATA_H-E鍵,實(shí)現(xiàn)送數(shù)功能DATA_L=DATA_L;DATA_H=DATA_H;DATA_P_REG=DATA_H&DATA_L;START_REG-F鍵,實(shí)現(xiàn)清零功能DATA_L=0000;DATA_
11、H-不可缺少STATE:=2;ENDCASE;WHEN2=-狀態(tài)2實(shí)現(xiàn)去抖動(dòng)功能IFCOUNTER=31THEN-計(jì)數(shù)延時(shí)去抖COUNTER:=0;STATE:=3;ELSECOUNTER:=COUNTER+1;STATE:=2;ENDIF;WHEN3=-清除數(shù)據(jù)輸出標(biāo)志START_REGDISP_SEL_REG=10;-輸入10到數(shù)碼管顯示掃描信號(hào)DISP_DATA_REGDISP_SEL_REG=01;DISP_DATA_REGDISP_DATADISP_DATADISP_DATADISP_DATADISP_DATADISP_DATADISP_DATADISP_DATADISP_DATAD
12、ISP_DATADISP_DATA=0000000;ENDCASE;ENDIF;ENDPROCESS;END;2、實(shí)驗(yàn)現(xiàn)象(1)38譯碼器0*idAr|IZifSe、飛匕3E電由LU六、思考題1、總結(jié)FPGA是如何識(shí)別按鍵的?與單片機(jī)讀取鍵值有何不同?答:FPGA的所有I/O控制塊允許每個(gè)I/O引腳單獨(dú)配置為輸入口,不過(guò)這種配置是系統(tǒng)自動(dòng)完成的。當(dāng)該I/O口被設(shè)置為輸入口使用時(shí),該I/O控制模塊將直接是三態(tài)緩沖區(qū)的控制端接地,是得該I/O對(duì)外呈高阻狀態(tài),這樣該I/O引腳即可用作輸入引腳使用。正確配置并鎖定引腳后,一旦KEY1KEY8中有鍵輸入,即可在檢測(cè)到按鍵輸入的情況下,繼續(xù)判斷其鍵值并作出相應(yīng)的處理。FPGA管腳多,不用動(dòng)態(tài)掃描。但單片機(jī)需要給一個(gè)掃描2、比較4X4鍵盤與PS/2鍵盤接口用FPGA實(shí)現(xiàn)方法的異同點(diǎn)。答:4X4鍵盤僅僅是按行、列排列起來(lái)的矩陣開(kāi)關(guān),往往需要單獨(dú)設(shè)計(jì)并制作,通用性不強(qiáng)。當(dāng)需要較多的按鍵時(shí),則會(huì)占用較多的I/O端口,在軟件上則要進(jìn)行上電復(fù)位按鍵掃描及通信處理,而且還要加上按鍵
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水產(chǎn)養(yǎng)殖基地土地使用權(quán)合同
- 公司技術(shù)服務(wù)采購(gòu)合同
- 豪華酒店廚師服務(wù)合同
- 電子產(chǎn)品購(gòu)銷合同標(biāo)準(zhǔn)版
- 房地產(chǎn)投資專項(xiàng)法律服務(wù)合同
- (完整版)農(nóng)村土地租賃合同書
- 光學(xué)玻璃的紫外光固化涂層技術(shù)考核試卷
- 醫(yī)療用品行業(yè)服務(wù)平臺(tái)拓展考核試卷
- 搪瓷原材料市場(chǎng)動(dòng)態(tài)與價(jià)格趨勢(shì)考核試卷
- 數(shù)字出版物的長(zhǎng)期保存與數(shù)字遺產(chǎn)考核試卷
- GB/T 18913-2002船舶和航海技術(shù)航海氣象圖傳真接收機(jī)
- 高中教師先進(jìn)事跡材料范文六篇
- 烹飪專業(yè)英語(yǔ)課件
- 3d3s基本操作命令教程課件分析
- 人教版三年級(jí)語(yǔ)文下冊(cè)晨讀課件
- 傳染病防治法培訓(xùn)講義課件
- 河南大學(xué)版(2020)信息技術(shù)六年級(jí)下冊(cè)全冊(cè)教案
- 法律方法階梯實(shí)用版課件
- DB32T 4353-2022 房屋建筑和市政基礎(chǔ)設(shè)施工程檔案資料管理規(guī)程
- 白描課件講義整理
- 實(shí)驗(yàn) 探究彈簧彈力與形變量的關(guān)系2022-2023學(xué)年高一物理(人教版2019必修第一冊(cè))
評(píng)論
0/150
提交評(píng)論