《计算机组成原理实验》指导书

更新时间:2024-03-01 06:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《计算机组成原理》实验指导书

李选政 编著

电子技术省级实验教学示范中心

实验一 算术逻辑运算实验

一、实验目的:

1、掌握简单运算器的组成以及数据传送通路。 2、验证运算功能发生器(74LS181)的组合功能。

二、实验内容:

1、用算术逻辑运算器进行算术逻辑运算。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

实验中所用的运算器数据通路如图1-1所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的两个数据输入端分别由两个锁存器(74LS273)锁存,锁存器的输入连至数据总线,数据输入开关(INPUT)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。运算器的输出经过一个三态门(74LS245)和数据总线相连。数据显示灯已和数据总线(“DATA BUS”)相连,用来显示数据总线内容。

图1 运算器数据通路图

图1-2中已将实验需要连接的控制信号用箭头标明(其他实验相同,不再说明)。其中除T4为脉冲信号,其它均为电平控制信号。实验电路中的控制时序信号均已内部连至相应时序信号引出端,进行实验时,还需将S3、S2、S1、S0、Cn、M、LDDR1、LDDR2、ALU_G、SW_G各电平控制信号与“SWITCH”单元中的二进制数据开关进行跳线连接,其中ALU_G、SW_G为低电平有效,LDDR1、LDDR2为高电平有效。按动微动开关PULSE,即可获得实验所需的单脉冲。

五、实验步骤及注意事项:

l、按图1-2连接实验线路,仔细检查无误后,接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一 一对应,可用彩排线的颜色来进行区分)

SIGNALT4+PSALUALU_GS3S2S1S0MCNALU_GS3S2S1S0MCN图2 算术逻辑运算实验接线图

2、用INPUT UNIT的二进制数据开关向寄存器DR1和DR2置数,数据开关的内容可以用与开关对应的指示灯来观察,灯亮表示开关量为“1”,灯灭表示开关量为“0”。以向DR1中置入11000001(C1H)和向DR2中置入01000011(43H)为例,具体操作步骤如下:

首先使各个控制电平的初始状态为:CLR=1,LDDR1=0,LDDR2=0,ALU_G=1,SW_G=1,S3 S2 S1 S0 M CN=111111,并将CONTROL UNIT的开关SP05打在“NORM”状态,然后按下图所示步骤进行。

数据开关(11000001)打开三态门寄存器DR1(11000001)数据开关(01000011)寄存器DR2(01000011) 上面方括号中的控制电平变化要按照从上到下的顺序来进行,其中T4的正脉冲是通过按动一次CONTROL UNIT的触动开关PULSE来产生的。

置数完成以后,检验DR1和DR2中存的数是否正确,具体操作为:关闭数据输入三态门(SW_G=1),打开ALU输出三态门(ALU_G=0),使ALU单元的输出结果进入总线。当设置S3、S2、S1、S0、M、CN的状态为111111时,DATA BUS单元的指示灯显示DR1中的数;而设置成101011时,DATA BUS单元的指示灯显示DR2中的数,然后将指示灯的显示值与输入的数据进行对比。

3、验证74LS181的算术运算和逻辑运算功能(采用正逻辑)

74LS181的功能见表1-1,可以通过改变S3 S2 S1 S0 M CN的组合来实现不同的功能,表中“A”和“B”分别表示参与运算的两个数,“+”表示逻辑或,“加”表示算术求和。

表1 74LS181功能表 S3 S2 S1 S0 0 0 0 0 0 0 0 0

接到DATA BUSD0..JD1.D7LDDR1LDDR2LDDR1LDDR2SWITCHINPUTSW_GSW_G SW_G=0LDDR1=1LDDR2=0T4=LDDR1=0LDDR2=1T4=M=0(算术运算) CN=1无进位 CN=0有进位 F=A加1 F=(A?B)加1 F=(A?F=0 ABBBM=1 (逻辑运算) F=A F=A?F=0 B0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 F=A 1 F=A?B 0 F=A? AB )加1 加1 F=AB F=AB F=B F=A?B F=AB 1 F=0减1 0 F=A加1 F=(A?B)加0 F=A减B减1 1 F=ABF=A加 ABF=(A?B)加AB加1 F=A减B F=AB减1

1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 F=A加AB 1 F=A加B 0 F=(A?BF=A加AB加1 F=A加B加1 F=(A?F=AB F=A加A加1 F=(A?B)加A加1 F=(A?F=A BBF=A?F=B B F=A?B F=AB F=1 F=A?F=A B)加AB )加AB加1 1 F=AB减1 0 F=A加A 1 F=(A?B)加A 0 F=(A?B )加A )加A加1 F=A?B 1 F=A减1 通过前面的操作,我们已经向寄存器DR1写入C1H,DR2写入43H,即A=C1H,B=43H。然后改变运算器的控制电平S3 S2 S1 S0 M CN的组合,观察运算器的输出,填入表1-2中,并和理论值进行比较、验证74LS181的功能。

表2 运算器功能实验表

DR1 C1 C1 C1 C1 C1 C1 C1 C1 DR2 S3 S2 S1 S0 43 43 43 43 43 43 43 43 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 M=0(算术运算) CN=1无进位 F= F= F= F= F= F= F= F= CN=0有进位 F= F= F= F= F= F= F= F= F= F= F= F= F= F= F= F= M=1 (逻辑运算) 六、实验报告:

1、在显示结果后将指示灯显示值与输入的数据进行比较;

2、完成表2,比较理论分析值与实验结果值,并对结果进行分析。

七、思考题:

1、运算器的功能是什么?核心部分是什么?

实验二 进位控制实验

一、实验目的

