DMA控制器和计数定时器实用教案

上传人:pu****.1 文档编号:568588507 上传时间:2024-07-25 格式:PPT 页数:77 大小:4.36MB
返回 下载 相关 举报
DMA控制器和计数定时器实用教案_第1页
第1页 / 共77页
DMA控制器和计数定时器实用教案_第2页
第2页 / 共77页
DMA控制器和计数定时器实用教案_第3页
第3页 / 共77页
DMA控制器和计数定时器实用教案_第4页
第4页 / 共77页
DMA控制器和计数定时器实用教案_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《DMA控制器和计数定时器实用教案》由会员分享,可在线阅读,更多相关《DMA控制器和计数定时器实用教案(77页珍藏版)》请在金锄头文库上搜索。

1、17.7.1 DMA1 DMA控制器82378237A A Intel8237A Intel8237A是一种功能很强的可编程是一种功能很强的可编程DMADMA控制器。控制器。采用采用5MHZ5MHZ时钟时,其传输速率可达时钟时,其传输速率可达 1.6MB/s 1.6MB/s;一片;一片8237A8237A内部有四个独立的内部有四个独立的DMADMA通道,每个通道一次通道,每个通道一次DMADMA传送的最传送的最大长度可达大长度可达64KB64KB;每个通道的;每个通道的DMADMA请求都可以分别允许和请求都可以分别允许和禁止;不同通道的禁止;不同通道的DMADMA请求有不同的优先级,优先级可以

2、请求有不同的优先级,优先级可以是固定的,也可以是循环的(可编程确定是固定的,也可以是循环的(可编程确定(qudng)(qudng)););四个通道可以分时地为四个外部设备实现四个通道可以分时地为四个外部设备实现 DMA DMA传送,也可传送,也可以同时使用其中的通道以同时使用其中的通道0 0和通道和通道1 1实现存储器到存储器的直实现存储器到存储器的直接传送,还可以用多片接传送,还可以用多片8237A8237A进行级联,从而构成更多的进行级联,从而构成更多的DMADMA通道。通道。第1页/共76页第一页,共77页。2一、一、8237A8237A的编程结构的编程结构(jigu)(jigu)和对外

3、引和对外引脚信号脚信号82378237芯片芯片(xn (xn pin)pin)采用采用4040个引脚双个引脚双列直插式封列直插式封装。装。第2页/共76页第二页,共77页。3第3页/共76页第三页,共77页。4 8237 8237工作时各信号(xnho)(xnho)的配合: (1)当作为从模块工作时8237A就像I/O接口一样作为总线的从模块工作,此时CS、HRQ和AEN一定为低电平。8237接收16位地址,用高12位地址产生(chnshng)片选信号,用低4位来选择内部寄存器;用IOR和IOW作为读/写控制端;在CPU对8237A进行读/写时。第4页/共76页第四页,共77页。5 8237

4、8237工作(gngzu)(gngzu)时各信号的配合: (2) (2) 当作为主模块工作时 当8237A 8237A 作为主模块工作时,它会往总线上提供要访问的内存地址,此时CSCS、AENAEN信号为高电平。 作为主模块工作时,8237A8237A还必须输出IORIOR、IOWIOWMEMRMEMR、MEMWMEMW读/ /写信号。 另外最高4 4位地址在传输(chun sh)(chun sh)前,用指令送到一I/OI/O端口中,所以DMADMA传输(chun sh)(chun sh)时,每次传输(chun sh)(chun sh)字节限制在216216以下。第5页/共76页第五页,共77

5、页。6 8237A 8237A有四种工作模式,每个通道有四种工作模式,每个通道(tngdo)(tngdo)可以用四种模式之一工作。可以用四种模式之一工作。 (1) (1) 单字节传输模式:单字节传输模式: 此方式下,此方式下,8237A8237A一次请求总线只传送一次请求总线只传送一个字节,就释放总线控制权。一个字节,就释放总线控制权。8237A8237A和和CPUCPU交替管理。交替管理。 、二、二、8237A8237A的工作的工作(gngzu)(gngzu)模式模式第6页/共76页第六页,共77页。7 (2)块传输模式: 在此方式下,由DREQ启动后就连续的传送数据,直至完成预定字节数的传

6、送或由外部I/O接口(ji ku)输入有效的EOP信号,8237A才释放总线控制权而结束传输。 (3)请求传输模式: 此模式与块传输模式类似,所不同的是在每传输 1B后,8237A都对DREQ端进行测试,若仍有效则继续传送,若无效则立即停止传送,待DREQ再次有效后继续传送。第7页/共76页第七页,共77页。8 (4)级联传输模式: 此模式下,将几个(j )8237A进行级联,构成主从式DMA系统,以扩展DMA通道数。最多可以由 5个8237A构成二级DMA系统,得到16个DMA通道。第8页/共76页第八页,共77页。91. 8237A1. 8237A模式模式(msh)(msh)寄存器的格式寄

7、存器的格式D7D6D5D4D3D2D1D0模式模式(msh)(msh)选选择:择:00=00=请求传输请求传输01=01=单字节传输单字节传输10=10=块传输块传输11=11=级联传输级联传输传输传输(chun (chun sh)sh)类型选择:类型选择:00=00=校验传输校验传输(chun sh)(chun sh)01=01=写传输写传输(chun sh)(chun sh)10=10=读传输读传输(chun sh)(chun sh)11=11=无意义无意义通道选择:通道选择:00=00=选择通道选择通道0 001=01=选择通道选择通道1 110=10=选择通道选择通道2 211=11=

8、选择通道选择通道3 3自动预置功能选择:自动预置功能选择: 0= 0=禁止禁止 1= 1=允许允许写:I/O 内存读:内存 I/O三、三、82378237A A的寄存器及格式的寄存器及格式地址增减选择:地址增减选择:0=0=地址加地址加1 11=1=地址减地址减1 1第9页/共76页第九页,共77页。102. 8237A2. 8237A的控制的控制(kngzh)(kngzh)寄存器的格式寄存器的格式第10页/共76页第十页,共77页。11 3. 3. 状态状态(zhungti)(zhungti)寄存器的格式寄存器的格式第11页/共76页第十一页,共77页。124. 4. 请求请求(qngqi)

9、(qngqi)寄存器的格式寄存器的格式 硬件硬件DMADMA请求是由请求是由I/OI/O接口发的接口发的DREQDREQ信号信号(xnho)(xnho)实现的;而软件的实现的;而软件的DMADMA请求是通过使相应通道的请求是通过使相应通道的“请求位请求位”置位来实现的。此信号置位来实现的。此信号(xnho)(xnho)会反映到会反映到“状态寄存器状态寄存器”中。中。第12页/共76页第十二页,共77页。135. 8237A5. 8237A的屏蔽的屏蔽(pngb)(pngb)寄存器的格式寄存器的格式第13页/共76页第十三页,共77页。146. 8237A6. 8237A的综合的综合(zngh)

10、(zngh)屏蔽寄存器的格式屏蔽寄存器的格式第14页/共76页第十四页,共77页。157 7. . 暂存寄存器暂存寄存器 为8位,用于内存(nicn)到内存(nicn)传输时,暂时保存从源单元读出的数据,并经它再写入到目的单元。此字节可由CPU读出。Reset信号使该寄存器复位。第15页/共76页第十五页,共77页。16CPU向8237A输出的软件命令可分为两种不同的类型:一类是普通软件命令,这类命令不仅与写入的端口地址有关(yugun),也与写入软件命令时数据总线上的位模式有关(yugun);另一类软件命令即特殊的软件命令,这类命令只与写入的端口地址有关(yugun),而写入软件命令时数据总

11、线上的位模式无关。 8. 8237A 8. 8237A的特殊的特殊(tsh)(tsh)软件命令软件命令第16页/共76页第十六页,共77页。17(1 1)复位命令)复位命令 也叫主清除命令也叫主清除命令Master ClearMaster Clear)或综合清除)或综合清除命命令;该命令与硬件的令;该命令与硬件的ResetReset信号相同,即它使控制、信号相同,即它使控制、状态、状态、DMADMA请求、暂存器以及内部的先请求、暂存器以及内部的先/ /后触发器都后触发器都清清0 0,而使屏蔽寄存器置为全,而使屏蔽寄存器置为全“1”“1”。执行主清除命。执行主清除命令令后,使后,使8237823

12、7进入空闲周期进入空闲周期(zhuq)(zhuq),以便对其,以便对其编程。编程。 8. 8237A 8. 8237A的特殊软件的特殊软件(run jin)(run jin)命令命令第17页/共76页第十七页,共77页。18(2 2)清除先)清除先/ /后触发器命令后触发器命令 是用来控制是用来控制DMADMA通道中地址寄存器和字节计数通道中地址寄存器和字节计数器的初值而设置的。器的初值而设置的。 若该触发器为若该触发器为“0”“0”,则读,则读/ /写低写低8 8位;若为位;若为“1”“1”,则读,则读/ /写高写高8 8位。每当对位。每当对1616位寄存器进行一位寄存器进行一次读次读/ /

13、写操作,则触发器改变一次状态。写操作,则触发器改变一次状态。 为了保证对为了保证对1616位寄存器的读位寄存器的读/ /写是从低字节开写是从低字节开始,应事先用此软件命令使先始,应事先用此软件命令使先/ /后触发器强制后触发器强制(qingzh)(qingzh)清零。清零。 8. 8237A 8. 8237A的特殊的特殊(tsh)(tsh)软件命令软件命令第18页/共76页第十八页,共77页。19四、四、8237A8237A内部内部(nib)(nib)寄存器的寻址寄存器的寻址一片8237A占用16个连续的I/O端口地址。在片选信号CS有效的前提下,由地址信号A3A0,IOR及IOW实现对823

14、7A内部(nib)寄存器(I/O端口)的寻址。A3A0给出了各寄存器对应的端口地址的低4位。8237A内部(nib)寄存器的寻址情况如表所示:第19页/共76页第十九页,共77页。20A A3 3 A A2 2 A A1 1 A A0 0通道号通道号读操作读操作(IOR)(IOR)写操作写操作(IOW)(IOW)0 0 0 00 0 0 10读当前地址寄存器读当前地址寄存器 写基和当前地址寄存器写基和当前地址寄存器读当前字节计数器读当前字节计数器 写基和当前字节计数器写基和当前字节计数器0 0 1 00 0 1 11读当前地址寄存器读当前地址寄存器 写基和当前地址寄存器写基和当前地址寄存器读当

15、前字节计数器读当前字节计数器 写基和当前字节计数器写基和当前字节计数器0 1 0 00 1 0 12读当前地址寄存器读当前地址寄存器 写基和当前地址寄存器写基和当前地址寄存器读当前字节计数器读当前字节计数器 写基和当前字节计数器写基和当前字节计数器0 1 1 00 1 1 13读当前地址寄存器读当前地址寄存器 写基和当前地址寄存器写基和当前地址寄存器读当前字节计数器读当前字节计数器 写基和当前字节计数器写基和当前字节计数器8237A8237A内部内部(nib)(nib)寄存器寄存器的寻址的寻址第20页/共76页第二十页,共77页。21A A3 3 A A2 2 A A1 1 A A0 0通道号

16、通道号 读操作读操作(IORIOR)写操作写操作(IOWIOW)1 0 0 0四四个个通通道道公公用用 读状态寄存器读状态寄存器 写命令寄存器写命令寄存器1 0 0 1 写请求标志寄存器写请求标志寄存器1 0 1 0 写屏蔽标志寄存器写屏蔽标志寄存器1 0 1 1 写模式寄存器写模式寄存器1 1 0 0 清除先清除先/后触发器后触发器 读暂存寄存器读暂存寄存器 发复位命令发复位命令1 1 0 11 1 1 0 清除屏蔽标志清除屏蔽标志1 1 1 1 写综合屏蔽命令写综合屏蔽命令8237A8237A内部内部(nib)(nib)寄存寄存器的寻址器的寻址续表第21页/共76页第二十一页,共77页。2

17、2五、五、8237A8237A的编程和使用的编程和使用(shyng)(shyng)1. 8237A1. 8237A的编程步骤的编程步骤 (1) (1) 输出主清除命令(即复位输出主清除命令(即复位(f wi)(f wi)命令)命令) (2) (2) 送地址(即写基和当前地址寄存器)送地址(即写基和当前地址寄存器) (3) (3) 送字节数(即写基和当前字节计数器)送字节数(即写基和当前字节计数器) (4) (4) 写模式字写模式字 (5) (5) 写控制字写控制字 (6) (6) 写屏蔽字写屏蔽字 (7) (7) 写请求字(可根据具体方式决定送与不送)写请求字(可根据具体方式决定送与不送)第2

18、2页/共76页第二十二页,共77页。232. 2. 编程举例编程举例(j l)(j l):试利用8237A通道1,将内存8000H开始的16K字节数据传送至磁盘(地址增量传送)。要求采用块传送方式,传送完不自动预置,DREQ和DACK均为高电平有效,固定(gdng)优先级,普通时序,不扩展写信号。假设系统中8237A的端口地址为00H0FH。第23页/共76页第二十三页,共77页。24第24页/共76页第二十四页,共77页。25(4) (4) 初始化程序初始化程序(chngx)(chngx)如下:如下: MOV AL,00H OUT 0DH,AL ;输出(shch)主清除命令 MOV AL,0

19、0H ;写入基和当前地址低8位 OUT 02H,AL ; MOV AL,80H ;写入基和当前地址的高8位 OUT 02H,AL ; MOV AL,00H ;写入基和当前字节数低8位 OUT 03H,AL ; 第25页/共76页第二十五页,共77页。26 MOV AL MOV AL,40H ;40H ;写入基和当前字节数高8 8位 OUT 03H OUT 03H,AL ;AL ; MOV AL MOV AL,89H ;89H ;输出模式(msh)(msh)字 OUT 0BH OUT 0BH,AL ;AL ; MOV AL MOV AL,80H ;80H ;输出命令字 OUT 08H OUT 0

20、8H,AL ;AL ; MOV AL MOV AL,01H ;01H ;输出屏蔽字 OUT 0AH OUT 0AH,AL ;AL ;第26页/共76页第二十六页,共77页。27 本节要求: (1)了解计数器/定时器8253的工作原理。 (2)掌握8253的六种工作方式(fngsh)。 (3)熟练掌握8253的初始化编程。 (4)掌握8253与系统的连接,应用编程。 7.7.2 2 计数器/ /定时器82538253第27页/共76页第二十七页,共77页。28一、概述(i sh)(i sh) 实现定时和计数的方法通常有:软件的方法、不可编程的实现定时和计数的方法通常有:软件的方法、不可编程的硬件

21、硬件(yn jin)(yn jin)电路、可编程的计数器电路、可编程的计数器/ /定时器电路等三种方定时器电路等三种方法。法。 第28页/共76页第二十八页,共77页。29二、82538253结构(jigu)(jigu)和功能1、8253的主要功能(1)具有三个独立的16位计数通道。(2)每个计数器通道都可按照二或二-十进制计数。(3)每个计数器通道的计数速率最高可达2MHZ。(4)每个计数器通道有6种工作方式(fngsh),均可由程序设置和改变。(5)全部输入输出都与TTL电平兼容。第29页/共76页第二十九页,共77页。302、8253的编程结构(jigu)和引脚第30页/共76页第三十页

22、,共77页。31D0-D7D0-D7:数据线:数据线A1A1、A0A0:地址线,用来对:地址线,用来对3 3个计数器和控制个计数器和控制(kngzh)(kngzh)寄存器寄存器进行寻址。进行寻址。RDRD:读控制:读控制(kngzh)(kngzh)信信号号WRWR:写控制:写控制(kngzh)(kngzh)信信号号CSCS:片选信号:片选信号CLK0-2CLK0-2:计数器:计数器0-20-2的时钟的时钟输入端输入端GATE0-2GATE0-2:计数器:计数器0-20-2的门的门脉冲控制脉冲控制(kngzh)(kngzh)输入输入端端OUT0-2OUT0-2:计数器:计数器0-20-2的输出的

