13281036_刘大力_8259中断控制器作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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