07章-定时器计数器与DMA控制器.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第7章定时器/计数器与DMA控制器

7.1可编程计数器/定时器8253在计算机系统中经常需要用到定时功能。此外,在许多微型计算机应用系统中,还要用到计数功能,来对外部事件进行计数。主要有两种方法来实现定时功能,即软件定时和硬件定时。软件定时是最简单的定时方法,它不需要硬件支持,只需让机器循环执行某一条或某些指令,这些指令并没有具体的执行目的,但由于执行指令需要一定的时间,循环执行这些指令就会占用一段固定的时间,以此实现延时的目的。用这种方法定时,完全由软件编程来控制,灵活方便,节省费用。但这种方法的缺点是CPU利用率太低,在定时循环期间,CPU不能再去做其他的工作,而仅仅是等待预定的定时时间的到来。软件定时方法只适用于延时时间较小而重复次数又有限的应用程序中。为了提高CPU的利用率,常采用硬件方法来实现定时。硬件定时是用可编程计数器/定时器。定时时,首先要根据预定的定时时间,用指令对计数器/定时器芯片设置定时初值,之后启动芯片进行工作,当计到确定值时,便自动产生一个定时输出。计数器一旦开始工作后,CPU就可以去做别的工作了,等计数器计到预定的时间,便自动产生一个输出信号,该信号向CPU提出中断请求,通知CPU定时时间已到,使CPU作相应的处理。或者直接利用输出信号去启动设备工作。这种方法不但显著提高了CPU的利用率,而且定时时间由软件设置,使用起来十分灵活方便,加上定时时间又很精确,所以获得了广泛的应用。7.1.18253芯片内部结构及引脚信号8253内部包含数据总线缓冲存储器、读/写控制电路、控制字寄存器及三个结构完全相同的计数器组成,其内部结构流程图如图7.1所示。8253有24条引脚,其引脚信号如图7.2所示。图7.18253内部结构流程图图7.28253引脚图1.数据总线缓冲器数据总线缓冲器是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,CPU用I/O指令对8253进行读/写操作的信息,都由8位数据总线传送。2.读/写控制电路读/写控制电路接收CPU送入的读/写输入信号,经过组合后,形成对各部分操作的控制信号。3.计数器在8253内部包含三个功能完全相同的计数器通道,而且对三个通道的操作完全是独立的。每个计数器通道设有一个16位预置寄存器、一个16位减1计数器和一个16位输出锁存器。4.控制字寄存器及初始化编程1)控制字格式控制字寄存器是一种只写寄存器,通过CPU用输出指令向它写入控制字,以此来选定各计数器通道的工作方式。在计数器/定时器工作之前,必须要先设定控制字,才能保证计数器/定时器正确工作。其使用格式如图7.4所示。图7.48253控制字格式2)8253的初始化编程步骤首先用输出指令向控制字寄存器写入一个控制字,以便选定计数器通道,规定该寄存器工作方式和计数方式以及计数初值的长度和装入顺序。写入控制字还可以起到复位作用,使输出端OUTi变为规定的初始状态,并使计数器清0。其次用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式的规定。若是8位数,只要用一条输出指令就可完成初值的设置。若是16位数,必须要用两条输出指令来完成,并且规定先送低8位数据,后送高8位数据。由于3个计数器分别具有独立的编程地址,因此,对3个计数器的编程没有先后顺序的规定,可任意选定某一个计数器通道进行初始化编程,只要遵循先写入控制字,后写入计数初值的规定即可。【例7.1】在某微型计算机系统中,8253的3个计数器的端口地址分别为3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要求8253的记数通道0工作于方式3,并已知对它写入的计数初值n=1234H,则初始化程序如下:MOVAL, ;控制字:选择记数器0,先读/写低字节,后高字节,方式3,BCD计数MOVDX,3F6H ;指向控制口OUTDX,AL ;送控制字MOVAL,34H;计数值低字节MOVDX,3F0H;指向计数器0端口OUTDX,AL ;先写入低字节MOVAL,12H;计数值高字节OUTDX,AL ;后写入高字节在计数初值写入8253后,还要经过一个时钟脉冲的上升沿和下降沿,才能将计数初

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档