基于MATLAB的组合逻辑电路设计和仿真.docx

上传人:b****7 文档编号:23974923 上传时间:2023-05-23 格式:DOCX 页数:24 大小:282.43KB
下载 相关 举报
基于MATLAB的组合逻辑电路设计和仿真.docx_第1页
第1页 / 共24页
基于MATLAB的组合逻辑电路设计和仿真.docx_第2页
第2页 / 共24页
基于MATLAB的组合逻辑电路设计和仿真.docx_第3页
第3页 / 共24页
基于MATLAB的组合逻辑电路设计和仿真.docx_第4页
第4页 / 共24页
基于MATLAB的组合逻辑电路设计和仿真.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于MATLAB的组合逻辑电路设计和仿真.docx

《基于MATLAB的组合逻辑电路设计和仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的组合逻辑电路设计和仿真.docx(24页珍藏版)》请在冰豆网上搜索。

基于MATLAB的组合逻辑电路设计和仿真.docx

基于MATLAB的组合逻辑电路设计和仿真

目录

摘要I

AbstractII

绪论III

1matlab简介1

1.1MATLAB程序设计1

1.2Simulink仿真1

1.2.1Simulink启动1

1.2.2Simulink模块库及模块操作2

1.3子系统的创建与封装2

1.3.1子系统的创建3

1.3.2子系统的封装3

2组合逻辑电路及其设计3

2.1编码器3

2.2.2显示译码器5

2.3数据选择器6

3基于MATLAB的组合逻辑电路仿真实现6

3.1以编码器和译码器为例的仿真6

3.1.18线3线编码器的仿真6

3.2.23线8线译码器的仿真8

3.3.34选1数据选择器的仿真9

3.2以译码器的级联为例实现系统的封装并仿真10

3.2.13线8线译码器的封装10

3.2.24线16线译码器的仿真11

3.3以七段数码管为例子完成数码管的图形输出显示13

结束语15

致谢16

参考文献17

摘要

MATLAB是当今最优秀的科技应用软件之一,具有强大的科学计算与可视化功能、简单易用、开放式可扩展环境。

本文介绍了组合逻辑电路的MATLAB设计和仿真,在这种电路中,任意时刻的输出信号仅取决于当时的输入信号。

具备这种逻辑功能特点的电路叫做组合逻辑电路。

本次课程设计利用MATLAB中的M文件与SIMULINK方式完成了对组合逻辑电路的设计与仿真,初步了解与掌握了这一技能。

课程设计的主要内容包括了编码器、译码器、数据选择器的仿真及子系统的封装。

关键词:

matlab,simulink,组合逻辑电路

 

Abstract

MATLABisthemostoutstandingofsoftwaretechnologyapplicationnowadays,ithasstrongscientificcomputingandvisualfunction,anditiseasy-to-use,itcanbeextendbecauseofitsextensibleenvironment.ThispaperintroducesthehardwavecircuitdesignandsimulationofMATLAB,inthiscircuit,arbitrarymomentonlydependsontheinputsignalbefore,itscurrentstatedosenotmatter.Thiskindoflogichardwareiscalledcombinationallogiccircuit.

ThepurposeofourtrainingistostrengthentheuseofMATLABtoachievethehandlingofthe.MfilesandSimulink,includinganalyzing,designingandemulatingcombinationallogiccircuit.ItscontentcontainsEncoderanddecoder,dataselectorsimulationandtheencapsulationofthesubsystems.

Keywords:

matlab,simulink,combinationallogiccircuit

 

绪论

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

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

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

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

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

1matlab简介

1.1MATLAB程序设计

用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命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。

1.2Simulink仿真

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

1.2.1Simulink启动

Simulink有四种启动方法:

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

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

simulink3的Simulink模块库窗口;

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

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

1.2.2Simulink模块库及模块操作

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

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

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

(1)移动:

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

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

(2)复制:

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

(3)删除:

选中模块,按Delete键即可。

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

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

(4)转向:

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

在菜单FormatFlipBlock旋转180度,FormatRotateBlock顺时针旋转90度。

(5)改变大小:

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

(6)模块命名:

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

名称在功能模块上的位置也可以变换180度,可以用FormatFlipName来实现,也可以直接通过鼠标进行拖曳。

HideName可以隐藏模块名称。

(7)颜色设定:

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