验证带进位控制的算术运算功能发生器的功能。

二、实验内容:

1、按给定的数据完成几种指定的算术运算。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

进位控制运算器的实验原理如图1-3所示,在实验1.1的基础上增加进位控制部分,其中74LS181的进位进入一个锁存器,其写入是由T4和AR信号控制,T4是脉冲信号,实验时将T4连至“SIGNAL UNIT”的TS4上。AR是电平控制信号(低电平有效),可用于实现带进位控制实验,而T4脉冲是将本次运算的进位结果锁存到进位锁存器中。

图l 进位控制实验原理图

五、实验步骤及注意事项:

1、1-4连接实验线路,仔细检查无误后,接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)

2、进位标志清零。具体操作方法如下:

实验板中“SWITCH”单元中的CLR开关为标志位CY、ZI的清零开关,它为0时(开关向上为1,向下为0)是清零状态,所以将此开关做l→0→1操作,即可使标志位CY、ZI清零(清零后CY、ZI指示灯亮)。

3、用INPUT UNIT的二进制数据开关向DR1存入11000001,向DR2存入01000011。具体操作步骤如下:

各个控制电平的初始状态为:CLR=1,LDDR1=0,LDDR2=0,ALU_G=1,AR=1,SW_G=1,S3 S2 S1 S0 M

CN=111111,并将CONTROL UNIT的开关SP05打在“NORM”状态, SP06打在“RUN”状态,SP03打在“STEP”状态,SP04打在“RUN”状态。然后按下图所示步骤进行。

数据开关(11000001)打开三态门寄存器DR1(11000001)数据开关(01000011)寄存器DR2(01000011)SW_G=0

首先使上面方括号中的控制电平变化要按照从上到下的顺序来进行,其中T4的正脉冲是通过按动一次CONTROL UNIT的触动开关START来产生的。

SIGNALT1T4TS1TS4LDDR1=1LDDR2=0T4=LDDR1=0LDDR2=1T4=ALU_GALU_GS3S2S1S0MCNARLDDR1LDDR2ALUD0..JD1.D7S3S2S1S0MCNARLDDR1LDDR24、验证带进位运算及进位锁存功能。

进行带进位算术运算:前面的操作已经向DR1、DR2置数,然后关闭数据输入三态门(SW_G=1)并使LDDR2=0,打开ALU输出三态门(ALU_G=0),使ALU单元的输出结果进入总线,当S3 S2 S1 S0 M CN的状态为100101时,DATA BUS指示灯显示的数据为DR1加DR2加当前进位标志得到的结果。这个结果是否产生进位,则要使AR=0,然后按动触动开关START,若进位标志灯CY仍然亮,表示无进位;若进位标志灯CY灭,表示有进位。

六、实验报告:

记录实验数据,并总结收获。

七、思考题:

1、74LS181能提高运算速度的原因是什么?

2、在定点二进制运算器中,减法运算一般通过什么方式实现?

接到DATA BUSSWITCHINPUTSW_GSW_G

图2 进位控制实验接线图

实验三 移位运算实验

一、实验目的:

验证移位控制的功能。

二、实验内容:

1、使用一片74LS299来实现移位控制。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

移位运算实验中使用了一片74LS299作为移位发生器,其八位输入/输出端以排针方式和总线单元连接。299_G信号控制其使能端,T4时序为其时钟脉冲,由S1 S0 M控制信号控制其功能状态,列表如下:

表1-3 74LS299功能表

299_G 0 0 0 0 0 任意

S1 0 1 1 0 0 1 S0 0 0 0 1 1 1 M 任意 0 1 0 1 任意 功能 保持 循环右移 带进位循环右移 循环左移 带进位循环左移 装数 五、实验步骤及注意事项

1、按图1-5连接实验线路,仔细检查无误后接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)

SIGNALT4TS4ALU299_GD0.JD2..D7SWITCH299_G2、按照如下步骤用INPUT UNIT的二进制数据开关把数据写入74LS299:

首先使各个控制电平的初始状态为:299_G=1,SW_G=1,S1 S0 M =111,CLR= l→0→1,并将控制台单元的开关SP05打在“NORM”状态,SP06打在“RUN”状态,SP03打在“STEP”状态,SP04打在“RUN”状态。然后按下图所示步骤进行。

数据开关( 00000011) 打开三态门置数(00000011)S0=1S1=1T4=关闭三态门

上面方括号中的控制电平变化要按照从上到下的顺序来进行,其中T4的正脉冲是通过按动一次CONTROL UNIT的触动开关START来产生的。

3、参照前面的表格1-3,改变S0 S1 M 299_G的状态,按动触动开关START,观察移位结果。

六、实验报告:

参照前面的表格1-3,观察并记录移位结果。

七、思考题:

1、本实验用的移位发生器是什么?其功能表是什么?

接到DATA BUSS3S2S1S0MCNS3S2S1S0MCNINPUTSW_GSW_G 图1-5 移位运算实验接线图

SW_G=0SW_G=1

实验四 存储器实验

一、实验目的:

1、掌握静态随机存储器RAM工作特性。

2、掌握静态随机存储器RAM的数据读写方法。

二、实验内容:

1、用静态随机存储器RAM进行单步读、写和连续写数据。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

