3.9 KiB
3.9 KiB
tags, create time
| tags | create time | |||||
|---|---|---|---|---|---|---|
|
2026-06-28 15:00 |
82C54A 定时器工作方式
概述
82C54A(可编程定时器/计数器)有 6 种工作方式,其中方式 2 和方式 3 具有自动重新装载计数初值的功能,方式 3 专门用于产生方波输出。本专题聚焦填空题常考的工作方式对比。
正文
1. 六种工作方式总览
| 方式 | 名称 | 自动重装 | 输出波形 | 触发方式 |
|---|---|---|---|---|
| 0 | 计数结束中断 | ✗ | 单次低→高跳变 | 软件 |
| 1 | 可编程单稳态 | 单次负脉冲 | 硬件 | |
| 2 | 速率发生器 | ✓ | 周期性负脉冲 | 软件 |
| 3 | 方波发生器 | ✓ | 方波 | 软件 |
| 4 | 软件触发选通 | ✗ | 单次正脉冲 | 软件 |
| 5 | 硬件触发选通 | ✗ | 单次正脉冲 | 硬件 |
[!important] 考试关键点
- 方式 2 和方式 3 具有自动重新装载计数初值的功能
- 方式 3 输出的波形是方波
2. 方式 2 — 速率发生器
方式 2 是周期性负脉冲发生器:
- 计数到 0 时输出一个时钟宽度的负脉冲
- 自动重新装载计数初值,开始下一轮计数
- 输出频率 = 输入时钟频率 / 计数初值
graph LR
A["装载初值 N"] --> B["递减计数"]
B --> C{"计数到 0?"}
C -- "否" --> B
C -- "是" --> D["输出一个<br/>负脉冲"]
D --> E["自动重装 N"]
E --> B
style D fill:#f9f,stroke:#333,color:#000
style E fill:#dfd,stroke:#333,color:#000
[!example] 计算示例 输入时钟 1MHz,计数初值 1000:
- 输出负脉冲频率 = 1MHz / 1000 = 1kHz
- 每个脉冲宽度 = 1 个时钟周期 = 1μs
3. 方式 3 — 方波发生器
方式 3 是方波发生器,输出占空比约 50% 的方波:
- 计数到 0 时输出电平翻转
- 自动重新装载计数初值
- 输出频率 = 输入时钟频率 / 计数初值
| 计数初值 | 输出波形 | 说明 |
|---|---|---|
| 偶数 | 完美方波(50% 占空比) | 高电平和低电平各占 N/2 个时钟 |
| 奇数 | 近似方波(高电平多一个时钟) | 高电平 (N+1)/2,低电平 (N-1)/2 |
graph LR
A["装载初值 N"] --> B["递减计数"]
B --> C{"计数到 0?"}
C -- "否" --> B
C -- "是" --> D["输出电平翻转<br/>自动重装 N"]
D --> B
style D fill:#f9f,stroke:#333,color:#000
[!example] 真题计算 输入时钟 1MHz,方式 3 下计数初值设为 1000:
- 输出方波频率 = 1MHz / 1000 = 1kHz
- 高电平持续 500 个时钟 = 500μs
- 低电平持续 500 个时钟 = 500μs
4. 自动重装方式对比
graph TD
A["82C54A<br/>6 种工作方式"] --> B["方式 0<br/>计数结束中断<br/>❌ 不自动重装"]
A --> C["方式 1<br/>单稳态<br/>❌ 不自动重装"]
A --> D["方式 2<br/>速率发生器<br/>✅ 自动重装<br/>周期性负脉冲"]
A --> E["方式 3<br/>方波发生器<br/>✅ 自动重装<br/>方波输出"]
A --> F["方式 4<br/>软件触发选通<br/>❌ 不自动重装"]
A --> G["方式 5<br/>硬件触发选通<br/>❌ 不自动重装"]
style D fill:#dfd,stroke:#333,color:#000
style E fill:#f9f,stroke:#333,color:#000
[!tip] 记忆口诀 "方式二三自动装,二三连续不间断;方式三出是方波,二三脉冲不一样。"
5. 真题回顾
[!example] 【真题】82C54A 有 6 种工作方式,其中方式______具有自动重新装载计数初值的功能;______输出的波形是方波。
答案:2 和 3;方式 3