毕业论文-基于matlab的逻辑电路设计与仿真(编辑修改稿)内容摘要:

M 文件可以使用任何编辑程序建立和编辑,而一般常用的是使用 MATLAB 提供的 M 文件窗口。 首先从 MATLAB 命令窗口的 File 菜单中选择 New 菜 单项,在选择 Mfile 命令,将得到的 M 文件窗口。 在 M 文件窗口输入 M 文件的内容,输入完毕后,选择此窗口 File 菜单的 save as 命令,将会得到 save as 对话框。 在对话框的 File 框中输入文件名,再选择 OK 按钮即完成新的 M 文件的建立。 然后在从 MATLAB 命令窗口的 File 菜单中选择 Open 对话框,则屏幕出现Open 对话框,在 Open 对话框中的 File Name 框中输入文件名,或从右边的directories 框中打开这个 M 文件。 在 M 文件所在的目录,再从 File Name 下面的列表框中选中这个 文件,然后按 OK 按钮即打开这个 M 文件。 在 M 文件窗口可以对打开的 M 文件进行编辑修改。 在编辑完成后,选择 File 菜单中的 Save 命令可以把这个编辑过的 M 文件报存下来。 当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。 我们可以将需要运行的命令编辑到一个命令文件中,然后再 MATLAB 命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。 Simulink仿真 Simulink 是基于 MATLAB 的框图设计环境,可以用来对各种动态 系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。 Simulink 提供了利用鼠标拖放的方法建立系统框图模型的图基于 Matlab 的逻辑电路设计与仿真 9 形界面,而且 Simulink 还提供了丰富的功能块以及不同的专业模块集合,利用Simulink 几乎可以做到不书写一行代码完成整个动态系统的建模工作。 Simulink 是 MATLAB 软件的扩展,它是实现动态系统建 模和仿真的一个软件包,它与 MATLAB 语言的主要区别在于,其与用户交互接口是基于 Windows 的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。 Simulink 启动 Simulink 有四种启动方法: ( 1) 在 MATLAB 命令窗口中输入 simulink, 结果是在桌面上出现一个称为Simulink Library Browser 的窗口,在这个窗口中列出了按功能分类的各种模块的名称; ( 2) 在 MATLAB 命令窗口中输入 Simulink3, 结果是在桌面上 出现一个用图标形式显示的 Library :simulink3 的 Simulink 模块库窗口; ( 3) 可以通过单击 MATLAB 主窗口工具条上的 Simulink 图标打开; ( 4)可以通过单击 MATLAB 主窗口菜单选择 FileNewModel,弹出一个Untitled 的 Simulink 模型窗口,再选择 View Show Library Browser,弹出Simulink Library Brower 模块库窗口。 Simulink 模块库及模块操作 Simulink 模块库按照功能分类可以分为:连续 模块、离散模块、查表模块和用户定义函数模块、数学模块、 非线性模块、信号通路模块、接收器模块、输入源模块、特别模块、其他常用方块组及工具箱。 在模型窗口中,选中模块,则其 4 个角会出现黑色标记,此时可以对模块进行以下的基本操作: ( 1)移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。 若要脱离线而移动,可按住 shift 键,再进行拖曳。 ( 2)复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。 ( 3)删除:选中模块,按 Delete 键即可。 若要删除多个模块,可以同时按住Shift 键,再用鼠标选中 多个模块,按 Delete 键即可。 也可以用鼠标选取某区域,再按 Delete 键就可以把该区域中的所有模块和线等全部删除。 ( 4)模块的翻转:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。 基于 Matlab 的逻辑电路设计与仿真 10 可以使用鼠标右键单击模块,在快捷菜单中选择“ Format” “ Flip Block”将模块旋转 180 度;选择“ Format” “ Rotate Block”顺时针旋转 90 度;也可以选择模型窗口菜单“ Format” “ Flip Block”或者选择“ Rotate Block”。 如果一次旋转不 能达到要求,可以多次旋转来实现。 ( 5)改变大小:选中模块,对鼠标移到角上出现 ,进行拖曳即可。 ( 6)修改模块名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。 名称在功能模块上的位置也可以变换 180 度,可以用鼠标右键单击模块,在快捷菜单中选择“ Format” “ Flip Name”,或者选择模型窗口的菜单“ Format”“ Flip Name”来实现,也可以直接通过鼠标进行拖曳。 ( 7)模块名的显示和隐藏:使用鼠标右键单击模块,在快捷菜单中选择“ format” “ Hide/Show Name”可以隐藏或显示模块名称,也可以选择模型窗口的菜单“ format” “ Hide/Show Name”来实现。 ( 7)颜色设定: Format  Foreground Color 改变模块的前景颜色,Background Color 改变模块的背景颜色;而模型窗口的颜色可以通过 Screen Color 来改变。 ( 8)参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。 或点击鼠标右键,选择 Block parameters 参数设定窗口包含了该模块的基本功能帮助。 通过对模块的参数设 定,就可以获得需要的功能模块。 仿真参数设置 构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。 运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。 在模型窗口选择菜单“ Simulation” “ Configuration Parameters..”或直接按快捷键“ Ctrl+E” 命令,就会弹出一个打开参数设置的对话框,包括仿真器参数( Solver)、工作空间数据输入 /输出( Data Import/Outport)、优化设置( Optimization) 、诊断参数( Diagnostics)\ 硬件实现( Hardware Implementation)、模型引用( Model Referencing)和实时工作间( RealTime Workshop)等设置。 ( Solver) 基于 Matlab 的逻辑电路设计与仿真 11 1)仿真时间( Simulation time) 仿真的起始时间( Start time):默认为 0,单位为 s。 仿真的结束时间( Stop time):默认为 10,单位为 s。 注意,仿真时间是计算机的定时时间而不是实际时间。 2) 仿真步长模式( Solver options)仿真 的过程一般是求解微分方程组,“ Solve options”的内容是针对解微分方程组的设置。 3) Solver diagnosttic controls 根据需要设置仿真诊断参数,可以达到不同的输出结果。 ( 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 options) 此设置必须与保存数据到工作空间配合使用。 图形用户界面( GUI) MATLAB 提供的图形用户界面开发环境 (GUIDE)来完成界面设计。 GUIDE 主要是一个界面设计工具集, MATLAB 将所有 GUI 支持的用户控件都集成 在这个环境中并提供界面外观、属性和行为响应方式的设置方法。 GUI 将用户保存设计好的GUI界面保存在一个 FIG 资源文件中,同时自动生成包含 GUI 初始化和组件界面布局控制代码的 M文件,为实现回调函数提供了一个参考框架。 这种提供图形用户界面的应用程序能够使用户的学习和使用更为方便、直观和实用。 第四章 逻辑电路及其设计 逻辑电路 是一种离散信号的传递和处理,以二进制为原理、实现数字信号逻辑运算和操作的电路。 根据逻辑功能的不同 ,数字电路分为两大类 :一类是组合逻辑电路 ,另一类是时序逻辑电路。 基于 Matlab 的逻辑电路设计与仿真 12 组合逻辑电路 由最基 本的“与门”电路、“或门电路”和“非门”电路组成,其输出值仅依赖于其输入变量的当前值,与输入变量的过去值无关 — 即不具记忆和存储功能。 常见的组合逻辑电路有数据选择器、编码器、译码器、数据分配器、数据比较器等典型的中规模组合逻辑器件。 组合逻辑电路的结构具有以下特点:输出输入之间没有反馈延迟通路;电路中不含有记忆功能的元件。 时序逻辑电路也由上述基本逻辑门电路组成,但存在反馈回路 — 它的输出值不仅依赖于输入变量的当前值,也依赖于输入变量的过去值。 常见的时序电路有触发器、锁存器等中规模时序器件。 由于只分高、低 电平,抗干扰力强,精度和保密性佳。 广泛应用于计算机、数字控制、通信、自动化和仪表等方面。 最基本的有与电路、或电路和非电路。 组合逻辑电路 8 线 3 线编码器 编码和译码在数字技术中是一种常用的方法。 编码器可分为普通编码器和优先编码器。 普通编码器在应用的过程中有一定的局限性,即不能有两个以上的编码信号同时输入到编码器上。 为了克服这种局限性,就需要设计另外一种编码器,这就是优先编码器。 优先编码器的最大优点是允许有多个编码信号同时加到编码器的输入端.但电路只对编码信号中的优先级别进行编码,对于 比它低级别的信号不予理睬。 所谓优先编码器。 就是按优先级别的高低进行编码的电路。 至于级别的高低,完全由设计人员根据各个输入信号的要求决定。 以 8线 3线优先编码器为例,其逻辑功能真值表如表 41所示,从功能表中可以看出,该编码器有 8 个信号输入端, 3个二进制输出端,输入和输出均以高电平作为有效电平,而且输入优先级别的次序依次 A7,A6,A5,A4,A3,A2,A1,A0。 此外为方便多个芯片连接起来扩展电路的功能,还设置了高电平有效地输入使能端 EI。 当 EI=1 时,编码器工作;而当 EI=0 时,禁止编码器 工作,此时不论 8 个输入端为何种状态, 3个输入端均为低电平。 功能表中 1和 0分别表示高、低电平,画出 8线 3线编码器的卡诺图并推导出各输出端的逻辑表达式: B2=EIamp。 (~((~A7)amp。 (~A6)amp。 (~A5)amp。 (~A4)))。 B1=EIamp。 (~((~A7)amp。 (~A6)amp。 (A5+A4+(~A3))amp。 (A5+A4+(~A2))))。 B0=EIamp。 (~((~A7)amp。 (A6+(~A5))amp。 (A6+A4+(~A3))amp。 (A6+A4+A2+(~A1))))。 基于 Matlab 的逻辑电路设计与仿真 13 表 41 8 线 3线优先编码器真值表 输入 输出 EI A7 A6 A5 A4 A3 A2 A1 A0 B2 B1 B0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 3 线 8 线译码器 译码器是 组合逻辑电路 的一个重要的器件,其可以分为:变量译码和显示译码两类。 变量译码一般是一种较少输入变为较多输出的器件,一般分为 2n 译码和 8421BCD 码译码两类。 显示译码主要解决二进制数显示成对应的十、或十六进制数的转换功能,一般其可分为驱动 LED 和驱动 LCD 两类。 译码器的种类很多,但它们的工作原理和分析设计方法大同小异,其中二进制译码 器、二 十进制译码器和显示译码器是三种最典型,使用十分广泛的译码电路。 译码器是典型的组合 数字电路 ,译码器是将一种编码转换为另一种编码的逻辑电路,学习译码器必须与各种编码打。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。