您的当前位置:首页实验的五微控制器实验的

实验的五微控制器实验的

2022-11-29 来源:小侦探旅游网
实验五微控制器实验

一、 实验目的

1. 掌握微程序控制器的工作原理。

2. 定义五条机器指令,并为其编制相应的微程序,掌握微程序的编制、写入 的方法,观察微程序的运行,理解指令的执行流程。 二、 实验设备

1 、TDN-CM+计算机组成原理教学实验系统一台 2、排线若干 三、 实验内容 1.实验原理

在前面四个实验中,所有的控制信号是人为用开关单元产生的, 但是在实际 的CPU中,所有的控制信号都是由CPU自动产生的。所以在本次实验中用微程序 来控制,自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数 据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令 执行结束的一个指令周期全部由微指令组成的序列来完成, 一段微程序。

本实验设计了五条机器指令,其指令格式如下: 助记符 IN

机器指令码 00000000

说明

;输入,“INPUT 设备中的开关状态— R0

即一条机器指令对应

ADD addr 00010000 XXXXXXXX 二进制加法,R0+[ add门—R0 STA addr

OUT addr JMP addr

00100000 XXXXXXX;存数,R0^[ addr ] 00110000 XXXXXXX;输出,[add门—BUS 01000000 XXXXXXX;无条件转移,addr—PC

机器指令码的前4位为操作码。其中IN为单字长,其余为双字长指令, XXXXXXX为addr对应的二进制地址码。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还 必须设计三个控制台操作微程序。

存储器读操作(READ:拨动总清开关CLR后,控制台开关SWBSWA为“ 00” 时,

按START微动开关,可对RAM!续手动读操作。

存储器写操作(WRITE:拨动总清开关CLR后,控制台开关SWB SWA设置 为“01”时,按START微动开关可对RAM1行连续手动写入。

启动程序(RUN:拨动总清开关CLR后,控制台开关SWBSWA设置为“11” 时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。

上述三条控制台指令用两个开关 SWB SWA勺状态来设置,其定义如下:

SWB 0 0

SWA 0 1 1 控制台命令 读内存(READ 写内存(WRITE 启动程序运行(RUN 1 根据以上要求设计数据通路框图,如图 5-1。

WE

SW-G

图5-1数据通路框图

实验所用的时序电路内部线路已经连好 (时序电路的CLR已接到实验板中下 方的CLR清零开关上),所以只需将时序电路与方波信号源连接即可。

(1)微程序控制电路

微程序控制器中控制存储器采用 3片2816的E2PR0M具有掉电保护功能。 微命令寄存器18位,用两片8D触发器(74LS273)和一片4D (74LS175)触发

器组成。微地址寄存器6位,用三片正沿触发的双D触发器(74LS74)组成,它 们带有清“ 0”端和置“ 1”端。在不进行判别测试的情况下,T2时刻打入微地 址寄存器的内容即为下一条微指令地址。当

T4时刻进行判别测试时,转移逻辑

1”状态,完成地址

满足条件后输出的负脉冲通过强置端将某一触发器设置为“ 修改。

在该实验电路中,在控制台单元有一个编程开关,它具有三种状态: PROM

(编程)、REA(校验)、RUN(运行)。当处于“编程状态”时,实验者可根据微 地址和微指令格式将微指令二进制代码写入到控制存储器

2816中。当处于“校

验状态”时,可以对写入控制存储器中的二进制代码进行验证, 从而可以判断写 入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地 址,则可根据微程序流程图自动执行微程序。 图中微地址寄存器输出端增加了一 组三态门74LS245目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微 地址显示灯。

(2)微指令格式

微指令字长24位,其控制位顺序如表5-1所示。

其中uA5 — uA0为6位的后续微地址,A、B、C为三个译码字段,分别由三 个控制位译码出多位。C字段中的Pl 一 P4是四个测试字位。其功能是根据机器 指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序 的顺序、分支、循环运行。AR为算术运算是否影响进位及判零标志控制位,其 为零有效。B字段中的RS-B RD-B RI-B分别为源寄存器选通信号、目的寄存 器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存 器R0 R1及R2的选通译码。

表5-1 微指令结构图

微程序 控制信号 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 S3 S2 S1 SO M CN WE A9 A8 A B C 6 5 4 3 2 1 uA5 uA4 uA3 uA2 uA1 uAO A字段 B字段 15 14 13 控制信号 12 11 10 控制信号 9 8 C字段 7 控制信号

0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 LDRI LDDR1 LDDR2 LDIR LOAD LDAR 0 0 0 0 0 1 0 1 1 0 1 r 0 1 1 0 1 0 1 0 1 0 RS B RD B RI B 299 B ALU B PC B 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 P1 P2 P3 P4 AR LDPC A9 0 0 1 1 A8 0 1 0 1 控制信号 Y0 Y1 Y2 Y3 系统涉及到的微程序流程见图5-2,当拟定“取指令”微指令时,该微指令 的判别测试字段为P1测试。由于“取指令”微指令是所有微程序都使用的公用 微指令,因此P1的测试结果出现多路分支。本机用指令寄存器的高

4位(IR7

—IR4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。

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

当全部微程序设计完毕后,应将每条微指令代码化,表

5-2即为将图5-2

的微程序流程图按微指令格式转化而成的“二进制微代码表”。

微地址 S3 S2 S1 S0 M CN 表5-2 二进制代码表

WE A9 A8 A B C 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 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 10 0 10 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 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 0 0 0 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 1 0 0 0 1 1 1 0 1 0 1 1 [ 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 [ 1 0 I 1 0 1 1 : 1 1 I 1 0 1 1 1 0 I 0 1 0 0 1 1 I 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 ' 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1. 0 0 110 1; 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1110 0 10 110 0 0 0 0 0 1 0 0 1 1 1 1 1 0 10 10 1 0 10 0 10 0 10 10 0 0 10 111 0 0 0 0 0 1: 0 110 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 ' 运行

F

图5-2微程序流程图

(3) 本实验设计机器指令程序如下(机器码和地址为十六进制数据)

地址 内容 助记符 说明

00

00 IN

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

01

01 02 03 04 05 06 07 08 0A

10

ADD [0AH] ;R0+ [0AH] - R0,输入数据与指定数据相加

;地址

STA [0BH] ;R(— [0B]

0A 20 0B 30

;地址

OUT [0BH] ;[0BH] — BUS输出显示

;地址

JMP [00H] ;00FRPC

0B 40 00

;跳转地址 ;加数,可自定

01

0B

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

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

(1) 按图5-3连接实验线路,仔细检查无误后接通电源。 (2) 观察微程序控制器的工作原理:

① 编程 A、

将控制台单元的编程开关设置为 PROM编程)状态。

B、 将实验板上“信号源单元”中的“ STEP设置为“ STEP,“STOP设置 为“ RUN状态。SWITCH UNIT的开关CLR置为高电平。

C、 用开关单元的二进制模拟开关设置微地址 MA— MA0

D在微控制器单元的开关 MK2— MK01上设置微代码,24位开关对应24位 显示灯,开关量为“ 0”时灯亮,开关量为“1”时灯灭。

E、 启动时序电路(按动控制台单元 的“ START触动开关),即将微代码 写入到WPR0M 2816勺相应地址对应的单元中。

F、 重复C- E步骤,将表5-2的微代码写入2816。 ② 校验

A、 将控制台单元的编程开关设置为 READ(校验)状态。

B、 将实验板“信号源单元”中的“STEP开关设置为“STEP状态,“STOP

开关设置为“ RUN状态。

C、用开关单元的二进制开关设置要检验的微地址 MA— MAQ

D 按动控制台单元的“ START触动开关,启动时序电路,读出微代码, 观察微控制器单元的显示灯 MD2牛MD01的状态(灯亮为“ 0”,灭为“ 1”),检查 读出的微代码是否与写入的相同。如果不同,则将开关置于“ 重新执行(1)即可。

③ 单步运行

A、 将控制台单元的编程开关STOPS于“ RUN(运行)”状态。

B、 将实验板“信号源单元”中的“STEP开关设置为“STEP状态,“STOP 开关设置为“ RUN状态。

C、 操作开关单元的CLR开关,使CLR信号状态依次为1-0-1,将微地址 寄存器MA5-MA0青零,从而明确本机的运行入口微地址为 000000 (二进制)。

D 按动控制台单元的“ START触动开关,启动时序电路,则每按动一次 “START键,读出一条微指令后停机,此时实验台上的微地址显示灯和微命令 显示灯将显示所读出的一条指令。

注:在当前条件下,可将“MICRO-CONTROLLER元的SE6-SE1接至“SWITCH UNIT'单元中的S3-Cn对应二进制开关上,可通过强置端 SE6-SE1人为设置分 支地址。首先将SE6-SE1对应二进制开关设置为“ 1”,当需要人为设置分支地 址时,将需要改变的某个或几个二进制开关设置 “0”,相应的微地址位即被强置 为“1”,从而改变下一条微指令的地址。(二进制开关设置为“ 0”,相应的微地 址位将被强置为“1”)。

④ 连续运行

A、将编程开关“ STOP开关设置为“ RUN(运行)”状态。 B将实验板“信号源单元”中的“ STEP开关设置为“ EXEC状态。

C、使CLR信号状态依次为1-0-1,将微地址寄存器 MA5-MA清零,从而 给出取指微指令的入口微地址为 000000 (二进制)。

D启动时序电路,则可连续读出微程序。

PROM编程状态,

因篇幅问题不能全部显示,请点此查看更多更全内容