数电期末设计 设计报告.docx
- 文档编号:12875217
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:15
- 大小:891.34KB
数电期末设计 设计报告.docx
《数电期末设计 设计报告.docx》由会员分享,可在线阅读,更多相关《数电期末设计 设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
数电期末设计设计报告
数字电子技术基础期末作业
100进制计数器及显示电路设计报告
完成时间:
2012/5/28
班级:
电子信息工程1003班
学号:
100402307
姓名:
郑智园
指导教师:
孙洪林
摘要
本设计是一个100进制的计数器,包括原理设计方案以及硬件实现方法。
计数器由两个十进制计数器构成,并由脉冲信号触发,实现计数功能,并且通过编码器编码的方式使用按键对计数器进行置数,使其能够从任意两位数开始计数,从而达到了100进制计数及显示的设计要求。
关键词:
计数器;脉冲发生;数码管显示
Abstract
Thedesignisa100-hexcounter,includingtheprinciplesofdesignandhardwareimplementation.Thecounterconsistsoftwodecimalcountertriggeredbythepulsesignal,toachievethefunctionofcountingandsettingthenumberusingthekeysonthecounterthroughthewayoftheencodersothatitcanstartfromanytwo-digitcount,whichreached100hexcountinganddisplaydesignrequirements.
Keywords:
counter;pulse;digitaldisplay
目录
摘要Ⅰ
AbstractⅡ
目录Ⅲ
1.设计要求1
2.设计方案1
2.1系统设计方案1
2.2系统总体设计3
2.3模块方案3
2.3.1计数模块3
2.3.2显示模块4
2.3.3置数模块4
2.3.4电源模块5
2.3.5时钟脉冲模块5
2.4系统实现方案6
2.4.1系统工作流程:
6
2.5.硬件实现方案7
3.心得体会7
4.改进意见7
5.文件说明7
参考文献8
1.设计要求
设计一个100进制计数器,能够从任意数字开始计数,并且拥有暂停计数,清零计数功能。
计数器由脉冲信号触发。
2.设计方案
2.1系统设计方案
同步十进制计数器原理:
图2.1.1所示电路是用T触发器组成的同步十进制加法计数器电路,它是在同步二进制加法计数器电路的基础上略加修改而成的。
由图2.1.1可知,如果从0000开始计数,则直到输入第九个计数脉冲为止,它的工作过程与同步二进制计数器相同。
计入第九个计数脉冲后电路进入1001状态,这时Q’3的低电平使门G1的输出为0,而Q0和Q3的高电平使门G3的输出为1,所以4个触发器的输入控制端分别为T0=1、T1=0、T2=0、T3=1。
因此,当第十个计数脉冲输入后,FF1和FF2维持0状态不变,FF0和FF3从1翻转为0,故电路返回0000状态。
从逻辑图上可写出电路的驱动方程为
T0=1
公式1
T1=Q0Q’3
T2=Q0Q1
T3=Q0Q1Q2+Q0Q3
将上式代入T触发器的特性方程即得到电路的状态方程
Q0*=Q’0
公式2
Q1*=Q0Q’3Q’1+(Q0Q’3)’Q1
图2.1.1
Q2*=Q0Q1Q’2+(Q0Q1)’Q2
Q3*=(Q0Q1Q2+Q0Q3)Q’3+(Q0Q1Q2+Q0Q3)’Q3
图2.1.2
根据公式还可以进一步列出表图2.1.2所示的电路状态转换表,并画出图2.1.3所示的电路状态转换图。
由状态转换图上可见,这个电路是能够自启动的。
图2.1.4是中规模集成的同步十进制加法计数器74160的逻辑图。
它在图2.1.1的基础上又增加了同步预置数、异步置零和保持的功能。
74160的功能表如表2.1.5所示。
图2.1.2
图2.1.3
图2.1.4
表2.1.5
CLK
R’D
LD’
EP
ET
工作状态
×
0
×
×
×
置零
↑
1
0
0
1
预置数
×
1
1
1
0
保持
×
1
1
×
0
保持(但C=0)
↑
1
1
1
1
计数
2.2系统总体设计
核心为计数模块,用时钟脉冲模块产生触发脉冲,驱动计数模块计数,通过显示模块显示计数器状态,并通过置数模块将预期的数字置入计数器,系统由电源模块统一供电。
2.3模块方案
2.3.1计数模块
由于设计要求为100进制计数器,那么通过两片十进制计数器组合便可形成100进制的计数器,十进制计数器可由多种方案构成,比如用74LS161(16进制计数器)加上组合逻辑电路构成,但是由于这种方案的成本以及硬件实现比较麻烦,最终被舍弃。
实际采用的方案是用两块74LS160(十进制计数器)构成计数模块,74160成本低廉,并且本身就是十进制的计数器,并不需要外加组合电路,种种优点使其成为本设计的最佳选择。
两片74160构成100进制计数器有两种构成方法,并行工作和串行工作。
设计之初采用了串行工作方式,如图2.3.1.1所示,个位的计数器在计满后会通过RCO位输出高电平,向十位计数器进位,而十位计数器的时钟信号采用个位计数器的进位端,这样两块计数器串行异步工作,从而达到100进制计数器的设计要求,模块通过Multisim仿真的时候没有出现任何问题,但实际制作过程中发现,计数器在计满进位的时候,高电平是在状态9上体现的,即当计数器从8状态变成9状态的时候,进位端会从低电平跃变为高电平,而74160本身的时钟端是上升沿触发的,也就是说,在计数器从8状态变为9状态的时候会在进位端产生一个上升沿,而这个上升沿触发了十位计数器,导致计数没有达到预期要求。
即数码管会显示17,18,29(本来预期这个数字是19,但是由于个位计数器变为9状态的时候产生了一个上升沿,向十位计数
器进位,导致这里提前进位,显示混乱。
),20……所以这个方案最终被放弃。
分析了进位的异常原理,提出了一个修改方案,在个位计数器的进位端上加一个反向器,然后再接入十位计数器的时钟端,个位计数的过程中十位计数器的时钟端得到的是高电平,而个位计到9并进位的时候,十位时钟端变为低电平,当个位计数器变为0的时候,十位计数器的时钟端重新得到高电平,并在此时形成一个上升沿,十位计数器得到有效进位,并且显示效果已达预期要求,但是实际制作的过程中发现,由于线路板不稳定的原因,导致反向器工作的不是很稳定,十位计数器的时钟端会有抖动,导致十位计数不正常,因此这个方案最终也被放弃。
在考虑到计数显示以及置数的方便简洁性和模块的稳定性,最终采用了两块计数器并行同步工作的方式。
即时钟同时加在两块计数器的上面,而通过控制十位计数器的功能端ENP与ENT来控制十位计数器的进位操作,具体实现方案如图2.3.1.2所示,将个位计数器的进位端接到十位计数器的ENP与ENT端,这样十位计数器平时是处于保持状态,当个位计数器计满的时候,进位端输出高电平,这样十位计数器的ENP与ENT端得到高电平,十位计数器处于计数状态,十位计数器此时得到有效进位。
从而实现了100计数器的设计要求,由于这种方案不需要外加任何附加辅助电路,因此设计最终采用两个计数器同步并行工作的方式作为计数模块的最终解决方案。
2.3.2显示模块
显示模块采用了低成本的数码管作为显示输出元件,并用显示译码器对计数器输出的BCD码进行译码,送到数码管进行显示,这里方案就直接定为了74LS48+7段共阴数码管作为显示模块的最终方案。
由于购买元件的时候发现数码管和译码器合成为一体的显示模块过于昂贵,所以放弃了购买直接接受BCD码的数码管。
显示模块的原理示意图如图2.3.2.1所示。
2.3.3置数模块
置数模块主要是通过向计数器的置数端输入BCD码来进行置数,所以置数模块实际上就是一个BCD编码器,这里开始的时候由于10-4线编码器购买不方便,曾想过用两片8-3编码器构成一个10-4编码器,但由于构成方案需要附加辅助电路来帮助编码,硬件实现的时候十分繁琐,所以最终这个方案最终也被放弃。
最终置数模块采用一片10-4优先编码器(74LS147)和9个拨码开关组成。
74147由于停产已久,电子市场的存货又特别贵,所以最终我们几个人在淘宝网上团购了一下,有效的降低了成本。
置数模块的原理图如图2.3.3.1所示。
2.3.4电源模块
由于74LS系列全部为TTL电平,所以系统应供给5V电压,而由于USB使用广泛,并且是5V的电源供给,加之连接方便,所以最终电源模块采用USB直接供电,省去了稳压等系列的步骤。
并且得到了良好的供电效果。
在此系统通过杜邦线连接到单片机实验板的5V电源输出引脚,得到稳定的5V电源。
2.3.5时钟脉冲模块
由于计数器是由脉冲信号触发,因此时钟脉冲信号发生模块在整个设计中占有重要的地位。
方案最初设定为555定时器外加周边辅助电路构成多谐振荡器,输出秒脉冲。
555秒脉冲发生器原理如图2.3.5.1所示。
模块在Multisim上模拟的时候运行良好,能够输出稳定矩形秒脉冲。
但是在实际的制作过程中发现555工作并不是特别稳定,比如在一个周期内有多次跃变,周期不相等,以及周期占空比等参数可调性不好等多个缺点,最终决定放弃这个方案。
由于系统靠一块单片机实验板供电,索性时钟脉冲发生模块就用单片机实现。
在实际测试中发现,这种方案构成的脉冲发生器具有工作稳定,脉冲周期可调,占空比可调,人机界面友好等种种优点,所以时钟脉冲模块最终采用了这种方案。
由于采用单片机实现,所以基本是软件实现大部分原理,关键代码如下:
voidtimer0()interrupt1//定时器中断
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
count++;
if(count>hightime)//hightime为高电平时间
output=0;
if(count>time)//time为脉冲周期
{
count=0;
output=1;
}
}
原理大致是count从0计数到hightime,这段时间保持脉冲输出端高电平,继续计数到time的时候把脉冲输出端变为低电平。
并将count清零。
由于采用中断控制,count是1微秒自加一次,所以脉冲输出非常的准确。
人机交互效果图如图:
2.4系统实现方案
将各个模块组合到一起,形成了如图的结构(此为原理示意图,硬件实际与原理图稍有出入。
)。
原理在模块设计方案中已经详细介绍,在这里就不再赘述。
由于模拟的时候引脚悬空在模拟软件中默认为低电平,所以一些管脚通过上拉电阻来提高电平,74147输出的是BCD的反码,所以通过一个反向器7404进行调整。
74160与7448的功能引脚都通过拨码开关来控制,以达到测试的作用。
由于7448内部集成2K上拉电阻,所以在7448与数码管之间接了1K的限流电阻,保证数码管不会因为电流过大导致损坏。
2.4.1系统工作流程:
计数:
打开单片机电源,待系统初始化完成后(由于用了一个低速单片机控制彩屏,所以人机界面渲染过程稍微漫长),打开计数器电源,看到脉冲指示灯一闪一闪,计数开始。
置数:
推上第16个拨码开始进入置数状态,然后先置十位,第1-9个拨码分别代表数字1-9,都不推上表示数字0,之后按出置数位选自锁开关,开始置个位数,然后都置好以后推上第15个拨码保持住当前的数,然后拉低第16个拨码,这时保持第15个拨码在高位会保持住当前的数,然后按下置数位选开关,进入正常计数准备模式,拉下第15个开关从预置数开始计数。
保持当前数并暂停:
可以通过单片机遥控器暂停脉冲发生,或者通过硬件推上第15个开关实现。
2.5.硬件实现方案
原本打算用AltiumDesigner设计一个印刷电路板,由于学校没有做这种板子的设备,到工厂一问才知道我们这块板打样就需要100RMB,昂贵的成本使得我们放弃了制作印刷电路板,采用面包板搭建整个设计,所有元件采用直插封装。
人工焊接所有部分。
并且后期的调试也均由自己完成。
3.心得体会
通过这次设计制作这个课题,我学到了很多东西,无论是理论知识的储备还是动手能力的提高,我都有了很大的收获。
通过实际的动手制作过程中,我了解到了理论与实际的差距,模拟软件模拟成功的东西做出来跟预期的效果也不会一样,并且在制作的过程中有许多知识都是现用现学的。
所以平时应该多储备相关知识,才不会书到用时方恨少。
4.改进意见
我觉得这个课题就是为了让我们熟悉相关芯片的原理,而从实际角度出发,这个计数器功能太弱,并且实现起来比较麻烦,而且成本很高,整套元件成本就在40左右。
为了降低成本并且提高系统稳定性以及功能可扩展性,可以用单片机实现这个东西。
而且在制作的过程中发现555定时器做的秒脉冲模块工作起来特别不稳定,如果可以,这个部分是否可以通过晶振产生脉冲经过分频来达到相同的设计要求。
5.文件说明
原理示意图.pdf…………………………………………系统原理图的pdf包,可打开直接查看。
原理模拟.ms11…………………………………………系统原理的软件模拟文件,可用Multisim11运行。
考虑到模拟的速度问题,实际上模拟的时候555的
输出脉冲频率并不是1Hz。
脉冲发生器.7z…………………………………………脉冲发生器的源代码,文件用7-zip或者WinRAR可
以解压查看,工程文件使用Keiluvision4可打开
查看编译,HEX文件可以直接烧录进单片机工作。
外观.7z…………………………………………设计成品外观的照片展示,解压可查看。
设计报告.pdf…………………………………………设计报告的PDF版本。
参考文献
[1]数字电子技术基础/阎石主编;清华大学电子学教研组编.-5版.-北京:
高等教育出版社,2006.5(2010年重印)
[2]电子技术实验教程/赵立民主编.-北京:
机械工业出版社,2008.3(2010.7重印)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数电期末设计 设计报告 期末 设计 报告