1、(4)二个按键(暂停,开关)。三 引脚说明3.1引脚设置端口类型端口名数据类型说明inclk,pause_clk,std_logic时钟信号stop开始,清零按钮outa,b,c,d,e,f,g,dp各个显示灯的连接sr_out蜂鸣器d1,d2,d3,d4,d5,d6控制数码管的信号3.2信号说明signal q:std_logic_vector(3 downto 0);-q是用于分频的信号。signal state: std_logic_vector(3 downto 0);-state为状态信号,state为1时为暂停记录状态,为0时为正常显示计数状态。signal led:-led为数码
2、管扫描信号,通过对d1d6的选择使数码管发光。signal data,data1,data2,data3,data4,data5,data6,data7,data8:-data1data8这些信号为计数器所记录的数值,data为传入译码器的变化值。signal pause1,pause2,pause3,pause4,pause5,pause6:-这些信号为实现暂停功能寄存信号。signal output:std_logic_vector(6 downto 0);-output为译码输出的信号总线。signal sound:std_logic_vector(3 downto 0)-sound为蜂
3、鸣器的输入分频器。signal sound_sout:std_logic_vector(15 downto 0);-data1data4的总线。signal sound_star:std_logic;-为蜂鸣器输入频率的开关。四 模块介绍时钟的设计共化分为5个模块:六进制计数电路,报时电路,扫描电路,译码电路。下面具体分析各个模块的原理、内容和功能。4.1计数器if(count=X)then -X为进制数,为5即为6进制,为9就是10进制。 count=0000;next_count_clk=1-为下一个计数器的时钟信号输入。else=count+ -实现计数功能。 next_count_cl
4、k0end if;4.2蜂鸣器process(data6,data5,data4,data3,data2,data1) begin sound_sout=1)then sound_star end if; end if; if(sound_star=)then if(sound=1)then sr_out else if(data3=5)then sound_star output end case; end process; a = output(6); b = output(5); c = output(4); d = output(3); e = output(2); f = outpu
5、t(1); g = output(0);4.4控制器-输出控制器case (led) is when data =data1;-将百分秒位赋值于data。d1d2d3d4d5d6dp-(从右到左)选择第一个数码管。pause1-寄存现在的数值。=data2;-十分秒位-第二个数码管pause2-寄存when =data3;-秒低位-第三个数码管pause3 =data4;-秒高位-第四个数码管pause4=data5;-分低位-第五个数码管pause5=data6;-分高位-第六个数码管pause6end case;process(pause_clk,stop) -状态控制器 if(pause
6、_clkevent and pause_clk= if(state= state -计时显示状态=state+1; -暂停状态五 整体连接图六 实验结果器件上六个数码管上各自显示这一个数值,当左侧第一个开关为1时便清零停止,为0时便开始计数,从00.00.00开始,记录到59.59.99时会变为01.00.00,此时记录为时位、分位和秒位,直到23.59.59时才会自动清零,又从头开始计数。另外该器件上还有另一个按钮,为暂停记录按钮,该按钮的作用是对正在计数显示的秒表进行数值显示上的暂停功能,再暂停之后再按这个按钮时,则是继续进行显示,其中计数功能并没有终断,只是在输出显示上暂停而已。另外,当
7、分位为整时本秒表会进行报时蜂鸣。充分满足了老师的要求。七 实验总结本次VHDL课程设计历时一个学期,从开始接触到现在结束已经经历了一个学期的日子,因为很多东西都不了解,可以说是苦多于甜,但是后来我学到了很多东西,而且通过实验我还学到了很多在书本上所没有学到过的知识。这次设计,是对这一学期来所学知识的检验,也是进一步加深对VHDL的了解,我对它有浓厚的兴趣。但是在编调试程序时,也遇到了不少问题,特别是各元件之间的连接,以及各种语法,总是有错误,在细心的检查下,终于找出了错误,排除困难后,程序编译就通过了。在硬件实验时,也遇到了一点困难:想要的结果不能在数码管上得到正确的显示;在设定输入的时钟信号
8、后,数字秒表开始计数,但是始终是乱码等。后来,经过多次调试之后,才发现是因为输入的时钟信号出了问题。经过屡次调试,终于找到了比较合适的输入脉冲,时钟周期设置在100hz秒左右比较合适。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的数字秒表还是比较
9、成功的,虽然在实际的过程中曾经遇到了大量的问题,但是经过自己的努力,都给妥善解决了,这样的积累对于现在大学生来说是十分宝贵的。希望以后能有更多的动手实践机会,在硬件中发现自己的不足,弥补自己的不足,最终成为一个合格的大学生。最后,特别感谢老师对我的帮助。谢 辞本论文的完成,得益于伊开和张芳老师传授的知识,使本人有了完成论文所要求的知识积累,更得益于两位老师从选题的确定、论文资料的收集、论文框架的确定、开题报告准备及论文初稿与定稿中对字句的斟酌倾注的大量心血,在此对两位老师表示感谢!感谢和我一起生活四年的室友,是你们让我们的寝室充满快乐与温馨,“君子和而不同”,我们正是如此!愿我们以后的人生都可
10、以充实、多彩与快乐!感谢我的同学们,谢谢你们给予我的帮助。回首本人的求学生涯,父母的支持是本人最大的动力。父母不仅在经济上承受了巨大的负担,在心里上更有思子之情的煎熬与望子成龙的期待。忆往昔,每次回到家时父母的欣喜之情,每次离家时父母的依依不舍之眼神,电话和信件中的殷殷期待和思念之语,皆使本人刻苦铭心,目前除了学习成绩尚可外无以为报,希望以后的学习、工作和生活能使父母宽慰。通过这一阶段的努力,我的论文硬件描述语言实现秒表功能终于完成了。在这个阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。时间的仓促及自身专业水平的不足,整篇论文肯定存
11、在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!愿把我的幸福和快乐都送给关心和支持过我的人,也愿他们一切如意。附 录- Quartus II VHDL Template- Basic Shift Registerlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minut
12、e_clock is port ( clk,pause_clk,stop : in std_logic; a,b,c,d,e,f,g,dp,sr_out : out std_logic; d1,d2,d3,d4,d5,d6 : out std_logic );end entity;architecture rtl of minute_clock issignal state,led,data:signal data1,data2,data3,data4,data5,data6,data7,data8 :signal pause1,pause2,pause3,pause4,pause5,paus
13、e6,sound :signal output : std_logic_vector(6 downto 0);begin process(pause_clk,stop) if(sound=1)then sound else=sound+ process (clk,stop) if(stop= data1 data2 data3 data4 data5 data6 data7 data8 else if(clkevent and clk= if(q=6)then q if(data1= data1 if(data2= data2 if(data3= data3 if(data4= data4 if(data5= data5 if(data6= data6 if(data7= data7 if(data8= data8 else=data8+ end if; elsif(data8= and data7= data8 sound_star if(sound_star=)then if(sound=1)then sr_out if(data3=5)then process(clk) if(led= led end case; if(data7= and data8 case (led) is when
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2