8253的内部结构与工作方式(doc 8页)

  • 格式:doc
  • 大小:4.08 MB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8253的内部结构与工作方式(doc 8页)

CPU输入,低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作如表9.3.2所示。

4.计数通道0~2

每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。最大计数值是9999。与此计数器相对应,每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。

当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。OUT 端将有输出。表示计数次数到。当某个通道用作定时器时。由CLK输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”。OUT将有输出,表示定时时间到。允许从CLK输入的时钟频在1~2MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。而后者是内时钟脉冲进行减“1”计数。作计数器时,要求计数的次数可直接作为计数器的初值预置到减

“1”计数器中。作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:

定时系数=需要定时的时间/时钟脉冲周期

①设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;

②计数/定时:向通道写入计数值,启动计数操作;

③读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。

④计数到:当计数器减1为0时,通过引脚OUT i向外输出“到”的脉冲信号。

计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。

锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。

5.方式选择控制字

二、8253的通道工作方式

8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。8253的各种工作方式如下:

1.方式0:计数结束则中断

工作方式0被称为计数结束中断方式,它的定时波形如图9.3.4所示。当任一通道被定义为工作方式0时,OUT i输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUT i仍保持低电平,然后计数器开始减“1”计数,直到计数值为“0”,此刻OUT i将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT i端输出的高电平一直维持到下次再写入计数值为止。

在工作方式0情况下,门控信号GATE用来控制减“1”计数操作是否进行。当GATE=1时,允许减“1”计数;GATE=0时,禁止减“1”计数;计数值将保持GATE有效时的数值不变,待GATE重新有效后,减“1”计数继续进行。

显然,利用工作方式0既可完成计数功能,也可完成定时功能。当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLK i端输入,由它对计数器进行减“1”计数,直到计数值为0,此刻OUT i输出正跳变,表示计数次数到。当用作定时器时,应把根据要求定时的时间和CLK i的周期计算出定时系数,预置到计数器中。从CLK i,输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数,定时时间从写入计数值开始,到计数值计到“0”为止,这时OUT i输出正跳变,表示定时时间到。

有一点需要说明,任一通道工作在方式0情况下,计数器初值一次有效,经过一次计数或

定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值。

2.方式1:单脉冲发生器

工作方式1被称作可编程单脉冲发生器,其定义波形如图9.3.5。进入这种工作方式,CPU 装入计数值n后OUT i输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。与此同时,OUT i输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT i输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK i周期的n倍。

如果在减“1”计数过程中,GATE由高电平跳变为低电乎,这并不影响计数过程,仍继续计数;但若重新遇到GATE的上升沿,则从初值开始重新计数,其效果会使输出的单脉冲加宽,如教材图9-22(b)中的第2个单脉冲。

这种工作方式下,计数值也是一次有效,每输入一次计数值,只产生一个负极性单脉冲。

3.方式2:速率波发生器

工作方式2被称作速率波发生器,其定时波形如图9.3.6所示。进入这种工作方式,OUT i 输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT i保持为高电平不变;待计数值减到“1”和“0”之间,OUT i将输出宽度为一个CLK i周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT i将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLK i周期,重复周期为CLK i

周期的n倍。

如果在减“1”计数过程中,GATE变为无效(输入0电平),则暂停减“1”计数,待GATE 恢复有效后,从初值n开始重新计数。这样会改变输出脉冲的速率。

如果在操作过程中要求改变输出脉冲的速率,CPU可在任何时候,重新写人新的计数值,它不会影响正在进行的减“1”计数过程,而是从下一个计数操作用期开始按新的计数值改变输

出脉冲的速率。

4.方式3:方波发生器

工作方式3被称作方波发生器,其定时波型如图9.3.7所示。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。