您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDA课程数字秒表设计
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:自动化作者所在班级:B08221作者姓名:赵敏指导教师姓名:崔瑞雪完成时间:2010年11月30号内容摘要本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。在掌握所学的计算机组成与结构课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。该数字秒表能对0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒,到了一小时后,报警器开始报警,计时精度达到10ms。设计了复位开关和启停开关。复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。字体、格式、图号不对、重新修改关键词EDA、可编程逻辑器件、计数器、显示目录1.设计要求……………………………………………12.实验目的……………………………………………13.实验原理……………………………………………14.源程序(*.vhd)和原理图(*gdf)………………24.1计数器模块……………………………………24.2报警模块………………………………………34.3显示模块………………………………………44.4选择模块………………………………………54.5秒表模块………………………………………65.仿真调试和下载结果………………………………76.收获和体会…………………………………………8课程设计任务书课题名称数字秒表设计完成时间2010-11-30指导教师崔瑞雪职称副教授学生姓名赵敏班级B08221总体设计要求和技术要点1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。工作内容及时间进度安排1)做出概括的总框架,作出具体的课设安排。11月18号2)根据要求分成几个模块,分别用VHDL语言进行程序的编写,然后编译,仿真,实现功能并进行修改。11月20号3)将设计出来的模块进行组合,编译仿真,实现功能并进行修改。11月23号4)对硬件进行学习,并进行软硬件的结合。11月29号实验成果验收。11月30号课程设计成果1.与设计内容对应的软件程序2.课程设计报告书3.成果使用说明书4.设计工作量要求一、设计要求:1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。二、实验目的:通过本次课设,加深对EDA技术设计的理解,学会用MaxplusⅡ工具软件设计基本电路,熟练掌握VHDL语言,为以后工作使用打下坚实的基础。3、实验原理:秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。在设计秒表的时候,时钟的选择为100Hz。变量的选择:因为xx(0.01秒)和hh(小时)表示的范围都是0~99,所以用两个4位二进制码(BCD码)表示;而ss(秒钟)和mm(分钟)表示的范围是0~59,所以用一个3位的二进制码和一个4位的二进制码(BCD)码表示。显示的时候要注意的问题就是小时的判断,如果小时是00,则显示格式为mm-ss-xx,如果小时不为00,则显示hh-mm-ss。四、源程序(*.vhd)和原理图(*gdf):1.计时模块:计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。源程序:(1)十进制计数器(count_10)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount10isport(clk,start,clr:instd_logic;cout:outstd_logic;daout:outstd_logic_vector(3downto0));endcount10;architectureoneofcount10issignalq0:std_logic_vector(3downto0);signalq1:std_logic;beginprocess(clk,clr)beginifclr='1'thenq0=0000;elsifclk'eventandclk='1'thenifstart='1'thenifq0=1001thenq0=0000;q1='1';elseq0=q0+1;q1='0';endif;endif;endif;endprocess;daout=q0;cout=q1;endone;(2)六进制计数器(count_6)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount6isport(clk,start,clr:instd_logic;cout:outstd_logic;daout:outstd_logic_vector(3downto0));endcount6;architecturetwoofcount6issignalq0:std_logic_vector(3downto0);signalq1:std_logic;beginprocess(clk,clr)beginifclr='1'thenq0=0000;elsifclk'eventandclk='1'thenifstart='1'thenifq0=0101thenq0=0000;q1='1';elseq0=q0+1;q1='0';endif;2.报警器(alarm_3)当计数到一小时的时候,回来一个高电平,然后报警器会出现10个高电平和10个低电平。程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityalarm_3isport(clk,clr,I:instd_logic;qer:bufferstd_logic_vector(4downto0);q:outstd_logic);endalarm_3;architecturefourofalarm_3isbeginprocess(clk,clr,I)beginifclr='1'thenqer=00000;elsif(clk'eventandclk='1')thenif(I='1')thenif(qer=10100)thenNULL;elseqer=qer+1;endif;endif;endif;endprocess;q=qer(0);endfour;4.显示器(deled)计时显示电路的作用是将计时值在LED数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示。部分源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDELEDISPORT(num:INSTD_LOGIC_VECTOR(3DOWNTO0);LED:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDDELED;ARCHITECTUREFIVEOFDELEDISBEGINPROCESS(NUM)BEGINCASENUMISWHEN0000=LED=1111110;WHEN0001=LED=0110000;WHEN0010=LED=1101101;WHEN0011=LED=1111001;WHEN0100=LED=0110011;WHEN0101=LED=1011011;WHEN0110=LED=1011111;WHEN0111=LED=1110000;WHEN1000=LED=1111111;WHEN1001=LED=1111011;whenothers=LED=0000000;ENDCASE;ENDPROCESS;ENDFIVE;5.选择器(SELTIME)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityseltimeisport(clk:instd_logic;clr:instd_logic;dain0:instd_logic_vector(3downto0);dain1:instd_logic_vector(3downto0);dain2:instd_logic_vector(3downto0);dain3:instd_logic_vector(3downto0);dain4:instd_logic_vector(3downto0);dain5:instd_logic_vector(3downto0);y:bufferstd_logic_vector(3downto0);sel:bufferstd_logic_vector(2downto0));endseltime;architecturethreeofseltimeissignalm:std_logic_vector(2downto0);signaln:std_logic_vector(3downto0);beginn=0000whenclr='1'elsedain0whenm=000elsedain1whenm=001elsedain2whenm=010elsedain3whenm=011elsedain4whenm=100elsedain5;process(clr,clk,dain0,dain1,dain2,dain3,dain4,dain5)beginifclk'eventandclk='1'thenifm=101thenm=000;elsem=m+1;endif;endif;sel=m;endprocess;y=n;endthree;7.数字秒表计数器(miaobiao_2)数字秒表的原理图以及最后的整合:五.仿真调试和下载结果:1.仿真结果:2.下载结果:六.收获和体会:开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序
本文标题:EDA课程数字秒表设计
链接地址:https://www.777doc.com/doc-7228346 .html