


版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 區(qū)塊鏈技術(shù)在數(shù)字版權(quán)保護(hù)中的應(yīng)用指南
- 基礎(chǔ)設(shè)施建設(shè)項(xiàng)目可研報(bào)告
- 云倉項(xiàng)目可行性研究報(bào)告
- 公司內(nèi)部規(guī)章制度培訓(xùn)教程
- 三基訓(xùn)練護(hù)理復(fù)習(xí)試題有答案
- 企業(yè)營銷自動(dòng)化技術(shù)應(yīng)用及效果評估報(bào)告
- 主管護(hù)師內(nèi)科護(hù)理練習(xí)測試卷(一)
- 規(guī)范辦公室管理規(guī)章制度手冊
- 三農(nóng)特色農(nóng)業(yè)發(fā)展策略研究
- 三農(nóng)電子商務(wù)平臺(tái)建設(shè)實(shí)施方案
- GB/T 14541-2017電廠用礦物渦輪機(jī)油維護(hù)管理導(dǎo)則
- GB 10133-2014食品安全國家標(biāo)準(zhǔn)水產(chǎn)調(diào)味品
- 講題比賽游戲中的必勝策略問題-(取棋子游戲)課件
- 旅游學(xué)概論李天元版復(fù)習(xí)總結(jié)
- 人教版八年級上歷史思維導(dǎo)圖課件
- 重慶大學(xué)介紹課件
- 江蘇省南京市2020年中考英語試題
- 《電氣裝配車間生產(chǎn)工序流程卡》中英文對譯版
- 四年級下冊英語課件:Unit 4 There are seven days in a week-Lesson 19人教精通版
- 加油站承重罐區(qū)安全風(fēng)險(xiǎn)及管理
- 拱涵計(jì)算書-6.0m-1m
評論
0/150
提交評論