第七章 可编程定时器计数器.ppt_第1页
第七章 可编程定时器计数器.ppt_第2页
第七章 可编程定时器计数器.ppt_第3页
第七章 可编程定时器计数器.ppt_第4页
第七章 可编程定时器计数器.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程定时器/计数器8253,7.1可编程定时器/计数器的基本工作原理,GATE是控制输入端 它有多种控制作用,如允许禁止计数、启动停止计数等。控制寄存器是用来控制计数器定时器的工作方式,就是控制CLK脉冲和CATE门控信号适当配合来产生OUT端的输出信号的形状。 归纳为以下几种工作方式 (1)门脉冲控制时钟输入。此时,当门脉冲GATE到来时,时钟CLK有效,进行计数操作;当门脉冲结束时,时钟无效,计数停止。 (2)用门脉冲重新启动计数器。 (3)用门脉冲停止计数器工作。 (4)单次计数。此时仅要求GATE为高电平即可。 (5)循环计数。此时,每当计数执行单元为零时,输出端OUT输出一个信号,

2、同时又重新装入计数初值寄存器内容到计数执行单元,重复原来的计数过程,从而在OUT端上可输出周期性的脉冲信号。,7.2 8253的结构和功能,8253-PIT的主要功能有: (1)有3个独立的16位计数器。 (2)每个计数器都可以按照二进制或BCD码进行计数。 (3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。 (4)每个计数器有6种工作方式,可由程序设置和改变。 (5)所有的输入输出引脚电平都与TTL电平兼容。,8253的结构和引脚,三个计数器中每一个都有三条信号线 计数输入CLK用于输入定时基准脉冲或计数脉冲; 输出信号OUT以相应的电平指示计数的完成,或输出

3、脉冲波形; 选通输入(门控输入)GATE用于启动或禁止计数器的操作,以使计数器 和计测对象同步。 每个计数器中有三个寄存器 控制寄存器初始化时,将控制字寄存器 中的内容写入该寄存器; 计数初值寄存器初始化时写入该计数器的初始 值; 减法计数寄存器计数初值由计数初值寄存器送人减法计数寄存器,当 计数输入端输入一个计数脉冲时,减法计数寄存器内容减1,当减到零时,输出 端输出相应信号表示计数结束。,8253 的控制字,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,它规定了8253的工作方式。,表 8253-5端口功能选择表,选通信号GATE的功能,8253 的工作方式,一

4、、方式0计数结束中断方式 工作原理 1)在这种方式下,当控制字CW(Control Word)写入控制字寄存器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。 2)要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT线一直维持为低,直到计数到“0”时。OUT输出变高。 特点:1)软件启动(写入计数初值时刻启动) 2)GATE作用:开放、禁止计数 3)OUT端输出一个负脉冲 作用:作中断请求信号,方式0的时序波形,方式0的时序图,方式1可编程序的单拍脉冲 工作原理 在这种方式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由

5、低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。 特点:1)门控脉冲的上升沿启动计数; 2)OUT输出一个单稳态负脉冲 作用:常作监视时钟,方式1的时序波形,CLK,GATE,OUT,GATE,OUT,方式1的时序图,方式2速率发生器 工作原理:在这种方式下,当CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为

6、高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。 特点:1)CR自动重载入CE,OUT输出周期性分频信号; 2)软件、硬件均可启动; 3)OUT正脉冲宽度(n1)个CLK宽度,负脉冲宽度为1个CLK宽度 作用:分频器和时基信号,2.方式2的时序波形,方式2的时序图,方式3方波速率发生器,原理:1)方式3和方式2的输出都是周期性的 2)区别是:方式3在计数过程中输出有一半时间为高,另一半时间为低 作用:方波发生器、波特率发生器,方式4软件触发选通(启动计数原理类似于方式0) 工作原理 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变

7、为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。 区别:方式0输出高电平(n+1CLK宽度) 方式4输出一个CLK宽度的负脉冲,方式4的时序波形,方式4的时序图,方式5硬件触发选通启动计数原理类似于方式1 工作原理 在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。 区别: 方式1

