收藏 分享(赏)

第八章 计数器控制器.ppt

上传人:gnk289057 文档编号:8307219 上传时间:2019-06-19 格式:PPT 页数:51 大小:919KB
下载 相关 举报
第八章 计数器控制器.ppt_第1页
第1页 / 共51页
第八章 计数器控制器.ppt_第2页
第2页 / 共51页
第八章 计数器控制器.ppt_第3页
第3页 / 共51页
第八章 计数器控制器.ppt_第4页
第4页 / 共51页
第八章 计数器控制器.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、第8章 计数器/定时器与DMA控制器,8.1 计数器/定时器的工作原理 8.2 可编程计数器/定时器8253 8.3 DMA传送的基本原理 8.4 DMA控制器8237A,8.1 计数器/定时器的工作原理,8.1.1 微机系统中的定时 8.1.2 外部定时方法 软件定时 硬件定时 8.1.3 可编程计数器/定时器的工作原理,8.1.1 微机系统中的定时,微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。 内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。外部定时是外部设备实现某种功能时,本身所需要的一种时序关系,8.1.2 外部定时方法,

2、软件定时 它是利用CPU内部定时机构,运用软件编程,循环执行一段程序而产生的等待延时。硬件定时 采用可编程通用的定时/计数器或单稳延时电路产生定时或延时,8.1.3 可编程计数器/定时器的工作原理,计数器,即在设置好计数初值后,便开始对外部触发脉冲作减1计数,减为0时,输出一个信号 定时器,即在设置好定时常数后,便对外部时钟信号作减1计数,并按定时常数不断地产生时钟周期整数倍的定时间隔,8.2 可编程计数器/定时器8253,8.2.1 8253内部结构及引脚功能8.2.2 8253的工作方式及特点8.2.3 8253的编程8.2.4 8253的应用举例,8.2.1 8253内部结构及引脚功能,

3、18253的内部结构28253的引脚功能,8253的内部结,8253的引脚功能,表8-1 8253计数器的选择与操作,8.2.2 8253的工作方式及特点,方式0低电平输出(GATE信号上升沿继续计数) 方式1低电平输出(GATE信号上升沿重新计数) 方式2周期性负脉冲输出 方式3周期性方波输出 方式4单次负脉冲输出(软件触发) 方式5单次负脉冲输出(硬件触发),方式0低电平输出(GATE信号上升沿继续计数),方式1低电平输出(GATE信号上升沿重新计数),方式2周期性负脉冲输出,方式3周期性方波输出,方式4单次负脉冲输出(软件触发),方式5单次负脉冲输出(硬件触发),8.2.3 8253的编

4、程,设定方式控制字设定计数初值,设定方式控制字,设定计数初值,例8-1 设8253计数器0工作于方式3下,计数初值为6000(十进制格式),试写出其初始化程序。(设8253计数器0,计数器1,计数器2及控制端口地址分别为40H43H。)根据题目要求,8253方式控制字应为00110111,具体程序如下:MOV DX,43H ;设定控制端口MOV AL,37H ;写入控制字OUT DX,ALMOV DX,40H ;设计数器0MOV AL,0 ;写计数初值低字节OUT DX,ALMOV AL,60 ;写计数初值高字节OUT DX,AL,例8-2 假定8253的4个端口地址分别为310H、312H、

5、314H、316H,输入脉冲频率为2MHz,编写出用计数器0输出频率为2kHz方波的初始化程序。分析: 根据题目要求,采用计数器0、工作方式3、二进制计数。 计数初值N=(2106)/(2103)=1000。 方式控制字为00110110B,即36H。,MOV DX,316H MOV AL,36H OUT DX,AL MOV AX,1000 MOV DX,310H OUT DX,AL MOV AL,AH OUT DX,AL,8.2.4 8253的应用举例,例3例4例5例6,例8-3,MOV AL,76H OUT 76H,AL MOV AX,1000 OUT 72H,AL MOV AL,AH O

6、UT 72H,AL MOV AL,36H OUT 76H,AL MOV AX,2000 OUT 70H,AL MOV AL,AH OUT 70H,AL,设系统为8253分配的端口地址为70H76H,其中76H为控制字寄存器端口地址,70H、72H、74H分别为计数器0、1、2的端口地址。若输入脉冲频率为2MHz,编写出用计数器0输出频率为1Hz方波的初始化程序。分析:由于输入时钟频率为2MHz,而输出方波频率为1Hz,计算出计数器初值N=(2106)/1=2106。此数超出16位计数器所能够表示的范围。为了解决这一问题,可先通过计数器1将2MHz的输入脉冲变成2kHz方波,然后用OUT1输出的

