数字竞赛抢答器Word文档下载推荐.docx
- 文档编号:19298014
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:24
- 大小:121.28KB
数字竞赛抢答器Word文档下载推荐.docx
《数字竞赛抢答器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字竞赛抢答器Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
在实验装置上进行硬件测试,对VHDL语言程序进行必要的修正,并进行演示
教研室
意见
年月日
系(部)主管领导意见
长沙学院课程设计鉴定表
姓名
卢玉芳
学号
2009042124
专业
电气工程及其自动化
班级
一班
设计题目
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
一.总体设计思想………………………………5
二.设计步骤和调试过程……………………………5
1.抢答器鉴别锁存模块…………………………5
2.抢答器计分模块………………………………6
3.蜂鸣模块………………………………………9
4.译码模块………………………………………9
5.动态扫描模块…………………………………10
6.总体模块………………………………………11
7.各引脚分配………………………………16
三.仿真及仿真结果分析……………………17
四、结论及心得体会…………………………18
五、参考文献…………………………………19
一、总体设计思想
1.基本要求:
1)、设计一个可容纳3组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
2)、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3)、设置一个主持人“复位”按钮。
4)、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出1秒的音响。
5)、设置一个计分电路,每组开始预置10分,由主持人记分,答对一次加1分,答错一次减1分。
2.基本原理
本设计为三路智能抢答器,所以这种抢答器要求有三路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别;
同时该系统还应有复位、分数置位功能。
抢答过程:
主持人按下系统复位键(RST),系统进入抢答状态,计分模块输出初始信号给数码显示模块并显示出初始值10。
当某参赛组抢先将抢答键按下时,系统将其余两路路抢答信号封锁,同时蜂鸣器发出声音提示,该组对应的指示灯显示信号,从而显示出该抢答成功组,并一直保持到下一轮主持人将系统清零为止。
主持人对抢答结果进行确认,随后,开始回答问题。
根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。
主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。
此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并用多个进程联系起来。
二、设计步骤和调试过程
模块设计和相应模块程序
将该任务分成几个模块进行设计,分别为:
抢答器鉴别锁存模块、抢答器计分模块、蜂鸣模块、译码模块、动态扫描模块,最后是撰写顶层文件。
抢答器鉴别锁存模块:
抢答器鉴别模块在这个模块中主要实现抢答过程中的抢答功能,并且能实现当有一路抢答按键按下时,该路抢答信号将其余过滤抢答封锁的功能。
其中有三个抢答信号A1,B1,C1;
抢答状态显示信号states;
系统复位信号en。
VHDL源程序
1.抢答器鉴别锁存模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYQDJBIS
PORT(en:
INSTD_LOGIC;
A,B,C:
--3个组
A1,B1,C1:
OUTSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDENTITYQDJB;
ARCHITECTUREARTOFQDJBIS
signala_1,b_1,c_1:
std_logic;
BEGIN
PROCESS(CLR,A,B,C)IS
IFen='
1'
THENSTATES<
="
0000"
;
a_1<
='
0'
b_1<
c_1<
--清零
elsifa_1='
orb_1='
orc_1='
thennull;
--锁存
elsifa='
thena_1<
states<
001"
elsifb='
thenb_1<
010"
elsifc='
thenc_1<
100"
endif;
a1<
=a_1;
b1<
=b_1;
c1<
=c_1;
ENDPROCESS;
ENDARCHITECTUREART;
2.抢答器计分模块:
在这个模块中主要实现抢答过程中的加减情况,首先将分数显示复位,即均为10,主持人根据选手答题情况,若选手回答正确则进行加分,即按定加分按钮为ADD;
若选手回答错误则进行减分,即按定减分按钮为SUB,选择端为CHOS,用来判定系统是进行加分还是进行减分;
输出到计分显示模块的信号为AA,BB,CC。
由于存在按键抖动情况,程序设置了一个JIFEN键,在JIFEN为高电平时,在进行加减分的按键,按键抖动基本平稳,但仍然还存在少许;
VHDL源程序
P_A:
PROCESS(ADD,CHOS)IS
VARIABLEPOINTS_A2:
STD_LOGIC_VECTOR(3DOWNTO0):
0001"
VARIABLEPOINTS_A1:
VARIABLEPOINTS_B2:
VARIABLEPOINTS_B1:
VARIABLEPOINTS_C2:
VARIABLEPOINTS_C1:
BEGIN
IF(ADD'
EVENTANDADD='
)THEN
IFJIFEN=’1’THEN
IFCHOS="
THEN
IFPOINTS_A1="
1001"
THEN
POINTS_A1:
IFPOINTS_A2="
POINTS_A2:
ELSE
=POINTS_A2+1;
ENDIF;
=POINTS_A1+1;
IFCHOS="
IFPOINTS_B1="
POINTS_B1:
IFPOINTS_B2="
POINTS_B2:
=POINTS_B2+1;
=POINTS_B1+1;
ENDIF;
IFJIFEN=’1’THEN
IFPOINTS_C1="
POINTS_C1:
IFPOINTS_C2="
POINTS_C2:
=POINTS_C2+1;
=POINTS_C1+1;
AA2<
=POINTS_A2;
AA1<
=POINTS_A1;
BB2<
=POINTS_B2;
BB1<
=POINTS_B1;
CC2<
=POINTS_C2;
CC1<
=POINTS_C1;
ENDPROCESSP_A;
P_B:
PROCESS(SUB,CHOS)IS
VARIABLEPOINTS_D2:
VARIABLEPOINTS_D1:
VARIABLEPOINTS_E2:
VARIABLEPOINTS_E1:
VARIABLEPOINTS_F2:
VARIABLEPOINTS_F1:
IF(SUB'
EVENTANDSUB='
)THEN
THEN
IFPOINTS_D1="
POINTS_D1:
IFPOINTS_D2="
POINTS_D2:
ELSE
=POINTS_D2-1;
ENDIF;
ELSE
=POINTS_D1-1;
ENDIF;
IFCHOS="
IFPOINTS_E1="
POINTS_E1:
IFPOINTS_E2="
POINTS_E2:
=POINTS_E2-1;
=POINTS_E1-1;
IFCHOS="
THEN
IFPOINTS_F1="
POINTS_F1:
IFPOINTS_F2="
POINTS_F2:
=POINTS_F2-1;
=POINTS_F1-1;
DD2<
=POINTS_D2;
DD1<
=POINTS_D1;
EE2<
=POINTS_E2;
EE1<
=POINTS_E1;
FF2<
=POINTS_F2;
FF1<
=POINTS_F1;
ENDPROCESSP_B;
3.蜂鸣模块:
在这个模块中主要实现抢答过程中的蜂鸣功能,当抢答者按下抢答键时,除了指示灯显示意外,同时蜂鸣器蜂鸣1秒。
此模块就是运用分频信号来控制蜂鸣器,已达到蜂鸣一秒的实验效果。
当抢答结束时,蜂鸣器停止发声。
process(clk,op)--fengming
begin
ifclk'
eventandclk='
then
ifop=25000000then
op<
=0;
clk2<
=notclk2;
elseop<
=op+1;
endif;
endprocess;
process(clk0)
ifclk0'
eventandclk0='
ifp=5then
p<
elsep<
=p+1;
4.译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段现实数码管的功能。
VHDL源程序
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYMQ;
ARCHITECTUREARTOFYMQIS
BEGIN
PROCESS(AIN4)
CASEAIN4IS
WHEN"
=>
DOUT7<
1111110"
--0
0110000"
--1
0010"
1101101"
--2
0011"
1111001"
--3
0100"
0110011"
--4
0101"
1011011"
--5
0110"
1011111"
--6
0111"
1110000"
--7
1000"
1111111"
--8
1111011"
--9
WHENOTHERS=>
0000000"
ENDCASE;
ENDARCHITECTUREART;
波形显示如下:
5.动态扫描模块:
动态显示是将所有显示数据的BCD码按照一定的顺序和变化频率送到公用数据总线上,在通过一个公用的显示译码器译码后,接到数码管的驱动端。
这里是将A,B,C三位选手的回答成绩,即分数显示在数码管上。
硬件测试时,第一二个数码管显示的是A组抢答所得的分数;
第三四个数码管显示的是B组抢答所得的分数;
第五六个数码管显示的是C组抢答所得的分数。
第七八个数码管灭,不运用到试验中。
begin---saomiaoxianshi
process(clk)
begin
then
ifcnter=25000000thencnter<
elsecnter<
=cnter+1;
endif;
endprocess;
process(newclk)
begin
ifcnter=25000000THENnewclk<
elsenewclk<
ifnewclk'
eventandnewclk='
IFcdi<
7thencdi<
=cdi+'
elsecdi<
=(others=>
'
);
process(cdi)
casecdiis
when"
000"
led_selout<
00000001"
00000010"
00000100"
011"
00001000"
00010000"
101"
00100000"
110"
01000000"
111"
10000000"
endcase;
process(p)
casepis
When"
led7s<
1000000"
0100100"
When"
0011001"
0010010"
0000010"
1111000"
0010000"
whenothers=>
null;
6.采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并用多个进程联系起来。
综合以上模块,数字竞赛抢答器的总程序如下所示:
本程序以一个总的源体文件自顶向下,将上面的模块以进程的方式有顺序的插入,得到以下结果。
libraryieee;
useieee.std_logic_1164.all;
entityqiangdaqiis
port(clk:
instd_logic;
rst,en:
JIFEN:
instd_logic;
A,B,C:
SUB,ADD:
CHOS:
instd_logic_vector(2downto0);
ring:
outstd_logic;
led_selout:
outstd_logic_vector(7downto0);
led7s:
outstd_logic_vector(6downto0));
endentityqiangdaqi;
architectureartofqiangdaqiis
signalnum:
integerrange0to50000000;
signala_1,b_1,c_1:
signalqq:
integerrange25000000to0;
signalCdi:
std_logic_vector(2downto0);
signalcnter:
integerrange0to25000000;
signalnewclk:
std_logic;
signalop:
integerrange25000000downto0;
signalp:
integerrange5downto0;
signalclk0,clk1,clk2:
signalen:
signalA1,B1,C1:
std_logic_vector(2downto0);
process(clk,ft)----fenpin;
ifft<
25000000then
ft<
else
end;
process(rst,states)----jianbiesuocun;
ifrst='
thenstates<
elsifa_1='
elsifa='
elsifb='
elsifc='
a1<
endarchitectureart;
PROCESS(CHOS,ADD,SUB)----jifen;
PROCESS(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 竞赛 抢答