第06章定时计数技术1_第1页
第06章定时计数技术1_第2页
第06章定时计数技术1_第3页
第06章定时计数技术1_第4页
第06章定时计数技术1_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

6.1定时/计数基本概念6.1定时计数概念定时定义:提供的时间基准。分类:内部定时、外部定时。计数定时与计数本质上是一致的。计数的信号随机,定时的信号具有周期性。第一页,共89页。第一页,共89页。6.1定时/计数基本概念

各种计算机下图都需要时间基准,尤其是工业测控系统,常常要进行定时器和对外部事件计数。6.1.1系统的时间基准

计算机是严格按时序进行工作的智能机器。系统本身需要一个时间基准,提供时序和时钟日历等测控系统需要提供定时和计数器的功能。6.1定时计数概念第二页,共89页。第二页,共89页。6.1.2系统定时分类

所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。要实现定时或延时控制,有三种主要方法:软件定时定时器/计数器纯硬件定时定时器/计数器可编程的硬件定时器/计数器。6.1.2系统定时分类第三页,共89页。第三页,共89页。

1.软件定时方法:由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间,通过适当地挑选指令和安排循环次数来实现软件的定时。利用微处理器执行一个延时程序段实现不用硬件,但占用CPU时间、定时精度不高,随系统时钟频率改变,降低了CPU的利用率。1、软件定时第四页,共89页。第四页,共89页。

2.纯硬件定时(不可编程定时)它采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。这样的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。但它由纯硬件来完成,给使用带来不便。采用分频器、单稳电路或简易定时电路控制定时时间定时电路简单、定时时间可以在一定范围改变2、纯硬件定时第五页,共89页。第五页,共89页。

3.可编程硬件定时器/计数器这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路具有多种工作方式、能够输出多种控制信号Intel系列的8253、8254就是常用的可编程定时/计数器。3、可编程硬件定时器第六页,共89页。第六页,共89页。6.2可编程定时/计数器82536.2.18253的主要特性8253是可编程定时器/计数器芯片,DIP24,单一正5V电源,NMOS工艺制成。1)3个独立的16位减法计数器,又可分成两个8位计数器。2)计数速率为0~2.6MHz(8254为10MHZ)。6.2可编程8253第七页,共89页。第七页,共89页。3)两种计数方式:即二进制或BCD码方式计数。4)6种工作方式,对系统时钟技术实现定时,或对外部计数。5)可由软件或硬件控制开始计数或停止计数。

6.2可编程82538254是8253的改进型第八页,共89页。第八页,共89页。图6.18253的内部结构6.2.28253的内部结构6.2.2内部结构图6.1D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2第九页,共89页。第九页,共89页。1、数据总线缓冲器它与CPU的数据总线相连,是8位双向三态缓冲器。CPU通过这个缓冲器对8253进行读/写操作。可向控制字写入控制字,向计数器写入初值;也可从计数器读取当前计数值。2、读/写控制逻辑电路 读/写控制逻辑电路从系统总线接收输入信号,经过译码,产生对8253各部分的控制。1、数据总线缓冲器第十页,共89页。第十页,共89页。3、控制字寄存器此寄存器只能写入而不能读出。在8253初始化时,由CPU写入控制字来设置计数器的工作方式。接收从CPU来的控制字,由D7,D6位的编码确定控制字写入哪个计数器的控制字寄存器4、计数器 计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个都是由一个16位的可预置的减法计数器构成,都有一个控制单元,控制该计数器的工作方式。 每个计数器的组成如下:3、控制字寄存器第十一页,共89页。第十一页,共89页。 图6.2计数器的内部逻辑图图6.2第十二页,共89页。第十二页,共89页。1)计数初值寄存器分为高8位和低8位,只能写入,不能读出,使计数器能从某个设定的初值开始计数。2)16位计数单元是计数器的核心部分,一般当初值寄存器的内容装入计数单元后,就可以启动它以输入时钟频率递减工作。3)输出锁存器分为高8位和低8位,CPU可以从该锁存器读取当前计数值。 计数器的内部逻辑如图6.2第十三页,共89页。第十三页,共89页。演示预置寄存器GATECLKOUT减1计数器输出锁存器计数初值存于预置寄存器;在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值第十四页,共89页。第十四页,共89页。6.2.38253的外部特性(引脚功能)图6.38253的外部引脚图6.2.3外部特性图6.3第十五页,共89页。第十五页,共89页。一、8253与CPU的接口引线

