学习人数 26
(0个评价)

【国家级】基于云实验系统的8086微机系统仿真实验

学院:电子信息与电气工程学院 专业:电子信息类  试用账号:游客 试用密码:游客

      8086微机系统是一个国内高校应用时间最长的实验系统。8086 微机系统实验是电子信息、电气、控制等各类专业本科学生的微机原理或嵌入式系统课程的重要内容,主要让同学掌握微型计算机的系统结构、硬件设计及汇编编程。虽然8086芯片已经诞生近40年了,与目前的计算机芯片的处理能力和速度已经无法相比,但具有丰富的接口及完善的教学资源,仍是学习微型计算机系统的很好的入门芯片,目前国内高校中多以此作为学生学习微机接口和汇编编程的主要手段,开设嵌入式系统、微机原理、单片机原理等课,应用面广。

       软件仿真不依赖硬件环境,提升学生实验能力。微机接口实验由于电路复杂,电路板使用频率高,学生操作容易引起电路损坏,给实验维护带来了很大的困扰,加之芯片已经停产,硬件实验更加难以为继。而通过Proteus软件的模拟仿真,能够弥补上述缺陷,加之为纯软件,不需要硬件维护,对实验室的设备管理带来了便利。另外,采用Proteus软件仿真,学生想自己搭建微机系统,进行实验,可以随意修改设计,改变了原有的硬件系统所有的引脚已经连接好,无法自由设计的弊端,有利于提升学生的硬件设计能力。

       仿真软件具有广泛应用的行业背景。Proteus 软件是英国Lab CenterElectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,其支持的处理器模型有8051、HC11、PIC、smyDSPIC33、AVR、ARM、8086、 MSP430、Cortex 和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil 和MPLAB等多
种市场流行的编译器。

      通过进行“基于云实验系统的8086微机系统仿真实验”,循序渐进地完成“I/O接口实验”、“8255 芯片接口实验”和“8253可编程定时器/计数器芯片实验”,可以帮助学生掌握以下内容:
     1、掌握8086微机系统的基本原理及其汇编语言编程原理,通过虛拟实验熟悉微机系统接口技术及其编程方法;掌握基于Proteus仿真软件的8086微机系统硬件电路设计、软件编程、调试方法;
     2、通过8086微机系统的基本IO、 存储器使用实验熟悉8086微机系统的设计流程及实验方法;通过设计8255及8253外围扩展电路接口,巩固微机系统基本知识,进一步掌握8086微机系统的扩展系统设计技术。



[实验模块一]基本I/O接口实验
       输入输出I/O是计算机和外设进行数据、信息交换最重要的手段本实验要求掌握微机系统中I/O的使用方法。由于我们采用软件模拟仿真8086CPU及其组成的微机系统,设计了如图2所示的实验硬件系统,利用8个拨位开关和74LS244电路作为输入接口(I), 输入开关的状态,读入到8086CPU中,利用74LS373为输出端口,后接8个LED管,实验的基本目的是用8个输入开关的

状态去控制8个LED的显示状态。

       我们采用Proteus软件作为整个硬件系统,结合其软件调试环境,完成实验。需要学生了解Proteus软件环境装载程序的方法及其运用方法。能够利用MASM32软件汇编程序,编写8086汇编程序,并编译生成可执行文件,在实验电路图上完成实验。

      基本实验要求:读入74LS244的开关状态,将该状态取反后写入74LS273的端口(请思考为何要取反? )。

      提高部分的实验要求:编写一个程序,控制三色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。
      综合硬件设计和软件编程实验:修改硬件设计并编程,如果要求74LS244的选片地址为90H~97H, 74LS273 的片选地址为A0H~A7H,请修改电路图,再完成实验要求。

     图2为实验参考电路(提供原始的仿真设计图):

     结合下图,根据I/O译码器接线,可知欲将74LS244和74LS273分别作为输入和输出,则需分别使能Y0与Y1管脚,因此对应地址总线分别为:二进制的1000 000、1000 1000,转换为16 进制: 80h、 88h;
     基本实验的汇编参考程序如下:

                             

由前面的寄存器部分介绍可知AX常用于存储I/O指令,因此剩余部分的程序如下:


  本例程完成了从开关输入到LED灯显示开关实验的功能,改变输入开关的门状态,可以实时显示的状态。

在基本I/O实验的基础上,利用上述的LED灯,模拟交通信号灯控制,程序参考流程图如下:

                                     

上述过程控制中闪烁可以利用灭灯和加时间延迟来实现。






