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

上传人:最**** 文档编号:117938984 上传时间:2019-12-11 格式:PPT 页数:100 大小:1.30MB
返回 下载 相关 举报
单片机原理及应用(C语言版)6讲解_第1页
第1页 / 共100页
单片机原理及应用(C语言版)6讲解_第2页
第2页 / 共100页
单片机原理及应用(C语言版)6讲解_第3页
第3页 / 共100页
单片机原理及应用(C语言版)6讲解_第4页
第4页 / 共100页
单片机原理及应用(C语言版)6讲解_第5页
第5页 / 共100页
点击查看更多>>
资源描述

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

1、单片机原理及应用 (C语言版) 第6章 MCS-51单片机定时器/计数器 第6章 MCS-51单片机定时器/计数器 目 录 6.1 单片机定时器/计数器的 结构及原理 6.2 定时器/计数器T0、T1 6.3 定时器/计数器T2 6.4 定时器/计数器应用举例 定时器/计数器应用极其广泛。 本章主要讨论MCS-51单片机定时器/计 数器T0、T1、T2的逻辑结构、工作原理、 使用方法和应用。 本章为单片机的主要内容,也是学习第 七章串行口的基础。 第6章 MCS-51单片机的定时器/计数器 6.1 单片机定时器/计数器 的结构及原理 主要内容 6.1.1 单片机定时器/计数器的结构 6.1.2

2、 单片机定时器/计数器的工作原理 6.1.1 单片机定时器/计数器的结构 MCS-51单片机定时器/计数器的原理结构图 CPU 中断 溢 出 溢 出 溢 出 定时器0定时器1定时器2 TMODT2CONT2MODTCON TH0TL0TH1TL1TH2TL2 RCAP2LRCAP2H 模 式 模 式 T2(P1.0) T1(P3.5)T2EX(P1.1)T0(P3.4) 模 式 控 制 控 制 控 制 中断 重装 捕获 6.1.1 MCS-51单片机定时器/计数器的结构 MCS-51主要由如下构成: 三个16位的可编程定时器/计数器:定时器/计数 器0、1和2。 每个定时器有两部分构成:THx

3、和TLx 特殊功能寄存器TMOD和TCON ,主要对T0和 T1进行控制。 特殊功能寄存器T2MOD和T2CON ,主要对T2 进行控制,RCAP2H、RCAP2L为T2服务。 引脚P3.4、P3.5、P1.0,为计数脉冲输入。 定时器T0、T1和T2有中断功能,计数器溢出或 被触发(T2),向CPU 发出中断请求。 6.1.2 单片机定时器/计数器的工作原理 定时器/计数器T0、T1、T2 的内部结构简图如下 图所示。 C/T=0 中断请求 振荡器 TLx (8位) THx (8位) Tx n分频 TFx C/T=1 控制 TRx 做定时器 做计数器 6.1.2 MCS-51单片机定时器/计

4、数器的工作原理 从上图可以看出: 定时器的实质是一个加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个机器周期对引脚采样1次,当上1个机器 周期采样为高、本机器周期采样为低为1个下降沿。 6.1.2 MCS-51单片机定时器/计数器的工作原理 控制信号TRx=1时,定时器启动

