微机原理与接口技术实验报告及答案(2)

2021-09-24 17:05

OUT 20H,AL ; 中断结束命令

POP DX POP AX

STI IRET INTP ENDP CODE ENDS

END START

实验2代码: .Model Small .386

CODE SEGMENT ASSUME CS:CODE START:

IN AL,21H

AND AL,0DFH ; 开通IR5中断通道

OUT 21H,AL CLI

MOV AX,00H

MOV DS,AX MOV SI,4*35H

; 设置中断向量,将INTP的偏移地址赋给[SI] MOV [SI],AX ; SI+2后,将INTP的段地址赋给[SI] ADD SI,2

MOV AX,SEG INTP MOV [SI],AX

MOV DX,203H

MOV AL,10000011B ; 设置方式字 OUT DX,AL

MOV BL,1 ; 给bl赋值,用以控制各数码管的亮暗 STEP:

STI

HLT ; 等待中断信号,接到中断信号后重复该步骤 JMP STEP INTP

PROC NEAR PUSH AX

PUSH DX

CLI MOV DX,200H

MOV AL,6DH ; 使数码管显示数字“5” OUT DX,AL MOV DX,201H

MOV AL,BL ; 使对应bl的数码管亮,其余暗 OUT DX,AL

ROL AL,1 ; 循环左移一位

CMP AL,01000000B

JNZ STEP1 ; 若循环到第七位,则赋值1,重新从最右端开始 MOV AL,1 ; 显示,并将al值赋给bl,避免丢失 STEP1: MOV BL,AL

MOV AL,20H

OUT 20H,AL ; 中断结束命令 POP DX POP AX STI IRET INTP ENDP CODE ENDS END START

【参考实验流程图】

三、实验代码 1、完成指导手册要求

实验十二8位A/D转换实验(中断方式)

实验内容

从ADC0809通道0输入+5V可变电压,使用中断方式采集数据,并将转换数据在7段数码管上以16进制数显示。

实验代码如下: .Model small .386

DATA SEGMENT

LED DB 3FH,06H,5BH,4FH,66H,6DH, 7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: IN AL,21H

AND AL,11011111B ;开放MIR5通道 OUT 21H,AL STEP:

MOV DX,200H

MOV AL,0 ;启动转化 OUT DX,AL

MOV CX,0

;用于选择显示高位还是低位 ;等待中断

STI HLT JMP STEP MOV AH,4CH INT 21H INTP PROC FAR

MOV AX,DATA

MOV DX,AX

CLI MOV AX,00H MOV ES,AX MOV DI,4*35H MOV AX,OFFSET INTP MOV [DI],AX MOV AX,SEG INTP

MOV [DI+2],AX STI

PUSH AX PUSH DX

CLI MOV DX,201H ;读数据 IN AL,DX

MOV BL,AL ;将AL数值储存在BL里

AND CX,1 ;取cx的最低位,若为0则显示低四位,为1则显示高四位 JNZ STEP2 MOV AH,0 ;屏蔽AL高4位,并将AX(数值上等于偏移量)赋给DI MOV DI,AX

MOV DX,210H

MOV AL,LED[DI] ;设置低位要显示的数字 OUT DX,AL

MOV DX,211H MOV AL,04H ;设置显示位置 OUT DX,AL DEC CX

JMP EXIT PUSH CX

MOV CL,4 ;将AL高4位移到低4位 POP CX

STEP2: MOV AL,BL

; 将CX减1,使CX最低位改变为1,故可使下次终端显示高4位

ROL AL,CL

AND AL,00001111H ;屏蔽AL高4位 MOV AH,0 MOV DI,AX

MOV DX,210H ;设置低位要显示的数字 MOV AL,LED[DI] OUT DX,AL

MOV DX,211H MOV AL,08H ;设置显示位置 OUT DX,AL

DEC CX ; 将CX减1,使CX最低位改变为0,故可使下次终端显示低4位 EXIT:

MOV AL,65H ;IR5中断结束

OUT 20H,AL POP DX POP AX

STI IRET INTP ENDP CODE ENDS

END START

实验十五DMA读操作实验

利用8237DMA的0通道实验MEM I/O的传送。将2000H:0000H~2000H:0007H共8个数据01H,02H,04H,08H,10H,20H,40H,80H通过DMA方式一次传送,并在8个led中显示对应状态。DMA请求使用单脉冲长生,led与8255的PA口连接,DMA传送时,通过8255的传输端口控制led的亮与灭。

说明:8255的DMA_EN的作用是为了在DMA响应期间,使能8255,并禁止A1A0

译码,使其A1A0=00,因此,DMA传送期间传送的数据会固定送往PA端口,此时的8255PA口当做8为锁存器使用。

实验代码如下: .Model small .386

DATA SEGMENT

LED DB 01H,02H,04H,08H,10H,20H,40H,80H DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START : MOV AX,DATA

LEA SI,LED ; 将变量起始地址赋给si MOV AL,[SI] MOV ES:[DI],AL

INC DI ;传送8个数据到2000:0000H单元 INC SI LOOP STEP MOV AL,10000000B

MOV DX,213H ;设置8255 A端口1方式输出 OUT DX,AL MOV DX,208H ;禁止82C37A工作 OUT DX,AL MOV DX,20CH

OUT DX,AL ;清先/后触发器 MOV AX,0 ;写入基地址 MOV DX,200H

OUT DX,AL ;写低位地址到基地址寄存器 OUT DX,AL ;写高位地址到基地址寄存器 MOV AX,7H ;将传输字节数存入字节数寄存器 MOV DX,201H

OUT DX,AL ;写低位字节数到字节数寄存器 MOV AL,AH

OUT DX,AL ;写高位字节数到字节数寄存器 MOV DX, ; 设置工作方式 OUT DX,AL STEP:

MOV DS,AX

MOV CX,8H ;设置往内存单元赋值次数 MOV AX,2000H MOV ES,AX ;设置要存入数值的内存起始地址为2000H:0000H MOV DI,0

微机原理与接口技术实验报告及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2021年语文版五年级语文下册三单元质量检测卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: