博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51单片机 —— 计时器
阅读量:4583 次
发布时间:2019-06-09

本文共 1466 字,大约阅读时间需要 4 分钟。

TMOD : 8位寄存器,不能位寻址,低四位控制定时器T0,高四位控制T1。每四位寄存器中,低两位定义定时器的工作方式(方式一与方式二),第三位是功能选择位(定义计时器为定时或计数),第四位为门控位,决定INTx引脚输入电平的影响,也可理解为是否引入外部控制定时器的启停动作。

========================================================================

    |                    ||
TMOD | D7    D6    D5    D4||   D3    D2    D1    D0
    |                    ||
对应  | GATE   C/T    M1      M0||  GATE     C/T      M1      M0
    |                    ||
从属  |      定时器1           ||          定时器0
    |                    ||
========================================================================

GATE  ->  门控制

  GATE = 1 : 当且仅当TRx=1,INTx=1,计数启动,否则停止
      INT0为高电平TR0置位 -> INT0 = 1,TR0 = 1,启动定时器0
      INT1为高电平TR1置位 -> INT1 = 1,TR1 = 1,启动定时器1
  GATE = 0 : 定时器不受INTx影响
      TR0 = 1,启动定时器T0
      TR1 = 1,启动定时器T1

C/T   ->  功能选择位

  C/T=0 : 定时功能:加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
  C/T=1 : 计数功能:加1计数器对来自输入引脚T0(P3^4)与T1(P3^5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;

M1、M0 ->  方式选择功能

  51定时器 T0有4种工作方式:方式0,1,2,3
       T1有3种工作方式:方式0,1,2
  0  0    方式0:13位定时器/计数器
  0  1    方式1:16位定时器/计数器
  1  0    方式2:自动重载8位定时/计数器

  1  1    方式3:T0分为2个8位独立计数器

令M为计数器最大值

  方式0:M = 2^13 = 8192
  方式1:M = 2^16 = 65536
  方式2:M = 2^8 = 256
  方式3:定时器0分成两个8位计数器,两个M均为256

//CPU开中断

EA = 1;

//确定工作方式

TMOD = 0x00; //T0为方式0,16位装载初值

//预制初值

TH0 = (65536-num)/256; // 65536为2^12(12MHz),num为延时时间(单位1微秒),256为2^8(8位寄存器)
TL0 = (65536-num)/256; // 必写,写在TH0后,取余符号(暂定)

//软件启动

TR0 = 1; // 如果TMOD设定为中断引脚启动则需加上中断引脚启动电平

转载于:https://www.cnblogs.com/MO-OF/p/9109721.html

你可能感兴趣的文章
Oracle学习第七课-表连接及其应用
查看>>
Python基础篇【第十三篇】:面向对象
查看>>
bzoj 2465 小球
查看>>
String类
查看>>
NoSQL简介
查看>>
java_2018_Day5_变量的格式
查看>>
在C++中调用DLL中的函数
查看>>
leetcode 32. Longest Valid Parentheses
查看>>
OpenSSL创建私有CA
查看>>
CSS3画腾讯QQ图标 无图片和js参考
查看>>
C#使用Emit生成构造函数和属性
查看>>
python pip源配置,pip配置文件存放位置
查看>>
[数据库]关于MAX()函数的一个坑
查看>>
实现前后滚动效果-axure设计实例
查看>>
windows下mysql忘记root密码--吐血测试,都是泪
查看>>
lnmp集成开发环境安装pdo_dblib扩展
查看>>
linux web.py spawn-fcgi web.py 配置
查看>>
lintcode : 空格替换
查看>>
lintcode 中等题:subsets II 带重复元素的子集
查看>>
【原创】Linux基础之测试域名IP端口连通性
查看>>