ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:282.43KB ,
资源ID:23974923      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23974923.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MATLAB的组合逻辑电路设计和仿真.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于MATLAB的组合逻辑电路设计和仿真目 录摘 要 IAbstract II绪 论 III1 matlab 简介 11.1 MATLAB程序设计 11.2 Simulink 仿真 11.2.1 Simulink 启动 11.2.2 Simulink 模块库及模块操作 21.3 子系统的创建与封装 21.3.1 子系统的创建 31.3.2 子系统的封装 32 组合逻辑电路及其设计 32.1 编码器 32.2.2 显示译码器 52.3 数据选择器 63 基于MATLAB的组合逻辑电路仿真实现 63.1以编码器和译码器为例的仿真 63.1.1 8线3线编码器的仿真 63.2.2 3线8线译码器的仿

2、真 83.3.3 4选1数据选择器的仿真 93.2 以译码器的级联为例实现系统的封装并仿真 103.2.1 3线8线译码器的封装 103.2.2 4线16线译码器的仿真 113.3 以七段数码管为例子完成数码管的图形输出显示 13结束语 15致谢 16参考文献 17摘 要MATLAB是当今最优秀的科技应用软件之一,具有强大的科学计算与可视化功能、简单易用、开放式可扩展环境。本文介绍了组合逻辑电路的MATLAB设计和仿真,在这种电路中,任意时刻的输出信号仅取决于当时的输入信号。具备这种逻辑功能特点的电路叫做组合逻辑电路。本次课程设计利用MATLAB中的M文件与SIMULINK方式完成了对组合逻辑

3、电路的设计与仿真,初步了解与掌握了这一技能。课程设计的主要内容包括了编码器、译码器、数据选择器的仿真及子系统的封装。关键词: matlab,simulink,组合逻辑电路AbstractMATLAB is the most outstanding of software technology application nowadays, it has strong scientific computing and visual function, and it is easy-to-use, it can be extend because of its extensible environme

4、nt. This paper introduces the hardwave circuit design and simulation of MATLAB, in this circuit, arbitrary moment only depends on the input signal before,its current state dose not matter. This kind of logic hardware is called combinational logic circuit.The purpose of our training is to strengthen

5、the use of MATLAB to achieve the handling of the .M files and Simulink, including analyzing ,designing and emulating combinational logic circuit.Its content contains Encoder and decoder, data selector simulation and the encapsulation of the subsystems.Keywords: matlab,simulink,combinational logic ci

6、rcuit绪 论MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本设计利用MATLAB及Simulink仿真软件强大的图形处理功能,符号运算功能和数值计算功能,实现常见的组合逻辑电路如编码器、译码器、数据选择器等逻辑电路的设计及仿真。本设计通过Simulink仿真软件使用常见的与、或、非等基本逻辑单元,延时信号、时钟信号等信号源和示波器完成以

7、上各种逻辑电路的设计和仿真,同时通过MATLAB汇编语言实现以上各基本组合逻辑电路的逻辑表达式,并在给定输入信号的情况下完成并验证各基本组合逻辑电路的功能。1 matlab 简介1.1 MATLAB程序设计用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。两者区别在于:命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。首先从MATL

8、AB命令窗口的File菜单中选择New菜单项,在选择M-file命令,将得到的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文件窗口

9、可以对打开的M文件进行编辑修改。在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件报存下来。当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。我们可以将需要运行的命令编辑到一个命令文件中,然后再MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。1.2 Simulink 仿真Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统

10、模型的构建,而非语言的编程上。1.2.1 Simulink 启动Simulink有四种启动方法: (1)在MATLAB命令窗口中输入simulink,结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称;(2)在MATLAB命令窗口中输入Simulink3,结果是在桌面上出现一个用图标形式显示的Library :simulink3的Simulink模块库窗口;(3)可以通过单击MATLAB主窗口工具条上的Simulink图标打开;(4)可以通过单击MATLAB主窗口菜单选择FileNewModel,弹出一个Untitle

11、d的Simulink模型窗口,再选择View Show Library Browser,弹出Simulink Library Brower模块库窗口。1.2.2 Simulink 模块库及模块操作Simulink模块库按照功能分类可以分为:连续模块、离散模块、查表模块和用户定义函数模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、特别模块、其他常用方块组及工具箱。在模型窗口中,选中模块,则其4个角会出现黑色标记,此时可以对模块进行以下的基本操作:(1)移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。(2)复制:选中模块,然

12、后按住鼠标右键进行拖曳即可复制同样的一个功能模块。(3)删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。(4)转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单FormatFlip Block旋转180度, FormatRotate Block顺时针旋转90度。(5)改变大小:选中模块,对鼠标移到角上出现,进行拖曳即可。(6)模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置

