

虚拟仿真在微机原理与应用课程实验中的教学应用研究
作者: 韩明 沈振乾 王红霞
[摘 要] 目前微机原理与应用课程的实验教学存在较多问题,通过将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仿真软件查看内部地址数据的状态。