版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、汕頭大學(xué)實驗報告實驗三4X4鍵盤掃描時序邏輯電路的VHDL模型實驗一、實驗?zāi)康?、了解普通4X4鍵盤掃描的原理。掌握組合邏輯電路和時序邏輯電路的混和設(shè)計。進一步加深七段碼管顯示過程的理解。二、硬件要求1、4X4鍵盤陣列。2、FPGA主芯片。3、可變時鐘源。4、七段碼顯示區(qū)。5、LED顯示模塊。三、實驗原理本實驗主要完成的實驗是完成4X4鍵盤掃描的,然后獲取其鍵值,并對其進行編碼,從而進行按鍵的識別,并將相應(yīng)的按鍵值進行顯示。鍵盤掃描的實現(xiàn)過程如下:對于4X4鍵盤,通常連接為4行、4歹U,因此要識別按鍵,只需要知道是哪一行和哪一列即可,為了完成這一識別過程,我們的思想是,首先固定輸出4行為高電平
2、,然后輸出4列為低電平,在讀入輸出的4行的值,通常高電平會被低電平拉低,如果讀入的4行均為高電平,那么肯定沒有按鍵按下,否則,如果讀入的4行有一位為低電平,那么對應(yīng)的該行肯定有一個按鍵按下,這樣便可以獲取到按鍵的行值。同理,獲取列值也是如此,先輸出4列為高電平,然后在輸出4行為低電平,再讀入列值,如果其中有哪一位為低電平,那么肯定對應(yīng)的那一列有按鍵按下。獲取到行值和列值以后,組合成一個8位的數(shù)據(jù),根據(jù)實現(xiàn)不同的編碼在對每個按鍵進行匹配,找到鍵值后在7段碼管和LED顯示。四、實驗內(nèi)容及步驟本實驗內(nèi)容是完成4X4鍵盤的掃描,然后將正確的鍵值進行顯示,實驗步驟如下:1、編寫鍵盤掃描和顯示的VHDL代
3、碼。2、用MaxPlusII對其進行編譯仿真。3、在仿真確定無誤后,選擇芯片ACEX1KEP1K30QC208。4、給芯片進行管腳綁定,在此進行編譯。5、根據(jù)自己綁定的管腳,在實驗箱上對鍵盤接口、顯示接口和FPGA之間進行正確連線。6、給目標(biāo)板下載代碼,在4X4鍵盤輸入鍵值,觀看實驗結(jié)果。五、VHDL程序設(shè)計代碼及結(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;時鐘輸入1KHZCLK_40K:INSTD_LOGIC;-40KTimeClkKEY_LIE:INSTD_LOGIC_VECTOR(3DOWNTO0);-列輸入START:OUTSTD_LOGIC;-二-十進制數(shù)據(jù)輸出標(biāo)志KEY_HANG:OUTSTD_LOGIC_VECTOR(3DOWNTO0);-行輸出DATA_P:OUTSTD_LOGIC_VECTOR(7DOWNTO0);-二-十進制數(shù)輸出DISP_DATA:OUTSTD_LOGIC_VECTOR(6DOWNTO0);-數(shù)碼管顯示譯碼輸出DISP_SEL:OUTSTD_LOGIC_VECTOR(1dow
5、nto0);-數(shù)碼管顯示掃描輸出END;ARCHITECTURERTLOFVhdl1ISSIGNALINT:STD_LOGIC;-列與非信號SIGNALCLK_SEL:STD_LOGIC;-鍵值控制1khz的時鐘信號SIGNALSTART_REG:STD_LOGIC;-數(shù)據(jù)輸出標(biāo)志信號SIGNALDISP_SEL_REG:STD_LOGIC_VECTOR(1DOWNTO0);-數(shù)碼管顯示掃描信號SIGNALDATA_L,DATA_H:STD_LOGIC_VECTOR(3DOWNTO0);-二-十進制低位、高位信號SIGNALDATA_TMP:STD_LOGIC_VECTOR(3DOWNTO0)
6、;-二-十進制低位高位暫存信號SIGNALKEY_HANG_TMP:STD_LOGIC_VECTOR(3DOWNTO0);-行輸出信號SIGNALDISP_DATA_REG:STD_LOGIC_VECTOR(3DOWNTO0);-二-十進制低位、高位暫存信號(數(shù)碼管用)SIGNALKEY_CODE:STD_LOGIC_VECTOR(7DOWNTO0);-行列相并信號SIGNALDATA_P_REG:STD_LOGIC_VECTOR(7DOWNTO0);-二-十進制數(shù)信號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);-無鍵按下時有CLK-SEL時鐘信號輸出PROCESS(CLK_SEL,CLK_40K,INT)VARIABLESTATE:INTEGERRANGE0TO3;BEGINIFRISING_EDGE(CLK_40K)THEN-一個40K的脈沖上升沿到來輸入一次列狀態(tài)以判斷是否有按鍵按下INT=NOT(KEY_LIE(3)ANDKEY_LIE(2)ANDKEY_LIE(1)ANDKEY_LIE(0);ENDIF;IFRISING_EDGE
8、(CLK_SEL)THEN-一個1K的脈沖的上升沿到來輸出一個帶表行的狀態(tài)CASESTATEIS-變量表示狀態(tài)機,4循環(huán)KEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPDATA_TMP再嵌套一個CASE語句CASEKEY_CODEIS-實現(xiàn)把像并數(shù)據(jù)譯碼十六進制的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鍵,實現(xià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鍵,實現(xiàn)步鍵加十IFDATA_H=1001THENDATA_H=1001;ELSEDATA_L=DATA_L;DATA_H-
10、C鍵,實現(xià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鍵,實現(xiàn)步進減十IFDATA_H=0000THENDATA_H=0000;ELSEDATA_L=DATA_L;DATA_H-E鍵,實現(xiàn)送數(shù)功能DATA_L=DATA_L;DATA_H=DATA_H;DATA_P_REG=DATA_H&DATA_L;START_REG-F鍵,實現(xiàn)清零功能DATA_L=0000;DATA_
11、H-不可缺少STATE:=2;ENDCASE;WHEN2=-狀態(tài)2實現(xiàn)去抖動功能IFCOUNTER=31THEN-計數(shù)延時去抖COUNTER:=0;STATE:=3;ELSECOUNTER:=COUNTER+1;STATE:=2;ENDIF;WHEN3=-清除數(shù)據(jù)輸出標(biāo)志START_REGDISP_SEL_REG=10;-輸入10到數(shù)碼管顯示掃描信號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、實驗現(xiàn)象(1)38譯碼器0*idAr|IZifSe、飛匕3E電由LU六、思考題1、總結(jié)FPGA是如何識別按鍵的?與單片機讀取鍵值有何不同?答:FPGA的所有I/O控制塊允許每個I/O引腳單獨配置為輸入口,不過這種配置是系統(tǒng)自動完成的。當(dāng)該I/O口被設(shè)置為輸入口使用時,該I/O控制模塊將直接是三態(tài)緩沖區(qū)的控制端接地,是得該I/O對外呈高阻狀態(tài),這樣該I/O引腳即可用作輸入引腳使用。正確配置并鎖定引腳后,一旦KEY1KEY8中有鍵輸入,即可在檢測到按鍵輸入的情況下,繼續(xù)判斷其鍵值并作出相應(yīng)的處理。FPGA管腳多,不用動態(tài)掃描。但單片機需要給一個掃描2、比較4X4鍵盤與PS/2鍵盤接口用FPGA實現(xiàn)方法的異同點。答:4X4鍵盤僅僅是按行、列排列起來的矩陣開關(guān),往往需要單獨設(shè)計并制作,通用性不強。當(dāng)需要較多的按鍵時,則會占用較多的I/O端口,在軟件上則要進行上電復(fù)位按鍵掃描及通信處理,而且還要加上按鍵
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)支付安全與風(fēng)險管理(標(biāo)準(zhǔn)版)
- 煙草專賣管理制度與實施指南
- 供應(yīng)商選擇與評估管理制度制度
- 公共交通車輛維修質(zhì)量管理制度
- 義翹講堂《Tau的結(jié)構(gòu)?修飾?致病:從基礎(chǔ)功能到神經(jīng)退行性疾病的診斷與治療突破》
- 2026年順德區(qū)環(huán)城小學(xué)招聘語文臨聘教師備考題庫參考答案詳解
- 2026年江蘇省東??h部分事業(yè)單位赴高校公開招聘高層次人才8人備考題庫及完整答案詳解一套
- 養(yǎng)老院日常照護制度
- 2026年西昌市房地產(chǎn)事務(wù)中心招聘2名工作人員備考題庫及參考答案詳解一套
- 天津市濱海新區(qū)2026年事業(yè)單位公開招聘工作人員備考題庫及參考答案詳解一套
- 溫嶺市恩力天金屬表面處理有限公司年處理10萬噸磷化金屬表面技改項目環(huán)評報告
- 職務(wù)侵占罪法律培訓(xùn)
- 【2025版】人教版(PEP)三年級下冊英語教學(xué)工作計劃(及進度表)
- 勞動仲裁申請書電子版模板
- JJF 1183-2025 溫度變送器校準(zhǔn)規(guī)范
- 2024“五史”全文課件
- 家用燃?xì)庠罱Y(jié)構(gòu)、工作原理、配件介紹、常見故障處理
- 人教版七年級數(shù)學(xué)上冊期末試題及參考答案(偏難)
- ZD(J)9-型電動轉(zhuǎn)轍機
- 關(guān)節(jié)攣縮的治療及預(yù)防
- 2024能源企業(yè)可持續(xù)發(fā)展(ESG)披露指標(biāo)體系和評價導(dǎo)則
評論
0/150
提交評論