D7~D0:数据线,双向,三态,与CPU数据总线直接连接。WR:写信号,输入,低电平有效,控制CPU对8253的写操作。RD:读信号,输入,低电平有效,控制CPU对8253的读操作。一、与CPU的接口引线第十六页,共89页。第十六页,共89页。A1,A0:地址线,输入,寻址8253内部的4个端口CS:片选信号,输入,低电平有效,0=8253被选中且可读写一、与CPU的接口引线CS*A1A0I/O地址读操作RD*写操作WR*00000101001140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字第十七页,共89页。第十七页,共89页。表6-18253的端口选择A1A0寄存器选择和操作01000写计数器001001写计数器101010写计数器201011写控制字寄存器00100读计数器000101读计数器100110读计数器200111无操作(三态)1××××禁止(三态)011××无操作(三态)表6-1第十八页,共89页。第十八页,共89页。二、8253与外设的接口引线

CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型,当GATE=0,禁止计数器工作;GATE=1,才允许计数器工作OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号第十九页,共89页。第十九页,共89页。6.2.4方式控制字图6.48253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字写入计数初值读取计数值D7D6D5D4D3D2D1D0第二十页,共89页。第二十页,共89页。6.2.48253的方式控制字(CW)图6.48253的控制字6.2.4方式控制字图6.4第二十一页,共89页。第二十一页,共89页。写入方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1010方式2011方式3100方式4101方式50二进制1十进制控制字写入控制字I/O地址(A1A0=11)第二十二页,共89页。第二十二页,共89页。第8章:2.写入计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000计数值写入计数器各自的I/O地址第二十三页,共89页。第二十三页,共89页。第8章:3.读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制第二十四页,共89页。第二十四页,共89页。BCD:用于选择每个计数器的计数制。D0D0=0:二进制计数,范围是0000H~FFFFH,其中0000H是最大值,代表65536。D0=1:BCD码计数,范围是0000—9999,其中,0000是最大值,代表10000。第二十五页,共89页。第二十五页,共89页。M2、M1、M0:设置每个计数器的工作方式。6种

M2M1M0工作方式选择000方式0001方式1X10方式2X11方式3100方式4101方式5第二十六页,共89页。第二十六页,共89页。RL1、RL0:设置数据读/写格式。4种

RL1RL0读/写格式00锁定当前计数器(供CPU读取)01只读/写低8位10只读/写高8位11先读/写低8位,后读/写高8位第二十七页,共89页。第二十七页,共89页。说明:1、8253的两种读计数值的操作。1)读之前先停止计数用GATE停止计数器工作,然后用IN指令读取,格式由RL1、RL0确定。第二十八页,共89页。第二十八页,共89页。2)读之前先送计数锁存命令用D5D4=00锁存当前计数值到内部锁存器中,该方法读不影响当时正在进行的计数。(1)用OUT指令写入锁存控制字到控制寄存器,锁存当前计数值到内部锁存器中(2)用IN指令读取被锁存的计数值,格式由RL1、RL0确定。读取或重新编程后,锁存器结束锁存状态,又开始随计数器内容变化第二十九页,共89页。第二十九页,共89页。2、写计数初值操作1)D5D4=01,初值只有8位,送入初值寄存器的低8位,而高8位自动清零。2)D5D4=10,初值只有8位,送入初值寄存器的高8位,而低8位自动清零。3)D5D4=11,初值有26位,分两次送入初值寄存器中,先写低8位,再写高8位。第三十页,共89页。第三十页,共89页。SC1、SC0:计数器选择位SC1SC0所选计数器00计数器001计数器110计数器211无意义第三十一页,共89页。第三十一页,共89页。6.2.58253的初始化编程 在任何情况下,使用8253之前,必须先对其进行初始化编程的控制字。具体步骤如下:1)写入计数器的控制字,规定其工作方式;2)写入计数初值。(1)只写低8位,则写一次为计数值的低8位,高8位自动清零。(2)只写高8位,则写一次为计数值的高8位,低8位自动清零。(3)写16位,则分两次写入,先写低8位,后写高8位。6.2.5初始化编程第三十二页,共89页。第三十二页,共89页。【例6.1】8253片首地址=40H;要求:T0=方式0,初值=FFH,二进制计数;T1=方式2,初值=1000,BCD码计数。T0的控制字=00010000B=10H 初值=FFHT1的控制字=01100101B=65H 初值=10H MOV AL,10H ;写T0控制字 OUT 43H,AL ; MOV AL,FFH ;写T0计数初值 OUT 40H,AL ; MOV AL,65H ;写T1控制字 OUT 43H,AL ; MOV AL,10H ;写T1计数初值 OUT 41H,AL ;第三十三页,共89页。第三十三页,共89页。【例6.2】8253片首地址=200H;要求:T2=方式5,初值=F03FH,二进制计数。T2的控制字=10111010B=BAH 初值=F03FH MOV DX,203H ;控制字地址 MOV AL,BAH ;写T2控制字 OUT DX,AL ; MOV DX,202H ;T2计数器地址 MOV AL,3FH ;写T2计数初值低8位 OUT DX,AL ; MOV AL,F0H ;写T2计数初值高8位 OUT DX,AL ; 第三十四页,共89页。第三十四页,共89页。8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式

主要区别是:输出的波形不同计数过程中GATE信号对计数操作的影响不同启动计数器的触发方式不同等6.2.68253的工作方式6.2.6工作方式第三十五页,共89页。第三十五页,共89页。6.2.6工作方式每种工作方式的过程类似:设定工作方式设定计数初值硬件启动计数初值进入减1计数器每输入一个时钟计数器减1的计数过程计数过程结束第三十六页,共89页。第三十六页,共89页。遵循的原则:1)写入控制字后,控制逻辑电路复位,OUT端进入初始化状态(1或0)2)初值写入后,要经过一个时钟上升沿和下降沿才开始计数。6.2.6工作方式第三十七页,共89页。第三十七页,共89页。3)通常,门控信号GATE在时钟脉冲的上升沿被采样。(1)方式0,4:GATE为电平触发。(2)方式1,5:GATE为上升沿触发。(3)方式2,3:GATE可为电平或上升沿触发。4)在时钟脉冲下降沿,计数器作减1计数。0是计数器所能容纳的最大值。第三十八页,共89页。第三十八页,共89页。一、方式0—计数结束后输出由低变高

该方式的波形如图6.5所示,这种方式的特点是:①写入控制字后,OUT输出端变为低电平。当写入计数初值后,计数器开始减1计数。在计数过程中OUT一直保持为低电平,直到计数到0时,OUT输出变为高电平。此信号可用于向CPU发出中断请求。一、方式0第三十九页,共89页。第三十九页,共89页。②计数器只计数一遍。当计数到0时,不恢复计数初值,不开始重新计数,且输出一直保持为高电平。只有在写入新的计数值时,OUT才变低,并开始新的计数。③GATE是门控信号,GATE=1时允许计数,GATE=0时,禁止计数。在计数过程中,如果GATE=0则计数暂停,当GATE=1后接着计数。第四十页,共89页。第四十页,共89页。④在计数过程中可改变计数值。若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。如图6.6所示。第四十一页,共89页。第四十一页,共89页。图6.5方式0波形图6.5第四十二页,共89页。第四十二页,共89页。图6.6方式0计数过程中改变计数初值图6.6第四十三页,共89页。第四十三页,共89页。图6.6.1第四十四页,共89页。第四十四页,共89页。计数结束中断演示①②⑤④⑥GATEOUTCLK

