可编程定时器8253

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

第八章可编程定时器/计数器8253及其应用

【回顾】可编程芯片的概念,端口的概念。

【本讲重点】定时与计数的基本概念及其意义,定时/计数器芯片Intel8253的性能概述,内、外部结构及其与CPU的连接。

8.1 定时与计数

1.定时与计数

在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。

2.定时与计数的实现方法

(1) 硬件法

专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。

(2) 软件法

利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。

(3) 软、硬件结合法

即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。

8.2 定时/计数器芯片Intel8253

Intel8253是8086微机系统常用的定时/计数器芯片,它具有定时与计数两大功能。

一、8253的一般性能概述

1.每个8253芯片有3个独立的16位计数器通道;

2.每个计数器通道都可以按照二进制或二—十进制(BCD码)计数;

3.每个计数器的计数速率可以高达2MHz;

4.每个通道有6种工作方式,可以由程序设定和改变;

5.所有的输入、输出电平都与TTL兼容。

二、8253内部结构

8253的内部结构如图8-1所示,它主要包括以下几个主要部分:

图8-1 8253的内部结构

1.数据总线缓冲器

实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。

2.读/写控制逻辑

控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。

3.控制字寄存器

在8253的初始化编程时,由CPU 写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。

4.计数通道0#、1#、2#:

这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU 发来的读计数值命令时,用以锁存计数值,供CPU 读取,读取完毕之后,输出锁存器又跟随减1计数器变化。 三、8253的外部引脚

8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图8-2所示。8253芯片的24个引脚分为两组,一组面向CPU ,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:

1.D 7~D 0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。 2.RD :来自于CPU 的读控制信号输入引脚,低电平有效。

3.WR :来自于CPU 的写控制信号输入引脚,低电平有效。

4.CS :芯片选择信号输入引脚,低电平有效。

图8-2 8253的引脚

5.A 1、A 0:地址信号输入引脚,用以选择8253芯片的通道及控制字寄存器。0A 、1A 的状

态与8253端口地址的对应关系如下表所示。

6.V CC及GND:+5V电源及接地引脚

7.CLK i:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。

8.GATE i:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。

9.OUT i:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。

四、8253的控制字

8253有一个8位的控制字寄存器,其格式如下:

图8-3 8253的控制字

其中:

D0:数制选择控制。为1时,表明采用BCD码进行定时/计数;否则,采用二进制进行定时/计数。

D3~D1:工作方式选择控制。000,0;001,1;X10,2;X11,3;100,4;101,5;

D5、D4:读写格式。00,计数锁存命令;01,读/写高8位命令;10,读/写低8位命令;11,先读/写低8位,再读写高8位命令。

D7、D6:通道选择控制。00 0通道;01,1通道;10,2通道;11,非法

1.8253的初始化编程

要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。

初始化编程包括如下步骤:

(1)写入通道控制字,规定通道的工作方式

(2) 写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,

则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。D0:用于确定计数数制,0,二进制;1,BCD码

【例1】设8253的端口地址为:04H~0AH,要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,进行初始化编程。

控制字为:01010000B=50H

初始化程序:

MOV AL,50H

OUT 0AH,AL

MOV AL,80H

OUT 06H,AL

相关文档
最新文档