數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計

上傳人:good****022 文檔編號:116636524 上傳時間:2022-07-06 格式:DOC 頁數(shù):28 大?。?43.50KB
收藏 版權(quán)申訴 舉報 下載
數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計_第1頁
第1頁 / 共28頁
數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計_第2頁
第2頁 / 共28頁
數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計_第3頁
第3頁 / 共28頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《數(shù)字電路課程設(shè)計:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)的設(shè)計(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、數(shù)字電路課程設(shè)計項目名稱:基于FPGA和VHDL語言的智能搶答器控制系統(tǒng)設(shè)計設(shè)計者:劉偉謙學(xué)號:20080711210同組成員:陳顯富 倪文斌設(shè)計時間:2010年12月(1)智能搶答器功能描述: 通過實驗平臺的鍵盤和LED顯示器來模擬實際場景中的搶答過程,所有功能在實驗平臺上都已模擬通過,其具體功能如下:1 根據(jù)設(shè)計要求設(shè)計8個搶答鍵、1個主持人開始搶答鍵、1個答題正確加分鍵、1個答題錯誤減分鍵、1個復(fù)位鍵。2 主持人開始搶答鍵按下后,系統(tǒng)可以鎖存最先按下?lián)尨疰I組的信息,并在LED上顯示。3 在答題完成后,主持人可以根據(jù)答題正確與否,進(jìn)行加減分操作,在LED上顯示分?jǐn)?shù)。4 可以在LED上顯示搶

2、答和答題時間。5 主持人按下開始搶答鍵前,若有搶答鍵被按下,則會在LED上顯示犯規(guī)組號,同時蜂鳴器發(fā)聲。6 實現(xiàn)系統(tǒng)總清零。7 具有一定擴展功能。(2)設(shè)計要求:1.分析設(shè)計任務(wù),擬定多種設(shè)計方案,根據(jù)當(dāng)時的制作條件,選定適合的方案繪制框圖和設(shè)計流程。2.設(shè)計各部分單元電路或編寫VHDL描述程序。3.對制作的電路進(jìn)行功能測試,分析各項技術(shù)指標(biāo);或?qū)υO(shè)計的電路進(jìn)行功能仿真,分析仿真波形。4.總結(jié)設(shè)計資料,但因包括原理電路、VHDL描述、仿真波形的設(shè)計報告,校驗并演示電路裝置。(3)程序說明1.搶答器主模塊程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE

3、 IEEE.STD_LOGIC_UNSIGNED.ALL;entity qdq isport(cpin,zx,rin,win,RET,over:in std_logic; FAIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); F1,F2,F3,F4,F5,F6,F7,F8:OUT STD_LOGIC_VECTOR( 7 DOWNTO 0); zhout:out std_logic_vector(3 downto 0); timeout:out std_logic_vector(7 downto 0); ledout:out std_logic_vector( 7 down

4、to 0); RST,feng:out std_logic; TH:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ROUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ZXOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );end qdq;以上為程序端口定義部分,注意看清端口類型,其作用會在下面程序中說明。architecture tran of qdq istype states is (s0,S1,s2,s3,s4,s5,S6,s7); signal s: states; -定義狀態(tài) signal xtzz: STD

5、_LOGIC_VECTOR(7 DOWNTO 0); signal cpct: integer range 0 to 10000000; signal cpct20:integer range 0 to 10000000; signal cp: STD_LOGIC; SIGNAL cp20: STD_LOGIC:=0; signal js0h: std_logic_vector(3 downto 0):=0000; SIGNAL JS0L:STD_LOGIC_VECTOR(3 DOWNTO 0):=1001; signal js2h: std_logic_vector (3 downto 0)

6、:=0001; SIGNAL JS2L:STD_LOGIC_VECTOR( 3 DOWNTO 0):= 1001; signal jsret0,Jsret2: std_logic; SIGNAL zhin:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL EN:STD_LOGic; signal CLR: STD_LOGIC ; SIGNAL DIR:STD_LOGIC; SIGNAL RCPPJ,RCP:STD_LOGIC; SIGNAL CPJJ:STD_LOGIC; SIGNAL FENJ:STD_LOGIC; SIGNAL F1H,F1L,F2H,F2L,F3H

7、,F3L,F4H,F4L,F5H,F5L,F6H,F6L,F7H,F7L,F8H,F8L: STD_LOGIC_VECTOR(3 DOWNTO 0); signal ledout1: std_logic_vector(7 downto 0); SIGNAL CPFENGM,CPFENGMF: STD_LOGIC; SIGNAL CPFENGM0: INTEGER RANGE 0 TO 100000; SIGNAL CPFM,CPFMF,CPEN: STD_LOGIC; SIGNAL CPFM0: INTEGER RANGE 0 TO 100000; SIGNAL ZDFP:STD_LOGIC_

