第9章计数器与定时器_第1页
第9章计数器与定时器_第2页
第9章计数器与定时器_第3页
第9章计数器与定时器_第4页
第9章计数器与定时器_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章定时计数控制器本章主要内容本章主要内容u 8253 的引脚和的引脚和 6 种工作方式种工作方式u 8253 的编程的编程u 8253 在在IBM PC系列机上的应用系列机上的应用定时器和计数器u定时控制定时控制在微机系统中极为重要在微机系统中极为重要u定时器定时器由数字电路中的由数字电路中的计数电路计数电路构成,通构成,通过记录高精度晶振脉冲信号的个数,输出过记录高精度晶振脉冲信号的个数,输出准确的准确的时间间隔时间间隔u计数电路如果记录外设提供的具有一定计数电路如果记录外设提供的具有一定随随机性机性的脉冲信号时,它主要反映的脉冲信号时,它主要反映脉冲的个脉冲的个数数(进而获知外设的某种

2、状态),常又称(进而获知外设的某种状态),常又称为为计数器计数器定时功能的实现方法u用软件实现延时用软件实现延时利用微处理器执行一个利用微处理器执行一个延时程序段实现延时程序段实现u用硬件实现定时用硬件实现定时u采用不可编程器件采用不可编程器件如如分频器分频器、单稳电路单稳电路、简易定时电路简易定时电路;u采用可编程器件采用可编程器件采用可编程的采用可编程的定时定时/计数计数芯片和软件硬件结合芯片和软件硬件结合的办法构成灵活的定时的办法构成灵活的定时电路,可在不同的时间段内采用不同的定时电路,可在不同的时间段内采用不同的定时策略。策略。9.1 8253/8254定时计数器u3个个独立的计数器通

3、道,每个计数通道独立的计数器通道,每个计数通道16位位,可进行:可进行:u定时定时对引脚上输入的周期性时钟信号进行计对引脚上输入的周期性时钟信号进行计数数u计数计数对引脚上输入的非周期性脉冲信号进行对引脚上输入的非周期性脉冲信号进行计数计数u每个计数器有每个计数器有 6 种工作方式种工作方式u可按二进制或十进制(可按二进制或十进制(BCD码)进行计数码)进行计数u每个计数器的计数速率可高达每个计数器的计数速率可高达2MHz(8254-2计数频率可达到计数频率可达到10MHz )。)。一、8253的内部结构和引脚D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑R

4、DWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2引脚uD7D0:8位、双向、三态数据线,直接和系统位、双向、三态数据线,直接和系统数据总线相连。读数据总线相连。读/写写16位数据则分两次进行。位数据则分两次进行。uCS:片选信号,低电平有效片选信号,低电平有效。uRD,WR:读信号,写信号,低电平时有效。读信号,写信号,低电平时有效。u A1,A0:8253端口选择线。端口选择线。0010分别选择分别选择计数器计数器02,11选择控制端口。选择控制端口。uCLK0CLK2:分别是计数器分别是计数器02计数脉冲输入计数脉冲输入端,决定计数的速率。端

5、,决定计数的速率。uGATE0GATE2:分别是计数器分别是计数器02门控输入端,门控输入端,作为对计数允许作为对计数允许/禁止的控制禁止的控制 。u OUT0OUT2:分别是计数器分别是计数器02的输出端,的输出端,反映计数器的计数状态反映计数器的计数状态 。8253/8254的I/O地址0 1 0 0 00 1 0 0 10 1 0 1 00 1 0 1 10 0 1 0 00 0 1 0 10 0 1 1 0功功 能能对计数器对计数器0 0设置计数初值设置计数初值-CS -RD A1 A0-WR对计数器对计数器1 1设置计数初值设置计数初值对计数器对计数器2 2设置计数初值设置计数初值设

6、置控制字设置控制字从计数器从计数器0 0读出计数值读出计数值从计数器从计数器1 1读出计数值读出计数值从计数器从计数器2 2读出计数值读出计数值计数器(通道)内部结构示意图预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器计数器工作描述u预置寄存器预置寄存器用于存放计数初值,注意:用于存放计数初值,注意:u可采用二进制或十进制(可采用二进制或十进制(BCD码)码)u计数初值为计数初值为0时,计数值最大(时,计数值最大(65536/10000)u计数初值为计数初值为1时,计数值最小(时,计数值最小(1/1)u减法计数器减法计数器CLK引脚每收到一个脉冲,引脚每收到一个

7、脉冲,减法计数器将减减法计数器将减1。注意,预置寄存器中的预。注意,预置寄存器中的预置值不会改变。置值不会改变。u输出锁存器输出锁存器用于锁定当前的计数值,这用于锁定当前的计数值,这样样CPU在读取时,该值将不再变化在读取时,该值将不再变化计数器的3个引脚uCLK(时钟)时钟)输入,在计数过程中,此引脚输入,在计数过程中,此引脚上每输入上每输入1个时钟信号(下降沿),计数器的计个时钟信号(下降沿),计数器的计数值将减数值将减1uGATE(门控)门控)输入,控制计数器工作:输入,控制计数器工作:u开启开启/关闭计数关闭计数高电平时允许计数通道工作高电平时允许计数通道工作u触发触发/重触发重触发上

8、升沿产生触发或重触发上升沿产生触发或重触发uOUT(计数器输出)计数器输出)输出,根据设置工作方输出,根据设置工作方式的不同,式的不同, OUT引脚可输出单个或连续的波形信引脚可输出单个或连续的波形信号。一般是在计数过程结束时(计数值归号。一般是在计数过程结束时(计数值归0),),OUT引脚信号发生变化。引脚信号发生变化。二、 8253/8254的工作方式u方式方式0 计数结束中断计数结束中断u方式方式1 可编程单稳可编程单稳u方式方式2 连续负脉冲发生器连续负脉冲发生器u方式方式3 连续方波发生器连续方波发生器u方式方式4 软件触发选通软件触发选通u方式方式5 硬件触发选通硬件触发选通1、方

9、式0: 计数结束中断GATEOUTCLK 03124写入写入4写入方式写入方式0-WRGATE:开关作用开关作用方式0 计数结束中断u在这种方式下,当控制字在这种方式下,当控制字CW(Control Word)写入控制字寄存器,则使)写入控制字寄存器,则使OUT输输出端变低,此时计数器没有赋予初值,也出端变低,此时计数器没有赋予初值,也没开始计数。没开始计数。u要开始计数,要开始计数,GATE信号必须为高电平,信号必须为高电平,并在写入计数初值后,通道开始计数,在并在写入计数初值后,通道开始计数,在计数过程中计数过程中 OUT线一直维持为低,直到线一直维持为低,直到计数到计数到“0”时。时。O

10、UT输出变高。输出变高。2、方式1: 可编程单稳脉冲GATEOUTCLK 03124写入写入4写入方式写入方式1-WRGATE:触发作用触发作用方式1 可编程单稳脉冲u在这种方式下,当在这种方式下,当CPU写控制字之后(的上升写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变沿),输出将保持为高(若原为低,则由低变高)。当高)。当CPU写完计数值后,计数器并不开始写完计数值后,计数器并不开始计数,直到外部门控脉冲计数,直到外部门控脉冲GATE启动之后的下一启动之后的下一个输入个输入CLK脉冲的下降沿开始计数,输出脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,变低。因整个计数

11、过程中,OUT都维持为低,都维持为低,直到计数到直到计数到0,输出变为高,因此,输出为一个,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。生一个单拍脉冲。3、方式2: 频率发生器(分频器)03124GATEOUTCLK写写入入4写入写入方式方式2031240312403124-WRGATE:开关作用开关作用方式2 频率发生器(分频器)u在这种方式下,当在这种方式下,当CPU输出控制字后,输输出控制字后,输出将为高。在写入计数值后,计数器将立出将为高。在写入计数值后,计数器将立即自动对输入时钟即自动对输入时钟CLK计数

12、。在计数过程计数。在计数过程中输出始终保持为高,直至计数器减到中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个时,输出将变低,经过一个CLK周期,输周期,输出恢复为高,且计数器开始重新计数。出恢复为高,且计数器开始重新计数。4、方式3 : 方波发生器03124GATEOUTCLK写入写入4写入写入方式方式3031240312403124-WRGATE:开关作用开关作用初值初值N为为偶数偶数:N/2脉冲数输出高,脉冲数输出高, N/2脉冲数输出低脉冲数输出低初值初值N为为奇数奇数:(N+1)/2脉冲数输出高,脉冲数输出高, (N-1)/2脉冲数输出低脉冲数输出低方式4 软件触发选通信

