湖南大學(xué)數(shù)電課程設(shè)計(jì)培訓(xùn)講學(xué)_第1頁
湖南大學(xué)數(shù)電課程設(shè)計(jì)培訓(xùn)講學(xué)_第2頁
湖南大學(xué)數(shù)電課程設(shè)計(jì)培訓(xùn)講學(xué)_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)電課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告課題:競賽搶答器學(xué)院:電氣與信息工程學(xué)院姓名:班級:電子信息工程1001班目錄一、課程設(shè)計(jì)的要求及目的 -1-二、設(shè)計(jì)的功能要求 -2-三、設(shè)計(jì)思路框圖-3 -四、VHDL程序-4-1、鍵盤轉(zhuǎn)按鍵模塊 -4 -2、顯示模塊-6 -3、主模塊-9 -五、電路連接圖-14-六、心得體會(huì)-14 -一、課程設(shè)計(jì)的要求及目的1. 了解電子設(shè)計(jì)的具體流程和方法。2. 掌握電子設(shè)計(jì)的基本要求,能夠運(yùn)用所學(xué)的知識(shí)解決生活中的一 些問題。3. 初步掌握VHDL語言編程,并設(shè)計(jì)出一個(gè)有意義的小型系統(tǒng)。4. 掌握Altium Designer 6.9軟件的應(yīng)用,并且了解相關(guān)硬件的組成和功能。5.

2、 用 EDA( Electronic Design Automation)或者原理圖完成一個(gè)課題的設(shè)計(jì),并達(dá)到相應(yīng)的功能要求。二、設(shè)計(jì)的功能要求在許多比賽活動(dòng)中,為了準(zhǔn)確、公正、直觀地判斷出第一搶答者, 通常設(shè)置一臺(tái)搶答器,通過數(shù)顯、燈光及音響等各種手段批示出第一 搶答者。同時(shí),還可以設(shè)置計(jì)分、犯規(guī)及獎(jiǎng)懲記錄等各種功能。本設(shè) 計(jì)利用EDA技術(shù),可容納8組參賽,每組設(shè)置一個(gè)按鈕供參賽者搶答 使用。主持人按下開始按鍵后,10s倒計(jì)時(shí)開始,當(dāng)一組搶答器按下 后,1602LCD顯示搶答的組別。由于搶答器具有第一信號鑒別和鎖存 功能使其余的組就搶答無效,搶答的組回答問題后由主持人進(jìn)行加減 分,然后主持人

3、按復(fù)位鍵后繼續(xù)進(jìn)行搶答。1、在1602LCD屏幕上顯示所需組別及分?jǐn)?shù);2、考慮到有選手犯規(guī),在主持人未按下開始鍵但是已經(jīng)有組別按下 搶答鍵時(shí)會(huì)在屏幕顯示該組別犯規(guī)(FG,并由主持人手動(dòng)減分;3、按下開始鍵后,有10s的時(shí)間供選手們搶答,如果30s后仍無人 搶答,則蜂鳴器報(bào)警,并在屏幕上顯示超時(shí)(CS;4、每個(gè)組別設(shè)置的初始分?jǐn)?shù)為0分,加分上限為9分;5、能實(shí)現(xiàn)系統(tǒng)手動(dòng)復(fù)位,復(fù)位后回到初始狀態(tài),并等待主持人按下開始鍵。三、設(shè)計(jì)思路框圖譯碼顯示顯示模塊四、VHDL程序1、鍵盤轉(zhuǎn)按鍵模塊LIBRARY IEEE ;USE IEEE . STD_LOGIC_1164 . ALL;USE IEEE .

4、STD_LOGIC_UNSIGNED . ALL ;USE IEEE . STD_LOGIC_ARITH . ALL ;entity PADTOKEY isport (CPIN , R, VALIDKEY : IN STD_LOGIC ;KEY : IN STD_LOGIC_VECTOR (3 DOWNTG0);KEYOUT: OUT STD_LOGIC_VECTOR (15 DOWNTGD);CLK_1MHZ, RST:OUT STD_LOGIC); end entity ;architectureJGT of PADTOKEY isSIGNAL CTCP: INTEGER RANGED T