8、VECTOR(2 DOWNTO 0);程序中間信號量定義部分,注意看清變量類型,具體作用會在下面程序中說明。 - - -begin dir=rin; feng=cpfm; LEDOUT=LEDOUT1;將輸入端口rin信號傳給dir,dir作為分?jǐn)?shù)加減的方向信號。將cpfm賦給輸出端口feng,feng為蜂鳴器的控制信號。Ledout1賦給輸出端口ledout,ledout為led燈控制信號。- PROCESS(CPIN,WIN,RIN) BEGIN IF RCPPJ=1 THEN CPJJ=0; ELSIF RISING_EDGE(CPIN) THEN CPJJ=WIN OR RIN; EN

9、D IF;END PROCESS;進(jìn)程1:獲取一個加減脈沖信號cpjj,給分?jǐn)?shù)加減提供脈沖,rcppj為此脈沖的復(fù)位信號,“1”有效。 -PROCESS(CPIN) BEGIN IF CPFENGMF=1 THEN CPFENGM=0; ELSIF rising_edge(cpin) then if CPFENGM0=4999 THEN CPFENGM0=0; CPFENGM= NOT CPFENGM; ELSE CPFENGM0=CPFENGM0+1; END IF; end if;END PROCESS;進(jìn)程2:獲取一個2khz的脈沖cpfengm,其中cpfengmf為此脈沖的復(fù)位信號,

10、“1”有效。PROCESS(CPFENGM) BEGIN IF CPFMF=1 THEN CPFM=0; ELSIF RISING_EDGE(CPFENGM) THEN IF CPEN=0 THEN IF CPFM0=ZDFP THEN CPFM0=0; CPFM=NOT CPFM; ELSE CPFM0=CPFM0+1; END IF; END IF;END IF; END PROCESS;進(jìn)程3:獲取一個動態(tài)分頻信號cpfm,具體的頻率和變量zdfp有關(guān),cpfmf為復(fù)位信號,“1”有效。 -process(cpin)begin If rising_edge(cpin) then if c

11、pct20=499999 then cp20=not cp20; cpct20=0; else cpct20=cpct20+1; end if;end if;end process;進(jìn)程4:獲取一個鍵盤掃描頻率cp20,cp20初值為“0”,頻率為20hz,此進(jìn)程為復(fù)位信號。 -process(cpin) begin IF CPIN=1 AND CPIN EVENT THEN IF CPCT=9999999 THEN CPCT=0; CP= NOT CP; ELSE CPCTzhinzhinzhinzhinzhinzhinzhinzhin zhin=0000; END CASE; END IF

12、; END PROCESS;進(jìn)程6:對每個組進(jìn)行編碼。Fain為輸入端口信號,此信號從鍵盤輸入,經(jīng)過鍵盤模塊后輸出只有一個高電平的8位2進(jìn)制碼,進(jìn)入主程序模塊后進(jìn)行編碼,分別賦給zhin,具體編碼如程序。-進(jìn)程7:此進(jìn)程為此模塊的主進(jìn)程。process(cp,OVER,ret) begin if ret=1 then xtzz=x00;RST=1; zhout=0000; CLR=1; FENJ=0; RCPPJ=1;RCP=0; CPFMF=1;CPFENGMF=1;復(fù)位操作:外部端口ret輸入復(fù)位信號“1”,題目對應(yīng)指針xtzz回零;rst輸出“1”提供給后面模塊復(fù)位;組號輸出端清零;cl

13、r為“1”,分?jǐn)?shù)復(fù)位;rxppj為“1”,cppj脈沖復(fù)位;cpfengm復(fù)位;cpfm復(fù)位;同時fenj和rcp賦“0”。 s CPEN=1; ledout1(0)= not ledout1(0); S ledout1(1)=not ledout1(1); RST=0; en=0;CLR=0;RCPPJ=0; TIMEOUT=X00; FENJ=0; js0h=0000;js0l=1001; js2h=0001;js2l=1001; CPEN=1; CPFMF=0; CPFENGMF=0; S ledout1(2)=not ledout1(2); if over=1 then s=s7; e