实验所用的半导体静态存储器电路原理如图1-6所示,实验中的静态存储器由一片6116(2Kx8)构成,其数据线接至数据总线,地址由地址锁存器(74LS273)给出。地址灯LI01—LI08与地址总线相连,显示地址内容。INPUT单元的数据开关经一三态门(74LS245)连至数据总线,分时给出地址和数据。 D01D77D76116D0MEMORYA7A0A8A9A10/OE/WECS11LI01CEW/RADDRESS LEDLI08A7A074LS273(AR)D7D0DATA BUSCLKCLRCLR231T3LDAR 图1-6 存储器实验原理图 地址总线为8位,接入6116的地址A7—A0,将6116的高三位A8-A10接地,所以其实际容量为256字节。6116有三个控制线:CE(片选线)、OE(读线)、/WE(写线)。本实验中将OE常接地,在此情况,当CE=0、WE=0时进行写操作,CE=0、WE=1时进行读操作,其写时间与T3脉冲宽度一致。 实验时,将T3脉冲接至实验板上时序电路模块的TS3相应插针中,其它电平控制信号由“SWITCH”单元的二进制开关给出,其中SW_G为低电平有效,LDAR为高电平有效。

五、实验步骤及注意事项:

1、形成时钟脉冲信号T3,具体接线方法和操作步骤如下: (1) 将SIGNAL UNIT中的CLOCK和CK,TS3和T3用排线相连。

(2) 将SIGNAL UNIT中的两个二进制开关 “SP03”设置为“RUN”状态、“SP04”设置为“RUN”状态(当“SP03”开关设置为“RUN”状态、“SP04”开关设置为“RUN”状态时,每按动一次触动开关START,则T3的输出为连续的方波信号。当“SP03”开关设置为“STEP”状态、“SP04”开关设置为“RUN”

状态时,每按动一次触动开关START,则T3输出一个单脉冲,其脉冲宽度与连续方式相同。) 2、按图1-7连接实验线路,仔细检查无误后接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)

CLOCKCKT3SIGNALTS3接到DATA BUSCEWECEWED0...D7SWITCHMEMA0...A7接到ADDR BUSSW_GSW_GINPUTLDARLDARADDRESS

图1-7 存储器实验接线图

3、给存储器的00、01、02、03、04地址单元中分别写入数据11、22、33、44、55,具体操作步骤如下:(以向00号单元写入11为例)

首先使各个控制电平的初始状态为:SW_G=1,CE=1,WE=1,LDAR=0,CLR= l→0→1,并将CONTROL UNIT的开关SP05打在“NORM”状态,然后按下图所示步骤进行。图中方括号中的控制电平变化要按照从上到下的顺序来进行,其中T3的正脉冲是通过按动一次CONTROL UNIT的触动开关START来产生的,而WE的负脉冲则是通过让SWITCH单元的WE开关做l→0→1变化来产生的。

数据开关(00000000)打开三态门地址寄存器AR(00000000)数据开关(00010001)SW_G=0LDAR=1T3=SW_G=1LDAR=0打开三态门存储器RAM(00010001)SW_G=0CE=0WE=

4、依次读出第00、01、02、03、04号单元中的内容,在DATA BUS单元的指示灯上进行显示,观察上述各单元中的内容是否与前面写入的一致。具体操作步骤如下:(以从00号单元读出11数据为例) 其中AR的值在ADDR BUS单元的指示灯上显示,RAM相应单元的值在DATA BUS单元的指示灯上显示。

数据开关(00000000)CE=1WE=1SW_G=1LDAR=1打开三态门地址寄存器AR(00000000)存储器RAM(00010001)SW_G=0T3=SW_G=1LDAR=0CE=0

六、实验报告:

1、按实验内容进行单步读、写、连续写。着重写明各开关的状态,并按先后顺序写明操作步骤。 2、将存储器的地址和其对应的数据列表记录。

七、思考题:

1、静态存储器是靠什么存储信息?动态存储器又是靠什么存储信息的? 2、静态存储器和动态存储器的优缺点?

实验五 总线控制实验

一、实验目的:

1、理解总线的概念及其特性。 2、掌握总线传输控制特性。

二、实验内容:

1、改变输入寄存器的地址值,在输出单元的数码管上会显示出该地址下的存储器RAM的值。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

总线是多个系统部件之间进行数据传送的公共通路,是构成计算机系统的骨架。借助总线连接,计算机在系统各部件之间实现传送地址、数据和控制信息的操作。因此,所谓总线就是指能为多个功能部件服务的一组公用信息线。

总线传输实验框图如图1-8所示,它将几种不同的设备挂至总线上,有存储器、输入设备、输出设备、寄存器。这些设备都需要有三态输出控制,按照传输要求恰当有序的控制它们,就可实现总线信息传输。

数据总线 输入单元 地址寄存器 存储器 寄存器 输出单元 地址总线 图1-8 总线示意图

五、实验步骤及注意事项:

1、根据挂在总线上的几个基本部件,设计一个简单的流程: (1)输入设备将一个数写入地址寄存器。

(2)输入设备将另一个数写入到存储器的当前地址单元中。 (3)将存储器当前地址单元中的数用LED数码管显示。

2、按照图1-9实验接线图进行连线,仔细检查无误后,接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)

接到DATA BUS299_GPC_GLED_GWEOUTPUTD0...D7接到DATA BUSCEWECEWED0...D7SWITCHMEMA0...A7接到ADDR BUSSW_GSW_GINPUTLDARLDARADDRESS

图1-9总线控制实验连线图

3、具体操作步骤图示如下:

首先使各个控制电平的初始状态为:SW_G=1,CE=1,WE=1,LDAR=0,299_G(LED_G)=1,PC_G(WE)=1,CLR= l→0→1,并将CONTROL UNIT的开关SP05打在“NORM”状态,然后按下图所示步骤进行。图中方括号中的控制电平变化要按照从上到下的顺序来进行,其中LDAR的正脉冲是通过让SWITCH单元的LDAR开关做0→1→0变化来产生的,而WE和PC_G(WE)的负脉冲则是通过让SWITCH单元的WE和PC_G开关做1→0→1变化来产生的。

