为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

微机原理实验报告

2018-11-25 27页 doc 643KB 68阅读

用户头像

is_180829

暂无简介

举报
微机原理实验报告 宣城校区 实 验 报 告 课  程  名  称  ____________________________ 专  业  班  级 _____________________________ 学生姓名及学号  ____________________________ 指  导  教  师  ____________________________ 实  验  地  点    ———————————————— 2015 ~ 2016 学年第 二 学期 《微机原理与接口技术》实验一(1) 实验名称 存贮器内部数据传送 ...
微机原理实验报告
宣城校区 实 验 报 告 课  程  名  称  ____________________________ 专  业  班  级 _____________________________ 学生姓名及学号  ____________________________ 指  导  教  师  ____________________________ 实  验  地  点    ———————————————— 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,@DATA MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DI,6000H CLD REPE MOVSB MOV CX,100H MOV SI,3000H MOV DI,6000H REPE CMPSB JNE ERROR TRUE: 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,8000H MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DI,6000H CALL Move MOV CX,100H MOV SI,3000H MOV DI,6000H CLD REPE CMPSB JNE ERROR TRUE: JMP $ ERROR: JMP $ Move PROC NEAR CLD CMP SI,DI JZ Return JNB Move1 ADD SI,CX DEC SI ADD DI,CX DEC DI STD Move1: REP MOVSB Return: RET Move ENDP END 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 TINY EXTRN InitKeyDisplay:NEAR,Display8:NEAR IO8259_0 EQU 0250H IO8259_1 EQU 0251H .STACK 100 .DATA BUFFER DB 8 DUP(?) Counter DB ? ReDisplayFlag DB 0 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL InitKeyDisplay ;对键盘、数码管控制器8255初始化 CALL Init8259 CALL WriIntver MOV Counter,0 ;中断次数 MOV ReDisplayFlag,1 ;需要显示 STI ;开中断 START1: LEA SI,Buffer CALL Display8 CMP ReDisplayFlag,0 JZ START1 CALL LedDisplay MOV ReDisplayFlag,0 JMP START1 Init8259 PROC NEAR MOV DX,IO8259_0 MOV AL,13H OUT DX,AL MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0FEH OUT DX,AL RET Init8259 ENDP WriIntver PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,INT_0 STOSW MOV AX,CS STOSW POP ES RET WriIntver ENDP LedDisplay PROC NEAR MOV AL,Counter MOV AH,AL AND AL,0FH MOV Buffer,AL AND AH,0F0H ROR AH,4 MOV Buffer + 1,AH MOV Buffer + 2,10H ;高六位不需要显示 MOV Buffer + 3,10H MOV Buffer + 4,10H MOV Buffer + 5,10H MOV Buffer + 6,10H MOV Buffer + 7,10H RET LedDisplay ENDP INT_0: PUSH DX PUSH AX MOV AL,Counter ADD AL,1 DAA MOV Counter,AL MOV ReDisplayFlag,1 MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET END 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 TINY EXTRN InitKeyDisplay:NEAR,Display8:NEAR IO8259_0 EQU 0250H IO8259_1 EQU 0251H .STACK 100 .DATA BUFFER DB 8 DUP(?) IRQ0_INT DB 0 IRQ7_INT DB 0 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL InitKeyDisplay ;对键盘、数码管扫描控制器8255初始化 MOV IRQ0_INT,00H MOV IRQ7_INT,00H CALL Init8259 CALL WriIntver CALL LedDisplay STI ;开中断 START1: LEA SI,Buffer CALL Display8 JMP START1 LedDisplay PROC NEAR PUSH AX MOV AL,IRQ0_INT OR AL,IRQ0_INT JZ LedDisplay1 ADD AL,IRQ7_INT ;如果CPU正在处理IR7,显示2 LedDisplay1: MOV buffer, AL ; ;显示1或2,IR0在中断 MOV Buffer + 1,10H MOV Buffer + 2,10H MOV Buffer + 3,10H MOV Buffer + 4,10H MOV Buffer + 5,10H MOV Buffer + 6,10H MOV AL,IRQ7_INT MOV Buffer + 7,AL ;显示1,IR7在中断 POP AX RET LedDisplay ENDP Init8259 PROC NEAR MOV DX,IO8259_0 MOV AL,13H OUT DX,AL MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7EH OUT DX,AL RET Init8259 ENDP DELAY PROC NEAR PUSH SI PUSH CX PUSH AX MOV CX,100 A3: LEA SI,BUFFER CALL DISPLAY8 LOOP A3 POP AX POP CX POP SI RET DELAY ENDP IRQ0: PUSH DX PUSH AX INC IRQ0_INT ;显示1,IR0在中断 CALL LedDisplay STI CALL DELAY DEC IRQ0_INT ;显示0,IR0中断处理完毕 CALL LedDisplay MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET IRQ7: PUSH DX PUSH AX INC IRQ7_INT ;显示1,IR7在中断 CALL LedDisplay STI CALL DELAY DEC IRQ7_INT ;显示0,IR7中断处理完毕 CALL LedDisplay MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET WriIntver PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,IRQ0 STOSW MOV AX,CS STOSW MOV DI,20H+7*4 LEA AX,IRQ7 STOSW MOV AX,CS STOSW POP ES RET WriIntver ENDP END START 三、实验结果及其分析 1、通过该实验, 观察数码管数字的变化,了解了8259A 的内部结构、工作原理;了解了8259A 与8086 的接口逻辑;掌握了对8259A 的初始化编程方法,了解了8086 是如何响应中断、退出中断的;掌握了8259A 的中断优先级处理方法。                 《微机原理与接口技术》实验二(3) 实验名称 8253 方波实验 姓 名   系院专业 电子信息类 班 级   学号   实验日期 2016.6.14 指导教师   成绩   一、实验目的和要求 1、了解8253 的内部结构、工作原理;了解8253 与8086 的接口逻辑;熟悉8253 的控制寄存器和初始化编程方法,熟悉8253 的6 种工作模式。 二、实验内容(包括实验步骤和代码) 1、编写程序:使用8253 的计数器0 和计数器1 实现对输入时钟频率的两级分频,得到 一个周期为1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。 2、连接线路,验证8253 的功能,熟悉它的使用方法。 实验原理图: 连线说明: 测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。 程序如下: .MODEL TINY COM_ADDR EQU 0263H T0_ADDR EQU 0260H T1_ADDR EQU 0261H .STACK 100 .CODE START: MOV DX,COM_ADDR MOV AL,35H OUT DX,AL ;计数器T0设置在模式2状态,BCD码计数 MOV DX,T0_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL ;CLK0/1000 MOV DX,COM_ADDR MOV AL,77H OUT DX,AL ;计数器T1为模式3状态,输出方波,BCD码计数 MOV DX,T1_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL ;CLK1/1000 JMP $ ;OUT1输出1S的方波 END START 三、实验结果及其分析 1、通过该实验,观察逻辑笔红绿灯交替闪亮,了解了8253 的内部结构、工作原理;了解了8253 与8086 的接口逻辑;熟悉了8253 的控制寄存器和初始化编程方法,熟悉了8253 的6 种工作模式。                 《微机原理与接口技术》实验三(一) 实验名称 数据传送(存贮器) 姓 名   系院专业 电子信息类 班 级   学号   实验日期 2016.6.14 指导教师   成绩   一、实验目的和要求 1、了解8255 芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。 学会使用8255 并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255 内部结构和与8086 的接口逻辑,熟悉8255 芯片的3 种工作方式以及控制 字格式。 二、实验内容(包括实验步骤和代码) 1、编写程序:使用8255 的PA0..2、PA4..6 控制LED 指示灯,实现交通灯功能。 2、连接线路验证8255 的功能,熟悉它的使用方法。 实验原理图: 连线说明: 观察实验结果,是否能看到模拟的交通灯控制过程 程序如下: .MODEL TINY COM_ADD EQU 0273H PA_ADD EQU 0270H PB_ADD EQU 0271H PC_ADD EQU 0272H .STACK 100 .DATA LED_Data DB 10111110B ;东西绿灯,南北红灯 DB 10111111B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11101011B ;东西红灯,南北绿灯 DB 11111011B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯 CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯 CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯 XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯 XLAT OUT DX,AL CALL DL5S MOV CX,6 START3: MOV AL,4 ;东西红灯,南北绿灯闪烁 XLAT OUT DX,AL CALL DL500ms MOV AL,3 XLAT OUT DX,AL CALL DL500ms LOOP START3 MOV AL,5 ;东西红灯,南北黄灯亮 XLAT OUT DX,AL CALL DL3S JMP START1 DL500ms PROC NEAR PUSH CX MOV CX,60000 DL500ms1: LOOP DL500ms1 POP CX RET DL500ms ENDP DL3S PROC NEAR PUSH CX MOV CX,6 DL3S1: CALL DL500ms LOOP DL3S1 POP CX RET ENDP DL5S PROC NEAR PUSH CX MOV CX,10 DL5S1: CALL DL500ms LOOP DL5S1 POP CX RET ENDP END START 三、实验结果及其分析 1、通过该实验,成功地观察到了模拟的交通灯控制过程,并了解了8255 芯片的工作原理,熟悉了其初始化编程方法以及输入、输出程序设计技巧;学会了使用8255 并行接口芯片实现各种控制功能。 2、了解了8255 内部结构和与8086 的接口逻辑,掌握了8255 芯片的3 种工作方式以及控制字格式。                 《微机原理与接口技术》实验三(2) 实验名称 8255 键盘显示实验 姓 名   系院专业 电子信息类 班 级   学号   实验日期 2016.6.14 指导教师   成绩   一、实验目的和要求 1、进一步掌握8255 的设计、编程方法; 2、掌握矩阵键盘的扫描方法; 3、掌握动态扫描数码块的方法。 二、实验内容(包括实验步骤和代码) 1、编写程序:扫描键盘,如有按键,键号显示于数码管。 2、连接线路,验证8255 的功能,熟悉它的使用方法。 实验原理图: 连线说明: 程序如下: .MODEL TINY COM_8255 EQU 0273H ;8255 控制口 PA_8255 EQU 0270H PB_8255 EQU 0271H PC_8255 EQU 0272H .STACK 100 .DATA Buffer DB 8 DUP(?) ;8 个字节显示缓冲区 SEG_TAB DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H DB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CLD ;0->DF, 地址自动递增 MOV DX,COM_8255 MOV AL,89H OUT DX,AL ;PA、PB 输出,PC 输入 LEA DI,buffer MOV AL,10H MOV CX,08H REP STOSB CALL DIR MAIN3: LEA DI,buffer MAIN2: CALL keyi STOSB CALL DIR CMP DI,offset buffer+8 JNZ MAIN2 JMP MAIN3 DIR PROC NEAR PUSH AX PUSH BX PUSH DX LEA SI,buffer ;置显示缓冲器初值 MOV AH,0FEH LEA BX,SEG_TAB LD0: MOV DX,PA_8255 LODSB XLAT ;取显示数据 OUT DX, AL ;段数据->8255 PA INC DX ;扫描模式->8255 PB MOV AL,AH OUT DX,AL CALL DL1 ;延迟1ms MOV DX,PB_8255 MOV AL,0FFH OUT DX,AL TEST AH,80H JZ LD1 ROL AH,01H JMP LD0 LD1: POP DX POP BX POP AX RET DIR ENDP DL1 PROC NEAR ;延迟子程序 PUSH CX MOV CX,500 LOOP $ POP CX RET DL1 ENDP KEYI PROC NEAR PUSH BX PUSH DX LK: CALL AllKey ;调用判有无闭合键子程序 JNZ LK1 CALL DIR CALL DIR ;调用显示子程序,延迟6ms JMP LK LK1: CALL DIR CALL DIR CALL AllKey ;调用判有无闭合键子程序 JNZ LK2 CALL DIR JMP LK LK2: MOV BL,0FEH ;R2 MOV BH,0 ;R4 LK4: MOV DX,PB_8255 MOV AL,BL OUT DX,AL INC DX IN AL,DX TEST AL,01H JNZ LONE XOR AL,AL ;0 行有键闭合 JMP LKP LONE: TEST AL,02H JNZ NEXT MOV AL,08H ;1 行有键闭合 LKP: ADD BH,AL LK3: CALL DIR ;判断释放否 CALL AllKey JNZ LK3 MOV AL,BH ;键号->AL POP DX POP BX RET NEXT: INC BH ;列计数器加1 TEST BL,80H JZ KND ;判是否已扫到最后一列 ROL BL,01H JMP LK4 KND: JMP LK KEYI ENDP AllKey PROC NEAR MOV DX,PB_8255 XOR AL,AL OUT DX,AL ;全"0"->扫描口 INC DX IN AL,DX ;读键状态 NOT AL AND AL,03H ;取低二位 RET AllKey ENDP END START 三、实验结果及其分析 1、通过该实验,成功地用8255A实现了键盘显示,掌握了8255 的设计、编程方法、矩阵键盘的扫描方法、动态扫描数码块的方法; 2、显示程序中延时函数起什么作用:消除键抖动; 3、如何调节数码块亮度:将定时器的时间缩短。                
/
本文档为【微机原理实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索