欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数字时钟电路设计.docx

    • 资源ID:3573624       资源大小:230.26KB        全文页数:16页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字时钟电路设计.docx

    1、数字时钟电路设计 EDA课程设计报告系别: 电子通信工程系 专业: 电子信息工程 姓名: 孙 进 宝 学号: 070608119 指导教师: 马 鹏 阁 张 松 炜 王 春 彦 目 录1 任务书 12 设计方案 12.1 时钟电路 22.2 按键电路 32.3 显示电路 32.4 芯片EPM7064简介 42.5 JTAG接口电路 42.6 软件设计流程图 52.7 引脚配置 62.8 工程创建流程图 73 实验仪器 84 测试步骤 85 测设结果 86 遇到的问题和解决方法 87 总结 9参考文献: 9附件一:电路图 10附录二:源程序 11基于EPM7064的数字时钟电路设计 1 任务书1

    2、、 设计一个数字时钟,4位数码管显示“分(2位)”,“秒(2位)”,带复位功能和暂停功能。2、 用中小规模集成电路组成电子钟;电源5V,系统时钟12MHz,带JTAG下载电路;3.核心芯片Altera,EPM7064,PLCC44封装。2 设计方案本设计由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位。设计原理框图如下:图1. 电路设计框图此次设计的多功能数字钟主要有五部分组成:(1) 有源晶振部分:主要产生时钟频率为12MHZ的输入信

    3、号脉冲(2) 开关控制部分:主要实现数字钟的暂停、复位。(3) EPM7064芯片部分:是整个数字钟的核心部分。主要是程序写入以及对输入脉冲的接收与转换输出工作。芯片采用ATERA EPM7064,PLCC44封装(4) 下载电路部分:使用JTAG下载电路(5) 数码管显示部分:4位数码管显示分(2位)、秒(2位)2.1 时钟电路晶体振荡器电路给数字钟提供一个品种稳定准确的方波信号,可保证数字钟的走私准确及稳定。与晶振并联的电阻的作用 与晶振并联的电阻R17是反馈电阻,是为了保证反相器输入端的工作点电压在VDD/2,这样在振荡信号反馈在输入端时,能保证反相器工作在适当的工作区。虽然去掉该电阻时

    4、,振荡电路仍工作了。但是如果从示波器看振荡波形就会不一致了,而且可能会造成振荡电路因工作点不合适而停振。所以千万不要省略此电阻。这个电阻是为了使本来为逻辑反相器的器件工作在线性区,以获得增益,在饱和区是没有增益的, 没有增益是无法振荡的。如果用芯片中的反相器来作振荡,必须外接这个电阻,对于CMOS而言可以是1M以上,对于TTL则比较复杂,视不同类型(S,LS)而定。如果是芯片指定的晶振引脚,如在某些微处理器中,常常可以不加,因为芯片内部已经制作了, 这两个电容(C7,C8)叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮法。它会影响到晶振的谐振频率和输出幅度,一般订购晶振时候

    5、供货方会问你负载电容是多少。晶振的负载电容=(Cd*Cg)/(Cd+Cg)+Cic+C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+C(PCB上电容)经验值为3至5pf。这两个电容串联的值是并联在谐振回路上的,会影响振荡频率。当两个电容量相等时,反馈系数是 0.5,一般是可以满足振荡条件的,但如果不易起振或振荡不稳定可以减小输入端对地电容量,而增加输出端的值以提高反馈量。图2. 晶振电路2.2 按键电路按键电路为了实现该设计的基本功能,通过按键电路实现计数时钟的的开启和暂停功能。图3.按键电路2.3 显示电路在应用数码管显示时,首先需要考虑的问题就是驱动电流,

    6、与发光二极管相同,数码管的发光段也需要串联限流电阻,共阳极数码管为例,串联的限流阻值越大,电流越小,亮度越低;电阻值越小,电流越大,亮度越高。在使用限流电阻时需要在每一段线上都串联限流电阻,而不要在公共端上串联电阻,如果只是在公共端上串联一个限流电阻,则显示不同数字是,将会造成数码管亮度的不同。在动态显示时,每个数码管的断连线是对应连接在一起的,同时由于数码管不存在同时点亮状态,所以只需在段连线的引出端上串联限流电阻即可。图7. 数码管驱动电路图8.数码管驱动电路2.4 芯片EPM7064简介CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从

    7、PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统.本文采用ALTERA公司的MAX7000s,它是基于第二代MAX结构的高精度、高性能 、在系统中可编程的CPLD芯片,采用CMOS技术加工而成,内含电可擦除只读存储器,可提供6005000个可用选通引脚、ISP、速度仅有5ns的延迟以及频率可达175.4MHZ的高速计数器。2.5 JTAG接口电路

    8、JTAG接口是一个业界标准,主要用于芯片测试和配置等功能,使用IEEE Std 11491联合边界扫描接口引脚。JTAG最初用于芯片功能的测试,其工作原理是在器件内部定义一个测试访问端口(Test Access Port,TAP),通过专用的JTAG测试工具对内部节点进行测试和调试。TAP是一个通用的端口,外部控制器通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。现在JTAG接口还常用于芯片的在线配置,对PLD、Flash等器件进行配置。为了完成系统的调试,任何原型系统都支持JTAG配置方式,因而JTAG配置也就成为最广泛支持的配置方式。不同厂商和不同型号的绝大部分FPGA芯片都支持J

    9、TAG配置方式。在Altera公司的FPGA芯片中,JTAG配置方式比其他任何一种配置方式的优先级都高。JTAG允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,实现对各个器件分别测试和配置。JTAG接口由4个必需的信号TDI、TD0、TMS和TCK,以及1个可选信号TRST构成。图9.JTAG接口电路2.6 软件设计流程图2.7 引脚配置 锁定后的管脚结果如下: Node Name DirectionLocationa13OutputPIN_2b12OutputPIN_3c9OutputPin_4clk InputPIN_28clkdspInput PIN_6d10Output P

    10、IN_7e11Output PIN_8f8OutputPIN_11gOutputPIN_12lamp2OutputPIN_37lamp1OutputPIN_39lamp0OutputPIN_38resetInput PIN_16sel2OutputPIN_19sel1OutputPIN_18sel0OutputPIN_17setmsecInput PIN_20setsec InputPIN_212.8 工程创建流程图3 实验仪器 本实验用到的实验仪器是3.3V稳压供电电源、PC机、JTAG下载线,以及基于FPGA的Altera公司的实验开发试验箱。焊电路板时还需要电烙铁、焊锡、镊子等。4 测试

    11、步骤将元件按照电路板上的位置一个个进行安放与焊接,这个工作尤其要认真不能有丝毫的马虎,特别是需要区分正负极的元件。 我们的焊接工作比较顺利,焊好之后能够顺利的进行程序的下载,但焊出的板子还是有点小小的瑕疵,需要在以后多加注意。本次课程设计的程序在Quartus II软件中的调试工作不像预期中的那么顺利,但是经过老师的指导及各位同学的不断探讨还是成功了。通过程序的调试工作是我们对Verilog语言有更进一步的认识,对Quartus II软件的使用也更加熟悉。电路板的调试工作也是比较顺利的,经过万用表测试没有问题后,我们便把程序下载进电路板,电路板正常的显示了分与秒,按下按键正常实现了暂停与复位功

    12、能。5 测设结果给焊好的电路板供3.3V的电压,然后通过JTAG接口用PC机给EPM7064的电路主芯片下载程序,看电路板芯片是否正常工作,时钟是否能正确显示,暂停、复位等功能是否能用。经测试,本电路不能正常通过JTAG接口下载程序,但是在其他电路板上下载好程序的芯片,在本电路板上能正常工作,且能实现暂停、复位功能。6 遇到的问题和解决方法 焊接时,由于三极管的管脚距离太近,焊接时很容易管脚发生连焊,于是我们通过把电烙铁侧拿、只用一个角与三极管和焊锡接触,以此来避免出现管脚相连的现象发生。焊好后,JTAG接口无法正常下载程序(经检查,是当时焊接时,烙铁温度过高,导致一个管脚的焊盘脱落,不导电所

    13、致),于是通过先把芯片放在别人的能下载的电路板上下载程序,然后再放到我们的电路板上,结果表明:下载好程序的芯片放在本电路上,能够正常工作。7 总结经过几天努力,终于完成了我们的课程设计,虽然没有那么完美,但从心底里说,还是高兴的,毕竟这次设计终于得以完成,但是高兴之余不得不深思呀!我们由衷感谢老师提供给我们这样一个锻炼自己的机会,让我们第一次感受到学来的知识不只是用来完成试卷的。在完成课程设计的过程中体会到团队合作的乐趣。一向惯于“独立思考”的我们学会了积极的同团队成员交流,取长补短,共同进步。“独学而无友则孤陋而寡闻”,只有和同学多交流多学习才能不断的提高自身水平。 最重要的一点,我们学会了

    14、一种快速有效的学习方法。以往的学习都是老师讲学生记,不懂得地方就靠解答大量习题帮助记忆,学习的主要目的是通过最后的考试。课程设计使我们发现考试真的并不是最重要,最重要的是能运用所学的知识。在整个课程的学习过程中,我们突破了传统学习模式,把被动接受转变为主动学习。不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。从这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,实践是检验真理的唯一标准。我们电子专业的学习更是如此,不仅要有丰富的理论知识,还要有很强的动手能力,只有理论与实践并重,我们的专业水平才能提高,这就是我在这次

    15、课程设计中的最大收获。另外感谢老师给我们辅导课程设计,我想有了这次课程设计,我们以后做毕业设计会变的得心应手,不会无从下手。参考文献【1】潘松,黄继业EDA技术实用教程科学出版社2006年9月第三版【2】 杨乐平,李海涛,肖相生,等 程序设计与应用第2版M北京:电子工业出版社2005【3】马淑华,高原 电子设计自动化北京邮电大学出版社2006附件一:电路图 附录二:源程序 module clock(clk,key,dig,seg); /模块名clockinput clk; /输入时钟input1:0 key; /输入按键output3:0 dig; /数码管选择输出引脚output7:0 se

    16、g; /数码管段输出引脚reg7:0 seg_r; /定义数码管输出寄存器reg3:0 dig_r; /定义数码管选择输出寄存器reg3:0 disp_dat; /定义显示数据寄存器reg22:0count; /定义计数寄存器reg15:0hour; /定义现在时刻寄存器reg sec,keyen; /定义标志位reg1:0dout1,dout2,dout3; /寄存器wire1:0key_done; /按键消抖输出assign dig = dig_r; /输出数码管选择assign seg = seg_r; /输出数码管译码结果 /秒信号产生部分always (posedge clk) /定

    17、义clock上升沿触发begin count = count + 1b1; if(count = 23d6000000) /0.5S到了吗? begin count = 23d0; /计数器清零 sec = sec; /置位秒标志 endend/按键消抖处理部分assign key_done = (dout1 | dout2 | dout3); /按键消抖输出always (posedge count17)begin dout1 = key; dout2 = dout1; dout3 = dout2; endalways (negedge key_done0)begin keyen = key

    18、en; /将琴键开关转换为乒乓开关end/数码管动态扫描显示部分always (posedge clk) /count17:15大约1ms改变一次begin case(count17:15) /选择扫描显示数据 3d0:disp_dat = hour3:0; /秒个位 3d1:disp_dat = hour7:4; /秒十位 / 3d2:disp_dat = 4ha; /显示- 3d2:disp_dat = hour11:8; /分个位 3d3:disp_dat = hour15:12; /分十位 / 3d5:disp_dat = 4ha; 显示- / 3d6:disp_dat = hour1

    19、9:16; 时个位 / 3d7:disp_dat = hour23:20; 时十位 endcase case(count17:15) /选择数码管显示位 3d0:dig_r = 4b1110; /选择第一个数码管显示 3d1:dig_r = 4b1101; /选择第二个数码管显示 3d2:dig_r = 4b1011; /选择第三个数码管显示 3d3:dig_r = 4b0111; /选择第四个数码管显示 / 3d4:dig_r = 4b1111; /选择第五个数码管显示 / 3d5:dig_r = 8b11011111; /选择第六个数码管显示 / 3d6:dig_r = 8b1011111

    20、1; /选择第七个数码管显示 / 3d7:dig_r = 8b01111111; /选择第八个数码管显示 endcase endalways (posedge clk)begin case(disp_dat) 4h0:seg_r = 8hc0; /显示0 4h1:seg_r = 8hf9; /显示1 4h2:seg_r = 8ha4; /显示2 4h3:seg_r = 8hb0; /显示3 4h4:seg_r = 8h99; /显示4 4h5:seg_r = 8h92; /显示5 4h6:seg_r = 8h82; /显示6 4h7:seg_r = 8hf8; /显示7 4h8:seg_r =

    21、 8h80; /显示8 4h9:seg_r = 8h90; /显示9 /4ha:seg_r = 8hbf; /显示- default:seg_r = 8hff; /不显示 endcase / if(count17:15= 3d2)&sec) / seg_r = 8hff;end/计时处理部分always (negedge sec or negedge key_done1)/计时处理begin if(!key_done1) /是清零键吗? begin hour = 23h0; /是,则清零 end else if(!keyen) begin hour3:0 = hour3:0 + 1b1; /秒加1 if(hour3:0 = 4ha) begin hour3:0 = 4h0; hour7:4 = hour7:4 + 1b1; /秒的十位加一 if(hour7:4 = 4h6) begin hour7:4 = 4h0; hour11:8 = hour11:8 + 1b1;/分个位加一 if(hour11:8 = 4ha) begin hour11:8 = 4h0; hour15:12 = hour15:12 + 1b1;/分十位加一 end end end endendendmodule


    注意事项

    本文(数字时钟电路设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开