计算机组成原理实验指导_第1页
计算机组成原理实验指导_第2页
计算机组成原理实验指导_第3页
计算机组成原理实验指导_第4页
计算机组成原理实验指导_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理实验指导实验一 监控程序与汇编语言程序设计实验教学机的监控程序是用教学机的汇编语言实现的,运行在教学机的硬件系统之上。它的主要功能是支持把计算机终端或PC机仿真终端接入教学机系统,使用这样的设备执行输入/输出操作,运行教学机的有关程序,以更方便直观的形式支持教学机上的各项实验功能,提供教学机汇编语言的可用子程序。监控程序提供类似PC机DOS系统下的Debug程序的功能,支持A、U、G、P、T、R、D和E共8个监控命令。监控命令的格式为:单字母的命令名后跟回车,或命令名后跟一个地址参数,或寄存器名(编号)参数。当有些命令运行时需要参数,但命令名后又不跟参数时,监控程序会从内存指定单

2、元取一个默认的地址参数值,通常为该命令前一次运行后所接收地址。TEC2机从终端接收地址、指令,数值时,均用最多4位的16进制数输入与显示,并且不能(或说不必)用跟字符h加以标志。 单条汇编命令A格式:Aadr这里的adr表示此处的地址参数adr为任选项(但选择范围必须为0800H0FFFH)。无此参数时,系统将取默认值。该规则下同。功能:完成单条指令的汇编操作,把产生出来的TEC2机的执行代码放入对应的内存单元中。命令名后的地址是头一条汇编语句的执行码的内存单元地址。每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下条汇编语句。在应该输入汇编语句时,不给出汇编语句而直接回车,则结束A命

3、令的运行过程。若汇编中发现语法错误,用指明出错位置后请求重新给出正确语句。要说明,这里的单条汇编功能不很完善,例如不支持语句标号,也不能使用伪指令等。遇到这些问题,要求使用者直接使用机器码,并通过E命令将其送入相应内存单元。 反汇编命令U格式:Uadr功能:每次从指定的(或默认的)地址反汇编15条命令,并将结果显示在终端屏幕上。反汇编完成之后,已将该命令的默认地址修改好。接下来再键入不带参数的U命令,保证接着从上一次反汇编的最后一条语句之后继续反汇编。 执行程序命令G格式:Gadr功能:从指定的(或默认的)地址连续运行一个用户程序。为了使程序执行后能返回监控程序,要求每个程序的最后一条指令应为

4、RET指令。 单指令执行程序命令T和P格式:PadrTadr功能:从指定地址(或PC中的当前地址)开始单条执行程序指令。通常情况下,每按一次T或P将执行一条指令。T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。由于P和T命令是通过设置断点来实现的,而在ROM区不能设置断点,故不能用它们来执行固化在ROM区中的监控程序。 显示 / 修改寄存器内容的命令R格式:Rreg其中reg为寄存器名R0R15或SP(R4),PC(R5),IP(R6),当R命令不带带

5、寄存器名时,显示全部寄存器(包括SP,PC和IP)及状态寄存器的值,并反汇编当前PC所指的一条指令,其中状态的显示格式为:“F = 8位二进制数”,其各位的值分别对应于C、Z、V、S,INTE、P2、P1、P0的值,当R命令带有寄存器名时,先显示出该寄存器的值,若修改打入新值回车,否则只按回车即可。 显示存储器内容的命令D格式:Dadr功能:从指定(或默认)地址开始显示内存120个存储字的内容。显示的格式:最左一列4位的16进制数是本行中第一个字的地址,接下来的8列是4位的16进制的8个连续内存字的内容,最右一列是每个字节所对应的ASC字符。当其值不为可显示字符的ASC码值时,用一个“.”字符

6、标记。连续的D命令,保证所显示内容前后正确的连续关系,即每次执行D命令,会将默认的地址值加上120。TEC2机通常采用字地址读写内存。 修改存储器内容命令E格式:Eadr功能:从指定(或默认)地址逐字显示每个内存字的内容,并等待用户打入一个新的值存回该内存单元。若用户未打入新值就打了空格键,则该内存单元内容保持不变。若在打入新值后跟空格键,则内存单元内容写成新值。空格键表明要连续修改一片内存区,故接下来显示下一个单元的内容并等待修改。打回车键,则会结束E命令的执行过程,若回车前打入一个新值,相应内存单元的内容也将被修改。注:进入监控程序的具体操作步骤:1 准备一台串口工作良好的PC机;2 将T

7、H-union 放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3 将黑色的电源线一端接220V交流电源,另一端插在TH-union 实验箱的电源插座里;4 取出通讯线,将通讯线的9芯插头接在TH-union 实验箱上的串口“COM1”或“COM2”上,另一端接到PC机的串口上;5 将TH-union 实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标识:开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其他实验相同;6 打开电源,船形开关和5V电源指示灯

8、亮。7 在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”,其它的设置一般不用改动,直接回车即可。(具体步骤附后)8 按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITORVersion 1.0 April 2001Computer Architectur Lab., Tsinghua UniversityProgrammed by He Jia实验二 运算器实验一、 实验原理:运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操

9、作,以及移位、比较和传送等操作。运算器的组成除了必须的ALU单元外,寄存器和移位器也是必需。寄存器用于提供操作数和存放运算结果,以节省访存时间;移位器可实现数据的移位功能,以扩展ALU的运算功能和数据传送的灵活性。美国AMD公司生产的AM2901芯片是典型的运算器芯片。1、AM2901的结构与组成 图1-1 AM2901芯片的内部组成框图 AM2901芯片是一个4位的,位片结构的、完整的运算器器件。AM2901由ALU、输入多路选择器、输出选择门、寄存器组和移位器等器件组成,如图1-1所示,作为教学内容的实例具有很好的典型性。2、AM2901各组成部分及其功能1)ALU 为4位算术逻辑单元,有

10、8种运算功能,由外部送入3位信号I5,I4,I3的编码值来确定执行哪种功能。2)存器组 AM2901具有由16个4位寄存器组成的寄存器组,作为通用寄存器组使用。该寄存器组有两个4位地址译码器A和B,其中A译码器只具有读出数据功能,而B译码器具有读出和写入两种功能。也就是说,该寄存器组具有两个数据输出端口,即A口和B口,输出的数据分别存入锁存器A和B;一个数据输入端口,即B口。3)寄存器 4位,在乘除运算中可用来存放乘数或商,故称做乘商寄存器。它本身具有移位功能,即可接受其本身左移一位或右移一位的值,它还可以接收ALU的输出值。4)输入多路选择器 AM2901具有两个输入多路选择器R和S,用于为

11、ALU提供两个操作数。其中,R可选择D数据线来的数据或A锁存器的数据;而S可从A锁存器、B锁存器、Q寄存器3个来源选取数据。两个操作数的组合由外部送来的3位控制信号I2、I1、I0的编码确定。5)移位器 4位,用于对ALU的输出实现直送、左移或右移。6)输出选择门 用于确定AM2901输出数据Y的来源。输出数据Y有两个来源:一个是ALU的运算结果F,另一个是直接来自A口。输出数据Y的选择,以及ALU的运算结果F如何传送给B输入口或Q寄存器,是由外部送来的3位控制信号I8、I7、I6的编码值确定的。 3、为了控制AM2901运算器按我们的意图完成预期的运算操作功能,就必须向其提供相应的控制信号,

12、包括:用3组各3位的编码,分别用于选择ALU的运算功能,输入数据,结果处置方案,具体规定如表1-1、表1-2、表1-3所示。表1-1 选择8种运算 表1-2 选择ALU的8种输入数据组合I5 I4 I3运算类型I2 I1 I0R来源 S来源0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1RSSRRSRSRSRSRSRS0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1 A Q A B 0 Q 0 B 0 A D A D Q D 0注:D表示外部数据表1-3 选择运算器的8种结果的处置方案I8 I7 I6寄存器组 Q寄存器 Y输出0

13、0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1 F Q F FF B AF B FF/2 B Q/2 Q FF/2 B F2F B 2Q Q F2F B F二、实验步骤运算器部件的实验,要在教学计算机主板上进行,既可以在脱机方式下完成,也可以在联机方式下完成。脱机方式是指使运算器部件完全脱离与计算机主机其他部件正常的连接关系,在完全孤立出来的运算器上进行的教学实验。此时,只能通过数据开关提供参加运算的数据,通过微型开关提供操作运算器完成运算所必需的控制信号,通过信号指示灯观察运算结果,操作简单,实验结果清晰易理解。联机方式是指在运算器部件与计算机主机保持连接关系,

