四路智能抢答器电路.docx

上传人:b****1 文档编号:1769515 上传时间:2023-05-01 格式:DOCX 页数:19 大小:1.73MB
下载 相关 举报
四路智能抢答器电路.docx_第1页
第1页 / 共19页
四路智能抢答器电路.docx_第2页
第2页 / 共19页
四路智能抢答器电路.docx_第3页
第3页 / 共19页
四路智能抢答器电路.docx_第4页
第4页 / 共19页
四路智能抢答器电路.docx_第5页
第5页 / 共19页
四路智能抢答器电路.docx_第6页
第6页 / 共19页
四路智能抢答器电路.docx_第7页
第7页 / 共19页
四路智能抢答器电路.docx_第8页
第8页 / 共19页
四路智能抢答器电路.docx_第9页
第9页 / 共19页
四路智能抢答器电路.docx_第10页
第10页 / 共19页
四路智能抢答器电路.docx_第11页
第11页 / 共19页
四路智能抢答器电路.docx_第12页
第12页 / 共19页
四路智能抢答器电路.docx_第13页
第13页 / 共19页
四路智能抢答器电路.docx_第14页
第14页 / 共19页
四路智能抢答器电路.docx_第15页
第15页 / 共19页
四路智能抢答器电路.docx_第16页
第16页 / 共19页
四路智能抢答器电路.docx_第17页
第17页 / 共19页
四路智能抢答器电路.docx_第18页
第18页 / 共19页
四路智能抢答器电路.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

四路智能抢答器电路.docx

《四路智能抢答器电路.docx》由会员分享,可在线阅读,更多相关《四路智能抢答器电路.docx(19页珍藏版)》请在冰点文库上搜索。

四路智能抢答器电路.docx

四路智能抢答器电路

 

数字电路与自动化课程设计报告

 

题目:

四路智能抢答器电路

班级:

姓名:

学号:

小组成员:

日期:

2010-12-26

一、设计目的……………………………………………(3)

二、设计要求………………………………….………...(3)

三、方案论证与比较……………………………………(4)

四、设计原理……………………………………………(5)

五、硬件制作与调试……………………………………(6)

六、设计小结……………………………………………(7)

七、参考书目….………………………………………...(8)

一、设计目的

1、通过课程设计,对数字逻辑的基本内容有进一步的了解,特别是时序逻辑电路的设计。

能把所学到的数字逻辑理论知识进行实践,操作。

2、提高动手能力的同时对常用的集成芯片有一定的了解,在电路设计方面有感性的认识。

3、另外还要掌握电路原理和分析电路设计流程,每个电路的设计都要有完整的设计流程。

这样才能在分析电路有良好的思路,便于找出错的原因。

二、设计要求

设计一个4路智能抢答器,具体设计要求如下:

1、抢答器同时供4名选手,分别用4个按钮S1~S4表示。

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

3、抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时二极管发出红灯提示。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如25秒)。

当主持人启动“开始”键后,定时器进行减计时。

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

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

7、抢答器具有暂停功能,当暂停时选手禁止抢答。

三、方案论证与比较

抢答按键

锁存电路

编码电路

译码电路

序号显示

定时电路

主持人控制开关

脉冲产生电路

定时显示

时序控制电路

报警电路

 

设计的方案有以下几种:

1、电路选用优先编码器74LS148、锁存器74LS373和74LS48译码器来完成。

该电路主要完成两个功能:

一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键,其按键操作无效。

再由555定时器秒脉冲产生电路、十进制同步加减计数器74LS192减法计数电路、74ls47译码器和2个7段数码管即相关电路组成。

两块74LS192实现减法计数,然后通过译码器显示到数码管上,其时钟信号由时钟产生电路提供。

2、方案二:

各路选手抢答后产生的高低电平直接经过优先编码电路,然后经过锁存器(74LS279)、译码电路到七段数码管的同时,由555定时器秒脉冲产生电路产生的秒脉冲驱动定时电路工作,主持人开关通过控制电路来实现对整体电路的调节。

四、设计原理

1.抢答器和显示电路

设计电路如图1所示。

电路选用优先编码器74LS148、锁存器74LS373和74LS48译码器来完成。

该电路主要完成两个功能:

一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(显示电路采用七段数字数码显示管);二是禁止其他选手按键,其按键操作无效。

工作过程:

开关S置于"清除"端时,锁存器的LE端输入为“1”,停止工作。

当开关S置于"开始"时,抢答器处于等待工作状态,74LS373的LE端为“0”,当有选手将抢答按键按下时(如按下S5),LE端变为“1”将数据锁存。

在经过优先编码器和译码器将数据输入数码管显示。

如有再次抢答需由主持人将S开关重新置“清除”然后再进行下一轮抢答。

2.定时电路

该部分主要由555定时器秒脉冲产生电路、十进制同步加减计数器74LS192减法计数电路、74ls47译码器和2个7段数码管即相关电路组成。

具体电路如图2所示。

两块74LS192实现减法计数,然后通过译码器显示到数码管上,其时钟信号由时钟产生电路提供。

当主持人拨到“开始”时,计数器开始减法计数工作,并将时间显示在数码显示管上,当有人抢答时,停止计数并显示此时的倒计时时间;如果没有人抢答,且倒计时到“0”时,输出低电平到时序控制电路,控制报警电路报警,同时以后选手抢答无效。

555的3端输出的脉冲的频率为f=0.7C(r1+2*r2),结合我们的实际经验及考虑到元器件的成本,我们选择的电阻值为R1=2K,R2=20K,C=33uF,代入到上式中即得。

3.时序控制电路

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

(1)主持人将控制开关拨到“开始”位置时,抢答电路和定时电路进入正常抢答工作状态。

(2)当参赛选手按动抢答键时,二极管灯亮,抢答电路和定时电路停止工作。

(3)当设定的抢答时间到,无人抢答时,二极管灯亮,同时抢答电路和定时电路停止工作。

电路如图3

五、硬件制作与调试

硬件制作:

先仿真电路实验后,再将电路进行排版设计电路的接法及放置。

等全部的安排工作都做好了后就进行电路的焊接工作,焊电路的时候先不要全部一起焊出来,先一部分一部分焊,然后对焊好的先进行调试,看其是否能不能正常工作,如果能够正常工作就进行下一部分电路的焊接;如果不能让正常工作则对其进行检查,直到电路可以用为止。

完成了对每一部分电路的单独焊接并且都可以用后,再将每一部分电路进行连接,使其成为完整的电路。

调试:

再焊电路的过程中出现过定时电路不能进行准时的定时,然后对其进行了调试及其检查是555定时器没接好,然后将其接好了后再试试了下就可以用了。

实物图如图:

六、设计小结

经过两个星期的共同努力,我们终于完成了数字电子技术课设。

虽然时间不长,但是在这个过程中我得到了很多东西。

因为以前没有做过这一方面的课设,所以,一开始看到这个题目的时候感觉有点不知所措,不知道要从什么地方开始做。

经过老师的指导后,我和另一位同学开始查资料、讨论。

在这个过程中,我们有冲突、争论、矛盾,但经过商量我们找到了最好的方法,同时也收获了友谊。

在这几日里,我们经历了阶段性成功的狂喜、测试失败后的绝望、陷入困境时的不知所措,重新投入的振作。

我们培养出了无与伦比的默契和深厚的友谊。

通过本次实验,最大的收获就是把书本与实践结合在一起,提高动手能力了。

学到了很多东西,懂得了团队合作的真正意义,对我以后的学习和工作帮助很大。

这次课设能够顺利的完成,我非常感谢帮助我的同学和老师。

感谢老师的指导!

感谢同学的热心帮助!

谢谢!

七、参考书目

1、XX网站

2、电子芯片资料网

3、数字电子技术基础

 

图1抢答和显示电路图

图2定时电路

图3

(一)抢答鉴别模块

1、VHDL源程序

libraryieee;--抢答鉴别模块

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityqdjbis

port(rst,clk2:

instd_logic;

s0,s1,s2,s3:

instd_logic;

states:

bufferstd_logic_vector(3downto0);

tmp:

outstd_logic);

endqdjb;

architectureoneofqdjbis

signalst:

std_logic_vector(3downto0);

begin

p1:

process(s0,rst,s1,s2,s3,clk2)

begin

ifrst='0'then

tmp<='0';st<="0000";

elsifclk2'eventandclk2='1'then

if(s0='1'orst(0)='1')andnot(st

(1)='1'orst

(2)='1'orst(3)='1')thenst(0)<='1';

endif;

if(s1='1'orst

(1)='1')andnot(st(0)='1'orst

(2)='1'orst(3)='1')thenst

(1)<='1';

endif;

if(s2='1'orst

(2)='1')andnot(st(0)='1'orst

(1)='1'orst(3)='1')thenst

(2)<='1';

endif;

if(s3='1'orst(3)='1')andnot(st(0)='1'orst

(1)='1'orst

(2)='1')thenst(3)<='1';

endif;

tmp<=s0ors1ors2ors3;

endif;

endprocessp1;

p2:

process(states(0),states

(1),states

(2),states(3))

begin

if(st="0000")thenstates<="0000";

elsif(st<="0001")thenstates<="0001";

elsif(st<="0010")thenstates<="0010";

elsif(st<="0100")thenstates<="0011";

elsif(st<="1000")thenstates<="0100";

endif;

endprocessp2;

endone;

2、仿真图:

(二)计时模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityjsis

port(clk,rst,s,stop:

instd_logic;

warn:

outstd_logic;

ta,tb:

bufferstd_logic_vector(3downto0));

endjs;

architectureoneofjsis

signalco:

std_logic;

begin

p1:

process(clk,rst,s,stop,ta)

begin

ifrst='0'orstop='1'then

ta<="0000";

elsifclk'eventandclk='1'then

co<='0';

ifs='1'then

ifta="0000"then

ta<="1001";co<='1';

elseta<=ta-1;

endif;

endif;

endif;

endprocessp1;

p2:

process(co,rst,s,stop,tb)

