基于Multisim的任意进制计数器的仿真分析本科毕业设计论文.docx
《基于Multisim的任意进制计数器的仿真分析本科毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于Multisim的任意进制计数器的仿真分析本科毕业设计论文.docx(31页珍藏版)》请在冰豆网上搜索。
![基于Multisim的任意进制计数器的仿真分析本科毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-2/22/439fd9f5-a469-4577-90f4-8f75f08b6006/439fd9f5-a469-4577-90f4-8f75f08b60061.gif)
基于Multisim的任意进制计数器的仿真分析本科毕业设计论文
毕业论文
题目基于Multisim的任意进制计数器
仿真分析
英文题目SimulationanalysisbasedonarbitrarycarrycounterofMultisim
摘要
计数器是数字系统中最基本的元件之一,本文系统地介绍了任意进制的计数器的设计方法以及通过在仿真软件上如何实现。
文章首先介绍了计数器的原理以及应用前景,Multisim的特点和它用于电路仿真上的优点,能够缩短电路的设计研发时间,大大提高电路开发效率。
计数器可根据需要,通常利用集成计数器来构成任意进制的计数器。
在中规模集成计数芯片中,最常见的是十进制计数器74LS160和十六进制计数器74LS161。
通过对上面这两个芯片的逻辑功能的分析,可通过异步清零法和同步置数法来组成电路,同时可根据需要来确定芯片的个数,当计数小于16时,仅用一个芯片通过门电路连接即可,如果大于16,则需要对芯片进行级联来组成计数电路,有并行级联和串行级联两种方法,通过用Multisim仿真能够使我们更好地掌握计数器的设计方法。
关键字:
Multisim;计数器;数字电子时钟
SimulationanalysisbasedonarbitrarycarrycounterofMultisim
Abstract
Counterisoneofthemostbasiccomponentindigitalsystems,thisarticledescribesthesysteminanyofthecountersonthesimulationsoftwaredesignmethodsaswellasthroughhowtoimplement.
PrincipleandApplicationProspectofthearticlefirstdescribesthecounters,multisimcharacteristicsanditsadvantagesforcircuitsimulation,canreducethecircuitdesignofresearchanddevelopmenttime,greatlyimprovingtheefficiencyofcircuitdevelopment.
Countersasneeded,usuallywithanintegratedcountertoconstitutearbitrarybinarycounter.Incountscaleintegratedinthechip,themostcommonisthehexadecimalanddecimalcounter74ls160counter74ls161.
BytoabovethisTwoachiplogicfunctionanalysisof,canbebyasynchronousclearzerolawandsynchronizationhomenumberoflawcomposedofcircuit,thesametimecanbeaccordingtoneeddeterminechipnumberof,countlessthan16o'clock,onlywithachipbydoorcircuitconnectionto,ifgreaterthan16,theneedtochiplevelUnitedcomposedofCountcircuit,parallellevelunitedandseriallevelUnitedtwokindofmethod,bywithmultisimsimulationtowebettermastercounterdesignmethod.
Keywords:
Multisim;counter;digitalelectronicclock.
引言
计数器是数字系统中最常用的时序电路之一,它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲序列,以及进行数字运算等等,应用十分广泛。
从小型数字仪表,到大型数字电子计算机,几乎无所不在,是任何现代数字系统中不可缺少的组成部分。
电路设计中利用软件仿真存在着诸多的优点,能够大大提高电路设计效率。
随着电子技术的飞速发展及电子技术与计算机信息技术的强力整合,电子技术应用水平几乎在呈指数形式发展,因而对广大电子设计工程师的设计手段亦提出了全新的要求。
传统的设计手段具有其不可避免的设计开发周期长、耗材、费力;有时甚至使设计方案受现有库存器件的资源情况等的限制而不得不将原有设计方案推翻重新拟定新的设计方案,从而严重延迟了新产品上市的时间使得其利润远低于早期上市的同类产品。
针对这一日益突出的矛盾,精明的EDA软件开发公司及时地推出了特色各异的各种EDA软件包,从而将电子产品的开发设计与现代计算机技术有效地整合起来,将电子产品设计过程中大多数的繁杂的推导计算过程交由计算机来完成,而使得电子设计工程师们可以从繁琐的计算推导过程中解放出来,将更多的精力放在系统方案的提出和最终功能的验证上面,从而大大提高产品设计效率和缩短产品上市时间。
在此类EDA软件中尤以加拿大IIT(ImageInteractiveTechnologies)公司的multisim最为突出。
Mulitsim是一个完全虚拟的电子实验室,在其内部具有数以万计的建模精确的元器件模型(元器件的建模是根据国外众多著名电子元件厂商提供的各项具体的原始参数进行的)和各类精度极高的虚拟仪器仪表,因而使得在其内部进行电子电路的分析验证几乎与真实实验室环境下的实验调试结果相近,而且具有完全不耗材和元器件资源、仪器仪表资源(各类仪器仪表可以多次重复调用)丰富及设计调试安全(不至于引起仪器仪表的损坏)等特点。
特别是在数字电路的分析验证中尤显其优越性。
因此深受广大电路设计爱好者的喜爱。
1Multisim10及计数器的简介
1.1Multisim10软件的发展
目前人类社会已逐步实现了高度发达的信息化,各种电子产品不但在性能上不断增强,而且更新换代的频率也越来越快,实现这种进步的主要原因是生产制造技术和电子设计技术的发展,特别是以EDA为核心的电子设计技术得到了飞速发展。
EDA是以计算机为工作平台,融合电子技术、计算机技术、智能化技术等最新成果研制而成的通用软件。
它的主要功能是Ic设计、各种电路的计算机辅助设计和仿真,以及PCB设计。
Multisiml0就是一款优秀的EDA软件。
利用该软件能实现电子电路的快速设计和仿真,大大缩短了电子电路的设计开发周期。
本文以千进制计数器的设计为例,详细介绍了基于Muhisiml0的任意制计数器的设计与仿真。
20世纪80年代加拿大IIT公司推出EWB5.0(ElectronicsWorkbench),受到电子行业技术人员的青睐。
跨入21世纪初,加拿大IIT公司在保留原版本优点的基础上,增加了更多功能和内容,特别是改进了EWB5.0软件虚拟仪器调用有数量限制的缺陷。
将EWB软件更新换代推出EWB6.0版本,并取名Multisim(意为多重仿真),也就是Multisim2001版本。
之后加拿大公司又推出了Multisim7.0与Multisim8.0版本。
2005年以后,美国国家仪器公司(NationalInstrument,NI)合并了加拿大IIT公司,NI公司于2006年年初首次推出Multisim9.0版本。
此版本与以前加拿大IIT公司推出的Multisim7.0版本有着本质区别。
虽然它的界面、元件调用方式、搭建电路、虚拟仿真、电路基本分析方法等还是沿袭了EWB的优良传统,但软件的内容和功能已大不相同。
2007年年初,美国NI公司又推出新的Multisim10版本。
Multisim10是一款知名的EDA仿真软件,通过直观的图捕捉环境,轻松设计电路.NIMultisim软件结合了直观的捕捉和功能强大的仿真,能够快速、轻松、高效地对电路进行设计和验证。
凭借NIMultisim,您可以立即创建具有完整组件库的电路图,并利用工业标准SPICE模拟器模仿电路行为。
给工程技术人员提供了极大的方便。
1.2Multisim10软件的功能
在Windows环境下,Multisim10软件有一个完整的集成化设计环境,它将原理图的创建、电路的测试分析、结果的图表显示等全部集成到同一个电路窗口中。
在搭建实际电路之前,采用Multisim10仿真软件进行虚拟测试,可使实验方法和实验手段现代化,扩展实验容量,使实验内容更完备,提高了实验效率,节省大量的实验资源。
Multisim10界面形象直观、操作方便、易学易用、提供了多种测量仪器和强大仿真分析功能,庞大元件库为电子电路的板极设计和仿真提供保障和便利。
Multisim10可以设计、测试和演示各种电子电路,包括电路分析、模拟电路、数字电路、射频电路及微控制器和接口电路等。
可以对被仿真的电路中的元器件设置各种故障,如开路、短路和不同程度的漏电等,从而观察不同故障情况下的电路工作情况。
在进行仿真的同时,软件还可以存储测试点的所有数据,列出被仿真电路的所有元器件清单,以及存储测试仪器的工作状态、显示波形和具体数据等。
Multisim10的基本功能如下:
(1)丰富的元器件库
Multisim10为用户提供了数万种真实元器件和虚拟元器件。
(2)多种类的虚拟仪器仪表
Multisim10软件提供了多种常用仪器仪表,用于测试电路性能参数及波形,结果准确直观。
同一种仪器使用数量不受限制,所提供的安捷仪器面板像真实仪器一样,用这些仪器像实验室一样,可方便地测试电路的性能参数及波形。
(3)多种类型的仿真分析
Multisim10可以进行直流工作点分析、交流分析、瞬态分析、噪声分析、灵敏度分析、失真分析等十多种分析。
(4)提供了与其他软件交换信息的接口
Multisim10提供了与国内外流行的印刷电路板设计自动化软件Protel及电路仿真软件PSpice之间的文件接口,也通过Windows的剪贴板把电路图送往文字处理系统中进行编辑排版。
(5)强大的MCU模块
在Multisim10中,支持的单片机有Intel/Atmel的8051、8052及PIC16F84、PIC16F84A,可扩展数据存储器RAM、程序存储器ROM,支持C语音和汇编语言编程。
(6)具有丰富的Help功能
Multisim10有丰富的help功能,其help系统不仅包括软件本身的操作指南,更重要的是包含有元器件的功能解释。
1.3Multisim10软件的操作及使用
1.3.1Multisim10软件界面
Multisim10是NICircuitDesignSuit10软件中捕获原理图和仿真的软件,主要是辅助设计人员完成原理图的设计并提供仿真,为制作PCB做好准备。
其基本界面主要由MenuToolbar(菜单栏)、StandatdToolbar(标准工具栏)、DesignToolbox(设计管理窗口)、ComponentToolbar(元件工具栏)、CircuitWindow(仿真工作平台)、Spreadsheetview(数据表格栏)、InstrumentToolbar(虚拟仪器工具栏)等组成。
如下图1.1。
图1.1Multisim10软件界面
基本命令介绍:
MenuToolbar:
Multisim10软件的所有功能命令均可在此查找。
StandatdToolbar:
包括一些常用的功能命令。
DesignToolbox:
用于宏观管理设计项目中的不同类型文件,如原理图文件、PBC文件和报告清单文件,同时可以方便地管理分层次电路的层次结构。
ComponentToolbar:
通过该工具栏选择、放置元件到原理图中。
CircuitWindow:
又称工作区,是设计人员创建、设计、编辑电路图和仿真分析的区域。
Spreadsheetview:
方便快速地显示所编辑元件的参数,如封装、参考值、属性等,设计人员可通过该窗口改变部分或全部元件的参数。
InstrumentToolbar:
提供了Multisim10中所有仪器的功能按钮。
1.3.2Multisim10的仿真流程
双击桌面上的Multisim10图标,由于软件比较大,需要等待一定的时间才能进入界面.Multisim10界面和Office工具界面相似,包括标题栏、下拉菜单、快捷工具、项目窗口、状态栏等组成。
标题栏用于显示应用程序名和当前的文件名。
下拉菜单提供各种选项。
快捷工具分为:
文件工具按钮,器件工具按钮,调试工具按钮,这些按钮在下拉菜单中都有,并经常用到,现在放在工具栏里是为了方便使用。
项目窗口中的电路窗口是用来搭建电路的,DesignToolbox工具栏是用来显示全部工程文件和当前打开的文件。
状态栏用于显示程序的错误和警告,如果有错误和警告那还还需要重新修改程序。
直到没有错误为止才能正常加载程序。
菜单包括:
放置元件(placecomponent)、连接原理图(placeschematic)、放置图形(placegraphic)、标注(placecomment)等,这里我们最常用到的只有第一个放置元件:
点击菜单中第一个选项或者按“CTRL+W”会出现元器件选择对话框。
在Group中选择我们需要的器件的类别,在Family中选择我们需要的器件,点击“OK”即可。
将元件放置到你需要的位置,把鼠标放置在元件端口即可自动连线,连线后可用鼠标调整导线位置,放置节点与元器件相同,可由节点引出导线。
原理图完成后,点击运行按钮,即可观察结果。
如有需要可在相应端口连接所需虚拟仪器,如:
双踪示波器、数字万用表、波特图仪、频率计数器等。
接上虚拟仪器后,点击运行,成功运行时,双击虚拟仪器,即可观察相应波形结果。
1.4计数器简介
计数器的种类非常多, 按构成计数器中的多触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;根据计数制的不同,分为二进制计数器、十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器。
还有可预置数和可编程序功能计数器等。
计数器可利用触发器和门电路构成。
但在实际工作中,根据需要,通常利用集成计数器来构成任意进制的计数器。
目前,中规模集成电路芯片常见的只有十进制和十六进制的计数器。
使用集成计数器构成任意进制计数器构成任意进制的计数器有着明显的优点,可使电路简化,减少连线,提高电路的可靠性。
利用中规模集成电路芯片进行适当的连接可以构成任意进制的计数器,主要方法有复位法、置位法和容量空间扩展法。
十进制加法计数器74160是应用非常广泛的同步十进制计数器,其功能表如图1.2所示。
图1.2同步十进制计数器74160真值表
具有异步清零、同步置数功能。
CLR为清零端,LOAD为置数控制端,ENP和ENT是两个计数状态控制端,A、B、C和D是并行数据输入端,QA、QB、QC和QD是计数器状态输出端,RCO为进位信号输出端,CLR是时钟脉冲输入端,在时钟脉冲的上升沿触发。
74HC160的功能如下:
(1)异步清零功能
当CLR=0时,不论其它输入如何,输出
为0000。
(2)同步并行置数功能
当CLR=1,LOAD=0时,在脉冲上升沿的作用下,输入端的数据A、B、C和D被并行的送到输出端,输出
为ABCD。
(3)保持功能
在CLR=1,LOAD=1的前提下,只要ENP和ENT中任意一个为零,则计数器不工作,输出保持原状态不变。
(4)计数功能
正常计数时,CLR=1,LOAD=1,ENP=1,ENT=1,在脉冲上升沿的作用下,计数器对脉冲的个数进行加法计数。
2计数器设计思路和仿真
一般我们常用到的小规模集成电路芯片有十进制74160和十六进制74161以及74190十进制可逆计数器等。
这样就存在这样的情况,设计所需要的计数所用芯片及接连方法就有所不同。
设需要的是M进制的计数器,而已有的计数器是N进制的,下面来讨论M≠N的情况。
2.1N>M时的设计方法
如果N>M,则只需一片N进制计数器作适当连接就可以实现。
要由N进制计数器设计成M进制的计数器,只需要在计数过程中设法跳过N—M个状态就可以了,实现跳越的方法有两种。
2.1.1复位法
也称清零法,适用于有置数功能的计数器。
按执行复位操作是否需要时钟脉冲配合又分为同步复位法和异步复位方式,大多数集成计数器采用异步清零方式。
(1)异步清零:
如图2.1所示,计数器从S0状态开始计数到SM状态时译码产生一个清零信号,加到计数器的置零输入端,计数器立刻返回S0状态,开始下一轮计数循环。
SM状态只存在极短的时间,只是一个过渡状态,不是稳定状态,在计数循环中不包含状态SM,只有S0-SM一共M个状态,从而构成M进制计数器。
(2)同步清零:
如图2.2所示,同步清零方式需要时钟脉冲的到来才执行清零操作,没有过渡状态,所以应该以SM—1状态译码产生清零信号。
在计数循环中包含状态SM-1,也有S0-SM-1一共M个稳定状态,构成M进制计数器。
但应当注意的是:
复位法不论采用哪种方式复位都有一个缺陷,那就是计数循环不包含产生进位输出的状态SM-1,所以计数器的进位端不起作用,不会有进位输出,需要另加进位输出电路,使电路复杂:
另外,如果采用异步清零方式,由于清零信号存在时间极短,可能会有某些触发器没有完成复位,因此这种方式可靠性不高。
图2.1异步清零的状态转换图
图2.2同步清零的状态转换图
图2.3所示电路是采用异步置零法构建的六进制的计数器,从0000开始计数,当
输出为0110时,担任译码器的与非门U2A输出一个低电平到CLR,将计数器置零,回到0000状态。
图2.3六进制计数器电路图
2.1.2预置数法
适用于具有预置数功能的集成计数器。
与清零操作一样,预置数操作也有同步也异步方式之分。
同步方式需要有时钟脉冲信号与预置数信号同时作用才执行预置数操作;而异步方式不需要时钟信号的同步,只要有预置数信号就立即执行,与异步复位相似,也存在一个过渡状态。
在具有同步置数功能的计数器中,使用一个稳定状态(称为置数逻辑状态)来产生置数逻辑,当该状态出现时,计数器状态在下一个时钟有效沿来到后回到预置数状态
如下图2.4是由十进制计数器74160构成的七进制计数器,将计数输出端QB和QC接在与非门7400的两个输入端上,将7400的输出端接在计数器同步置数端,当SN-1(N=7)=QDQBQCQA=0110,LOAD=0,在时钟脉冲有效沿到来时,由于DABA=0000,电路被置成0000状态,电路的一个周期中有七个稳定状态,因此为七进制的加法计数器。
图2.4七进制计数器
2.2N一片74160构成的计数器最大进制为十进制,如果要构成更大规模的计数器,则需要使用多片模块级联来实现。
计数器的级联有两种实现方式:
(1)一种方式是同步级联,外部计数输入同时送到各片计数器的时钟输入端,使各级计数器同步工作,用前级计数器的进位(借位)输出来控制后级计数器的工作状态控制端;
(2)另一种方式是异步级联,用前一级计数器的进位(借位)输出作为后一级计数器的时钟输入信号。
下面分几种情况来讨论。
2.2.1M不是素数
即M可以分解为除了M和1以外的其它两个或多个正整数相乘的形式。
先考虑一种情况。
M=NL(L=2、3、4…)这时只要将L片N进制计数器直接级连即可。
级联方式有并行进位和串行进位两种,相比之下,并行进位方式要简单一些,也更容易理解,且工作速度快,一般选用此法。
例如设计256进制计数器,256=162,则可以用两片十六进制计数器74LS161实现。
例如设计一个60进制计数器,60可以拆分为6×10、5×12、4×15等,显然分成6×10最为简单,因为有现成的十进制计数器74LS160可直接用。
需要注意的是,各片之间级连时必须保证低们片要有进位信号送入高位片,如果有低位片没有进们信号输出,即便连接了进位端计数器也不能实现级联,所以建议每征都采用进位信号预置数法,以保证每片都有进位信号输出。
图2.5为千进制的计数器仿真图,在图中,以第一片的进位输出端RCO作为第二片的EP和ET的输入。
当第一片计到9,即输出QDQCQBQA为1001时,进位输出高电平1,第二片的ENP=ENT=1,在脉冲上升沿的作用下,第二片计数器开始计数,计入1,即个位向十位进1。
此时,第一片计成0(0000),它的RCO回低电平,而第一片的ENP和ENT恒为1,始终处于计数状态,第二片则处于数据保持状态,以此类推。
当个位、十位、百位分别计入9时,输出端QDQCQBQA输出1001,三个七段数码管显示999,在下一个脉冲前沿的作用下,个位、十位、百位分别进位、同时置零。
图2.5千进制计数电路
2.2.2M是素数
即M除了M×1以外不能分解为其它两个或多个正整数相乘的形式。
这时就只能采用整体预置数法或整数复位法。
具体设计方法如下:
首先将L片集成计数器级连成Nl进制计数器,使Nl=NL,使Nl>M,然后使用复位法或预置数功能跳过Nl–M个状态即可,只不过这时复位或预置数操作是对各片集成电路同时进行的。
但必须注意的是,最好使用同种型号的计数器芯片进行级连。
如果选用的是不同型号集成计数器,必须保证它们的预置数方式或复位方式都要一致(都是同步或都是异步的)。
(1)整体复位法:
先将两片74LS161按并行进位方式级连成256进制,因为74LS161的复位方式为异步复位,采用复位法设置计数循环应为00000000-10100010,应以101000011状态译码作为清零信号,同时加在两片74LS161复位端,并将两片的预置数端都接无效电平即可。
上述计数循环和复位信号是怎样确定的呢?
S0-SM-1循环正好组成M进制,由于异步复位方式要有一个过渡状态,所以要以SM译码作为复位信号。
如果计数器本身是同步方式复位的(如74LS163),则应以SM-1译码作为复位信号,没有过渡状态。
用整体复位法将2片16进制变数器并行进位级联构成60进制计数器。
这里分析以两片16进制计数器构成M=60进制计数器的实验电路为例,采用仿真软件Multisim进行分析。
用异步清零法将两片16进制构成的6进制和10进制计数器并行进位级联形成60进制计数器时采用并行进位进行级联,如图中将U1,U5分别接成6进制和10进制。
将图中的U1,U5预置数控制端LOAD接成+5V,U1的使能端ENT,ENP是由U5的输出QD,QA所控制。
即可实现由00-59循环计数的60进制效果。
(2)整体置数法:
同样先接成256进制,这时预置数可有256种选择,比如选择计数循环为S5–S167由于74LS161采用同步预置数方式(167-5+1)=163),则应以11111111(状态S255)译码作为预置数信号,预置的数为01011101(状态S93),这时也可用高位片的进位信号译码作为预置数信号(进位信号预置数法),这样设计出来的电路