14、教学计算机可以正常执行指令的情况下进行的以运算器为重点的教学实验。此时,可以通过指令提供参加运算的数据,通过控制器提供操作运算器完成运算所必需的控制信号,通过信号指示灯或者通过运行监控程序观察运算结果,操作略显复杂。1、脱机实验 打开实验箱电源开关。 将五个控制开关分别置为 1 0 0 0 0注:五个控制开关从左至右分别是:Step/Cntnu、Hndlns/MEMIns、Comloq/Microp、LinkMachi/LeaveMachine、8Bit/16Bit即:单步/连续、手动执行/程序存储、组合逻辑/微程序控制、联机/脱机、8位/16位1:代表上档功能,0:代表下档功能 将AAAA送

15、入R0 微型开关分别置为0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0注:微型开关从左至右分别对应的控制信号是:I8 I7 I6 I5 I4 I3 I2 I1 I0 SST A端口地址 B端口地址 SSH SCI其中:SST为状态寄存器接收,SSH为最底位进位,SCI为移位控制 设置数据开关为AAAA(16进制) 按START按钮 将5555送入R1 微型开关分别置为0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 设置数据开关为5555(16进制) 按START按钮 R0R1 R1微型开关分别置为0

16、 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 02、联机实验 将通讯线一端接实验箱上,另一端插头后接PC机任意COM口。 注:这里PC机只是实验箱的输入输出设备。 将五个控制开关分别置为 0 0 0 1 0。 打开计算机,运行PCEC程序,选择所接COM口后按回车。按F10进入主菜单,选择0,分别按实验箱上的RESET、START按钮,进入监控程序。 屏幕出现提示符 > ,即可用A命令输入程序> A2000 MOV R0 , AAAAMOV R1 , 5555ADD R1 , R0RET(5)用T命令观察运行结果。三、实验要求1、认真写出

17、预习报告,包括实验用的全部数据,实验操作步骤等。2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。实验三 内存储器部件实验实验目的:通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。其最终要达到的目的是:1. 深入理解计算机内存储器的功能、组成知识;2. 深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之

18、处。实验说明:教学计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片组成。TH-union 教学计算机中还安排了另几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚地了解:1 TH-union 教学机的存储器系统的总体组成及其连接关系;2 TH-union 教学机的有关存储器芯片、I/O接口芯片的片选信号控制和读写命令的给出和具体使用方法;3 RAM和EPROM、EEPROM存储器芯片在读写控制、写入时间等方面的同异之处,并正确建立连线关系和在程序中完成正确的读写过程;4 如何在TH-union 教学机

19、中使用扩展的存储器空间并检查其运行的正确性。实验内容:1 要完成存储器容量扩展的教学实验,需为扩展存储器选择一个地址,并注意读写和OE等控制信号的正确状态;2 用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(28系列芯片)、EPROM(27系列芯片)在读写上的异同;3 用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确;4 用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行。实验要求:1 实验之前,应认真预先准备,写出实验步骤和具体设

20、计内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容;2 实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,提高学习的主动性和创造性,把自己想不太明白的问题通过实验理解清楚,争取最好的实验效果,力求达到教学实验的主要目的;3 实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到主要问题和分析与解决问题的思路。实验报告中,还应写出自己的学习心得和切身体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅并给出实验成绩。实验步骤:1 检查FPGA下方的插针要按下列要

21、求短接:标有“/MWR” “RD”的插针左边两个短接,标有“/MRD” “ GND”的插针右边两个短接,标有ROMLCS和RAMLCS的插针短接。2 RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。1) 用E命令改变内存单元的值并用D命令观察结果。<1> 在命令行提示符状态下输入:E 2020屏幕将显示: 2020 内存单元原值:按如下形式键入:2020 原值:2222 (空格) 原值:3333 (空格)原值:4444 (空格)原值:5555 <2

