单片机 定时器/计数器

一、什么是定时器/计数器

在51单片机中,定时器/计数器是用来实现定时功能,并且具有计数的功能,来实现对外部信号的计数。

二、定时器/计数器有什么类型

在51单片机中,分为软件定时器,不可编程硬件定时器,可编程定时器。 
软件定时:CPU每执行一条指令时,是需要固定时间的,所以,通过执行空指令可以达到延时的效果,这样子做的代价是占用CPU时间,所以一般很少这么做。

不可编程硬件定时器:是由电路和硬件来完成定时功能的,一般采用基电路,外接定时部件(电阻和电容),通过改变电阻的阻值和电容的电容值来修改定时值,一量确定后件不能通过软件修改,这样子做的优点是不需要占用CPU时间。

可编程定时器:通软件来确定定时值及其范围,可编程定时器功能强大,灵活性高。这是本文详细讲解的定时器。

三、定时器的内部结构及工作原理

8051单片机有定时器0(T0)和定时器1(T1)两个定时器。 
定时器0(T0)和定时器1(T1)是两个16位加法计算器。 
定时器0是由TH0和TH1两个8位计数器组成的,定时器1也是一样。

定时器内部还有以下寄存器:
8位的方式寄存器(TMOD) 
8位控制寄存器(TCON) 
选择定时器模式寄存器(C/T) 
启动方式寄存器(GATE)
工作方式及发出启动信号寄存器(TR0或TR1)

内部结构如下图: 

四、定时器工作方式

定时器的工作方式主要是通过THOD低4位是定时器0的工作方式控制位,高4位为定时器1的工作方式控制方式。均为M1M0

工作方式 M1 M0 功能
0 0 0 13位计数器
1 0 1 16位计数器
2 1 0 8位计数器,初值自动装入
3 1 1 T0分成两个8位计数器,T1停止工作

五、使用定时器

timer_count.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<reg52.h>

unsigned char i;
sbit LED0 = P1^0;

void main(void)
{
  TMOD = 0x01;
  TH0 = 0;
  TL0 = 0;
  ET0 = 1;
  TR0 = 1;
  EA = 1;
  while(1);
}

void t0_delay(void) interrupt 1
{
  i++;
  TR0 = 0;
  TH0 = 0;
  TL0 = 0;
  if(i == 20)
  {
      i = 0;
      LED0 = ~LED0;
  }
  TR0 = 1;
}

原文地址:http://yingbing.github.io/blog/2015/02/07/scm-timer-counter/

时间: 2024-08-10 17:18:23

单片机 定时器/计数器的相关文章

51单片机中断机制(定时器/计数器)

单片机中断简介 52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下: INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起 INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起 T0    - 定时器/计数器0中断, 由T0计数器计满回零引起 T1    - 定时器/计数器1中断, 由T1计数器计满回零引起 T2    - 定时器/计数器2中断, 由T2计数器计满回零引起 TI/RI - 串行口中断,串行端口完成一帧字符发送/接收后引起 其中T2是5

定时器计数器中断

定时器/计数器的工作由TMOD与TCON两个寄存器控制,TCON是控制寄存器,控制启动停止以及设置溢出标志,TMOD确定工作方式和功能.计数器溢出时会使得TCON寄存器中TF0或者TF1置1,并向CPU发出中断请求. TMOD 工作方式寄存器 TMOD在单片机复位时全部被清零,其高四位设置定时器1,低四位设置定时器0:四位的意义如下: GATE:门控制位,=0定时器的启动停止仅受TCON寄存器控制,=1时受TCON控制器和外部中断引脚电平状态共同控制: C/T:定时器与计数器模式选择,=1为计数

单片机定时器2使用

