版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章计数定时技术16.1 概述概述q实现定时的三种方法:实现定时的三种方法: 1. 软件定时软件定时 由CPU执行指令序列所花费的时间来构成一定的时间间隔,从而达到定时的目的。 例如: MOV CX , H HERE: LOOP HEREq优点:不需要专门的硬件设备。q缺点: 浪费了宝贵的CPU资源。2.不可编程的硬件定时不可编程的硬件定时 时序波形时序波形 稳态稳态 td触发信号 暂稳态单稳态单稳态 电路电路3. 可编程计数器可编程计数器/定时器定时器q 可用软件的方法(通过初始化编程)设定或调整定时范围。q 典型产品: Zilog Z80-CTC Intel 8253(8254)16.2
2、 可编程计数器可编程计数器/定时器定时器825316.2.1 8253 的主要功能的主要功能 (1)具有三个独立的16位计数通道; (2)每个计数通道可按二进制或二十进制计数; (3)每个计数通道的计数速率可达2MHz; (4)每个计数通道有六种工作方式; (5)全部输入输出都与TTL电平兼容。 16.2.2 8253的结构的结构q 8253的内部结构框图如图所示。q 由图可见,它由与CPU的接口、内部控制电路以及三个计数器通道所组成。数据数据总线总线缓冲器缓冲器读读/写写逻辑逻辑控制字控制字寄存器寄存器D7D0计数器计数器0计数器计数器1计数器计数器2RDWRA0A1CS内部总线CLK0GA
3、TE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2图图16.1 8253内部结内部结构框图构框图1. 数据总线缓冲器数据总线缓冲器q 这是8253与CPU的数据总线(DD)连接的8位双向三态缓冲器。q CPU用输入输出指令对8253进行读写操作时的所有信息都通过这个缓冲器传送。2. 读读/写逻辑写逻辑q 这是8253内部操作的控制电路,它从系统控制总线上接收输入信号,然后转换成8253内部操作的各种控制信号。 3. 控制字寄存器控制字寄存器q 当地址信号A1和A0都为1时,访问控制字寄存器。q 控制字寄存器从数据总线上接收CPU送来的控制字,并由控制字的D7、D6两位的编码决定
4、控制字写入哪个通道的控制寄存器中去。q 由寄存在每个通道内的控制寄存器的内容决定该通道的工作方式,选择计数器是按二进制还是BCD数计数,并确定每个计数器初值的写入顺序。4. 计数器计数器0、计数器、计数器1、计数器、计数器2q 这是三个计数器/定时器通道,每一个都由16位的可设置计数初值的减法计数器构成。q 三个通道的操作是完全独立的。每个通道都有两个输入引脚CLK和GATE以及一个输出引脚OUT。q 从编程的角度看,从编程的角度看,8253的结构框图如图所示。的结构框图如图所示。 数据总线数据总线地址译码RDWRIO/MVCCGNDCLK0GATE0OUT0CLK1GATE1OUT1CLK2
5、GATE2OUT2D7D0RDWRCSA1A0控制寄存器(控制寄存器(8位)位)高8位低8位高8位低8位计数器计数器0高8位低8位计数初值寄存器计数初值寄存器(CR)计数执行部件计数执行部件(CE)输出锁存器(输出锁存器(OL)计数器计数器1计数器计数器2图图16.2 8253计数通道结构计数通道结构 q “控制寄存器控制寄存器”及及“计数初值寄存器计数初值寄存器(CR)”可由可由CPU写写入;入;q “输出锁存器输出锁存器(OL)”可由可由CPU读出。读出。16.2.3 8253的引脚的引脚q 8253的引脚如图所示。的引脚如图所示。8253D7D6D5D4D3D2D1D0CLK0OUT0G
6、ATE0GND1234567891011122423222120191817 16 15 14 13VccWRRDCSA1A0CLK2GATE2OUT2CLK1GATE1OUT116.3 8253的引脚图的引脚图16.2.4 8253 的工作方式的工作方式q8253的每个通道均可以通过编程选择6种工作方式之一:方式方式0计数到零产生中断请求计数到零产生中断请求 (Interrupt on Terminal Count)方式0的操作时序图如图所示。CLKGATE(高)(高)01234CWN4WRN1个个OUT图图16.4 方式方式0的时序图的时序图方式方式0的主要特点是:的主要特点是:计数器只计
7、一遍而不能自动重复工作。计数器只计一遍而不能自动重复工作。q当减1计数到零时,并不自动恢复计数初值重新开始计数,且OUT输出保持为高电平。q只有CPU再次写入一个新的计数值(即使计数值相同也需再次写入),OUT才变为低电平,计数器按新写入的计数值重新开始计数。q或者CPU重新对8253设置方式0控制字,它的OUT输出也可以立即变为低电平,并等再次写入计数初值后重新开始计数。(2) CPU向向CR寄存器写入计数初值后的第一个寄存器写入计数初值后的第一个CLK脉冲脉冲(即图中用斜线标出的那个脉冲),将(即图中用斜线标出的那个脉冲),将CR的内容送入的内容送入CE,从此之后计数器才开始减,从此之后计
8、数器才开始减1计数。计数。q 这第一个CLK脉冲不包括在减1计数过程中。q 如果设置计数初值为N,则输出OUT是在N+1个CLK脉冲之后才变为高电平。(3) 在计数过程中,可由在计数过程中,可由GATE信号控制暂停计数。信号控制暂停计数。q 当GATE变低时,计数暂停;q 当GATE变高后又接着计数。q 其工作波形如图所示。CLKGATE12223N3CWWROUT图图16.5 方式方式0计数过程中改变计数过程中改变GATE信号信号0(4) 在计数过程中也可改变计数值。在计数过程中也可改变计数值。q 在写入新的计数值后,计数器将立即按新的计数值重新开始计数,即改变计数值是立即有效的。q 当按新
9、的计数值减1计数到0时,输出OUT变为高电平。其工作波形如图所示。CLKGATE(高)12123CWN3WROUT图图16.6 方式方式0计数过程中改变计数值计数过程中改变计数值0N22. 方式方式1硬件可重复触发的单稳态触发器硬件可重复触发的单稳态触发器 ( Programmable one-shot)q 方式1的时序图如图所示。 CLKGATE图图16.7 方式方式1的时序图的时序图CWN2WR112OUT020q 在方式1,当CPU输出控制字后(WR的上升沿),OUT输出变为高电平(若原为高电平,则保持为高电平);q 在CPU写入计数初值后,计数器并不开始计数,直至门控信号GATE上升沿
10、(即门控触发信号即门控触发信号)出现,并在其下一个CLK脉冲的下降沿,CR的内容送入CE,同时使OUT输出变为低电平,然后开始对随后的CLK脉冲进行减1计数。 q 在计数过程中,OUT一直维持为低电平,直至减1计数到0时,OUT输出变为高电平。q 即由于GATE上升沿的触发,使使OUT输出端产生一个输出端产生一个宽度为宽度为N个个CLK周期的负脉冲。周期的负脉冲。q 此后,若再次由GATE上升沿触发,则输出再次产生一个同样宽度的负脉冲。 方式方式1的主要特点是:的主要特点是:(1) 若设置计数初值为N,则输出负脉冲的宽度为输出负脉冲的宽度为N个个CLK脉冲周期。脉冲周期。(2) 当计数到零时,
11、可再次由GATE上升沿触发,输出同样宽度的负脉冲,而不必重新写入计数初值。(3) 在计数过程中(输出负脉冲期间),可由GATE上升沿再触发。并使计数器从计数初值开始重新作减1计数,减至0时,OUT输出变为高电平。q 其效果是使输出负脉冲的宽度比原来加宽了。(4) 在计数过程中,CPU可改变计数初值,这时计数过程不受影响,计数到零后输出变高。q 当再次触发时,计数器才按新输入的计数值计数。q 即改变计数值是下次有效的。改变计数值是下次有效的。3. 方式方式2分频器分频器 (Rate Generator)q 在方式2,当CPU输出控制字后,OUT输出为高。在写入计数初值后,计数器将自动对输入时钟C
12、LK计数。q 在计数过程中OUT输出为高,直至计数器减到1(注意,不是减到0)时,OUT输出变低,经过一个CLK周期,输出恢复为高,且计数器将自动重新开始计数。q 这种方式可作脉冲速率发生器或用来产生实时时钟中断信号。q 方式方式2的时序图如图所示。的时序图如图所示。CLKGATE(高)23123CWN3WROUT图图16.8 方式方式2时序图时序图13方式方式2的主要特点是:的主要特点是: (1) 不用重新设置计数值,通道能连续工作,输出固定频不用重新设置计数值,通道能连续工作,输出固定频率的脉冲。率的脉冲。q如果计数初值为N,则每输入N个CLK脉冲,输出一个负脉冲。q负脉冲宽度为1个CLK
13、周期,重复周期为N倍的CLK周期。(2) 计数过程可由计数过程可由GATE信号控制。信号控制。q当GATE信号变低时,立即暂停现行计数;q当GATE信号又变高后,从计数初值开始重新计数。(3) 如果在计数过程中,CPU重新写入计数值,则对于正在进行的计数无影响,而是从下一个计数操作周期开始按新的计数值改变输出脉冲的频率。4. 方式方式3方波发生器方波发生器(Square Wave Rate Generator)q 方式3和方式2的工作情况类似,两者的主要区别是输出波形的形式。q 对于方式3,OUT输出是对称方波或基本对称的矩形波。即在一个计数周期内,若计数初值N为偶数为偶数,则OUT输出将有N
14、/2个CLK周期为高电平,N/2个CLK周期为低电平,输出为对称方波,其周期为N个CLK周期;q 若若N为奇数为奇数,则OUT输出将有(N+1)/2个CLK周期为高电平,(N-1)/2个CLK周期为低电平,输出为基本对称的矩形波,其周期也为N个CLK周期。 q 在方式3,当CPU设置控制字后,输出将为高,在写完计数初值N后计数器就自动开始计数,输出保持为高。q 当计数到N/2(或(N+1)/2)时,输出变低,直至计数到0,使输出变高。同时又重新装入计数值开始新的计数。q 计数过程周而复始重复进行。q 这种方式常用来产生一定频率的方波。q 方式3的时序图如图所示。 CWN4(N=5)GATE(高
15、)24124OUT(N4时UT(N5时)图图16.9 方式方式3时序图时序图WRCLK方式方式3的主要特点是:的主要特点是:(1) 若计数初值N为偶数,则输出波形是周期为N个CLK周期的对称方波;若计数初值N为奇数,则输出波形是周期为N个CLK周期的基本对称矩形波,其高电平持续时间比低电平持续时间多一个CLK周期。(2) 如果在计数过程中,GATE信号变低,则暂停现行计数过程,直到GATE再次有效,将从计数初值开始重新计数。(3) 如果要求改变输出方波的频率,则CPU可在任何时候重新写入新的计数初值,并从下一个计数操作周期开始改变输出方波的频率。5. 方式方式4软件触
16、发选通软件触发选通(Software Triggered Strobe)q 在方式4,当写入控制字后,OUT输出为高。当写入计数初值后计数器即开始计数(相当于软件触发启动),当计数到0后,输出变低,经过1个CLK周期,输出又变高。q 方式4不能自动重复计数,即这种方式计数是一次性的。q 每次启动计数都要靠重新写入计数值,所以称为“软件触发选通”。q 当8253工作于方式4时,可用作软件触发的选通信号发生器。q 方式4的时序图如图所示。GATE(高)CLKWRCWN30123OUT图图16.10 方式方式4时序图时序图方式方式4的主要特点是:的主要特点是: (1)若设置计数初值为N,则在写入计数
17、初值后的N+1个CLK脉冲,才输出一个负脉冲。负脉冲的宽度为1个CLK周期。(2) GATE为高时,允许计数;GATE为低时,禁止计数。所以,要实现软件启动,GATE应为高。(3) 若在计数过程中改变计数值,则按新的计数值重新开始计数,即改变计数值是立即有效的。q 方式方式4可应用于这样一种情况:可应用于这样一种情况: q CPU经输出端口发送并行数据给接收系统,经过一段时间延迟后,再发送一个选通信号,利用该选通信号将并行数据打入到接收系统的缓冲寄存器中。q 通过改变计数初值N,可以方便地调整发出选通信号的可以方便地调整发出选通信号的延迟时间。延迟时间。6. 方式方式5硬件触发选通硬件触发选通
18、 (Hardware Triggered Strobe)q 在方式5,设置了控制字后,输出为高。q 在设置了计数初值后,计数器并不立即开始计数,而是由门控信号GATE的上升沿触发启动。 q 当计数到0时,输出变低,经过一个经过一个CLK周期周期,输出恢复为高,并停止计数。q 要等到下次门控GATE信号的触发才能再计数,即方式5的计数是一次性的。q 方式5的时序图如图所示。CLKGATE0123CWN3WROUT图图16.11 方式方式5时序图时序图方式方式5的主要特点是:的主要特点是:(1) 若设置计数初值为N,则在门控GATE上升沿触发后,经过N+1个CLK脉冲,才输出一个负脉冲。(2) 若
19、在计数过程中再次出现门控GATE触发信号,则将使计数器从计数初值开始重新计数,但OUT输出的高电平不受影响。(3) 若在计数过程中改变计数值,只要在计数到0之前不出现新的门控触发信号,则原计数过程不受影响;等计数到0并出现新的门控发信号后,再按新的计数值计数。 若在写入了新的计数值后,在未计数到0之前有门控触发信号出现,则立即按新的计数值重新开始计数。 7. 8253工作方式小结工作方式小结 (1) 方式2(分频器)、方式4(软件触发选通)和方式5(硬件触发选通),它们的输出波形相同,都是宽度为它们的输出波形相同,都是宽度为1个个CLK周期的负脉冲周期的负脉冲。 区别是区别是,方式2是自动重复
20、工作的,而方式4需由软件(设置计数值)触发启动,方式5需由门控GATE信号触发启动。 (2) 方式5(硬件触发选通)与方式1(硬件触发单稳),触发触发信号相同,但输出波形不同信号相同,但输出波形不同.q 方式1输出为宽度是N个CLK周期的负脉冲(计数过程中输出为低);q 方式5输出为宽度是1个CLK周期的负脉冲(计数过程中输出为高)。(3) 在6种工作方式中,只有方式只有方式0,在写入控制字后输在写入控制字后输出为低;出为低; 其余5种方式,都是在写入控制字后输出为高。(4) 6种工作方式中的任一种方式,只有在写入计数初值后才能开始计数。q 方式方式0、2、3、4都是写入计数初值后,计数过程就
21、开始了。q 方式方式1、5在写入计数初值后,需由外部GATE信号的触发启动,才能开始计数过程。(5) 6种工作方式中,只有方式只有方式2(分频器分频器)和方式和方式3(方波发方波发生器生器)为自动重复工作方式,其他4种方式都是一次性计数,要继续工作需要重新启动。16.2.5 8253的初始化编程的初始化编程1. 内部寄存器的寻址内部寄存器的寻址q 8253有三个独立的计数器通道,每个通道可以被CPU访问的部件有:q 8位的控制寄存器,它只能写入,不能读出; q 16位的计数初值寄存器CR,它只能写入,不能读出;q 16位的输出锁存器OL,它只能读出,不能写入。q 8253芯片是否被选中,决定于
22、片选信号CS,通常CS接自地址译码器输出。 q 一片8253占用四个连续的端口地址,分别对应于三个计数初值寄存器端口和一个控制寄存器端口。q 由输入信号A1和A0的四种编码来选择四个端口之一。q 每个通道都各自有独立的控制寄存器,但三个通道的控制寄存器都共用一个端口地址,即A1和和A0都为都为1时时的端口地址的端口地址。它是三个通道共同使用的控制寄存器端口地址。 q 为了能够将每个通道的控制字写入它们各自的控制寄存器中,使用控制字的使用控制字的D7和和D6的编码,来标志此控制的编码,来标志此控制字是写入哪个通道的控制寄存器中。字是写入哪个通道的控制寄存器中。q 8253内部寄存器的寻址如表内部
23、寄存器的寻址如表16-1所示所示 。(P558)2.初始化编程顺序初始化编程顺序 注意:必须按控制字D5,D4位规定的格式进行写入。 设置控制字写入计数初值3. 8253的控制字的控制字SC1SC0RL1RL0M2M1M0BCD00 通道001 通道102 通道211 无效通道选择通道选择:00 计数器锁存命令01 只读/写计数器低8位10 只读/写计数器高8位11 先读/写计数器低8位 后读/写计数器高8位读读/写格式:写格式:计数制计数制:0 二进制计数1 十进制计数工作方式:工作方式:000 方式0001 方式1x10 方式2x11 方式3100 方式4101 方式5图图16.12 82
24、53 控制字控制字格式格式需要说明的是:需要说明的是:q 当采用二进制计数时当采用二进制计数时,如果是8位二进制计数位二进制计数(计数值256),则在8253初始化编程的传送指令“MOV AL, n”中,n可以写成任何进制数任何进制数(二进制、十进制或十六进制)的形式;q 如果是16位二进制计数位二进制计数(计数值65536),一种方法是先把计算得到的十进制计数初值n转换成4位十六进制数(即16位二进制),然后分两次写入8253的指定端口。 q 另一种方法是先把该十进制计数初值先把该十进制计数初值n直接传送给直接传送给AX,然后分两次写入然后分两次写入8253指定端口指定端口,即: q MOV
25、 AX , n q OUT PORT, AL ;先写低8位(PORT为端口号)q MOV AL, AH q OUT PORT, AL ; 后写高8位q 当采用十进制(当采用十进制(BCD码)计数时码)计数时,必须在8253初始化编程中把计算得到的十进制计数初值n加上后缀H, 以便在相应的传送指令执行后能够在AL(或AX)中得到十进制数n的BCD码表示形式。 例如例如n=50,则应按如下方式写入:,则应按如下方式写入: MOV AL, 50H OUT PORT, AL 如果如果n=1250, 则需分两次写入,即:则需分两次写入,即: MOV AL, 50H OUT PORT, AL ; 先写低8
26、位 MOV AL, 12H OUT PORT, AL ; 后写高8位 也可按如下方法两次写入:也可按如下方法两次写入: MOV AX, 1250H OUT PORT, AL ; 先写低8位 MOV AL, AH OUT PORT, AL ; 后写高8位4.初始化编程举例初始化编程举例例例 若用8253的计数通道1,工作在方式0,按8位二进制计数,计数初值为128,则初始化编程如下: (1) 确定通道控制字确定通道控制字-50H (2) 8位计数初值位计数初值-80H 设8253的端口地址为48H4BH,则初始化程序段为: MOV AL, 50H OUT 4BH, AL ; 设置通道1控制字 M
27、OV AL, 80H OUT 49H, AL ; 写通道1计数初值,只写低8位 例例16.2 若用通道0,工作在方式1,按十进制(BCD码)计数,计数初值为2010,则初始化编程如下: (1) 确定通道控制字确定通道控制字-33H (2) 计数初值低计数初值低8位为位为10,高,高8位为位为20。 若8253的端口地址同例1,则初始化程序段为: MOV AL, 33H OUT 4BH,AL ; 设置通道0控制字 MOV AL,10H OUT 48H,AL ; 写通道0计数初值低8位 MOV AL,20H OUT 48H,AL ; 写通道0计数初值高8位16.2.6 8253的读出操作的读出操作
28、 1.读之前先暂停计数 2.读之前先发锁存命令16.3 8253的应用的应用例例16.4 8253用作脉冲信号发生器。用作脉冲信号发生器。q 可用8253产生如图16.14(a)所示的周期性脉冲信号,其重复周期为5s,脉冲宽度为1s。q 设CLK信号频率为2MHz。 1s5s(a) 信号波形图8253CLK0GATE0OUT0CLK1GATE1OUT1方式方式1方式方式25V时钟F=2MHz(b) 连接图图图16.14 8253用作脉用作脉冲信号发生器冲信号发生器 MOV AL,00010010B ; 设置计数器0为方式1(单稳),只写低8位,二进制计数 OUT 86H,AL ; MOV AL
29、,02H ; 设置计数器0的计数初值为2 OUT 80H AL ; MOV AL,01010100B ; 设置计数器1为方式2(分频器),只写低8位,二进制计数 OUT 86H,AL ; MOV AL,0AH ; 设置计数器1的计数初值为10 OUT 82H,AL ;例例 q 用8253实现生产流水线上的工件计数,每通过100个工件,扬声器便发出频率为1000Hz的音响信号,持续时间为5秒。INTR(中断请求)5V时钟时钟2MHz8255A PA0GATE1CLK1GATE0OUT08253CLK0OUT1驱动电路扬声器5V光敏电阻工件工件光源图图16.13 8253用于工用于工件计数件计数q
30、 设8253的端口地址为40H43H, 8255A的端口地60H63H, 则实现本例功能的程序段如下: q 主程序:主程序: MOV AL, 00010001B ; 8253计数通道计数通道0初始化:初始化: 方式方式0,只,只 写低写低8位,位,BCD计数计数. OUT 43H, AL MOV AL, 99H ; 写计数通道0的计数初值 OUT 40H, AL MOV AL, 10000000B ; 8255A初始化:初始化: A口方式口方式0输输出出 OUT 63H, AL STI ; CPU开中断HERE:JMP HERE ; 等待中断q 中断服务程序:中断服务程序: MOV AL, 01H ;8255A的PA0输出高电平,启动8253计数通道1工作OUT 60H, AL MOV AL, 01110111B ;8253计数通道1初始化: 先写低8位,后写高8位OUT 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度电子劳动合同模板与员工劳动争议解决合同
- 2025年度股东合同解除与公司未来发展策略合同
- 2025年度饲料行业绿色环保项目投资合同
- 2025年度个人股权投资退出与转让合同(风险控制版)3篇
- 2025年度牙科技术研发与转让合同4篇
- 二零二五年度车库租赁与车位租赁管理合同范本8篇
- 二零二五年度木材市场调研与预测咨询服务合同
- 二零二五年度水利工程物资租赁及施工支持合同3篇
- 二零二四三方询价采购合同-环保节能产品推广与应用3篇
- 二零二五年度4S店汽车销售新能源技术合作合同范本3篇
- 道路沥青工程施工方案
- 2025年度正规离婚协议书电子版下载服务
- 《田口方法的导入》课件
- 春节后安全生产开工第一课
- 内陆养殖与水产品市场营销策略考核试卷
- 电力电缆工程施工组织设计
- 2024年重庆市中考数学试题B卷含答案
- 医生给病人免责协议书(2篇)
- 票据业务居间合同模板
- 承包钢板水泥库合同范本(2篇)
- 颈椎骨折的护理常规课件
评论
0/150
提交评论