数电课程设计_简单数电课程设计

2020-02-28 其他范文 下载本文

数电课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“简单数电课程设计”。

目录

一.设计要求„„„„„„„„„„„„„„„„„„„„„„ 二.设计思想„„„„„„„„„„„„„„„„„„„„„„ 三.详细设计„„„„„„„„„„„„„„„„„„„„„„

1.信号源„„„„„„„„„„„„„„„„„„„„„(1)模10计数器„„„„„„„„„„„„„„„„„(2)脉冲分频选择电路„„„„„„„„„„„„„„„

2.计时电路„„„„„„„„„„„„„„„„„„„„„(1)模60计数器„„„„„„„„„„„„„„„„„

(2)模24计数器„„„„„„„„„„„„„„„„„(3)时钟运行示意图„„„„„„„„„„„„„„„„

3.显示电路„„„„„„„„„„„„„„„„„„„„„(1)模6计数器„„„„„„„„„„„„„„„„„„(2)选择显示模块„„„„„„„„„„„„„„„„„ 4.按键控制部分„„„„„„„„„„„„„„„„„„„ 5.蜂鸣器部分„„„„„„„„„„„„„„„„„„„„„ 四.实验碰到的问题„„„„„„„„„„„„„„„„„„„ 五.实验心得„„„„„„„„„„„„„„„„„„„„„„ 六.使用说明„„„„„„„„„„„„„„„„„„„„„„ 七.附录总图„„„„„„„„„„„„„„„„„„„„„„

数电课程设计——简易数字钟

数字钟是一种用数字电路技术实现分、时、秒计时的装置,与机械式时钟相比既有更高的准确度和直观性,因为没有机械装置,所以有更长的使用寿命,因此得到了广泛的使用。数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。

一. 设计要求

1. 具有整点报时和校时功能

2. 以6位LED数码管显示时,分,秒。

3. 整点报时采用蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣想4次,响一秒,停一秒,直到整点前一秒以高频响一秒,整点时结束。

4. 采用两个按键分别控制“校时”或“校分”。按下“校时”键时,时显示以0—23循环变化;按下“校分”键时,分显示值以0—59循环变化,但显示值不能变化。

二. 设计思想

LP—2900的基准时钟频率为10MHz,通过7个10分频计数器可以得到1Hz的频率。秒和分为60进制计数器,时为24进制计数器。显示管的6个数字依次是时十位,时个位,分十位,分个位,秒十位,秒个位。每一位用8421二进制表示,如此,一共用24条输出来控制数码管的显示。这样,基本的时钟就确定了。

由于LP—2900外部设置了3-8译码器控制显示器的共阴极,3-8译码器的输出端一次只能输出一位,因此无法同时控制6个显像管。但是当扫描频率提高到每个显示器每秒的导通次数多于50次,由于人眼的视觉暂留效应,就不会感到显示器的闪烁。因此只要采用计数器产生二进制计数信号在高频率脉冲的控制下,3-8译码器就能实现动态扫描。

校分时功能由防抖开关,数据选择器,逻辑门组成,原理是当按下SW键时系统进入校时或校分状态,秒,分,时的进位被断开,脉冲输入按键有效,此时可人为控制脉冲的输入,并且不会再有进位。当SW键断开后,数据选择器重新选择进位信号为输出,各个部分的进位重新有效而脉冲输入按键失效。

蜂鸣器部分由2分频和数据选择器组成,当满足59分51,53,55,57秒时选择500Hz信号给蜂鸣器,当59分59秒时选择1KHz给蜂鸣器。在其他时间段,数据选择器的输出都是0,蜂鸣器不工作。

三.详细设计

1.信号源:

(1)基础10分频电路:

LP—2900自带基准时钟频率为10Mhz,而秒的频率为1Hz,因此只要通过7个10分频计数器就能得到秒的频率。同时,10Mhz至1Hz的其他频率也做成输出,以备他用。

10分频计数器:(图1)

原理:采用7490作为制作10分频模块的原件。7490是二—五—十进制计数器,内含一个二进制计数器和一个异步五进制计数器输出,因此级联后可实现十进制计数器。QA为二进制计数器的输出,QB~QD为五进制计数器输出,如图1,五进制最高端QD连上CLKA,输入脉冲连的也是五进制的时钟端,那么当QD为1时,二进制计数器得到一个脉冲。QD只有在QD,QC,QB分别等于1,0,1时才等于1,所以每5个脉冲使CLKA得到一个脉冲,也就是说CLKA得得到一个进位,计数为5.而QA作为二进制计数器能记2个数,所以总共可以计数为10.因此一个十进制的计数器就完成了。如图1.在信号源中封装成一元件的十分频模块:

