微机原理实验报告概况

  • 格式:doc
  • 大小:676.00 KB
  • 文档页数:21

宣城校区实验报告课程名称____________________________专业班级_____________________________学生姓名及学号____________________________ 指导教师____________________________ 实验地点————————————————2015 ~2016 学年第二学期《微机原理与接口技术》实验一(1)实验名称存贮器内部数据传送姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。

2、掌握存储器内部不同位置间数据传送的方法。

3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。

二、实验内容(包括实验步骤和代码)1、编写源程序,要求将数据段中3000H~30FFH 单元的内容传送给6000H~60FFH 单元中。

2、编译、连接所编写的源程序。

3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。

4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)内容的变化。

5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。

程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBMOV CX,100HMOV SI,3000HMOV DI,6000HREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的内容传送到了6000H~60FFH单元中。

《微机原理与接口技术》实验一(2)实验名称数据传送(存贮器)姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。

2、掌握CPU 对16 位静态存贮器的访问方法3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。

二、实验内容(包括实验步骤和代码)1、实验仪选用常用的静态存贮器芯片62256(32K×8 位),二片组成32K×16位,共64K 字节。

实验仪具有16 位数据总线D0..D15、20 位地址线A0..A19、BLE(低电平有效,选择低8 位存贮器芯片)、BHE(低电平有效,选择高8 位存贮器芯片);BLE、BHE 同时有效,对存贮器字方式读写,BLE 或BHE 有效,对存贮器字节方式读写。

扩展16 位存贮器时,不使用地址线A0。

2、编写程序:将B4 区的静态存贮器3000H-30FFH 单元中数据复制到6000H-60FFH 的单元中,并校验,检测写入的数据是否正确。

3、连接线路验证功能,熟悉它的使用方法。

实验原理图:连线说明:程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,8000HMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCALL MoveMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $Move PROC NEARCLDCMP SI,DIJZ ReturnJNB Move1ADD SI,CXDEC SIADD DI,CXDEC DISTDMove1: REP MOVSBReturn: RETMove ENDPEND START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的内容传送到了6000H~60FFH单元中。

2、子程序Move 中为什么比较SI、DI:源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。

3、本实验与实验一(1)的异同点:实验一(一)和实验一(二)都是将3000H中的内容复制到6000H中,而实验一(一)用的是模拟寄存器,里面的内容全是00,实验一(二)中寄存器内是有实际的值的。

《微机原理与接口技术》实验二(1)实验名称8259A 中断控制器实验姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、了解8259A 的内部结构、工作原理;了解8259A 与8086 的接口逻辑;掌握对8259A 的初始化编程方法,了解8086 是如何响应中断、退出中断的。

2、复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验内容(包括实验步骤和代码)编制程序:拨动单脉冲开关,将单脉冲送给8259A 的IR0,触发中断,8086 计数中断次数,显示于F5 区的数码管上。

实验原理图:连线说明:运行程序后,上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。

程序如下:.MODEL TINYEXTRN InitKeyDisplay:NEAR,Display8:NEARIO8259_0 EQU 0250HIO8259_1 EQU 0251H.STACK 100.DATABUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL InitKeyDisplay ;对键盘、数码管控制器8255初始化CALL Init8259CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: LEA SI,BufferCALL Display8CMP ReDisplayFlag,0JZ START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1Init8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HRETLedDisplay ENDPINT_0: PUSH DXPUSH AXMOV AL,CounterADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START三、实验结果及其分析1、通过该实验,观察数码管数字随开关拨动的变化,了解了8259A 的内部结构、工作原理;了解了8259A 与8086 的接口逻辑;掌握了对8259A 的初始化编程方法,了解了8086 是如何响应中断、退出中断的。

《微机原理与接口技术》实验二(2)实验名称8259A 中断(优先级)实验姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、了解8259A 的内部结构、工作原理;了解8259A 与8086 的接口逻辑;掌握对8259A 的初始化编程方法,了解8086 是如何响应中断、退出中断的;体会8259A 的中断优先级处理方法。

2、复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验内容(包括实验步骤和代码)编制程序:拨动单脉冲开关,向上的脉冲送给8259A 的IR0,向下的脉冲送给8259A 的IR7,F5 区的最左边数码管对应IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5 区的最右边数码管对应IR0 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果IR0 中断IR7,显示“2”。

实验原理图:连线说明:运行程序并拨动单脉冲开关,向上的脉冲送给8259A 的IR0,向下的脉冲送给8259A 的IR7,F5 区的最左边数码管对应IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5 区的最右边数码管对应IR0 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果IR0 中断IR7,显示“2”。

程序如下:.MODEL TINYEXTRN InitKeyDisplay:NEAR,Display8:NEARIO8259_0 EQU 0250HIO8259_1 EQU 0251H.STACK 100.DATABUFFER DB 8 DUP(?)IRQ0_INT DB 0IRQ7_INT DB 0.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL InitKeyDisplay ;对键盘、数码管扫描控制器8255初始化MOV IRQ0_INT,00HMOV IRQ7_INT,00HCALL Init8259CALL WriIntverCALL LedDisplaySTI ;开中断START1: LEA SI,BufferCALL Display8JMP START1LedDisplay PROC NEARPUSH AXMOV AL,IRQ0_INTOR AL,IRQ0_INTJZ LedDisplay1ADD AL,IRQ7_INT ;如果CPU正在处理IR7,显示2 LedDisplay1: MOV buffer, AL ; ;显示1或2,IR0在中断MOV Buffer + 1,10HMOV Buffer + 2,10HMOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV AL,IRQ7_INTMOV Buffer + 7,AL ;显示1,IR7在中断POP AXRETLedDisplay ENDPInit8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7EHOUT DX,ALRETInit8259 ENDPDELAY PROC NEARPUSH SIPUSH CXPUSH AXMOV CX,100A3: LEA SI,BUFFERCALL DISPLAY8LOOP A3POP AXPOP CXPOP SIRETDELAY ENDPIRQ0: PUSH DXPUSH AXINC IRQ0_INT ;显示1,IR0在中断CALL LedDisplaySTICALL DELAYDEC IRQ0_INT ;显示0,IR0中断处理完毕CALL LedDisplayMOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP AXPOP DXIRETIRQ7: PUSH DXPUSH AXINC IRQ7_INT ;显示1,IR7在中断CALL LedDisplaySTICALL DELAYDEC IRQ7_INT ;显示0,IR7中断处理完毕CALL LedDisplayMOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP AXPOP DXIRETWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,IRQ0STOSWMOV AX,CSSTOSWMOV DI,20H+7*4LEA AX,IRQ7STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPEND START三、实验结果及其分析1、通过该实验, 观察数码管数字的变化,了解了8259A 的内部结构、工作原理;了解了8259A 与8086 的接口逻辑;掌握了对8259A 的初始化编程方法,了解了8086 是如何响应中断、退出中断的;掌握了8259A 的中断优先级处理方法。