毕业论文-基于matlab的逻辑电路设计与仿真.doc

上传人:韩长文 文档编号:3939856 上传时间:2019-10-10 格式:DOC 页数:47 大小:977.50KB
返回 下载 相关 举报
毕业论文-基于matlab的逻辑电路设计与仿真.doc_第1页
第1页 / 共47页
毕业论文-基于matlab的逻辑电路设计与仿真.doc_第2页
第2页 / 共47页
毕业论文-基于matlab的逻辑电路设计与仿真.doc_第3页
第3页 / 共47页
毕业论文-基于matlab的逻辑电路设计与仿真.doc_第4页
第4页 / 共47页
毕业论文-基于matlab的逻辑电路设计与仿真.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《毕业论文-基于matlab的逻辑电路设计与仿真.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于matlab的逻辑电路设计与仿真.doc(47页珍藏版)》请在三一文库上搜索。

1、基于Matlab的逻辑电路设计与仿真基于MATLAB的逻辑电路设计与仿真重庆工商大学 计算机科学与信息工程学院 电子信息工程 2008级2班 果佳指导教师: 蔡忠见摘要MATLAB具有强大的图形处理功能、符号运算功能和数值计算功能。MATLAB工具几乎涵盖了整个科学技术运算领域。其中系统的仿真(Simulink)工具箱是从底层开发的一个完整的仿真环境和图形界面。在这个环境中,用户可以完成面向框图系统仿真的全部过程,并且更加直观和准确地达到仿真的目标。此次,以数字电路中的逻辑电路为线索来学习Simulink,了解了许多数字电路中常用模块的使用方法.电路中除具有逻辑运算功能的组合电路外,还必须有能

2、够记忆电路状态的存储单元或延迟单元,这些存储或延迟单元主要由本次设计所用到的触发器来实现。D触发器、RS触发器、JK触发器等这些时序逻辑电路中常用的器件在Simulink中都有相应的仿真模块,除此之外,用户还可以自行设计封装模块来一步一步完成更大的电路系统,实现更强大的逻辑功能。 利用MATLAB 软件,通过设计图形用户界面(GUI),说明Matlab功能强大、简单实用、调节容易、可视性好,可大大提高计算效率,缩短编程时间,是一种简便实用的计算工具,可成功地应用于信号处理中,在教学和研究等领域具有广泛的应用前景和一定的推广价值。关键词:MATLAB、Simulink、逻辑电路、GUI47Abs

3、tractMATLAB has a powerful graphics processing capabilities, symbolic computing and numerical computing functions. MATLAB tools are covering almost the entire scientific and technical computing. One system simulation toolbox is from the bottom of the development of a complete simulation environment

4、and the graphical interface. In this environment, the user can complete system simulation block diagram for the entire process and achieve a more intuitive and accurate simulation of goal. This time, with digital circuits in the logic circuits for clues to learn Simulink, learned a lot in common dig

5、ital circuit module is used. Sequential circuits, in addition to features with a logical combination of the circuit, but also must be able to remember the state of the circuit memory cell or delay unit, the storage or delay units primarily used in the design of this flip-flop to achieve. D flip-flop

6、s, RS flip-flop, JK flip-flop sequential logic circuits such as those commonly used in devices in Simulink, the simulation has a corresponding module, in addition, Users can also design their own package module step by step to complete a larger circuit system to achieve more powerful logic function.

7、 Through the design of graphical user interface (GUI) by Using Matlab,we can learn that Matlab is powerful, simple, practical, easy adjustment, visibility, and can greatly improve the computational efficiency and shorten the programming time is a simple and practical tool,can be successfully applied

8、 to signal processing, in the teaching and research in areas such as the application of a wide range of prospects and the promotion of a certain value.Keywords: MATLAB, Simulink, logic circuits,GUI目录摘要1Abstract2第一章 绪论- 5 -第二章 设计目的、内容和思想- 5 -2.1设计的目的和内容- 5 -2.1.1设计目的- 5 -2.1.2 设计的内容- 5 -2.2设计思想- 6 -第