7、方波作为计数器0的输入时钟。计数器1的计数初值N=(2106)/(2103)=1000,计数器0的计数初值M=(2103)/1=2103。,例-4,IBM PC/XT系统板上8253的3个计数器的使用。,例8-5,8253的3个计数器串级连接起来,为某A/D子系统提供可调用的启动采样频率信号。,设8253的端口地址为304H,305H,306H,307H。初始值L,N为二进制数,且小于256,M为BCD数,且大于100。 MOV AL,14H OUT 307H,AL MOV AL,L OUT 304H,AL MOV AL, 73H OUT 307H,AL MOV AX,M OUT 305H,A

8、L MOV AL,AH OUT 305H,AL MOV AL,96H OUT 307H,AL MOV AL,N OUT 306H,AL,例8-6,图8-13所示为一自动计数系统。当工件从光源与光敏电阻之间通过时,CLK0端即可接收到一个脉冲信号,由计数器0计数。每当有80个工件通过后,由输出端OUT0输出一个负脉冲作为中断请求信号通知CPU。CPU在处理该中断的中断服务程序中启动计数器1,由OUT1产生2000Hz的方波驱动蜂鸣器发声,提示工件以满80个,5秒后扬声器停止发声。,MOV AL,15HOUT 43H,AL MOV AL,80 OUT 40H,ALSTI LOOP: HLTJMP

9、LOOPMOV AL,01HOUT 80H,ALMOV AL,77HOUT 43H,ALMOV AL,0OUT 41H,ALMOV AL,25OUT 41H,ALCALL D5S MOV AL,0OUT 80H,AL,8.3 DMA传送的基本原理,8.3.1 DMA传送的特点 8.3.2 DAM传送的机制 1周期挪用(Cycle Stealing) 2周期扩展 3CPU停机 8.3.3 DMA传送的模式 1单字节传送模式 2数据块传送模式 3请求传送模式,8.3.1 DMA传送的特点,DMA方式可以实现外部设备与存储器之间的数据高速传输DMA传送主要用于需要高速大批量数据传送的系统中,以提高数

10、据的吞吐量 DMA传送方式的优点是以增加系统硬件的复杂性和成本为代价的 DMA传送虽然脱离CPU的控制,但并不是说DMA传送不需要进行控制和管理,8.3.2 DMA传送的机制,1周期挪用(Cycle Stealing) DMAC在处理器不访问存储器或I/O端口时控制总线 2周期扩展 DMAC在处理器不访问存储器或I/O端口时控制总线 3CPU停机 CPU停机是指在DMA操作期间,CPU交出总线控制权,由DMA控制器接管总线,完成数据传送,8.3.3 DMA传送的模式,单字节传送模式 只能一个字节一个字节地传送(或校验或检索),每传送一个字节DMAC必须重新向CPU申请占用总线。 数据块传送模式

11、 在数据块传送的整个过程中,只要DMA传送一开始,DMAC始终占用总线,直到数据传送结束或校验完毕或检索到“匹配字节”,才把总线控制权还给CPU。请求传送模式 DMAC控制总线以后,每传送完一个字节,都由DMAC检测外设是否有继续传送的要求。,8.4 DMA控制器8237A,8.4.1 8237A的内部结构及引脚功能 8.4.2 8237A的工作过程与工作方式 8.4.3 8237A的编程 8.4.4 8237A的应用举例,8.4.1 8237A的内部结构及引脚功能,8237A的内部结构 8237A的引脚功能 8237A的端口地址,8237A的内部结构,8237A的引脚功能,表8-2 8237

