EDA课程设计抢答器.docx

上传人:b****4 文档编号:5415108 上传时间:2023-05-08 格式:DOCX 页数:16 大小:309.10KB
下载 相关 举报
EDA课程设计抢答器.docx_第1页
第1页 / 共16页
EDA课程设计抢答器.docx_第2页
第2页 / 共16页
EDA课程设计抢答器.docx_第3页
第3页 / 共16页
EDA课程设计抢答器.docx_第4页
第4页 / 共16页
EDA课程设计抢答器.docx_第5页
第5页 / 共16页
EDA课程设计抢答器.docx_第6页
第6页 / 共16页
EDA课程设计抢答器.docx_第7页
第7页 / 共16页
EDA课程设计抢答器.docx_第8页
第8页 / 共16页
EDA课程设计抢答器.docx_第9页
第9页 / 共16页
EDA课程设计抢答器.docx_第10页
第10页 / 共16页
EDA课程设计抢答器.docx_第11页
第11页 / 共16页
EDA课程设计抢答器.docx_第12页
第12页 / 共16页
EDA课程设计抢答器.docx_第13页
第13页 / 共16页
EDA课程设计抢答器.docx_第14页
第14页 / 共16页
EDA课程设计抢答器.docx_第15页
第15页 / 共16页
EDA课程设计抢答器.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA课程设计抢答器.docx

《EDA课程设计抢答器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计抢答器.docx(16页珍藏版)》请在冰点文库上搜索。

EDA课程设计抢答器.docx

EDA课程设计抢答器

燕山大学

课程设计说明书

 

题目:

抢答器

 

学院(系):

电气工程学院

年级专业:

08级电气工程及其自动化

学号:

学生姓名:

指导教师:

教师职称:

实验师

 

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

电子实验中心

学号

学生姓名

专业(班级)

08应电4班

设计题目

抢答器

●五人参赛,每人一个按钮;

●主持人一个按钮,按下开始,具有复位功能;

●抢中者对应的指示灯亮;

●显示抢中者序号;

●有人抢答时,蜂鸣2s。

●用拨码开关设定主持人及参赛者按钮;

●用红色信号指示灯组L1-L5表示对应参赛者指示灯;

●用点阵显示抢中者序号。

●学会使用Max+PlusII软件、VerilogHDL语言和实验箱;

●独立完成电路设计,编程下载、连接电路和调试;

●参加答辩并书写任务书。

1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;

2.学习VerilogHDL语言,用VerilogHDL进行程序设计

3.学习使用实验箱,继续电路设计;

4.完成电路设计;

5.编程下载、连接电路、调试和验收;

6.答辩并书写任务书。

《数字电子技术基础》.阎石主编.高等教育出版社.

《EDA课程设计A指导书》.郑兆兆等编.

 

指导教师签字

基层教学单位主任签字

说明:

此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2011年1月13日

 

第一章设计说明……………………………………………………………………………4

1.1设计思路………………………………………………………………………4

1.2模块介绍………………………………………………………………………4

第二章VerilogHDL设计源程序…………………………………………………………5

第三章波形仿真图………………………………………………………………………13

第四章管脚锁定及硬件连线……………………………………………………………16

第五章总结………………………………………………………………………………17

参考文献……………………………………………………………………………………18

 

 

第一章设计说明

1.1设计思路

本次EDA课程设计的题目是抢答器。

要求实现5人抢答功能;有人抢答时蜂鸣2S;用L1-L5表示对应参赛者指示灯;用点阵显示抢中者序号。

根据任务书的要求,当有第一个抢答信号时,将对应的端口置为高电平,同时产生锁定信号将其余抢答者的信号屏蔽,端口连接红色信号指示灯组L1-L5,同时作为蜂鸣器和点阵的输入信号。

当主持人复位按钮按下时,将所有端口置零,即可开始下次抢答。

当输出端口q1至q5有信号,即有人抢答时,给蜂鸣器高电平使其发声,同时利用对clk的分频控制延时,延时结束给蜂鸣器低电平。

点阵模块根据输入的q1至q5信号,依次产生对应的点阵控制信号RA和ROW。

本次设计包括clk,k1,k2,k3,k4,k5,reset六个输入和q1,q2,q3,q4,q5,RA,ROW,flag八个输出。

其中RA,ROW为八位,7为高位,0为低位。

q1至q5与红色信号指示灯组L1-L5相连;RA、ROW与点阵的控制端RA、ROW相连;flag与SPKER相连。

1.2模块介绍

本次课程设计的模块包括抢答部分、点阵显示部分和蜂鸣器部分。

抢答部分利用always块对每个clk的上升沿敏感,利用外层的if语句判断主持人按钮reset是否按下,若没有按下进入内层if语句,对5个抢答者的信号依次进行判定并产生输出信号q1至q5及锁定信号lock。

理论上可分辨时间相差0.001秒的抢答信号,对于实际应用来说已经够用了,提高clk频率可以进一步提高分辨率。