9、三章 MATLAB简介- 6 -3.1 MATLAB程序设计- 8 -3.2 Simulink仿真- 8 -3.2.1 Simulink 启动- 9 -3.2.2 Simulink 模块库及模块操作- 9 -3.2.3 仿真参数设置- 10 -3.3图形用户界面(GUI)- 11 -第四章 逻辑电路及其设计- 11 -4.1 组合逻辑电路- 12 -4.1.1 8线3线编码器- 12 -4.1.2 3线8线译码器- 13 -4.1.3 7段数码管- 14 -4.1.4 4选1数据选择器- 15 -4.2 时序逻辑电路- 16 -4.2.1 并行寄存器- 16 -4.2.2 移位寄存器- 17

10、-4.2.3 双向移位寄存器的设计- 18 -4.2.4 扭环计数器- 21 -第五章 基于MATLAB的组合逻辑电路仿真- 22 -5.1 8线3线编码器的设计及仿真- 22 -5.1.1 M文件程序设计- 22 -5.1.2 Simulink仿真- 23 -5.2 3线8线译码器的设计及仿真- 24 -5.2.1 M文件程序设计- 24 -5.2.2 Simulink仿真- 25 -5.3 7段数码管- 26 -5.3.1 M文件程序设计- 26 -5.3.2 Simulink仿真305.4 数据选择器的设计及仿真315.4.1 M文件程序设计315.4.2 Simulink仿真31第六章

11、 基于MATLAB的时序逻辑电路仿真326.1 并行寄存器的电路设计与仿真326.1.1 并行寄存器的电路设计326.1.2 并行寄存器的电路参数设置与仿真336.2 移位寄存器的电路设计与仿真346.2.1 移位寄存器的电路设计346.2.2 移位寄存器的电路参数设置与仿真356.3 双向移位寄存器的电路设计与仿真356.3.1 双向移位寄存器的设计356.3.2 双向移位寄存器电路设置与仿真376.4 扭环计数器的电路设计与仿真386.4.1 扭环计数器内部电路和封装的设计386.4.2 顶层仿真电路的设计396.4.3 扭环计数器的参数设置与仿真39第七章 图形用户界面(GUI)的实现4

12、07.1 GUI界面设计概述407.2 GUI总界面41总结与心得体会43致谢45参考文献46第一章 绪论本设计利用MATLAB及Simulink仿真软件强大的图形处理功能,符号运算功能和数值计算功能,实现常见的逻辑电路如编码器、译码器、数据选择器、触发器、锁存器等逻辑电路的设计及仿真。本设计通过Simulink仿真软件使用常见的与、或、非等基本逻辑单元,延时信号、时钟信号等信号源和示波器完成以上各种逻辑电路的设计和仿真,同时通过MATLAB汇编语言实现以上各基本逻辑电路的逻辑表达式,并在给定输入信号的情况下完成并验证各基本逻辑电路的功能。通过程序设计和波形输入输出仿真两种方法来共同完成各种基

13、本的逻辑电路的设计。第二章 设计目的、内容和思想2.1设计的目的和内容2.1.1设计目的(1)在了解MATLAB语言的基础上进一步掌握和精通MATLAB;(2)利用MATLAB强大的程序设计和仿真分析功能完成常见的逻辑电路的设计及仿真。 (3)学会使用Sinulink和GUI的基本应用和设置。2.1.2 设计的内容深入研究和掌握数字逻辑电路的理论知识,并根据已知条件利用MATLAB的强大的图形处理功能,符号运算功能和数值计算功能,实现以下逻辑电路的设计和仿真:(1)组合逻辑电路设计与仿真8线3线编码器3线8线译码器7段数码管四选一数据选择器 (2)时序逻辑电路的设计与仿真 2位并行寄存器 4位

14、移位寄存器 双向移位寄存器 扭环计数器2.2设计思想本设计以Simulink仿真系统中的基本逻辑元件、时钟信号和示波器为核心进行编码器、译码器、数据选择器及 2位并行寄存器、4位移位寄存器、双向移位寄存器、扭环计数器的输入输出波形的设计和仿真,同时以MATLAB汇编语言和各种基本组合逻辑电路的逻辑表达式为基础实现组合逻辑电路的设计并验证其逻辑功能。第三章 MATLAB简介 MATLAB的名称源自Matrix Laboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处

15、理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。 利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一

