13281036_刘大力_8259中断控制器作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接口作业3: 8259-1:利用8255触发8259A的中断点亮

LED

一、目的

掌握8259A矢量中断方式的硬件连接和软件编程的方法,同时掌握中断和其它接口芯片配合来完成某一特定任务的方法。

二、内容

8255的PC6作为8259A的中断源,8255每向8259A发出中断请求,都让LED指示灯交替点亮和熄灭。

三、实验接线图

图1-4 实验连线图

四、编程提示

1、中断服务程序的主要功能是交替点亮和熄灭LED指示灯(即第1次进中断点亮LED,

第2次进中断则熄灭LED)。当然8255A能使用前需要在主程序中初始化。

2、主程序可以采样死等待的方式,如果要结束程序,可以按动实验平台的Reset键。

也可以采用计数的方法,即进中断5次后结束程序。

3、8255的PC6作为中断源,应采用上升沿触发方式(由低到高的变化),为了能够进

行下次中断,PC6必须变为低点平。

4、为了能使LED的闪烁可见,在中断各申请之间加入延迟程序。

.MODEL SMALL

.386

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,203H

MOV AL,10000000B ;设置8255控制字

OUT DX,AL

MOV CL,0

CLI ;关386CPU中端

IN AL,21H;写入中断屏蔽字OCW1时,采用读取-修改-写入的顺序

AND AL,11011111B

OUT 21H,AL;将中断入口地址写入中断向量表

PUSH DS

MOV BX,0

MOV DS,BX

LEA AX,CS:INT_PROC ;将中断程序的入口地址给AX

MOV BX,5 ;N=IRX 中端IR5

MOV SI,30H ;BASE=30H 基址

ADD SI,BX ;W基址+IR5=中断类型号35H

SAL SI,2 ;中断类型号为35H*4=中断向量存在SI

MOV DS:[SI],AX ;将入口地址AX送到中断向量表中

PUSH CS

POP AX

MOV DS;[SI+2],AX

POP DS

STI ;开386CPU中断

L1: MOV DX,203H

MOV AL,00001100B

OUT DX,AL

MOV CX,0FFFFH

DELAY1: LOOP DALAY1

MOV DX,203H

MOV AL,00001101B

OUT DX,AL

MOV CX,0FFFFH

DELAY2: LOOP DALAY2

JMP L1

INT_PROC PROC FAR ;中断服务程序

PUSH AX

CMP BL,0

JZ L2

MOV DX,201H ;PC0=1

MOV AL,01

OUT DX,AL

MOV BL,0

JMP EXIT

L2: MOV DX,201H ;PC0=0

MOV AL,00

OUT DX,AL

MOV BL,1

EXIT: MOV AL,20H

OUT 20H,AL

POP AX

STI

IRET

INT_PROC ENDP

CODE ENDS

END START

接口作业3: 8259-2:利用8259A中断次数不同使得8253

产生不同波形

一、目的

掌握8259A矢量中断方式的硬件连接和软件编程的方法,同时掌握中断和其它接口芯片配合来完成某一特定任务的方法。

二、内容

通过按键PLUS的按下,统计8259中断次数,比如按5次8253产生方波,按10次8253

产生窄脉冲周期波形。

三、接线图

地址译码

.MODEL SMALL

.386

CODE SEGMENT

START:

MOV DX,203H

MOV AL,36H ;8253初始化,计数器0,方式3,00110110B OUT DX,AL

MOV CX,0 ;CX初始计0

MOV BX,0

CLI

IN AL,21H ;设置屏蔽字,IR5开放

AND AL,11011111B

OUT 21H,AL

PUSH DS

MOV BX,0

MOV DS,BX

LEA AX,CS:INTR

MOV BX,05H

MOV SI,30H

ADD SI,BX

SAL SI,2

MOV DS:[SI],AX

PUSH CS

POP AX

MOV DS:[SI+2],AX

POP DS

STI ;开中断

WAITING:JMP W AITING ;主程序

INT_PROC PROC FAR ;中断服务程序

PUSH AX

PUSH DX

CLI

CMP CX,5

JGE L1 ;CX大于等于5则输出方波

INC CX

JMP L3

L1: CMP CX,10 ;CX大于等于10则输出窄脉冲周期波形JGE L2

MOV DX,200H ;8253初始化,计数器0.初值4,

MOV AL,0004H

INC CX

JMP L3

L2: MOV DX,203H

MOV AL,78H ;8253初始化,计数器1,方式4

OUT DX,AL

MOV DX,201H

MOV AL,0004H

OUT DX,AL

INC CX

L3: MOV AL,20H

OUT 20H,AL

STI

POP DX

POP AX

IRET

INT_PROC ENDP

CODE ENDS

END START

相关文档
最新文档