EDA课程设计-抢答器.doc_第1页
EDA课程设计-抢答器.doc_第2页
EDA课程设计-抢答器.doc_第3页
EDA课程设计-抢答器.doc_第4页
EDA课程设计-抢答器.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燕 山 大 学 课 程 设 计 说 明 书燕山大学课 程 设 计 说 明 书题目: 抢答器 学院(系): 电气工程学院 年级专业: 08级电气工程及其自动化 学 号:学生姓名: 指导教师: 教师职称: 实验师 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:电子实验中心 学 号学生姓名专业(班级)08应电4班设计题目抢答器设计技术参数五人参赛,每人一个按钮;主持人一个按钮,按下开始,具有复位功能;抢中者对应的指示灯亮;显示抢中者序号;有人抢答时,蜂鸣2s。设计要求用拨码开关设定主持人及参赛者按钮;用红色信号指示灯组l1-l5表示对应参赛者指示灯;用点阵显示抢中者序号。工作量学会使用max+plusii软件、verilog hdl语言和实验箱;独立完成电路设计,编程下载、连接电路和调试;参加答辩并书写任务书。工作计划1. 了解eda的基本知识,学习使用软件max+plusii,下发任务书,开始电路设计;2. 学习verilog hdl语言,用verilog hdl进行程序设计3. 学习使用实验箱,继续电路设计;4. 完成电路设计;5. 编程下载、连接电路、调试和验收;6. 答辩并书写任务书。参考资料数字电子技术基础.阎石主编.高等教育出版社.eda课程设计a指导书.郑兆兆等编.指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2011年1月13日目 录第一章 设计说明41.1 设计思路41.2 模块介绍4第二章 verilog hdl设计源程序 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章 verilog hdl设计源程序顶层模块:module qiangdaqi(clk,k1,k2,k3,k4,k5,reset,q1,q2,q3,q4,q5,ra,row,flag);input clk,k1,k2,k3,k4,k5,reset;output q1,q2,q3,q4,q5,flag;output7:0 ra,row;qiangda u1(.clk(clk),.k1(k1),.k2(k2),.k3(k3),.k4(k4),.k5(k5), .reset(reset),.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5);dianzhen u2(.clk(clk),.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5),.ra(ra),.row(row);bee u3(.q1(q1),.q2(q2),.q3(q3),.q4(q4),.q5(q5),.clk(clk),.flag(flag);endmodule抢答模块:module qiangda(clk,k1,k2,k3,k4,k5,reset,q1,q2,q3,q4,q5);input clk,k1,k2,k3,k4,k5,reset;output q1,q2,q3,q4,q5;reg q1,q2,q3,q4,q5,lock;always(posedge clk or posedge reset)beginif(reset) /判断主持人是否复位beginlock=0;q1=0;q2=0;q3=0;q4=0;q5=0;endelsebeginif(k1=1&lock=0) /1号选手抢答beginq1=1;lock=1;endelse if(k2=1&lock=0) /2号选手抢答beginq2=1;lock=1;endelse if(k3=1&lock=0) /3号选手抢答beginq3=1;lock=1;endelse if(k4=1&lock=0) /4号选手抢答beginq4=1;lock=1;endelse if(k5=1&lock=0) /5号选手抢答beginq5=1;lock=1;endendendendmodule点阵模块:module dianzhen(clk,q1,q2,q3,q4,q5,ra,row);input clk,q1,q2,q3,q4,q5;output7:0 ra,row;reg7:0 ra,row,count;always(posedge clk)begincount=count+1; /循环,提供扫描控制信号if(count=9)count=1;if(q1) /控制点阵显示“1”begincase(count)1:begin row=hfe;ra=h08; end2:begin row=hfd;ra=h18; end3:begin row=hfb;ra=h38; end4:begin row=hf7;ra=h18; end5:begin row=hef;ra=h18; end6:begin row=hdf;ra=h18; end7:begin row=hbf;ra=h18; end8:begin row=h7f;ra=h3c; endendcaseendelse if(q2) /控制点阵显示“2”begincase(count)1:begin row=hfe;ra=h3c; end2:begin row=hfd;ra=h04; end3:begin row=hfb;ra=h04; end4:begin row=hf7;ra=h3c; end5:begin row=hef;ra=h20; end6:begin row=hdf;ra=h20; end7:begin row=hbf;ra=h20; end8:begin row=h7f;ra=h3c; endendcaseendelse if(q3) /控制点阵显示“3”begincase(count)1:begin row=hfe;ra=h3c; end2:begin row=hfd;ra=h04; end3:begin row=hfb;ra=h04; end4:begin row=hf7;ra=h3c; end5:begin row=hef;ra=h04; end6:begin row=hdf;ra=h04; end7:begin row=hbf;ra=h04; end8:begin row=h7f;ra=h3c; endendcaseendelse if(q4) /控制点阵显示“4”begincase(count)1:begin row=hfe;ra=h08; end2:begin row=hfd;ra=h18; end3:begin row=hfb;ra=h38; end4:begin row=hf7;ra=h58; end5:begin row=hef;ra=hfe; end6:begin row=hdf;ra=h18; end7:begin row=hbf;ra=h18; end8:begin row=h7f;ra=h3c; endendcaseendelse if(q5) /控制点阵显示“5”begincase(count)1:begin row=hfe;ra=h7c; end2:begin row=hfd;ra=h40; end3:begin row=hfb;ra=h40; end4:begin row=hf7;ra=h7c; end5:begin row=hef;ra=h04; end6:begin row=hdf;ra=h04; end7:begin row=hbf;ra=h04; end8:begin row=h7f;ra=h7c; endendcaseendelse /无人抢答或复位后,点阵无显示begincase(count)1:begin row=hfe;ra=h00; end2:begin row=hfd;ra=h00; end3:begin row=hfb;ra=h00; end4:begin row=hf7;ra=h00; end5:begin row=hef;ra=h00; end6:begin row=hdf;ra=h00; end7:begin row=hbf;ra=h00; end8:begin row=h7f;ra=h00; endendcaseendendendmodule蜂鸣器模块:module bee(q1,q2,q3,q4,q5,clk,flag);input q1,q2,q3,q4,q5,clk;output flag;reg flag;reg15:0 x1;always(posedge clk)beginif(q1|q2|q3|q4|q5)&(x12001) /若有人抢答,开始计数x1=x1+1; if(q1|q2|q3|q4|q5) /无人抢答或复位,计数清零x1=0;endalwaysbeginif(x1=0|x1=2001) /时钟信号采用1k,2000分频后产生2s信号flag=0;elseflag=1;endendmodule第三章 波形仿真图此波形图对应先抢答者为1号选手。此波形对应先抢答者为2号选手。此波形对应先抢答者为3号选手。此波形对应先抢答者为4号选手。此波形对应先抢答者为5号选手。第四章 管脚锁定及硬件连线管脚锁定情况如下:input/output端口名称管脚号input/output端口名称管脚号inputclkpin83outputflagpin38inputk1pin39outputq1pin75inputk2pin40outputq2pin85inputk3pin41outputq3pin87inputk4pin44outputq4pin89inputk5pin45outputq5pin92inputresetpin53outputra0pin173outputrow0pin174outputra1pin175outputrow1pin176outputra2pin177outputrow2pin179outputra3pin187outputrow3pin189outputra4pin190outputrow4pin191outputra5pin192outputrow5pin193outputra6pin195outputrow6pin196outputra7pin197outputrow7pin198硬件连线情况如下:pin83连接至箱上中频组11号端作为clk;pin173、175、177、187、190、192、195、197分别作为ra0ra7连接至箱上点阵显示信号接线组“col1_8r(t)”;pin174、176、179、189、191、193、196、198分别作为row07连接至箱上点阵显示信号接线组“row1_8(t)”。其余输入/输出芯片内部都有定义,无须连线。 第五章 总结可以说,是这次eda课程设计把我领进了eda的大门。以前自己对eda的理解仅限于利用protel等软件做出pcb版的传统方法;通过这次课程设计,我接触了一种全新的eda方法,让我受益匪浅。我在这次课程设计里学会了使用max+plus软件,初步掌握了verilog hdl语言。刚领到题目时发现抢答器的功能比较分散,于是采用了分模块的设计方法,在编程的时候也发现了不少问题,可能是由于芯片的原因,编程时有些c常用的语句不能被编译(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论