16、些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前MATLAB产品的工具箱有四十多个,分别涵盖了数据采集、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。 Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的 建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Sim

17、ulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。 Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow与Simulink和MATLAB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。 在MATLAB产品族中,自动化的代码生成工具主要有Real-Time Workshop(RTW)和Stateflow Coder,这两种代码生成工具可以直接将Simulink的模型框图和Stateflow的状态图转换成

18、高效优化的程序代码。利用RTW生成的代码简洁、可靠、易读。目前RTW支持生成标准的C语言代码,并且具备了生成其他语言代码的能力。整个代码的生成、编译以及相应的目标下载过程都可以自动完成,用户需要做的仅仅使用鼠标点击几个按钮即可。MathWorks公司针对不同的实时或非实时操作系统平台,开发了相应的目标选项,配合不同的软硬件系统,可以完成快速控制原型(Rapid Control Prototype)开发、硬件在回路的实时仿真(Hardware-in-Loop)、产品代码生成等工作。 另外,MATLAB开放性的可扩充体系允许用户开发自定义的嵌入式系统目标,利用Real-Time Workshop

19、Embedded Coder能够直接将Simulink的模型转变成效率优化的产品级代码。代码不仅可以是浮点的,还可以是定点的。 MATLAB开放的产品体系使MATLAB成为了诸多领域的开发首选软件,并且,MATLAB还具有300余家第三方合作伙伴,分布在科学计算、机械动力、化工、计算机通讯、汽车、金融等领域。接口方式包括了联合建模、数据共享、开发流程衔接等等。 MATLAB结合第三方软硬件产品组成了在不同领域内的完整解决方案,实现了从算法开发到实时仿真再到代码生成与最终产品实现的完整过程。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方

20、面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。3.1 MATLAB程序设计MATLAB有两种工作方式:一种是交互式的命令行工作方式;另一种是M文件的程序工作方式。在前一种工作方式下,MATLAB被当做一种高级数学演算纸和图形表现器来使用,MATLAB提供了一套完整的而易于使用的编程语言,为用户提供了二次开发的工具,下面主要介绍MATLAB控制语句和程序设计的基本方法。用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。

21、两者区别在于:命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。首先从MATLAB命令窗口的File菜单中选择New菜单项,在选择M-file命令,将得到的M文件窗口。在M文件窗口输入M文件的内容,输入完毕后,选择此窗口File菜单的save as命令,将会得到save as 对话框。在对话框的File 框中输入文件名,再选择OK按钮即完成新的M文件的建立。

22、然后在从MATLAB 命令窗口的File 菜单中选择Open对话框,则屏幕出现Open对话框,在Open对话框中的File Name 框中输入文件名,或从右边的directories框中打开这个M文件。在M文件所在的目录,再从File Name 下面的列表框中选中这个文件,然后按OK按钮即打开这个M文件。在M文件窗口可以对打开的M文件进行编辑修改。在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件报存下来。当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。我们可以将需要运行的命令编辑到一个命令文件中,然后

23、再MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。3.2 Simulink仿真 Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系

24、统的建模工作。 Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。3.2.1 Simulink 启动Simulink有四种启动方法: (1)在MATLAB命令窗口中输入simulink,结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称;(2)在MATLAB命令窗口中输入Simulink3,结果是在桌面上出现一个用图标形式显示的

25、Library :simulink3的Simulink模块库窗口;(3)可以通过单击MATLAB主窗口工具条上的Simulink图标打开;(4)可以通过单击MATLAB主窗口菜单选择FileNewModel,弹出一个Untitled的Simulink模型窗口,再选择View Show Library Browser,弹出Simulink Library Brower模块库窗口。3.2.2 Simulink 模块库及模块操作Simulink模块库按照功能分类可以分为:连续模块、离散模块、查表模块和用户定义函数模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、特别模块、其他常用方块

26、组及工具箱。在模型窗口中,选中模块,则其4个角会出现黑色标记,此时可以对模块进行以下的基本操作:(1)移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。(2)复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。(3)删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。(4)模块的翻转:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。 可以使用鼠标右键单击模

