微程序控制器实验Word格式文档下载.docx
《微程序控制器实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微程序控制器实验Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
3.设计并修改电路,编写用微程序实现存储器中两个单字节十六进制数的加法运算,结果输出至0U单元。
三、项目要求及分析:
要求:
操作数由IN单元输入至MEM在由ME中读出操作数并在ALL中运算。
四、具体实现:
1.按图1-3-10所示连接实验线路,仔细查线无误后接通电源。
如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。
图1-3-10实验接线图
2.对微控器进行读写操作,分两种情况:
手动读写和联机读写。
1)手动读写
进行手动读或是写,都需要手动给出地址,系统专门安排了一个ADDF单元,做为
地址输入。
ADDF单元原理如图1-3-11所示,可以看出本单元实为一个加减计数器。
当开关为’加1'
档时,在T2的下沿计数器进行加1计数,当开关为’减1'
档时,在T2的下沿计数器进行减1计数,当开关置为‘置数’档时,计数器置初值,其作用相当于直通,SA7-SA0的输出值就是二进制开关组的值。
在实验中选择什么档位,取决于写入数据的地址是否连续,如果是连续地址,选择
'
加1'
或是’减1'
档会方便一些。
如果是离散地址,选择‘置数’档会方便一些。
控制
开关
aat^
SA7...SAO
8位二进制开关
图1-3-11ADDR单元原理图
(1)手动对微控器进行编程(写)
1按图1-3-12接好线(部分实验接线被改变,手动读写微控器完成后应予恢复)
图1-3-12手动读写微控器接线图
2将MC单元编程开关置为‘编程’档,时序单元状态开关置为‘单步’档,ADDR
单元状态开关置为‘置数’档
3使用ADDR单元的低6位SA5-SA0给出微地址MA5…MA0微地址可以通过MC单元的MA5…MA0微地址灯显示。
4CON单元SD27-SD20SD17-SD10SD07-SD00开关上置24位微代码,待写入值由MC单元的M23…M0二十四位LED灯显示。
5启动时序电路(按动一次TS按钮),即将微代码写入到EPROM2816的相应地址对应的单元中。
6重复③、④、⑤三步,将表1-3-2的微代码写入2816芯片中。
(2)手动对微控器进行校验(读)
1接线方法和编程一样。
2将MC单元编程开关置为‘校验’档,时序单元状态开关置为‘单步’档,ADDR单元状态开关置为‘置数’档。
3使用ADDR单元的低6位SA5-SA0给出微地址MA5…MA0微地址可以通过MC单
元的MA5…MA0微地址灯显示。
相应地址单元的数据将会被读出,并在MC单元的
M23…M0
二十四位LED灯显示。
重复本步,检查2816芯片中相应地址单元的数据是否和表1-3-2中的二进制数据相同,如果不同,则说明写入操作失败,应重新写入。
2)联机读写
(1)将微程序写入文件
联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT为后缀的文件中,微程序的格式如下:
注意,$MXXXXXXX之间间隔必须为四个空格,不能用TAB键
微指令格式说明:
SMXXXXXXXX
微指令代码十六进制地址
微抬令标志
如$M1F112233,表示微指令的地址为仆H微指令值为11H(高)、22H(中)、33H(低),本次实验的微程序如下,其中分号’;
’为注释符,分号后面的内容在下载时将被忽略掉。
***************************************
;
//
微控器实验指令文件//
//****************************************//;
//*******StartOfMicroControllerData********//
$M00000001
;
NOP
$M01007070
CON(INS)->
IR,P<
1>
$M04002405
R0->
B
$M0504B201
A加B->
R0
$M30001404
A
$M32183001
IN->
$M33280401
OUT
$M35000035
//*******EndOfMicroControllerData********//
(2)写入微程序
用联机软件的“【转储】—【装载】”功能将该格式(*.TXT)文件装载入实验系统。
装入过程中,在软件的输出区的‘结果'
栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。
(3)校验微程序选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示。
检查微控器相应地址单元的数据是否和表1-3-2中的十六进制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令,先用鼠标左键单击指令区的‘微存'
TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。
3.运行微程序
运行时也分两种情况:
本机运行和联机运行。
1)本机运行
1将MC单元的编程开关置为’运行’档,MEM单元的编程开关也置为’运行’档,按动CON单元的CLR按钮,将微地址寄存器(MAR清零,同时也将指令寄存器(IR)、ALL单元的暂存器A和暂存器B清零。
2将时序单元的状态开关置为‘单拍'
档,然后按动TS按钮,体会系统在T1和T2节拍中各做的工作。
T1节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;
T2节拍根据T1节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。
3按动CON单元的CLR按钮,清零微地址寄存器(MAR等,并将时序单元的状态开
关置为‘单步'
档。
4置IN单元数据为,按动TS按钮,当MC单元后续微地址显示为000001时,在CON单元的SD27-SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001时,说明当前指令已执行完;
在CON单元的SD27-SD20给出ADD指令,该指令将会在下个T2被打入指令寄存器(IR),它将R0中的数据和其自身相加后送R0;
接下来在CON单元的SD27-SD20给出OUT指令00110000并继续单步执行,在MC单元后续微地址显示为000001时,观查OUT单元的显示值是否为。
2)联机运行联机运行时,进入软件界面,在菜单上选择【实验】-【微控器实验】,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图1-3-8所示。
将MC单元的编程开关置为‘运行’档,MEM单元的编程开关也置为‘运行’档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR为000001时,置CON单元SD27-SD20,产生相应的机器指令,该指令将会在下个T2被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。
仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。
也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。
按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确
思考题:
1画出指令系统修改后微程序流程图
2.编写微程序,指令如下:
$M00000001;
$M01007070;
IR,P<
$M30186004;
AR
$M04103005;
MEM->
$M05001406;
$M06186007;
$M07103008;
$M08002409;
RO->
$M0904B201;
A+B->
$M3218600A;
$M0A18300B;
IN->
$M0B200401;
MEM
$M35000035;
$M33280401;
3.机器指令验证程序
$P0000
$P0110
$P0220
$P03FF
$P04FF
$P05DF
$P06FF
$P07FF
$P08BF
$P09FF
$P0A5F
$P0BFF
$P0CFF
$P0DFF
$P0EFF
$P0FFF
$P1010
4.联机装入调试
五、调试运行结果:
我们所给ME中数据为00100011,R0中数据为00100011,最终结果正确,为
01000110。
六、所遇问题及解决方法:
1.连线中出现问题,通过请教老师、同学得以解决。
2.实验中,实验箱接触不良,通过排查解决。
3.对实验中所用软件不是十分熟悉,通过请教同学才得以解决。
七、实验总结:
1.通过本次实验我掌握了微程序控制器的功能、组成知识,掌握了指令格式和各字
段功能,掌握了微程序的编制、写入、观察微程序的运行,学习了基本指令的执行流程。
2.通过实验,我对控制器有了更为深刻的认识,加深了其工作中数据流的去向认识。
3.做实验前应该适当预习一下,这样子会知其所以然,顺利很多,同时,做实验需要持之以恒的恒心、信心与耐心,一定要认真、细心,特别微小的错误都有可能导致实验的失败,并且必须弄清楚每一步实验的原理和所需要的知识点。
4.遇到问题,要寻找解决问题的方法,做事情一定要懂原理才行,这样才可以有速度完成实验。
八、建议:
1.实验之前尽可能带领我们熟悉本次试验的基本流程,不仅仅是理论知识的讲解;
2.实验之前向大家讲解本次试验的注意事项,以免我们犯不必要的错误;
3.如果可能,尽量带领我们熟悉实验操作,避免我们做实验时不知如何下手。