1、第6章 定时/计数器,61 定时/计数的结构及工作原理,一、 定时/计数器的结构和原理,1定时/计数器的结构,TMOD、TCON与T0、T1的结构框图,2定时/计数器的原理,定时/计数器的结构框图,1)定时:每1个机器周期计数器加1,最高计数频率=时钟频率/12 2)计数:T0(1)端每1个脉冲计数器加1,最高计数频率=时钟频率/24,6。2 定时/计数器控制方法 方式寄存器TMOD,TMOD格式如下:,定时器0,TMOD(89H),定时器1,D0D3:定时器0; D4D7:定时器1 GATE:门控位 GATE=1,定时器受外部信号控制 GATE=0,定时器不受外部信号控制C/T:计数/定时选
2、择 C/T=1 ,计数 C/T=0,定时M1M0:工作方式设置,定时控制寄存器TCON定时器控制字TCON的格式如下:,TF1:T1溢出标志, =1,计数器满,申请中断 TR1: T1运行控制,=1,启动T1 IE1、IT1、IE0、IT0:中断控制用,定时/计数器的初始化与启动,(1)设置工作方式 (2)预置定时/计数初值TH0、TL0(TH1、TL1) (3)开放中断(根据需要) (4)启动定时/计数器,SETB TR1,计数器初值的计算,计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为X,由此可得到公式: X=M-C 式中,M为最大计数值, 方式0:M=213 =
3、8192 方式1:M=216 =65536 方式2和方式3时:M=28=256。,定时器初值的计算 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间T的公式: T=(M-X)TM上式也可写成:X=M-T/ TM 式中,M:最大计数值, TM:机器周期(振荡周期X12); X:定时器的定时初值。 例 :f=6MHz,TM=2 s ,要产1ms(1000 s)的定时,须对2 s 计数500次,则初值: X=65536-1000/2=65036=FE0CH,62 定时/计数器的工作方式,一、 方式0当M1M0两位为00时,定时/计数器被选为工作方式0,其逻辑结构如图 53
4、所示。,T0(或T1)方式0结构,二、 方式1,T0(或T1)方式1结构,三、 方式2,T0(或T1)方式2结构,四、 方式3,T0方式3下和T1结构,一、方式1的应用 P140例 1,二、方式2的应用 例:选择T1方式2用于定时,在P1。1输出周期为1ms的方波,晶振fosc=6MHZ。 根据题意,只要使P1。1每隔500s取反一次即可得到1ms方波,因而T1的定时时间为,500s。 将T1设为定时方式2:T0不用可为任意,TMOD=20H。 机器周期 T=12/fosc=12/6106=2s 设初值为X则: (28X)2s =500sX=6 则:TH1=TL1=6 源程序如下:,MOV,T
5、L1,#06H,;给TL1置初值,MOV,TH1,#06H,;给TH1置初值,SETB,TR1,;启动T1,LP1:,JBC,TF1,LP2,;查询计数溢出否,AJMP,LP1,LP2:,CPL,P1.1,;输出取反,AJMP,LP1,;重复循环,MOV TMOD, #20H ;T1工作方式2,如f=12Mhz,需用方式1,如何改动程序?,二、 计数方式应用例 用定时器1方式2计数,要求每计满100次,将P1。0取反。 根据题意,外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。方式2有自动重装初值的功能,初始化后不必再置初值。 初值 X=28100=156D=9CHTH1=TL1=9CHTMOD=60H 源程序如下:,三、 门控位的应用,图 58 外部正脉冲宽度测量,例5-3 利用T0门控位测试INT0引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。,根据要求可这样设计程序:将T0设定为方式1,GATE设为1,置TR0为1。一旦INT0(P3。2) 引脚上出现高电平即开始计数,直至出现低电平,停止计数,然后读取T0的计数值并显示。测试过程如下:,源程序如下:,由于定时方式1的16位计数长度有限,被测脉冲高电平宽度只能小于65536个机器周期。,源程序如下:,