- 2
- 0
- 约2.13千字
- 约 4页
- 2018-01-18 发布于河南
- 举报
武汉大学电气工程学院计算机课程设计4:中断
课题内容及要求
用每按一次单脉冲按钮K所产生的正脉冲使8255产生一次中断请求,让CPU进行一次中断服务。在中断服务中是L0~L7依次发光,中断8次结束
程序中设定好8255A的工作模式,利用端口B工作在方式1,并处于输出状态。
方案
用8259中断控制器共处理8次中断,再用8255输出,即用8255控制L0~L7依次发光。8次中断结束后停止。
工作原理说明
8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
本实验中使用0号中断源IR0,中断方式为边沿触发方式。单脉冲按钮K所产生的正脉冲使8255产生一次中断请求,让CPU进行一次中断服务,对应的LED发光。8次中断结束后,程序就会结束。
8255是通用并行接口芯片,具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0:基本输入/输出方式
方式1:选通输入/输出方式
方式2:双向选通工作方式
本实验中使8255端口B工作在方式1并作为输出口,来控制相对应的LED使其发光。为了使观察更清楚,亮了之后延时一段时间再让灯灭。这段时间的长短由DELAY1程序段控制。
程序功能描述及程序流程
CODE SEGMENT
ASSUME CS:CODE
IP1 EQU 0060H ;A0
IP2 EQU 0061H ;A1
IOB EQU 0FF29H ;PORT B
IOD EQU 0FF2BH ;PORT D
ORG 1400H
START: CLI ;关中断
CALL WRINT ;设置中断向量
MOV AL,13H ;ICW1 初始化8259
MOV DX,IP1
OUT DX,AL
MOV AL,08H ;ICW2
MOV DX,IP2
OUT DX,AL
MOV DX,09H ;ICW4
OUT DX,AL
MOV DX,0FEH ;OCW1
OUT DX,AL
MOV BX,1H
CALL WRIO ;初始化8255
STI ;OPEN INT
WAIT: JMP WAIT
WRIO: MOV AL;初始化8255,工作方式1,输出
MOV DX,IOD
OUT DX,AL
MOV AL,0FFH
MOV DX,IOB
OUT DX,AL
RET ;END WRIO
WRINT: MOV AX,0H
MOV ES,AX
MOV DI,0010H
LEA AX,INT0
STOSW
MOV AX,0000H
STOSW
RET ;END WRINT
INT0: CLI
AND BX,0FFH
JZ EXIT
MOV DX,IOB
MOV AL,BL
XOR AL,0FFH
OUT DX,AL
XOR BH,BH
SHL BL,1
CALL DELAY ;等待一段时间
MOV AL,0FFH
OUT DX,AL
STI
JMP WAIT ;END INT
DELAY1: PUSH CX ;延时1,约240000H个指令周期
MOV CX,30H
DELY2: CALL DELAY2
LOOP DELY2
POP CX
RET
DELAY2: PUSH CX ;延时2,约8000H个指令周期
MOV CX,8000H
DELA1: LOOP DELA1
POP CX
RET
EXIT: RET
CODE ENDS
END START
电路的连接
1、8259A的INT连X15(8088的INTR)
2、8259A的INTA连X12(8088的INTA)
3、 插孔和8259A的0号中断IR0插孔相连
4、8259A的CS端连到X22
5、8255芯片B口的PB0~PB7依次接L1~L8
调试方法及技巧
1、按图连好实验线路
2、合上实验台电源,将开关输入拨至“88”处,按下“SCAL”键
3、打开、编译、运行实验程序,观察输出结果。
4、用每按一次单脉冲按钮K,一个LED就会发光。按8次,8个LED发光结束后,程序结束。
调试中出现的问题
调试中发现按下按钮“K”之后LED未发光。修改程序使在初始化之后LED灯全亮,上机调试LED灯全亮,说明8255正常工作。将按钮“K”连至8259A的IR3端口,运行示例程序,达到示例程序预期效果,说明8259A芯片工作正常。综合分析,问题应在程序的8259A设置部分。具体问题可能有三:(1)8259A初始化有误(2)8259A中断向量设置有误(3)8259A中断程序编写有误。
收获和体
原创力文档

文档评论(0)