单片机原理及应用(C语言版)6

上传人:飞*** 文档编号:46300416 上传时间:2018-06-25 格式:PPT 页数:97 大小:1.36MB
返回 下载 相关 举报
单片机原理及应用(C语言版)6_第1页
第1页 / 共97页
单片机原理及应用(C语言版)6_第2页
第2页 / 共97页
单片机原理及应用(C语言版)6_第3页
第3页 / 共97页
单片机原理及应用(C语言版)6_第4页
第4页 / 共97页
单片机原理及应用(C语言版)6_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《单片机原理及应用(C语言版)6》由会员分享,可在线阅读,更多相关《单片机原理及应用(C语言版)6(97页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS-51单片机定时器/计数器目 录6.1 MCS-51定时器/计数器 的结构及原理 6.2 定时器T0、T1 6.3 定时器T2 6.4 定时器应用举例本章主要讨论MCS-51单片机定时器/计 数器的逻辑结构和工作原理。内容主要有 MCS-51单片机定时器T0、T1、T2的逻辑结 构,工作方式的选择和应用。本章为单片机的主要内容,也是第七章 串行口的学习的基础。第6章 MCS-51单片机的定时器/计数器6.1 MCS-51单片机定时器/计数器的结 构及原理主要内容6.1.1 MCS-51单片机定时器的结构 6.1.2 MCS-51单片机定时器的工作原理 6.1.3 定时器/计数器的

2、控制寄存器6.1.1 MCS-51单片机定时器的结构 MCS-51单片机定时器/计数器逻辑结构图 : CPU中断溢 出溢 出溢 出定时器 0定时器 1定时器 2TMODT2CONT2MODTCONTH0TL0TH1TL1TH2TL2RCAP2LRCAP2H模 式模 式T2(P1.0)T1(P3.5)T2EX(P1.1)T0(P3.4)模 式控 制控 制控 制中断重装 捕获6.1.1 MCS-51单片机定时器的结构 MCS-51主要由如下构成: 三个16位的可编程定时器/计数器:定时 器/计数器0、1和2。 每个定时器有两部分构成:THx和TLx 特殊功能寄存器T2MOD和T2CON ,主 要对

3、T2进行控制。 特殊功能寄存器TMOD和TCON ,主要 对T0和T1进行控制。6.1.1 MCS-51单片机定时器的结构 引脚P3.5、P3.4、P1.0,输入计数脉冲。 定时器T0、T1和T2是3个中断源,可以向 CPU 发出中断请求。 定时器/计数器T2增加了两个8位的寄存器 : RCAP2H和RCAP2L。 特殊功能寄存器之间通过内部总线和控制 逻辑电路连接起来。 6.1.2 MCS-51单片机定时器的工作原理 定时器/计数器T0、T1、T2 的内部结构简 图如下图所示。C/T=0中断请求振荡器TLx (8位)THx (8位)Tx12分频TFxC/T=1控制 TRx6.1.2 MCS-

4、51单片机定时器/计数器的工作原理从上图可以看出: 定时器的实质是一个加1计数器。 C/T =0 ,为定时器方式。 计数信号由片内振荡电路提供,振 荡脉冲12分频送给计数器,每个机器周期计 数器值增1。例如:如果晶振频率为12MHz,则最高 计数频率为0.5MHz6.1.2 MCS-51单片机定时器/计数器的工作原理C/T =1 ,为计数方式。计数信号由Tx引脚(P3.4、P3.5和P1.0) 输入,每输入一有效信号,相应的计数 器中的内容进行加1。控制信号TRx=1时,定时器启动。当定时器由全1加到全0时计满溢出,从0 开始继续计数,TFx=1 ,向CPU申请中 断。6.1.3 定时器/计数

5、器的方式和控制寄存器1、T0、T1 工作模式寄存器TMOD 功能:确定定时器的工作模式。 其格式如图6-3所示:TMOD (89H)D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATEC/TM1M0图图6-3 定时时器方式寄存器TMOD GATE外部门控制位。 GATE1,使用外部控制门。 TRx=1, P3.2(P3.3)=1时,启动定时器。6.1.3 定时器/计数器的方式和控制寄存器GATE0,不使用外部门控制计数器 C/T定时或计数方式选择位 。 C/T0时,为定时器 C/T1时,为计数器采样过程:CPU在每机器周期S5P2期间 ,输入信号进行采样。若前一机器周期采样

6、值为1,下一机器周期采样值为0,则计数器 增1,随后的机器周期S3P1期间,新的计数 值装入计数器。6.1.3 定时器/计数器的方式和控制寄存器M1、M0工作模式选择位。 如下表所示: 表6-1 定时时器/计计数器的工作模式M1M0工作模式功 能 00模式013位定时器/计数器 01模式116位定时器/计数器10模式28位自动重置定时器/计数器11模式3定时器0:TL0为8位定时器/计 数器,TH0为8位定时器。 定时器1:无此方式6.1.3 定时器/计数器的方式和控制寄存器2、T0、T1的控制寄存器TCONTCON (88H)D7D6D5D4D3D2D1D0 TF1 TR1 TF0 TR0

7、IE1IT1IE0IT0图图6-4 定时时器的控制寄存器 TF1、TF0:T1、T0的溢出标志位计数溢出,TFx=1。中断方式:自动清零;查询方式:软件清零。6.1.3 定时器/计数器的方式和控制寄存器TR1、TR0:T1、T0启停控制位。置1,启动定时器;清0,关闭定时器。 IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位 注意: GATE=1 ,TRx与P3.2(P3.3) 的配 合。6.2 定时器T0、T1的工作模式及应用主要内容6.2.1 模式0的逻辑结构及应用 6.2.2 模式1的逻辑结构及应用 6.2.3 模式2的逻辑结构及应用 6.2.4 模

8、式3的逻辑结构及应用6.2.1 模式0的逻辑结构及应用M1M000,选择模式0。逻辑结构如图6-5 所示。(以T0为例)T0的结构:13位定时器/计数器。由TH0的8位、TL0的低5位构成(高3位未 用)工作过程:TL0溢出后向TH0进位,TH0溢 出后将TF0置位,并向CPU申请中断。定时时间=(213-定时初值)机器周期最大定时时间:213机器周期6.2.1 模式0的逻辑结构及应用C/T=1,计数方式。计数脉冲由P3.4引脚输 入。 C/T=0时,定时方式。图图6-5 模式0的逻辑结逻辑结 构图图6.2.2 模式1的逻辑结构及应用M1M001时,选择模式1。逻辑结构如下 页图所示。T0的结

9、构:16位定时器/计数器。TL0:存放计数初值的低8位。TH0存放计数初值的高8位; 定时时间=(216-定时初值)机器周期 最大定时时间:216机器周期6.2.2 模式1的逻辑结构及应用工作过程:当TL0计满时,向TH0进1;当 TH0计满时,溢出使TF0=1,向CPU申请中断。MCS-51单片机之所以设置几乎完全一 样 的方 式0和方式1,是出于与 MCS-48单片机兼容的。6.2.3 模式2的逻辑结构及应用M1 M0 10时,选择模式2。逻辑结构 如图6-7所示。T0的结构:TL0:8位的定时器/计数器;TH0:8位预置寄存器,用于保存初值 。工作过程:当TL0计满溢出时,TF0置1 ,

10、向CPU发出中断请求;同时引起重装操作 (TH0的计数初值送到TL0),进行新一轮 计数。6.2.3 模式2的逻辑结构及应用图6-7 模式2的逻辑结构图振荡器12分频T0(P3.4)TR0TF0中断GATE+C/T=0C/T=1TL0(8位)TH0 (8位)P3.26.2.3 模式2的逻辑结构及应用定时时间=(28 - 初值)机器周期最大定时时间=28 机器周期 优点:模式2能够进行自动重装载。模式0 和1计数溢出后,计数器为全0。循环定时或 计数时,需要重新设置初值。 说明:在模式2能够满足计数或定时要求时 ,尽可能使用模式2。6.2.4 模式3的逻辑结构及应用1、T0模式3的结构特点M1

11、M0 11,选择模式3。逻辑结构如图 6 -8和6-9所示:结构: TL0、TH0分为两个独立的8位计数器TL0: 8位定时器/计数器 使用T0所有的资源和控制位TH0:8位定时器 使用T1所有的资源(中断向量、中断控制 ET1、PT1)和控制位(TR1、TF1)6.2.4 模式3的逻辑结构及应用图6-8 模式3下T0的逻辑结构图6.2.4 模式3的逻辑结构及应用2、T0模式3时T1的工作模式 T1可以模式0模式2工作。 T1的结构如图6-9所示 由于TF1及中断矢量被TH0占用,所以T1 仅用作波特率发生器或其它不用中断的地方 。 T1作波特率发生器,其计数溢出直接送 至串行口。设置好工作方

12、式,串行口波特率 发生器开始自动运行。TMOD中T1的M1M0=11,T1停止工作。6.2.4 模式3的逻辑结构及应用图6-9 模式3下,T1的逻辑结构图思考:T0工作在模式3,T1怎么进行方式设置?串行口重新装入C/T=1C/T=0T1(P3.5)振荡器12分频TL 1 (8位)TH 1 (8位)6.2.4 模式3的逻辑结构及应用1、定时器/计数器工作模式的选择方法 (1)首先计算计数值N (2)确定工作模式 原则是尽可能地选择模式2 若 N 256选择模式2,否则选择模式1 (3)如果需要增加一个定时器/计数器 选择模式3。6.2.4 模式3的逻辑结构及应用2、定时器/计数器初值X的计算方

13、法 因为X + N = 28或216 所以X = 28或216-N (1)对定时器 设定时时间为tN = t/机器周期 所以X = 28或216- t/机器周期 (2)对计数器 X = 28或216- N6.2.4 模式3的逻辑结构及应用例6-1 设单片机的振荡频率为12MHz,用 定时器/计数器0的模式1编程,在P1.0引脚产 生一个周期为1000s的方波,定时器T0采用 中断的处理方式。 定时器的分析过程。 工作方式选择需要产生周期信号时,选择定时方式。定 时时间到了对输出端进行周期性的输出即可 。工作模式选择根据定时时间长短选择工作模式。首选模式2,可以省略重装初值操作。6.2.4 模式

14、3的逻辑结构及应用定时时间计算:周期为1000s的方波要 求定时器的定时时间为500s,每次溢出时 ,将P1.0引脚的输出取反,就可以在P1.0上 产生所需要的方波。 定时初值计算:振荡频率为12MHz,则机器周期为1s。 设定时初值为X,(65536-X)1s=500sX=65036=0FE0CH 定时器的初值为:TH0=0FEH,TL0=0CH 6.2.4 模式3的逻辑结构及应用C语言程序: #include /包含特殊功能寄存器库 sbitP1_0=P10; /进行位定义 void main( ) TMOD=0x01; /T0做定时器,模式1 TL0=0x0c; TH0=0xfe;/设置

15、定时器的初值 ET0=1; /允许T0中断EA=1; /允许CPU中断 TR0=1; /启动定时器 while(1); /等待中断 6.2.4 模式3的逻辑结构及应用void time0_int(void) interrupt 1 /中断服务程序 TL0=0x0c; TH0=0xfe;/定时器重赋初值 P1_0=P1_0;/P1.0取反,输出方波 汇编语言程序: ORG0000H SJMPMAIN ORG000BH LJMPTIME06.2.4 模式 3的逻辑结构及应用例6-2 设单片机的振荡频率为12MHz, 用定时器/计数器0编程实现从P1.0输出周期 为500s的方波。 分析:方法同例6-1 定时时间:方波周期为500s,定时250s。模式选择:定时器0可以选择模式0、1和2。模式2 最大的定时时间为256s,满足250s的定时 要求,选择模式2。6.2.4 模式 3的逻辑结构及应用(1)初值计算(256-X)1s=250sX=6;则TH0=TL0=6 (2)程序: 采用中断处理方式的程序 : C语言程序 : # include /包含特殊功能寄存器库 sbit P1_0=P10; 6.2.4 模式3的逻辑结构及应用voidmain( ) TMOD=0x02; /选择工作模式 TL0=0x06; TH0=0x06; /为定时器赋初值E

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号