数字定时器的设计与实现_第1页
数字定时器的设计与实现_第2页
数字定时器的设计与实现_第3页
数字定时器的设计与实现_第4页
数字定时器的设计与实现_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、学术诚信声明 本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期: 年 月 日沈阳航空航天大学课程设计任务书课程设计名称XXXX课程设计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参

2、考资料: 教研室审核意见: 教研室主任签字:指导教师(签名)年月日学 生(签名)年月日课程设计总结:经过本次课程设计,我学会了好多东西,不仅学会了新的语言,而且学会了计算机硬件上的一些东西,我相信这对我以后的发展和认识提供了非常大的帮助,不仅可以从软件方面去分析东西,还可以从硬件方面分析东西,所以我觉得我的收获是巨大的。这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高,能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行了一次全面的训练。通过对数字定时器程序的编写,使我对计算机组成原理的基本知识的使用更加熟练,

3、同时也增加了我对计算机组成原理的一些认识,培养从资料文献、科学实验中获得知识的能力,在作业完成过程中通过和同学的交流,也增加了合作的技巧,初步培养了我的工程意识和创新能力。通过查阅以下资料也学到了一些课本上没有的东西,很多知识从模糊概念到具体的了解,从毫无所知到具体的应用,拓宽了自己的知识面,增加了学好汇编语言的信心。当然,也存在了许多的问题,如编写程序时没有注意程序的逻辑性,导致用ModelSim仿真时出现了内存过大,软件奔溃的问题。在以后的学习工作中,我要吸取这次教训,设计好每一个环节后再进行制作与组装。最后,感谢老师的辛勤解答。目录1 总体设计方案- 6 -1.1 设计原理- 6 -1.

4、2 设计思路- 6 -1.3 设计环境- 7 -2详细设计方案- 8 -2.1 总体模块设计- 8 -2.2 计时电路与清零电路模块设计- 8 -2.3 定时电路模块设计- 10 -2.4 报时电路模块设计- 11 -3设计仿真- 12 -3.1 清零操作仿真- 12 -3.2 报时操作仿真- 12 -参考文献- 13 -附录- 14 -程序代码- 14 -总体电路图- 17 -计算机组成原理课程设计报告第一章 总体设计方案1 总体设计方案1.1 设计原理数字定时器是由计时电路、定时电路,清零电路和报时电路等几部分组成的。其中,定时电路和计时电路,将时间显示在七段数码管上,定时电路对时、分提供

5、设置并储存;清零电路作用时,系统的分秒时同时归零。1.2 设计思路报时电路清零电路计时电路定时电路由于设计为数字定时器,所以一定会有脉冲发送部分,但是由于本次课设不需要实际操作,则脉冲发送部分先不考虑。其次,重点就是计时电路,顾名思义,数字定时器首先要实现定时的功能,包括时,分,秒的计时,分别类似于模24、模60、模60计数器的形式,只需要把三个计数器的信号连接起来就可以实现对时,分,秒的计时功能。在程序中通过3个8位寄存器来保存时,分,秒,已达到输入输出。定时电路也是采用寄存器的方法来保存时,分,通过改变寄存器的里的数据来定时,然后报时电路通过对比定时电路中的数据与计数器中的数据来达到准确报

6、时的目的,清零电路,如果清零开关信号为1,清空所有计时电路寄存器中的数据,并停止计时。(如图1.2) 图 1.2- 26 -1.3 设计环境设计软件:Altera公司的综合性PLD/FPGA开发软件Quartus II。仿真软件:Mentor公司的ModelSim。计算机组成原理课程设计报告第二章 详细设计方案2详细设计方案2.1 总体模块设计数字定时器是由计时电路、定时电路,清零电路和报时电路等几部分组成的。模块设计代码如下:module x(turn,change,ahour,amin,asec,clk,hour1,min1,k,sec1,stop);input change,turn,s

7、top; output k;output 7:0ahour,amin,asec;reg 7:0ahour,amin,asec;output 7:0hour1,min1,sec1;reg 7:0hour1,min1,sec1;reg counta,countb,fm;input clk;reg minclk,hclk;reg k;2.2 计时电路与清零电路模块设计由于信号不能在多个并发进程中赋值,所以将计时电路与清零电路写在了一起。计时电路包括时,分,秒的计时,分别类似于模24、模60、模60计数器的形式。所以在代码实现的时候考虑了三种情况:一,出现59的情况与23的情况;二,出现9,19,23