5、O 5;SIGNAL CPO : STD_LOGIC :='D'SIGNAL CTCPO : INTEGER RANGE D TO 4999;TYPE STATES IS (SD,S1,S2);SIGNAL S: STATES;beginPROCESS CPIN )BEGINIF CPIN='1' AND CPIN ' EVENT THENIF CTCP=5 THENCPO<= NOT CPO; CTCP<=D;ELSECTCP<=CTCP+1;END IF ;END IF ;END PROCESSPROCESS CPO, R)BEGI

6、NCLK_1MHZv=CPQIF R='1' THENRST<='0:S<=S0; CTCPO<=0;ELSIF CPO='1'KEYOUT<= "0000000000000000"AND CPO ' EVENT THENTHENIF CTCPO/= 4999CTCPO<=CTCPC+1;ELSECTCPO<=0;CASE S ISWHENS0 => RST<='0'IF VALIDKEY ='1'S<=S1;CASE KEY ISWHEN

7、"0000"WHEN "0001"WHEN "0010"WHEN "0011"WHEN "0100"WHEN "0101"WHEN "0110"WHEN "0111"WHEN "1000"WHEN "1001"WHEN "1010"WHEN "1011"WHEN "1100"WHEN "1101"WHEN "

8、1110"WHEN "1111"THEN=> KEYOUT<= "0000000000000001"=> KEYOUT<= "0000000000000010"=> KEYOUT<= "0000000000000100"=> KEYOUT<= "0000000000001000"=> KEYOUT<= "0000000000010000"=> KEYOUT<= "00000000001

9、00000"=> KEYOUT<= "0000000001000000"=> KEYOUT<= "0000000010000000"=> KEYOUT<= "0000000100000000"=> KEYOUT<= "0000001000000000"WHEN OTHERS=>NULL;END CASE;ELSES<=S0; KEYOUT<= "0000000000000000"END IF ;WHENS1=> R

10、ST<='1'S<=S2;WHENS2=> RST<='0'S<=S0;WHEN OTHERS=> NULL;END CASE;END IF ;END IF ;END PROCESSend architectureJGT;此模塊使用狀態(tài)機(jī)將鍵盤的16個(gè)按鍵轉(zhuǎn)換為16個(gè)按鍵信號2、顯示模塊LIBRARY IEEE ;USE IEEE . STD_LOGIC_1164 . ALL;USE IEEE . STD_LOGIC_UNSIGNED . ALL ;entity QDQLCD isport ( CPIN , R, BUSY :

11、 IN STD_LOGIC ;FS1 , FS2 , FS3 , FS4, FS5 , FS6, FS7 , FS8 , TM : IN STD_LOGIC_VECTOR (7 DOWNTO0);ZB : IN STD_LOGIC_VECTOR (3 DOWNTGD);TESHU : IN STD_LOGIC_VECTOR (1 DOWNTO0);CLK, RST, STROBE, OUTLINE : OUT STD_LOGIC ;DATA : OUT STD_LOGIC_VECTOR (7 DOWNTO0);ADDR:OUT STD_LOGIC_VECTOR (3 DOWNTO0);end

12、entityarchitectureJGT of QDQLCD isTYPE STATES IS (S0,S1,S2,S3,S4);SIGNAL S: STATES;SIGNAL LCDPT : INTEGER RANGE0 TO 27;SIGNAL CPCT : INTEGER RANGE0 TO 65535;SIGNAL CP: STD_LOGIC ;-SIGNAL ASCEW,ASCSN : STD_LOGIC_VECTOR(7 DOWNTO 0);beginPROCESS CPIN , R)BEGINCLK<=CPIN ;IF R='1' THENCPCT<

13、=65535;ELSIF CPIN ='1' AND CPIN ' EVENT THENIF CPCT=O THENCPCT<=65535; CP<= NOT CP;ELSECPCT<=CPCT-1;END IF ;END IF ;END PROCESS - ? g ?a500US?u ?u-? -?3i£ o?a2eo ?500use± ?o£ ?' ?U500uso6ie 3eX,i ?Xa?£?DT?LCDPT?-S0:3? e?x'i ?,? u R=1e±£ ?