031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束第四十五页,共89页。第四十五页,共89页。二、方式1—可编程序的单拍脉冲

方式1的波形如图6.7所示,其特点是:①写入控制字后,输出OUT将保持为高电平,计数由GATE启动。GATE启动之后,OUT变为低电平,当计数到0时,OUT输出高电平,从而在OUT端输出一个负脉冲,负脉冲的宽度为N个(计数初值)CLK的脉冲宽度。二、方式1第四十六页,共89页。第四十六页,共89页。

②当计数到0后,不用送计数值,可再次由GATE脉冲启动,输出同样宽度的单拍脉冲。③在计数过程中,可改变计数初值,此时计数过程不受影响。如果再次触发启动,则计数器将按新输入的计数值计数。④在计数未到0时,如果GATE再次启动,则计数初值将重新装入计数器,并重新开始计数。第四十七页,共89页。第四十七页,共89页。图6.7方式1波形图6.7第四十八页,共89页。第四十八页,共89页。图6.7方式1波形图6.7.1第四十九页,共89页。第四十九页,共89页。可编程单稳脉冲演示①②⑤④⑥①设定工作方式②设定计数初值③③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATEOUTCLK

031244方式1WR第五十页,共89页。第五十页,共89页。三、方式2——频率发生器(分频器)

方式2的波形如图6.8所示,它的特点是:①写入控制字后,输出将变为高电平。写入计数值后,计数立即开始。在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。经过一个CLK周期,输出恢复为高,且计数器开始重新计数。因此,它能够连续工作,输出固定频率的脉冲。三、方式2第五十一页,共89页。第五十一页,共89页。②如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。因此,相当于对输入脉冲的N分频。通过对N赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。③计数过程可由门控脉冲控制。当GATE=0时,暂停计数;当GATE变高自动恢复计数初值,重新开始计数第五十二页,共89页。第五十二页,共89页。④在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。但在计数到1时输出变低,经过一个CLK周期后输出又变高,计数器将按新的计数值计数。图6.8第五十三页,共89页。第五十三页,共89页。图6.8方式2波形图6.8第五十四页,共89页。第五十四页,共89页。图6.8方式2波形图6.8.1第五十五页,共89页。第五十五页,共89页。频率发生器(分频器)演示03124GATEOUTCLK

4方式2031240312403124WR第五十六页,共89页。第五十六页,共89页。四、方式3—方波发生器

方式3的波形如图6.9所示。它的特点是:①输出为周期性的方波。若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。②写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。四、方式3第五十七页,共89页。第五十七页,共89页。③若计数值为偶数,则输出对称方波。如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N—1)/2个CLK脉冲期间输出为低电平。图6.9④GATE信号能使计数过程重新开始。GATE=1允许计数,GATE=0禁止计数。停止后OUT将立即变高开,当GATE再次变高以后,计数器将重新装入计数初值,重新开始计数。第五十八页,共89页。第五十八页,共89页。图6.9方式3波形图6.9第五十九页,共89页。第五十九页,共89页。图6.9.1方式3波形图6.9.1第六十页,共89页。第六十页,共89页。方波发生器演示03124GATEOUTCLK

4方式3031240312403124WR第六十一页,共89页。第六十一页,共89页。五、方式4——软件触发选通