27、块,在快捷菜单中选择“Format”“Flip Block”将模块旋转180度;选择“ Format”“Rotate Block”顺时针旋转90度;也可以选择模型窗口菜单“Format”“Flip Block”或者选择“Rotate Block”。 如果一次旋转不能达到要求,可以多次旋转来实现。(5)改变大小:选中模块,对鼠标移到角上出现,进行拖曳即可。(6)修改模块名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。 名称在功能模块上的位置也可以变换180度,可以用鼠标右键单击模块,在快捷菜单中选择“Format”“Flip Name”,或者选择模型窗口的菜单“Format”“Flip

28、 Name”来实现,也可以直接通过鼠标进行拖曳。(7)模块名的显示和隐藏:使用鼠标右键单击模块,在快捷菜单中选择“format”“Hide/Show Name”可以隐藏或显示模块名称,也可以选择模型窗口的菜单“format”“Hide/Show Name”来实现。(7)颜色设定: Format Foreground Color改变模块的前景颜色,Background Color改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。(8)参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。或点击鼠标右键,选择Block parameters 参数

29、设定窗口包含了该模块的基本功能帮助。通过对模块的参数设定,就可以获得需要的功能模块。3.2.3 仿真参数设置构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。 运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。在模型窗口选择菜单“Simulation”“Configuration Parameters.”或直接按快捷键“Ctrl+E”命令,就会弹出一个打开参数设置的对话框,包括仿真器参数(Solver)、工作空间数据输入/输出(Data Import/Outport)、优化设置(Optimization)、诊断参数(Diagnostics)硬件实现(Ha

30、rdware Implementation)、模型引用(Model Referencing)和实时工作间(Real-Time Workshop)等设置。1.仿真器参数设置(Solver)1)仿真时间(Simulation time)仿真的起始时间(Start time):默认为0,单位为s。仿真的结束时间(Stop time):默认为10,单位为s。注意,仿真时间是计算机的定时时间而不是实际时间。2) 仿真步长模式(Solver options)仿真的过程一般是求解微分方程组,“Solve options”的内容是针对解微分方程组的设置。3) Solver diagnosttic contro

31、ls 根据需要设置仿真诊断参数,可以达到不同的输出结果。 2.工作空间数据输入输出的设置(Data Import/Outport) 1)从工作空间装载数据(Load from workspace)“Input”栏是从工作空间输入变量到模型的输入端口。“Initial state”栏是将工作空间中的xInitial变量作为模型所有内状态变量的初始值。 2)保存数据到工作空间(Save to workspace)“Time”栏的默认变量tout“States”栏的默认变量xout“Output”栏的默认变量yout“Final state”栏的默认变量是xFinal。 3)变量保存设置(Save

32、options) 此设置必须与保存数据到工作空间配合使用。3.3图形用户界面(GUI)MATLAB提供的图形用户界面开发环境(GUIDE)来完成界面设计。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUI将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时自动生成包含GUI初始化和组件界面布局控制代码的M文件,为实现回调函数提供了一个参考框架。这种提供图形用户界面的应用程序能够使用户的学习和使用更为方便、直观和实用。第四章 逻辑电路及其设计 逻辑电路是一种离散信号的传递和处理,以二进制为原理、

33、实现数字信号逻辑运算和操作的电路。根据逻辑功能的不同,数字电路分为两大类:一类是组合逻辑电路,另一类是时序逻辑电路。组合逻辑电路由最基本的“与门”电路、“或门电路”和“非门”电路组成,其输出值仅依赖于其输入变量的当前值,与输入变量的过去值无关即不具记忆和存储功能。常见的组合逻辑电路有数据选择器、编码器、译码器、数据分配器、数据比较器等典型的中规模组合逻辑器件。组合逻辑电路的结构具有以下特点:输出输入之间没有反馈延迟通路;电路中不含有记忆功能的元件。 时序逻辑电路也由上述基本逻辑门电路组成,但存在反馈回路它的输出值不仅依赖于输入变量的当前值,也依赖于输入变量的过去值。常见的时序电路有触发器、锁存

