电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

51单片机学习笔记(三)_定时器和计数器

来源:华强电子网 作者:华仔 浏览:222

标签:

摘要: 注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1)TMOD:定时器/计数器模式控制寄存器 详见百度百科TMOD每经过一个机器周期、寄存器+1TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。TR:定时器运行控制位。置1开始计时、清零停止计时。C/T:该位为0时用作计时器、该位为1时用作计数器。

注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲

2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1)

TMOD:定时器/计数器模式控制寄存器 详见百度百科TMOD

每经过一个机器周期、寄存器+1TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。TR:定时器运行控制位。置1开始计时、清零停止计时。C/T:该位为0时用作计时器、该位为1时用作计数器。

溢出时时间-开始计时时间=预设定时时间

一个机器周期共有12个振荡脉冲周期

若设定时为0.02s,则:

12*(65535-X)/11059200=0.02s

定时器作“加1”次数:X=47104=0xB800次 时间为0.02s

使用定时器的方法

1、设置特殊功能寄存器TMOD,使之工作在需求的状态。
2、设置计数寄存器的初值,精确设定好定时时间。
3、设置特殊功能寄存器TCON,通过打开TR来让定时器进行工作。

4、判断寄存器TCON的FT0位、检测定时器溢出情况。

假设我们使用定时器0、定时为0.02s,两个寄存器计时

TMOD=0x01; TMOD=0x01,指的是采用T0方式,将M1置0,M0置1,是方式一的定时器

高八位寄存器TH0=0xB8、低八位寄存器TL0=0x00

C程序实现1s钟定时

#include typedef unsigned char uint8;typedef unsigned int uint16;sbit led=P1^0;uint8 counter;void main(){   TMOD=0x01;   TH0=0xb8;   TL0=0x00;   TR0=1;    led=1;   counter=0;   while(1){      if(TF0==1){   //如果达到溢出 0.02s后溢出     TF0=0; //软件清零     TH0=0xB8;   //重置计数基数             TL0=0x00;     counter++;  //溢出一次计次数      }      if(counter==50){   //0.02s*50=1s    counter=0;  //清零    led=~led; //取反使P1^0亮灭      }   }}
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67