13、也可以变换180度,可以用FormatFlip Name来实现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。(7)颜色设定: Format Foreground Color改变模块的前景颜色,Background Color改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。(8)参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。或点击鼠标右键,选择Block parameters 参数设定窗口包含了该模块的基本功能帮助。通过对模块的参数设定,就可以获得需要的功能模块。1.3 子系统的创建与封装在建立的Simulink系

14、统模型比较大或很复杂时,可将一些模块组合成子系统,这样可使1. 模型得到简化,便于连线;2. 可提高效率,便于调试;3. 可生成层次化的模型图表,用户可采取自上而下或自下而上的设计方法。将一个创建好的子系统进行封装,也就是使子系统象一个模块一样,例如可以有自己的参数设置对话框,自己的模块图标等。这样就使子系统使用起来非常方便。 1.3.1 子系统的创建1.通过子系统模块来建立子系统在Simulink库浏览器,有一个子系统(Subsystems)的库模块(有的版本在Signals & Systems子库里),点击该图标即可看到不同类型的子系统模块。2.组合已存在的模块来建立子系统 如果现有的模型

15、已经包含了需要转化成子系统的模块,就可以通过组合这些模块的方式建立子系统。步骤如下:确定需建立Subsystem的模型(被选中的均标记有黑块);点击模型窗Edit菜单下的Create Subsystem 命令,则所选定的模型组合自动转化成子系统;双击该图标,可打开该子系统窗口,改写输入输出符号;关闭子系统编辑窗口,设置子系统标签。1.3.2 子系统的封装子系统可以建立自己的参数设置对话框,以避免对子系统内的每个模块分别进行参数设置,因此在子系统建立好以后,需对其进行封装。子系统封装的基本步骤如下:a. 设置好子系统中各模块的参数变量;b. 定义提示对话框及其特性;c. 定义被封装子系统的描述和

16、帮助文档;d. 定义产生模块图标的命令。2 组合逻辑电路及其设计根据逻辑功能的不同,数字电路分为两大类:一类是组合逻辑电路,另一类是时序逻辑电路。在组合电路中,任意时刻的输出仅取决于该时刻的输入,与电路的原始状态无关。常见的组合逻辑电路有数据选择器、编码器、译码器、数据分配器、数据比较器等典型的中规模组合逻辑器件。在时序电路中,任意时刻的输出不仅取决于该时刻的输入,而且与该时刻之前电路的状态有关。常见的时序电路有触发器、锁存器等中规模时序器件。组合逻辑电路的结构具有以下特点:输出输入之间没有反馈延迟通路;电路中不含有记忆功能的元件。2.1 编码器用文字、符号或数码表示特定对象的过程叫做编码。实

17、现编码操作的电路就是编码器。按照编码信号的不同特点和要求,常用的编码器件有二进制编码器、二-十进制编码器、优先编码器之分。所谓优先编码器,就是按优先级别的高低进行编码的电路。至于级别的高低,完全由设计人员根据各个输入信号的要求决定。以8线3线优先编码器为例,其逻辑功能真值表如表2-1所示,从功能表中可以看出,该编码器有8个信号输入端,3个二进制输出端,输入和输出均以高电平作为有效电平,而且输入优先级别的次序依次I7 、I6 、I 5 、I 4 、I3 、I 2 、I 1 、I 0 。此外为方便多个芯片连接起来扩展电路的功能,还设置了高电平有效地输入使能端EI。 当EI=1时,编码器工作;而当E

18、I=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-1 8线3线优先编码器真值表输入输出EII7 I6I5I4I3I2I1I0A2A1A0HZZZLHHHHHHHHZZZLLLLLLHLLLHHHHLLHLLHHHLLHHLHHHHLHLLLHHHH

19、HLHLHLHHHHHHLHHLLHHHHHHHLHHH2.2 译码器译码是编码的逆过程,它的功能是将具有特定含义的二进制编码进行分辨,并且转换成控制信号,具有译码功能的逻辑电路称为译码器。常用的译码器件有二进制译码器、3线-8线译码器、4线-16线译码器、BCD译码器、七段显示译码器件等。2.2.1 二进制译码器常见的集成二进制译码器有CMOS和TTL的定型产品,两者在逻辑功能上没有区别,只是电性能参数不同,用74x137表示两者中的任意一种。74x139是双线译码器,两个独立的译码器封装在一个集成片中。下面主要介绍74HC137的逻辑功能及应用。功能表中1和0分别表示高、低电平,画出3线8

20、线译码器的卡诺图并推导出各输出端的逻辑表达式: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-2 3线8线译码器真值表输入输出EIA2A1A0Y7Y6Y5Y4Y3Y2Y1Y0LHHHHHHHHHLLLHHHHHHHLHLLHHHHHHHLHHLHLHHHHHLHH