23、输出端。端。第31页/共76页第三十一页,共77页。323、8253的工作(gngzu)原理第32页/共76页第三十二页,共77页。33三、8253的工作(gngzu)方式 8253 8253的每个通道均可以通过编程选择的每个通道均可以通过编程选择6 6种工作方式种工作方式之一。之一。 (1) (1)控制字写入后,所有的控制逻辑电路立即复位,控制字写入后,所有的控制逻辑电路立即复位,输出端输出端OUTOUT进入初始状态进入初始状态( (高电平或低电平高电平或低电平) ) (2) (2)在时钟脉冲在时钟脉冲CLKCLK的上升沿,门控信号的上升沿,门控信号GATEGATE被采样。被采样。对于一种给

24、定对于一种给定( (i dni dn) )的模式,对门控信号的触发方式是有的模式,对门控信号的触发方式是有具体具体规定的。规定的。 (3) (3)在时钟脉冲的下降沿,计数器作减在时钟脉冲的下降沿,计数器作减1 1计数。计数。0 0是计是计数器所能容纳的最大计数初值,因在这里,用二进制时,数器所能容纳的最大计数初值,因在这里,用二进制时,0 0相当于相当于216(216(即即65536)65536)。第33页/共76页第三十三页,共77页。34注意(zhy):在理解6种工作模式时,有两点需要注意:(1)时钟周期和输出周期的区别。时钟周期是指8253输入时钟CLK的周期,这是固定的,输出周期是指8

25、253输出端OUT的输出波形(bxn)周期。(2)8253的输出端波形(bxn)都是在时钟周期下降沿时产生电平的变化。第34页/共76页第三十四页,共77页。351. 1. 模式模式00计数结束计数结束(jish)(jish)产生中断请求产生中断请求 当写入控制字后,当写入控制字后,OUTOUT端输出低电平作为端输出低电平作为(zuwi)(zuwi)起起始电平,若始电平,若GATEGATE为高电平,写入计数初值后开始计数。为高电平,写入计数初值后开始计数。当计数到当计数到0 0时,输出端为高电平,并一直保持,直到写入时,输出端为高电平,并一直保持,直到写入新的计数值。新的计数值。 特点:(特点

26、:(1 1)计数只计一遍就结束,不能自动重复工作。)计数只计一遍就结束,不能自动重复工作。第35页/共76页第三十五页,共77页。361. 1. 模式模式(msh)0(msh)0计数结束产生中断请求计数结束产生中断请求 (2)在计数过程(guchng)中,当GATE=0时,计数暂停;当GATE变高后又接着计数。第36页/共76页第三十六页,共77页。371. 1. 模式模式00计数结束计数结束(jish)(jish)产生中断请求产生中断请求 (3)在计数过程中,可重新装入初值。如果计数过程中,重新写入一计数值后,计数器将立即按新的计数值重新作减1计数;即改变计数值是立即有效(yuxio)的。工

27、作波形图如上所示。(高)第37页/共76页第三十七页,共77页。382. 2. 模式模式11可重复可重复(chngf)(chngf)触发的单稳态触发器触发的单稳态触发器 当写入控制字后,当写入控制字后,OUTOUT端输出高电平作为起始电平。当计数初值送到计数器后,若无端输出高电平作为起始电平。当计数初值送到计数器后,若无GATEGATE的上升沿,不的上升沿,不会开始减会开始减1 1计数;必须等到计数;必须等到GATEGATE端输入端输入(shr)(shr)正跳变触发脉冲时,计数过程才会开始。工作时,由正跳变触发脉冲时,计数过程才会开始。工作时,由GATEGATE输入输入(shr)(shr)触发

28、脉冲的上升沿使触发脉冲的上升沿使OUTOUT变为低电平。当计数值减为变为低电平。当计数值减为 0 0 时,时,OUTOUT输出高电平。输出高电平。第38页/共76页第三十八页,共77页。392. 2. 模式模式(msh)1(msh)1可重复触发的单稳态触发器可重复触发的单稳态触发器 特点: (1)若设置计数初值为N,则OUT端输出的单稳负脉冲(michng)的宽度为N个CLK脉冲(michng)宽度。第39页/共76页第三十九页,共77页。402. 2. 模式模式11可重复可重复(chngf)(chngf)触发的单稳态触发器触发的单稳态触发器(2)(2)在计数过程中(输出负脉冲期间),可由在计

29、数过程中(输出负脉冲期间),可由GATEGATE上升沿再触发上升沿再触发(chf)(chf)。则由下一个脉冲下降沿开始,计数器从计数初值开。则由下一个脉冲下降沿开始,计数器从计数初值开始重新作减始重新作减1 1计数,减至计数,减至0 0时,时,OUTOUT输出变为高电平。其效果是输出变为高电平。其效果是使输出负脉冲的宽度比原来加宽了。如上波形图所示。使输出负脉冲的宽度比原来加宽了。如上波形图所示。第40页/共76页第四十页,共77页。412. 2. 模式模式(msh)1(msh)1可重复触发的单稳态触发器可重复触发的单稳态触发器(3)(3)触发可重复进行。当计数到触发可重复进行。当计数到0 0

30、时,可再次由时,可再次由GATEGATE上升沿触发,上升沿触发,输出同样宽度的负脉冲,而不必重新写入计数初值。输出同样宽度的负脉冲,而不必重新写入计数初值。(4)(4)在计数过程中,在计数过程中,CPUCPU可改变计数初值,这时计数过程不受影可改变计数初值,这时计数过程不受影响,计数到零后输出变高。当再次触发时,计数器才按新输响,计数到零后输出变高。当再次触发时,计数器才按新输入的计数值入的计数值(shz)(shz)计数,即改变计数值计数,即改变计数值(shz)(shz)是下次有效是下次有效的。的。第41页/共76页第四十一页,共77页。423. 3. 模式模式(msh)2(msh)2分频器分

