第9章计数器和定时器电路lnte 82538254-PT ◆9.1概述 ◆9.28253-PIT的控制字 ◆9.38253-PIT的工作方式 ◆9.48253PIT的编程 ◆9.58254PIT
2 第9章 计数器和定时器电路 计数器和定时器电路Intel 8253/8254 8253/8254-PIT 9.1 概述 9.2 8253-PIT的控制字 9.3 8253-PIT的工作方式 9.4 8253-PIT的编程 9.5 8254-PIT
应用面:定时延时控制;定时中断; 定时检测;定时扫描;对外部 件记数 实现定时延时控制的三种方法 1、不可编程的硬件定时 数据 软件定时 D7DC总线 计数器[ GATE 3、可编程的硬件定时器 缓冲器 号 OUTO 概述 ITEL系列定时器/记数器 如可编程间隔定时器PIT 、一片上有三个独立的6位计读写/ (一)、8253的外部及内部结构,主 RD CLK I 要功能 计数器|GATE 数器通道。 逻辑 1号 2、每个计数器可以按照二进制 记数 3、每个计数器的记数速率可高 达2NHZ。 CLK2 第四章8088的 每个通道有6种工作方式, 控制字 计数器|GATE2 可由程序设置和改变。 线操作和时序 寄存器 2号 5、所有的输出和输入都与TL OUT2 第三节计数器 兼容 和定时器(-) 二)、8253-PI的内部结构 如右图(136)
3
1、数据总线缓冲器 8位双向三态缓冲器:①CP在初始化编程时写入8253的控制字;②CP向某一通道 写记数值;③CP从某一通道读取记数值。 2、读/写逻辑。 读-8253→CPU 控制字寄存器 在8253的初始化编程时,由CP写入控制字以决定通道的工作方式。 4、计数器0#,1#, 每一个都是有一个16位的可预置的减法计数器构成三个通道完全独立 工作过程是对CK输入值按二进制从预置值开始减1记数,当预置值减到0就从 0叮T输出一信号。 若CLK频率精确的时钟脉冲,则通道可作为定时器。记数频率取决于输入脉冲的 频率。在记数过程中计数器受到门控信号GATE的控制。计数器的输入与输出以及门控 信号之间的关系取决于工作方式 计数器的初值必须在开始记数之前由CPU输出指令预置。在记数过程中,CP随时 第四章8088的 可用输入指令读取任一计数器的当前记数值,这对记数无影响 线操作和时序 第三节计数器 和定时器(-)
4
二、8253-PIT的控制字 D6 D5 第四章 第一节概述 记数通道读写方式 工作方式 数制 第二节8088的总线 00:计数器0# 00:计数器锁存命令000:方式00:二进制 第三节计数器和定时器电路 Inter8253P|T(分两部分) 01:计数器1# 10:只读写高8位 001;方式11:BCD 10:计数器2# 01:只读写低8位 ×10:方式2(D0) 非法选择 先写低8位后写高8位×11:方式3 (D7,D6) (D5,D4) 100:方式4 101:方式5 1、计数器的选择 三个通道的地址是同一个,即A1A0=11。对三个通道编程时要向同一个 地址写入三个控制值;早控制字中的通道选择与通道计数器的地址是两回 事,计数器通道的地址是用作CP向计数器写初值; 2、数据读写格式 3、工作方式 第四章8088的 数制选择 线操作和时序 二进制记数:初值000 I FFFFH其中0000是最大值,代表63536; BCD:初值000099 其中0000大值代表10000 第三节计数器 和定时器(-)
5
8253-PIT的工作方式 (一)、方式0记完最后一个数时中断 CW=10LSB=4(只写低八8位)初值为4 第四章 WR-SW=10 LSB=4 第一节概述 第二节8088的总线 第三节计数器和定时器电路 Inter8253P|T(分两部分) gAtE 1:3·2:1:0:FFFE 特点:1、计数器只记一遍,不重置初值,至0时OU一直为高,直到下 记数 2、初值为N,输出信号OUT是在N+1个CLK脉冲之后才变高的 2,4,5同 3、GATE=0则记数暂停。 4、记数中可改变初值,马上重置数 第四章8088的 5、若要用于中断,则可用0UT信号作为中断请求信号,但要外接中断 优先权排队电路与向量产生电路。 线操作和时序 例: MOV AL,50H 第三节计数器 MOV AL. 80H OUT 43H. AL 和定时器(-) OUT 42H AL
6
二)、方式1—可编程序的单拍脉冲 CW= 第四章 WR 第一节概述 第二节8088的总线 aKL几几几 第三节计数器和定时器电路 Inter8253P|T(分两部分) GATE 3:2:1:0:F 特点:1、初值为N,则输出的单拍脉冲的宽度N个输入脉冲间隔; 2、记数至0,只需再次由外部触发启动,不必重送记数初值; 3、再记数过程中,外部可发生门控脉冲进行再触在再触发脉冲上生之 后的一个CLK脉冲下降沿开始重记数; 4、CPU可改变记数初值,记数不受影想,记数到0后输出为高电平,再 次触发启动,则记数器按新的初始值开始记数。 第四章8088的例:使0#工作在方式1,按BCD已数,记数值为3008始化程序为 线操作和时序 MOV AL, 23H 第三节计数器 OUT 43H. Al MOV AL. 30H 和定时器(-) OUT 42H. AL 低8位自动设置为00H
7
三)、方式2—频率发生器 写入初值后,计数器自动对输入时钟CLK记数,输出为高直到记数为1, OUT=0能连续工作。 第四章 第一节概述 WR-CW=14 LSB=3 第二节8088的总线 第三节计数器和定时器电路 Inter8253P|T(分两部分) 特点:1、不用重置记数值,通道能够连续工作,输岀固定频率的脉冲。 2、技术过程中GATE=0则停止记数,GATE=1后的一个CLK脉冲开始数。 3、在记数过程中改变LSB,直到记数值为1时按新的初值开始记数。 例:使计数器2#工作方式2,按二进制记数,记数值为02FOH,则初始化程序 MOV AL. 084H 第四章8088的 OUT 43H. AL 线操作和时序 MOV AL. OFOH 第三节计数器 OUT 42H AL MOV AL. 02H 和定时器(-) OUT 42H. AL
8
(四)、方式3-方波频率发生器 注:若初值为奇数则先减1然后与上同 若记数值为偶数,装入记数值后,每一个CLK脉冲使记数值减2,当记 第四章 到0时,一方面使输出改变状态,另一方面又重新置初值。 若记数初值为奇数,则装入记数值后,第一个CLK脉冲使初值减 第一节概述 第二节8088的总线 当至0,改变输出,以后的第一个CLK脉冲使初值减3。 第三节计数器和定时器电路 3、记数期间可写入新得计数值,不影响现行记数,但若在方波半周期结 Inter8253P|T(分两部分) 束之前和心计数值写入之后收到GATE脉冲,计数器将在下一个CLK脉 冲输入新的初始值以此开始记数。 CW=14 LSB aK几几 GATE OUT 计数器值为偶 2:4:2:4:2 2:①LSB=4) 第四章8088的 线操作和时序 OUT 计数器值为奇 第三节计数器 0:4 4:2:0:(LSB=5) 和定时器
9
第四章 (五)、方式4软件触发选通 第一节概述 CW=18 LSB- 第二节8088的总线 WR- 第三节计数器和定时器电路 Inter8253P|T(分两部分) K几几 GATE OUT 2:1:0:FF:FE:FD: 特点:1、CP写入记数值后的下一个CLK脉冲,把记数值写入记数器,再下 个CLK脉冲开始记数。 、当GATE=1时允许记数,而GATE=0禁止记数,因此要做到软件启动则 GATE应保持为1 第四章8088的 3、若在记数过程中,改变记数值,则按新记数值重新开始记数。 线操作和时序 第三节计数器 和定时器
10
(六)、方式5-硬件触发选通(门控触发) WR=1SB浮 第四章 第一节概述 aK几几几厂 第二节8088的总线 第三节计数器和定时器电路 Inter8253P|T(分两部分) GATE OUT 3:2:1:0FF:3 特点:1、设置记数值为N,则在门控脉冲触发后经过N+1个CLK脉冲,才输出 个负脉冲。 2、若在记数过程中使用门控脉冲,则使记数器重新开始记数,但对输 出的状态无影响 3、在记数过程中改变记数值,只要没有门控信号的触发,不影响记数 过程,当记数为0后,若有新的门控信号的触发,则按新得计数 第四章8088的 值记数 线操作和时序 (七)、8253P1T工作方式小结 方式2,4,5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲 第三节计数器 但方式2是连续工作的,方式提是由软件触发启动方式5由门控脉冲触发启动。 和定时器 方式5与方式1工作方式基本相同,但输出波形不同
11