22、> 在命令行提示符状态下输入: D 2020 屏幕将显示从2020内存单元开始的值,其中2020H2023H的值为: 2222 3333 4444 5555<3> 断电后重新启动教学实验机,用D命令观察内存单元20202023的值。会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM时,必须每次断电重启后都要重新输入程序或修改内存单元的值。2) 用A命令输入一段程序,执行并观察结果。<1> 在命令行提示符状态下输入: A 2000 屏幕将显示:2000: 按如下形式键入: 2000: MVRD R0, AAAA 2002: MVRD R1, 5555 20

23、04: AND R0, R1 2005: RET 2006<2> 在命令行提示符状态下输入: T 2000 R0的值变为AAAAH,其余寄存器的值不变。 T R1的值变为5555H,其余寄存器的值不变。 T R0的值变为0000H,其余寄存器的值不变。<3> 在命令行提示符状态下输入: G 2000 运行输入的程序。<4> 在命令行提示符状态下输入: R 屏幕显示: R0=0000 R1=5555 R2= RAM芯片可直接用A命令键入程序,但断电会丢失,要再次调试该程序必须重新输入,对那些较长的程序或经常用到的程序可通过交叉汇编,在上位机生成代码文件,每次加

24、电启动后不用重新输入,只需通过PCE16将代码文件传送给下位机即可。3 将扩展的ROM芯片(27或28系列或28的替代产品58C65芯片)插入标有“EXTROMH”和“EXTROML”的自锁紧插座,要注意芯片插入的方向,带有半圆形缺口的一方朝左插入。如果芯片插入方向不对,会导致芯片烧毁。然后锁紧插座。4 将扩展芯片右边的插针按下列方式短接:将EXTROML芯片右上方的标有“WE”和“ALL”的插针下面两个短接,将它右边标有“TEC” “/CS” “FPGA”的三个插针左边两个短接,标有XTROMLCS的插针短接,标有“TEC” “OE” “GND” “FPGA”的四个插针中间的两个竖着短接。5

25、 在第四步中将标有“TEC” “/CS” “FPGA”的三个插针左边两个短接表示扩展的ROM的内存地址是从4000H开始,可用空间是4000H5FFFH,用户可在这个范围内输入程序或改变内存单元的值。也可以将这个插针断开,将标有/CS的圆孔针与标有MEM/CS的一排圆孔针中的任意一个用导线相连;注意连接的地址范围是多少,用户可用的地址空间是多少。6 将标有“DataBus 15-8”和“DataBus 7-0”的数据总线的指示灯下方的插针短接。7 将标有“AdressBus 15-8”和“AdressBus 7-0”的地址总线的指示灯下方的插针短接。下面以AT28C64B(或其他替代产品58C

26、65芯片)为例,进行扩展EEPROM实验。8 AT28C64B的读操作和一般的RAM一样,而其写操作,需要一定的时间,大约为1毫秒。因此,需要编写一延迟子程序,在对EEPROM进行写操作时,调用该子程序,以完成正确的读写。1) 用E命令改变内存单元的值并用D命令观察结果。<1> 在命令行提示符状态下输入: E 5000 屏幕将显示: 5000 内存单元原值: 按如下形式键入: 5000 原值: 2424 (按空格) 原值: 3636 (按空格) 原值: 4848 (按空格) 原值:5050<2> 在命令行提示符状态下输入: D 5000 屏幕将显示5000H507FH内

27、存单元的值,从5000开始的连续四个内存单元的值依次为2424 3636 4848 5050.<3> 断电后重新启动,用D命令察看内存单元50005003的值,会发现这几个单元的值没有发生改变,说明EEPROM的内容断电后可保存.2) AT28C64B存储器不能直接用A命令输入程序,单字节的指令可能会写进去,双字节指令的低位会出错(建议试一试),可将编写好的程序用编程器写入片内;也可将程序放到RAM(6116)中,调用延时子程序,访问AT28C64B中的内存地址.下面给出的程序,在5000H500FH单元中依次写入数据0000H、0001H、000FH。从2000H单元开始输入主程

28、序: (2000)MVRD R0,0000 MVRD R2,0010 ;R2记录循环次数 MVRD R3,5000 ;R3的内容位16位内存地址 (2006)STRR R3,R0 ;将R0寄存器的内容放到R3给出的内存单元中 CALA 2200 ;调用程序地址为2200的延时子程序 INC R0 ;R0加1 INC R3 ;R3加1 DEC R2 ;R2减1 JRNZ 2006 ;R2不为0跳转到2006H RET 从2200H单元开始输入延时子程序: (2200)PUSH R3 MVRD R3,FFFF (2203)DEC R3 JRNZ 2203 POP R3 RET 运行主程序,在命令提