31、频器( (高) ) 写入控制字后,写入控制字后,OUTOUT端输出高电平作为起始端输出高电平作为起始(q sh)(q sh)电平。电平。当计数初值送到计数器后,计数器自动开始减当计数初值送到计数器后,计数器自动开始减1 1计数;当计数;当减到减到 1 1 时,时,OUTOUT输出端变为低电平,经过一个输出端变为低电平,经过一个CLKCLK周期,周期,输出恢复为高。输出恢复为高。第42页/共76页第四十二页,共77页。433. 3. 模式模式(msh)2(msh)2分频器分频器( (高) ) 特点特点(tdin)(tdin):(1)(1)计数器能自动重新装入计数初值,并输出计数器能自动重新装入计

32、数初值,并输出固定频率的脉冲。固定频率的脉冲。 频率频率=CLK=CLK频率频率/ /计数初值计数初值第43页/共76页第四十三页,共77页。443. 3. 模式模式(msh)2(msh)2分频器分频器(2)(2)计数过程计数过程(guchng)(guchng)可由可由GATEGATE信号控制。当信号控制。当GATEGATE信号变低时,信号变低时,立立 即暂停现行计数,输出端仍保持高电平;当即暂停现行计数,输出端仍保持高电平;当GATEGATE信号信号 变高时后,从计数初值开始重新计数。如上波形图所变高时后,从计数初值开始重新计数。如上波形图所 示。示。第44页/共76页第四十四页,共77页。

33、453. 3. 模式模式(msh)2(msh)2分频器分频器(3)(3)在计数过程在计数过程(guchng)(guchng)中改变计数值对正在进行的计数过中改变计数值对正在进行的计数过程程(guchng)(guchng)没有没有 影响,而是从下一个输出周期开始,按新的计数值进影响,而是从下一个输出周期开始,按新的计数值进 行计数而改变输出脉冲的频率。如上波形图所示。行计数而改变输出脉冲的频率。如上波形图所示。 第45页/共76页第四十五页,共77页。464. 4. 模式模式(msh)3 (msh)3 方波发生器方波发生器 此方式与方式此方式与方式2 2类似。特点基本相同。类似。特点基本相同。

34、两者的主要两者的主要(zhyo)(zhyo)区别是输出波形的形式。区别是输出波形的形式。第46页/共76页第四十六页,共77页。474. 4. 模式模式(msh)3 (msh)3 方波发生器方波发生器 当计数当计数(j sh)(j sh)值值N N为偶数时,输出的为偶数时,输出的N N分频波为方波;当分频波为方波;当N N为奇为奇数数 时,输出的分频波为基本对称的矩形波,其高电平宽度为时,输出的分频波为基本对称的矩形波,其高电平宽度为 (N+1)/2 (N+1)/2计数计数(j sh)(j sh)脉冲周期,低电平宽度为脉冲周期,低电平宽度为(N-1)/2(N-1)/2计数计数(j (j sh)

35、sh)脉冲周脉冲周 期。期。第47页/共76页第四十七页,共77页。485. 5. 模式模式(msh)4 (msh)4 软件触发的选通信号发生软件触发的选通信号发生器器 当写入控制当写入控制(kngzh)(kngzh)字后,字后,OUTOUT端输出高电平作为起始电平。端输出高电平作为起始电平。当写入计数初值后,计数器即开始减当写入计数初值后,计数器即开始减1 1计数;当减到计数;当减到0 0 时,时,OUTOUT输出一个宽度等于一个计数脉冲周期的负脉冲,然后又自输出一个宽度等于一个计数脉冲周期的负脉冲,然后又自动变为高电平;并一直维持高电平,即计数是一次性的。动变为高电平;并一直维持高电平,即

36、计数是一次性的。第48页/共76页第四十八页,共77页。49 特点:特点: (1) N+1 (1) N+1个个CLKCLK脉冲后,脉冲后,OUTOUT才输出一个负脉冲。才输出一个负脉冲。 (2) GATE=1 (2) GATE=1时,允许计数时,允许计数(j sh)(j sh);GATE=0GATE=0时,计数时,计数(j (j sh)sh)停止;而输出维持当时的电平。停止;而输出维持当时的电平。5. 5. 模式模式4 4 软件触发软件触发(chf)(chf)的选通信号发生器的选通信号发生器第49页/共76页第四十九页,共77页。505. 5. 模式模式4 4 软件触发软件触发(chf)(ch

37、f)的选通信号发生器的选通信号发生器(3)(3)若在计数过程中改变计数值,则在下一个时钟时,按新若在计数过程中改变计数值,则在下一个时钟时,按新 的计数值重新开始的计数值重新开始(kish)(kish)计数,即改变计数值是立即计数,即改变计数值是立即有效的。有效的。 将这种通过写入新的计数值使计数器从头开始将这种通过写入新的计数值使计数器从头开始(kish)(kish)工作,叫软件再触发。工作,叫软件再触发。第50页/共76页第五十页,共77页。516. 6. 模式模式(msh)5 (msh)5 硬件触发的选通信号发生硬件触发的选通信号发生器器 与软件触发输出与软件触发输出(shch)(shc

38、h)波形相同。只是再设置了计数值后,计波形相同。只是再设置了计数值后,计数器并立即开始计数,而是由门控脉冲的上升沿触发启动。同样数器并立即开始计数,而是由门控脉冲的上升沿触发启动。同样当计数到当计数到0 0时,输出时,输出(shch)(shch)变低,经过一个变低,经过一个CLKCLK脉冲,输出脉冲,输出(shch)(shch)恢复为高,并将持续不变;停止计数。恢复为高,并将持续不变;停止计数。第51页/共76页第五十一页,共77页。526. 6. 模式模式5 5 硬件硬件(yn(yn jin) jin)触发的选通信号发生器触发的选通信号发生器 特点:特点: (1)(1)若在计数若在计数(j

39、sh)(j sh)过程中,过程中,GATEGATE端又来一个上升沿触发信号,端又来一个上升沿触发信号,则则 将计数将计数(j sh)(j sh)初值重新装入,开始重新计数初值重新装入,开始重新计数(j sh)(j sh)。第52页/共76页第五十二页,共77页。536. 6. 模式模式5 5 硬件触发硬件触发(chf)(chf)的选通信号发生器的选通信号发生器(2)(2)若再计数过程中改变计数值,只要在计数到若再计数过程中改变计数值,只要在计数到0 0之前不出现新之前不出现新的门控触发信号的门控触发信号(xnho)(xnho),则原计数过程不受影响;等计数,则原计数过程不受影响;等计数到到0

