资源描述
淮海工学院
计算机工程学院
实验报告书
课程名 《计算机组成原理》
题 目: 微控制器实验
班 级: *****
学 号: *********
姓 名: ******
一、实验目的
1、掌握时序信号发生电路组成原理。
2、掌握微程序控制器的设计思想和组成原理。
3、掌握微程序的编制、写入,观察微程序的运行。
二、实验原理
实验所用的时序电路原理如图2.6.1所示,可产生4个等间隔的时序信号TS1~TS4 ,其中SP为时钟信号,由实验机上时钟源提供,可产生频率及脉宽可调的方波信号。学生可根据实验要求自行选择方波信号的频率及脉宽。为了便于控制程序的运行,时序电路发生器设计了一个启停控制触发器UN1B,使TS1~TS4信号输出可控。图中“运行方式”、“运行控制”、“启动运行”三个信号分别是来自实验机上三个开关。当“运行控制”开关置为“运行”,“运行方式”开关置为“连续”时,一旦按下“启动运行”开关,运行触发器UN1B的输出QT一直处于“1”状态,因此时序信号TS1~TS4将周而复始地发送出去;当“运行控制”开关置为“运行”,“运行方式”开关置为“单步”时,一旦按下“启动运行”开关,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机。利用单步方式,每次只运行一条微指令,停机后可以观察微指令的代码和当前微指令的执行结果。另外,当实验机连续运行时,如果“运行方式”开关置“单步”位置,也会使实验机停机。
⑴ 微程序控制电路
微程序控制器的组成如图2.6.2,其中控制存储器采用3片E2PROM 2816芯片,具有掉电保护功能,微命令寄存器18位,用两片8D触发器74LS273(U23、U24)和一片4D触发器74LS175(U27)组成。微地址寄存器6位,用三片正沿触发的双D触发器74LS74(U14~U16)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
在该实验电路中设有一个编程开关,它具有三种状态:写入、读出、运行。当处于“写”状态时,学生根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。当处于“读”时,可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。当处于“运行”状态时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门(U12),目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。
⑵ 微指令格式
微指令长共24位,其控制位顺序如下:
表2.6.1 控制位顺序
24
23
22
21
20
19
18
17
16
15 14 13
12 11 10
9 8 7
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
B1
B0
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
C字段
B字段
15
14
13
选择
0
0
0
0
0
1
LDRi
0
1
0
LDDR1
0
1
1
LDDR2
1
0
0
LDIR
1
0
1
LOAD
1
1
0
LDAR
12
11
10
选择
0
0
0
0
0
1
RS-B
0
1
0
RD-B
0
1
1
RI-B
1
0
0
299-B
1
0
1
ALU-B
1
1
0
PC-B
9
8
7
选择
0
0
0
0
0
1
P(1)
0
1
0
P(2)
0
1
1
P(3)
1
0
0
P(4)
1
0
1
AR
1
1
0
LDPC
A字段
其中UA5~ UA0为6位的后续微地址,A、B、C 三个译码字段,由三组译码控制电路译码产生各控制信号。C字段中的P(1)~P(4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图2.6.3所示,图中I7~I2为指令寄存器的第7~2位输出,SE5~SE1为微控器单元微地址锁存器的强置端输出。AR为算术运算是否影响进位及判零标志控制位,低电平有效。B字段中的RSB、RDB、RIB分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码,其原理如图2.6.4,图中I0-I4为指令寄存器的第0~4位,LDRI为 打入工作寄存器信号的译码器使能控制位。
三、 实验电路
1、实验接连图
① 跳线器J20、J21连上短路片;
② 跳线器J16上SP连H23;
③ UJ1连UJ2。
2、实验原理图
参见图2.6.1~图2.6.4。
图2.6.1 时序电路原理图
图2.6.2 微程序控制电路原理图
图2.6.3 微程序控制电路C字段部分
图2.6.4 微程序控制电路B字段部分
四、 实验步骤
⑴根据机器指令画出对应的微程序流程图,如图2.6.5所示;
⑵根据微程序流程图设计微指令,并按微指令格式转换成二进制代码,如表2.6.2所示。
表2.6.2 二进制微代码表
微地址
S3 S2 S1 S0 M CN WE B1 B0
A
B
C
UA5…UA0
0 0
0 0 0 0 0 1 0 1 1
0 0 0
0 0 0
1 0 0
0 1 0 0 0 0
0 1
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 0 0 0 1 0
0 2
0 0 0 0 0 1 0 0 1
1 0 0
0 0 0
0 0 1
0 0 1 0 0 0
0 3
0 0 0 0 0 1 0 0 1
1 1 0
0 0 0
0 0 0
0 0 0 1 0 0
0 4
0 0 0 0 0 1 0 0 1
0 1 1
0 0 0
0 0 0
0 0 0 1 0 1
0 5
0 0 0 0 0 1 0 1 1
0 1 0
0 0 1
0 0 0
0 0 0 1 1 0
0 6
1 0 0 1 0 1 0 1 1
0 0 1
1 0 1
0 0 0
0 0 0 0 0 1
0 7
0 0 0 0 0 1 0 0 1
1 1 0
0 0 0
0 0 0
0 0 1 1 0 1
0 8
0 0 0 0 0 1 0 0 0
0 0 1
0 0 0
0 0 0
0 0 0 0 0 1
0 9
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 0 0 0 1 1
0 A
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 0 0 1 1 1
0 B
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 0 1 1 1 0
0 C
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 1 0 1 1 0
0 D
0 0 0 0 0 1 0 0 1
0 0 0
0 0 1
0 0 0
0 0 0 0 0 1
0 E
0 0 0 0 0 1 0 0 1
1 1 0
0 0 0
0 0 0
0 0 1 1 1 1
0 F
0 0 0 0 0 1 0 0 1
0 1 0
0 0 0
0 0 0
0 1 0 1 0 1
1 0
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 1 0 0 1 0
1 1
0 0 0 0 0 1 0 1 1
1 1 0
1 1 0
1 1 0
0 1 0 1 0 0
1 2
0 0 0 0 0 1 0 0 1
0 1 0
0 0 0
0 0 0
0 1 0 1 1 1
1 3
0 0 0 0 0 1 0 1 1
0 0 0
0 0 0
0 0 0
0 0 0 0 0 1
1 4
0 0 0 0 0 1 0 0 0
0 1 0
0 0 0
0 0 0
0 1 1 0 0 0
1 5
0 0 0 0 0 1 1 1 0
0 0 0
1 0 1
0 0 0
0 0 0 0 0 1
1 6
0 0 0 0 0 1 0 0 1
1 0 1
0 0 0
1 1 0
0 0 0 0 0 1
1 7
0 0 0 0 0 1 1 1 0
0 0 0
1 0 1
0 0 0
0 1 0 0 0 0
1 8
0 0 0 0 0 1 1 0 1
0 0 0
1 0 1
0 0 0
0 1 0 0 0 1
⑶连接实验线路,仔细查线无误后接通电源。
⑷观测时序信号
用双踪示波器(或用PC示波器功能)观察方波信号源的输出。方法如下:将“运行控制”开关置为“运行”、“运行方式”开关置为“连续”。按动“启动运行”开关,从示波器上可观察到TS1(J20)、TS2(J21)、TS3(J22)、TS4(J23)各点的波形,比较它们的相互关系,画出其波形,并标注测量所得的脉冲宽度,如图2.6.6。
图2.6.5 微程序流程图
图2.6.6 方波信号源的时序图
⑸进一步了解微程序控制器的工作原理
① 写微程序
A. “编程开关”置为“写入”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 用二进制模拟开关UA0~UA5置6位微地址,UA0~UA5的电平由LK0~LK5显示,高电平亮,低电平灭。
D. 用二进制模拟开关MK1~MK24置24位微代码,24位微代码由LMD1~LMD24显示灯显示,高电平亮,低电平灭。
E. 按动“启动运行”开关,启动时序电路,即可将微代码写入到E2PROM 2816的相应地址单元中。
F . 重复C-E步骤,将表3-5的微代码全部写入E2PROM 2816中。
② 读微程序
A. 将“编程开关”设置为“读”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 用二进制模拟开关UA0~UA5置6位微地址。
D. 按动“启动运行”开关,启动时序电路,读出微代码,观察显示灯LMD1~LMD24的状态,检查读出的微代码是否与写入的相同,如果不同,则将“编程开关”置为“写入”状态。重新执行①即可。
③ 单步运行
A. “编程开关”置于“运行”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 系统总清,即“总清”开关拨0→1。使微地址寄存器U14~U16清零,从而明确本机的运行入口微地址为000000(二进制)。
D. 按动“启动运行”开关,启动时序电路,则每按动一次,读出一条微指令后停机,此时实验机上的微地址显示灯和微程序显示灯将显示所读出的一条指令。注意:在当前条件下,可将6芯排座“JSE1”和“UJ2”相连,可通过强置端SE1~SE6人为设置微地址,从而改变下一条微指令的地址。设置方法如下:先将微地址开关置“1”,再将UJ1上的排线换插到“JSE1”,然后将某个或几个二进制开关置为“0”,相应的微地址位即被强置为“1”,从而改变下一条微指令的地址。
④ 连续运行
A. 将“编程开关”置为“运行”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“连续”状态。
C. 系统总清,即“总清”开关拨0→1。使微地址寄存器U14~U16清零,从而明确本机的运行入口微地址为000000(二进制)。
D. 按动“启动运行”开关,启动时序电路,则可连续读出微指令。
六、思考题
1、根据实验中所设计的微指令格式,指出哪几位是操作控制字段和顺序控制字段?微指令采用的是什么编码方式和什么后继地址形成方法?
答:操作控制字段:s3,s2,s1,s0,m,Cn即19,20,21,22,23,24。顺序控制C字段,即7,8,9。 编码方式:直接编码。后继地址:指令的操作码和和位指令的下地址字段。
2、 根据微程序流程图,写出这5条机器指令实现的功能。
答:IN(输入),ADD(二进制加法),STA(存数),OUT(输出),JMP(无条件转移)
3、 分析加法指令的微程序。
答:Ad(IR)->MAR,1->R
Ad(CMDR)->CMAR
M(MAR)->MDR
Ad(CMDR)->CMAR
(AC)+(MDR)->AC
Ad(CMDR)->CMAR
4、根据微指令格式设计一段减法指令SUB [ADDR] 的微程序,减法指令的功能是
R0 — [ADDR] → R0
答:减法微程序:019A65。
展开阅读全文