《第8章定时计数器精选文档.ppt》由会员分享,可在线阅读,更多相关《第8章定时计数器精选文档.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章定时计数器章定时计数器本讲稿第一页,共二十九页7.3.1 概 述8253-PIT8253-PIT的主要功能有:的主要功能有:(1 1)有)有3 3个独立的个独立的1616位计数器。位计数器。(2 2)每个计数器都可以按照二进制或)每个计数器都可以按照二进制或BCDBCD码进行计数。码进行计数。(3 3)每每个个计计数数器器的的计计数数速速率率可可高高达达2MHz2MHz(8254-28254-2计计数数频频率可达到率可达到10MHz10MHz)。)。(4 4)每个计数器有)每个计数器有6 6种工作方式,可由程序设置和改变。种工作方式,可由程序设置和改变。(5 5)所有的输入输出引脚电平
2、都与)所有的输入输出引脚电平都与TTLTTL电平兼容。电平兼容。本讲稿第二页,共二十九页8位数据缓冲器读/写控制逻辑控制寄存器通道/计数器0通道/计数器1通道/计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2WRRDA0A1CSD0D7VccGND8253内部结构本讲稿第三页,共二十九页(1 1)数据总线缓冲器。这是)数据总线缓冲器。这是82538253与与CPUCPU数据总线连接的数据总线连接的8 8位双向三态缓冲器。位双向三态缓冲器。CPUCPU向向82538253输入指令和某通道的计数值输入指令和某通道的计数值,以及读取以及读取82538253计数器
3、中的计数值,都是通过这计数器中的计数值,都是通过这8 8条总线传送的。条总线传送的。(2 2)读)读/写逻辑。这是写逻辑。这是82538253内部操作的控制部分。内部操作的控制部分。82538253内内部寄存器由部寄存器由A0A0、A1A1、RDRD、WRWR决定。决定。(3 3)控制字寄存器。在)控制字寄存器。在82538253初始化编程时,由初始化编程时,由CPUCPU写入写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读控制字以决定计数器的工作方式。此寄存器只能写入而不能读出。出。(4 4)计数器)计数器#0#0、计数器、计数器#1#1、计数器、计数器#2#2。这是三个计数器这是
4、三个计数器/定时器,每一个都是由一个定时器,每一个都是由一个1616位的可预置位的可预置值的减法计数器构成。这三个计数器的操作是完全独立的。值的减法计数器构成。这三个计数器的操作是完全独立的。本讲稿第四页,共二十九页计数寄存器(CR)计数单元(CE)输出锁存器(OL)OUT0CLK0GATE0通道0 每个通道包含了1个16位计数寄存器CR、16位的减1计算单元CE、16位的计数输出锁存器OL。CPU写入的计数值存放在CR中(初值),计数的情况反应在OL中,OL可以由CPU读出。计数单元CE每收到一个 CLK时针脉冲,就自动减1,当然,减1操作还受到GATE信号的控制。在CE减1至0时,通过OU
5、T输出一个电平或脉冲。本讲稿第五页,共二十九页7.3.2 8253-PIT的控制字的控制字一、控制字一、控制字 在在82538253的的初初始始化化编编程程中中,由由CPUCPU向向82538253的的控控制制字字寄寄存存器器写写入入一一个个控控制制字字,它它规规定定了了82538253的的工工作作方方式式。其其格式如图格式如图10-310-3所示。所示。(1 1)计计数数器器选选择择(D D7 7D D6 6)。控控制制字字的的最最高高两两位位决决定这个控制字是哪一个计数器的控制字定这个控制字是哪一个计数器的控制字。本讲稿第六页,共二十九页通道号读/写控制工作方式数制 D7 D6 D5 D4
6、 D3 D2 D1 D0 0:二进制1:BCD000:方式0001:方式1x10:方式2x11:方式3100:方式4101:方式500:计数器计数值锁存10:只读/写高8位01:只读/写低8位11:先读写低8位/再读写高8位00:通道/计数器001:通道/计数器110:通道/计数器28253控制字格式计数值读写控制本讲稿第七页,共二十九页(2 2)数数据据读读/写写格格式式(D D5 5D D4 4)。CPUCPU向向计计数数器器写写入入初初值值和和读读取取它它们们的的当当前前状状态态时时,有几种不同的格式。有几种不同的格式。(3 3)工工作作方方式式(D D3 3D D2 2D D1 1)。
7、82538253的的每每个个计计数数器器可可以以有有6 6种种不不同同的的工工作作方方式式,由由这这三三位决定。每一种方式的特点,随后介绍。位决定。每一种方式的特点,随后介绍。(4 4)数数制制选选择择(D D0 0)。82538253的的每每个个计计数数器器有有两两种种计计数数制制:二二进进制制计计数数和和BCDBCD码码计计数数,由这位决定。由这位决定。D0=0 D0=0 按按二二进进制制计计数数,写写入入初初值值的的范范围围为为:0000HFFFFH0000HFFFFH,最最大大数数为为 0000H0000H,表示,表示6553665536 D0=1 D0=1 按按十十进进制制计计数数,
8、写写入入的的初初值值范范围围:0000H9999H0000H9999H,最最大大值值为为0000H0000H,表示表示1000010000。本讲稿第八页,共二十九页二、8253寄存器寻址RDWRA1A0寄存器操作1000写CR01001写CR11010写CR20100读OL00101读OL10110读OL21011写控制寄存器*控制寄存器具体写入哪个通道由 D7 D6 决定。本讲稿第九页,共二十九页三、8253读操作 1、读之前先停止计数 通过GATE 信号或停止 CLK 信号。2、读之前先送计数值锁存命令 如,读通道2当前计数值到BX寄存器,8253地址为304H307H。MOV DX,30
9、7H ;控制寄存器 MOV AL,80H OUT DX,AL MOV DX,306H ;通道2地址 IN AL,DX MOV BL,AL IN AL,DX MOV BH,AL本讲稿第十页,共二十九页四、8253初始化编程 (1)向8253写控制字 (2)向某个通道写初始计数值 如:计数器1工作在方式1,按BCD码计数,计数值为 3750。假定 8253的地址为:304H307H MOV DX,307H MOV AL,73H OUT DX,AL MOV DX,305H ;通道1的地址 MOV AL,50H OUT DX,AL MOV AL,37H OUT DX,AL本讲稿第十一页,共二十九页7.
10、3.3 8253-PIT的工作方式一、一、方式方式0 0计完最后一个数时中断计完最后一个数时中断在在这这种种方方式式下下,当当控控制制字字CWCW(Control Control WordWord)写写入入控控制制字字寄寄存存器器,则则使使OUTOUT输出端变低,此时计数器没有赋予初值,也没开始计数。输出端变低,此时计数器没有赋予初值,也没开始计数。要要开开始始计计数数,GATEGATE信信号号必必须须为为高高电电平平,并并在在写写入入计计数数初初值值LSBLSB后后,通通道道开开始始计计数数,在在计计数数过过程程中中 OUTOUT线线一一直直维维持持为为低低,直直到到计计数数到到“0”“0”
11、时时。OUTOUT输输出变高。出变高。注意:注意:(1 1)方式)方式0 0 不能自动重复计数,每次需写入初值。不能自动重复计数,每次需写入初值。(2 2)在在计计数数期期间间,如如果果GATEGATE变变低低,则则停停止止计计数数,直直到到GATEGATE变变高高后后,继继续续计计数数(不不是是重新计数)。重新计数)。(3 3)如果)如果GATEGATE一直为高电平,则,一直为高电平,则,82538253在写入初值后开始计数。在写入初值后开始计数。(4 4)在计数期间,如果)在计数期间,如果CPUCPU写入新值,则写入新值,则82538253按新值继续计数。按新值继续计数。本讲稿第十二页,共
12、二十九页CLKWRCW=10h LSB=43201GATEOUT本讲稿第十三页,共二十九页WRCW=10h LSB=4322012GATEOUT本讲稿第十四页,共二十九页二、二、方式方式1 1可编程序的单拍脉冲可编程序的单拍脉冲在在这这种种方方式式下下,当当CPUCPU写写控控制制字字之之后后(的的上上升升沿沿),OUTOUT输输出出将将保保持持为为高高(若若原原为为低低,则则由由低低变变高高)。当当CPUCPU写写完完计计数数值值后后,计计数数器器并并不不开开始始计计数数,直直到到外外部部门门控控脉脉冲冲GATEGATE启启动动之之后后的的下下一一个个输输入入CLKCLK脉脉冲冲的的下下降降
13、沿沿开开始始计计数数,输输出出OUTOUT变变低低。因因整整个个计计数数过过程程中中,OUTOUT都都维维持持为为低低,直直到到计计数数到到0 0,输输出出变变为为高高,因因此此,输输出出为为一一个个单单拍负脉冲,脉冲宽度为拍负脉冲,脉冲宽度为 N N 个个T T。若外部再次触发启动,则可以再产生一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。注意:注意:(1 1)每每次次GATEGATE的的一一个个启启动动脉脉冲冲使使CECE重重新新计计数数;且且在在CECE计计数数期期间间,如如果果GATEGATE产产生生一个启动脉冲,也会使一个启动脉冲,也会使CECE重新计数。重新计数。(2
14、 2)在在CECE计计数数期期间间,如如果果CPUCPU向向CRCR写写入入新新的的初初值值,不不会会影影响响当当前前计计数,直到计数完成,或产生一个新的数,直到计数完成,或产生一个新的GATEGATE脉冲,脉冲,CECE用新的值计数。用新的值计数。本讲稿第十五页,共二十九页CLKWRCW=12h LSB=3210GATEOUTLSB=53TT本讲稿第十六页,共二十九页三、三、方式方式2 2速率发生器速率发生器在在这这种种方方式式下下,当当CPUCPU输输出出控控制制字字后后,OUTOUT输输出出将将为为高高。在在写写入入计计数数值值后后,计计数数器器将将立立即即自自动动对对输输入入时时钟钟C
15、LKCLK计计数数。在在计计数数过过程程中中输输出出始始终终保保持持为为高高,直直至至计计数数器器减减到到1 1时,输出将变低,经过一个时,输出将变低,经过一个CLKCLK周期,输出恢复为高,且计数器开始重新计数。周期,输出恢复为高,且计数器开始重新计数。注意:注意:(1 1)在在计计数数期期间间,GATEGATE需需一一直直保保持持高高电电平平,当当GATEGATE变变低低时时,计计数数暂暂停停,直到直到GATEGATE变高,变高,CECE重新计数;重新计数;(2 2)CECE计数结束后,重新装入计数结束后,重新装入CRCR的初值,并自动计数;的初值,并自动计数;(3 3)在在CECE计计数
16、数期期间间,CPUCPU写写入入的的初初值值对对当当前前计计数数不不产产生生影影响响,CECE计计数数结结束束后,自动以新的初值计数。后,自动以新的初值计数。本讲稿第十七页,共二十九页CLKWRCW=14h LSB=432301GATEOUT210本讲稿第十八页,共二十九页四、四、方式方式3 3方波速率发生器方波速率发生器方方式式3 3和和方方式式2 2的的输输出出都都是是周周期期性性的的,它它们们的的主主要要区区别别是是,方方式式3 3在在计计数数过过程程中中OUTOUT输输出出有有一一半半时时间间为为高高,另另一一半半时时间间为为低低。具具体体地地说说,当当初初值值N N为为偶偶数数时时,
17、OUTOUT的高低输出各一半,当的高低输出各一半,当N N为奇数时,高电平为(为奇数时,高电平为(N+1N+1)/2/2,低电平为(,低电平为(N-1N-1)/2/2。注意:注意:(1 1)在在计计数数过过程程中中,GATEGATE需需保保持持高高电电平平,GATEGATE变变低低计计数数暂暂停停,且且OUTOUT变变高高,直直到到GATEGATE变高,变高,CECE重新计数;重新计数;(2 2)CECE计数结束后,重新装入计数结束后,重新装入CRCR的初值,并自动计数;的初值,并自动计数;(3 3)在在CECE计计数数期期间间,CPUCPU写写入入的的初初值值对对当当前前计计数数不不产产生生
18、影影响响,CECE计计数数结结束束后后,自自动以新的初值计数。动以新的初值计数。本讲稿第十九页,共二十九页CLKWRCW=16h LSB=432301GATEOUT210本讲稿第二十页,共二十九页五、五、方式方式4 4软件触发选通软件触发选通在在这这种种方方式式下下,当当写写入入控控制制字字后后,输输出出为为高高(原原为为高高则则保保持持为为高高,原原为为低低则则变变为为高高)。当当写写入入计计数数值值后后立立即即开开始始计计数数(相相当当于于软软件件启启动动),当当计计数数到到0 0后后,输输出出变变低低,经经过过一一个个输输入入时时钟钟周周期期,输输出出又又变变高高,计计数数器器停停止止计
19、计数数。这这种种方方式式计计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。数也是一次性的,只有在输入新的计数值后,才能开始新的计数。注意:注意:(1 1)GATEGATE需需保保持持高高电电平平,如如果果GATEGATE为为低低电电平平,CECE停停止止计计数数,直直到到GATEGATE变变高高,CECE继继续续计数;计数;GATEGATE的电平不影响的电平不影响OUTOUT的电平输出;的电平输出;(2 2)在计数期间,)在计数期间,CPUCPU写入初值后,写入初值后,CECE立即从新的初值开始计数;立即从新的初值开始计数;(3 3)CECE计计数数结结束束后后,不不会会自自动动装
20、装入入CRCR的的值值,直直到到有有新新的的初初值值写写入入,CECE开开始始新新的计数。的计数。本讲稿第二十一页,共二十九页CLKWRCW=18h LSB=43201GATEOUT本讲稿第二十二页,共二十九页六、六、方式方式5 5硬件触发选通硬件触发选通在在这这种种方方式式下下,设设置置了了控控制制字字后后,输输出出为为高高。在在设设置置了了计计数数值值后后,计计数数器器并并不不立立即即开开始始计计数数,而而是是由由门门控控脉脉冲冲的的上上升升沿沿触触发发启启动动。当当计计数数到到0 0时时,输输出出变变低低,经经过过一一个个CLKCLK脉脉冲冲,输输出出恢恢复复为为高高,停停止止计计数数。
21、要要等等到到下下次次门门控控脉冲的触发才能再计数。脉冲的触发才能再计数。注意:注意:(1 1)在)在CPUCPU写入初值后,写入初值后,CECE不开始计数,直到有一个不开始计数,直到有一个GATEGATE启动脉冲;启动脉冲;(2 2)在在计计数数期期间间,CPUCPU写写入入新新的的初初值值,不不影影响响当当前前计计数数,直直到到有有一一个个新的新的GATEGATE脉冲;在计数期间,新的脉冲;在计数期间,新的GATEGATE脉冲使脉冲使CECE重新计数;重新计数;(3 3)CECE计计数数结结束束后后,不不会会自自动动重重新新计计数数,只只有有一一个个新新的的GATEGATE脉脉冲冲时时,才开
22、始重新计数;才开始重新计数;本讲稿第二十三页,共二十九页CLKWRCW=1Ah LSB=321340GATEOUTLSB=52本讲稿第二十四页,共二十九页7.3.4 8253应用举例一、8253 在 PC/XT 机中的应用 1、功能结构 8253-5 是XT机中外围支持电路之一,提供动态刷新、系统时钟中断和扬声器发声的功能。8253的时钟由 8284 提供的 1.193182 MHZ 时钟脉冲。地址为:40H43H 功能说明:见功能结构图。计数器0作为系统时钟中断,每55ms 产生一次中断,使0040:006CH单元加1,产生进位为一小时:55ms x 65536=3604 s 1 h。计数器
23、1作为 DMA0(DRAM刷新)申请,每15 us 产生一次 DMA请求,对DRAM进行刷新。计数器2 输出 900HZ方波送扬声器。本讲稿第二十五页,共二十九页二、初始化编程 (1)计数器0 MOV AL,00110110B ;方式3,二进制计数。OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL;初值为 0(最大)(2)计数器1 MOV AL,01010100B ;方式2,只写低8位,二进制计数。OUT 43H,AL MOV AL,12H OUT 41H,AL (3)计数器2 MOV AL,10110110B ;方式3,二进制计数。OUT 43H,AL MOV AX,0533H OUT 42H,AL MOV AL,AH OUT 42H,AL本讲稿第二十六页,共二十九页三、实验三 1、方式0,手动输入脉冲:L0本讲稿第二十七页,共二十九页 2、方式3:分频器1HZL0本讲稿第二十八页,共二十九页返回本讲稿第二十九页,共二十九页
限制150内