湖南大学数电课程设计

数电课程设计实验报告 课题:竞赛抢答器

学院:电气与信息工程学院

姓名:

班级:电子信息工程1001班

目录

一、课程设计的要求及目的 ...................................................................................................... - 1 -

二、设计的功能要求 .................................................................................................................. - 2 -

三、设计思路框图 ...................................................................................................................... - 3 -

四、VHDL程序 ......................................................................................................................... - 4 -

1、键盘转按键模块 ............................................................................................................ - 4 -

2、显示模块 ........................................................................................................................ - 6 -

3、主模块 ............................................................................................................................ - 9 -

五、电路连接图 ........................................................................................................................ - 14 -

六、心得体会 ............................................................................................................................ - 14 -

一、课程设计的要求及目的

1.了解电子设计的具体流程和方法。

2. 掌握电子设计的基本要求,能够运用所学的知识解决生活中的一些问题。

3. 初步掌握VHDL语言编程,并设计出一个有意义的小型系统。

4. 掌握Altium Designer 6.9软件的应用,并且了解相关硬件的组成和功能。

5. 用EDA(Electronic Design Automation)或者原理图完成一个课题的设计,并达到相应的功能要求。

二、设计的功能要求

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

1、在1602LCD屏幕上显示所需组别及分数;

2、考虑到有选手犯规,在主持人未按下开始键但是已经有组别按下抢答键时会在屏幕显示该组别犯规(FG),并由主持人手动减分;

3、按下开始键后,有10s的时间供选手们抢答,如果30s后仍无人抢答,则蜂鸣器报警,并在屏幕上显示超时(CS);

4、每个组别设置的初始分数为0分,加分上限为9分;

5、能实现系统手动复位,复位后回到初始状态,并等待主持人按下开始键。

三、设计思路框图

四、VHDL程序

1、键盘转按键模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

entity PADTOKEY is

port (

CPIN,R,VALIDKEY :IN STD_LOGIC;

KEY :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

KEYOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);

CLK_1MHZ,RST: OUT STD_LOGIC

);

end entity ;

architecture JGT of PADTOKEY is

SIGNAL CTCP: INTEGER RANGE 0 TO 5;

SIGNAL CPO :STD_LOGIC:='0';

SIGNAL CTCPO :INTEGER RANGE 0 TO 4999;

TYPE STATES IS (S0,S1,S2);

SIGNAL S: STATES;

begin

PROCESS(CPIN)

BEGIN

IF CPIN='1' AND CPIN 'EVENT THEN

IF CTCP=5 THEN

CPO

ELSE

CTCP

END IF;

END IF;

END PROCESS;

PROCESS(CPO,R)

BEGIN

CLK_1MHZ

IF R='1' THEN

RST

ELSIF CPO='1' AND CPO 'EVENT THEN

IF CTCPO /= 4999 THEN

CTCPO

ELSE

CTCPO

CASE S IS

WHEN S0 =>RST

IF VALIDKEY='1' THEN

S

CASE KEY IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

ELSE

S

END IF;

WHEN S1=>RST

WHEN S2=>RST

WHEN OTHERS=> NULL;

END CASE;

END IF;

END IF;

END PROCESS;

end architecture JGT;

此模块使用状态机将键盘的16个按键转换为16个按键信号。

2、显示模块

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,TM :IN STD_LOGIC_VECTOR(7 DOWNTO 0); ZB : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

TESHU : IN STD_LOGIC_VECTOR(1 DOWNTO 0);

CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC;

DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

end entity ;

architecture JGT of QDQLCD is

TYPE STATES IS (S0,S1,S2,S3,S4);

SIGNAL S: STATES;

SIGNAL LCDPT : INTEGER RANGE 0 TO 27;

SIGNAL CPCT : INTEGER RANGE 0 TO 65535;

SIGNAL CP: STD_LOGIC;

--SIGNAL ASCEW,ASCSN : STD_LOGIC_VECTOR(7 DOWNTO 0);

begin

PROCESS(CPIN,R)

BEGIN

CLK

IF R='1' THEN

CPCT

ELSIF CPIN='1' AND CPIN 'EVENT THEN

IF CPCT=0 THEN

CPCT

ELSE

CPCT

END IF;

END IF;

END PROCESS; --·ÖƵΪ500USÖÜÆÚ

--Ö÷½ø³Ì£ºÄâ²ÉÓÃ500usʱÖÓ£¬¼´ÔÚ500usºóÍê³É״̬ת»»£¬ÐÞ¸ÄLCDPTÖ¸Õë --S0:³õʼ״̬,ÔÚR=1ʱ£¬´¦ÓÚS0״̬,LCDPT=0

