收藏 分销(赏)

数字定时器的设计与实现.doc

上传人:w****g 文档编号:2629305 上传时间:2024-06-03 格式:DOC 页数:19 大小:422.27KB 下载积分:8 金币
下载 相关 举报
数字定时器的设计与实现.doc_第1页
第1页 / 共19页
数字定时器的设计与实现.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
学术诚信声明 本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期: 年 月 日 课程设计任务书 课程设计名称 XXXX课程设计 专业 学生姓名 班级 学号 题目名称 起止日期 年 月 日起至 年 月 日止 课设内容和要求: 参考资料: 教研室审核意见: 教研室主任签字: 指导教师(签名) 年 月 日 学 生(签名) 年 月 日 课程设计总结: 经过本次课程设计,我学会了好多东西,不仅学会了新的语言,而且学会了计算机硬件上的一些东西,我相信这对我以后的发展和认识提供了非常大的帮助,不仅可以从软件方面 去分析东西,还可以从硬件方面分析东西,所以我觉得我的收获是巨大的。这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高,能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行了一次全面的训练。 通过对数字定时器程序的编写,使我对计算机组成原理的基本知识的使用更加熟练,同时也增加了我对计算机组成原理的一些认识,培养从资料文献、科学实验中获得知识的能力,在作业完成过程中通过和同学的交流,也增加了合作的技巧,初步培养了我的工程意识和创新能力。通过查阅以下资料也学到了一些课本上没有的东西,很多知识从模糊概念到具体的了解,从毫无所知到具体的应用,拓宽了自己的知识面,增加了学好汇编语言的信心。 当然,也存在了许多的问题,如编写程序时没有注意程序的逻辑性,导致用ModelSim仿真时出现了内存过大,软件奔溃的问题。 在以后的学习工作中,我要吸取这次教训,设计好每一个环节后再进行制作与组装。 最后,感谢老师的辛勤解答。 目录 1 总体设计方案 - 3 - 1.1 设计原理 - 3 - 1.2 设计思路 - 3 - 1.3 设计环境 - 3 - 2详细设计方案 - 3 - 2.1 总体模块设计 - 3 - 2.2 计时电路与清零电路模块设计 - 3 - 2.3 定时电路模块设计 - 3 - 2.4 报时电路模块设计 - 3 - 3设计仿真 - 3 - 3.1 清零操作仿真 - 3 - 3.2 报时操作仿真 - 3 - 参考文献 - 3 - 附录 - 3 - 程序代码 - 3 - 总体电路图 - 3 - 计算机组成原理课程设计报告 第一章 总体设计方案 1 总体设计方案 1.1 设计原理 数字定时器是由计时电路、定时电路,清零电路和报时电路等几部分组成的。其中,定时电路和计时电路,将时间显示在七段数码管上,定时电路对时、分提供设置并储存;清零电路作用时,系统的分秒时同时归零。 1.2 设计思路 报时电路 清零电路 计时电路 定时电路 由于设计为数字定时器,所以一定会有脉冲发送部分,但是由于本次课设不需要实际操作,则脉冲发送部分先不考虑。其次,重点就是计时电路,顾名思义,数字定时器首先要实现定时的功能,包括时,分,秒的计时,分别类似于模24、模60、模60计数器的形式,只需要把三个计数器的信号连接起来就可以实现对时,分,秒的计时功能。在程序中通过3个8位寄存器来保存时,分,秒,已达到输入输出。定时电路也是采用寄存器的方法来保存时,分,通过改变寄存器的里的数据来定时,然后报时电路通过对比定时电路中的数据与计数器中的数据来达到准确报时的目的,清零电路,如果清零开关信号为1,清空所有计时电路寄存器中的数据,并停止计时。(如图1.2) 图 1.2 - 19 - 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,stop; output k; output [7:0]ahour,amin,asec; reg [7:0]ahour,amin,asec; output [7:0]hour1,min1,sec1; reg [7:0]hour1,min1,sec1; reg counta,countb,fm; input clk; reg minclk,hclk; reg k; 2.2 计时电路与清零电路模块设计 由于信号不能在多个并发进程中赋值,所以将计时电路与清零电路写在了一起。 计时电路包括时,分,秒的计时,分别类似于模24、模60、模60计数器的形式。所以在代码实现的时候考虑了三种情况: 一,出现59的情况与23的情况; 二,出现9,19,23,39,49的情况; 三,不存在以上的正常情况; 模块代码如下: always @(posedge clk) //秒 begin if(stop==1) begin sec1[7:0]<=0; minclk<=1; end else if(sec1==8'h59) begin sec1<=0; minclk<=1; end else begin if(sec1[3:0]==9) begin sec1[3:0]<=0; sec1[7:4]<=sec1[7:4]+1; end else sec1[3:0]<=sec1[3:0]+1; minclk<=0; end if(stop==1) begin sec1[7:0]<=0; minclk<=1; end end always @(posedge minclk) //分 begin if(stop==1) begin min1[7:0]<=0; hclk<=1; end if(min1==8'h59) begin min1<=0; hclk<=1; end else begin if(min1[3:0]==9) begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; end else min1[3:0]<=min1[3:0]+1; hclk<=0; end if(stop==1) begin min1[7:0]<=0; hclk<=1; end end always @(posedge hclk) //时 begin if(stop==1) begin hour1[7:0]<=0; end if(hour1==8'h23) hour1<=0; else begin if(hour1[3:0]==9) begin hour1[3:0]<=0; hour1[7:4]<=hour1[7:4]+1; end else hour1[3:0]<=hour1[3:0]+1; end if(stop==1) begin hour1[7:0]<=0; end end 2.3 定时电路模块设计 定时电路也是采用寄存器的方法来保存时,分,通过改变寄存器的里的数据来定时。Turn是用来调节时与分之间的转换,change则改变数值的的变化。如果Turn在时位上,则每点一下change则改变时位加1,知道23再加1则清零;如果Turn在分位上,则每点一下change则改变分位加1,知道59再加1则清零。 always @(posedge turn) begin fm<=~fm; end always begin if(fm) begin counta<=change; end else begin countb<=change; end end always begin asec<=8'hzz; end always @(posedge counta) begin if(amin==8'h59) amin<=0; else begin if(amin[3:0]==9) begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end else amin[3:0]<=amin[3:0]+1; end end always @(posedge countb) if(ahour==8'h23) ahour<=0; else begin if(ahour[3:0]==9) begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end else ahour[3:0]<=ahour[3:0]+1; end 2.4报时电路模块设计 报时电路是通过对比定时电路中的数据与计数器中的数据来达到准确报时的目的。代码实现如下: always if((hour1[7:0]==ahour[7:0])&&(min1[7:0]==amin[7:0]&&min1!=0)&&stop!=1&&sec1[7:0]==1) begin k<=1; end else begin k<=0; end 计算机组成原理课程设计 参考文献 3设计仿真 3.1 清零操作仿真 设置时钟为1分钟,turn按键2次,turn按键1次,设置完成。打开开关stop开始计时,记到3秒时,关闭开关,停止计时且hour1,min1,sec1清零。 图3.1 3.2 报时操作仿真 设置时钟为1分钟,turn按键2次,turn按键1次,设置完成。当计时达到1分钟时,K信号发出高电平,即发出响声,且停止清零。 图3.2 参考文献 [1] 李景华. 可编程程逻辑器件与EDA技术[M].北京:东北大学出版社,2001 [2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社, 2006 [3] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006 [4] 王冠.Verilog HDL与数字电路设计[M].北京:机械工业出版社,2005 [5] 白中英.计算机组成原理[M].科学出版社出版社,2008 [6] 胡越明.计算机组成与设计[M].北京:科学出版社,2006 附录 程序代码 module xxx(turn,change,ahour,amin,asec,clk,hour1,min1,sec1,k,stop); input change,turn,stop; output k; output [7:0]ahour,amin,asec; reg [7:0]ahour,amin,asec; reg counta,countb,fm; reg start1; input clk; output [7:0]hour1,min1,sec1; reg [7:0]hour1,min1,sec1; reg minclk,hclk,start2,clr; reg k; always @(posedge turn) begin fm<=~fm; end always begin if(fm) begin counta<=change; end else begin countb<=change; end end always begin asec<=8'hzz; end always @(posedge counta) begin if(amin==8'h59) amin<=0; else begin if(amin[3:0]==9) begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end else amin[3:0]<=amin[3:0]+1; end end always @(posedge countb) if(ahour==8'h23) ahour<=0; else begin if(ahour[3:0]==9) begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end else ahour[3:0]<=ahour[3:0]+1; end always @(posedge clk) begin if(stop==1) begin sec1[7:0]<=0; minclk<=1; end else if(sec1==8'h59) begin sec1<=0; minclk<=1; end else begin if(sec1[3:0]==9) begin sec1[3:0]<=0; sec1[7:4]<=sec1[7:4]+1; end else sec1[3:0]<=sec1[3:0]+1; minclk<=0; end if(stop==1) begin sec1[7:0]<=0; minclk<=1; end end always @(posedge minclk) begin if(stop==1) begin min1[7:0]<=0; hclk<=1; end if(min1==8'h59) begin min1<=0; hclk<=1; end else begin if(min1[3:0]==9) begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; end else min1[3:0]<=min1[3:0]+1; hclk<=0; end if(stop==1) begin min1[7:0]<=0; hclk<=1; end end always @(posedge hclk) begin if(stop==1) begin hour1[7:0]<=0; end if(hour1==8'h23) hour1<=0; else begin if(hour1[3:0]==9) begin hour1[3:0]<=0; hour1[7:4]<=hour1[7:4]+1; end else hour1[3:0]<=hour1[3:0]+1; end if(stop==1) begin hour1[7:0]<=0; end end always if((hour1[7:0]==ahour[7:0])&&(min1[7:0]==amin[7:0]&&min1!=0)&&stop!=1&&sec1[7:0]==1) begin k<=1; clr<=1; end else begin k<=0; clr<=0; end endmodule 总体电路图 目 录 第一章 总 论 1 一、项目概况 1 二、项目所在区域简介 1 三、报告编制依据 2 四、编制内容 3 五、简要结论 3 第二章 项目建设背景及必要性 5 一、项目建设背景 5 二、项目建设必要性 5 第三章 服务对象与需求分析 8 第四章 建设内容及规模 9 一、建设内容 9 二、建设规模 9 第五章 项目选址及建设条件 10 一、项目选址 10 二、什邡市概况 10 三、建设条件 11 第六章 项目建设规划和工程方案设计 15 一、项目建设规划的指导思想、基本原则和重建目标 15 二、项目建设规划实施的保障措施 16 三、工程方案设计原则 16 四、总平面布局 17 五、建筑设计 17 六、结构设计 19 七、电气设计 21 八、给排水设计 21 九、通风及空调系统 22 十、建筑装修和防护 23 第七章 节能方案 25 一、用能标准和节能规范 25 二、主要节能措施 25 第八章 环境保护与消防设计 28 一、施工期环境保护 28 二、营运期环境保护 28 三、消防设计 30 第九章、安全文明施工 33 第十章 项目建设管理机构及人力资源配置 36 一、什邡市卫生项目灾后重建项目领导机构 36 二、项目建设实施的管理机构 38 三、人力资源配置 39 第十一章 项目招投标及进度计划 40 一、招标方案 40 二、项目建设进度计划 40 第十二章 投资估算及资金筹措 42 一、投资估算范围 42 二、投资估算依据 42 三、编制说明 42 四、估算结果 43 五、资金筹措 45 第十三章 社会效益评价 46 一、项目对本地区社会影响分析 46 二、项目与本地区互适性分析 46 三、社会风险分析 48 第十四章 结论和建议 49 一、结论 49 二、建议 49
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服