合肥工业大学 计算机与信息学院
课程设计
课
程:微机原理与接口技术设计
专业班级:计算机科学与技术班
学
号:2
姓
名:
一、设计题目及要求:
利用 8259A中断,实现对8253多种计数初值的设定: 1.在中断服务程序中设定8253的计数初值。
2.开关K1用于设定0.5秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。
3.用8253的输出信号,控制一个发光二极管,以演示修改效果。
二、设计思想:
整体设计:
①利用8259A芯片设定IR
1、IR
2、IR3三个中断 ,分别用三个开关的高低电平触发中断。
②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为0.5秒、1,秒、2秒的方波。 ③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。
部分设计:
①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及0.5s、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。
②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。
③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR
1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、
1、2外其他位屏蔽。
④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。
三、功能流程图:
四、结果讨论:
附录:实验代码:(完整的源程序)
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3400H Port0
EQU 0FFE0H
;8259芯片的端口号 Port1
EQU 0FFE1H START:
CALL F8259 P0:
CLI
MOV AX,OFFSET INT0
MOV BX,0020H
MOV [BX],AX
MOV BX,0022H
MOV AX,0000H
MOV [BX],AX
STI
P1:
CLI
MOV AX,OFFSET INT1
MOV BX,0024H
MOV [BX],AX
MOV BX,0026H
MOV AX,0000H
MOV [BX],AX
;CALL F8259
STI
P2:
CLI
MOV AX,OFFSET INT2
MOV BX,0028H
MOV [BX],AX
MOV BX,002AH
MOV AX,0000H
MOV [BX],AX
; CALL F8259
STI P:
JMP P ;----- F8259: MOV AL,1BH
;8259的初始化00011011 icw1
MOV DX,Port0
OUT DX,AL
MOV AL,08H
;00001000 icw2
MOV DX,Port1
OUT DX,AL
MOV AL,01H
;00000001 icw4
OUT DX,AL
MOV AL,00H
;屏蔽只留IR0,IR1,IR2。OCW1
OUT DX,AL
RET ;--------------------------- INT0:
CLI
CALL FB0
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT1:
CLI
CALL FB1
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT2:
CLI
CALL FB2
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
FB0:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,80H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,25H
OUT DX,AL
RET
FB1:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,4bH
OUT DX,AL
RET
FB2:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,96H
OUT DX,AL
RET
;-------------------------- DONE: CODE
ENDS
END START