方式4的波形如图6.10所示,它种方式的特点是:①写入控制字后,输出为高电平。写入计数值后立即开始计数(相当于软件触发启动),当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开始新的计数。五、方式4第六十二页,共89页。第六十二页,共89页。②当GATE=1时,允许计数,而GATE=0,禁止计数。GATE信号不影响输出。③在计数过程中,如果改变计数值,则按新计数值重新开始计数。如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值中开始计数。第六十三页,共89页。第六十三页,共89页。图6.10方式4波形图6.10第六十四页,共89页。第六十四页,共89页。图6.10方式4波形图6.10.1第六十五页,共89页。第六十五页,共89页。方式4:软件触发选通信号演示GATEOUTCLK031244方式42233310WR第六十六页,共89页。第六十六页,共89页。六、方式5——硬件触发选通

方式5的波形如图6.11所示,这这种方式的特点是:①写入控制字后,输出为高电平。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出一个CLK周期的负脉冲,并停止计数。当门控脉冲再次触发时才能再计数。六、方式5第六十七页,共89页。第六十七页,共89页。②在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。③如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。第六十八页,共89页。第六十八页,共89页。图6.11方式5波形图6.11第六十九页,共89页。第六十九页,共89页。图6.11方式5波形图6.11.1第七十页,共89页。第七十页,共89页。方式5:硬件触发选通信号演示GATEOUTCLK031244方式522333110WR第七十一页,共89页。第七十一页,共89页。七、8253的六种工作方式比较

表6.2计数值N与输出波形方式功能N与波形的关系0计数结束产生中断经N个时钟OUT变高1可重触发的单稳态触发器脉宽为N的单拍负脉冲2分频器占空比(N-1)/N的连续脉冲3方波发生器占空比1/2的连续方波4软触发的选通信号发生器经N个时钟,OUT变低1个时钟5硬触发的选通信号发生器经N个时钟,OUT变低1个时钟七、六种方式比较第七十二页,共89页。第七十二页,共89页。表6.3门控信号GATE的作用方式功能100→10计数结束产生中断允许计数暂停计数不受影响1可重触发的单稳态触发器不受影响不受影响从初值开始2分频器允许计数禁止计数重新计数3方波发生器允许计数禁止计数重新计数4软触发的选通信号发生器允许计数暂停计数不受影响5硬触发的选通信号发生器不受影响不受影响从初值开始表6-3第七十三页,共89页。第七十三页,共89页。表6.4写入新的初值对计数过程的影响方式功能写入新值产生的影响0计数结束产生中断立即有效1可重触发的单稳态触发器门控触发后有效2分频器下次或门控触发后有效3方波发生器下次或门控触发后有效4软触发的选通信号发生器立即有效5硬触发的选通信号发生器门控触发后有效表6-4第七十四页,共89页。第七十四页,共89页。表6.5输出波形的连续性方式功能波形连续性0计数结束产生中断单次负脉冲(软触发)1可重触发的单稳态触发器单次负脉冲(硬触发)2分频器连续的脉冲波3方波发生器连续的方波4软触发的选通信号发生器单次单拍负脉冲(软触发)5硬触发的选通信号发生器单次单拍负脉冲(硬触发)表6-5第七十五页,共89页。第七十五页,共89页。各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01讨论:计数开始的时刻第七十六页,共89页。第七十六页,共89页。6.2.78253的应用举例【例6.3】IBM-PC/XT上使用一片8255,片首地址=200H,系统提供的计数脉冲频率为250KHz。见图6.11。要求:1)T0输出端OUT得到500Hz的方波信号;2)T1输出端OUT得到50Hz的单拍负脉冲信号,解1、确定工作方式 T0:方式3即方波发生器 T1:方式2即分频器6.2.7应用举例第七十七页,共89页。第七十七页,共89页。2、计算计数初值(按二进制计数) 计数初值=分频系数=fclk/fout T0:N=fclk/fout=250000/500=500=01F4H T1:N=fclk/fout=500/50=10=0AH3、确定控制字图6.11 T0:00110110B=3

温馨提示

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

评论

0/150

提交评论