清华大学电子工程系:《微机原理》实验四DMA

实验四DMA传送实验 无82班王一舟981070 实验四DMA传送实验 实验目的 掌握DMA方式的工作原理和8237的编程使用方法 二.实验要求: 1.按照实验指导第61页的实验接线图连接硬件线路 2.对照【例3.6.1】的程序清单键入源程序,经汇编和连接后运行程序 实验电路 四.实验程序 DISP MACRO VAR 宏定义 MOV AH. 09H 将形参中所存的以结尾的字符串显示在屏幕上 MOV DX OFFSET VAR INT 21H ENDM SCANKEY MACRO 宏定义 LOCAL 为标号LL建立唯一的从??0001H到?FFFH的符号 LLL: MOV AH, 01H 等待是否有键按下 JZ LLL 无则继续等待 MOV AH 0 否则读出键值 ENDM DATA SEGMENT
实验四 DMA 传送实验 无 82 班 王一舟 981070 1 实验四 DMA 传送实验 一.实验目的: 掌握 DMA 方式的工作原理和 8237 的编程使用方法。 二.实验要求: 1. 按照实验指导第 61 页的实验接线图连接硬件线路 2. 对照【例 3.6.1】的程序清单键入源程序,经汇编和连接后运行程序 三.实验电路 四.实验程序: DISP MACRO VAR ;宏定义 MOV AH,09H ;将形参中所存的以结尾的字符串显示在屏幕上 MOV DX,OFFSET VAR INT 21H ENDM SCANKEY MACRO ;宏定义 LOCAL LLL ;为标号LLL建立唯一的从??0001H到??FFFFH的符号 LLL: MOV AH,01H ;等待是否有键按下 INT 16H JZ LLL ;无则继续等待 MOV AH,0 ;否则读出键值 INT 16H ENDM DATA SEGMENT

实验四DMA传送实验 无82班王一舟981070 TEXT DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB ODH OAH DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB ODH,OAH,’$ COUNT EQU S-TEXT TEXT的总长度 BUF DB COUNT DUP(?) MESG DB TO MAKE A DMA REQUEST DB’ THEN STRIKE ANY KEY!’,ODH,OAH,$ DATA ENDS STACK SEGMENT STACK STACK DB 256 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA. SS: STACK BEG: MOV AX. DATA 主程序部分 MoV DS, AX 装入数据段 CALL I8237R DMA通道1读出初始化 DISP MESG 显示操作提示 SCANKEY 等待直到有键按下,读出键值 LASTI: IN AL. 08H 读DMA状态寄存器 传送是否结束 JZ LASTI 否则继续等待传送结束 CALL I8237W DMA通道1写入初始化 DISP MESG 显示操作提示 SCANKEY 等待直到有键按下,读出键值 LAST2: IN AL. O8H 读DMA状态寄存器 AND AL. 02H 传送是否结束 JZ LAST2 否则继续等待传送结束 DISP BUF 显示BUF中DMA读写传送的最后结果 MoV AH. 4CH INT 21H 结束程序并返回DS I8237R PROC DMA通道1读出初始化 OUT OAH. AL 通道1屏蔽触发器置1 MOV AL,01001001B 通道1方式字,单字节写传送 OUT OBH. AL 自动加1变址,不自动预置 OUT OCH. AL 先/后触发器置0 MOV AX, DATA AX为TEXT的段基址 MOV BX OFFSET TEXT BX为TEXT的有效地址 CALL ADDRMOV 计算输出TEXT单元的20位物理地址 RET 2
实验四 DMA 传送实验 无 82 班 王一舟 981070 2 TEXT DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG' DB 0DH,0AH DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG' DB 0DH,0AH DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG' DB 0DH,0AH,'$' COUNT EQU $-TEXT ;TEXT的总长度 BUF DB COUNT DUP(?) MESG DB 'TO MAKE A DMA REQUEST!' DB 'THEN STRIKE ANY KEY!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACK 'STACK' DB 256 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEG: MOV AX,DATA ;主程序部分 MOV DS,AX ;装入数据段 CALL I8237R ;DMA通道1读出初始化 DISP MESG ;显示操作提示 SCANKEY ;等待直到有键按下,读出键值 LAST1: IN AL,08H ;读DMA状态寄存器 AND AL,02H ;传送是否结束 JZ LAST1 ;否则继续等待传送结束 CALL I8237W ;DMA通道1写入初始化 DISP MESG ;显示操作提示 SCANKEY ;等待直到有键按下,读出键值 LAST2: IN AL,08H ;读DMA状态寄存器 AND AL,02H ;传送是否结束 JZ LAST2 ;否则继续等待传送结束 DISP BUF ;显示BUF中DMA读写传送的最后结果 MOV AH,4CH INT 21H ;结束程序并返回DOS I8237R PROC ;DMA通道1读出初始化 MOV AL,05H OUT 0AH,AL ;通道1屏蔽触发器置1 MOV AL,01001001B ;通道1方式字,单字节写传送 OUT 0BH,AL ;自动加1变址,不自动预置 MOV AL,0 OUT 0CH,AL ;先/后触发器置0 MOV AX,DATA ;AX为TEXT的段基址 MOV BX,OFFSET TEXT ;BX为TEXT的有效地址 CALL ADDRMOV ;计算输出TEXT单元的20位物理地址 RET