13、号GATEOUTCLK03124写入写入4写入写入方式方式423写入写入31 0-WRGATE:开关作用开关作用5、方式4: 软件触发选通信号u在这种方式下,当写入控制字后,输出为在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相高)。当写入计数值后立即开始计数(相当于软件启动),当计数到当于软件启动),当计数到0后,输出变后,输出变低,经过一个输入时钟周期,输出又变高,低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值

14、后,才能开性的,只有在输入新的计数值后,才能开始新的计数始新的计数方式5 硬件触发选通信号GATEOUTCLK03124写入写入4写入写入方式方式52233写入写入311 0-WRGATE:触发作用触发作用重重触发:触发:装计数值装计数值触发触发6、方式5: 硬件触发选通信号u在这种方式下,设置了控制字后,输出为在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发开始计数,而是由门控脉冲的上升沿触发启动。当计数到启动。当计数到0时,输出变低,经过一时,输出变低,经过一个个CLK脉冲,输出恢复为高,停止计

15、数。脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数要等到下次门控脉冲的触发才能再计数各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 16种工作方式共同点u写入计数初值之后,并不马上开始计数,只有写入计数初值之后,并不马上开始计数,只有检测到检测到GATE信号有效,经过一个信号有效,经过一个CLK周期,周期,把计数初值送到减把计数初值送到减1计数寄存器,才开始作减计数寄存器,才开始作减1操作。操作。uOUT端随着工作方式的不同和当前计数状态的端随着工作方式的不同

16、和当前计数状态的不同,一定有电平输出变化,而且输出变化均不同,一定有电平输出变化,而且输出变化均发生在发生在CLK的下降沿。的下降沿。OUT的输出波形在写控的输出波形在写控制字之前为未定态,在写了控制字之后到计数制字之前为未定态,在写了控制字之后到计数之前为计数初态,再之后有计数态、暂停态、之前为计数初态,再之后有计数态、暂停态、结束态等。结束态等。u对于给定的工作方式,门控信号对于给定的工作方式,门控信号GATE的触发条的触发条件是有具体规定的,或电平触发,或边沿触发,件是有具体规定的,或电平触发,或边沿触发,或两者均可或两者均可门控信号GATE的性能 方式方式低电平或下降沿低电平或下降沿上

17、升沿上升沿高电平高电平0 禁止计数禁止计数 允许计数允许计数1 开始计数,开始计数, 2 禁止计数,禁止计数, 输出变为低电平输出变为低电平 允许计数允许计数3 输出变为高电平输出变为高电平 重新设置初值,重新设置初值, 允许计数允许计数4 禁止计数,禁止计数, 开始计数开始计数 允许计数允许计数5 输出变为高电平输出变为高电平 开始计数开始计数 6种工作方式不同点(1)u方式方式0 0和方式和方式4 4都是由软件触发都是由软件触发( (写入计数初值写入计数初值) )启动计数,无自动重装入计数初值能力,除非启动计数,无自动重装入计数初值能力,除非再写初值。门控信号再写初值。门控信号GATEGA

18、TE高电平时,减高电平时,减1 1计数器计数器减减1 1;低电平时,减;低电平时,减1 1计数器停止计数。它们的计数器停止计数。它们的区别是:方式区别是:方式0 0在计数过程中在计数过程中OUTOUT输出为低电平,输出为低电平,计数结束时变为高电平,并一直保持;方式计数结束时变为高电平,并一直保持;方式4 4在在计数过程中计数过程中OUTOUT输出为高电平,计数结束时输出输出为高电平,计数结束时输出一个宽度为一个一个宽度为一个TCLKTCLK的负脉冲,以后又保持高的负脉冲,以后又保持高电平。电平。6种工作方式不同点(2)u方式方式1和方式和方式5均是硬件触发均是硬件触发(GATE上升沿上升沿)