-- Á÷³Ì£º Êä³örst=1, תS1

--S1:Êä³öRST=0;ÅжÏBUSY=0? :Y: LCDPT+1;LCDPTµ½¹Ì¶¨×îºó£¿::N: ->S2 -- ::Y: תS3

-- ;N; NULL

--S2:¸ø³öSTROBEÐźš£×ªS1

--S1,S2Íê³É³õʼ»¯¹Ì¶¨ÏÔʾµÄ¹¦ÄÜ

PROCESS(CP,R)

BEGIN

IF R='1' THEN

S

ELSIF CP='1' AND CP 'EVENT THEN

CASE S IS

WHEN S0=> S

WHEN S1=> RST

IF BUSY='0' THEN

LCDPT

IF LCDPT=7 THEN

S

ELSE

S

END IF;

END IF;

WHEN S2=> S

--S3~S4Íê³ÉɨÃèÏÔʾ¹¦ÄÜ

--S3:BUSY=0? :Y: LCDPTÑ-»·+1 £¬×ªS4

--S4:¸ø³öSTROBEÐźţ¬×ªS3

WHEN S3=> STROBE

IF BUSY='0' THEN

IF LCDPT=27 THEN

LCDPT

ELSE

LCDPT

END IF;

S

END IF;

WHEN S4=> STROBE

WHEN OTHERS=> NULL;

END CASE;

END IF;

END PROCESS;

--Ñ¡ÔñÊä³ö½ø³Ì(LCDPT)

--LCDPT=0,NULL

-- =1~6 ÏÔʾ ZB: TM: E 45H,5 W57H,6 S53H,9 N4EH,10

PROCESS(LCDPT)

BEGIN

CASE LCDPT IS

WHEN 0 => NULL;

WHEN 1=> DATA

--LCDPT=7~22 ÏÔʾFS1~FS8

--LCDPT=23~25 ÏÔʾZB/TM

WHEN 7=>DATA

WHEN 23=>DATA

WHEN

END CASE;

WHEN 27=>CASE TESHU IS

WHEN

END CASE;

WHEN OTHERS=> NULL;

END CASE;

END PROCESS;

end architecture JGT;

此模块采用状态机的方法在LCD上按格式显示抢答器的8个2位BCD码分数、抢答的组别、时间。

3、主模块

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity qdmain1 is

Port ( TESHU : out STD_LOGIC_VECTOR (1 downto 0);

CPIN : in STD_LOGIC;

KEYOUT : in STD_LOGIC_VECTOR (15 downto 0);

R : in STD_LOGIC;

FS1 : out STD_LOGIC_VECTOR (7 downto 0);

FS2 : out STD_LOGIC_VECTOR (7 downto 0);

FS3 : out STD_LOGIC_VECTOR (7 downto 0);

FS4 : out STD_LOGIC_VECTOR (7 downto 0);

FS5 : out STD_LOGIC_VECTOR (7 downto 0);

FS6 : out STD_LOGIC_VECTOR (7 downto 0);

FS7 : out STD_LOGIC_VECTOR (7 downto 0);

FS8 : out STD_LOGIC_VECTOR (7 downto 0);

TM : out STD_LOGIC_VECTOR (7 downto 0);

ZB : out STD_LOGIC_VECTOR (3 downto 0));

end qdmain1;

architecture Behavioral of qdmain1 is

SIGNAL KSKEY:STD_LOGIC:='0';

SIGNAL YIDA:STD_LOGIC:='0';

SIGNAL JIAFLAG,JIANFLAG:STD_LOGIC;

SIGNAL CPCT : INTEGER RANGE 0 TO 4999;

SIGNAL CP: STD_LOGIC;

SIGNAL CP1S : INTEGER RANGE 0 TO 999;

SIGNAL CPCNT: STD_LOGIC;

SIGNAL TM1 : STD_LOGIC_VECTOR (7 downto 0);

SIGNAL ZB1 : STD_LOGIC_VECTOR (3 downto 0);

-- SIGNAL F1,F2,F3,F4,F5,F6,F7,F8 : STD_LOGIC_VECTOR (7 downto 0);

SIGNAL Fk1,Fk2,Fk3,Fk4,Fk5,Fk6,Fk7,Fk8 : STD_LOGIC_VECTOR (7 downto 0); begin

TM

ZB

FS1

BEGIN