29、示符下输入:G 2000 程序执行结束后,在命令提示符下输入:D 5000 可看到从5000H开始的内存单元的值变为 5000:0000 0001 0002 0003 0004 0005 0006 0007 5008:0008 0009 000A 000B 000C 000D 000E 000F。 思考:1)为何能用E命令直接写AT28C64B的存储单元,而A命令则有时不正确? 2)修改延时子程序,将其延时改短,可将延时子程序中R3的内容赋成00FF或0FFF等,再看运行结果。 注意:实验完成后,取下扩展芯片,断开地址和数据总线的短路子,将FPGA下方的标有“/MWR” “RD”的插针改成右边

30、两个短接。四、实验要求1、认真预习实验,熟悉主存储器的读写特性及对内存有关信号的推断。2、实验后独立填写实验报告。实验四 微程序控制器部件实验 控制器部件是计算机的五大功能部件之一,其作用是向整机每个部件(包括控制器本身)提供协同运行的需要的控制信号.因而,控制器在计算机组成原理过程中是非常重要的内容,但学生在学习过程中,对其工作原理却常常感到难以理解.教师在讲述这一部分内容时,也常常觉得难以叙述清楚,通过本实验,轻而易举的解决了这一问题。一、 实验原理 控制器的设计实现有两种方式:一种是微程序,另一种是组合逻辑线路,微程序控制器的工作原理,是用一条微指令的控制命令字段来提供一条机器指令的一个

31、执行步骤所需要的控制信号,用这条微指令的下地址字段,指明下一条微指令在控制器存储器中的地址,以便从控制器存储器中读出下一条微指令.换句话说,每一条微指令对应一条机器指令的一个执行步骤。1、微指令格式 微指令由下地址字段及控制字段组成.THUNION教学机的微指令格式如下:其中高八位为下地址字段.其余各位为控制字段.1)址形成逻辑 THUNION 教学机利用器件形成下一条微指令在控制器存储器的地址.下地址的形成由下地址字段及控制字段中的CI3SCC控制.当为顺序执行时,下地址字段不起作用.下地址为当前微指令地址加1;当为转移指令(CI30=0011)时,由控制信号SCC提供转移条件,由下地址字段

32、提供转移地址.2)控制字段控制字段用以向各部件发送控制信号,使各部件能协调工作。控制字段中各控制信号有如下几类: 对运算器部件为了完成数据运算和传送功能,微指令向其提供了24位的控制信号,包括:4位的A、B口地址,用于选择读写的通用积存器组位的控制码II、II、II,用于选择结果处置方案、运算功能、数据来源。组共位控制信号控制配合的两片GAL20V83位SST,用于控制记忆的状态标志位2位SCI,用于控制产生运算器低位的进位输入信号2位SSH,用于控制产生运算器最高,最地位(和积存器)移位输入信号 对内存储器I/O和接口部件,控制器主要向它们提供读写操作用到的全部控制信号,共3位,即MRW 对

33、CPU内部总线数据来源的控制,主要通过3位编码标记为DCD,来选择把哪一组数据发送到内部总线(IB)上。 对几个特定的积存器接受输入的控制,也通过了编码C标记为D(2),用来选择允许哪个积存器接受送个它的一组数据。2、实验步骤1)接通教学机电源2)将教学机左下方的5个控制开关置为11010(单步、手动、置指令、微指令、联机、16位)3)按一下“RESET”按键4)通过16的数据开关置指令机器码如置为0000 0000 0000 0001(表示指令ADD RO R1)5)按RESET键,指示灯亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭。6)按RESET键,通过观察指示灯,得到该

34、指令对应的第一条微指令。 00000000 1110 0000 0100 0001 0011 0001 0101 0101 0000 0001 0111 0000 此指令的功能为:O->PC、DI#=07)按RESET键,通过观察指示灯,得到该指令对应的第二条微指令: 00000000 1110 0000 0100 0011 0010 0000 0101 0101 0000 0001 0011 0110 功能:PC->AR、PC+1->PC8)按RESET键,通过观察指示灯,得到该指令对应的第三条微指令:00000000 1110 0000 0001 0000 0001 00

