51单片机 | 定时/计数器原理及结构(T0和T1)
————————————————————————————————————————————
定时/计数器结构(T0和T1)

16位寄存器T0、T1分别由TH0、TL0和TH1、TL1四个8位计数器组成
- 定时器的区别:
- T0可分成2个独立的8位定时器,而定时器1则不能;
 - T1可作为串口的波特率发生器,而定时器0则不能。
 
 - 工作原理
- 用途:定时器和计数器
 - 核心:加1计数器
 - 原理:每来一个脉冲则加1计数器加1,当加到全1时再来一个脉冲使加1计数器归零,同时加1计数器的溢出使TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求
 - 脉冲来源:
- 定时器:脉冲来源是由系统的时钟晶振器输出脉冲源提供
 - 计数器:脉冲来源是由T0或T1引脚(P3.4或P3.5)输入的外部脉冲源提供
 
 
注:T0或T1都不能同时既做定时器也做计数器
补充:
- 计数器工作原理:
用作计数器时,对T0或T1引脚的外部脉冲计数,如果前一个机器周期采样值为1,后一个机器周期采样值为0 ,则说明有一个脉冲,计数器加1。
在每个机器周期的S5P2期间采样引脚输入电平。新的计数初值于下一个机器周期的S3P1期间装入计数器。
此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计数频率为时钟频率的1/24。
 - S5P2:
S5P2指的是第5个时钟周期的相位2。
晶体振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上,时钟发生器是一个二分频触发器电路,它将振荡器的信号频率除以2,向CPU提供了两相时钟信号P1和P2。时钟信号的周期称为机器状态时间S,它是振荡周期的2倍。在每个时钟周期(即机器状态时间S)的前半周期,相位1(即P1信号)有效,在每个时钟周期的后半周期,相位2(即P2信号)有效。
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
使用的寄存器
- TCON控制寄存器:启动和停止定时/计数器的计数,并控制定时器的工作状态,不能按位寻址

 - TMOD方式寄存器:设置定时器的工作方式,选择定时或计数的功能,可以按位寻址。(和中断共用寄存器,高四位为定时计数器使用,低四位为中断使用)


注:GATE逻辑结构此处略过,详见书P100
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
工作方式:
- 方式0
- 计算公式:



 - 最大计数:8192个机器周期
 - 工作原理:
13位计数器,使用TL0的低5位和TH0的高8位组成,TL0的低5位溢出时向TH0进位。TH0溢出时发出中断请求。

 
 - 方式1
- 计算公式:



 - 最大计数:65536个机器周期
 - 工作原理:
16位计数器,TL0作为低8位,TH0作为高8位

 
 - 方式2:自动重装初值的8位计数方式
- 计算公式:
p.s.晶振频率必须选择12的整数倍,因为定时器的频率是晶振频率的1/12。



 - 最大计数:256个机器周期
 - 优点:
适合做比较精准的脉冲信号发生器
 - 缺点:

 - 工作原理:
计数器溢出后,计数器自动将上次设置的初值重装。

 
 - 方式3:p.s.只能用于定时/计数器T0,T0工作在方式3时,T1不要使用在有中断的场合。通常该种情况下T1用作串口波特率发生器
- 工作原理:
将T0分成两个独立的8位定时/计数器TL0和TH0。
TL0为正常的8位定时/计数器,计数器溢出后置位TF0,申请中断,之后重装初值。
TH0也是8位定时/计数器,但由于TL0占用了TF0和TR0,因此TH0占用定时器TF1和TR1(所以T1不能用)

 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
时钟周期/机器周期计算:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
定时/计数器初始化
- 对TMOD赋值,确定T0和T1的工作方式
 - 计算初值,并将其写入TH.x和TL.x
 - 使用中断方式时对IE寄存器赋值开发中断
 - 使TR0或TR1置位,启动定时/计数器
 
51单片机 | 定时/计数器原理及结构(T0和T1)的更多相关文章
- 【CC2530入门教程-04】CC2530的定时/计数器原理与应用
		