定时器T2 reg52.h没有T2MOD寄存器 regx55.h有T2MOD寄存器而且sbit已经定义 概述 定时器2是一个16位通用计数器,其具有两种操作模式:16位自动重载模式和16位捕获模式. 如果预分频功能被禁止,定时器2工作时,16位通用加法计数器以12分频的周期脉冲计数,每个周期16位通用加法计数器加1或减1. 定时器2由T2MOD寄存器.T2CON存器.功能存器TH2.TL2.RC2H.RC2L等电路构成. TH2.TL2构成16位通用计数器. RC2H.RC2L作为16位寄存器,

毕业回馈-89c51之定时器/计数器(Timer/Count)

今天分享的是89c51系列单片机的内部资源定时器/计数器,在所有的嵌入式系统中都包含这两个内部功能. 首先先了解几个定时器/计数器相关的概念: ?时钟周期:时钟周期 T 是时序中最小的时间单位,具体计算的方法就是1/时钟源频率,(一般单片机采用的是11.0592mHz) ?机器周期:我们的单片机完成一个操作的最短时间.标准51单片机,一个机器周期是 12 个时钟周期,也就是 12/11059200 秒. ?定时器:当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数

定时器/计数器实验报告

/************************************************* 实验名称:定时器实验一 实验目的:利用定时器/计数器让发光二极管以1HZ闪烁 *************************************************/ #include<reg52.h> sbit P10 = P1^0; unsigned char flag; void main() { flag = 0; P10 = 0; TH0 = 0xfe; TH0 = 0x

N76E003的定时器/计数器 0和1

定时器/计数器 0和1N76E003系列定时器/计数器 0和1是2个16位定时器/计数器.每个都是由两个8位的寄存器组成的16位计数寄存器. 对于定时器/计数器0,高8位寄存器是TH0. 低8位寄存器是TL0. 同样定时器/计数器1也有两个8位寄存器, TH1 和TL1. TCON 和 TMOD 可以配置定时器/计数器0和1的工作模式. 通过TMOD中的 位来选择定时器或计数器功能. 每个定时器/计数器都有选择位,TMOD的第2位选择定时器/计数器0功能,TMOD的第6位选择定时器/计数器1功能

52单片机定时器2

什么是捕获? 捕获就是捕捉某一瞬间的值,通常用它来测量外部某个脉冲的宽度或周期.使用捕获功能可以非常准确的测量脉冲宽度或周期,他的工作原理是:单片机内部有两组寄存器,其中一组的内部数值是按照固定的机器周期递增或递减,通常这组寄存器就是定时器的计数器寄存器(TLX,THX),当与捕获功能相关的外部某引脚有一个负跳变时,捕获便会立即将此时第一组寄存器中的数值准确地获取,并且存入另一组寄存器中,这组寄存器通常被称为"陷阱寄存器"(RCAPXL,RCAPXH),同时向CPU申请中断,以方便软件

定时器/计数器0之定时器

/* 效果说明: 定时器中断:通过单片机计数使程序执行 一秒中断一次,中断发生时高四位亮一秒,中断发生后又回到主程序 */ #include <reg51.h> #include <stdio.h> unsigned int i; void delay()//延时子函数 { i=1000000; while(i--);//执行一次大概要一毫秒 这里给它一秒就是中断发生时高四位亮一秒 } //中断初始化 void zhongduan1() { ET0 = 1;//启动计数器中断开关

nrf51822-硬件(3)-定时器/计数器TIMER(IK-51822DK开发套件)

一.Timer 原理 定时器是单片机的重要外设之一,可用于定时.精确延时.计数等.而且Time在运行时不占用CPU时间,在配置好后,可以和CPU并行工作,实现精确的定时和计数.并可以通过软件控制其来产生中断,使用起来方便灵活. 在NRF51822中共有3个定时器,对应的编号为TIMER0.TIMER1.TIMER2,都可以分别工作在定时模式和计数模式下.其原理结构体如下: Timer模块从PCLK1M/PCLK16M处获取时钟源,然后经分频后的到时钟作为Timer的时钟(即图中的fTIMER),