(8)参数设定:

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

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

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

1.3子系统的创建与封装

在建立的Simulink系统模型比较大或很复杂时,可将一些模块组合成子系统,这样可使

1.模型得到简化,便于连线;

2.可提高效率,便于调试;

3.可生成层次化的模型图表,用户可采取自上而下或自下而上的设计方法。

将一个创建好的子系统进行封装,也就是使子系统象一个模块一样,例如可以有自己的参数设置对话框,自己的模块图标等。

这样就使子系统使用起来非常方便。

1.3.1子系统的创建

1.通过子系统模块来建立子系统

在Simulink库浏览器,有一个子系统(Subsystems)的库模块(有的版本在Signals&Systems子库里),点击该图标即可看到不同类型的子系统模块。

2.组合已存在的模块来建立子系统

如果现有的模型已经包含了需要转化成子系统的模块,就可以通过组合这些模块的方式建立子系统。

步骤如下:

确定需建立Subsystem的模型(被选中的均标记有黑块);

点击模型窗Edit菜单下的CreateSubsystem命令,则所选定的模型组合自动转化成子系统;

双击该图标,可打开该子系统窗口,改写输入输出符号;

关闭子系统编辑窗口,设置子系统标签。

1.3.2子系统的封装

子系统可以建立自己的参数设置对话框,以避免对子系统内的每个模块分别进行参数设置,因此在子系统建立好以后,需对其进行封装。

子系统封装的基本步骤如下:

a.设置好子系统中各模块的参数变量;

b.定义提示对话框及其特性;

c.定义被封装子系统的描述和帮助文档;

d.定义产生模块图标的命令。

2组合逻辑电路及其设计

根据逻辑功能的不同,数字电路分为两大类:

一类是组合逻辑电路,另一类是时序逻辑电路。

在组合电路中,任意时刻的输出仅取决于该时刻的输入,与电路的原始状态无关。

常见的组合逻辑电路有数据选择器、编码器、译码器、数据分配器、数据比较器等典型的中规模组合逻辑器件。

在时序电路中,任意时刻的输出不仅取决于该时刻的输入,而且与该时刻之前电路的状态有关。

常见的时序电路有触发器、锁存器等中规模时序器件。

组合逻辑电路的结构具有以下特点:

输出输入之间没有反馈延迟通路;电路中不含有记忆功能的元件。

2.1编码器

用文字、符号或数码表示特定对象的过程叫做编码。

实现编码操作的电路就是编码器。

按照编码信号的不同特点和要求,常用的编码器件有二进制编码器、二-十进制编码器、优先编码器之分。

所谓优先编码器,就是按优先级别的高低进行编码的电路。

至于级别的高低,完全由设计人员根据各个输入信号的要求决定。

以8线3线优先编码器为例,其逻辑功能真值表如表2-1所示,从功能表中可以看出,该编码器有8个信号输入端,3个二进制输出端,输入和输出均以高电平作为有效电平,而且输入优先级别的次序依次I7、I6、I5、I4、I3、I2、I1、I0。

此外为方便多个芯片连接起来扩展电路的功能,还设置了高电平有效地输入使能端EI。

当EI=1时,编码器工作;而当EI=0时,禁止编码器工作,此时不论8个输入端为何种状态,3个输入端均为低电平。

功能表中1和0分别表示高、低电平,画出8线3线编码器的卡诺图并推导出各输出端的逻辑表达式:

A2=EI&(~((~I7)&(~I6)&(~I5)&(~I4)));

A1=EI&(~((~I7)&(~I6)&(I5+I4+(~I3))&(I5+I4+(~I2))));

A0=EI&(~((~I7)&(I6+(~I5))&(I6+I4+(~I3))&(I6+I4+I2+(~I1))));

表2-18线3线优先编码器真值表

输入

输出

EI

I7

I6

I5

I4

I3

I2

I1

I0

A2

A1

A0

H

×

×

×

×

×

×

×

×

Z

Z

Z

L

H

H

H

H

H

H

H

H

Z

Z

Z

L

L

×

×

×

×

×

×

×

L

L

L

L

H

L

×

×

×

×

×

×

L

L

H

H

H

H

L

×

×

×

×

×

L

H

L

L

H

H

H

L

×

×

×

×

L

H

H

L

H

H

H

H

L

×

×

×

H

L

L

L

H

H

H

H

H

L

×

×

H

L

H

L

H

H

H

H

H

H

L

×

H

H

L

L

H

H

H

H

H

H

H

L

H

H

H

2.2译码器

译码是编码的逆过程,它的功能是将具有特定含义的二进制编码进行分辨,并且转换成控制信号,具有译码功能的逻辑电路称为译码器。

常用的译码器件有二进制译码器、3线-8线译码器、4线-16线译码器、BCD译码器、七段显示译码器件等。

2.2.1二进制译码器

常见的集成二进制译码器有CMOS和TTL的定型产品,两者在逻辑功能上没有区别,只是电性能参数不同,用74x137表示两者中的任意一种。

74x139是双线译码器,两个独立的译码器封装在一个集成片中。

下面主要介绍74HC137的逻辑功能及应用。

功能表中1和0分别表示高、低电平,画出3线8线译码器的卡诺图并推导出各输出端的逻辑表达式:

Y7=EI&(~(A2&A1&A0));Y6=EI&(~(A2&A1&(~A0)));

Y5=EI&(~(A2&(~A1)&A0));Y4=EI&(~(A2&(~A1)&(~A0)));

Y3=EI&(~((~A2)&A1&A0));Y2=EI&(~((~A2)&A1&(~A0)));

Y1=EI&(~((~A2)&(~A1)&A0));Y0=EI&(~((~A2)&(~A1)&(~A0)));

74HC137是3线8线译码器,其功能表如表2-2所示。

表2-23线8线译码器真值表

输入

输出

EI

A2

A1

A0

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

L

×

×

×

H

H

H

H

H

H

H

H

H

L

L

L

H

H

H

H

H

H

H

L

H

L

L

H

H

H

H

H

H

H

L

H

H

L

H

L

H

H

H

H

H

L

H

H

H

L

H

H

H

H

H

H

L

H

H

H

H

H

L

L

H

H

H

L

H

H

H

H

H

H

L

H

H

H

L

H

H

H

H

H

H

H

H

L

H

L

H

H

H

H

H

H

H

H

H

H

L

H

H

H

H

H

H

H

2.2.2显示译码器

数码显示器就是用来显示数字、文字或符号的器件。

七段显示器有两种,共阴极和共阳极电路,共阴极电路中,七个发光二极管的阴极连接在一起接低电平。

共阳极显示器的驱动则刚好相反。

为了是数码管能显示十进制数,必须将十进制数的代码经译码器译出,然后经驱动去点亮对应的段。

译码器的功能就是,对应于某一段数码输入,相应的几个输出端有有效信号输出。

常用的七段显示译码器有两类,一类译码器输出高电平有效信号,用来驱动共阴极显示器,另一类输出低电平信号,以驱动共阳极显示器。

下面介绍一种常用的CMOS七段译码器,其真值表如表2-3所示。

表2-3共阴极七段译码器真值表

输入

输出

A

B

C

D

a

b

c

d

e

f

g

0

L

L

L

L

H

H

H

H

H

H

L

1

L

L

L

H

L

H

H

L

L

L

L

2

L

L

H

L

H

H

L

H

H

L

H

3

L

L

H

H

H

H

H

H

L

L

H

4

L

H

L

L

L

H

H

L

L

H

H

5

L

H

L

H

H

L

H

H

L

H

H

6

L

H

H

L

H

L

H

H

H

H

H

7

L

H

H

H

H

H

H

L

L

L

L

8

H

L

L

L

H

H

H

H

H

H

H

9

H

L

L

H

H

H

H

H

L

H

H

A

H

L

H

L

H

H

H

L

H

H

H

B

H

L

H

H

L

L

H

H

H

H

H

C

H

H

L

L

H

L

L

H

H

H

L

D

H

H

L

H

L

H

H

H

H

L

H

E

H

H

H

L

H

L

L

H

H

H

H

F

H

H

H

H

H

L

L

L

H

H

H

2.3数据选择器

数据选择器又称多路选择器(MUX)。

每次在地址输入的控制下,从多路输入数据中选择一路输出,其功能类似于一个单刀双掷开关。

常用的数据选择器有2选1、4选1、8选1、16选1等。

数据选择器的电路结构一般由与或门阵列组成,也有用传输门开关和门电路混合而成的。

下面以4选1数据选择器为例进行分析,其真值表如表2-4所示。