40、0并出现新的门控触发信号并出现新的门控触发信号(xnho)(xnho)后,再按新的计数值后,再按新的计数值计数。若再写入了新的计数值后,在未计数到计数。若再写入了新的计数值后,在未计数到0 0之前有门控之前有门控信号信号(xnho)(xnho)出现,则立即按新的计数值重新开始计数。出现,则立即按新的计数值重新开始计数。第53页/共76页第五十三页,共77页。547.82537.8253工作(gngzu)(gngzu)方式小结计数(j sh)达终值而中断可重复(chngf)触发单稳态脉 冲形成频率可编程的方波产生软件触发产生选通信号硬件触发产生选通信号分频脉冲形成第54页/共76页第五十四页,共

41、77页。55* 6* 6种工作(gngzu)(gngzu)方式异同 方式2、方式4和方式5的输出波形相同,都是宽度为一个CLK周期(zhuq)的负脉冲。区别是,方式2是自动重复工作的,方式4、5是单个;方式4由软件触发启动,方式5由门控信号触发启动。 方式5与方式1触发信号相同,但输出波形不同;方式1输出为宽度是N个CLK周期(zhuq)的负脉冲(计数过程中输出为低),而方式5输出为宽度是1个CLK周期(zhuq)的负脉冲(计数过程中输出为高)。第55页/共76页第五十五页,共77页。56 6 6种工作方式中,只有方式种工作方式中,只有方式0 0,在写入控制字后,在写入控制字后 输出为低;其余

42、输出为低;其余5 5种方式,都是在写入控制字种方式,都是在写入控制字 后输出为高。后输出为高。 6 6种工作方式中的任何一种方式,只有在写入种工作方式中的任何一种方式,只有在写入计计 数初值后才能开始计数。方式数初值后才能开始计数。方式0 0,2 2,3 3,4 4都都是是 写入计数初值后,计数过程就开始了;而方写入计数初值后,计数过程就开始了;而方式式1 1 和方式和方式5 5在写入计数初值后,需由外部在写入计数初值后,需由外部(wib)GATE(wib)GATE信号信号 的触发启动,才能开始计数。的触发启动,才能开始计数。(2) 6(2) 6种工作方式(fngsh)(fngsh)异同第56

43、页/共76页第五十六页,共77页。57 从输出端来看,从输出端来看,6 6种工作方式中,只有种工作方式中,只有(zhyu)(zhyu)方方式式2(2(分频器分频器) )和方式和方式3(3(方波发生器方波发生器) )为自动重复工作为自动重复工作方式,其它方式,其它4 4种方式都是一次性计数,要继续工作需种方式都是一次性计数,要继续工作需要重新启动。要重新启动。 所以只有所以只有(zhyu)(zhyu)方式方式2 2和方式和方式3 3工作在定时器工作在定时器模式,方式模式,方式0 0、1 1、4 4和和5 5工作在计数器模式。工作在计数器模式。 (2) 6(2) 6种工作方式(fngsh)(fng

44、sh)异同第57页/共76页第五十七页,共77页。58四、82538253的编程1.1.内部寄存器的寻址内部寄存器的寻址 8253 8253有三个独立的计数器通道,每个通道可以有三个独立的计数器通道,每个通道可以被被CPUCPU访问的部件有:访问的部件有:8 8位的控制寄存器,只能写入;位的控制寄存器,只能写入;1616位的计数初值寄存器位的计数初值寄存器CRCR,只能写入;,只能写入;1616位的输出位的输出锁存器锁存器OLOL,只能读出,不能写入。,只能读出,不能写入。 一片一片82538253占用四个连续的端口地址,分别对应占用四个连续的端口地址,分别对应(duyng)(duyng)于三

45、个计数初值寄存器端口和一个控制寄存器端口。于三个计数初值寄存器端口和一个控制寄存器端口。由由A1A1和和A0A0的组合的四种编码来选择,如表所示:的组合的四种编码来选择,如表所示:第58页/共76页第五十八页,共77页。5982538253内部(nib)(nib)寄存器的寻址CSCSRDRDWRWRA1 A0A1 A0计数器选择和操作计数器选择和操作0 01 10 00 0 0 0 对计数器对计数器0 0设置计数初值设置计数初值0 01 10 00 1 0 1 对计数器对计数器1 1设置计数初值设置计数初值0 01 10 01 01 0对计数器对计数器2 2设置计数初值设置计数初值0 01 1