8、,39,49的情况;三,不存在以上的正常情况;模块代码如下:always (posedge clk) /秒 begin if(stop=1) begin sec17:0<=0; minclk<=1; end else if(sec1=8'h59) begin sec1<=0; minclk<=1; end else begin if(sec13:0=9) begin sec13:0<=0; sec17:4<=sec17:4+1; end else sec13:0<=sec13:0+1; minclk<=0; end if(stop=1)

9、begin sec17:0<=0; minclk<=1; end endalways (posedge minclk) /分 begin if(stop=1) begin min17:0<=0; hclk<=1; end if(min1=8'h59) begin min1<=0; hclk<=1; end else begin if(min13:0=9) begin min13:0<=0; min17:4<=min17:4+1; end else min13:0<=min13:0+1; hclk<=0; end if(stop

10、=1) begin min17:0<=0; hclk<=1; end endalways (posedge hclk) /时 begin if(stop=1) begin hour17:0<=0; end if(hour1=8'h23) hour1<=0; else begin if(hour13:0=9) begin hour13:0<=0; hour17:4<=hour17:4+1; end else hour13:0<=hour13:0+1; end if(stop=1) begin hour17:0<=0; end end2.3

11、定时电路模块设计定时电路也是采用寄存器的方法来保存时,分,通过改变寄存器的里的数据来定时。Turn是用来调节时与分之间的转换,change则改变数值的的变化。如果Turn在时位上,则每点一下change则改变时位加1,知道23再加1则清零;如果Turn在分位上,则每点一下change则改变分位加1,知道59再加1则清零。always (posedge turn) begin fm<=fm; endalways begin if(fm) begin counta<=change; end else begin countb<=change; end end always beg

12、in asec<=8'hzz; endalways (posedge counta) begin if(amin=8'h59) amin<=0; else begin if(amin3:0=9) begin amin3:0<=0; amin7:4<=amin7:4+1; end else amin3:0<=amin3:0+1; end endalways (posedge countb) if(ahour=8'h23) ahour<=0; else begin if(ahour3:0=9) begin ahour3:0<=0;

13、ahour7:4<=ahour7:4+1; end else ahour3:0<=ahour3:0+1; end2.4 报时电路模块设计 报时电路是通过对比定时电路中的数据与计数器中的数据来达到准确报时的目的。代码实现如下:always if(hour17:0=ahour7:0)&&(min17:0=amin7:0&&min1!=0)&&stop!=1&&sec17:0=1) begin k<=1; end else begin k<=0; end 计算机组成原理课程设计参考文献3设计仿真3.1 清零操作仿

14、真设置时钟为1分钟,turn按键2次,turn按键1次,设置完成。打开开关stop开始计时,记到3秒时,关闭开关,停止计时且hour1,min1,sec1清零。 图3.13.2 报时操作仿真设置时钟为1分钟,turn按键2次,turn按键1次,设置完成。当计时达到1分钟时,K信号发出高电平,即发出响声,且停止清零。 图3.2 参考文献1 李景华. 可编程程逻辑器件与EDA技术M.北京:东北大学出版社,2001 2 范延滨.微型计算机系统原理、接口与EDA设计技术M.北京:北京邮电大学出版社,20063 王爱英.计算机组成与结构(第4版)M.北京:清华大学出版社,20064 王冠.Verilog

15、 HDL与数字电路设计M.北京:机械工业出版社,2005 5 白中英.计算机组成原理M.科学出版社出版社,20086 胡越明.计算机组成与设计M.北京:科学出版社,2006附录程序代码module xxx(turn,change,ahour,amin,asec,clk,hour1,min1,sec1,k,stop);input change,turn,stop;output k;output 7:0ahour,amin,asec;reg 7:0ahour,amin,asec;reg counta,countb,fm;reg start1;input clk;output 7:0hour1,mi

16、n1,sec1;reg 7:0hour1,min1,sec1;reg minclk,hclk,start2,clr;reg k;always (posedge turn) begin fm<=fm; endalways begin if(fm) begin counta<=change; end else begin countb<=change; end end always begin asec<=8'hzz; endalways (posedge counta) begin if(amin=8'h59) amin<=0; else begin

17、 if(amin3:0=9) begin amin3:0<=0; amin7:4<=amin7:4+1; end else amin3:0<=amin3:0+1; end endalways (posedge countb) if(ahour=8'h23) ahour<=0; else begin if(ahour3:0=9) begin ahour3:0<=0; ahour7:4<=ahour7:4+1; end else ahour3:0<=ahour3:0+1; end always (posedge clk) begin if(stop

18、=1) begin sec17:0<=0; minclk<=1; end else if(sec1=8'h59) begin sec1<=0; minclk<=1; end else begin if(sec13:0=9) begin sec13:0<=0; sec17:4<=sec17:4+1; end else sec13:0<=sec13:0+1; minclk<=0; end if(stop=1) begin sec17:0<=0; minclk<=1; end endalways (posedge minclk) begin if(stop=1) begin min17:0<=0; hclk<=1; end if(min1=8'h59) begin min1<=0; hclk<=1;

温馨提示

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

评论

0/150

提交评论