实验四DMA传送实验 无82班王一舟981070 I8237R ENDP I 8237W PROC DMA通道1写入初始化 MOV AL, O5H OUT OAH 通道1屏蔽触发器置1 MOV AL,01000101B 通道1方式字,单字节写传送 OUT OBH. AL 自动加1变址,不自动预置 MOV AL, O OUT OCH. AL 先/后触发器置0 MOV AX. DATA AX为BUF的段基址 MOV BX OFFSET BUF BX为BUF的有效地址 CALL ADDRMOV 计算并输出BF单元的20位物理地址 I8237W ENDP ADDRMOV PROC 计算并输出某地址 MOV CX, 0004H ;计算用AX:BX表示的物理地址 SAL AX, 1 RCL CH 1 将移位时的溢出计入CH DEC CL JNZ LL ADD AX, BX AX=AX*4+BX JNC NEXTI INC CH NEXTIl: OUT 02H, AL ;低8位存入通道1基本地址寄存器 MOV AL, AH OUT 02H AL 中8位存入通道1基本地址寄存器 MOV AL, CH OUT 83H, AL 高4位存入通道1页面寄存器 MOV AX, COUNT-1 要传送的字节数减1传给基本字节寄存器 OUT 03H, AL OUT 03H. AL MOV AL, 01 OUT OAH. AL ;解除通道1屏蔽 RET ADDRMOV ENDP CODE ENDS END BEG 五.实验分析: 分析DMA时序 1.读过程 按下DMA按键,通过端子向DMA通道1发硬件DMA请求,系统DMA控制器向CPU 发总线请求信号,CP在执行完当前总线周期后向系统DMA控制器发总线响应信号, 随即把总线控制权交给DMA控制器,此时/DACK1有效。然后DMA控制器将通道1的
实验四 DMA 传送实验 无 82 班 王一舟 981070 3 I8237R ENDP I8237W PROC ;DMA通道1写入初始化 MOV AL,05H OUT 0AH,AL ;通道1屏蔽触发器置1 MOV AL,01000101B ;通道1方式字,单字节写传送 OUT 0BH,AL ;自动加1变址,不自动预置 MOV AL,0 OUT 0CH,AL ;先/后触发器置0 MOV AX,DATA ;AX为BUF的段基址 MOV BX,OFFSET BUF ;BX为BUF的有效地址 CALL ADDRMOV ;计算并输出BUF单元的20位物理地址 RET I8237W ENDP ADDRMOV PROC ;计算并输出某地址 MOV CX,0004H ;计算用AX:BX表示的物理地址 LL: SAL AX,1 RCL CH,1 ;将移位时的溢出计入CH DEC CL JNZ LL ADD AX,BX ;AX<=AX*4+BX JNC NEXT11 INC CH NEXT11: OUT 02H,AL ;低8位存入通道1基本地址寄存器 MOV AL,AH OUT 02H,AL ;中8位存入通道1基本地址寄存器 MOV AL,CH OUT 83H,AL ;高4位存入通道1页面寄存器 MOV AX,COUNT-1 ;要传送的字节数减1传给基本字节寄存器 OUT 03H,AL MOV AL,AH OUT 03H,AL MOV AL,01 OUT 0AH,AL ;解除通道1屏蔽 RET ADDRMOV ENDP CODE ENDS END BEG 五. 实验分析: 分析 DMA 时序。 1.读过程 按下 DMA 按键,通过端子向 DMA 通道 1 发硬件 DMA 请求,系统 DMA 控制器向 CPU 发总线请求信号,CPU 在执行完当前总线周期后向系统 DMA 控制器发总线响应信号, 随即把总线控制权交给 DMA 控制器,此时/DACK1 有效。然后 DMA 控制器将通道 1 的