46、0 01 11 1写控制字或给一个命令写控制字或给一个命令0 00 01 10 00 0读计数器读计数器0 0输出锁存器输出锁存器0 00 01 10 10 1读计数器读计数器1 1输出锁存器输出锁存器0 00 01 11 01 0读计数器读计数器2 2输出锁存器输出锁存器第59页/共76页第五十九页,共77页。602.82532.8253控制控制(kngzh)(kngzh)寄存器的格式寄存器的格式SC1SC2RW1RW0M2M1M0BCD通道选择通道选择(xunz)(xunz):00=00=通道通道0 0 ,01=01=通道通道1 110=10=通道通道2 2 ,11=11=无效无效读读/

47、/写格式写格式(g shi)(g shi):00=00=计数器锁存命令计数器锁存命令01=01=只读只读/ /写计数器低写计数器低8 8位位10=10=只读只读/ /写计数器高写计数器高8 8位位11=11=先读先读/ /写计数器低写计数器低8 8位位 后读后读/ /写计数器高写计数器高8 8位位工作方式:工作方式:000=000=方式方式0 0001=001=方式方式1 1x10=x10=方式方式2 2x11=x11=方式方式3 3100100= =方式方式4 4101101= =方式方式5 5计数制:计数制:0 0= =二进制计数二进制计数 1 1= =BCDBCD码计数码计数D7 D6

48、D5 D4 D3 D2 D1 D0 第60页/共76页第六十页,共77页。613.82533.8253的编程命令的编程命令(mng lng)(mng lng)(1)初始化步骤必须先写控制字。再送计数初值。原因:因为计数初值的写入格式是由控制字的D5和D4两位编码决定( judng)的。写入计数初值时,必须按控制字的D5和D4两位编码规定的格式进行写入。第61页/共76页第六十一页,共77页。62(2 2)编程命令)编程命令(mng lng)(mng lng)编程命令有两类:即读出命令和写入命令。编程命令有两类:即读出命令和写入命令。 写入命令写入命令写入命令有写入命令有3个,即设置控制寄存器,

49、设置个,即设置控制寄存器,设置初始计数值命令和锁存命令。初始计数值命令和锁存命令。锁存命令是配合读出命令用的。在读计数值锁存命令是配合读出命令用的。在读计数值时,必须先用锁存命令将当前计数值在输出时,必须先用锁存命令将当前计数值在输出(shch)锁存锁存器中锁住,否则,将得到一个不确定结果。器中锁住,否则,将得到一个不确定结果。 读出命令读出命令用来读取计数器当前的值。用来读取计数器当前的值。第62页/共76页第六十二页,共77页。634.4.初始化编程举例初始化编程举例(j l)(j l) 例1 1 若用82538253的计数通道1 1,工作在方式0 0,按8 8位二进制计数,计数初值为12

50、8128,试编制初始化程序(chngx)(chngx)。 (1) (1) 确定通道控制字01010000 D7 D6 D5 D4 D3 D2 D1 D0 通道(tngdo)1只写低8位方式0二进制计数50H第63页/共76页第六十三页,共77页。64(2) 8(2) 8位计数位计数(j sh)(j sh)初值为初值为80H80H(十进制(十进制128128) 设设82538253的端口地址为的端口地址为484BH484BH,则初始化程序,则初始化程序段为:段为: MOV AL MOV AL,50H 50H ; OUT 4BH OUT 4BH,AL AL ; MOV AL MOV AL,80H

51、80H ; OUT 49H OUT 49H,AL AL ;设置通道(tngdo)1控制字写通道(tngdo)1计数初值,只写低8位第64页/共76页第六十四页,共77页。65 例2 2 若用82538253的计数通道0 0,工作在方式1 1,按BCDBCD计数,计数初值为20102010,试编制初始化程序。 (1) (1) 确定(qudng)(qudng)通道控制字00110011 D7 D6 D5 D4 D3 D2 D1 D0 通道(tngdo)0先写低8位后写高8位方式(fngsh)1BCD计数33H第65页/共76页第六十五页,共77页。66(2) (2) 初始化程序初始化程序(chng

52、x)(chngx) 设设82538253的端口地址为的端口地址为48484 4BHBH,则初始化则初始化程序段为:程序段为: MOV ALMOV AL,33H 33H OUT 4BH OUT 4BH,AL AL MOV AX MOV AX,2010H 2010H OUT 48H OUT 48H,AL AL XCHG AHXCHG AH,ALAL OUT 48H OUT 48H,AL AL ;设置(shzh)通道1控制字 ;写通道(tngdo)0计数初值低8位 ;写通道0计数初值高8位第66页/共76页第六十六页,共77页。67 例3 3 假设82538253的端口地址为E8H-EBHE8H-E

53、BH,现要读取计数通道1 1的1616位计数值,并假设在此之前已设置读/ /写格式为“先读/ /写低8 8位,再读/ /写高8 8位”,则只要执行(zhxng)(zhxng)下面的程序段,即可实现指定的读出操作。 MOV AL MOV AL,40H 40H ; 锁存命令40H40H OUT 0EBH OUT 0EBH,AL AL ;写入通道1 1控制寄存器 IN AL IN AL,0E9H ; 0E9H ; 读低8 8位 MOV BL MOV BL,AL ; AL ; 存于BLBL IN AL,0E9H ; IN AL,0E9H ; 读高8 8位 MOV BH,AL ; MOV BH,AL ;

54、 存于BHBH 第67页/共76页第六十七页,共77页。68 例1 82531 8253用作脉冲信号发生器。 用82538253产生如图(a)(a)所示的周期信号,其重复周期为5 5 S S ,脉冲宽度(kund)(kund)为1 1 S S。设CLKCLK信号频率为2MHz2MHz。 (a) 信号(xnho)波形图五、82538253的应用(yngyng)(yngyng)举例第68页/共76页第六十八页,共77页。69连接(linji)线路图为: 假设假设(jish)8235(jish)8235的的端口地端口地址为址为80H86H80H86H,CPUCPU为为80868086,即,即8253

55、8253控制寄控制寄存存器端口地址为器端口地址为86H86H,计,计数器数器0 0端口地址为端口地址为80H80H,计数器计数器1 1的端口地址为的端口地址为82H82H,计数器,计数器2 2的端口的端口地地址为址为84H84H。第69页/共76页第六十九页,共77页。70初始化程序(chngx)为:MOV AL,00010011B ;MOV AL,00010011B ;设置(shzh)(shzh)计数器0 0为方式1 1,只写低8 8位,BCDBCD计数OUT 86HOUT 86H,AL ;AL ;MOV ALMOV AL,2H ;2H ;设置(shzh)(shzh)计数器0 0的计数初值为

56、2 2OUT 80HOUT 80H,AL ;AL ;MOV ALMOV AL,01010101B ;01010101B ;设置(shzh)(shzh)计数器1 1为方式2 2(分频器),只写低8 8OUT 86HOUT 86H,AL ;AL ;位,BCDBCD计数MOV ALMOV AL,10H ;10H ;设置(shzh)(shzh)计数器1 1的计数初值为1010OUT 82HOUT 82H,ALAL第70页/共76页第七十页,共77页。71 例2 2 利用82538253的计数器1 1产生频率为500Hz500Hz的方波,82538253的地址范围是330H330H 333H333H,时

57、钟(shzhng)(shzhng)频率为2MHz2MHz,试画出82538253与80888088系统总线的连接图,并对82538253进行初始化编程。 A11 A10 A9 A8 A7 A6 A5 A4 A3 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 A2 A1 A0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0A1A0IORIOWA10 1A6A7A11&A8A9D7D0A1A0CSWRRDCLK1GATE1OUT1+5V2MHzABCGG2AG2BA2A3A4A5Y4D7D0第71页/共76页第七十一页,

58、共77页。72方波的周期方波的周期(zhuq)为:为:T=1/500=2 10-3s时钟周期时钟周期(zhuq)为:为:t=1/2000000=0.5 10-6s则产生频率为500Hz的方波,所需的计数(j sh)初值为: N= T/t=4000初始化程序为:MOV DX,333H MOV AL,01110111 OUT DX,AL MOV DX,331H MOV AX,4000H OUT DX,AL XCHG AH,AL OUT DX,AL第72页/共76页第七十二页,共77页。73解:(1)当时钟频率为0.5MHz时,其周期(zhuq)为2s。8253的计数器为16位,其最大计数值为655

59、36。因此,利用这样的时钟频率,最大定时时间为:Tmax=655362131ms(2)在上述时钟之下,若要产生10分钟的周期(zhuq)定时中断,用一个计数器肯定是无法做到的。但是,用两个计数器串起来使用就可解决了。 例3 3 若加到82538253上的时钟频率(pnl)(pnl)为0.5MHz0.5MHz,则一个计数器的最长定时时间是多少?若要求10min10min产生一次定时中断,试提出解决方案。第73页/共76页第七十三页,共77页。74 首先使计数器0工作在方式3,使其计数值为50000。则计数器0的OUT0可输出周期(zhuq)为100ms的周期(zhuq)对称方波。将周期(zhuq

60、)为100ms的对称方波加到计数器2的CLK2时钟输入端使计数器2对它进行计数,同样可以使计数器2工作在方式3。并设置计数器2的计数值为6000则计数器2的OUT2输出就会产生周期(zhuq)为600 s(10分钟)的对称方波。用此方波的上升沿请求中断,即可实现每10分钟中断一次的周期(zhuq)定时中断。+5VGATE0CLK0OUT0GATE2CLK2OUT20.5MHz第74页/共76页第七十四页,共77页。75 例4 4 控制发光二极管的定时亮暗。 要求发光二极管亮10S10S,暗10S10S,82538253地址为40H-40H-43H43H,时钟(shzhng)(shzhng)频率

61、为2MHz2MHz。 +5VGATE0CLK0OUT0GATE1CLK1OUT12MHz第75页/共76页第七十五页,共77页。76感谢您的欣赏(xnshng)!第76页/共76页第七十六页,共77页。内容(nirng)总结1。为8位,用于内存到内存传输时,暂时保存从。也叫主清除命令Master Clear)或综合清除命。状态、DMA请求、暂存器以及内部的先/后触发器都。每当对16位寄存器进行一次读/写操作,则触发器改变一次状态。为了保证对16位寄存器的读/写是从低字节开始(kish),应事先用此软件命令使先/后触发器强制清零。试利用8237A 通道1,将内存8000H开始(kish)的16K字节数据传送至磁盘(地址增量传送)。频率=CLK频率/计数初值第七十七页,共77页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号