数字抢答器设计

   一、摘  要:数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。

关键字: 抢答电路 定时电路 报警电路 时序控制

                           Summary

The figure vies for the answering device by the subject circuit and expands the circuit to make up . Have priority in code circuit , latch , decipher circuit and export the input signal of the entrant team on the display; Starting the warning circuit with the control circuit and host's switch, two the above-mentioned parts make up the subject circuit. Through timing circuit and decipher second signal function while outputs and realizes counting on the displaying that pulse produce circuit, form and expand the circuit. Through connect up , weld , debug figure vie for answering device take shape after the work.

Key word: Vie for answering the circuit  Timing circuit   Warning circuit  

  Time sequence controlling

二、 

摘要………………………………………………………………………………… 

Abstract………………………………………………………………………………Ⅱ<BR>一、引论…………………………………………………………………………1

三、实验部分

1)、 设计任务与要求

1. 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。

2. 设置一个系统清除和抢答控制开关S,该开关由主持人控制。

3. 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

6. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

2)、实验仪器设备:

1. 数字实验箱。

2. 集成电路74LS148 1片,74LS279 1片,74LS48 3片,74LS192 2片,NE555 2片,74LS00 1片,74LS121 1片。

3. 电阻 510Ω 2只,1KΩ 9只,4.7kΩ l只,5.1kΩ l只,100kΩ l只,10kΩ 1只, 15kΩ 1只, 68kΩ l只。

4. 电容 0.1uF 1只,10uf 2只,100uf 1只。

5. 三极管 3DG12 1只。

6. 其它:发光二极管2只,共阴极显示器3只

三、方案论证与比较:与普通抢答器相比,本作品有以下几方面优势:

    1、具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。

    2、具有定时功能,在30秒内无人抢答表示所有参赛选手获参赛队对本题弃权。

    3、30秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。

四、总体设计思路:

(一)设计任务与要求:

1.抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。

2.设置一个系统清除和抢答控制开关S,该开关由主持人控制。

3.抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

(二)设计原理与参考电路

1.数字抢答器总体方框图

如图11、1所示为总体方框图。其工作原理为:接通电源后,主持人将开关拨到"清除"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布"开始"抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关。

五、多功能硬件与软件设计及其理论分析与计算:

各单元部分电路设计如下:

   (1) 抢答器电路

参考电路如图2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关S置于"清除"端时,RS触发器的 端均为0,4个触发器输出置0,使74LS148的 =0,使之处于工作状态。当开关S置于"开始"时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出 经RS锁存后,1Q=1, =1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为"5"。此外,1Q=1,使74LS148 =1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为1Q=1,使 =1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置“清除”然后再进行下一轮抢答。74LS148为8线-3线优先编码器,表1为其功能表。

表1 74LS148的功能真值表

由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图3所示。表2为74192的真值表。

(3)报警电路

由555定时器和三极管构成的报警电路如图4所示。其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。

4)时序控制电路

    时序控制电路是抢答器设计的关键,它要完成以下三项功能:

①主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态。

②当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。

③当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。

根据上面的功能要求以及图 2,设计的时序控制电路如图 5所示。图中,门G1 的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端 。图11、4的工作原理是:主持人控制开关从"清除"位置拨到"开始"位置时,来自于图11、2中的74LS279的输出 1Q=0,经G3反相, A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,则"定时到信号"为 1,门G2的输出 =0,使 74LS148处于正常工作状态,从而实现功能①的要求。当选手在定时时间内按动抢答键时,1Q=1,经 G3反相, A=0,封锁 CP信号,定时器处于保持工作状态;同时,门G2的输出 =1,74LS148处于禁止工作状态,从而实现功能②的要求。当定时时间到时,则"定时到信号"为0, =1,74LS148处于禁止工作状态,禁止选手进行抢答。同时, 门G1处于关门状态,封锁 CP信号,使定时电路保持00状态不变,从而实现功能③的要求。集成单稳触发器74LS121用于控制报警电路及发声的时间。

六、系统的组装与调试及测试方法:

        3块实验电路板分别做成数字抢答器电路、可预置时间的定时电路、报警电路及时序控制电路,根据EWB仿真电路及工程上的可操作性布置芯片、元件、导线等。

        在焊接过程中,由于经验不足多次发生虚焊或者相邻焊点接触导致短路等事故,心急时也有小组成员被电烙铁烫伤的事发生。

        制作的第一块板即数字抢答电路板一开始测试时不能工作,又由于没有稳压电源而不能检验。情急之下,灵机一动,把3节干电池制成4.5伏电压源,又用万用表逐点排查,原来有虚焊的点。找出原因后并排斥故障后,电路板正常工作。深感欣慰!

        制作第2块板即可预置时间的定时电路时,3位成员都已有了自我感觉十分娴熟的焊接技术,不料忙中出错,重蹈覆辙,又有虚焊点。遂相互提醒,前事不忘,后事之师。

      

