logo资料库

VHDL八人抢答器设计.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
2.2 模块功能分析
2.2.1 参赛选手按钮电路
2.2.4 译码器
2.2.5号码和时间显示器
第3章 电路设计
课程设计报告 目 院 八人抢答器设计 工程学院 业 10 级电气工程及其自动化 2 班 题 学 专 组员:李国亮 2010160308 李 超 2010160302 黄旭婷 2010160303 何佳琪 2010160330 郭立波 2010160327
目录 第一章 设计任务要求············(1) 第二章 设计流程··············(2) 2.1 设计模块方框图··········(2) 2.2 模块功能分析···········(3) 第三章 电路设计···············(4) 3.1 系统封装图·············(4) 3.2 各种模块的 VHDL 文本输入语言·····(5) 3.3 各种模块的封装图和仿真波形·····(10) 第四章 设计总结···············(16) 参考文献····················(16)
第 1 章 设计任务要求 设计任务和基本要求: 8 人抢答器电路的功能要求如下: 1、 可供 8 人同时参赛,编号为 1 号至 8 号。没人均有一个抢答按钮,开 始抢答时,第一个按下抢答器的参赛者,数码管将显示其号码,喇叭 报警,获得抢答机会。 2、 主持人拥有一个控制开关,用于控制抢答系统的清零和启动抢答状 态。 3、 抢答器具有数据锁存好显示的功能。抢答开始后,若有参赛者按下抢 答按钮,其编号立即锁存,显示在数码管上,同时喇叭发出声音提示。 另外,在最先按下按钮后,需要封锁输入电路,禁止其他选手抢答。 最先抢答者的编号一直保持,直到主持人将系统清零为止。 4、 提高要求:设计时间显示电路,要求抢答者在规定时间内抢答,如在 抢答时间内无人按下抢答器,喇叭报警,抢答结束,数码管闪烁 0 号 码。(注:时间数字显示为倒计时方式) 1
第 2 章 设计流程 2.1 设计模块方框图: 参赛选手 抢答按钮 主持人 控制按钮 秒脉冲 编码器 锁存器 译码器 计时器 号码 显示屏 报 警 器 时间 显示屏
2.2 模块功能分析 2.2.1 参赛选手按钮电路 该电路由 8 个开关按键组成,每一个选手与一个开关对应。开关为常开型,抢答开始时 按下抢答开关时,开关断开,输入抢答信号为低电平。 2.2.2 编码器 编码器的作用是将开关信息转化为 8421BCD 码,以提供数字显示电路所需要的编码输 入。 2.2.3 锁存器 当只要有一个且为任意一个选手抢答输入信号产生时,锁存器电路被触发,在输出端产 生相应的开关电平信息,同时为避免之后的抢答开关按钮也按下产生错乱,最先产生的输出 电平变化又反馈回来将锁存器器锁定住,并保持输出的电平信息。 2.2.4 译码器 译码器的作用是将编码器输出的 8421BCD 码转化为数码管需要的逻辑状态。 2.2.5 号码和时间显示器 数码显示管有发光的共阴二极管(LED)数码管,喇叭为高电平触发。 2.2.6 计时器 通过脉冲来进行计时,用来抢答倒计时。 2.2.7 报警器 当有选手抢答成功时或倒计时到十秒后,喇叭鸣响。 3
第 3 章 电路设计 3.1 系统封装图: 图表 3.1 一、图 3.1 所示为抢答器的系统封装图,可以看到 Q1-Q8 为 8 组选手的输入抢答按钮, RST 为复位控制信号,CLK 是脉冲信号,该系统描述的功能是当所有开关输入信号 Q1-Q8 均未按下,锁存器输出为低电平,经过 8 个输入反馈信号则为高点平,该信号作为锁存 器时能端控制信号即 EN,使锁存器处在等待接收触发输入状态;当任一开关输入信号 Q1-Q8 中的任一开关按下时,输出信号中必然会有一路为高电平,则反馈信号发生非门 后变成低电平,时能信号 EN 成为低电平后,EN 传给锁存器则立即使锁存器封锁,这时 其他抢答者信息的输入将被封锁,不能再传输到锁存器中。 二、RST 为复位控制信号,也是低电平有效,当主持人复位后即提示抢答开始时,锁存 器全为低电平,反馈时能信号为高电平,是锁存器处于等待抢答输入信号的状态。 三、输入的信号一旦锁定后,译码器的 Y[3..0]信号的输入到 7 段译码器中,7 段译码 器含有 7 段共阴极二极管,对输入的 LED[1]~LED[7]进行验证,LED 数码管对应显示出最 先抢答者的编号,并且报警器发出响声。 四、当使能端按下后,计时器开始倒计时,如果在 10 秒内没有选手按按钮,这报警器 发出响声,并反馈到锁存器的使能端 EN 使 EN 成为低电平,立即使锁存器封锁,这时其 他抢答者信息的输入将被封锁,不能再传输到锁存器中。 4
3.2 各种模块的 VHDL 文本输入语言 一.编码器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BM IS PORT(B1,B2,B3,B4,B5,B6,B7,B8:IN STD_LOGIC; RST1 :IN STD_LOGIC; M: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END; ARCHITECTURE one OF BM IS SIGNAL M1: STD_LOGIC_VECTOR(1 TO 8); BEGIN M1<= B1&B2&B3&B4&B5&B6&B7&B8; PROCESS(M1,RST1) BEGIN IF RST1='0' THEN M<="0000"; ELSE CASE M1 IS WHEN "01111111" =>M<="0001"; WHEN "10111111" =>M<="0010"; WHEN "11011111" =>M<="0011"; WHEN "11101111" =>M<="0100"; WHEN "11110111" =>M<="0101"; WHEN "11111011" =>M<="0110"; WHEN "11111101" =>M<="0111"; WHEN "11111110" =>M<="1000"; WHEN OTHERS =>M<="0000"; END CASE; END IF; END PROCESS; END one; 二.锁存器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SC IS PORT(S:IN STD_LOGIC_VECTOR(3 DOWNTO 0); RST2,EN2:IN STD_LOGIC; C:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END; 5
ARCHITECTURE TWO OF SC IS BEGIN PROCESS(S,EN2,RST2) BEGIN IF RST2='0' THEN C<="0000"; ELSE IF EN2='1' THEN C<=S; END IF; END IF; END PROCESS; END TWO; 三.译码器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY YM IS PORT(Y:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED1:OUT STD_LOGIC_VECTOR(7 DOWNTO 1)); END; ARCHITECTURE THREE OF YM IS BEGIN PROCESS(Y) BEGIN CASE Y IS WHEN "0001"=>LED1<="0000110"; WHEN "0010"=>LED1<="1011011"; WHEN "0011"=>LED1<="1001111"; WHEN "0100"=>LED1<="1100110"; WHEN "0101"=>LED1<="1101101"; WHEN "0110"=>LED1<="1111101"; WHEN "0111"=>LED1<="0000111"; WHEN "1000"=>LED1<="1111111"; WHEN OTHERS=>LED1<="0111111"; END CASE; END PROCESS; END THREE; 四.报警器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BJ IS PORT(BC,BS:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 6
分享到:
收藏