微机原理与接口技术-实验报告[交大](编辑修改稿)内容摘要:

示 信 息发 出 E O I 结 束 中 断开 中 断中 断 开 始中 断 返 回 四、源程及注释 DATA SEGMENT INT_VECT EQU 073H。 中断 07 的向量为 :08h0fh,中断 815 的向量为 :70h77h IRQ_MASK_2_7 EQU 11111011B。 中断掩码 ,中断 07 时从低至高相应位为零 ,中断815时第 2位为零 IRQ_MASK_9_15 EQU 11110111B。 中断 07时全一 ,中断 815时从低至高相应位为零 IOPORT_CENT EQU 0E800H。 TPC卡中 9054芯片的 io地址 CSREG DW ? IPREG DW ?。 旧中断向量保存空间 IPR_TIMES DW 10H。 中断计数 MSG1 DB 0DH,0AH,39。 TPC pci card Interrupt39。 ,0DH,0AH,39。 $39。 MSG2 DB 0DH,0AH,39。 Press any key to exit!39。 ,0DH,0AH,39。 $39。 MSG3 DB 0DH,0AH,39。 Press DMC to interrupt 10 times and exit!39。 ,0dh,0ah,39。 $39。 DATA ENDS STACK SEGMENT STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:。 Enable Local Interrupt Input .386 CLI MOV AX,DATA MOV DS,AX 共 27 页 第 14 页 MOV ES,AX MOV AX,STACK MOV SS,AX MOV DX,IOPORT_CENT+68H。 设置 tpc 卡中 9054芯片 io口 ,使能中断 IN AX,DX OR AX,0900H OUT DX,AX MOV AL,INT_VECT。 保存原中断向量 MOV AH,35H。 35H功能调用 INT 21H MOV AX,ES MOV CSREG,AX MOV IPREG,BX MOV AX,SEG INT_PROC。 设置新中断向量 MOV DS,AX。 中断服务程序入 口段地址送 DS MOV DX,OFFSET INT_PROC。 中断服务程序入口偏移地址送 DX MOV AL,INT_VECT。 IRQ11的中断类型号送 AL MOV AH,25H。 25H功能调用 INT 21H IN AL, 21H。 设置中断掩码 ,读 IRM AND AL, IRQ_MASK_2_7。 允许主片请求中断 OUT 21H, AL。 写中断屏蔽字 OCW1 IN AL, 0A1H。 设置中断掩码 ,读 IRM AND AL, IRQ_MASK_9_15。 允许从片请求中断 OUT 0A1H, AL。 写中断屏蔽字 OCW1 MOV AX,DATA MOV DS,AX MOV DX,OFFSET MSG2 MOV AH,09H。 9号功能,输出给定字符串 INT 21H MOV DX,OFFSET MSG3 MOV AH,09H INT 21H MOV IRQ_TIMES,0AH STI LOOP1: CMP IRQ_TIMES,0。 等待中断并判断中断 10 次后退出 JZ EXIT 共 27 页 第 15 页 MOV AH,1 INT 16H JNZ EXIT。 按任意键退出 JMP LOOP1 EXIT: CLI MOV BL, IRQ_MZSK_2_7。 恢复中断掩码 NOT BL IN AL, 21H OR AL, BL OUT 21H, AL MOV BL, IRQ_MASK_9_15 NOT BL IN AL, 0A1H OR AL, BL OUT 0A1H,AL MOV DX,IPREG。 恢复原中断向量 MOV AX,CSREG MOV DS,AX MOV AH,25H MOV AL,INT_VECT INT 21H MOV DX,IOPORT_CENT+68H。 设置 tpc 卡中 9054芯片 io口 ,关闭中断 IN AX,DX AND AX,0E7FFH OUT DX,AX MOV AX,4C00H。 结束,返回 DOS INT 21H INT_PROC PROC FAR。 中断服务程序 PUSH AX。 保护现场 PUSH DX PUSH DS DEC IRQ_TIMES MOV AX,DATA。 中断处理 ,输出给定字符串 MOV DS,AX MOV DX,OFFSET MSG1 MOV AH,09H INT 21H 共 27 页 第 16 页 MOV AL,20H。 写 OCW2,送中断结束命令 EOI OUT 0A0H,AL OUT 20H,AL POP DS POP DX POP AX STI IRET INT_PORC ENDP CODE ENDS END START 五、总结 做实验之前,我预习实验指导书,通过课本第六章的例 题 63,我 大体知道怎么样才能实现, 但不知道怎样设置 TPCK 卡的中断使能,不知道什么叫做中断掩码,以致编写程序有些困难,通过老师的讲解我明白了中断使能的编写,中断掩码就是编写 82599A的 0CW1。 通过实验,学会了 8259A芯片 初始化 ,掌握 8259A基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。 实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。 实验四 模 /数转换器 ADC0809 一、实验目的 了解模 /数转换的基本原理,掌握 ADC0809的使用方法。 二、实验内容 1、实验电路原理图如图下。 通过实验台左 下角电位器 RW1输出 0~ 5V直流电压送入ADC0809通道 0(IN0), 编程采集 IN0输入的电压 ,在屏幕上显示出转换后的数据(用 16进制数) 将 JP3的 2短接,使 IN2处于双极性工作方式,并给 IN1输入一个低频交流信号(幅度为177。 5V),编程采集这个信号数据并在屏幕上显示波形。 实验提示: ○ 1 ADC0809的 IN0口地址为 298H, IN1口地址为 299H。 ○ 2 IN0单极性输入电压与转换后数字的关系为: i 256REFUUN 共 27 页 第 17 页 其中 Ui为输入电压, UREF为参考电压,这里的参考电压为PC机的+5V电源。 ○ 3 、一次 A/D转换的程序可以为 MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在 AL 中 三、参考流程图 开 始结 束启 动 A / D 转 换延 时所 读 数 据 赋 给 B L将 数 据 右 移 四 位调 显 示 子 程 序 显 示 其 高 四 位调 显 示 子 程 序 显 示 其 低 四 位从 B L 中 取 出 数 据 和 0 F H 相 与读 入 转 换 后 数 据有 按 键 吗。 YN 主程序 共 27 页 第 18 页 开 始结 束将 A L 赋 给 D LD L 加 7显 示 A S I I 码 为 D L 的 字 符D L 加 3 0 HD L 大 于 9 吗。 YN 显示子程序 四、源程及注释 CODE SEGMENT ASSUME CS:CODE START: MOV DX,0EC18H。 启动 A/D转换器 OUT DX,AL MOV CX,0FFH。 延时 DELAY: LOOP DELAY IN AL,DX。 从 A/D转换器输入数据 MOV BL,AL。 将 AL保存到 BL MOV CL,4 SHR AL,CL。 将 AL右移四位 CALL DISP。 调显。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。