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

上传人:b****8 文档编号:9368232 上传时间:2023-02-04 格式:DOCX 页数:56 大小:596.92KB
下载 相关 举报
毕业论文设计基于matlab的逻辑电路设计与仿真.docx_第1页
第1页 / 共56页
毕业论文设计基于matlab的逻辑电路设计与仿真.docx_第2页
第2页 / 共56页
毕业论文设计基于matlab的逻辑电路设计与仿真.docx_第3页
第3页 / 共56页
毕业论文设计基于matlab的逻辑电路设计与仿真.docx_第4页
第4页 / 共56页
毕业论文设计基于matlab的逻辑电路设计与仿真.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

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

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

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

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

基于MATLAB的逻辑电路设计与仿真

重庆工商大学计算机科学与信息工程学院电子信息工程2008级2班果佳

指导教师:

蔡忠见

摘要

MATLAB具有强大的图形处理功能、符号运算功能和数值计算功能。

MATLAB工具几乎涵盖了整个科学技术运算领域。

其中系统的仿真(Simulink)工具箱是从底层开发的一个完整的仿真环境和图形界面。

在这个环境中,用户可以完成面向框图系统仿真的全部过程,并且更加直观和准确地达到仿真的目标。

此次,以数字电路中的逻辑电路为线索来学习Simulink,了解了许多数字电路中常用模块的使用方法.电路中除具有逻辑运算功能的组合电路外,还必须有能够记忆电路状态的存储单元或延迟单元,这些存储或延迟单元主要由本次设计所用到的触发器来实现。

D触发器、RS触发器、JK触发器等这些时序逻辑电路中常用的器件在Simulink中都有相应的仿真模块,除此之外,用户还可以自行设计封装模块来一步一步完成更大的电路系统,实现更强大的逻辑功能。

利用MATLAB软件,通过设计图形用户界面(GUI),说明Matlab功能强大、简单实用、调节容易、可视性好,可大大提高计算效率,缩短编程时间,是一种简便实用的计算工具,可成功地应用于信号处理中,在教学和研究等领域具有广泛的应用前景和一定的推广价值。

关键词:

MATLAB、Simulink、逻辑电路、GUI

Abstract

MATLABhasapowerfulgraphicsprocessingcapabilities,symboliccomputingandnumericalcomputingfunctions.MATLABtoolsarecoveringalmosttheentirescientificandtechnicalcomputing.Onesystemsimulationtoolboxisfromthebottomofthedevelopmentofacompletesimulationenvironmentandthegraphicalinterface.Inthisenvironment,theusercancompletesystemsimulationblockdiagramfortheentireprocessandachieveamoreintuitiveandaccuratesimulationofgoal.Thistime,withdigitalcircuitsinthelogiccircuitsforcluestolearnSimulink,learnedalotincommondigitalcircuitmoduleisused.Sequentialcircuits,inadditiontofeatureswithalogicalcombinationofthecircuit,butalsomustbeabletorememberthestateofthecircuitmemorycellordelayunit,thestorageordelayunitsprimarilyusedinthedesignofthisflip-floptoachieve.Dflip-flops,RSflip-flop,JKflip-flopsequentiallogiccircuitssuchasthosecommonlyusedindevicesinSimulink,thesimulationhasacorrespondingmodule,inaddition,Userscanalsodesigntheirownpackagemodulestepbysteptocompletealargercircuitsystemtoachievemorepowerfullogicfunction.

Throughthedesignofgraphicaluserinterface(GUI)byUsingMatlab,wecanlearnthatMatlabispowerful,simple,practical,easyadjustment,visibility,andcangreatlyimprovethecomputationalefficiencyandshortentheprogrammingtimeisasimpleandpracticaltool,canbesuccessfullyappliedtosignalprocessing,intheteachingandresearchinareassuchastheapplicationofawiderangeofprospectsandthepromotionofacertainvalue.

Keywords:

MATLAB,Simulink,logiccircuits,GUI

摘要1

Abstract2

第一章绪论-5-

第二章设计目的、内容和思想-5-

2.1设计的目的和内容-5-

2.1.1设计目的-5-

2.1.2设计的内容-5-

2.2设计思想-6-

第三章MATLAB简介-6-

3.1MATLAB程序设计-8-

3.2Simulink仿真-8-

3.2.1Simulink启动-9-

3.2.2Simulink模块库及模块操作-9-

3.2.3仿真参数设置-10-

3.3图形用户界面(GUI)-11-

第四章逻辑电路及其设计-11-

4.1组合逻辑电路-12-

4.1.18线3线编码器-12-

4.1.23线8线译码器-13-

4.1.37段数码管-14-

4.1.44选1数据选择器-15-

4.2时序逻辑电路-16-

4.2.1并行寄存器-16-

4.2.2移位寄存器-17-

4.2.3双向移位寄存器的设计-18-

4.2.4扭环计数器-21-

第五章基于MATLAB的组合逻辑电路仿真-22-

5.18线3线编码器的设计及仿真-22-

5.1.1M文件程序设计-22-

5.1.2Simulink仿真-23-

5.23线8线译码器的设计及仿真-24-

5.2.1M文件程序设计-24-

5.2.2Simulink仿真-25-

5.37段数码管-26-

5.3.1M文件程序设计-26-

5.3.2Simulink仿真30

5.4数据选择器的设计及仿真31

5.4.1M文件程序设计31

5.4.2Simulink仿真31

第六章基于MATLAB的时序逻辑电路仿真32

6.1并行寄存器的电路设计与仿真32

6.1.1并行寄存器的电路设计32

6.1.2并行寄存器的电路参数设置与仿真33

6.2移位寄存器的电路设计与仿真34

6.2.1移位寄存器的电路设计34

6.2.2移位寄存器的电路参数设置与仿真35

6.3双向移位寄存器的电路设计与仿真35

6.3.1双向移位寄存器的设计35

6.3.2双向移位寄存器电路设置与仿真37

6.4扭环计数器的电路设计与仿真38

6.4.1扭环计数器内部电路和封装的设计38

6.4.2顶层仿真电路的设计39

6.4.3扭环计数器的参数设置与仿真39

第七章图形用户界面(GUI)的实现40

7.1GUI界面设计概述40

7.2GUI总界面41

总结与心得体会43

致谢45

参考文献46

第一章绪论

本设计利用MATLAB及Simulink仿真软件强大的图形处理功能,符号运算功能和数值计算功能,实现常见的逻辑电路如编码器、译码器、数据选择器、触发器、锁存器等逻辑电路的设计及仿真。

本设计通过Simulink仿真软件使用常见的与、或、非等基本逻辑单元,延时信号、时钟信号等信号源和示波器完成以上各种逻辑电路的设计和仿真,同时通过MATLAB汇编语言实现以上各基本逻辑电路的逻辑表达式,并在给定输入信号的情况下完成并验证各基本逻辑电路的功能。

通过程序设计和波形输入输出仿真两种方法来共同完成各种基本的逻辑电路的设计。

第二章设计目的、内容和思想

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位移位寄存器

双向移位寄存器

扭环计数器

2.2设计思想

本设计以Simulink仿真系统中的基本逻辑元件、时钟信号和示波器为核心进行编码器、译码器、数据选择器及2位并行寄存器、4位移位寄存器、双向移位寄存器、扭环计数器的输入输出波形的设计和仿真,同时以MATLAB汇编语言和各种基本组合逻辑电路的逻辑表达式为基础实现组合逻辑电路的设计并验证其逻辑功能。

第三章MATLAB简介

MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力

MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。

利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。

这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。

目前MATLAB产品的工具箱有四十多个,分别涵盖了数据采集、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。

Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。

Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。

Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。

Stateflow与Simulink和MATLAB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。