当输入地址为00时,输出信号为D0;当输入地址为01时,输出信号为D1;当输入地址为10时,输出信号为D2;当输入地址为11时,输出信号为D3。

根据功能表可以写出输出信号Y的表达式:

Y=((~S2)&(~S1)&D0)|((~S2)&S1&D1)|(S2&(~S1)&D2)|(S2&S1&D3);

表2-44选1数据选择器功能表

输入地址

输出

S1

S0

Y

L

L

D0

L

H

D1

H

L

D2

H

H

D3

3基于MATLAB的组合逻辑电路仿真实现

3.1以编码器和译码器为例的仿真

3.1.18线3线编码器的仿真

进入Simulink仿真界面后,按照8线3线编码器的逻辑表达式逐一拖入所需的原件,先摆置好基本位置,然后进行连接,最后得到的8线3线编码器的原理图如图3-1所示。

然后,设置好各输入脉冲后,点击

进行仿真,然后分别点击查看输入输出信号的示波器查看波形,可观察得到8线3线编码器的输入输出波形如图3-2所示。

根据波形可知所设计的8线3线编码器,在一定输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。

图3-18线3线编码器组合逻辑原理图

图3-28线3线编码器输入输出仿真波形

3.2.23线8线译码器的仿真

进入Simulink仿真界面后,按照3线8线译码器的逻辑表达式逐一拖入所需的原件并进行连接如图3-3所示,设置好输入脉冲后,再仿真,然后分别点击查看输入输出信号的示波器查看波形,如图3-4所示,根据以下波形可以看出所设计的3线8线译码器,在给不同输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。

图3-33线8线译码器原理图

图3-43线8线译码器输入输出仿真波形

3.3.34选1数据选择器的仿真

进入Simulink仿真界面后,按照4选1数据选择器的逻辑表达式逐一拖入的原件先摆置好基本位置,然后进行连接,最后得到的4选1数据选择器的原理图如图3-5所示。

图3-54选1数据选择器原理图

设置好输入时钟脉冲后,点击

进行仿真,然后分别点击查看输入输出信号的示波器查看波形,如图3-6所示,其中信号D3是高电平信号,信号D2为周期是2的脉冲信号,信号D1是低电平信号,信号I0为周期是0.5的脉冲信号。

根据以下波形可以看出所设计的4选1数据选择器,在给不同输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。

图3-64选1数据选择器输入输出仿真波形图

3.2以译码器的级联为例实现系统的封装并仿真

3.2.13线8线译码器的封装

在设计完3线8线译码器后为了完成4线16线的设计,需要对3线8线译码器进行封装,下面将详细介绍,首先在3线8线译码器原理图上选中需要封装的部分,然后选择Edit菜单下的CreateSubsystem。

在创建好一个新的系统后需要对其进一步封装,设置其有关属性,首先选中创建好的系统后选择Edit菜单下的MaskSubsystem命令,这是就会出现一个对话框:

MaskEditor,将这个对话框设置好,模块就封装成功了。

首先需要在Icon页设置封装模块的图标,在最顶部的是封装类型,中间的编辑框是用来写如图标绘制命令,这里可以填写MATLAB的绘图命令,但更常用的是显示文本的命令:

disp、text、fprintf和port-label。

设置Icon页后还需要设置Documentation页,在该页中的三个编辑框可以分别为封装模块设置封装类型、秒数文件和帮助文件,封装类型我们已经设置好了,它将作为模块的标题出现在对话框的顶部,在模块的描述编辑框中,我们可以填入对模块的描述文本。

设置好Documentation页后对该模块点击OK键就可以看到封装后的模块了,如图3-7所示,模块的中间是输出了我们设置的文本,然后双击该模块,这次看到的不再是子系统的电路了,而是一个模块对话框,封装后的子系统如图3-7所示。

 

图3-7封装后的3-8译码器

3.2.24线16线译码器的仿真

4线16线译码器可以用2片3线8线译码器和一个反相器级联而成,其原理图如图3-8所示,

图3-84线16线级联原理图

设置好输入时钟脉冲后,点击

进行仿真,然后分别点击查看输入输出信号的示波器查看波形,如图3-9、图3-10和图3-11所示,根据以下波形可以看出所设计的4线16线译码器,在给不同输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。

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

当前位置:首页 > PPT模板 > 其它模板

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

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