湖南大学数电课程设计培训讲学_第1页
湖南大学数电课程设计培训讲学_第2页
湖南大学数电课程设计培训讲学_第3页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数电课程设计实验报告课题:竞赛抢答器学院:电气与信息工程学院姓名:班级:电子信息工程1001班目录一、课程设计的要求及目的 -1-二、设计的功能要求 -2-三、设计思路框图-3 -四、VHDL程序-4-1、键盘转按键模块 -4 -2、显示模块-6 -3、主模块-9 -五、电路连接图-14-六、心得体会-14 -一、课程设计的要求及目的1. 了解电子设计的具体流程和方法。2. 掌握电子设计的基本要求,能够运用所学的知识解决生活中的一 些问题。3. 初步掌握VHDL语言编程,并设计出一个有意义的小型系统。4. 掌握Altium Designer 6.9软件的应用,并且了解相关硬件的组成和功能。5.

2、 用 EDA( Electronic Design Automation)或者原理图完成一个课题的设计,并达到相应的功能要求。二、设计的功能要求在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者, 通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一 抢答者。同时,还可以设置计分、犯规及奖惩记录等各种功能。本设 计利用EDA技术,可容纳8组参赛,每组设置一个按钮供参赛者抢答 使用。主持人按下开始按键后,10s倒计时开始,当一组抢答器按下 后,1602LCD显示抢答的组别。由于抢答器具有第一信号鉴别和锁存 功能使其余的组就抢答无效,抢答的组回答问题后由主持人进行加减 分,然后主持人

3、按复位键后继续进行抢答。1、在1602LCD屏幕上显示所需组别及分数;2、考虑到有选手犯规,在主持人未按下开始键但是已经有组别按下 抢答键时会在屏幕显示该组别犯规(FG,并由主持人手动减分;3、按下开始键后,有10s的时间供选手们抢答,如果30s后仍无人 抢答,则蜂鸣器报警,并在屏幕上显示超时(CS;4、每个组别设置的初始分数为0分,加分上限为9分;5、能实现系统手动复位,复位后回到初始状态,并等待主持人按下开始键。三、设计思路框图译码显示显示模块四、VHDL程序1、键盘转按键模块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;此模块使用状态机将键盘的16个按键转换为16个按键信号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;此模块采用状态机的方法在LCD上按格式显示抢答器的8个2位BCD码分数、抢答的组别、时间。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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论