35、00 0101 0101 0000 0001 0011 0110 功能:MEM->IR。7)和8)两步骤合起来即为通常所说的取指,它是将要执行的机器指令从内存取出送到指令寄存器中。9)按RESET键,通过观察指示灯,得到该指令对应的第四条微指令:00000100 0010 0000 0100 0000 0001 0000 0101 0101 0000 0001 0011 0110 功能:执行非操作功能,相当于指令译码,由下地址字段给出执行ADD指令的微指令的转移地址0000 0100。10)按RESET键,通过观察指示灯,得到该指令对应的第五条微指令:00110000 0011 0000

36、 0100 0001 1011 1000 0000 0001 0001 0000 0000 0000 功能:执行R0+R1->R0四、实验要求1、认真写出预习报告与实验报告,未写出预习报告者,不得开始实验。2、实验报告中要认真总结分析实验中的各种现象,特别要把单微指令方式下的调试过程写清楚。实验五 串行接口输入输出实验实验目的:学习串行口的正确设置与使用。实验说明:1 TH-union 配置了两个串行接口COM1和COM2,其中COM1口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC机或终端相连;而COM2口,留给用户扩展用。2 查阅有关书籍,了解串行通信接口芯

37、片8251的工作原理;了解8251复位、初始化、数据传输的过程。提醒注意的是,每次对8251复位后(即按1次“RESET”按键),都需要对其进行初始化,然后再进行正常的数据传输;复位后,只能对其进行1次初始化,多次初始化将导致串口工作不正常。3 在使用COM2口时,需要将两片8251芯片之间的插针用短路子短接(出厂时已短接),这样才能为COM2正常工作提供所需的控制信号和数据;另外,还需要为其分配数据口地址和控制地址。本教学机,已将COM2口的C/(D非)与地址总线的最低位ABO相连,而其片选信号未连,只引出1个插孔,实验时,应将该插孔与标有“I/O /CS”的7个插孔中的1个相连。实验内容:

38、1 为扩展I/O口选择一个地址,即将与COM2口相连的8251的/CS与标有I/O /CS的一排插孔中的一个相连。2 将COM2口与终端或另一台运行有PCEC16的PC机的串口相连。3 用监控程序的A命令,编写一段小程序,先初始化COM2口,在向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信。实验要求:1 应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中。实验步骤:1 为扩展I/O口选择一个地址,将与COM2口相连的8251的/CS与标有I/O /CS的插孔中地址为A0AF的一个相连;注意,将两片8251芯片之间的插针短接(出

39、厂时以按默认方式短接)。2 将教学机COM1口与一台PC机相连,在PC机上启动PCEC16.EXE。3 断开COM1与PC机的串口线,将其连接到另一台PC机或同一台PC机的另一个串口,同样启动PCEC16.EXE。4 用另一根串口线将COM2口和第一台PC机或同一台PC机的另一个串口相连。5 在与COM1相连的PCEC上输入程序,这时主PCEC可以输入输出,和COM2连接的时从PCEC只作输出。6 用A、E命令编程进行COM2口的操作。(标有*的语句要用E命令直接写入指令编码)1) 程序1:COM2口初始化在命令行提示符状态下输入: A 2000从2000H单元开始输入下面的程序:2000:M

40、VRD R0,004E ;给R0赋值004E2002:OUT A1 ;将R0的值输出到COM2口的8251中的寄存器中2003:MCRD R0,0037 ;给R0赋值00372005:OUT A1 ;将R0的值输出到COM2口的8251中的寄存器中2006:RET在命令行提示符状态下输入G 2000运行初始化程序,完成对COM2口的初始化。每次按“RESET”按键后,在对COM2进行读写操作之前,都应运行该程序。需要注意的是,按一次“RESET”按键后,只能对COM2口进行一次初始化操作。2) 程序2:从COM2口输入数据,然后再与COM1口相连的PC机上显示出数据。在命令行提示符状态下输入:

