DMA应用.docx
- 文档编号:23736401
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:11
- 大小:190.30KB
DMA应用.docx
《DMA应用.docx》由会员分享,可在线阅读,更多相关《DMA应用.docx(11页珍藏版)》请在冰豆网上搜索。
DMA应用
INNERMONGOLIANORMALUNIVERSITY
微机接口作业二
(DMA应用)
学校:
内蒙古师范大学
院系:
计算机与信息工程学院
专业班级:
计算机科学与技术07蒙班
姓名:
满都呼
第一章系统设计
1.1系统组成分析
系统要求整个系统开始工作后无CPU参与,有DMAC完成整个读取和传送输出作业。
整个硬件系统主要由5个部分组成。
DC+5V稳压电源供电。
由8086CPU负责初始化任务。
时钟信号通过8253芯片计数延时输出周期为2秒,此信号作为DMA请求信号。
8255芯片做开关输入和LED输出。
8237芯片每收到请求的周期刚好1秒,前一秒通道0读取8255的PA口送至存储器,后1秒1通道读取存储器输出至8255的PB口。
软件根据各个芯片特点和系统要求用汇编语言编写。
由各个芯片初始化程序组成。
系统只要初始化完毕开始工作则无CPU参与可读取开关值并输出值LED显示灯上。
这些工作主要由DMAC执行完成。
第二章硬件组成
2.1硬件系统设计
整个硬件系统主要由五个部分组成。
硬件原理图如附图。
在下节中对硬件部分进一步详细分析。
2.2单元分析
1.电源
电源使用市电220V,通过变压器变成10V左右的交流电,再通过开关J1A和桥式整流变成直流电。
C1、C2、C3为滤波电容,LED1为电源指示灯,R1为LED1的限流电阻。
直流电通过LM7805变成稳压DC+5V电压供给系统。
电源功率应不小于10W。
电源电路图如下图:
电源电路图
2.8086CPU
该系统中CPU只需供电、外部时钟、复位部分和锁存器,不需存储器等设备。
锁存器提供地址线。
CPU单元电路图如下图:
CPU单元
上图中由晶体振荡器产生基准信号,通过8284供给CPU时钟。
晶振具有振荡频率准确、工作稳定的特点,经常在时钟信号产生中使用。
图中电阻和电容构成复位电路,电通过电阻充电容的过程中CPU得到复位,电容被充满后RES脚保持高电平,从而达到自动上电复位目的。
其RD、WR、AD、INTR等引脚根据实际要求与外围器件连接。
在系统连接部分详细阐述。
3.DMAC
DMA控制器使用8237A-5芯片。
电源电压为+5V,A0—A7连接CPU总线(A4--A11),A1、A0分别与CPU的A3、A2连接当做地址线。
输入3/8MHz信号做时钟基准信号,计数器要用配合使用计数器0和1实现1S时钟输出。
WR、RD分别与CPU的WR和RD连接。
采用硬件复位方法,不需软复位。
其单元电路图如下:
DMAC部分
4.并口与显示部分
显示部分输出使用8255芯片。
电源电压+5V,D0—D7连接CPU总线(A4--A11),A1、A0分别与CPU的A3、A2连接当做地址线。
WR、RD分别与CPU的WR和RD连接。
PA口做数值输出,而PB口低六位负责位选择。
数码管使用共阴8为数码管,其组成原理图如下:
位选择引脚与数码管间用S8550三极管做启动电路。
可减轻8255负载并提高显示效果。
数码管显示数字对应的二进制电平信号如下表:
十六进制数依次表示为FC、06、DA、F2、66、B6、3E、E0、FE、1A。
开关与显示部分原理图如下图:
开关与显示部分原理图
5.系统连接
因上述三个芯片有地址重叠,所以想办法实现独立控制。
这里使用74LS138译码电路和或非门来实现此功能。
该芯片工作电压DC5V。
原理图如下:
图中AB引脚分别连接CPU的A0和A1,从而得到以下关系:
BA=00CS1=0;BA=01CS2=0;BA=10CS3=0;BA=11CS1=CS2=CS3=0。
CS1、CS2、CS3分别与8253、8237、8255芯片的CS连接。
整个系统连接电路图如下图。
6.完整电路图如下:
第三章软件组成
3.1计数器程序
该系统使用8253的定时器0和1,均工作在方式3状态。
因输入时钟为3/8MHz,所以两个计数器初始值分别为3a98h(15000次)和19h(25次)即可输出1秒的脉冲给8259芯片。
初始化程序代码如下:
Assumecs:
code
Codesegmentpublic
Org100h
Start:
movdx,1698h;0001011010011000
movax,36h;方式3
outdx,ax
movax,98h
outdx,ax
movax,3ah
outdx,ax;初始化计数器0完毕
movdx,1294h;0001001010010100
movax,76h
outdx,ax
movax,32h;输出周期为2s
outdx,ax
movax,0
outdx,ax;初始化计数器1完毕
3.28237芯片程序
Org100h
Datasegment
DB0;
Dataends
movdx,01h;0通道地址
movax,offsetDB;写地址
outdx,ax
movdx,05h;1通道地址
movax,offsetDB
movdx,01h
movax,88h
outdx,ax
movax,85h
outdx,ax
movdx,0eh
movax,0fh
outdx,ax
movdx,21h;命令端口
movax,80h
outdx,ax
3.3并口及显示程序
Assumecs:
code
Codesegmentpublic
Org100h
Start:
movdx,129ah;0001001010011010
movax,90h
outdx,ax;PA、PB分别设置为输入和输出
3.4程序的整合
DATASEGMENT
SDB0
DATAENDS
Assumecs:
codeds:
data
Codesegmentpublic
Org100h
Start:
movdx,1698h;0001011010011000
movax,36h
outdx,ax
movax,0940h;计数器0的地址
outdx,ax
movax,3ah
outdx,ax;初始化计数器0完毕
movdx,1698h;
movax,76h
outdx,ax
movdx,1288h;计数器1的地址
movax,32h
outdx,ax
movax,0
outdx,ax;初始化计数器1完毕
;以上为8253初始化
movdx,129ah;0001001010011010
movax,90h
outdx,ax;PA、PB分别设置为输入和输出
movdx,01h;0通道地址
movax,offsetS;写地址
outdx,ax
movdx,05h;1通道地址
movax,offsetS
movdx,01h
movax,88h
outdx,ax
movax,85h
outdx,ax
movdx,0eh
movax,0fh
outdx,ax
movdx,21h;命令端口
movax,80h
outdx,ax
movdx,129ah;0001001010011010
movax,80h
outdx,ax;PA、PB设置为输出
movax,FC;初始化显示0
movdx,1282h;A的地址0001001010000010
outdx,ax
movax,0h;初始化时全位显示
movdx,128ah;B的地址0001001010001010
outdx,ax
;以上为8255初始化
Start:
movdx,0eh
movax,0ch
outdx,ax
loopStart
movah,04h
int21h
codeends
endstard
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMA 应用