8253工作方式以及应用举例

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

第27课 8253工作方式以及应用举例

8253的六种工作方式,8253的实际应用举例。本课主题:

教学目的:掌握8253六种工作方式的特点以及使用方法,通过实际应用举例强化8253的使用方法。

教学重点:8253的硬件连接和软件初始化方法。

教学难点:8253的在系统中的应用。

授课内容:

8253的每个通道都有6种不同的工作方式,下面分别进行介绍。

1.方式0--计数结束中断方式(Interrupt on Terminal Count)

2.方式1--可编程单稳态输出方式(Programmable One-short)

3.方式2--比率发生器(Rate Generator)

4.方式3--方波发生器(Square Wave Generator)

5.方式4--软件触发选通(Software Triggered Strobe)

6.方式5--硬件触发选通(Hardware Triggered Strobe)

由上面的讨论可知,6种工作方式各有特点,因而适用的场合也不一样。现将各种方式的主要特点概括如下:

对于方式0,在写入控制字后,输出端即变低,计数结束后,输出端由低变高,常用该输出信号作为中断源。其余5种方式写入控制字后,输出均变高。方式0可用来实现定时或对外部事件进行计数。

方式1用来产生单脉冲。

方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲的周期相同。

方式3用于产生连续的方波。方式2和方式3都实现对时钟脉冲进行n分频。

方式4和方式5的波形相同,都在计数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。但方式4由软件(设置计数值)触发计数,而方式5由硬件(门控信号GATE)触发计数。

这6种工作方式中,方式0、1和4,计数初值装进计数器后,仅一次有效。如果要通道再次按此方式工作,必须重新装入计数值。对于方式2、3和5,在减1计数到0值后,8253会自动将计数值重装进计数器。

8.2 8253的应用举例

一、8253定时功能的应用例子

1(用8253产生各种定时波形

在某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。要求3个计数通道分别完成以下功能:

(1)通道0工作于方式3,输出频率为2kHz的方波;

(2)通道l产生宽度为480us的单脉冲;

(3)通道2用硬件方式触发,输出单脉冲,时间常数为26。

2.控制LED的点亮或熄灭

用8253来控制一个LED发光二极管的点亮和熄灭的例子,要求点亮10秒钟后再让它熄灭10秒钟,并重复上述过程。假设这是一个8086系统,8253的各端口地址为81H、83H、85H和87H。

二、8253计数功能的应用例子

1.硬件电路设计

2.初始化编程

MOV AL, 01110001B ;控制字

OUT 0F6H, AL

MOV AL, 99H

OUT 0F2H, AL ;计数值低字节送计数器1 MOV AL, 04H

OUT 0F2H, AL ;计数值高字节送计数器1 3.计数值的读取

在读计数器现行值时,计数过程仍在进行,而且不受CPU的控制。因此,在CPU读取计数器的输出值时,可能计数器的输出正在发生改变,即数值不稳定,可能导致错误的读数。为了防止这种情况发生,必须在读数前设法终止计数或将计数器输出端的现行值锁存。这可以采用下面两种方法:

一种方法是在读数前用外部硬件切断计数脉冲信号,或者使门控信号变为低电平,迫使8253停止计数。这种方法的缺点是需要硬件电路配合。此外,由于外部事件源被切断或正常的计数过程被禁止,干扰了实际的计数过程。因此,这不是一种好的方法,在我们这个例子里,就不宜采用这种读数方法。

另一种方法是先用计数器锁存命令锁存现行计数值,然后将它读出。

上例中,在要读取箱子中的现行工件数时,可执行下面的程序段:

MOV AL, 01000000B ;锁存计数器1命令

MOV DX, 0F6H ;控制口

OUT DX, AL ;发锁存命令

MOV DX, 0F2H ;计数器1

1N AL, DX ;读取计数器1的低8位数

MOV AH, AL ;保存低8位数

IN AL, DX ;读取计数器1的高8位数

XCHG AH, AL ;将计数值置于AX中

在计数器的锁存命令发出后,锁存的计数值将保持不变,直至被读出为止。计数值从锁存器读出后,数值锁存状态即被自动解除,输出锁存器的值又将随计数器的值而变化。

4.8254的读回功能

当利用8254的读回(Read Back)命令功能,向8254的控制字寄存器写入一个读回命令字时,每次可锁存1,3个通道的计数值。此外,利用8254的读回功能,还可锁存1,3个计数通道的状态字,供CPU读取。

8254的读回命令的格式如图所示:

用户通过读取状态信息,可核查所选中通道的计数值、工作方式、输出引脚OUT的现行状态及计数器是否已写入计数通道等信息。状态字的格式如图所示:

相关文档
最新文档