- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08課程设计数电部分
2009—2010学年第二学期
数字电子技术课程设计报告
专业班级 自动化08—2班
姓 名
学 号 0805
开课系室 电工电子学教学中心
设计日期 2010年8月23日~27日
设计题目:多功能数字钟电路设计
一、设计任务及要求:
本次课程设计任务是设计一个多功能数字钟。
具体要求是:
1.钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,但是需要注意的是,小时的范围是从0~23时。
2.小时-分钟-秒钟。
3.整点报时,在整点前5秒LED开始按照1HZ频率闪烁,过整点后,停止闪烁。
4.调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。
二、设计原理与方案:
(一)、顶层设计方案:(包括原理框图及其工作原理说明等内容)
图1 原理框图
工作原理说明:clk用于输入50MHZ时钟,s1用于给小时加1,s2用于给分钟加1,s8用于复位。
分频器分出三个频率的时钟,clkout1输出1HZ,clkout2输出1千HZ,clkout1输出2HZ。
控制器输入端口t1用于控制灯闪烁,输出端口led接小灯,ss1、ss2、reset分别储存s1、s2、s8的值并将其传给计数器。
计数器输出端口shis表示小时的十位,shig表示小时的各位,mins表示分钟的十位,ming表示分钟的个位。secs表示秒的十位,secg表示秒的个位。
显示器输出端口leds接七段数码管,wei接数码管的控制端。
当clkout1出现上升沿时,秒执行加1或进位操作,若秒进位,则分钟执行加1或进位操作,若分秒都进位,则小时进行加1或进位操作。小时进位前5秒,灯开始以1HZ频率闪烁。按下s1时小时加1或进位,按下s2时分钟加1或进位,若分钟进位,小时同时进行加1或进位操作。
整体仿真源文件:
图2整体仿真源文件
说明:s1、s2、s8按下时为0,不按下时为1。当s8按下时,全部归0。当s1按下时,小时假1,当s2按下时,分钟加1。输入波形中刚开始s8为0,归0。然后让其运行一段时间,再让s1为0,再过一段时间让s2为0,再过一段时间让s8为0。clk为脉冲信号,10ps一周期。
输出放大截图:
图3 输出仿真波形放大截图第一部分
图4 输出仿真波形放大截图第二部分(灯的闪烁)
说明:仿真时计数器控制器都是12分频,灯闪烁是6分频,显示器是2分频,因此能看到输出的6个数码管的值。并对其进行初步判断。由于数码管数值不易分辨,所以不用全部看到,只看一部分即可。
(二)、各个电路子模块:
1.分频器设计方案
设计思路:设计计数变量 cout1、cout2、cout3,每来一个脉冲加1。cout1加归0,同时clkout1加1,否则clkout1归0。cout2归0,同时clkout2加1,否则clkout2归0。cout3归0,同时clkout3加1,否则clkout3归0。
源程序:
module fenpin(clk,clkout1,clkout2,clkout3);
input clk; //下载时clk为50MHz
output clkout1,clkout2,clkout3; //clkout1输出1赫兹,clkout2为1千赫兹,clkout3为2赫兹
reg clkout1,clkout2,clkout3;
integer cout1,cout2,cout3; //cout1,cout2,cout3均为计数变量
always @(posedge clk )
begin
cout1 = (cout1 == 32 ? 32d0 : (cout1 + 32d1);
clkout1= (cout1 == 32 ? 1d1 : 1d0; /频
cout3 = (cout3 == 32d25000000
文档评论(0)