智力竞赛抢答器设计毕业设计.doc_第1页
智力竞赛抢答器设计毕业设计.doc_第2页
智力竞赛抢答器设计毕业设计.doc_第3页
智力竞赛抢答器设计毕业设计.doc_第4页
智力竞赛抢答器设计毕业设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

目 录 1 前 言1 2 方案设计与论证2 3 软件介绍4 3.1 quartus ii 简介4 3.2 quartus ii 数字系统开发流程.4 4 单元模块电路的设计和实现.6 4.1 抢答鉴别模块的设计与实现6 4.2 计时模块的设计与实现7 4.3 报警模块的设计与实现9 4.4 译码显示模块的设计与实现10 4.5 计分模块的设计与实现.10 5 硬件调试.14 5.1 总模块仿真结果14 5.2 引脚锁定14 5.3 程序下载14 6 结 论15 7 参考文献.17 8 附 录18 课程设计说明书课程设计说明书 1 1 前 言 人类社会进入到高度发达的信息化社会,信息社会的发展离不开电子产品 的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋 势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产 制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到 深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心 就是 eda 技术。没有 eda 技术的支持,想要完成上述超大规模集成电路的设 计制造是不可想象的,但是面对当今飞速发展的电子产品市场,设计师需要更加 实用、快捷的 eda 工具,使用统一的集体化设计,改变传统的设计思路,将精 力集中到设计构想、方案比较和寻找优化设计等方面,需要以最快的速度,开 发出性能优良、质量一流的电子产品,对 eda 技术提出了更高的要求。传统的 eda 设计方法采用自底向上的设计方法,一般先按电子系统的具体功能要求进 行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑简化,写 出布尔表达式,画出相应的逻辑线路图,再据此选择元器件,设计电路板,最 后进行实测与调试,由于无法进行硬件系统功能仿真,如果某一过程存在错误, 查找和修改十分不便,所以这是一种费时、费力的设计方法,而现代电子设计技 术(eda)是自顶向下且先进高效的。在电子产品的设计理念、设计方式、系统 硬件构成、设计的重用性、知识产权、设计周期等方面,eda 技术具有一定的优 势。所以本次设计的抢答器抛弃了传统的设计方法,选择了采用主流的 eda 技 术进行设计。 智力竞赛是“快乐学习”这一教育模式的典范,它采用在规定的一段时间内 抢答和必答等方式,在给人们的生活带来乐趣的同时,也使参与者和观众在愉 悦的氛围中学到一些科学知识和生活知识,因此很受大家的喜欢。但是,在这 类比赛中,对于谁先谁后抢答,在何时抢答,如何计算答题时间等等问题,若 是仅凭主持人的主观判断,就很容易出现误判。所以,我们就需要一种具备自 动锁存,置位,清零等功能智能抢答器来解决这些问题。 智能竞赛抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中, 它都能客观、迅速地判断出最先获得发言权的选手。早期的抢答器只是由三个 三极管、可控硅、发光管等器件组成的,能通过发光管的指示辨认出选手号码。 现在大多数智能抢答器都是由单片机或数字集成电路构成的,并且新增了许多 功能,如选手号码显示,抢按前或抢按后的计时,选手得分显示等功能。 课程设计说明书课程设计说明书 2 2 方案设计与论证 一般来说,设计一台智能抢答器,必须能够准确判断出第一位抢答者,并 且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定 的回答限制时间,让抢答者在规定时间内答题,主持人根据答题结果评出最终 赢家。所以我们在设计智能抢答器的模块需要满足鉴别、计时、数显、报警等 功能,具体设计要求如下: (1)抢答器可容纳四组选手,并为每组选手设置一个按钮供抢答者使用; 为主持人设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢 答开始。 (2)电路具有对第一抢答信号的锁存、鉴别和显示等功能。在主持人将系 统复位并发出抢答指令后,蜂鸣器提示抢答开始,计时显示器显示初始时间并 开始倒计时,若参赛选手按下抢答按钮,则该组别的信号立即被锁存,并在组 别显示器上显示该组别,同时扬声器也给出音响提示,此时,电路具备自锁功 能,使其他抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答无效提示,主持人 可以按复位键,开始新一轮的抢答。 (4)抢答器具有限时抢答的功能,且一次抢答的时间由主持人设定,当主 持人启动开始键后,要求计时器采用倒计时,同时倒计时到 0 秒时扬声器会发 出声响提示。 (5)参赛选手在设定的时间内抢答,则抢答有效,定时器停止工作,根据 抢答结果由数码管显示选手的组别,并一直保持到主持人将系统清零为止。 本设计为四路智能抢答器,所以这种抢答器要求有四路不同组别的抢答输 入信号,并能识别最先抢答的信号,抢答器共有三个输出显示,选手代号、计 数器的个位和十位,它们输出全部为 bcd 码输出,这样便于和显示译码器连接。 当主持人按下控制键、选手按下抢答键或倒计时到时蜂鸣器短暂响起。对回答 问题所用的时间进行计时、显示、超时报警、预置答题时间,同时该系统还应 有复位、倒计时启动功能。 依据系统的设计要求可知,系统的输入信号有:四组的抢答按钮 a、b、c、d。系统清零信号 qdjb,系统时钟信号 clk,计分复位端 jfrst,计时预置数控制端 ldn,计时使能端 en,计时预置数调整按钮 ta、tb。系统的输入信号有:四个组抢答成功与否的指示控制信号输出口 leda,ledb,ledc,ledd,四组抢答时的计时控制显示信号若干,抢答成 功组别显示的控制信号若干。本系统应具有的功能有:第一抢答信号的鉴别和 课程设计说明书课程设计说明书 3 锁存功能;抢答计时功能;组别显示功能;蜂鸣器提示功能。对于需要显示的 信息,需要增加或外接译码器,进行显示译码。抢答开始时主持人按下抢答复 位键(rst) ,系统进入抢答状态,计时模块输出初始信号给数码显示模块并显 示出初始值。当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁, 同时扬声器发出声音提示,组别显示模块送出信号给数码显示模块,从而显示 出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对 抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题, 计时显示器则从初始值开始以计时。计时至 0 时,停止计时,扬声器发出超时 报警信号,以中止未回答完问题。当主持人给出倒计时停止信号时,扬声器停 止鸣叫。 课程设计说明书课程设计说明书 4 3 软件介绍 3.1 quartus ii 简介 max+plus ii 作为altera的上一代pld设计软件,由于其出色的易用性而得 到了广泛的应用。目前altera已经停止了对max+plus ii 的更新支持。quartus ii 是altera公司继max+plus ii之后开发的一种针对其公司生产的系列cpld/pgfa 器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是 quartus ii 8.0版,该软件有如下几个显著的特点: 该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑 设计环境,是先进的eda工具软件。该软件具有开放性、与结构无关、多平台、 完全集成化、丰富的设计库、模块化工具等特点,支持原理图、 vhdl、veriloghdl以及ahdl(altera hardware description language)等多种 设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配 置的完整pld设计流程。 quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl脚本完成设 计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一, 功能集中,易学易用等特点。 quartus ii支持altera公司的max 3000a系列、max 7000系列、acex 1k 系列、apex 20k系列、apex ii系列、flex 6000系列、flex 10k系列,支持 max7000/max3000等乘积项器件。支持max ii cpld系列、cyclone系列、 cyclone ii、stratix ii系列、stratix gx系列等。支持ip核,包含了 lpm/megafunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计 的复杂性、加快了设计速度。此外,quartus ii 通过和dsp builder工具与 matlab/simulink相结合,可以方便地实现各种dsp应用系统;支持altera的片上 可编程系统(sopc)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计 于一体,是一种综合性的开发平台。 altera的quartus ii可编程逻辑软件属于第四代pld开发平台。该平台支持一 个工作组环境下的设计要求,其中包括支持基于internet的协作设计。quartus平 台与cadence、exemplarlogic、 mentorgraphics、synopsys和synplicity等eda 供应商的开发工具相兼容。改进了软件的logiclock模块设计功能,增添 了 fastfit编译选项,推进了网络编辑性能,而且提升了调试能力。 3.2 quartus ii 数字系统开发流程 课程设计说明书课程设计说明书 5 (1)设计输入:包括原理图输入、hdl 文本输入、edif 网表输入、波形 输入等几种方式。 (2)编译:先根据设计要求设定编译方式和编译策略,如器件的选择、逻 辑综合方式的选择等;然后根据设定的参数和策略对设计项目进行网表提取、 逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文件,供分析、 仿真和编程使用。 (3)仿真与定时分析:仿真和定时分析均属于设计校验,其作用是测试设 计的逻辑功能和延时特性。仿真包括功能仿真和时序仿真。定时分析器可通过 三种不同的分析模式分别对传播延时、时序逻辑性能和建立/保持时间进行分析。 (4)编程与验证:用得到的编程文件通过编程电缆配置 pld,加入实际 激励,进行在线测试。 在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或 调整电路后重新测试。 课程设计说明书课程设计说明书 6 4 单元模块电路的设计和实现 根据对抢答器的功能要求,把要设计的系统划分为三个功能模块:抢答信 号鉴别模块、计时模块和扬声器控制电路。但是由于实际情况的限制,数码显 示模块和计分模块没有放在总程序中。 4.1 抢答鉴别模块的设计与实现 本模块主要是对参与抢答的四组谁先抢答做出判断,将抢答成功者的组别 号进行显示,同时,与选手对应的 led 灯会亮起,蜂鸣器发出 2-3 秒鸣叫,表 明抢答成功。用 a、b、c、d 分别代表参赛的四组,a1、b1、c1、d1 则代表与 之对应的各组的抢答按钮显示端,系统清零信号 clr,组别显示端 g30。 抢答开始后,当有小组按下抢答键,抢答信号判定电路 qdjb 通过缓冲输 出信号的反馈将本参赛组抢先按下按键的信号锁存,并且以异步清零的方式将 其他参赛组的锁存器清零,组别显示和计时会保存到主持人对系统进行清零操 作时为止。a、b、c、d 四组抢答从理论上来说,应该有 16 种可能情况,但是 由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出的鉴别,所 以在这里四组同时抢答成功的可能性非常小,因此可以只设计四种情况,即 a、b、c、d 分别为 0001、0010、0100、1000,这样使电路的设计得以简化。 vhdl 部分源程序如下: if (clr=1) then g save save save save null; 课程设计说明书课程设计说明书 10 end case; else savedout7dout7dout7dout7dout7dout7dout7dout7dout7dout7dout7=“1111111“; 课程设计说明书课程设计说明书 11 图 4-4 译码显示模块仿真图 ymq 4.5 计分模块的设计与实现 在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即 可,但是随着计数数目的增加,要将计数数目分解成十进制并进行译码显示分 变得越来越麻烦。因此为了减少译码显示的麻烦,一般是将一个大的进制数分 解成数个十进制以内的时制数,计数器串级连接。但随着位数的增加,电路的 接口增加因此本设计采用 if 语句从低往高判断是否有进位,以采取相应的操作, 而且由于设计要求加减分均为 10 的倍数故而可以将个位一直设为 0,这样既减 少了接口,又大大地简化了设计。vhdl 部分源程序如下: if (addevent and add=1) then if rst=1 then points_a2:=“0001“; points_a1:=“0000“; points_b2:=“0001“; points_b1:=“0000“; points_c2:=“0001“; points_c1:=“0000“; points_d2:=“0001“; points_d1:=“0000“; elsif chos=“0001“ then if points_a1=“1001“ then points_a1:=“0000“; if points_a2=“1001“ then points_a2:=“0000“; else points_a2:=points_a2+1; end if; else points_a1:=points_a1+1; end if; 课程设计说明书课程设计说明书 12 elsif chos=“0010“ then if points_b1=“1001“ then points_b1:=“0000“; if points_b2=“1001“ then points_b2:=“0000“; else points_b2:=points_b2+1; end if; else points_b1:=points_b1+1; end if; elsif chos=“0100“ then if points_c1=“1001“ then points_c1:=“0000“; if points_c2=“1001“ then points_c2:=“0000“; else points_c2:=points_c2+1; end if; else points_c1:=points_c1+1; end if; elsif chos=“1000“ then if points_d1=“1001“ then points_d1:=“0000“; if points_d2=“1001“ then points_d2:=“0000“; else points_d2:=points_d2+1; end if; else points_d1:=points_d1+1; end if; end if; end if; 课程设计说明书课程设计说明书 13 aa2=points_a2; aa1=points_a1; aa0=“0000“; bb2=points_b2; bb1=points_b1; bb0=“0000“; cc2=points_c2; cc1=points_c1; cc0=“0000“; dd2=points_d2; dd1=points_d1; dd0=“0000“; 图 4-5 记分模块仿真图 jfq 初始分数为 100 分,当 add 经过第一个上升沿时,chos【3】输出高电 平,则对应的给 d 加上 10 分。 课程设计说明书课程设计说明书 14 5 硬件调试 5.1 总模块仿真结果 在 quartus ii 上对总的源程序进行仿真如下图所示: 图 5-1 总模块仿真结果图 5.2 引脚锁定 进行引脚锁定如下图所示: 课程设计说明书课程设计说明书 15 图 5-2 引脚锁定图 5.3 程序下载 引脚锁定完以后,就可以进行程序下载了,程序下载完就可以进行硬件仿 真,仿真结果如下: 当按下 ret 时,按下一个开关确定是几组抢答成功,抢答成功后,蜂鸣器 报警,此时主持人可以按下倒计时开关,倒计时时间到后,蜂鸣器会报警,如 果提前回答完毕,可以按下 stop 开关,停止倒计时。 6 总 结 按照任务要求,我们设计出的抢答器具备抢答鉴别、倒计时、数码管显示、 报警提示等多种功能。本抢答器能够准确判断出第一位抢答者,并且通过数显、 蜂鸣这些途径能让人们很容易得知谁是抢答成功者。根据不同比赛的需要,主 持人可以预设一定的回答限制时间,让抢答者在规定时间内答题,主持人根据 答题结果评出最终赢家。 设计制作过程中遇到的问题及解决方案: 1. vhdl 语法使用不规范: 当我们编写软件程序的时,遇到了编译错误。细心阅读 max+plus2 错误提 示和所编写的程序后发现是因为 vhdl 语法使用错误。最后经过翻阅 eda 课 本,熟悉相关语法后将其改正。 2. 抢答器项目设计规模过大,与现有 cpld 芯片不匹配: 按照我们最初的设计方案来设计的话,抢答器还可以实现计分功能。但是 当我们编写好程序后,一经编译就会出现工程与器件无法适配的问题。查找原 因后发现是因为数码管显示分数功能占用芯片引脚过多,芯片无法匹配。最终 我们在总设计中去掉了计分功能,从而适配成功。 3. 引脚锁定不完整,最终编译无法通过: 处理了之前出现的几个问题后,在最后编译时未通过。细致查看了错误提 示,发现是个别管脚未锁定的原因。我们最终把各个管脚锁定号码一一检查了 一遍,从而通过了编译。 本设计有以下几个可以改进的地方: 1.预使本抢答器具有计分功能,可以使用引脚更多的 cpld 芯片,即使用 课程设计说明书课程设计说明书 16 更多的数码管来实时显示每个抢答选手的得分情况。 2. 现有的声响提示模块发出的提示声音比较单调,不能满足现在的抢答比 赛要求。通过适当添加几种语音芯片,就可以让蜂鸣器在不同的情况下发出美 妙的声响,能为比赛增添不少乐趣。 3.在现有设计基础上使用无线电或红外技术,还可以使本项目升级为无线 智能抢答器。 在这次设计中,我花了不少的时间,其中有苦也有泪。苦的是我付出了不 少的汗水,乐的是在付出的过程中我得到了许多,也学会了许多。 因为一个人的能力毕竟有限,在设计方面难免会出现这样那样的错误,但 正是这些错误促进了我的进步。根据电路的特点,我用层次化结构化设计概念, 将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然 后再将各模块合起来联试,这培养了我们合作的精神,同时加深了层次化设计 的概念。在这次课程设计中,我真正体会到了知识的重要性。在设计的过程中, 遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论,实在解 决不了我就会向指导老师请教,应该说从功能的实现到流程图的绘制,从程序 的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝 聚着大家对我的帮助。 最后,在设计的过程中我进一步养成了软件设计的方法,完成一个项目的 的程序,进一步了解了设计的步骤,进一步加深了对 eda 这门课的理解,增强 了以后学习的兴趣,为以后的工作积累了一定的经验。 课程设计说明书课程设计说明书 17 7 参考文献 1潘松,黄继业. eda 技术实用教程.第二版.m.北京:科学出版社,2005. 2龚尚福.微机原理与接口技术.第二版. m 西安:西安电子科技大学出版社,2008. 3边计年,薛宏熙. 用 vhdl 设计电子线路. 清华大学出版社,2000 4李伟英,谢完成.基于 eda 技术的抢答器的设计与实现【j】.科学技术与实现, 2008.8(11). 5谭会生,瞿遂存.eda 技术综合应用实例与分析【m】.西安:西安电子科技大学出版社, 2004. 6侯伯亨,顾新vhdl 硬件描述语言与数字逻辑电路设计西安:西安电子科技大学出 版社,1997 7常青,陈辉煌可变成专用集成电路及其应用与设计实践经验北京:国防工业出版社, 1998 8 张千里,陈光英网络安全新技术m北京:人民邮电出版社,2003 课程设计说明书课程设计说明书 18 8 附 录 智力抢答器 vhdl 源程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qd is port(rst,clk,s,stop:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0); warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0); void:out std_logic); end qd; architecture qd of qd is signal st:std_logic_vector(3 downto 0); signal co:std_logic; begin q1:process(rst,clk,s0, s1,s2,s3) begin 课程设计说明书课程设计说明书 19 if rst=0 then void=0;st=“0000“; elsif clkevent and clk=1 then if (s0=1 or st(0)=1)and not( st(1)=1 or st(2)=1 or st(3)=1 ) then st(0)=1; end if ; if (s1=1 or st(1)=1)and not( st(0)=1 or st(2)=1 or st(3)=1 ) then st(1)=1; end if ; if (s2=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论