在MATLAB产品族中,自动化的代码生成工具主要有Real-TimeWorkshop(RTW)和StateflowCoder,这两种代码生成工具可以直接将Simulink的模型框图和Stateflow的状态图转换成高效优化的程序代码。

利用RTW生成的代码简洁、可靠、易读。

目前RTW支持生成标准的C语言代码,并且具备了生成其他语言代码的能力。

整个代码的生成、编译以及相应的目标下载过程都可以自动完成,用户需要做的仅仅使用鼠标点击几个按钮即可。

MathWorks公司针对不同的实时或非实时操作系统平台,开发了相应的目标选项,配合不同的软硬件系统,可以完成快速控制原型(RapidControlPrototype)开发、硬件在回路的实时仿真(Hardware-in-Loop)、产品代码生成等工作。

另外,MATLAB开放性的可扩充体系允许用户开发自定义的嵌入式系统目标,利用Real-TimeWorkshopEmbeddedCoder能够直接将Simulink的模型转变成效率优化的产品级代码。

代码不仅可以是浮点的,还可以是定点的。

MATLAB开放的产品体系使MATLAB成为了诸多领域的开发首选软件,并且,MATLAB还具有300余家第三方合作伙伴,分布在科学计算、机械动力、化工、计算机通讯、汽车、金融等领域。

接口方式包括了联合建模、数据共享、开发流程衔接等等。

MATLAB结合第三方软硬件产品组成了在不同领域内的完整解决方案,实现了从算法开发到实时仿真再到代码生成与最终产品实现的完整过程。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

3.1MATLAB程序设计

MATLAB有两种工作方式:

一种是交互式的命令行工作方式;另一种是M文件的程序工作方式。

在前一种工作方式下,MATLAB被当做一种高级数学演算纸和图形表现器来使用,MATLAB提供了一套完整的而易于使用的编程语言,为用户提供了二次开发的工具,下面主要介绍MATLAB控制语句和程序设计的基本方法。

用MATLAB语言编写的程序,称为M文件。

M文件有两类:

命令文件和函数文件。

两者区别在于:

命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。

命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。

M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。

首先从MATLAB命令窗口的File菜单中选择New菜单项,在选择M-file命令,将得到的M文件窗口。

在M文件窗口输入M文件的内容,输入完毕后,选择此窗口File菜单的saveas命令,将会得到saveas对话框。

在对话框的File框中输入文件名,再选择OK按钮即完成新的M文件的建立。

然后在从MATLAB命令窗口的File菜单中选择Open对话框,则屏幕出现Open对话框,在Open对话框中的FileName框中输入文件名,或从右边的directories框中打开这个M文件。

在M文件所在的目录,再从FileName下面的列表框中选中这个文件,然后按OK按钮即打开这个M文件。

在M文件窗口可以对打开的M文件进行编辑修改。

在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件报存下来。

当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。

我们可以将需要运行的命令编辑到一个命令文件中,然后再MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。

3.2Simulink仿真

Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。

Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。

Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

3.2.1Simulink启动

Simulink有四种启动方法:

(1)在MATLAB命令窗口中输入simulink,结果是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称;

(2)在MATLAB命令窗口中输入Simulink3,结果是在桌面上出现一个用图标形式显示的Library:

simulink3的Simulink模块库窗口;

(3)可以通过单击MATLAB主窗口工具条上的Simulink图标打开;

(4)可以通过单击MATLAB主窗口菜单选择FileNewModel,弹出一个Untitled的Simulink模型窗口,再选择ViewShowLibraryBrowser,弹出SimulinkLibraryBrower模块库窗口。

3.2.2Simulink模块库及模块操作

Simulink模块库按照功能分类可以分为:

连续模块、离散模块、查表模块和用户定义函数模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、特别模块、其他常用方块组及工具箱。

在模型窗口中,选中模块,则其4个角会出现黑色标记,此时可以对模块进行以下的基本操作:

