- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与接口技术:第10章
课件第10章 计数器和定时器电路Intel 8253/8254-PIT 10.1 概 述 10.2 8253-PIT的控制字 10.3 8253-PIT的工作方式 10.4 8253-PIT的编程 10.1 概 述 8253-PIT的主要功能有: (1)有3个独立的16位计数器。 (2)每个计数器都可以按照二进制或BCD码进行计数。 (3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。 (4)每个计数器有6种工作方式,可由程序设置和改变。 (5)所有的输入输出引脚电平都与TTL电平兼容。 8253的内部结构如图10-1所示。 (1)数据总线缓冲器。这是8253与CPU数据总线连接的8位双向三态缓冲器。CPU用输入输出指令对8253进行读写的所有信息,都是通过这8条总线传送的。 (2)读/写逻辑。这是8253内部操作的控制部分。 (3)控制字寄存器。在8253初始化编程时,由CPU写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读出。 (4)计数器#0、计数器#1、计数器#2。这是三个计数器/定时器,每一个都是由一个16位的可预置值的减法计数器构成。这三个计数器的操作是完全独立的。 10.2 8253-PIT的控制字 在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,它规定了8253的工作方式。其格式如图10-3所示。 (1)计数器选择(D7D6)。控制字的最高两位决定这个控制字是哪一个计数器的控制字。 (2)数据读/写格式(D5D4)。CPU向计数器写入初值和读取它们的当前状态时,有几种不同的格式。 (3)工作方式(D3D2D1)。8253的每个计数器可以有6种不同的工作方式,由这三位决定。每一种方式的特点,随后介绍。 (4)数制选择(D0)。8253的每个计数器有两种计数制:二进制计数和BCD码计数,由这位决定。 10.3 8253-PIT的工作方式 10.3.1 方式0—计完最后一个数时中断 在这种方式下,当控制字CW(Control Word)写入控制字寄存器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。 要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT线一直维持为低,直到计数到“0”时。OUT输出变高。 10.3.2 方式1—可编程序的单拍脉冲 在这种方式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。 10.3.3 方式2—速率发生器 在这种方式下,当CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。 10.3.4 方式3—方波速率发生器 方式3和方式2的输出都是周期性的,它们的主要区别是,方式3在计数过程中输出有一半时间为高,另一半时间为低。 10.3.5 方式4—软件触发选通 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。 10.3.6 方式5—硬件触发选通 在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。 10.4 8253-PIT的编程 要使用8253必须首先进行初始化编程,初始化编程的内容为:必须先写入每一个计数器的控制字,然后写入计数器的计数值。如前所述,在有些方式下,写入计数值后此计数器就开始工作了,而有的方式需要外界门控信号的触发启动。 在初始化编程时,某一计数器的控制字和计数值,是通过两个不同的端口地址写入的。任一计数器的控制字都是写入至控制字寄存器(地址总线低两位A1A0=11),由控制字中的D7D6来确定是哪一个计数器的控制字;而计数值是由各个计数器的端口地址写入的。 初始化编程的步骤为: (1)写
文档评论(0)