8、OUT输出负脉冲宽度n个CLK宽度; 方式5 OUT输出负脉冲宽度1个CLK宽度,方式5的时序波形,方式5时序图,7.2.3 8253-5的初始化,要使用8253必须首先进行初始化编程,初始化编程的内容为:必须先写入每一个计数器的控制字,然后写入计数器的计数值。 在有些方式下,写入计数值后此计数器就开始工作了,而有的方式需要外界门控信号的触发启动。 在初始化编程时,某一计数器的控制字和计数值,是通过两个不同的端口地址写入的。任一计数器的控制字都是写入至控制字寄存器(地址总线低两位A1A0=11),由控制字中的D7D6来确定是哪一个计数器的控制字;而计数值是由各个计数器的端口地址写入的。,初始化

9、编程的步骤为:,(1)写入计数器控制字,规定计数器的工作方式。 (2)写入计数值。 若规定只写低8位,则写入的为计数值的低8位,高8位自动置0。 若规定只写高8位,则写入的为计数值的高8位,低8位自动置0。 若是16位计数值,则分两次写入,先写入低8位,再写入高8位。,例:要求计数器0工作于方式3,输出方波的重复频率为2KHz,计数脉冲输入为2.5MHz,采用BCD码计数,试写出初始化程序段。,计算计数初值: TC= 2.5MHz/ 2KHz=1250 方式字为:0011 0111B=37H (计数器0,写16位,方式3,BCD计数) 设端口地址为:80H、81H、82H、83H。 则初始化程

10、序为:,MOV AL,37H;写入方式控制字 OUT 83H,AL MOV AL,50H;写入计数初始值低8位 OUT 80,AL MOV AL,12H ;写入计数初始值高8位 OUT 80H,AL,(3)读计数值,以普通对计数器端口读的方法取得当前计数值 锁存计数器的当前值(RL1RL0=00),7.2.4 8253-5的应用举例 一、用8253-5监视一个生产流水线 1.硬件设计,图7-4 8253的应用计数和定时,设计要求及设计方案确定,使用8253-5监视一个生产流水线,每通过50个工件,扬声器响5秒钟,频率2000Hz。 工作原理: 1) 用8253-5的通道0设定为计数方式计数,计

11、数满50后,由OUT0输出一个负脉冲,经反向后作为8259A的中断请求信号,在中断服务程序中,启动8253-5通道1工作,有通道1连续输出频率为2000Hz的方波信号,持续5秒后结束。 2) 通道0工作于方式2,通道1工作于方式3,通道1的门控信号GATE1由8255A的PA0控制。,2.控制字设置,通道0计数器工作于方式2,采用BCD计数,因计数初值为50,采用RL1RL0=01(读/写计数器的低8位),则工作方式字为00010101=15H。 通道1计数器工作于方式3,CLK1接2.5MHz时钟,要求产生2000Hz的方波,则计数初值应为2.5106/2000=1250,采用RL1RL0=

12、11 (先读计数器的低8位,再读计数器的高8位)。则工作方式字为01110111=77H。 设通道0的地址为40H,通道1的地址为41H,控制口地址为43H,8255A的口地址为80-83H。,主程序:,MOV AL,15H;通道0初始化,方式2 OUT 43H,AL MOV AL,50H;置计数初值 OUT 40H,AL STI ;开中断 LPO:HLT ;等待中断 JMP LOP,中断服务程序为: MOV AL,01H;通道1的GATE1置1,启动计数 OUT 80H,AL ; 认为8255已经初始化,向8255 端口送数,使PA0为“1” MOV AL,77H;通道1初始化,方式3 OU

13、T 43H,AL MOV AL,50H;置计数初值低8位 OUT 41H,AL MOV AL,12H ;置计数初值高8位 OUT 41H,AL CALL DL5S ;延时5秒,DL5S为5秒延时程序 MOV AL,00H;通道1的GATE1置0,停止计数 OUT 80H,AL ;复位8255端口,使PA0为“0” IRET 注:本例中,通道0工作于计数状态,通道1工作于计时状态。,二、8253在IBM-PC/XT机中的应用,图7-5 8253在IBM-PX机中的应用逻辑图,1.工作原理分析,系统分配给8253的端口地址为040H043H,三个计数器在IBM-PC机中的功能如下: (1)计数器0

14、用来产生实时时钟信号,工作于方式3,计数初值为0,采用二进制计数,输出OUT0作为中断请求IRQ0,连接到中断优先权控制器8259A的IR0。此时OUT0端输出1193181.665536=18.2(Hz)的方波脉冲序列,方波的脉冲周期约为55ms(1/ 18.2(Hz) ),也就是说,计数器0每隔55ms产生一次中断请求。在中断处理程序中使用一个16位的软件计数器(初值为0)进行加1计数,因此当该计数器由FFFFH变为0000H时,表示已产生65536次中断请求,共经过65536 18.2( 65536 55ms )=3600秒时间。,(2)计数器1用来产生动态存储器刷新操作的定时控制,它工

15、作于方式2,计数初值为18,OUT1端输出一个负脉冲序列,其脉冲周期约为18 1.1931816MHz=15.08(s)。该输出将作为动态刷新控制器8237A中通道0的DMA请求信号DREQ0,控制DMA控制器完成每隔15.08(s)对系统中的动态存储芯片进行一次刷新操作,(3)计数器2用于为系统中的扬声器发声时提供一个约900Hz的方波信号。工作于方式3,计数初值为0533H,GATE2接入一个自系统板上8255A的PB0,作为扬声器发声时间控制信号。显然,当GATE2为高电平时,OUT2端将输出频率为1193181.6 1331D(0533H)=896Hz的方波( 1193181.6 90

16、0=1326D=052EH),该输出方波经功率放大器75477放大与滤波后驱动扬声器;当GATE2为地电平时,计数器2停止工作,在OUT2端无方波输出信号。,2. 8253的初始化程序段,(1)对计数器0的初始化 MOV AL,0011 0110B;写入计数器0的控制字,CW表示 选择计数器0,双字节写,方式3和二进制计数 OUT 43H,AL MOC AL,0 ;计数初值为65536,先写入低8位字节 到CRL,再写入高8位字节到CRH OUT 40H,AL OUT 40H,AL,(2)对计数器1的初始化程序,MOV AL,0101 0100B;写入计数器1的控制字,CW表示选择 计数器1的

17、控制寄存器,只写入低位字 节,方式2和二进制计数 OUT 43,AL MOV AL,18D ;计数初值写入CRL OUT 41H,AL,(3)对计数器2的初始化程序,MOV AL,1011 0110B;写入计数器2的控制字,CW表示选择 计数器2的控制寄 存器,双字节写、方式2和二进制计数 OUT 43,AL MOV AX,0533H(052EH);计数初值0533H依次写入CRL、CRH OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H;PB口端口地址061H MOV AH,AL OR AL,03H;完成对8255A PB0=PB1=1的设置,扬声器发声 O

18、UT 61H,AL 。 MOV AL,AH OUT 61H,AL;恢复8255PB口,三、8253在实时控制系统中的应用,图7-8 用8253组成的采样周期发生器,1. 采样周期发生器的设计原理,对于8253中的每个计数器来说,如果CLK脉冲信号为1.1931816MHz,计数初值为65536时,OUT输出脉冲的最大周期也只有55ms左右。因此,要产生符合采样周期要求的时间间隔,可采用两种方法,其一是仅用一个计数器来实现,但此时必须降低CLK频率才行,未了降低频率必须增加分频器之类的硬件电路,增加了硬件成本。 另一种方法就是将8253的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器

19、使用,将其OUT输出信号作为另一个计数器的CLK脉冲信号;而另一个计数器只起计数作用,其OUT输出端作为中断请求信号。 显然后一种方法具有非常灵活的控制手段,只要通过软件修改两个计数器中任何一个的计数初值,就可以改变采样周期的时间间隔,因此能产生大范围的时间变化的采样周期信号,所以在实际的计算机控制系统中应用广泛。,设8253的端口地址为:230H233H 8259的IR2作为采样周期的中断源的输入端 中断类型码为:0AH 中断服务程序的首地址存放在0028H002BH 中断服务程序的名为:RTIME 计数器0工作于方式2,计数初值为0,仅写低8位字节,采用二进制计数. 计数器0控制字为:00

