8237DMA数据传送课程设计报告Word文件下载.docx
- 文档编号:15293155
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:14
- 大小:321.51KB
8237DMA数据传送课程设计报告Word文件下载.docx
《8237DMA数据传送课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《8237DMA数据传送课程设计报告Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
10
六.收获和体验·
七.附件·
11
一.设计任务和要求
掌握DMA方式的工作原理和8237DMA控制器的编程使用方法,以及如何在实验系统环境下,使用DMA的CH0进行数据传送。
二.系统方案
8237是早期PC中采用的DMAC(现其功能已集成进芯片组),8237具有4个用于连接I/O设备进行数据传送的通道。
当I/O设备向某通道发出DMA请求时,该通道即可通过8237进行DMA数据传送。
利用本实验系统提供的8237A-5DMA控制的CH0,实现DMA的内存到内存的读、写传送,采用DMA软件请求,把内存中3000H~4FFFH单元内容传送到5000H~6FFFH单元中。
采用已有的DJ-598K三合一单片机微机试验仪作为设计平台,来构建系统,以减少设计工作量。
三.设计方法
1.硬件设计
硬件结构应结合软件方案一并考虑,做到软件、硬件功能相匹配。
在DJ-598K三合一单片机微机试验仪上,硬件设计参考方案如下:
2.8237简单介绍
(1)8237A引脚图
(2)8237A的内部寄存器格式
8237A控制寄存器格式
8237A模式寄存器格式
8237A状态寄存器格式
请求寄存器和屏蔽寄存器格式
多通道屏蔽寄存器格式
8237A端口地址
四.系统调试
1.仪器和仪表
计算机1台
微机实验箱1台
连接线若干
2.实验步骤
(1)联机操作:
连CS10到FF80H,在系统内存3000H~4FFFH单元中填充10,11,12,13……,运行程序8237·
ASM,当系统显示“8237——good”表示DMA传送结束,按RST钮,返回P态,用内存读写命令检查5000H~6FFFH单元内容是否和3000H~4FFFH单元内容相一致,验证其正确性。
(2)脱机操作:
连CS10到FF80H,实验系统处于P态下,按SCAL键,然后在系统内存3000H~4FFFH单元中填充10,11,12,13……,输入2860,按EXEC键即可,当系统显示“8237——good”表示DMA传送结束,按RST钮,返回P态,用内存读写命令检查5000H~6FFFH单元内容是否和3000H~4FFFH单元内容相一致,验证其正确性。
3.实验数据
连接CS10与FF80H
运行完程序,系统显示8237——good。
DMA传送结束之后,按RST键,返回P状态。
这时的3000~4FFFH与5000~6FFFH内存单元的内容,由图片可看到,两段内存单元内的内容完全相同。
4.故障与阻碍
在实验过程中,对于在系统内存3000H~4FFFH中存入10,11,12,……一开始不知道应该存入,通过询问与回忆之前做过的微机实验,最后在实验箱上操作存入了这些数据。
对于程序的编写,感觉课题过大,一开始觉得无从下手,通过对过程仔细的整理,翻查书本中8237DMA传送部分的理论知识,以及老师的指导下,最后完成了程序的编写。
五.设计结论
8237是早期PC中采用的DMAC,具有4个用于连接I/O设备进行数据传送的通道。
8237的逻辑结构包括时序和控制逻辑;
内部计数器、寄存器组、程序命令控制逻辑;
优先级编码逻辑;
地址、数据缓冲器组等部分。
8237内部有四个独立通道,每个通道都有五个寄存器——工作方式、基值地址、当前地址、基值字节计数、当前字节计数,另外还有四个通道公用的命令寄存器和状态寄存器,以及对DRQ信号的屏蔽寄存器和DMA服务请求寄存器等。
DMA是一种外设与存储器或者存储器与存储器之间直接传输数据的方式.在进行DMA存取时,CPU让出总线控制权,不再采用输入、输出指令的方法进行数据存取,而用一个专门的硬件控制电路控制外设与存储器或存储器与存储器之间直接交换数据,减少了中间环节,从而提高传送速度和CPU的效率。
本次实验目的是实现8237DMA数据的传送,实验做的还算顺利,只不过刚开始的时候由于粗心大意,没有把实验步骤做正确,总是得不到想要的实验结果,最后按照正确的实验步骤,得到了实验结果。
六.收获和体验
通过本次课程设计,我们首次接触这样一个比较大,比较系统的程序设计,完成一项功能,开始觉得很有困难。
这学期刚刚接触到汇编语言的编程,还没有很熟悉,课堂中也都是书上给好的程序,作业里也都是一些小型的,简单的程序,所以感觉有点无从下手。
之后通过复习书本,询问老师以及上网查找资料,对课程设计的过程进行仔细得分析,最后完成了编程。
完成编程后,根据课程设计的指导书上的指导,顺利完成了本次设计。
通过这次课程设计,我明白了任何大的程序都是由一部分一部分小程序构成的,我们不能怕繁琐,应仔细分析过程,一步步编写,最后再系统地将这些小部分连接成大的程序,达到我们的目的。
七.附件(8237DMA数据传送课程设计源程序)
;
8237.ASM,MOV:
RAMFROM3000HTO5000H;
BYTE-MOV
CODESEGMENT
ASSUMECS:
CODE
PCTLEQU0FF23H;
控制口
PAEQU0FF20H;
字位口
PBEQU0FF21H;
字形口
PCEQU0FF22H;
键入口
CLEARFEQU0FF8CH
CH0AEQU0FF80h
CH1AEQU0FF82H
CH1CEQU0FF83H
MODEEQU0FF8BH
CMMDEQU0FF88H
MASKSEQU0FF8FH
REQEQU0FF89H
STATUSEQU0FF88H
rstequ0FF8dh
LATCHEQU9000H
ORG2860H;
FORMEPROMFILE(.COM),SETORG=0100H
START:
JMPSTART0
BUFDB?
?
data1:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h
db86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH
START0:
MOVSI,3000H
MOVDI,5000H
MOVCX,1FFFH
MOVAL,00
MOVDX,LATCH
OUTDX,AL
NOP
movdx,rst
outdx,al
MOVDX,CLEARF
MOVAL,0FH;
MASK_CH_0-3
MOVDX,MASKS
MOVDX,CH0A;
L-SAD
MOVAX,SI
MOVAL,AH
MOVDX,CH1A;
L-DAD
MOVAX,DI
MOVAX,CX;
COUNT
MOVDX,CH1C
MOVAL,48H;
P_MODE
MOVDX,MODE
MOVAL,45H
MOVAL,01H;
ON-8237
MOVDX,CMMD
L1:
MOVAL,0EH;
UNMASK_CH_0
MOVAL,04H;
START_DMA_TRANSFER
MOVDX,REQ
MOVDX,STATUS
WAIT1:
INAL,DX
TESTAL,03H
JZWAIT1
CALLCMP1
JNZERR
MOVAH,AL
CMPAX,0FFFFH
JNZL1
CALLBUF1
MOVCX,0080H
L2:
PUSHCX
CALLDISP
POPCX
LOOPL2
CALLBUF2
L3:
JMPL3
---------------------------------------------
CMP1:
MOVDX,CH0A
CALLCMP10
MOVSI,AX
MOVDX,CH1A
MOVDI,AX
MOVAX,[SI]
CMP[DI],AX
RET
CMP1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8237 DMA 数据 传送 课程设计 报告