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所示: