Emu8086和Proteus在微机原理教学中的研究与应用
2021-02-28王青
摘要:结合电气工程及其自动化专业微机原理与接口技术的教学,首先从南通理工学院微机原理与接口技术课程教与学的现状进行分析;其次提出了在理论与实践教学过程中,通过Emu8086和Proteus软件进行汇编程序编写、硬件电路设计及模拟仿真的设计方案。并以8086和8253A构建分频电路仿真实例进行验证,实验结果表明构建的分频电路可以通过8086的模拟仿真实现。最终总结了首次采用Emu8086和Proteus软件虚拟仿真的教学方法,取得非常好的教学效果。通过生动的仿真效果激发了学生的学习热情,同时为南通理工学院课程教学改革提供了一种新方法。
关键词:微机原理;教学改革;emu8086;Proteus;分频电路
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)35-0251-03
1 课程教与学的现状
微机原理与接口技术课程是南通理工学院电气工程及其自动化、机械工程、车辆工程、新能源科学工程等专业必修的专业基础核心课程,课程主要包含微机的基本组成、8086/8088的工作原理、指令系统、汇编程序设计、存储系统以及微机的接口电路设计。由于近年来计算机硬件相关技术发展迅猛,微机原理与接口技术这门课程的教学内容陈旧、抽象、复杂、实践性非常强这些问题,而且实践教学环节薄弱、资源有限等现象,导致目前在国内大多数高校教学效果都不容乐观,导致学生对这门课程的学习兴趣低下[1-3]。
2 Emu8086和Proteus软件概述
随着计算机软件技术的飞速发展,针对上述存在的问题。南通理工学院在微机原理与接口技术教学改革过程中采用Emu8086 用于汇编程序设计理论教学、Proteus 7.5版本进行8086 实验模拟仿真实践教学,取得了非常好的教学效果[4-5]。对解决微机原理与接口技术教学和实践难,以及实验设备缺乏等问题提供了一种新的解决方法[6-8]。
2.1 Emu8086软件
Emu8086是目前学习汇编语言必不可少的程序设计工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具,还有一个循序渐进的指导工具。该软件包含了学习汇编语言程序设计的全部内容。Emu8086还集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器于一身,非常适合教师、学生在指令系统和汇编程序设计部分的理论教与学,直观地反映了相关寄存器的变化过程以及汇编程序执行的步骤。
2.2 Proteus软件
Proteus软件是由英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其他EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设計。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、DSP、ARM、Cortex、8086和MSP430等,在程序编译方面,它也支持IAR、Keil编译器。
3 分频电路实验
3.1分频电路硬件设计
分频电路是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子时钟、频率计等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的石英晶体振荡器为主要振荡源,通过各种变换得到相关设备所需要的各种频率成分。
实验主要是借助于Proteus电路仿真软件来对8086微处理器与8253A定时/计数芯片来实现十分频的电路设计。由于8086由20根数据、地址分时复用的双向信号线,故在电路中选择了3片74HC373芯片,该芯片具有74LS244三态门功能和74LS273数据锁存的功能。电路还选用了专用译码芯片74LS138作为译码电路,图中用地址总线上的A12—A15作为地址译码器的输入和使能控制,由于非常所有的地址总线作为译码电路的输入,所以这是一种部分地址译码的方式,当74LS138的IO2输出低电平时来片选中8253A芯片。8253A芯片的A0、A1由系统地址总线上A1、A2进行四个端口的控制。在计数器0的外部时钟输入端接100Hz的时钟脉冲,GATE0外接开关电路置1后计数器0开始计数,通过计数器0的OUT0输出端口外接虚拟示波器观察输入与输出波形,整个分频电路硬件系统原理图,如图1所示。
3.2分频电路软件设计
在进行软件设计的前提条件,需要了解8253A定时/计数器的主要组成由3个计数器、一个控制寄存器以及数据总线缓冲器和读写逻辑电路组成,只有掌握内部电路组成才可以对定时/计数器的选择、工作方式的设定来确定端口地址和控制字,最终计算出计数初值。根据分频电路系统原理图列出8086系统地址总线分配表,如表1所示。
实验要求采用8253A计数器0,工作在方式3(方波发生器方式),输入时钟CLK0 为100Hz,输出OUT0 要求为10Hz的方波,实现10分频的功能,最后用示波器观察输出波形。所以先根据8253A控制字具有的固定格式,计算得到8253A的控制字为16H,再根据输入的时钟脉冲和输出的频率计算得到计数初值为100Hz/10Hz=10。由表1所示,可以得到计数器0的地址为A000H,控制字寄存器的地址为A006H。
根据上述计算初值按照8253A的编程算法,用Emu8086汇编程序设计软件先写计数器0的方式控制字,其次写入计数器0的计数初值。具体源代码如下:
ORG 100
CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,0A006H ;控制字寄存器端口地址
MOV AL,16H ;控制字
OUT DX,AL
MOV DX,0A0000H ;计数器0端口地址
MOV AL,10 ;计数初值
OUT DX,AL
JMP $
CODE ENDS
END START
生成.com文件。源程序可以通過EMU8086进行单步调试,软件的界面也非常友好,左侧实时显示寄存器的变化状态。源程序单步调试环境如图2所示。
源程序以.asm格式进行保存,并对源程序进行编译。
COM文件可以很好地结合Proteus进行模拟仿真。具体的装载COM文件的过程为,右击8086芯片选择edit properties弹出如图3所示的8086芯片属性对话框窗口,在program file中选择EMU8086生成的COM文件,设置时钟频率为1.5MHZ,最重要的是一定要在Advanced properties中选择Internal Memory Size设置为0x10000,最终点击OK即可。
至此,点击Proteus中的运行功能,分频电路就可以利用8086芯片进行模拟仿真。通过观察虚拟示波器得到如图4所示的分频电路输入与输出波形图。
实验结果表明构建的分频电路可以通过8086的模拟仿真实现。学生们也通过分频电路实验对微机原理与接口技术课程理论知识有了进一步的认识,掌握了实践教学环节中,硬件开发的详细过程是如何做到软、硬件的联合仿真调试。增强了学生学习微机原理与接口技术这门课程的兴趣,使学生在学习微机原理与接口技术课程时,不受硬件资源及时空的限制。同时也为后续的专业课程开设,如单片机、DSP、ARM、RX23T、FPGA等,打下坚实的基础。
4 结束语
微机原理及接口技术是一门专业性很强的课程,在南通理工学院应用型本科工科专业教学环节中有着非常重要的地位,首次采用EMU8086和Proteus虚拟仿真的教学方法,取得非常好的教学效果。通过生动的仿真效果激发了学生的学习热情,同时解决了实践教学环节薄弱、实验室资源有限等问题,为培养了学生的自主动手能力、创新能力提供了一种实践方法,也为南通理工学院的课程教学改革提供了一种新方法。
参考文献:
[1] 姚睿, 李增武, 付大丰, 等. 基于Proteus的DSP虚拟实验系统设计与开发[J]. 实验技术与管理, 2015, 32(3):4.
[2] 张军,叶敏.Proteus和Emu8086在微机原理实验教学中的应用[J].实验科学与技术,2015,13(2):43-46.
[3] 王青. 单片机与PC机通信的设计与仿真[J].实验室研究与探索,2016,35(12):100-103.
[4] 刘民岷. 微机原理及接口技术课程教学及实验改革实践 [J]. 实验科学与技术,2013(11):64-66.
[5] 陈红卫,袁伟.虚拟仿真在课堂教学中的应用——以微机原理与接口技术课堂教学为例[J].长春教育学院学报,2014,30(7):3-5.
[6] 刘娟,黄忠.《微机原理与接口技术》教学现状与改进[J].安庆师范学院学报(自然科学版). 2014(01) :129-132.
[7] 赵国增, 郭恒川.《微机原理与接口技术》课程教学探索与实践[J]. 现代计算机(专业版). 2014(7):45-48.
[8] 李忠武,陈静锐,夏春梅. Proteus软件与微机原理接口技术课程实验对接的应用[J].网友世界. 2014(3):36-36.
【通联编辑:王力】