14、9; | ou S0X'i ?,LCDPT=0- d*3i£o e?3?rst=1, XaS1-S1: e ?3?RST=0;?D?BUSY=0? :Y: LCDPT+1;LCDP?1 i ?_X ?oo£ ?:N: ->S2-:Y:XaS3-;N; NULL-S2:?3?STROBED?o?戲 X aS1-S1,S2 e 3e3?e?_ 1 i ?_?e?g?i|? uPROCESS CP, R)BEGINIF R='1' THENS<=S0; LCDPT<=0; RST<='1'ELSIF CP='

15、1' AND CP ' EVENT THENCASE S ISWHENS0=> S<=S1; LCDPT<=0; RST<='1'WHENS1=> RST<='0' STROBE<='0'IF BUSY='0' THENLCDPT<= LCDPT+1;IF LCDPT=7 THENS<=S3;ELSES<=S2;END IF ;END IF ;WHENS2=> S<=S1; STROBE<='1'-S3S4 e 3e?e

16、?e ?1|? u-S3:BUSY=0? :Y: LCDPT?-? +1 £?XaS4-S4:?3?STROBED?o 甕?X aS3WHENS3=> STROBE<='0'IF BUSY='0' THENIF LCDPT=27 THENLCDPT<=7;ELSELCDPT<= LCDPT+1;END IF ;S<=S4;END IF ;WHENS4=> STR0BE<='1:S<=S3;WHEN OTHERS=> NULL;END CASE;END IF ;END PROCESS-? e

17、?3?31 (LCDPT)-LCDPT=O,NULL-=16 ? e? ZB: TM: E 45H,5 W57H,6 S53H,9 N4EH,10PROCESS LCDPT)BEGINCASE LCDPT ISWHENO => NULL;WHEN 仁DATA<="01011010"ADDR<="1001"OUTLINEv='1;-ZWHEN2=>DATA<="01000010"ADDR<="1010"OUTLINEV='1;-BWHEN3=>DATA<

18、="00111010"ADDR<="0100"OUTLINEV='1'-:WHEN4=>DATA<="01010100"ADDR<="0010"OUTLINEV='1'-TWHEN5=>DATA<="01001101"ADDR<="0011"OUTLINEV='1'-MWHEN6=>DATA<="00111010"ADDR<="1011&q

19、uot;OUTLINEV='1':-LCDPT=722 ?e ?FS1FS8-LCDPT=2325 ?e ?ZB/TMWHEN7=> 1DATAv="0011"& FS1(7DOWNTO4);ADDRv= "0000":OUTLINE v='0'WHEN8=> 1DATAv="0011"& FS1(3DOWNTO0);ADDRv="0001":OUTLINE v='0'WHEN9=> 1DATAv="0011"&a

20、mp; FS2(7DOWNTO4);ADDRv="0010":OUTLINE v='0'WHEN10=>DATAv="0011"& FS2 (3DOWNTO0);ADDRv="0011"OUTLINE v='0:WHEN11=>DATAv="0011"& FS3(7DOWNTC4);ADDRv="0100"OUTLINE v='0:WHEN12=>DATAv="0011"& FS3(3DOWNTO0);

21、ADDRv="0101"OUTLINE v='0:WHEN13=>DATAv="0011"& FS4(7DOWNTO4);ADDRv="0110"OUTLINE v='0:WHEN14=>DATAv="0011"& FS4 (3DOWNTO0);ADDRv="0111"OUTLINE v='0:WHEN15=>DATAv="0011"& FS5(7DOWNTO4);ADDRv="1000"O

22、UTLINE v='0:WHEN16=>DATAv="0011"& FS5(3DOWNTO0);ADDRv="1001"OUTLINE v='0:WHEN17=>DATAv="0011"& FS6(7DOWNTO4);ADDRv="1010"OUTLINE v='0:WHEN18=>DATAv="0011"& FS6(3DOWNTO0);ADDRv="1011"OUTLINE v='0:WHEN19=&

23、gt;DATAv="0011"& FS7(7DOWNTO4);ADDRv="1100"OUTLINE v='0:WHEN20=>DATAv="0011"& FS7(3DOWNTO0);ADDRv="1101"OUTLINE v='0:WHEN21=>DATAv="0011"& FS8 (7DOWNTO4);ADDRv="1110"OUTLINE v='0:WHEN22=>DATAv="0011&quo

