单片机原理及应用教程(C语言版) 第6章 MCS 51单片机的定时器计数器ppt课件.ppt
《单片机原理及应用教程(C语言版) 第6章 MCS 51单片机的定时器计数器ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用教程(C语言版) 第6章 MCS 51单片机的定时器计数器ppt课件.ppt(100页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用教程 (C语言版)第6章 MCS-51单片机定时器/计数器,主 编:周国运中国水利水电出版社,第6章 MCS-51单片机定时器/计数器,目 录6.1 单片机定时器/计数器的结构及原理6.2 定时器/计数器T0、T16.3 定时器/计数器T26.4 定时器/计数器应用举例,定时器/计数器应用极其广泛。本章主要讨论MCS-51单片机定时器/计数器T0、T1、T2的逻辑结构、工作原理、使用方法和应用。本章为单片机的主要内容,也是学习第七章串行口的基础。,第6章 MCS-51单片机的定时器/计数器,6.1 单片机定时器/计数器的结构及原理,主要内容6.1.1 单片机定时器/计数器的结构
2、6.1.2 单片机定时器/计数器的工作原理,6.1.1 单片机定时器/计数器的结构,MCS-51单片机定时器/计数器的原理结构图,6.1.1 MCS-51单片机定时器/计数器的结构,MCS-51主要由如下构成:三个16位的可编程定时器/计数器:定时器/计数器0、1和2。每个定时器有两部分构成:THx和TLx特殊功能寄存器TMOD和TCON ,主要对T0和T1进行控制。特殊功能寄存器T2MOD和T2CON ,主要对T2进行控制,RCAP2H、RCAP2L为T2服务。引脚P3.4、P3.5、P1.0,为计数脉冲输入。定时器T0、T1和T2有中断功能,计数器溢出或被触发(T2),向CPU 发出中断请
3、求。,6.1.2 单片机定时器/计数器的工作原理,定时器/计数器T0、T1、T2 的内部结构简图如下图所示。,做定时器,做计数器,6.1.2 MCS-51单片机定时器/计数器的工作原理,从上图可以看出: 定时器的实质是一个加1计数器。C/T =0 ,为定时器计数频率:fosc/12计数信号由片内振荡电路提供,振荡脉冲n分频送给计数器,每个机器周期计数器值增1。 C/T =1 ,为计数器计数信号由Tx引脚(P3.4、P3.5和P1.0)输入,每输入一有效信号,相应的计数器中的内容进行加1计数器的最高计数频率为:fosc/24 1)每1个输入脉冲的下降沿使计数器计1个数 2)每1个机器周期对引脚采
4、样1次,当上1个机器周期采样为高、本机器周期采样为低为1个下降沿。,6.1.2 MCS-51单片机定时器/计数器的工作原理,控制信号TRx=1时,定时器启动。当定时器由全1加到全0时计满溢出,TFx=1,向CPU申请中断;同时,定时器从0开始继续计数。,6.2 定时器/计数器T0、T1,主要内容6.2.1 T0、T1的特殊功能寄存器6.2.2 T0、T1的工作模式6.2.3 T0、T1的使用方法,6.2.1 T0、T1的特殊功能寄存器,1. T0、T1 模式寄存器TMOD 功能:确定定时器的工作模式。其格式为:,GATE外部门控制位。GATE1,使用外部控制门,且TRx=1当P3.2(P3.3
5、)为高时启动定时器, P3.2(P3.3)为T0、T1运行外部控制引脚。,6.2.1 T0、T1的特殊功能寄存器,GATE0,禁止外部信号控制定时器/计数器。C/T定时或计数方式选择位 C/T0,为定时器;C/T1,为计数器 计数采样:CPU在每机器周期的S5P2期间,对计数脉冲输入引脚进行采样。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,即下降沿计数。,6.2.1 T0、T1的特殊功能寄存器,M1、M0工作模式选择位。,6.2.1 T0、T1的特殊功能寄存器,2. T0、T1控制寄存器TCON,TF1、TF0:T1、T0的溢出标志位 计数溢出,TFx=1。 中断方式:自动
6、清零; 查询方式:软件清零。,6.2.1 T0、T1的特殊功能寄存器,TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。注意: GATE=1 ,TRx与P3.2(P3.3)的配合控制。IE1、IE0:外部中断1、0请求标志位IT1、IT0:外部中断1、0触发方式选择位,6.2.2 T0、T1的工作模式,MCS-51的T0、T1共有4种工作模式,前三种模式下两个定时器/计数器工作原理是相同的,只有模式3下两者才有差别。以下主要以T0为例进行介绍,T1类似。,模式0与模式1 的区别仅仅是计数器的位数不同,前者是13位,后者是16位,其它完全相同,现在一般都不使用模式0,
7、故不讲。 当设置M1M001时,选择模式1,为16位定时器/计数器。模式1原理结构模式1原理结构由4部分构成(下页图):信号源运行控制计数器溢出标志,1模式1,6.2.2 T0、T1的工作模式,6.2.2 T0、T1的工作模式,图6-6 T0模式1原理结构,6.2.2 T0、T1的工作模式,信号源C/T设为1,为计数器,用P3.4引脚脉冲C/T设为0,为定时器,用内部脉冲运行控制GATE=1,由外部信号控制运行此时应该设置TR0=1P3.2引脚为高电平,T0运行GATE=0,由内部控制运行TR0设置为1,T0运行,6.2.2 T0、T1的工作模式,计数部件由TL0、TH0组成,是一个16位的加
8、法计数器,对送来的脉冲进行计数,计数溢出后输出由低变高,设置溢出标志。溢出标志:TF0。当计数部件溢出后对其置1,向CPU 请求中断。模式1定时时间的计算公式如下:定时时间=计数值机器周期 =(216 - 定时初值)振荡周期12最大定时时间(初值为0时)为: 216 振荡周期 12。,2模式2,6.2.2 T0、T1的工作模式,M1 M0 10时,选择模式2,为8位定时器/计数器,且初值自动重装。模式2原理结构原理结构如下页图所示,由4部分构成:信号源运行控制计数器溢出标志在能够满足计数要求时,尽可能地选择模式2。,图6-7 T0(T1)模式2原理结构8位初值自动重装,6.2.2 T0、T1的
9、工作模式,M1 M0 11,选择模式3。逻辑结构如图6-8和6-9所示: 结构: TL0、TH0分为两个独立的8位计数器 TL0: 8位定时器/计数器使用T0所有的资源和控制位 TH0:8位定时器使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1),6.2.2 T0、T1的工作模式,3模式3,图6-8 模式3下T0的原理结构图,6.2.2 T0、T1的工作模式,T0模式3时T1的工作模式T1可以模式0模式2工作。T1的结构如图6-9所示由于TF1及中断矢量被TH0占用,所以T1仅用作波特率发生器或其它不用中断的地方。T1作波特率发生器,其计数溢出直接送至串行口。设置
10、好工作方式,串行口波特率发生器开始自动运行。 TMOD中T1的M1M0=11,T1停止工作,因为T1没有模式3。,6.2.2 T0、T1的工作模式,图6-9 T0模式3时T1的原理结构,6.2.2 T0、T1的工作模式,6.2.3 T0、T1的使用方法,T0、T1各有两种功能(定时/计数)、4种或3种工作模式,如何选择其功能和工作模式,是使用T0、T1编写程序需要首先解决的问题。1.选择定时和计数概念如果需要对单片机外部输入的脉冲进行计量,则选择计数功能(如统计产品数量、轮子转到周数(每周产生的脉冲数目一定)、液滴的数目等);否则选择定时功能(如定时启动/停止机器运转、定时打开/关闭阀门、产生
11、方波、产生某种频率的声音等)。,6.2.3 T0、T1的使用方法,2.选择工作模式(1)计算计数值N1)计数情况需要计的数N往往是给定的,如计100个数、200个数等。2)定时情况在这种情况下往往给出的是定时的时间t根据定时器每个机器周期计1个数的规律,则计数值N与定时时间t、机器周期TMC、晶振频率fosc的关系如下:t = N TMC 、 TMC = 12/fosc N = t / TMC = t fosc /12 (公式6-1),6.2.3 T0、T1的使用方法,(2)确定工作模式如果N256,则选择模式1;否则选择模式2,或者选择模式3。首选模式2。3计数初值X的计算计数初值X = 最
12、大计数值 - 计数值N (公式6-2)计数初值和工作模式有关,即与计数位数有关:模式1:16位计数,N=65536,(216)模式2:8位计数,N=256,(28)模式3:8位计数,N=256,(28),6.2.3 T0、T1的使用方法,4什么情况下选择模式3模式3是在系统既需要波特率发生器,又需要多个定时器/计数器,而且计数值都比较小(N256)的情况下使用。这时定时器/计数器T1作为波特率发生器,定时器/计数器T0分为两个8位定时器,或者分成的两个其中一个作8位定时器、另一个8位计数器使用。,6.2.3 T0、T1的使用方法,5使用T0、T1编程的方法步骤 计算计数值N。 确定工作模式。
13、计算定时或计数的初值X。 编写初始化程序:设置TMOD,设置TLx和THx,(需要时开T0、T1中断和总中断),设置TRx启动运行。 编写T0、T1的应用程序。前3项为编写初始化程序的准备,称之为初始化准备。,6.2.3 T0、T1的使用方法,6在运行中读取TLx、THx的方法在T0、T1运行情况下,TLx和THx中的值在变化,读的期间有可能进位,读出的数据不正确。正确的读取方法如下:doxh=THx;xl=TLx;while(xh!=THx);程序中的xl、xh为已经定义过的无符号字符型变量。,6.2.3 T0、T1的使用方法,例6-1 对89C52单片机编程,使用定时器/计数器T0以模式1
14、定时,以中断方式实现从P1.0引脚产生周期为1000s的方波。设单片机的振荡频率为12MHz。分析与计算(1)方波产生原理 将T0设为定时器,计算出合适的初值,定时到了之后对P1.0引脚取反即可。(2)选择工作模式计算计数值N,P1.0,6.2.3 T0、T1的使用方法,定时时间t:周期为1000s的方波要求t =周期/2 = 1000/2 = 500(s)对应计数值:N = t/机器周期 = 500/1 = 500N=500256,所以选择模式1。 模式字:TMOD=0000 0001B = 0 x01(3)计算初值X X = 65536 N = 65036 = 0 xfe0c,方波周期T,
15、定时时间t,6.2.3 T0、T1的使用方法,C语言程序:#include /包含特殊功能寄存器库sbitP1_0=P10; /定义位变量void main( ) TMOD=0 x01; /T0用模式1、定时TL0=0 x0c;TH0=0 xfe;/设置定时器的初值ET0=1; /允许T0中断 EA=1; /允许CPU中断TR0=1; /启动定时器while(1); /等待中断 ,6.2.3 T0、T1的使用方法,void time0_int(void) interrupt 1/中断服务程序TL0=0 x0c;TH0=0 xfe;/定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波汇编
16、语言程序:ORG0000HSJMPMAINORG000BH;T0中断入口地址LJMPINT_T0,6.2.3 T0、T1的使用方法,MAIN: ;主程序MOV SP,#0DFH;设置堆栈指针MOV TMOD,#01H;T0模式1定时MOVTL0,#0CH;设置定时初值MOVTH0,#0FEH SETBET0;T0开中断SETBEA;CPU开中断SETBTR0;启动T0SJMP$;等待T0中断INT_T0: ;中断服务程序MOV TL0,#0CHMOVTH0,#0FEH;重装定时初值CPLP1.0 ;P1.0取反RETI ;中断返回END,6.2.3 T0、T1的使用方法,例6-2 设单片机的振
17、荡频率为12MHz,用T1编程实现从P1.0输出频率为2KHz的方波。1、分析与计算(1)选择工作模式要求输出方波频率为2KHz,则周期为500s,只需对P1.0每250s取反一次即可,即定时时间t为250s。需要计算计数值N计算计数值N:N= t/ TMC = t fosc/12 =25012M/12=250N=250256,所以选择模式2。,6.2.3 T0、T1的使用方法,模式字:TMOD=0010 0000 B = 0 x20(2)初值X计算 X=256N X=6则TH1=TL1=6 2、采用中断处理方式的程序,6.2.3 T0、T1的使用方法,(1)中断方式C语言程序# includ
18、e /包含特殊功能寄存器库sbit P1_0=P10;voidmain( )TMOD=0 x20; /设置工作模式TL1=0 x06;TH1=0 x06; /为定时器赋初值ET1=1; /允许定时1中断EA=1;TR1=1;/启动定时器1while(1);/等待中断void time0_int(void) interrupt 3 P1_0=P1_0;,6.2.3 T0、T1的使用方法,(2)中断方式汇编语言程序ORG0000HLJMPMAIN ORG001BH;中断处理程序CPLP1.0RETIORG 0030H;主程序MAIN:MOV SP,#0DFHMOV TMOD,#20H MOV TL
19、1,#06HMOV TH1,#06HSETB ET1;允许定时器1中断SETB EA;允许CPU中断SETB TR1;启动定时器1SJMP $;等待中断END,6.2.3 T0、T1的使用方法,3、采用查询方式程序(1)查询方式C语言程序# include sbitP1_0=P10;void main()TMOD=0 x02;TL0=0 x06;TH0=0 x06; TR0=1;while (1)while(!TF0) ;/查询计数溢出TF0=0;P1_0=P1_0; ,6.2.3 T0、T1的使用方法,(2)查询方式汇编语言程序MAIN:;主程序MOV TMOD,#02HMOVTL0,#06
20、HMOVTH0,#06HSETBTR0LOOP:JNBTF0,$;查询计数溢出CLRTF0CPLP1.0 SJMPLOOPEND,6.3 定时器/计数器T2,主要内容6.3.1 T2的特殊功能寄存器6.3.2 T2的工作方式,定时器/计数器T2的功能结构图,定时器T2概述,1、 T2的功能:89C52中的T2是一个16位的、具有自动重装载和捕获功能的定时器/计数器。2、T2的结构:除TL2、TH2和控制寄存器T2CON及T2MOD之外,还增加了捕获寄存器RCAP2L(低字节)和RCAP2H(高字节)。 3、T2的时钟源:有两个。一个是内部机器周期,另一个是由T2端输入的外部计数脉冲。4、T2的
21、工作方式:有4种。自动重装、捕获、波特率发生器、可编程时钟输出。 5、 T2的专用引脚:增加了两个引脚,T2(P1.0)、T2EX(P1.1),分别称为时钟I/O和外部触发引脚。,6.3.1 T2的特殊功能寄存器,TF2:T2溢出中断标志位 T2溢出时置位,申请中断。软件清零。波特率发生器方式下(RCLK1或TCLK1),T2溢出不对TF2进行置位。,1. T2控制寄存器T2CON 可位寻址和字节寻址 功能:选择T2的工作方式和工作模式。格式如下,EXF2:T2外部触发中断标志位 当EXEN21,且T2EX引脚上有负跳变 触发捕获或重装操作时,EXF2置1,向CPU发出中断请求。 需软件清0。
22、RCLK:串行口接收时钟允许位RCLK=1时,T2溢出信号分频后做串行口工作在模式1和3的接收时钟。RCLK=0时,T1溢出信号分频信后做串行口接收时钟。,6.3.1 T2的特殊功能寄存器,6.3.1 T2的特殊功能寄存器,TCLK:串行口发送时钟允许位TCLK=1时,T2溢出信号分频后做串行口工作在模式1和3的发送时钟。TCLK=0时,T1溢出信号分频后做串行口的发送时钟。EXEN2:T2外部触发允许位EXEN2=1,T2未做串口时钟时,T2EX引脚(P1.1)的负跳变将触发“捕获”或“重装”。 EXEN2=0,T2EX引脚上的负跳变对T2不起作用。,TR2 :T2运行控制位TR2=1,启动
23、T2;TR2=0,T2停止。C/T2:T2的定时或计数方式选择位 C/T2=1,T2为计数器。从T2(P1.0)引脚输入计数脉冲行(下降沿计数)。 C/T2=0,T2为定时器。用机器周期计数,6.3.1 T2的特殊功能寄存器,CP/RL2:捕获和重装载方式选择位 CP/RL2=1,且EXEN2=1,T2EX(P1.1)的负跳变将触发捕获操作。 CP/RL2=0,且EXEN2=1,T2EX的负跳变或T2计满溢出时,触发自动重装操作。RCLK=1或TCLK=1时,T2做串口的时钟发生器,这时CP/RL2的设置不起作用,并且T2溢出时会自动装载。,6.3.1 T2的特殊功能寄存器,T2OE:T2输出
24、允许位T2OE1,可编程时钟输出方式,输出方波信号至T2(P1.0)引脚。DCEN:T2增/减计数控制位DCEN l,T2递减计数DCEN0,T2递增计数,2. T2模式寄存器T2MOD,6.3.1 T2的特殊功能寄存器,3. 计数寄存器TL2、TH24. 捕获寄存器RCAP2L、RCAP2H有两个作用:(1)捕获计数器中的值。在捕获方式,P1.1引脚触发时,将TL2、TH2中的数装入RCAP2L、RCAP2H中;(2)作为初值装入计数器。在重装计数方式,计数溢出后,将RCAP2L、RCAP2H中的数装入TL2、TH2中,6.3.1 T2的特殊功能寄存器,6.3.2 T2的工作方式,定时器T2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用教程C语言版 第6章 MCS 51单片机的定时器计数器ppt课件 单片机 原理 应用 教程 语言版 51 定时器 计数器 ppt 课件
链接地址:https://www.31ppt.com/p-1405783.html