begin

ifrst='0'orstop='1'then

tb<="0010";

elsifco'eventandco='1'then

ifs='1'then

iftb="0000"thentb<="0011";

elsetb<=tb-1;

endif;

endif;

endif;

endprocessp2;

2、仿真图

(三)数据选择模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitysjxzis

port(a,b,c:

instd_logic_vector(3downto0);

clk2,rst:

instd_logic;

s:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(3downto0));

endsjxz;

architecturebody_chooserofsjxzis

signalcount:

std_logic_vector(1downto0);

begin

s<=count;

process(clk2,rst)

begin

if(rst='0')thencount<="00";

elsif(clk2'eventandclk2='1')then

if(count>="10")then

count<="00";

elsecount<=count+1;

endif;

endif;

casecountis

when"00"=>y<=a;

when"01"=>y<=b;

when"10"=>y<=c;

whenothers=>null;

endcase;

endPROCESS;

endbody_chooser;

2、仿真图

(四)报警模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYALARMIS

PORT(CLK,I:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDALARM;

ARCHITECTUREBEHAVEOFALARMIS

SIGNALWARN:

STD_LOGIC;

SIGNALN:

INTEGERRANGE0TO20;

BEGIN

Q<=WARN;

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFI='0'THEN

WARN<='0';

ELSIF(I='1'ANDN<=19)THEN

WARN<=NOTWARN;

N<=N+1;

ELSE

WARN<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDBEHAVE;

2、仿真图

(五)译码模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYYMQIS

PORT(AIN4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDYMQ;

ARCHITECTUREARTOFYMQIS

BEGIN

PROCESS(AIN4)

BEGIN

CASEAIN4IS

WHEN"0000"=>DOUT7<="1111110";--0

WHEN"0001"=>DOUT7<="0110000";--1

WHEN"0010"=>DOUT7<="1101101";--2

WHEN"0011"=>DOUT7<="1111001";--3

WHEN"0100"=>DOUT7<="0110011";--4

WHEN"0101"=>DOUT7<="1011011";--5

WHEN"0110"=>DOUT7<="1011111";--6

WHEN"0111"=>DOUT7<="1110000";--7

WHEN"1000"=>DOUT7<="1111111";--8

WHEN"1001"=>DOUT7<="1111011";--9

WHENOTHERS=>DOUT7<="0000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

2、仿真图

(六)分频模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYclkdivIS

PORT(clk2:

INSTD_LOGIC;

clk16:

OUTSTD_LOGIC);

ENDclkdiv;

ARCHITECTURErtlOFclkdivIS

SIGNALcount:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(clk2)

BEGIN

IF(clk2'eventANDclk2='1')THEN

IF(count="1111")THEN

Count<="0000";

ELSE

Count<=count+1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(clk2)

BEGIN

IF(clk2'eventANDclk2='1')THEN

IF(count="1111")THEN

clk16<='1';

ELSE

clk16<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDrtl;

2、仿真图

(七)顶层文件

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityqiangdaqiis

port(clk,clk2,s,s0,s1,s2,s3,stop,rst:

instd_logic;

n,k,q_out:

outstd_logic;

m:

outstd_logic_vector(1downto0);

a,b,c,d,e,f,g:

outstd_logic);

endqiangdaqi;

architecturebhvofqiangdaqiis

componentqdjbis

port(clk2,rst:

instd_logic;

s0,s1,s2,s3:

instd_logic;

tmp:

outstd_logic;

states:

outstd_logic_vector(3downto0));

endcomponent;

componentjsis

port(clk,rst,s,stop:

instd_logic;

ring,warn:

outstd_logic;

ta,tb:

bufferstd_logic_vector(3downto0));

endcomponent;

componentsjxzis

port(clk2,rst:

instd_logic;

s:

outstd_logic_vector(1downto0);

a,b,c:

instd_logic_vector(3downto0);

y:

outstd_logic_vector(3downto0));

endcomponent;

componentymqis

port(ain4:

instd_logic_vector(3downto0);

dout7:

outstd_logic_vector(6downto0));

endcomponent;

componentalarmis

port(clk,i:

instd_logic;

q:

outstd_logic);

endcomponent;

signalstates_out,ta_out,tb_out,y_out:

std_logic_vector(3downto0);

signalledout:

std_logic_vector(6downto0);

signalw:

std_logic;

begin

a<=ledout(6);b<=ledout(5);c<=ledout(4);d<=ledout(3);e<=ledout

(2);f<=ledout

(1);g<=ledout(0);

u1:

qdjbportmap(clk2,rst,s0,s1,s2,s3,tmp=>k,states=>states_out);

u2:

jsportmap(clk,rst,s,stop,warn=>n,ta=>ta_out,tb=>tb_out);

u3:

sjxzportmap(clk2=>clk2,rst=>rst,a=>states_out,b=>ta_out,c=>tb_out,s=>m,y_out;

u4:

ymqportmap(ain4=>y_out,DOUT7=>ledout);

u5:

alarmportmap(clk2,i=>s,q_out);

endbhv;

2、仿真图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2