实验四DMA传送实验 无82班王一舟981070 页面地址寄存器及当前地址寄存器中的内容放到地址总线上去,并发出存储器读命 令,读出内存单元中的text内容送往数据总线。由于/DACK1有效,通过J4短路线 选中616和双向总线驱动器74LS245,/IOW有效,通过J3短路线,使6116的/WE 有效,从而把数据总线上的数据通过74LS245写入到6116的0号单元,完成一次 DMA读传送。此时通道1当前地址寄存器自动加1,当前字节寄存器自动减1。另外 通过U38和JS引线向分频器输入一个进位脉冲,使分频器计数一次,Q10°Q0输出 选择616的下一个单元。再反复上述读过程直到当前字节寄存器为FFFH为止,读 过程结束。 2.写过程 按下DMA按键,通过端子向DMA通道1发硬件DMA请求,系统DMA控制器向CPU发 总线请求信号,CPU在执行完当前总线周期后向系统DMA控制器发总线响应信号 随即把总线控制权交给DMA控制器,此时/ACKI有效。然后DMA控制器将通道1的 页面地址寄存器及当前地址寄存器中的内容放到地址总线上去,并发出存储器读命 令,读出内存单元中的text内容送往数据总线。由于/DACK1有效,通过J4短路线 选中616和双向总线驱动器74LS245,/IOR有效,通过J2短路线,使6116的/RD 有效,从而读出6116当前单元的内容,通过74LS245写入到系统数据总线,完成 次DMA写传送。此时通道1当前地址寄存器自动加1,当前字节寄存器自动减1。另 外通过U38和JS引线向分频器输入一个进位脉冲,使分频器计数一次,Q10Q0输 出选择6116的下一个单元。再反复上述读过程直到当前字节寄存器为FFFH为止, 写过程结東。 4.4LS393在本实验中的作用作为一个分频器,在本实验中起到了选定存储器6116 地址的作用。这是通过输入译码后的进位时钟实现的。 5.DMA传送过程及特点 DMA传送方式是在内存与外设之间开辟专用的数据通道,这个数据通道在DMA控 制器的控制下直接进行数据交换而不通过CPU,不用LO指令。这样,数据传送的 速度上限取决于存储器的存储速度。因而DMA方式主要用于速度要求比较高的场 合 六.实验小结 这次实验其实要让我们自己来考虑设计实现的话是非常困难的,好在书上已经给了 我们实验电路和原程序代码,所以我们只要将书上的例子看明白的就可以做了,不过 这样一来,也可能有些人连书上的程序都不看而直接敲入代码运行通过,这样就什么都 没有学到,没有达到实验的效果了 我做这个实验时到了最后一周了,许多实验板已经坏了,有时候即使实验步骤完全 正确由于板子的原因也做不出来。我就被害的够惨的了,插了几次线,还是不出来,最 后到别人的板子上去一试就成了。但我觉得,通过做这个实验,我对DMA的读写时序 有了更深的理解,原来学的时候好多不明白的地方都有的新的认识,比如总线的传送 DACK、IOW的有效和复位等等,是比较清楚的了 我决的做硬件实验其实并不是说要做的快或实验出结果就好,关键在于通过实验使 我们对硬件和软件的原理更加认识深入,在以后的工作学习中能够学以致用,这才真正 达到我们做实验的目的
实验四 DMA 传送实验 无 82 班 王一舟 981070 4 页面地址寄存器及当前地址寄存器中的内容放到地址总线上去,并发出存储器读命 令,读出内存单元中的 text 内容送往数据总线。由于/DACK1 有效,通过 J4 短路线 选中 6116 和双向总线驱动器 74LS245,/IOW 有效,通过 J3 短路线,使 6116 的/WE 有效,从而把数据总线上的数据通过 74LS245 写入到 6116 的 0 号单元,完成一次 DMA 读传送。此时通道 1 当前地址寄存器自动加 1,当前字节寄存器自动减 1。另外 通过 U38 和 JS 引线向分频器输入一个进位脉冲,使分频器计数一次,Q10~Q0 输出 选择 6116 的下一个单元。再反复上述读过程直到当前字节寄存器为 FFFFH 为止,读 过程结束。 2.写过程 按下 DMA 按键,通过端子向 DMA 通道 1 发硬件 DMA 请求,系统 DMA 控制器向 CPU 发 总线请求信号,CPU 在执行完当前总线周期后向系统 DMA 控制器发总线响应信号, 随即把总线控制权交给 DMA 控制器,此时/DACK1 有效。然后 DMA 控制器将通道 1 的 页面地址寄存器及当前地址寄存器中的内容放到地址总线上去,并发出存储器读命 令,读出内存单元中的 text 内容送往数据总线。由于/DACK1 有效,通过 J4 短路线 选中 6116 和双向总线驱动器 74LS245,/IOR 有效,通过 J2 短路线,使 6116 的/RD 有效,从而读出 6116 当前单元的内容,通过 74LS245 写入到系统数据总线,完成一 次 DMA 写传送。此时通道 1 当前地址寄存器自动加 1,当前字节寄存器自动减 1。另 外通过 U38 和 JS 引线向分频器输入一个进位脉冲,使分频器计数一次,Q10~Q0 输 出选择 6116 的下一个单元。再反复上述读过程直到当前字节寄存器为 FFFFH 为止, 写过程结束。 4. 4LS393 在本实验中的作用作为一个分频器,在本实验中起到了选定存储器 6116 地址的作用。这是通过输入译码后的进位时钟实现的。 5.DMA 传送过程及特点 DMA 传送方式是在内存与外设之间开辟专用的数据通道,这个数据通道在 DMA 控 制器的控制下直接进行数据交换而不通过 CPU,不用 I/O 指令。这样,数据传送的 速度上限取决于存储器的存储速度。因而 DMA 方式主要用于速度要求比较高的场 合。 六.实验小结: 这次实验其实要让我们自己来考虑设计实现的话是非常困难的,好在书上已经给了 我们实验电路和原程序代码,所以我们只要将书上的例子看明白的就可以做了,不过, 这样一来,也可能有些人连书上的程序都不看而直接敲入代码运行通过,这样就什么都 没有学到,没有达到实验的效果了。 我做这个实验时到了最后一周了,许多实验板已经坏了,有时候即使实验步骤完全 正确由于板子的原因也做不出来。我就被害的够惨的了,插了几次线,还是不出来,最 后到别人的板子上去一试就成了。但我觉得,通过做这个实验,我对 DMA 的读写时序 有了更深的理解,原来学的时候好多不明白的地方都有的新的认识,比如总线的传送, DACK、IO/W 的有效和复位等等,是比较清楚的了。 我决的做硬件实验其实并不是说要做的快或实验出结果就好,关键在于通过实验使 我们对硬件和软件的原理更加认识深入,在以后的工作学习中能够学以致用,这才真正 达到我们做实验的目的
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学电子工程系:《微机原理》实验四 接口实验.doc
- 清华大学电子工程系:《微机原理》实验二小键盘按键识别.doc
- 清华大学电子工程系:《微机原理》实验三ADDA.doc
- 清华大学电子工程系:《微机原理》实验三 汇编语言程序设计(3).doc
- 清华大学电子工程系:《微机原理》实验一设计数码管电子表.doc
- 清华大学电子工程系:《微机原理》考试大纲.doc
- 清华大学电子工程系:《微机原理》MessageBox.doc
- 清华大学电子工程系:《微机原理》ISA-based data acquisition and control board.doc
- 《网络安全设计》 附录 D CHAP、 MS-CHAP和 MS-CHAP V2中的 身份验证.ppt
- 《网络安全设计》 附录C安全管理的运营框架设计.ppt
- 《网络安全设计》 附录B网络管理策略的设计.ppt
- 《网络安全设计》 附录A可接受使用策略的设计.ppt
- 《网络安全设计》 第十二章 设计安全事件应对措施.ppt
- 《网络安全设计》 第十一章 创建网络周边安全设计.ppt
- 《网络安全设计》 第十章 创建数据传输安全设计.ppt
- 《网络安全设计》 第九章 数据安全设计.ppt
- 《网络安全设计》 第八章 身份验证的安全设计.ppt
- 《网络安全设计》 第七章 创建账户安全设计.ppt
- 《网络安全设计》 第六章 创建计算机安全设计.ppt
- 《网络安全设计》 第五章 创建物理资源安全设计.ppt
- 清华大学电子工程系:《微机原理》第一章 微型计算机系统概论.ppt
- 清华大学电子工程系:《微机原理》第二章 Pentium微处理器的体系结构 2.1 计算机体系结构的含义 2.2 Pentium微处理器的内部结构 2.3 实模式软件体系结构.ppt
- 清华大学电子工程系:《微机原理》第三章 Pentium微处理器的指令系统 3.1 概述 3.2 Pentium微处理器的寻址方式 3.3 数据传送指令 3.4 算术运算指令.ppt
- 清华大学电子工程系:《微机原理》第三章 Pentium微处理器的指令系统(3.5-3.10)第四章 汇编语言程序设计(4.1-4.4).ppt
- 清华大学电子工程系:《微机原理》第四章 汇编语言程序设计 4.5 保护模式下的汇编语言程序设计 4.6 Win32汇编语言程序设计 4.7 与高级语言的接口.ppt
- 清华大学电子工程系:《微机原理》第四章 Pentium微处理器的体系结构 2.4 保护模式软件体系结构 2.5 浮点部件软件体系结构.ppt
- 清华大学电子工程系:《微机原理》浮点运算指令及汇编语言程序设计.ppt
- 清华大学电子工程系:《微机原理》第五章 Pentium微处理器的硬件接口.ppt
- 清华大学电子工程系:《微机原理》第六章 存储器系统.ppt
- 清华大学电子工程系:《微机原理》第七章 输入输出接口 7.1概述 7.2CPU与外设数据传送的方式 7.3可编程计数器/定时器8253.ppt
- 清华大学电子工程系:《微机原理》第八章 中断与中断控制 8.1 中断的基本概念 8.2 可编程中断控制器8259 8.3 中断服务程序的编程 8.4 保护模式的中断处理.ppt
- 清华大学电子工程系:《微机原理》第七章 输入/输出接口 7.4串行通讯和串行接口 7.5 并行接口.ppt
- 清华大学电子工程系:《微机原理》第七章 输入/输出接口 7.6 DMA控制器8237 7.7 D/A和A/D转换技术.ppt
- 清华大学电子工程系:《微机原理》第八章 总线 8.1 概述 8.2 ISA总线 8.3 PCI总线.ppt
- 清华大学电子工程系:《微机原理》期中自测试题.doc
- 清华大学电子工程系:《微机原理》自测试题参考答案.doc
- 清华大学电子工程系:《微机原理》汇编程序设计实验报告一.doc
- 清华大学电子工程系:《微机原理》第一周作业参考.doc
- 清华大学电子工程系:《微机原理》第七次作业参考答案.doc
- 清华大学电子工程系:《微机原理》第三次作业参考答案.doc