14、lsif zx=1 and zhin=0000 then s=s4; elsif zx=0 and zhin/=0000 then s=s3; elsif zx=0 and zhin=0000 then - s ledout1(3)=not ledout1(3); CPEN=0;ZDFP=000; IF XTZZ( 3 DOWNTO 0)=1001 THEN XTZZ( 3 DOWNTO 0) =0000; XTZZ( 7 DOWNTO 4)=XTZZ( 7 DOWNTO 4)+1; ELSE XTZZ( 3 DOWNTO 0 )=XTZZ( 3 DOWNTO 0)+1; END IF; s

15、ledout1(4)=not ledout1(4); TIMEOUT=JS0H&JS0L; if jsret0=1 then - js0h=0000;js0l=1001; elsif zhin/=0000 and js0l/=0000 then en=1; zhout=zhin; s=s5; elsif js0l=0000 and js0h=0000 then js0l=1001;js0h=0000; IF XTZZ( 3 DOWNTO 0)=1001 THEN XTZZ( 3 DOWNTO 0) =0000; XTZZ( 7 DOWNTO 4)=XTZZ( 7 DOWNTO 4)+1; EL

16、SE XTZZ( 3 DOWNTO 0 )=XTZZ( 3 DOWNTO 0)+1; END IF; CPEN=0;ZDFP=010 ; s=s1; ELSE JS0L ledout1(5)=not ledout1(5); timeout=js2h&js2l; FENJ=1; if jsret2=1 then js2h=0001;js2l=1001; elsif (js2h/=0000 OR js2l/=0000) AND (RIN=1 OR WIN=1) then ZHOUT=0000; IF XTZZ( 3 DOWNTO 0) = 1001 THEN XTZZ( 3 DOWNTO 0)=

17、0000; XTZZ( 7 DOWNTO 4)=XTZZ( 7 DOWNTO 4)+1; ELSE XTZZ( 3 DOWNTO 0 )=XTZZ( 3 DOWNTO 0)+1; END IF; S=S1; elsif js2h=0000 and js2l=0000 then js2h=0001; js2l=1001; S=S6; else IF JS2L=0000 THEN JS2L=1001; IF JS2H=0000 THEN JS2H=0001; ELSE JS2H=JS2H-1; END IF; ELSE js2l ledout1(6)=not ledout1(6); CPEN=0;

18、ZDFP=100; ZHOUT=0000; IF XTZZ( 3 DOWNTO 0)=1001 THEN XTZZ( 3 DOWNTO 0) =0000; XTZZ( 7 DOWNTO 4)=XTZZ( 7 DOWNTO 4)+1; ELSE XTZZ( 3 DOWNTO 0 )=XTZZ( 3 DOWNTO 0)+1; END IF; s CPEN=0;ZDFP=111; ledout1(7)=not ledout1(7); Ss=s0; END CASE; end if; end process ;其它狀態(tài),此進(jìn)程結(jié)束。 -進(jìn)程8:此進(jìn)程主要作用是為各組計分。 PROCESS(CLR,CP

19、JJ,DIR,zhin) BEGIN IF CLR=1 THEN F1H=0011;F1L=0000; F2H=0011;F2L=0000; F3H=0011;F3L=0000; F4H=0011;F4L=0000; F5H=0011;F5L=0000; F6H=0011;F6L=0000; F7H=0011;F7L=0000; F8H=0011;F8L IF F1L=1001 THEN F1L=0000; F1H=F1H+1; ELSE F1L IF F2L=1001 THEN F2L=0000; F2H=F2H+1; ELSE F2L IF F3L=1001 THEN F3L=0000;

20、F3H=F3H+1; ELSE F3L IF F4L=1001 THEN F4L=0000; F4H=F4H+1; ELSE F4L IF F5L=1001 THEN F5L=0000; F5H=F5H+1; ELSE F5L IF F6L=1001 THEN F6L=0000; F6H=F6H+1; ELSE F6L IF F7L=1001 THEN F7L=0000; F7H=F7H+1; ELSE F7L IF F8L=1001 THEN F8L=0000; F8H=F8H+1; ELSE F8L NULL; END CASE;對每組而言,答對后加1分。 ELSE CASE ZHin I

21、S WHEN 0001 = IF F1L=0000 THEN F1L=1001; F1H=F1H-1; ELSE F1L IF F2L=0000 THEN F2L=1001; F2H=F2H-1; ELSE F2L IF F3L=0000 THEN F3L=1001; F3H=F3H-1; ELSE F3L IF F4L=0000 THEN F4L=1001; F4H=F4H-1; ELSE F4L IF F5L=0000 THEN F5L=1001; F5H=F5H-1; ELSE F5L IF F6L=0000 THEN F6L=1001; F6H=F6H-1; ELSE F6L IF F