数据开关(00000001)打开三态门送入寄存器AR三态门数据开关11100111SW_G=0LDAR=SW_G=1SW_G=0存储器RAM11100111关闭三态门RAM内容送到LEDCE=0299_G(LED_G)=0 PC_G(WE)=CE=0WE=CE=1SW_G=1

完成上述操作后,在OUTPUT UNIT的数码管上观察结果。 六、实验报告:

1、改变寄存器的地址值,列表记录存储器的RAM值。

七、思考题:

1、什么叫总线?总线控制的方式有哪些?

实验六 微程序控制器的组成与微程序设计实验

一、实验目的:

1、掌握微程序控制器的组成原理。

2、掌握微程序的编制、写入,观察微程序的运行。 3、为整机实验打好基础。

二、实验内容:

1、编制微程序并观察其运行过程。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干

四、实验原理:

1、微程序控制电路

微程序控制器的组成见图1-13。其中控制存储器采用3片2816 E2PR0M,具有掉电保护功能。微命令寄存器18位,用两片8D触发器(74LS273)和一片4D(74LS175)触发器组成。微地址寄存器6位,用三片上升沿触发的双D触发器(74LS74)组成,它们带有清“0”端和置“1”端。在不进行判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行判别测试时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器设置为“1”状态,完成地址修改。

在该实验电路中,在CONTROL UNIT有一个编程开关SP06,它具有三种状态:WRITE(编程)、READ(校验)、RUN(运行)。当处于“编程状态”时,实验者可根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。当处于“校验状态”时,可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门74LS245,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。

2、微指令格式:微指令字长24位,其控制位顺序如下:

表1-4 微指令结构图 微程序 24 23 22 21 20 19 18 17 控制信号 S3 S2 S1 S0 M CN RD M17 16 M16 15 14 13 12 A 11 10 B 9 8 P 7 6 uA5 5 uA4 4 uA3 3 2 1 uA0 uA2 uA1 A字段 15 0 0 0 0 1 1 1 14 0 0 1 1 0 0 1 M17 0 0 1

B字段 12 0 0 0 0 1 1 1 控制信号 Y0 Y1 Y2 11 0 0 1 1 0 0 1 10 0 1 0 1 0 1 0 控制信号 RS_G RD_G RI_G 299_G ALU_G PC_G 9 0 0 0 0 1 1 1 8 0 0 1 1 0 0 1 LDRI LDDR1 LDDR2 LDIR LOAD LDAR P字段 7 0 1 0 1 0 1 0 控制信号 P1 P2 P3 P4 AR LDPC 13 0 1 0 1 0 1 0 控制信号 M16 0 1 0

1 1 Y3

地址总线ALU-GARS3S2S1S0LDARALUPC-GMEMLED-GT4LDDR1T4LDDR2PCDR2LOADLDPCCEWEWEOUTDR1数据总线R0-GR0LDR0时序微控制器WET1T2INIRLDIRSW-G

图2-l 数据通路框图

微程序 24 23 22 21 20 19 18 控制信号 S3 S2 S1 S0 M CN RD 17 16 15 14 13 A 12 11 10 B 9 8 P 7 6 uA5 5 uA4 4 uA3 3 uA2 2 1 M17 M16 uA1 uA0 表2-1 基本模型机微指令结构图

A字段 15 0 0 0 0 1 1 1 14 0 0 1 1 0 0 1 13 0 1 0 1 0 1 0 控制信号 LDRI LDDR1 LDDR2 LDIR LOAD LDAR 12 0 0 0 0 1 1 1 11 0 0 1 1 0 0 1 B字段 10 0 1 0 1 0 1 0 控制信号 RS_G ALU_G PC_G 9 0 0 0 0 1 1 1 8 0 0 1 1 0 0 1 P字段 7 0 1 0 1 0 1 0 控制信号 P1 P4 LDPC 系统涉及到的微程序流程见图2-2,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。

控制台操作为P4测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。

当全部微程序设计完毕后,应将每条微指令代码化,表2-2即为将图2-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。

0020P4WRITE(01)21PC→ARPC+124SW→BUSBUS→DR130DR1→RAMPC→ARPC+122RAM→BUSBUS→DR127DR1→LEDREAD(00)20(SWBSWA)RUN(11)2301运行01PC→ARPC+102RAM→BUSBUS→IR10P1INADDSTA12PC→ARPC+107RAM→BUSBUS→AR15R0→BUSBUS→RAMOUTJMP10SW→R011PC→ARPC+103RAM→BUSBUS→AR04RAM→BUSBUS→DR205R0→DR106DR1+DR2→R013PC→ARPC+116RAM→BUSBUS→AR17RAM→BUSBUS→DR12514PC→ARPC+126RAM→BUSBUS→PC010101DR1→LED0101

图2-2 微程序流程图

表2-2 二进制代码 微地址 S3 S2 S1 S0 M CN RD M17 M16 A B P uA5 uA4 uA3 uA2 uA1uA0 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUT UNIT)。在输入时,二进制开关数据直接经过三态门送到总线上。只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。

五、实验步骤及注意事项:

1、根据该模型机的指令系统,编写一段程序。这里给出两个参考程序。 参考程序一:

本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。设计机器指令程序如下(机器码和地址为十六进制数据)。

地址 00

内 容 00

助记符 IN

说 明

;输入开关数据→R0

01 02 03 04 05 06

20 STA [08H] 08 30 OUT [08H] 08 40 00

JMP [00H]

;R0→[08] ;地址

;[08H] →BUS ;地址 ;00H→PC ;跳转地址