图2

(2)脉冲分频选择电路:

在数字系统中,通常至少有一个基准脉冲信号发生电路,其他频率的脉冲信号可以通过基准信号分频获得。级联7个模10分频器就可以分别得到10MHz,1MHz,100KHz,10KHz,1kHz,100Hz,10Hz和1Hz共8个频率的信号。10MHz的频率在第七级元件处实现1Hz的输出。(如图3)

信号源原件图3

信号源封装成模块如下图:

2.计时电路

(1)模60计数器

模60计数器由2个74161组成(如图)。74161是4位二进制计数器,模为16,异步复位端CLRN,同步置位端LDN,当置位端有效时,把DCBA输入从QD,QC,QB,QA处输出。CO为进位输出。考虑到分别显示的问题,让其中一个作为十位,一个作为个位。

图4

上片是低位,下片是高位。当QD,QC,QB,QB满足1001时,与非门提供置位信号给低片,低片置位0000,共计数为10.同时,这个置位信号作为输入信号进入高位片,高位获得一个脉冲计数加一。当高位片计数到0101时,输出一个置位信号到高片LDN,高片置位0000,共计数为6.低片高片级联总共计数60(0~59).这时把第60个数(59)的2个进位信号通过“与”的关系输出,则可以作为整个模60计数器的进位输出。(如图4)

模60计数器封装成模块如下图:

(2)模24计数器

图5

模24计数器由2个74160组成(如图)。74160也是4位二进制计数器,模为10,异步复位端CLRN,同步置位端LDN,当置位端有效时,把DCBA输入从QD,QC,QB,QA处输出。CO为进位输出。考虑到分别显示的问题,让其中一个作为十位,一个作为个位。其实用74161也能达到同样效果,与74161唯一的不同就是74160的模是10且是8421二进制。

上片是低位,下片是高位。当QD,QC,QB,QB满足1001时,与非门提供置位信号给低片,低片置位0000,共计数为10.同时,这个置位信号作为输入信号进入高位片,高位获得一个脉冲计数加一。当高位片计数到0010时,输出一个置位信号到高片LDN,高片置位0000,共计数为2.再把高片的0200与低片的0100的输出信号通过与非门传送到低电平异步复位端,目的是使计数器在跳到24的瞬间复位。低片高片级联总共计数24(0~23)。(如图5)

模24计数器封装成模块如下图:

(3)时钟运行示意图

D23,d22,d21,d20表示小时的十位

D19,d18,d17,d16表示小时的个位

D15,d14,d13,d12表示分钟的十位

D11,d10,d9,d8表示分钟的个位

D7,d6,d5,d4表示秒的十位

D3,d2,d1,d0表示秒的个位

图6

3.显示电路

动态扫描显示电路的显示器由相同的段信号控制,公共端有效的显示器将显示相同的字符。图7中的3-8译码器74138将输出顺序的脉冲扫描控制6哥共阴显示器公共端C1~C6,每路脉冲信号的周期为6个时钟周期,只有一个时钟周期为低电平,且低电平时间依次错开。即:各个显示器的因极端分时轮流选通,任意瞬时只有一个显示器的公共端为有效低电平,所以虽然所有显示器的阳极端对应共接,但FPGA输出段信号只能使当前阴极为低点频的那个显示器显示字符,其他的显示器由于高电平而处在灭显状态。所以要使各显示器显示不同的内容,必须使他们的公共段轮流有效。在高频率脉冲下利用人眼的视觉暂留效应看起来就是共同显示了。那么总共有6个显像管,因此端口DE3,DE2,DE1只要6个循环输出就能完成。

图7

(1)模6计数器

图8

模6计数器由1个74161组成(如图8)。

当QD,QC,QB,QB满足0101时,与非门提供置位信号,在下一个脉冲信号来时QD,QC,QB,QB被置位0000,共计数为6.模6计数器封装成模块如下图:

(2)选择显示模块

图9

显示选择模块由4个74151组成(如图9)。74151是8位选1数据选择器,输入端C,B,A控制输出给定数据D7~D0.图中各个输入端的接口代表意义如图6所示。

因为显像管由7448译码器控制(如图10),而7448译码器有4个输入端一次接受一个四位8421二进制码。所以安排四个数据选择器。Yd,yc,yb,ya分别连7448的D,C,B,A口。当DE3,DE2,DE1是000时,显像管第一个工作,显示的是小时的十位。小时的十位应该是d23, d22, d21,d20.这4个数分别来自四个数据选择器的D0端口。

当DE3,DE2,DE1是001时,显像管第二个工作,显示的是小时的个位。小时的个位应该是d19, d18, d17,d16.这4个数分别来自四个数据选择器的D1端口。

