微机接口实验 - 图文 联系客服

发布时间 : 星期三 文章微机接口实验 - 图文更新完毕开始阅读

.

;设置完成

;设置中断向量表INT3

MOV DX,OFFSET INT3 MOV AX,250BH

INT 21H ;系统调用25号设置中断功能,中断号0BH ;设置完成

IN AL,21H

AND AL,0F3H ;1111 0011 OUT 21H,AL ;写OCW1,开放2,3号端口 IN AL,0A1H

AND AL,0FBH ; 1111 1011 OUT 0A1H,AL ; 写OCW1,开放10号端口 MOV CX,10 STI WAIT:

JMP WAIT ;CPU等待中断 ;INT10代码

INT10: CLI ;关中断

PUSHAD

PUSHFD ;将各种寄存器的值入栈,保存现场 MOV CX,10 ;给CX赋值,循环10次

NEXT10_1:

MOV DX,31H MOV AH,02H

INT 21H ;系统调用02功能,DL为显示内容ASCII31H :1 MOV DX,30H

MOV AH,02H ;系统调用02功能,DL为显示内容ASCII31H :0 INT 21H

MOV DX,20H ;系统调用02功能,DL为显示内容ASCII20H :<空格> MOV AH,02H

.

.

INT 21H

CALL DELAY1 ;调用 DELAY1 子程序

LOOP NEXT10_1 ;在CX>0之前跳转,并使CX=CX-1 ;换行操作

MOV DX,0DH ;系统调用02功能,DL为显示内容ASCII0DH :<归位键> MOV AH,02H INT 21H

MOV DX,0AH ;系统调用02功能,DL为显示内容ASCII0AH :<换行> MOV AH,02H INT 21H

MOV AL,20H OUT 0A0H,AL

OUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地址

为A0H)

POPFD

POPAD ;将之前入栈的恢复,恢复现场 STI ;开中断 IRET ;中断返回 ;INT3代码

INT3: CLI ;关中断

PUSHAD ;将各种寄存器的值入栈,保存现场 PUSHFD

MOV CX,10 ;给CX赋值,循环10次

NEXT3_1: MOV DX,33H ;系统调用02功能,DL为显示内容ASCII33H :3

MOV AH,02H INT 21H

MOV DX,20H ;系统调用02功能,DL为显示内容ASCII20H :<空格>

.

.

MOV AH,02H INT 21H

CALL DELAY1 ;调用 DELAY1 子程序

LOOP NEXT3_1 ;在CX>0之前跳转,并使CX=CX-1 ;换行操作

MOV DX,0DH ;系统调用02功能,DL为显示内容ASCII0DH :<归位键> MOV AH,02H INT 21H

MOV DX,0AH ;系统调用02功能,DL为显示内容ASCII0AH :<换行> MOV AH,02H INT 21H

MOV AL,20H

OUT 0A0H,AL

OUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地

址为A0H)

POPFD

POPAD ;将之前入栈的恢复,恢复现场 STI ;开中断 IRET ;中断返回

DELAY1 PROC

PUSHAD ;将各种寄存器的值入栈,保存现场 PUSHFD

MOV CX,0FH ;给CX赋值,循环15次 DELAY_LOOP1:

MOV BX,0FFFFH ;BX给成FFFFH,每次减一到0跳出循环以此来达到延

时的效果

.

.

DELAY_LOOP2:

DEC BX NOP

JNZ DELAY_LOOP2 LOOP DELAY_LOOP1 POPFD

POPAD ;恢复现场 RET

DELAY1 ENDP

CODE ENDS

END START

实验 1-3 (1)实验内容

扩展多中断源查询方式应用实验。利用实验平台上 8259 控制器作为中断 扩展源,编写程序对 8259 控制器的中断请求进行处理。

(2)主要步骤

接线图:

说明:接线图如图 1-5 所示,以逻辑电平开关模拟单次脉冲,开关置高电平,代表一次脉冲,8259 模块相应管脚分别与系统总线、I/O 地址单元和+5V 相连。

参考流程图:

.