41、 A 2000从2040H单元开始输入下面的程序:2040:IN A1 ;判键盘上是否按了一个键2041:SHR R0 ;即串行口是否有了输入的字符2042:SHR R02043:JRNC 2040 ;没有输入则循环测试2044:IN A0 ;从COM2口读入字符到R02045:OUT 80 ;将该字符从COM1口输出2046:RET2047:运行该程序,在命令行提示符状态下输入: G 2040光标闪烁等待输入,从与COM2口相连的PC机键盘输入字符,则在与COM1口相连的PC机的屏幕上回显。3) 程序3:从COM1口接收数据,发送到与COM2口相连的PC机上回显。在命令行提示符状态下输入:

42、A 2000从2060H单元开始输入下面的程序:(2060) IN 81 ;判键盘上是否按了一个键2061:SHR R0 ;即串行口是否有了输入的字符2062:SHR R02063:JRNC 2060 ;没有,则循环等待2064:IN 80 ;接收字符2065:OUT A0 将从键盘输入的字符输出到另一串口2066:RET2067:运行该程序,在命令行提示符状态下输入: G 2060光标闪烁等待用户输入,从键盘输入6,可在另一PC机的屏幕上回显出6。扩展实验也可按另外一种方式完成,操作步骤如下:1 为扩展I/O口选择一个地址:将与COM2口相连的8251的/CS与标有I/O /CS的插孔中地址

43、为A0AF的一个相连;注意,将两片8251芯片之间的插针短接(出厂时以按默认方式短接)。2 将一台教学机COM1口与一台PC机相连,在PC机上启动PCEC16.EXE。3 将另一台教学机COM1口与另一台PC机相连,同样启动PCEC16.EXE。4 用一根串口线将第一台的教学机的COM2口和另一台教学机的COM2口相连。5 在两台PC机对应的PCEC上分别输入以下程序:从2000H单元开始输入下面的程序:2000:MVRD R0,004E;给R0赋值004E2002:OUT A1 ;将R0的值输出到COM2口的8251中的寄存器中2003:MCRD R0,0037;给R0赋值00372005:

44、OUT A1 ;将R0的值输出到COM2口的8251中的寄存器中2006:IN 81 ;检查本机键盘上是否按了一个键2007:SHR R0 ;即串行口是否有了输入的字符2008:SHR R02009:JRNC 200D ;没有,则转去检查扩展接口的键盘有没有输入200A:IN 80 ;若本机键盘有输入则接收该字符200B:OUT 80 ;将键盘输入的字符在本机输出200C:OUT A0;将从键盘输入的字符输出经扩展串口送到另一台教学机输出200D:IN 91;检查扩展串口相连的另一台教学机对应的PC键盘上是否按键200E:SHR R0 ;即串行口是否有了输入的字符200F:SHR R02010

45、:JRNC 2006 ;没有,则转去判本机键盘是否有输入2011:IN A0 ;若有,则接收2012:OUT 80 ;在本机输出2013:JR 20002014:RET该程序完成两台教学计算机的第二个串行接口扩展操作并完成该串口初始化,启动两台教学机,都运行这个程序,则两个键盘的输入同时显示在两个屏幕上,实现的是双机的双向通讯功能。 每台教学机都只能检查与操作自己的串行口,管不了另外那台教学机。实验六 多级嵌套的中断实验1、实验原理 1.1中断电路TH-union教学机中断电路的总体组成,如下图所示:图中IRQ0IRQ2是3个中断请求源信号,分别对应实验箱上的三个中断请求按钮,实验时,按下某个

46、按钮表示发出相应的中断请求信号。这三级中断的优先次序从低到高为IRQ0到IRQ2。1.2中断处理在教学机中的具体实现教学机的中断线路主要包括2片GAL、 3个无锁按键、2片74LS374和若干插针。下面分别对这几部分进行简要介绍。(1)3个无锁按键,提供中断请求的源信号教学机支持3级中断发,这3个无锁按键作为3个中断源,从右到左依次为一、二、三级中断,对应的中断优先级编码P1、P0依次为01、10、11,优先级也依次升高。这3个无锁按键的引脚作为INTS GAL 和INTP GAL 的输入。(2)INTS GAL,接受并记忆通过无锁按键给出的中断请求源信号该芯片的输入信号除了3个无锁按键的6个引脚外,还有控制信号DC23、/GIR及系统时钟CK1。输出信号只有3个分别表示取指时3个无锁按键是否被按下,如果被按下,则相应的输出信号为高电平,否则为低电平。这3个输出信号被送至

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论