点阵显示部分采用if循环,控制在每个clk的上升沿计数值加1,构成八进制计数器,得到点阵的扫描信号;if语句嵌套case语句将抢答者情况罗列出来,对ROW、RA依次进行赋值。

蜂鸣器部分在每个clk的上升沿判断是否有人抢答,若有信号转入循环延时,同时蜂鸣器开始发声,对1KHZ的clk进行分频,延时结束后,蜂鸣器无声。

第2章VerilogHDL设计源程序

顶层模块:

moduleqiangdaqi(clk,k1,k2,k3,k4,k5,reset,q1,q2,q3,q4,q5,RA,ROW,flag);

inputclk,k1,k2,k3,k4,k5,reset;

outputq1,q2,q3,q4,q5,flag;

output[7:

0]RA,ROW;

qiangdau1(.clk(clk),.k1(k1),.k2(k2),.k3(k3),.k4(k4),.k5(k5),

.reset(reset),.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5));

dianzhenu2(.clk(clk),.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5),

.RA(RA),.ROW(ROW));

beeu3(.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5),.clk(clk),.flag(flag));

endmodule

抢答模块:

moduleqiangda(clk,k1,k2,k3,k4,k5,reset,q1,q2,q3,q4,q5);

inputclk,k1,k2,k3,k4,k5,reset;

outputq1,q2,q3,q4,q5;

regq1,q2,q3,q4,q5,lock;

always@(posedgeclkorposedgereset)

begin

if(reset)//判断主持人是否复位

begin

lock=0;

q1=0;q2=0;q3=0;q4=0;q5=0;

end

else

begin

if(k1==1&&lock==0)//1号选手抢答

begin

q1=1;

lock=1;

end

elseif(k2==1&&lock==0)//2号选手抢答

begin

q2=1;

lock=1;

end

elseif(k3==1&&lock==0)//3号选手抢答

begin

q3=1;

lock=1;

end

elseif(k4==1&&lock==0)//4号选手抢答

begin

q4=1;

lock=1;

end

elseif(k5==1&&lock==0)//5号选手抢答

begin

q5=1;

lock=1;

end

end

end

endmodule

点阵模块:

moduledianzhen(clk,q1,q2,q3,q4,q5,RA,ROW);

inputclk,q1,q2,q3,q4,q5;

output[7:

0]RA,ROW;

reg[7:

0]RA,ROW,count;

always@(posedgeclk)

begin

count=count+1;//循环,提供扫描控制信号

if(count==9)

count=1;

if(q1)//控制点阵显示“1”

begin

case(count)

1:

beginROW='hfe;RA='h08;end

2:

beginROW='hfd;RA='h18;end

3:

beginROW='hfb;RA='h38;end

4:

beginROW='hf7;RA='h18;end

5:

beginROW='hef;RA='h18;end

6:

beginROW='hdf;RA='h18;end

7:

beginROW='hbf;RA='h18;end

8:

beginROW='h7f;RA='h3c;end

endcase

end

elseif(q2)//控制点阵显示“2”

begin

case(count)

1:

beginROW='hfe;RA='h3c;end

2:

beginROW='hfd;RA='h04;end

3:

beginROW='hfb;RA='h04;end

4:

beginROW='hf7;RA='h3c;end

5:

beginROW='hef;RA='h20;end

6:

beginROW='hdf;RA='h20;end

7:

beginROW='hbf;RA='h20;end

8:

beginROW='h7f;RA='h3c;end

endcase

end

elseif(q3)//控制点阵显示“3”

begin

case(count)

1:

beginROW='hfe;RA='h3c;end

2:

beginROW='hfd;RA='h04;end

3:

beginROW='hfb;RA='h04;end

4:

beginROW='hf7;RA='h3c;end

5:

beginROW='hef;RA='h04;end

6:

beginROW='hdf;RA='h04;end

7:

beginROW='hbf;RA='h04;end

8:

beginROW='h7f;RA='h3c;end

endcase

end

elseif(q4)//控制点阵显示“4”

begin

case(count)

1:

beginROW='hfe;RA='h08;end

2:

beginROW='hfd;RA='h18;end

3:

beginROW='hfb;RA='h38;end

4:

beginROW='hf7;RA='h58;end

5:

beginROW='hef;RA='hfe;end

6:

beginROW='hdf;RA='h18;end

7:

beginROW='hbf;RA='h18;end

8:

beginROW='h7f;RA='h3c;end

endcase

end

elseif(q5)//控制点阵显示“5”

begin

case(count)

1:

beginROW='hfe;RA='h7c;end

2:

beginROW='hfd;RA='h40;end

3:

beginROW='hfb;RA='h40;end

4:

beginROW='hf7;RA='h7c;end

5:

beginROW='hef;RA='h04;end

6:

beginROW='hdf;RA='h04;end

7:

beginROW='hbf;RA='h04;end

8:

beginROW='h7f;RA='h7c;end

endcase

end

else//无人抢答或复位后,点阵无显示

begin

case(count)

1:

beginROW='hfe;RA='h00;end

2:

beginROW='hfd;RA='h00;end

3:

beginROW='hfb;RA='h00;end