参考程序二:

本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。

设计机器指令程序如下(机器码和地址为十六进制数据)。 地 址 内 容 00 01 02 03 04 05 06 07 08 0A

00 10 0A 20 0B 30 0B 40 00 01

助记符 说 明 IN ADD [0AH]

STA [0BH] OUT [0BH]

JMP [00H]

;输入开关数据→R0,采集数据

;R0+[0AH]→R0,输入数据与指定数据相加 ;地址 ;R0→[0B] ;地址

;[0BH] →BUS,输出显示 ;地址 ;00H→PC ;跳转地址 ;加数,可自定

0B ;求和结果保存在0B单元

2、按图2-3连接实验线路(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)。

3、写程序

对于本实验箱可以用两种方法来写入程序。 方法一:联机读/写程序

按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。

使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。

方法二:手动写入

(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入EPR0M芯片中,对照表2-2校验正确后就可使用。

(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:

A、 使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN” 状态。

B、拨动开关单元的总清开关CLR(1?0?1),微地址寄存器清零,程序计数器清零。然后使开关单元的SWB、SWA开关设置为“01”,按动一次控制台单元的触动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容(输入单元)置为要写入的机器指令的内容,按动两次START键后,即完成该条指令的写入。若仔细阅读WRITE的流程,就不难发现,机

2

器指令的首地址总清后为零,以后每个循环PC会自动加1。所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。

C、校验。拨动SWITCH单元的总清开关CLR(1?0?1),微地址清零。PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。

TS1TS2TS3TS4CLOCKSIGNALT1T2T3T4CKALU接到DATABUSD0..JD1.D7ALU_GS3S2S1S0MCNALU_GS3S2S1S0MCNPC_GLDARLOADLDPCPC_GLDARLOADLDPCADDRESS接到DATABUSLDDR1LDDR2LDDR1LDDR2Y1WECEWED0...D7A0...A7接到ADDRBUSI0...I7LOGSE1...SE6SE1...SE6MICROMEM参考程序一的机器指令:

$P0000 $P0120 $P0208 $P0330 $P0408 $P0540 $P0600

参考程序二的机器指令:

接到IR单元接到SWITCH单元接到DATABUSSWASWB接到LOG单元LDIRLDIRSWASWBP1P2P3P4P1P2P3P4Y0IRIRI0...I7SW_GINPUTREGD0...D7接到DATABUSR0_GRS_GY2WELED_GWELDR0LDRIOUTPUTD0...D7

图2-3 基本模型机实验接线图

$P0000 $P0110 $P020A $P0320 $P040B $P0530 $P060B $P0740 $P0800 $P0A01

微程序(以上两程序公用):

$M00018110 $M0101ED82 $M0200C048 $M0300E004 $M0400B005 $M0501A206 $M06959A01 $M0700E00D $M08001001 $M0901ED83 $M0A01ED87 $M0B01ED8E $M0C01ED96 $M0D028201 $M0E00E00F $M0F00A015 $M1001ED92 $M1101ED94 $M1200A017 $M13018001 $M14002018 $M15070A01 $M1600D181 $M17070A10 $M18068A11 4、运行程序

方法一:联机运行程序 首先使各个开关的状态为:SIGNAL UNIT中的SP03开关设置为“STEP”状态,SP04开关设置为“RUN”状态;CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN” 状态;SWITCH单元的开关SWB、SWA为“11”。

使SWITCH单元的总清开关CLR(1?0?1)清零后,程序首址为00H。通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。

方法二:手动运行程序 (1)单步运行程序

A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址清零,程序计数器清零,程序首址为00H。 C、单步运行微指令,每按动一次CONTROL UNIT的START触动开关,即单步运行一条微指令。对照微程序流程图2-2,观察微地址显示灯MA5-MA0是否和流程一致。

D、当运行结束后,可检查运行结果是否和理论值一致。如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

(2)连续运行程序

A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址及程序计数器清零,然后按动CONTROL UNIT的START触动开关,系统连续运行程序,稍后将SIGNAL UNIT中的SP04拨至“STOP”时,系统停机。 C、停机后,可检查运行结果是否正确。如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

六、实验报告:

1、将实验中观察到的数据列表记录;

七、思考题:

1、机器指令包括哪两个基本要素?微指令又包括哪两个基本要素?程序靠什么实现顺序执行?靠什么实现转移?微程序中顺序执行和转移执行依靠什么方法?

实验八 复杂模型机实验

一、实验目的:

综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。

二、实验内容:

根据复杂模型机的指令系统,编写实验程序,并运行程序,观察和记录运行结果。

三、实验仪器:

1、计算机组成原理教学实验箱 一台 2、排线 若干 3、PC机 一台

四、实验原理:

复杂模型机的数据通路框图如图2-7。根据机器指令系统要求,设计微程序流程图及确定微地址,如图2-8。

地址总线ALU-GARS3S2S1S0LDARALUPC-GMEMLED-GT4LDDR1T4LDDR2PCDR2LOADLDPCWECEOUTT4299-G74299WEDR1数据总线R0-GR0LDR0LDR1R1-GR1LDR2R2-GR2时序微控制器WET1T2INIRSW-GLDIR

图2-7 复杂模型机数据通路框图

按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。 微程序 24 23 22 21 20 19 18 控制信号 S3 S2 S1 S0 M CN RD 17 16 15 14 13 A 12 11 10 9 8 B P 7 6 5 4 3 2 1 M17 M16 uA5 uA4 uA3 uA2 uA1 uA0 A字段 15 0 0 0 0 1

B字段 12 0 0 0 0 1 11 0 0 1 1 0 10 0 1 0 1 0 控制信号 RS_G RD_G RI_G 299_G 9 0 0 0 0 1 8 0 0 1 1 0 LDRI LDDR1 LDDR2 LDIR P字段 7 0 1 0 1 0 控制信号 P1 P2 P3 P4 14 0 0 1 1 0 13 0 1 0 1 0 控制信号

1 1

0 1 1 0 LOAD LDAR 1 1 0 1 1 0 ALU_G PC_G 1 1 0 1 1 0 AR LDPC 五、实验步骤及注意事项:

1、根据复杂模型机的指令系统,编写实验程序。 实验例程如下:

本实验完全使用寄存器操作。程序首先从数据输入开关采集数据放入R0中,经循环左移两次放入R1中。然后再次从数据输入开关采集数据放入R0中,经循环右移一次与R1中的数据相加,其结果送到R1中,然后判断加法的结果是否有进位或为全零,若是就循环运行,否则,输出结果到数码管上显示。实验的机器指令程序如下:

地址 内 容 助记符 01 F0

说 明

;R0带进位左循环移位一次

00 44 IN R0 ;INPUT数据?R0,第一次采集数据(设输入数据为14H)

RLC R0, R0

02 F1 RLC R0, R1 ;第二次左移后保存到R1中 03 44 IN R0 ;输入开关数据?R0,第二次采集数据(设输入数据仍为14H) 04 E0 05 91 06 0C 07 00 08 59 09 60

以上程序的机器指令如下:

$P0044 $P01F0 $P02F1 $P0344 $P04E0 $P0591 $P060C $P0700 $P0859 $P0960

微程序

$M00018108 $M0101ED82 $M0200C050 $M0300A004 $M0400E0A0 $M0500E006 $M0600A007 $M0700E0A0 $M0801ED8A $M0901ED8C $M0A00A03B $M0B018001 $M0C00203C $M0D00A00E $M0E01B60F $M0F95EA25 $M1001ED83 $M1101ED85 $M1201ED8D $M1301EDA6 $M14001001 $M15030401 $M16018016 $M173D9A01 $M18019201 $M1901A22A $M1A01B22C $M1B01A232 $M1C01A233 $M1D01A236 $M1E318237 $M1F318239 $M20009001 $M21028401 $M2205DB81 $M230180E4 $M24018001 $M2595AAA0 $M2600A027 $M2701BC28 $M2895EA29 $M2995AAA0 $M2A01B42B $M2B959B41 $M2C01A42D

RRC R0, R0 ADC R0, R1 BZC 00 OUT R1 HALT

;R0带进位右循环移位一次 ;两数据相加

;若有进位或结果为零,则跳到00地址单元 ;R1? OUTPUT UNIT 显示; ;停机

$M2D05AB6E $M2E0DAA2F $M2F01AA30 $M300D8171 $M31959B41 $M32019A01 $M3301B435 $M3405DB81 $M35B99B41 $M360D9A01 $M37298838 $M38019801 $M3919883A $M3A019801 $M3B070A08

$M3C068A09

2、按图2-9连接实验线路,仔细检查线路无误后接通电源。(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一 一对应,可用彩排线的颜色来进行区分。 本次实验中连线工作量较大,务必仔细,仔细检查接线是否正确,以免信号线接错导致控制出错,影响实验的进度。)

(1)先将机器指令对应的微代码正确地写入28C16中,可以参照实验1.7微程序控制器的组成与微程序设计实验中微代码的写入方法,将本实验对应的微代码写入E2PR0M芯片中,对照前面的微程序内容校验正确后就可使用。

(2)使用控制台WRITE和READ微程序进行机器指令程序的手动装入和检查,其操作如下: A、使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROL UNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN” 状态。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址寄存器清零,程序计数器清零。然后使SWITCH单元的SWB、SWA开关设置为“01”,按动一次CONTROL UNIT的触动开关START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。

C、校验。拨动SWITCH单元的总清开关CLR(1?0?1),微地址清零。PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“001000”,再按START,微地址灯显示为“001010”,第三次按START,微地址灯显示为“111011”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。

3、写程序

对于本实验箱可以用两种方法来写入程序。 方法一:联机读/写程序

按照规定格式,将机器指令及微指令编辑成十六进制的规定格式文件,已经在前面列出。 使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。本实验参考程序对应的文件名为“复杂模型机.TXT”(联机软件的使用方法参看附录2)。

TS1TS2TS3TS4CLOCKSIGNALT1T2T3T4CKCYZII0...I7FCFZLDR0...R2_GLDR0...R2_G微程序设计实验中微代码的写入方法,将本实验对应的微代码写入E2PR0M芯片中,对照前面的微程序内容校验正确后就可使用。

(2)使用控制台WRITE和READ微程序进行机器指令程序的手动装入和检查,其操作如下: A、使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROL UNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN” 状态。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址寄存器清零,程序计数器清零。然后使SWITCH单元的SWB、SWA开关设置为“01”,按动一次CONTROL UNIT的触动开关START,微地址显示灯显示

接到DATA BUS接到DATA BUS接到IR单元接到SWITCH单元接到DATA BUSSWASWBD0..JD1.D7ALU_G299_GS3S2S1S0MCNLDDR1LDDR2ARALU_G299_GS3S2S1S0MCNLDDR1LDDR2ARPC_GLDARLOADLDPCPC_GLDARLOADLDPCALUD0..JD2.D7ADDRESS接到DATA BUS接到ADDR BUSY1WECEWED0...D7A0...A7MICROSE1...SE6P1P2P3P4RS_G..LDRISE1...SE6P1P2P3P4RS_G..LDRIMEM接到LOG单元LOGSWASWBLDIRLDIRIRIRI0...I7Y0SW_GINPUT接到DATA BUSY2D0...D7LED_GWEREGWEOUTPUTD0...D7

图2-9 复杂模型机实验接线图

方法二:手动写入

(1)先将机器指令对应的微代码正确地写入28C16中,可以参照实验1.7微程序控制器的组成与

“001001”,再按动一次START,微地址灯显示“001100”,

此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。

C、校验。拨动SWITCH单元的总清开关CLR(1?0?1),微地址清零。PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“001000”,再按START,微地址灯显示为“001010”,第三次按START,微地址灯显示为“111011”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。

4、运行程序

方法一:联机运行程序

首先使各个开关的状态为:SIGNAL UNIT中的SP03开关设置为“STEP”状态。SP04开关设置为“RUN”状态;CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN” 状态;SWITCH单元的开关SWB、SWA为“11”。

使SWITCH单元的总清开关CLR(1?0?1)清零后,程序首址为00H。通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。

方法二:手动运行程序 (1)单步运行程序

A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址清零,程序计数器清零,程序首址为00H。

C、单步运行微指令,每按动一次CONTROL UNIT的START触动开关,即单步运行一条微指令。对照微程序流程图2-8,观察微地址显示灯MA5-MA0是否和流程一致。

D、当运行结束后,可检查运行结果是否和理论值一致。如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

(2)连续运行程序

A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B、拨动SWITCH单元的总清开关CLR(1?0?1),微地址及程序计数器清零,然后按动CONTROL UNIT的START触动开关,系统连续运行程序,稍后将SIGNAL UNIT中的SP04拨至“STOP”时,系统停机。

C、停机后,可检查运行结果是否正确。如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

六、实验报告:

1、将试验中观察到的数据列表记录;

七、思考题:

1、微程序控制器的设计步骤是什么? 2、微程序的工作原理是什么?

运行01PC→ARPC+102RAM→BUSBUS→IR20P100(直接)20PC→ARPC+103RAM→BUSBUS→DR104RAM→BUSBUS→AR4007RAM→BUSBUS→AR4045DR1+DR2→BUS→DR140P2LAD40RAM→BUSBUS→RDSTA41RD→BUSBUS→RAMJMP42DR1→BUSBUS→PC44010101YP364N44BZC4374DR1→RAM73DR1→LED51DR1+DR2→BUS→DR140PC→ARPC+114SW→BUSBUS→DR111PC→ARPC+112RAM→BUSBUS→DR10161DR1+DR2→BUS→RD101317DR1+DR2→BUS→AR50DR1+DR2→BUS→ARWRITE(01)P4SWBSWA01DR1→DR1RUN(11)57DR1+1→BUS→DR160DR1→DR101(间接)21PC→ARPC+105RAM→BUSBUS→AR06RAM→BUSBUS→DR110(变址)22PC→ARPC+115RAM→BUSBUS→DR116RI→DR211(相对)23PC→ARPC+146RAM→BUSBUS→DR147PC→BUSBUS→DR210560101010101010101IN24SW→BUSBUS→RDOUT25RD→LEDSTOPHALT26CLR27ALU=0→BUSBUS→RDMOV30RS→RDADC31RS→BUSBUS→DR152RD→BUSBUS→DR253DR1+DR2→BUS→RDSUC32RS→BUSBUS→DR254RD→BUSBUS→DR155DR1→DR101INC33RD→BUSBUS→DR162DR1+1→BUS→RDAND34RS→BUSBUS→DR163RD→BUSBUS→DR265DR1^DR2→BUS→RD01COM35RD→BUSBUS→DR166DR→1BUSBUS→RDRRC36RS→299RLC37RS→29967RRCRLC710070299→RD72299→RDREAD(00)01DR1→BUSBUS→PC图2-8复杂模型机微程序流程图0101

附录1模块布局图

OUTPUTUNIT输出单元LOGUNITSIGNALUNIT逻辑译码单元IRUNITREGUNITMCS51UNIT信号源单元指令寄存器单片机控制单元ALUUNIT算术逻辑运算单元寄存器单元ADDRESSUNIT程序计数器与地址寄存器CONTROLUNIT控制单元MEMUNIT存储器ADDRBUSDATABUS数据总线MICROCONTROLUNIT微控制器单元地址总线INPUTUNIT输入单元SWITCHUNIT开关单元

附录2 联机软件操作说明

1、 软件说明

1、1软件介绍

本系统软件应该运行在Win98以及Win98以上操作系统。该软件是通过PC机串行口向计算机组成原理实验箱上的89C52单片机控制单元发送控制指令,从而控制单片机直接对该实验箱执行一系列的操作,如:对程序存储器、微程序控制器的读写以及单步微指令、单步机器指令和程序的连续运行等操作。在使用本软件之前,用户应该将本实验系统配套的串行通讯电缆分别插在该实验箱以及PC机的串口上,这样才可以实现PC机与单片机之间的串口通讯。

1、2软件安装

若要安装本软件,首先双击联机软件“SETUP”文件夹下的“SETUP”图标,进入安装程序,然后按照安装向导的提示来操作,就可完成联机软件的安装。这时在开始菜单的程序列表中会出现PC组成原理文件夹,如有必要可将快捷方式发送到桌面上,运行软件时只需双击该快捷方式即可。

2 、使用说明

2、1 联机

先将将本实验系统配套的串行通讯电缆分别插在该实验箱以及PC机的串口上,打开实验箱的电源,然后打开PC机运行该软件。

进入系统之前该软件将会自动检测串口,先检测COM1,然后是COM2,如果联机成功,则进入系统,系统主界面如2-1所示:

图 2-1 软件主窗口

若联机不成功,点击“操作”菜单下的子菜单“检测串口”进入联机操作画面,如图2-2所示,打开该操作界面上的下拉菜单有三个选项:Auto,COM1,COM2。

Auto方式就是自动检测串口,先检测COM1,然后是COM2。COM1和COM2方式只检测选中的串口。

图 2-2 检测串口窗口

2、2 文本编辑

● 新建/打开(Ctrl+N/Ctrl+O) 点击主菜单上的[文件]/[新建](或者[文件]/[打开]),便可以打开一个空白文档或者已经存在的文档,对机器指令及微指令进行编辑,文件格式如下:

机器指令 $P╳╳╳╳

微指令 $M╳╳╳╳╳╳╳╳ (注意:字母一律采用大写)

● 剪切(Ctrl+X): 要剪切文本以便可以将它移动到其它位置,请选定文本,然后单击主菜单上的[编辑]/[剪切](或者工具栏上的剪切按钮)。

● 复制(Ctrl+C): 要复制文本以便可以将它粘贴到其它位置,请选定文本,然后单击主菜单上的[编辑]/[复制] (或者工具栏上的复制按钮)。

● 粘贴(Ctrl+V): 要粘贴剪切或复制的文本,请将光标置于要粘贴文本的位置,然后单击主菜单上的[编辑]/ [粘贴] (或者工具栏上的粘贴按钮)。

● 删除(Delete):要删除文字,请先选定它,然后单击主菜单上的[编辑]/ [删除] (或者工具栏上的删除按钮)。

● 保存(Ctrl+S):点击主菜单上的[文件]/[保存](或者[文件]/[另存为]),打开文件保存对话框,将文件保存为文本文件。 2、3 程序存储器和控制存储器的读写

2、3、1 装载文件

该功能完成对程序存储器和控制存储器的写入。点击主菜单上的[操作]/[装载文件],打开文件打开对话框,选择要装入的文件,然后开始装载文件,当装载文件进度条显示“文件装载成功”,则装载完毕。 2、3、2 导出文件

该功能完成对程序存储器和控制存储器的导出。点击主菜单上的[操作]/[导出文件],弹出对话框,输入要读取的地址范围,便可以将该地址范围的内容读出来,还可以对读出的内容进行编辑。

2、3、3 读/写程序存储器

点击主菜单上的[操作]/[读写程序存储器],弹出一对话框显示00地址单元的内容,如图2-3所示,可以点击地址文本框旁边的上下按钮来浏览相邻地址单元的内容,或者

图 2-3 读写程序存储器对话框

直接在地址文本框中输入地址浏览相应地址单元的内容。若需要修改,则直接在内容文本框中输入要修改的数据,然后点击对话框上的修改按钮就可以修改相应地址单元的内容。

2、3、4 读/写微程序控制器

点击主菜单上的[操作]/[读写微程序控制器],弹出一对话框显示00地址单元的内容,如图2-4所示,可以点击地址文本框旁边的上下按钮来浏览相邻地址单元的内容,或者直接在地址文本框中输入地址浏览相应地址单元的内容。若需要修改,则直接在内容文本框中输入要修改的数据,然后点击对话框上的修改按钮就可以修改相应地址单元

的内容。

图 2-4 读写微程序控制器对话框

2、4 调试(F1)

点击主菜单上的[操作]/[调试]进入调试界面,如图2-5所示。每执行一条微指令,该软件会根据指令的执行过程在调试图上画出相应的数据流图,用户可以很直观地观察到微指令执行的流程。

图 2-5 调试界面

● 设置图形显示比例 选择比例选择下拉菜单中的比例,来改变图形显示的比例。 ● StepM(F2):单步微指令。每次按动一次StepM按钮(或者F2),就单步执行一条微指令,同时显示数据流图。

● StepP(F3):单步机器指令。每次按动一次StepP按钮(或者F3),就单步执行一条机器指令,一条机器指令对应着若干条微指令。每执行一条微指令的同时显示数据流图。

● Run(F9):连续运行。每次按动一次Run按钮(或者F9),系统开始连续运行程序,同时显示数据流图。

● Stop(Ctrl+S):停止运行。该功能只有在程序进行单步机器指令和连续运行时才有效,按动该按钮可以停止程序的运行。但是只有一条微指令执行完成后,此命令才生效。

2、5 逻辑示波器

点击主菜单上的[操作]/[逻辑示波器]/[开始示波],弹出波形设置对话框如图2-6所示。通过该对话框可以设置波形的采样频率,以及同步信号。测量时只需将逻辑示波器单元的相应表笔接至相应的待测信号。图中每个通道的若选择“高”表明检测到高电平开始采样,选择“低”表示检测到低电平开始采样,选择“无效”表明不加判断立即开始采样,每个通道选择的组合即为采样开始的同步信号,只有满足条件时,示波器才有波形显示。

● 放大波形(Ctrl+E):点击主菜单上的[操作]/[逻辑示波器]/[缩放]/[放大](或者Ctrl+E),可以放大波形。 ● 缩小波形(Ctrl+L):点击主菜单上的[操作]/[逻辑示波器]/[缩放]/[缩小](或者Ctrl+L),可以缩小波形。

● 移动波形:拖动示波图下面的水平滚动条可以左右移动波形。

● 显示波形间隔:点击波形上任意两点,可以在示波图的左上脚显示时间间隔。 ● 重新获取波形:点击主菜单上的[操作]/[逻辑示波器]/[重新获取波形],可以重新采样并显示波形。

图2-6 波形设置对话框

本文来源:https://www.bwwdw.com/article/ojia.html

Top