第4课 CC2530的定时/计数器原理与应用 广东职业技术学院 欧浩源 一.定时/技术器的基本原理 定时/计数器,是一种能够对内部时钟信号或外部输入信号进行计数,当计数值达到设定要求时,向CPU提 ...
 - 51单片机I/O引脚IO口工作原理
		
51单片机I/O引脚IO口工作原理 一.51单片机管脚p0.p1.p2.p3口区别如下: 1.意思不同P0口作输出口用时,需加上拉电阻.P0口有复用功能.当对外部存储器进行读写操作时,P0口先是提供外 ...
 - 《例说51单片机(C语言版)(第3版)》——1-3 认识MCS-51的存储器结构
		
本节书摘来异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.3节,作者:张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公众 ...
 - 51单片机C语言学习笔记3: 存储器结构
		
MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ...
 - 关于51单片机P0口的结构及上拉问题
		
1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候, ...
 - 4-51单片机WIFI学习(开发板51单片机自动冷启动下载原理)
		
上一篇链接 http://www.cnblogs.com/yangfengwu/p/8743936.html 这一篇说一下自己板子的51单片机自动冷启动下载原理,我挥舞着键盘和鼠标,发誓要把世界写个明 ...
 - 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
		
前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...
 - [学习笔记]15个QA让你快速入门51单片机开发
		
一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ 22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有un ...
 - 51单片机SRF寄存器
		
1.21个寄存器介绍 51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 ...
 
随机推荐
- Windows下VS2013创建与使用动态链接库(.dll)
			
一.创建动态链接库文件 ** 1.打开VS2013,选择文件,新建工程 2.选择新建W32控制台应用程序,这里将工程名改为makeDLL 3.在应用程序类型中选择DLL,点击完成 4.完成以上步 ...
 - 树莓派3b入门教程
			
原文地址:传送门 这篇教程将带您一起玩转树莓派3(Raspberry Pi 3).和普通PC一样,拿到新设备第一件事就是要给它安装一个操作系统,并做一些初始化的操作.比PC简单的是,树莓派是一个固定配 ...
 - adb install 安卓apk的包
			
➜ ~ adb install /Users/jkr/Downloads/QYVideoClient-debug.apk /Users/jkr/Downloads/QYVideoClient-deb ...
 - 牛客网 暑期ACM多校训练营(第一场)J.Different Integers-区间两侧不同数字的个数-离线树状数组 or 可持久化线段树(主席树)
			
J.Different Integers 题意就是给你l,r,问你在区间两侧的[1,l]和[r,n]中,不同数的个数. 两种思路: 1.将数组长度扩大两倍,for(int i=n+1;i<=2* ...
 - (3)oracle建用户、建表、权限、命名空间
			
一.表空间 创建表空间 create tablespace ts001 datafile ‘d:\test\a.dbf’ size 20m uniform size 128k; 使用表空间 cre ...
 - Python与数据结构[2] -> 队列/Queue[0] -> 数组队列的 Python 实现
			
队列 / Queue 数组队列 数组队列是队列基于数组的一种实现,其实现类似于数组栈,是一种FIFO的线性数据结构. Queue: <--| 1 | 2 | 3 | 4 | 5 |<-- ...
 - 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- XOR(二进制使用)
			
链接:https://www.nowcoder.com/acm/contest/116/H来源:牛客网 题目描述 Once there was a king called XOR, he had a ...
 - POJ1226 Substrings(二分+后缀数组)
			
题意:给n个字符串,求最长的子串,满足它或它的逆置出现在所有的n个字符串中. 把n个字符串及其它们的逆置拼接,中间用不同字符隔开,并记录suffix(i)是属于哪个字符串的: 跑后缀数组计算heigh ...
 - Akka Cluster之集群分片
			
一.介绍 当您需要在集群中的多个节点之间分配Actor,并希望能够使用其逻辑标识符与它们进行交互时,集群分片是非常有用的.你无需关心Actor在集群中的物理位置,因为这可能也会随着时间的推移而发生变 ...
 - HDU 4815 Little Tiger vs. Deep Monkey 2013 长春现场赛C题
			
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4815 [题意] n个题目,每题有各自的分数,A有50%的概率答对一道题目得到相应分数,B想要在至少P的概率 ...
 
			
		





