基于Simulink 和GUI 的数字电路仿真实验平台设计

2024-06-03 05:04雷霞张华忠钟勉
电脑知识与技术 2024年11期
关键词:仿真实验数字电路

雷霞 张华忠 钟勉

摘要:为满足新工科与工程认证的人才培养要求,丰富数字电子技术基础教学内容,培养开发学生的创新意识和设计能力,将Matlab应用到课程教学中。利用Matlab中GUI和Simulink仿真工具箱,开发了可视化的数字电路虚拟仿真实验平台,可以对数字电路中常见的组合逻辑电路和时序逻辑电路进行仿真。通过GUI模块建立的可视化界面控制Simulink的参数并运行Simulink仿真,把仿真结果显示在图形用户界面中,方便学生直观地观察结果和加深对理论知识的理解。

关键词:Simulink;Matlab;数字电路;仿真实验

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2024)11-0001-04

0 引言

数字电子技术基础是电子信息类专业一门重要的专业基础课程,在电子信息类专业人才培养方案的课程体系中起着重要作用。本专业在工程认证背景下,基于OBE理念对课程进行了教学改革和建设,将Matlab仿真引入课程教学中,利用Simulink仿真模块对一些数字电路模块进行仿真,利用GUI呈现友好的人机交互界面,直接在界面中调整Simulink 模型参数,直观地观察到仿真结果,利于学生理解和分析电路[1-2]。将Simulink和GUI虚拟仿真应用到数字电路教学中,不仅可以节约硬件设备资源,也有利于调动学生学习的积极性和主动性,提高学生利用理论知识和解决实际工程问题的能力[3-4]。

1 数字电路虚拟仿真实验系统架构设计

数字电路虚拟仿真实验平台基于Matlab的GUI 设计人机交互界面,系统主要由组合逻辑电路和时序逻辑电路两部分组成,点击界面相应按钮跳转对应电路模块进行仿真,系统总体设计框架和仿真平台主界面如图1所示。

2 基于Matlab Simulink的數字电路仿真模块实现

2.1 组合逻辑电路仿真

2.1.1 全加器的设计及仿真

1 位全加器电路是数字电子技术基础教学中的重点电路[5],用于计算两个二进制数相加。将两个单独的二进制数和低位的进位相加,产生一个本位和以及一个向高位的进位。在Simulink模块库中选择Logicand Bit Operations子库内的Logic Operator模块,根据逻辑表达式设置对应的功能模块参数,参照逻辑电路图将功能模块放置合适的位置后用连接线连接各模块。需要注意的是,实现Simulink和GUI 界面之间的数据传递,3个输入端需要设置为From Workspace模块,2个输出端设置为To Workspace模块。同时,为保障电路顺利运行还需加上Power GUI模块。Matlab的GUI通过open_system加载需要控制的Simulink模型,在GUI控件的回调函数中设置Simulink仿真所需的输入参数。建立的Simulink模型,需要存放在与GUI的FIG(.fig) 文件相同的位置,通过 From Workspace 模块跨空间将GUI界面中设置的输入参数传递给Simulink 模型计算,同时通过 To Workspace 模块将Simulink仿真后计算结果输出至工作空间,从而实现Simulink和GUI之间的参数相互调用[6-9]。

建立Simulink 仿真模型后,利用Matlab 软件的GUIDE工具进行用户界面设计。界面设计主要包括界面布局、设置控件的属性、编写回调函数三个方面,保存会自动生成两个文件,其中文件FIG(.fig) 中包含了 GUI 对象的布局信息和属性设置,M文件(.m) 中保存所需函数用以实现具体功能[6]。1位全加器仿真界面如图2所示,整个仿真过程流程如下:左上方是实验数据输入区,输入相应的参数A、B和CI后点击下方“开始实验”按钮,跳转到Simulink全加器电路仿真,右上方实验结果输出区显示CO和S的计算结果。点击“真值表”按钮在界面左下方显示全加器真值表,点击“Simulink仿真模型”按钮显示Simulink 全加器仿真电路模型。整个仿真实验界面整洁美观、层次结构清晰,同时增加各种控件用以丰富课件的功能和知识性,可以一定程度地提高教学效果和效率,增加学生对该课程的兴趣。

2.1.2 3-8译码器的设计及仿真

3-8 译码器是一种常用的组合逻辑电路,输入的3 位二进制代码共有8种状态,译码器将这8种状态译为对应的8 位高、低电平信号。译码器的每个输出都对应着一个二进制数,对应于一个确定的输入,且只有一个输出会被置为1,其他输出都为0。译码器可以将三输入变量的全部最小项进行译码输出。

3-8译码器电路实验仿真GUI界面如图3(a)所示。整个仿真过程流程如下:根据实验需要调整输入参数,单击“ 开始实验”按钮,跳转到Siumink仿真电路页面,右上方输出区显示计算结果。点击“真值表”按钮显示3-8 译码器的真值表,点击“Simulink 仿真模型”按钮显示Simulink 电路仿真模型。根据真值表和逻辑函数表达式,利用Simulink搭建3-8译码器电路,搭建完成后的3-8译码器Simulink 仿真电路图如图3(b)所示。以A2=1,A1=0,A0=1 为例,输出高电平有效,只有Y5=1,其余输出均为0,通过Simulink仿真得到的计算结果如图3(a)所示。

2.1.3 优先编码器的设计及仿真

编码器的逻辑功能是将输入的每一个高低电平信号编译为对应的二进制代码。在优先编码器电路中,事先确定所有输入信号的优先顺序,编码方式是优先级较高的输入信号拥有较高的权重。允许同时输入两个及以上的输入信号,电路只对其中优先级最高的一个信号进行编码。