5、。 当定时器由全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 功能:确定定时器的工作模式。其格式为: TMOD (89H) D7D6D5D4D3D2D1D0 GATEC/TM1M0GATEC/TM1M0 GATE外部门控制位。 GATE1,使用外部控制门,且TRx=1 当 P3.2(P3.3)为高时启动定时器, P3.2(P3

6、.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-1 定时时器/计计数器的工作模式 M1 M0工作模式功 能 00模式013位定时/计数 01模式116位定时/计数 10模式28位初值自动重装定时/计数 11模式3 定时器

7、0:TL0可8位定时或计数 TH0为8位定时器。 定时器1:无此方式 6.2.1 T0、T1的特殊功能寄存器 2. T0、T1控制寄存器TCON TCON (88H) D7D6D5D4D3D2D1D0 TF1 TR1 TF0 TR0 IE1IT1IE0IT0 TF1、TF0:T1、T0的溢出标志位 计数溢出,TFx=1。 中断方式:自动清零; 查询方式:软件清零。 6.2.1 T0、T1的特殊功能寄存器 TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。 注意: GATE=1 ,TRx与P3.2(P3.3)的配合控制 。 IE1、IE0:外部中断1、0请求标志位 I

8、T1、IT0:外部中断1、0触发方式选择位 6.2.2 T0、T1的工作模式 MCS-51的T0、T1共有4种工作模式,前 三种模式下两个定时器/计数器工作原理是相同 的,只有模式3下两者才有差别。以下主要以 T0为例进行介绍,T1类似。 模式0与模式1 的区别仅仅是计数器的位数不同 ,前者是13位,后者是16位,其它完全相同,现在 一般都不使用模式0,故不讲。 当设置M1M001时,选择模式1,为16位定 时器/计数器。 模式1原理结构 模式1原理结构由4部分构成(下页图): 信号源运行控制 计数器溢出标志 1模式1 6.2.2 T0、T1的工作模式 6.2.2 T0、T1的工作模式 图6-

9、6 T0模式1原理结构 振荡器12分频 TL0 (8位) TH0 TF0 + T0(P3.4) TR0 (P3.2) GATE C/T=0 C/T=1中断 (8位) 0 1 运行控制 计数器溢出中断 信号源 6.2.2 T0、T1的工作模式 信号源 C/T设为1,为计数器,用P3.4引脚脉冲 C/T设为0,为定时器,用内部脉冲 运行控制 GATE=1,由外部信号控制运行 此时应该设置TR0=1 P3.2引脚为高电平,T0运行GATE=0 ,由内部控制运行 TR0设置为1,T0运行 6.2.2 T0、T1的工作模式 计数部件 由TL0、TH0组成,是一个16位的加法计数器, 对送来的脉冲进行计数

10、,计数溢出后输出由低变高 ,设置溢出标志。 溢出标志: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位初值自动重装 振荡器 12分频 T0(P

11、3.4) TR0 TF0 中断 GATE + C/T=0 C/T=1 TL0 (8位) TH0 (8位) P3.2 0 1 运行控制 计数器 溢出标志 信号源 6.2.2 T0、T1的工作模式 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的原理结构图 振荡器12分频 TR1 振荡器 T0(P3.4)

12、 TR0 TF1 GATE + C/T=0 C/T=1 TL0 (8位) TH0 P3.2 中断 中断 TF0 12分频 (8位) 6.2.2 T0、T1的工作模式 T0模式3时T1的工作模式 T1可以模式0模式2工作。 T1的结构如图6-9所示 由于TF1及中断矢量被TH0占用,所以T1仅用作 波特率发生器或其它不用中断的地方。 T1作波特率发生器,其计数溢出直接送至串 行口。设置好工作方式,串行口波特率发生器开始 自动运行。 TMOD中T1的M1M0=11,T1停止工作,因为 T1没有模式3。 6.2.2 T0、T1的工作模式 图6-9 T0模式3时T1的原理结构 串行口 重新装入 C/T

13、=0 C/T=1 C/T=1 C/T=0 T1(P3.5) T1(P3.5) (a)T1模式1 振荡器12分频 振荡器12分频 串行口 TH1 (8位) TL1 (8位) TL1 (8位) TH1 (8位) (b)T1模式2 6.2.2 T0、T1的工作模式 6.2.3 T0、T1的使用方法 T0、T1各有两种功能(定时/计数)、4种或3 种工作模式,如何选择其功能和工作模式,是使用 T0、T1编写程序需要首先解决的问题。 1.选择定时和计数功能 如果需要对单片机外部输入的脉冲进行计量, 则选择计数功能(如统计产品数量、轮子转的周数 (每周产生的脉冲数目一定)、液滴的数目等); 否则选择定时功

14、能(如定时启动/停止机器运转 、定时打开/关闭阀门、产生方波、产生某种频率的 声音等)。 6.2.3 T0、T1的使用方法 2.选择工作模式 (1)计算计数值N 1)计数情况 需要计的数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;

15、否则选择模式2, 或者选择模式3。首选模式2。 3计数初值X的计算 计数初值X = 最大计数值 - 计数值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。 确定工作模式。 计算定时或计数的初值X。 编写初始化程序: 设置TMOD,设置TLx和THx,(需要时开T0、 T1中断和总中断),设置TRx启动运行。 编写T0、T1的应用程序。 前3项为编写初始化程序的准备,称之为初始化 准备。 6.2.3 T0、T1的使用方法 6在运行中读取TLx、THx的方法 在T0、T1运行情况下,TLx和THx中的值在 变化,读的期间有可能进位,读出的数据不正确 。正确的读取方法如下: do xh=THx; xl=TLx; whil

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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