34、器等中规模时序器件。由于只分高、低电平,抗干扰力强,精度和保密性佳。广泛应用于计算机、数字控制、通信、自动化和仪表等方面。最基本的有与电路、或电路和非电路。4.1 组合逻辑电路4.1.1 8线3线编码器编码和译码在数字技术中是一种常用的方法。编码器可分为普通编码器和优先编码器。普通编码器在应用的过程中有一定的局限性,即不能有两个以上的编码信号同时输入到编码器上。为了克服这种局限性,就需要设计另外一种编码器,这就是优先编码器。优先编码器的最大优点是允许有多个编码信号同时加到编码器的输入端但电路只对编码信号中的优先级别进行编码,对于比它低级别的信号不予理睬。所谓优先编码器。就是按优先级别的高低进行

35、编码的电路。至于级别的高低,完全由设计人员根据各个输入信号的要求决定。以8线3线优先编码器为例,其逻辑功能真值表如表4-1所示,从功能表中可以看出,该编码器有8个信号输入端,3个二进制输出端,输入和输出均以高电平作为有效电平,而且输入优先级别的次序依次A7,A6,A5,A4,A3,A2,A1,A0。此外为方便多个芯片连接起来扩展电路的功能,还设置了高电平有效地输入使能端EI。 当EI=1时,编码器工作;而当EI=0时,禁止编码器工作,此时不论8个输入端为何种状态,3个输入端均为低电平。功能表中1和0分别表示高、低电平,画出8线3线编码器的卡诺图并推导出各输出端的逻辑表达式:B2=EI&(A7)

