1、计算机组成原理实验指导书 - -实验九、复杂模型机的 I/O 实验一、实验目的:1. 在组成一台完整的计算机整机系统模型机的基础上,控制真实的外围接囗。2. 本实验外扩一片 8255 接囗芯片,完成基本并行囗实验。二、预习要求:1. 预习本实验的相关知识和内容。三、实验设备:EL-JY-II 型计算机组成原理实验系统一套,排线若干。四、8255 芯片引脚特性及外部连接:1 8255 芯片引脚分配如图 9-1图 9-1 8255 管脚图2CS 、A0、 A1、RD、WR 五个引脚的电平与 8255 操作关系如表 9-1 所示:A1 A0 /RD /WR /CS 操 作输入操作(读)0 0 0 1
2、 0 端囗 A 数据总线0 1 0 1 0 端囗 B 数据总线1 0 0 1 0 端囗 C 数据总线输出操作(写)0 0 1 0 0 数据总线 端囗 A0 1 1 0 0 数据总线 端囗 B1 0 1 0 0 数据总线 通道 C1 1 1 0 0 数据总线 控制字寄存器1 1 0 1 0 控制字 数据总线断开功能X X X X 1 数据总线 三态X X 1 1 0 数据总线 三态表 9-1计算机组成原理实验指导书 - -五、系统结构:模型机的结构如图 9-2 所示:图 9-2 模型机结构 图中运算器 ALU 由 U7U10 四片 74LS181 构成,暂存器 1 由 U3、U4 两片74LS2
3、73 构成,暂存器 2 由 U5、U6 两片 74LS273 构成。微控器部分控存由 U13U15三片 2816 构成。除此之外,CPU 的其它部分都由 EP1K10 集成(其原理见系统介绍部分) 。存储器部分由两片 6116 构成 16 位存储器,地址总线只有低八位有效,因而其存储计算机组成原理实验指导书 - -空间为 00HFFH。输出设备由底板上的四个 LED 数码管及其译码、驱动电路构成,当 D-G 和 W/R 均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由 16 位电平开关及两个三态缓冲芯片 74LS244 构成,当 DIJ-G 为低电平时将 16 位开关状态送
4、上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。并行 IO 扩展电路由 8255 芯片实现,实验中可将 PA 作为输入口,通过输入设备输入数据;将 PB 口作为输出口,接至底板的显示灯电路。注:本系统的数据总线为 16 位,指令、地址和程序计数器均为 8 位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低 8 位有效。六、工作原理:本实验在实验八指令集的基础上,新增两条端口读写指令。1端囗读指令助记符 指令格式IN rd,D 0100 00 rdD其中第一字节前四位为操作码,D 为端囗地址,其功能
5、是将端囗地址为 D 的端囗内容写入寄存器中。2 端囗写指令助记符 指令格式OUT D,rd 0100 11 rd D其功能是将寄存器中的内容写至以 D 为地址的端囗中。系统设计的微指令字长共 24 位,其控制位顺序如下:24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1S3 S2 S1 S0 M Cn WE 1A 1B F1 F2 F3 uA5 uA4 uA3 uA2 uA1 uA0、三个字段的编码方案如表 92: 计算机组成原理实验指导书 - -F1 字段 F2 字段 F3 字段15 14 13 选择 12 11 10
6、 选择 9 8 7 选择0 0 0 LDRi 0 0 0 RAG 0 0 0 P10 0 1 LOAD 0 0 1 ALU-G 0 0 1 AR0 1 0 LDR2 0 1 0 RCG 0 1 0 P30 1 1 自定义 0 1 1 自定义 0 1 1 自定义1 0 0 LDR1 1 0 0 RBG 1 0 0 P21 0 1 LAR 1 0 1 PC-G 1 0 1 LPC1 1 0 LDIR 1 1 0 299-G 1 1 0 P 41 1 1 无操作 1 1 1 无操作 1 1 1 无操作表 92系统涉及到的微程序流程见图 9-3(图中各方框内为微指令所执行的操作,方框外的标号为该条微指
7、令所处的八进制微地址) 。控制操作为 P4 测试,它以 CA1、CA2 作为测试条件,出现了写机器指令、读机器指令和运行机器指令 3 路分支,占用 3 个固定微地址单元。 (注:CA1、CA2 由控制总线的 E4、E5 给出。键盘操作方式时由监控程序直接对 E4、E5 赋值,无需接线。开关方式时可将 E4、E5 接至控制开关 CA1、CA2,由开关来控制。 )在机器指令的执行过程中,公用微指令对应于图 9-2 中 01、02、21 地址的微指令。21 地址为“译码”微指令,该微指令的操作为 P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前 4 位(I7-I4)作为测试条件,出现 2
8、路分支,占用 2 个固定微地址单元。如 I7I4 相同,则还需进行 P2 测试,以指令寄存器的 I3、I2 位作为测试条件,以区分不同的指令,如 MOV、JMP 指令和 IN、OUT 指令。当全部微程序流程图设计完毕后,应将每条微指令代码化,表 9-3 即为将图 9-3 的微程序流程按微指令格式转化而成的“二进制微代码表” 。控制开关00P 4 测试 MWE(10) MRD(00) RUN(11)PC AR,PC+1 11 PC AR,PC+1 10 13(D_INPUT) D_BUS LT1 14 RAM D_BUS LT1 12 01LT1 RAM 15 LT1 LED 16 计算机组成原
9、理实验指导书 - -图 9-3(a)PC-AR,PC+1RAM-D_BUS-IRP1PC-AR,PC+1 PC-AR,PC+1Drd AXDRAM-D_BUS-ARRAM-D_BUS-rdRAM-D_BUS-PC012726072402 22131 3201 P220 P22501 01 01OV(0) JP(10)IN(0) OUT(1)MOV & JMP IN & OUT图 9-3(b)七、实验参考代码:根据工作原理设计本实验参考代码如下:地址(二进制) 指令(二进制) 助记符 说 明0000 0000 0000 0100 MOV Ax,90H 置数 10010000 Ax0000 000
10、1 1001 0000 0000 0010 0100 1100 OUT 03H,Ax Ax 以 03H 为地址的端囗 0000 0011 0000 0011 (8255 控制口)0000 0100 0100 0000 IN Ax,00H 8255 的 PA 口的内容 Ax 0000 0101 0000 00000000 0110 0100 1100 OUT 01H,Ax Ax 8255 的 PB 口 0000 0111 0000 0001计算机组成原理实验指导书 - -0000 1000 0000 1000 JMP 04H 04H PC 0000 1001 0000 0100注:以上指令均为双
11、字长指令,第一字为操作码,第二字为操作数。上述所有指令的操作码均为低 8 位有效,高八位默认为 0。而操作数 8 位和 16 位均可。其中,第二条指令将 8255 置成方式 0,A 囗输入,B 囗输出。第三条指令表示从PA 口读入数据,第四条指令表示从 PB 口输出数据。本实验二进制微代码如下表所示:微地址 S3 S2 S1 S0 M CN WE 1A 1B F1 F2 F3 UA5UA000 0 0 0 0 0 0 0 0 1 111 111 110 00100001 0 0 0 0 0 0 0 0 1 101 101 101 00001002 0 0 0 0 0 0 0 1 0 110 1
12、11 111 01000107 0 0 0 0 0 0 0 1 0 101 111 111 01011010 0 0 0 0 0 0 0 0 1 101 101 101 00101011 0 0 0 0 0 0 0 0 1 101 101 101 00110012 0 0 0 0 0 0 0 1 0 100 111 111 00111013 0 0 0 0 0 0 0 0 1 111 111 111 00000114 0 0 0 0 0 0 0 0 0 100 111 111 00110115 1 1 1 1 1 1 1 1 0 111 001 111 00100116 0 0 0 0 0 1
13、 1 0 1 111 001 111 00100020 0 0 0 0 0 0 0 0 1 101 101 101 01001021 0 0 0 0 0 0 0 1 0 110 111 000 01000022 0 0 0 0 0 0 0 0 0 111 111 100 01100024 0 0 0 0 0 0 0 0 1 101 101 101 00011125 0 0 0 0 0 0 0 0 0 000 111 111 00000126 0 0 0 0 0 0 0 0 0 111 111 100 01010127 0 0 0 0 0 0 1 0 0 111 000 111 00000131
14、 0 0 0 0 0 0 0 1 0 000 111 111 00000132 0 0 0 0 0 0 0 1 0 001 111 101 000001表 9-3八、实验操作步骤:、单片机键盘操作方式实验。在进行单片机键盘控制实验时,必须把 K4 开关置于“OFF ”状态,否则系统处于自锁状态,无法进行实验。1. 实验连线:实验连线图如图 9-4 所示。连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。2、写微代码:(1) 将开关 K1K2K3K4 拨到写状态即 K1 off、K2 on、K3 off、K4 off,
15、其中K1、K2、K3 在微程序控制电路,K4 在 24 位微代码输入及显示电路上。在监控指示计算机组成原理实验指导书 - -灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES-_ _ 】输入 09或 9,按【确认】键,显示为【ES09】 ,再按下【确认】键。(2) 监控显示为【CtL1=_】 ,输入 1 显示【CtL1_1】 ,按【确认】 。(3) 监控显示【U-Addr】 ,此时输入【000000】6 位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】 ,显示这时输入微代码【00FF88 】 ,该微代码是用 6 位十六进制数来表示前面的 24 位二
16、进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】 ,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入第二条微代码地址。(4) 按照上面的方法输入表 9-4 微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左) 。八进制微地址 二进制微地址 十六进制微代码00 000000 00FF8801 000001 00DB4202 000010 016FD107 000111 015FD610 001000 00DB4A11 001001 00DB4C12 001010 014FCE13 001011 00FFC114 001100 004
17、FCD15 001101 FF73C916 001110 06F3C820 010000 00DB5221 010001 016E1022 010010 007F1824 010100 00DB4725 010101 000FC126 010110 007F1527 010111 0271C131 011001 010FC132 011010 011F41表 94 实验九微代码表3.读微代码及校验微代码:(1) 先将开关 K1K2K3K4 拨到读状态即 K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【 CLASS SELECt】状态
18、。计算机组成原理实验指导书 - -(2) 按【实验选择】键,显示【ES-_ _ 】输入 09 或 9,按【确认】键,显示【ES09】 。按【确认】键。(3) 监控显示【CtL1=_】时,输入 2,按【确认】显示 【U_Addr】 ,此时输入 6 位二进制微地址,进入读代码状态。再按【确认】显示【PULSE】 ,此时按【单步】键,微地址指示灯显示输入的微地址,同时微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。(4)此时监控显示【U_Addr】 ,按上述步骤对照表 9-4 检查微代码是否有错误,如有错误,可按步骤 2 重新输入微代码。4、写机器指令(1) 先将 K1K2K3K
19、4 拨到运行状态即 K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【 CLASS SELECt】状态。(2) 按【实验选择】键,显示【ES-_ _ 】输入 09 或 9,按【确认】键,显示【ES09】 ,再按【确认】 。(3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示 【CtL2=_ 】 ,输入 1 显示【CtL2_1】表示进入对机器指令操作状态,此时拨动 CLR 清零开关(在控制开关电路上,注意对应的 JUI 应短接)对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭。如不清零则会影响机器指令的输入!
20、确定清零后,按【确认】。(4) 监控显示闪烁的【PULSE】 ,按【单步】键,微地址显示灯显示“001001”时,再按【单步】 ,微地址显示灯显示“001100” ,地址指示灯显示“00000000” ,此时按【确认】键,监控指示灯显示【data】 ,提示输入机器指令“04”或“0004” (两位或四位十六进制数),输入后按【确认】 ,显示【PULSE】 ,再按【单步】 ,微地址显示灯显示“001101”,数据总线显示灯显示“0000000000000100” ,即输入的机器指令。(5) 再连续按【单步】 ,当微地址显示灯再次显示“001100”时,按【确认】输入第二条机器指令。依此规律逐条输
21、入表 95 的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。注意,每当微地址显示灯显示 “001100”时,地址指示灯自动加 1 显示。如输入指令为 8 位,则高 8 位自动变为 0。计算机组成原理实验指导书 - -地址(十六进制) 机器指令(十六进制)00 000401 009002 004C03 000304 004005 000006 004C07 000108 000809 0004表 94 实验九机器指令表5.读机器指令及校验机器指令:在监控指示灯显示【CtL2=_】状态下,输入 2,显示【CtL2_2】 ,表示进入读机器指令状态,按步骤 4 的方法拨动 C
22、LR 开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】 ,连续按【单步】键,微地址显示灯从“000000”开始,然后按“001000” 、 “001010” 、 “001110”方式循环显示。只有当微地址灯显示为“001110”时,数据总线指示灯上显示的为写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。注意:机器指令存放在 RAM 里,掉电丢失,故断电后需重新输入。6.运行程序在监控指示灯显示【CtL2=_】状态下,输入 3,显示【CtL2_3】 ,表示进入运行机器指令状态,按步骤 4 的方法拨动 CLR 开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【run CodE】 ,表示运行程序,可以【单步】运行也可以【全速】运行程序,观察实验运行结果。7.运行结果 在全速运行时显示灯电路的显示结果与数据输入电路的后四位一致。改变数据输入电路的后四位,显示结果也随之变化。、采用开关控制操作方式进行实验计算机组成原理实验指导书 - -读者可参考前述实验自行思考用开关方式的接线和实验过程。