[实验模块二] 8255芯片接口操作实验
  8255是intel公司为806乐列CPU配套的可编程并行接口芯片,通用性软强、使用灵活,具有典型的可编程并行接口,引脚如图3所示、内都结构如图4所示。

      8255可编程接口芯片具有三个接口,A、B、C,其接口的三种基本的工作方式:
      方式0:基本输入/输出方式
      方式1:选通的输入/输出方式
      方式2:双向传输方式

     A口可以工作在方式0、方式1或方式2, B口和C口只能工作于方式0或方式1.3个端口的工作方式可通过软件编程来设定。
     8255方式控制字如图5:

       根据图6所示原理图文件,分析、计算8255芯片在IO空间中的地址,列出8255中四个寄存器的端口地址,查看8255芯片数据端口与8086芯片数据总线的连接方法,用于编程。

       8255显示接口电路如图7,利用8255的A口和B口,驱动控制4个数码管,4个LED灯,一个八位拨位开关作为C口输入。因此实验时,A口、B口为输出口;C口为输入口,均为基本方式0。在4个数码管显示时,采用B口提供数码管显示段码,A口的低四位作为四个数码管的位选择,高四位接四个LED管,共阳接法。动态显示方式,即显示数字时,先在B口输出显示的段码,再在A口相应的位上输出1,保持30ms左右时间,接着显示下个字,以此类推,完成4个字符的连续显示。
      实验基本要求:
     (a) 根据原理图文件,分析原理图,计算8255芯片在IO空间中的地址,列出8255中四个寄存器的端口地址,查看8255芯片数据端口与8086芯片数据总线的连接方法。
    (b)导入提供的8255Demo.asm 源文件并编译运行,在数码管-上显示0,1,2,3,并点亮所有发光二极管。

        实验提高要求:
       (a) 修改源文件,使其接收开关量输入,将8位开关量的高4位以二进制形式金示在发光二极管上,低4位的状态显示在(第一位)数码管上。
       (b)修改程序,接收开关量输入,将8位开关量的高4位和低4位分别以十六进制形式显示在第1、2个数码管的上,第3、4个数码管重复第1、2个数码管的显示;开关量输入高4位的状态显示在4个发光二极管上。

      (c) 调整8255芯片数据端口连线到8086芯片数据总线的D8-D15,重复上述的步骤。

[实验模块三] RAM存储器读写操作
      图8是微机系统的内存扩展电路,采用两片32K*8的RAM组成的64K*8的存储器方案。两片RAM, U10为 偶地址,U11为奇地址。

     (a)根据原理图文件,通过对所提供的原理图中存储芯片解码方案的分析,计算出该芯片映射到内存地址空间的地址和内存容量的大小;
    (b)打开“内存扩展.asm”源文件运行并观察U10和U11内存芯片的内容。其方法是先运行程序一段时间后暂停,如下图9,勾选菜单项"Debug”->“MemoryContents-U10” 选项和勾选菜单项“Debug”->“Memory Contents -U11”选项,弹出U10和U11二个62256内存芯片的内容观察窗口,其内容应该均为FFh。该演示程序是采用单字节写入的方法完成内容的填写。要求修改.上述程序,采用单字节写操作方法,将所有奇数地址的内存单元从低地址到高地址依次填入无符号数1、3.5.7......;通过Proteus的观察存储芯片内容的查看功能,观察原理图中二个内存芯片U10和U11的写入内容与预想结果做比较。
    (c) 继续修改程序,采用单字节写操作方法,将所有偶数地址的内存单元从低地址到高地址依次填入无符号数0、2、4、6、....通过Proteus的观察存储芯片内容的查看功能,观察原理图中二个内存芯片U10和U11的写入内容。
   (d)修改原理图,将内存芯片映射到内存地址从0000h 开始的地方,重复上述的步骤。



       (e)编写程序,采用双学节写操作方法,55AAh填满上述的二个内存芯片通过Proteus的观察储存芯片内容的查看功能。观察原理图中二个内存芯片的写入内容。


[实验模块四]定时器/计数器实验
     8253芯片为Inte 8086微机系统配套可编程定时器、计数器芯片。

     图11为本实验所用的芯片8253, 作为定时器/计数器控制芯片,它具有3个独立的定时器/计数器,每个定时器/计数器可以工作在6中工作模式。其内部结构如图12, 853方式控制字如图13所示。

           

定时器/计数器实验原理如图14所示:

     实验要求:
      (a) 了解8253定时器的硬件连接方法及时序关系,掌握8253的各种模式编程及原理。

      (b)编程将8253定时器0设定为方式3,定时器1设定在方式2,定时器2设定在方式2,定时器0输出作为定时器1的输入,定时器1的输出作为定时器2的输入,用示波器观察各定时器的输出波形。设计定时器2的输出接在一个LED上,运行后可观察到该LED在不停闪烁,并在虚拟示波器上显示。

8086微机系统作为学习本课程的重要内容,通过学习8086微机系统,了解微机系统硬件结构,掌握8086微机系统、可编程接口设计、汇编语言软件编程,掌握软硬件调试方法。
主要知识点:

1、8086 CPU

     8086是Intel 公司生产的世界上第一块16位微处理器,即它的内部数据总线、内部寄存器以及外部数据总线都是16位的。它是Intel 公司第三代CPU,时钟频率为5Mz,是具有40根引线的双列直插式芯片,共有20位地址线,其中16位为数据/地址复用线,可寻址1MB内存单元、64KB的I/O地址空间。其副产品8088CPU除外部数据总线是8位的之外,在其他方面的性能几乎完全一样。

     以8086/8088为处理器的IBM-PC 个人计算机曾经风靡全世界,也使8086/8088成为最主要的微处理器结构。

2、8086的寄存器组

    8086CPU共有14个16位寄存器组。按照其功能可分为三大类:即通用寄存器组、段宵存器组以及控制寄存器组,其结构如图1所示:

        

     通用寄存券组包括4个数据寄存券.2个地址指针寄存器和2个变址寄存器。其中数据寄存器包括: Ax. Bx. cx. Dx,每一个数据寄存器都是16位寄存器,但又可以将离8位和低8位分别作为两个独立的8位寄存器使用,而各自又有独立的用法:
     (a) AX称为累加器,常用于存放算数迎辑运算中的操作数。所有的1/0.指令都使用累加器与外设接口传送信息。.
     (b) BX称为计数寄存器,常用于存放内存的基地址。
     (c) cx称为计数寄存器,在循环和串操作指令中用作计数器。
     (d) Dx称为数据寄存器,在寄存器同接寻址的1/O0指令中存放I/O端口地址。
3.汇编语言
     汇编语言是一种介于机舞语言和高级语言之间的计算机编程语言,它既不像机暴语言鄢样直接使用计算机所认识的二进制代码,也不像高级语言那样独立于机器之外直接面向用户。其本质上还是一种面向机器的语言,只是将难记的、不易书写的计算机语言符号化了,用助记符代替了机器语言的二进制代码;汇编语.言源程序与其经过汇编所产生的机器语言程序(二进制代码)存在一-对应关系,允许程序员直接对寄存器、存储器、1/O端口进行直接操作,也能直接对位、字节、字进行操作,具有占用内存少,执行速度快的特点。如下表1所示为8086系统的基本汇编指令:

    表1 基本汇编指令

       


1.实验室内或个人计算机,2Mbyte/s带宽,IE8.0以 .上浏览器,或chrome核心浏览器。
2.服务端安装Proteus软件(版本不低于8.0)及MASM32编译器,微软的Snip录屏软件。

1.三张实验参考原理图(Proteus 原理图,*.DSN后缀);

2.三个根据上述电路的最基本的汇编语言程序(DemoX.ASM);

3.USB Flash存储介质;

       8086微机系统实验是电子信息、电气类专业本科学生的微机原理或嵌入式,系统课程的重要内容,国内大多数高校采用开设“嵌入式系统”、“微机原理”、“单片机原理”等不同课程的形式,实现培养学生掌握硬件设计、软件编程、软硬件综合调试等能力的目标。

一、实验教学方法
      采用本虚拟仿真实验,可以开放地、以网络仿真形式进行8086微机系统的实验教学,并充分发挥网络优势和利用云平台技术,帮助学生了解实验的要求、实验内容、实验过程、实验结果,采用软件仿真的科技手段,使自己在实验过程中能真正做到有的放矢,掌握微型CPU的系统结构、硬件设计及汇编编程。采用本仿真实验采用了国内外行业领先的Proteus软件,软件更新速度快,运行维护方便,具有设备投资少、成本轻,使用效率高等特点,适合高校推广,同时行业主流软件能力的提升,也可以帮助学生快速融入企业的开发应用。
二、实施过程和效果
采用虚拟实验方法进行实验教学的实施形式和主要教学环节图17所示。

      中心提供的“基于云实验系统的8086微机系统仿真实验”实验为我校电类本科生实践能力培养做出了重要贡献,每年参加本实验教学的学生人数约1000人,完成实验教学1.8万人时数,其中课堂教学实验为6小时,课外12小时。

三、实例说明
       我校自2003年开始,成立了大电类专业教学课程平台,涉及“嵌入式系统原理与实验”课程(2008年称为“微机原理与接口技术”课程)的专业有8个本科专业,包括电气工程及其自动化、计算机科学与技术、电子科学与技术、信息工程、自动化、测控技术与仪器、软件工程和微电子科学与工程等,每年招生人数近1000人,按照培养人数至少得配备100套微机原理教学设备,装备3个实验室,需要占用实验面积500平方米,加上硬件装置每套费用约为5000元,需要投入50万元,配一个专职管理人员,维护管理这些实验装置,而一般这种设备的使用更新为5年左右。而我们采用了软件仿真后,近投入15万,购置200 个软件许可,可以有200个同学同时实验,不需要专门的实验室,只需和其他计算机机房共用,就能完成以前的实验,节约了大量的实验室面积和管理成本。







上海交通大学

实验负责人
共享应用
    实验浏览量 33468
    做实验人数 0
    实验通过率 0%

    优秀 0人

    达标 0人

    不达标 0人

实验评价