36、&(A6)&(A5)&(A4);B1=EI&(A7)&(A6)&(A5+A4+(A3)&(A5+A4+(A2);B0=EI&(A7)&(A6+(A5)&(A6+A4+(A3)&(A6+A4+A2+(A1); 表4-1 8线3线优先编码器真值表输入输出EIA7A6A5A4A3A2A1A0B2B1B00000100000000000111111011101001101100011001000010111000001010100000010011000000010004.1.2 3线8线译码器 译码器是组合逻辑电路的一个重要的器件,其可以分为:变量译码和显示译码两类。变量译码一般是一种较少输入变为较

37、多输出的器件,一般分为2n译码和8421BCD码译码两类。显示译码主要解决二进制数显示成对应的十、或十六进制数的转换功能,一般其可分为驱动LED和驱动LCD两类。译码器的种类很多,但它们的工作原理和分析设计方法大同小异,其中二进制译码器、二-十进制译码器和显示译码器是三种最典型,使用十分广泛的译码电路。译码器是典型的组合数字电路,译码器是将一种编码转换为另一种编码的逻辑电路,学习译码器必须与各种编码打交道。从广义的角度看,译码器有三类:二进制码译码器,也称最小项译码器,N中取一译码器,最小项译码器一般是将二进制码译为十进制码;代码转换译码器,是从一种编码转换为另一种编码;显示译码器,一般是将一

38、种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。常见的集成二进制译码器有CMOS和TTL的定型产品,两者在逻辑功能上没有区别,只是电性能参数不同,用74x138表示两者中的任意一种。74x139是双线译码器,两个独立的译码器封装在一个集成片中。下面主要介绍74HC138的逻辑功能及应用。74HC138是3线8线译码器,其功能表如表4-2所示。译码器有3个二进制输入端A2、A1、A0,它们共有8中状态的组合,即可译出8个输出信号B7B0,输出为低电平有效。当EI=1时,译码器工作;而当EI=0时,禁止译码器工作,此时不论3个输入端为何种状态,8个输入端均为高电平。表4-2

39、3线8线译码器真值表输入输出EIA2A1A0B7B6B5B4B3B2B1B001111111110001111111010011111110110101111011101111110111110011101111110111011111111010111111111101111111功能表中1和0分别表示高、低电平,画出3线8线译码器的卡诺图并推导出各输出端的逻辑表达式:B7=EI&(A2&A1&A0); B6=EI&(A2&A1&(A0); B5=EI&(A2&(A1)&A0); B4=EI&(A2&(A1)&(A0);B3=EI&( (A2)&A1&A0); B2=EI&( (A2)&A1

40、&(A0);B1=EI&( (A2)&(A1)&A0); B0=EI&( (A2)&(A1)&(A0);利用3线8线译码器可以构成4线16线,5线32线或6线64线译码器。利用两片3线8线译码器和一个反相器可以构成4线16线译码器,利用两片3线8线译码器和2线4线译码器可以构成5线32线译码器,利用三片3线8线译码器可以构成6线64线译码器。4.1.3 7段数码管一个七段数码管由七根发光二极管 LED或液晶显示管LCD构成,分别命名为a到f ( 图1)。在电路上,每根数码管一旦加上电压 ,它就会变亮 。转换到逻辑上 ,如果要显示1到10中的某个数字 ,首先求出它的四位BCD码 ,然后通过一个译

41、码电路,得到一个七位二进制数 ,这七个数字顺序对应a到f 。哪一个管子为1,就表示那一根对应的数码管是亮的 。图 1 显赤“5”时的七段数码管例如 :输入的BCD码是DCBA = 0101时,七段数码管的 a ,c ,d ,f,g各段应该同时变亮 ,从而能够显示出 “5”字 型 。这时输出的七位二进制 数 是 a bcdefg = 1011011。根据组成0到9的十个字形的不同要求 ,我们就得到了如表 4-3 所示的真值表 。表 4-3 七段数码管的译码电路真值表根据这个真值表 ,就可以得到译码电路的逻辑 表达式 (采用或非门) :可以看到这个逻辑表达式极为复杂 。如果采用门电路直接进行搭建

42、,工作量也是很大的 。Matlab的仿真工具提供了一个组合逻辑模块,这个模块的 使用方法是直接写出输入输出的真值表 ,而不用理会这个真值表是如何实现的 ,从而大大减少了工作量 。4.1.4 4选1数据选择器在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。常见的数据选择器有4选1数据选择器、8选1数据选择器(型号为74151、74LS151、74251、74LS151)、16选1数据选择器(可以用两片74151连接起来构成)等之分。数据选择器的电路

43、结构一般由与或门阵列组成,也有用传输门开关和门电路混合而成的。下面以4选1数据选择器为例进行分析,其真值表如表4-5所示。表4-4 4选1数据选择器功能表输入地址输出S1S0Y00I001I110I211I3当输入地址为00时,输出信号为I0;当输入地址为01时,输出信号为I1;当输入地址为10时,输出信号为I2;当输入地址为11时,输出信号为I3。根据功能表可以写出输出信号Y的表达式:Y=(S2)&(S1)&I0)|(S2)&S1&I1)|(S2&(S1)&I2)|(S2&S1&I3);4.2 时序逻辑电路4.2.1 并行寄存器 寄存器用于存储一组二进制代码,它被广泛地应用于各类数字系统和数

44、字计算机。触发器是数字电路中基本的存储单元,每一个触发器可以存储一位二进制数,所以用N个触发器组成的寄存器可以存储一组N位的二进制数。为了控制数字信号的接收和清除,寄存器电路中必须还有相应的控制电路,与触发器配合使用。所以寄存器中都包含有触发器堆和控制电路这两个部分。控制电路都是由门电路构成的。本次设计使用的是基本的RS触发器设计一个2位并行寄存器。 RS触发器工作原理Simulink中提供了基本RS触发器的模块S-R Flip-Flop。RS触发器有两个输入信号,两个输出信号。其输入输出逻辑表达式如下:;其中第二个式子是约束条件,即要求RS触发器的两个输入至少一个为0,否则将会出现不确定的情

45、况。由于两个输出互为相反数,所以不用给出!Q的逻辑表达式。通过这个逻辑表达式可以看到,在R=0、S=0时,Q(n+1)=Q(n),触发器可以保持输出端不变,称为触发器的保持状态;在R=1、S=0时,Q(n+1)=0,触发器处于复位状态;在R=0、S=1时,Q(n+1)=1,触发器处于置位状态。触发器的储存功能主要是通过保持状态来实现的。先通过适当设置RS的值,将触发器置位或复位,然后将RS全都清零,这样就可以让数值存储在触发器里了。 基于RS触发器构造2位并行寄存器设计一个2位并行寄存器,所以需要两个RS触发器。这个寄存器需要在一个时钟源的激励下,先从输入端读入数据,并存储一段时间,然后在下一个周期将信号送出,同时读入新的信号。这就需要将时钟源信号作为输入信号的控制端,同时由于输入信号RS不能同时为1,所以最好将它们通过一个非门联系起来,使它们永远分别为高低电平。 所谓并行寄存器,就是能够同时存储几个数据源数据的寄存器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1