定时器及应用应用优秀PPT.ppt
定时器及应用应用你现在浏览的是第一页,共15页1 1 定定时时/计计数器的数器的结结构和工作原理构和工作原理 一、定时一、定时/计数器的结构计数器的结构 定时定时/计数器的实质是加计数器的实质是加1计数器(计数器(16位),由高位),由高8位和低位和低8位两位两个寄存器组成。个寄存器组成。TMOD是定时是定时/计数器的工作方式寄存器,确定计数器的工作方式寄存器,确定工作方式和功能;工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的启动和的启动和停止及设置溢出标志停止及设置溢出标志。你现在浏览的是第二页,共15页二、定时二、定时/计数器的工作原理计数器的工作原理 加加1计数器计数器输入的计数脉冲有两个来源输入的计数脉冲有两个来源,一个是由系一个是由系统的时钟振荡器输出脉冲经统的时钟振荡器输出脉冲经12分频后送来;一个是分频后送来;一个是T0或或T1引脚输入的外部脉冲源。每来一个脉冲计数器引脚输入的外部脉冲源。每来一个脉冲计数器加加1,当加到计数器为全,当加到计数器为全1时,再输入一个脉冲就使计数时,再输入一个脉冲就使计数器回零,且计数器的溢出使器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向向CPU发出中断请求(定时发出中断请求(定时/计数器中断允许时)。如计数器中断允许时)。如果定时果定时/计数器工作于定时模式,则表示定时时间已到;计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值计数器的计数值。你现在浏览的是第三页,共15页 2 定时定时/计数器的控制计数器的控制 80C51单片机定时单片机定时/计数器的工作由两个特殊功能计数器的工作由两个特殊功能寄存器控制。寄存器控制。TMOD用于设置其工作方式;用于设置其工作方式;TCON用于用于控制其启动和中断申请。控制其启动和中断申请。一、工作方式寄存器一、工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于设置定时用于设置定时/计数器的工计数器的工作方式,低四位用于作方式,低四位用于T0,高四位用于,高四位用于T1。其格式如。其格式如下:下:你现在浏览的是第四页,共15页GATE:门控位。:门控位。GATE0时,只要用软件使时,只要用软件使TCON中的中的TR0或或TR1为为1,就可以启动定时,就可以启动定时/计数器工作;计数器工作;GATA1时,要用时,要用软件使软件使TR0或或TR1为为1,同时外部中断引脚或也为高电平时,同时外部中断引脚或也为高电平时,才能启动定时才能启动定时/计数器工作。即此时定时器的启动多了一条件。计数器工作。即此时定时器的启动多了一条件。:定时定时/计数模式选择位。计数模式选择位。0为定时模式;为定时模式;=1为为计数模式。计数模式。M1M0:工作方式设置位。定时:工作方式设置位。定时/计数器有四种工作方式,由计数器有四种工作方式,由M1M0进行设置。进行设置。你现在浏览的是第五页,共15页 二、控制寄存器二、控制寄存器TCON TCON的低的低4位用于控制外部中断位用于控制外部中断,已在前面介绍。已在前面介绍。TCON的高的高4位用于控制定时位用于控制定时/计数器的启动和中断申请。其格式如下:计数器的启动和中断申请。其格式如下:TF1(TCON.7):):T1溢出中断请求标志位。溢出中断请求标志位。T1计数溢出时由硬件自动置计数溢出时由硬件自动置TF1为为1。CPU响应中断后响应中断后TF1由硬件自动清由硬件自动清0。T1工作时,工作时,CPU可随时查询可随时查询TF1的状态。所以,的状态。所以,TF1可用作查询测试的标志。可用作查询测试的标志。TF1也可以用软件置也可以用软件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一样。的效果一样。TR1(TCON.6):):T1运行控制位。运行控制位。TR1置置1时,时,T1开始工作;开始工作;TR1置置0时,时,T1停止工作。停止工作。TR1由软件置由软件置1或清或清0。所以,用软件可控制定时。所以,用软件可控制定时/计数器的启计数器的启动与停止。动与停止。TF0(TCON.5):):T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与TF1类同。类同。TR0(TCON.4):):T0运行控制位,其功能与运行控制位,其功能与TR1类同。类同。你现在浏览的是第六页,共15页 3 定时定时/计数器的工作方式计数器的工作方式 一、方式一、方式0 方式方式0为为13位计数位计数,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,置位溢出时,置位TCON中的中的TF0标志,向标志,向CPU发出中断请求。发出中断请求。你现在浏览的是第七页,共15页 二、方式二、方式1 方式方式1的计数位数是的计数位数是16位,由位,由TL0作为低作为低8位、位、TH0作作为高为高8位,组成了位,组成了16位加位加1计数器计数器。计数个数与计数初值的关系为:计数个数与计数初值的关系为:你现在浏览的是第八页,共15页 三、方式三、方式2 方式方式2为自动重装初值的为自动重装初值的8位计数方式。位计数方式。工作方式2特别适合于用作较精确的脉冲信号发生器。计数个数与计数初值的关系为计数个数与计数初值的关系为:你现在浏览的是第九页,共15页 四、方式四、方式3 方式方式3只适用于定时只适用于定时/计数器计数器T0,定时器定时器T1处于方式处于方式3时相当于时相当于TR1=0,停止计数。,停止计数。工作方式工作方式3将将T0分成为两个独立的分成为两个独立的8位计数器位计数器TL0和和TH0。你现在浏览的是第十页,共15页5 定时定时/计数器应用举例计数器应用举例 初始化程序应完成如下工作:初始化程序应完成如下工作:对对TMOD赋值,以确定赋值,以确定T0和和T1的工作方式。的工作方式。计算初值计算初值,并将其写入并将其写入TH0、TL0或或TH1、TL1。中断方式时,则对中断方式时,则对IE赋值,开放中断。赋值,开放中断。使使TR0或或TR1置位,启动定时置位,启动定时/计数器定时或计数。计数器定时或计数。你现在浏览的是第十一页,共15页 例例 利用定时利用定时/计数器计数器T1的方式的方式1,产生,产生10ms的定时,的定时,并使并使P1.0引脚上输出周期为引脚上输出周期为20ms的方波,采用中断方的方波,采用中断方式,设系统时钟频率为式,设系统时钟频率为12 MHz。解:解:1、计算计数初值、计算计数初值X:由于晶振为由于晶振为12 MHz,所以机器周期,所以机器周期Tcy为为1 s。所以:所以:Nt/Tcy 10000/110000X655361000055536D8F0H即应将即应将D8H送入送入TH0中,中,F0H送入送入TL0中中 2、求、求T1的方式控制字的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控制字,可取方式控制字为为01H;你现在浏览的是第十二页,共15页#include#define uchar unsigned char#define uint unsigned intsbit led=P10;uchar i;void chushi()TMOD=0 x11;TH1=0 x3c;TL1=0 xb0;EA=1;ET1=1;TR1=1;你现在浏览的是第十三页,共15页void ding()interrupt 3 using 1 TH1=0 x3c;TL1=0 xb0;i+;if(i=20)led=led;i=0;void main()P1=0 x01;chushi();while(1);你现在浏览的是第十四页,共15页1、利用定时、利用定时/计数器计数器T0从从P1.0输出周期为输出周期为1s的方波,让的方波,让发光二极管以发光二极管以1HZ闪烁,设晶振频率为闪烁,设晶振频率为12MHz。2、利用定时、利用定时/计数器计数器T1产生定时时钟产生定时时钟,由由P1口控制口控制8个个发光二极管发光二极管,使使8个指示灯依次一个一个闪动,闪动频率为个指示灯依次一个一个闪动,闪动频率为10次次/秒秒(8个灯依次亮一遍为一个周期个灯依次亮一遍为一个周期),循环。,循环。3、同时用两个定时器控制蜂鸣器发声,定时器、同时用两个定时器控制蜂鸣器发声,定时器0控制频控制频率,定时器率,定时器1控制同个频率持续的时间,间隔控制同个频率持续的时间,间隔300ms依次依次输出输出1,10,50,100,200,400,800,1k(hz)的方波。)的方波。4、用定时器以间隔、用定时器以间隔500MS在在6位数码管上依次显示位数码管上依次显示0、1、2、3.C、D、E、F,重复。,重复。你现在浏览的是第十五页,共15页