19、启动启动计数。写入初值之后,在门控信号计数。写入初值之后,在门控信号GATE的上升的上升沿触发下,初值写入减沿触发下,初值写入减1计数寄存器,开始计数,计数寄存器,开始计数,并且并且GATE只在上升沿起作用。它们的区别是:只在上升沿起作用。它们的区别是:方式方式1在计数过程中在计数过程中OUT输出一个宽度为计数初输出一个宽度为计数初值乘以值乘以TCLK的单相负脉冲;方式的单相负脉冲;方式5是在计数结是在计数结束后束后OUT输出一个宽度为一个输出一个宽度为一个TCLK的负脉冲。的负脉冲。6种工作方式不同点(3)u方式方式2和方式和方式3的共同点是具有自动重装入计数的共同点是具有自动重装入计数初值

20、的能力,都是频率发生器初值的能力,都是频率发生器(分频器分频器)。它们的。它们的区别是:方式区别是:方式2输出占空比为输出占空比为(n-1):1的矩形波信的矩形波信号,而方式号,而方式3输出方波(或近似方波)信号。输出方波(或近似方波)信号。9.2 8253/8254的编程u8253加电后的工作方式不确定,必须经初始加电后的工作方式不确定,必须经初始化编程后,才能正常工作化编程后,才能正常工作u初始化编程:初始化编程:u先写入控制字先写入控制字u再写入计数初值再写入计数初值u工作后,可随时读取计数值:工作后,可随时读取计数值:u一般先将计数值锁存在通道内的锁存器中一般先将计数值锁存在通道内的锁

