目录 第9章 可编程DMA控制器8237A 9.1 8237A的引脚与内部结构 9.1.1项目1:利用8237进行存贮器到存贮器数据传送 9.1.2 知识讲解 9.2 8237A的控制字及应用 9.2.1项目2:用8237A从接口向RAM输入数据并显示 9.2.2 知识讲解 9.3 项目扩展与工程应用 9.3.1 项目3:DMA进行存贮器到存贮器传送数据 9.3.2 项目4:DMA进行存贮器到I/O数据传送 思考题与练习题 第9章 可编程DMA控制器8237A 9.1 8237A的引脚与内部结构 9.1.1项目1:利用8237进行存贮器到存贮器数据传送 1.项目要求与目的 (1)项目要求:利用8086CPU 控制8237A 可编程DMA 控制器,实现存贮器 之间的DMA 数据传送。 (2)项目目的: ●了解8237A DMA 控制器基本原理。 ●掌握8237A DMA 控制器的使用方法。 ●学习用DMA 进行存贮器到存贮器传送数据的编程方法。 2.项目电路连接与说明 (1)项目电路连接:做MEM=>MEM 数据传送时无需用户联线,系统自动做总线切换,本程序将RAM 中的一段数据用DMA 方式复制到另一地址。 (2)项目说明:实验过程中不用联线,程序运行状态通过查看存贮器、寄存器内容来观察。要传送存储器的起始地址为 8100H:0000H,传送字节数2000,8237的端口地址为 00H~0FH,8237通道 1的页面寄存器端口地址为 83H,则利用8237通道 1进行存储器的数据传送。 对程序进行编译连接后,使光标指向最后一条 MOV 指令处,点击菜单栏"调试"下拉菜单的"执行到光标所在行",使程序执行到此处。 查看运行后 8237 寄存器值、存贮器的内容,点击菜单栏"查看"的"数据区窗口"中的"代码段数据窗口",查看8100:0000 到8100:0800 中数据与8100:0100 到8100:0900 中数据一致(要注意各实验系统为用户提供的RAM 区间)。 3 .项目电路原理框图 DMA进行存贮器到存贮器传送数据电路框图如图9-1所示。电路由8086CPU芯片、8237A芯片、RAM等组成。 图9-1 DM A 进行存贮器到存贮器传送数据电路框图 4 .项目程序设计 (1)程序流程图 DMA 进行存贮器到存贮器传送数据程序流程图如图9-2 所示。 图9-2 DMA进行存贮器到存贮器传送数据程序流程图 (2)程序清单 DMA 进行存贮器到存贮器传送数据程序清单如下所示。 DMA EQU 00H DATA SEGMENT PB DB ? DATA ENDS STACK SEGMENT STACK STA DW 50 DUP(0) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:...