四路数字抢答器_第1页
四路数字抢答器_第2页
四路数字抢答器_第3页
四路数字抢答器_第4页
四路数字抢答器_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

2 1 抢答器系统设计要求 一般来说 设计一台智能抢答器 必须能够准确判断出第一位抢答者 并且通过数显 蜂鸣这 些途径能让人们很容易得知谁是抢答成功者 并设置一定的回答限制时间 让抢答者在规定时 间内答题 主持人根据答题结果评出最终赢家 所以我们在设计智能抢答器的模块需要满足鉴 别 计时 数显 报警等功能 具体设计要求如下 1 抢答器可容纳四组选手 并为每组选手设置一个按钮供抢答者使用 为主持人设置一个 控制按钮 用来控制系统清零 组别显示数码管灭灯 和抢答开始 2 电路具有对第一抢答信号的锁存 鉴别和显示等功能 在主持人将系统复位并发出抢答 指令后 蜂鸣器提示抢答开始 计时显示器显示初始时间并开始倒计时 若参赛选手按下抢答 按钮 则该组别的信号立即被锁存 并在组别显示器上显示该组别 同时扬声器也给出音响提 示 此时 电路具备自锁功能 使其他抢答按钮不起作用 3 如果无人抢答 计时器倒计时到零 蜂鸣器有抢答无效提示 主持人可以按复位键 开 始新一轮的抢答 4 抢答器具有限时抢答的功能 且一次抢答的时间由主持人设定 本抢答时间设定为 99 秒 当主持人启动开始键后 要求计时器采用倒计时 同时倒计时到 0 秒时扬声器会发出声响 提示 5 参赛选手在设定的时间内抢答 则抢答有效 定时器停止工作 根据抢答结果由数码管 显示选手的组别 并一直保持到主持人将系统清零为止 2 2 方案论证与选择 本项目也可以用 EDA 技术来实现其功能 在芯片选型方面可以考虑选择 CPLD 芯片作为微控 制器 EDA 自顶向下的设计方法比较先进 实验室有齐全的开发套件 组员们均系统学习过 EDA 基础课程 都有 VHDL 编程和实验经验 团队之间交流将会比较方便 芯片容量大 处 理速度极快 管脚数目多达 84 个 IO 口数目充足 适合本设计的规模 缺点在于设备相对昂 贵 使用不当容易烧毁微处理器 2 3 系统总体设计思想 本设计为四路智能抢答器 所以这种抢答器要求有四路不同组别的抢答输入信号 并能识别最 先抢答的信号 抢答器共有三个输出显示 选手代号 计数器的个位和十位 它们输出全部为 BCD 码输出 这样便于和显示译码器连接 当主持人按下控制键 选手按下抢答键或倒计时 到时蜂鸣器短暂响起 对回答问题所用的时间进行计时 显示 超时报警 预置答题时间 同 时该系统还应有复位 倒计时启动功能 依据系统的设计要求可知 系统的输入信号有 四组的抢答按钮 A B C D 系统清零信号 QDJB 系统时钟信号 CLK 计分复位端 JFRST 计时预置数控制端 LDN 计时使能端 EN 计时预置数调整按钮 TA TB 系统的输入信号有 四个组抢答成功与否的指示控制信号输出 口 LEDA LEDB LEDC LEDD 四组抢答时的计时控制显示信号若干 抢答成功组别显示的 控制信号若干 本系统应具有的功能有 第一抢答信号的鉴别和锁存功能 抢答计时功能 组 别显示功能 蜂鸣器提示功能 根据以上的分析我们可以将本设计的整个系统分为四个模块 抢答鉴别模块 QDJB 抢答计时模块 JSQ 数码显示模块 YMQ 报警模块 BELL 对于需要显 示的信息 需要增加或外接译码器 进行显示译码 抢答开始时主持人按下抢答复位键 QDRST 系统进入抢答状态 计时模块输出初始信号给数码显示模块并显示出初始值 当 某参赛组抢先将抢答键按下时 系统将其余三路抢答信号封锁 同时扬声器发出声音提示 组 别显示模块送出信号给数码显示模块 从而显示出该抢答成功组台号 并一直保持到下一轮主 持人将系统清零为止 主持人对抢答结果进行确认 随后 计时模块送出倒计时计数允许信号 开始回答问题 计时显示器则从初始值开始以计时 计时至 0 时 停止计时 扬声器发出超时 报警信号 以中止未回答完问题 当主持人给出倒计时停止信号时 扬声器停止鸣叫 整个系 统的组成框图如下图 3 单元模块电路的设计和实现 根据对抢答器的功能要求 把要设计的系统划分为四个功能模块 抢答信号鉴别模块 计时模 块 数码显示模块和扬声器控制电路 具体的说 显示模块又包含最先抢答的组别显示电路 计时值显示电路 3 1 抢答鉴别模块的设计与实现 3 1 1 设计原理 本模块主要是对参与抢答的四组谁先抢答做出判断 将抢答成功者的组别号进行显示 同时 与选手对应的 LED 灯会亮起 蜂鸣器发出 2 3 秒鸣叫 表明抢答成功 用 A B C D 分别 代表参赛的四组 A1 B1 C1 D1 则代表与之对应的各组的抢答按钮显示端 系统清零信号 CLR 组别显示端 G 3 0 则抢答鉴别模块的元件图如下图所示 图 3 1 鉴别模块元件框图 抢答开始后 当有小组按下抢答键 抢答信号判定电路 QDJB 通过缓冲输出信号的反馈将本参 赛组抢先按下按键的信号锁存 并且以异步清零的方式将其他参赛组的锁存器清零 组别显示 和计时会保存到主持人对系统进行清零操作时为止 A B C D 四组抢答从理论上来说 应 该有 16 种可能情况 但是由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出 的鉴别 所以在这里四组同时抢答成功的可能性非常小 因此可以只设计四种情况 即 A B C D 分别为 0001 0010 0100 1000 这样使电路的设计得以简化 3 1 2 功能仿真 利用 MAX plusII 进行编译 综合 仿真 时序图如图 3 1 所示 图 3 1 抢答鉴别模块仿真时序图 如仿真图所示 当 CLR 1 时系统复位 使组别显示信号 G 0000 各组的指示灯信号 A1 0 B1 0 C1 0 D1 0 当 CLR 0 即低电平有效 使其进入抢答鉴别状态 到 CLK 的 上升沿到来时 以 D 组抢答成功为例 当输入信号为 A 0 B 0 C 0 D 1 输出信号 G 1000 D1 1 即为鉴别出 D 组抢答成功 同时屏蔽其他组的输入信号 以免发生错误 同 理其他组别抢答成功也是这样的鉴别过程 通过分析 仿真完全符合预期所要达到的结果 3 2 计时模块的设计与实现 3 2 1 设计原理 在计时模块的设计中设置了固定和可调的两个时间 固定时间为 99 秒 可调时间通过预置键 SET 来调节 计数时两个数码管 QA QB 显示剩余时间 分别表示两位倒计时的个位和十位 当抢答鉴别模块成功判别出最先按下抢答按钮的参赛组后 在成功鉴别出哪组最先抢答后 主 持人按下计时信号 则进入计时状态 计时模块开始工作从规定值开始以秒计时 计时至 0 秒 时停止 此时蜂鸣器发出报警信号 提醒答题已终止 该系统输入信号有 系统清零信号 CLR 计时预置控制端 LDN 计时使能端 EN 系统时钟信号 CLK 计时预置数据调整按钮 TA TB 系统输出信号有 倒计时输出端 QA 3 0 QB 3 0 蜂鸣器 BELL 则计时模块的 元件图如下图所示 3 2 2 计时模块的仿真 利用 MAX plusII 进行编译 综合 仿真 时序图如图 3 3 所示 图 3 3 计时器模块仿真时序图 如仿真图所示 当计时复位信号 CLR 1 时 模块输出信号 QA 0000 QB 0000 当预置数 控制信号 LDN 1 可通过 TA 来调整 QA TA 来一次高电平 则 QA 的数值就加 1 用 TB 来 调整 QB 通过这两个调整信号可调整参赛者答题所需要的时间 在 CLR 0 LDN 0 EN 1 时 通过时钟信号 CLK 的上升沿来进行 99 秒到计时 通过分析 仿真完全符合预期所要达到的结 果 3 3 译码显示模块的设计与实现 3 3 1 设计原理 译码器的设计主要任务是显示组别和时间的工作状态 其主要原理是四位二进制 BCD 编码转 换成七段二进制数字输出在数码管上 使观众能够更直观的看到比赛进程 译码显示模块的元 件图如下图所示 图 3 4 译码显示模块的元件图 译码器的译码对照表 3 1 如下所示 表 3 1 译码器的译码对照表 在程序中只考虑 0000 1001 即 0 9 的情况 将其转化为相应的七段显示器的码字 其他情况不予考虑 3 3 2 功能仿真 译码器的设计主要任务是将组别和时间的工作状态 翻译成 3 个信号数码管的工作状态 译码 器的输入是由 16 进制数显示的 利用 MAX plusII 进行编译 综合 仿真 时序图如图 3 5 所示 图 3 5 译码器模块仿真时序图 如仿真图所示 AIN4 为数字 0 9 时 DOUT7 输出对应于译码对照表 AIN4 为数字 10 15 时 DOUT7 输出 1111111 通过分析 仿真完全符合预期所要达到的结果 3 4 报警模块的设计与实现 3 4 1 设计原理 报警器的设计主要是来提醒观众倒计时的开始和结束 哪位选手进行了抢答 在这几种情况下 蜂鸣器会发出 2 3 秒的鸣叫 便于更好的判别比赛的情况 此模块和抢答鉴别模块 计时模块 蜂鸣器相连 用以实现其功能 则报警模块的元件图如下图所示 图 3 6 报警模块的元件图 该系统输入信号有系统时钟信号 CLK 组别输入信号 CHOS 输出信号 SPEAK 用以连接蜂 鸣器来进行报警 3 4 2 功能仿真 利用 MAX plusII 进行编译 综合 仿真 时序图如图 3 7 所示 图 3 7 报警器模块仿真时序图 如仿真图所示 当 CHOS 0001 即 A 组抢答时 蜂鸣器 SPEAK 1 进行 2 3 秒的鸣叫 通过分 析 仿真完全符合预期所要达到的结果 3 5 抢答器系统的设计与实现 3 5 1 总体设计原理 本设计通过元器件图示连线的方法来实现 这种连线方法思路清晰可见 而且用的时候很简单 方便 出现错误也很好检查 又由于本设计连线比较繁多复杂 所以采用总线模式连线 这样 大大较少了由于连线带来的失误 便于很明了的看出各个模块之间的连接 以下为总体原理图 图 3 8 顶层元件图 本设计中 抢答器组别信号 A B C D 为高电平时 其功能为有效状态 同样 系统清零 信号 CLR 预置及倒计时控制信号 LDN 亦为高电平有效 当 CLR 有效时 抢答信号判别电 显示的数字 字母BCD 编码七段共阳数码管 2 进制 000001000000 100011111001 200100100100 300110110000 401000011001 501010010010 601100000010 701111111000 810000000000 910010010000 XXXXX1111111 路清零 为判别优先抢答信号做出准备 当计时使能端 EN 为低电平 预置时间设置信号 LDN 1 时 通过计时预置数据调整按钮 TA TB 进行预置数 当计时使能端 EN 为高电平 有系统时钟信号 CLK 时 进行 99 秒倒计时 输入时钟 CLK 一方面作为扬声器控制电路的输 入信号 另一方面作为抢答信号判别电路中锁存器时钟 为使扬声器音调较为悦耳 且是抢答 判别电路有较高的准确度 对信号判别的最大误差是一个时钟周期 CLK 信号频率高低应适 中 可取 500Hz 1KHz 同时 CLK 信号经过分频后向倒计时电路提供信号 3 5 2 功能仿真 利用 MAX plusII 进行编译 综合 仿真 时序图如图 3 9 所示 图 3 9 总体仿真时序图 如图 3 9 所示 当 CLR 有效时 抢答信号判别电路清零 为判别优先抢答信号做出准备 当 计时使能端 EN 为低电平 预置时间设置信号 LDN 1 时 通过计时预置数据调整按钮 TA TB 进行预置数 当计时使能端 EN 为高电平 有系统时钟信号 CLK 时 进行 99 秒倒计 时 输入时钟 CLK 一方面作为扬声器控制电路的输入信号 另一方面作为抢答信号判别电路 中锁存器时钟 为使扬声器音调较为悦耳 且是抢答判别电路有较高的准确度 CLK 信号频 率高低应适中 可取 500Hz 1KHz 同时 CLK 信号经过分频后向倒计时电路提供信号 通过分 析 仿真完全符合预期所要达到的结果 4 硬件的测试和装调 4 1 程序的下载 在对总体原理图进行编译 综合 仿真后 经过检查排除仿真图中存在的问题 并确保功能符 合预期设计目的后 即可将其下载到 EDA 试验开发板的 CPLD 芯片 EPM7128SLC84 15 芯片 来测试抢答器的系统功能 下载完成截图如下 图 4 1 程序下载完成图 4 2 系统安装与测试 程序的最终显示结果验证了设计思路的正确性 为了进一步从视觉上来观察实验现象 还需将 设计编程下载到选定的目标器件中做进一步的硬件测试 以便最终了解设计的正确性 本次课 程设计下载的目标器件为 MAX7000S EPM7128SLC84 15 将各个模块按原理图方式连接在一 块 构成一个完整的数字竞赛抢答器原理图模块结构 测试时 首先将指拨开关全部拨到低电平 按下 QDRET 键 观察数码管 启动状态时选手 编号 倒计时都显示 0 然后拨动指拨开关 JSRET 启动 99 秒定时抢答 此时计时数码管 上显示 99 蜂鸣器发出鸣叫 再拨动指拨开关 EN 99 秒倒计时开始 在倒计时过程中拨 动指拨开关 PLAYER1 组别显示数码管上显示 1 计分数码管由之前的倒计时回归到 00 与此同时 与 1 号选手对应的 LED 灯闪了一下 并且蜂鸣器发出了 2 3 秒的鸣叫 说明 1 号 选手抢答成功 如果拨动其他组对应的指拨开关 PLAYER2 PLAYER3 数码管上显示数据 不变 说明抢答电路已锁 本轮抢答结束后 按下 QDRET 键 数码管上显示都为 0 然后按 照步骤 1 依次往下 开始进行下一轮抢答 如果 99 秒倒计时过程中无人按下抢答键 则在倒 计时为 00 时蜂鸣器发出鸣叫 表明本轮过程无人抢答 结 论 按照任务要求 我们设计出的抢答器具备抢答鉴别 倒计时 数码管显示 报警提示等多种功 能 本抢答器能够准确判断出第一位抢答者 并且通过数显 蜂鸣这些途径能让人们很容易得 知谁是抢答成功者 根据不同比赛的需要 主持人可以预设一定的回答限制时间 让抢答者在 规定时间内答题 主持人根据答题结果评出最终赢家 设计制作过程中遇到的问题及解决方案 1 VHDL 语法使用不规范 当我们编写软件程序的时 遇到了编译错误 细心阅读 max plus2 错误提示和所编写的程序后 发现是因为 VHDL 语法使用错误 最后经过翻阅 EDA 课本 熟悉相关语法后将其改正 2 抢答器项目设计规模过大 与现有 CPLD 芯片不匹配 按照我们最初的设计方案来设计的话 抢答器还可以实现计分功能 但是当我们编写好程序后 一经编译就会出现工程与器件无法适配的问题 查找原因后发现是因为数码管显示分数功能占 用芯片引脚过多 芯片无法匹配 最终我们去掉了计分功能 从而适配成功 3 引脚锁定不完整 最终编译无法通过 处理了之前出现的几个问题后 在最后编译时未通过 细致查看了错误提示 发现是个别管 脚未锁定的原因 我们最终把各个管脚锁定号码一一检查了一遍 从而通过了编译 本设计有以下几个可以改进的地方 1 预使本抢答器具有计分功能 可以使用引脚更多的 CPLD 芯片 即使用更多的数码管来实时 显示每个抢答选手的得分情况 2 现有的声响提示模块发出的提示声音比较单调 不能满足现在的抢答比赛要求 通过适当 添加几种语音芯片 就可以让蜂鸣器在不同的情况下发出美妙的声响 能为比赛增添不少乐趣 3 在现有设计基础上使用无线电或红外技术 还可以使本项目升级为无线智能抢答器 致 谢 在本次课程设计中经过各位同学的帮助和我的负责老师郑老师的耐心指导和热情帮助 以及图 书馆大量的资料和学校提供的必要器材下才顺利完成的 从课题的选择到项目的最终完成 郑 老师都始终给予我细心的指导和不懈的支持 以及我们组员的共同努力 同时实验室的开放也 为同学们设计提供了实习场地 在此对侯宝生老师 郑争兵老师示忠心的感谢 对系上为我们 提供这次机会表示感谢 这些不仅让我学到了很多知识 锻炼了自身的操作能力 更为以后的 学习工作打下了良好的基础 参考文献 1 潘松 黄继业 EDA 技术实用教程 第二版 M 北京 科学出版社 2005 2 龚尚福 微机原理与接口技术 第二版 M 西安 西安电子科技大学出版社 2008 3 边计年 薛宏熙 用 VHDL 设计电子线路 清华大学出版社 2000 4 李伟英 谢完成 基于 EDA 技术的抢答器的设计与实现 J 科学技术与实现 2008 8 11 5 谭会生 瞿遂存 EDA 技术综合应用实例与分析 M 西安 西安电子科技大学出版社 2004 6 VHDL 程序设计 7 基于 CPLD 的无线遥控抢答器设计 附 录 附录 A 各单元模块 VHDL 源程序 1 抢答鉴别模块 VHDL 源程序 QDJB VHD LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY QDJB IS PORT CLR IN STD LOGIC A B C D IN STD LOGIC A1 B1 C1 D1 OUT STD LOGIC G OUT STD LOGIC VECTOR 3 DOWNTO 0 END QDJB ARCHITECTURE ART OF QDJB IS CONSTANT W1 STD LOGIC VECTOR 0001 CONSTANT W2 STD LOGIC VECTOR 0010 CONSTANT W3 STD LOGIC VECTOR 0100 CONSTANT W4 STD LOGIC VECTOR 1000 BEGIN PROCESS CLR A B C D VARIABLE LOCK STD LOGIC BEGIN IF CLR 1 THEN G 0000 LOCK 1 A1 1 B1 1 C1 1 D1 1 ELSIF LOCK 1 THEN IF A 1 AND B 0 AND C 0 AND D 0 THEN A1 0 B1 1 C1 1 D1 1 G W1 LOCK 0 ELSIF A 0 AND B 1 AND C 0 AND D 0 THEN A1 1 B1 0 C1 1 D1 1 G W2 LOCK 0 ELSIF A 0 AND B 0 AND C 1 AND D 0 THEN A1 1 B1 1 C1 0 D1 1 G W3 LOCK 0 ELSIF A 0 AND B 0 AND C 0 AND D 1 THEN A1 1 B1 1 C1 1 D1 0 G W4 LOCK 0 END IF END IF END PROCESS END ART 2 抢答计时模块 VHDL 源程序 JSQ VHD LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY JSQ IS PORT CLR LDN EN CLK IN STD LOGIC TA TB IN STD LOGIC FLAG IN STD LOGIC BELL OUT STD LOGIC QA OUT STD LOGIC VECTOR 3 DOWNTO 0 QB OUT STD LOGIC VECTOR 3 DOWNTO 0 END JSQ ARCHITECTURE ART OF JSQ IS SIGNAL DA STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL DB STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL GWYUZHI STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL SWYUZHI STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL N INTEGER RANGE 0 TO 10 BEGIN PROCESS CLK LDN EN CLR TA TB FLAG VARIABLE TMPA STD LOGIC VECTOR 3 DOWNTO 0 VARIABLE TMPB STD LOGIC VECTOR 3 DOWNTO 0 VARIABLE STAY FINISH STD LOGIC 倒计时停止标志 BEGIN IF CLR 1 THEN TMPA 1001 TMPB 1001 SWYUZHI 0000 GWYUZHI 0000 DA 1001 DB 1001 ELSIF CLK EVENT AND CLK 1 THEN IF LDN 1 THEN IF TA 1 THEN GWYUZHI GWYUZHI 0001 BELL 0 IF GWYUZHI 1010 THEN GWYUZHI 0000 END IF END IF IF TB 1 THEN SWYUZHI SWYUZHI 0001 BELL 0 IF SWYUZHI 1010 THEN SWYUZHI 0000 END IF END IF TMPA GWYUZHI TMPB SWYUZHI BELL 0 STAY 0 ELSIF EN 1 AND STAY 0 THEN IF FLAG 1 THEN TMPA 0000 TMPB 0000 END IF IF TMPA 0000 THEN TMPA 1001 IF T

温馨提示

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

评论

0/150

提交评论