21、存器中u然后可分两次读取然后可分两次读取16位的计数值位的计数值u8254 新增的读回命令新增的读回命令1 写入方式控制字计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D0控制字写入控制字控制字写入控制字I/O地址(地址(A1A011)00 计数器计数器001 计数器计数器110 计数器计数器211 非法非法 00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式

22、方式50 二进制二进制 1 十进制十进制2 写入计数初值u选择二进制时选择二进制时u计数范围:计数范围:1H10000Hu初值写入初值写入0时计数最大(时计数最大(65536/10000H)u选择十进制(选择十进制(BCD码)时码)时u计数范围:计数范围:110000u初值写入初值写入0时计数最大(时计数最大(10000)计数值写入计数器各自的计数值写入计数器各自的 I/O地址地址3 读取计数值u对对8位数据线,读取位数据线,读取16位的计数值,需要分两次位的计数值,需要分两次进行进行u由于计数在不断进行,故应将当前计数值先行由于计数在不断进行,故应将当前计数值先行锁存,然后再读取:锁存,然后

23、再读取:u向控制字向控制字I/O地址写入锁存命令地址写入锁存命令u从计数器从计数器I/O地址读取被锁存的计数值地址读取被锁存的计数值u3 种读取方式:种读取方式:u只读低只读低8位位u只读高只读高8位位u先低后高先低后高读取计数值时要注意格式和数制读取计数值时要注意格式和数制例1: 8253的初始化例:要求计数器例:要求计数器0 0工作于方式工作于方式3 3,输出方波的重复频率为,输出方波的重复频率为2KHz2KHz,计数脉冲输入为计数脉冲输入为2.5MHz2.5MHz,采用,采用BCDBCD码计数,试写出初始码计数,试写出初始化程序段化程序段。l计算计数初值:计算计数初值:lTC= 2.5M

24、Hz/ 2KHz=1250l方式字为:方式字为:0011 0111B=37Hl(计数器(计数器0,写,写16位,方式位,方式3,BCD计数)计数)l设端口地址为:设端口地址为:80H、81H、82H、83H。;写入方式控制字MOV AL,37HOUT 83H,AL;写入计数初始值低8位MOV AL,50HOUT 80,AL;写入计数初始值高8位MOV AL,12H OUT 80H,AL例2: 定时器计数器计数器0 0定时定时10ms10ms,clkclk时钟时钟200Khz200Khz,请初始化,请初始化MOV AL,00110001B ;写入方式控制字MOV DX,307HOUT DX,AL

25、MOV AL,0H;写入计数初始值低8位MOV DX,304HOUT DX,ALMOV AL,20H ;写入计数初始值高8位OUT DX,AL9.3 8253的应用例例3:用用8253-58253-5监视一个生产流水线监视一个生产流水线OUT0 CLK0GATE0 8253CLK1GATE1 OUT11驱驱动动器器INT+5V2.5MHz8255PA0:设计要求及设计方案u使用使用8253-5监视一个生产流水线,每通过监视一个生产流水线,每通过50个个工件,扬声器响工件,扬声器响5秒钟,频率秒钟,频率2000Hz。u用用8253-5的通道的通道0设定为计数方式计数,计数满设定为计数方式计数,计

26、数满50后,由后,由OUT0输出一个负脉冲,经反向后作为输出一个负脉冲,经反向后作为8259A的中断请求信号,在中断服务程序中,的中断请求信号,在中断服务程序中,启动启动8253-5通道通道1工作,有通道工作,有通道1连续输出频率连续输出频率为为2000Hz的方波信号,持续的方波信号,持续5秒后结束。秒后结束。u通道通道0工作于方式工作于方式2,通道,通道1工作于方式工作于方式3,通道,通道1的门控信号的门控信号GATE1由由8255A的的PA0控制。控制。:控制字设置u通道通道0计数器工作于方式计数器工作于方式2,采用,采用BCD计数,因计数,因计数初值为计数初值为50,采用,采用RL1RL

27、0=01(读(读/写计数器写计数器的低的低8位),则工作方式字为位),则工作方式字为00010101=15H。u通道通道1计数器工作于方式计数器工作于方式3,CLK1接接2.5MHz时时钟,要求产生钟,要求产生1000Hz的方波,则计数初值应为的方波,则计数初值应为2.5106/2000=1250,采用,采用RL1RL0=11 (先读(先读计数器的低计数器的低8位,再读计数器的高位,再读计数器的高8位)。则工位)。则工作方式字为作方式字为01110111=77H。u设通道设通道0的地址为的地址为40H,通道,通道1的地址为的地址为41H,控,控制口地址为制口地址为43H,8255A的口地址为的

28、口地址为80-83H。:主程序 MOV ALMOV AL,15H15H;通道;通道0 0初始化,方式初始化,方式2 2OUT 43HOUT 43H,ALALMOV ALMOV AL,50H50H;置计数初值;置计数初值OUT 40HOUT 40H,ALALSTI STI ;开中断;开中断LPOLPO:HLT HLT ;等待中断;等待中断JMP LOPJMP LOP: 中断服务程序MOV ALMOV AL,01H 01H ;通道;通道1 1的的GATE1GATE1置置1 1,启动计数,启动计数OUT 80HOUT 80H,AL AL ; ; 认为认为82558255已经初始化,向已经初始化,向8

29、2558255 ;端口送数,使;端口送数,使PA0PA0为为“1”1”MOV ALMOV AL,77H 77H ;通道;通道1 1初始化,方式初始化,方式3 3OUT 43HOUT 43H,ALALMOV ALMOV AL,50H 50H ;置计数初值低;置计数初值低8 8位位OUT 41HOUT 41H,ALALMOV ALMOV AL,12H 12H ;置计数初值高;置计数初值高8 8位位OUT 41HOUT 41H,ALALCALL DL5S CALL DL5S ;延时;延时5 5秒,秒,DL5SDL5S为为5 5秒延时程序秒延时程序MOV ALMOV AL,00H 00H ;通道;通道

30、1 1的的GATE1GATE1置置0 0,停止计数,停止计数OUT 80HOUT 80H,AL AL ;复位;复位82558255端口,使端口,使PA0PA0为为“0”0”IRETIRET例例4: 4: 为为A/DA/D转换提供采样启动信号转换提供采样启动信号8253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2启动转换启动转换时钟源时钟源频率频率 F+5V求计数求计数值值cnt0cnt1cnt2A0A1A1A2I/O地址地址200H207H-CSCH0的输出频率:的输出频率: F/cnt0 CH0的门控端:的门控端:CH2/CH1级联后控制,级联后控制,采样持续时间:采样持续时间: (cnt1*cnt2)/F注意注意地址地址连接连接方式方式2连续连续负脉冲负脉冲方式方式1单稳单稳方式方式3方波方波采样频率采样频率 F/cnt0启动启动例5: 三个计数通道组合应用D7-D0RDWRA0A1CS 8253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GA

温馨提示

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

评论

0/150

提交评论