12、A控制器的寄存器口地址,8237A的端口地址,读(,写(,8.4.2 8237A的工作过程与工作方式,18237A的工作过程8237A的工作方式,18237A的工作过程,28237A的工作方式,(1)通道的优先级问题 (2)工作模式 单字节传送模式 数据块传送模式 请求传送模式 级联模式 (3)操作类型 DMA读,用于把数据从存储器中读出,写入外设。 DMA写,用于将数据从外设中读出,写入存储器中。 DMA校验,是一种空操作,并不是真正的DMA传送,只产生时序。地址信号、外设可以利用这样的时序进行校验。,8.4.3 8237A的编程,1方式控制寄存器 2命令寄存器 3状态寄存器 4请求寄存器

13、5屏蔽寄存器 6综合屏蔽寄存器 7软件命令,1方式控制寄存器,2命令寄存器,例8-7 编写初始化命令使PC微机中的8237A-5,按如下要求工作:禁止存储器到存储器传送,正常时序,滞后写入,固定优先级,允许8237A-5工作,DREQ信号高电平有效,DACK信号低电平有效。命令字为00000000B=00H。 将命令写入命令口的程序段为: MOV AL,00H ;命令字 OUT 08H,AL ;写入命令寄存器,3状态寄存器,4请求寄存器,5屏蔽寄存器,6综合屏蔽寄存器,7软件命令,(1)清除高/低触发器(F/L触发器) (2)软件复位命令(主清除命令) (3)清屏蔽寄存器命令,8.4.4 82

14、37A的应用举例,例8 例9 例10 例11,例 8-8,在8088CPU系统板上的DMA控制器8237A中,通过通道1将外设50字节的数据收入首地址为6000H的内存区域,编写初始化程序。MOV AL,04H ;命令字,关闭8237A OUT 08H,AL ;写入命令寄存器中MOV AL,00H OUT 0DH,AL ;总清除,发复位命令 MOV AL,00H OUT 02H,AL MOV AL,60H OUT 02H,AL MOV AL,32H OUT 03H,AL MOV AL,00H OUT 03H,AL MOV AL,55H OUT 0BH,AL ;方式字写入方式寄存器 MOV AL

15、,02H OUT 0FH,AL ;写入综合屏蔽命令字 MOV AL,00H OUT 08H,AL ;命令字写入控制寄存器,例9,用0通道从磁盘输入32KB的数据块,传送到内存08000H开始的区域(增量传送),采用块传送方式,传送完不自动预置,外设的DREQ和DACK均为高电平有效。 设定8237A端口地址为00H0FH,初始化程序如下:,OUT 0DH, AL ;写入总清除命令 MOV AL, 00H OUT 00H, AL ;写入0通道基地址和当前地址寄存器的低8位 MOV AL,80H OUT 00H, AL ;写入0通道基地址和当前地址寄存器的高8位 MOV AL, 00H OUT 0

16、1H, AL ;写入0通道基字节和当前字节寄存器的低8位 MOV AL, 80H OUT 01H, AL ;写入0通道基字节和当前字节寄存器的高8位 MOV AL,84H OUT 0BH,AL ;写入模式控制字(块传送、地址增量、写传送、不自动预置) MOV AL, 00 OUT 0AH,AL ;写入屏蔽寄存器(清除通道0的屏蔽) MOV AL, 0C0H ;写入命令寄存器(DREQ、DACK为高电平有效,固定优先级) OUT 08H,AL,例8-10,用8237A通道0对动态存储器进行刷新,每隔15s刷新一次,利用8253实现15s定时,试编出动态刷新程序。MOV AL,0FFH ;写入通道

17、0计数初值为FFFFH OUT 01H,AL OUT 01H,AL MOV AL,58H ;写入模式控制字(单字节、地址递增、读传送、自动预置) OUT 0BH,AL MOV AL,00H ;写入命令寄存器 OUT 08H,AL OUT 0AH,AL ;写入屏蔽寄存器(清除通道0的屏蔽位) MOV AL,54H ;设8253计数器1为方式2,只访问低位字节 OUT 43H,AL MOV AL,18 ;设计数器1定时周期为15s OUT 41H,AL,例8-11,对IBM PC/XT的8237A进行初始化和测试的程序段加注释说明。,;对8237A进行初始化的程序段MOV AL,04OUT 08H

18、,ALMOV AL,00OUT 0DH,AL MOV DX,0 MOV CX,04MOV AL,0FFH WRITE: OUT DX,AL OUT DX,AL INC DXINC DXLOOP WRITE MOV AL,58H OUT 0BH,ALMOV AL,41H OUT 0BH,AL MOV AL,42H OUT 0BH,ALMOV AL,43H OUT 0BH,ALMOV AL,00H OUT 08H,ALMOV AL,00HOUT 0FH,AL,;对8237A通道13地址寄存器的值进行测试的程序段MOV DX,02 ;取通道1的地址寄存器端口地址 MOV CX,03 READ:IN AL,DX ;读地址低8位 MOV AH,AL IN AL,,DX ;读地址高8位 CMP AX,0FFFFH ;比较读取的值与写入的0FFFFH是否相等 JNZ HHH ;若不等,则转HHH INC DX INC DX LOOP READ ;对3个通道均测试 ;后续处理 HHH:HLT ;测试出错,停机等待,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报