08課程设计数电部分.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档