1、邵阳学院课程设计(论文)I摘 要本系统是一个用于棋类比赛的计时钟系统,该计时钟可分别完成甲乙对规定用时的计时和规定时间用完后的读秒计时。规定甲乙双方各有 2 小时比赛规定用时,分别设计各方的用时定时器,并用数码管显示各方已用的时、分从 0:001:59 计时间隔为 1S。2 小时规定时间用完后,每方限定在 30 秒内必须下出一步棋,此时定时器将完成对读秒时间的 30S 倒计时,并数码管显示此时过程 3000。若计时到零,则发生警报信号该方超时负。各定时器设置计时暂停/继续键,在规定时间计时时,该键的作用为暂停本方计时,并继续对方计时;在读秒时间计时时,该键的作用为复位本方计时起始点29S,并启
2、动对方定时器。设置系统复位键,比赛结束时,按该键使各方的定时器均复位到规定时间的零点 0:00,以便重新开始比赛。This system is one for chess game clock system, this clock can be completed respectively to party b when provisions of the timing and regulations with the time after DouMiao timing. Provisions to both parties have 2 hours when rules, the desig
3、n of all parties respectively when the timer, and the digital tube display the parties have the, points from 0:00 it happened time interval for 1 s. 2 hours set time after using, each party within 30 seconds next step must be chess, the timer will finish on time DouMiao 30 s countdown, and digital t
4、ube display the process 30 00. If the timing to zero, it happened alarm signal the party timeout negative. Set the timer timing pause/continue to key, in the specified time timing, the key role to suspend his own time, and continue to each other timing; In DouMiao time timing, the key role for reset
5、 his own timing starting point and s, and start the timer. Sets the system reset button, the end of the match, according to the key that all the timer are reset to set time zero 0:00, in order to start games. 关键词:计时钟;系统;数码管;棋类Keywords:The clock, the system, digital tube, chess邵阳学院课程设计(论文)目 录摘要I 第1章、
6、整体设计论述及仿真软件介绍 1 1.1 整体设计论述 11.2 仿真软件介绍1第 2 章、单元模块设计62.1 计时器模块62.2 控制模块72.3 选择模块92.4 显示模块 102.5 报警模块 10第 3 章、实验仿真结果 11第 4 章、总结与设计调试体会 16第 5 章、附录 18第 6 章、参考文献 27邵阳学院课程设计(论文)1第 1 章 整体设计论述 1.1 整体设计论述 按照设计要求,分别设置甲乙各方规定时 2 小时计时器和 30 秒倒记时器,如下图。在控制模块的作用下,相互协调工作:在规定时内,30 秒计时器不工作,输入继续暂停端能暂停其中一方计时器的同时继续另一方的计时。
7、当甲或乙归定时两小时用完后,启动各自的 30 秒倒计时!这时的输入继续 暂停开关能复位其中一方的 30 秒到29,并开始另一方的记时。当比赛结束时,输入清零端复位信号,各计时器回到开始,重新开始下场比赛!计时器的输出同时也控制着报警模块的工作,当甲乙任一方所有时间都用完时,报警模块输出报警信号,宣布比赛结束,谁的时间先用完谁就输了这场比赛。选择模块的设置,是为了很好解决显示管数量不足的问题。在输入暂停继续开关的作用下,轮流显示甲乙双方所用时间情况给显示模块!显示模块是一个动态扫描显示电路。在一个人眼观察不出的扫描频率下,轮流在相对应的显示管上显示八个输入端口的输入的数据。总体设计框图1.2 软
8、件介绍1.2.1 MAX+plusII 操作说明MAX+plusII 的编程器的功能是将电路设计文件转换后的输出文件,例如*.pof 文输入控制模块甲 30 秒乙 30 秒甲 2 小时计数器乙 2 小时计数器报警模块 输出选择模块显示模块输出邵阳学院课程设计(论文)2件与*.sof 文件,烧写至 FLEX 系列器件或下载至 MAX 系列器件,亦可用来检验与测试器件或转换烧写文件格式。此功能必须配合硬件实验设备才能进行。在器件编程时,首先应该安装软件狗和下载线,这时需要进行硬件设置。具体操作步骤如下:(1) 首先安装 MAX+PLUSII(2) 选择(“开始”-“设置”-“控制面版” )(3)
9、双击“游戏选项”然后选择“添加”-“添加其它”-“从磁盘安装”命令,再单击“浏览”浏览驱动所在的目录:MAX+PLUSII 的安装目录dirverswin2000;(4) 选择“WIN2000.inf” ,单击“确定” ;(5) 在“数字签名未找到”对话框中,选择“是” ;(6) 在“选择一个设备驱动程序”窗口中,选择“Altera Bytblaster”,并单击“下一步” ;(7) 在接下去的“数字签名未找到”对话框中,仍选择“是” ;(8) 安装完成,依提示,重新启动计算机。在 WINXP/WINNT 操作环境下,若要使用下载(DOWNLOAD)功能,同样要安装驱动,安装方法可参考在 WI
10、NDOWS2000 上的安装方法进行,在此不再赘述。 )1.2.2 工具条和常用菜单选项说明邵阳学院课程设计(论文)3邵阳学院课程设计(论文)4邵阳学院课程设计(论文)5邵阳学院课程设计(论文)6第 2 章单元模块设计2.1 计时器模块分为 2 小时的规定时计时器,30 秒的倒计时器。输出特点:各数权位分别输出 4 位的二进制数,如 1:25:46 输出为“y31=0001”:“y210=0010 q21 = 0101”:“y11=0100 q11=0110”。进位输出一个进位信号 co 为高电平 1,直到有清零端复位有效时才回到 0。2.1.1 30 秒倒计时器功能:本质是一个减法计数器。完
11、成甲和乙对用完归定时间的读秒计时。工作原理:仿真波形图可以看出,该计数器从 29 开始,如果清零端无效,每来一个秒脉冲,在继续使能端有效下,减少 1,到 28。依次到 00,此时输出一个进位信号 co 为高电平 1,直到有清零端复位有效时才回到 0,此时计数器复位到 29,重新开始计时。2.1.2 小时规定计时器功能:本质为两个 60 进制的加法计数器和一个 16 进制计数器联级构成。完成 2 个小时的计时。原理框图:在复位端 cir 无效,计数使能端 en 有效时,每来一个秒的时钟脉冲,秒 60 计数器加一。计到 60 时,发出一个进位信号 co 去作为 60 分计数器的时钟脉冲,即每来一个
12、co,分 60 计数器加 1。当计数到 60 时,也发出个进位信号 co1,该信号去作为时计数60 秒计数器60 秒计数器60 秒计数器秒信号 Co Co1 Count邵阳学院课程设计(论文)7器的时钟脉冲,每来一个 co1,即计完了 60 分钟,时计数器加 1。当这个 2 小时计数器计到两个小时时,发出个进为信号(高电平有效)count,直到有复位信号有效(cir=1)时回到低电平 0。计数时,如果计数使能端无效,则计数暂停,恢复有效时继续计数。这样完成了两小时的计时!2.2 控制模块功能:控制各计数器协调工作,完成 系统的各项功能。是该系统的核心部分。2.2.1 控制甲方 2 小时规定时计
13、数器的暂停继续。工作真值表 1其中 S 为输入暂停 继续信号,counta 为该计数器的进位输出。按照设计要求,规定时用完后,counta 输出为1 , 规定时计数器停止计时,即ena=0,S 为零时,设置规定时计数器不工作,即 ena=0,所以只有当 S=1和 counta=0时,规定时计数器工作,即 ena=1。2.2.2 控制乙方 2 小时规定时计数器的暂停继续。工作真值表 2其中 S 为输入暂停 继续信号,countb 为该计数器的进位输出。按照设计要求,规定时用完后,countb 输出为1 , 规定时计数器停止计时,即 enb=0,S 为高电平1时,设置规定时计数器不工作,即 enb
14、=0,所以只有当 S=0和邵阳学院课程设计(论文)8countb=0时,规定时计数器工作,即 enb=1。2.2.3 控制甲方 30 秒计数器的暂停继续。工作真值表 3其中 S 为输入暂停 继续信号,counta 为规定时 2 小时计数器的进位输出,count3a 为甲方 30 秒进位输出。按照设计要求,规定时用完后,counta 输出为1 , 规定时计数器停止计时,启动甲方 30 秒倒计时,即 en3a=1,否则 en3a=0。S 为零时,设置规定时计数器不工作,即 en3a=0。当 30 秒倒计时计时守毕,即 count3a 输出为1时,30 秒计时器也不工作,此时 en3a=0。所以只有
15、当 S=1和 counta=1和 count3a=0时,该计时器工作,即 en3a=1。2.2.4 控制乙方 30 秒计数器的暂停继续。工作真值表 4 其中 S 为输入暂停 继续信号,countb 为规定时 2 小时计数器的进位输出,count3b为乙方 30 秒进位输出。按照设计要求,规定时用完后,countb 输出为1 , 规定时计数器停止计时,启动乙方 30 秒倒计时,即 en3b=1,否则 en3a=0。S 为高电平1时,设置规定时计数器不工作,即 en3a=0。当 30 秒倒计时计时守毕,即count3b 输出为1时,30 秒计时器也不工作,此时 en3b=0。所以只有当S=0和 c
16、ounta=1和 count3a=0时,该计时器工作,即 en3b=1。邵阳学院课程设计(论文)92.2.5 控制甲乙双方 30 秒倒计数器的清零复位。工作真值表 5其中 S 为输入暂停 继续信号,cr 为系统输入清零复位信号。按照设计要求,当 cr 为 1时,系统发出清零信号,系统清零复位,所以此时cr3a、 cr3b 都为1 。当 S=0时,规定甲方 30 秒复位,即 cr3a 输出为1 , 否则规定乙方 30 秒计数器复位,即 cr3b=1。2.3 选择器模块功能:实质就是一个选择性开关!在系统设置的暂停继续端的作用下,设当 s=1时,选择甲方所用时间情况给输出,当 s=0时,并用 A=
17、1010 为甲方的名称,选择乙方所用时间情况给输出,并 b=1011 代表乙方的名称。原理框图:输入端口 a、 b、c 、d、e 代表着甲方用时情况,分别为 30 秒个位、30 秒十位、2 小时分个位、2 小时分十位、2 小时时个位。输入端口 f、g、h、i、k 代表着乙方用时情况,分别为 30 秒个位、30 秒十位、2 小时分个位、2 小时分十位、2 小时时个位。输出端口M30s1,M30,Fg,F10n,S,DK 分别为 30 秒个位、30 秒十位、小时分个位、分十位、时位、端口。甲方比赛用时情况乙方比赛用时情况比赛用时情况S=1S=0给显示模块邵阳学院课程设计(论文)102.4 显示模块
18、:功能:六个输入端口分别接选择模块的输入,在一个较高的时钟脉冲钟用下,从第一个输入端口的情况依次扫描到第六个,并在显示管上显示。所以也称位动态扫描显示。2.5 报警模块:功能:输出听觉和视觉上的比赛结束信号,并且判断何方失败。报警工作真值表count3a、count3b 分别代表甲乙方 30 秒倒计时的进位输出,a、b 分别代表双方视觉上的信号输出(驱动发光二极管发光),warn 位听觉上的报警信号,驱动喇叭发出声音!只有当甲或者乙的时间全部用完,则比赛结束。即count3a=1 or count3b=1成立时, warn 信号位扫描频率,如果是甲先用完,a 位零,甲灯亮宣告甲输掉这场比赛,反
19、之,乙灯亮,乙输掉这场比赛!邵阳学院课程设计(论文)11第 3 章 实验仿真结果2 小时:控制器:邵阳学院课程设计(论文)12选择器:报警器:邵阳学院课程设计(论文)13总图仿真:(1)邵阳学院课程设计(论文)14(2)(3)邵阳学院课程设计(论文)15(4)邵阳学院课程设计(论文)16第 4 章 总结与设计调试体会为期两周时间的 EDA 课程设计使我收获不少,无论在对软件的熟悉程度,还是在对数字电路的基本原理,都迫使我不断的前进!两个星期的艰苦奋斗,我终于完成了设计要求!这其中的感受,无法用语言来描叙,只有经历过的人,才真正体会设计的乐趣:不是在于设计结果,而是在于设计的过程!过程是最美的,
20、最有趣的。而设计的过程,实际上也是一个发现问题,然后去想办法解决的过程。两个星期的设计,我和组友发现的问题层出不穷,通过我们的不懈努力,但最终,我们还是解决了!这其中,有些问题是解决不了,或者超出我们的能力之外的,我们通过议论,转化问题,使复杂的问题简单化,达到了非同寻常的效果!比如说显示管数量不足的问题,我们的设计要求要十个显示管,而实验箱上只有八个。这就使得我们寻找一钟方法去解决这一难题!最终,灵机一动,想到了选择显示的思想,从而诞生了选择显示模块!在设计过程中,发现一个重要定律:EDA 课程设计,只要你想得到,就能办得到!的确,程序是自己编的,就想说话一样,掌握了基本的语法、语句,想表达
21、什么意思就表达什么意思!加上有编译器来检查错误,想错都难!打个比方,在制作协调计时器工作的时的控制器时,一般人会用与门和非门等等连接,于是原理图就显得乱和杂!而我采用的时集成的思想:把所有与端口使能的逻辑关系都集中在一个控制器模块里,用语言来描述清楚。一个控制器,控制着整个计数器的工作,使得电路图简单,清楚!设计的过程中还发现:杂实的数电基本功,是设计游刃有余的动力!举个例子来说吧,在设计控制器时,各端口受哪些端口控制,各输出什么时候输出什么样的值,这些看似很复杂的问题,在我列出真值表后,一切都是那么的明朗!因此,我在大二的数电功低使我受益匪浅!设计时,另一个教训值得我深深记在脑子里:理想与现
22、实是有很大的差距的,时刻记得实事求是!比方说,如果不知道显示管只有八个的情况下,采用十个数码管显示的方法,其后果就是导致仿真不成功!在仿真过程中,就是由于实践时带来的问题层出不穷,但最终还是被一一解决了。首先在如它能成功地解决显示管数量的不足问题,在选择显示模块作用下,甲乙双方的比赛时间能有条不紊地显示!邵阳学院课程设计(论文)17其次在于设计的原理图(顶层文件)结构非常简单,在连接各模块工作时,没有任何的门和看上去很复杂的连线,整个图显得简单,清晰,给人以简单美的享受!这其中的来由要归功于设计者特意地将各模块全部使用 VHDL 语言编写!再次,本系统的输出既有发光二极管带来的视觉上的报警信号
23、,也有扬声器发出的听觉上的报警信号!总之,两个星期的课程设计,有过酸、甜、苦、辣。这其中的滋味,相信每一个过来人都深有体会!感谢学校、谢谢老师给我这次机会!邵阳学院课程设计(论文)18第 5 章 附录相关程序参考30 秒倒计时:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY cnt30 ISPORT( clk : IN STD_LOGIC;cir ,en : IN STD_LOGIC;co : OUT STD_LOGIC;q1 : OUT STD_LOGIC_VECTOR (3 DO
24、WNTO 0);y10: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END cnt30;ARCHITECTURE a OF cnt30 ISSIGNAL bcd1n : STD_LOGIC_VECTOR (3 DOWNTO 0);SIGNAL vcd10n : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (clk,cir,en)BEGINif(cir=1)then co BT BT BT BT BT BT NULL ;END CASE ;END PROCESS P1;P2:PROCESS(CLK)BEGINIF CLKEV
25、ENT AND CLK = 1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ;END CASE ;END PROCESS P3; END;报警器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY warn ISPORT( count3a,count3b : IN STD_LOGIC;cp : IN STD_LOGIC;warn,a,b: OUT STD_LOGIC );END warn;ARCHITECTU
26、RE a OF warn ISBEGIN邵阳学院课程设计(论文)26PROCESS (count3a,count3b)BEGINif(count3a=1or count3b=1) then warn=CP;else warn=0;END IF;END PROCESS;PROCESS (count3a,cp)BEGINif(count3a=1) then a=0;else a=1;END IF;END PROCESS;PROCESS (count3b,cp)BEGINif(count3b=1) then b=0;else b=1;END IF;END PROCESS;end a;选择器libra
27、ry ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY xuanzeqi ISPORT( start : IN STD_LOGIC;a,b,c,d,e: in STD_LOGIC_VECTOR (3 DOWNTO 0);f,g,h,i,j: in STD_LOGIC_VECTOR (3 DOWNTO 0);M30s1,M30,Fg,F10n,S,DK : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END xuanzeqi;ARCHITECTURE a OF xuanzeqi
28、ISBEGINPROCESS (start,a,b,c,d,e,f,g,h,i,j)BEGINif(start=1) then M30s1=a;M30=b;Fg=c;F10n=d;S=e;DK=“1010“;else M30s1=f;M30=g;Fg=h;F10n=i;S=j;DK=“1011“;end if;END PROCESS;end a;邵阳学院课程设计(论文)27第 6 章 参考文献1潘松,黄继业 EDA 技术实用教程 科学出版社 20022江国强编 EDA 技术与应用 北京,电子工业出版社20043童诗白,华成英编 模拟电子技术 高等教育出版社20064阎石主编 数字电子技术基础第四版 高等教育出版社20015吴正毅 测试技术与测试信号处理 清华大学出版社19916宗孔德,胡广书 数字信号处理 清华大学出版社1988邵阳学院课程设计(论文)28