郑州科技学院
EDA(电子设计自动化
设计报告)
题 目 电子抢答器的设计 学生姓名 陈 福 秀 专业班级 09电科一班 学 号 所 在 系 电气工程学院 任课教师 赵 明 冬 完成时间 2012年12月17日
目 录
1.八人抢答器设计题目与要求......................... - 1 -
1.1设计目的 ......................................................... - 1 - 1.2具体要求 .................................................. - 1 - 1.3设计功能 ......................................................... - 1 -
2.抢答器整体设计.................................................. - 1 -
2.1基本原理 .................................................. - 1 - 2.2单元电路设计 .................................................... - 2 -
2.2.1抢答电路的设计 .............................................. - 2 - 2.2.2定时电路的设计 .............................................. - 3 -
2.3 抢答器的程序 ................................................... - 4 -
2.4 仿真编辑.................................................... - 7 - 2.5 仿真效果 ........................................................... - 8 -
3.设计心得与体会.................................................. - 9 -
电子抢答器
1.八人抢答器设计题目与要求
1.1设计目的
EDA课程设计是以课本为基础结合上机实验操作的一门计算机应用技术,是电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,更是我们学习编程与设计技术的关键。通过这一学期的学习,我掌握了与EDA有关的基本方法熟悉了几种EDA软件如:Quartus II 软件,通过利用EDA软件能设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。抢答器也是目前市场上应用较广的一种电子元器件,通过这次课程设计锻炼了我们的实际操作能力及将所学知识灵活的应用于实际当中的结合能力,增强了与同学的沟通交际能力,总之,可以说是受益匪浅。 1.2
具体要求
在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。在相应的器件平台上完成设计的输入、编译、综合或适配通过。
1.3设计功能
8路抢答器控制系统是娱乐活动中经常使用的重要基础设备之一,根据抢答要求,系统所需实现的功能如下:
(1)主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。
(2)主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。
2.抢答器整体设计
2.1基本原理
本系统共由抢答鉴别模块、计时模块、计分模块和LCD译码显示模块等四部分组成。
抢答过程:主持人按下系统复位键(RST),系统进入抢答状态,计时模块和计分模块输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将其余七路抢答信号封锁,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组别号,并一直保持到下一轮主持人将系统清零为止。随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。计时至0时,停止计时,以中止未回答完问题。若参
赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号。主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。抢答器的结构图如下图2-1所示:
图2-1 抢答器结构框图
2.2单元电路设计
2.2.1抢答电路的设计
抢答电路的功能有两个:一是能分辨出选手按键的的先后,并锁存优先抢答者的编号,供译码显示电路用;二是要使其他选手的按键操作无效。选用优先编码74LS148和RS锁存器74LS279可以完成上述功能,其电路组成如图3-1所示:
图2-2-1 抢答电路
其工作原理是:当主持人控制开关处于“清零”位置时,RS触发器的R端为
低电平,输出端(4Q~1Q)全部为低电平。于是74LS48的BI=0,显示器灭灯;74LS148的选通输入端ST=0,74LS148处于工作状态,此时锁存电路不工作。当主持人将开关拨到“开始”位置时,优先编码电路和锁存电路同时处于工作状态,既抢答器处于等待工作状态,等待输入端I7、I6、I5、I4、I3、I2、I1、I0输入信号,当有选手将键按下时(如按下S5),74LS148的输出Y2Y1Y0=010,YEX=0,经RS锁存器后,CTR=1,BI=1,此时74LS279处于工作状态,4Q3Q2Q=101,经74LS48译码后,显示器显示出“5”。此外,CTR=1,使74LS148的ST端为高电平,74LS148处于禁止工作状态,封锁了其它按键的输入。当按下的键松开后,74LS148的YEX高电平,但由于CTR维持高电平不变,所以74LS148仍处于禁止工作状态,其它按键的输入信号仍不会被接受。这就保证了抢答者的优先性以及抢答电路的准确性。当优先抢答者回答完问题后,主持人操作控制开关S,使抢答电路复位,以便进行下一轮抢答。
2.2.2定时电路的设计
74LS48的7,6,2,3引脚接受来自74LS192的输出信号并把它译码 显示在数码管上。74LS192的9,10,11,15引脚完成时间设定功能,本设计要求定时30秒,所以把左边的芯片的1,15引脚接高电位,期于的全接低位,使的初始时间设定为30秒。555芯片完成产生秒脉冲的功能。工作过程为:抢答开始前,74LS192的置数端为低电位,处于初始状态,数码管显示为30,5引脚接高电位。抢答开始后,秒脉冲冲推动右边的芯片开始倒记时,同时右边芯片产生的信号做为左边芯片的CP信号推动左边的芯片倒记时,完成十进制的倒记时功能。当有人抢答后1Q的输出为1,经过非门后变为0,通过与门屏蔽了秒信号,停止记时,完成显示抢答时间的功能。当记到了30秒时,左边的芯片产生的定时到信号输出为低电位,也屏蔽了秒信号,使得数码管显示为00。
图2-2-2 定时电路
2.3 抢答器的程序
module qiangda8 (clr,clk,input1,input2,
input3,input4,input5,input6,input7,input8, seg,clockin,scan,LED);
input clr,clk,input1,input2,input3, input4,input5,input6,input7,input8; output [7:0] seg;output [7:0] scan;
output [3:0] LED;output clockin; reg [7:0] seg;reg [7:0] scan;reg [7:0] LED; reg clockin;reg [7:0] data; reg input_flag,count_flag;
reg [14:0] count1;reg [8:0] count2; reg [3:0] LED_N;
reg div1khz,div1hz;reg [2:0] cnt;
reg [7:0] dat;reg [7:0] count_one,count_ten; initial count_one='d0; initial data=4'b0000;
initial LED_N=8'b11111111; always @(posedge clk ) begin if(count1=='d25000)
begin div1khz
else begin count1
always @(posedge div1khz) begin if(count2=='d500)begin
div1hz
else begin count2
always @(posedge div1hz or negedge clr) begin if(!clr) begin
count_one
else if((!input_flag)&(!count_flag)) begin if(count_one=='d0&&count_ten=='d0) begin count_flag
else if(count_one=='d0)
begin count_one
else begin count_one
else begin count_one
always @(posedge clk ) begin
if(!clr) begin LED_N
else if((!input_flag)&(!count_flag))begin if(input1==0) begin
data
else if(input2==0)begin
data
else if(input3==0)begin
data
else if(input4==0)begin
data
else if(input5==0)begin
data
else if(input6==0)begin
data
else if(input7==0)begin
data
else if(input8==0)begin
data
else begin
data
always @(posedge clk) begin
LED
always @(posedge div1khz) begin
if(cnt=='d3) begin cnt
else begin cnt
always @(cnt,data,count_one,count_ten) begin case(cnt)
3'b000 : begin scan
3'b001 : begin scan
3'b010 : begin scan
always @(dat) begin case(dat)
4'b0000 : seg[7:0]
endmodule
图2—4 仿真条件图
Clk:时钟信号作为内部基准脉冲,低电平有效。Clr:主持人允许信号,启动过后才能实现抢答,低电平有效。Duinumber:输出显示电平,该电平是直接进行了译码,电平可以直接送入数码管,低电平有效。input1,input2,input3,input4,input5,input6,input7,input8作为8路输入信
号,低电平有效。Seg:7段数码管数据。Scan:数码管位选。 LED:输出LED灯指示。clockin:蜂鸣器。rst:机器自身清零信号,是整个抢答系统开始工作的初始条件,也叫做系统上电复位端,低电平有效。为了便于观察采取直观的功能仿真,从而不会存在器件自身的延时。机器与主持人清零可同步实现。主持人未按清零,抢答无效。当主持人未按下抢答允许键,抢答器进行的抢答无效。从而数出码值为“0”,即无抢答。
图2—5 仿真图
图2—6 仿真效果图
主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。最后译码输出,是数码管的电平值,低点亮。接通电源后,抢答主体机器自动清零,复位,此时主持人不按键,实现清零,抢答器处于禁止状态。当需要实现抢答时
候,主持人将开关接通,拨到
3.设计心得与体会
通过此次课程设计,我获益匪浅,本次电子课程设计实习将理论与实践有机地结合,既考查了同学对理论知识的掌握程度,由反映了实际动手能力,更主要的是考查了同学对知识的综合运用以及创新设计思维能力,为今后的发展提供了一次良好的学习环境。
针对课设题目八路抢答器,一开始还没有头绪,不会运用所学知识进行有效设计,但通过上网查阅各种类似的设计,去图书馆翻阅相关设计书籍,查阅所提供的芯片功能,确定基本设计方案,又通过仿真验证试验方案的可实行性,虽说比较烦杂但却对设计一个电路有了基本的经验。同时也使自己认识到:无论是在培养自己的实验动手能力还是培养自己的性情方面。在这次设计中,我花了不少的时间,其中有苦也有泪。苦的是我付出了不少的汗水,乐的是在付出的过程中我得到了许多,也学会了许多。在设计方面难免会出现这样那样的错误,但正是这些错误促进了我的进步。根据电路的特点,我用层次化结构化设计概念,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试,同时加深了层次化设计的概念。在这次课程设计中,我真正体会到了知识的重要性。在设计的过程中,遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论。 最后,在设计的过程中我进一步养成了软件设计的方法,完成一个项目的的程序,进一步了解了设计的步骤,进一步加深了对《EDA》这门课的理解,增强了以后学习的兴趣,为以后的工作积累了一定的经验。
在设计过程中学到了许多。作为现代的大学生,如果仅停留在以往的层次上,是远远跟不上时代的步伐,也无法使自己立足在竞争如此激烈的社会里,通过此次实习,看到了自己的水平和差距,学要在今后的学习中又进一步的提高。
- 9 -
郑州科技学院
EDA(电子设计自动化
设计报告)
题 目 电子抢答器的设计 学生姓名 陈 福 秀 专业班级 09电科一班 学 号 所 在 系 电气工程学院 任课教师 赵 明 冬 完成时间 2012年12月17日
目 录
1.八人抢答器设计题目与要求......................... - 1 -
1.1设计目的 ......................................................... - 1 - 1.2具体要求 .................................................. - 1 - 1.3设计功能 ......................................................... - 1 -
2.抢答器整体设计.................................................. - 1 -
2.1基本原理 .................................................. - 1 - 2.2单元电路设计 .................................................... - 2 -
2.2.1抢答电路的设计 .............................................. - 2 - 2.2.2定时电路的设计 .............................................. - 3 -
2.3 抢答器的程序 ................................................... - 4 -
2.4 仿真编辑.................................................... - 7 - 2.5 仿真效果 ........................................................... - 8 -
3.设计心得与体会.................................................. - 9 -
电子抢答器
1.八人抢答器设计题目与要求
1.1设计目的
EDA课程设计是以课本为基础结合上机实验操作的一门计算机应用技术,是电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,更是我们学习编程与设计技术的关键。通过这一学期的学习,我掌握了与EDA有关的基本方法熟悉了几种EDA软件如:Quartus II 软件,通过利用EDA软件能设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。抢答器也是目前市场上应用较广的一种电子元器件,通过这次课程设计锻炼了我们的实际操作能力及将所学知识灵活的应用于实际当中的结合能力,增强了与同学的沟通交际能力,总之,可以说是受益匪浅。 1.2
具体要求
在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。在相应的器件平台上完成设计的输入、编译、综合或适配通过。
1.3设计功能
8路抢答器控制系统是娱乐活动中经常使用的重要基础设备之一,根据抢答要求,系统所需实现的功能如下:
(1)主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。
(2)主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。
2.抢答器整体设计
2.1基本原理
本系统共由抢答鉴别模块、计时模块、计分模块和LCD译码显示模块等四部分组成。
抢答过程:主持人按下系统复位键(RST),系统进入抢答状态,计时模块和计分模块输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将其余七路抢答信号封锁,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组别号,并一直保持到下一轮主持人将系统清零为止。随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。计时至0时,停止计时,以中止未回答完问题。若参
赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号。主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。抢答器的结构图如下图2-1所示:
图2-1 抢答器结构框图
2.2单元电路设计
2.2.1抢答电路的设计
抢答电路的功能有两个:一是能分辨出选手按键的的先后,并锁存优先抢答者的编号,供译码显示电路用;二是要使其他选手的按键操作无效。选用优先编码74LS148和RS锁存器74LS279可以完成上述功能,其电路组成如图3-1所示:
图2-2-1 抢答电路
其工作原理是:当主持人控制开关处于“清零”位置时,RS触发器的R端为
低电平,输出端(4Q~1Q)全部为低电平。于是74LS48的BI=0,显示器灭灯;74LS148的选通输入端ST=0,74LS148处于工作状态,此时锁存电路不工作。当主持人将开关拨到“开始”位置时,优先编码电路和锁存电路同时处于工作状态,既抢答器处于等待工作状态,等待输入端I7、I6、I5、I4、I3、I2、I1、I0输入信号,当有选手将键按下时(如按下S5),74LS148的输出Y2Y1Y0=010,YEX=0,经RS锁存器后,CTR=1,BI=1,此时74LS279处于工作状态,4Q3Q2Q=101,经74LS48译码后,显示器显示出“5”。此外,CTR=1,使74LS148的ST端为高电平,74LS148处于禁止工作状态,封锁了其它按键的输入。当按下的键松开后,74LS148的YEX高电平,但由于CTR维持高电平不变,所以74LS148仍处于禁止工作状态,其它按键的输入信号仍不会被接受。这就保证了抢答者的优先性以及抢答电路的准确性。当优先抢答者回答完问题后,主持人操作控制开关S,使抢答电路复位,以便进行下一轮抢答。
2.2.2定时电路的设计
74LS48的7,6,2,3引脚接受来自74LS192的输出信号并把它译码 显示在数码管上。74LS192的9,10,11,15引脚完成时间设定功能,本设计要求定时30秒,所以把左边的芯片的1,15引脚接高电位,期于的全接低位,使的初始时间设定为30秒。555芯片完成产生秒脉冲的功能。工作过程为:抢答开始前,74LS192的置数端为低电位,处于初始状态,数码管显示为30,5引脚接高电位。抢答开始后,秒脉冲冲推动右边的芯片开始倒记时,同时右边芯片产生的信号做为左边芯片的CP信号推动左边的芯片倒记时,完成十进制的倒记时功能。当有人抢答后1Q的输出为1,经过非门后变为0,通过与门屏蔽了秒信号,停止记时,完成显示抢答时间的功能。当记到了30秒时,左边的芯片产生的定时到信号输出为低电位,也屏蔽了秒信号,使得数码管显示为00。
图2-2-2 定时电路
2.3 抢答器的程序
module qiangda8 (clr,clk,input1,input2,
input3,input4,input5,input6,input7,input8, seg,clockin,scan,LED);
input clr,clk,input1,input2,input3, input4,input5,input6,input7,input8; output [7:0] seg;output [7:0] scan;
output [3:0] LED;output clockin; reg [7:0] seg;reg [7:0] scan;reg [7:0] LED; reg clockin;reg [7:0] data; reg input_flag,count_flag;
reg [14:0] count1;reg [8:0] count2; reg [3:0] LED_N;
reg div1khz,div1hz;reg [2:0] cnt;
reg [7:0] dat;reg [7:0] count_one,count_ten; initial count_one='d0; initial data=4'b0000;
initial LED_N=8'b11111111; always @(posedge clk ) begin if(count1=='d25000)
begin div1khz
else begin count1
always @(posedge div1khz) begin if(count2=='d500)begin
div1hz
else begin count2
always @(posedge div1hz or negedge clr) begin if(!clr) begin
count_one
else if((!input_flag)&(!count_flag)) begin if(count_one=='d0&&count_ten=='d0) begin count_flag
else if(count_one=='d0)
begin count_one
else begin count_one
else begin count_one
always @(posedge clk ) begin
if(!clr) begin LED_N
else if((!input_flag)&(!count_flag))begin if(input1==0) begin
data
else if(input2==0)begin
data
else if(input3==0)begin
data
else if(input4==0)begin
data
else if(input5==0)begin
data
else if(input6==0)begin
data
else if(input7==0)begin
data
else if(input8==0)begin
data
else begin
data
always @(posedge clk) begin
LED
always @(posedge div1khz) begin
if(cnt=='d3) begin cnt
else begin cnt
always @(cnt,data,count_one,count_ten) begin case(cnt)
3'b000 : begin scan
3'b001 : begin scan
3'b010 : begin scan
always @(dat) begin case(dat)
4'b0000 : seg[7:0]
endmodule
图2—4 仿真条件图
Clk:时钟信号作为内部基准脉冲,低电平有效。Clr:主持人允许信号,启动过后才能实现抢答,低电平有效。Duinumber:输出显示电平,该电平是直接进行了译码,电平可以直接送入数码管,低电平有效。input1,input2,input3,input4,input5,input6,input7,input8作为8路输入信
号,低电平有效。Seg:7段数码管数据。Scan:数码管位选。 LED:输出LED灯指示。clockin:蜂鸣器。rst:机器自身清零信号,是整个抢答系统开始工作的初始条件,也叫做系统上电复位端,低电平有效。为了便于观察采取直观的功能仿真,从而不会存在器件自身的延时。机器与主持人清零可同步实现。主持人未按清零,抢答无效。当主持人未按下抢答允许键,抢答器进行的抢答无效。从而数出码值为“0”,即无抢答。
图2—5 仿真图
图2—6 仿真效果图
主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。最后译码输出,是数码管的电平值,低点亮。接通电源后,抢答主体机器自动清零,复位,此时主持人不按键,实现清零,抢答器处于禁止状态。当需要实现抢答时
候,主持人将开关接通,拨到
3.设计心得与体会
通过此次课程设计,我获益匪浅,本次电子课程设计实习将理论与实践有机地结合,既考查了同学对理论知识的掌握程度,由反映了实际动手能力,更主要的是考查了同学对知识的综合运用以及创新设计思维能力,为今后的发展提供了一次良好的学习环境。
针对课设题目八路抢答器,一开始还没有头绪,不会运用所学知识进行有效设计,但通过上网查阅各种类似的设计,去图书馆翻阅相关设计书籍,查阅所提供的芯片功能,确定基本设计方案,又通过仿真验证试验方案的可实行性,虽说比较烦杂但却对设计一个电路有了基本的经验。同时也使自己认识到:无论是在培养自己的实验动手能力还是培养自己的性情方面。在这次设计中,我花了不少的时间,其中有苦也有泪。苦的是我付出了不少的汗水,乐的是在付出的过程中我得到了许多,也学会了许多。在设计方面难免会出现这样那样的错误,但正是这些错误促进了我的进步。根据电路的特点,我用层次化结构化设计概念,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试,同时加深了层次化设计的概念。在这次课程设计中,我真正体会到了知识的重要性。在设计的过程中,遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论。 最后,在设计的过程中我进一步养成了软件设计的方法,完成一个项目的的程序,进一步了解了设计的步骤,进一步加深了对《EDA》这门课的理解,增强了以后学习的兴趣,为以后的工作积累了一定的经验。
在设计过程中学到了许多。作为现代的大学生,如果仅停留在以往的层次上,是远远跟不上时代的步伐,也无法使自己立足在竞争如此激烈的社会里,通过此次实习,看到了自己的水平和差距,学要在今后的学习中又进一步的提高。
- 9 -