24、t;& FS8 (3DOWNTO0);ADDRv="1111"OUTLINE v='0'WHEN23=>DATAv="0011"&TM(7DOWNTO4);ADDRv="0101"OUTLINEV='1'WHEN24=>DATAv="0011"&TM(3DOWNTO0);ADDRv="0110"OUTLINEV='1'WHEN25=>DATAv="0011"&ZB(3DOWNTO

25、0);ADDRv="1101"OUTLINEV='1'WHEN26=>CASE TESHU ISWHEN "01"=>DATA<="01000110"ADDR<= "1110"OUTLINE v='1;-FWHEN "10"=>DATA<="01000011"ADDR<= "1110"OUTLINE v='1;-CWHEN OTHERS=> NULL;END CASE;WHEN

26、27=> CASE TESHUISWHEN "01"=>DATA<="01000111"ADDR<= "1111"OUTLINE v='1;-GWHEN "10"=>DATA<="01010011"ADDR<= "1111"OUTLINE v='1;-SWHENOTHERS=> NULL;END CASE;WHEN OTHERS=> NULL;END CASE;END PROCESSend architec

27、tureJGT;此模塊采用狀態(tài)機(jī)的方法在LCD上按格式顯示搶答器的8個(gè)2位BCD碼分?jǐn)?shù)、搶答的組別、時(shí)間。3、主模塊libraryIEEE ;useIEEE . STD_LOGIC_1164 .ALL;useIEEE . STD_LOGIC_ARITH.ALL;useIEEE . STDLOGICUNSIGNED . ALL- Uncomment the following library declaration if instantiating - any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponen

28、ts.all;entity qdmain1 isPort ( TESHU : out STD_LOGIC_VECTOR (1 downto 0);CPIN : in STD_LOGIC;KEYOUT : inSTD_LOGIC_VECTOR (15 downto 0);R :in STD_LOGIC ;FS1 :outSTD_.LOGIC._VECTOR(7downto0);FS2 :outSTD_.LOGIC._VECTOR(7downto0);FS3 :outSTD_.LOGIC._VECTOR(7downto0);FS4 :outSTD_.LOGIC._VECTOR(7downto0);

29、FS5 :outSTD_.LOGIC._VECTOR(7downto0);FS6 :outSTD_.LOGIC._VECTOR(7downto0);FS7 :outSTD_.LOGIC._VECTOR(7downto0);FS8 :outSTD_LOGIC_VECTOR (7downto0);TM :outSTD_LOGIC_VECTOR (7downto0);ZB :outSTD_LOGIC_VECTOR (3downto0);end qdmainlarchitectureBehavioral of qdmainl isSIGNAL KSKEY: STD_LOGIC :='0'

30、;SIGNALYIDA : STD_LOGIC :='0'SIGNALJIAFLAG,JIANFLAG : STD_LOGIC ;SIGNALCPCT :INTEGER RANGE0TO 4999;SIGNALCP: STD_LOGIC ;SIGNALCP1S :INTEGER RANGE0TO 999;SIGNALCPCNT:STD_LOGIC ;SIGNALTM1 :STD_LOGIC_VECTOR (7 downto 0);SIGNALZB1 :STD_LOGIC_VECTOR(3 downto 0);-SIGNAL F1,F2,F3,F4,F5,F6,F7,F8 : S

31、TD_LOGIC_VECTOR (7 downto 0);SIGNAL Fk1 , Fk2 , Fk3 , Fk4 , Fk5 , Fk6 , Fk7 , Fk8 : STD_LOGIC_VECTOR (7 downto 0);beginTM<= TM1;ZB<=ZB1;FS1 <=Fk1 ; FS2<=Fk2 ; FS3<=Fk3 ; FS4<=Fk4 ; FS5<=Fk5 ; FS6<=Fk6 ; FS7<=Fk7 ; FS8<=Fk8 ; process ( R, CPIN )BEGINIF R='1' THEN

32、CPCT<=4999;ELSIF CPIN='1' AND CPIN ' EVENT THEN-20MHZIF CPCT=0 THEN-cp shi 500us;CPCT<=4999; CP<=NOT CP;ELSECPCT<=CPCT-1;END IF ;END IF ;END PROCESSprocess ( R, CP)beginIF R='1' THENCP1S<=0;ELSIF CP='1' AND CP ' EVENT THENIF CP1S=999 THENCP1S<=0;CPCN

33、T<=NOT CPCNT;-CPCNT shi 1s;ELSECP1S<=CP1S+1;END IF ;END IF ;end process ;process ( CPIN , CPCNT)beginIF CPIN='1' AND CPIN ' EVENT THENFk1 <= "00000000" Fk2 <="00000000" Fk3 <="00000000" Fk4 <="00000000"Fk5 <="00000000"

34、; Fk6 <= "00000000" Fk7 <= "00000000" Fk8 <= "00000000"ELSIF R='1' THENYIDA v='0;KSKEY<='0'TM1<= "00001001"ZB1<= "0000"TESHU<="00"JIAFLAG <='1'JIANFLAG v='1;ELSE IF YIDA ='0' T

35、HENCASE KEYOUT IS=>KSKEY<='1'-0 SHI KAISHI JIANWHEN "0000000000000001"=>YIDA <='1'ZB1 <= "0001"-Fk1<=Fk1+1;WHEN "0000000000000010"=>YIDA <='1'ZB1 <= "0010"-Fk2<="00000011"WHEN "00000000000001

36、00"=>YIDA <='1'ZB1 <= "0011"-Fk3<="00000011"WHEN "0000000000010000"=>YIDA <='1'ZB1 <= "0100"-Fk4<="00000011"WHEN "0000000000100000"=>YIDA <='1'ZB1 <= "0101"-Fk5<=&qu

37、ot;00000011"WHEN "0000000001000000"=>YIDA <='1'ZB1 <= "0110"-Fk6<="00000011"WHEN "0000000100000000"=>YIDA <='1'ZB1 <= "0111"-Fk7<="00000011"WHEN "0000001000000000"=>YIDA <='1&

38、#39;ZB1 <= "1000"-Fk8<="00000011"-WHEN "0000001000000000"=>YIDAv='0'KSKEY<='0'-9 qinglingjianWHEN OTHERS=>NULL;END CASE;IF KSKEY='1' THENIF CPCNT='1' AND CPCNT ' EVENT THENIF TM1/= "00000000" THENTM1<=TM1-1

39、;END IF ;END IF ;IF TM1="00000000" THENTESHU<="10" ; -chao shiEND IF ;END IF ;ELSE IF KSKEY='0' THENTESHU<="01" ;-fan guiIF JIANFLAG='1'THENCASE ZB1ISWHEN "0001"=>Fk1<=Fk1 -1;JIANFLAG<='0'WHEN "0010"=>Fk2<

40、=Fk2 -1;JIANFLAG<='0'WHEN "0011"=>Fk3<=Fk3 -1;JIANFLAG<='0'WHEN "0100"=>Fk4v=Fk4 -1;JIANFLAG<='0'WHEN "0101"=>Fk5v=Fk5 -1;JIANFLAG<='0'WHEN "0110"=>Fk6v=Fk6 -1;JIANFLAG<='0'WHEN "0111&q

41、uot;=>Fk7<=Fk7 -1;JIANFLAG<='0'WHEN "1000"=>Fk8<=Fk8 -1;JIANFLAG<='0'WHEN OTHERS=>NULL;END CASE;END IF ;END IF ;IF JIAFLAG ='1' THENCASE ZB1 ISWHEN "0001"=>Fk1 <=Fk1 +1; JIAFLAG <='0'WHEN "0010"=>Fk2 <=

42、Fk2 +1; JIAFLAG <='0'WHEN "0011"=>Fk3 <=Fk3 +1; JIAFLAG <='0'WHEN "0100"=>Fk4 <=Fk4 +1; JIAFLAG <='0'WHEN "0101"=>Fk5 <=Fk5 +1; JIAFLAG <='0'WHEN "0110"=>Fk6 <=Fk6 +1; JIAFLAG <='0'WHEN "0111"=

溫馨提示

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

評論

0/150

提交評論