1、3.设计并修改电路,编写用微程序实现存储器中两个单字节十六进制数的加法运 算,结果输出至0U单元。三、 项目要求及分析:要求:操作数由IN单元输入至MEM在由ME中读出操作数并在ALL中运算。四、具体实现:1.按图1-3-10所示连接实验线路,仔细查线无误后接通电源。如果有滴报警 声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。图1-3-10实验接线图2.对微控器进行读写操作,分两种情况:手动读写和联机读写。1)手动读写进行手动读或是写,都需要手动给出地址,系统专门安排了一个 ADDF单元,做为地址输入。ADDF单元原理如图1-3-11所示,可以看出本单元实为一个加减计数器。当 开
2、关为加1档时,在T2的下沿计数器进行加1计数,当开关为减1档时,在T2的 下沿计数器进行减1计数,当开关置为置数档时,计数器置初值,其作用相当于直 通,SA7-SA0的输出值就是二进制开关组的值。在实验中选择什么档位,取决于写入数据的地址是否连续,如果是连续地址,选择加1或是减1档会方便一些。如果是离散地址,选择置数档会方便一些。控制开关aatSA7 . . SAO8位二进制开关图1-3-11 ADDR单元原理图(1)手动对微控器进行编程(写)1按图1-3-12接好线(部分实验接线被改变,手动读写微控器完成后应予恢复)图1-3-12手动读写微控器接线图2将MC单元编程开关置为编程档,时序单元状
3、态开关置为单步档, ADDR单元状态开关置为置数档3使用ADDR单元的低6位SA5-SA0给出微地址MA5MA0微地址可以通过MC单 元的MA5MA0微地址灯显示。4CON单元SD27- SD20 SD17- SD10 SD07- SD00开关上置24位微代码,待写 入值由MC单元的M23M0二十四位LED灯显示。5启动时序电路(按动一次TS按钮),即将微代码写入到E PROM 2816的相应地 址对应的单元中。6重复、三步,将表1-3-2的微代码写入2816芯片中。(2)手动对微控器进行校验(读)1接线方法和编程一样。2将MC单元编程开关置为校验档,时序单元状态开关置为单步档, ADDR 单
4、元状态开关置为置数档。3使用ADDR单元的低6位SA5- SA0给出微地址MA5MA0微地址可以通过MC单元的MA5MA0微地址灯显示。相应地址单元的数据将会被读出,并在 MC单元的M23M0二十四位LED灯显示。重复本步,检查2816芯片中相应地址单元的数据是否和表 1-3-2中的二进制数据相同,如果不同,则说明写入操作失败,应重新写入。2)联机读写(1)将微程序写入文件联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格 式写入到以TXT为后缀的文件中,微程序的格式如下:注意,$M XX XXXXX之间间隔必须为四个空格,不能用 TAB键微指令格式说明:SM XX XX
5、XXXX微指令代码 十六进制地址 微抬令标志如$M 1F 112233,表示微指令的地址为 仆H微指令值为11H (高)、22H (中)、 33H (低),本次实验的微程序如下,其中分号;为注释符,分号后面的内容在下载 时将被忽略掉。*;/微控器实验指令文件 / /* / ;/* Start Of MicroController Data */$M 00 000001; NOP$M 01 007070 CON(INS)-IR, P$M 04 002405 R0-B$M 05 04B201 A 加 B-R0$M 30 001404A$M 32 183001 IN-$M 33 280401OUT$
6、M 35 000035/* End Of MicroController Data * /(2) 写入微程序用联机软件的“【转储】【装载】”功能将该格式( *.TXT )文件装载入实验系 统。装入过程中,在软件的输出区的结果栏会显示装载信息,如当前正在装载的是 机器指令还是微指令,还剩多少条指令等。(3)校验微程序 选择联机软件的“【转储】【刷新指令区】”可以读出下位机所有的机器指令和 微指令,并在指令区显示。检查微控器相应地址单元的数据是否和表 1-3-2 中的十六进 制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修 改某个单元的微指令,先用鼠标左键单击指令区的微
7、存 TAB 按钮,然后再单击需修 改单元的数据,此时该单元变为编辑框,输入 6 位数据并回车,编辑框消失,并以红色 显示写入的数据。3.运行微程序运行时也分两种情况:本机运行和联机运行。1) 本机运行1将MC单元的编程开关置为运行档,MEM单元的编程开关也置为运行档, 按动CON单元的CLR按钮,将微地址寄存器(MAR清零,同时也将指令寄存器(IR)、 ALL单元的暂存器A和暂存器B清零。2将时序单元的状态开关置为单拍档,然后按动 TS 按钮,体会系统在 T1 和 T2 节拍中各做的工作。 T1 节拍微控器将后续微地址(下条执行的微指令的地址)打入 微地址寄存器, 当前微指令打入微指令寄存器,
8、 并产生执行部件相应的控制信号; T2 节 拍根据 T1 节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器 指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微 程序的分支。3按动CON单元的CLR按钮,清零微地址寄存器(MAR等,并将时序单元的状态 开关置为单步档。4置IN单元数据为,按动TS按钮,当MC单元后续微地址显示为000001时,在 CON单元的SD27-SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微 地址显示为000001时,说明当前指令已执行完;在CON单元的SD27-SD20给出ADD指 令,该指令将会在下个
9、T2被打入指令寄存器(IR),它将R0中的数据和其自身相加后 送R0;接下来在CON单元的SD27- SD20给出OUT指令00110000并继续单步执行,在MC 单元后续微地址显示为000001时,观查OUT单元的显示值是否为。2) 联机运行 联机运行时,进入软件界面,在菜单上选择【实验】【微控器实验】,打开本实 验的数据通路图, 也可以通过工具栏上的下拉框打开数据通路图, 数据通路图如图 1-3-8 所示。将MC单元的编程开关置为运行档, MEM单元的编程开关也置为运行档, 按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的 MAR 为000001时,置CON单元S
10、D27- SD20,产生相应的机器指令,该指令将会在下个 T2被 打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。仔细观察每条机器指令 的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。 也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确思考题:1画出指令系统修改后微程序流程图2.编写微程序,指令如下:$M 00 000001;$M 01 007070;IR,P$M 05 001406;$M 06 186007;$M 07 103008;$M 08 002409; RO-$M 09 04B201
11、; A+B-$M 32 18600A;$M 0A 18300B;IN-$M 0B 200401;MEM$M 35 000035;$M 33 280401;3机器指令验证程序$P 00 00$P 01 10$P 02 20$P 03 FF$P 04 FF$P 05 DF$P 06 FF$P 07 FF$P 08 BF$P 09 FF$P 0A 5F$P 0B FF$P 0C FF$P 0D FF$P 0E FF$P 0F FF$P 10 104.联机装入调试五、调试运行结果:我们所给ME中数据为00100011, R0中数据为00100011,最终结果正确,为01000110。六、 所遇问题及解
12、决方法:1.连线中出现问题,通过请教老师、同学得以解决。2.实验中,实验箱接触不良,通过排查解决。3.对实验中所用软件不是十分熟悉,通过请教同学才得以解决。七、 实验总结:1.通过本次实验我掌握了微程序控制器的功能、组成知识,掌握了指令格式和各字段功能,掌握了微程序的编制、 写入、观察微程序的运行, 学习了基本指令的执行流程。2.通过实验,我对控制器有了更为深刻的认识, 加深了其工作中数据流的去向认识。3.做实验前应该适当预习一下,这样子会知其所以然,顺利很多,同时,做实验需 要持之以恒的恒心、信心与耐心,一定要认真、细心,特别微小的错误都有可能导致实 验的失败,并且必须弄清楚每一步实验的原理和所需要的知识点。4.遇到问题,要寻找解决问题的方法,做事情一定要懂原理才行,这样才可以有速 度完成实验。八、 建议:1.实验之前尽可能带领我们熟悉本次试验的基本流程,不仅仅是理论知识的讲解;2.实验之前向大家讲解本次试验的注意事项,以免我们犯不必要的错误;3.如果可能,尽量带领我们熟悉实验操作,避免我们做实验时不知如何下手。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1