22、7L=0000 THEN F7L=1001; F7H=F7H-1; ELSE F7L IF F8L=0000 THEN F8L=1001; F8H=F8H-1; ELSE F8L NULL; END CASE; END IF; END IF; END IF;END PROCESS;進(jìn)程9:PROCESS(F1H,F1L,F2H,F2L,F3H,F3L,F4H,F4L,F5H,F5L,F6H,F6L,F7H,F7L,F7H,F8L,F8H) BEGIN F1=F1H&F1L; F2=F2H&F2L; F3=F3H&F3L; F4=F4H&F4L; F5=F5H&F5L; F6=F6H&F6L;

23、F7=F7H&F7L; F8=F8H&F8L; END PROCESS;將每組的分?jǐn)?shù)值賦給輸出端口,在lcd模塊中會轉(zhuǎn)換為相應(yīng)的ASC碼。-進(jìn)程10:PROCESS(RIN,WIN) BEGIN IF RIN=1 THEN ROUT=X52; ELSIF WIN=1 THEN ROUT=x57; else rout=x20; END IF; END PROCESS;答對則在lcd相應(yīng)的顯示區(qū)顯示字符R,答錯則顯示W(wǎng)。進(jìn)程11: PROCESS(XTZZ) BEGIN TH=XTZZ;END PROCESS;將題號輸出。進(jìn)程12: PROCESS(ZX) BEGIN IF ZX=1 THEN Z

24、XOUT=X53 ; ELSE ZXOUT=X20; END IF;END PROCESS;主持人按下開始搶答鍵后,在lcd的相應(yīng)顯示區(qū)顯示字符S。end tran;2搶答器鍵盤轉(zhuǎn)換模塊程序鍵盤按鍵如下?lián)尨疰I1搶答鍵2搶答鍵3搶答鍵4搶答鍵5搶答鍵6搶答鍵7搶答鍵8OVERRETRINWINZXLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity PADTOKEY is port (CPIN,R :IN STD_LOGIC; Y: OUT STD_LOGIC_VECTOR(15 DOWNT

25、O 0); ICOL : IN STD_LOGIC_VECTOR(3 DOWNTO 0); OROW : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END ENTITY;architecture JGT of PADTOKEY is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES; SIGNAL SROW : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CPCT : INTEGER RANGE 0 TO 255; SIGNAL CTDELAY: INTEGER RANGE 0 TO

26、511; SIGNAL CP:STD_LOGIC; BEGIN PROCESS(CPIN) BEGIN IF CPIN=1 AND CPIN EVENT THEN IF CPCT=255 THEN CPCT=0;CP= NOT CP; ELSE CPCT=CPCT+1; END IF; END IF; END PROCESS; PROCESS(CP,R) VARIABLE N:INTEGER RANGE 0 TO 12; BEGIN IF R=1 THEN S=S0;Y=0000000000000000;SROWSOROW=SROW;SSY(3 DOWNTO 0)Y(7 DOWNTO 4)Y(

27、11 DOWNTO 8)Y(15 DOWNTO 12)NULL; END CASE; WHEN S3=IF N=12 THEN N:=0;S=S4;CTDELAY=0;SROW=1110; ELSE N:=N+4;S=S1;SROWIF CTDELAY=511 THEN S=S1;CTDELAY=0; ELSE CTDELAY=CTDELAY+1; END IF; END CASE;END IF;END PROCESS;END JGT;3LED顯示模塊程序01234567891011121314150FS1FS2FS3FS4FS5FS6FS7FS81TM:ZB:RINTHZXIN1. LCD顯

28、示器中各位置的顯示內(nèi)容為表中所示。2. 各符號說明: a. FS1FS8為本模塊中輸入端口輸入的各組分?jǐn)?shù),為2位BCD碼。在本模塊中轉(zhuǎn)換后可以得到相應(yīng)的ASCII碼。 b. TM: ZB: 分別為時間提示和組號提示,是不變顯示,其后的顯示單元用來顯示時間,組號。 C. RIN 答題對錯提示區(qū) 若答題正確 則顯示字符R,若答題錯誤則顯示字符W。未答題時提示空(為空格鍵)。 d. TH 題號顯示區(qū),可顯示一個2位數(shù)。 e. ZXIN 搶答開始提示區(qū),若搶答開始,則顯示字符S,否則顯示空(為空格鍵)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity QDQLCD is port (CPIN,R,BUSY :IN STD_LOGIC; FS1,FS2,FS3,FS4,FS5,FS6,FS7,FS8

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!