七、EWB仿真图:

由于EWB中没有74LS121,并且没有可以代替的74LS221,故时序控制电路的仿真无法完成。

八、仪器:

1. 数字实验箱。

2. 集成电路74LS148 1片,74LS279 1片,74LS48 3片,74LS192 2片,NE555 2片,74LS00 1片,74LS121 1片。

3. 电阻 510Ω 2只,1KΩ 9只,4.7kΩ l只,5.1kΩ l只,100kΩ l只,10kΩ 1只, 15kΩ 1只, 68kΩ l只。

4. 电容 0.1uF 1只,10uf 2只,100uf 1只。

5. 三极管 3DG12 1只。

6. 其它:发光二极管2只,共阴极显示器3只。

九、扩展功能:

1、可以设计声控装置,在主持人说开始时,系统自动完成清零并开始计时的功能。

2、在主持人读题的过程中,禁止抢答,可以在主持人控制的开关上另接一个与图2一样的电路,即可实现“违规者可见”的功能,即在主持人读题时如果有人违反比赛规定抢先按动按钮,显示器可以显示是哪个参赛队抢先,便于作出相应的处理。

如果提供相应的器材及时间上的宽限,我想我们已定可以完成上述扩展功能,进一步完善我们的作品。

十、心得体会:

          经历数星期的电子竞赛眼看尘埃落定,感觉忍不住要长出一口气。我们组的3位成员除学习外均有一定的日常工作,数日来,为了这个竞赛可谓废寝忘食,在实验室里日出而作,日落不息。将所有的课余时间均奉献给了这个比赛。

          结果怎样已然不再重要,在这几日里,我们经历了阶段性成功的狂喜、测试失败后的绝望、陷入困境时的不知所措,重新投入的振作。这样的比赛是无法孤军作战的,只有通力合作才有可能成功。3位成员在数日里的朝夕相伴中培养出了无与伦比的默契和深厚的友谊。

          由于前几次去实验室比较晚,结果没有空余的电脑可供使用,我们商量后,决定早上6点到实验室。于是,在零下的温度下,我们陆续到达。途中数次感叹,早晨的空气真好。

          除此之外,我们学会了焊接电路板,掌握了书本以外的电子技术知识,培养了专心致志的工作学习习惯,懂得了相互之间的理解与体谅,可谓获益匪浅。

          如果非要用一句话来概括我们的体会的话,那只能是:痛并快乐着。

十一、致谢:

          感谢电气工程学院提供者次比赛的机会;感谢长通公司提供电子器件;感谢电子实习基地提供场所及工具;感谢电子信息系主任王建元老师在我们陷入困境时的点拨;感谢我队指导于建立同学对我们的切实指导;感谢02级学长学姐们在实验室对我们的帮助与鼓励。

十二、参考文献:

      1、《电子技术基础.数字部分(第四版)》

高等教育出版社2003年3月  主编:康华光    

      2、《74系列芯片手册》

        重庆大学出版社 1999年9月 主编:李海  

图11、1数字抢答器框图

图11、2 数字抢答器电路

表10、1 74LS148的功能真值表

2)定时电路

图11、3 可预置时间的定时电路

图11、4 报警电路

