欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数字电路课程设计实习报告.doc

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

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

    数字电路课程设计实习报告.doc

    装订线 数字电路课程设计 题目: 利用CPLD设计可调时数字钟 学 院 专 业 学 号 姓 名 教 师201利用CPLD设计可调时数字钟摘 要装订线本数字钟采用动态显示数字的方法,输入512Hz的时钟信号,驱动显示位选信号产生,位选信号以85Hz从0到6不断地扫描数码管。 输入2Hz信号通过2分频变成秒信号,秒信号驱动时钟计数模块计数,完成时钟计数的功能,在位选信号扫描到相应的数码管时,计数器将计数的结果显示在数码管上,由于视觉残留的关系,人眼会感觉到数字一直在显示,从而实现计时功能。 在手动调节时钟时,有三个按键,一个实现清零,一个作为分调整按键,最后一个作为时调整按键。调整时间键在对应时或者分数码管后通过按压按键产生脉冲使数码管实现加一的运算,从而改变时间,将1Hz闪烁的小数点接在秒信号上即可。关键词:CPLD 计数器 分频器 三选择器 七段译码器目 录 一、总体设计方案 .1 1.1设计要求 .11.2设计原理 .1 1.2.1电源电路 .1 1.2.2振荡电路与分频电路 .1 1.2.3显示电路 .21.2.4JTAG下载接口 .21.2.5CPLD电路原理图 .3 二、各模块说明 .4 2.1设计思路及步骤 .4 2.2总体框图 .4 2.3各模块说明 .4 2.3.1 7段译码器 .4 2.3.2 消抖模块 .5 2.3.3与门模块 .5 2.3.4数据选择器模块 .62.3.5 D触发器模块 .6 2.3.6非门模块 .7 2.3.7或门模块 .7 2.3.8十进制计数模块 .7 2.3.9位选模块 .8 2.3.10秒计数模块 .8 2.3.11六进制模块 .102.3.12分计数模块 .112.3.13分频器模块 .122.3.14顶层总模块 .132.4数字钟电路总图 .12  三、课程总结 .16 3.1遇到的问题及其解决办法 .16 3.2收获与体会 .16 参考文献 .16一 总体设计方案1.1设计要求1、以数字形式显示时、分、秒的时间; 2、要求手动校时、校分;  3、时与分显示之间的小数点常亮; 4、分与秒显示之间的小数点以1Hz频率闪烁; 5、各单元模块设计即可采用原理图方式也可以用Verilog程序进行设计。 1.2设计原理1.2.1 电源电路如图1.1示为实验所需的电源电路。图1-1 电源电路图1.2.2 振荡电路与分频电路晶体振荡器给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定. 分频电路采用T触发器对其分频,每经过一个T触发器对其二分频,所以各点的分频倍数分别为:QD: 24 QE: 25 QF: 26 QG: 27 QH: 28 QI: 292 QJ: 210 QL: 212 QM: 213 QN: 214;此处采用的是32768Hz的晶振,故分频之后QF:512Hz、QI:64Hz、QN:2Hz。图1-2 振荡电路与分频电路图1.2.3 显示电路计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流.图1-3 显示电路图数码管是共阴数码显示管,当其控制端为“0”时,数码显示管显示。显示模块输入时钟频率为512Hz,显示刷新频率约为85Hz。如图1.3示。1.2.4 JTAG接口电路图1-4 JTAG接口电路图1.2.5 CPLD电路原理图此原理图1.4的MODE和ADD分别控制校正位和其校正位进行加一校正。MODE共有七个状态分别对应六个数码管的校正和正常计数。 图1-5 CPLD电路图二 各模块说明 2.1设计思路及步骤 1、按原理图和元件插件图完成电路的焊接; 2、拟定数字钟的组成框图,划分模块; 3、编写各模块程序;4、下载程序。2.2总体框图 图2-1 总体程序框图2.3各模块说明 2.3.1 7段译码器模块module yima(datain,dataout);input3:0datain;output6:0dataout;reg6:0dataout;always(datain)begincasex(datain)4'b0000:dataout<=7'b0111111;4'b0001:dataout<=7'b0000110;4'b0010:dataout<=7'b1011011;4'b0011:dataout<=7'b1001111;4'b0100:dataout<=7'b1100110;4'b0101:dataout<=7'b1101101;4'b0110:dataout<=7'b1111101;4'b0111:dataout<=7'b0000111;4'b1000:dataout<=7'b1111111;4'b1001:dataout<=7'b1101111;default:dataout<=7'bx;endcaseendendmodule2.3.2消抖模块 module xiaodou (clk,key_in,key_out);input clk,key_in;output key_out;Dchufa u1(.datain(key_in),.clk(clk),.dataout(c0);Dchufa u4(.datain(c2),.clk(clk),.dataout(key_out);yumen u3(.datain1(c1),.datain2(key_in),.dataout(c2);feimen u2(.datain(c0),.dataout(c1);endmodule2.3.3与门模块module yumen(datain1,datain2,dataout);input datain1,datain2;output dataout;reg dataout;always(datain1,datain2)beginif(datain1&&datain2)dataout=1;elsedataout=0;endendmodule 2.3.4数据选择器模块  module sel61(datain1,datain2,datain3,datain4,datain5,datain6,sel,dataout);input3:0 datain1,datain3,datain5;input2:0 datain2,datain4,sel;input1:0 datain6;output3:0 dataout;reg3:0 dataout;always(datain1,datain2,datain3,datain4,datain5,datain6,sel)begincase(sel)3'b000:dataout=datain1;3'b001:dataout=datain2;3'b010:dataout=datain3;3'b011:dataout=datain4;3'b100:dataout=datain5;3'b101:dataout=datain6;default:dataout=dataout;endcaseendendmodule2.3.5D触发器模块module Dchufa(datain,clk,dataout);input datain,clk;output dataout;reg dataout;always(posedge clk)begindataout<=datain;endendmodule2.3.6非门模块module feimen(datain,dataout);input datain;output dataout;reg dataout;always(datain)begindataout=datain;endendmodule2.3.7或门模块module huo(datain1,datain2,dataout);input datain1,datain2;output dataout;assign dataout=datain1|datain2;endmodule2.3.8十进制计数模块module shijinzhi(clk,res,HD,LD);input clk,res;output 1:0 HD;output 3:0 LD;reg1:0 HD;reg3:0 LD;always (posedge clk or posedge res)beginif (res)begin LD<=4'b0 ;HD<=2'b0 ;end else if(LD=4'b1001)&&(HD=2'b0)beginLD<=4'b0 ;HD<=2'b1 ;endelse if(LD=4'b1001)&&(HD=2'b01)beginLD<=4'b0;HD<=2'b10;endelse if(LD=4'b0011)&&(HD=2'b10)beginLD<=4'b0;HD<=2'b0;endelse LD<=LD + 1;endendmodule2.3.9位选模块module wela(datain,dataout);input2:0datain;output5:0dataout;reg5:0dataout;always(datain)begincase(datain)3'b000:dataout=6'b111110;3'b001:dataout=6'b111101;3'b010:dataout=6'b111011;3'b011:dataout=6'b110111;3'b100:dataout=6'b101111;3'b101:dataout=6'b011111;default:dataout=dataout;endcaseendendmodule2.3.10秒计数模块module seccount(clk,res,cout,g,s);input clk,res;output3:0 g;output 2:0 s;output cout;reg3:0g;reg2:0s;reg cout;always(posedge clk or posedge res)beginif (res)begin g<=4'b0 ;s<=2'b0 ;cout<=0;end else if(g=4'b1001)&&(s=3'd5)beging<=4'b0 ;s<=3'b0 ;cout<=1;endelse if(g=4'b1001)&&(s=3'b0) beging<=4'b0 ;s<=3'b1 ;cout<=0;endelse if(g=4'b1001)&&(s=3'b1) beging<=4'b0 ;s<=3'd2 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd2) beging<=4'b0 ;s<=3'd3 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd3) beging<=4'b0 ;s<=3'd4 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd4) beging<=4'b0 ;s<=3'd5 ;cout<=0;endelse if(g=4'b0)&&(s=3'd0)begincout<=0;g=g+1;endelseg=g+1;endendmodule2.3.11六进制模块module liujinzhi(clk,dataout);input clk;output2:0dataout;reg2:0dataout;always(posedge clk)beginif(dataout=5)dataout<=0;elsedataout<=dataout+1;endendmodule2.3.13分计数模块module mincount(clk,res,cout,g,s);input clk,res;output3:0 g;output 2:0 s;output cout;reg3:0g;reg2:0s;reg cout;always(posedge clk or posedge res)beginif (res)begin g<=4'b0 ;s<=2'b0 ;cout<=0;end else if(g=4'b1001)&&(s=3'd5)beging<=4'b0 ;s<=3'b0 ;cout<=1;endelse if(g=4'b1001)&&(s=3'b0) beging<=4'b0 ;s<=3'b1 ;cout<=0;endelse if(g=4'b1001)&&(s=3'b1) beging<=4'b0 ;s<=3'd2 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd2) beging<=4'b0 ;s<=3'd3 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd3) beging<=4'b0 ;s<=3'd4 ;cout<=0;endelse if(g=4'b1001)&&(s=3'd4) beging<=4'b0 ;s<=3'd5 ;cout<=0;endelse if(g=4'b0)&&(s=3'd0)begincout<=0;g=g+1;endelseg=g+1;endendmodule2.3.14分频器模块module fenpin(clk1,clk2);input clk1;output clk2;reg clk2;always(posedge clk1)beginclk2=clk2;endendmodule2.3.15顶层总模块module shizhong(key1,key2,key3,clk1,clk2,clk3,dataout1,dataout2,dataout3);input key1,key2,key3,clk1,clk2,clk3;output6:0dataout1;output5:0dataout2;output dataout3;wire c0,c1,c3,c5,c6,c7,c8;wire 1:0 c14;wire 2:0c12,c4,c10;wire 3:0c11,c15,c9,c13;xiaodou u1(.clk(clk1),.key_in(key2),.key_out(c0);xiaodou u2(.clk(clk1),.key_in(key3),.key_out(c1);fenpin u3(.clk1(clk2),.clk2(c3);liujinzhi u4(.clk(clk3),.dataout(c4);huo u5(.datain1(c0),.datain2(c5),.dataout(c6);huo u6(.datain1(c1),.datain2(c7),.dataout(c8);seccount u7(.clk(c3),.res(key1),.cout(c7),.g(c9),.s(c10);mincount u8(.clk(c8),.res(key1),.cout(c5),.g(c11),.s(c12);shijinzhi u9(.clk(c6),.res(key1),.HD(c14),.LD(c13);sel61 u10(.datain1(c9),.datain2(c10),.datain3(c11),.datain4(c12),.datain5(c13),.datain6(c14),.sel(c4),.dataout(c15);wela u11(.datain(c4),.dataout(dataout2);yima u12(.datain(c15),.dataout(dataout1);huo5 u13(.datain1(c4),.datain2(c3),.dataout(dataout3);endmodule2.4数字钟电路总图数码管显示控制电路工作原理:以512Hz的频率作为输入端时钟脉冲,用六进制计数器为三八译码器提供六个不同状态,分别控制六个数码管的状态,每个数码管的显示频率约为85Hz,可以充分的利用人眼的视觉残留现象实现数字的常显,观测到的结果为:数码管常亮。此电路中小数点的显示是用一个或门,通过1Hz频率来控制第三个数码管的小数点显示,再通过一个与非门来控制第五个数码管的小数点显示。第五个数码管的小数点在整个脉冲阶段显示,而第三个数码管的小数点只有在低电平时显示,故观察到结果是第五个数码管常亮,而第三个数码管的小数点以1Hz的频率闪烁。在手动调节时钟时,有三个按键,一个实现复位清零,一个作为调整时的按键,最后一个作为调整分的按键。三 课程总结3.1遇到的问题及其解决办法  1.焊接之前,要认真阅读数字钟的相关资料,了解各个元器件的属性和掌握焊接板子的一些基本操作,便于操作时得心应手,也要仔细核对元器件是否正确,要保证使用正确的元件,以防焊接错误再去改到;2.焊接的时候要注意元器件的引脚分配和属性值,另外,还有注意不要虚焊,如果不清楚是否虚焊了,需要用万用表进行测试;3.程序方面,由于EPM3 064 ALC44 -10芯片只有64个宏单元,编写程序时有可能导致所需的宏单元数超过提供的数量,经过分析在处理小数点的时候,直接把其作为与其它段显示一起定义成八位变量,这样就会增加芯片内存消耗,但实际要求中只用到两个小数点,所以把这个小数点单独进行操作处理,大大减少了宏单元的利用,这样才能编译成功。3.2 收获与体会 通过这次做数字钟,首先,就是加深了对Verilog语言的模块化编程的认识,其次,是对编程中元件例化的方法的应用,各个程序相互独立的实现有了更深的了解,最后,通过顶层模块将所有子模块调用进来,这样使整个工程十分清晰,并且容易进行测试修改;另一方面,在编程的过程中会出现很多问题,通过上网搜索、和同学一起探讨,发现问题并解决问题,我觉得这个过程才能学到很多超出知识本身的东西,对知识的学习和掌握需要理论与实践相结合,应该是学习致用的一个过程。最重要的是要静下心来有耐心和恒心才可以把事做成,这是至关重要的。参考文献 1数字电路综合实习讲稿河北大学电子信息工程学院编 IBSN 978-7-8114-309-3 夏宇闻Verilog 数字系统设计教程(第2版)北京航空航天大学出版社 2008.

    注意事项

    本文(数字电路课程设计实习报告.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开