当DE3,DE2,DE1是010时,显像管第三个工作,显示的是分钟的十位。分钟的十位应该是d15, d14, d13,d12.这4个数分别来自四个数据选择器的D2端口。

当DE3,DE2,DE1是011时,显像管第四个工作,显示的是分钟的个位。分钟的个位应该是d11, d10, d9,d8.这4个数分别来自四个数据选择器的D3端口。

当DE3,DE2,DE1是100时,显像管第五个工作,显示的是秒钟的十位。秒钟的十位应该是d7, d6, d5,d4.这4个数分别来自四个数据选择器的D4端口。

当DE3,DE2,DE1是101时,显像管第六个工作,显示的是秒钟的个位。秒钟的个位应该是d3, d2, d1,d0.这4个数分别来自四个数据选择器的D5端口。

可见,当模六计数器的输出和DE3,DE2,DE1及4个数据选择器的C,B,A连接时,模6计数器每得到一个脉冲,显像管一次点亮并显示这一位的数值。当模6计数器的脉冲频率为1KHz时,人眼分辨不出显像管的闪烁。数字时钟的时钟部分就完成了。

图10

4.按键控制部分

图11

按键控制部分由D触发器和双四选一数据选择器74153组成。实际上只要用一个四选一数据选择器即可。当B、A=00时,选出1C0;当B、A=01时,选出1C1;当B、A=10时,选出1C2;当B、A=11时,选出1C3。1C0与1C1为所断开部分本来要有的进位,1C2=0,1C3为高电平。如此:

当SW按下时,A=1,当按下PS时,B=1,选通1C3,输出一个脉冲,认为添加一个脉冲,达到修改时间的目的。

由于PS按钮默认为弹起状态,因此默认是0.所以SW未被按下时,输出的是本来该有的脉冲,并且即使按下PS,BA=10输出的是低电平,输出的0并不会引起下一级的计数器跳变。这样SW就成了校对允许使能开关。

D触发器的作用是消除毛刺,不然按下PS键,进入下一级计数器的信号是不可预知的。

按键控制模块封装成模块如下图:

图12

5.蜂鸣器部分

图13

蜂鸣器部分由一个74161和一个74153组成(如图13)。上半部分的输入依次为下表的含义。Min_h, min_g, min_f,min_e表示输入分钟的十位。Min_d, min_c, min_b, min_a表示输入分钟的个位。Sec_h, sec_g, sec_f, sec_e表示输入秒的十位。Sec_d, sec_c, sec_b, sec_a表示输入秒的个位。

74161的部分是一个2分频计数器,使输入的频率除半。按照要求必须是59分的51,53,55,57,59秒有响声,而59秒的响声频率更高,其他的时间却不能响。74153的作用是选通信号,决定蜂鸣器什么时候工作。如果把2个四输入与门叫做T1,T2,与非门称作T3。则:

当T1和T2在59的时候各自为1,此时T3为0,所以B=0,A=1,选通1C1为1KHz。这就是59分59秒频率高的一次。

当T1为59,T2输入为51,53,55,57时,B为0.A也是0,此时选通1C0,500Hz。

当T1,T2在以上讨论的范围外,T3为1,即B=1,此时不管BA=10或11选通1C2或1C3,74153接地,输出低电平,蜂鸣器不响。

蜂鸣器模块封装成模块如下图:

图14

四。实验碰到的问题

做这个课程设计的时候,烦了很多愚蠢的问题,但是在没被点穿的情况下还真实自己发现不了。

问题1:

最开始显示的时间是倒着的。比如应该显示15时34分27秒,15 34 27时,但是输出的却是72 43 51.错误的原因是扫描显示的第一个脉冲是DE3,DE2,DE1=000.选择的是每一个的数据选择器的D0脚的数据。所以应该把小时的数字的二进制码显示在第一第二个显示器上。而我的错误在于把秒放在了最先显示的显示器上。

问题2:

模60计数器在59进到00时有衔接问题。比如说3 58到3 59时我的错误过程是3 58→4 59→4 00.即:高位的进位早于进位的跳变。错误的原因在于模60计数器的输出进位时,上边沿与下边沿的问题。因为我一开始在进位的与非门是用与门的。由于模60计数器的cp端是上边沿的,所以如此以来在跳到59的瞬间,下一级就进位了。当换成与非门后,在59后不是59的时候进位,只有60(00)那一瞬进位,所以正确了。