4:

beginROW='hf7;RA='h00;end

5:

beginROW='hef;RA='h00;end

6:

beginROW='hdf;RA='h00;end

7:

beginROW='hbf;RA='h00;end

8:

beginROW='h7f;RA='h00;end

endcase

end

end

endmodule

蜂鸣器模块:

modulebee(q1,q2,q3,q4,q5,clk,flag);

inputq1,q2,q3,q4,q5,clk;

outputflag;

regflag;

reg[15:

0]x1;

always@(posedgeclk)

begin

if((q1||q2||q3||q4||q5)&&(x1<2001))//若有人抢答,开始计数

x1=x1+1;

if(~(q1||q2||q3||q4||q5))//无人抢答或复位,计数清零

x1=0;

end

always

begin

if(x1==0||x1==2001)//时钟信号采用1K,2000分频后产生2S信号

flag=0;

else

flag=1;

end

endmodule

 

第三章波形仿真图

此波形图对应先抢答者为1号选手。

此波形对应先抢答者为2号选手。

 

此波形对应先抢答者为3号选手。

此波形对应先抢答者为4号选手。

 

此波形对应先抢答者为5号选手。

 

第四章管脚锁定及硬件连线

管脚锁定情况如下:

INPUT/OUTPUT

端口名称

管脚号

INPUT/OUTPUT

端口名称

管脚号

INPUT

clk

Pin83

OUTPUT

flag

Pin38

INPUT

k1

Pin39

OUTPUT

q1

Pin75

INPUT

k2

Pin40

OUTPUT

q2

Pin85

INPUT

k3

Pin41

OUTPUT

q3

Pin87

INPUT

k4

Pin44

OUTPUT

q4

Pin89

INPUT

k5

Pin45

OUTPUT

q5

Pin92

INPUT

reset

Pin53

OUTPUT

RA0

Pin173

OUTPUT

ROW0

Pin174

OUTPUT

RA1

Pin175

OUTPUT

ROW1

Pin176

OUTPUT

RA2

Pin177

OUTPUT

ROW2

Pin179

OUTPUT

RA3

Pin187

OUTPUT

ROW3

Pin189

OUTPUT

RA4

Pin190

OUTPUT

ROW4

Pin191

OUTPUT

RA5

Pin192

OUTPUT

ROW5

Pin193

OUTPUT

RA6

Pin195

OUTPUT

ROW6

Pin196

OUTPUT

RA7

Pin197

OUTPUT

ROW7

Pin198

硬件连线情况如下:

Pin83连接至箱上中频组11号端作为clk;Pin173、175、177、187、190、192、195、197分别作为RA0—RA7连接至箱上点阵显示信号接线组“COL1_8R(T)”;Pin174、176、179、189、191、193、196、198分别作为ROW0—7连接至箱上点阵显示信号接线组“ROW1_8(T)”。

其余输入/输出芯片内部都有定义,无须连线。

 

第五章总结

可以说,是这次EDA课程设计把我领进了EDA的大门。

以前自己对EDA的理解仅限于利用Protel等软件做出PCB版的传统方法;通过这次课程设计,我接触了一种全新的EDA方法,让我受益匪浅。

我在这次课程设计里学会了使用Max+PlusⅡ软件,初步掌握了VerilogHDL语言。

刚领到题目时发现抢答器的功能比较分散,于是采用了分模块的设计方法,在编程的时候也发现了不少问题,可能是由于芯片的原因,编程时有些C常用的语句不能被编译(比如for循环,while语句)让我不得不用别的语句代替,VerilogHDL关键词区分大小写等和C语言不同的部分也让我不太适应。

经过多次调试程序编译通过的时候我非常兴奋。

之后管脚锁定和下箱出现了两个问题,点阵的显示与正常相反,蜂鸣器的延时长于2S。

第一个问题经过检查后发现是自己粗心把RA管脚接反了,第二个问题可能是因为控制蜂鸣器的时钟分频信号运算有延迟,经改动后解决。

上箱调试让我明白了理论与实际的差异,理论需要经过实践才能发现它的不足并进行修改完善。

经过几天的努力,在老师的辛勤指导下,我顺利的完成了任务。

最后,对帮助指导过我的吕宏诗和张强老师表示衷心的感谢!

 

参考文献

1郑兆兆.EDA课程设计A指导书.燕山大学出版社,2010年

2阎石.数字电子技术基础.高等教育出版社.2010年

 

燕山大学课程设计评审意见表

指导教师评语:

①该生学习态度(认真较认真不认真)

②该生迟到、早退现象(有无)

③该生依赖他人进行设计情况(有无)

 

平时成绩:

指导教师签字:

2011年1月14日

图面及其它成绩:

答辩小组评语:

①设计巧妙,实现设计要求,并有所创新。

②设计合理,实现设计要求。

③实现了大部分设计要求。

④没有完成设计要求,或者只实现了一小部分的设计要求。

答辩成绩:

组长签字:

2011年1月14日

课程设计综合成绩:

答辩小组成员签字:

2011年1月14日

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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