图 11、5 时序控制电路

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是基于EP4CE6E22C8的VHDL洗衣机控制器的设计编码: ``` -- 电子定时器模块 library ieee; use ieee.std_logic_1164.all; entity Timer is port( clk: in std_logic; start: in std_logic; reset: in std_logic; time: out std_logic_vector(15 downto 0); beep: out std_logic; led1: out std_logic; led2: out std_logic; led3: out std_logic ); end entity Timer; architecture Behavioral of Timer is type state_type is (s_idle, s_forward, s_pause, s_backward); signal state: state_type := s_idle; signal count: integer range 0 to 49999999 := 0; -- 计数器,50MHz时钟信号,计数1秒 signal timer_val: integer range 0 to 599 := 0; -- 定时器初始值,60秒 signal forward_time: integer range 0 to 19 := 0; -- 正转时间,20秒 signal backward_time: integer range 0 to 19 := 0; -- 反转时间,20秒 signal pause_time: integer range 0 to 9 := 0; -- 暂停时间,10秒 signal beep_counter: integer range 0 to 999999 := 0; -- 控制蜂鸣器响声 signal beep_freq: integer range 0 to 999999 := 0; -- 蜂鸣器响声频率 signal beep_on: std_logic := '0'; -- 蜂鸣器开关 begin process(clk, reset) begin if reset = '1' then state <= s_idle; count <= 0; timer_val <= 60; forward_time <= 19; backward_time <= 19; pause_time <= 9; beep_counter <= 0; beep_freq <= 0; beep_on <= '0'; time <= "0000000000000000"; beep <= '0'; led1 <= '0'; led2 <= '0'; led3 <= '0'; elsif rising_edge(clk) then case state is -- 空闲状态,等待开始信号 when s_idle => if start = '1' then state <= s_forward; end if; -- 正转状态,持续20秒 when s_forward => if count = 0 then forward_time <= forward_time - 1; if forward_time = 0 then state <= s_pause; pause_time <= 9; led1 <= '0'; led2 <= '0'; led3 <= '1'; end if; end if; -- 暂停状态,持续10秒 when s_pause => if count = 0 then pause_time <= pause_time - 1; if pause_time = 0 then state <= s_backward; backward_time <= 19; led1 <= '0'; led2 <= '1'; led3 <= '0'; end if; end if; -- 反转状态,持续20秒 when s_backward => if count = 0 then backward_time <= backward_time - 1; if backward_time = 0 then state <= s_pause; pause_time <= 9; led1 <= '1'; led2 <= '0'; led3 <= '0'; end if; end if; end case; count <= count + 1; if count = 49999999 then count <= 0; timer_val <= timer_val - 1; if timer_val = -1 then time <= "0000000000000000"; beep_freq <= 2000; beep_on <= '1'; else time <= std_logic_vector(to_unsigned(timer_val, 16)); end if; end if; if beep_counter = beep_freq then beep_counter <= 0; beep_on <= not beep_on; else beep_counter <= beep_counter + 1; end if; end if; end process; beep <= beep_on; end architecture Behavioral; ``` 在上述代码中,Timer模块实现了电子定时器的功能,包括控制洗衣机正转、反转、暂停的时间,定时器计时结束时触发音响信号,用LED灯表示正转、反转、暂停三个状态,并且将定时器的值传递给数码管模块进行显示。 接下来是数码管模块的代码: ``` -- 数码管模块 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use ieee.std_logic_unsigned.all; entity SevenSegmentDisplay is port( clk: in std_logic; reset: in std_logic; start: in std_logic; time: in std_logic_vector(15 downto 0); display: out std_logic_vector(15 downto 0) ); end entity SevenSegmentDisplay; architecture Behavioral of SevenSegmentDisplay is signal count: integer range 0 to 49999999 := 0; -- 计数器,50MHz时钟信号,计数1秒 signal timer_val: integer range 0 to 599 := 0; -- 定时器初始值,60秒 signal beep_freq: integer range 0 to 999999 := 0; -- 蜂鸣器响声频率 -- 数码管码表,0~9 constant ssg_digits: std_logic_vector(9 downto 0) := "1111110000000000", "0110000000000000", "1101101000000000", "1111001000000000", "0110011000000000", "1011011000000000", "1011111000000000", "1110000000000000", "1111111000000000", "1111011000000000"; -- 数码管显示模式,0表示正常显示,1表示倒计时 signal mode: std_logic := '0'; -- 倒计时计数器 signal countdown_counter: integer range 0 to 99999999 := 0; begin process(clk, reset) begin if reset = '1' then count <= 0; timer_val <= 60; beep_freq <= 0; mode <= '0'; countdown_counter <= 0; display <= "0000000000000000"; elsif rising_edge(clk) then if start = '1' then mode <= '1'; end if; if mode = '0' then display <= ssg_digits(to_integer(unsigned(time(15 downto 12)))); else if count = 0 then countdown_counter <= countdown_counter + 1; if countdown_counter = 50000000 then countdown_counter <= 0; timer_val <= timer_val - 1; if timer_val = -1 then mode <= '0'; beep_freq <= 2000; end if; end if; end if; display <= ssg_digits(to_integer(unsigned(timer_val(5 downto 2)))); end if; count <= count + 1; if count = 49999999 then count <= 0; end if; if beep_freq > 0 then beep_freq <= beep_freq - 1; end if; end if; end process; -- 数码管显示模式,按键控制 process(reset, start) begin if reset = '1' then mode <= '0'; elsif rising_edge(start) then if mode = '0' then mode <= '1'; else mode <= '0'; end if; end if; end process; end architecture Behavioral; ``` 在上述代码中,SevenSegmentDisplay模块实现了数码管的显示功能,包括正常显示洗涤的预置时间和按倒计时方式对洗涤过程作计时显示。同时,通过按键控制数码管的显示模式。 需要注意的是,以上代码仅是模块的设计编码,还需要进行仿真和综合实现。同时,需要将模块中的I/O信号和外部电路进行连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值