根据经典8线-3线优先编码器74HC138的内部逻辑电路图,在Simulink选择相应模块搭建8线-3线优先编码器电路,搭建完成后的8线-3线优先编码器电路实验仿真界面如图4(a)所示,Simulink 仿真电路图如图4(b)所示。用户根据实验需要调整输入参数,以Y0=0,Y1=0,Y2=1,Y3=0,Y4=1,Y5=0,Y6=1,Y7=1 为例,代表Y2、Y4、Y6、Y7这4路输入信号均有编码需求,编码器电路只对优先级最高的Y7信号进行编码,输出结果为111。通过实验有利于学生理解优先编码器电路原理,可以方便、有效地对电路进行分析。

2.2 时序逻辑电路仿真

2.2.1 移位寄存器的设计及仿真

移位寄存器是一种常用的时序逻辑电路,具有存储代码和移位的功能,在移位脉冲的作用下寄存器里存储的代码可以依次左移或右移。移位寄存器不仅可以存储代码,还可以实现数据处理、串行-并行转换、数值运算等。根据教学内容,利用D触发器构建右移移位寄存器,参照电路原理图,从Simulink 库浏览器中选择对应的模块,连接所有的信号线,使得模型中的所有端口连接正确,其中第一个D触发器的输入端用来接收输入信号,剩下的3个触发器的输入端均与前面一个触发器的输出端Q相连,建立的右移移位寄存器的Simulink 模拟模型和仿真波形图如图5(a) 和(b)所示。

2.2.2 十进制计数器的设计及仿真

计数器是数字系统中使用最多的时序逻辑电路,可以对时钟脉冲计数、分频、定时、产生节拍脉冲等。同步计数器通常由T触发器构成,可以控制输入端T 的状态和控制时钟CLK信号来实现相应的触发器翻转,通过计数器电路的不同状态从而实现对输入的CLK脉冲进行计数。参照同步十进制加法计数器的原理图在Simulink中搭建好电路,用JK触发器构成T 触发器,所有触发器共用同一个时钟,当计数脉冲到达时,使需要翻转的触发器输入控制端T=1,不需要翻转的触发器输入控制端T=0,建立的十进制加法计数器的Simulink 模拟模型和仿真波形图如图6(a)和(b)所示。由图6(b)可知,十进制加法计数器电路可以实现从0000开始加法计数,计入第九个输入脉冲后,电路进入到1001状态,当第十个输入脉冲到达后,电路返回到0000状态并且输出进位信号C=1。

2.2.3 顺序脉冲发生器的设计及仿真

顺序脉冲发生器可以由移位寄存器构成。采用移位寄存器构成环形计数器,当环形计数器工作在每个状态中只有一个为1的循环状态时,就在时钟脉冲的依次作用下,各触发器依次输出正脉冲,并不断循环输出顺序脉冲。

根据电路原理图从Simulink 库中选择相应的模块,将模块依次连接。建立的顺序脉冲发生器的Simulink 模拟模型和仿真波形图如图7(a)和(b)所示。触发器的输入端使用时钟模块来模拟时钟信号, 触发器的输出端连接Scope 模块进行可视化展示,用于观察脉冲序列的输出波形和周期性等特征。在仿真过程中,可以调整时钟信号频率、仿真时间等仿真参数,并实时观察仿真结果。

3 结论

本文基于Matlab的GUI技术和Simulink仿真技术实现了数字电子基础课程中涉及的常见的组合逻辑电路和时序逻辑电路的设计和仿真,充分地结合界面操控与模型仿真的优点,提高软件实用性。将枯燥、难懂的理论知识变成直观、易解的框图模型,有利于加强学生对数字电路理论的理解,调动学生的学习积极性,进而有利于促进数字电子技术基础课程教学效果和质量的提高。

参考文献:

[1] 邵正途,张路,陳鹏,等. 基于GUI/Simulink的通信对抗效能仿真平台设计与实现[J]. 舰船电子对抗,2020,43(6):57-59,64.

[2] 陈晓娟. 电路分析仿真平台的GUI设计[J]. 设备管理与维修,2021(9):135-137.

[3] 郭建勤,许书君,王琰.《高频电子线路分析与设计》精品资源共享课程建设的有效探索[J]. 教育现代化,2018,5(8):305-307.

[4] 常世杰,杜云明,徐颖,等. 一种基于Matlab GUI的电力电子实验教学平台设计[J]. 中国科技信息,2021(17).

[5] 阎石,王红. 数字电子技术基础[M]. 6版. 北京:高等教育出版社,2016.

[6] 王江. 基于Matlab/Simulink系统仿真权威指南[M]. 北京:机械工业出版社,2013.

[7] 毛文杰,朱其刚,杨金梁,等. 基于Simulink的语音通信系统设计与分析[J]. 电脑知识与技术,2020,16(35):4-6.

[8] 梁营玉,张志,查雯婷. 基于Matlab/Simulink的可视化对比调压实验设计[J]. 电脑知识与技术,2022,18(24):121-123.

[9] 崔翔, 鲍克勤, 邵明强,等. 基于Matlab GUI/SIMULINK的软件设计及在工程实际中的应用[J]. 电脑知识与技术,2016,12(17):220-223.

【通联编辑:王力】

猜你喜欢
仿真实验数字电路
基于数字电路的定时器的设计
MATLAB在数字电路教学中的应用
案例教学在数字电路教学改革中的应用研究
基于数字电路的密码锁设计与实现
仿真软件在制药人才培养中的作用分析
开展体验式教学创新研究 提高化学课堂有效性
基于多重视阈下的《电子控制技术》课程的教学探讨
数字电路功耗的分析及优化
基于ETAP的电气设计仿真实验
计算数据中心的动态数据聚集算法研究