《Protues8259A实验报告8784.pdf》由会员分享,可在线阅读,更多相关《Protues8259A实验报告8784.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华北电力大学 实 验 报 告|实验名称 8259A 应用实验 课程名称 微机原理及应用 老 师|专业班级 姓 名 学 号 一 实验要求 74LS273 接 8 个指示灯,要求第一次中断 LED0 亮,第二次中断LED1 亮,以此重复,直到 10 次计数到为止。【已知 8259A 采用上升沿触发,单片,全嵌套、非缓冲、普通中断结束方式,需要设置 ICW4,中断类型号为 80H87H,在 8259A 的 IR2 端(INT2 端)输入一个中断请求信号(该信号由开关提供),74LS273 的输出接 LED 指示灯。】二 思路 1 硬件(1)74HC138 译码电路如图所示,A15 为 1,E2、E3
2、 接地保证 74HC138 正常工作,此时Y0、Y1对应地址分别为 8000H、9000H。(2)8259 的片选地址为 9000H,所以CS接Y1。8086 有 16 位数据总线,其低 8 位作为偶存储体来传输数据,8086 的A0 要一直为 0,所以 8259 的 A0 要接 8086 的 A1 8259 的 IR2 端接开关,用来输入中断请求信号 (3)74LS273 的片选地址为 8000H,且需要向其写入 LED 灯的状态,则Y0和WR经或非门后接入 CLK。2 软件(1)流程图 (2)8259A 初始化(ICW)据要求(上升沿触发、单片、全嵌套、非缓冲、普通中断结束方式、需设置 I
3、CW4,中断类型号为 80H87H),初始化:ICW1=13H(00010011B);写入偶地址端口 9000H ICW2=08H(00001000B);写入奇地址端口 9002H ICW4=01H(00000001B);写入奇地址端口 9002H(3)中断屏蔽字(OCW1)(写入奇地址端口 9002H)允许 IR2 中断 OCW1 与 0FBH(B)相与 禁止 IR2 中断 OCW1 与 04H(00000100B)相或(4)中断结束字(OCW2)(写入偶地址端口 9000H)OCW2=20H(00000010B)三 源程序 CODE SEGMENT ;CODE逻辑段开始 ASSUME CS
4、:CODE START:CLI ;关中断 ;8259 初始化 MOV DX,9000H ;ICW1=13H(0001 0011B)MOV AL,13H OUT DX,AL MOV DX,9002H ;ICW2=80H(1000 0000B)MOV AL,80H OUT DX,AL MOV DX,9002H ;ICW3=01H(0000 0001B)MOV AL,01H OUT DX,AL MOV AX,0 ;非规范装入地址向量 MOV DS,AX MOV BX,82H*4 MOV AX,OFFSET INTP MOV BX,AX INC BX INC BX MOV AX,SEG INTP MO
5、V BX,AX MOV DX,9002H ;允许 IRQ2 中断 IN AL,DX AND AL,0FBH OUT DX,AL MOV DX,8000H MOV AL,00H OUT DX,AL ;发光二极管初始化为全灭 MOV BL,1 ;BL 中为 LED 灯亮的初始状态:LED0 亮 MOV CX,10 ;设置中断次数为 10 STI L1:MOV AL,82H ;Proteus 中 8086 模型有问题,它取得的中断号是最后发到总线上的数据,并不是由 8259发出的中断号 MOV DX,0B000H OUT DX,AL ;所以造成了要在这里执行EOI 的假相,地址使用没有用过的,如 b
6、000h,8259 的地址是 9000h CMP CX,0 JZ QUIT JMP L1 ;循环等待中断 QUIT:CLI MOV DX,9002H ;禁止 IRQ2 中断 IN AL,DX OR AL,4 OUT DX,AL STI ;开中断 MOV CX,0FFFFH L:LOOP L ;为看到第 10 次中断结束后 LED 灯亮,需用延时 MOV DX,8000H MOV AL,00H ;10 次中断结束,LED 灯全灭 OUT DX,AL JMP$INTP PROC ;中断服务子程序 MOV AL,BL MOV DX,8000H OUT DX,AL ROL BL,1 DEC CX ;计数值减 1 MOV DX,9000H MOV AL,20H OUT DX,AL ;发中断结束命令 EOI IRET ;中断返回 INTP ENDP CODE ENDS END START ;汇编结束 四 运行结果 第一次按开关执行第一次中断 LED0 亮。第二次按开关 LED1 亮 以此重复,LED 灯依次亮灭,直到 10 次计数为止。第十次按动开关 LED1 亮 最后 LED 灯全灭 五 实验思考题 1、中断服务子程序是何时开始执行的 将 INTP 的入口地址送入到 IP 和 CS 后。2、中断类型号是何时送到数据总线上的 INTA发出第二个负脉冲时