IF R='1' THEN

CPCT

ELSIF CPIN='1' AND CPIN 'EVENT THEN --20MHZ

IF CPCT=0 THEN --cp shi 500us;

CPCT

ELSE

CPCT

END IF;

END IF;

END PROCESS;

process(R,CP)

begin

IF R='1' THEN

CP1S

ELSIF CP='1' AND CP 'EVENT THEN

IF CP1S=999 THEN

CP1S

CPCNT

ELSE

CP1S

END IF;

END IF;

end process;

process(CPIN,CPCNT)

begin

IF CPIN='1' AND CPIN 'EVENT THEN

IF KEYOUT=

Fk1

YIDA

KSKEY

TM1

ZB1

TESHU

JIAFLAG

JIANFLAG

ELSE IF YIDA='0' THEN

CASE KEYOUT IS

WHEN

WHEN

--WHEN

END CASE;

IF KSKEY='1' THEN

IF CPCNT='1' AND CPCNT 'EVENT THEN

IF TM1/=

TM1

END IF;

END IF;

IF TM1=

TESHU

END IF;

END IF;

ELSE IF KSKEY='0' THEN

TESHU

IF KEYOUT=

IF JIANFLAG='1' THEN

CASE ZB1 IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

END IF;

END IF;

ELSE IF KEYOUT=

IF JIAFLAG='1' THEN

CASE ZB1 IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

END IF;

END IF;

END IF;

END IF;

END IF;

END IF;

end process;

end Behavioral;

ELSE

CPCT

END IF;

END IF;

END PROCESS;--对20MHZ脉冲分频为500US

PROCESS(CP,R)

BEGIN

IF R='1' THEN

CP1S

ELSIF CP='1' AND CP 'EVENT THEN

IF CP1S=0 THEN

CP1S

ELSE

CP1S

END IF;

END IF;

END PROCESS;--对20MHZ脉冲分频为1s

PROCESS(CPD,R)

BEGIN

IF (R='1') THEN

YH

ELSIF(CPD='1' AND CPD 'EVENT) THEN

IF STOP='0' THEN

IF (YL=

YL

IF (YH=

YH

ELSE

YH

END IF;

ELSE

YL

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(KSKEY,R)

BEGIN

IF R='1' THEN

TESHU

ELSIF KSKEY='1' AND YH&YL=

TESHU

ELSIF KSKEY='0'AND YIDA='1' THEN

TESHU

END IF;

END PROCESS;

TM

END ARCHITECTURE A;

此模块用于抢答的主体设计,即决定抢答器的功能。

五、电路连接图

六、心得体会

通过这次课程设计,我熟练掌握的用VHDL语言设计一个课题的完整步骤,从一开始什么都不会,到现在已经对这门语言有了一个比较好的掌握,感觉很有成就感,觉得学习计算机语言类的课程还是应该将它融入到实践当中去,这样才能掌握的更全面,也更牢固。

数电课程设计实验报告 课题:竞赛抢答器

学院:电气与信息工程学院

姓名:

班级:电子信息工程1001班

目录

一、课程设计的要求及目的 ...................................................................................................... - 1 -

二、设计的功能要求 .................................................................................................................. - 2 -

三、设计思路框图 ...................................................................................................................... - 3 -

四、VHDL程序 ......................................................................................................................... - 4 -

1、键盘转按键模块 ............................................................................................................ - 4 -

2、显示模块 ........................................................................................................................ - 6 -

3、主模块 ............................................................................................................................ - 9 -

五、电路连接图 ........................................................................................................................ - 14 -

六、心得体会 ............................................................................................................................ - 14 -

一、课程设计的要求及目的

1.了解电子设计的具体流程和方法。

2. 掌握电子设计的基本要求,能够运用所学的知识解决生活中的一些问题。

3. 初步掌握VHDL语言编程,并设计出一个有意义的小型系统。

4. 掌握Altium Designer 6.9软件的应用,并且了解相关硬件的组成和功能。

5. 用EDA(Electronic Design Automation)或者原理图完成一个课题的设计,并达到相应的功能要求。

二、设计的功能要求

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

1、在1602LCD屏幕上显示所需组别及分数;

2、考虑到有选手犯规,在主持人未按下开始键但是已经有组别按下抢答键时会在屏幕显示该组别犯规(FG),并由主持人手动减分;

3、按下开始键后,有10s的时间供选手们抢答,如果30s后仍无人抢答,则蜂鸣器报警,并在屏幕上显示超时(CS);

4、每个组别设置的初始分数为0分,加分上限为9分;

5、能实现系统手动复位,复位后回到初始状态,并等待主持人按下开始键。

三、设计思路框图

四、VHDL程序

1、键盘转按键模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

entity PADTOKEY is

port (

CPIN,R,VALIDKEY :IN STD_LOGIC;

KEY :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

KEYOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);

CLK_1MHZ,RST: OUT STD_LOGIC

);

end entity ;

architecture JGT of PADTOKEY is

SIGNAL CTCP: INTEGER RANGE 0 TO 5;

SIGNAL CPO :STD_LOGIC:='0';

SIGNAL CTCPO :INTEGER RANGE 0 TO 4999;

TYPE STATES IS (S0,S1,S2);

SIGNAL S: STATES;

begin

PROCESS(CPIN)

BEGIN

IF CPIN='1' AND CPIN 'EVENT THEN

IF CTCP=5 THEN

CPO

ELSE

CTCP

END IF;

END IF;

END PROCESS;

PROCESS(CPO,R)

BEGIN

CLK_1MHZ

IF R='1' THEN

RST

ELSIF CPO='1' AND CPO 'EVENT THEN

IF CTCPO /= 4999 THEN

CTCPO

ELSE

CTCPO

CASE S IS

WHEN S0 =>RST

IF VALIDKEY='1' THEN

S

CASE KEY IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

ELSE

S

END IF;

WHEN S1=>RST

WHEN S2=>RST

WHEN OTHERS=> NULL;

END CASE;

END IF;

END IF;

END PROCESS;

end architecture JGT;

此模块使用状态机将键盘的16个按键转换为16个按键信号。

2、显示模块

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,TM :IN STD_LOGIC_VECTOR(7 DOWNTO 0); ZB : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

TESHU : IN STD_LOGIC_VECTOR(1 DOWNTO 0);

CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC;

DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

end entity ;

architecture JGT of QDQLCD is

TYPE STATES IS (S0,S1,S2,S3,S4);

SIGNAL S: STATES;

SIGNAL LCDPT : INTEGER RANGE 0 TO 27;

SIGNAL CPCT : INTEGER RANGE 0 TO 65535;

SIGNAL CP: STD_LOGIC;

--SIGNAL ASCEW,ASCSN : STD_LOGIC_VECTOR(7 DOWNTO 0);

begin

PROCESS(CPIN,R)

BEGIN

CLK

IF R='1' THEN

CPCT

ELSIF CPIN='1' AND CPIN 'EVENT THEN

IF CPCT=0 THEN

CPCT

ELSE

CPCT

END IF;

END IF;

END PROCESS; --·ÖƵΪ500USÖÜÆÚ

--Ö÷½ø³Ì£ºÄâ²ÉÓÃ500usʱÖÓ£¬¼´ÔÚ500usºóÍê³É״̬ת»»£¬ÐÞ¸ÄLCDPTÖ¸Õë --S0:³õʼ״̬,ÔÚR=1ʱ£¬´¦ÓÚS0״̬,LCDPT=0

-- Á÷³Ì£º Êä³örst=1, תS1

--S1:Êä³öRST=0;ÅжÏBUSY=0? :Y: LCDPT+1;LCDPTµ½¹Ì¶¨×îºó£¿::N: ->S2 -- ::Y: תS3

-- ;N; NULL

--S2:¸ø³öSTROBEÐźš£×ªS1

--S1,S2Íê³É³õʼ»¯¹Ì¶¨ÏÔʾµÄ¹¦ÄÜ

PROCESS(CP,R)

BEGIN

IF R='1' THEN

S

ELSIF CP='1' AND CP 'EVENT THEN

CASE S IS

WHEN S0=> S

WHEN S1=> RST

IF BUSY='0' THEN

LCDPT

IF LCDPT=7 THEN

S

ELSE

S

END IF;

END IF;

WHEN S2=> S

--S3~S4Íê³ÉɨÃèÏÔʾ¹¦ÄÜ

--S3:BUSY=0? :Y: LCDPTÑ-»·+1 £¬×ªS4

--S4:¸ø³öSTROBEÐźţ¬×ªS3

WHEN S3=> STROBE

IF BUSY='0' THEN

IF LCDPT=27 THEN

LCDPT

ELSE

LCDPT

END IF;

S

END IF;

WHEN S4=> STROBE

WHEN OTHERS=> NULL;

END CASE;

END IF;

END PROCESS;

--Ñ¡ÔñÊä³ö½ø³Ì(LCDPT)

--LCDPT=0,NULL

-- =1~6 ÏÔʾ ZB: TM: E 45H,5 W57H,6 S53H,9 N4EH,10

PROCESS(LCDPT)

BEGIN

CASE LCDPT IS

WHEN 0 => NULL;

WHEN 1=> DATA

--LCDPT=7~22 ÏÔʾFS1~FS8

--LCDPT=23~25 ÏÔʾZB/TM

WHEN 7=>DATA

WHEN 23=>DATA

WHEN

END CASE;

WHEN 27=>CASE TESHU IS

WHEN

END CASE;

WHEN OTHERS=> NULL;

END CASE;

END PROCESS;

end architecture JGT;

此模块采用状态机的方法在LCD上按格式显示抢答器的8个2位BCD码分数、抢答的组别、时间。

3、主模块

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity qdmain1 is

Port ( TESHU : out STD_LOGIC_VECTOR (1 downto 0);

CPIN : in STD_LOGIC;

KEYOUT : in STD_LOGIC_VECTOR (15 downto 0);

R : in STD_LOGIC;

FS1 : out STD_LOGIC_VECTOR (7 downto 0);

FS2 : out STD_LOGIC_VECTOR (7 downto 0);

FS3 : out STD_LOGIC_VECTOR (7 downto 0);

FS4 : out STD_LOGIC_VECTOR (7 downto 0);

FS5 : out STD_LOGIC_VECTOR (7 downto 0);

FS6 : out STD_LOGIC_VECTOR (7 downto 0);

FS7 : out STD_LOGIC_VECTOR (7 downto 0);

FS8 : out STD_LOGIC_VECTOR (7 downto 0);

TM : out STD_LOGIC_VECTOR (7 downto 0);

ZB : out STD_LOGIC_VECTOR (3 downto 0));

end qdmain1;

architecture Behavioral of qdmain1 is

SIGNAL KSKEY:STD_LOGIC:='0';

SIGNAL YIDA:STD_LOGIC:='0';

SIGNAL JIAFLAG,JIANFLAG:STD_LOGIC;

SIGNAL CPCT : INTEGER RANGE 0 TO 4999;

SIGNAL CP: STD_LOGIC;

SIGNAL CP1S : INTEGER RANGE 0 TO 999;

SIGNAL CPCNT: STD_LOGIC;

SIGNAL TM1 : STD_LOGIC_VECTOR (7 downto 0);

SIGNAL ZB1 : STD_LOGIC_VECTOR (3 downto 0);

-- SIGNAL F1,F2,F3,F4,F5,F6,F7,F8 : STD_LOGIC_VECTOR (7 downto 0);

SIGNAL Fk1,Fk2,Fk3,Fk4,Fk5,Fk6,Fk7,Fk8 : STD_LOGIC_VECTOR (7 downto 0); begin

TM

ZB

FS1

BEGIN

IF R='1' THEN

CPCT

ELSIF CPIN='1' AND CPIN 'EVENT THEN --20MHZ

IF CPCT=0 THEN --cp shi 500us;

CPCT

ELSE

CPCT

END IF;

END IF;

END PROCESS;

process(R,CP)

begin

IF R='1' THEN

CP1S

ELSIF CP='1' AND CP 'EVENT THEN

IF CP1S=999 THEN

CP1S

CPCNT

ELSE

CP1S

END IF;

END IF;

end process;

process(CPIN,CPCNT)

begin

IF CPIN='1' AND CPIN 'EVENT THEN

IF KEYOUT=

Fk1

YIDA

KSKEY

TM1

ZB1

TESHU

JIAFLAG

JIANFLAG

ELSE IF YIDA='0' THEN

CASE KEYOUT IS

WHEN

WHEN

--WHEN

END CASE;

IF KSKEY='1' THEN

IF CPCNT='1' AND CPCNT 'EVENT THEN

IF TM1/=

TM1

END IF;

END IF;

IF TM1=

TESHU

END IF;

END IF;

ELSE IF KSKEY='0' THEN

TESHU

IF KEYOUT=

IF JIANFLAG='1' THEN

CASE ZB1 IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

END IF;

END IF;

ELSE IF KEYOUT=

IF JIAFLAG='1' THEN

CASE ZB1 IS

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN

WHEN OTHERS=>NULL;

END CASE;

END IF;

END IF;

END IF;

END IF;

END IF;

END IF;

end process;

end Behavioral;

ELSE

CPCT

END IF;

END IF;

END PROCESS;--对20MHZ脉冲分频为500US

PROCESS(CP,R)

BEGIN

IF R='1' THEN

CP1S

ELSIF CP='1' AND CP 'EVENT THEN

IF CP1S=0 THEN

CP1S

ELSE

CP1S

END IF;

END IF;

END PROCESS;--对20MHZ脉冲分频为1s

PROCESS(CPD,R)

BEGIN

IF (R='1') THEN

YH

ELSIF(CPD='1' AND CPD 'EVENT) THEN

IF STOP='0' THEN

IF (YL=

YL

IF (YH=

YH

ELSE

YH

END IF;

ELSE

YL

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(KSKEY,R)

BEGIN

IF R='1' THEN

TESHU

ELSIF KSKEY='1' AND YH&YL=

TESHU

ELSIF KSKEY='0'AND YIDA='1' THEN

TESHU

END IF;

END PROCESS;

TM

END ARCHITECTURE A;

此模块用于抢答的主体设计,即决定抢答器的功能。

五、电路连接图

六、心得体会

通过这次课程设计,我熟练掌握的用VHDL语言设计一个课题的完整步骤,从一开始什么都不会,到现在已经对这门语言有了一个比较好的掌握,感觉很有成就感,觉得学习计算机语言类的课程还是应该将它融入到实践当中去,这样才能掌握的更全面,也更牢固。


相关文章

  • 概预算课程设计 2
  • 塔里木大学课程设计 工程量清单计价法编制施工图预算 一.设计说明 本例为一单层砖混结构实习车间,建筑面积96.78m2,室内标高±0.00,室内外高差-0.15m. 1.基础工程 采用条形砖基础,M5水泥砂浆砌筑:独立柱基础为C20钢筋混凝 ...查看


  • 创新与创业类
  • 目录 <面向工业企业应用的创新方法> . ............................................... 2 <成功之道> .............................. ...查看


  • 建筑学专业主要课程简介
  • 建筑学专业主要课程简介 1D11995,1D12915 设计基础 1,2 学分:3.0,3.0 Basic of design 预修课程:素描.色彩 内容简介:<设计基础>是建筑设计专业所必修的一门重要的专业基础课程.目的是使学 ...查看


  • 大学英语课程体系的设计原则与实践 1
  • 第22卷第2期安徽工业大学学报(社会科学版) Vol. 22, No. 2 2005年3月Journal of Anhui University of T echnology (S ocial Sciences ) March , 2005 ...查看


  • 关于我国网络课程现状与问题的思考
  • 现代教育技术2001年第1期(总第34期)------论文编号1009-8097(2001)01-∞55川 关于我国网络课程现状与问题的思考 林君芬余胜泉 北京师范大学现代教育技术研究所北京100875 [摘要]随著网络教育在我国的蓬勃发展 ...查看


  • 盘点英国留学15个艺术类大学
  • 盘点英国留学15个艺术类大学 在英国,从事艺术文化工业的人是从事汽车工业的两倍.由此可见,培养艺术人才在英国高等教育中占有重要的地位.英国是第一个提出"创意产业"的国家,创意产业在英国已迅速成长为仅次于金融服务业的第二大 ...查看


  • 重大城市规划专业课程
  • 城市规划专业课程简介 画法几何 建筑制图 朱育万主编,<画法几何及土木工程制图>, 高等教育出版社, 2001年 参 考 书: 王桂梅主编,<土木建筑工程设计制图>,天津大学出版社 ,2002年 朱福熙主编,< ...查看


  • 关于环境艺术设计课程改革的思考
  • 关于环境艺术设计课程改革的思考 来源:考试吧(Exam8.com) 2010-3-23 10:08:52 [考试吧:中国教育培训第一门户] 论文大全 摘要:培养艺术设计创新人才与高校教学改革分不开,艺术设计创新人才的培养使命最终要靠本专业的 ...查看


  • 电子信息工程2
  • 子信息工程专业 04023001 高等数学 Advanced Mathematics [192-10-1.2] 内容提要:高等数学是高等学校理工科专业的一门必修的重要基础课.通过这门课程的学习,使学生系统地获得函数.极限.连续.一元函数微积 ...查看


  • 艺术设计学专业
  • 艺术设计学专业 知识和能力 1.掌握艺术设计学的基本理论和基本状况: 2.掌握艺术设计的历史与发展规律: 3.掌握艺术设作品的分析方法和评价原则: 4.具有进行艺术设计学研究与教学的基本能力: 5.了解国家相关经济.文化.艺术事业的方针.政 ...查看


热门内容