21、HLHHHHHHLHHHHHLLHHHLHHHHHHLHHHLHHHHHHHHLHLHHHHHHHHHHLHHHHHHH2.2.2 显示译码器数码显示器就是用来显示数字、文字或符号的器件。七段显示器有两种,共阴极和共阳极电路,共阴极电路中,七个发光二极管的阴极连接在一起接低电平。共阳极显示器的驱动则刚好相反。为了是数码管能显示十进制数,必须将十进制数的代码经译码器译出,然后经驱动去点亮对应的段。译码器的功能就是,对应于某一段数码输入,相应的几个输出端有有效信号输出。常用的七段显示译码器有两类,一类译码器输出高电平有效信号,用来驱动共阴极显示器,另一类输出低电平信号,以驱动共阳极显示器。下面介绍

22、一种常用的CMOS七段译码器,其真值表如表2-3所示。表2-3 共阴极七段译码器真值表数值输入输出ABCDabcdefg0LLLLHHHHHHL1LLLHLHHLLLL2LLHLHHLHHLH3LLHHHHHHLLH4LHLLLHHLLHH5LHLHHLHHLHH6LHHLHLHHHHH7LHHHHHHLLLL8HLLLHHHHHHH9HLLHHHHHLHHAHLHLHHHLHHHBHLHHLLHHHHHCHHLLHLLHHHLDHHLHLHHHHLHEHHHLHLLHHHHFHHHHHLLLHHH2.3 数据选择器数据选择器又称多路选择器(MUX)。每次在地址输入的控制下,从多路输入数据中选

23、择一路输出,其功能类似于一个单刀双掷开关。常用的数据选择器有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-4 4选1数据选择器功能表输入地址输出S1S0YLLD0LHD1HLD2H

24、HD33 基于MATLAB的组合逻辑电路仿真实现3.1以编码器和译码器为例的仿真3.1.1 8线3线编码器的仿真进入Simulink仿真界面后,按照8线3线编码器的逻辑表达式逐一拖入所需的原件,先摆置好基本位置,然后进行连接,最后得到的8线3线编码器的原理图如图3-1所示。然后,设置好各输入脉冲后,点击进行仿真,然后分别点击查看输入输出信号的示波器查看波形,可观察得到8线3线编码器的输入输出波形如图3-2所示。根据波形可知所设计的8线3线编码器,在一定输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。图3-1 8线3线编码器组合逻辑原理图图3-2 8线3线编码器输入输出仿真波形3.2

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

26、-5 4选1数据选择器原理图设置好输入时钟脉冲后,点击进行仿真,然后分别点击查看输入输出信号的示波器查看波形,如图3-6所示,其中信号D3是高电平信号,信号D2为周期是2的脉冲信号,信号D1是低电平信号,信号I0为周期是0.5的脉冲信号。 根据以下波形可以看出所设计的4选1数据选择器,在给不同输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。图3-6 4选1数据选择器输入输出仿真波形图3.2 以译码器的级联为例实现系统的封装并仿真3.2.1 3线8线译码器的封装在设计完3线8线译码器后为了完成4线16线的设计,需要对3线8线译码器进行封装,下面将详细介绍,首先在3线8线译码器原理图上

27、选中需要封装的部分,然后选择Edit菜单下的Create Subsystem。在创建好一个新的系统后需要对其进一步封装,设置其有关属性,首先选中创建好的系统后选择Edit菜单下的Mask Subsystem命令,这是就会出现一个对话框:Mask Editor,将这个对话框设置好,模块就封装成功了。首先需要在Icon页设置封装模块的图标,在最顶部的是封装类型,中间的编辑框是用来写如图标绘制命令,这里可以填写MATLAB的绘图命令,但更常用的是显示文本的命令:disp、text、fprintf和port-label。设置Icon页后还需要设置Documentation页,在该页中的三个编辑框可以分

28、别为封装模块设置封装类型、秒数文件和帮助文件,封装类型我们已经设置好了,它将作为模块的标题出现在对话框的顶部,在模块的描述编辑框中,我们可以填入对模块的描述文本。设置好Documentation页后对该模块点击OK键就可以看到封装后的模块了,如图3-7所示,模块的中间是输出了我们设置的文本,然后双击该模块,这次看到的不再是子系统的电路了,而是一个模块对话框,封装后的子系统如图3-7所示。图3-7 封装后的3-8译码器3.2.2 4线16线译码器的仿真 4线16线译码器可以用2片3线8线译码器和一个反相器级联而成,其原理图如图3-8所示,图3-8 4线16线级联原理图设置好输入时钟脉冲后,点击进行仿真,然后分别点击查看输入输出信号的示波器查看波形,如图3-9、图3-10和图3-11所示,根据以下波形可以看出所设计的4线16线译码器,在给不同输入的情况下均可得到相应的正确的输出,即该设计符合设计要求。

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

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