20、01 0100=54H 计数器1工作于方式3,计数初值采用来自采样周期变量TIME,按先写高8位,再写低8位次序将16位计数初值写入CR,采用二进制计数. 计数器1控制字为:0111 0110=76H,2. 8253的初始化及及中断处理程序首地址的程序段,MOV DX,233H ;写入计数器0的控制字 MOV AL,0001 0100B(54H) OUT DX,AL MOV DX ,230H ;计数初值写入CRL,并启动计数器0 MOV AL ,00H OUT DX,AL MOV DX,233H ;写入计数器1的控制字 MOV AL,0111 0110B(76H) OUT DX,AL MOV

21、DX,231H ;计数初值写入CRL,并启动计数器1 MOV AL,BYTE PTR TIME ;PRT重新指定变量类型,OUT DX,AL MOV AL,BYTE PTR TIME+1 OUT DX,AL MOV DI,28H ;存中断处理程序首地址偏移量到中 断向量表 MOV AX,OFFSET RTIME CLD ;设方向标志为0(递增加1) STOSW ;写中断服务程序首地址偏移量 MOV AX,SEG RTIME ;存中断处理程序首地址的段地址到 中断向量表 STOSW ;写中断服务程序首地址偏移量 STI ,四、三个计数通道组合应用,图7-6 8253的应用三个计数通道组合应用,通

22、道0:方式2,计数初值为1000 通道1:方式1,计数初值为500 通道2:方式3,计数初值为2000 外接时钟2.5MHz 设8253的端口地址为:80H83H,(1)解题分析,从图中可看出,通道0、2的时钟CLK0、CLK2是固定的,即时钟源输出CLK频率为2.5MHz,周期T=400ns,即0.4 s. 通道2的工作方式为方式3,计数初值为2000,输出为对称方波,周期T2=2000T=800 s 通道2的输出经过反向器后又作为通道1的CLK1,通道1的工作方式为方式1(上升沿触发),计数初值为500,输出波形为单个负脉冲,宽度T1=500T2=500 2000T=400000 s=40

23、0ms. 通道1的输出经过反向器后又作为通道0的门控信号GATE0,通道0的工作方式为方式2,计数初值为1000,输出波形为连续负脉冲,脉冲重复周期T0=10000.4 s =400 s.通道0的输出负脉冲的持续时间为GATE0保持为高电平的时间即T1=400ms. 由此得最终输出OUT为OUT0的反向波形,其重复周期T= 400 s,波形持续时间T1=400ms.,图7-7 8253各通道波形图,(2)初始化程序,MOV AL,0011 0101B;计数通道0为方式2,16位计数,BCD计数 OUT 83H,AL MOV AL,00H ;通道0写入计数初值1000 OUT 80H,AL MO

24、V AL,10H OUT 80H,AL MOV AL,0111 0011B ;计数通道1为方式1 ,16位计数,BCD计数 OUT 83H,AL MOV AL,00H ;通道1写入计数初值500 OUT 81H,AL MOV AL,05H OUT 81H,AL,MOV AL,1011 0111B ;计数通道2为方式3 ,16位计数,BCD计数 OUT 83H,AL MOV AL,00H ;通道2写入计数初值2000 OUT 82H,AL MOV AL,20H OUT 82H,AL (3)讨论: 上述三通道都为BCD计数,若改为二进制计数,应作那些变动? 控制字的最低位改为“0” 将十进制数初值

25、:1000、500、2000改为十六进制数 1000D=03E8H 500D =01F4H 2000D=07D0H,例题: 8253A-5的计数通道0连接如图所示,试回答:(1)计数通道0工作于何种方式,并写出工作方式名称;(2)写出计数通道0的计数初值(列出计算式)(3)写出初始化程序,解: (1)由于出现一个CLK周期宽度的负脉冲的方式有方式25两种,但是GATE0是一直保持高电平,因此方式5是无法触发的,因此可以判断计数通道0工作于方式2 (2)因为CLK周期宽度为400ns, CLK正脉冲宽度为200ns,因此 计数通道0的计数初值= 1ms/ 400ns=2500 (3)初始化程序段(设8253的口地址为:80H-83H) MOV AL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论