程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • Linux

  • MySQL

  • 51单片机

    • 基础
    • 元器件
    • 中断
    • 定时计数器
      • 定时计数器
      • 应用
      • 定时器的结构
        • TMOD
        • TCON
        • 运行
        • 两种工作模式
        • 原理(12MHZ的晶振电路)
    • 中断程序
    • DS1302模块
    • BCD码转换
    • 串口
    • 时序图入门74HC165
    • AD转换
    • SD卡
  • exam

  • 系统和硬件
  • 51单片机
yuadh
2022-02-03
目录

定时计数器

# 定时计数器

  1. SOC固件配置 : STM32 , AVR32 SOC(System On Chip)
  2. 操作单片机的本质:操作/设置寄存器
  3. 中断(定时/计数器的中断)

# 应用

定时或延时控制、对外部事件的检测、计数等

**有两个16位定时/计数器(T0和T1) 8053有额外T2 **

  • 所谓计数器就是对外不输入脉冲的计数

  • 所谓定时器也是对脉冲进行计数完成的,计数的是MCS-51内部产生的标准脉冲,通过计数脉冲个数实现定时

    所以本质上是一致的统称为定时器

定时:看不见的,没有引脚相关

# 定时器的结构

  • **组成:**两个16位的定时器T0和T1,以及他们的工作方式寄存器

    TMOD 和控制寄存器 TCON 等组成。内部通过总线与CPU相连

  • 定时器 T0 和 T1 各由两个 8 位特殊功能寄存器 TH0、TL0、TH1、TL1

  • 工作方式寄存器 TMOD : 用于设置定时器的工作模式和工作方式

  • 控制寄存器 TCON: 用于启动和停止定时器的计数,并控制定时器的状态

单片机复位时,两个寄存器的所有位都被清零

# TMOD

设置定时计数器的模式和工作方式

模式:定时模式 / 计数模式

工作方式 : 三种(0,1,2)

# TCON

控制定时计数器的启停

# 运行

每个定时器内部结构实际上就是一个可编程的加法计数器,

由编程来设置它工作在定时状态还是计数状态

补充:

  1. 通过 TCON 和 TMOD 设置定时计数器的工作方式以及工作模式
  2. 设置定时计数器 T0 和 T1 这两个 16 位定时计数器寄存器的一个初值

T0 (16bit) TH0(8) TL0(8)

T1 (16bit) TH1(8) TL1(8)

在每个机器周期到来时,T0就会自动加 1 ,

当TL0加到 0xff 时,就会使 TH0加1 ,

当 TH0 = 0xff ,并且 TL0 = 0xff

这种情况就被称为 溢出中断

# 两种工作模式

计数器工作模式

就是对外部事件进行计数。计数脉冲来自相应的外部输入引脚 T0或 T1

当输入信号发生由 1 至 0 的负跳变(下降沿)时,计数器(TH0,TL0或HT1,TL1)的值增1。计数器的最高频率一般为震荡频率的 1/24

定时器工作模式

也是通过计数实现的。计数脉冲来自内部时钟脉冲,每个机器周期计数值增1,每个机器周期 = 12 个震荡周期,因此计数频率为震荡频率的 1/12

所以定时事件 = 计数值 X 机器周期

4种工作方式(0-3)

# 原理(12MHZ的晶振电路)

假设我们机器周期 是 1us ,那定时 1ms,相当于让我们的定时计数器加

1ms / 1us = 1000 需要加让计数器计数1000次

设置初值为 T0溢出值 - 计数的次数

6个状态周期就是一个机器周期 === 12个震荡周期

12MHZ的晶振 === 1/12M

分频 12MHZ / 12 = 1MHZ

  1. GATE - 门控位

    以TRX(X=0,1) 来启动定时/计数器运行

  2. C/T*- 计数器模式和定时器模式选择位

    0:定时器模式

    1:计数器模式

  3. M1、M2 - 工作方式选择

    M1 M0 工作方式

    0 0 方式0 , 13位定时计数器

    0 1 方式1 , 16位定时计数器

    1 0 方式2 , 8位常数自动重新装载

    1 1 方式3 , 仅适用于 T0 (T0分为两个8 位计数器,T1停止计数)

  1. TF1、TF0 : 计数溢出标志位

    定时器T0或T1 计数溢出时,由硬件自动将此位置 “1”

    TFx 可以由程序查询,也是定时中断的请求源

  2. TR1、TR0 : 计数运行控制位

    TRx=1:启动定时器/计数器工作

    TRx=0:停止定时器/计数器工作

编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
中断
中断程序

← 中断 中断程序→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×