韩明 沈振乾 王红霞
[摘 要] 目前微机原理与应用课程的实验教学存在较多问题,通过将Proteus虚拟仿真软件引入课程的实验教学中,研究虚拟仿真在实验教学、电路设计、实验考核等方面的应用,并在实验教学改革中进行案例分析。实践结果表明,将Proteus虚拟仿真软件应用到微机原理与应用课程实验教学中,可以实现理论教学与实验实践相结合,深化学生对微机原理与应用课程的理解,改善教学质量和实验效果,优化实验环境和考核方法,提高学生的操作能力、创新能力和综合设计能力。
[关 键 词] 虚拟仿真;Proteus;微机原理与应用课程;教学改革
[中图分类号] G642 [文献标志码] A [文章编号] 2096-0603(2023)07-0029-04
微机原理与应用课程是高校理工科的一门专业基础课,也是电子、信息、计算机等专业的必修课。该课程以Intel 80 × 86微处理器和PC系列微机作为基础,全面介绍了微型计算机的基本原理、编程语言和接口技术。该课程具有软件与硬件相结合、理论与实践相联系的特点,因此,除了理论教学之外,还需要相应的实验课教学与之相配。通过对应的实验课教学可以更好地实现理论联系实际,帮助学生掌握微型计算机的基本工作原理、常用芯片结构,熟悉编程语言、编程思路和编程设计方法等知识。
在教学工作中,分析了微机原理与应用课程在教学方法和教学形式方面存在的问题,提出将虚拟仿真软件引入实验教学中,可以提高教学质量和效果,激发学生的学习兴趣和创新思维,与理论课教学相比,在培养学生操作能力、实践能力和创新能力等方面,有更好的作用和效果,为后续专业课程的学习打下坚实的基础。本文中虚拟仿真软件选用Proteus软件,同时引入实验案例,让每位学生通过Proteus软件设计、调试、仿真,并显示出自己的学号,以此作为实验最終的结果,从而有效提高学生学习实验的独立性和自主性。
一、微机原理与应用课程的现状
目前,大部分学校微机原理与应用课程主要采用“微机实验箱+电脑编程软件”的模式,多数实验都属于“验证式”实验,实验教材中提供了每项实验所需的硬件固定连接、程序参考代码、程序调试方法等操作步骤。学生在实验时不需要太多的思考,只需要按照教材里提供的实验步骤进行操作就可以完成实验,没有达到实验教学在整体课程教学中应发挥的作用和效果。这种实验教学的形式和方法主要存在以下不足。
(一)教学方法单一,考核形式简单
目前,大部分学校的实验课都使用微机实验箱来进行实验学习,但在传统的实验箱上,大部分的元器件及其连线已经固定,学生实际操作的内容比较少,也比较简单。传统实验教学一般是由教师将实验项目演示一遍,然后学生按照固定的步骤进行固定的操作,出现固定的结果后再叫教师过来检查打分。教师根据实验最后的结果给出成绩,这种方式很难使学生对理论课程的内容有深入的理解和认识,不利于调动学生参与实验的积极性和主动性。
(二)设备故障较多,维修成本较高
实验箱属于硬件设备,使用时间越长故障率就越高,如果部分核心元器件损坏,则必须由生产厂家的专业工程师来维修调试,维修及更换配件的时效性较差,而且维修成本较高,且容易影响正常实验的顺利进行,实验箱的利用率不高。
(三)灵活性不够,创新性不足
由于实验箱都是微机原理与应用课程配套专用,对其他相关实验课应用的扩展性较低,实验箱的通用性不强。实验箱内部的元器件和线路已经固定,学生只能开展固定的验证性实验,无法自主设计实验,实验的灵活性不够。每位学生的实验内容和结果都完全一样,需要自己进行主动思考,自主设计的内容较少,限制了学生的思维拓展,很难调动学生的学习兴趣,不利于培养学生的自主能力和创新能力。
二、Proteus虚拟仿真软件的基本原理
本文中说的虚拟仿真软件指的是Proteus软件,是英国Labcenter Electronics公司开发的一款EDA工具软件,是可以将电路仿真软件、PCB设计软件和虚拟模型仿真软件三者合一的设计平台,具有丰富的元件库、虚拟仪器、仿真模型等应用资源,不仅可以仿真单片机及外围器件,还可以对电路进行设计、制版、仿真等操作。Proteus软件可以分析和仿真各种微型计算机、模拟电路、数字电路、集成电路、单片机及其外部设备,能够提供多种虚拟仪器,被广泛地应用于微机原理、电路理论、模拟/数字电子技术等电类专业课程教学中。
在微机原理与应用课程的实验中,可以借助Proteus软件实现动态演示教学,使学生实时观察到存储器、内外部寄存器、芯片相关接口的状态变化,加深对课程内容的学习和理解。通过引入Proteus软件进行教学,实现硬件和软件设计的结合,增强实验课程的专业性和创造性,锻炼学生的实践操作能力和设计创新能力,加深学生对微机原理及应用课程中理论知识的理解,提高实验效果和教学质量。
三、Proteus虚拟仿真在实验教学改革的案例分析
(一)程序设计基本方法
8255A是Intel公司生产的可编程输入输出接口芯片,在计算机系统中是比较常用的一种可编程并行接口芯片,可以通过软件编程对其工作方式进行灵活设置,具有使用方便、价格低廉、应用广泛的特点。
8255A内部有三个8位的输入输出端口,是三个相互独立的并行接口,分别为A、B、C端口,其中A端口作为输入用,B端口作为输出用,C端口作为辅助控制用。8255A共有三种工作方式,可通过设置方式控制字进行设置:方式0为基本的输入/输出方式,A、B、C三个端口都可以设定为输入或者输出;方式1为选通式输入/输出方式,A、B、C三个端口都可以工作在这一方式下;方式2为双向总线I/O方式,只有A端口可以工作于方式2,既可以发送数据,又可以接收数据。图1为本实验的程序设计流程图。
(二)Proteus硬件电路设计
本实验使用可编程并行接口芯片8255A、8051 CPU、74LS373锁存器、LED灯、BCD数码管及相关的接口芯片设计硬件电路,由Proteus软件进行仿真,实验设计的具体要求如下:
1.将8051CPU的时钟频率设置为2.0MHz。
2.使两片8255A的A、B、C端口均工作于方式0,并使A口为输出口,B口为输入口。
3.使第1片8255A的B口高4位控制A口的4个LED灯,B口低4位控制BCD数码管1。
4.使第2片8255A的A口高四位接BCD数码管2,显示第1片8255A的B口高四位按键输入的数字。
5.74LS273锁存器进行输出地址Q0-Q7的锁存。
6.让学生自行设计电路并编程,使2个BCD数码管显示出学生本人学号的后2位。
实验电路的核心部分为8051CPU单片机,在本实验Proteus仿真软件中的8051CPU选用AT89C51单片机,AT89C51是内部带有4K字节FLASH存储器的高性能、低电压8位CMOS微处理器单片机。AT89C51单片机内部包括4K字节Flash闪速存储器(FPEROM——Flash Programmableand Erasable Read Only Memory),256字节片内数据存储器(00H-7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),4个8位并行I/O端口(既可以作为输入,又可以作为输出),两个16位定时/计数器(既可以作为定时器,又可以作为计数器),一个5向量两级中断结构(5个中断源、2个中断优先级的中断控制系统),一个全双工UART(通用异步接收发送器)串行I/O通信口,片内振荡器及时钟电路,以上各部分通过片内8位数据总线(DBUS)相连接。
AT89C51中RST為复位信号输入接口,当输入2个机器周期的高电平时,可以实现复位操作。ALE为地址锁存信号接口,向外输出正脉冲信号,锁存低8位地址的控制信号,在本实验仿真中将其接到74LS373的LE锁存接口。EA为内外程序存储器选择接口,当EA输入低电平时,CPU只访问片外ROM并执行片外程序存储器的程序指令;当EA输入高电平时,CPU则只访问片内ROM并执行片内程序存储器的程序指令。P0口(P0.0-P0.7)是漏极开路的8位准双向I/O端口;P1口(P1.0-P1.7)是内部带有上拉电阻的8位准双向I/O端口(并行或按位使用);P2口(P2.0-P2.7)是内部带有上拉电阻的8位准双向I/O端口,当有外部存储器时用作高8位地址总线;P3口(P3.0-P3.7)是内部带有上拉电阻的8位准双向I/O端口,每个引脚除了可作为一般I/O口外,还可以控制系统信号。在本实验仿真中,使用了P0口(P0.0-P0.7),通过总线连接到74LS373的D0-D7接口,进行数据的传输和控制,实验时学生可以通过Proteus仿真软件的存储器窗口进行控制并观察状态。
8255A为可编程并行接口芯片,芯片连接的方式类似于一个外部RAM。在其内部接口引脚中的左侧部分均为控制接口,D0-D7为数据总线,与系统数据线双向连接,可以并行传送8位数据;A0、A1为端口选择接口,可以决定CPU对8255A内部操作哪个端口。RESET接口是复位功能,将8255A中所有的寄存器都清空,复原至最初的状态。RD读信号和WR写信号,通过读/写的模式实现I/O口(输入/输出)功能,在CS片选信号的配合下实现对8255A执行读/写操作。RD、WR、CS信号均为低电平有效,在本实验中,学生可以通过Proteus软件中的源代码编程部分对相应位赋值0或赋值1来控制对应信号引脚是否选用,并观察内部寄存器各数据的变化。
在其内部接口引脚中的右侧部分是A、B、C三个通道,每个通道都有8根线与外部设备连接,各接口分别为PA0-PA7、PB0-PB7、PC0-PC7,其中PA0-PA7具有8位输出锁存器/缓冲器和8位输入锁存器,用于8255A向外部设备输入/输出8位并行数据,在本实验设计中连接并控制LED灯和BCD数码显示管;PB0-PB7具有8位输入锁存器/缓冲器和8位输出锁存器,用于8255AA向外部设备输入/输出8位并行数据,在本实验设计中连接并控制8个DIP拨码开关;PC0-PC7具有8位输出锁存器/缓冲器和8位输入缓存器,在本实验中可让学生通过Proteus仿真将PC口分别与PA口、PB口相互配合使用,作为其控制信号输出或者状态信号输入端口,边实验边观察其信号状态。在Proteus仿真软件的“source code”编程界面中,进行相应的赋值来选择A、B、C三个端口的使用:如果A1、A0接口的赋值是00,则选择的是A端口(即PA0-PA7);如果A1、A0接口的赋值是01,则选择的是B端口(即PB0-PB7);如果A1、A0接口的赋值是10,则选择的是C端口(即PC0-PC7)。
74LS373为地址锁存器芯片,D0-D7连接到89C51的P0.0-P0.7接收信号,输出端Q0-Q7可直接与总线相连,输出端的状态并不会随着输入端的状态一直变化,只有接收到锁存信号时,输入端的状态才会保存到输出,并一直保存至下一个锁存信号出现时才会改变。锁存信号LE(latch enable)引脚置于高电平时,Q0-Q7接口便锁存住了对应D0-D7的上一个状态,之后无论D0-D7接收到的信号如何变化,Q0-Q7的信号都是被锁存的,输出的依然是原来的数据。在本实验中可以通过Proteus仿真软件查看内部地址数据的状态。
本实验仿真电路的显示部分为LED灯和BCD数码显示管两部分,4个LED灯可以显示亮灭,1个BCD数码显示管可以显示数值。SW1-SW8为拨码开关,具有控制功能,在Proteus仿真软件中可以通过鼠标选择上拨或者下拨。其中LED灯是由拨码开关的高4位控制的,由于LED灯均通过上拉电阻连接到GND接地,采用共阳极的连接方式,所以输入低电平时LED灯会被点亮。在本实验中,学生可以通过Proteus仿真软件,根据情况自行选择SW拨码开关和LED灯的数量,以及根据显示效果选择LED灯的颜色,由此可以形象地显示出实验状态,提高学生学习的积极性和自主性。BCD数码显示管由拨码开关的低4位控制的,根据4个拨码开关的0/1值,显示出对应数值。学生在实验时,通过Proteus软件中的源代码编程部分对相应位赋值0或赋值1,来控制对应信号引脚是否选用,并观察内部寄存器各数据的变化,加深对赋值和控制功能的学习和理解。
(三)Proteus软件程序设计
本实验的程序编译和调试需要选择可以支持8051汇编语言的编译编辑器,通过Proteus仿真软件的“source code”编程界面进行源代码的编写,进行编译、汇编后生成可执行的“.ASM”或者“.EXE”格式的程序可执行文件,编写的源代码的主程序如下:
org 0000h
ljmp main
orgt 0100h
main:mov a,#82h
mov dptr,#7fffh
movx @ dptr,a
light:mov dptr,#7ffdh
movx a,@ dptr
mov dptr,#7ffch
movx @ dptr,a
mov dptr,#0bff3h
movx @ dptr,a
sjmp light
end
(四)仿真电路的程序调试
可编程并行接口芯片8255A的A端口和B端口的输出接到LED发光二极管和BCD数码管并显示出对应的状态,在仿真电路中选择8051CPU芯片并单击右键,出现“Edit Component”对话框,设置8051CPU的芯片参数,并把源文件生成的“.ASM”或者“.EXE”文件加载到8051CPU芯片中,然后就可以进行仿真和调试。学生在实验时可以根据实际情况自行设置8051CPU芯片内部的各项参数,可以通过设置不同的参数观察实验数据的差别。通过控制L1-L8这8个拨码开关,来控制4个LED发光二极管和2个BCD数码管,2个BCD数码管显示出的“2”和“0”即为该实验学生学号的后两位。通过这种方式,可以形象地显示出仿真效果,便于学生对实验的学习和理解。由于不同学生实验结果显示的学号数字不同,也可以提高学生实验的独立性和自主性。
在我校的教学中,教师通过将Proteus仿真软件引入实验教学,可以更加生动形象地演示出8051CPU、74LS373、8255A等芯片的工作方式设置、程序调试过程和实验效果实现,可以很好地提高学生的学习兴趣和积极性,深化学生对8051单片机、74LS373锁存器、可编程8255A并行接口芯片及其接口功能的学习和理解,取得了良好的教学效果。
在本实验案例中,让每位学生通过Proteus软件自行设计电路、调试程序、仿真结果,并显示出自己学号的后两位,以此作为实验最终的结果。这样每位学生的程序和结果都不一样,避免学生出现互相抄袭、依赖他人的心理,可以有效提高学生学习实验的独立性和自主性,进而提高实验课程的质量和效果。
四、结语
本文通过将Proteus虚拟仿真引入微机原理与应用课程教学中,可以在课程教学的改革方面发挥积极的作用。在理论教学中,通过Proteus仿真教学可以使理论讲解更加形象生动;在实验教学中,通过Proteus软件进行虚拟仿真实验可以弥补硬件实验设备资源数量有限、硬件容易损壞、通用性不强、利用率不高等缺点,给学生提供更多的实验和动手机会,同时方便学生实时观察系统存储器、寄存器等数据的变化。经过我们的教学实践,激发了学生的学习兴趣,提高了学生的软硬件综合设计能力,培养了学生的创新能力,提高了教学质量和效果。从总体上看,整体实验效果比较理想,有利于改革传统的实验教学方法,推动实验课程的网络教学发展。
参考文献:
[1]侯慧,朱韶华,张清勇,等.国内外高等学校虚拟仿真实验发展综述[J].电气电子教学学报,2022,44(5):143-147.
[2]曹彦刚,李红伟,田连起,等.信息化支持下中药炮制类本科课程体系的构建与实践[J].中国信息化,2022(4):73-75.
[3]苏春建,韩宝坤,王瑞.基于虚拟仿真实验的机械类教学理论与实践研究[J].教育教学论坛,2022(47):97-100.
[4]曹红霞,卞振涛,朱岩岩,等.基于创新型工程人才培养的化工工艺学课程教学探讨[J].广东化工,2022, 49(16):242-243,251.
[5]连文磊,杨理理,于兵.基于虚拟仿真的线上线下混合式教学探索:以“光伏原理”课程为例[J].工业和信息化教育,2022(2):91-94.
◎编辑 郑晓燕