问题3: 按键控制模块中,校对允许开关在开启后关闭的时刻会加一。例如在3时34分的时候让他变成45分,再按下校对允许开关关闭校对时会变成3时46分。时校对也有这个问题。错误在于对SW开关也要加D触发器防止毛刺。虽然SW按键没有PS按键的毛刺现象严重,但还是有的。加了D触发器就没问题了。

问题4:

引脚分配有一个bug。比如有个引脚记作A,另一个记作a。在分配引脚的时候不会有错误,但是执行的时侯会出错。一个引脚会失效。解决方法就是换个名字啦。

问题5:

一开始设计蜂鸣器的时候一点想法都没有,唯一确定的就是一定会用上门电路仅此而已。最初稿专门为在59分59秒的那一刻高频率响声设计了一套门电路。既要在59分的时候连线出来,又要在1,53,55,57秒连线出来接与门,还要在59分,59秒的时候练出来接一个高1KHz的脉冲,满屏幕的都是线。最终那个蜂鸣器还不想,郁闷了很久。和同学讨论后,在59秒的9这里连线出来通过数据选择器可以巧妙的让59秒的那一刻发出高频率鸣叫。这样可以减少一般的逻辑门。

五。实验心得:

本次的课程设计还是蛮挑战思维的,在制作的过程中暴露了我一系列的逻辑错误。但是在实验的过程中发现的错误真的比书面作业印象深刻,我觉得这次犯下的错误貌似没有再犯的可能了。

一开始做课设的时候,除了计数器是可以立刻用到上课学的内容其他的一点想法都没有,选择器,译码器貌似指停留在了做题的阶段,如何运用完全没有想法。但是随着进度的加快,思维越来越敏捷,而且一开始犯下的错误也越来越快速的发现错误以及得出解决方法。

这次课程设计给我印象最深的就是解决毛刺现象。在书中写:数字电路中常将毛刺定义为采样间越过逻辑门限一次以上的任何跳变,主要是指电路输出波形中含有时间很短有规律或没有规律的脉冲而又对设计没有用处或产生其他影响,一般都要考虑去除毛刺。但是具体的事例看起来又那么费劲,毛刺现象出现仅为几纳秒,感觉那么遥远,那么难以捕捉,但是这次让我着实体会了一遍。在制作按键控制模块的时候,当时只用了一个D触发器,我因为粗心把应该连PS按键的D触发器连在了SW校对允许开关上。当我实际操作的时候,每次数值跳动的变化相当大,而且不是有规律的递增或者是递减。比如:显示为12分的时候按下分校对PS按键,会一下子变成33分,再按一下又变成了24分,再按下变成45分。老实说虽然当时对自己的设计没啥信心,但是也不至于跳变成这个样子嘛。好歹必须是递增的啊?于是我仔细查看我的数据选择器,没有发现错误,仔细查看了模60计数器,没有错误。最后终于发现了连错D触发器这个问题。我第一次对毛刺有了那么刻骨铭心的认识:毛刺现象虽然短,反应还真大咧。把D触发器连上后,立刻就没问题了。

我搜索了一下,解决毛刺现象的方法有采用格雷码计数器取代普通的二进制计数器,或者利用D触发器的D输入端对毛刺不敏感等等解决方法。换做以前,连毛刺的概念都无法深刻理解的我,当然别提记住这些解决方法,但是现在深有体会后,解决方法竟然过目不忘。顺便还解决了我心中悬浮很久的一盒疑问:“根据D输入端对毛刺不敏感这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。”怪不得书中那么多例子都是用上边沿的呢。

在制作的后期,我曾试图再加一个秒校对模块。只是一时兴起,离下课之际随便连了一下没仿真就下载了。遗憾的是当时没有意识到FPGA只提供了两个上边沿的触发按钮,而再要用触发按钮的就是下边沿了,这样校对模块的内部必须重新设计,内部的数据选择器的数据位置得调下。后来就不了了之了。

这次的设计唯一的遗憾就是时间太短了,其实我对附加题的秒表部分,闹钟部分,甚至还想好了倒计时部分的制作方法。但是如果一一实践和调试的话报告就没时间做了。整个设计从头到尾一个人埋头苦干,做完了真是很有成就感。

六。使用说明

1.下载到系统上,时钟自动已运行。

2.按下SW1,分校对启动,按PS3可对分加一。设置完毕,再按下SW1.3.按下SW2,时校对启动,按PS4可对时加一。设置完毕,再按下SW2.七。附录完整电路图: 图15 七:参考文献:

1.《基于FPGA的数字电路系统设计》崔葛瑾主编。2.《数字电路及系统设计》赵曙光刘玉英崔葛瑾编著。

《数电课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数电课程设计
点击下载文档
相关专题 简单数电课程设计 课程设计 简单数电课程设计 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文