(1)移动:

选中模块,按住鼠标左键将其拖曳到所需的位置即可。

若要脱离线而移动,可按住shift键,再进行拖曳。

(2)复制:

选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。

(3)删除:

选中模块,按Delete键即可。

若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。

也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。

(4)模块的翻转:

为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。

可以使用鼠标右键单击模块,在快捷菜单中选择“Format”“FlipBlock”将模块旋转180度;选择“Format”“RotateBlock”顺时针旋转90度;也可以选择模型窗口菜单“Format”“FlipBlock”或者选择“RotateBlock”。

如果一次旋转不能达到要求,可以多次旋转来实现。

(5)改变大小:

选中模块,对鼠标移到角上出现,进行拖曳即可。

(6)修改模块名:

先用鼠标在需要更改的名称上单击一下,然后直接更改即可。

名称在功能模块上的位置也可以变换180度,可以用鼠标右键单击模块,在快捷菜单中选择“Format”“FlipName”,或者选择模型窗口的菜单“Format”“FlipName”来实现,也可以直接通过鼠标进行拖曳。

(7)模块名的显示和隐藏:

使用鼠标右键单击模块,在快捷菜单中选择“format”“Hide/ShowName”可以隐藏或显示模块名称,也可以选择模型窗口的菜单“format”“Hide/ShowName”来实现。

(7)颜色设定:

FormatForegroundColor改变模块的前景颜色,BackgroundColor改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。

(8)参数设定:

用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。

或点击鼠标右键,选择Blockparameters参数设定窗口包含了该模块的基本功能帮助。

通过对模块的参数设定,就可以获得需要的功能模块。

3.2.3仿真参数设置

构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。

运行一个仿真的完整过程分成三个步骤:

设置仿真参数,启动仿真和仿真结果分析。

在模型窗口选择菜单“Simulation”“ConfigurationParameters..”或直接按快捷键“Ctrl+E”命令,就会弹出一个打开参数设置的对话框,包括仿真器参数(Solver)、工作空间数据输入/输出(DataImport/Outport)、优化设置(Optimization)、诊断参数(Diagnostics)\硬件实现(HardwareImplementation)、模型引用(ModelReferencing)和实时工作间(Real-TimeWorkshop)等设置。

1.仿真器参数设置(Solver)

1)仿真时间(Simulationtime)

仿真的起始时间(Starttime):

默认为0,单位为s。

仿真的结束时间(Stoptime):

默认为10,单位为s。

注意,仿真时间是计算机的定时时间而不是实际时间。

2)仿真步长模式(Solveroptions)仿真的过程一般是求解微分方程组,“Solveoptions”的内容是针对解微分方程组的设置。

3)Solverdiagnostticcontrols根据需要设置仿真诊断参数,可以达到不同的输出结果。

2.工作空间数据输入输出的设置(DataImport/Outport)

1)从工作空间装载数据(Loadfromworkspace)

“Input”栏是从工作空间输入变量到模型的输入端口。

“Initialstate”栏是将工作空间中的xInitial变量作为模型所有内状态变量的初始值。

2)保存数据到工作空间(Savetoworkspace)

“Time”栏的默认变量tout

“States”栏的默认变量xout

“Output”栏的默认变量yout

“Finalstate”栏的默认变量是xFinal。

3)变量保存设置(Saveoptions)此设置必须与保存数据到工作空间配合使用。

3.3图形用户界面(GUI)

MATLAB提供的图形用户界面开发环境(GUIDE)来完成界面设计。

GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。

GUI将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时自动生成包含GUI初始化和组件界面布局控制代码的M文件,为实现回调函数提供了一个参考框架。

这种提供图形用户界面的应用程序能够使用户的学习和使用更为方便、直观和实用。

第四章逻辑电路及其设计

逻辑电路是一种离散信号的传递和处理,以二进制为原理、实现数字信号逻辑运算和操作的电路

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1