You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
数 据 手 册<br />
采 用 纳 瓦 技 术 、 高 性 能 PWM 和 A/D 的<br />
28/40/44 引 脚 增 强 型 闪 存 单 片 机<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN
请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 :<br />
• Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 。<br />
• Microchip 确 信 : 在 正 常 使 用 的 情 况 下 , Microchip 系 列 产 品 是 当 今 市 场 上 同 类 产 品 中 最 安 全 的 产 品 之 一 。<br />
• 目 前 , 仍 存 在 着 恶 意 、 甚 至 是 非 法 破 坏 代 码 保 护 功 能 的 行 为 。 就 我 们 所 知 , 所 有 这 些 行 为 都 不 是 以 Microchip 数 据 手 册 中 规 定 的 操<br />
作 规 范 来 使 用 Microchip 产 品 的 。 这 样 做 的 人 极 可 能 侵 犯 了 知 识 产 权 。<br />
• Microchip 愿 与 那 些 注 重 代 码 完 整 性 的 客 户 合 作 。<br />
• Microchip 或 任 何 其 他 半 导 体 厂 商 均 无 法 保 证 其 代 码 的 安 全 性 。 代 码 保 护 并 不 意 味 着 我 们 保 证 产 品 是 “ 牢 不 可 破 ” 的 。<br />
代 码 保 护 功 能 处 于 持 续 发 展 中 。 Microchip 承 诺 将 不 断 改 进 产 品 的 代 码 保 护 功 能 。 任 何 试 图 破 坏 Microchip 代 码 保 护 功 能 的 行 为 均 可 视<br />
为 违 反 了 《 数 字 器 件 千 年 版 权 法 案 (Digital Millennium Copyright Act)》。 如 果 这 种 行 为 导 致 他 人 在 未 经 授 权 的 情 况 下 , 能 访 问 您 的 软<br />
件 或 其 他 受 版 权 保 护 的 成 果 , 您 有 权 依 据 该 法 案 提 起 诉 讼 , 从 而 制 止 这 种 行 为 。<br />
提 供 本 文 档 的 中 文 版 本 仅 为 了 便 于 理 解 。Microchip<br />
Technology Inc. 及 其 分 公 司 和 相 关 公 司 、 各 级 主 管 与 员 工 及<br />
事 务 代 理 机 构 对 译 文 中 可 能 存 在 的 任 何 差 错 不 承 担 任 何 责 任 。<br />
建 议 参 考 Microchip Technology Inc. 的 英 文 原 版 文 档 。<br />
本 出 版 物 中 所 述 的 器 件 应 用 信 息 及 其 他 类 似 内 容 仅 为 您 提 供 便<br />
利 , 它 们 可 能 由 更 新 之 信 息 所 替 代 。 确 保 应 用 符 合 技 术 规 范 ,<br />
是 您 自 身 应 负 的 责 任 。Microchip 对 这 些 信 息 不 作 任 何 明 示 或<br />
暗 示 、 书 面 或 口 头 、 法 定 或 其 他 形 式 的 声 明 或 担 保 , 包 括 但 不<br />
限 于 针 对 其 使 用 情 况 、 质 量 、 性 能 、 适 销 性 或 特 定 用 途 的 适 用<br />
性 的 声 明 或 担 保 。 Microchip 对 因 这 些 信 息 及 使 用 这 些 信 息 而<br />
引 起 的 后 果 不 承 担 任 何 责 任 。 未 经 Microchip 书 面 批 准 , 不 得<br />
将 Microchip 的 产 品 用 作 生 命 维 持 系 统 中 的 关 键 组 件 。 在<br />
Microchip 知 识 产 权 保 护 下 , 不 得 暗 中 或 以 其 他 方 式 转 让 任 何<br />
许 可 证 。<br />
商 标<br />
Microchip 的 名 称 和 徽 标 组 合 、 Microchip 徽 标 、 Accuron、<br />
dsPIC、 KEELOQ、 microID、 MPLAB、 PIC、 PICmicro、<br />
PICSTART、 PRO MATE、 PowerSmart、 rfPIC 和<br />
SmartShunt 均 为 Microchip Technology Inc. 在 美 国 和 其 他 国<br />
家 或 地 区 的 注 册 商 标 。<br />
AmpLab、 FilterLab、 Migratable Memory、 MXDEV、<br />
MXLAB、 PICMASTER、 SEEVAL、 SmartSensor 和 The<br />
Embedded Control Solutions Company 均 为 Microchip<br />
Technology Inc. 在 美 国 的 注 册 商 标 。<br />
Analog-for-the-Digital Age、 Application Maestro、<br />
dsPICDEM、 dsPICDEM.net、 dsPICworks、 ECAN、<br />
ECONOMONITOR、 FanSense、 FlexROM、 fuzzyLAB、<br />
In-Circuit Serial Programming、 ICSP、 ICEPIC、 Linear<br />
Active Thermistor、 MPASM、 MPLIB、 MPLINK、 MPSIM、<br />
PICkit、 PICDEM、 PICDEM.net、 PICLAB、 PICtail、<br />
PowerCal、 PowerInfo、 PowerMate、 PowerTool、 rfLAB、<br />
rfPICDEM、 Select Mode、 Smart Serial、 SmartTel、 Total<br />
Endurance 和 WiperLock 均 为 Microchip Technology Inc. 在<br />
美 国 和 其 他 国 家 或 地 区 的 商 标 。<br />
SQTP 是 Microchip Technology Inc. 在 美 国 的 服 务 标 记 。<br />
在 此 提 及 的 所 有 其 他 商 标 均 为 各 持 有 公 司 所 有 。<br />
© 2005, Microchip Technology Inc. 版 权 所 有 。<br />
Microchip 位 于 美 国 亚 利 桑 那 州 Chandler 和 Tempe 及 位 于 加 利 福 尼 亚<br />
州 Mountain View 的 全 球 总 部 、 设 计 中 心 和 晶 圆 生 产 厂 均 于 2003 年 10<br />
月 通 过 了 ISO/TS-16949:2002 质 量 体 系 认 证 。 公 司 在 PICmicro ® 8 位<br />
单 片 机 、 KEELOQ ® 跳 码 器 件 、 串 行 EEPROM、 单 片 机 外 设 、 非 易 失 性<br />
存 储 器 和 模 拟 产 品 方 面 的 质 量 体 系 流 程 均 符 合 ISO/TS-16949:2002。<br />
此 外 , Microchip 在 开 发 系 统 的 设 计 和 生 产 方 面 的 质 量 体 系 也 已 通 过 了<br />
ISO 9001:2000 认 证 。<br />
DS39616B_CN 第 ii 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
采 用 纳 瓦 技 术 、 高 性 能 PWM 和 A/D 的<br />
28/40/44 引 脚 增 强 型 闪 存 单 片 机<br />
14 位 功 率 控 制 PWM 模 块 :<br />
• 多 达 4 个 具 有 互 补 输 出 的 通 道<br />
• 边 沿 或 中 心 对 齐 的 操 作<br />
• 灵 活 的 死 区 发 生 器<br />
• 硬 件 故 障 保 护 输 入<br />
• 占 空 比 和 周 期 同 步 更 新<br />
- 灵 活 的 特 殊 事 件 触 发 器 输 出<br />
运 动 反 馈 模 块 :<br />
• 三 个 独 立 的 输 入 捕 捉 通 道 :<br />
- 灵 活 的 周 期 和 脉 冲 宽 度 测 量 操 作 模 式<br />
- 特 殊 霍 尔 传 感 器 接 口 模 块<br />
- 输 出 到 其 他 模 块 的 特 殊 事 件 触 发 器<br />
• 正 交 编 码 器 接 口 :<br />
- 来 自 编 码 器 的 2 相 输 入 和 一 个 索 引 输 入<br />
- 带 方 向 状 态 和 方 向 变 化 中 断 的 高 低 位 置 追 踪<br />
- 速 率 测 量<br />
高 速 的 200 Ksps 10 位 A/D 转 换 器 :<br />
• 多 达 9 个 通 道<br />
• 两 个 通 道 同 步 采 样<br />
• 连 续 采 样 :1、 2 或 4 个 选 定 通 道<br />
• 自 动 转 换 能 力<br />
• 带 可 选 中 断 频 率 的 4 字 FIFO<br />
• 可 选 的 外 部 转 换 触 发 器<br />
• 可 编 程 的 采 集 时 间<br />
灵 活 的 振 荡 器 结 构 :<br />
• 4 种 晶 振 模 式 , 频 率 高 达 40 MHz<br />
• 两 个 外 部 时 钟 模 式 , 频 率 高 达 40 MHz<br />
• 内 部 振 荡 电 路 :<br />
- 8 个 用 户 可 选 频 率 : 从 31 kHz 到 8MHz<br />
- OSCTUNE 可 以 对 频 率 漂 移 进 行 补 偿<br />
• 辅 助 振 荡 器 使 用 Timer1 (32 kHz 时 )<br />
• 故 障 保 护 时 钟 监 视 器 :<br />
- 如 果 时 钟 发 生 故 障 , 允 许 器 件 安 全 关 断<br />
功 耗 管 理 模 式 :<br />
• 运 行 CPU 打 开 , 外 设 打 开<br />
• 空 闲 CPU 关 闭 , 外 设 打 开<br />
• 休 眠 CPU 关 闭 , 外 设 关 闭<br />
• 通 常 空 闲 模 式 电 流 降 至 5.8 µA<br />
• 通 常 休 眠 模 式 电 流 降 至 0.1 µA<br />
• Timer1 振 荡 器 典 型 参 数 为 1.8 µA、 32 kHz、 2V<br />
• 看 门 狗 定 时 器 (WDT), 典 型 值 为 2.1 µA<br />
• 双 速 振 荡 器 起 振<br />
外 设 特 点 :<br />
• 灌 电 流 / 拉 电 流 峰 值 25 mA/25 mA<br />
• 三 个 外 部 中 断<br />
• 两 个 捕 捉 / 比 较 /PWM (CCP) 模 块 :<br />
- 捕 捉 为 16 位 , 最 大 分 辨 率 为 6.25 ns (TCY/16)<br />
- 比 较 为 16 位 , 最 大 分 辨 率 为 100 ns (TCY)<br />
- PWM 输 出 :PWM 分 辨 率 为 1 到 10 位<br />
• 增 强 型 USART 模 块 :<br />
- 支 持 RS-485、 RS-232 和 LIN 1.2<br />
- 启 动 位 自 动 唤 醒<br />
- 自 动 波 特 率 检 测<br />
• 使 用 内 部 振 荡 电 路 的 RS-232 工 作 模 式<br />
( 无 需 外 部 晶 振 )<br />
特 殊 单 片 机 特 性 :<br />
• 可 进 行 100,000 次 擦 写 操 作 的 增 强 型 闪 存 程 序 存<br />
储 器 ( 典 型 值 )<br />
• 可 进 行 1,000,000 次 擦 写 操 作 的 数 据 EEPROM<br />
存 储 器 ( 典 型 值 )<br />
• 闪 存 / 数 据 EEPROM 保 存 时 间 :100 年<br />
• 可 在 软 件 控 制 下 自 行 编 程<br />
• 中 断 有 优 先 级<br />
• 8 X 8 单 周 期 硬 件 乘 法 器<br />
• 扩 展 的 看 门 狗 定 时 器 (WDT):<br />
- 具 有 41 ms 到 131s 的 可 编 程 周 期<br />
• 通 过 两 个 引 脚 进 行 单 电 源 供 电 在 线 串 行 编 程 (In-<br />
Circuit Serial Programming, ICSP)<br />
• 通 过 两 个 引 脚 在 线 调 试 (In-Circuit Debug,<br />
ICD)<br />
- 调 试 时 安 全 驱 动 PWM 输 出<br />
器 件<br />
闪 存<br />
( 字 节 )<br />
程 序 存 储 器<br />
单 字<br />
指 令 数<br />
SRAM<br />
( 字 节 )<br />
数 据 存 储 器<br />
EEPROM<br />
( 字 节 )<br />
I/O<br />
10 位<br />
A/D CCP<br />
( 通 道 )<br />
SPI<br />
SSP<br />
从 动<br />
I 2 C<br />
EUSART<br />
正 交<br />
编 码 器<br />
14 位<br />
PWM<br />
( 通 道 )<br />
<strong>PIC18F2331</strong> 8192 4096 768 256 24 5 2 Y Y Y Y 6 1/3<br />
PIC18F<strong>2431</strong> 16384 8192 768 256 24 5 2 Y Y Y Y 6 1/3<br />
PIC18F<strong>4331</strong> 8192 4096 768 256 36 9 2 Y Y Y Y 8 1/3<br />
PIC18F<strong>4431</strong> 16384 8192 768 256 36 9 2 Y Y Y Y 8 1/3<br />
定 时 器<br />
8/16 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 1 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
引 脚 图<br />
28 引 脚 SDIP 和 SOIC<br />
MCLR/VPP/RE3<br />
• 1<br />
28<br />
RB7/KBI3/PGD<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RA4/AN4/CAP3/QEB<br />
AVDD<br />
AVSS<br />
OSC1/CLKI/RA7<br />
OSC2/CLKO/RA6<br />
RC0/T1OSO/T1CKI<br />
RC1/T1OSI/CCP2/FLTA<br />
RC2/CCP1/FLTB<br />
RC3/T0CKI/T5CKI/INT0<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
<strong>PIC18F2331</strong>/<strong>2431</strong><br />
27<br />
26<br />
25<br />
24<br />
23<br />
22<br />
21<br />
20<br />
19<br />
18<br />
17<br />
16<br />
15<br />
RB6/KBI2/PGC<br />
RB5/KBI1/PWM4/PGM (1)<br />
RB4/KBI0/PWM5<br />
RB3/PWM3<br />
RB2/PWM2<br />
RB1/PWM1<br />
RB0/PWM0<br />
VDD<br />
VSS<br />
RC7/RX/DT/SDO<br />
RC6/TX/CK/SS<br />
RC5/INT2/SCK/SCL<br />
RC4/INT1/SDI/SDA<br />
注 1: 必 须 使 能 低 电 压 编 程 。<br />
40 引 脚 PDIP<br />
MCLR/VPP/RE3<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RA4/AN4/CAP3/QEB<br />
RA5/AN5/LVDIN<br />
RE0/AN6<br />
RE1/AN7<br />
RE2/AN8<br />
AVDD<br />
AVSS<br />
OSC1/CLKI/RA7<br />
OSC2/CLKO/RA6<br />
RC0/T1OSO/T1CKI<br />
RC1/T1OSI/CCP2/FLTA<br />
RC2/CCP1/FLTB<br />
RC3/T0CKI (1) /T5CKI (1) /INT0<br />
RD0/T0CKI/T5CKI<br />
RD1/SDO<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
PIC18F<strong>4331</strong>/<strong>4431</strong><br />
40<br />
39<br />
38<br />
37<br />
36<br />
35<br />
34<br />
33<br />
32<br />
31<br />
30<br />
29<br />
28<br />
27<br />
26<br />
25<br />
24<br />
23<br />
22<br />
21<br />
RB7/KBI3/PGD<br />
RB6/KBI2/PGC<br />
RB5/KBI1/PWM4/PGM (2)<br />
RB4/KBI0/PWM5<br />
RB3/PWM3<br />
RB2/PWM2<br />
RB1/PWM1<br />
RB0/PWM0<br />
VDD<br />
VSS<br />
RD7/PWM7<br />
RD6/PWM6<br />
RD5/PWM4 (4)<br />
RD4/FLTA (3)<br />
RC7/RX/DT/SDO (1)<br />
RC6/TX/CK/SS<br />
RC5/INT2/SCK (1) /SCL (1)<br />
RC4/INT1/SDI (1) /SDA (1)<br />
RD3/SCK/SCL<br />
RD2/SDI/SDA<br />
注 1: RC3 与 T0CKI/T5CKI 复 用 一 个 引 脚 ; RC4 与 SDI/SDA 复 用 一 个 引 脚 ; RC5 与 SCK/SCL 复 用 一 个 引 脚 。<br />
2: 必 须 使 能 低 电 压 编 程 。<br />
3: RD4 与 FLTA 复 用 一 个 引 脚 。<br />
4: RD5 与 PWM4 复 用 一 个 引 脚 。<br />
DS39616B_CN 第 2 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
引 脚 图 ( 续 )<br />
44 引 脚 TQFP<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
44<br />
43<br />
42<br />
41<br />
40<br />
39<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
38<br />
37<br />
36<br />
35<br />
34<br />
PIC18F<strong>4331</strong><br />
PIC18F<strong>4431</strong><br />
18<br />
19<br />
20<br />
21<br />
22<br />
33<br />
32<br />
31<br />
30<br />
29<br />
28<br />
27<br />
26<br />
25<br />
24<br />
23<br />
NC<br />
NC<br />
RB4/KBI0/PWM5<br />
RB5/KBI1/PWM4/PGM (2)<br />
RB6/KBI2/PGC<br />
RB7/KBI3/PGD<br />
MCLR/VPP/RE3<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RC6/TX/CK/SS<br />
RC5/INT2/SCK (1) /SCL (1)<br />
RC4/INT1/SDI (1) /SDA (1)<br />
RD3/SCK/SCL<br />
RD2/SDI/SDA<br />
RD1/SDO<br />
RD0/T0CKI/T5CKI<br />
RC3/T0CKI (1) /T5CKI (1) /INT0<br />
RC2/CCP1/FLTB<br />
RC1/T1OSI/CCP2/FLTA<br />
NC<br />
RC7/RX/DT/SDO (1)<br />
RD4/FLTA (3)<br />
RD5/PWM4 (4)<br />
RD6/PWM6<br />
RD7/PWM7<br />
VSS<br />
VDD<br />
RB0/PWM0<br />
RB1/PWM1<br />
RB2/PWM2<br />
RB3/PWM3<br />
NC<br />
RC0/T1OSO/T1CKI<br />
OSC2/CLKO/RA6<br />
OSC1/CLKI/RA7<br />
AVSS<br />
AVDD<br />
RE2/AN8<br />
RE1/AN7<br />
RE0/AN6<br />
RA5/AN5/LVDIN<br />
RA4/AN4/CAP3/QEB<br />
注 1: RC3 与 T0CKI/T5CKI 复 用 一 个 引 脚 ; RC4 与 SDI/SDA 复 用 一 个 引 脚 ; RC5 与 SCK/SCL 复 用 一 个 引 脚 。<br />
2: 必 须 使 能 低 电 压 编 程 。<br />
3: RD4 与 FLTA 复 用 一 个 引 脚 。<br />
4: RD5 与 PWM4 复 用 一 个 引 脚 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 3 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
引 脚 图 ( 续 )<br />
44 引 脚 QFN<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
44<br />
43<br />
42<br />
41<br />
40<br />
39<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
38<br />
37<br />
36<br />
35<br />
34<br />
PIC18F<strong>4331</strong><br />
PIC18F<strong>4431</strong><br />
18<br />
19<br />
20<br />
21<br />
22<br />
33<br />
32<br />
31<br />
30<br />
29<br />
28<br />
27<br />
26<br />
25<br />
24<br />
23<br />
RB3/PWM3<br />
NC<br />
RB4/KBI0/PWM5<br />
RB5/KBI1/PWM4/PGM (2)<br />
RB6/KBI2/PGC<br />
RB7/KBI3/PGD<br />
MCLR/VPP/RE3<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RC6/TX/CK/SS<br />
RC5/INT2/SCK (1) /SCL (1)<br />
RC4/INT1/SDI (1) /SDA (1)<br />
RD3/SCK/SCL<br />
RD2/SDI/SDA<br />
RD1/SDO<br />
RD0/T0CKI/T5CKI<br />
RC3/T0CKI (1) /T5CKI (1) /INT0<br />
RC2/CCP1/FLTB<br />
RC1/T1OSI/CCP2/FLTA<br />
RC0/T1OSO/T1CKI<br />
RC7/RX/DT/SDO (1)<br />
RD4/FLTA (3)<br />
RD5/PWM4 (4)<br />
RD6/PWM6<br />
RD7/PWM7<br />
VSS<br />
VDD<br />
AVDD<br />
RB0/PWM0<br />
RB1/PWM1<br />
RB2/PWM2<br />
OSC2/CLKO/RA6<br />
OSC1/CLKI/RA7<br />
VSS<br />
AVSS<br />
AVDD<br />
VDD<br />
RE2/AN8<br />
RE1/AN7<br />
RE0/AN6<br />
RA5/AN5/LVDIN<br />
RA4/AN4/CAP3/QEB<br />
注 1: RC3 与 T0CKI/T5CKI 复 用 一 个 引 脚 ; RC4 与 SDI/SDA 复 用 一 个 引 脚 ; RC5 与 SCK/SCL 复 用 一 个 引 脚 。<br />
2: 必 须 使 能 低 电 压 编 程 。<br />
3: RD4 与 FLTA 复 用 一 个 引 脚 。<br />
4: RD5 与 PWM4 复 用 一 个 引 脚 。<br />
DS39616B_CN 第 4 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
目 录<br />
1.0 器 件 综 述 ....................................................................................................................................................................................... 7<br />
2.0 振 荡 器 配 置 ................................................................................................................................................................................. 21<br />
3.0 功 耗 管 理 模 式 .............................................................................................................................................................................. 31<br />
4.0 复 位 ............................................................................................................................................................................................ 45<br />
5.0 存 储 器 构 成 ................................................................................................................................................................................. 57<br />
6.0 闪 存 程 序 存 储 器 .......................................................................................................................................................................... 75<br />
7.0 数 据 EEPROM 存 储 器 ................................................................................................................................................................ 85<br />
8.0 8 × 8 硬 件 乘 法 器 ....................................................................................................................................................................... 89<br />
9.0 中 断 ............................................................................................................................................................................................ 91<br />
10.0 I/O 端 口 .................................................................................................................................................................................... 107<br />
11.0 Timer0 模 块 .............................................................................................................................................................................. 133<br />
12.0 Timer1 模 块 .............................................................................................................................................................................. 137<br />
13.0 Timer2 模 块 .............................................................................................................................................................................. 143<br />
14.0 Timer5 模 块 .............................................................................................................................................................................. 145<br />
15.0 捕 捉 / 比 较 /PWM (CCP) 模 块 ............................................................................................................................................... 151<br />
16.0 运 动 反 馈 模 块 ............................................................................................................................................................................ 159<br />
17.0 功 率 控 制 PWM 模 块 ................................................................................................................................................................. 181<br />
18.0 同 步 串 行 端 口 (SSP) 模 块 ..................................................................................................................................................... 211<br />
19.0 增 强 型 通 用 同 步 / 异 步 收 发 器 ................................................................................................................................................... 221<br />
20.0 10 位 高 速 模 数 转 换 器 (A/D) 模 块 .......................................................................................................................................... 243<br />
21.0 低 压 检 测 ................................................................................................................................................................................... 261<br />
22.0 CPU 的 特 殊 功 能 ....................................................................................................................................................................... 267<br />
23.0 指 令 集 综 述 ............................................................................................................................................................................... 287<br />
24.0 开 发 支 持 ................................................................................................................................................................................... 331<br />
25.0 电 气 特 性 ................................................................................................................................................................................... 337<br />
26.0 直 流 和 交 流 特 性 图 表 初 稿 .......................................................................................................................................................... 371<br />
27.0 封 装 信 息 ................................................................................................................................................................................... 373<br />
附 录 A: 版 本 历 史 ........................................................................................................................................................................ 379<br />
附 录 B: 器 件 比 较 ........................................................................................................................................................................ 379<br />
附 录 C: 转 换 注 意 事 项 ................................................................................................................................................................. 380<br />
附 录 D: 从 低 档 器 件 移 植 到 增 强 型 器 件 ........................................................................................................................................ 380<br />
附 录 E: 从 中 档 器 件 移 植 到 增 强 型 器 件 ........................................................................................................................................ 381<br />
附 录 F: 从 高 档 器 件 移 植 到 增 强 型 器 件 ........................................................................................................................................ 381<br />
索 引 .................................................................................................................................................................................................... 383<br />
Microchip 网 站 .................................................................................................................................................................................... 391<br />
变 更 通 知 客 户 服 务 .............................................................................................................................................................................. 391<br />
客 户 支 持 ............................................................................................................................................................................................. 391<br />
读 者 反 馈 表 ......................................................................................................................................................................................... 392<br />
产 品 标 识 体 系 .................................................................................................................................................................................... 393<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 5 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
致 客 户<br />
我 们 旨 在 提 供 最 佳 文 档 供 客 户 正 确 使 用 Microchip 产 品 。 为 此 , 我 们 将 不 断 改 进 出 版 物 的 内 容 和 质 量 , 使 之 更 好 地 满 足 您 的 要 求 。<br />
出 版 物 的 质 量 将 随 新 文 档 及 更 新 版 本 的 推 出 而 得 到 提 升 。<br />
如 果 您 对 本 出 版 物 有 任 何 问 题 和 建 议 , 请 通 过 电 子 邮 件 联 系 我 公 司 TRC 经 理 , 电 子 邮 件 地 址 为 CTRC@microchip.com, 或 将 本<br />
数 据 手 册 后 附 的 《 读 者 反 馈 表 》 传 真 到 86-21-5407 5066。 我 们 期 待 您 的 反 馈 。<br />
最 新 数 据 手 册<br />
欲 获 得 本 数 据 手 册 的 最 新 版 本 , 请 查 询 我 公 司 的 网 站 :<br />
http://www.microchip.com<br />
查 看 数 据 手 册 中 任 意 一 页 下 边 角 处 的 文 献 编 号 即 可 确 定 其 版 本 。 文 献 编 号 中 数 字 串 后 的 字 母 是 版 本 号 , 例 如 :DS30000A 是 DS30000<br />
的 A 版 本 。<br />
勘 误 表<br />
现 有 器 件 可 能 带 有 一 份 勘 误 表 , 描 述 了 实 际 运 行 与 数 据 手 册 中 记 载 内 容 之 间 存 在 的 细 微 差 异 以 及 建 议 的 变 通 方 法 。 一 旦 我 们 了 解 到<br />
器 件 / 文 档 存 在 某 些 差 异 时 , 就 会 发 布 勘 误 表 。 勘 误 表 上 将 注 明 其 所 适 用 的 硅 片 版 本 和 文 件 版 本 。<br />
欲 了 解 某 一 器 件 是 否 存 在 勘 误 表 , 请 通 过 以 下 方 式 之 一 查 询 :<br />
• Microchip 网 站 http://www.microchip.com<br />
• 当 地 Microchip 销 售 办 事 处 ( 见 最 后 一 页 )<br />
在 联 络 销 售 办 事 处 时 , 请 说 明 您 所 使 用 的 器 件 型 号 、 硅 片 版 本 和 数 据 手 册 版 本 ( 包 括 文 献 编 号 )。<br />
客 户 通 知 系 统<br />
欲 及 时 获 知 Microchip 产 品 的 最 新 信 息 , 请 到 我 公 司 网 站 www.microchip.com 上 注 册 。<br />
DS39616B_CN 第 6 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
1.0 器 件 综 述<br />
本 文 档 涉 及 以 下 器 件 的 具 体 信 息 :<br />
• <strong>PIC18F2331</strong> • PIC18F<strong>4331</strong><br />
• PIC18F<strong>2431</strong> • PIC18F<strong>4431</strong><br />
该 系 列 具 备 所 有 PIC18 单 片 机 固 有 的 优 点 , 即 以 实 惠 的<br />
价 格 提 供 出 色 计 算 性 能 , 以 及 高 耐 久 性 的 增 强 型 闪 存 程<br />
序 存 储 器 和 高 速 10 位 A/D 转 换 器 。 除 了 这 些 优 点 之 外 ,<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 系 列 还 增 强 了 器 件 设 计 ,<br />
使 得 该 系 列 单 片 机 成 为 许 多 高 性 能 、 功 率 控 制 和 电 机 控<br />
制 应 用 的 明 智 选 择 。 这 些 特 别 的 外 设 包 括 :<br />
• 插 入 可 编 程 死 区 时 间 的 14 位 分 辨 率 功 率 控 制<br />
PWM 模 块 (Power Control PWM Module,<br />
PCPWM)<br />
• 运 动 反 馈 模 块 (Motion Feedback Module,<br />
MFM) 包 含 一 个 3 通 道 输 入 捕 捉 (Input<br />
Capture, IC) 模 块 和 正 交 编 码 器 接 口<br />
(Quadrature Encoder Interface, QEI)<br />
• 高 速 10 位 A/D 转 换 器 (HSADC)<br />
PCPWM 能 够 产 生 至 多 8 个 插 入 死 区 时 间 的 互 补 PWM<br />
输 出 。 过 驱 动 电 流 由 片 外 模 拟 比 较 器 或 数 字 故 障 输 入 引<br />
脚 (FLTA 和 FLTB) 检 测 。<br />
MFM 正 交 编 码 器 接 口 提 供 精 确 的 转 子 位 置 反 馈 和 / 或<br />
速 度 测 量 。 可 以 使 用 MFM 的 3 个 输 入 捕 捉 或 外 部 中 断<br />
检 测 使 用 霍 尔 传 感 器 反 馈 的 电 子 换 相 电 机 应 用 ( 例 如 ,<br />
BLDC 电 机 驱 动 ) 的 转 子 状 态 。<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 还 有 闪 存 程 序 存 储<br />
器 和 一 个 内 建 了 LP 振 荡 模 式 的 内 部 RC 振 荡 器 。<br />
1.1 新 的 内 核 功 能<br />
1.1.1 纳 瓦 (nanoWatt) 技 术<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 系 列 的 所 有 器 件 具 有 一<br />
系 列 能 在 运 作 时 显 著 降 低 功 耗 的 功 能 。 关 键 的 几 项 包<br />
括 :<br />
• 备 用 运 行 模 式 : 通 过 将 Timer1 或 内 部 振 荡 电 路<br />
作 为 单 片 机 时 钟 源 , 可 使 代 码 执 行 时 的 功 耗 降 低<br />
大 约 90%。<br />
• 多 种 空 闲 模 式 : 单 片 机 还 可 在 其 CPU 内 核 禁 止<br />
的 情 况 下 运 行 , 而 外 设 仍 能 继 续 工 作 。 处 于 这 种<br />
状 态 时 , 功 耗 能 降 得 更 低 , 甚 至 降 低 到 只 有 正 常<br />
工 作 需 求 的 4%。<br />
• 动 态 模 式 切 换 : 运 用 代 码 可 在 器 件 工 作 时 调 用 功<br />
耗 管 理 模 式 , 以 便 用 户 将 节 约 能 耗 的 理 念 融 入 到<br />
他 们 的 应 用 软 件 设 计 中 。<br />
• 关 键 模 块 的 功 耗 更 低 :Timer1 和 看 门 狗 定 时 器 模<br />
块 的 功 耗 需 求 降 低 多 达 80%, 两 者 的 典 型 值 分 别<br />
为 1.1µA 和 2.1 µA。<br />
1.1.2 多 个 振 荡 器 选 项 和 功 能<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 系 列 的 所 有 器 件 均 可 提<br />
供 9 个 不 同 的 振 荡 器 选 项 , 这 样 用 户 在 开 发 应 用 硬 件 时<br />
就 有 很 大 的 选 择 范 围 。 包 括 :<br />
• 四 个 晶 振 模 式 , 使 用 晶 振 或 陶 瓷 谐 振 器 。<br />
• 两 个 外 部 时 钟 模 式 , 可 选 择 使 用 两 个 引 脚 ( 振 荡<br />
器 输 入 引 脚 和 四 分 频 时 钟 输 出 引 脚 ) 或 一 个 引 脚<br />
( 振 荡 器 输 入 引 脚 , 四 分 频 时 钟 输 出 引 脚 重 新 分<br />
配 为 通 用 I/O 引 脚 )。<br />
• 两 个 外 部 RC 振 荡 器 模 式 , 与 外 部 时 钟 模 式 选 用<br />
相 同 的 引 脚 。<br />
• 一 个 内 部 振 荡 电 路 , 提 供 一 个 8MHz 的 时 钟 源 和<br />
一 个 INTRC 时 钟 源 ( 大 约 31 kHz, 温 度 和 VDD<br />
变 化 时 频 率 保 持 稳 定 ), 并 有 6 个 时 钟 频 率 可 供<br />
用 户 选 择 ( 从 125 kHz 到 4MHz), 总 共 8 种 时<br />
钟 频 率 。<br />
除 了 可 将 内 部 振 荡 电 路 用 作 时 钟 源 , 它 还 提 供 了 一 个 稳<br />
定 的 参 考 源 , 为 使 该 系 列 器 件 稳 健 地 工 作 , 增 加 了 以 下<br />
功 能 :<br />
• 故 障 保 护 时 钟 监 视 : 该 选 项 持 续 监 测 主 时 钟 源 ,<br />
将 其 与 内 部 振 荡 电 路 提 供 的 参 考 信 号 作 比 较 。 如<br />
果 发 生 了 时 钟 故 障 , 控 制 器 切 换 到 内 部 振 荡 电<br />
路 , 允 许 继 续 低 速 工 作 或 安 全 地 关 闭 应 用 。<br />
• 双 速 起 振 : 该 选 项 允 许 内 部 振 荡 器 在 上 电 复 位 时<br />
或 从 休 眠 模 式 唤 醒 时 用 作 时 钟 源 , 直 到 主 时 钟 源<br />
可 用 时 为 止 。 这 样 使 得 代 码 可 在 本 来 的 时 钟 起 振<br />
间 隔 期 间 执 行 , 甚 至 允 许 一 个 应 用 在 不 返 回 全 功<br />
率 工 作 模 式 的 情 况 下 , 执 行 常 规 的 后 台 工 作 并 返<br />
回 休 眠 模 式 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 7 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
1.2 其 他 特 别 功 能<br />
• 存 储 器 耐 久 性 : 程 序 存 储 器 和 数 据 EEPROM 的<br />
增 强 型 闪 存 单 元 经 评 测 , 可 以 耐 受 数 万 次 擦 写 ,<br />
程 序 存 储 器 高 达 100,000 次 , EEPROM 高 达<br />
1,000,000 次 。 不 刷 新 的 情 况 下 , 保 守 地 估 计 数<br />
据 保 存 时 间 超 过 100 年 。<br />
• 自 编 程 能 力 : 这 些 器 件 能 在 内 部 软 件 控 制 下 写 入<br />
各 自 的 程 序 存 储 空 间 。 通 过 使 用 受 保 护 的 引 导 块<br />
( 位 于 程 序 存 储 器 的 顶 端 ) 中 的 引 导 加 载 程 序 ,<br />
可 创 建 能 在 现 场 进 行 自 我 更 新 的 应 用 。<br />
• 功 率 控 制 PWM 模 块 : 在 PWM 模 式 下 , 该 模 式<br />
提 供 1、 2 或 4 个 调 制 输 出 端 来 控 制 半 桥 和 全 桥<br />
驱 动 器 。 其 他 功 能 包 括 检 测 到 故 障 时 自 动 关 闭 ,<br />
一 旦 条 件 清 除 后 , 自 动 重 新 启 动 以 重 新 激 活 输 出<br />
端 。<br />
• 增 强 型 USART: 该 串 行 通 讯 模 块 可 以 通 过 使 用<br />
内 部 振 荡 电 路 完 成 标 准 RS-232 操 作 , 在 与 外 部<br />
世 界 通 讯 中 不 需 要 外 部 晶 振 ( 也 就 消 除 了 随 之 所<br />
需 的 功 耗 )。 该 模 块 还 包 括 自 动 波 特 率 检 测 和 LIN<br />
功 能 。<br />
• 高 速 10 位 A/D 转 换 器 : 该 模 块 加 入 了 可 编 程 采<br />
集 时 间 , 允 许 在 选 择 一 个 通 道 、 启 动 一 个 转 换 前<br />
不 需 要 等 待 一 个 采 样 周 期 , 从 而 减 少 了 代 码 开<br />
销 。<br />
• 运 动 反 馈 模 块 (MFM): 该 模 块 的 特 点 是 拥 有 正<br />
交 编 码 器 接 口 (QEI) 和 输 入 捕 捉 (IC) 模 块 。<br />
QEI 接 收 来 自 增 量 编 码 器 的 两 个 相 位 输 入<br />
(QEA, QEB) 和 一 个 索 引 输 入 (INDX)。 QEI<br />
支 持 高 低 精 确 位 置 记 录 , 方 向 状 态 和 方 向 改 变 中<br />
断 以 及 速 度 测 量 。 该 输 入 捕 捉 模 块 的 特 点 是 拥 有<br />
3 个 独 立 的 以 Timer5 为 时 基 的 输 入 捕 捉 通 道 、 一<br />
个 连 接 其 他 模 块 的 特 殊 事 件 触 发 器 和 每 一 个 IC 输<br />
入 通 道 都 有 可 调 节 噪 声 滤 波 器 。<br />
• 扩 展 型 看 门 狗 定 时 器 (WDT): 该 增 强 型 版 本 加<br />
入 了 一 个 16 位 预 分 频 器 , 允 许 超 时 范 围 从 4ms<br />
到 2 分 钟 以 上 , 在 工 作 电 压 和 温 度 变 化 时 保 持 稳<br />
定 。<br />
DS39616B_CN 第 8 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
1.3 系 列 中 各 产 品 的 具 体 情 况<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 系 列 中 的 器 件 有 28 引 脚<br />
(PIC18F2X31) 封 装 和 40 / 44 引 脚 (PIC18F4X31)<br />
封 装 。 这 两 种 封 装 的 框 图 如 图 1-1 所 示 。<br />
各 器 件 在 三 个 方 面 存 在 差 异 :<br />
1. 闪 存 程 序 存 储 器 (PIC18F2X31 器 件 为 8KB,<br />
PIC18F4X31 器 件 为 16 KB)。<br />
2. A/D 通 道 数 (PIC18F2X31 器 件 有 5 个 ,<br />
PIC18F4X31 器 件 有 9 个 )。<br />
3. I/O 端 口 (PIC18F2X31 器 件 有 3 个 双 向 端 口 ,<br />
PIC18F4X31 器 件 有 5 个 双 向 端 口 )。<br />
该 系 列 器 件 的 其 他 特 性 都 是 相 同 的 。 这 些 特 性 汇 总 在<br />
表 1-1 中 。<br />
表 1-2 和 表 1-3 列 出 了 所 有 器 件 的 引 脚 功 能 。<br />
表 1-1:<br />
器 件 特 性<br />
特 性 <strong>PIC18F2331</strong> PIC18F<strong>2431</strong> PIC18F<strong>4331</strong> PIC18F<strong>4431</strong><br />
工 作 频 率 DC – 40 MHz DC – 40 MHz DC – 40 MHz DC – 40 MHz<br />
程 序 存 储 器 ( 字 节 ) 8192 16384 8192 16384<br />
程 序 存 储 器 ( 指 令 ) 4096 8192 4096 8192<br />
数 据 存 储 器 ( 字 节 ) 768 768 768 768<br />
数 据 EEPROM 存 储 器 ( 字 节 ) 256 256 256 256<br />
中 断 源 22 22 34 34<br />
I/O 端 口 端 口 A, B, C 端 口 A, B, C 端 口 A, B, C, D, E 端 口 A, B, C, D, E<br />
定 时 器 4 4 4 4<br />
捕 捉 / 比 较 / PWM 模 块 2 2 2 2<br />
14 位 功 率 控 制 PWM (6 通 道 ) (6 通 道 ) (8 通 道 ) (8 通 道 )<br />
运 动 反 馈 模 块<br />
( 输 入 捕 捉 / 正 交 编 码 器 接 口 )<br />
串 行 通 讯<br />
1 个 QEI<br />
或<br />
3 个 IC<br />
SSP,<br />
增 强 型 USART<br />
1 个 QEI<br />
或<br />
3 个 IC<br />
SSP,<br />
增 强 型 USART<br />
1 个 QEI<br />
或<br />
3 个 IC<br />
SSP,<br />
增 强 型 USART<br />
1 个 QEI<br />
或<br />
3 个 IC<br />
SSP,<br />
增 强 型 USART<br />
10 位 高 速 模 数 转 换 器 模 块 5 个 输 入 通 道 5 个 输 入 通 道 9 个 输 入 通 道 9 个 输 入 通 道<br />
复 位 ( 和 延 迟 )<br />
POR、 BOR,<br />
RESET 指 令 ,<br />
堆 栈 满 、<br />
堆 栈 下 溢<br />
POR、 BOR,<br />
RESET 指 令 ,<br />
堆 栈 满 、<br />
堆 栈 下 溢<br />
POR、 BOR,<br />
RESET 指 令 ,<br />
堆 栈 满 、<br />
堆 栈 下 溢<br />
(PWRT,OST),<br />
MCLR ( 任 选 ),<br />
WDT<br />
(PWRT,OST),<br />
MCLR ( 任 选 ),<br />
WDT<br />
(PWRT,OST),<br />
MCLR ( 任 选 ),<br />
WDT<br />
POR、 BOR,<br />
RESET 指 令 ,<br />
堆 栈 满 、<br />
堆 栈 下 溢<br />
(PWRT,OST),<br />
MCLR ( 任 选 ),<br />
WDT<br />
可 编 程 低 压 检 测 有 有 有 有<br />
可 编 程 欠 压 复 位 有 有 有 有<br />
指 令 集 75 条 指 令 75 条 指 令 75 条 指 令 75 条 指 令<br />
封 装<br />
40 引 脚 DIP 40 引 脚 DIP<br />
28 引 脚 SDIP 28 引 脚 SDIP<br />
44 引 脚 TQFP 44 引 脚 TQFP<br />
28 引 脚 SOIC 28 引 脚 SOIC<br />
44 引 脚 QFN 44 引 脚 QFN<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 9 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 1-1:<br />
<strong>PIC18F2331</strong>/<strong>2431</strong> 框 图<br />
数 据 总 线 <br />
PORTA<br />
21<br />
地 址 锁 存 器<br />
21<br />
21<br />
表 指 针 <br />
8<br />
递 增 / 递 减 逻 辑 电 路<br />
20 PCLATU PCLATH<br />
8<br />
数 据 锁 存 器<br />
数 据 RAM<br />
(768 字 节 )<br />
地 址 锁 存 器<br />
12<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RA4/AN4/CAP3/QEB<br />
OSC2/CLKO/RA6<br />
OSC1/CLKI/RA7<br />
程 序 存 储 器<br />
数 据 锁 存 器<br />
16<br />
表 锁 存 器<br />
PCU PCH PCL<br />
程 序 计 数 器<br />
31 级 堆 栈<br />
BSR<br />
译 码<br />
地 址 <br />
4 12 4<br />
FSR0<br />
FSR1<br />
FSR2<br />
inc/dec<br />
逻 辑<br />
Bank0,F<br />
12<br />
PORTB<br />
RB0/PWM0<br />
RB1/PWM1<br />
RB2/PWM2<br />
RB3/PWM3<br />
RB4/KBI0/PWM5<br />
RB5/KBI1/PWM4/PGM<br />
RB6/KBI2/PGC<br />
RB7/KBI3/PGD<br />
8<br />
指 令<br />
译 码 和<br />
控 制<br />
ROM 锁 存 器<br />
IR<br />
8<br />
PRODH PRODL<br />
PORTC<br />
RC0/T1OSO/T1CKI<br />
RC1/T1OSI/CCP2/FLTA<br />
RC2/CCP1/FLTB<br />
RC3/T0CKI/T5CKI/INT0<br />
RC4/INT1/SDI/SDA<br />
RC5/INT2/SCK/SCL<br />
RC6/TX/CK/SS<br />
RC7/RX/DT/SDO<br />
OSC2/CLKO<br />
OSC1/CLKI<br />
T1OSI<br />
T1OSO<br />
MCLR/VPP<br />
时 序<br />
发 生<br />
4X PLL<br />
高 精 度<br />
带 隙 滤 波 器<br />
参 考<br />
上 电 延 时<br />
定 时 器<br />
振 荡 器<br />
起 振 定 时 器<br />
上 电<br />
复 位<br />
看 门 狗<br />
定 时 器<br />
欠 压<br />
复 位<br />
功 耗<br />
管 理<br />
模 式 逻 辑<br />
3<br />
BITOP<br />
8<br />
8 × 8 乘 法 器<br />
W<br />
8<br />
8<br />
ALU<br />
8<br />
8<br />
8<br />
PORTE<br />
VDD, VSS<br />
INTRC<br />
振 荡 器<br />
MCLR/VPP/RE3 (1,2)<br />
Timer0 Timer1 Timer2<br />
Timer5<br />
HS 10 位<br />
ADC<br />
AVDD,AVSS<br />
数 据 EE<br />
CCP1<br />
CCP2<br />
同 步<br />
串 行 端 口<br />
EUSART<br />
PCPWM<br />
MFM<br />
注 1: 仅 当 MCLRE 熔 丝 设 置 为 0 时 , RE3 输 入 引 脚 才 使 能 。<br />
2: 仅 当 MCLR 禁 止 时 , RE3 可 用 。<br />
DS39616B_CN 第 10 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 1-2:<br />
PIC18F<strong>4331</strong>/<strong>4431</strong> 框 图<br />
数 据 总 线 <br />
21<br />
地 址 锁 存 器<br />
21<br />
21<br />
表 指 针 <br />
8<br />
递 增 / 递 减 逻 辑 电 路<br />
20 PCLATU PCLATH<br />
8<br />
数 据 锁 存 器<br />
数 据 RAM<br />
(768 字 节 )<br />
地 址 锁 存 器<br />
12<br />
PORTA<br />
RA0/AN0<br />
RA1/AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RA4/AN4/CAP3/QEB<br />
RA5/AN5/LVDIN<br />
OSC2/CLKO/RA6<br />
OSC1/CLKI/RA7<br />
程 序 存 储 器<br />
数 据 锁 存 器<br />
16<br />
表 锁 存 器<br />
PCU PCH<br />
程 序 计 数 器<br />
31 级 堆 栈<br />
PCL<br />
译 码<br />
BSR<br />
地 址 <br />
4 12 4<br />
FSR0<br />
FSR1<br />
FSR2<br />
inc/dec<br />
逻 辑<br />
Bank0,F<br />
12<br />
PORTB<br />
RB0/PWM0<br />
RB1/PWM1<br />
RB2/PWM2<br />
RB3/PWM3<br />
RB4/KBI0/PWM5<br />
RB5/KBI1/PWM4/PGM (4)<br />
RB6/KBI2/PGC<br />
RB7/KBI3/PGD<br />
8<br />
指 令<br />
译 码 和<br />
控 制<br />
ROM 锁 存 器<br />
IR<br />
8<br />
PRODH PRODL<br />
PORTC<br />
RC0/T1OSO/T1CKI<br />
RC1/T1OSI/CCP2/FLTA (2)<br />
RC2/CCP1/FLTB<br />
RC3/T0CKI/T5CKI/INT0 (3)<br />
RC4/INT1/SDI/SDA (3)<br />
RC5/INT2/SCK/SCL (3)<br />
RC6/TX/CK/SS<br />
RC7/RX/DT/SDO*<br />
OSC2/CLKO<br />
OSC1/CLKI<br />
T1OSI<br />
T1OSO<br />
MCLR/VPP<br />
时 序<br />
发 生<br />
4X PLL<br />
高 精 度<br />
带 隙 滤 波 器<br />
参 考<br />
上 电 延 时<br />
定 时 器<br />
振 荡 器<br />
起 振 定 时 器<br />
上 电<br />
复 位<br />
看 门 狗<br />
定 时 器<br />
欠 压<br />
复 位<br />
功 耗<br />
管 理 模 式<br />
逻 辑<br />
3<br />
BITOP<br />
8<br />
8 × 8 乘 法 器<br />
W<br />
8<br />
8<br />
ALU<br />
8<br />
8<br />
8<br />
PORTD<br />
PORTE<br />
RD0/IT0CKI/T5CKI<br />
RD1/SDO<br />
RD2/SDI/SDA<br />
RD3/SCK/SCL<br />
RD4/FLTA (2)<br />
RD5/PWM4 (4)<br />
RD6/PWM6<br />
RD7/PWM7<br />
RE0/AN6<br />
RE1/AN7<br />
VDD, VSS<br />
INTRC<br />
振 荡 器<br />
RE2/AN8<br />
MCLR/VPP/RE3 (1)<br />
TIMER0 TIMER1 TIMER2<br />
Timer5<br />
HS 10λ<br />
ADC<br />
AVDD,AVSS<br />
数 据 EE<br />
CCP1<br />
CCP2<br />
同 步<br />
串 行 端 口<br />
EUSART<br />
PCPWM<br />
MFM<br />
注 1: 仅 当 MCLR 禁 止 时 , RE3 可 用 。<br />
2: RD4 与 FLTA 复 用 一 个 引 脚 。<br />
3: RC3、 RC4 和 RC5 分 别 与 T0CKI/T5CKI、 SDI/SDA 和 SCK/SCL 复 用 一 个 引<br />
脚 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 11 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-2:<br />
引 脚 名 称<br />
MCLR/VPP/RE3<br />
MCLR<br />
VPP<br />
RE3<br />
OSC1/CLKI/RA7<br />
OSC1<br />
CLKI<br />
RA7<br />
OSC2/CLKO/RA6<br />
OSC2<br />
CLKO<br />
RA6<br />
RA0/AN0<br />
RA0<br />
AN0<br />
RA1/AN1<br />
RA1<br />
AN1<br />
RA2/AN2/VREF-/CAP1/INDX<br />
RA2<br />
AN2<br />
VREF-<br />
CAP1<br />
INDX<br />
RA3/AN3/VREF+/CAP2/QEA<br />
RA3<br />
AN3<br />
VREF+<br />
CAP2<br />
QEA<br />
RA4/AN4/CAP3/QEB<br />
RA4<br />
AN4<br />
CAP3<br />
QEB<br />
<strong>PIC18F2331</strong>/<strong>2431</strong> 引 脚 I/O 说 明<br />
引 脚 编 号<br />
DIP<br />
SOIC<br />
1 1<br />
9 9<br />
10 10<br />
2 2<br />
3 3<br />
4 4<br />
5 5<br />
6 6<br />
引 脚<br />
类 型<br />
I<br />
P<br />
I<br />
I<br />
I<br />
I/O<br />
O<br />
O<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
缓 冲 器<br />
类 型<br />
ST<br />
ST<br />
ST<br />
CMOS<br />
TTL<br />
—<br />
—<br />
TTL<br />
TTL<br />
模 拟<br />
TTL<br />
模 拟<br />
TTL<br />
模 拟<br />
模 拟<br />
ST<br />
ST<br />
TTL<br />
模 拟<br />
模 拟<br />
ST<br />
ST<br />
TTL<br />
模 拟<br />
ST<br />
ST<br />
描 述<br />
主 清 零 ( 输 入 ) 或 编 程 电 压 ( 输 入 )。<br />
主 清 零 ( 复 位 ) 输 入 。 此 引 脚 为 低 电 平 有 效 ,<br />
使 器 件 复 位 。<br />
高 压 ICSP 编 程 使 能 引 脚 。<br />
数 字 输 入 。 仅 当 MCLR 禁 止 时 可 用 。<br />
振 荡 器 晶 振 或 外 部 时 钟 输 入 。<br />
振 荡 器 晶 振 输 入 或 外 部 时 钟 源 输 入 。<br />
配 置 为 RC 模 式 时 , 为 ST 缓 冲 器 , 否 则 为 CMOS 缓 冲<br />
器 。<br />
外 部 时 钟 源 输 入 。 总 是 与 OSC1 引 脚 功 能 复 用 。( 参 见 相<br />
关 OSC1/CLKI 和 OSC2/CLKO 引 脚 。)<br />
通 用 I/O 引 脚 。<br />
振 荡 器 晶 振 或 时 钟 输 出 。<br />
振 荡 器 晶 振 输 出 。 在 晶 振 模 式 下 , 连 接 晶 振 或 谐 振 器 。<br />
在 RC 模 式 下 , OSC2 引 脚 输 出 CLKO 信 号 , 该 信 号 频<br />
率 是 OSC1 的 四 分 频 , 并 且 当 作 指 令 周 期 信 号 。<br />
通 用 I/O 引 脚 。<br />
PORTA 是 双 向 I/O 端 口 。<br />
数 字 I/O。<br />
模 拟 输 入 0。<br />
数 字 I/O。<br />
模 拟 输 入 1。<br />
数 字 I/O。<br />
模 拟 输 入 2。<br />
A/D 参 考 电 压 ( 低 ) 输 入 。<br />
输 入 捕 捉 引 脚 1。<br />
正 交 编 码 器 接 口 索 引 输 入 引 脚 。<br />
数 字 I/O。<br />
模 拟 输 入 3。<br />
A/D 参 考 电 压 ( 高 ) 输 入 。<br />
输 入 捕 捉 引 脚 2。<br />
正 交 编 码 器 接 口 通 道 A 输 入 引 脚 。<br />
数 字 I/O。<br />
模 拟 输 入 4。<br />
输 入 捕 捉 引 脚 3。<br />
正 交 编 码 器 接 口 通 道 B 输 入 引 脚 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
DS39616B_CN 第 12 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-2: <strong>PIC18F2331</strong>/<strong>2431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号<br />
DIP<br />
SOIC<br />
引 脚<br />
类 型<br />
缓 冲 器<br />
类 型<br />
描 述<br />
RB0/PWM0<br />
RB0<br />
PWM0<br />
RB1/PWM1<br />
RB1<br />
PWM1<br />
RB2/PWM2<br />
RB2<br />
PWM2<br />
RB3/PWM3<br />
RB3<br />
PWM3<br />
RB4/KBI0/PWM5<br />
RB4<br />
KBI0<br />
PWM5<br />
RB5/KBI1/PWM4/PGM<br />
RB5<br />
KBI1<br />
PWM4<br />
PGM<br />
RB6/KBI2/PGC<br />
RB6<br />
KBI2<br />
PGC<br />
RB7/KBI3/PGD<br />
RB7<br />
KBI3<br />
PGD<br />
21 21<br />
22 22<br />
23 23<br />
24 24<br />
25 25<br />
26 26<br />
27 27<br />
28 28<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
I<br />
O<br />
I/O<br />
I<br />
O<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
ST<br />
TTL<br />
TTL<br />
ST<br />
TTL<br />
TTL<br />
ST<br />
PORTB 是 双 向 I/O 端 口 。PORTB 所 有 输 入 端 都 有 可 编 程 的<br />
内 部 弱 上 拉 。<br />
数 字 I/O。<br />
PWM 输 出 0。<br />
数 字 I/O。<br />
PWM 输 出 1。<br />
数 字 I/O。<br />
PWM 输 出 2。<br />
数 字 I/O。<br />
PWM 输 出 3。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
PWM 输 出 5。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
PWM 输 出 4。<br />
低 压 ICSP 编 程 入 口 引 脚 。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
在 线 调 试 器 和 ICSP 编 程 时 钟 引 脚 。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
在 线 调 试 器 和 ICSP 编 程 数 据 引 脚 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 13 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-2: <strong>PIC18F2331</strong>/<strong>2431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号<br />
DIP<br />
SOIC<br />
引 脚<br />
类 型<br />
缓 冲 器<br />
类 型<br />
描 述<br />
RC0/T1OSO/T1CKI<br />
RC0<br />
T1OSO<br />
T1CKI<br />
RC1/T1OSI/CCP2/FLTA<br />
RC1<br />
T1OSI<br />
CCP2<br />
FLTA<br />
RC2/CCP1/FLTB<br />
RC2<br />
CCP1<br />
FLTB<br />
RC3/T0CKI/T5CKI/INT0<br />
RC3<br />
T0CKI<br />
T5CKI<br />
INT0<br />
RC4/INT1/SDI/SDA<br />
RC4<br />
INT1<br />
SDI<br />
SDA<br />
RC5/INT2/SCK/SCL<br />
RC5<br />
INT2<br />
SCK<br />
SCL<br />
RC6/TX/CK/SS<br />
RC6<br />
TX<br />
CK<br />
SS<br />
RC7/RX/DT/SDO<br />
RC7<br />
RX<br />
DT<br />
SDO<br />
11 11<br />
12 12<br />
13 13<br />
14 14<br />
15 15<br />
16 16<br />
17 17<br />
18 18<br />
I/O<br />
O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I/O<br />
O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
O<br />
ST<br />
—<br />
ST<br />
ST<br />
CMOS<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
-<br />
ST<br />
TTL<br />
ST<br />
ST<br />
ST<br />
-<br />
PORTC 是 双 向 I/O 端 口 。<br />
数 字 I/O。<br />
Timer1 振 荡 器 输 出 。<br />
Timer1 外 部 时 钟 输 入 。<br />
数 字 I/O。<br />
Timer1 振 荡 器 输 入 。<br />
Capture2 输 入 、 Compare2 输 出 、 PWM2 输 出 。<br />
故 障 中 断 输 入 引 脚 。<br />
数 字 I/O。<br />
Capture1 输 入 / Compare1 输 出 / PWM1 输 出 。<br />
故 障 中 断 输 入 引 脚 ,<br />
数 字 I/O。<br />
Timer0 备 用 时 钟 输 入 。<br />
Timer5 备 用 时 钟 输 入 。<br />
外 部 中 断 0。<br />
数 字 I/O。<br />
外 部 中 断 1。<br />
SPI 数 据 输 入 。<br />
I 2 C 数 据 I/O。<br />
数 字 I/O。<br />
外 部 中 断 2。<br />
SPI 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
I 2 C 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
数 字 I/O。<br />
USART 异 步 发 送 。<br />
USART 同 步 时 钟 ( 参 见 相 关 RX/DT)。<br />
SPI 从 动 选 择 输 入 。<br />
数 字 I/O。<br />
USART 异 步 接 收 。<br />
USART 同 步 数 据 ( 参 见 相 关 TX/CK)。<br />
SPI 数 据 输 出 。<br />
VSS 8, 19 8, 19 P - 逻 辑 和 I/O 引 脚 的 接 地 参 考 点 。<br />
VDD 7, 20 7, 20 P - 逻 辑 和 I/O 引 脚 的 正 供 电 电 源 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
DS39616B_CN 第 14 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-3: PIC18F<strong>4331</strong>/<strong>4431</strong> 引 脚 I/O 说 明<br />
引 脚 名 称<br />
引 脚 编 号 引 脚 缓 冲<br />
DIP TQFP QFN 类 型 类 型<br />
MCLR/VPP/RE3 1 18 18<br />
MCLR<br />
I ST<br />
VPP<br />
RE3<br />
OSC1/CLKI/RA7<br />
OSC1<br />
CLKI<br />
RA7<br />
OSC2/CLKO/RA6<br />
OSC2<br />
CLKO<br />
RA6<br />
RA0/AN0<br />
RA0<br />
AN0<br />
RA1/AN1<br />
RA1<br />
AN1<br />
RA2/AN2/VREF-/CAP1/<br />
INDX<br />
RA2<br />
AN2<br />
VREF-<br />
CAP1<br />
INDX<br />
RA3/AN3/VREF+/<br />
CAP2/QEA<br />
RA3<br />
AN3<br />
VREF+<br />
CAP2<br />
QEA<br />
RA4/AN4/CAP3/QEB<br />
RA4<br />
AN4<br />
CAP3<br />
QEB<br />
RA5/AN5/LVDIN<br />
RA5<br />
AN5<br />
LVDIN<br />
13 30 32<br />
14 31 33<br />
2 19 19<br />
3 20 20<br />
4 21 21<br />
5 22 22<br />
6 23 23<br />
7 24 24<br />
P<br />
I<br />
I<br />
I<br />
I/O<br />
O<br />
O<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
ST<br />
ST<br />
CMOS<br />
TTL<br />
—<br />
-<br />
TTL<br />
TTL<br />
模 拟<br />
TTL<br />
模 拟<br />
TTL<br />
模 拟<br />
模 拟<br />
ST<br />
ST<br />
TTL<br />
模 拟<br />
模 拟<br />
ST<br />
ST<br />
TTL<br />
模 拟<br />
ST<br />
ST<br />
TTL<br />
模 拟<br />
模 拟<br />
描 述<br />
主 清 零 ( 输 入 ) 或 编 程 电 压 ( 输 入 )。<br />
主 清 零 ( 复 位 ) 输 入 。 此 引 脚 为 低 电 平 有 效 ,<br />
使 器 件 复 位 。<br />
编 程 电 压 输 入 。<br />
数 字 输 入 。 仅 当 MCLR 禁 止 时 可 用 。<br />
振 荡 器 晶 振 或 外 部 时 钟 输 入 。<br />
振 荡 器 晶 振 输 入 或 外 部 时 钟 源 输 入 。<br />
在 RC 模 式 下 为 ST 缓 冲 器 , 否 则 为 CMOS 缓 冲 器 。<br />
外 部 时 钟 源 输 入 。 总 是 与 OSC1 引 脚 功 能 复 用 。<br />
( 参 见 相 关 OSC1/CLKI 和 OSC2/CLKO 引 脚 。)<br />
通 用 I/O 引 脚 。<br />
振 荡 器 晶 振 或 时 钟 输 出 。<br />
振 荡 器 晶 振 输 出 。 在 晶 振 模 式 下 , 连 接 晶 振 或 谐 振 器 。<br />
在 RC 模 式 下 , OSC2 引 脚 输 出 CLKO 信 号 , 该 信 号 频<br />
率 是 OSC1 的 四 分 频 , 并 且 当 作 指 令 周 期 信 号 。<br />
通 用 I/O 引 脚 。<br />
PORTA 是 双 向 I/O 端 口 。<br />
数 字 I/O。<br />
模 拟 输 入 0。<br />
数 字 I/O。<br />
模 拟 输 入 1。<br />
数 字 I/O。<br />
模 拟 输 入 2。<br />
A/D 参 考 电 压 ( 低 ) 输 入 。<br />
输 入 捕 捉 引 脚 1。<br />
正 交 编 码 器 接 口 索 引 输 入 引 脚 。<br />
数 字 I/O。<br />
模 拟 输 入 3。<br />
A/D 参 考 电 压 ( 高 ) 输 入 。<br />
输 入 捕 捉 引 脚 2。<br />
正 交 编 码 器 接 口 通 道 A 输 入 引 脚 。<br />
数 字 I/O。<br />
模 拟 输 入 4。<br />
输 入 捕 捉 引 脚 3。<br />
正 交 编 码 器 接 口 通 道 B 输 入 引 脚 。<br />
数 字 I/O。<br />
模 拟 输 入 5。<br />
低 压 检 测 输 入 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 15 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-3: PIC18F<strong>4331</strong>/<strong>4431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号 引 脚 缓 冲<br />
DIP TQFP QFN 类 型 类 型<br />
RB0/PWM0<br />
RB0<br />
PWM0<br />
RB1/PWM1<br />
RB1<br />
PWM1<br />
RB2/PWM2<br />
RB2<br />
PWM2<br />
RB3/PWM3<br />
RB3<br />
PWM3<br />
RB4/KBI0/PWM5<br />
RB4<br />
KBI0<br />
PWM5<br />
RB5/KBI1/PWM4/<br />
PGM<br />
RB5<br />
KBI1<br />
PWM4<br />
PGM<br />
RB6/KBI2/PGC<br />
RB6<br />
KBI2<br />
PGC<br />
RB7/KBI3/PGD<br />
RB7<br />
KBI3<br />
PGD<br />
33 8 9<br />
34 9 10<br />
35 10 11<br />
36 11 12<br />
37 14 14<br />
38 15 15<br />
39 16 16<br />
40 17 17<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
I<br />
O<br />
I/O<br />
I<br />
O<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
TTL<br />
ST<br />
TTL<br />
TTL<br />
ST<br />
TTL<br />
TTL<br />
ST<br />
PORTB 是 双 向 I/O 端 口 。PORTB 所 有 输 入 端 都 有 可 编 程<br />
的 内 部 弱 上 拉 。<br />
数 字 I/O。<br />
PWM 输 出 0。<br />
数 字 I/O。<br />
PWM 输 出 1。<br />
数 字 I/O。<br />
PWM 输 出 2。<br />
数 字 I/O。<br />
PWM 输 出 3。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
PWM 输 出 5。<br />
描 述<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
PWM 输 出 4。<br />
低 压 ICSP 编 程 入 口 引 脚 。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
在 线 调 试 器 和 ICSP 编 程 时 钟 引 脚 。<br />
数 字 I/O。<br />
电 平 变 化 中 断 引 脚 。<br />
在 线 调 试 器 和 ICSP 编 程 数 据 引 脚 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
DS39616B_CN 第 16 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-3: PIC18F<strong>4331</strong>/<strong>4431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号 引 脚 缓 冲<br />
DIP TQFP QFN 类 型 类 型<br />
RC0/T1OSO/T1CKI<br />
RC0<br />
T1OSO<br />
T1CKI<br />
RC1/T1OSI/CCP2/<br />
FLTA<br />
RC1<br />
T1OSI<br />
CCP2<br />
FLTA<br />
RC2/CCP1/FLTB<br />
RC2<br />
CCP1<br />
FLTB<br />
RC3/T0CKI/T5CKI/<br />
INT0<br />
RC3<br />
T0CKI<br />
T5CKI<br />
INT0<br />
RC4/INT1/SDI/SDA<br />
RC4<br />
INT1<br />
SDI<br />
SDA<br />
RC5/INT2/SCK/SCL<br />
RC5<br />
INT2<br />
SCK<br />
SCL<br />
RC6/TX/CK/SS<br />
RC6<br />
TX<br />
CK<br />
SS<br />
RC7/RX/DT/SDO<br />
RC7<br />
RX<br />
DT<br />
SDO<br />
15 32 34<br />
16 35 35<br />
17 36 36<br />
18 37 37<br />
23 42 42<br />
24 43 43<br />
25 44 44<br />
26 1 1<br />
I/O<br />
O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I<br />
I<br />
I/O<br />
I<br />
I<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I/O<br />
O<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
O<br />
ST<br />
-<br />
ST<br />
ST<br />
CMOS<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
-<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
-<br />
PORTC 是 双 向 I/O 端 口 。<br />
数 字 I/O。<br />
Timer1 振 荡 器 输 出 。<br />
Timer1 外 部 时 钟 输 入 。<br />
数 字 I/O。<br />
Timer1 振 荡 器 输 入 。<br />
Capture2 输 入 、 Compare2 输 出 、 PWM2 输 出 。<br />
故 障 中 断 输 入 引 脚 。<br />
数 字 I/O。<br />
Capture1 输 入 / Compare1 输 出 / PWM1 输 出 。<br />
故 障 中 断 输 入 引 脚 。<br />
数 字 I/O。<br />
Timer0 备 用 时 钟 输 入 。<br />
Timer5 备 用 时 钟 输 入 。<br />
外 部 中 断 0。<br />
数 字 I/O。<br />
外 部 中 断 1。<br />
SPI 数 据 输 入 。<br />
I 2 C 数 据 I/O。<br />
描 述<br />
数 字 I/O。<br />
外 部 中 断 2。<br />
SPI 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
I 2 C 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
数 字 I/O。<br />
USART 异 步 发 送 。<br />
USART 同 步 时 钟 ( 参 见 相 关 RX/DT)。<br />
SPI 从 动 选 择 输 入 。<br />
数 字 I/O。<br />
USART 异 步 接 收 。<br />
USART 同 步 数 据 ( 参 见 相 关 TX/CK)。<br />
SPI 数 据 输 出 。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 17 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-3: PIC18F<strong>4331</strong>/<strong>4431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号 引 脚 缓 冲<br />
DIP TQFP QFN 类 型 类 型<br />
RD0/T0CKI/T5CKI<br />
RD0<br />
T0CKI<br />
T5CKI<br />
RD1/SDO<br />
RD1<br />
SDO<br />
RD2/SDI/SDA<br />
RD2<br />
SDI<br />
SDA<br />
RD3/SCK/SCL<br />
RD3<br />
SCK<br />
SCL<br />
RD4/FLTA<br />
RD4<br />
FLTA<br />
RD5/PWM4<br />
RD5<br />
PWM4<br />
RD6/PWM6<br />
RD6<br />
PWM6<br />
RD7/PWM7<br />
RD7<br />
PWM7<br />
19 38 38<br />
20 39 39<br />
21 40 40<br />
22 41 41<br />
27 2 2<br />
28 3 3<br />
29 4 4<br />
30 5 5<br />
I/O<br />
I<br />
I<br />
I/O<br />
O<br />
I/O<br />
I<br />
I/O<br />
I/O<br />
I/O<br />
I/O<br />
I/O<br />
I<br />
I/O<br />
O<br />
I/O<br />
O<br />
I/O<br />
O<br />
ST<br />
ST<br />
ST<br />
ST<br />
-<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
ST<br />
TTL<br />
ST<br />
TTL<br />
ST<br />
TTL<br />
PORTD 是 双 向 I/O 端 口 , 或 与 微 处 理 器 端 口 连 接 的 并 行<br />
从 动 端 口 (PSP)。 当 使 能 PSP 模 块 时 , 这 些 引 脚 具 有<br />
TTL 输 入 缓 冲 器 。<br />
数 字 I/O。<br />
Timer0 外 部 时 钟 源 输 入 。<br />
Timer5 输 入 时 钟 。<br />
数 字 I/O。<br />
SPI 数 据 输 出 。<br />
数 字 I/O。<br />
SPI 数 据 输 入 。<br />
I 2 C 数 据 I/O。<br />
数 字 I/O。<br />
SPI 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
I 2 C 模 式 的 同 步 串 行 时 钟 输 入 / 输 出 。<br />
数 字 I/O。<br />
错 误 中 断 输 入 引 脚 。<br />
数 字 I/O。<br />
PWM 输 出 4。<br />
数 字 I/O。<br />
PWM 输 出 6。<br />
数 字 I/O。<br />
PWM 输 出 7。<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
描 述<br />
DS39616B_CN 第 18 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 1-3: PIC18F<strong>4331</strong>/<strong>4431</strong> 引 脚 I/O 说 明 ( 续 )<br />
引 脚 名 称<br />
引 脚 编 号 引 脚 缓 冲<br />
DIP TQFP QFN 类 型 类 型<br />
RE0/AN6<br />
RE0<br />
AN6<br />
RE1/AN7<br />
RE1<br />
AN7<br />
RE2/AN8<br />
RE2<br />
AN8<br />
VSS 12,<br />
31<br />
8 25 25<br />
9 26 26<br />
10 27 27<br />
6, 29 6, 30,<br />
31<br />
VDD 11, 32 7, 28 7, 8,<br />
28,<br />
29<br />
NC - 12,<br />
13,<br />
33, 34<br />
I/O<br />
I<br />
I/O<br />
I<br />
I/O<br />
I<br />
ST<br />
模 拟<br />
ST<br />
模 拟<br />
ST<br />
模 拟<br />
PORTE 是 双 向 I/O 端 口 。<br />
数 字 I/O。<br />
模 拟 输 入 6。<br />
数 字 I/O。<br />
模 拟 输 入 7。<br />
数 字 I/O。<br />
模 拟 输 入 8。<br />
P - 逻 辑 和 I/O 引 脚 的 接 地 参 考 点 。<br />
P - 逻 辑 和 I/O 引 脚 的 正 供 电 电 源 。<br />
13 NC NC 无 连 接<br />
图 注 : TTL = TTL 兼 容 输 入 CMOS = CMOS 兼 容 输 入 或 输 出<br />
ST = CMOS 电 平 的 施 密 特 触 发 器 输 入 I = 输 入<br />
O = 输 出 P = 电 源<br />
OD = 漏 极 开 路 ( 无 二 极 管 连 接 到 VDD)<br />
描 述<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 19 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 20 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
2.0 振 荡 器 配 置<br />
2.1 振 荡 器 类 型<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 可 以 在 10 种 不 同 的<br />
振 荡 模 式 下 工 作 。 通 过 编 程 配 置 寄 存 器 1H 中 的 配 置 位<br />
FOSC3:FOSC0, 用 户 可 以 对 10 种 模 式 进 行 选 择 。<br />
1. LP 低 功 耗 晶 振 模 式<br />
2. XT 晶 振 / 谐 振 器 模 式<br />
3. HS 高 速 晶 振 / 谐 振 器 模 式<br />
4. HSPLL 使 能 PLL 的 高 速 晶 振 / 谐 振 器 模 式<br />
5. RC 在 RA6 上 输 出 FOSC/4 的 外 部 电 阻<br />
/ 电 容 模 式<br />
6. RCIO RA6 为 I/O 的 外 部 电 阻 / 电 容 模 式<br />
7. INTIO1 内 部 振 荡 模 式 , RA6 为 FOSC/4 输<br />
出 , RA7 为 I/O<br />
8. INTIO2 内 部 振 荡 模 式 ,I/O 为 RA6 和 RA7<br />
9. EC 带 FOSC/4 输 出 的 外 部 时 钟 模 式<br />
10. ECIO RA6 为 I/O 的 外 部 时 钟 模 式<br />
2.2 晶 体 振 荡 器 / 陶 瓷 谐 振 器 模 式<br />
在 XT、 LP、 HS 或 HSPLL 振 荡 器 模 式 下 , 晶 振 或 陶<br />
瓷 谐 振 器 与 OSC1 和 OSC2 引 脚 连 接 , 以 产 生 振 荡 。<br />
图 2-1 说 明 了 引 脚 连 接 的 情 况 。<br />
振 荡 器 的 设 计 要 求 使 用 平 行 切 割 的 晶 体 。<br />
注 :<br />
使 用 顺 序 切 割 的 晶 体 , 可 能 会 使 振 荡 器 产<br />
生 的 频 率 超 出 晶 振 制 造 厂 商 的 规 范 。<br />
图 2-1:<br />
注<br />
表 2-1:<br />
C1 (1)<br />
C2 (1)<br />
XTAL<br />
RS (2)<br />
OSC1<br />
OSC2<br />
晶 振 / 陶 瓷 谐 振 器 工 作 原 理<br />
(XT、 LP、 HS 或 HSPLL<br />
配 置 )<br />
1: 如 需 了 解 C1 和 C2 的 初 始 值 , 请 参 见 表 2-1 和<br />
表 2-2。<br />
2:AT 条 形 切 割 的 晶 体 可 能 会 需 要 一 个 串 联 电 阻<br />
(RS)。<br />
3:RF 的 值 根 据 振 荡 模 式 而 定 。<br />
陶 瓷 谐 振 器 的 电 容 选 择<br />
使 用 的 典 型 电 容 值<br />
模 式 频 率 OSC1 OSC2<br />
XT 455 kHz<br />
2.0 MHz<br />
4.0 MHz<br />
56 pF<br />
47 pF<br />
33 pF<br />
56 pF<br />
47 pF<br />
33 pF<br />
HS 8.0 MHz<br />
16.0 MHz<br />
上 述 电 容 值 仅 供 设 计 参 考 。<br />
RF (3)<br />
27 pF<br />
22 pF<br />
至<br />
内 部<br />
逻 辑<br />
电 路<br />
休 眠<br />
PIC18FXXXX<br />
27 pF<br />
22 pF<br />
这 些 电 容 搭 配 下 列 谐 振 器 时 的 基 本 起 振 和 工 作 情 况 ,<br />
已 通 过 测 试 。 这 些 值 并 非 最 佳 值 。<br />
要 获 得 合 适 的 振 荡 器 工 作 状 况 , 可 能 需 要 不 同 的 电 容<br />
值 。 用 户 应 当 测 试 振 荡 器 在 应 用 的 预 期 VDD 和 温 度 下<br />
的 性 能 。<br />
更 多 信 息 , 请 参 见 22 的 注 释 。<br />
使 用 的 谐 振 器<br />
455 kHz 4.0 MHz<br />
2.0 MHz 8.0 MHz<br />
16.0 MHz<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 21 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 2-2: 晶 体 振 荡 器 的 电 容 选 择 如 图 2-2 所 示 , 在 HS 模 式 下 ,OSC1 引 脚 也 可 以 连 接<br />
外 部 时 钟 源 。<br />
振 荡 器 晶 振 已 测 试 的 典 型 电 容 值 :<br />
类 型 频 率 C1<br />
C2<br />
图 2-2:<br />
外 部 时 钟 输 入 工 作 原 理<br />
(HS 振 荡 器 配 置 )<br />
LP 32 kHz 33 pF 33 pF<br />
200 kHz 15 pF 15 pF<br />
来 自 外 部<br />
OSC1<br />
XT 1 MHz 33 pF 33 pF<br />
系 统 的 时 钟<br />
PIC18FXXXX<br />
4 MHz 27 pF 27 pF<br />
(HS 模 式 )<br />
打 开 OSC2<br />
HS 4 MHz 27 pF 27 pF<br />
8 MHz 22 pF 22 pF<br />
20 MHz 15 pF 15 pF<br />
上 述 电 容 值 仅 供 设 计 参 考 。<br />
2.3 HSPLL<br />
这 些 电 容 搭 配 下 列 谐 振 器 时 的 基 本 起 振 和 工 作 情 况 ,<br />
已 通 过 测 试 。 这 些 值 并 非 最 佳 值 。<br />
要 获 得 合 适 的 振 荡 器 工 作 状 况 , 可 能 需 要 不 同 的 电 容<br />
值 。 用 户 应 当 测 试 振 荡 器 在 应 用 的 预 期 VDD 和 温 度 下<br />
的 性 能 。<br />
更 多 信 息 , 请 参 见 本 表 后 的 注 释 。<br />
使 用 的 谐 振 器<br />
32 kHz 4 MHz<br />
200 kHz 8 MHz<br />
1 MHz 20 MHz<br />
如 果 用 户 希 望 使 用 低 频 晶 振 电 路 或 通 过 晶 体 振 荡 器 将 器<br />
件 频 率 调 至 其 最 高 额 定 频 率 , 可 以 选 择 使 用 锁 相 环<br />
(Phase Locked Loop,PLL) 电 路 。 对 于 关 心 高 频 晶 振<br />
产 生 EMI 的 用 户 , 这 样 做 非 常 有 用 。<br />
在 10 MHz 以 下 频 率 时 ,HSPLL 模 式 利 用 了 HS 模 式 振<br />
荡 器 。 然 后 PLL 将 振 荡 器 输 出 频 率 乘 以 4, 从 而 可 以 产<br />
生 最 高 40 MHz 的 内 部 时 钟 频 率 。<br />
仅 当 振 荡 器 配 置 位 编 程 为 HSPLL 模 式 时 , PLL 模 式 才<br />
会 使 能 。 如 果 编 程 为 其 他 模 式 , 则 PLL 模 式 禁 止 。<br />
图 2-3:<br />
PLL 框 图<br />
注<br />
1: 选 择 较 高 的 电 容 值 可 以 提 高 振 荡 器 的 稳 定<br />
性 , 但 同 时 也 延 长 了 起 振 时 间 。<br />
2: 当 工 作 于 3V 以 下 VDD, 或 在 任 何 电 压 下<br />
使 用 某 些 陶 瓷 谐 振 器 时 , 可 能 需 要 使 用<br />
HS 模 式 或 切 换 到 晶 体 振 荡 器 。<br />
3: 因 为 每 种 谐 振 器 / 晶 振 都 有 其 自 身 特 性 ,<br />
用 户 应 当 向 谐 振 器 / 晶 振 制 造 厂 商 咨 询 外<br />
部 元 件 的 正 确 值 。<br />
4: 为 避 免 对 低 驱 动 规 格 的 晶 振 造 成 过 驱 动 ,<br />
可 能 会 需 要 使 用 电 阻 Rs。<br />
5: 请 一 定 验 证 在 应 用 中 的 预 期 VDD 和 温 度 范<br />
围 下 的 振 荡 器 性 能 。<br />
OSC2<br />
OSC1<br />
使 能 HS 振 荡 器<br />
使 能 PLL<br />
( 根 据 配 置 寄 存 器 1H 的 设 置 )<br />
HS 模 式<br />
晶 体<br />
振 荡 器<br />
FIN<br />
FOUT<br />
÷4<br />
相 位<br />
比 较 器<br />
环 路<br />
滤 波 器<br />
VCO<br />
MUX<br />
SYSCLK<br />
DS39616B_CN 第 22 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
2.4 外 部 时 钟 输 入<br />
EC 和 ECIO 振 荡 器 模 式 需 要 OSC1 引 脚 连 接 一 个 外 部<br />
时 钟 源 。 在 上 电 复 位 后 或 从 休 眠 模 式 退 出 后 , 不 需 要 振<br />
荡 器 起 振 时 间 。<br />
在 EC 振 荡 器 模 式 下 , 振 荡 器 频 率 的 4 分 频 信 号 可 由<br />
OSC2 引 脚 输 出 。 此 信 号 可 用 于 测 试 或 同 步 其 他 逻 辑 单<br />
元 。 图 2-4 给 出 了 EC 振 荡 器 模 式 的 引 脚 连 接 。<br />
图 2-4:<br />
来 自 外 部<br />
系 统 的 时 钟<br />
FOSC/4<br />
外 部 时 钟 输 入 工 作 原 理<br />
(EC 配 置 )<br />
OSC1/CLKI<br />
PIC18FXXXX<br />
OSC2/CLKO<br />
2.5 RC 振 荡 器<br />
对 于 定 时 要 求 不 高 的 应 用 , RC 和 RCIO 器 件 选 项 能 更<br />
好 地 节 约 成 本 。 RC 振 荡 器 频 率 与 电 源 电 压 、 电 阻<br />
(REXT) 和 电 容 (CEXT) 值 及 工 作 温 度 密 切 相 关 。 另<br />
外 , 由 于 正 常 制 造 工 艺 的 变 动 因 素 , 每 个 器 件 的 振 荡 频<br />
率 也 会 有 所 不 同 。 而 不 同 封 装 类 型 的 引 线 电 容 间 的 差 异<br />
也 会 影 响 振 荡 频 率 , 特 别 是 CEXT 值 较 小 时 。 用 户 还 需<br />
要 考 虑 由 于 所 使 用 外 部 R 和 C 元 件 的 公 差 造 成 的 不 同 。<br />
图 2-6 给 出 了 R/C 组 合 的 连 接 方 式 。<br />
在 RC 振 荡 器 模 式 下 , 振 荡 器 频 率 的 4 分 频 信 号 可 由<br />
OSC2 引 脚 输 出 。 此 信 号 可 以 用 于 测 试 目 的 或 同 步 其 他<br />
逻 辑 单 元 。<br />
图 2-6:<br />
VDD<br />
RC 振 荡 器 模 式<br />
ECIO 振 荡 器 模 式 的 功 能 类 似 于 EC 模 式 , 不 同 之 处 在<br />
于 OSC2 引 脚 变 成 了 一 个 附 加 的 通 用 I/O 引 脚 。 I/O 引<br />
脚 变 成 PORTA 的 第 6 位 (RA6)。 图 2-5 给 出 了 ECIO<br />
振 荡 器 模 式 下 的 引 脚 连 接 。<br />
图 2-5:<br />
来 自 外 部<br />
系 统 的 时 钟<br />
RA6<br />
外 部 时 钟 输 入 工 作 原 理<br />
(ECIO 配 置 )<br />
OSC1/CLKI<br />
PIC18FXXXX<br />
I/O(OSC2)<br />
REXT<br />
CEXT<br />
VSS<br />
建 议 值 :<br />
FOSC/4<br />
OSC1<br />
OSC2/CLKO<br />
3 kΩ ≤ REXT ≤ 100 kΩ<br />
CEXT > 20 pF<br />
内 部<br />
时 钟<br />
PIC18FXXXX<br />
RCIO 振 荡 器 模 式 ( 图 2-7) 的 功 能 类 似 于 RC 模 式 ,<br />
不 同 之 处 在 于 OSC2 引 脚 变 成 了 一 个 附 加 的 通 用 I/O 引<br />
脚 。 I/O 引 脚 变 成 PORTA 的 第 6 位 (RA6)。<br />
图 2-7:<br />
VDD<br />
RCIO 振 荡 器 模 式<br />
REXT<br />
OSC1<br />
内 部<br />
时 钟<br />
CEXT<br />
VSS<br />
RA6<br />
I/O(OSC2)<br />
PIC18FXXXX<br />
建 议 值 :<br />
3 kΩ ≤ REXT ≤ 100 kΩ<br />
CEXT > 20 pF<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 23 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
2.6 内 部 振 荡 电 路<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 包 含 一 个 内 部 振 荡<br />
电 路 , 可 以 产 生 两 个 不 同 的 时 钟 信 号 , 两 者 都 可 以 充 当<br />
系 统 的 时 钟 源 。 可 以 避 免 使 用 OSC1 和 / 或 OSC2 引 脚<br />
构 成 外 部 振 荡 电 路 。<br />
主 输 出 (INTOSC) 是 一 个 8 MHz 的 时 钟 源 , 可 以 用 于<br />
直 接 驱 动 系 统 时 钟 。 还 可 以 驱 动 后 分 频 器 , 提 供 从<br />
125 kHz 到 4MHz 间 的 时 钟 频 率 。 当 选 择 了 125 kHz 到<br />
8MHz 的 系 统 时 钟 频 率 时 , 将 使 能 INTOSC 输 出 。<br />
另 一 个 时 钟 源 是 内 部 RC 振 荡 器 (INTRC), 提 供 31 kHz<br />
的 输 出 。 通 过 选 择 内 部 振 荡 电 路 作 为 系 统 时 钟 源 , 或 使<br />
能 以 下 任 何 组 件 , 都 可 以 使 能 INTRC 振 荡 器 :<br />
• 上 电 延 时 定 时 器<br />
• 故 障 保 护 时 钟 监 视 器<br />
• 看 门 狗 定 时 器<br />
• 双 速 起 振<br />
在 第 22.0 节 “CPU 的 特 殊 功 能 ” 中 详 细 讨 论 了 这 些 功<br />
能 。<br />
通 过 配 置 OSCCON 寄 存 器 ( 见 寄 存 器 2-2) 的 IRCF<br />
位 , 可 以 选 择 时 钟 源 频 率 (INTOSC 直 接 输 出 、INTRC<br />
直 接 输 出 或 INTOSC 后 分 频 输 出 )。<br />
2.6.2 INTRC 输 出 频 率<br />
为 了 产 生 8.0 MHz 的 INTOSC 输 出 频 率 , 在 工 厂 中 对 内<br />
部 振 荡 电 路 校 准 。 这 就 改 变 了 INTRC 源 的 标 称 频 率<br />
31.25 kHz。 依 靠 INTRC 源 的 外 设 和 功 能 会 受 到 此 频 率<br />
变 化 的 影 响 。<br />
2.6.3 OSCTUNE 寄 存 器<br />
内 部 振 荡 器 的 输 出 虽 然 已 在 工 厂 经 过 校 准 , 但 用 户 可 以<br />
在 使 用 时 进 行 调 整 。 可 通 过 写 OSCTUNE 寄 存 器 ( 寄<br />
存 器 2-1) 实 现 。 调 节 灵 敏 度 在 整 个 调 节 范 围 内 保 持 不<br />
变 。<br />
当 修 改 OSCTUNE 寄 存 器 后 ,INTOSC 和 INTRC 的 频<br />
率 将 开 始 调 节 至 新 的 频 率 。INTRC 时 钟 将 在 8 个 时 钟 周<br />
期 ( 大 约 8*32µs = 256 µs) 内 达 到 新 的 频 率 。<br />
INTOSC 时 钟 会 在 1ms 内 稳 定 下 来 。 在 频 率 变 化 期 间 ,<br />
代 码 会 继 续 执 行 。 不 会 有 任 何 迹 象 表 明 发 生 了 频 率 变<br />
化 。 但 依 靠 INTRC 时 钟 源 频 率 的 功 能 ( 例 如 WDT、 故<br />
障 保 护 时 钟 监 视 器 和 外 设 等 ), 其 运 行 会 受 到 频 率 变 化<br />
的 影 响 。<br />
2.6.1 INTIO 模 式<br />
使 用 内 部 振 荡 器 作 为 时 钟 源 , 最 多 可 以 避 免 使 用 两 个 外<br />
部 振 荡 器 引 脚 , 留 出 的 引 脚 可 用 于 数 字 I/O。 目 前 有 两<br />
种 不 同 的 配 置 。<br />
• 在 INTIO1 模 式 , OSC2 引 脚 输 出 FOSC/4, 而<br />
OSC1 引 脚 则 充 当 RA7, 用 于 数 字 输 入 / 输 出 。<br />
• 在 INTIO2 模 式 , OSC1 充 当 RA7, OSC2 充 当<br />
RA6, 两 者 都 用 于 数 字 输 入 / 输 出 。<br />
DS39616B_CN 第 24 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 2-1:<br />
OSCTUNE: 振 荡 器 调 节 寄 存 器<br />
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
— — TUN5 TUN4 TUN3 TUN2 TUN1 TUN0<br />
bit 7 bit 0<br />
bit 7, 6 未 实 现 位 : 读 作 0<br />
bit 5-0 TUN: 频 率 调 节 位<br />
011111 = 最 高 频 率<br />
• •<br />
• •<br />
000001<br />
000000 = 中 心 频 率 。 振 荡 器 模 块 运 行 在 校 准 后 的 频 率 上 。<br />
111111<br />
• •<br />
• •<br />
100000 = 最 低 频 率<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n = 上 电 复 位 时 的 值 1 = 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 25 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
2.7 时 钟 源 与 振 荡 器 切 换<br />
与 以 前 的 PIC18 器 件 类 似 , <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<br />
<strong>4431</strong> 器 件 包 括 了 一 项 功 能 , 可 以 将 时 钟 源 从 主 振 荡 器 切<br />
换 为 备 用 低 频 时 钟 源 。<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器<br />
件 提 供 了 两 个 备 用 时 钟 源 。 使 能 这 些 备 用 时 钟 源 后 , 可<br />
为 切 换 到 各 种 功 耗 管 理 工 作 模 式 提 供 更 多 的 选 择 。<br />
基 本 上 , 这 些 器 件 都 有 3 种 时 钟 源 :<br />
• 主 振 荡 器<br />
• 辅 助 振 荡 器<br />
• 内 部 振 荡 电 路<br />
主 振 荡 器 包 括 外 部 晶 振 和 谐 振 器 模 式 、 外 部 RC 模 式 、<br />
外 部 时 钟 模 式 和 内 部 振 荡 电 路 。 具 体 模 式 在 上 电 复 位 时<br />
由 配 置 寄 存 器 1H 的 内 容 决 定 。 这 些 模 式 的 具 体 情 况 已<br />
在 本 章 的 前 半 部 分 作 了 介 绍 。<br />
辅 助 振 荡 器 是 不 与 OSC1 或 OSC2 引 脚 连 接 的 外 部 时 钟<br />
源 。 这 些 时 钟 源 在 控 制 器 处 于 功 耗 管 理 模 式 时 仍 然 可 以<br />
继 续 工 作 。<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 只 支 持 使 用 Timer1<br />
振 荡 器 作 为 辅 助 振 荡 器 。 Timer1 振 荡 器 ( 在 所 有 的 功<br />
耗 管 理 模 式 下 ) 通 常 是 实 时 时 钟 等 功 能 的 时 基 。<br />
大 部 分 情 况 下 , 在 RC0/T1OSO 和 RC1/T1OSI 之 间 接<br />
有 一 个 32.768 kHz 的 时 钟 晶 振 。 与 LP 模 式 振 荡 电 路 类<br />
似 , 每 个 引 脚 都 通 过 负 载 电 容 接 地 。<br />
在 第 12.2 节 “Timer1 振 荡 器 ” 中 对 Timer1 振 荡 器 进<br />
行 了 详 细 讨 论 。<br />
除 了 作 为 主 时 钟 源 , 内 部 振 荡 电 路 还 可 作 为 功 耗 管 理 模<br />
式 的 时 钟 源 。INTRC 源 也 可 作 为 几 种 特 别 功 能 ( 如 WDT<br />
和 故 障 保 护 时 钟 监 视 器 ) 的 时 钟 源 。<br />
在 图 2-8 中 给 出 了 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件<br />
的 时 钟 源 。 如 需 了 解 Timer1 振 荡 器 的 更 多 信 息 , 请 参<br />
阅 第 12.0 节 “Timer1 模 块 ”。 如 需 了 解 配 置 寄 存 器 的<br />
详 细 信 息 , 请 参 阅 第 22.1 节 “ 配 置 位 ”。<br />
2.7.1 振 荡 器 控 制 寄 存 器<br />
OSCCON 寄 存 器 ( 寄 存 器 2-2) 控 制 全 功 率 模 式 和 功<br />
耗 管 理 模 式 下 系 统 时 钟 多 方 面 的 工 作 方 式 。<br />
系 统 时 钟 选 择 位 (SCS1:SCS0), 选 择 器 件 在 功 耗 管 理<br />
模 式 下 运 行 时 所 使 用 的 时 钟 源 。 可 用 的 时 钟 源 包 括 主 时<br />
钟 ( 在 配 置 寄 存 器 1H 中 定 义 )、 辅 助 时 钟 (Timer1 振<br />
荡 器 ) 和 内 部 振 荡 电 路 。 时 钟 选 择 在 执 行 SLEEP 指 令 ,<br />
器 件 进 入 功 耗 管 理 工 作 模 式 后 才 会 生 效 。 任 何 形 式 的 复<br />
位 都 会 使 SCS 位 清 零 。<br />
内 部 振 荡 器 选 择 位 (IRCF2:IRCF0) 用 来 指 定 驱 动 系 统<br />
时 钟 的 内 部 振 荡 电 路 的 输 出 频 率 。 包 括 INTRC 频 率 、<br />
INTOSC (8 MHz) 频 率 或 INTOSC 后 分 频 器 产 生 的 6<br />
个 频 率 之 一 (125 kHz 到 4MHz)。 如 果 系 统 时 钟 源 是<br />
内 部 振 荡 电 路 , 改 变 这 些 位 的 状 态 时 , 内 部 振 荡 器 的 输<br />
出 频 率 会 立 即 发 生 改 变 。<br />
OSTS、IOFS 和 T1RUN 位 表 明 哪 个 时 钟 源 是 当 前 的 系<br />
统 时 钟 源 。OSTS 表 明 振 荡 器 起 振 定 时 器 已 超 时 , 主 时<br />
钟 是 主 时 钟 模 式 下 的 系 统 时 钟 源 。 IOFS 位 表 明 内 部 振<br />
荡 电 路 已 稳 定 , 并 在 RC 时 钟 模 式 下 提 供 系 统 时 钟 。<br />
T1RUN 位 (T1CON) 表 明 何 时 Timer1 振 荡 器 在<br />
辅 助 时 钟 模 式 下 , 提 供 系 统 时 钟 。 在 功 耗 管 理 模 式 下 ,<br />
任 何 时 候 这 3 个 位 都 只 有 一 个 被 置 位 。 如 果 这 些 位 都 没<br />
有 置 位 , 则 当 前 系 统 时 钟 源 是 INTRC, 或 内 部 振 荡 电 路<br />
刚 刚 起 振 尚 未 稳 定 。<br />
IDLEN 位 控 制 功 耗 管 理 模 式 下 控 制 器 CPU 的 选 择 性 关<br />
断 。 在 第 3.0 节 “ 功 耗 管 理 模 式 ” 中 详 细 讨 论 了 这 些 位<br />
的 用 法 。<br />
注<br />
1: 要 选 择 辅 助 时 钟 源 , 必 须 使 能 Timer1 振 荡<br />
器 。 通 过 将 Timer1 控 制 寄 存 器 中 的<br />
T1OSCEN 位 (T1CON) 置 位 , 可 以<br />
使 能 Timer1 振 荡 器 。 如 果 未 使 能 Timer1<br />
振 荡 器 , 则 在 执 行 SLEEP 指 令 期 间 任 何 选<br />
择 辅 助 时 钟 源 的 尝 试 都 会 被 忽 略 。<br />
2: 建 议 在 Timer1 振 荡 器 进 入 稳 定 工 作 状 态<br />
后 , 执 行 SLEEP 指 令 。 否 则 当 Timer1 振<br />
荡 器 起 振 时 , 可 能 会 有 很 长 的 延 迟 。<br />
DS39616B_CN 第 26 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 2-8:<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 框 图<br />
OSC2<br />
OSC1<br />
主 振 荡 器<br />
休 眠<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
4 x PLL<br />
C4NFIG1H <br />
HSPLL<br />
LP, XT, HS, RC, E<br />
时 钟<br />
控 制<br />
OSCCON<br />
T1OSO<br />
T1OSI<br />
辅 助 振 荡 器<br />
T1OSCEN<br />
使 能<br />
振 荡 器<br />
OSCCON<br />
内 部<br />
振 荡<br />
电 路<br />
INTRC<br />
源<br />
8 MHz<br />
(INTOSC)<br />
后 分 频 器<br />
8 MHz<br />
4 MHz<br />
2 MHz<br />
1 MHz<br />
500 kHz<br />
250 kHz<br />
125 kHz<br />
31 kHz<br />
OSCCON<br />
111<br />
110<br />
101<br />
100<br />
011<br />
010<br />
001<br />
000<br />
MUX<br />
为 其 他 模 块 提 供<br />
时 钟 源<br />
内 部 振 荡 器<br />
T1OSC<br />
MUX<br />
外 设<br />
CPU<br />
IDLEN<br />
WDT, FSCM<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 27 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 2-2:<br />
bit 7<br />
bit 6-4<br />
bit 3<br />
bit 2<br />
bit 1-0<br />
OSCCON 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R (1) R-0 R/W-0 R/W-0<br />
IDLEN IRCF2 IRCF1 IRCF0 OSTS IOFS SCS1 SCS0<br />
bit 7 bit 0<br />
IDLEN: 空 闲 使 能 位<br />
1 = 使 能 空 闲 模 式 , CPU 内 核 未 处 于 功 耗 管 理 模 式<br />
0 = 使 能 运 行 模 式 , CPU 内 核 处 于 功 耗 管 理 模 式<br />
IRCF2:IRCF0: 内 部 振 荡 器 频 率 选 择 位<br />
111 = 8 MHz (8 MHz 源 直 接 驱 动 时 钟 )<br />
110 = 4 MHz<br />
101 = 2 MHz<br />
100 = 1 MHz<br />
011 = 500 kHz<br />
010 = 250 kHz<br />
001 = 125 kHz<br />
000 = 31 kHz (INTRC 源 直 接 驱 动 时 钟 )<br />
OSTS: 振 荡 器 起 振 超 时 状 态 位<br />
1 = 振 荡 器 起 振 超 时 定 时 器 已 到 期 , 主 振 荡 器 正 在 运 行<br />
0 = 振 荡 器 起 振 超 时 定 时 器 正 在 运 行 , 主 振 荡 器 尚 未 就 绪<br />
IOFS:INTOSC 频 率 稳 定 位<br />
1 = INTOSC 频 率 已 稳 定<br />
0 = INTOSC 频 率 尚 未 稳 定<br />
SCS1:SCS0: 系 统 时 钟 选 择 位<br />
1x = 内 部 振 荡 电 路 (RC 模 式 )<br />
01 = Timer1 振 荡 器 ( 间 接 模 式 )<br />
00 = 主 振 荡 器 ( 休 眠 与 PRI_IDLE 模 式 )<br />
注 1: 由 配 置 寄 存 器 1H 中 的 IESO 位 的 状 态 决 定 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
2.7.2 振 荡 器 转 换<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 包 含 有 防 止 切 换 时<br />
钟 源 时 产 生 脉 冲 干 扰 的 电 路 。 在 时 钟 切 换 过 程 中 , 系 统<br />
时 钟 会 有 短 暂 停 顿 。 停 顿 时 间 为 新 时 钟 源 的 8 到 9 个 时<br />
钟 周 期 。 这 就 保 证 了 新 时 钟 源 的 稳 定 性 , 且 脉 冲 宽 度 不<br />
小 于 这 两 个 时 钟 源 最 窄 的 脉 冲 宽 度 。<br />
在 第 3.1.2 节 “ 进 入 功 耗 管 理 模 式 ” 中 详 细 讨 论 了 时 钟<br />
转 换 。<br />
DS39616B_CN 第 28 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
2.8 功 耗 管 理 模 式 对 各 种 时 钟 源 的 影 响<br />
当 器 件 执 行 SLEEP 指 令 时 , 系 统 会 切 换 到 某 个 功 耗 管 理<br />
模 式 , 这 由 OSCCON 寄 存 器 的 IDLEN 位 和 SCS1:SCS0<br />
位 的 状 态 决 定 。 如 需 详 细 信 息 , 参 见 第 3.0 节 “ 功 耗 管<br />
理 模 式 ”。<br />
当 选 择 了 PRI_IDLE 模 式 时 , 指 定 的 主 振 荡 器 继 续 运 行 ,<br />
而 不 中 断 。 对 于 所 有 其 他 功 耗 管 理 模 式 , 使 用 OSC1 的<br />
振 荡 器 会 被 禁 止 。OSC1 引 脚 ( 若 振 荡 器 使 用 OSC2 引<br />
脚 , 则 还 有 OSC2 引 脚 ) 将 会 停 止 振 荡 。<br />
在 辅 助 时 钟 模 式 (SEC_RUN 和 SEC_IDLE) 下 ,Timer1<br />
振 荡 器 作 为 系 统 时 钟 源 。 如 需 要 使 用 Timer1 的 时 钟 ,<br />
Timer1 振 荡 器 也 可 在 所 有 功 耗 管 理 模 式 下 运 行 。<br />
在 内 部 振 荡 模 式 (RC_RUN 和 RC_IDLE) 下 , 由 内 部<br />
振 荡 电 路 提 供 系 统 时 钟 源 。 无 论 是 否 为 功 耗 管 理 模 式 ,<br />
INTRC 输 出 可 以 直 接 用 作 系 统 时 钟 , 都 可 以 被 使 能 支 持<br />
几 种 特 殊 功 能 ( 见 第 22.2 节 到 第 22.4 节 )。8 MHz 的<br />
INTOSC 输 出 可 以 直 接 为 系 统 提 供 时 钟 源 , 或 先 分 频 。<br />
如 果 直 接 由 INTRC 输 出 作 为 系 统 时 钟 源 , 则 会 禁 止<br />
INTOSC 输 出 。<br />
如 果 选 择 了 休 眠 模 式 , 所 有 的 时 钟 源 都 会 被 停 止 。 因 为<br />
关 闭 了 所 有 的 晶 体 管 切 换 电 流 , 休 眠 模 式 能 实 现 最 小 的<br />
器 件 电 流 消 耗 ( 仅 泄 漏 电 流 )。<br />
2.9 上 电 延 迟<br />
有 两 个 定 时 器 控 制 上 电 延 迟 , 这 样 大 部 分 应 用 都 无 需 外<br />
接 复 位 电 路 实 现 上 电 延 迟 , 就 可 以 确 保 在 正 常 环 境 下 ,<br />
器 件 的 供 电 电 源 达 到 稳 定 且 主 时 钟 也 稳 定 运 行 前 , 器 件<br />
保 持 复 位 状 态 。 如 需 了 解 更 多 上 电 延 迟 的 信 息 , 请 参 阅<br />
第 4.1 节 至 第 4.5 节 。<br />
第 一 个 定 时 器 是 上 电 延 时 定 时 器 (PWRT), 如 果 它 在<br />
配 置 寄 存 器 2L 使 能 , 则 在 上 电 时 提 供 一 段 固 定 延 迟<br />
( 表 25-8 中 的 参 数 33)。 第 二 个 定 时 器 是 振 荡 器 起 振 定<br />
时 器 (OST), 用 于 在 晶 体 振 荡 器 稳 定 前 (LP、 XT 和<br />
HS 模 式 ), 保 持 单 片 机 在 复 位 状 态 。 在 振 荡 器 为 器 件 提<br />
供 时 钟 源 之 前 ,OST 通 过 等 候 1024 个 振 荡 周 期 来 实 现<br />
此 延 迟 。<br />
当 选 择 HSPLL 振 荡 器 模 式 时 , 器 件 还 会 多 保 持 复 位 状<br />
态 2ms, 之 后 是 HS 模 式 的 OST 延 迟 , 这 样 PLL 可 以<br />
锁 定 到 输 入 时 钟 频 率 。<br />
当 控 制 器 准 备 好 执 行 指 令 时 , 在 上 电 复 位 之 后 有 5 到<br />
10 µs 的 延 迟 。 此 延 迟 与 其 他 延 迟 同 时 进 行 。 任 何 EC、<br />
RC 或 INTIO 模 式 用 作 主 时 钟 源 时 , 这 可 能 是 唯 一 的 延<br />
迟 。<br />
如 果 使 能 任 何 在 休 眠 期 间 仍 可 运 行 的 片 上 功 能 , 将 会 增<br />
加 休 眠 时 的 电 流 消 耗 。 要 支 持 WDT 工 作 , 需 要 使 能<br />
INTRC。 要 支 持 实 时 时 钟 , 可 能 需 要 Timer1 振 荡 器 工<br />
作 。 不 需 要 系 统 时 钟 源 的 其 他 功 能 也 可 以 工 作 ( 即 SSP<br />
从 动 器 件 、 PSP、 INTn 引 脚 和 A/D 转 换 等 )。<br />
表 2-3:<br />
休 眠 模 式 下 OSC1 和 OSC2 引 脚 的 状 态<br />
振 荡 器 模 式 OSC1 引 脚 OSC2 引 脚<br />
RC, INTIO1 悬 空 , 经 外 部 电 阻 上 拉 为 高 电 平 处 于 逻 辑 低 电 平 ( 频 率 的 1/4)<br />
RCIO, INTIO2 悬 空 , 经 外 部 电 阻 上 拉 为 高 电 平 配 置 为 PORTA 的 bit 6<br />
ECIO 悬 空 , 经 外 部 时 钟 上 拉 为 高 电 平 配 置 为 PORTA 的 bit 6<br />
EC 悬 空 , 经 外 部 时 钟 上 拉 为 高 电 平 处 于 逻 辑 低 电 平 ( 频 率 的 1/4)<br />
LP、 XT 和 HS 反 馈 反 相 器 被 禁 止 , 处 于 静 态 电 平 反 馈 反 相 器 被 禁 止 , 处 于 静 态 电 平<br />
注 : 有 关 休 眠 和 MCLR 复 位 造 成 的 超 时 的 信 息 , 请 参 见 第 4.0 节 “ 复 位 ” 的 表 4-1。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 29 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 30 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.0 功 耗 管 理 模 式<br />
为 更 有 效 的 功 耗 管 理 ,<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器<br />
件 提 供 总 共 六 种 运 行 模 式 ( 见 表 3-1)。 这 些 运 行 模 式 为<br />
资 源 受 限 的 应 用 ( 即 , 电 池 供 电 的 器 件 ) 提 供 了 多 种 可<br />
选 择 的 节 能 模 式 。<br />
有 三 类 功 耗 管 理 模 式 :<br />
• 休 眠 模 式<br />
• 空 闲 模 式<br />
• 运 行 模 式<br />
这 些 类 别 定 义 了 器 件 的 哪 些 部 分 作 为 时 钟 源 , 有 时 还 可<br />
以 定 义 时 钟 频 率 。 运 行 和 空 闲 模 式 可 以 使 用 三 种 有 效 时<br />
钟 源 中 ( 主 、 间 接 或 INTOSC 复 用 器 ) 的 任 意 一 种 ;<br />
而 休 眠 模 式 则 不 能 使 用 时 钟 源 。<br />
其 他 PIC18 器 件 具 有 的 时 钟 源 切 换 功 能 ( 即 , 在 主 振<br />
荡 器 中 使 用 Timer1 振 荡 器 ) 和 所 有 PICmicro ® 器 件 均<br />
有 的 休 眠 模 式 ( 此 时 所 有 系 统 时 钟 都 停 止 ), 在<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 中 都 有 ( 可 分 别 运<br />
行 SEC_RUN 和 休 眠 模 式 )。 但 是 , 新 增 的 功 耗 管 理 模<br />
式 可 以 更 灵 活 地 让 用 户 决 定 器 件 的 哪 些 部 分 在 运 行 。 功<br />
耗 管 理 模 式 是 事 件 驱 动 的 , 也 就 是 说 , 器 件 必 须 发 生 某<br />
些 特 殊 事 件 来 进 入 或 ( 更 加 特 别 ) 退 出 这 些 操 作 模 式 。<br />
对 于 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 来 说 , 功 耗 管<br />
理 模 式 是 通 过 现 成 的 SLEEP 指 令 来 调 用 。 当 发 生 中 断 、<br />
复 位 或 WDT 超 时 的 时 候 都 可 以 退 出 至 PRI_RUN 模 式<br />
(PRI_RUN 模 式 是 正 常 的 全 功 率 执 行 模 式 ; CPU 和 外<br />
设 都 由 主 振 荡 器 源 作 为 时 钟 源 )。 此 外 , 功 耗 管 理 运 行<br />
模 式 也 可 以 退 出 至 休 眠 模 式 或 相 应 的 空 闲 模 式 。<br />
3.1 选 择 功 耗 管 理 模 式<br />
选 择 功 耗 管 理 模 式 要 确 定 有 提 供 给 CPU 的 时 钟 源 还 是<br />
没 有 , 以 及 选 择 了 哪 个 时 钟 源 。 IDLEN 位 控 制 CPU 提<br />
供 时 钟 源 ,SC1:SCS0 位 则 选 择 时 钟 源 。 表 3-1 总 结 了<br />
各 个 模 式 、 置 位 、 时 钟 源 和 受 影 响 的 模 块 。<br />
3.1.1 时 钟 源<br />
可 以 通 过 置 位 OSCCON 寄 存 器 中 的 SCS 位 来 选 择 时 钟<br />
源 。 在 功 耗 管 理 模 式 的 空 闲 模 式 中 有 三 个 时 钟 源 可 供 使<br />
用 : 主 时 钟 ( 和 配 置 寄 存 器 1H 中 配 置 的 一 样 )、 辅 助<br />
时 钟 (Timer1 振 荡 器 ) 和 内 部 振 荡 电 路 。 间 接 和 内 部<br />
振 荡 电 路 时 钟 源 可 用 于 功 耗 管 理 模 式 (PRI_RUN 模 式<br />
是 全 功 率 执 行 模 式 ; CPU 和 外 设 由 主 振 荡 器 时 钟 源 提<br />
供 时 钟 源 )。<br />
表 3-1:<br />
模 式<br />
功 耗 管 理 模 式<br />
IDLEN<br />
<br />
OSCCON 位<br />
SCS1:SCS0<br />
<br />
CPU<br />
模 块 时 钟<br />
外 设<br />
有 效 时 钟 和 振 荡 器 源<br />
休 眠 0 00 关 闭 关 闭 无 —— 所 有 的 时 钟 都 被 禁 止<br />
PRI_RUN 0 00 被 提 供 时 钟<br />
源<br />
SEC_RUN 0 01 被 提 供 时 钟<br />
源<br />
RC_RUN 0 1x 被 提 供 时 钟<br />
源<br />
被 提 供 时 钟 源 主 时 钟 ——LP、XT、HS、HSPLL、RC、EC 和<br />
INTRC (1)<br />
这 是 正 常 的 全 功 率 运 行 模 式 。<br />
被 提 供 时 钟 源 辅 助 时 钟 ——Timer1 振 荡 器<br />
(1)<br />
被 提 供 时 钟 源 内 部 振 荡 电 路<br />
PRI_IDLE 1 00 关 闭 被 提 供 时 钟 源 主 时 钟 ——LP、 XT、 HS、 HSPLL、 RC 和 EC<br />
SEC_IDLE 1 01 关 闭 被 提 供 时 钟 源 辅 助 时 钟 ——Timer1 振 荡 器<br />
RC_IDLE 1 1x 关 闭 被 提 供 时 钟 源 内 部 振 荡 电 路 (1)<br />
注 1: 包 含 INTOSC 和 INTOSC 后 分 频 器 以 及 INTRC 源 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 31 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.1.2 进 入 功 耗 管 理 模 式<br />
一 般 情 况 下 , 进 入 、 退 出 和 在 功 耗 管 理 时 钟 源 之 间 切 换<br />
都 需 要 进 行 时 钟 源 切 换 。 在 这 几 种 情 况 下 , 事 件 的 顺 序<br />
都 相 同 。<br />
功 耗 管 理 模 式 的 所 有 变 化 都 由 载 入 OSCCON 寄 存 器 并<br />
执 行 SLEEP 指 令 开 始 。SCS1:SCS0 位 选 择 三 个 功 耗 管<br />
理 时 钟 源 中 的 一 个 : 主 时 钟 ( 和 配 置 寄 存 器 1H 中 配 置<br />
的 一 样 )、 辅 助 时 钟 (Timer1 振 荡 器 ) 和 内 部 振 荡 电 路<br />
( 在 RC 模 式 中 使 用 )。 在 SLEEP 指 令 执 行 之 前 修 改<br />
SCS 位 不 会 有 任 何 影 响 。 执 行 SLEEP 指 令 就 可 以 进 入<br />
功 耗 管 理 模 式 。<br />
图 3-5 给 出 了 从 主 时 钟 切 换 到 Timer1 振 荡 器 时 , 系 统<br />
如 何 计 时 。 当 执 行 SLEEP 指 令 时 , 器 件 时 钟 在 下 一 个 指<br />
令 周 期 开 始 时 被 停 止 。 来 自 新 时 钟 源 的 八 个 时 钟 周 期 与<br />
新 的 时 钟 源 同 步 计 时 。 来 自 新 时 钟 源 的 八 个 时 钟 脉 冲 之<br />
后 , 来 自 新 时 钟 源 的 时 钟 会 恢 复 系 统 时 钟 计 数 。 停 顿 的<br />
实 际 时 间 为 新 时 钟 源 的 八 到 九 个 时 钟 周 期 之 间 。 这 就 保<br />
证 了 新 时 钟 源 是 稳 定 的 , 且 脉 冲 宽 度 不 小 于 这 两 个 时 钟<br />
源 最 窄 的 脉 冲 宽 度 。<br />
以 下 三 位 表 明 当 前 的 时 钟 源 :OSCCON 寄 存 器 中 的<br />
OSTS 和 IOFS 以 及 T1CON 寄 存 器 中 的 T1RUN。 在 功<br />
耗 管 理 模 式 中 , 除 了 PRI_RUN, 这 些 位 只 有 一 位 被 置<br />
位 。 当 OSTS 位 被 置 位 时 , 主 时 钟 提 供 系 统 时 钟 。 当<br />
IOFS 位 被 置 位 时 ,INTOSC 输 出 提 供 稳 定 的 8MHz 时<br />
钟 源 并 提 供 系 统 时 钟 。 当 T1RUN 位 被 置 位 时 , Timer1<br />
振 荡 器 提 供 系 统 时 钟 。 如 果 这 些 位 都 不 置 位 , 则 INTRC<br />
时 钟 源 为 系 统 时 钟 源 , 而 INTOSC 源 并 不 稳 定 。<br />
如 果 在 配 置 寄 存 器 1H 中 将 内 部 振 荡 电 路 配 置 为 主 时 钟<br />
源 , 则 在 PRI_RUN 或 PRI_IDLE 模 式 中 , OSTS 和<br />
IOFS 位 可 能 都 会 被 置 位 。 这 表 示 主 时 钟 (INTOSC 输<br />
出 ) 正 在 产 生 稳 定 的 8MHz 输 出 。 进 入 RC 功 耗 管 理 模<br />
式 ( 频 率 相 同 ) 将 清 零 OSTS 位 。<br />
注 1: 在 修 改 单 独 的 IRCF 位 时 应 该 特 别 小 心 。<br />
如 果 VDD 电 压 小 于 3V, 可 以 选 择 比 低 VDD<br />
电 压 支 持 的 更 高 的 时 钟 速 度 。 违 反 VDD/<br />
FOSC 规 范 会 导 致 不 正 确 的 器 件 操 作 。<br />
2: 执 行 SLEEP 指 令 并 不 需 要 将 器 件 置 于 休 眠<br />
模 式 ; 执 行 SLEEP 指 令 只 是 一 个 简 单 地 触<br />
发 , 目 的 是 将 控 制 器 进 入 功 耗 管 理 模 式 ,<br />
该 模 式 通 过 OSCCON 寄 存 器 选 择 , 休 眠<br />
模 式 是 这 些 功 耗 管 理 模 式 中 的 一 种 。<br />
3.1.3 多 种 休 眠 命 令<br />
在 SLEEP 指 令 执 行 时 , 根 据 IDLEN 和 SCS 位 的 置 位 ,<br />
进 入 功 耗 管 理 模 式 。 如 果 执 行 了 另 一 条 SLEEP 指 令 , 器<br />
件 将 进 入 此 时 这 些 相 同 位 所 指 定 的 功 耗 管 理 模 式 。 如 果<br />
这 些 位 已 改 变 , 器 件 将 进 入 由 新 的 位 置 位 所 指 定 的 新 功<br />
耗 管 理 模 式 。<br />
3.1.4 运 行 和 空 闲 模 式 之 间 的 比 较<br />
运 行 模 式 的 时 钟 源 选 择 与 相 应 的 空 闲 模 式 相 同 。 当 执 行<br />
SLEEP 指 令 时 ,OSCCON 寄 存 器 的 SCS 位 用 于 在 不 同<br />
时 钟 源 之 间 切 换 。 因 此 , 如 果 执 行 SLEEP 指 令 时 时 钟 源<br />
发 生 改 变 , 时 钟 将 切 换 。<br />
在 空 闲 模 式 ,CPU 没 有 时 钟 源 , 同 时 也 不 运 行 。 在 运 行<br />
模 式 ,CPU 有 时 钟 源 并 执 行 代 码 。 这 一 不 同 将 造 成 WDT<br />
在 超 时 溢 出 时 的 操 作 不 同 。 在 空 闲 模 式 , WDT 超 时 会<br />
将 器 件 从 功 耗 管 理 模 式 中 唤 醒 。 在 运 行 模 式 , WDT 超<br />
时 将 引 发 WDT 复 位 ( 见 表 3-2)。<br />
在 从 空 闲 模 式 唤 醒 的 过 程 中 , 主 时 钟 做 好 准 备 之 前 ,<br />
CPU 进 入 相 应 的 运 行 模 式 , 并 开 始 执 行 代 码 。 主 时 钟 做<br />
好 准 备 后 , 时 钟 源 自 动 切 换 到 主 时 钟 。 在 唤 醒 的 过 程 中<br />
及 唤 醒 后 , IDLEN 和 SCS 位 都 不 变 。<br />
图 3-2 所 示 为 时 钟 源 切 换 过 程 中 系 统 的 时 序 。 这 个 示 例<br />
假 设 器 件 处 于 SEC_IDLE 或 SEC_RUN 模 式 时 被 唤 醒<br />
( 主 时 钟 被 配 置 为 HSPLL 模 式 )。<br />
DS39616B_CN 第 32 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 3-2:<br />
功 耗 管 理<br />
模 式<br />
功 耗 管 理 模 式 之 间 的 比 较<br />
CPU 的 时 钟 源<br />
WDT 超 时<br />
结 果<br />
外 设<br />
的 时 钟 源<br />
唤 醒 过 程 中 的 时 钟 源<br />
( 当 主 时 钟 就 绪 时 )<br />
休 眠 没 有 时 钟 源 ( 未 运 行 ) 唤 醒 没 有 时 钟 源 如 果 双 速 起 振 或 故 障 保 护 时 钟<br />
监 视 器 被 使 能 , 则 没 有 时 钟 源<br />
或 者 是 INTOSC 复 用 。<br />
任 何 空 闲 模 式 没 有 时 钟 源 ( 未 运 行 ) 唤 醒 主 时 钟 源 、 辅 助 时 钟 源<br />
或 INTOSC 复 用<br />
任 何 运 行 模 式<br />
辅 助 时 钟 源 或 INTOSC 复<br />
用<br />
复 位<br />
辅 助 时 钟 源 或 INTOSC<br />
复 用 器<br />
仍 为 空 闲 模 式 (CPU 的 运 行<br />
与 相 应 的 运 行 模 式 相 同 )。<br />
仍 为 运 行 模 式 。<br />
3.2 休 眠 模 式<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 功 耗 管 理 休 眠 模<br />
式 与 所 有 其 他 PICmicro ® 控 制 器 中 的 相 同 。 通 过 清 零<br />
IDLEN 和 SCS1:SCS0 位 ( 在 复 位 状 态 时 ), 并 执 行<br />
SLEEP 指 令 就 可 以 进 入 功 耗 管 理 休 眠 模 式 。 这 样 做 将 关<br />
闭 主 振 荡 器 并 清 零 OSTS 位 ( 见 图 3-1)。<br />
当 在 休 眠 模 式 中 ( 因 中 断 、 复 位 或 WDT 超 时 ) 发 生 唤<br />
醒 事 件 时 , 在 主 时 钟 源 就 绪 前 , 系 统 没 有 时 钟 源 ( 见<br />
图 3-2), 或 者 , 当 双 速 起 振 或 故 障 保 护 时 钟 监 视 器 被 使<br />
能 时 , 系 统 将 内 部 振 荡 电 路 作 为 时 钟 源 ( 见 第 22.0 节<br />
“CPU 的 特 殊 功 能 ”)。 在 这 两 种 情 况 下 , 当 主 时 钟 提<br />
供 系 统 时 钟 时 , OSTS 位 被 置 位 。 在 这 期 间 , 唤 醒 不 会<br />
影 响 IDLEN 和 SCS 位 。<br />
3.3 空 闲 模 式<br />
当 外 设 继 续 运 行 时 , IDLEN 位 允 许 控 制 器 的 CPU 选 择<br />
性 地 关 闭 。 清 零 IDLEN 位 允 许 CPU 有 时 钟 源 。 置 位<br />
IDLEN 位 , 禁 止 CPU 的 时 钟 源 , 并 有 效 停 止 程 序 执 行<br />
( 见 寄 存 器 2-2)。 不 管 IDLEN 位 是 否 置 位 , 外 设 都 继<br />
续 有 时 钟 源 。<br />
IDLEN 位 的 工 作 方 式 有 一 个 例 外 。 当 所 有 低 功 耗<br />
OSCCON 位 被 清 零 时 (IDLEN:SCS1:SCS0 = 000),<br />
执 行 SLEEP 指 令 , 器 件 就 进 入 休 眠 模 式 。 这 既 是<br />
OSCCON 寄 存 器 的 复 位 状 态 , 也 是 选 择 休 眠 模 式 的 设<br />
置 。 这 将 保 持 与 其 他 不 提 供 功 耗 管 理 模 式 的 PICmicro 器<br />
件 的 兼 容 性 。<br />
如 果 在 SLEEP 指 令 执 行 时 , 空 闲 使 能 位 IDLEN<br />
(OSCCON) 置 位 , 外 设 将 通 过 SCS1:SCS0 位 选<br />
定 的 时 钟 源 计 时 , 但 CPU 没 有 时 钟 源 。 由 于 CPU 没 有<br />
执 行 指 令 , 只 能 通 过 中 断 、 WDT 超 时 或 复 位 从 空 闲 模<br />
式 退 出 。<br />
当 唤 醒 事 件 发 生 时 ,CPU 在 准 备 好 执 行 代 码 前 , 要 延 迟<br />
大 约 10 µs。 当 CPU 开 始 执 行 代 码 时 , 它 的 时 钟 源 与 功<br />
耗 管 理 模 式 所 选 定 的 时 钟 源 相 同 ( 也 就 是 说 , 当 从<br />
RC_IDLE 模 式 唤 醒 时 , 内 部 振 荡 电 路 将 为 CPU 和 外 设<br />
计 时 , 直 到 主 时 钟 源 就 绪 。 这 是 基 本 的 RC_RUN 模<br />
式 )。 一 直 持 续 到 主 时 钟 源 就 绪 。 届 时 , OSTS 位 被 置<br />
位 , 系 统 时 钟 源 切 换 到 主 时 钟 ( 见 图 3-4)。 在 此 期 间 ,<br />
唤 醒 不 会 影 响 IDLEN 和 SCS 位 。<br />
在 任 何 空 闲 模 式 或 休 眠 模 式 中 ,WDT 超 时 会 导 致 WDT<br />
唤 醒 , 器 件 进 入 全 功 率 运 行 状 态 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 33 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 3-1:<br />
进 入 休 眠 模 式 的 转 换 时 序<br />
Q1 Q2<br />
Q3<br />
Q4<br />
Q1<br />
OSC1<br />
CPU<br />
时 钟<br />
外 设<br />
时 钟<br />
休 眠<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
图 3-2:<br />
从 休 眠 模 式 唤 醒 的 转 换 时 序 (HSPLL)<br />
Q1 Q2 Q3 Q4 Q1 Q2<br />
Q3 Q4 Q1 Q2<br />
Q3<br />
Q4<br />
Q1 Q2 Q3 Q4<br />
OSC1<br />
PLL 时 钟<br />
输 出<br />
TOST (1) TPLL (1)<br />
CPU 时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+4<br />
PC+6<br />
PC+8<br />
唤 醒 事 件<br />
OSTS 位 置 位<br />
注 1: TOST = 1024 TOSC ; TPLL = 2 ms ( 近 似 值 )。 这 些 间 隔 没 有 按 比 例 表 示 。<br />
DS39616B_CN 第 34 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.3.1 PRI_IDLE 模 式<br />
此 模 式 是 三 种 低 功 耗 空 闲 模 式 中 唯 一 不 禁 止 系 统 主 时 钟<br />
的 。 对 于 时 间 敏 感 的 应 用 来 说 , 由 于 时 钟 源 不 需 要 “ 热<br />
身 ” 或 从 其 他 振 荡 器 转 换 , 选 用 此 模 式 可 以 有 更 加 精 确<br />
的 主 时 钟 源 , 并 以 最 快 的 速 度 恢 复 器 件 运 行 。<br />
置 位 IDLEN 位 、 清 零 SCS 位 并 执 行 SLEEP 指 令 就 可<br />
以 进 入 PRI_IDLE 模 式 。 虽 然 CPU 被 禁 止 , 但 外 设 仍<br />
继 续 将 配 置 寄 存 器 1H 指 定 的 主 时 钟 源 作 为 时 钟 源 。 在<br />
PRI_IDLE 模 式 中 OSTS 位 保 持 置 位 ( 见 图 3-3)。<br />
当 唤 醒 事 件 发 生 时 ,CPU 将 主 时 钟 源 作 为 时 钟 源 。 在 唤<br />
醒 事 件 到 开 始 执 行 代 码 大 约 有 10 µs 的 延 迟 。 需 要 这 段<br />
时 间 让 CPU 做 好 准 备 执 行 指 令 。 在 唤 醒 之 后 ,OSTS 位<br />
保 持 置 位 状 态 。 在 这 期 间 , 唤 醒 不 会 影 响 IDLEN 和 SCS<br />
位 ( 见 图 3-4)。<br />
图 3-3:<br />
转 换 到 PRI_IDLE 模 式 的 时 序<br />
Q1<br />
Q2<br />
Q3 Q4 Q1<br />
OSC1<br />
CPU 时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
图 3-4:<br />
从 PRI_IDLE 模 式 唤 醒 的 转 换 时 序<br />
Q1 Q2<br />
Q3 Q4<br />
OSC1<br />
CPU 时 钟<br />
CPU 启 动 延 迟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
唤 醒 事 件<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 35 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.3.2 SEC_IDLE 模 式<br />
在 SEC_IDLE 模 式 中 , CPU 被 禁 止 , 但 外 设 继 续 将<br />
Timer1 振 荡 器 作 为 时 钟 源 。 通 过 置 位 空 闲 位 、 指 定<br />
SCS1:SCS0 = 01, 并 执 行 SLEEP 指 令 进 入 此 模 式 。 当<br />
时 钟 源 切 换 到 ( 见 图 3-5)Timer1 振 荡 器 时 , 主 振 荡 器<br />
关 闭 , 而 OSTS 位 被 清 零 且 T1RUN 位 被 置 位 。<br />
注 :<br />
Timer1 振 荡 器 应 该 在 进 入 SEC_IDLE 模 式<br />
前 运 行 。 如 果 执 行 SLEEP 指 令 时 T1OSCEN<br />
位 没 有 被 置 位 , 实 际 会 将 强 制 执 行 NOP 指<br />
令 并 不 进 入 SEC_IDLE 模 式 。 如 果 Timer1<br />
振 荡 器 被 使 能 , 但 是 还 没 有 运 行 , 外 设 时<br />
钟 将 被 延 迟 , 直 到 振 荡 器 启 动 , 在 这 样 的<br />
情 况 下 , 初 始 振 荡 器 运 行 很 不 稳 定 , 它 的<br />
运 行 结 果 无 法 预 料 。<br />
当 唤 醒 事 件 发 生 时 , 外 设 继 续 将 Timer1 振 荡 器 作 为 时 钟<br />
源 。 在 唤 醒 事 件 后 将 延 迟 10 µs,CPU 才 开 始 执 行 代 码 ,<br />
并 将 Timer1 振 荡 器 作 为 时 钟 源 。 单 片 机 在 SEC_RUN<br />
模 式 下 运 行 , 直 到 主 时 钟 就 绪 。 当 主 时 钟 就 绪 以 后 , 时<br />
钟 开 始 切 换 回 主 时 钟 ( 见 图 3-6) 。 时 钟 切 换 完 成 后 ,<br />
T1RUN 位 被 清 零 ,OSTS 位 被 置 位 , 且 主 时 钟 提 供 系 统<br />
时 钟 。 在 这 期 间 , 唤 醒 不 影 响 IDLEN 和 SCS 位 ,Timer1<br />
振 荡 器 继 续 运 行 。<br />
图 3-5:<br />
进 入 SEC_IDLE 模 式 的 转 换 时 序<br />
Q1 Q2<br />
Q3<br />
Q4<br />
Q1<br />
T1OSI<br />
OSC1<br />
1 2 3 4 5 6 7 8<br />
时 钟 转 换<br />
CPU<br />
时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
图 3-6:<br />
从 SEC_RUN 模 式 唤 醒 的 转 换 时 序 (HSPLL)<br />
Q1 Q2 Q3 Q4 Q1<br />
Q2 Q3 Q4 Q1 Q2 Q3<br />
T1OSI<br />
OSC1<br />
TOST (1) TPLL (1) 1 2 3 4 5 6 7 8<br />
PLL 时 钟<br />
输 出<br />
时 钟 转 换<br />
CPU 时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+4<br />
PC+6<br />
从 中 断 事 件 中 唤 醒<br />
OSTS 位 置 位<br />
注 1: TOST = 1024 TOSC ; TPLL = 2 ms ( 近 似 值 )。 这 些 间 隔 没 有 按 照 规 定 比 例 表 示 。<br />
DS39616B_CN 第 36 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.3.3 RC_IDLE 模 式<br />
在 RC_IDLE 模 式 下 ,CPU 被 禁 止 , 但 外 设 仍 继 续 使 用<br />
INTOSC 复 用 器 的 内 部 振 荡 电 路 作 为 时 钟 源 。 该 模 式 允<br />
许 在 空 闲 周 期 可 控 制 地 节 省 功 耗 。<br />
通 过 置 位 IDLEN 位 、 置 位 SCS1 位 (SCS0 被 忽 略 ),<br />
并 执 行 SLEEP 指 令 进 入 此 模 式 。 在 执 行 SLEEP 指 令 之<br />
前 , 通 过 指 定 IRCF 位 , INTOSC 复 用 器 可 以 用 于 选 择<br />
更 高 的 时 钟 频 率 。 当 时 钟 源 切 换 到 INTOSC 复 用 器 时<br />
( 见 图 3-7), 主 振 荡 器 关 闭 , OSTS 位 清 零 。<br />
如 果 IRCF 位 设 置 为 一 个 非 零 的 值 ( 从 而 使 能 INTOSC<br />
输 出 ), 在 INTOSC 输 出 趋 于 稳 定 后 ,IOFS 位 大 约 1ms<br />
内 被 置 位 。 当 INTOSC 源 稳 定 时 , 外 设 的 时 钟 源 将 继<br />
续 。 如 果 IRCF 位 在 SLEEP 指 令 执 行 之 前 就 设 置 为 一 个<br />
非 零 的 值 , 且 INTOSC 源 已 经 稳 定 , 则 IOFS 位 将 保 持<br />
置 位 状 态 。 如 果 IRCF 位 全 部 清 零 , INTOSC 输 出 没 有<br />
被 使 能 , IOFS 位 将 保 持 清 零 状 态 , 就 不 会 表 明 当 前 时<br />
钟 源 。<br />
当 唤 醒 事 件 发 生 时 , 外 设 继 续 将 INTOSC 复 用 器 作 为 时<br />
钟 源 。 唤 醒 事 件 后 将 延 迟 10 µs,CPU 才 开 始 执 行 代 码 ,<br />
将 INTOSC 复 用 器 作 为 时 钟 源 。 单 片 机 在 RC_RUN 模<br />
式 下 运 行 , 直 到 主 时 钟 就 绪 。 当 主 时 钟 就 绪 后 , 时 钟 开<br />
始 切 换 回 主 时 钟 ( 见 图 3-8) 。 当 时 钟 切 换 完 成 后 ,<br />
IOFS 位 清 零 ,OSTS 位 置 位 , 且 主 时 钟 提 供 系 统 时 钟 。<br />
在 这 期 间 , 唤 醒 不 影 响 IDLEN 和 SCS 位 。 如 果 WDT<br />
或 故 障 保 护 时 钟 监 视 器 被 使 能 ,INTRC 源 将 继 续 运 行 。<br />
图 3-7:<br />
进 入 RC_IDLE 模 式 的 转 换 时 序<br />
Q1<br />
Q2 Q3<br />
Q4<br />
Q1<br />
INTRC<br />
OSC1<br />
1 2 3 4 5 6 7 8<br />
时 钟 转 换<br />
CPU<br />
时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
图 3-8:<br />
从 RC_RUN 模 式 唤 醒 的 转 换 时 序 (RC_RUN 到 PRI_RUN)<br />
Q4<br />
Q1<br />
Q2 Q3 Q4 Q1<br />
Q2 Q3 Q4 Q1 Q2 Q3<br />
INTOSC<br />
复 用 器<br />
OSC1<br />
TOST (1) TPLL (1) 1 2 3 4 5 6 7 8<br />
PLL 时 钟<br />
输 出<br />
时 钟 转 换<br />
CPU 时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+4<br />
PC+6<br />
从 中 断 事 件 中 唤 醒<br />
OSTS 位 置 位<br />
注 1: TOST = 1024 TOSC ; TPLL = 2 ms ( 约 数 )。 这 些 间 隔 没 有 按 照 规 定 比 例 表 示 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 37 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.4 运 行 模 式<br />
如 果 IDLEN 位 在 SLEEP 指 令 执 行 时 被 清 零 ,CPU 和 外<br />
设 都 以 SCS1:SCS0 位 所 选 时 钟 作 为 时 钟 源 。 而 如 果 这<br />
些 操 作 模 式 不 能 提 供 节 省 功 耗 的 空 闲 或 休 眠 模 式 , 它 们<br />
允 许 器 件 使 用 更 低 频 率 的 时 钟 源 来 继 续 执 行 指 令 。<br />
RC_RUN 模 式 可 在 高 于 主 时 钟 的 频 率 下 执 行 代 码 。<br />
通 过 中 断 或 任 何 复 位 可 从 功 耗 管 理 运 行 模 式 中 唤 醒 , 返<br />
回 到 全 功 率 运 行 。 当 CPU 在 运 行 模 式 执 行 代 码 时 , 有<br />
几 种 可 以 退 出 运 行 模 式 的 方 法 。 包 括 退 出 到 休 眠 模 式 、<br />
退 出 到 相 应 的 空 闲 模 式 以 及 通 过 执 行 RESET 指 令 退 出 。<br />
当 器 件 处 于 任 一 种 功 耗 管 理 运 行 模 式 时 , WDT 超 时 将<br />
导 致 WDT 复 位 。<br />
3.4.1 PRI_RUN 模 式<br />
PRI_RUN 模 式 是 正 常 的 全 功 率 执 行 模 式 。 如 果 不 执 行<br />
SLEEP 指 令 , 单 片 机 就 在 此 模 式 下 运 行 ( 执 行 SLEEP<br />
指 令 可 进 入 其 他 功 耗 管 理 模 式 )。 当 发 生 中 断 或 WDT 超<br />
时 时 , 所 有 其 他 功 耗 管 理 模 式 都 退 出 至 PRI_RUN 模 式 。<br />
没 有 其 他 方 法 可 以 进 入 PRI_RUN 模 式 。 OSTS 位 被 置<br />
位 。 如 果 内 部 振 荡 电 路 为 主 时 钟 源 , IOFS 位 可 能 被 置<br />
位 ( 见 第 2.7.1 节 “ 振 荡 器 控 制 寄 存 器 ”)。<br />
3.4.2 SEC_RUN 模 式<br />
SEC_RUN 模 式 与 其 他 PIC18 器 件 的 时 钟 切 换 功 能 兼<br />
容 。 在 此 模 式 下 , CPU 和 外 设 将 Timer1 振 荡 器 作 为 时<br />
钟 源 。 这 让 用 户 在 使 用 高 精 度 时 钟 源 的 情 况 下 可 以 选 择<br />
更 低 的 功 耗 。<br />
通 过 清 零 IDLEN 位 、 设 置 SCS1:SCS0 = 01 并 执 行<br />
SLEEP 指 令 进 入 SEC_RUN 模 式 。 此 时 , 系 统 时 钟 源<br />
切 换 到 Timer1 振 荡 器 ( 见 图 3-9), 主 振 荡 器 关 闭 ,<br />
T1RUN 位 (T1CON) 置 位 且 OSTS 位 清 零 。<br />
注 :<br />
Timer1 振 荡 器 应 该 在 进 入 SEC_RUN 模 式<br />
之 前 开 始 运 行 。 如 果 执 行 SLEEP 指 令 时<br />
T1OSCEN 位 没 有 被 置 位 , 实 际 会 将 强 制 执<br />
行 NOP 指 令 并 不 进 入 SEC_IDLE 模 式 。 如<br />
果 Timer1 振 荡 器 已 经 被 使 能 , 但 仍 然 没 有<br />
开 始 运 行 , 系 统 时 钟 将 会 延 迟 , 直 到 振 荡<br />
器 起 振 。 在 这 种 情 况 下 , 初 始 振 荡 器 运 行<br />
很 不 稳 定 , 它 的 运 行 结 果 无 法 预 料 。<br />
当 发 生 唤 醒 事 件 时 , 外 设 和 CPU 继 续 将 Timer1 振 荡 器<br />
作 为 时 钟 源 , 同 时 主 时 钟 启 动 。 当 主 时 钟 就 绪 后 , 时 钟<br />
切 换 回 主 时 钟 ( 见 图 3-6)。 当 时 钟 切 换 完 成 后 ,T1RUN<br />
位 被 清 零 , OSTS 位 被 置 位 而 且 主 时 钟 提 供 系 统 时 钟 。<br />
在 这 期 间 , 唤 醒 不 影 响 IDLEN 和 SCS 位 ,Timer1 振 荡<br />
器 继 续 运 行 。<br />
固 件 可 以 强 制 从 SEC_RUN 模 式 退 出 。 通 过 清 零<br />
T1OSCEN 位 (T1CON) 可 以 从 SEC_RUN 退 出 ,<br />
返 回 到 正 常 的 全 功 率 运 行 模 式 。 尽 管 T1OSCEN 位 被 清<br />
零 ,Timer1 振 荡 器 仍 将 继 续 运 行 并 提 供 系 统 时 钟 。 主 时<br />
钟 启 动 。 当 主 时 钟 就 绪 后 , 时 钟 切 换 回 主 时 钟 ( 见 图 3-<br />
6)。 当 时 钟 切 换 完 成 后 ,Timer1 振 荡 器 被 禁 止 ,T1RUN<br />
位 被 清 零 , OSTS 位 被 置 位 , 而 且 主 时 钟 做 为 系 统 的 时<br />
钟 源 。 在 这 期 间 , 唤 醒 不 影 响 IDLEN 和 SCS 位 。<br />
图 3-9:<br />
进 入 SEC_RUN 模 式 的 转 换 时 序<br />
Q1 Q2<br />
Q3<br />
Q4<br />
Q1<br />
Q2 Q3 Q4 Q1 Q2 Q3<br />
T1OSI<br />
OSC1<br />
1 2 3 4 5 6 7 8<br />
时 钟 转 换<br />
CPU<br />
时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+2<br />
DS39616B_CN 第 38 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.4.3 RC_RUN 模 式<br />
RC_RUN 模 式 中 , 内 部 振 荡 电 路 通 过 INTOSC 复 用 器<br />
作 为 CPU 和 外 设 的 时 钟 源 , 此 时 主 时 钟 关 闭 。 在 使 用<br />
INTRC 源 时 , 此 模 式 是 所 有 运 行 模 式 中 最 节 省 功 耗 的 运<br />
行 模 式 , 并 仍 可 执 行 代 码 。 对 于 对 时 间 不 太 敏 感 或 不 是<br />
总 是 需 要 高 速 时 钟 的 用 户 应 用 , 选 用 此 模 式 运 行 非 常 合<br />
适 。<br />
如 果 主 时 钟 源 为 内 部 振 荡 电 路 (INTIO1 或 INTIO2 振 荡<br />
器 ), 在 PRI_RUN 和 RC_RUN 模 式 下 运 行 就 没 有 区<br />
别 。 但 是 在 进 入 和 退 出 RC_RUN 模 式 时 会 发 生 时 钟 切<br />
换 延 迟 。 因 此 , 如 果 主 时 钟 源 为 内 部 振 荡 电 路 , 不 建 议<br />
使 用 RC_RUN 模 式 。<br />
可 以 通 过 清 零 IDLEN 位 、 置 位 SCS1 位 (SCS0 被 忽<br />
略 ) 并 执 行 SLEEP 指 令 来 进 入 此 模 式 。IRCF 位 可 能 会<br />
在 执 行 SLEEP 指 令 前 选 择 时 钟 频 率 。 当 时 钟 源 切 换 到<br />
INTOSC 复 用 器 时 ( 见 图 3-10), 主 振 荡 器 关 闭 ,OSTS<br />
位 被 清 零 。<br />
IRCF 位 在 任 何 时 候 都 可 能 被 更 改 , 以 便 在 瞬 间 更 改 系<br />
统 时 钟 的 速 度 。 从 INTOSC 复 用 器 选 择 一 个 新 的 时 钟 频<br />
率 不 需 要 执 行 SLEEP 指 令 。<br />
注 :<br />
在 更 改 单 独 的 IRCF 位 时 应 该 特 别 小 心 。 如<br />
果 VDD 电 压 低 于 3V, 可 以 选 择 比 低 VDD<br />
电 压 所 支 持 的 更 高 的 时 钟 速 度 。 违 反 VDD/<br />
FOSC 规 范 会 导 致 不 正 确 的 器 件 操 作 。<br />
如 果 IRCF 位 全 部 被 清 零 , 则 INTOSC 输 出 没 有 被 使 能 ,<br />
且 IOFS 将 保 持 清 零 状 态 , 这 样 就 没 有 当 前 时 钟 源 的 指<br />
示 。 INTRC 源 提 供 系 统 时 钟 。<br />
如 果 IRCF 位 从 全 清 零 状 态 改 变 ( 从 而 使 能 INTOSC 输<br />
出 ), IOFS 位 在 INTOSC 输 出 开 始 稳 定 后 置 位 。 系 统<br />
时 钟 继 续 运 行 , 而 INTOSC 源 约 在 1ms 之 内 趋 于 稳 定 。<br />
如 果 IRCF 位 在 SLEEP 指 令 执 行 之 前 就 被 设 置 为 一 个 非<br />
零 值 , 而 且 INTOSC 源 已 经 稳 定 , IOFS 位 将 保 持 置 位<br />
状 态 。<br />
当 发 生 唤 醒 事 件 时 ,INTOSC 复 用 器 继 续 作 为 系 统 的 时<br />
钟 源 , 同 时 主 时 钟 启 动 。 当 主 时 钟 就 绪 后 , 时 钟 切 换 回<br />
主 时 钟 ( 见 图 3-8)。 当 时 钟 切 换 完 成 后 ,IOFS 位 被 清<br />
零 , OSTS 位 被 置 位 , 且 主 时 钟 提 供 系 统 时 钟 。 在 这 期<br />
间 , 唤 醒 不 影 响 IDLEN 和 SCS 位 。 如 果 WDT 或 故 障<br />
保 护 时 钟 监 视 器 被 使 能 , INTRC 源 将 继 续 运 行 。<br />
图 3-10:<br />
进 入 RC_RUN 模 式 的 转 换 时 序<br />
Q4<br />
Q1 Q2<br />
Q3<br />
Q4<br />
Q1 Q2 Q3 Q4 Q1 Q2<br />
Q3<br />
INTRC<br />
OSC1<br />
1 2 3 4 5 6 7 8<br />
时 钟 转 换<br />
CPU<br />
时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+4<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 39 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.4.4 退 出 到 空 闲 模 式<br />
通 过 置 位 IDLEN 位 和 执 行 SLEEP 指 令 可 以 从 功 耗 管 理<br />
运 行 模 式 退 出 到 相 应 的 空 闲 模 式 。 CPU 在 SLEEP 指 令<br />
后 的 下 一 个 指 令 开 始 时 停 止 运 行 。 任 何 时 钟 源 状 态 位<br />
(OSTS、 IOFS 或 T1RUN) 都 不 会 发 生 改 变 。 当 CPU<br />
停 止 时 , 外 设 继 续 使 用 前 面 选 定 的 时 钟 源 。<br />
3.4.5 退 出 到 休 眠 模 式<br />
通 过 清 零 IDLEN 位 和 SCS1:SCS0 位 并 执 行 SLEEP 指<br />
令 , 从 功 耗 管 理 运 行 模 式 退 出 到 休 眠 模 式 。 此 代 码 与 从<br />
正 常 运 行 ( 全 功 率 ) 模 式 调 用 休 眠 模 式 的 方 法 没 有 区<br />
别 。<br />
主 时 钟 和 内 部 振 荡 电 路 被 禁 止 。 如 果 WDT 使 能 ,INTRC<br />
将 继 续 运 行 。 如 果 在 T1CON 寄 存 器 中 使 能 了 Timer1 振<br />
荡 器 , 它 将 继 续 运 行 。 所 有 时 钟 源 状 态 位 (OSTS、<br />
IOFS 和 T1RUN) 被 清 零 。<br />
3.5 从 功 耗 管 理 模 式 唤 醒<br />
通 过 中 断 、 复 位 或 WDT 超 时 可 以 从 任 何 功 耗 管 理 模 式<br />
退 出 。 本 节 将 讨 论 会 导 致 退 出 功 耗 管 理 模 式 的 触 发 。 在<br />
每 个 功 耗 管 理 模 式 中 我 们 还 讨 论 了 时 钟 源 子 系 统 的 作 用<br />
( 见 第 3.2 到 3.4 节 )。<br />
注 :<br />
如 果 应 用 代 码 对 时 间 敏 感 , 它 应 在 继 续 执<br />
行 之 前 等 待 OSTS 位 置 位 。 利 用 低 功 耗 退<br />
出 序 列 期 间 的 间 隔 时 间 (OSTS 位 置 位 前 )<br />
执 行 对 时 间 不 敏 感 的 “ 日 常 管 理 ” 任 务 。<br />
从 低 功 耗 模 式 退 出 期 间 , 器 件 的 行 为 见 表 3-3 中 的 总<br />
结 。<br />
3.5.1 通 过 中 断 退 出<br />
任 何 可 用 的 中 断 源 都 可 以 导 致 器 件 退 出 功 耗 管 理 模 式 并<br />
恢 复 全 功 率 运 行 模 式 。 要 使 能 此 功 能 , 必 须 通 过 置 位<br />
INTCON 或 PIE 寄 存 器 中 对 应 的 使 能 位 来 使 能 中 断 源 。<br />
当 相 应 的 中 断 标 志 位 被 置 位 时 , 启 动 退 出 序 列 。 当 使 用<br />
中 断 从 低 功 耗 模 式 退 出 时 , 如 果 GIE/GIEH 位<br />
(INTCON) 被 置 位 , 代 码 执 行 就 会 跳 转 到 中 断 向<br />
量 。 否 则 代 码 执 行 就 会 继 续 或 重 新 开 始 , 不 会 跳 转 ( 见<br />
第 9.0 节 “ 中 断 ”)。<br />
DS39616B_CN 第 40 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 3-3: 从 休 眠 模 式 或 任 何 空 闲 模 式 唤 醒 时 的 行 为 和 退 出 延 迟 ( 通 过 时 钟 源 )<br />
功 耗 管 理 模 式<br />
的 时 钟 源<br />
系 统 主 时 钟<br />
功 耗 管 理 模 式<br />
退 出 延 迟<br />
时 钟 就 绪<br />
状 态 位<br />
(OSCCON)<br />
LP、 XT、 HS<br />
OSTS<br />
系 统 主 时 钟 HSPLL<br />
(PRI_IDLE EC、 RC、 5-10 µs (5)<br />
模 式 )<br />
INTRC (1) —<br />
INTOSC (2)<br />
IOFS<br />
EC, RC, INTRC (1) 5-10 µs (5) —<br />
INTRC (1) LP, XT, HS OST<br />
T1OSC 或 HSPLL<br />
OST + 2 ms<br />
OSTS<br />
INTOSC (2) 1ms (4) IOFS<br />
LP, XT, HS OST<br />
OSTS<br />
INTOSC (2) HSPLL<br />
OST + 2 ms<br />
EC, RC, INTRC (1) 5-10 µs (5) —<br />
INTOSC (2)<br />
无<br />
IOFS<br />
LP, XT, HS<br />
OST<br />
OSTS<br />
HSPLL<br />
OST + 2 ms<br />
休 眠 模 式<br />
EC, RC, INTRC (1) 5-10 µs (5) —<br />
INTOSC (2) 1ms (4) IOFS<br />
从 功 耗 管 理 模 式 唤 醒 过 程 中 的 行 为<br />
通 过 中 断 退 出<br />
通 过 复 位 退 出<br />
主 时 钟 提 供 CPU 和 外 没 有 时 钟 源 或<br />
设 时 钟 源 并 执 行 指 令 。 双 速 起 振<br />
( 如 果 被 使 能 ) (3) 。<br />
CPU 和 外 设 时 钟 源 由<br />
选 定 的 功 耗 管 理 模 式 时<br />
钟 提 供 并 执 行 指 令 直 到<br />
主 时 钟 源 就 绪 。<br />
无 时 钟 源 或 双 速 起 振<br />
( 如 果 被 使 能 ) 直 到 主<br />
时 钟 源 就 绪 (3) 。<br />
注 1: 这 种 情 况 是 特 别 针 对 INTRC 时 钟 源 的 。<br />
2: 包 括 INTOSC 8 MHz 时 钟 源 和 后 分 频 器 的 输 出 频 率 。<br />
3: 第 22.3 节 “ 双 速 起 振 ” 包 含 有 关 双 速 起 振 的 详 细 内 容 。<br />
4: 在 INTOSC 稳 定 期 间 , 代 码 将 继 续 执 行 。<br />
5: 从 休 眠 模 式 和 所 有 空 闲 模 式 唤 醒 时 都 需 要 延 迟 。 此 延 迟 与 其 他 所 需 延 迟 同 时 进 行 ( 见 第 3.3 节 “ 空 闲 模<br />
式 ”)。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 41 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.5.2 通 过 复 位 退 出<br />
通 常 , 器 件 通 过 振 荡 器 起 振 定 时 器 (OST) 保 持 在 复 位<br />
状 态 , 直 到 主 时 钟 ( 由 配 置 寄 存 器 1H 定 义 ) 就 绪 。 在<br />
这 个 时 候 , OSTS 位 被 置 位 , 器 件 开 始 执 行 代 码 。<br />
代 码 可 以 在 主 时 钟 就 绪 之 前 开 始 执 行 。 如 果 双 速 起 振<br />
( 见 第 22.3 节 “ 双 速 起 振 ”) 或 故 障 保 护 时 钟 监 视 器<br />
( 见 第 22.4 节 “ 故 障 保 护 时 钟 监 视 器 ”) 在 配 置 寄 存<br />
器 1H 中 被 使 能 , 一 旦 复 位 源 清 除 就 开 始 执 行 代 码 了 。<br />
由 内 部 振 荡 电 路 驱 动 的 INTOSC 复 用 器 作 为 代 码 执 行 的<br />
时 钟 源 。 由 于 OSCCON 寄 存 器 在 所 有 复 位 之 后 被 清 零 ,<br />
所 以 选 择 INTRC 时 钟 源 。 通 过 更 改 OSCCON 寄 存 器 中<br />
的 IRCF 位 可 以 选 择 速 度 更 高 的 时 钟 。 执 行 代 码 时 , 由<br />
内 部 振 荡 电 路 提 供 时 钟 源 直 到 主 时 钟 就 绪 , 或 者 在 主 时<br />
钟 就 绪 前 进 入 功 耗 管 理 模 式 , 然 后 关 闭 主 时 钟 。<br />
3.5.3 通 过 WDT 超 时 退 出<br />
根 据 超 时 发 生 时 器 件 所 处 的 不 同 功 耗 管 理 模 式 , WDT<br />
超 时 会 引 发 不 同 的 操 作 。<br />
如 果 器 件 没 有 在 执 行 代 码 ( 所 有 空 闲 模 式 和 休 眠 模<br />
式 ), 超 时 将 导 致 器 件 从 功 耗 管 理 模 式 唤 醒 ( 见 第 3.2<br />
节 “ 休 眠 模 式 ” 到 第 3.4 节 “ 运 行 模 式 ”)。<br />
如 果 器 件 在 执 行 代 码 ( 所 有 运 行 模 式 ) , 超 时 将 导 致<br />
WDT 复 位 ( 见 第 22.2 节 “ 看 门 狗 定 时 器 (WDT)”)。<br />
通 过 执 行 SLEEP 或 CLRWDT 指 令 使 WDT 定 时 器 和 后 分<br />
频 器 清 零 , 当 前 选 择 的 时 钟 源 失 效 ( 如 果 故 障 保 护 时 钟<br />
监 视 器 使 能 时 ) , 并 且 内 部 振 荡 电 路 作 为 系 统 时 钟 源<br />
时 , 修 改 OSCCON 寄 存 器 中 的 IRCF 位 。<br />
3.5.4 在 没 有 振 荡 器 起 振 延 迟 的 情 况 下 退 出<br />
从 功 耗 管 理 模 式 的 某 些 退 出 根 本 不 会 调 用 OST。 它 们<br />
是 :<br />
• 主 时 钟 源 没 有 停 止 的 PRI_IDLE 模 式 ; 和<br />
• 主 时 钟 源 不 是 LP、 XT、 HS 或 HSPLL 中 的 任 意<br />
一 种 。<br />
在 这 些 情 况 下 , 主 时 钟 源 不 需 要 振 荡 器 起 振 延 迟 , 因 为<br />
它 已 经 在 运 行 (PRI_IDLE), 或 者 它 本 来 就 不 需 要 振 荡<br />
器 起 振 延 迟 (RC、 EC 和 INTIO 振 荡 器 模 式 )。<br />
但 是 , 当 离 开 休 眠 和 空 闲 模 式 时 , 在 唤 醒 事 件 之 后 需 要<br />
一 个 固 定 的 延 迟 ( 大 约 为 10 µs)。 CPU 需 要 此 延 迟 来<br />
准 备 执 行 代 码 。 指 令 执 行 在 延 迟 后 的 第 一 个 时 钟 周 期 重<br />
新 开 始 。<br />
3.6 INTOSC 频 率 漂 移<br />
厂 家 将 内 部 振 荡 电 路 输 出 (INTOSC) 校 准 为 8MHz。<br />
但 是 , 此 频 率 可 能 会 随 着 VDD 电 压 或 温 度 的 改 变 而 发 生<br />
漂 移 , 这 可 能 会 以 各 种 方 式 影 响 控 制 器 运 行 。<br />
通 过 修 改 OSCTUNE 寄 存 器 内 的 值 能 够 调 整 INTOSC<br />
频 率 。 这 样 做 的 副 作 用 就 是 INTRC 时 钟 源 频 率 也 会 受<br />
到 影 响 。 但 是 , 使 用 INTRC 时 钟 源 的 功 能 部 件 往 往 不<br />
要 求 精 确 的 频 率 。 这 些 部 件 包 括 选 择 INTRC 时 钟 源 时 ,<br />
故 障 保 护 时 钟 监 视 器 、 看 门 狗 定 时 器 和 RC_RUN/<br />
RC_IDLE 模 式 。<br />
调 整 INTOSC 需 要 了 解 何 时 需 要 调 整 、 应 该 在 哪 个 方 向<br />
进 行 调 整 , 以 及 在 某 些 情 况 下 需 要 做 多 大 的 改 变 。 以 下<br />
是 三 个 示 例 , 但 是 可 能 会 用 到 其 他 技 术 。<br />
DS39616B_CN 第 42 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3.6.1 USART 示 例<br />
当 USART 在 异 步 模 式 下 开 始 产 生 帧 错 误 或 者 接 收 数 据<br />
有 误 时 , 表 示 可 能 需 要 调 整 。 帧 错 误 表 示 系 统 时 钟 频 率<br />
太 高 , 尝 试 减 小 OSCTUNE 寄 存 器 中 的 值 来 降 低 系 统 时<br />
钟 频 率 。 数 据 中 的 错 误 可 能 暗 示 着 系 统 时 钟 速 度 太 慢 ,<br />
尝 试 增 加 OSCTUNE 寄 存 器 中 的 值 。<br />
3.6.2 定 时 器 示 例<br />
此 技 术 可 以 将 系 统 时 钟 的 速 度 与 其 他 参 考 时 钟 进 行 比<br />
较 。 可 能 要 用 两 个 定 时 器 , 一 个 为 外 设 时 钟 提 供 时 钟<br />
源 , 而 另 一 个 由 一 个 固 定 的 参 考 时 钟 提 供 时 钟 源 , 比 如<br />
Timer1 振 荡 器 。<br />
两 个 定 时 器 都 被 清 零 , 但 由 参 考 时 钟 为 时 钟 源 的 定 时 器<br />
产 生 中 断 。 当 发 生 中 断 时 , 时 钟 源 在 内 部 的 定 时 器 被 读<br />
取 , 且 两 个 定 时 器 都 被 清 零 。 如 果 时 钟 源 在 内 部 的 定 时<br />
器 值 大 于 期 望 值 , 则 表 示 内 部 振 荡 电 路 运 行 过 快 , 尝 试<br />
减 小 OSCTUNE 寄 存 器 中 的 值 。<br />
3.6.3 捕 捉 模 式 的 CCP 示 例<br />
CCP 模 块 可 以 使 用 自 由 运 行 的 Timer1, 由 内 部 振 荡 电<br />
路 和 有 已 知 周 期 的 外 部 事 件 ( 即 , AC 电 源 频 率 ) 提 供<br />
时 钟 源 。 在 CCPRxH:CCPRxL 寄 存 器 中 记 录 捕 获 的 第<br />
一 个 事 件 时 间 , 以 供 稍 后 使 用 。 当 第 二 个 事 件 引 起 捕 捉<br />
时 , 第 二 个 事 件 的 时 间 减 去 第 一 个 事 件 的 时 间 。 由 于 外<br />
部 事 件 周 期 是 已 知 的 , 可 以 计 算 事 件 之 间 的 时 间 差 。<br />
如 果 测 量 得 到 的 时 间 比 计 算 得 到 的 时 间 大 很 多 , 则 表 示<br />
内 部 振 荡 电 路 运 行 过 快 , 尝 试 减 小 OSCTUNE 寄 存 器 中<br />
的 值 。 如 果 测 量 得 到 的 时 间 比 计 算 得 到 的 时 间 小 , 则 表<br />
示 内 部 振 荡 电 路 运 行 过 慢 , 尝 试 增 加 OSCTUNE 寄 存 器<br />
中 的 值 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 43 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 44 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
4.0 复 位<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 有 多 种 复 位 方 式 :<br />
a) 上 电 复 位 (POR)<br />
b) 正 常 工 作 下 的 MCLR 复 位<br />
c) 休 眠 状 态 下 的 MCLR 复 位<br />
d) 看 门 狗 定 时 器 (WDT) 复 位 ( 执 行 程 序<br />
期 间 )<br />
e) 可 编 程 欠 压 复 位 (Brown-out Reset, BOR)<br />
f) RESET 指 令<br />
g) 堆 栈 满 复 位<br />
h) 堆 栈 下 溢 复 位<br />
大 多 数 寄 存 器 不 受 复 位 的 影 响 。 在 POR 时 寄 存 器 状 态<br />
未 知 , 而 在 其 他 复 位 时 寄 存 器 状 态 不 会 改 变 。 根 据 所 发<br />
生 复 位 的 类 型 , 另 一 些 寄 存 器 会 被 强 行 置 为 “ 复 位 状<br />
态 ”。<br />
大 多 数 寄 存 器 不 受 WDT 唤 醒 的 影 响 , 这 是 因 为 WDT 唤<br />
醒 被 视 为 对 正 常 运 行 的 恢 复 。 如 表 4-2 所 示 ,RCON 寄<br />
存 器 中 的 状 态 位 :RI、 TO、 PD、 POR 和 BOR, 在 不<br />
同 的 复 位 情 况 下 会 分 别 被 置 位 或 清 零 。 这 些 状 态 位 在 软<br />
件 中 用 于 判 断 复 位 的 类 型 。 关 于 所 有 寄 存 器 复 位 状 态 的<br />
全 面 描 述 , 参 见 表 4-3。<br />
图 4-1 显 示 了 一 个 片 上 复 位 电 路 的 简 化 框 图 。<br />
增 强 型 MCU 器 件 在 MCLR 复 位 路 径 上 有 一 个 MCLR 噪<br />
声 滤 波 器 。 该 滤 波 器 可 以 检 测 并 滤 出 小 的 尖 脉 冲 信 号 。<br />
任 何 内 部 复 位 ( 包 括 WDT 复 位 ) 都 不 能 将 MCLR 引 脚<br />
驱 动 为 低 电 平 。<br />
由 MCLR 引 脚 提 供 的 MCLR 输 入 可 用 配 置 寄 存 器 3H 中<br />
的 MCLRE 位 (CONFIG3H) 禁 止 。 如 需 更 多 信<br />
息 , 参 见 第 22.1 节 “ 配 置 位 ”。<br />
图 4-1:<br />
RESET<br />
指 令<br />
堆 栈<br />
指 针<br />
片 上 复 位 电 路 的 简 化 框 图<br />
堆 栈 满 / 下 溢 复 位<br />
外 部 复 位<br />
MCLR<br />
( )_IDLE<br />
休 眠<br />
MCLRE<br />
WDT<br />
超 时<br />
VDD 上 升<br />
沿 检 测<br />
POR 脉 冲<br />
VDD<br />
欠 压<br />
复 位<br />
BOREN<br />
S<br />
OSC1<br />
OST/PWRT<br />
OST<br />
1024 周 期<br />
10 位 脉 动 计 数 器<br />
R<br />
Q<br />
Chip_Reset<br />
32 µs<br />
INTRC (1)<br />
PWRT<br />
65.5 ms<br />
11 位 脉 动 计 数 器<br />
使 能 PWRT<br />
使 能 OST (2)<br />
注 1: 这 是 来 自 内 部 振 荡 电 路 的 INTRC 时 钟 源 , 它 与 CLKI 引 脚 上 的 RC 振 荡 器 不 相 关 。<br />
2: 延 时 情 况 参 见 表 4-1。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 45 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
4.1 上 电 复 位 (POR)<br />
检 测 到 VDD 上 升 时 , 会 在 片 上 产 生 一 个 上 电 复 位 脉 冲 。<br />
要 利 用 POR 电 路 , 只 需 将 MCLR 引 脚 通 过 一 个 电 阻<br />
(1k 至 10 kΩ) 与 VDD 相 连 。 这 样 可 以 省 去 产 生 上 电 复<br />
位 延 时 通 常 所 需 的 外 接 RC 元 件 。 参 数 D004 标 明 了 VDD<br />
的 最 小 上 升 速 率 。 对 于 上 升 速 率 缓 慢 的 情 况 , 参 见 图 4-<br />
2。<br />
当 器 件 开 始 正 常 工 作 ( 即 退 出 复 位 状 态 ) 时 , 其 工 作 参<br />
数 ( 电 压 、 频 率 和 温 度 等 ) 必 须 在 相 应 的 工 作 范 围 内 ,<br />
以 确 保 正 常 工 作 。 如 果 不 满 足 这 些 条 件 , 器 件 必 须 保 持<br />
在 复 位 状 态 直 到 工 作 条 件 满 足 为 止 。<br />
图 4-2:<br />
注<br />
VDD<br />
D<br />
VDD<br />
R<br />
C<br />
外 部 上 电 复 位 电 路 ( 针 对<br />
VDD 上 升 速 率 缓 慢 的 情 况 )<br />
R1<br />
MCLR<br />
PIC18FXXXX<br />
1: 仅 当 VDD 上 升 速 率 太 慢 时 , 才 需 要 外 部<br />
上 电 复 位 电 路 。 当 VDD 掉 电 时 , 二 极 管<br />
D 有 助 于 电 容 快 速 放 电 。<br />
2: 建 议 R < 40 kΩ, 确 保 电 阻 R 两 端 压 降 符<br />
合 器 件 的 电 气 规 范 。<br />
3: 如 果 由 于 静 电 放 电 (Electrostatic<br />
Discharge, ESD) 或 过 度 电 应 力<br />
(Electrical Overstress, EOS) 导 致<br />
MCLR/VPP 引 脚 击 穿 , R1 ≥ 1 kΩ 将 限<br />
制 任 何 电 流 从 外 接 电 容 C 流 入 MCLR。<br />
4.2 上 电 延 时 定 时 器 (PWRT)<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 上 电 延 时 定 时 器<br />
(PWRT) 是 一 个 11 位 计 数 器 , 它 使 用 INTRC 时 钟 源<br />
作 为 时 钟 输 入 。 这 就 产 生 共 计 2048 × 32 µs =65.6ms<br />
的 延 迟 时 长 。 当 PWRT 计 数 时 , 器 件 保 持 在 复 位 状 态 。<br />
上 电 延 时 时 间 取 决 于 INTRC 时 钟 , 而 且 由 于 温 度 和 制<br />
造 工 艺 的 影 响 , 不 同 芯 片 的 延 迟 时 间 也 各 不 相 同 。 如 需<br />
了 解 详 细 信 息 , 参 见 DC 参 数 #33。<br />
通 过 清 零 配 置 位 PWRTEN 可 使 能 PWRT。<br />
4.3 振 荡 器 起 振 定 时 器 (OST)<br />
在 PWRT 延 时 结 束 以 后 ( 见 参 数 #33), 振 荡 器 起 振 定<br />
时 器 (OST) 提 供 了 1024 个 振 荡 器 周 期 的 延 时 ( 从<br />
OSC1 输 入 )。 这 可 以 确 保 晶 振 或 谐 振 器 起 振 和 并 建 立<br />
稳 定 的 振 荡 。<br />
只 有 在 XT、LP、HS 和 HSPLL 模 式 下 , 且 仅 当 发 生 上<br />
电 复 位 或 从 大 多 数 功 耗 管 理 模 式 退 出 时 ,OST 定 时 器 才<br />
启 动 工 作 。<br />
4.4 PLL 锁 定 延 时<br />
在 PLL 模 式 下 使 能 PLL, 上 电 复 位 后 的 延 时 序 列 与 其 他<br />
振 荡 器 模 式 稍 微 有 所 不 同 。 上 电 延 时 定 时 器 会 部 分 用 于<br />
提 供 足 够 的 固 定 延 时 , 让 PLL 锁 定 在 主 振 荡 器 频 率 上 。<br />
此 PLL 锁 定 延 时 (TPLL) 通 常 为 2 ms, 从 振 荡 器 起 振<br />
延 时 后 开 始 。<br />
4.5 欠 压 复 位 (BOR)<br />
配 置 位 BOREN 可 以 禁 止 ( 如 果 清 零 / 编 程 清 零 ) 或 使<br />
能 ( 如 果 置 位 ) 欠 压 复 位 电 路 。 如 果 VDD 电 压 下 降 到<br />
VBOR ( 参 数 D005) 以 下 , 且 持 续 时 间 超 过 TBOR ( 参<br />
数 #35), 这 种 欠 压 状 况 将 使 芯 片 复 位 。 如 果 VDD 电 压<br />
下 降 到 VBOR 以 下 , 持 续 时 间 少 于 TBOR, 不 一 定 会 发 生<br />
复 位 。 芯 片 将 保 持 在 欠 压 复 位 状 态 , 直 到 VDD 电 压 上 升<br />
到 VBOR 以 上 。 如 果 使 能 上 电 延 时 定 时 器 , 则 它 将 在 VDD<br />
电 压 上 升 到 VBOR 以 上 之 后 启 动 工 作 ; 并 使 芯 片 在 一 个<br />
额 外 的 延 时 TPWRT ( 参 数 #33) 期 间 保 持 复 位 。 如 果<br />
上 电 延 时 定 时 器 运 行 时 ,VDD 电 压 降 到 VBOR 以 下 , 芯<br />
片 将 重 新 回 到 欠 压 复 位 状 态 , 并 将 初 始 化 上 电 延 时 定 时<br />
器 。 一 旦 VDD 电 压 上 升 到 VBOR 以 上 , 上 电 延 时 定 时 器<br />
将 执 行 一 个 额 外 的 延 时 。 使 能 BOR 复 位 并 不 会 自 动 使<br />
能 PWRT。<br />
4.6 延 时 时 序<br />
上 电 时 的 延 时 时 序 如 下 : 首 先 , 在 POR 脉 冲 清 零 后 ,<br />
启 动 PWRT 延 时 ( 若 使 能 )。 然 后 , OST 被 激 活 。 总<br />
延 时 时 间 将 取 决 于 振 荡 器 的 配 置 和 PWRT 的 状 态 。 例<br />
如 , RC 模 式 下 禁 止 PWRT 时 , 根 本 不 会 出 现 延 时 。<br />
图 4-3 到 4-7 描 述 了 上 电 时 的 延 时 时 序 。<br />
因 为 延 时 的 发 生 由 POR 脉 冲 引 起 , 如 果 MCLR 保 持 足<br />
够 长 时 间 的 低 电 平 , 所 有 延 时 将 结 束 。 将 MCLR 电 平 拉<br />
高 后 程 序 将 立 即 执 行 ( 图 4-5)。 这 对 于 测 试 或 同 步 并<br />
行 工 作 的 多 个 PIC18FXXXX 器 件 是 非 常 有 用 的 。<br />
表 4-2 给 出 了 一 些 特 殊 功 能 寄 存 器 的 复 位 条 件 , 而<br />
表 4-3 给 出 了 所 有 寄 存 器 的 复 位 状 态 。<br />
DS39616B_CN 第 46 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-1:<br />
振 荡 器<br />
模 式<br />
不 同 情 况 下 的 延 时<br />
(2)<br />
上 电 复 位 和 欠 压 复 位<br />
从 功 耗 管 理 模 式<br />
退 出<br />
PWRTEN=0<br />
PWRTEN=1<br />
HSPLL 66 ms (1) +1024TOSC+2 ms (2) 1024 TOSC+2 ms (2) 1024 TOSC+2 ms (2)<br />
HS, XT, LP 66 ms (1) +1024 TOSC 1024 TOSC 1024 TOSC<br />
EC, ECIO 66 ms (1) - -<br />
RC, RCIO 66 ms (1) - -<br />
INTIO1, INTIO2 66 ms (1) - -<br />
注 1: 66 ms (65.5 ms) 是 上 电 延 时 定 时 器 (PWRT) 标 称 的 延 时 时 长 。<br />
2: 2 ms 是 4x PLL 锁 定 所 需 的 标 称 时 间 。<br />
寄 存 器 4-1:<br />
RCON 寄 存 器 位 和 位 置<br />
R/W-0 U-0 U-0 R/W-1 R-1 R-1 R/W-1 R/W-1<br />
IPEN — — RI TO PD POR BOR<br />
bit 7 bit 0<br />
注 : 关 于 位 的 定 义 , 请 参 阅 第 5.14 节 “RCON 寄 存 器 ”。<br />
表 4-2:<br />
状 态 位 及 其 含 义 和 RCON 寄 存 器 的 初 始 化 状 态<br />
条 件<br />
程 序 计 数 器<br />
RCON<br />
寄 存 器<br />
RI TO PD POR BOR STKFUL STKUNF<br />
上 电 复 位 0000h 0--1 1100 1 1 1 0 0 0 0<br />
RESET 指 令 0000h 0--0 uuuu 0 u u u u u u<br />
欠 压 0000h 0--1 11u- 1 1 1 u 0 u u<br />
处 于 功 耗 管 理 运 行 模 式 下 的 0000h 0--u 1uuu u 1 u u u u u<br />
MCLR<br />
处 于 功 耗 管 理 空 闲 和 休 眠 模 式 下 0000h 0--u 10uu u 1 0 u u u u<br />
的 MCLR<br />
全 速 或 功 耗 管 理 运 行 模 式 期 间 的 0000h 0--u 0uuu u 0 u u u u u<br />
WDT 超 时<br />
全 速 运 行 期 间 的 MCLR<br />
u u<br />
堆 栈 满 复 位 (STVREN=1) 0000h 0--u uuuu u u u u u 1 u<br />
堆 栈 下 溢 复 位 (STVREN=1) u 1<br />
堆 栈 下 溢 错 误 ( 不 是 真 正 的 复 0000h u--u uuuu u u u u u u 1<br />
位 , STVREN=0)<br />
功 耗 管 理 空 闲 或 休 眠 模 式 期 间 的 PC+2 u--u 00uu u 0 0 u u u u<br />
WDT 超 时<br />
发 生 中 断 , 退 出 功 耗 管 理 模 式 PC+2 (1) u--u u0uu u u 0 u u u u<br />
图 注 : u= 不 变 , x= 未 知 ,- = 未 实 现 位 , 读 作 0。<br />
注 1: 当 芯 片 被 中 断 唤 醒 且 GIEH 或 GIEL 位 被 置 位 时 , PC 装 入 中 断 向 量 (0x000008h 或 0x000018h)。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 47 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3:<br />
寄 存 器<br />
所 有 寄 存 器 的 初 始 化 状 态<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
TOSU 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---0 0000 ---0 0000 ---0 uuuu (3)<br />
TOSH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu (3)<br />
TOSL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu (3)<br />
STKPTR 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 00-0 0000 uu-0 0000 uu-u uuuu (3)<br />
PCLATU 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---0 0000 ---0 0000 ---u uuuu<br />
PCLATH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PCL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 PC+2 (2)<br />
TBLPTRU 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
TBLPTRH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TBLPTRL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TABLAT 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PRODH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
PRODL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
INTCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 000x 0000 000u uuuu uuuu (1)<br />
INTCON2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 -1-1 1111 -1-1 uuuu -u-u (1)<br />
INTCON3 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 11-0 0-00 11-0 0-00 uu-u u-uu (1)<br />
INDF0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTINC0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTDEC0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PREINC0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PLUSW0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
FSR0H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- xxxx ---- uuuu ---- uuuu<br />
FSR0L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
WREG 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
INDF1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTINC1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTDEC1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PREINC1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PLUSW1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
DS39616B_CN 第 48 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3: 所 有 寄 存 器 的 初 始 化 状 态 ( 续 )<br />
寄 存 器<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
FSR1H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- xxxx ---- uuuu ---- uuuu<br />
FSR1L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
BSR 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- 0000 ---- 0000 ---- uuuu<br />
INDF2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTINC2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
POSTDEC2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PREINC2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
PLUSW2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> N/A N/A N/A<br />
FSR2H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- xxxx ---- uuuu ---- uuuu<br />
FSR2L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
STATUS 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---x xxxx ---u uuuu ---u uuuu<br />
TMR0H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TMR0L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
T0CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 11-- 1111 11-- 1111 uu-- uuuu<br />
OSCCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
LVDCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0101 --00 0101 --uu uuuu<br />
WDTCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- ---0 ---- ---0 ---- ---u<br />
RCON (4) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0--1 11q0 0--q qquu u--u qquu<br />
TMR1H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
TMR1L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
T1CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 u0uu uuuu uuuu uuuu<br />
TMR2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PR2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 1111 1111<br />
T2CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu<br />
SSPBUF 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
SSPADD 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
SSPSTAT 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
SSPCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 49 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3: 所 有 寄 存 器 的 初 始 化 状 态 ( 续 )<br />
寄 存 器<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
ADRESH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
ADRESL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
ADCON0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
ADCON1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 00-0 1000 00-- 1000 uu-u uuuu<br />
ADCON2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
CCPR1H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
CCPR1L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
CCP1CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
CCPR2H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
CCPR2L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
CCP2CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
ANSEL0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
ANSEL1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- ---0 ---- ---0 ---- ---u<br />
T5CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
QEICON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
SPBRGH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
SPBRG 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
RCREG 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TXREG 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TXSTA 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 -010 0000 -010 uuuu -uuu<br />
RCSTA 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 000x 0000 000x uuuu uuuu<br />
BAUDCTL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -1-1 0-00 -1-1 0-00 -u-u u-uu<br />
EEADR 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
EEDATA 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
EECON1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xx-0 x000 uu-0 u000 uu-0 u000<br />
EECON2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 0000 0000<br />
IPR3 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---1 1111 ---1 1111 ---u uuuu<br />
PIE3 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---0 0000 ---0 0000 ---u uuuu<br />
PIR3 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---0 0000 ---0 0000 ---u uuuu<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
DS39616B_CN 第 50 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3: 所 有 寄 存 器 的 初 始 化 状 态 ( 续 )<br />
寄 存 器<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
IPR2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1--1 -1-1 1--1 -1-1 u--u -u-u<br />
PIR2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0--0 -0-0 0--0 -0-0 u--u -u-u<br />
PIE2 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0--0 -0-0 0--0 -0-0 u--u -u-u<br />
IPR1<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -111 1111 -111 1111 -uuu uuuu<br />
PIR1<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu (1)<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu (1)<br />
PIE1<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu<br />
OSCTUNE 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
ADCON3 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 00-0 0000 00-0 0000 uu-u uuuu<br />
ADCHS 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
TRISE (6) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- -111 ---- -111 ---- -uuu<br />
TRISD 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
TRISC 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
TRISB 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
TRISA (5) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 (5) 1111 1111 (5) uuuu uuuu (5)<br />
PR5H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
PR5L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
LATE (6) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- -xxx ---- -uuu ---- -uuu<br />
LATD 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
LATC 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
LATB 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
LATA (5) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx (5) uuuu uuuu (5) uuuu uuuu (5)<br />
TMR5H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
TMR5L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
PORTE (6) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- xxxx ---- xxxx ---- uuuu<br />
PORTD 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
PORTC 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
PORTB 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xxxx xxxx uuuu uuuu uuuu uuuu<br />
PORTA (5) 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> xx0x 0000 (5) uu0u 0000 (5) uuuu uuuu (5)<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 51 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3: 所 有 寄 存 器 的 初 始 化 状 态 ( 续 )<br />
寄 存 器<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
PTCON0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 uuuu uuuu uuuu uuuu<br />
PTCON1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 00-- ---- 00-- ---- uu-- ----<br />
PTMRL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PTMRH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- 0000 ---- 0000 ---- uuuu<br />
PTPERL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
PTPERH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- 1111 ---- 1111 ---- uuuu<br />
PDC0L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
PDC0H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PDC1L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PDC1H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
PDC2L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PDC2H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
PDC3L 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
PDC3H 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> --00 0000 --00 0000 --uu uuuu<br />
SEVTCMPL 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
SEVTCMPH 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> ---- 0000 ---- 0000 ---- uuuu<br />
PWMCON0 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -101 0000 -101 0000 -uuu uuuu<br />
PWMCON1 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0-00 0000 0-00 uuuu u-uu<br />
DTCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
FLTCONFIG 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu<br />
OVDCOND 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 1111 1111 1111 1111 uuuu uuuu<br />
OVDCONS 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> 0000 0000 0000 0000 uuuu uuuu<br />
CAP1BUFH/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
VELRH<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
CAP1BUFL/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
VELRL<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
CAP2BUFH/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
POSCNTH<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
CAP2BUFL/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
POSCNTL<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
DS39616B_CN 第 52 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 4-3: 所 有 寄 存 器 的 初 始 化 状 态 ( 续 )<br />
寄 存 器<br />
适 用 器 件<br />
上 电 复 位 和<br />
欠 压 复 位<br />
MCLR 复 位<br />
WDT 复 位<br />
RESET 指 令<br />
堆 栈 复 位<br />
通 过 WDT<br />
或 中 断 唤 醒 器 件<br />
CAP3BUFH/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
MAXCNTH<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
CAP3BUFL/ 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong><br />
MAXCNTL<br />
xxxx xxxx uuuu uuuu uuuu uuuu<br />
CAP1CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -0-- 0000 -0-- 0000 -u-- uuuu<br />
CAP2CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -0-- 0000 -0-- 0000 -u-- uuuu<br />
CAP3CON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -0-- 0000 -0-- 0000 -u-- uuuu<br />
DFLTCON 2331 <strong>2431</strong> <strong>4331</strong> <strong>4431</strong> -000 0000 -000 0000 -uuu uuuu<br />
图 注 : u= 不 变 , x= 未 知 , -= 未 实 现 位 , 读 作 0, q= 值 取 决 于 状 态 。<br />
阴 影 单 元 格 表 示 状 态 不 适 用 于 指 定 器 件 。<br />
注 1: INTCONx 或 PIRx 寄 存 器 中 的 一 位 或 多 位 会 受 到 影 响 ( 而 引 起 唤 醒 )。<br />
2: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 , PC 装 入 中 断 向 量 (0008h 或 0018h)。<br />
3: 当 芯 片 被 中 断 唤 醒 且 GIEL 或 GIEH 位 被 置 位 时 ,TOSU、TOSH 和 TOSL 被 PC 的 当 前 值 更 新 。STKPTR<br />
被 修 改 为 指 向 硬 件 堆 栈 中 的 下 一 个 单 元 。<br />
4: 关 于 特 定 状 态 下 的 复 位 值 , 参 见 表 4-2。<br />
5: 根 据 选 择 的 振 荡 器 模 式 , PORTA、 LATA 和 TRISA 中 的 bit 6 和 bit 7 被 使 能 。 如 果 不 作 为 PORTA 引 脚 使<br />
能 , 它 们 将 被 禁 止 且 读 作 0。<br />
6: 如 果 MCLR 功 能 被 禁 止 , PORTE 和 LATE 中 的 bit 3 将 被 使 能 。 如 果 不 作 为 PORTE 引 脚 使 能 , 它 们 将 被<br />
禁 止 且 读 作 0。 当 禁 止 MCLR 时 , 28 引 脚 器 件 的 PORTE 上 只 有 RE3 可 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 53 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 4-3:<br />
上 电 延 时 时 序 (MCLR 连 接 到 VDD, VDD 上 升 时 间 < TPWRT)<br />
VDD<br />
MCLR<br />
内 部 POR<br />
TPWRT<br />
PWRT 延 时<br />
TOST<br />
OST 延 时<br />
内 部 复 位<br />
图 4-4: 上 电 延 时 时 序 (MCLR 未 连 接 到 VDD): 情 形 1<br />
VDD<br />
MCLR<br />
内 部 POR<br />
TPWRT<br />
PWRT 延 时<br />
TOST<br />
OST 延 时<br />
内 部 复 位<br />
图 4-5: 上 电 延 时 时 序 (MCLR 未 连 接 到 VDD): 情 形 2<br />
VDD<br />
MCLR<br />
内 部 POR<br />
TPWRT<br />
PWRT 延 时<br />
TOST<br />
OST 延 时<br />
内 部 复 位<br />
DS39616B_CN 第 54 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 4-6:<br />
缓 慢 上 升 时 序 (MCLR 连 接 到 VDD, VDD 上 升 时 间 > TPWRT)<br />
5V<br />
VDD<br />
0V<br />
1V<br />
MCLR<br />
内 部 POR<br />
TPWRT<br />
PWRT 延 时<br />
TOST<br />
OST 延 时<br />
内 部 复 位<br />
图 4-7:<br />
发 生 POR 且 PLL 使 能 时 的 延 时 时 序 (MCLR 连 接 到 VDD)<br />
VDD<br />
MCLR<br />
内 部 POR<br />
TPWRT<br />
PWRT 延 时<br />
TOST<br />
OST 延 时<br />
TPLL<br />
PLL 延 时<br />
内 部 复 位<br />
注 : TOST=1024 个 时 钟 周 期 。<br />
TPLL ≈ 2 ms ( 最 大 值 ), PWRT 定 时 器 的 前 三 个 阶 段 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 55 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 56 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.0 存 储 器 构 成<br />
在 增 强 型 MCU 器 件 中 有 三 种 存 储 器 类 型 。 它 们 分 别 是 :<br />
• 程 序 存 储 器<br />
• 数 据 RAM<br />
• 数 据 EEPROM<br />
数 据 和 程 序 存 储 器 使 用 不 同 的 总 线 , 因 此 允 许 同 时 访 问<br />
这 两 种 存 储 器 。<br />
在 第 6.0 节 “ 闪 存 程 序 存 储 器 ” 和 第 7.0 节 “ 数 据<br />
EEPROM 存 储 器 ” 中 分 别 提 供 了 更 多 关 于 闪 存 程 序 存<br />
储 器 和 数 据 EEPROM 的 详 细 信 息 。<br />
5.1 程 序 存 储 器 构 成<br />
21 位 的 程 序 计 数 器 可 以 寻 址 2MB 的 程 序 存 储 器 空 间 。<br />
访 问 物 理 存 储 器 和 这 个 2MB 地 址 之 间 的 存 储 单 元 时 , 读<br />
取 都 为 “0”( 一 条 NOP 指 令 )。<br />
<strong>PIC18F2331</strong> 和 PIC18F<strong>4331</strong> 都 有 8KB 的 闪 存 存 储 器 ,<br />
能 够 存 储 多 达 4,096 条 单 字 指 令 。<br />
PIC18F<strong>2431</strong> 和 PIC18F<strong>4431</strong> 都 有 16 KB 的 闪 存 存 储<br />
器 , 能 够 存 储 多 达 8,192 条 单 字 指 令 。<br />
复 位 向 量 地 址 为 000000h, 中 断 向 量 地 址 为 000008h 和<br />
000018h。<br />
图 5-1 和 图 5-2 所 示 分 别 为 PIC18F2X31 和 PIC18F4X31<br />
器 件 的 程 序 存 储 器 映 射 图 。<br />
图 5-1:<br />
<strong>PIC18F2331</strong>/<strong>4331</strong> 的 程 序 存<br />
储 器 映 射 图 和 堆 栈<br />
图 5-2:<br />
PIC18F<strong>2431</strong>/<strong>4431</strong> 的 程 序 存<br />
储 器 映 射 图 和 堆 栈<br />
PC<br />
CALL,RCALL,RETURN<br />
RETFIE,RETLW<br />
堆 栈 级 1<br />
•<br />
堆 栈 级 31<br />
21<br />
PC<br />
CALL,RCALL,RETURN<br />
RETFIE,RETLW<br />
堆 栈 级 1<br />
•<br />
堆 栈 级 31<br />
21<br />
复 位 向 量 的 LSb<br />
000000h<br />
复 位 向 量 的 LSB<br />
000000h<br />
高 优 先 级 中 断 向 量 的 LSb<br />
000008h<br />
高 优 先 级 中 断 向 量 的 LSB<br />
000008h<br />
低 优 先 级 中 断 向 量 的 LSb<br />
000018h<br />
低 优 先 级 中 断 向 量 的 LSb<br />
000018h<br />
片 上 闪 存<br />
程 序 存 储 器<br />
001FFFh<br />
002000h<br />
片 上 闪 存<br />
程 序 存 储 器<br />
用 户 存 储 器<br />
空 间<br />
003FFFh<br />
004000h<br />
未 使 用 -<br />
读 作 0<br />
用 户 存 储 器<br />
空 间<br />
未 使 用 -<br />
读 作 0<br />
1FFFFFh<br />
1FFFFFh<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 57 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.2 返 回 地 址 堆 栈<br />
返 回 地 址 堆 栈 允 许 最 多 31 个 程 序 调 用 和 中 断 。 当 执 行<br />
CALL 或 RCALL 指 令 或 响 应 中 断 发 生 跳 转 时 , 程 序 计 数<br />
器 (Program Counter,PC) 的 值 会 被 压 入 堆 栈 。 而 执<br />
行 RETURN、 RETLW 或 RETFIE 指 令 时 ,PC 值 从 堆 栈<br />
弹 出 。PCLATU 和 PCLATH 不 受 任 何 RETURN 或 CALL<br />
指 令 的 影 响 。<br />
通 过 21 位 的 RAM 和 一 个 5 位 的 堆 栈 指 针 来 实 现 31 字<br />
的 堆 栈 操 作 , 在 全 部 复 位 后 , 堆 栈 指 针 初 始 化 为<br />
00000b。 堆 栈 指 针 00000b 与 RAM 无 关 。 这 仅 是 复 位<br />
值 。 执 行 CALL 类 型 指 令 时 , 产 生 进 栈 操 作 , 堆 栈 指 针<br />
首 先 加 1, 并 且 将 PC 的 内 容 写 入 堆 栈 指 针 指 向 的 RAM<br />
单 元 (PC 已 指 向 调 用 后 的 指 令 )。 执 行 RETURN 类 型<br />
指 令 时 , 产 生 出 栈 操 作 , STKPTR 所 指 向 的 RAM 单 元<br />
的 内 容 会 传 递 给 PC, 堆 栈 指 针 减 1。<br />
堆 栈 既 不 占 用 程 序 存 储 器 空 间 , 也 不 占 用 数 据 存 储 器 空<br />
间 。 堆 栈 指 针 可 以 读 写 , 并 且 通 过 栈 顶 的 特 殊 功 能 寄 存<br />
器 可 以 读 写 栈 顶 地 址 。 使 用 栈 顶 SFR 可 以 将 数 据 压 入 或<br />
弹 出 堆 栈 。 状 态 位 表 明 堆 栈 是 满 了 、 溢 出 还 是 下 溢 。<br />
5.2.1 栈 顶 访 问<br />
栈 顶 可 以 读 写 。 三 个 寄 存 器 单 元 TOSU、 TOSH 和<br />
TOSL 保 存 STKPTR 寄 存 器 所 指 向 的 堆 栈 单 元 的 内 容<br />
( 图 5-3)。 这 可 以 让 用 户 在 必 要 时 实 现 软 件 堆 栈 。 在<br />
CALL、RCALL 或 中 断 后 , 软 件 可 以 读 取 TOSU、TOSH<br />
和 TOSL 寄 存 器 来 获 取 进 栈 值 。 这 些 值 可 以 被 置 入 用<br />
户 定 义 的 软 件 堆 栈 。 返 回 时 , 软 件 可 以 替 换 TOSU、<br />
TOSH 和 TOSL 的 内 容 并 执 行 返 回 。<br />
为 防 止 意 外 的 堆 栈 破 坏 , 访 问 堆 栈 时 , 用 户 必 须 禁 止 全<br />
局 中 断 使 能 位 。<br />
5.2.2 返 回 堆 栈 指 针 (STKPTR)<br />
STKPTR 寄 存 器 ( 寄 存 器 5-1) 包 含 堆 栈 指 针 值 、<br />
STKFUL( 堆 栈 满 ) 状 态 位 和 STKUNF( 堆 栈 下 溢 ) 状<br />
态 位 。 堆 栈 指 针 值 是 0 到 31。 堆 栈 压 入 值 前 , 堆 栈 指 针<br />
加 1, 堆 栈 弹 出 值 后 , 堆 栈 指 针 减 1。 复 位 时 , 堆 栈 指<br />
针 值 是 0。 用 户 可 以 读 写 堆 栈 指 针 的 值 。 在 实 时 操 作 系<br />
统 可 以 利 用 此 特 性 来 维 护 返 回 堆 栈 。<br />
当 向 堆 栈 压 入 PC 值 31 次 ( 且 没 有 值 从 堆 栈 弹 出 ) 后 ,<br />
STKFUL 位 置 位 。 可 以 通 过 软 件 或 POR 清 零 。<br />
堆 栈 满 时 执 行 的 操 作 由 STVREN( 堆 栈 溢 出 复 位 使 能 ,<br />
Stack Overflow Reset Enable) 配 置 位 的 状 态 决 定 。( 有<br />
关 器 件 配 置 位 的 介 绍 , 请 参 阅 第 22.1 节 “ 配 置 位 ”。)<br />
如 果 STVREN 位 已 置 位 ( 缺 省 ), 第 31 次 进 栈 将 把<br />
(PC+2) 值 压 入 堆 栈 , 将 STKFUL 位 置 位 , 并 复 位 器<br />
件 。 STKFUL 位 将 保 持 置 位 , 而 堆 栈 指 针 将 被 置 0。<br />
如 果 STVREN 位 被 清 零 , 第 31 次 进 栈 时 STKFUL 位 会<br />
被 置 位 , 堆 栈 指 针 则 递 增 为 31。 任 何 其 他 进 栈 都 不 会 覆<br />
盖 第 31 次 的 进 栈 值 , 并 且 STKPTR 将 保 持 为 31。<br />
当 堆 栈 弹 出 次 数 足 够 清 空 堆 栈 时 , 下 一 次 出 栈 会 向 PC<br />
返 回 一 个 零 值 , 并 将 STKUNF 位 置 位 , 而 堆 栈 指 针 则 保<br />
持 为 0。STKUNF 位 将 保 持 置 位 状 态 , 直 到 软 件 清 零 或<br />
发 生 上 电 复 位 。<br />
注 :<br />
下 溢 时 , 将 零 值 返 回 给 PC, 会 使 程 序 指 向<br />
复 位 向 量 , 可 以 利 用 该 向 量 验 证 堆 栈 状 态<br />
并 采 取 相 应 的 操 作 。 这 与 复 位 不 同 , 因 为<br />
SFR 的 内 容 不 受 影 响 。<br />
图 5-3:<br />
返 回 地 址 堆 栈 和 相 关 寄 存 器<br />
TOSU<br />
00h<br />
TOSH<br />
1Ah<br />
TOSL<br />
34h<br />
返 回 地 址 堆 栈<br />
11111<br />
11110<br />
11101<br />
STKPTR<br />
00010<br />
栈 顶<br />
00011<br />
001A34h 00010<br />
000D58h 00001<br />
00000<br />
DS39616B_CN 第 58 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 5-1:<br />
STKPTR 寄 存 器<br />
R/C-0 R/C-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
STKFUL STKUNF — SP4 SP3 SP2 SP1 SP0<br />
bit 7 bit 0<br />
bit 7 (1) STKFUL: 堆 栈 满 标 志 位<br />
1= 堆 栈 满 或 溢 出<br />
0= 堆 栈 未 满 或 未 溢 出<br />
bit 6 (1) STKUNF: 堆 栈 下 溢 标 志 位<br />
1= 发 生 堆 栈 下 溢<br />
0= 未 发 生 堆 栈 下 溢<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4-0 SP4:SP0: 堆 栈 指 针 位 置 位<br />
注 1: 通 过 用 户 软 件 或 上 电 复 位 清 零 bit 7 和 bit 6。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 C= 只 可 清 零 位<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
5.2.3 PUSH 和 POP 指 令<br />
因 为 栈 顶 (Top-of-Stack, TOS) 可 以 读 写 , 所 以 将 值<br />
压 入 堆 栈 或 从 堆 栈 弹 出 而 不 影 响 程 序 的 正 常 执 行 的 功 能<br />
是 一 个 很 好 的 选 择 。 要 将 当 前 PC 值 压 入 堆 栈 , 可 以 执<br />
行 PUSH 指 令 。 这 将 使 堆 栈 指 针 加 1, 并 将 当 前 PC 值<br />
装 入 堆 栈 。 然 后 就 可 以 修 改 TOSU、 TOSH 和 TOSL,<br />
将 数 据 或 返 回 地 址 放 到 堆 栈 中 。<br />
使 用 POP 指 令 可 以 从 堆 栈 中 弹 出 TOS 的 值 , 并 用 前 一<br />
个 入 栈 值 来 替 换 TOS 值 , 而 不 会 影 响 程 序 的 正 常 执 行 。<br />
POP 指 令 通 过 将 堆 栈 指 针 减 1 来 丢 弃 当 前 的 TOS。 然 后<br />
前 一 个 入 栈 值 就 成 为 TOS 值 。<br />
5.2.4 堆 栈 满 / 下 溢 复 位<br />
通 过 对 配 置 寄 存 器 4L 中 的 STVREN 位 编 程 可 以 使 能 这<br />
些 复 位 。 当 STVREN 位 清 零 时 , 堆 栈 满 或 堆 栈 下 溢 的<br />
情 况 会 将 相 应 的 STKFUL 或 STKUNF 位 置 位 , 但 不 会<br />
使 器 件 复 位 。 当 STVREN 位 置 位 时 , 堆 栈 满 或 堆 栈 下<br />
溢 的 状 态 会 将 相 应 的 STKFUL 或 STKUNF 位 置 位 , 然<br />
后 使 器 件 复 位 。 通 过 用 户 软 件 或 上 电 复 位 清 零 STKFUL<br />
或 STKUNF 位 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 59 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.3 快 速 寄 存 器 堆 栈<br />
中 断 可 以 使 用 “ 快 速 返 回 ” 选 项 。 为 Status、 WREG<br />
和 BSR 寄 存 器 提 供 了 快 速 寄 存 器 堆 栈 , 其 深 度 仅 为 1。<br />
此 堆 栈 不 可 读 写 , 当 处 理 器 用 于 中 断 时 , 此 堆 栈 装 入 对<br />
应 寄 存 器 的 当 前 值 。 如 果 使 用 RETFIE, FAST 指 令 从<br />
中 断 返 回 , 这 些 寄 存 器 中 的 值 会 装 回 至 工 作 寄 存 器 。<br />
所 有 中 断 源 都 会 将 值 压 入 堆 栈 寄 存 器 。 如 果 同 时 使 能 了<br />
低 优 先 级 中 断 和 高 优 先 级 中 断 , 从 低 优 先 级 中 断 返 回<br />
时 , 无 法 可 靠 地 使 用 堆 栈 寄 存 器 。 如 果 在 为 低 优 先 级 中<br />
断 提 供 服 务 时 , 发 生 了 高 优 先 级 中 断 , 则 低 优 先 级 中 断<br />
存 储 的 堆 栈 寄 存 器 值 将 被 覆 盖 。 在 低 优 先 级 中 断 过 程<br />
中 , 用 户 必 须 用 软 件 保 护 关 键 寄 存 器 。<br />
如 果 未 使 用 中 断 优 先 级 , 所 有 中 断 都 可 以 使 用 快 速 寄 存<br />
器 堆 栈 从 中 断 返 回 。<br />
如 果 没 有 使 用 中 断 , 快 速 寄 存 器 堆 栈 可 以 用 于 在 子 程 序<br />
调 用 结 束 时 恢 复 Status、 WREG 和 BSR 寄 存 器 。 要 将<br />
快 速 寄 存 器 堆 栈 用 于 子 程 序 调 用 , 必 须 执 行 CALL<br />
label, FAST 指 令 将 Status、 WREG 和 BSR 寄 存 器<br />
的 内 容 存 入 快 速 寄 存 器 堆 栈 。 然 后 执 行 RETURN, FAST<br />
指 令 时 , 从 快 速 寄 存 器 堆 栈 恢 复 这 些 寄 存 器 的 值 。<br />
例 5-1 给 出 了 一 个 在 子 程 序 调 用 和 返 回 期 间 使 用 快 速 寄<br />
存 器 堆 栈 的 源 代 码 示 例 。<br />
5.4 PCL、 PCLATH 和 PCLATU<br />
程 序 计 数 器 (PC) 用 于 指 定 要 取 出 执 行 指 令 的 地 址 。<br />
PC 的 长 度 为 21 位 。 其 中 的 低 字 节 称 为 PCL 寄 存 器 ,<br />
该 寄 存 器 可 读 写 。 高 字 节 , 即 PCH 寄 存 器 , 包 含<br />
PC 位 , 不 可 直 接 读 写 。 但 可 以 通 过 PCLATH 寄<br />
存 器 更 新 PCH 寄 存 器 。 更 高 字 节 称 为 PCU。 该 寄 存 器<br />
包 含 PC 位 , 不 可 直 接 读 写 。 但 可 以 通 过<br />
PCLATU 寄 存 器 更 新 PCU 寄 存 器 。<br />
任 何 写 PCL 的 操 作 都 将 使 PCLATH 和 PCLATU 的 内 容<br />
传 送 到 程 序 计 数 器 。 类 似 地 , 读 PCL, 程 序 计 数 器 的 高<br />
两 位 字 节 将 被 传 送 到 PCLATH 和 PCLATU。 这 对 于 计 算<br />
PC 偏 移 量 很 有 用 ( 见 第 5.8.1 节 “ 计 算 GOTO”)。<br />
PC 在 程 序 存 储 器 中 按 字 节 寻 址 。 为 防 止 PC 偏 离 字 指<br />
令 ,PCL 的 LSB 值 固 定 为 0。PC 在 程 序 存 储 器 中 以 2<br />
为 增 量 对 连 续 指 令 寻 址 。<br />
CALL、RCALL、GOTO 和 程 序 跳 转 指 令 直 接 写 入 程 序 计<br />
数 器 。 对 于 这 些 指 令 ,PCLATH 和 PCLATU 的 内 容 不 会<br />
传 送 到 程 序 计 数 器 。<br />
例 5-1:<br />
CALL SUB1, FAST<br />
•<br />
•<br />
SUB1 •<br />
•<br />
RETURN FAST<br />
快 速 寄 存 器 堆 栈 代 码 示 例<br />
;STATUS, WREG, BSR<br />
;SAVED IN FAST REGISTER<br />
;STACK<br />
;RESTORE VALUES SAVED<br />
;IN FAST REGISTER STACK<br />
DS39616B_CN 第 60 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.5 时 序 图 / 指 令 周 期<br />
OSC1 引 脚 输 入 的 时 钟 信 号 在 器 件 内 部 经 过 4 分 频 后 产<br />
生 4 个 非 重 叠 的 正 交 时 钟 信 号 , 即 Q1、Q2、Q3 和 Q4。<br />
在 此 过 程 中 , 程 序 计 数 器 (PC) 在 每 个 Q1 时 递 增 , 在<br />
Q4 时 , 从 程 序 存 储 器 读 取 指 令 并 将 指 令 锁 存 到 指 令 寄<br />
存 器 中 。 指 令 的 译 码 和 执 行 是 在 下 一 个 Q1 到 Q4 中 完<br />
成 。 图 5-4 所 示 为 时 钟 和 指 令 执 行 流 程 图 。<br />
5.6 指 令 流 / 流 水 线<br />
一 个 “ 指 令 周 期 ” 由 4 个 Q 周 期 组 成 ( 即 Q1、 Q2、<br />
Q3 和 Q4)。 取 指 和 指 令 执 行 是 流 水 执 行 的 , 取 指 需 要<br />
一 个 指 令 周 期 , 而 译 码 和 执 行 需 要 另 一 个 指 令 周 期 。 但<br />
由 于 是 流 水 线 操 作 , 每 条 指 令 的 等 效 执 行 时 间 为 一 个 指<br />
令 周 期 。 如 果 某 条 指 令 改 变 了 程 序 计 数 器 ( 如 GOTO 指<br />
令 ) , 则 需 要 两 个 指 令 周 期 才 能 完 成 该 指 令 ( 见 例 5-<br />
2)。<br />
在 Q1 周 期 , 开 始 取 指 周 期 , 程 序 计 数 器 (PC) 递 增 。<br />
在 执 行 周 期 , 所 取 指 令 在 Q1 周 期 中 被 锁 存 到 指 令 寄 存<br />
器 (Instruction Register, IR)。 在 随 后 的 Q2、 Q3 和<br />
Q4 周 期 中 译 码 并 执 行 该 指 令 。 其 中 读 数 据 存 储 器 ( 读<br />
操 作 数 ) 发 生 在 Q2 周 期 , 写 操 作 发 生 在 Q4 周 期 ( 写<br />
目 标 )。<br />
图 5-4:<br />
OSC1<br />
Q1<br />
Q2<br />
Q3<br />
Q4<br />
PC<br />
OSC2/CLKO<br />
(RC 模 式 )<br />
时 钟 / 指 令 周 期<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
PC PC+2 PC+4<br />
执 行 指 令 (PC-2)<br />
取 指 令 (PC)<br />
执 行 指 令 (PC)<br />
取 指 令 (PC+2)<br />
执 行 指 令 (PC+2)<br />
取 指 令 (PC+4)<br />
内 部<br />
相 位<br />
时 钟<br />
例 5-2:<br />
指 令 流 水 线 流 程<br />
TCY0 TCY1 TCY2 TCY3 TCY4 TCY5<br />
1. MOVLW 55h 取 指 1 执 行 1<br />
2. MOVWF PORTB 取 指 2 执 行 2<br />
3. BRA SUB_1 取 指 3 执 行 3<br />
4. BSF PORTA, BIT3 ( 强 制 执 行 NOP) 取 指 4 清 空 (NOP)<br />
5. 在 SUB_1 地 址 的 指 令 取 指 SUB_1 执 行 SUB_1<br />
除 程 序 跳 转 指 令 外 , 所 有 的 指 令 都 是 单 周 期 指 令 。 由 于 程 序 跳 转 指 令 将 导 致 一 条 已 取 指 令 从 流 水 线 清 除 , 同 时 重 新<br />
取 指 , 然 后 执 行 指 令 , 所 以 需 要 两 个 周 期 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 61 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.7 程 序 存 储 器 中 的 指 令<br />
程 序 存 储 器 按 字 节 寻 址 。 指 令 以 2 字 节 或 4 字 节 的 形 式<br />
存 储 在 程 序 存 储 器 中 。 指 令 字 的 低 有 效 字 节 始 终 存 储 在<br />
偶 数 地 址 的 程 序 存 储 单 元 中 (LSB=0)。 图 5-5 给 出 了<br />
指 令 字 存 储 在 程 序 存 储 器 中 的 示 例 。 要 保 持 与 指 令 边 界<br />
对 齐 ,PC 以 2 为 单 位 递 增 , 并 且 LSB 总 是 读 作 0( 见<br />
第 5.4 节 “PCL、 PCLATH 和 PCLATU”)。<br />
CALL 和 GOTO 指 令 在 指 令 中 嵌 入 了 程 序 存 储 器 的 绝 对 地<br />
址 。 指 令 总 是 存 储 在 字 边 界 , 因 而 指 令 所 包 含 的 数 据 为<br />
字 地 址 。 字 地 址 会 写 入 PC, 它 可 以 在 程 序 存 储<br />
器 中 访 问 所 需 的 字 节 地 址 。 图 5-5 中 的 指 令 2 说 明 了 指<br />
令 “GOTO 000006h” 在 程 序 存 储 器 中 是 如 何 进 行 编 码<br />
的 。 程 序 跳 转 指 令 也 采 取 同 样 的 方 式 操 作 , 对 相 对 地 址<br />
偏 移 量 进 行 编 码 。 在 跳 转 指 令 中 的 偏 移 值 代 表 单 字 指 令<br />
数 ,PC 将 以 此 作 为 偏 移 量 。 第 23.0 节 “ 指 令 集 综 述 ”<br />
提 供 了 指 令 集 的 更 多 详 情 。<br />
图 5-5:<br />
程 序 存 储 器 中 的 指 令<br />
字 地 址<br />
LSB=1 LSB=0 ↓<br />
程 序 存 储 器<br />
字 节 单 元 →<br />
000000h<br />
000002h<br />
000004h<br />
000006h<br />
指 令 1: MOVLW 055h 0Fh 55h 000008h<br />
指 令 2: GOTO 000006h EFh 03h 00000Ah<br />
F0h 00h 00000Ch<br />
指 令 3: MOVFF 123h, 456h C1h 23h 00000Eh<br />
F4h 56h 000010h<br />
000012h<br />
000014h<br />
5.7.1 双 字 指 令<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 有 4 个 双 字 指 令 :<br />
MOVFF、 CALL、 GOTO 和 LFSR。 这 些 指 令 第 二 个 字 的 4<br />
个 MSB 均 置 为 “1”, 并 译 码 为 NOP 指 令 。 第 二 个 字<br />
的 低 12 位 则 包 含 指 令 要 使 用 的 数 据 。 如 果 执 行 指 令 的<br />
第 一 个 字 , 则 访 问 指 令 第 二 个 字 中 的 数 据 。 如 果 自 行 执<br />
行 指 令 的 第 二 个 字 ( 跳 过 了 第 一 个 字 ), 则 其 效 果 相 当<br />
于 NOP 指 令 。 如 果 双 字 指 令 跟 在 导 致 跳 过 操 作 的 条 件 指<br />
令 后 , 就 有 必 要 执 行 此 操 作 。 例 5-3 中 的 程 序 示 例 说 明<br />
此 概 念 。 如 需 了 解 指 令 集 的 更 多 详 情 , 请 参 阅 第 23.0 节<br />
“ 指 令 集 综 述 ”。<br />
例 5-3:<br />
双 字 指 令<br />
情 形 1:<br />
目 标 代 码<br />
源 代 码<br />
0110 0110 0000 0000 TSTFSZ REG1 ; is RAM location 0<br />
1100 0001 0010 0011 MOVFF REG1, REG2 ; No, skip this word<br />
1111 0100 0101 0110 ; Execute this word as a NOP<br />
0010 0100 0000 0000 ADDWF REG3 ; continue code<br />
情 形 2:<br />
目 标 代 码<br />
源 代 码<br />
0110 0110 0000 0000 TSTFSZ REG1 ; is RAM location 0<br />
1100 0001 0010 0011 MOVFF REG1, REG2 ; Yes, execute this word<br />
1111 0100 0101 0110 ; 2nd word of instruction<br />
0010 0100 0000 0000 ADDWF REG3 ; continue code<br />
DS39616B_CN 第 62 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.8 查 找 表<br />
实 现 查 找 表 有 两 种 方 法 :<br />
• 计 算 GOTO<br />
• 读 表<br />
5.8.1 计 算 GOTO<br />
通 过 向 程 序 计 数 器 加 一 个 偏 移 量 来 计 算 GOTO。 例 5-4 中<br />
给 出 了 这 样 的 示 例 。<br />
使 用 ADDWF PCL 指 令 和 一 组 RETLW 0xnn 指 令 可 以 组<br />
成 一 个 查 找 表 。 在 调 用 该 表 前 , 会 先 将 偏 移 量 装 入<br />
WREG 中 。 被 调 用 子 程 序 的 第 一 条 指 令 是 ADDWF PCL。<br />
接 下 来 执 行 的 是 RETLW 0xnn 指 令 , 它 将 向 调 用 函 数<br />
返 回 值 0xnn。<br />
偏 移 量 (WREG 中 的 值 ) 指 定 程 序 计 数 器 应 该 增 加 的<br />
字 节 数 , 其 值 应 为 2 的 倍 数 (LSB=0)。<br />
在 这 种 方 法 中 , 每 个 指 令 单 元 只 能 存 储 一 个 数 据 字 节 ,<br />
并 且 要 求 返 回 地 址 堆 栈 未 满 。<br />
例 5-4:<br />
MOVFWOFFSET<br />
CALLTABLE<br />
ORG 0xnn00<br />
TABLEADDWFPCL<br />
RETLW0xnn<br />
RETLW0xnn<br />
RETLW0xnn<br />
.<br />
.<br />
.<br />
5.8.2 读 表 / 写 表<br />
计 算 GOTO 使 用 偏 移 量<br />
将 数 据 存 储 在 程 序 存 储 器 的 更 好 方 法 允 许 在 每 个 指 令 单<br />
元 存 储 2 个 字 节 的 数 据 。<br />
通 过 读 / 写 表 , 每 个 程 序 字 可 以 存 储 2 个 字 节 的 查 找 表<br />
数 据 。 表 指 针 (TBLPTR) 指 定 字 节 地 址 , 而 表 锁 存 器<br />
(TABLAT) 则 包 含 从 程 序 存 储 器 读 取 或 写 入 程 序 存 储<br />
器 的 数 据 。 进 出 程 序 存 储 器 的 数 据 每 次 为 一 个 字 节 。<br />
第 6.1 节 “ 读 表 与 写 表 ” 中 有 关 于 读 表 / 写 表 操 作 的 进<br />
一 步 讨 论 。<br />
5.9 数 据 存 储 器 构 成<br />
数 据 存 储 器 以 静 态 RAM 实 现 。 在 数 据 存 储 器 中 , 每 个<br />
寄 存 器 有 12 位 地 址 , 其 空 间 可 达 4096 个 字 节 。 图 5-6<br />
所 示 为 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 数 据 存 储<br />
器 构 成 。<br />
数 据 存 储 器 分 为 16 个 存 储 区 , 每 个 存 储 区 包 含 256 字<br />
节 。 存 储 区 选 择 寄 存 器 (Bank Select Register,BSR)<br />
的 低 4 位 (BSR) 选 择 将 要 访 问 的 存 储 区 。 BSR<br />
的 高 4 位 是 未 实 现 位 。<br />
数 据 存 储 器 由 特 殊 功 能 寄 存 器 (Special Function<br />
Register, SFR) 和 通 用 寄 存 器 (General Purpose<br />
Register,GPR) 组 成 。SFR 用 于 单 片 机 和 外 设 功 能 的<br />
控 制 和 状 态 显 示 ,GPR 则 用 于 在 用 户 应 用 程 序 中 存 储 数<br />
据 和 高 速 暂 存 操 作 。 SFR 从 存 储 区 15 的 最 末 单 元<br />
(FFFh) 开 始 并 扩 展 到 F60h。 存 储 区 中 SFR 以 外 的 所<br />
有 剩 余 空 间 都 可 以 用 做 GPR。GPR 从 存 储 区 0 的 首 单<br />
元 开 始 , 并 向 上 分 布 。 读 取 任 何 未 实 现 单 元 时 , 将 读 作<br />
“0”。<br />
整 个 数 据 存 储 器 可 以 采 用 直 接 寻 址 或 间 接 寻 址 来 访 问 。<br />
直 接 寻 址 可 能 需 要 使 用 BSR 寄 存 器 。 间 接 寻 址 需 要 使<br />
用 文 件 选 择 寄 存 器 (File Select Register,FSRn) 和 相<br />
应 的 间 接 文 件 操 作 数 (Indirect File Operand,<br />
INDFn)。 每 个 FSR 保 存 一 个 12 位 的 地 址 值 , 使 用 该<br />
值 无 需 选 择 存 储 区 即 可 访 问 数 据 存 储 器 映 射 的 任 何 单<br />
元 。 有 关 间 接 寻 址 的 详 细 信 息 , 请 参 阅 第 5.12 节 “ 间<br />
接 寻 址 、 INDF 和 FSR 寄 存 器 ”。<br />
此 指 令 集 和 架 构 支 持 对 所 有 存 储 区 的 操 作 。 可 以 通 过 间<br />
接 寻 址 或 使 用 MOVFF 指 令 实 现 。 MOVFF 指 令 是 一 条 双<br />
字 / 双 周 期 指 令 , 它 将 值 从 一 个 寄 存 器 移 到 另 一 个 寄 存<br />
器 。<br />
无 论 当 前 BSR 值 如 何 , 要 确 保 能 在 一 个 周 期 访 问 常 用<br />
寄 存 器 (SFR 和 所 选 的 GPR), 需 要 实 现 一 个 快 速 访<br />
问 存 储 区 (Access Bank)。 存 储 区 0 的 一 段 和 存 储 区<br />
15 的 一 段 构 成 了 快 速 存 取 RAM (Access RAM)。 第<br />
5.10 节 “ 快 速 访 问 存 储 区 ” 给 出 了 快 速 存 取 RAM 的 详<br />
细 说 明 。<br />
5.9.1 通 用 寄 存 器 文 件<br />
增 强 型 MCU 器 件 可 能 在 GRP 区 有 连 续 的 存 储 区 。 上 电<br />
复 位 不 会 将 GPR 初 始 化 , 且 其 他 复 位 也 不 会 改 变 其 内<br />
容 。<br />
所 有 指 令 都 可 以 使 用 数 据 RAM 作 为 GPR 寄 存 器 。SFR<br />
都 包 含 在 存 储 区 15 的 后 半 部 分 (F60h 至 FFFh)。 数<br />
据 存 储 器 的 所 有 其 他 存 储 区 , 从 存 储 区 0 开 始 包 含 GPR<br />
寄 存 器 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 63 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 5-6:<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 数 据 存 储 器 映 射 图<br />
BSR<br />
数 据 存 储 器 映 射 图<br />
00h<br />
= 0000<br />
快 速 存 取 RAM<br />
存 储 区 0<br />
FFh<br />
GPR<br />
= 0001<br />
00h<br />
存 储 区 1<br />
GPR<br />
FFh<br />
00h<br />
= 0010 存 储 区 2<br />
GPR<br />
FFh<br />
00h<br />
000h<br />
05Fh<br />
060h<br />
0FFh<br />
100h<br />
1FFh<br />
200h<br />
2FFh<br />
300h<br />
= 0011<br />
= 1110<br />
存 储 区 3<br />
至<br />
存 储 区 14<br />
未 使 用<br />
读 作 “00h”<br />
快 速 访 问 存 储 区<br />
00h<br />
快 速 存 取 RAM 低 位<br />
5Fh<br />
快 速 存 取 RAM 高 位 60h<br />
(SFR)<br />
FFh<br />
当 a=0 时 :<br />
忽 略 BSR 而 使 用 快 速 访 问 存<br />
储 区 。<br />
= 1111<br />
00h<br />
存 储 区 15<br />
FFh<br />
未 使 用<br />
SFR<br />
EFFh<br />
F00h<br />
F5Fh<br />
F60h<br />
FFFh<br />
前 96 字 节 是 通 用 RAM ( 来<br />
自 存 储 区 0)。<br />
后 160 字 节 是 特 殊 功 能 寄 存<br />
器 ( 来 自 存 储 区 15)。<br />
当 a=1 时 :<br />
BSR 将 指 定 指 令 使 用 的 存 储<br />
区 。<br />
DS39616B_CN 第 64 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.9.2 特 殊 功 能 寄 存 器<br />
特 殊 功 能 寄 存 器 (SFR) 是 CPU 和 外 设 模 块 用 来 控 制<br />
器 件 操 作 的 寄 存 器 。 这 些 寄 存 器 以 静 态 RAM 实 现 。 表 5-<br />
1 和 表 5-2 列 出 了 这 些 寄 存 器 。<br />
SFR 可 分 为 两 类 , 一 类 与 内 核 功 能 有 关 , 另 一 类 与 外 设<br />
功 能 有 关 。 本 节 将 讲 述 与 内 核 功 能 有 关 的 特 殊 功 能 寄 存<br />
器 , 而 与 外 设 功 能 操 作 有 关 的 特 殊 功 能 寄 存 器 将 在 相 应<br />
的 外 设 功 能 模 块 章 节 中 讲 述 。<br />
SFR 常 分 布 在 外 设 中 , 用 来 控 制 外 设 功 能 模 块 。<br />
未 使 用 的 SFR 单 元 将 不 会 实 现 , 并 读 作 0。<br />
表 5-1:<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 特 殊 功 能 寄 存 器 映 射 图<br />
地 址 名 称 地 址 名 称 地 址 名 称 地 址 名 称 地 址 名 称<br />
FFFh TOSU FDFh INDF2 FBFh CCPR1H F9Fh IPR1 F7Fh PTCON0<br />
FFEh TOSH FDEh POSTINC2 FBEh CCPR1L F9Eh PIR1 F7Eh PTCON1<br />
FFDh TOSL FDDh POSTDEC2 FBDh CCP1CON F9Dh PIE1 F7Dh PTMRL<br />
FFCh STKPTR FDCh PREINC2 FBCh CCPR2H F9Ch - F7Ch PTMRH<br />
FFBh PCLATU FDBh PLUSW2 FBBh CCPR2L F9Bh OSCTUNE F7Bh PTPERL<br />
FFAh PCLATH FDAh FSR2H FBAh CCP2CON F9Ah ADCON3 F7Ah PTPERH<br />
FF9h PCL FD9h FSR2L FB9h ANSEL1 F99h ADCHS F79h PDC0L<br />
FF8h TBLPTRU FD8h STATUS FB8h ANSEL0 F98h - F78h PDC0H<br />
FF7h TBLPTRH FD7h TMR0H FB7h T5CON F97h - F77h PDC1L<br />
FF6h TBLPTRL FD6h TMR0L FB6h QEICON F96h TRISE F76h PDC1H<br />
FF5h TABLAT FD5h T0CON FB5h — F95h TRISD F75h PDC2L<br />
FF4h PRODH FD4h - FB4h — F94h TRISC F74h PDC2H<br />
FF3h PRODL FD3h OSCCON FB3h — F93h TRISB F73h PDC3L<br />
FF2h INTCON FD2h LVDCON FB2h — F92h TRISA F72h PDC3H<br />
FF1h INTCON2 FD1h WDTCON FB1h — F91h PR5H F71h SEVTCMPL<br />
FF0h INTCON3 FD0h RCON FB0h SPBRGH F90h PR5L F70h SEVTCMPH<br />
FEFh INDF0 FCFh TMR1H FAFh SPBRG F8Fh - F6Fh PWMCON0<br />
FEEh POSTINC0 FCEh TMR1L FAEh RCREG F8Eh - F6Eh PWMCON1<br />
FEDh POSTDEC0 FCDh T1CON FADh TXREG F8Dh LATE F6Dh DTCON<br />
FECh PREINC0 FCCh TMR2 FACh TXSTA F8Ch LATD F6Ch FLTCONFIG<br />
FEBh PLUSW0 FCBh PR2 FABh RCSTA F8Bh LATC F6Bh OVDCOND<br />
FEAh FSR0H FCAh T2CON FAAh BAUDCTL F8Ah LATB F6Ah OVDCONS<br />
FE9h FSR0L FC9h SSPBUF FA9h EEADR F89h LATA F69h CAP1BUFH<br />
FE8h WREG FC8h SSPADD FA8h EEDATA F88h TMR5H F68h CAP1BUFL<br />
FE7h INDF1 FC7h SSPSTAT FA7h EECON2 F87h TMR5L F67h CAP2BUFH<br />
FE6h POSTINC1 FC6h SSPCON FA6h EECON1 F86h - F66h CAP2BUFL<br />
FE5h POSTDEC1 FC5h - FA5h IPR3 F85h - F65h CAP3BUFH<br />
FE4h PREINC1 FC4h ADRESH FA4h PIR3 F84h PORTE F64h CAP3BUFL<br />
FE3h PLUSW1 FC3h ADRESL FA3h PIE3 F83h PORTD F63h CAP1CON<br />
FE2h FSR1H FC2h ADCON0 FA2h IPR2 F82h PORTC F62h CAP2CON<br />
FE1h FSR1L FC1h ADCON1 FA1h PIR2 F81h PORTB F61h CAP3CON<br />
FE0h BSR FC0h ADCON2 FA0h PIE2 F80h PORTA F60h DFLTCON<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 65 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 5-2:<br />
寄 存 器 文 件 综 述 (<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>)<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 与 BOR<br />
时 的 值<br />
详 情 请 见 :<br />
( 页 )<br />
TOSU - - - 栈 顶 更 高 字 节 (TOS) ---0 0000 48, 58<br />
TOSH 栈 顶 高 字 节 (TOS) 0000 0000 48, 58<br />
TOSL 栈 顶 低 字 节 (TOS) 0000 0000 48, 58<br />
STKPTR STKFUL STKUNF - 返 回 堆 栈 指 针 00-0 0000 48, 59<br />
PCLATU - - bit 21 (3) PC 的 保 持 寄 存 器 ---0 0000 48, 60<br />
PCLATH PC 的 保 持 寄 存 器 0000 0000 48, 60<br />
PCL PC 的 低 字 节 (PC) 0000 0000 48, 60<br />
TBLPTRU - - bit 21 (3) 程 序 存 储 器 表 指 针 更 高 字 节 (TBLPTR) --00 0000 48, 78<br />
TBLPTRH 程 序 存 储 器 表 指 针 高 字 节 (TBLPTR) 0000 0000 48, 78<br />
TBLPTRL 程 序 存 储 器 表 指 针 低 字 节 (TBLPTR) 0000 0000 48, 78<br />
TABLAT 程 序 存 储 器 表 锁 存 器 0000 0000 48, 78<br />
PRODH 乘 积 寄 存 器 高 字 节 xxxx xxxx 48, 89<br />
PRODL 乘 积 寄 存 器 低 字 节 xxxx xxxx 48, 89<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0F RBIF 0000 000x 48, 93<br />
INTCON2 RBPU INTEDG0 INTEDG1 INTEDG2 - TMR0IP - RBIP 1111 -1-1 48, 94<br />
INTCON3 INT2P INT1P - INT2IE INT1IE - INT2IF INT1IF 11-0 0-00 48, 95<br />
INDF0 使 用 FSR0 的 内 容 寻 址 数 据 存 储 器 , FSR0 的 值 不 改 变 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
POSTINC0 使 用 FSR0 的 内 容 寻 址 数 据 存 储 器 , FSR0 的 值 后 递 增 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
POSTDEC0 使 用 FSR0 的 内 容 寻 址 数 据 存 储 器 , FSR0 的 值 后 递 减 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
PREINC0 使 用 FSR0 的 内 容 寻 址 数 据 存 储 器 , FSR0 的 值 预 递 增 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
PLUSW0 使 用 FSR0 的 内 容 寻 址 数 据 存 储 器 , FSR0 的 值 按 W 中 的 值 偏 移 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
FSR0H — — — — 间 接 数 据 存 储 器 地 址 指 针 0 的 高 位 字 节 ---- 0000 48, 71<br />
FSR0L 间 接 数 据 存 储 器 地 址 指 针 0 的 低 位 字 节 xxxx xxxx 48, 71<br />
WREG 工 作 寄 存 器 xxxx xxxx 48<br />
INDF1 使 用 FSR1 的 内 容 寻 址 数 据 存 储 器 , FSR1 的 值 不 改 变 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
POSTINC1 使 用 FSR1 的 内 容 寻 址 数 据 存 储 器 , FSR1 的 值 后 递 增 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
POSTDEC1 使 用 FSR1 的 内 容 寻 址 数 据 存 储 器 , FSR1 的 值 后 递 减 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
PREINC1 使 用 FSR1 的 内 容 寻 址 数 据 存 储 器 , FSR1 的 值 预 递 增 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
PLUSW1 使 用 FSR1 的 内 容 寻 址 数 据 存 储 器 , FSR1 的 值 按 W 中 的 值 偏 移 ( 不 是 物 理 寄 存 器 ) N/A 48, 71<br />
FSR1H - - - - 间 接 数 据 存 储 器 地 址 指 针 1 的 高 位 字 节 ---- 0000 49, 71<br />
FSR1L 间 接 数 据 存 储 器 地 址 指 针 1 的 低 位 字 节 xxxx xxxx 49, 71<br />
BSR - - - - 存 储 区 选 择 寄 存 器 ---- 0000 49, 70<br />
INDF2 使 用 FSR2 的 内 容 寻 址 数 据 存 储 器 , FSR2 的 值 不 改 变 ( 不 是 物 理 寄 存 器 ) N/A 49, 71<br />
POSTINC2 使 用 FSR2 的 内 容 寻 址 数 据 存 储 器 , FSR2 的 值 后 递 增 ( 不 是 物 理 寄 存 器 ) N/A 49, 71<br />
POSTDEC2 使 用 FSR2 的 内 容 寻 址 数 据 存 储 器 , FSR2 的 值 后 递 减 ( 不 是 物 理 寄 存 器 ) N/A 49, 71<br />
PREINC2 使 用 FSR2 的 内 容 寻 址 数 据 存 储 器 , FSR2 的 值 预 递 增 ( 不 是 物 理 寄 存 器 ) N/A 49, 71<br />
PLUSW2 使 用 FSR2 的 内 容 寻 址 数 据 存 储 器 , FSR2 的 值 按 W 中 的 值 偏 移 ( 不 是 物 理 寄 存 器 ) N/A 49, 71<br />
FSR2H - - - - 间 接 数 据 存 储 器 地 址 指 针 2 的 高 位 字 节 ---- 0000 49, 71<br />
FSR2L 间 接 数 据 存 储 器 地 址 指 针 2 的 低 位 字 节 xxxx xxxx 49, 71<br />
STATUS - - - N OV Z DC C ---x xxxx 49, 73<br />
TMR0H Timer0 寄 存 器 高 位 字 节 0000 0000 49, 135<br />
TMR0L Timer0 寄 存 器 低 位 字 节 xxxx xxxx 49, 135<br />
T0CON TMR0ON T016BIT - - T0PS3 T0PS2 T0PS1 T0PS0 11-- 1111 49, 133<br />
图 注 : x= 未 知 , u= 不 变 , –= 未 实 现 , q= 值 取 决 于 条 件<br />
注 1: 仅 在 RCIO、 ECIO 和 INTIO2 (RA6 使 能 I/O 端 口 引 脚 功 能 ) 振 荡 模 式 下 , RA6 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均<br />
读 作 0。<br />
2: 仅 在 INTIO2 振 荡 模 式 下 , RA7 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均 读 作 0。<br />
3: PC 的 bit 21 仅 在 测 试 模 式 和 串 行 编 程 模 式 下 可 用 。<br />
4: 如 果 PBADEN=0, PORTB 被 配 置 为 数 字 输 入 且 读 作 未 知 。 而 如 果 PBADEN=1, 则 PORTB 被 配 置 为<br />
模 拟 输 入 且 在 复 位 后 读 作 0。<br />
5: 这 些 寄 存 器 和 / 或 位 在 PIC18F2X31 器 件 上 未 实 现 , 且 读 作 0。<br />
6: 仅 当 MCLRE 熔 丝 (CONFIG3H) 被 编 程 为 0 时 , RE3 端 口 位 可 用 。 否 则 , RE3 读 作 0。 该 位 只 读 。<br />
DS39616B_CN 第 66 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 5-2: 寄 存 器 文 件 综 述 (<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>) ( 续 )<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 与 BOR<br />
时 的 值<br />
详 情 请 见 :<br />
( 页 )<br />
OSCCON IDLEN IRCF2 IRCF1 IRCF0 OSTS IOFS SCS1 SCS0 0000 q000 28, 49<br />
LVDCON - - IVRST LVDEN LVDL3 LVDL2 LVDL1 LVDL0 --00 0101 49, 263<br />
WDTCON WDTW<br />
- - - - - -<br />
SWDTEN 0000 0000 49, 279<br />
RCON IPEN - - RI TO PD POR BOR 0--1 11qq 47, 74, 105<br />
TMR1H Timer1 寄 存 器 高 字 节 xxxx xxxx 49, 141<br />
TMR1L Timer1 寄 存 器 低 字 节 xxxx xxxx 49, 141<br />
T1CON RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 49, 137<br />
TMR2 Timer2 寄 存 器 0000 0000 49, 143<br />
PR2 Timer2 周 期 寄 存 器 1111 1111 49, 143<br />
T2CON - TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 49, 143<br />
SSPBUF SSP 接 收 缓 冲 器 / 发 送 寄 存 器 xxxx xxxx 49, 220<br />
SSPADD I 2 C 从 动 模 式 下 的 SSP 地 址 寄 存 器 。 I 2 C 主 动 模 式 下 的 SSP 波 特 率 重 载 寄 存 器 。 0000 0000 49, 220<br />
SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000 49, 212<br />
SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 49, 213<br />
ADRESH A/D 结 果 寄 存 器 高 字 节 xxxx xxxx 50, 259<br />
ADRESL A/D 结 果 寄 存 器 低 字 节 xxxx xxxx 50, 259<br />
ADCON0 - - ACONV ACSCH ACMOD1 ACMOD0 GO/DONE ADON --00 0000 50, 244<br />
ADCON1 VCFG1 VCFG0 - FIFOEN BFEMT FFOVFL ADPNT1 ADPNT0 00-0 1000 50, 245<br />
ADCON2 ADFM ACQT3 ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0 0000 0000 50, 246<br />
ADCON3 ADRS1 ADRS0 - SSRC4 SSRC3 SSRC2 SSRC1 SSRC0 00-0 0000 51. 247<br />
ADCSH GDSEL1 GDSEL0 GBSEL1 GBSEL0 GCSEL1 GCSEL0 GASEL1 GASEL0 0000 0000 51, 248<br />
CCPR1H 捕 捉 / 比 较 /PWM 寄 存 器 1 高 字 节 xxxx xxxx 50, 152<br />
CCPR1L 捕 捉 / 比 较 /PWM 寄 存 器 1 低 字 节 xxxx xxxx 50, 152<br />
CCP1CON - - DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 50, 155,<br />
149<br />
CCPR2H 捕 捉 / 比 较 /PWM 寄 存 器 2 高 字 节 xxxx xxxx 50, 152<br />
CCPR2L 捕 捉 / 比 较 /PWM 寄 存 器 2 低 字 节 xxxx xxxx 50, 152<br />
CCP2CON - - DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 50, 155<br />
ANSEL1 - - - - - - - ANS8 ---- ---1 50, 249<br />
ANSEL0 ANS7 (6) ANS6 (6) ANS5 (6) ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 50, 249<br />
T5CON T5SEN RESEN (5) T5MOD T5PS1 T5PS0 T5SYNC TMR5CS TMR5ON 0100 0000 50, 145<br />
QEICON VELM ERROR UP/DOWN QEIM2 QEIM1 QEIM0 PDEC1 PDEC0 0000 0000 50, 171<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 字 节 0000 0000 50, 225<br />
SPBRG USART 波 特 率 发 生 器 0000 0000 50, 225<br />
RCREG USART 接 收 寄 存 器 0000 0000 50, 233,<br />
232<br />
TXREG USART 发 送 寄 存 器 0000 0000 50, 230,<br />
232<br />
TXSTA CSRC TX9 TXEN SYNC - BRGH TRMT TX9D 0000 -010 50, 222<br />
RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 50, 223<br />
BAUDCTL - RCIDL - SCKP BRG16 - WUE ABDEN -1-1 0-00 50, 224<br />
图 注 : x= 未 知 , u= 不 变 , –= 未 实 现 , q= 值 取 决 于 条 件<br />
注 1: 仅 在 RCIO、 ECIO 和 INTIO2 (RA6 使 能 I/O 端 口 引 脚 功 能 ) 振 荡 模 式 下 , RA6 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均<br />
读 作 0。<br />
2: 仅 在 INTIO2 振 荡 模 式 下 , RA7 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均 读 作 0。<br />
3: PC 的 bit 21 仅 在 测 试 模 式 和 串 行 编 程 模 式 下 可 用 。<br />
4: 如 果 PBADEN=0, PORTB 被 配 置 为 数 字 输 入 且 读 作 未 知 。 而 如 果 PBADEN=1, 则 PORTB 被 配 置 为<br />
模 拟 输 入 且 在 复 位 后 读 作 0。<br />
5: 这 些 寄 存 器 和 / 或 位 在 PIC18F2X31 器 件 上 未 实 现 , 且 读 作 0。<br />
6: 仅 当 MCLRE 熔 丝 (CONFIG3H) 被 编 程 为 0 时 , RE3 端 口 位 可 用 。 否 则 , RE3 读 作 0。 该 位 只 读 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 67 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 5-2: 寄 存 器 文 件 综 述 (<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>) ( 续 )<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 与 BOR<br />
时 的 值<br />
详 情 请 见 :<br />
( 页 )<br />
EEADR EEPROM 地 址 寄 存 器 0000 0000 50, 85<br />
EEDATA EEPROM 数 据 寄 存 器 0000 0000 50, 88<br />
EECON2 EEPROM 控 制 寄 存 器 2 ( 不 是 物 理 寄 存 器 ) 0000 0000 50, 76, 85<br />
EECON1 EEPGD CFGS - FREE WRERR WREN WR RD xx-0 x000 50, 77, 86<br />
IPR3 - - - PTIP IC3DRIP IC2QEIP IC1IP TMR5IP ---1 1111 50<br />
PIR3 - - - PTIF IC3DRIF IC2QEIF IC1IF TMR5IF ---0 0000 50<br />
PIE3 - - - PTIE IC3DRIE IC2QEIE IC1IE TMR5IE ---0 0000 50<br />
IPR2 OSFIP - - EEIP - LVDIP - CCP2IP 1--1 -1-1 51, 103<br />
PIR2 OSFIF - - EEIF - LVDIF - CCP2IF 0--0 -0-0 51, 97<br />
PIE2 OSFIE - - EEIE - LVDIE - CCP2IE 0--0 -0-0 51, 100<br />
IPR1 - ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP -111 1111 51, 102<br />
PIR1 - ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF -000 0000 51, 96<br />
PIE1 - ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE -000 0000 51, 99<br />
OSCTUNE - - TUN5 TUN4 TUN3 TUN2 TUN1 TUN0 --00 0000 25, 51<br />
ADCON3 ADRS1 ADRS0 - SSRC4 SSRC3 SSRC2 SSRC1 SSRC0 00-0 0000 50<br />
ADCHS GDSEL1 GDSEL0 GBSEL1 GBSEL0 GCSEL1 GCSEL0 GASEL1 GASEL0 0000 0000 50<br />
TRISE (5) - - - - - PORTE 的 数 据 方 向 位 (5) ---- -111 51, 131<br />
TRISD (5) PORTD 的 数 据 方 向 控 制 寄 存 器 1111 1111 51, 128<br />
TRISC PORTC 的 数 据 方 向 控 制 寄 存 器 1111 1111 51, 123<br />
TRISB PORTB 的 数 据 方 向 控 制 寄 存 器 1111 1111 51, 117<br />
TRISA TRISA7 (2) TRISA6 (1) PORTA 的 数 据 方 向 控 制 寄 存 器 1111 1111 51, 111<br />
PR5H Timer5 周 期 寄 存 器 高 字 节 1111 1111 50<br />
PR5L Timer5 周 期 寄 存 器 低 字 节 1111 1111 50<br />
LATE (5) - - - - - 读 / 写 PORTE 数 据 锁 存 器 ---- -xxx 51, 132<br />
LATD (5) 读 / 写 PORTD 数 据 锁 存 器 xxxx xxxx 51, 128<br />
LATC 读 / 写 PORTC 数 据 锁 存 器 xxxx xxxx 51, 123<br />
LATB 读 / 写 PORTB 数 据 锁 存 器 xxxx xxxx 51, 117<br />
LATA LATA (2) LATA (1) 读 / 写 PORTA 数 据 锁 存 器 xxxx xxxx 51, 111<br />
TMR5H Timer5 定 时 器 寄 存 器 高 字 节 xxxx xxxx 146<br />
TMR5L Timer5 定 时 器 寄 存 器 低 字 节 xxxx xxxx 146<br />
PORTE - - - - RE3 (6) 读 PORTE 引 脚 ,<br />
---- xxxx 51, 132<br />
(5)<br />
写 PORTE 数 据 锁 存 器<br />
PORTD 读 PORTD 引 脚 , 写 PORTD 数 据 锁 存 器 xxxx xxxx 51, 128<br />
PORTC 读 PORTC 引 脚 , 写 PORTC 数 据 锁 存 器 xxxx xxxx 51, 123<br />
PORTB 读 PORTB 引 脚 , 写 PORTB 数 据 锁 存 器 (4) xxxx xxxx 51, 117<br />
PORTA RA7 (2) RA6 (1) 读 PORTA 引 脚 , 写 PORTA 数 据 锁 存 器 xx0x 0000 51, 111<br />
PTCON0 PTOPS3 PTOPS2 PTOPS1 PTOPS0 PTCKPS1 PTCKPS0 PTMOD1 PTMOD0 0000 0000 52, 186<br />
PTCON1 PTEN PTDIR - - - - - - 00-- ---- 52, 186<br />
PTMRL PWM 时 基 寄 存 器 ( 低 8 位 ) 0000 0000 184<br />
PTMRH 未 使 用 PWM 时 基 寄 存 器 ( 高 4 位 ) ---- 0000 184<br />
图 注 : x= 未 知 , u= 不 变 , –= 未 实 现 , q= 值 取 决 于 条 件<br />
注 1: 仅 在 RCIO、 ECIO 和 INTIO2 (RA6 使 能 I/O 端 口 引 脚 功 能 ) 振 荡 模 式 下 , RA6 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均<br />
读 作 0。<br />
2: 仅 在 INTIO2 振 荡 模 式 下 , RA7 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均 读 作 0。<br />
3: PC 的 bit 21 仅 在 测 试 模 式 和 串 行 编 程 模 式 下 可 用 。<br />
4: 如 果 PBADEN=0, PORTB 被 配 置 为 数 字 输 入 且 读 作 未 知 。 而 如 果 PBADEN=1, 则 PORTB 被 配 置 为<br />
模 拟 输 入 且 在 复 位 后 读 作 0。<br />
5: 这 些 寄 存 器 和 / 或 位 在 PIC18F2X31 器 件 上 未 实 现 , 且 读 作 0。<br />
6: 仅 当 MCLRE 熔 丝 (CONFIG3H) 被 编 程 为 0 时 , RE3 端 口 位 可 用 。 否 则 , RE3 读 作 0。 该 位 只 读 。<br />
DS39616B_CN 第 68 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 5-2: 寄 存 器 文 件 综 述 (<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>) ( 续 )<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 与 BOR<br />
时 的 值<br />
详 情 请 见 :<br />
( 页 )<br />
PTPERL PWM 时 基 周 期 寄 存 器 ( 低 8 位 ) 1111 1111 184<br />
PTPERH 未 使 用 PWM 时 基 周 期 寄 存 器 ( 高 4 位 ) ---- 1111 184<br />
PDC0L PWM 占 空 比 0L 寄 存 器 ( 低 8 位 ) --00 0000 184<br />
PDC0H 未 使 用 PWM 占 空 比 0H 寄 存 器 ( 高 6 位 ) 0000 0000 184<br />
PDC1L PWM 占 空 比 1L 寄 存 器 ( 低 8 位 ) 0000 0000 184<br />
PDC1H 未 使 用 PWM 占 空 比 1H 寄 存 器 ( 高 6 位 ) --00 0000 184<br />
PDC2L PWM 占 空 比 2L 寄 存 器 ( 低 8 位 ) 0000 0000 184<br />
PDC2H 未 使 用 PWM 占 空 比 2H 寄 存 器 ( 高 6 位 ) --00 0000 184<br />
PDC3L PWM 占 空 比 3L 寄 存 器 ( 低 8 位 ) 0000 0000 184<br />
PDC3H 未 使 用 PWM 占 空 比 3H 寄 存 器 ( 高 6 位 ) --00 0000 184<br />
SEVTCMPL PWM 特 殊 事 件 比 较 寄 存 器 ( 低 8 位 ) 0000 0000 N/A<br />
SEVTCMPH 未 使 用 PWM 特 殊 事 件 比 较 寄 存 器 ( 高 4 位 ) ---- 0000 N/A<br />
PWMCON0 - PWMEN2 PWMEN1 PWMEN0 PMOD3 PMOD2 PMOD1 PMOD0 -101 0000 52, 187<br />
PWMCON1 SEVOPS3 SEVOPS2 SEVOPS1 SEVOPS0 SEVTDIR - UDIS OSYNC 0000 0-00 52, 188<br />
DTCON DTPS1 DTPS0 DT5 DT4 DT3 DT2 DT1 DT0 0000 0000 52, 200<br />
FLTCONFIG - FLTBS FLTBMOD FLTBEN FLTCON FLTAS FLTAMOD FLTAEN -000 0000 52, 208<br />
OVDCOND POVD7 POVD6 POVD5 POVD4 POVD3 POVD2 POVD1 POVD0 1111 1111 52, 203<br />
OVDCONS POUT7 POUT6 POUT5 POUT4 POUT3 POUT2 POUT1 POUT0 0000 0000 52, 204<br />
CAP1BUFH/<br />
VELRH<br />
CAP1BUFL/<br />
VELRL<br />
CAP2BUFH/<br />
POSCNTH<br />
CAP2BUFL/<br />
POSCNTL<br />
CAP3BUFH/<br />
MAXCNTH<br />
CAP3BUFL/<br />
MAXCNTL<br />
捕 捉 1 寄 存 器 的 高 字 节 /<br />
速 率 寄 存 器 的 高 字 节<br />
捕 捉 1 寄 存 器 的 低 字 节 /<br />
速 率 寄 存 器 的 低 字 节<br />
捕 捉 2 寄 存 器 的 高 字 节 /<br />
QEI 位 置 计 数 器 寄 存 器 的 高 字 节<br />
捕 捉 2 寄 存 器 的 低 字 节 /<br />
QEI 位 置 计 数 器 寄 存 器 的 低 字 节<br />
捕 捉 3 寄 存 器 的 高 字 节 /<br />
QEI 最 大 计 数 限 度 寄 存 器 的 高 字 节<br />
捕 捉 3 寄 存 器 的 低 位 字 节 /<br />
QEI 最 大 计 数 限 度 寄 存 器 的 低 位 字 节<br />
xxxx xxxx 52,<br />
xxxx xxxx 52<br />
xxxx xxxx 52<br />
xxxx xxxx 52<br />
xxxx xxxx 53<br />
xxxx xxxx 53<br />
CAP1CON - CAP1REN - - CAP1M3 CAP1M2 CAP1M1 CAP1M0 -0-0 0000 53, 163<br />
CAP2CON - CAP2REN - - CAP2M3 CAP2M2 CAP2M1 CAP2M0 -0-0 0000 53, 163<br />
CAP3CON - CAP3REN - - CAP3M3 CAP3M2 CAP3M1 CAP3M0 -0-0 0000 53, 163<br />
DFLTCON - FLT4EN FLT3EN FLT2EN FLT1EN FLTCK2 FLTCK1 FLTCK0 -000 0000 53, 178<br />
图 注 : x= 未 知 , u= 不 变 , –= 未 实 现 , q= 值 取 决 于 条 件<br />
注 1: 仅 在 RCIO、 ECIO 和 INTIO2 (RA6 使 能 I/O 端 口 引 脚 功 能 ) 振 荡 模 式 下 , RA6 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均<br />
读 作 0。<br />
2: 仅 在 INTIO2 振 荡 模 式 下 , RA7 和 相 关 位 被 配 置 为 端 口 引 脚 , 在 所 有 其 他 振 荡 模 式 下 均 读 作 0。<br />
3: PC 的 bit 21 仅 在 测 试 模 式 和 串 行 编 程 模 式 下 可 用 。<br />
4: 如 果 PBADEN=0, PORTB 被 配 置 为 数 字 输 入 且 读 作 未 知 。 而 如 果 PBADEN=1, 则 PORTB 被 配 置 为<br />
模 拟 输 入 且 在 复 位 后 读 作 0。<br />
5: 这 些 寄 存 器 和 / 或 位 在 PIC18F2X31 器 件 上 未 实 现 , 且 读 作 0。<br />
6: 仅 当 MCLRE 熔 丝 (CONFIG3H) 被 编 程 为 0 时 , RE3 端 口 位 可 用 。 否 则 , RE3 读 作 0。 该 位 只 读 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 69 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.10 快 速 访 问 存 储 区<br />
快 速 访 问 存 储 区 是 一 个 增 强 架 构 , 对 于 C 编 译 器 的 代 码<br />
优 化 非 常 有 用 。C 编 译 器 采 用 的 技 术 对 于 汇 编 语 言 编 写<br />
的 程 序 也 可 能 会 有 用 。<br />
此 数 据 存 储 器 可 用 于 :<br />
• 中 间 计 算 值<br />
• 子 程 序 的 局 部 变 量<br />
• 变 量 的 快 速 现 场 保 存 / 切 换<br />
• 常 用 变 量<br />
• SFR 的 快 速 求 值 / 控 制 ( 无 存 储 区 选 择 )<br />
快 速 访 问 存 储 区 由 存 储 区 15 (SFR) 的 最 末 160 字 节<br />
和 存 储 区 0 的 首 96 字 节 组 成 。 这 两 部 分 分 别 为 快 速 存<br />
取 RAM 的 高 位 和 低 位 。 图 5-6 所 示 为 快 速 存 取 RAM 的<br />
区 域 。<br />
指 令 字 中 的 一 位 用 来 指 定 操 作 应 在 BSR 寄 存 器 指 定 的<br />
存 储 区 还 是 在 快 速 访 问 存 储 区 进 行 。 此 位 表 示 为 ‘a’<br />
位 ( 用 于 存 取 位 )。<br />
当 强 制 操 作 在 快 速 访 问 存 储 区 进 行 时 (a=0), 快 速 存<br />
取 RAM 低 位 末 位 地 址 的 后 面 是 快 速 存 取 RAM 高 位 的 首<br />
地 址 。 快 速 存 取 RAM 高 位 会 映 射 特 殊 功 能 寄 存 器 , 这<br />
样 无 需 任 何 软 件 开 销 即 可 对 这 些 寄 存 器 存 取 。 这 样 做 对<br />
于 测 试 状 态 标 志 和 修 改 控 制 位 很 有 用 。<br />
5.11 存 储 区 选 择 寄 存 器 (BSR)<br />
因 需 要 大 的 通 用 存 储 器 空 间 , 所 以 要 指 定 RAM 存 储 方<br />
案 。 数 据 存 储 器 被 分 为 16 个 存 储 区 。 当 使 用 直 接 寻 址<br />
时 , 应 通 过 配 置 BSR 选 择 目 标 存 储 区 。<br />
BSR 保 存 12 位 RAM 地 址 的 高 4 位 。 BSR<br />
位 总 是 读 作 0, 写 入 值 没 有 任 何 影 响 ( 见 图 5-7)。<br />
在 指 令 集 中 提 供 了 MOVLB 指 令 , 用 来 帮 助 选 择 存 储 区 。<br />
如 果 当 前 选 择 的 存 储 区 不 存 在 , 任 何 读 操 作 都 会 返 回<br />
0, 写 操 作 则 被 忽 略 。 指 令 执 行 时 , 状 态 寄 存 器 中 的 位<br />
会 相 应 被 置 位 或 清 零 。<br />
每 个 存 储 区 空 间 最 大 为 FFh (256 字 节 )。 所 有 数 据 存<br />
储 器 都 以 静 态 RAM 实 现 。<br />
MOVFF 指 令 会 忽 略 BSR, 因 为 该 指 令 字 嵌 入 了 12 位 地<br />
址 。<br />
第 5.12 节 “ 间 接 寻 址 、 INDF 和 FSR 寄 存 器 ” 说 明 了<br />
间 接 寻 址 , 间 接 寻 址 允 许 对 整 个 RAM 空 间 进 行 线 性 寻<br />
址 。<br />
图 5-7:<br />
BSR<br />
0 0 0 0<br />
直 接 寻 址<br />
直 接 寻 址<br />
(3)<br />
BSR 7 来 自 操 作 码<br />
0<br />
存 储 区 选 择 (2) 单 元 选 择 (3)<br />
00h 01h 0Eh 0Fh<br />
000h<br />
100h<br />
E00h<br />
F00h<br />
数 据<br />
(1)<br />
存 储 器<br />
0FFh 1FFh<br />
EFFh FFFh<br />
存 储 区 0 存 储 区 1 存 储 区 14 存 储 区 15<br />
注 1: 有 关 寄 存 器 文 件 映 射 的 具 体 信 息 , 参 见 表 5-1。<br />
2: 可 以 用 指 令 的 存 取 位 强 制 使 用 选 定 的 存 储 区 ( 由 BSR 选 定 ) 覆 盖 快 速 访 问 存 储 区 的 寄 存 器 。<br />
3: MOVFF 指 令 嵌 入 了 完 整 的 12 位 指 令 地 址 。<br />
DS39616B_CN 第 70 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.12 间 接 寻 址 、 INDF 和 FSR 寄 存 器<br />
间 接 寻 址 是 对 数 据 存 储 器 寻 址 的 一 种 模 式 , 间 接 寻 址 时<br />
指 令 中 的 数 据 存 储 器 地 址 不 固 定 。FSR 寄 存 器 充 当 指 向<br />
要 读 或 写 的 数 据 存 储 器 单 元 的 指 针 。 由 于 该 指 针 位 于<br />
RAM 中 , 其 内 容 可 以 通 过 程 序 修 改 。 这 对 于 操 作 数 据 存<br />
储 器 中 的 数 据 表 和 实 现 软 件 堆 栈 很 有 用 。 图 5-8 给 出 了<br />
在 执 行 前 , 如 何 修 改 取 出 的 指 令 。<br />
使 用 INDF 寄 存 器 之 一 即 可 以 实 现 间 接 寻 址 。 任 何 使 用<br />
INDF 寄 存 器 的 指 令 实 际 上 访 问 的 是 由 文 件 选 择 寄 存 器<br />
(FSR) 指 向 的 寄 存 器 。 如 使 用 间 接 寻 址 方 式 (FSR=0)<br />
对 INDF 寄 存 器 本 身 进 行 读 操 作 , 读 出 值 将 为 00h。 而<br />
使 用 间 接 寻 址 对 INDF 寄 存 器 进 行 写 操 作 , 实 际 是 空 操<br />
作 。 如 图 5-9 所 示 , FSR 寄 存 器 包 含 一 个 12 位 地 址 。<br />
INDFn 寄 存 器 不 是 物 理 寄 存 器 。 对 INDFn 的 寻 址 实 际<br />
上 是 对 FSRn 寄 存 器 中 地 址 对 应 的 寄 存 器 寻 址 (FSRn<br />
是 一 个 指 针 )。 这 就 是 间 接 寻 址 。<br />
例 5-5 给 出 用 最 少 的 指 令 , 采 用 间 接 寻 址 的 方 法 实 现 对<br />
存 储 区 1 ( 单 元 100h-1FFh) 中 RAM 单 元 的 清 零 。<br />
例 5-5:<br />
如 何 使 用 间 接 寻 址 将 RAM<br />
( 存 储 区 1) 清 零 的 方 法<br />
LFSR FSR0, 0x100 ;<br />
NEXT CLRF POSTINC0 ; Clear INDF<br />
; register then<br />
; inc pointer<br />
BTFSS FSR0H, 1 ; All done with<br />
; Bank1<br />
GOTO NEXT ; NO, clear next<br />
CONTINUE<br />
; YES, continue<br />
有 三 种 间 接 寻 址 寄 存 器 。 为 了 寻 址 整 个 数 据 存 储 器 空 间<br />
(4096 字 节 ), 这 些 寄 存 器 的 宽 度 都 是 12 位 。 要 存 储<br />
12 位 的 寻 址 信 息 , 需 要 使 用 两 个 8 位 寄 存 器 。<br />
1. FSR0: 由 FSR0H:FSR0L 组 成<br />
2. FSR1: 由 FSR1H:FSR1L 组 成<br />
3. FSR2: 由 FSR2H:FSR2L 组 成<br />
此 外 还 有 寄 存 器 INDF0、INDF1 和 INDF2, 它 们 都 不 是<br />
物 理 实 现 的 。 读 / 写 这 些 寄 存 器 将 引 起 间 接 寻 址 , 相 应<br />
的 FSR 寄 存 器 中 的 值 是 数 据 地 址 。 如 果 指 令 向 INDF0<br />
写 入 一 个 值 , 该 值 会 被 写 入 到 FSR0H:FSR0L 指 向 的 地<br />
址 。 从 INDF1 读 取 数 据 , 读 取 的 是 FSR1H:FSR1L 指<br />
向 的 地 址 中 的 数 据 。 只 要 代 码 中 使 用 了 操 作 数 , 就 可 以<br />
使 用 INDFn。<br />
如 果 通 过 FSR 间 接 读 取 INDF0、 INDF1 或 INDF2, 所<br />
有 的 读 取 将 为 0 (Z 位 被 置 位 )。 与 此 类 似 , 如 果 间 接<br />
地 写 INDF0、INDF1 或 INDF2, 实 际 等 同 于 NOP 指 令 ,<br />
状 态 位 不 受 影 响 。<br />
5.12.1 间 接 寻 址 操 作<br />
除 了 4 个 寄 存 器 地 址 外 , 每 个 FSR 寄 存 器 都 有 与 其 相<br />
关 的 INDF 寄 存 器 。 对 这 5 个 寄 存 器 之 一 进 行 操 作 将 决<br />
定 间 接 寻 址 时 修 改 FSR 的 方 式 。<br />
当 对 5 个 INDFn 单 元 中 的 任 何 一 个 进 行 数 据 存 取 时 , 选<br />
择 的 地 址 将 FSRn 寄 存 器 配 置 为 :<br />
• 在 间 接 访 问 后 对 FSRn 不 做 任 何 操 作 ( 无 变 化 )<br />
– INDFn<br />
• 在 间 接 访 问 后 自 动 递 减 FSRn ( 后 减 ) –<br />
OSTDECn<br />
• 在 间 接 访 问 后 自 动 递 增 FSRn ( 后 加 ) –<br />
POSTINCn<br />
• 在 间 接 访 问 前 自 动 递 增 FSRn ( 预 加 ) –<br />
PREINCn<br />
• 将 WREG 寄 存 器 中 的 值 作 为 FSRn 的 偏 移 量 。<br />
在 间 接 访 问 后 不 修 改 WREG 或 FSRn 寄 存 器 的<br />
值 ( 无 变 化 ) – PLUSWn<br />
当 使 用 自 动 递 增 递 减 功 能 时 , 状 态 寄 存 器 中 不 会 反 映 对<br />
FSR 的 影 响 。 例 如 , 如 果 间 接 寻 址 导 致 FSR 等 于 “0”,<br />
Z 位 将 不 会 置 位 。<br />
自 动 递 增 递 减 FSR 会 影 响 所 有 的 12 位 。 也 就 是 说 , 如<br />
果 FSRnL 因 为 递 增 而 溢 出 , 则 FSRnH 将 会 自 动 递 增 。<br />
增 加 的 这 些 功 能 可 以 让 FSRn 用 于 数 据 存 储 器 中 的 表 操<br />
作 外 , 还 可 用 于 堆 栈 指 针 。<br />
每 个 FSR 都 有 一 个 与 之 相 关 的 地 址 , 该 地 址 用 于 变 址 间<br />
接 访 问 。 当 对 此 INDFn 单 元 (PLUSWn) 进 行 数 据 存<br />
取 时 ,FSRn 将 在 进 行 间 接 访 问 前 , 把 WREG 寄 存 器 中<br />
的 带 符 号 值 和 FSR 中 的 值 相 加 做 为 地 址 。 FSR 的 值 不<br />
会 改 变 。 WREG 偏 移 量 范 围 为 -128 到 +127。<br />
如 果 某 个 FSR 寄 存 器 包 含 的 值 指 向 INDFn 之 一 , 间 接<br />
读 取 的 值 为 00h(Z 位 置 位 ), 而 间 接 写 入 则 相 当 于 NOP<br />
( 状 态 位 不 受 影 响 )。<br />
如 果 执 行 间 接 寻 址 写 操 作 的 目 标 地 址 处 于 FSRnH 或<br />
FSRnL 寄 存 器 中 , 数 据 将 被 写 入 FSR 寄 存 器 , 但 不 执<br />
行 预 加 / 后 加 / 后 减 功 能 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 71 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 5-8:<br />
间 接 寻 址 操 作<br />
RAM<br />
0h<br />
执 行 的<br />
指 令<br />
操 作 码<br />
地 址<br />
FFFh<br />
12<br />
文 件 地 址 = 访 问 一 个 间 接 寻 址 寄 存 器<br />
取 出 的<br />
指 令<br />
BSR<br />
4<br />
12<br />
8<br />
12<br />
操 作 码<br />
文 件<br />
FSR<br />
图 5-9:<br />
间 接 寻 址<br />
间 接 寻 址<br />
FSRnH:FSRnL<br />
3 0 7<br />
0<br />
11 0<br />
单 元 选 择<br />
0000h<br />
数 据<br />
存 储 器 (1)<br />
0FFFh<br />
注 1: 有 关 寄 存 器 文 件 映 射 的 具 体 信 息 , 参 见 表 5-1。<br />
DS39616B_CN 第 72 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.13 状 态 寄 存 器<br />
如 寄 存 器 5-2 所 示 , 状 态 寄 存 器 包 含 ALU 的 算 术 运 算 状<br />
态 。 和 其 他 寄 存 器 一 样 , 它 可 以 作 为 任 何 指 令 的 操 作<br />
数 。 如 果 一 条 影 响 Z、 DC、 C、 OV、 或 N 位 的 指 令 的<br />
目 标 寄 存 器 是 状 态 寄 存 器 , 则 会 禁 止 对 这 5 位 进 行 直 接<br />
写 操 作 。 根 据 器 件 逻 辑 对 这 些 位 置 位 或 清 零 。 所 以 , 当<br />
执 行 一 条 把 状 态 寄 存 器 作 为 目 标 寄 存 器 的 指 令 后 , 状 态<br />
寄 存 器 的 结 果 可 能 和 预 想 的 不 一 样 。<br />
例 如 , 指 令 CLRF STATUS 将 会 把 状 态 寄 存 器 的 高 3 位<br />
清 零 , 并 将 Z 位 置 位 。 这 使 状 态 寄 存 器 的 结 果 为 000u<br />
u1uu ( 其 中 u 表 示 不 变 )。<br />
因 此 , 建 议 仅 使 用 BCF、 BSF、SWAPF、MOVFF 和 MOVWF<br />
指 令 来 改 变 状 态 寄 存 器 , 因 为 这 些 指 令 不 影 响 状 态 寄 存<br />
器 中 的 Z、C、DC、OV 或 N 位 。 关 于 其 他 不 影 响 任 何<br />
状 态 位 的 指 令 , 请 参 见 表 23-2。<br />
注 :<br />
在 减 法 运 算 中 ,C 和 DC 位 分 别 作 为 借 位 和<br />
辅 助 借 位 标 志 位 。<br />
寄 存 器 5-2:<br />
状 态 寄 存 器<br />
U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x<br />
- - - N OV Z DC C<br />
bit 7 bit 0<br />
bit 7-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
N: 负 数 位<br />
此 位 用 于 有 符 号 的 算 术 运 算 ( 二 进 制 补 码 )。 它 可 以 表 示 结 果 是 否 为 负 (ALU MSB=1)。<br />
1= 结 果 为 负<br />
0= 结 果 为 正<br />
OV: 溢 出 位<br />
此 位 用 于 有 符 号 的 算 术 运 算 ( 二 进 制 补 码 )。 表 明 7 位 数 值 的 溢 出 ,<br />
这 样 导 致 了 符 号 位 (bit7) 改 变 状 态 。<br />
1= 有 符 号 算 术 运 算 中 发 生 溢 出 ( 本 次 运 算 )<br />
0= 没 有 发 生 溢 出<br />
Z: 零 位<br />
1= 算 术 运 算 或 逻 辑 运 算 结 果 为 零<br />
0= 算 术 运 算 或 逻 辑 运 算 结 果 不 是 零<br />
DC: 辅 助 进 位 / 借 位 标 志 位<br />
用 于 ADDWF、 ADDLW、 SUBLW 和 SUBWF 指 令<br />
1= 结 果 的 第 4 低 位 发 生 了 进 位<br />
0= 结 果 中 没 有 发 生 第 4 低 位 的 进 位<br />
注 : 由 于 辅 助 借 位 极 性 是 相 反 的 , 减 法 指 令 通 过 加 上 第 二 个 操 作 数 的 二 进 制 补 码 来 实<br />
现 。 对 于 移 位 指 令 (RRF、 RLF), 此 位 的 值 来 自 源 寄 存 器 的 bit4 或 bit3。<br />
C: 进 位 / 借 位 标 志 位<br />
用 于 ADDWF、 ADDLW、 SUBLW 和 SUBWF 指 令<br />
1= 结 果 中 发 生 了 最 高 有 效 位 进 位<br />
0= 结 果 中 未 发 生 最 高 有 效 位 进 位<br />
注 :<br />
由 于 借 位 极 性 是 相 反 的 , 减 法 指 令 通 过 加 上 第 二 个 操 作 数 的 二 进 制 补 码 来 实 现 。 对<br />
于 移 位 指 令 (RRF、 RLF), 此 位 的 值 来 自 源 寄 存 器 的 高 位 或 低 位 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 73 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
5.14 RCON 寄 存 器<br />
复 位 控 制 (RCON) 寄 存 器 包 含 标 志 位 , 用 于 区 分 器 件<br />
复 位 的 来 源 。 这 些 标 志 位 包 括 TO、PD、POR、BOR 和<br />
RI 位 。 该 寄 存 器 可 读 写 。<br />
注<br />
1: 如 果 BOREN 配 置 位 置 位 ( 欠 压 复 位 使<br />
能 ), BOR 位 在 上 电 复 位 时 为 “1”。 发<br />
生 了 欠 压 复 位 后 ,BOR 位 将 被 清 零 并 必 须<br />
由 固 件 置 位 , 用 于 显 示 下 一 次 欠 压 复 位 的<br />
发 生 。<br />
2: 建 议 在 检 测 到 上 电 复 位 时 , 将 POR 位 置<br />
位 , 以 便 检 测 后 续 的 上 电 复 位 。<br />
寄 存 器 5-3:<br />
RCON 寄 存 器<br />
R/W-0 U-0 U-0 R/W-1 R-1 R-1 R/W-0 R/W-0<br />
IPEN - - RI TO PD POR BOR<br />
bit 7 bit 0<br />
bit 7 IPEN: 中 断 优 先 级 使 能 位<br />
1= 中 断 优 先 级 使 能<br />
0= 中 断 优 先 级 禁 止 (PIC16CXXX 兼 容 模 式 )<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
RI:RESET 指 令 标 志 位<br />
1= 未 执 行 RESET 指 令 ( 只 能 用 固 件 置 位 )<br />
0= 执 行 了 RESET 指 令 , 导 致 器 件 复 位<br />
( 欠 压 复 位 发 生 后 , 必 须 用 固 件 置 位 )<br />
TO: 看 门 狗 定 时 器 超 时 标 志 位<br />
1= 通 过 上 电 、 CLRWDT 指 令 或 SLEEP 指 令 置 位<br />
0= 发 生 WDT 超 时<br />
PD: 掉 电 检 测 标 志 位<br />
1= 通 过 上 电 或 CLRWDT 指 令 置 位<br />
0= 通 过 执 行 SLEEP 指 令 清 零<br />
POR: 上 电 复 位 状 态 位<br />
1= 未 发 生 上 电 复 位 ( 只 能 用 固 件 置 位 )<br />
0= 发 生 上 电 复 位<br />
( 上 电 复 位 发 生 后 , 必 须 用 固 件 置 位 )<br />
BOR: 欠 压 复 位 状 态 位<br />
1= 未 发 生 欠 压 复 位 ( 只 能 用 固 件 置 位 )<br />
0= 发 生 欠 压 复 位<br />
( 欠 压 复 位 发 生 后 , 必 须 用 固 件 置 位 )<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 74 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
6.0 闪 存 程 序 存 储 器<br />
正 常 工 作 状 态 下 , 闪 存 程 序 存 储 器 在 整 个 VDD 范 围 内 都<br />
是 可 读 写 可 擦 除 的 。<br />
读 程 序 存 储 器 时 , 每 次 为 1 个 字 节 。 写 程 序 存 储 器 时 ,<br />
每 次 为 一 个 8 字 节 的 块 。 擦 除 程 序 存 储 器 时 , 每 次 为 一<br />
个 64 字 节 的 块 。 用 户 代 码 不 能 执 行 批 量 擦 除 操 作 。<br />
在 擦 写 程 序 存 储 器 时 , 系 统 会 停 止 取 指 直 到 操 作 完 成 。<br />
擦 写 期 间 不 能 访 问 该 程 序 存 储 器 , 因 此 也 就 无 法 执 行 代<br />
码 。 可 用 内 部 编 程 定 时 器 来 终 止 程 序 存 储 器 的 擦 写 操<br />
作 。<br />
写 入 程 序 存 储 器 的 值 不 一 定 非 要 是 有 效 指 令 。 执 行 构 成<br />
无 效 指 令 的 程 序 存 储 器 单 元 会 导 致 执 行 NOP。<br />
6.1 读 表 与 写 表<br />
为 了 读 写 程 序 存 储 器 , 有 两 个 操 作 可 供 处 理 器 在 程 序 存<br />
储 器 空 间 和 数 据 RAM 之 间 移 动 字 节 :<br />
• 读 表 (TBLRD)<br />
• 写 表 (TBLWT)<br />
程 序 存 储 器 空 间 为 16 位 宽 , 而 数 据 RAM 空 间 为 8 位<br />
宽 。 读 表 和 写 表 操 作 通 过 一 个 8 位 寄 存 器 (TABLAT)<br />
在 这 两 个 存 储 器 空 间 之 间 传 送 数 据 。<br />
读 表 操 作 从 程 序 存 储 器 获 取 数 据 并 将 其 放 入 数 据 RAM<br />
空 间 的 TABLAT。 图 6-1 显 示 了 程 序 存 储 器 和 数 据 RAM<br />
之 间 的 一 次 读 表 操 作 。<br />
写 表 操 作 将 数 据 存 储 器 空 间 中 TABLAT 的 数 据 存 入 程 序<br />
存 储 器 的 保 持 寄 存 器 。 第 6.5 节 “ 写 闪 存 程 序 存 储 器 ”<br />
详 细 介 绍 了 将 保 持 寄 存 器 内 容 写 入 程 序 存 储 器 的 过 程 。<br />
图 6-2 显 示 了 程 序 存 储 器 和 数 据 RAM 之 间 的 一 次 写 表<br />
操 作 。<br />
表 操 作 以 字 节 为 单 位 。 包 含 数 据 而 非 程 序 指 令 的 表 块 不<br />
需 要 按 字 对 齐 。 因 此 , 表 块 可 以 在 任 何 字 节 地 址 开 始 和<br />
结 束 。 如 果 使 用 写 表 操 作 向 程 序 存 储 器 写 入 可 执 行 代<br />
码 , 程 序 指 令 必 须 按 字 对 齐 (TBLPTRL=0)。<br />
EEPROM 片 上 定 时 器 控 制 擦 写 时 间 。 擦 写 电 压 由 可 在<br />
器 件 电 压 范 围 内 运 行 的 片 上 电 荷 泵 产 生 , 执 行 字 节 或 字<br />
操 作 。<br />
图 6-1:<br />
读 表 操 作<br />
指 令 :TBLRD*<br />
TBLPTRU<br />
表 指 针 (1)<br />
TBLPTRH<br />
TBLPTRL<br />
程 序 存 储 器<br />
表 锁 存 器 (8 位 )<br />
TABLAT<br />
程 序 存 储 器<br />
(TBLPTR)<br />
注 1: 表 指 针 指 向 程 序 存 储 器 中 的 某 个 字 节 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 75 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 6-2:<br />
写 表 操 作<br />
指 令 :TBLWT*<br />
TBLPTRU<br />
(1)<br />
表 指 针<br />
程 序 存 储 器<br />
保 持 寄 存 器<br />
表 锁 存 器 (8 位 )<br />
TBLPTRH TBLPTRL TABLAT<br />
程 序 存 储 器<br />
(TBLPTR)<br />
注<br />
1: 表 指 针 实 际 指 向 8 个 保 持 寄 存 器 中 的 某 一 个 , 其 地 址 由 TBLPTRL 决 定 。 第 6.5 节 “ 写 闪 存 程 序 存<br />
储 器 ” 中 将 讨 论 向 程 序 存 储 器 阵 列 写 入 数 据 的 物 理 过 程 。<br />
6.2 控 制 寄 存 器<br />
TBLRD 和 TBLWT 指 令 要 用 到 几 个 控 制 寄 存 器 。 包 括 :<br />
• EECON1 寄 存 器<br />
• EECON2 寄 存 器<br />
• TABLAT 寄 存 器<br />
• TBLPTR 寄 存 器<br />
6.2.1 EECON1 和 EECON2 寄 存 器<br />
EECON1 是 存 储 器 访 问 的 控 制 寄 存 器 。<br />
EECON2 不 是 物 理 寄 存 器 。 读 EECON2 得 到 的 将 全 是<br />
0。 EECON2 寄 存 器 专 用 于 存 储 器 的 擦 写 时 序 。<br />
控 制 位 EEPGD 决 定 访 问 的 是 程 序 存 储 器 还 是 数 据<br />
EEPROM 存 储 器 。 清 零 该 位 , 操 作 将 访 问 数 据<br />
EEPROM 存 储 器 ; 置 位 该 位 , 则 访 问 程 序 存 储 器 。<br />
控 制 位 CFGS 决 定 访 问 的 是 配 置 寄 存 器 还 是 程 序 存 储 器<br />
/ 数 据 EEPROM 存 储 器 。 置 位 该 位 , 后 续 操 作 将 访 问<br />
配 置 寄 存 器 ; 清 零 该 位 时 , 则 由 EEPGD 位 来 选 择 具 体<br />
访 问 程 序 存 储 器 还 是 数 据 EEPROM 存 储 器 。<br />
FREE 位 控 制 程 序 存 储 器 擦 除 操 作 。 当 该 位 置 位 时 , 擦<br />
除 操 作 在 下 一 个 WR 命 令 时 开 始 。 当 该 位 清 零 时 , 则 仅<br />
使 能 写 操 作 。<br />
擦 写 操 作 由 WREN 位 使 能 和 禁 止 。 置 位 时 , 允 许 擦 写<br />
操 作 ; 清 零 时 , 禁 止 擦 写 操 作 , 当 WREN 位 清 零 时 不<br />
能 置 位 WR 位 。 这 样 处 理 可 防 止 由 于 意 外 执 行 错 误 ( 不<br />
期 望 的 ) 代 码 而 造 成 对 EEPROM 存 储 器 的 误 写 入 。<br />
除 了 开 始 执 行 擦 写 操 作 以 外 , 固 件 应 该 始 终 保 持 WREN<br />
位 清 零 。 一 旦 固 件 已 经 将 WR 位 置 位 , 就 可 以 将 WREN<br />
位 清 零 。 将 WREN 位 清 零 不 会 影 响 进 行 中 的 操 作 。<br />
当 写 操 作 由 于 复 位 被 中 断 时 ,WRERR 位 会 置 位 。 在 这<br />
些 情 况 下 , 用 户 可 以 检 查 WRERR 位 , 并 重 新 写 入 该 单<br />
元 。 数 据 寄 存 器 和 地 址 寄 存 器 (EEDATA 和 EEADR)<br />
需 要 被 重 新 载 入 , 因 为 复 位 已 使 这 些 寄 存 器 清 零 。<br />
控 制 位 RD 和 WR 分 别 用 于 启 动 读 操 作 和 擦 写 操 作 。 这<br />
些 位 由 固 件 置 位 , 并 在 操 作 完 成 时 由 硬 件 清 零 。<br />
在 访 问 程 序 存 储 器 (EEPGD=1) 时 ,RD 位 无 法 置 位 。<br />
通 过 读 表 指 令 来 读 程 序 存 储 器 。 有 关 读 表 的 信 息 , 请 参<br />
见 第 6.3 节 “ 读 取 闪 存 程 序 存 储 器 ”。<br />
注 :<br />
PIR2 寄 存 器 中 的 中 断 标 志 位 EEIF 在 写 操<br />
作 结 束 时 置 位 。 此 标 志 位 必 须 用 软 件 清<br />
零 。<br />
DS39616B_CN 第 76 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 6-1:<br />
EECON1 寄 存 器<br />
R/W-x R/W-x U-0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0<br />
EEPGD CFGS — FREE WRERR WREN WR RD<br />
bit 7 bit 0<br />
bit 7 EEPGD: 闪 存 程 序 存 储 器 或 数 据 EEPROM 存 储 器 选 择 位<br />
1 = 访 问 闪 存 程 序 存 储 器<br />
0 = 访 问 数 据 EEPROM 存 储 器<br />
bit 6 CFGS: 闪 存 程 序 存 储 器 / 数 据 EEPROM 存 储 器 或 配 置 寄 存 器 选 择 位<br />
1 = 访 问 配 置 寄 存 器<br />
0 = 访 问 闪 存 程 序 存 储 器 或 数 据 EEPROM 存 储 器<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
FREE: 闪 存 行 擦 除 使 能 位<br />
1 = 在 下 一 个 WR 命 令 时 擦 除 TBLPTR 寻 址 的 程 序 存 储 器 行<br />
( 擦 除 操 作 完 成 时 清 零 , 忽 略 TBLPTR)<br />
0 = 仅 执 行 写 操 作<br />
WRERR:EEPROM 错 误 标 志 位<br />
1 = 提 前 终 止 写 操 作 ( 由 于 自 定 时 编 程 期 间 的 任 何 复 位 )<br />
0 = 写 操 作 正 常 完 成<br />
bit 2<br />
bit 1<br />
bit 0<br />
注 : 当 发 生 WRERR 时 , EEPGD 和 CFGS 位 不 会 清 零 。 这 样 可 以 跟 踪 错 误 状 况 。<br />
WREN: 写 使 能 位<br />
1 = 允 许 擦 写 周 期<br />
0 = 禁 止 擦 写 周 期<br />
WR: 写 控 制 位<br />
1 = 启 动 数 据 EEPROM 擦 写 周 期 或 程 序 存 储 器 的 擦 写 周 期<br />
( 这 是 一 个 自 定 时 操 作 , 一 旦 完 成 写 操 作 , 该 位 即 由 硬 件 清 零 。 用 软 件 只 能 将 WR 位 置 位 ,<br />
但 不 能 清 零 。)<br />
0 = 写 周 期 完 成<br />
RD: 读 控 制 位<br />
1 = 启 动 读 存 储 器<br />
( 读 操 作 需 要 一 个 周 期 。 该 位 由 硬 件 清 零 。 用 软 件 只 能 将 RD 位 置 位 , 但 不 能 清 零 。<br />
EEPGD=1 时 该 位 无 法 置 位 。)<br />
0 = 读 操 作 完 成<br />
图 注 :<br />
R= 可 读 位 S= 仅 可 置 位 U= 未 实 现 位 , 读 作 0<br />
W= 可 写 位 -n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零<br />
x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 77 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
6.2.2 TABLAT—— 表 锁 存 寄 存 器<br />
表 锁 存 器 (TABLAT) 是 映 射 到 SFR 空 间 的 一 个 8 位 寄<br />
存 器 。 表 锁 存 器 用 于 在 程 序 存 储 器 和 数 据 RAM 之 间 传<br />
输 数 据 时 保 存 8 位 数 据 。<br />
6.2.3 TBLPTR—— 表 指 针 寄 存 器<br />
表 指 针 (TBLPTR) 在 程 序 存 储 器 中 以 字 节 为 单 位 进 行<br />
寻 址 。 TBLPTR 由 3 个 SFR 寄 存 器 组 成 : 表 指 针 最 高<br />
位 字 节 、 表 指 针 高 位 字 节 和 表 指 针 低 位 字 节<br />
(TBLPTRU:TBLPTRH:TBLPTRL)。 这 3 个 寄 存 器 合<br />
起 来 组 成 一 个 22 位 宽 的 指 针 。 其 中 低 21 位 允 许 器 件 的<br />
寻 址 空 间 达 到 2MB 程 序 存 储 器 空 间 。 置 位 第 22 位 则 允<br />
许 访 问 器 件 ID、 用 户 ID 和 配 置 位 。<br />
TBLRD 和 TBLWT 指 令 要 使 用 TBLPTR。 这 些 指 令 可 以 基<br />
于 表 操 作 以 4 种 方 法 更 新 TBLPTR。 表 6-1 列 出 了 这 些<br />
操 作 。 这 些 操 作 只 会 影 响 TBLPTR 的 低 21 位 。<br />
6.2.4 表 指 针 范 围<br />
TBLPTR 用 于 读 、 写 和 擦 除 闪 存 程 序 存 储 器 。<br />
当 执 行 TBLRD 时 , 表 指 针 的 所 有 22 位 决 定 将 程 序 存 储<br />
器 或 配 置 寄 存 器 中 的 哪 个 字 节 读 入 TABLAT。<br />
当 执 行 TBLWT 时 , 表 指 针 的 3 个 最 低 有 效 位<br />
(TBLPTR) 决 定 要 写 入 程 序 存 储 器 的 哪 个 保 持 寄<br />
存 器 ( 共 有 8 个 )。 当 程 序 存 储 器 的 定 时 写 入 ( 长 写 )<br />
开 始 时 , 表 指 针 TBLPTR 的 19 个 最 高 有 效 位<br />
(TBLPTR) 将 决 定 要 写 入 哪 个 程 序 存 储 器 块<br />
( 每 块 8 字 节 )( 忽 略 TBLPTR)。 如 需 更 多 信 息 ,<br />
请 参 见 第 6.5 节 “ 写 闪 存 程 序 存 储 器 ”。<br />
当 执 行 擦 除 程 序 存 储 器 时 , 表 指 针 的 16 个 最 高 有 效 位<br />
(TBLPTR) 指 向 将 要 擦 除 的 64 字 节 块 。 最 低 有<br />
效 位 (TBLPTR) 被 忽 略 。<br />
图 6-3 说 明 了 TBLPTR 基 于 闪 存 程 序 存 储 器 操 作 的 相 关<br />
范 围 。<br />
表 6-1:<br />
示 例<br />
TBLRD*<br />
TBLWT*<br />
TBLRD*+<br />
TBLWT*+<br />
TBLRD*-<br />
TBLWT*-<br />
TBLRD+*<br />
TBLWT+*<br />
执 行 TBLRD 和 TBLWT 指 令 的 表 指 针 操 作<br />
表 指 针 操 作<br />
不 修 改 TBLPTR<br />
TBLPTR 在 读 / 写 后 递 增<br />
TBLPTR 在 读 / 写 后 递 减<br />
TBLPTR 在 读 / 写 前 递 增<br />
图 6-3:<br />
基 于 操 作 的 表 指 针 范 围<br />
21 TBLPTRU 16 15 TBLPTRH 8 7 TBLPTRL<br />
0<br />
擦 除 ——TBLPTR<br />
长 写 ——TBLPTR<br />
读 或 写 ——TBLPTR<br />
DS39616B_CN 第 78 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
6.3 读 取 闪 存 程 序 存 储 器<br />
TBLRD 指 令 用 于 从 程 序 存 储 器 获 取 数 据 并 放 入 数 据<br />
RAM。 读 表 操 作 每 次 从 程 序 存 储 器 读 取 1 个 字 节 。<br />
TBLPTR 指 向 程 序 存 储 器 空 间 的 某 个 字 节 地 址 。 执 行<br />
TBLRD 指 令 将 把 指 向 的 字 节 装 入 TABLAT。 此 外 还 可 以<br />
自 动 修 改 TBLPTR 以 进 行 下 一 个 读 表 操 作 。<br />
内 部 程 序 存 储 器 通 常 以 字 为 单 位 进 行 组 织 。 由 地 址 的 最<br />
低 有 效 位 来 选 择 字 的 高 字 节 或 者 低 字 节 。 图 6-4 显 示 了<br />
内 部 程 序 存 储 器 和 TABLAT 之 间 的 交 互 。<br />
图 6-4:<br />
读 取 闪 存 程 序 存 储 器<br />
程 序 存 储 器<br />
奇 ( 高 ) 字 节<br />
偶 ( 低 ) 字 节<br />
TBLPTR<br />
LSB=1<br />
TBLPTR<br />
LSB=0<br />
指 令 寄 存 器<br />
TABLAT<br />
(IR) 读 寄 存 器<br />
例 6-1:<br />
READ_WORD<br />
读 闪 存 程 序 存 储 器 的 一 个 字<br />
MOVLW CODE_ADDR_UPPER<br />
MOVWF TBLPTRU<br />
MOVLW CODE_ADDR_HIGH<br />
MOVWF TBLPTRH<br />
MOVLW CODE_ADDR_LOW<br />
MOVWF TBLPTRL<br />
TBLRD*+<br />
MOVFW TABLAT<br />
MOVWF WORD_EVEN<br />
TBLRD*+<br />
MOVFW TABLAT<br />
MOVWF WORD_ODD<br />
; Load TBLPTR with the base<br />
; address of the word<br />
; read into TABLAT and increment TBLPTR<br />
; get data<br />
; read into TABLAT and increment TBLPTR<br />
; get data<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 79 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
6.4 擦 除 闪 存 程 序 存 储 器<br />
在 固 件 控 制 下 最 小 擦 除 块 大 小 为 32 字 , 即 64 字 节 。 只<br />
有 通 过 使 用 外 部 编 程 器 , 或 通 过 ICSP 控 制 , 才 能 够 批<br />
量 擦 除 更 大 的 程 序 存 储 器 块 。 闪 存 存 储 器 不 支 持 字 擦<br />
除 。<br />
当 单 片 机 本 身 开 始 一 个 擦 除 过 程 时 , 会 擦 除 一 个 64 字<br />
节 的 程 序 存 储 器 块 。 16 个 最 高 有 效 位 TBLPTR<br />
指 向 要 擦 除 的 块 。 忽 略 TBLPTR 的 值 。<br />
擦 除 操 作 由 EECON1 寄 存 器 控 制 。 必 须 将 EEPGD 位<br />
置 位 以 指 向 闪 存 程 序 存 储 器 。 必 须 将 CFGS 位 清 零 以 访<br />
问 闪 存 程 序 存 储 器 和 数 据 EEPROM 存 储 器 。 必 须 将<br />
WREN 位 置 位 以 使 能 写 操 作 。 置 位 FREE 位 以 选 择 擦 除<br />
操 作 。 作 为 必 需 的 指 令 序 列 的 一 部 分 , 要 将 WR 位 置 位<br />
( 如 例 6-2 所 示 ) , 然 后 开 始 真 正 的 擦 除 操 作 。 因 为<br />
TABLAT 寄 存 器 被 忽 略 , 所 以 不 必 向 其 中 装 入 任 何 数<br />
据 。<br />
作 为 一 种 保 护 机 制 , 必 须 采 用 使 用 EECON2 的 写 开 始<br />
序 列 。<br />
擦 除 内 部 闪 存 必 须 执 行 长 写 操 作 。 在 长 写 周 期 中 , 指 令<br />
停 止 执 行 。 内 部 编 程 定 时 器 将 终 止 长 写 。<br />
6.4.1 闪 存 程 序 存 储 器 擦 除 顺 序<br />
擦 除 内 部 程 序 存 储 器 地 址 单 元 块 的 事 件 顺 序 如 下 :<br />
1. 将 要 擦 除 的 行 地 址 装 入 表 指 针 。<br />
2. 设 置 EECON1 寄 存 器 的 相 关 位 来 执 行 擦 除 操 作 :<br />
- 将 EEPGD 位 置 位 以 指 向 程 序 存 储 器 ;<br />
- 将 CFGS 位 清 零 以 访 问 程 序 存 储 器 ;<br />
- 将 WREN 位 置 位 以 使 能 写 操 作 ;<br />
- 将 FREE 位 置 位 以 使 能 擦 除 操 作 。<br />
3. 禁 止 中 断 。<br />
4. 向 EECON2 写 入 55h。<br />
5. 向 EECON2 写 入 AAh。<br />
6. 将 WR 位 置 位 , 这 将 开 始 行 擦 除 周 期 。<br />
7. CPU 在 擦 除 期 间 将 会 停 止 ( 利 用 内 部 定 时 器 约<br />
为 2ms)。<br />
8. 执 行 一 个 NOP。<br />
9. 重 新 允 许 中 断 。<br />
例 6-2:<br />
擦 除 闪 存 程 序 存 储 器 的 一 行<br />
MOVLW CODE_ADDR_UPPER ; load TBLPTR with the base<br />
MOVWF TBLPTRU ; address of the memory block<br />
MOVLW CODE_ADDR_HIGH<br />
MOVWF TBLPTRH<br />
MOVLW CODE_ADDR_LOW<br />
MOVWF TBLPTRL<br />
ERASE_ROW<br />
BSF EECON1,EEPGD ; point to Flash program memory<br />
BSF EECON1,WREN ; enable write to memory<br />
BSF EECON1,FREE ; enable Row Erase operation<br />
BCF INTCON,GIE ; disable interrupts<br />
MOVLW 55h<br />
MOVWF EECON2 ; write 55H<br />
必 须 按 照 MOVLW AAh<br />
这 一 顺 序 MOVWF EECON2 ; write AAH<br />
BSF EECON2,WR ; start erase (CPU stall)<br />
NOP<br />
BSF INTCON,GIE ; re-enable interrupts<br />
DS39616B_CN 第 80 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
6.5 写 闪 存 程 序 存 储 器<br />
编 程 块 大 小 为 4 字 , 即 8 字 节 。 不 支 持 字 或 字 节 编 程 。<br />
在 内 部 先 使 用 写 表 操 作 将 需 要 写 入 闪 存 存 储 器 的 内 容 装<br />
入 保 持 寄 存 器 中 。 写 表 操 作 使 用 8 个 保 持 寄 存 器 进 行 编<br />
程 。<br />
因 为 表 锁 存 器 (TABLAT) 只 是 单 字 节 寄 存 器 , 所 以 对<br />
于 每 次 编 程 操 作 , TBLWT 指 令 都 必 须 执 行 8 次 。 因 为<br />
只 写 保 持 寄 存 器 , 所 以 所 有 的 写 表 操 作 实 际 上 都 是 短<br />
写 。 更 新 8 个 寄 存 器 后 , 必 须 写 EECON1 寄 存 器 , 以<br />
便 用 长 写 开 始 编 程 操 作 。<br />
对 内 部 闪 存 编 程 要 求 长 写 操 作 。 在 长 写 周 期 中 , 指 令 停<br />
止 执 行 。 长 写 会 被 内 部 编 程 定 时 器 终 止 。<br />
图 6-5:<br />
对 闪 存 程 序 存 储 器 的 写 表 操 作<br />
TABLAT<br />
写 寄 存 器<br />
8 8 8 8<br />
TBLPTR = xxxxx0<br />
TBLPTR = xxxxx1<br />
TBLPTR = xxxxx2<br />
TBLPTR = xxxxx7<br />
保 持 寄 存 器<br />
保 持 寄 存 器<br />
保 持 寄 存 器<br />
保 持 寄 存 器<br />
程 序 存 储 器<br />
6.5.1 闪 存 程 序 存 储 器 写 顺 序<br />
内 部 程 序 存 储 单 元 的 编 程 操 作 顺 序 应 该 为 :<br />
1. 将 64 字 节 读 入 RAM。<br />
2. 必 要 时 更 新 RAM 中 的 数 据 值 。<br />
3. 把 要 擦 除 的 目 标 地 址 装 入 表 指 针 。<br />
4. 执 行 行 擦 除 ( 参 见 第 6.4.1 节 “ 闪 存 程 序 存 储 器<br />
擦 除 顺 序 ”)。<br />
5. 将 要 写 入 第 一 个 字 节 的 地 址 装 入 表 指 针 。<br />
6. 将 前 8 个 字 节 写 入 保 持 寄 存 器 ( 自 动 递 增 )。<br />
7. 设 置 EECON1 寄 存 器 的 相 关 位 来 执 行 写 操 作 :<br />
- 将 EEPGD 位 置 位 以 指 向 程 序 存 储 器 ;<br />
- 将 CFGS 位 清 零 以 访 问 程 序 存 储 器 ;<br />
- 将 WREN 位 置 位 以 使 能 字 节 写 操 作 。<br />
8. 禁 止 中 断 。<br />
9. 向 EECON2 写 入 55h。<br />
10. 向 EECON2 写 入 AAh。<br />
11. 将 WR 位 置 位 , 这 将 开 始 写 周 期 。<br />
12. CPU 在 写 入 期 间 将 会 停 止 ( 利 用 内 部 定 时 器 约<br />
为 2ms)。<br />
13. 执 行 一 个 NOP。<br />
14. 重 新 允 许 中 断 。<br />
15. 重 复 7 次 6-14 步 骤 , 写 入 64 字 节 。<br />
16. 验 证 存 储 器 ( 读 表 )。<br />
此 过 程 需 要 大 约 18 ms 以 更 新 存 储 器 的 一 行 64 字 节 。<br />
例 6-3 举 例 给 出 了 必 要 代 码 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 81 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 6-3:<br />
写 入 闪 存 程 序 存 储 器<br />
MOVLW D'64 ; number of bytes in erase block<br />
MOVWF COUNTER<br />
MOVLW BUFFER_ADDR_HIGH ; point to buffer<br />
MOVWF FSR0H<br />
MOVLW BUFFER_ADDR_LOW<br />
MOVWF FSR0L<br />
MOVLW CODE_ADDR_UPPER ; Load TBLPTR with the base<br />
MOVWF TBLPTRU ; address of the memory block<br />
MOVLW CODE_ADDR_HIGH<br />
MOVWF TBLPTRH<br />
MOVLW CODE_ADDR_LOW ; 6 LSB = 0<br />
MOVWF TBLPTRL<br />
READ_BLOCK<br />
TBLRD*+<br />
; read into TABLAT, and inc<br />
MOVFW TABLAT ; get data<br />
MOVWF POSTINC0 ; store data and increment FSR0<br />
DECFSZ COUNTER ; done<br />
GOTO READ_BLOCK ; repeat<br />
MODIFY_WORD<br />
MOVLW DATA_ADDR_HIGH ; point to buffer<br />
MOVWF FSR0H<br />
MOVLW DATA_ADDR_LOW<br />
MOVWF FSR0L<br />
MOVLW NEW_DATA_LOW ; update buffer word and increment FSR0<br />
MOVWF POSTINC0<br />
MOVLW NEW_DATA_HIGH ; update buffer word<br />
MOVWF INDF0<br />
ERASE_BLOCK<br />
MOVLW CODE_ADDR_UPPER ; load TBLPTR with the base<br />
MOVWF TBLPTRU ; address of the memory block<br />
MOVLW CODE_ADDR_HIGH<br />
MOVWF TBLPTRH<br />
MOVLW CODE_ADDR_LOW ; 6 LSB = 0<br />
MOVWF TBLPTRL<br />
BCF EECON1,CFGS ; point to PROG/EEPROM memory<br />
BSF EECON1,EEPGD ; point to Flash program memory<br />
BSF EECON1,WREN ; enable write to memory<br />
BSF EECON1,FREE ; enable Row Erase operation<br />
BCF INTCON,GIE ; disable interrupts<br />
MOVLW 55h ; Required sequence<br />
MOVWF EECON2 ; write 55H<br />
MOVLW AAh<br />
MOVWF EECON2 ; write AAH<br />
BSF EECON1,WR ; start erase (CPU stall)<br />
NOP<br />
BSF INTCON,GIE ; re-enable interrupts<br />
WRITE_BUFFER_BACK<br />
MOVLW 8 ; number of write buffer groups of 8 bytes<br />
MOVWF COUNTER_HI<br />
MOVLW BUFFER_ADDR_HIGH ; point to buffer<br />
MOVWF FSR0H<br />
MOVLW BUFFER_ADDR_LOW<br />
MOVWF FSR0L<br />
PROGRAM_LOOP<br />
MOVLW 8 ; number of bytes in holding register<br />
MOVWF COUNTER<br />
WRITE_WORD_TO_HREGS<br />
MOVFW POSTINC0 ; get low byte of buffer data and increment FSR0<br />
MOVWF TABLAT ; present data to table latch<br />
TBLWT+*<br />
; short write<br />
; to internal TBLWT holding register, increment<br />
; TBLPTR<br />
DECFSZ COUNTER ; loop until buffers are full<br />
GOTO WRITE_WORD_TO_HREGS<br />
DS39616B_CN 第 82 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 6-3: 写 入 闪 存 程 序 存 储 器 ( 续 )<br />
PROGRAM_MEMORY<br />
BCF INTCON,GIE ; disable interrupts<br />
MOVLW 55h ; required sequence<br />
MOVWF EECON2 ; write 55H<br />
MOVLW AAh<br />
MOVWF EECON2 ; write AAH<br />
BSF EECON1,WR ; start program (CPU stall)<br />
NOP<br />
BSF INTCON, GIE ; re-enable interrupts<br />
DECFSZ COUNTER_HI ; loop until done<br />
GOTO PROGRAM_LOOP<br />
BCF EECON1, WREN ; disable write to memory<br />
6.5.2 写 校 验<br />
根 据 具 体 应 用 情 况 , 一 个 比 较 好 的 编 程 习 惯 可 能 要 求 将<br />
写 入 存 储 器 的 值 与 原 始 值 作 比 较 , 进 行 校 验 。 过 多 的 写<br />
操 作 可 能 会 导 致 某 些 位 接 近 规 范 的 极 限 , 在 这 样 的 应 用<br />
场 合 就 应 该 采 用 写 校 验 。<br />
6.6 代 码 保 护 时 的 闪 存 程 序 存 储 器 操 作<br />
有 关 闪 存 程 序 存 储 器 代 码 保 护 的 详 细 资 料 , 请 参 见 第<br />
22.5 节 “ 程 序 校 验 和 代 码 保 护 ”。<br />
6.5.3 意 外 终 止 写 操 作<br />
如 果 由 于 意 外 事 件 ( 如 掉 电 或 意 外 复 位 ) 终 止 了 写 操<br />
作 , 应 该 对 刚 刚 编 程 的 存 储 器 单 元 进 行 验 证 , 如 有 必<br />
要 , 还 要 重 新 进 行 编 程 。 当 写 操 作 在 正 常 操 作 过 程 中 因<br />
MCLR 复 位 或 WDT 超 时 复 位 而 中 断 时 , WRERR 位 会<br />
被 置 位 。 在 这 些 情 况 下 , 用 户 可 以 检 查 WRERR 位 , 并<br />
重 写 该 单 元 。<br />
表 6-2:<br />
与 闪 存 程 序 存 储 器 有 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR<br />
时 的 值<br />
其 他<br />
复 位 时<br />
的 值<br />
TBLPTRU — — bit21 程 序 存 储 器 表 指 针 最 高 位 字 节 (TBLPTR) --00 0000 --00 0000<br />
TBPLTRH 程 序 存 储 器 表 指 针 高 位 字 节 (TBLPTR) 0000 0000 0000 0000<br />
TBLPTRL 程 序 存 储 器 表 指 针 低 位 字 节 (TBLPTR) 0000 0000 0000 0000<br />
TABLAT 程 序 存 储 器 表 锁 存 器 0000 0000 0000 0000<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u<br />
EECON2 EEPROM 控 制 寄 存 器 2 ( 不 是 物 理 寄 存 器 ) — —<br />
EECON1 EEPGD CFGS — FREE WRERR WREN WR RD xx-0 x000 uu-0 u000<br />
IPR2 OSFIP — — EEIP — LVDIP — CCP2IP 1--1 -1-1 1--1 -1-1<br />
PIR2 OSFIF — — EEIF — LVDIF — CCP2IF 0--0 -0-0 0--0 -0-0<br />
PIE2 OSFIE — — EEIE — LVDIE — CCP2IE 0--0 -0-0 0--0 -0-0<br />
图 注 : x= 未 知 , u= 不 变 , r= 保 留 , -= 未 实 现 , 读 作 0。<br />
阴 影 单 元 格 表 示 在 访 问 闪 存 / EEPROM 时 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 83 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 84 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
7.0 数 据 EEPROM 存 储 器<br />
在 整 个 VDD 范 围 内 的 正 常 运 行 期 间 , 数 据 EEPROM 是<br />
可 读 写 的 。 该 数 据 存 储 器 并 不 直 接 映 射 到 寄 存 器 文 件 空<br />
间 。 而 是 通 过 特 殊 功 能 寄 存 器 (SFR) 来 间 接 寻 址 。<br />
有 四 个 SFR 用 于 读 写 程 序 和 数 据 EEPROM 存 储 器 。 它<br />
们 是 :<br />
• EECON1<br />
• EECON2<br />
• EEDATA<br />
• EEADR<br />
EEPROM 数 据 存 储 器 允 许 字 节 读 写 。 在 与 数 据 存 储 器<br />
块 进 行 数 据 读 写 时 ,EEDATA 内 存 放 8 位 读 写 数 据 , 而<br />
EEADR 存 放 要 访 问 的 EEPROM 地 址 。 这 些 器 件 都 有<br />
256 字 节 的 数 据 EEPROM, 地 址 范 围 从 00h 到 FFh。<br />
EEPROM 数 据 存 储 器 具 有 高 耐 擦 写 周 期 。 字 节 写 操 作<br />
将 自 动 擦 除 该 地 址 单 元 并 写 入 新 值 ( 即 先 擦 后 写 )。 写<br />
入 的 时 间 由 片 上 定 时 器 控 制 。 其 值 根 据 电 压 、 温 度 和 不<br />
同 的 芯 片 而 不 同 。 具 体 的 限 制 值 , 请 见 参 数 D122 ( 第<br />
25.0 节 “ 电 气 特 性 ” 中 的 表 25-1)。<br />
7.1 EEADR<br />
控 制 位 CFGS 决 定 访 问 的 是 配 置 寄 存 器 还 是 程 序 存 储 器<br />
/ 数 据 EEPROM 存 储 器 。 置 位 时 , 后 续 操 作 会 访 问 配<br />
置 寄 存 器 。 而 当 CFGS 清 零 时 , 则 由 EEPGD 位 来 选 择<br />
具 体 访 问 程 序 闪 存 存 储 器 还 是 数 据 EEPROM 存 储 器 。<br />
擦 写 操 作 由 WREN 位 使 能 和 禁 止 。 置 位 时 , 允 许 擦 写<br />
操 作 。 清 零 时 , 禁 止 擦 写 操 作 。 在 WREN 位 清 零 期 间<br />
WR 位 无 法 置 位 。 这 种 机 制 可 防 止 因 意 外 执 行 错 误 ( 不<br />
期 望 的 ) 代 码 而 造 成 对 存 储 器 的 误 写 入 。<br />
除 了 开 始 执 行 擦 写 操 作 时 以 外 , 固 件 必 须 始 终 保 持<br />
WREN 位 清 零 。 一 旦 固 件 已 经 将 WR 位 置 位 , 就 可 以 将<br />
WREN 位 清 零 。 将 WREN 位 清 零 不 会 影 响 进 行 中 的 操<br />
作 。<br />
当 写 操 作 因 复 位 而 中 断 时 ,WRERR 位 被 置 位 。 在 这 种<br />
情 况 下 , 用 户 可 以 检 查 WRERR 位 , 并 重 新 对 该 单 位 写<br />
入 。 数 据 寄 存 器 和 地 址 寄 存 器 (EEDATA 和 EEADR)<br />
需 要 重 新 载 入 , 因 为 复 位 已 使 这 些 寄 存 器 清 零 。<br />
控 制 位 RD 和 WR 分 别 开 始 读 和 擦 写 操 作 。 这 些 位 由 固<br />
件 置 位 , 并 在 操 作 完 成 时 由 硬 件 清 零 。<br />
在 访 问 程 序 存 储 器 (EEPGD=1) 时 ,RD 位 无 法 置 位 。<br />
程 序 存 储 器 是 通 过 读 表 指 令 读 取 的 。 有 关 读 表 的 信 息 ,<br />
请 参 见 第 6.1 节 “ 读 表 与 写 表 ”。<br />
地 址 寄 存 器 可 寻 址 256 字 节 的 数 据 EEPROM。<br />
7.2 EECON1 和 EECON2 寄 存 器<br />
EECON1 是 控 制 存 储 器 访 问 的 控 制 寄 存 器 。<br />
EECON2 并 不 是 物 理 存 在 的 寄 存 器 。 读 EECON2 将 得<br />
到 全 0。EECON2 寄 存 器 专 用 于 存 储 器 写 和 擦 除 操 作 的<br />
时 序 。<br />
控 制 位 EEPGD 决 定 访 问 的 是 程 序 存 储 器 还 是 数 据<br />
EEPROM 存 储 器 。 清 零 时 , 操 作 将 访 问 数 据 EEPROM<br />
存 储 器 ; 置 位 时 , 则 访 问 程 序 存 储 器 。<br />
注 :<br />
PIR2 寄 存 器 中 的 中 断 标 志 位 EEIF 在 写 操<br />
作 完 成 时 置 位 。 此 标 志 位 必 须 用 软 件 清<br />
零 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 85 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 7-1:<br />
EECON1 寄 存 器<br />
R/W-x R/W-x U-0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0<br />
EEPGD CFGS - FREE WRERR WREN WR RD<br />
bit 7 bit 0<br />
bit 7 EEPGD: 闪 存 程 序 存 储 器 或 数 据 EEPROM 存 储 器 选 择 位<br />
1= 访 问 闪 存 程 序 存 储 器<br />
0= 访 问 数 据 EEPROM 存 储 器<br />
bit 6 CFGS: 闪 存 程 序 存 储 器 / 数 据 EEPROM 存 储 器 或 配 置 寄 存 器 选 择 位<br />
1= 访 问 配 置 寄 存 器 或 校 准 寄 存 器<br />
0= 访 问 闪 存 程 序 存 储 器 或 数 据 EEPROM 存 储 器<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
FREE: 闪 存 行 擦 除 使 能 位<br />
1= 在 下 一 个 WR 命 令 时 擦 除 TBLPTR 寻 址 的 程 序 存 储 器 行<br />
( 擦 除 操 作 结 束 后 清 零 )<br />
0= 仅 执 行 写 操 作<br />
WRERR:EEPROM 错 误 标 志 位<br />
1= 提 前 终 止 写 操 作<br />
( 自 定 时 擦 除 或 编 程 操 作 期 间 MCLR 或 WDT 复 位 引 起 )<br />
0= 写 操 作 正 常 完 成<br />
bit 2<br />
bit 1<br />
bit 0<br />
注 : 当 发 生 WRERR 时 , EEPGD 和 FREE 位 不 会 清 零 。 这 样 可 以 跟 踪 错 误 状 况 。<br />
WREN: 擦 写 使 能 位<br />
1= 允 许 擦 写 周 期<br />
0= 禁 止 擦 写 周 期<br />
WR: 写 控 制 位<br />
1= 启 动 数 据 EEPROM 擦 写 周 期 或 程 序 存 储 器 擦 写 周 期 。<br />
( 操 作 是 自 定 时 的 , 一 旦 写 操 作 结 束 该 位 即 由 硬 件 清 零 。 用 软 件 只 能 将 WR 位 置 位 , 但 不<br />
能 清 零 。)<br />
0= 写 周 期 完 成<br />
RD: 读 控 制 位<br />
1= 启 动 读 存 储 器<br />
( 读 操 作 需 要 一 个 周 期 。 RD 位 由 硬 件 清 零 。 用 软 件 只 能 将 RD 位 置 位 , 但 不 能 清 零 。<br />
EEPGD=1 时 RD 位 无 法 置 位 。)<br />
0 = 读 操 作 完 成<br />
图 注 :<br />
R= 可 读 位 S= 仅 可 置 位 U= 未 实 现 位 , 读 作 0<br />
W= 可 写 位 -n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零<br />
x= 未 知 位<br />
DS39616B_CN 第 86 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
7.3 读 数 据 EEPROM 存 储 器<br />
要 读 取 数 据 存 储 器 某 一 地 址 单 元 内 的 值 , 用 户 必 须 将 该<br />
地 址 写 入 EEADR 寄 存 器 , 并 把 EEPGD 控 制 位<br />
(EECON1) 清 零 , 将 控 制 位 RD (EECON1)<br />
置 位 。 可 在 下 一 个 指 令 周 期 访 问 该 数 据 ; 因 此 ,<br />
EEDATA 寄 存 器 可 由 下 一 条 指 令 读 取 。EEDATA 将 保 存<br />
这 个 值 , 直 到 另 一 个 读 操 作 开 始 或 用 户 对 其 执 行 写 入<br />
( 在 写 操 作 过 程 中 )。<br />
7.4 写 数 据 EEPROM 存 储 器<br />
要 写 EEPROM 数 据 地 址 单 元 , 必 须 首 先 将 该 地 址 写 入<br />
EEADR 寄 存 器 并 将 数 据 写 入 EEDATA 寄 存 器 。 必 须 按<br />
照 例 7-2 中 的 操 作 顺 序 才 能 启 动 写 周 期 。<br />
如 果 未 完 全 按 照 这 个 顺 序 ( 将 55h 写 入 EECON2, 将<br />
AAh 写 入 EECON2, 然 后 将 WR 位 置 位 ) 逐 字 节 写 入 ,<br />
写 操 作 将 不 会 开 始 。 强 烈 建 议 在 这 个 代 码 段 执 行 期 间 禁<br />
止 中 断 。<br />
此 外 ,EECON1 中 的 WREN 位 也 必 须 被 置 位 以 使 能 写<br />
操 作 。 这 种 机 制 可 防 止 由 于 意 外 执 行 代 码 ( 即 程 序 跑<br />
飞 ) 造 成 对 数 据 EEPROM 的 错 误 写 入 。 除 了 更 新<br />
EEPROM 时 以 外 , WREN 位 应 始 终 保 持 清 零 状 态 。 硬<br />
件 不 能 清 零 WREN 位 。<br />
写 序 列 启 动 以 后 ,EECON1、EEADR 和 EDATA 不 会 被<br />
修 改 。 除 非 将 WREN 位 置 位 , 否 则 将 禁 止 WR 位 被 置<br />
位 。 WREN 位 必 须 在 前 一 个 指 令 时 被 置 位 。 WR 和<br />
WREN 位 不 能 由 同 一 指 令 置 位 。<br />
写 周 期 完 成 后 , WR 位 将 被 硬 件 清 零 , 同 时 EEPROM<br />
中 断 标 志 位 (EEIF) 被 置 位 。 用 户 可 以 使 能 此 中 断 或 对<br />
该 位 进 行 查 询 。 EEIF 必 须 用 软 件 清 零 。<br />
7.5 写 校 验<br />
根 据 应 用 的 实 际 需 要 , 将 已 写 入 存 储 器 的 值 与 原 始 值 进<br />
行 对 比 校 验 是 很 好 的 编 程 习 惯 。 在 应 用 中 , 如 果<br />
EEPROM 位 的 写 次 数 接 近 额 定 极 限 值 时 , 就 应 该 采 用<br />
写 校 验 。<br />
7.6 误 写 保 护<br />
有 些 情 况 下 , 器 件 不 宜 向 数 据 EEPROM 存 储 器 中 写 入<br />
数 据 。 为 了 防 止 EEPROM 误 写 操 作 , 器 件 内 建 了 各 种<br />
保 护 机 制 。 上 电 时 ,WREN 位 被 清 零 。 而 且 , 上 电 延 时<br />
定 时 器 ( 持 续 时 间 72 ms) 也 可 防 止 误 写 EEPROM。<br />
在 欠 压 、 电 源 毛 刺 或 软 件 故 障 期 间 , 写 操 作 启 动 序 列 和<br />
WREN 位 可 共 同 防 止 意 外 写 操 作 的 发 生 。<br />
例 7-1:<br />
读 数 据 EEPROM<br />
MOVLW DATA_EE_ADDR ;<br />
MOVWF EEADR ; Data Memory Address to read<br />
BCF EECON1, EEPGD ; Point to DATA memory<br />
BSF EECON1, RD ; EEPROM Read<br />
MOVF EEDATA, W ; W = EEDATA<br />
例 7-2:<br />
写 数 据 EEPROM<br />
MOVLW DATA_EE_ADDR ;<br />
MOVWF EEADR ; Data Memory Address to write<br />
MOVLW DATA_EE_DATA ;<br />
MOVWF EEDATA ; Data Memory Value to write<br />
BCF EECON1, EEPGD ; Point to DATA memory<br />
BSF EECON1, WREN ; Enable writes<br />
BCF INTCON, GIE ; Disable Interrupts<br />
MOVLW 55h ;<br />
必 须 按 照 MOVWF EECON2 ; Write 55h<br />
这 一 顺 序 MOVLW AAh ;<br />
MOVWF EECON2 ; Write AAh<br />
BSF EECON1, WR ; Set WR bit to begin write<br />
BSF INTCON, GIE ; Enable Interrupts<br />
SLEEP<br />
; Wait for interrupt to signal write complete<br />
BCF EECON1, WREN ; Disable writes<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 87 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
7.7 代 码 保 护 时 的 操 作<br />
数 据 EEPROM 存 储 器 在 配 置 字 中 有 它 自 己 的 代 码 保 护<br />
位 。 如 果 使 能 任 一 种 代 码 保 护 机 制 , 外 部 读 写 操 作 就 被<br />
禁 止 。<br />
单 片 机 本 身 可 以 读 写 内 部 数 据 EEPROM, 与 代 码 保 护<br />
配 置 位 的 状 态 无 关 。 其 他 信 息 请 参 阅 第 22.0 节 “CPU<br />
的 特 殊 功 能 ”。<br />
7.8 使 用 数 据 EEPROM<br />
数 据 EEPROM 是 高 耐 久 性 , 可 字 节 寻 址 的 阵 列 , 已 对<br />
其 进 行 优 化 , 允 许 存 储 频 繁 更 改 的 信 息 ( 例 如 , 程 序 变<br />
量 或 其 他 经 常 更 新 的 数 据 )。 经 常 更 改 的 值 的 更 新 频 率<br />
通 常 高 于 规 范 D124 或 D124A 中 的 规 定 。 如 果 情 况 并 非<br />
如 此 , 必 须 执 行 阵 列 刷 新 。 因 此 , 只 是 偶 尔 更 改 的 变 量<br />
( 例 如 常 量 、ID 及 校 准 等 ) 应 该 存 储 在 闪 存 程 序 存 储 器<br />
中 。<br />
简 单 的 数 据 EEPROM 更 新 程 序 如 例 7-3 所 示 。<br />
注 :<br />
如 果 数 据 EEPROM 仅 用 于 存 储 常 量 和 / 或<br />
很 少 改 变 的 数 据 , 没 有 必 要 执 行 阵 列 刷<br />
新 。 参 见 规 范 D124 或 D124A。<br />
例 7-3:<br />
数 据 EEPROM 刷 新 程 序<br />
CLRF EEADR ; Start at address 0<br />
BCF EECON1, CFGS ; Set for memory<br />
BCF EECON1, EEPGD ; Set for Data EEPROM<br />
BCF INTCON, GIE ; Disable interrupts<br />
BSF EECON1, WREN ; Enable writes<br />
LOOP<br />
; Loop to refresh array<br />
BSF EECON1, RD ; Read current address<br />
MOVLW 55h ;<br />
MOVWF EECON2 ; Write 55h<br />
MOVLW AAh ;<br />
MOVWF EECON2 ; Write AAh<br />
BSF EECON1, WR ; Set WR bit to begin write<br />
BTFSC EECON1, WR ; Wait for write to complete<br />
BRA $-2<br />
INCFSZ EEADR, F ; Increment address<br />
BRA Loop ; Not zero, do it again<br />
BCF EECON1, WREN ; Disable writes<br />
BSF INTCON, GIE ; Enable interrupts<br />
表 7-1: 与 数 据 EEPROM 存 储 器 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR 复 位 时<br />
的 值<br />
所 有 其 他<br />
复 位 时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u<br />
EEADR EEPROM 地 址 寄 存 器 0000 0000 0000 0000<br />
EEDATA EEPROM 数 据 寄 存 器 0000 0000 0000 0000<br />
EECON2 EEPROM 控 制 寄 存 器 2 ( 不 是 物 理 寄 存 器 ) — —<br />
EECON1 EEPGD CFGS — FREE WRERR WREN WR RD xx-0 x000 uu-0 u000<br />
IPR2 OSFIP — — EEIP — LVDIP — CCP2IP 1--1 -1-1 1--1 -1-1<br />
PIR2 OSFIF — — EEIF — LVDIF — CCP2IF 0--0 -0-0 0--0 -0-0<br />
PIE2 OSFIE — — EEIE — LVDIE — CCP2IE 0--0 -0-0 0--0 -0-0<br />
图 注 : x= 未 知 , u= 不 变 , r= 保 留 , -= 未 实 现 , 读 作 0。<br />
阴 影 单 元 格 表 示 在 访 问 闪 存 / EEPROM 时 未 使 用 。<br />
DS39616B_CN 第 88 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
8.0 8 × 8 硬 件 乘 法 器<br />
8.1 简 介<br />
在 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 ALU 中 包 含 了<br />
一 个 8 × 8 硬 件 乘 法 器 。 通 过 利 用 硬 件 操 作 执 行 乘 法 ,<br />
从 而 在 一 个 指 令 周 期 内 完 成 。 这 是 一 个 无 符 号 乘 法 运<br />
算 , 得 到 一 个 16 位 结 果 。 结 果 存 储 在 16 位 乘 积 寄 存 器<br />
对 (PRODH:PRODL) 中 。 该 乘 法 器 不 会 影 响 状 态 寄<br />
存 器 中 的 任 何 标 志 。<br />
使 用 8×8 乘 法 器 在 一 个 周 期 中 执 行 任 务 会 有 如 下 优 点 :<br />
• 更 高 的 计 算 吞 吐 量<br />
• 减 少 乘 法 算 法 所 需 的 代 码 量<br />
性 能 的 增 强 使 器 件 可 以 应 用 于 以 前 仅 能 使 用 数 字 信 号 处<br />
理 器 的 场 合 中 。<br />
表 8-1 显 示 了 使 用 增 加 了 单 周 期 硬 件 乘 法 运 算 功 能 的 器<br />
件 与 不 支 持 硬 件 乘 法 运 算 的 器 件 在 执 行 相 同 功 能 时 的 性<br />
能 对 比 。<br />
表 8-1:<br />
程 序<br />
8 × 8 无 符 号<br />
8 × 8 有 符 号<br />
16 × 16 无 符 号<br />
16 × 16 有 符 号<br />
性 能 对 比<br />
乘 法 方 法<br />
程 序<br />
存 储 器<br />
( 字 )<br />
周 期<br />
( 最 大 )<br />
时 间<br />
40 MHz 10 MHz 4 MHz<br />
无 硬 件 乘 法 器 13 69 6.9 µs 27.6 µs 69 µs<br />
有 硬 件 乘 法 器 1 1 100 ns 400 ns 1 µs<br />
无 硬 件 乘 法 器 33 91 9.1 µs 36.4 µs 91 µs<br />
有 硬 件 乘 法 器 6 6 600 ns 2.4 µs 6 µs<br />
无 硬 件 乘 法 器 21 242 24.2 µs 96.8 µs 242 µs<br />
有 硬 件 乘 法 器 24 24 2.4 µs 9.6 µs 24 µs<br />
无 硬 件 乘 法 器 52 254 25.4 µs 102.6 µs 254 µs<br />
有 硬 件 乘 法 器 36 36 3.6 µs 14.4 µs 36 µs<br />
8.2 工 作 原 理<br />
例 8-1:<br />
8 × 8 无 符 号 乘 法 程 序<br />
例 8-1 显 示 了 执 行 8 × 8 无 符 号 乘 法 的 运 算 过 程 。 当<br />
WREG 寄 存 器 中 已 装 入 一 个 乘 数 时 仅 需 一 条 指 令 。<br />
例 8-2 显 示 了 执 行 8 × 8 有 符 号 乘 法 的 运 算 过 程 。 考 虑<br />
到 乘 数 的 符 号 位 , 必 须 测 试 每 个 乘 数 的 最 高 有 效 位<br />
(MSb), 并 进 行 适 当 的 减 法 。<br />
MOVF ARG1, W ;<br />
MULWF ARG2 ; ARG1 * ARG2 -><br />
; PRODH:PRODL<br />
例 8-2:<br />
8 × 8 有 符 号 乘 法 程 序<br />
MOVF ARG1, W<br />
MULWF ARG2 ; ARG1 * ARG2 -><br />
; PRODH:PRODL<br />
BTFSC ARG2, SB ; Test Sign Bit<br />
SUBWF PRODH, F ; PRODH = PRODH<br />
; - ARG1<br />
MOVF ARG2, W<br />
BTFSC ARG1, SB ; Test Sign Bit<br />
SUBWF PRODH, F ; PRODH = PRODH<br />
; - ARG2<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 89 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 8-3 显 示 了 执 行 16 × 16 无 符 号 乘 法 的 运 算 过 程 。 公<br />
式 8-1 显 示 了 使 用 的 算 法 。32 位 结 果 存 储 在 4 个 寄 存 器<br />
(RES3:RES0) 中 。<br />
公 式 8-1: 16 × 16 无 符 号 乘 法 算 法<br />
RES3:RES0 = ARG1H:ARG1L • ARG2H:ARG2L<br />
= (ARG1H • ARG2H • 2 16 )+<br />
(ARG1H • ARG2L • 2 8 )+<br />
(ARG1L • ARG2H • 2 8 )+<br />
(ARG1L • ARG2L)<br />
例 8-3:<br />
;<br />
;<br />
;<br />
16 × 16 无 符 号 乘 法 程 序<br />
MOVFARG1L, W<br />
MULWFARG2L ; ARG1L * ARG2L -><br />
; PRODH:PRODL<br />
MOVFFPRODH, RES1 ;<br />
MOVFFPRODL, RES0 ;<br />
MOVFARG1H, W<br />
MULWFARG2H ; ARG1H * ARG2H -><br />
; PRODH:PRODL<br />
MOVFFPRODH, RES3 ;<br />
MOVFFPRODL, RES2 ;<br />
MOVFARG1L, W<br />
MULWFARG2H ; ARG1L * ARG2H -><br />
; PRODH:PRODL<br />
MOVFPRODL, W ;<br />
ADDWFRES1, F ; Add cross<br />
MOVFPRODH, W ; products<br />
ADDWFCRES2, F ;<br />
CLRFWREG ;<br />
ADDWFCRES3, F ;<br />
MOVFARG1H, W ;<br />
MULWFARG2L ; ARG1H * ARG2L -><br />
; PRODH:PRODL<br />
MOVFPRODL, W ;<br />
ADDWFRES1, F ; Add cross<br />
MOVFPRODH, W ; products<br />
ADDWFCRES2, F ;<br />
CLRFWREG ;<br />
ADDWFCRES3, F ;<br />
例 8-4 显 示 了 执 行 16 × 16 有 符 号 乘 法 的 运 算 过 程 。。<br />
公 式 8-2 是 使 用 的 算 法 。 32 位 结 果 存 储 在 4 个 寄 存 器<br />
(RES3:RES0) 中 。 考 虑 到 乘 数 的 符 号 位 , 必 须 测 试 每<br />
个 乘 数 对 的 最 高 位 (MSb), 并 进 行 适 当 的 减 法 。<br />
公 式 8-2: 16 × 16 有 符 号 乘 法 算 法<br />
RES3:RES0<br />
= ARG1H:ARG1L • ARG2H:ARG2L<br />
= (ARG1H • ARG2H • 2 16 )+<br />
(ARG1H • ARG2L • 2 8 )+<br />
(ARG1L • ARG2H • 2 8 )+<br />
(ARG1L • ARG2L)+<br />
(-1 • ARG2H • ARG1H:ARG1L • 2 16 )+<br />
(-1 • ARG1H • ARG2H:ARG2L • 2 16 )<br />
例 8-4:<br />
16 × 16 有 符 号 乘 法 程 序<br />
MOVF ARG1L, W<br />
MULWF ARG2L ; ARG1L * ARG2L -><br />
; PRODH:PRODL<br />
MOVFF PRODH, RES1 ;<br />
MOVFF PRODL, RES0 ;<br />
;<br />
MOVF ARG1H, W<br />
MULWF ARG2H ; ARG1H * ARG2H -><br />
; PRODH:PRODL<br />
MOVFF PRODH, RES3 ;<br />
MOVFF PRODL, RES2 ;<br />
;<br />
MOVF ARG1L, W<br />
MULWF ARG2H ; ARG1L * ARG2H -><br />
; PRODH:PRODL<br />
MOVF PRODL, W ;<br />
ADDWF RES1, F ; Add cross<br />
MOVF PRODH, W ; products<br />
ADDWFC RES2, F ;<br />
CLRF WREG ;<br />
ADDWFC RES3, F ;<br />
;<br />
MOVF ARG1H, W ;<br />
MULWF ARG2L ; ARG1H * ARG2L -><br />
; PRODH:PRODL<br />
MOVF PRODL, W ;<br />
ADDWF RES1, F ; Add cross<br />
MOVF PRODH, W ; products<br />
ADDWFC RES2, F ;<br />
CLRF WREG ;<br />
ADDWFC RES3, F ;<br />
;<br />
BTFSS ARG2H, 7 ; ARG2H:ARG2L neg<br />
BRA SIGN_ARG1 ; no, check ARG1<br />
MOVF ARG1L, W ;<br />
SUBWF RES2 ;<br />
MOVF ARG1H, W ;<br />
SUBWFB RES3<br />
;<br />
SIGN_ARG1<br />
BTFSS ARG1H, 7 ; ARG1H:ARG1L neg<br />
BRA CONT_CODE ; no, done<br />
MOVF ARG2L, W ;<br />
SUBWF RES2 ;<br />
MOVF ARG2H, W ;<br />
SUBWFB RES3<br />
;<br />
CONT_CODE<br />
:<br />
DS39616B_CN 第 90 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.0 中 断<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 提 供 多 个 中 断 源 和<br />
中 断 优 先 权 , 为 每 个 中 断 源 分 配 一 个 或 高 或 低 的 优 先<br />
级 。 高 优 先 级 中 断 向 量 地 址 为 000008h, 低 优 先 级 中 断<br />
向 量 地 址 为 000018h。 高 优 先 级 中 断 事 件 将 中 断 所 有 可<br />
能 正 在 进 行 处 理 的 低 优 先 级 中 断 。<br />
有 13 个 寄 存 器 用 于 控 制 中 断 的 操 作 。 它 们 是 :<br />
• RCON<br />
• INTCON<br />
• INTCON2<br />
• INTCON3<br />
• PIR1、 PIR2 和 PIR3<br />
• PIE1、 PIE2 和 PIE3<br />
• IPR1、 IPR2 和 IPR3<br />
建 议 这 些 寄 存 器 中 的 符 号 位 名 称 使 用 由 MPLAB ® IDE<br />
提 供 的 Microchip 头 文 件 。 这 使 得 汇 编 器 / 编 译 器 能 够<br />
自 动 处 理 指 定 寄 存 器 内 这 些 位 的 位 置 。<br />
通 常 , 每 个 中 断 源 有 3 位 用 来 控 制 中 断 的 操 作 。 这 些 位<br />
的 功 能 是 :<br />
• 标 志 位 表 明 发 生 了 中 断 事 件<br />
• 当 标 志 位 置 位 时 , 使 能 位 便 将 程 序 执 行 转 移 到 中<br />
断 向 量 地 址 。<br />
• 优 先 级 位 用 于 选 择 是 高 优 先 级 还 是 低 优 先 级 ( 大<br />
多 数 中 断 源 有 优 先 级 位 )<br />
将 IPEN 位 (RCON) 置 位 , 可 使 能 中 断 优 先 级 功<br />
能 。 当 中 断 优 先 级 使 能 时 , 有 2 位 允 许 全 局 中 断 。 将<br />
GIEH 位 (INTCON) 置 位 , 可 允 许 所 有 优 先 级 位 已<br />
置 位 ( 高 优 先 级 ) 的 中 断 。 将 GIEL 位 (INTCON)<br />
置 位 , 可 允 许 所 有 优 先 级 位 清 零 ( 低 优 先 级 ) 的 中 断 。<br />
当 中 断 标 志 位 、 使 能 位 以 及 相 应 的 全 局 中 断 使 能 位 均 被<br />
置 位 时 , 中 断 将 立 即 转 到 地 址 000008h 或 000018h, 转<br />
到 哪 个 地 址 取 决 于 优 先 级 位 的 设 置 。 通 过 对 应 的 使 能 位<br />
也 能 禁 止 相 应 的 中 断 。<br />
当 IPEN 位 被 清 零 ( 缺 省 状 态 ), 便 会 禁 止 中 断 优 先 级 ,<br />
并 且 中 断 与 PICmicro ® 中 档 系 列 器 件 相 兼 容 。 在 兼 容 模<br />
式 下 , 各 个 中 断 源 的 中 断 优 先 级 位 均 不 起 作 用 。<br />
INTCON 是 PEIE 位 , 它 可 使 能 / 禁 止 所 有 的 外 设<br />
中 断 源 。INTCON 是 GIE 位 , 它 可 使 能 / 禁 止 所 有<br />
的 中 断 源 。 在 兼 容 模 式 下 , 所 有 中 断 均 跳 转 到 地 址<br />
000008h。<br />
当 响 应 中 断 时 , 全 局 中 断 使 能 位 被 清 零 以 禁 止 其 他 中<br />
断 。 IPEN 位 清 零 后 , 全 局 中 断 使 能 位 就 是 GIE 位 。 如<br />
果 使 用 中 断 优 先 级 , 这 个 位 就 是 GIEH 位 或 者 GIEL 位 。<br />
高 优 先 级 中 断 源 会 中 断 低 优 先 级 的 中 断 。 处 理 高 优 先 级<br />
中 断 时 , 不 会 处 理 低 优 先 级 中 断 。<br />
返 回 地 址 被 压 入 堆 栈 , PC 中 装 入 中 断 向 量 地 址<br />
(000008h 或 000018h)。 在 中 断 服 务 程 序 中 , 通 过 查<br />
询 中 断 标 志 位 可 判 断 中 断 源 。 在 重 新 允 许 中 断 前 , 必 须<br />
用 软 件 将 中 断 标 志 位 清 零 , 以 避 免 重 复 响 应 该 中 断 。<br />
“ 中 断 返 回 ” 指 令 RETFIE 退 出 中 断 程 序 并 置 位 GIE 位<br />
( 若 使 用 中 断 优 先 级 , 则 为 GIEH 或 GIEL 位 ),GIE 位<br />
会 重 新 允 许 中 断 。<br />
对 于 外 部 中 断 事 件 , 例 如 INT 引 脚 中 断 或 PORTB 输 入<br />
电 平 变 化 中 断 , 中 断 响 应 延 时 会 是 3 到 4 个 指 令 周 期 。<br />
对 于 单 周 期 或 双 周 期 指 令 , 中 断 响 应 延 时 完 全 相 同 。 各<br />
中 断 标 志 位 的 置 位 不 受 对 应 的 中 断 使 能 位 和 GIE 位 状 态<br />
的 影 响 。<br />
注 :<br />
当 任 何 中 断 被 允 许 时 , 不 要 使 用 MOVFF 指<br />
令 修 改 中 断 控 制 寄 存 器 。 否 则 可 能 引 起 单<br />
片 机 状 态 出 错 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 91 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 9-1:<br />
中 断 逻 辑 电 路<br />
PSPIF<br />
PSPIE<br />
PSPIP<br />
ADIF<br />
ADIE<br />
ADIP<br />
IPE<br />
TMR0IF<br />
TMR0IE<br />
TMR0IP<br />
RBIF<br />
RBIE<br />
RBIP<br />
INT0IF<br />
INT0IE<br />
INT1IF<br />
INT1IE<br />
INT1IP<br />
INT2IF<br />
INT2IE<br />
INT2IP<br />
如 果 处 于 功 耗 管 理 模 式<br />
则 唤 醒 CPU<br />
中 断 CPU<br />
定 位 到<br />
0008h<br />
GIEH/GIE<br />
产 生 高 优 先 级 中 断<br />
RCIF<br />
RCIE<br />
RCIP<br />
其 他 外 设 中 断<br />
IPEN<br />
GIEL/PEIE<br />
IPEN<br />
产 生 低 优 先 级 中 断<br />
ADIF<br />
ADIE<br />
ADIP<br />
RCIF<br />
RCIE<br />
RCIP<br />
PSPIF<br />
PSPIE<br />
PSPIP<br />
TMR0IF<br />
TMR0IE<br />
TMR0IP<br />
RBIF<br />
RBIE<br />
RBIP<br />
INT0IF<br />
INT0IE<br />
中 断 CPU<br />
定 位 到<br />
0018h<br />
GIEL\PEIE<br />
其 他 外 设 中 断<br />
INT1IF<br />
INT1IE<br />
INT1IP<br />
INT2IF<br />
INT2IE<br />
INT2IP<br />
DS39616B_CN 第 92 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.1 INTCON 寄 存 器<br />
INTCON 寄 存 器 是 可 读 写 的 寄 存 器 , 包 含 各 种 使 能 位 、<br />
优 先 级 位 和 标 志 位 。<br />
注 :<br />
当 一 个 中 断 条 件 发 生 时 , 不 管 相 应 的 中 断<br />
使 能 位 或 全 局 使 能 位 的 状 态 如 何 , 中 断 标<br />
志 位 都 将 置 位 。 用 户 软 件 应 在 允 许 一 个 中<br />
断 之 前 , 确 保 先 将 该 中 断 标 志 位 清 零 。 中 断<br />
标 志 位 可 以 用 于 软 件 查 询 。<br />
寄 存 器 9-1:<br />
INTCON 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x<br />
GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF<br />
bit 7 bit 0<br />
bit 7<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
GIE/GIEH: 全 局 中 断 使 能 位<br />
当 IPEN=0 时 :<br />
1 = 允 许 所 有 未 屏 蔽 的 中 断<br />
0 = 禁 止 所 有 中 断<br />
当 IPEN=1 时 :<br />
1 = 允 许 所 有 高 优 先 级 中 断<br />
0 = 禁 止 所 有 高 优 先 级 中 断<br />
PEIE/GIEL: 外 设 中 断 使 能 位<br />
当 IPEN=0 时 :<br />
1 = 允 许 所 有 未 屏 蔽 的 外 设 中 断<br />
0 = 禁 止 所 有 外 设 中 断<br />
当 IPEN=1 时 :<br />
1 = 允 许 所 有 低 优 先 级 的 外 设 中 断<br />
0 = 禁 止 所 有 低 优 先 级 的 外 设 中 断<br />
TMR0IE:TMR0 溢 出 中 断 使 能 位<br />
1 = 允 许 TMR0 溢 出 中 断<br />
0 = 禁 止 TMR0 溢 出 中 断<br />
INT0IE:INT0 外 部 中 断 使 能 位<br />
1 = 允 许 INT0 外 部 中 断<br />
0 = 禁 止 INT0 外 部 中 断<br />
RBIE:RB 端 口 电 平 变 化 中 断 使 能 位<br />
1 = 允 许 RB 端 口 (RB7:RB4 引 脚 ) 电 平 变 化 中 断<br />
0 = 禁 止 RB 端 口 (RB7:RB4 引 脚 ) 电 平 变 化 中 断<br />
TMR0IF:TMR0 溢 出 中 断 标 志 位<br />
1 = TMR0 寄 存 器 已 经 溢 出 ( 必 须 用 软 件 清 零 )<br />
0 = TMR0 寄 存 器 未 发 生 溢 出<br />
INT0IF:INT0 外 部 中 断 标 志 位<br />
1 = 发 生 INT0 外 部 中 断 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 INT0 外 部 中 断<br />
RBIF:RB 端 口 电 平 变 化 中 断 标 志 位<br />
1 = RB7:RB4 引 脚 中 至 少 有 一 个 的 状 态 发 生 了 变 化 ( 必 须 用 软 件 清 零 )<br />
0 = RB7:RB4 引 脚 状 态 没 有 变 化<br />
注 :<br />
不 匹 配 的 状 况 会 不 断 地 将 RBIF 位 置 位 。 读 PORTB,<br />
将 结 束 不 匹 配 状 况 , 并 将 该 位 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
- n = 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 93 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-2:<br />
INTCON2 寄 存 器<br />
R/W-1 R/W-1 R/W-1 R/W-1 U-0 R/W-1 U-0 R/W-1<br />
RBPU INTEDG0 INTEDG1 INTEDG2 - TMR0IP - RBIP<br />
bit 7 bit 0<br />
bit 7 RBPU:PORTB 上 拉 使 能 位<br />
1 = 禁 止 所 有 PORTB 上 拉<br />
0 = 按 各 个 端 口 锁 存 器 值 使 能 PORTB 上 拉<br />
bit 6 INTEDG0: 外 部 Interrput0 边 沿 选 择 位<br />
1 = 上 升 沿 时 中 断<br />
0 = 下 降 沿 时 中 断<br />
bit 5 INTEDG1: 外 部 Interrput1 边 沿 选 择 位<br />
1 = 上 升 沿 时 中 断<br />
0 = 下 降 沿 时 中 断<br />
bit 4 INTEDG2: 外 部 Interrput2 边 沿 选 择 位<br />
1 = 上 升 沿 时 中 断<br />
0 = 下 降 沿 时 中 断<br />
bit 3 未 实 现 位 : 读 作 0<br />
bit 2 TMR0IP:TMR0 溢 出 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
RBIP:RB 端 口 电 平 变 化 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
注 :<br />
当 一 个 中 断 条 件 发 生 时 , 不 管 相 应 的 中 断 使 能 位 或 全 局 使 能 位 的 状 态 如 何 , 中 断 标 志<br />
位 都 将 置 位 。 用 户 软 件 应 在 允 许 一 个 中 断 之 前 , 确 保 先 将 该 中 断 标 志 位 清 零 。 中 断 标<br />
志 位 可 以 用 于 软 件 查 询 。<br />
DS39616B_CN 第 94 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-3:<br />
INTCON3 寄 存 器<br />
R/W-1 R/W-1 U-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0<br />
INT2IP INT1IP - INT2IE INT1IE - INT2IF INT1IF<br />
bit 7 bit 0<br />
bit 7 INT2IP:INT2 外 部 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 6 INT1IP:INT1 外 部 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4 INT2IE:INT2 外 部 中 断 使 能 位<br />
1 = 允 许 INT2 外 部 中 断<br />
0 = 禁 止 INT2 外 部 中 断<br />
bit 3 INT1IE:INT1 外 部 中 断 使 能 位<br />
1 = 允 许 INT1 外 部 中 断<br />
0 = 禁 止 INT1 外 部 中 断<br />
bit 2 未 实 现 位 : 读 作 0<br />
bit 1<br />
bit 0<br />
INT2IF:INT2 外 部 中 断 标 志 位<br />
1 = 发 生 INT2 外 部 中 断 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 INT2 外 部 中 断<br />
INT1IF:INT1 外 部 中 断 标 志 位<br />
1 = 发 生 INT1 外 部 中 断 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 INT1 外 部 中 断<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
注 :<br />
当 一 个 中 断 条 件 发 生 时 , 不 管 相 应 的 中 断 使 能 位 或 全 局 使 能 位 的 状 态 如 何 , 中 断 标 志<br />
位 都 将 置 位 。 用 户 软 件 应 在 允 许 一 个 中 断 之 前 , 确 保 先 将 该 中 断 标 志 位 清 零 。 中 断 标<br />
志 位 可 以 用 于 软 件 查 询 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 95 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.2 PIR 寄 存 器<br />
PIR 寄 存 器 包 含 各 外 设 中 断 的 标 志 位 。 根 据 外 设 中 断 源<br />
的 数 量 , 有 两 个 外 设 中 断 标 志 寄 存 器 (PIR1 和 PIR2)。<br />
注<br />
1: 当 一 个 中 断 条 件 发 生 时 , 不 管 相 应 的 中 断<br />
使 能 位 或 全 局 使 能 位 GIE(INTCON)<br />
的 状 态 如 何 , 中 断 标 志 位 都 将 置 位 。<br />
2: 用 户 软 件 应 在 允 许 一 个 中 断 之 前 , 确 保 先<br />
将 该 中 断 标 志 位 清 零 ; 同 时 在 响 应 该 中 断<br />
后 , 也 应 将 该 中 断 标 志 位 清 零 。<br />
寄 存 器 9-4: PIR1: 外 设 中 断 请 求 ( 标 志 ) 寄 存 器 1<br />
U-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0。<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
ADIF:A/D 转 换 器 中 断 标 志 位<br />
1 = A/D 转 换 已 完 成 ( 必 须 用 软 件 清 零 )<br />
0 = A/D 转 换 未 完 成<br />
RCIF:USART 接 收 中 断 标 志 位<br />
1 = USART 接 收 缓 冲 器 RCREG 已 满 ( 读 取 RCREG 时 清 零 )<br />
0 = USART 接 收 缓 冲 器 为 空<br />
TXIF:USART 发 送 中 断 标 志 位<br />
1 = USART 发 送 缓 冲 器 TXREG 为 空 ( 写 入 TXREG 时 清 零 )<br />
0 = USART 发 送 缓 冲 器 已 满<br />
SSPIF: 同 步 串 行 端 口 中 断 标 志 位<br />
1 = 发 送 / 接 收 完 成 ( 必 须 用 软 件 清 零 )<br />
0 = 等 待 发 送 / 接 收<br />
CCP1IF:CCP1 中 断 标 志 位<br />
捕 捉 模 式 :<br />
1 = 发 生 了 TMR1 寄 存 器 捕 捉 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 TMR1 寄 存 器 捕 捉<br />
比 较 模 式 :<br />
1 = 发 生 了 TMR1 寄 存 器 的 比 较 匹 配 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 TMR1 寄 存 器 的 比 较 匹 配<br />
PWM 模 式 :<br />
在 此 模 式 下 未 使 用<br />
TMR2IF:TMR2 与 PR2 匹 配 中 断 标 志 位<br />
1= TMR2 与 PR2 匹 配 ( 必 须 用 软 件 清 零 )<br />
0= TMR2 与 PR2 不 匹 配<br />
TMR1IF:TMR1 溢 出 中 断 标 志 位<br />
1= TMR1 寄 存 器 已 经 溢 出 ( 必 须 用 软 件 清 零 )<br />
0= TMR1 寄 存 器 未 发 生 溢 出<br />
注 1: 在 PIC18F2X31 器 件 中 , 该 位 是 保 留 位 ; 总 是 保 持 清 零 状 态 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 96 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-5: PIR2: 外 设 中 断 请 求 ( 标 志 ) 寄 存 器 2<br />
R/W-0 U-0 U-0 R/W-0 U-0 R/W-0 U-0 R/W-0<br />
OSFIF - - EEIF - LVDIF - CCP2IF<br />
bit 7 bit 0<br />
bit 7 OSFIF: 振 荡 器 故 障 中 断 标 志 位<br />
1 = 系 统 振 荡 器 故 障 , 改 由 INTOSC 作 为 时 钟 输 入 ( 必 须 用 软 件 清 零 )<br />
0 = 系 统 时 钟 正 在 工 作<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4 EEIF:EEPROM 或 闪 存 写 操 作 中 断 标 志 位<br />
1 = 写 操 作 完 成 ( 必 须 用 软 件 清 零 )<br />
0 = 写 操 作 未 完 成 或 未 开 始<br />
bit 3 未 实 现 位 : 读 作 0<br />
bit 2 LVDIF: 低 压 检 测 中 断 标 志 位<br />
1 = 供 电 电 压 已 经 降 到 规 定 的 LVD 电 压 以 下 ( 必 须 用 软 件 清 零 )<br />
0 = 供 电 电 压 高 于 规 定 的 LVD 电 压<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
CCP2IF:CCP2 中 断 标 志 位<br />
捕 捉 模 式 :<br />
1 = 发 生 了 TMR1 寄 存 器 捕 捉 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 TMR1 寄 存 器 捕 捉<br />
比 较 模 式 :<br />
1 = 发 生 了 TMR1 寄 存 器 的 比 较 匹 配 ( 必 须 用 软 件 清 零 )<br />
0 = 未 发 生 TMR1 寄 存 器 的 比 较 匹 配<br />
PWM 模 式 :<br />
在 PWM 模 式 下 未 使 用<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 97 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-6: PIR3: 外 设 中 断 标 志 寄 存 器 3<br />
U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- - - PTIF IC3DRIF IC2QEIF IC1IF TMR5IF<br />
bit 7 bit 0<br />
bit 7-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
PTIF:PWM 时 基 中 断 位<br />
1 = PWM 时 基 与 PTPER 寄 存 器 中 的 值 匹 配 。 根 据 后 分 频 器 的 设 置 发 出 中 断 。 PTIF 必 须 用 软 件<br />
清 零 。<br />
0 = PWM 时 基 与 PTPER 寄 存 器 中 的 值 不 匹 配 。<br />
IC3DRIF:IC3 中 断 标 志 / 方 向 变 化 中 断 标 志 位<br />
IC3 使 能 (CAP3CON)<br />
1 = 当 CAP3 输 入 出 现 有 效 沿 时 , TMR5 的 值 被 其 捕 捉 ( 必 须 用 软 件 清 零 )。<br />
0 = 未 发 生 TMR5 捕 捉 。<br />
QEI 使 能 (QEIM)<br />
1 = 转 动 方 向 发 生 变 化 ( 必 须 用 软 件 清 零 )。<br />
0 = 转 动 方 向 未 变 化 。<br />
IC2QEIF:IC2 中 断 标 志 / QEI 中 断 标 志 位<br />
IC2 使 能 (CAP2CON)<br />
1 = 当 CAP2 输 入 出 现 有 效 沿 时 , TMR5 的 值 被 其 捕 捉 ( 必 须 用 软 件 清 零 )。<br />
0 = 未 发 生 TMR5 捕 捉 。<br />
QEI 使 能 (QEIM)<br />
1 = QEI 位 置 计 数 器 已 经 达 到 MAXCNT 值 或 已 经 检 测 到 索 引 脉 冲 INDX。 取 决 于 使 能 的 QEI 工 作<br />
模 式 。 必 须 用 软 件 清 零 。<br />
0 = QEI 位 置 计 数 器 还 未 达 到 MAXCNT 值 或 还 未 检 测 到 索 引 脉 冲 。<br />
IC1IF:IC1 中 断 标 志 位<br />
IC1 使 能 (CAP1CON)<br />
1 = 当 CAP1 输 入 出 现 有 效 沿 时 , TMR5 的 值 被 其 捕 捉 ( 必 须 用 软 件 清 零 )。<br />
0 = 未 发 生 TMR5 捕 捉 。<br />
QEI 使 能 (QEIM) 且 速 率 测 量 模 式 使 能<br />
(QEICON 寄 存 器 中 VELM =0)<br />
1 = 当 PHA 或 PHB 输 入 出 现 有 效 速 率 沿 时 ,TMR5 的 值 被 其 捕 捉 。 必 须 将 CAP1CON 寄 存 器 中<br />
的 CAP1REN 位 置 位 。 IC1IF 必 须 用 软 件 清 零 。<br />
0 = Timer5 的 值 未 被 有 效 速 率 沿 捕 捉 。<br />
TMR5IF:Timer5 中 断 标 志 位<br />
1 = Timer5 时 基 与 PR5 的 值 匹 配 ( 必 须 用 软 件 清 零 )。<br />
0 = Timer5 时 基 与 PR5 的 值 不 匹 配 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 98 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.3 PIE 寄 存 器<br />
PIE 寄 存 器 包 含 各 外 设 中 断 的 使 能 位 。 根 据 外 设 中 断 源 的<br />
数 量 , 有 两 个 外 设 中 断 使 能 寄 存 器 (PIE1 和 PIE2)。 当<br />
IPEN = 0 时 , 要 允 许 任 何 外 设 中 断 就 必 须 将 PEIE 位 置<br />
位 。<br />
寄 存 器 9-7: PIE1: 外 设 中 断 使 能 寄 存 器 1<br />
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
ADIE:A/D 转 换 器 中 断 使 能 位<br />
1 = 允 许 A/D 中 断<br />
0 = 禁 止 A/D 中 断<br />
RCIE:USART 接 收 中 断 使 能 位<br />
1 = 允 许 USART 接 收 中 断<br />
0 = 禁 止 USART 接 收 中 断<br />
TXIE:USART 发 送 中 断 使 能 位<br />
1 = 允 许 USART 发 送 中 断<br />
0 = 禁 止 USART 发 送 中 断<br />
SSPIE: 同 步 串 行 端 口 中 断 使 能 位<br />
1 = 允 许 SSP 中 断<br />
0 = 禁 止 SSP 中 断<br />
CCP1IE:CCP1 中 断 使 能 位<br />
1 = 允 许 CCP1 中 断<br />
0 = 禁 止 CCP1 中 断<br />
TMR2IE:TMR2 与 PR2 匹 配 中 断 使 能 位<br />
1 = 允 许 TMR2 与 PR2 匹 配 中 断<br />
0 = 禁 止 TMR2 与 PR2 匹 配 中 断<br />
TMR1IE:TMR1 溢 出 中 断 使 能 位<br />
1 = 允 许 TMR1 溢 出 中 断<br />
0 = 禁 止 TMR1 溢 出 中 断<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 99 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-8: PIE2: 外 设 中 断 使 能 寄 存 器 2<br />
R/W-0 U-0 U-0 R/W-0 U-0 R/W-0 U-0 R/W-0<br />
OSFIE - - EEIE - LVDIE - CCP2IE<br />
bit 7 bit 0<br />
bit 7 OSFIE: 振 荡 器 故 障 中 断 使 能 位<br />
1= 允 许<br />
0= 禁 止<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4 EEIE:EEPROM 或 闪 存 写 操 作 中 断 使 能 位<br />
1= 允 许<br />
0= 禁 止<br />
bit 3 未 实 现 位 : 读 作 0<br />
bit 2 LVDIE: 低 压 检 测 中 断 使 能 位<br />
1= 允 许<br />
0= 禁 止<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
CCP2IE:CCP2 中 断 使 能 位<br />
1= 允 许<br />
0= 禁 止<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 100 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-9: PIE3: 外 设 中 断 使 能 寄 存 器 3<br />
U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- - - PTIE IC3DRIE IC2QEIE IC1IE TMR5IE<br />
bit 7 bit 0<br />
bit 7-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
PTIE:PWM 时 基 中 断 使 能 位<br />
1 = 使 能 PTIF<br />
0 = 禁 止 PTIF<br />
IC3DRIE:IC3 中 断 使 能 / 方 向 变 化 中 断 使 能 位<br />
IC3 使 能 (CAP3CON)<br />
1 = 允 许 IC3 中 断<br />
0 = 禁 止 IC3 中 断<br />
QEI 使 能 (QEIM)<br />
1 = 允 许 方 向 变 化 中 断<br />
0 = 禁 止 方 向 变 化 中 断<br />
IC2QEIE:IC2 中 断 标 志 / QEI 中 断 标 志 使 能 位<br />
IC2 使 能 (CAP2CON)<br />
1 = 允 许 IC2 中 断 )<br />
0 = 禁 止 IC2 中 断<br />
QEI 使 能 (QEIM)<br />
1 = 允 许 QEI 中 断<br />
0 = 禁 止 QEI 中 断<br />
IC1IE:IC1 中 断 使 能 位<br />
1 = 允 许 IC1 中 断<br />
0 = 禁 止 IC1 中 断<br />
TMR5IE:Timer5 中 断 使 能 位<br />
1 = 允 许 Timer5 中 断<br />
0 = 禁 止 Timer5 中 断<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 101 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.4 IPR 寄 存 器<br />
IPR 寄 存 器 包 含 各 外 设 中 断 的 优 先 级 位 。 根 据 外 设 中 断<br />
源 的 数 量 , 有 三 个 外 设 中 断 优 先 级 寄 存 器 (IPR1、IPR2<br />
和 IPR3) 。 使 用 优 先 级 位 要 求 将 中 断 优 先 级 使 能<br />
(IPEN) 位 置 位 。<br />
寄 存 器 9-10: IPR1: 外 设 中 断 优 先 级 寄 存 器 1<br />
U-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1<br />
— ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 ADIP:A/D 转 换 器 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 5 RCIP:USART 接 收 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 4 TXIP:USART 发 送 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit3 SSPIP: 同 步 串 行 端 口 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 2 CCP1IP:CCP1 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 1 TMR2IP:TMR2 与 PR2 匹 配 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
bit 0 TMR1IP:TMR1 溢 出 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 102 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-11: IPR2: 外 设 中 断 优 先 级 寄 存 器 2<br />
R/W-1 U-0 U-0 R/W-1 U-0 R/W-1 U-0 R/W-1<br />
OSFIP — — EEIP — LVDIP — CCP2IP<br />
bit 7 bit 0<br />
bit 7 OSFIP: 振 荡 器 故 障 中 断 优 先 级 位<br />
1= 高 优 先 级<br />
0= 低 优 先 级<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4 EEIP:EEPROM 或 闪 存 写 操 作 中 断 优 先 级 位<br />
1= 高 优 先 级<br />
0= 低 优 先 级<br />
bit 3 未 实 现 位 : 读 作 0<br />
bit 2 LVDIP: 低 压 检 测 中 断 优 先 级 位<br />
1= 高 优 先 级<br />
0= 低 优 先 级<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
CCP2IP:CCP2 中 断 优 先 级 位<br />
1= 高 优 先 级<br />
0= 低 优 先 级<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 103 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 9-12: IPR3: 外 设 中 断 优 先 级 寄 存 器 3<br />
U-0 U-0 U-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1<br />
— — PTIP IC3DRIP IC2QEIP IC1IP TMR5IP<br />
bit 7 bit 0<br />
bit 7-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
PTIP:PWM 时 基 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
IC3DRIP:IC3 中 断 优 先 级 / 方 向 变 化 中 断 优 先 级 位<br />
IC3 使 能 (CAP3CON)<br />
1 = IC3 中 断 高 优 先 级<br />
0 = IC3 中 断 低 优 先 级<br />
QEI 使 能 (QEIM)<br />
1 = 方 向 变 化 中 断 高 优 先 级<br />
0 = 方 向 变 化 中 断 低 优 先 级<br />
IC2QEIP:IC2 中 断 优 先 级 / QEI 中 断 优 先 级 位<br />
IC2 使 能 (CAP2CON)<br />
1 = IC2 中 断 高 优 先 级<br />
0 = IC2 中 断 低 优 先 级<br />
QEI 使 能 (QEIM)<br />
1 = QEI 中 断 高 优 先 级<br />
0 = QEI 中 断 低 优 先 级<br />
IC1IP:IC1 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
TMR5IP:Timer5 中 断 优 先 级 位<br />
1 = 高 优 先 级<br />
0 = 低 优 先 级<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 104 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.5 RCON 寄 存 器<br />
RCON 寄 存 器 包 含 了 这 样 的 位 , 可 以 用 来 确 定 器 件 上 次<br />
从 功 耗 管 理 模 式 被 复 位 或 唤 醒 的 原 因 。RCON 中 还 包 含<br />
一 位 , 该 位 可 以 使 能 中 断 优 先 级 (IPEN)。<br />
寄 存 器 9-13:<br />
RCON 寄 存 器<br />
R/W-0 U-0 U-0 R/W-1 R-1 R-1 R/W-0 R/W-0<br />
IPEN — — RI TO PD POR BOR<br />
bit 7 bit 0<br />
bit 7 IPEN: 中 断 优 先 级 使 能 位<br />
1= 使 能 中 断 优 先 级<br />
0= 禁 止 中 断 优 先 级 (PIC16CXXX 兼 容 模 式 )<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
RI:RESET 指 令 标 志 位<br />
关 于 位 操 作 的 具 体 细 节 , 参 见 寄 存 器 5-3<br />
TO: 看 门 狗 定 时 器 超 时 溢 出 标 志 位<br />
关 于 位 操 作 的 具 体 细 节 , 参 见 寄 存 器 5-3<br />
PD: 掉 电 检 测 标 志 位<br />
关 于 位 操 作 的 具 体 细 节 , 参 见 寄 存 器 5-3<br />
POR: 上 电 复 位 状 态 位<br />
关 于 位 操 作 的 具 体 细 节 , 参 见 寄 存 器 5-3<br />
BOR: 欠 压 复 位 状 态 位<br />
关 于 位 操 作 的 具 体 细 节 , 参 见 寄 存 器 5-3<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 105 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
9.6 INTn 引 脚 中 断<br />
RC3/INT0、RC4/INT1 和 RC5/INT2 引 脚 的 外 部 中 断 是<br />
边 沿 触 发 的 : 如 果 INTCON2 寄 存 器 中 相 应 的 INTEDGx<br />
位 被 置 位 , 则 为 上 升 沿 触 发 ; 如 果 INTEDGx 位 被 清 零 ,<br />
则 为 下 降 沿 触 发 。 当 RC3/INT0 引 脚 上 出 现 一 个 有 效 边<br />
沿 时 , 相 应 的 标 志 位 INTxF 被 置 位 。 通 过 对 相 应 的 使 能<br />
位 INTxE 清 零 , 该 中 断 可 被 禁 止 。 在 重 新 允 许 该 中 断<br />
前 , 必 须 在 中 断 服 务 程 序 中 用 软 件 将 标 志 位 INTxF 清<br />
零 。 如 果 INTxE 位 在 进 入 功 耗 管 理 模 式 前 被 置 位 , 则 所<br />
有 的 外 部 中 断 (INT0、INT1 及 INT2) 可 以 将 处 理 器 从<br />
功 耗 管 理 模 式 中 唤 醒 。 如 果 全 局 中 断 使 能 位 GIE 被 置<br />
位 , 则 处 理 器 在 唤 醒 之 后 将 转 至 中 断 向 量 。<br />
INT1 和 INT2 的 中 断 优 先 级 由 中 断 优 先 级 位 INT1IP<br />
(INTCON3) 和 INT2IP (INTCON3) 包 含 的<br />
值 决 定 。 没 有 与 INT0 相 关 的 优 先 级 位 。INT0 始 终 是 一<br />
个 高 优 先 级 的 中 断 源 。<br />
9.7 TMR0 中 断<br />
在 8 位 模 式 下 ( 缺 省 设 置 ) , TMR0 寄 存 器 的 溢 出<br />
(FFh → 00h) 将 会 使 标 志 位 TMR0IF 置 位 。 在 16 位 模<br />
式 下 , TMR0H:TMR0L 寄 存 器 的 溢 出 (FFFFh<br />
→0000h) 将 会 使 标 志 位 TMR0IF 置 位 。 通 过 置 位 / 清 零<br />
使 能 位 TMR0IE(INTCON), 该 中 断 可 以 被 允 许 /<br />
禁 止 。 Timer0 的 中 断 优 先 级 由 中 断 优 先 级 位 TMR0IP<br />
(INTCON2) 包 含 的 值 决 定 。 更 多 详 情 , 请 参 阅 第<br />
11.0 节 “Timer0 模 块 ”。<br />
9.8 PORTB 电 平 变 化 中 断<br />
PORTB 的 输 入 电 平 变 化 , 会 将 标 志 位 RBIF<br />
(INTCON) 置 位 。 通 过 置 位 / 清 零 使 能 位 RBIE<br />
(INTCON), 该 中 断 可 以 被 允 许 / 禁 止 。 PORTB<br />
电 平 变 化 中 断 的 优 先 级 由 中 断 优 先 级 位 RBIP<br />
(INTCON2) 包 含 的 值 决 定 。<br />
9.9 中 断 的 现 场 保 护<br />
在 中 断 期 间 , 将 返 回 的 PC 地 址 压 入 堆 栈 。 另 外 , 将<br />
WREG、Status 和 BSR 寄 存 器 的 值 压 入 快 速 返 回 堆 栈 。<br />
如 果 未 使 用 中 断 快 速 返 回 ( 见 第 5.3 节 “ 快 速 寄 存 器 堆<br />
栈 ” ) , 用 户 可 能 需 要 在 进 入 中 断 服 务 程 序 时 , 保 存<br />
WREG、 Status 和 BSR 寄 存 器 的 值 。 根 据 用 户 的 实 际<br />
应 用 , 还 可 能 需 要 保 存 其 他 寄 存 器 的 值 。 例 9-1 给 出 了<br />
如 何 在 执 行 中 断 服 务 程 序 期 间 , 保 存 并 恢 复 WREG、<br />
Status 和 BSR 寄 存 器 的 值 。<br />
例 9-1:<br />
在 RAM 内 保 存 STATUS、 WREG 和 BSR 寄 存 器<br />
MOVWF W_TEMP ; W_TEMP is in virtual bank<br />
MOVFF STATUS,STATUS_TEMP ; STATUS_TEMP located anywhere<br />
MOVFF BSR,BSR_TEMP ; BSR_TMEP located anywhere<br />
;<br />
; USER ISR CODE<br />
;<br />
MOVFF BSR_TEMP,BSR ; Restore BSR<br />
MOVF W_TEMP, W ; Restore WREG<br />
MOVFF STATUS_TEMP, STATUS ; Restore STATUS<br />
DS39616B_CN 第 106 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
10.0 I/O 端 口<br />
根 据 选 定 的 器 件 和 使 能 的 功 能 , 最 多 有 五 个 端 口 可 用 。<br />
I/O 端 口 的 一 些 引 脚 与 器 件 上 外 设 功 能 部 件 的 某 个 功 能<br />
复 用 。 一 般 来 说 , 当 使 能 某 个 外 设 时 , 对 应 的 引 脚 就 不<br />
能 作 为 通 用 I/O 引 脚 。<br />
每 个 端 口 都 有 三 个 寄 存 器 用 于 操 作 。 它 们 是 :<br />
• TRIS 寄 存 器 ( 数 据 方 向 寄 存 器 )<br />
• PORT 寄 存 器 ( 读 取 器 件 的 引 脚 电 平 )<br />
• LAT 寄 存 器 ( 输 出 锁 存 器 )<br />
在 对 I/O 引 脚 电 平 驱 动 的 值 执 行 读 - 修 改 - 写 操 作 时 ,<br />
数 据 锁 存 器 (LAT 寄 存 器 ) 非 常 有 用 。<br />
图 10-1 所 示 为 通 用 I/O 端 口 的 简 化 模 型 , 其 中 没 有 与 其<br />
他 外 设 进 行 交 互 。<br />
图 10-1:<br />
RD LAT<br />
数 据<br />
总 线<br />
WR LAT<br />
或 PORT<br />
WR TRIS<br />
RD TRIS<br />
RD PORT<br />
D<br />
CK<br />
数 据 锁 存 器<br />
D<br />
CK<br />
TRIS 锁 存 器<br />
通 用 I/O 端 口 工 作 原 理<br />
Q<br />
Q<br />
EN EN<br />
注 1:I/O 引 脚 到 VDD 和 VSS 之 间 有 二 极 管 保 护 。<br />
Q<br />
D<br />
(1)<br />
I/O 引 脚<br />
输 入<br />
缓 冲<br />
10.1 PORTA、 TRISA 和 LATA 寄 存 器<br />
PORTA 是 一 个 8 位 宽 的 双 向 端 口 。 相 应 的 数 据 方 向 寄<br />
存 器 为 TRISA。 置 位 TRISA 位 (= 1) 可 以 让 相 应 PORTA<br />
引 脚 作 为 输 入 引 脚 ( 即 将 相 应 的 输 出 驱 动 器 置 于 高 阻<br />
态 )。 清 零 TRISA 位 (= 0) 将 使 相 应 的 PORTA 引 脚<br />
作 为 输 出 引 脚 ( 即 将 输 出 锁 存 器 的 内 容 置 于 所 选 的 引 脚<br />
上 )。<br />
读 PORTA 寄 存 器 就 是 读 引 脚 状 态 , 而 写 该 寄 存 器 就 是<br />
写 入 端 口 锁 存 器 。<br />
数 据 锁 存 寄 存 器 (LATA) 也 是 存 储 器 映 射 的 。 对 LATA<br />
寄 存 器 执 行 读 - 修 改 - 写 操 作 就 是 读 写 PORTA 的 锁 存<br />
输 出 值 。<br />
RA 引 脚 与 三 个 输 入 捕 捉 引 脚 以 及 正 交 编 码 器 接 口<br />
引 脚 复 用 。 RA6 和 RA7 引 脚 与 主 振 荡 器 引 脚 复 用 , 通<br />
过 在 配 置 寄 存 器 1H 中 选 择 主 振 荡 器 可 使 能 这 些 引 脚 为<br />
振 荡 器 还 是 I/O 引 脚 ( 如 需 了 解 详 细 信 息 , 请 参 阅 第<br />
22.1 节 “ 配 置 位 ”)。 当 它 们 没 有 被 用 作 端 口 引 脚 时 ,<br />
RA6 和 RA7 及 其 相 关 的 TRIS 和 LAT 位 读 作 0。<br />
其 他 PORTA 引 脚 与 模 拟 输 入 、 模 拟 VREF+ 和 VREF- 输<br />
入 以 及 比 较 器 参 考 电 压 输 出 复 用 。 通 过 清 零 / 置 位<br />
ANSEL0 和 ANSEL1 寄 存 器 内 的 控 制 位 可 以 选 择<br />
RA3:RA0 和 RA5 引 脚 作 为 A/D 转 换 器 输 入 。<br />
注 1: 在 上 电 复 位 时 ,RA5:RA0 被 配 置 为 模 拟 输<br />
入 并 读 作 0。<br />
2: RA5 I/F 只 在 40 引 脚 的 器 件<br />
(PIC18F4X31) 上 可 用 。<br />
即 使 将 RA 引 脚 用 作 模 拟 输 入 ,TRISA 寄 存 器 仍 控 制 RA<br />
引 脚 的 方 向 。 在 将 它 们 用 作 模 拟 输 入 时 , 用 户 必 须 确 保<br />
TRISA 寄 存 器 中 的 相 应 位 保 持 置 位 状 态 。<br />
例 10-1: 初 始 化 PORTA<br />
CLRF PORTA ; Initialize PORTA by<br />
; clearing output<br />
; data latches<br />
CLRF LATA ; Alternate method<br />
; to clear output<br />
; data latches<br />
MOVLW 0x3F ; Configure A/D<br />
MOVWF ANSEL0 ; for digital inputs<br />
MOVLW 0xCF ; Value used to<br />
; initialize data<br />
; direction<br />
MOVWF TRISA ; Set RA as inputs<br />
; RA as outputs<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 107 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-2: RA0 框 图 图 10-3: RA1 框 图<br />
VDD<br />
数 据<br />
总 线<br />
D<br />
RD LATA<br />
Q<br />
数 据 总 线<br />
RD LATA<br />
D Q<br />
P<br />
WR LATA<br />
或<br />
PORTA<br />
WR TRISA<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
模 拟<br />
输 入<br />
模 式<br />
VDD<br />
P<br />
N<br />
VSS<br />
I/O 引 脚<br />
WR LATA<br />
或<br />
PORTA<br />
WR TRISA<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
RD TRISA<br />
模 拟<br />
输 入<br />
模 式<br />
N<br />
VSS<br />
TTL<br />
RA1<br />
RD TRISA<br />
Q<br />
D<br />
TTL<br />
输 入<br />
缓 冲<br />
RD PORTA<br />
Q<br />
D<br />
EN<br />
RD PORTA<br />
EN<br />
到 A/D 转 换 器<br />
到 A/D 转 换 器<br />
图 10-4:<br />
RA3:RA2 引 脚 框 图<br />
VDD<br />
P<br />
数 据 总 线<br />
WR LATA<br />
或<br />
PORTA<br />
RD LATA<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
I/O 引 脚<br />
WR TRISA<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
VSS<br />
模 拟<br />
输 入<br />
模 式<br />
RD TRISA<br />
Q<br />
D<br />
TTL<br />
施 密 特<br />
触 发 器<br />
输 入<br />
缓 冲 器<br />
EN<br />
RD PORTA<br />
到 A/D 转 换 器<br />
到 CAP1/INDX 或 CAP2/QEA<br />
DS39616B_CN 第 108 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-5:<br />
RA4 框 图<br />
数 据<br />
总 线<br />
D<br />
RD LATA<br />
Q<br />
WR LATA<br />
或<br />
PORTA<br />
CK<br />
Q<br />
数 据 锁 存 器<br />
VDD<br />
P<br />
D<br />
Q<br />
N<br />
RA4 (1)<br />
WR TRISA<br />
CK<br />
Q<br />
TRIS 锁 存 器<br />
模 拟<br />
输 入<br />
模 式<br />
VSS<br />
施 密 特<br />
触 发 器<br />
输 入<br />
缓 冲 器<br />
RD TRISA<br />
Q<br />
D<br />
TTL<br />
输 入<br />
缓 冲<br />
EN<br />
RD PORTA<br />
到 A/D 转 换 器<br />
到 CAP3/QEB<br />
注 1: 对 于 此 器 件 来 说 , RA4 上 通 常 可 用 的 漏 极 开 路 已 经 去 除 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 109 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-6:<br />
RA5 框 图<br />
图 10-8:<br />
RA7 框 图<br />
INTOSC 使 能<br />
数 据<br />
总 线<br />
WR LATA<br />
或<br />
PORTA<br />
WR TRISA<br />
RD LATA<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
RD TRISA<br />
Q<br />
D<br />
VDD<br />
P<br />
N<br />
VSS<br />
模 拟<br />
输 入<br />
模 式 或<br />
LVDIN<br />
使 能<br />
TTL<br />
输 入<br />
缓 冲<br />
I/O<br />
引 脚<br />
数 据<br />
总 线<br />
WR LATA<br />
或<br />
PORTA<br />
RD LATA<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
RD TRISA<br />
INTOSC<br />
且 RA7 使 能<br />
P<br />
N<br />
至<br />
振 荡 器<br />
VDD<br />
VSS<br />
TTL<br />
输 入<br />
缓 冲<br />
I/O<br />
引 脚<br />
EN<br />
RD PORTA<br />
Q<br />
D<br />
EN<br />
到 A/D 转 换 器 / LVD 模 块 输 入<br />
RD PORTA<br />
图 10-7:<br />
RA6 框 图<br />
数 据<br />
总 线<br />
ECRA6 或 RCRA6<br />
使 能<br />
RD LATA<br />
至<br />
振 荡 器<br />
WR LATA<br />
或<br />
PORTA<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
VDD<br />
P<br />
N<br />
I/O<br />
引 脚<br />
CK Q<br />
TRIS 锁 存 器<br />
ECRA6 或<br />
RCRA6<br />
使 能<br />
VSS<br />
RD TRISA<br />
TTL<br />
输 入<br />
缓 冲<br />
Q<br />
D<br />
EN<br />
RD PORTA<br />
DS39616B_CN 第 110 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 10-1:<br />
PORTA 功 能<br />
名 称 Bit # 缓 冲 器 功 能<br />
RA0/AN0 bit 0 TTL 输 入 / 输 出 或 模 拟 输 入 。<br />
RA1/AN1 bit 1 TTL 输 入 / 输 出 或 模 拟 输 入 。<br />
RA2/AN2/VREF-/CAP1/INDX bit 2 TTL/ST 输 入 / 输 出 、 模 拟 输 入 、 VREF-、 捕 捉 输 入 或 QEI 索 引 输 入 。<br />
RA3/AN3/VREF+/CAP2/QEA bit 3 TTL/ST 输 入 / 输 出 、 模 拟 输 入 、 VREF+、 捕 捉 输 入 或 正 交 通 道 A 输 入 。<br />
RA4/AN4/CAP3/QEB bit 4 TTL/ST 输 入 / 输 出 、 模 拟 输 入 、 捕 捉 输 入 或 正 交 通 道 B 输 入 。<br />
RA5/AN5/LVDIN bit 5 TTL 输 入 / 输 出 、 模 拟 输 入 或 低 压 检 测 输 入 。<br />
OSC2/CLKO/RA6 bit 6 TTL OSC2、 时 钟 输 出 或 I/O 引 脚 。<br />
OSC1/CLKI/RA7 bit 7 TTL OSC1、 时 钟 输 入 或 I/O 引 脚 。<br />
图 注 :<br />
TTL = TTL 输 入 , ST = 施 密 特 触 发 器 输 入<br />
表 10-2:<br />
与 PORTA 相 关 的 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
PORTA RA7 (1) RA6 (1) RA5 RA4 RA3 RA2 RA1 RA0 xx0x 0000 uu0u 0000<br />
LATA LATA7 (1) LATA6 (1) LATA 数 据 输 出 寄 存 器 xxxx xxxx uuuu uuuu<br />
TRISA TRISA7 (1) TRISA6 (1) PORTA 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
ADCON1 VCFG1 VCFG0 — FIFOEN BFEMT BFOVFL ADPNT1 ADPNT0 00-1 0000 00-1 0000<br />
ANSEL0 ANS7 (2) ANS6 (2) ANS5 (2) ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111<br />
ANSEL1 — — — — — — — ANS8 (2) ---- ---1 ---- ---1<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 位 , 读 作 0。 阴 影 单 元 格 表 示 PORTA 未 使 用 。<br />
注 1: RA7:RA6 以 及 与 之 相 关 的 锁 存 器 和 数 据 方 向 位 根 据 振 荡 器 配 置 使 能 为 I/O 引 脚 ; 否 则 , 它 们 将 读 为 0。<br />
2: 只 有 在 PIC18F4X31 器 件 中 ANS5 至 ANS8 才 可 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 111 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
10.2 PORTB、 TRISB 和 LATB 寄 存 器<br />
PORTB 是 一 个 8 位 宽 的 双 向 端 口 。 相 应 的 数 据 方 向 寄<br />
存 器 为 TRISB。 置 位 TRISB 位 (= 1) 可 以 让 相 应 PORTB<br />
引 脚 作 为 输 入 引 脚 ( 即 将 相 应 的 输 出 驱 动 器 置 于 高 阻<br />
态 )。 清 零 TRISB 位 (= 0) 将 使 相 应 的 PORTB 引 脚<br />
作 为 输 出 引 脚 ( 即 将 输 出 锁 存 器 的 内 容 置 于 所 选 的 引 脚<br />
上 )。<br />
数 据 锁 存 器 (LATB) 也 是 存 储 器 映 射 的 。 对 LATB 寄<br />
存 器 执 行 读 - 修 改 - 写 操 作 将 读 写 PORTB 的 锁 存 输 出<br />
值 。<br />
例 10-2: 初 始 化 PORTB<br />
CLRF PORTB ; Initialize PORTB by<br />
; clearing output<br />
; data latches<br />
CLRF LATB ; Alternate method<br />
; to clear output<br />
; data latches<br />
MOVLW 0xCF ; Value used to<br />
; initialize data<br />
; direction<br />
MOVWF TRISB ; Set RB as inputs<br />
; RB as outputs<br />
; RB as inputs<br />
四 个 PORTB 引 脚 (RB7:RB4) 具 有 电 平 变 化 中 断 功<br />
能 。 只 有 配 置 为 输 入 的 引 脚 会 导 致 这 种 中 断 发 生 ( 即 当<br />
RB7:RB4 的 任 何 一 个 引 脚 被 配 置 为 输 出 时 , 该 引 脚 不 再<br />
具 有 电 平 变 化 的 中 断 功 能 )。 将 RB7:RB4 引 脚 上 的 输 入<br />
电 平 与 前 次 读 PORTBe 而 锁 存 的 旧 值 进 行 比 较 。 对<br />
RB7:RB4 的 不 匹 配 输 出 进 行 “ 或 ” 运 算 , 通 过 将 标 志<br />
位 RBIF(INTCON) 置 1 产 生 RB 端 口 电 平 变 化 中<br />
断 。<br />
此 中 断 可 以 将 器 件 从 休 眠 状 态 唤 醒 。 用 户 可 以 用 以 下 方<br />
法 在 中 断 服 务 程 序 中 清 除 中 断 请 求 。<br />
a) 读 或 写 PORTB ( 除 了 使 用 MOVFF (ANY),<br />
PORTB 指 令 )。 这 将 结 束 电 平 变 化 的 情 况 。<br />
b) 清 零 标 志 位 RBIF。<br />
电 平 变 化 的 情 况 会 一 直 不 断 地 将 标 志 位 RBIF 置 位 。 而<br />
读 PORTB 将 结 束 这 种 电 平 变 化 的 情 况 并 允 许 清 零 RBIF<br />
标 志 位 。<br />
对 于 按 键 唤 醒 操 作 以 及 其 他 仅 将 PORTB 用 于 电 平 变 化<br />
中 断 功 能 的 操 作 , 建 议 用 该 电 平 变 化 中 断 来 实 现 。 在 使<br />
用 电 平 变 化 中 断 功 能 时 , 建 议 不 要 查 询 PORTB 的 状 态 。<br />
RB 和 RB4 引 脚 分 别 与 14 位 PWM 模 块 的<br />
PWM 和 PWM5 输 出 复 用 。 可 以 通 过 配 置 位<br />
PWM4MX 将 RB5 引 脚 配 置 为 PWM4 输 出 的 复 用 引 脚 。<br />
PORTB 的 每 个 引 脚 都 有 内 部 弱 上 拉 电 路 。 只 要 对 控 制<br />
位 RBPU(INTCON2) 清 零 , 就 可 以 接 通 所 有 引 脚<br />
的 弱 上 拉 功 能 。 当 端 口 引 脚 设 置 为 输 出 时 , 其 弱 上 拉 电<br />
路 会 自 动 切 断 。 这 些 弱 上 拉 电 路 在 上 电 复 位 时 被 禁 止 。<br />
DS39616B_CN 第 112 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-9:<br />
RB3:RB0 引 脚 框 图<br />
RBPU (1)<br />
PORT/PWM 选 择<br />
VDD<br />
弱 上 拉<br />
P<br />
PWM0,1,2,3 数 据<br />
0<br />
VDD<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATB<br />
或<br />
PORTB<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RB<br />
引 脚<br />
WR TRISB<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
VSS<br />
TTL<br />
输 入<br />
缓 冲<br />
RD TRISB<br />
Q<br />
D<br />
RD PORTB<br />
EN<br />
注<br />
1: 要 使 能 弱 上 拉 电 路 , 可 以 置 位 相 应 的 TRIS 位 并 清 零 RBPU 位 (INTCON2)。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 113 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-10:<br />
RB4 框 图<br />
RBPU (1)<br />
VDD<br />
弱 上 拉<br />
P<br />
PORT/PWM 选 择<br />
PWM5 数 据<br />
0<br />
VDD<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATB<br />
或<br />
PORTB<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RB4 引 脚<br />
WR TRISB<br />
D Q<br />
CK Q<br />
TRIS 锁 存 器<br />
VSS<br />
TTL<br />
输 入<br />
缓 冲<br />
RD TRISB<br />
RD LATB<br />
Q<br />
D<br />
RD PORTB<br />
EN<br />
Q1<br />
置 位 RBIF<br />
来 自 其 他 Q D<br />
RB7:RB4 引 脚<br />
EN<br />
RD PORTB<br />
Q3<br />
注<br />
1: 要 使 能 弱 上 拉 电 路 , 可 以 置 位 相 应 的 TRIS 位 并 清 零 RBPU 位 (INTCON2)。<br />
DS39616B_CN 第 114 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-11:<br />
PORT/PWM 选 择<br />
RB5 框 图<br />
PWM4 数 据<br />
0<br />
1<br />
VDD<br />
P<br />
N<br />
VSS<br />
RBPU<br />
VDD<br />
弱 上 拉<br />
P<br />
数 据 总 线<br />
WR PORT<br />
D<br />
CK<br />
Q<br />
Q<br />
RB5/PGM<br />
数 据 锁 存 器<br />
D<br />
Q<br />
WR TRIS<br />
CK<br />
TRIS 锁 存 器<br />
RD TRIS<br />
TTL<br />
输 入<br />
缓 冲<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
置 位 RBIF<br />
RD PORT<br />
EN<br />
Q1<br />
来 自 其 他 Q D<br />
RB7:RB4 引 脚<br />
EN<br />
RD 端 口<br />
Q3<br />
LVP 配 置 位<br />
1 = 允 许 低 压 (LV) 编 程<br />
0 = 只 允 许 高 压 (HV) 编 程<br />
使 能 ICSP<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 115 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-12:<br />
RB7:RB6 引 脚 框 图<br />
使 能 调 试 或 ICSP<br />
RBPU (1)<br />
P<br />
弱 上 拉<br />
0<br />
数 据 总 线<br />
WR LATB<br />
或<br />
PORTB<br />
RD LATB<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
1<br />
使 能<br />
调 试<br />
BRBx<br />
0 1<br />
使 能<br />
调 试<br />
RB7/RB6<br />
引 脚<br />
WR TRISB<br />
CK<br />
Q<br />
BTRISx<br />
TRIS 锁 存 器<br />
RD TRISC<br />
Q<br />
D<br />
TTL<br />
输 入<br />
缓 冲<br />
施 密 特<br />
触 发 器<br />
使 能 调 试<br />
或 ICSP<br />
RD PORTB<br />
EN<br />
Q1<br />
置 位 RBIF<br />
来 自 其 他<br />
RB7:RB4 引 脚<br />
Q<br />
D<br />
EN<br />
RD PORTB<br />
Q3<br />
PGC (2) /PGD (3)<br />
注 1: 要 使 能 弱 上 拉 电 路 , 可 以 置 位 相 应 的 TRIS 位 并 清 零 RBPU 位 (INTCON2)。<br />
2: PGC 在 RB6 上 可 用 。<br />
3: PGD 在 RB7 上 可 用 。<br />
DS39616B_CN 第 116 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 10-3:<br />
PORTB 功 能<br />
名 称 Bit # 缓 冲 器 功 能<br />
RB0/PWM0 bit 0 TTL (1) 输 入 / 输 出 引 脚 或 PCPWM 输 出 PWM0。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
RB1/PWM1 bit 1 TTL (1) 输 入 / 输 出 引 脚 或 PCPWM 输 出 PWM1。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
RB2/PWM2 bit 2 TTL (1) 输 入 / 输 出 引 脚 或 PCPWM 输 出 PWM2。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
RB3/PWM3 bit 3 TTL (1) 输 入 / 输 出 引 脚 或 PCPWM 输 出 PWM3。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
RB4/KBI0/PWM5 bit 4 TTL 输 入 / 输 出 引 脚 ( 带 电 平 变 化 中 断 ) 或 PCPWM 输 出 PWM5。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
RB5/KBI1/PWM4/<br />
PGM<br />
bit 5 TTL/ST (2) 输 入 / 输 出 引 脚 ( 带 电 平 变 化 中 断 ) 或 PCPWM 输 出 PWM4。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
低 压 ICSP 使 能 引 脚 。<br />
RB6/KBI2/PGC bit 6 TTL/ST (2) 输 入 / 输 出 引 脚 ( 带 电 平 变 化 中 断 )。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
串 行 编 程 时 钟 。<br />
RB7/KBI3/PGD bit 7 TTL/ST (2) 输 入 / 输 出 引 脚 ( 带 电 平 变 化 中 断 )。<br />
内 部 软 件 可 编 程 的 弱 上 拉 电 路 。<br />
串 行 编 程 数 据 。<br />
图 注 : TTL = TTL 输 入 , ST = 施 密 特 触 发 器 输 入<br />
注 1: 配 置 为 数 字 I/O 时 缓 冲 器 为 TTL 输 入 。<br />
2: 在 串 行 编 程 模 式 下 使 用 时 , 该 缓 冲 器 是 施 密 特 触 发 器 输 入 。<br />
表 10-4:<br />
与 PORTB 相 关 的 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxq qqqq uuuu uuuu<br />
LATB LATB 数 据 输 出 寄 存 器 xxxx xxxx uuuu uuuu<br />
TRISB PORTB 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
INTCON2 RBPU INTEDG0 INTEDG1 INTEDG2 — TMR0IP — RBIP 1111 -1-1 1111 -1-1<br />
INTCON3 INT2IP INT1IP — INT2IE INT1IE — INT2IF INT1IF 11-0 0-00 11-0 0-00<br />
图 注 : x= 未 知 , u= 不 变 , q= 根 据 情 况 而 变 。 阴 影 单 元 格 表 示 PORTB 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 117 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
10.3 PORTC、 TRISC 和 LATC 寄 存 器<br />
PORTC 是 一 个 8 位 宽 的 双 向 端 口 。 相 应 的 数 据 方 向 寄<br />
存 器 为 TRISC。 置 位 TRISC 位 (= 1) 可 以 让 相 应<br />
PORTC 引 脚 作 为 输 入 引 脚 ( 即 将 相 应 的 输 出 驱 动 器 置<br />
于 高 阻 态 )。 清 零 TRISC 位 ( = 0) 将 使 相 应 的 PORTC<br />
引 脚 作 为 输 出 引 脚 ( 即 将 输 出 锁 存 器 的 内 容 置 于 所 选 的<br />
引 脚 上 )。<br />
数 据 锁 存 器 (LATC) 也 是 存 储 器 映 射 的 。 对 LATC 寄<br />
存 器 执 行 读 - 修 改 - 写 操 作 将 读 写 PORTC 的 锁 存 输 出<br />
值 。<br />
PORTC 与 几 种 外 设 功 能 复 用 ( 表 10-5)。 这 些 引 脚 具<br />
有 施 密 特 触 发 器 输 入 缓 冲 器 。<br />
当 外 设 功 能 使 能 时 , 在 定 义 每 个 PORTC 引 脚 的 TRIS 位<br />
时 应 该 小 心 。 有 些 外 设 会 覆 盖 相 应 引 脚 的 TRIS 位 设 置 而<br />
将 引 脚 直 接 定 义 为 输 出 , 而 另 一 些 外 设 也 会 覆 盖 相 应 引<br />
脚 的 TRIS 位 设 置 , 但 却 将 引 脚 直 接 定 义 为 输 入 。 用 户 应<br />
该 参 考 相 应 的 外 设 章 节 来 正 确 设 置 TRIS 位 。<br />
注 :<br />
在 上 电 复 位 时 , 这 些 引 脚 被 配 置 为 数 字 输<br />
入 。<br />
外 设 覆 盖 会 影 响 TRISC 寄 存 器 的 内 容 。 虽 然 外 设 器 件 可<br />
能 会 覆 盖 一 个 或 多 个 引 脚 , 但 是 读 TRISC 结 果 总 是 会 返<br />
回 当 前 内 容 。<br />
外 部 中 断 IN0、 INT1 和 INT2 分 别 位 于 RC3、 RC4 和<br />
RC5。<br />
SSP 复 用 接 口 引 脚 SDI/SDA、 SCK/SCL 和 SDO 分 别<br />
位 于 RC4、 RC5 和 RC7 引 脚 。<br />
通 过 使 用 CONFIG3L 寄 存 器 的 SSPMX 位 可 以 将 这 些 引<br />
脚 与 PORTC 和 PORTD 复 用 。<br />
USART 引 脚 RX/DT 和 TX/CK 分 别 位 于 RC7 和 RC6 引<br />
脚 。<br />
Timer5 复 用 外 部 时 钟 输 入 T5CKI 和 TMR0 复 用 外 部 时<br />
钟 输 入 T0CKI 位 于 RC3 引 脚 , 利 用 CONFIG3L 寄 存 器<br />
中 的 EXCLKMX 配 置 位 可 以 将 它 们 与 PORTD (RD0)<br />
引 脚 复 用 。 14 位 PWM 模 块 的 故 障 输 入 FLTA 和 FLTB<br />
分 别 位 于 RC1 和 RC2。 RC1 上 的 FLTA 输 入 通 过 利 用<br />
FLTAMX 位 与 RD4 复 用 。<br />
例 10-3: 初 始 化 PORTC<br />
CLRF PORTC ; Initialize PORTC by<br />
; clearing output<br />
; data latches<br />
CLRF LATC ; Alternate method<br />
; to clear output<br />
; data latches<br />
MOVLW 0xCF ; Value used to<br />
; initialize data<br />
; direction<br />
MOVWF TRISC ; Set RC as inputs<br />
; RC as outputs<br />
; RC as inputs<br />
图 10-13:<br />
RC0 框 图<br />
VDD<br />
P<br />
数 据 总 线<br />
RD LATC<br />
D Q<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
N<br />
RC0 引 脚<br />
WR TRISC<br />
CK Q<br />
TRIS 锁 存 器<br />
VSS<br />
Timer1<br />
振 荡 器<br />
T1 OSC EN<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
到 RC1 引 脚<br />
Q<br />
D<br />
EN<br />
RD PORTC<br />
T1 时 钟 输 入<br />
DS39616B_CN 第 118 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-14:<br />
RC1 框 图<br />
PORT/CCP2 选 择<br />
CCP2 数 据 输 出<br />
0<br />
VDD<br />
到 RC0 引 脚<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC1 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
FLTAMX<br />
Q<br />
D<br />
EN<br />
RD PORTC<br />
CCP2 输 入<br />
(1)<br />
FLTA 输 入<br />
注 1: FLTA 输 入 使 用 CONFIG3L 寄 存 器 中 的 FLTAMX 配 置 位 与 RC1 和 RD4 复 用 。<br />
图 10-15:<br />
RC2 框 图<br />
PORT/CCP1 选 择<br />
CCP1 数 据 输 出<br />
0<br />
VDD<br />
数 据 总 线<br />
D<br />
RD LATC<br />
Q<br />
1<br />
P<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC2 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
CCP1 输 入 /FLTB 输 入<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 119 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-16:<br />
RC3 框 图<br />
VDD<br />
P<br />
RD LATC<br />
数 据 总 线<br />
WR LATC<br />
或<br />
PORTC<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC3 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
(1)<br />
EXCLKMX 使 能<br />
Q<br />
D<br />
EN<br />
RD PORTC<br />
T0CKI/T5CKI 输 入<br />
注 1: 当 使 能 配 置 寄 存 器 中 的 EXCLKM (=1) 时 , T0CKI/T5CKI 位 与 RD0 复 用 。<br />
图 10-17:<br />
RC4 框 图<br />
PORT/SSP 模 式 和 SSPMX 选 择<br />
SDA 数 据 输 出<br />
0<br />
VDD<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC4 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
SDA 驱 动<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
SSPMX (1)<br />
Q<br />
D<br />
EN<br />
RD PORTC<br />
SDI/SDA 输 入<br />
注 1: 通 过 配 置 寄 存 器 中 的 SSPMX 位 使 SDI/SDA 位 与 RD2 和 RC4 引 脚 复 用 。<br />
DS39616B_CN 第 120 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-18:<br />
RC5 框 图<br />
I 2 C 模 式<br />
PORT/ SSPEN 和 SSPMX 选 择<br />
SCK/SCL 数 据 输 出<br />
0<br />
VDD<br />
数 据 总 线<br />
D<br />
RD LATC<br />
Q<br />
1<br />
P<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC5 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
SDO 驱 动<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
SSPMX (1)<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
SCL 或 SCL 输 入<br />
注 1: 使 用 配 置 寄 存 器 中 的 SSPMX 位 使 SCK/SCL 与 RD3 和 RC5 复 用 。<br />
图 10-19:<br />
RC6 框 图<br />
USART 选 择<br />
TX/CK 数 据 输 出<br />
0<br />
VDD<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATC<br />
或<br />
PORTC<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RC6 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
USART 选 择<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
TTL<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
CK 输 入<br />
SS 输 入<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 121 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-20:<br />
RC6 框 图<br />
(1)<br />
USART 选 择<br />
DT 数 据 输 出<br />
PORT/(SSPEN * SPI 模 式 ) 选 择<br />
SDO 数 据 输 出 (2)<br />
RD LATC<br />
0<br />
1<br />
0<br />
1<br />
VDD<br />
P<br />
数 据 总 线<br />
WR LATC<br />
或<br />
PORTC<br />
D<br />
CK<br />
Q<br />
Q<br />
数 据 锁 存 器<br />
N<br />
RC7 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
USART 选 择 (1)<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
RX/DT 数 据 输 入<br />
注 1: USART 仅 适 用 于 同 步 主 控 发 送 模 式 (SYNC = 1, TXEN = 1)。<br />
2: SDO 必 须 将 它 的 TRISC 位 清 零 以 便 能 驱 动 RC7。<br />
DS39616B_CN 第 122 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 10-5:<br />
PORTC 功 能<br />
名 称 Bit # 缓 冲 器 类 型 功 能<br />
RC0/T1OSO/T1CKI bit 0 ST 输 入 / 输 出 端 口 引 脚 或 Timer1 振 荡 器 输 出 / Timer1 时 钟 输 入 。<br />
RC1/T1OSI/CCP2/<br />
FLTA<br />
bit 1 ST/CMOS 输 入 / 输 出 端 口 引 脚 、 Timer1 振 荡 器 输 入 、 当 CCP2MX 配 置 位 被 禁<br />
止 时 为 Capture2 输 入 / Compare2 输 出 / PWM 输 出 、 或 FLTA 输<br />
入 。<br />
RC2/CCP1/FLTB bit 2 ST 输 入 / 输 出 端 口 引 脚 、 Capture1 输 入 / Compare1 输 出 / PWM1 输<br />
出 或 FLTB 输 入 。<br />
RC3/T0CKI/T5CKI/ bit 3 ST 输 入 / 输 出 端 口 引 脚 、 Timer0 和 Timer5 复 用 时 钟 输 入 或 外 部 中 断 0。<br />
INT0<br />
RC4/INT1/SDI/SDA bit 4 ST 输 入 / 输 出 端 口 引 脚 、 SPI 数 据 输 入 、 I 2 C 数 据 I/O 或 外 部 中 断 1。<br />
RC5/INT2/SCK/SCL bit 5 ST 输 入 / 输 出 端 口 引 脚 或 同 步 串 行 端 口 时 钟 I/O 或 外 部 中 断 2。<br />
RC6/TX/CK/SS bit 6 ST 输 入 / 输 出 端 口 引 脚 、 EUSART 异 步 发 送 、 EUSART 同 步 时 钟 或 SPI<br />
从 动 选 择 输 入 。<br />
RC7/RX/DT/SDO bit 7 ST 输 入 / 输 出 端 口 引 脚 、 EUSART 异 步 接 收 、 EUSART 同 步 数 据 或 SPI<br />
数 据 输 出 。<br />
图 注 :<br />
ST= 施 密 特 触 发 器 输 入<br />
表 10-6:<br />
与 PORTC 相 关 的 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复<br />
位 时 的 值<br />
PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx uuuu uuuu<br />
LATC LATC 数 据 输 出 寄 存 器 xxxx xxxx uuuu uuuu<br />
TRISC PORTC 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
INTCON2 RBPU INTEDG0 INTEDG1 INTEDG2 — TMR0IP — RBIP 1111 -1-1 1111 -1-1<br />
INTCON3 INT2IP INT1IP — INT2IE INT1IE — INT2IF INT1IF 11-0 0-00 11-0 0-00<br />
图 注 :<br />
x= 未 知 , u= 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 123 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
10.4 PORTD、 TRISD 和 LATD 寄 存 器<br />
注 : PORTD 只 在 PIC18F4X31 器 件 上 可 用 。<br />
PORTD 是 一 个 8 位 宽 的 双 向 端 口 。 相 应 的 数 据 方 向 寄<br />
存 器 是 TRISD。 置 位 TRISD 位 (= 1) 可 以 让 相 应<br />
PORTD 引 脚 作 为 输 入 引 脚 ( 即 将 相 应 的 输 出 驱 动 器 置<br />
于 高 阻 态 )。 清 零 TRISD 位 (= 0) 将 使 相 应 的 PORTD<br />
引 脚 作 为 输 出 引 脚 ( 即 将 输 出 锁 存 器 的 内 容 置 于 所 选 的<br />
引 脚 上 )。<br />
数 据 锁 存 器 (LATD) 也 是 存 储 器 映 射 的 。 对 LATD 寄<br />
存 器 执 行 读 - 修 改 - 写 操 作 将 读 写 PORTD 的 锁 存 输 出<br />
值 。<br />
PORTD 上 的 所 有 引 脚 都 通 过 施 密 特 触 发 器 输 入 缓 冲 器<br />
实 现 。 每 个 引 脚 被 单 独 设 置 为 输 入 或 输 出 。<br />
注 :<br />
在 上 电 复 位 时 , 这 些 引 脚 被 配 置 为 数 字 输<br />
入 。<br />
PORTD 包 含 PWM 的 互 补 第 四 通 道 PWM 输 出 。<br />
PMW4 是 PMW5 ( 第 三 通 道 ) 的 互 补 输 出 , PMW4 与<br />
RB5 引 脚 复 用 。 在 RB5 上 使 用 低 压 编 程 引 脚 (PGM)<br />
时 使 用 CONFIG3L 中 的 PWM4MX 配 置 位 可 以 将 该 输 出<br />
用 作 PWM4 的 复 用 输 出 。<br />
使 用 CONFIG3L 中 的 SSPMX 配 置 位 可 以 将 RD1、RD2<br />
和 RD3 用 作 SDO、SDI/SDA 和 SCK/SCL 的 复 用 输 出 。<br />
使 用 CONFIG3L 中 的 FLTAMX 配 置 位 可 以 将 RD4 用 作<br />
FLTA 的 复 用 输 出 。<br />
例 10-4: 初 始 化 PORTD<br />
CLRF PORTD ; Initialize PORTD by<br />
; clearing output<br />
; data latches<br />
CLRF LATD ; Alternate method<br />
; to clear output<br />
; data latches<br />
MOVLW 0xCF ; Value used to<br />
; initialize data<br />
; direction<br />
MOVWF TRISD ; Set RD as inputs<br />
; RD as outputs<br />
; RD as inputs<br />
图 10-21:<br />
RD7:RD6 引 脚 框 图<br />
PORT/PWM 选 择<br />
PWM6,7 数 据 输 出<br />
0<br />
VDD<br />
数 据 总 线<br />
RD LATD<br />
D Q<br />
1<br />
P<br />
WR LATD<br />
或<br />
PORTD<br />
CK Q<br />
数 据 锁 存 器<br />
D Q<br />
N<br />
RD[7:6] 引 脚<br />
WR TRISD<br />
CK Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
EN<br />
RD PORTD<br />
DS39616B_CN 第 124 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-22:<br />
RD5 框 图<br />
PORT/PWM 选 择<br />
PWM4 数 据 输 出<br />
0<br />
VDD<br />
数 据 总 线<br />
D<br />
RD LATD<br />
Q<br />
1<br />
P<br />
WR LATD<br />
或<br />
PORTD<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RD5 引 脚<br />
WR TRISD<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
EN<br />
RD PORTD<br />
图 10-23:<br />
RD4 框 图<br />
VDD<br />
P<br />
RD LATD<br />
数 据 总 线<br />
WR LATD<br />
或<br />
PORTD<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RD4 引 脚<br />
WR TRISD<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
施 密 特<br />
触 发 器<br />
FLTAMX (1)<br />
Q<br />
D<br />
EN<br />
RD PORTD<br />
FLTA 输 入<br />
注 1: FLTAMX 位 于 配 置 寄 存 器 中 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 125 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-24: RD3 框 图<br />
I 2 C 模 式<br />
PORT/ SSPEN 和 SSPMX 选 择<br />
SCK/SCL 数 据 输 出<br />
0<br />
VDD<br />
数 据 总 线<br />
WR LATD<br />
或<br />
PORTD<br />
RD LATD<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
1<br />
P<br />
N<br />
RD3 引 脚<br />
WR TRISD<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
SSPMX (1)<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
SCK 或 SCL 输 入<br />
注 1: SCK/SCL 通 过 配 置 寄 存 器 中 的 SSPMX 位 与 RD3 和 RC5 复 用 。<br />
图 10-25:<br />
RD2 框 图<br />
PORT/SSP 模 式 和 SSPMX 选 择<br />
SDA 数 据 输 出<br />
0<br />
VDD<br />
RD LATC<br />
1<br />
P<br />
数 据 总 线<br />
WR LATC<br />
或<br />
PORTC<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RD2 引 脚<br />
WR TRISC<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
SDA 驱 动<br />
RD TRISC<br />
施 密 特<br />
触 发 器<br />
SSPMX (1)<br />
Q<br />
D<br />
RD PORTC<br />
EN<br />
SDI/SDA 输 入<br />
注 1: SDI/SDA 位 通 过 配 置 寄 存 器 中 的 SSPMX 位 与 RD2 和 RC4 引 脚 复 用 。<br />
DS39616B_CN 第 126 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-26:<br />
RD1 框 图<br />
PORT/SPI 模 式 和 SSPMX 选 择<br />
SDO 数 据 输 出<br />
0<br />
VDD<br />
RD LATD<br />
1<br />
P<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATD<br />
或<br />
PORTD<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RD1 引 脚<br />
WR TRISD<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
RD PORTD<br />
EN<br />
注 1: SDO 输 出 通 过 配 置 寄 存 器 中 的 SSPMX 位 复 用 。<br />
图 10-27:<br />
RD0 框 图<br />
VDD<br />
P<br />
RD LATD<br />
数 据 总 线<br />
WR LATD<br />
或<br />
PORTD<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RD0 引 脚<br />
WR TRISD<br />
D<br />
CK<br />
Q<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISD<br />
施 密 特<br />
触 发 器<br />
SSPMX (1)<br />
Q<br />
D<br />
RD PORTD<br />
EN<br />
T0CKI/T5CKI 输 入<br />
注 1: T0CKI/T5CKI 通 过 配 置 寄 存 器 中 的 SSPMX 位 复 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 127 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 10-7:<br />
PORTD 功 能<br />
名 称 Bit # 缓 冲 器 类 型 功 能<br />
RD0/T0CKI/T5CKI bit 0 ST 输 入 / 输 出 端 口 引 脚 。<br />
RD1/SDO bit 1 ST 输 入 / 输 出 端 口 引 脚 。<br />
RD2/SDI/SDA bit 2 ST 输 入 / 输 出 端 口 引 脚 。<br />
RD3/SCK/SCL bit 3 ST 输 入 / 输 出 端 口 引 脚 。<br />
RD4/FLTA bit 4 ST 输 入 / 输 出 端 口 引 脚 。<br />
RD5/PWM4 bit 5 ST 输 入 / 输 出 端 口 引 脚 或 PCPWM 输 出 PWM4。<br />
RD6/PWM6 bit 6 ST 输 入 / 输 出 端 口 引 脚 或 PCPWM 输 出 PWM6。<br />
RD7/PWM7 bit 7 ST 输 入 / 输 出 端 口 引 脚 或 PCPWM 输 出 PWM7。<br />
图 注 :<br />
ST= 施 密 特 触 发 器 输 入 , TTL=TTL 输 入<br />
表 10-8:<br />
与 PORTD 相 关 的 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx uuuu uuuu<br />
LATD LATD 数 据 输 出 寄 存 器 xxxx xxxx uuuu uuuu<br />
TRISD PORTD 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 位 , 读 作 0。 阴 影 单 元 格 表 示 PORTD 未 使 用 。<br />
DS39616B_CN 第 128 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
10.5 PORTE、 TRISE 和 LATE 寄 存 器<br />
注 : PORTE 只 在 PIC18F4X31 器 件 上 可 用 。<br />
PORTE 是 一 个 4 位 宽 的 双 向 端 口 。 三 个 引 脚 (RE0/<br />
AN6、 RE1/AN7 和 RE2/AN8) 分 别 被 配 置 为 输 入 或 输<br />
出 。 这 些 引 脚 具 有 施 密 特 触 发 器 输 入 缓 冲 器 。 当 选 择 为<br />
模 拟 输 入 时 , 这 些 引 脚 将 读 作 0。<br />
相 应 的 数 据 方 向 寄 存 器 是 TRISE。 置 位 TRISE 位 (=<br />
1) 可 以 让 相 应 PORTE 引 脚 作 为 输 入 引 脚 ( 即 将 相 应<br />
的 输 出 驱 动 器 置 于 高 阻 态 )。 清 零 TRISE 位 (= 0) 将<br />
使 相 应 的 PORTE 引 脚 作 为 输 出 引 脚 ( 即 将 输 出 锁 存 器<br />
的 内 容 置 于 所 选 的 引 脚 上 )。<br />
即 使 TRISE 用 作 模 拟 输 入 的 时 候 , TRISE 寄 存 器 仍 会<br />
控 制 RE 引 脚 的 方 向 。 当 它 们 用 作 模 拟 输 入 的 时 候 , 用<br />
户 必 须 确 保 把 引 脚 配 置 为 输 入 。<br />
注 :<br />
在 上 电 复 位 时 , RE2:RE0 被 配 置 为 模 拟 输<br />
入 。<br />
数 据 锁 存 器 (LATE) 也 是 存 储 器 映 射 的 。 对 LATE 寄<br />
存 器 执 行 读 - 修 改 - 写 操 作 将 读 写 PORTE 的 锁 存 输 出<br />
值 。<br />
PORTE 的 第 四 个 引 脚 (MCLR/VPP/RE3) 是 一 个 只 允<br />
许 输 入 的 引 脚 。 其 操 作 受 配 置 寄 存 器 3H 中 的 MCLRE<br />
配 置 位 (CONFIG3H) 控 制 。 如 果 它 被 选 为 一 个 端<br />
口 引 脚 (MCLRE = 0) , 它 就 只 有 数 字 输 入 引 脚 的 功<br />
能 。 这 样 , TRIS 或 LAT 位 就 与 它 的 操 作 不 相 关 了 。 否<br />
则 , 它 将 作 为 器 件 的 主 清 零 输 入 。 无 论 是 哪 种 配 置 ,<br />
RE3 在 编 程 过 程 中 还 作 为 编 程 电 压 输 入 。<br />
注 : 在 上 电 复 位 时 , 仅 当 主 清 零 功 能 被 禁 止 时 ,<br />
RE3 才 能 被 使 能 为 数 字 输 入 。<br />
例 10-5: 初 始 化 PORTE<br />
CLRF PORTE ; Initialize PORTE by<br />
; clearing output<br />
; data latches<br />
CLRF LATE ; Alternate method<br />
; to clear output<br />
; data latches<br />
MOVLW 0x3F ; Configure A/D<br />
MOVWF ANSEL0 ; for digital inputs<br />
bcf ANSEL1, 0 ;<br />
MOVLW 0x03 ; Value used to<br />
; initialize data<br />
; direction<br />
MOVWF TRISE ; Set RE as input<br />
; RE as output<br />
; RE as input<br />
10.5.1 28 引 脚 器 件 中 的 PORTE<br />
对 于 PIC18F2X31 器 件 来 说 ,PORTE 只 有 在 主 清 零 功<br />
能 被 禁 止 (CONFIG3H = 0) 时 才 可 用 。 在 这 种 情<br />
况 下 , PORTE 是 一 个 只 允 许 输 入 的 端 口 , 仅 包 含 RE3<br />
一 个 引 脚 。 此 引 脚 的 工 作 状 态 如 前 所 述 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 129 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 10-28:<br />
RE2:RE0 框 图<br />
VDD<br />
P<br />
RD LATE<br />
数 据 总 线<br />
D<br />
Q<br />
WR LATE<br />
或<br />
PORTE<br />
CK Q<br />
数 据 锁 存 器<br />
N<br />
RE<br />
引 脚<br />
D<br />
Q<br />
WR TRISE<br />
CK<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRISE<br />
模 拟<br />
输 入<br />
模 式<br />
施 密 特<br />
触 发 器<br />
TTL<br />
Q<br />
D<br />
EN<br />
RD PORTE<br />
至 A/D 转 换 器 通 道 AN6 或 AN7 或 AN8<br />
图 10-29:<br />
RE3 框 图<br />
MCLR/VPP/RE3<br />
数 据 总 线<br />
MCLRE<br />
RD TRISE<br />
施 密 特<br />
触 发 器<br />
RD LATE<br />
锁 存 器<br />
Q D<br />
EN<br />
RD PORTE<br />
高 压 检 测<br />
内 部 MCLR<br />
MCLRE<br />
FILTER<br />
HV<br />
低 电 平<br />
MCLR 检 测<br />
注 1: 由 于 HV, 引 脚 需 要 特 别 保 护 。<br />
DS39616B_CN 第 130 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 10-1:<br />
TRISE 寄 存 器<br />
U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-1 R/W-1<br />
- - - - - TRISE2 TRISE1 TRISE0<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 未 实 现 位 : 读 作 0<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4 未 实 现 位 : 读 作 0<br />
bit 3 未 实 现 位 : 读 作 0<br />
bit 2 TRISE2:RE2 方 向 控 制 位<br />
1= 输 入<br />
0= 输 出<br />
bit 1 TRISE1:RE1 方 向 控 制 位<br />
1= 输 入<br />
0= 输 出<br />
bit 0 TRISE0:RE0 方 向 控 制 位<br />
1= 输 入<br />
0= 输 出<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 131 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 10-9: PORTE 功 能<br />
名 称 Bit # 缓 冲 器 类 型 功 能<br />
RE0/AN6 bit 0 ST 输 入 / 输 出 端 口 引 脚 , 模 拟 输 入 。<br />
RE1/AN7 bit 1 ST 输 入 / 输 出 端 口 引 脚 , 模 拟 输 入 。<br />
RE2/AN8 bit 2 ST 输 入 / 输 出 端 口 引 脚 , 模 拟 输 入 。<br />
MCLR/VPP/RE3 bit 3 ST 只 允 许 作 为 输 入 的 端 口 引 脚 或 编 程 电 压 输 入 ( 如 果 MCLR 被 禁 止 );<br />
主 清 零 输 入 或 编 程 电 压 输 入 ( 如 果 MCLR 被 使 能 )。<br />
图 注 :<br />
ST= 施 密 特 触 发 器 输 入 , TTL=TTL 输 入<br />
表 10-10:<br />
与 PORTE 相 关 的 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
PORTE — — — — RE3 (1) RE2 RE1 RE0 ---- q000 ---- q000<br />
LATE — — — — — LATE 数 据 输 出 寄 存 器 ---- -xxx ---- -uuu<br />
TRISE — — — — — PORTE 数 据 方 向 位 ---- -111 ---- -111<br />
ANSEL0 ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111<br />
ANSEL1 ANS15 ANS14 ANS13 ANS12 ANS11 ANS10 ANS9 ANS8 ---- ---0 ---- ---0<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 位 , 读 作 0, q= 根 据 情 况 而 变 。<br />
阴 影 单 元 格 表 示 PORTE 未 使 用 。<br />
注 1: 只 有 在 主 清 零 功 能 被 禁 止 (CONFIG3H = 0) 时 才 会 实 现 。<br />
DS39616B_CN 第 132 页 初 稿 ©2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
11.0 TIMER0 模 块<br />
Timer0 模 块 具 有 以 下 特 性 :<br />
• 可 由 软 件 选 择 作 为 8 位 或 16 位 定 时 器 / 计 数 器<br />
• 可 读 写<br />
• 可 软 件 编 程 的 专 用 8 位 预 分 频 器<br />
• 可 选 内 部 或 外 部 时 钟 源<br />
• 8 位 模 式 下 FFh 到 00h 的 溢 出 中 断 , 16 位 模 式 下<br />
FFFFh 到 0000h 的 溢 出 中 断<br />
• 外 部 时 钟 的 边 沿 选 择<br />
图 11-1 给 出 8 位 模 式 下 Timer0 模 块 的 简 化 框 图 , 图 11-<br />
2 给 出 16 位 模 式 下 Timer0 模 块 的 简 化 框 图 。<br />
T0CON 寄 存 器 ( 寄 存 器 11-1) 是 个 可 读 写 的 寄 存 器 ,<br />
控 制 Timer0 的 各 个 方 面 , 包 括 预 分 频 的 选 择 。<br />
寄 存 器 11-1:<br />
T0CON:TIMER0 控 制 寄 存 器<br />
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1<br />
TMR0ON T016BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0<br />
bit 7 bit 0<br />
bit 7<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2-0<br />
TMR0ON:Timer0 开 / 关 控 制 位<br />
1= 使 能 Timer0<br />
0= 停 止 Timer0<br />
T016BIT:Timer0 16 位 控 制 位<br />
1= Timer0 配 置 为 8 位 定 时 器 / 计 数 器<br />
0= Timer0 配 置 为 16 位 定 时 器 / 计 数 器<br />
T0CS:Timer0 时 钟 源 选 择 位<br />
1= T0CKI 引 脚 上 的 脉 冲 信 号 触 发<br />
0= 内 部 指 令 周 期 时 钟 源 (CLKO)<br />
T0SE:Timer0 时 钟 源 边 沿 选 择 位<br />
1= T0CKI 引 脚 下 降 沿 触 发 递 增<br />
0= T0CKI 引 脚 上 升 沿 触 发 递 增<br />
PSA:Timer0 预 分 频 器 分 配 位<br />
1= 未 分 配 Timer0 预 分 频 器 。 Timer0 时 钟 输 入 不 经 过 预 分 频 器 处 理 。<br />
0= 已 分 配 Timer0 预 分 频 器 。 Timer0 时 钟 输 入 来 自 预 分 频 器 输 出 。<br />
T0PS2:T0PS0:Timer0 预 分 频 选 择 位<br />
111=1:256 预 分 频 值<br />
110=1:128 预 分 频 值<br />
101=1:64 预 分 频 值<br />
100=1:32 预 分 频 值<br />
011=1:16 预 分 频 值<br />
010=1:8 预 分 频 值<br />
001=1:4 预 分 频 值<br />
000=1:2 预 分 频 值<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 133 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 11-1:<br />
8 位 模 式 下 的 TIMER0 框 图<br />
T0CKI 引 脚<br />
T0SE<br />
FOSC/4<br />
0<br />
1<br />
T0CS<br />
可 编 程 的<br />
预 分 频 器<br />
3<br />
T0PS2、T0PS1、T0PS0<br />
0<br />
1<br />
PSA<br />
通 过<br />
内 部 时 钟<br />
进 行 同 步<br />
(2 TCY 延 迟 )<br />
数 据 总 线<br />
TMR0<br />
8<br />
溢 出 时 置 位<br />
中 断 标 志 位<br />
TMR0IF<br />
注 : 复 位 时 , 在 8 位 模 式 下 使 能 Timer0, 时 钟 输 入 来 自 T0CKI 的 最 大 预 分 频 。<br />
图 11-2:<br />
16 位 模 式 下 的 TIMER0 框 图<br />
T0CKI 引 脚<br />
T0SE<br />
FOSC/4<br />
0<br />
1<br />
可 编 程 的<br />
预 分 频 器<br />
T0PS2、T0PS1、T0PS0<br />
T0CS<br />
PSA<br />
3<br />
0<br />
1<br />
通 过<br />
内 部 时 钟<br />
进 行 同 步<br />
(2 TCY 延 迟 )<br />
TMR0L<br />
8<br />
TMR0<br />
高 字 节<br />
8<br />
TMR0H<br />
8<br />
读 TMR0L<br />
溢 出 时 置 位<br />
中 断 标 志 位<br />
TMR0IF<br />
写 TMR0L<br />
8<br />
数 据 总 线 <br />
注 : 复 位 时 , 在 8 位 模 式 下 使 能 Timer0, 时 钟 输 入 来 自 T0CKI 的 最 大 预 分 频 。<br />
DS39616B_CN 第 134 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
11.1 Timer0 工 作 原 理<br />
Timer0 既 可 用 作 定 时 器 , 也 可 用 作 计 数 器 。<br />
通 过 将 T0CS 位 清 零 可 以 选 择 定 时 器 模 式 。 在 定 时 器 模<br />
式 下 , Timer0 模 块 在 每 个 指 令 周 期 递 增 ( 不 使 用 预 分<br />
频 器 )。 如 果 对 TMR0 寄 存 器 执 行 写 操 作 , 则 在 随 后 两<br />
个 指 令 周 期 中 禁 止 递 增 。 用 户 可 通 过 将 校 正 值 写 入<br />
TMR0 寄 存 器 避 开 这 一 问 题 。<br />
通 过 将 T0CS 位 置 位 可 以 选 择 计 数 器 模 式 。 在 计 数 器 模<br />
式 下 , Timer0 会 在 RA4/T0CKI 引 脚 的 每 个 上 升 沿 或 下<br />
降 沿 递 增 计 数 。 递 增 边 沿 由 Timer0 时 钟 源 边 沿 选 择 位<br />
(T0SE) 决 定 。 将 T0SE 位 清 零 选 择 上 升 沿 。<br />
要 将 外 部 时 钟 输 入 信 号 用 于 Timer0, 必 须 满 足 一 定 要<br />
求 , 以 确 保 外 部 时 钟 和 内 部 相 位 时 钟 (TOSC) 保 持 同<br />
步 。 同 步 之 后 , 真 正 递 增 Timer0 时 还 会 有 一 段 延 时 。<br />
11.2 预 分 频 器<br />
8 位 计 数 器 可 以 作 为 Timer0 模 块 的 预 分 频 器 。 预 分 频 器<br />
是 不 可 读 写 的 。<br />
PSA 和 T0PS2:T0PS0 位 决 定 预 分 频 器 的 分 配 以 及 预 分<br />
频 比 。<br />
清 零 PSA 位 可 将 预 分 频 器 分 配 给 Timer0 模 块 。 当 预 分<br />
频 器 分 配 给 Timer0 时 , 可 选 择 的 预 分 频 值 有 1:2、1:4、<br />
…… 和 1:256。<br />
当 预 分 频 器 分 配 给 Timer0 模 块 时 , 所 有 对 TMR0 寄 存<br />
器 执 行 写 操 作 的 指 令 ( 如 CLRF TMR0、 MOVWF TMR0<br />
和 BSF TMR0 x 等 ) 都 将 使 预 分 频 器 计 数 清 零 。<br />
注 :<br />
当 将 预 分 频 器 分 配 给 Timer0 时 , 对 TMR0<br />
执 行 写 操 作 会 将 预 分 频 器 计 数 清 零 , 但 不<br />
会 改 变 预 分 频 器 的 分 配 。<br />
11.2.1 预 分 频 器 分 配 的 切 换<br />
预 分 频 器 的 分 配 完 全 由 软 件 控 制 ( 也 就 是 说 , 在 程 序 执<br />
行 期 间 可 以 随 时 更 改 分 配 )。<br />
11.3 Timer0 中 断<br />
8 位 模 式 下 的 TMR0 寄 存 器 从 FFh 到 00h 发 生 溢 出 , 或<br />
16 位 模 式 下 的 TMR0 从 FFFFh 到 0000h 发 生 溢 出 时 ,<br />
将 产 生 TMR0 中 断 。 该 溢 出 会 置 位 TMR0IF 位 。 清 零<br />
TMR0IE 位 可 以 屏 蔽 该 中 断 。 在 重 新 允 许 该 中 断 之 前 ,<br />
必 须 通 过 Timer0 模 块 的 中 断 服 务 程 序 用 软 件 将 TMR0IF<br />
位 清 零 。 因 为 TMR0 需 要 时 钟 周 期 , 所 以 即 使 已 置 位<br />
T0CS,TMR0 中 断 仍 无 法 将 处 理 器 从 休 眠 模 式 中 唤 醒 。<br />
11.4 16 位 模 式 下 的 定 时 器 读 写<br />
TMR0H 并 非 16 位 模 式 下 定 时 器 / 计 数 器 的 高 字 节 , 它<br />
实 际 上 是 被 缓 存 的 Timer0 高 字 节 ( 参 见 图 11-2)。<br />
Timer0 计 数 器 / 定 时 器 的 高 字 节 不 可 直 接 读 写 。 在 读<br />
TMR0L 时 用 Timer0 高 字 节 的 内 容 更 新 TMR0H。 由 于<br />
在 连 续 读 取 高 低 字 节 之 间 会 发 生 滚 存 , 需 要 验 证 读 取 的<br />
高 低 字 节 是 否 有 效 , 而 现 在 可 以 直 接 读 取 Timer0 的 全<br />
部 16 位 , 就 不 需 要 验 证 读 取 到 的 高 低 字 节 的 有 效 性 了 。<br />
写 Timer0 的 高 字 节 也 必 须 通 过 TMR0H 缓 冲 寄 存 器 进<br />
行 。 当 写 TMR0L 时 , 会 用 TMR0H 的 内 容 更 新 Timer0<br />
高 字 节 。 这 样 就 可 以 一 次 性 完 成 Timer0 的 全 部 16 位 更<br />
新 。<br />
表 11-1:<br />
与 TIMER0 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
其 他 复 位<br />
时 的 值<br />
TMR0L Timer0 模 块 的 低 字 节 寄 存 器 xxxx xxxx uuuu uuuu<br />
TMR0H Timer0 模 块 的 高 字 节 寄 存 器 0000 0000 0000 0000<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
T0CON TMR0ON T016BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0 1111 1111 1111 1111<br />
TRISA RA7 (1) RA6 (1) PORTA 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 Timer0 未 使 用 。<br />
注 1: 根 据 配 置 字 1H 中 选 择 的 振 荡 器 模 式 , RA6 和 RA7 可 作 为 I/O 引 脚 使 能 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 135 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 136 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
12.0 TIMER1 模 块<br />
Timer1 模 块 定 时 器 / 计 数 器 具 有 以 下 特 性 :<br />
• 16 位 计 数 器 / 定 时 器<br />
( 两 个 8 位 寄 存 器 :TMR1H 和 TMR1L)<br />
• 可 读 写 (TMR1H 和 TMR1L 寄 存 器 )<br />
• 内 部 或 外 部 时 钟 选 择<br />
• FFFFh 到 0000h 的 溢 出 中 断<br />
• CCP 模 块 特 殊 事 件 触 发 器 引 起 的 复 位<br />
• 系 统 时 钟 的 工 作 状 态<br />
图 12-1 是 Timer1 模 块 的 简 化 框 图 。<br />
寄 存 器 12-1 详 细 说 明 了 Timer1 控 制 寄 存 器 。 此 寄 存 器<br />
控 制 Timer1 模 块 的 工 作 模 式 , 并 且 包 含 Timer1 振 荡 器<br />
使 能 位 (T1OSCEN) 。 通 过 将 控 制 位 TMR1ON<br />
(T1CON) 置 位 或 清 零 可 以 使 能 或 禁 止 Timer1。<br />
Timer1 振 荡 器 可 以 用 作 功 耗 管 理 模 式 的 辅 助 时 钟 源 。 当<br />
T1RUN 位 被 置 位 时 , 由 Timer1 振 荡 器 提 供 系 统 时 钟 。<br />
当 使 能 故 障 保 护 时 钟 监 视 器 时 , 如 果 作 为 系 统 时 钟 源 的<br />
Timer1 振 荡 器 发 生 故 障 , 可 以 查 询 T1RUN 位 , 了 解 时<br />
钟 源 是 Timer1 振 荡 器 还 是 其 他 时 钟 源 。<br />
只 需 要 增 加 极 少 的 外 部 元 件 和 代 码 开 销 ,Timer1 就 可 以<br />
为 应 用 提 供 实 时 时 钟 (Real-Time Clock,RTC) 功 能 。<br />
寄 存 器 12-1:<br />
T1CON:TIMER1 控 制 寄 存 器<br />
R/W-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON<br />
bit 7 bit 0<br />
bit 7<br />
bit 6<br />
bit 5-4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
RD16:16 位 读 / 写 模 式 使 能 位<br />
1= 使 能 16 位 模 式 的 Timer1 寄 存 器 读 / 写 操 作<br />
0= 使 能 两 个 8 位 模 式 的 TImer1 寄 存 器 读 / 写 操 作<br />
T1RUN:Timer1 系 统 时 钟 状 态 位<br />
1= 系 统 时 钟 由 Timer1 振 荡 器 产 生<br />
0= 系 统 时 钟 由 其 他 时 钟 源 产 生<br />
T1CKPS1:T1CKPS0:Timer1 输 入 时 钟 预 分 频 选 择 位<br />
11=1:8 预 分 频 值<br />
10=1:4 预 分 频 值<br />
01=1:2 预 分 频 值<br />
00=1:1 预 分 频 值<br />
T1OSCEN:Timer1 振 荡 器 使 能 位<br />
1= 使 能 Timer1 振 荡 器<br />
0= 关 闭 Timer1 振 荡 器<br />
为 了 避 免 功 率 消 耗 , 关 断 振 荡 器 的 反 相 器 和 反 馈 电 阻 。<br />
T1SYNC:Timer1 外 部 时 钟 输 入 同 步 选 择 位<br />
当 TMR1CS=1 ( 外 部 时 钟 ) 时 :<br />
1= 不 同 步 外 部 时 钟 输 入<br />
0= 同 步 外 部 时 钟 输 入<br />
当 TMR1CS=0 ( 内 部 时 钟 ) 时 :<br />
忽 略 此 位 。 当 TMR1CS=0 时 , Timer1 使 用 内 部 时 钟 。<br />
TMR1CS:Timer1 时 钟 源 选 择 位<br />
1= RC0/T1OSO/T1CKI 引 脚 的 外 部 时 钟 ( 上 升 沿 计 数 )<br />
0= 内 部 时 钟 (FOSC/4)<br />
TMR1ON:Timer1 使 能 位<br />
1= 使 能 Timer1<br />
0= 停 止 Timer1<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 137 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
12.1 Timer1 工 作 原 理<br />
Timer1 可 工 作 在 以 下 模 式 :<br />
• 作 为 定 时 器<br />
• 作 为 同 步 计 数 器<br />
• 作 为 异 步 计 数 器<br />
工 作 模 式 由 时 钟 选 择 位 TMR1CS(T1CON) 决 定 。<br />
当 TMR1CS=0 时 , Timer1 在 每 个 指 令 周 期 递 增 。 当<br />
TMR1CS=1 时 ,Timer1 在 外 部 时 钟 输 入 或 Timer1 振 荡<br />
器 ( 如 使 能 了 ) 的 每 个 上 升 沿 递 增 。<br />
当 使 能 Timer1 振 荡 器 (T1OSCEN 已 置 位 ) 时 , RC1/<br />
T1OSI/CCP2/FLTA 和 RC0/T1OSO/T1CKI 引 脚 成 为 输<br />
入 引 脚 。 也 就 是 说 , 忽 略 TRISC1:TRISC0 值 , 这 些 引<br />
脚 读 作 0。<br />
Timer1 还 有 一 个 内 部 “ 复 位 输 入 ”。 此 复 位 信 号 可 以 由<br />
CCP 模 块 产 生 ( 参 见 第 15.4.4 节 “ 特 殊 事 件 触 发 器 ”)。<br />
图 12-1:<br />
TIMER1 框 图<br />
CCP 特 殊 事 件 触 发 器<br />
TMR1IF<br />
溢 出 中 断<br />
标 志 位<br />
T1CKI/T1OSO<br />
T1OSI<br />
TMR1<br />
CLR<br />
TMR1H TMR1L<br />
T1OSC<br />
T1OSCEN<br />
使 能<br />
振 荡 器 (1)<br />
FOSC/4<br />
内 部<br />
时 钟<br />
TMR1ON<br />
开 / 关<br />
1<br />
0<br />
TMR1CS<br />
0<br />
1<br />
T1SYNC<br />
预 分 频 器<br />
1, 2, 4, 8<br />
2<br />
T1CKPS1:T1CKPS0<br />
已 同 步 的<br />
时 钟 输 入<br />
同 步<br />
det<br />
外 设 时 钟<br />
注 1: 如 果 使 能 位 T1OSCEN 被 清 零 , 反 相 器 和 反 馈 电 阻 将 被 关 断 , 可 降 低 功 耗 。<br />
图 12-2: TIMER1 框 图 :16 位 读 / 写 模 式<br />
数 据 总 线 <br />
8<br />
写 TMR1L<br />
读 TMR1L<br />
TMR1H<br />
8<br />
8<br />
CCP 特 殊 事 件 触 发 器<br />
TMR1IF<br />
溢 出 中 断<br />
标 志 位<br />
8<br />
Timer 1<br />
高 字 节<br />
TMR1<br />
CLR<br />
TMR1L<br />
0<br />
1<br />
已 同 步 的<br />
时 钟 输 入<br />
T1CKI/T1OSO<br />
T1OSI<br />
T1OSC<br />
T1OSCEN<br />
使 能<br />
(1)<br />
振 荡 器<br />
FOSC/4<br />
内 部<br />
时 钟<br />
TMR1ON<br />
开 / 关<br />
1<br />
0<br />
TMR1CS<br />
T1SYNC<br />
预 分 频 器<br />
1, 2, 4, 8<br />
2<br />
同 步<br />
det<br />
外 设 时 钟<br />
T1CKPS1:T1CKPS0<br />
注 1: 如 果 使 能 位 T1OSCEN 被 清 零 , 反 相 器 和 反 馈 电 阻 将 被 关 断 , 可 降 低 功 耗 。<br />
DS39616B_CN 第 138 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
12.2 Timer1 振 荡 器<br />
晶 体 振 荡 电 路 内 建 在 T1OSI 引 脚 ( 输 入 ) 和 T1OSO 引<br />
脚 ( 放 大 器 输 出 ) 之 间 。 通 过 置 位 控 制 位 T1OSCEN<br />
(T1CON) 可 以 使 能 该 振 荡 器 。 这 是 个 低 功 耗 振 荡<br />
器 , 可 作 为 32 kHz 晶 振 。 在 所 有 的 功 耗 管 理 模 式 下 都<br />
可 以 持 续 运 行 。 典 型 LP 振 荡 器 的 电 路 如 图 12-3 所 示 。<br />
表 12-1 给 出 了 Timer1 振 荡 器 的 电 容 选 择 。<br />
用 户 必 须 提 供 软 件 延 时 来 确 保 能 够 正 常 起 振 Timer1 振<br />
荡 器 。<br />
图 12-3:<br />
C1<br />
33 pF<br />
C2<br />
33 pF<br />
TIMER1 LP 振 荡 器 的 外 接 元<br />
件<br />
XTAL<br />
32.768 kHz<br />
PIC18FXXXX<br />
T1OSI<br />
T1OSO<br />
12.3 Timer1 振 荡 器 设 计 注 意 事 项<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 Timer1 振 荡 器 还<br />
还 包 括 了 一 项 低 功 耗 性 能 。 当 选 择 了 此 选 项 时 , 可 以 在<br />
单 片 机 处 于 休 眠 模 式 时 让 振 荡 器 自 动 降 低 功 耗 。 在 器 件<br />
正 常 工 作 期 间 , 振 荡 器 会 产 生 最 大 拉 电 流 。 因 为 高 噪 声<br />
环 境 可 能 会 增 加 振 荡 器 在 休 眠 模 式 下 的 不 稳 定 性 , 所 以<br />
该 选 项 尤 其 适 合 低 噪 声 的 应 用 场 合 , 其 中 一 个 重 要 的 设<br />
计 注 意 事 项 就 是 节 能 。<br />
通 过 将 T1OSCMX 位 (CONFIG3L) 清 零 , 可 以 使<br />
能 此 低 功 耗 选 项 。 缺 省 情 况 下 , 此 选 项 是 禁 用 的 , 这 会<br />
导 致 Timer1 振 荡 器 产 生 或 多 或 少 的 恒 定 拉 电 流 。<br />
由 于 此 振 荡 器 的 低 功 耗 性 能 , 因 此 可 能 对 短 时 间 内 快 速<br />
改 变 信 号 比 较 敏 感 。<br />
如 图 12-3 所 示 , 振 荡 电 路 应 该 尽 可 能 靠 近 单 片 机 。 除<br />
了 VSS 或 VDD 外 , 振 荡 电 路 边 界 范 围 内 不 应 该 有 其 他<br />
的 电 路 通 过 。<br />
当 使 用 单 面 PCB 时 , 如 果 在 振 荡 器 附 近 必 须 要 有 一 个<br />
高 速 电 路 ( 如 CCP1 引 脚 处 于 输 出 比 较 模 式 或 PWM 模<br />
式 , 或 主 振 荡 器 使 用 OSC2 引 脚 ), 则 在 振 荡 器 电 路 周<br />
围 设 置 一 个 接 地 保 护 环 可 能 会 很 有 帮 助 ( 如 图 12-4 所<br />
示 ), 或 者 增 加 一 个 地 平 面 。<br />
注 : 如 需 了 解 电 容 选 择 的 更 多 信 息 , 请 参 见 表 12-1<br />
的 注 释 部 分 。<br />
表 12-1:<br />
TIMER1 振 荡 器 的 电 容 选 择<br />
振 荡 器 类 型 频 率 C1 C2<br />
LP 32 kHz 27 pF (1) 27 pF (1)<br />
图 12-4:<br />
带 有 接 地 保 护 环 的 振 荡 电 路<br />
VDD<br />
VSS<br />
OSC1<br />
OSC2<br />
注 1: Microchip 建 议 将 该 值 作 为 验 证 振 荡 电 路<br />
的 起 始 点 。<br />
2: 电 容 越 大 , 振 荡 器 越 稳 定 , 但 起 振 时 间 越<br />
长 。<br />
3: 因 为 每 种 谐 振 器 / 晶 振 都 有 其 自 身 特 性 ,<br />
用 户 应 当 向 谐 振 器 / 晶 振 制 造 厂 商 咨 询 外<br />
部 元 件 的 适 当 值 。<br />
4: 上 述 电 容 值 仅 供 设 计 参 考 。<br />
注 : 未 按 比 例 绘 制 。<br />
RC0<br />
RC1<br />
RC2<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 139 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
12.4 Timer1 中 断<br />
TMR1 寄 存 器 对 (TMR1H:TMR1L) 从 0000h 开 始 , 增<br />
加 到 FFFFh, 然 后 回 零 到 0000h 重 新 开 始 。 如 果 允 许<br />
了 Timer1 中 断 , 则 溢 出 时 会 产 生 Timer1 中 断 , 锁 存 到<br />
中 断 标 志 位 TMR1IF (PIR1)。 可 以 通 过 置 位 / 清<br />
零 Timer1 中 断 使 能 位 TMR1IE (PIE1) 来 允 许 /<br />
禁 止 该 中 断 。<br />
12.5 使 用 CCP 触 发 器 输 出 复 位 Timer1<br />
如 果 CCP 模 块 已 配 置 为 比 较 模 式 以 产 生 特 殊 事 件 触 发<br />
器 (CCP1M3:CCP1M0=1011) , 此 信 号 会 复 位<br />
Timer1,( 如 已 使 能 A/D 模 块 ) 还 会 启 动 A/D 转 换 ( 如<br />
需 更 多 信 息 , 请 参 见 第 15.4.4 节 “ 特 殊 事 件 触 发 器 ”)。<br />
注 : CCP1 模 块 产 生 的 特 殊 事 件 触 发 信 号 不 会<br />
将 中 断 标 志 位 TMR1IF(PIR1) 置 位 。<br />
要 利 用 这 一 点 ,Timer1 必 须 设 置 为 定 时 器 或 同 步 计 数 器<br />
模 式 。 如 果 Timer1 在 异 步 计 数 器 模 式 下 运 行 , 该 复 位<br />
可 能 无 效 。<br />
如 果 写 Timer1 操 作 和 CCP1 模 块 的 特 殊 事 件 触 发 复 位<br />
同 时 发 生 , 则 写 操 作 优 先 。<br />
在 这 种 工 作 模 式 下 , CCPR1H:CCPR1L 寄 存 器 对 实 际<br />
上 变 成 了 Timer1 的 周 期 寄 存 器 。<br />
12.7 使 用 Timer1 作 为 实 时 时 钟<br />
为 Timer1 外 接 一 个 LP 振 荡 器 ( 如 第 12.2 节 “Timer1<br />
振 荡 器 ” 中 所 述 ), 可 以 允 许 用 户 在 他 们 的 应 用 中 包 括<br />
RTC 功 能 。 这 一 功 能 的 实 现 是 由 一 个 便 宜 的 晶 体 提 供 精<br />
确 时 基 , 并 用 几 行 应 用 代 码 计 算 时 间 。 在 休 眠 工 作 模 式<br />
下 采 用 电 池 或 超 级 电 容 作 为 电 源 时 , 这 样 可 以 完 全 避 免<br />
另 外 增 加 分 立 的 RTC 器 件 和 备 用 电 池 。<br />
应 用 代 码 程 序 RTCisr ( 如 例 12-1 所 示 ) 演 示 了 一 种<br />
简 单 的 方 法 , 它 通 过 使 用 中 断 服 务 程 序 实 现 每 秒 递 增 计<br />
数 。TMR1 寄 存 器 对 递 增 至 溢 出 状 态 将 触 发 中 断 , 并 调<br />
用 程 序 , 该 程 序 会 使 秒 计 数 器 递 增 。 当 秒 计 数 器 溢 出<br />
时 , 分 计 数 器 和 小 时 计 数 器 会 相 应 递 增 。<br />
因 为 此 寄 存 器 对 为 16 位 宽 , 因 此 直 接 按 32.768 kHz 时<br />
钟 计 数 溢 出 需 要 2 秒 。 要 使 溢 出 按 所 需 的 1 秒 间 隔 进 行 ,<br />
必 须 预 先 将 其 加 载 ; 最 简 单 的 方 法 是 使 用 BSF 指 令 将<br />
TMR1H 的 最 高 有 效 位 置 位 。 请 注 意 TMR1L 寄 存 器 从 不<br />
会 预 先 加 载 或 变 更 , 因 此 这 样 做 可 能 会 导 致 很 多 个 周 期<br />
后 出 现 累 积 错 误 。<br />
要 使 此 方 法 变 精 确 ,Timer1 必 须 工 作 在 异 步 模 式 , 且 必<br />
须 允 许 Timer1 溢 出 中 断 (PIE1=1) , 如 程 序<br />
RTCinit 所 示 。 同 时 Timer1 振 荡 器 也 必 须 使 能 并 始 终<br />
保 持 运 行 。<br />
12.6 Timer1 16 位 读 / 写 模 式<br />
Timer1 可 以 配 置 为 16 位 读 写 模 式 ( 见 图 12-2)。 当<br />
RD16 控 制 位 (T1CON) 置 位 时 , TMR1H 的 地 址<br />
映 射 到 Timer1 高 位 字 节 缓 冲 寄 存 器 。 对 TMR1L 执 行 读<br />
操 作 会 将 Timer1 的 高 位 字 节 内 容 装 入 Timer1 高 字 节 缓<br />
冲 器 。 这 样 使 得 用 户 可 以 准 确 地 读 取 Timer1 的 全 部 16<br />
位 , 而 不 会 因 两 次 读 取 之 间 发 生 滚 存 而 需 要 判 断 读 高 字<br />
节 再 读 低 字 节 是 否 有 效 。<br />
写 Timer1 的 高 字 节 也 必 须 通 过 TMR1H 缓 冲 寄 存 器 进<br />
行 。 当 写 TMR1L 时 , 会 用 TMR1H 的 内 容 更 新 Timer1<br />
高 字 节 。 这 允 许 用 户 可 以 一 次 性 写 入 Timer1 的 高 位 字<br />
节 和 低 位 字 节 的 全 部 16 位 。<br />
Timer1 的 高 字 节 在 此 模 式 下 不 可 直 接 读 写 。 所 有 的 读 写<br />
必 须 通 过 Timer1 高 字 节 缓 冲 寄 存 器 进 行 。 写 入 TMR1H<br />
不 会 清 零 Timer1 预 分 频 器 。 预 分 频 器 只 有 在 写 TMR1L<br />
时 才 会 清 零 。<br />
DS39616B_CN 第 140 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 12-1:<br />
RTCinit<br />
RTCisr<br />
使 用 TIMER1 中 断 服 务 程 序 实 现 实 时 时 钟<br />
MOVLW 0x80 ; Preload TMR1 register pair<br />
MOVWF TMR1H ; for 1 second overflow<br />
CLRF TMR1L<br />
MOVLW b’00001111’ ; Configure for external clock,<br />
MOVWF T1OSC ; Asynchronous operation, external oscillator<br />
CLRF secs ; Initialize timekeeping registers<br />
CLRF mins ;<br />
MOVLW .12<br />
MOVWF hours<br />
BSF PIE1, TMR1IE ; Enable Timer1 interrupt<br />
RETURN<br />
BSF TMR1H, 7 ; Preload for 1 sec overflow<br />
BCF PIR1, TMR1IF ; Clear interrupt flag<br />
INCF secs, F ; Increment seconds<br />
MOVLW .59 ; 60 seconds elapsed<br />
CPFSGT secs<br />
RETURN<br />
; No, done<br />
CLRF secs ; Clear seconds<br />
INCF mins, F ; Increment minutes<br />
MOVLW .59 ; 60 minutes elapsed<br />
CPFSGT mins<br />
RETURN<br />
; No, done<br />
CLRF mins ; clear minutes<br />
INCF hours, F ; Increment hours<br />
MOVLW .23 ; 24 hours elapsed<br />
CPFSGT hours<br />
RETURN<br />
; No, done<br />
MOVLW .01 ; Reset hours to 1<br />
MOVWF hours<br />
RETURN<br />
; Done<br />
表 12-2:<br />
与 作 为 定 时 器 / 计 数 器 的 TIMER1 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR<br />
时 的 值<br />
其 他<br />
复 位 时<br />
的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF -000 000x 0000 000u<br />
PIR1 - ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF -000 0000 -000 0000<br />
PIE1 - ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE -000 0000 -000 0000<br />
IPR1 - ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP 1111 1111 -111 1111<br />
TMR1L 16 位 TMR1 寄 存 器 的 最 低 有 效 字 节 保 持 寄 存 器 xxxx xxxx uuuu uuuu<br />
TMR1H 16 位 TMR1 寄 存 器 的 最 高 有 效 字 节 保 持 寄 存 器 xxxx xxxx uuuu uuuu<br />
T1CON RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 u0uu uuuu<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 Timer1 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 141 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 142 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
13.0 TIMER2 模 块<br />
Timer2 模 块 具 有 以 下 特 性 :<br />
• 8 位 定 时 器 (TMR2 寄 存 器 )<br />
• 8 位 周 期 寄 存 器 (PR2)<br />
• 可 读 写 (2 个 寄 存 器 )<br />
• 可 软 件 编 程 的 预 分 频 器 (1:1、 1:4 和 1:16)<br />
• 可 软 件 编 程 的 后 分 频 器 (1:1 至 1:16)<br />
• TMR2 与 PR2 匹 配 时 中 断<br />
• SSP 模 块 可 选 使 用 TMR2 输 出 产 生 时 钟 移 位<br />
如 寄 存 器 13-1 所 示 ,Timer2 有 一 个 控 制 寄 存 器 。 可 以<br />
通 过 将 控 制 位 TMR2ON (T2CON) 清 零 关 断<br />
TMR2, 以 便 尽 量 减 少 功 耗 。 图 13-1 是 Timer2 模 块 的<br />
简 化 框 图 。 寄 存 器 13-1 显 示 了 Timer2 的 控 制 寄 存 器 。<br />
该 寄 存 器 控 制 Timer2 预 分 频 器 和 后 分 频 器 的 选 择 。<br />
13.1 Timer2 工 作 原 理<br />
Timer2 可 以 与 CCP 模 块 配 合 使 用 , 在 PWM 模 式 下 作<br />
为 PWM 时 基 。 TMR2 寄 存 器 是 可 读 写 的 , 任 何 方 式 的<br />
器 件 复 位 都 会 使 之 清 零 。 可 以 通 过 控 制 位<br />
T2CKPS1:T2CKPS0 (T2CON) 选 择 输 入 时 钟<br />
(FOSC/4) 的 预 分 频 值 1:1、1:4 或 1:16。TMR2 的 匹 配<br />
输 出 通 过 4 位 后 分 频 器 ( 分 频 比 为 1:1 到 1:16, 包 含<br />
1:1 和 1:16) 产 生 TMR2 中 断 ( 锁 存 在 TMR2IF 标 志 位<br />
(PIR1))。<br />
如 果 发 生 下 列 任 何 一 种 情 况 , 预 分 频 器 和 后 分 频 器 计 数<br />
器 都 会 被 清 零 :<br />
• 写 TMR2 寄 存 器<br />
• 写 T2CON 寄 存 器<br />
• 任 何 器 件 复 位 ( 上 电 复 位 、 MCLR 复 位 、 看 门 狗<br />
定 时 器 复 位 或 欠 压 复 位 )<br />
写 T2CON 时 TMR2 不 会 清 零 。<br />
寄 存 器 13-1:<br />
T2CON:TIMER2 控 制 寄 存 器<br />
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0<br />
bit 7 bit 0<br />
bit 7 未 实 现 : 读 作 0<br />
bit 6-3 TOUTPS3:TOUTPS0:Timer2 输 出 后 分 频 值 选 择 位<br />
0000=1:1 后 分 频 值<br />
0001=1:2 后 分 频 值<br />
•<br />
•<br />
•<br />
1111=1:16 后 分 频 值<br />
bit 2 TMR2ON:Timer2 使 能 位<br />
1= 使 能 Timer2<br />
0= 禁 止 Timer2<br />
bit 1-0 T2CKPS1:T2CKPS0:Timer2 时 钟 预 分 频 值 选 择 位<br />
00= 预 分 频 值 为 1<br />
01= 预 分 频 值 为 4<br />
1x= 预 分 频 值 为 16<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 143 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
13.2 Timer2 中 断<br />
Timer2 模 块 有 一 个 8 位 周 期 寄 存 器 PR2。Timer2 从 00h<br />
开 始 递 增 , 直 到 与 PR2 匹 配 , 然 后 在 下 一 递 增 计 数 周 期<br />
开 始 时 复 位 为 00h。PR2 为 可 读 写 寄 存 器 。PR2 寄 存 器<br />
会 在 复 位 时 初 始 化 为 FFh。<br />
13.3 TMR2 的 输 出<br />
将 TMR2 的 输 出 信 号 ( 在 后 分 频 器 之 前 ) 会 馈 送 至 同 步<br />
串 行 端 口 模 块 , 以 便 生 成 移 位 时 钟 。<br />
图 13-1:<br />
TIMER2 框 图<br />
TMR2<br />
(1) 输 出<br />
置 位 标 志 位<br />
TMR2IF<br />
FOSC/4<br />
预 分 频 器<br />
1:1, 1:4, 1:16<br />
TMR2<br />
复 位<br />
2<br />
T2CKPS1:T2CKPS0<br />
比 较 器<br />
PR2<br />
EQ<br />
后 分 频 器<br />
1:1 至 1:16<br />
4<br />
TOUTPS3:TOUTPS0<br />
注 1: TMR2 寄 存 器 的 输 出 可 由 SSP 模 块 软 件 设 置 为 波 特 率 时 钟 。<br />
表 13-1:<br />
与 作 为 定 时 器 / 计 数 器 的 TIMER2 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR<br />
时 的 值<br />
其 他<br />
复 位 时<br />
的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 - ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF -000 0000 -000 0000<br />
PIE1 - ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE -000 0000 -000 0000<br />
IPR1 - ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP -111 1111 -111 1111<br />
TMR2 Timer2 模 块 寄 存 器 0000 0000 0000 0000<br />
T2CON - TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000<br />
PR2 Timer2 周 期 寄 存 器 1111 1111 1111 1111<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 Timer2 未 使 用 。<br />
DS39616B_CN 第 144 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
14.0 TIMER5 模 块<br />
Timer5 模 块 实 现 以 下 特 性 :<br />
• 16 位 定 时 器 / 计 数 器<br />
• 同 步 和 异 步 计 数 器 模 式<br />
• 连 续 计 数 和 单 脉 冲 运 行 模 式<br />
• 四 个 可 编 程 的 预 分 频 值 (1:1 到 1:8)<br />
• 周 期 匹 配 时 产 生 中 断<br />
• 特 殊 事 件 触 发 复 位 功 能<br />
• 双 缓 冲 寄 存 器<br />
• 休 眠 模 式 下 运 行<br />
• 将 CPU 从 休 眠 模 式 唤 醒<br />
• 带 唤 醒 功 能 的 可 选 择 硬 件 复 位 输 入<br />
Timer5 是 一 个 通 用 的 定 时 器 / 计 数 器 , 它 包 含 了 更 多 的<br />
功 能 , 可 以 与 运 动 反 馈 模 块 (Motion Feedback<br />
module) 一 起 使 用 ( 见 第 16.0 节 “ 运 动 反 馈 模 块 ”)。<br />
它 也 可 以 用 作 通 用 定 时 器 或 特 殊 事 件 触 发 延 迟 定 时 器 。<br />
当 作 为 通 用 定 时 器 时 , 它 可 以 被 配 置 为 使 用 预 编 程 周 期<br />
延 迟 来 产 生 一 个 延 迟 的 特 殊 事 件 触 发 ( 例 如 , ADC 特<br />
殊 事 件 触 发 )。<br />
通 过 Timer5 控 制 寄 存 器 (T5CON) 来 控 制 Timer5, 如<br />
寄 存 器 14-1 所 示 。 通 过 将 控 制 位 TMR5ON<br />
(T5CON) 置 位 或 清 零 可 以 使 能 或 禁 止 Timer5。<br />
Timer5 的 框 图 如 图 14-1 所 示 。<br />
寄 存 器 14-1:<br />
T5CON:TIMER5 控 制 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
T5SEN RESEN T5MOD T5PS1 T5PS0 T5SYNC TMR5CS TMR5ON<br />
bit 7 bit 0<br />
bit 7 T5SEN:Timer5 休 眠 使 能 位 (1)<br />
bit 6<br />
bit 5<br />
bit 4:3<br />
bit 2<br />
bit 1<br />
bit 0<br />
1 = 在 休 眠 状 态 使 能 Timer5<br />
0 = 在 休 眠 状 态 禁 止 Timer5<br />
RESEN: 特 殊 事 件 复 位 使 能 位<br />
1 = 特 殊 事 件 复 位 禁 止<br />
0 = 特 殊 事 件 复 位 使 能<br />
T5MOD:Timer5 模 式 位<br />
1 = 使 能 单 脉 冲 模 式<br />
0 = 使 能 连 续 计 数 模 式<br />
T5PS1:T5PS0:Timer5 输 入 时 钟 预 分 频 选 择 位<br />
11 =1:8<br />
10 =1:4<br />
01 =1:2<br />
00 =1:1<br />
T5SYNC:Timer5 外 部 时 钟 输 入 同 步 选 择 位<br />
当 TMR5CS=1:<br />
1 = 不 同 步 外 部 时 钟 输 入<br />
0 = 同 步 外 部 时 钟 输 入<br />
当 TMR5CS=0:<br />
此 位 被 忽 略 。 当 TMR5CS=0 时 , Timer5 使 用 内 部 时 钟<br />
TMR5CS:Timer5 时 钟 源 选 择 位<br />
1 = 来 自 引 脚 T5CKI 的 外 部 时 钟<br />
0 = 内 部 时 钟 (TCY)<br />
TMR5ON:Timer5 使 能 位<br />
1 = 使 能 Timer5<br />
0 = 禁 止 Timer5<br />
注 1: 由 于 Timer5 在 休 眠 模 式 运 行 , T5SYNC 必 须 被 置 位 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 145 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 14-1: TIMER5 框 图 (16 位 读 / 写 模 式 )<br />
T5CKI<br />
TMR5CS<br />
T5PS1:T5PS0<br />
T5SYNC<br />
TMR5ON<br />
噪 声<br />
滤 波 器<br />
FOSC/4<br />
内 部<br />
时 钟<br />
1<br />
0<br />
预 分 频 器<br />
1, 2, 4, 8<br />
2<br />
同 步<br />
检 测<br />
休 眠 输 入<br />
1<br />
0<br />
Timer5<br />
开 / 关<br />
内 部 数 据 总 线<br />
8<br />
TMR5H<br />
8<br />
8<br />
写 TMR5L<br />
来 自 IC1<br />
的 特 殊 事 件<br />
触 发 输 入<br />
Timer5 复 位<br />
( 外 部 )<br />
1<br />
0<br />
Timer5 复 位<br />
TMR5<br />
8<br />
TMR5L<br />
TMR5<br />
高 字 节<br />
16<br />
读 TMR5L<br />
复 位<br />
逻 辑 电 路<br />
比 较 器<br />
PR5<br />
PR5L<br />
16<br />
PR5H<br />
8<br />
置 位 TMR5IF<br />
特 殊 事 件<br />
触 发 输 出<br />
特 殊<br />
事 件<br />
逻 辑<br />
电 路<br />
8<br />
14.1 Timer5 工 作 原 理<br />
Timer5 包 含 了 两 个 8 位 寄 存 器 , 组 成 一 个 16 位 定 时 器 。<br />
TMR5L 寄 存 器 是 真 正 的 定 时 器 低 字 节 , 可 以 直 接 读 写 。<br />
高 字 节 包 含 在 未 映 射 的 寄 存 器 中 , 通 过 作 为 缓 冲 器 的<br />
TMR5H 进 行 读 写 。 每 个 寄 存 器 都 从 00h 增 加 到 FFh。<br />
另 一 个 寄 存 器 对 PR5H 和 PR5L 作 为 周 期 寄 存 器 使 用 ,<br />
用 来 设 置 TMR5 寄 存 器 对 的 最 大 计 数 。 当 TMR5 达 到<br />
PR5 的 值 时 , 定 时 器 计 满 回 零 为 0000h 并 置 位 TMR5IF<br />
中 断 标 志 位 。 Timer5 模 块 的 简 化 框 图 如 图 2-1 所 示 。<br />
注 :<br />
TIMER5 可 以 用 作 通 用 定 时 器 , 也 可 用 作 运<br />
动 反 馈 模 块 ( 输 入 捕 捉 或 正 交 编 码 器 接<br />
口 ) 的 时 基 源 。<br />
Timer5 支 持 三 种 配 置 :<br />
• 16 位 同 步 定 时 器<br />
• 16 位 同 步 计 数 器<br />
• 16 位 异 步 计 数 器<br />
在 同 步 定 时 器 配 置 中 , 定 时 器 由 内 部 器 件 时 钟 提 供 时 钟<br />
信 号 。 如 果 选 择 Timer5 作 为 预 分 频 器 , 可 以 选 择 将 时<br />
钟 输 入 信 号 进 行 2、 4、 8 分 频 或 不 进 行 分 频 (1:1)。<br />
TMR5 寄 存 器 对 在 Q1 时 进 行 递 增 计 数 。 清 零 TMR5CS<br />
则 选 择 内 部 器 件 时 钟 作 为 定 时 器 的 采 样 时 钟 。<br />
在 同 步 计 数 器 配 置 中 , 定 时 器 由 外 部 时 钟 (T5CKI) 和<br />
可 选 的 预 分 频 器 共 同 提 供 时 钟 信 号 。 置 位 TMR5CS 位<br />
(TMR5CS = 1) 选 择 外 部 T5CKI ; 清 零 TMR5CS 则<br />
选 择 内 部 时 钟 源 。 通 过 将 T5SYNC 位 清 零 , 可 使 外 部 时<br />
钟 与 内 部 时 钟 保 持 同 步 。 在 内 部 时 钟 的 每 个 Q2 和 Q4<br />
时 对 T5CKI 的 输 入 信 号 进 行 采 样 。 如 果 连 续 三 次 采 样 结<br />
果 都 是 上 升 沿 变 化 , 则 Timer5 在 下 一 个 Q1 时 进 行 递 增<br />
计 数 。T5CKI 最 短 的 脉 宽 高 电 平 时 间 和 低 电 平 时 间 必 须<br />
大 于 TCY/2。<br />
DS39616B_CN 第 146 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
在 异 步 计 数 器 配 置 中 ,Timer5 由 外 部 时 钟 (T5CKI) 和<br />
可 选 的 预 分 频 器 共 同 提 供 时 钟 信 号 。 在 此 模 式 中 ,<br />
T5CKI 与 内 部 时 钟 不 同 步 。 通 过 置 位 TMR5CS, 外 部 输<br />
入 时 钟 (T5CKI) 可 以 用 作 计 数 器 采 样 时 钟 。 当<br />
T5SYNC 被 置 位 时 , 外 部 时 钟 与 内 部 器 件 时 钟 不 同 步 。<br />
当 该 模 块 被 禁 止 时 , 定 时 器 计 数 不 会 自 动 复 位 。 用 户 可<br />
以 通 过 对 计 数 寄 存 器 执 行 写 操 作 来 启 动 计 数 器 。<br />
注 :<br />
当 Timer5 定 时 器 被 使 能 时 , 该 模 块 不 会 阻<br />
止 写 PR5 寄 存 器 (PR5H:PR5L)。 定 时 器<br />
使 能 时 写 PR5 可 能 导 致 出 现 意 外 的 周 期 匹<br />
配 事 件 。<br />
14.1.1 连 续 计 数 和 单 脉 冲 运 行<br />
Timer5 有 两 种 工 作 模 式 : 连 续 计 数 和 单 脉 冲 。<br />
通 过 清 零 T5MOD 控 制 位 (= 0) 选 择 连 续 计 数 模 式 。<br />
在 此 模 式 中 ,Timer5 时 基 根 据 预 分 频 器 设 置 开 始 递 增 ,<br />
直 到 发 生 TMR5/PR5 匹 配 , 或 TMR5 计 满 回 零 (FFFFh<br />
回 到 0000h)。 置 位 TMR5IF 中 断 标 志 位 , 并 在 随 后 的<br />
输 入 时 钟 沿 时 复 位 TMR5 寄 存 器 , 且 只 要 TMR5ON 位<br />
保 持 在 置 位 状 态 , 定 时 器 就 继 续 计 数 。<br />
置 位 T5MOD (= 1) 选 择 单 脉 冲 模 式 。 在 此 模 式 中<br />
Timer5 时 基 根 据 预 分 频 器 设 置 开 始 递 增 , 直 到 发 生<br />
TMR5/PR5 匹 配 。 这 将 引 起 置 位 TMR5IF 中 断 标 志 位 并<br />
在 随 后 的 输 入 时 钟 沿 时 复 位 TMR5 寄 存 器 对 , 而 且<br />
TMR5ON 位 将 被 硬 件 清 零 以 停 止 定 时 器 。<br />
Timer5 时 基 只 能 在 两 种 情 况 下 的 单 脉 冲 模 式 开 始 递 增<br />
计 数 :<br />
1. Timer5 使 能 (TMR5ON 置 位 ), 或 者<br />
2. Timer5 禁 止 , 且 在 Timer5 复 位 输 入 上 出 现 特 殊<br />
事 件 复 位 触 发 。( 更 多 信 息 参 见 第 14.7 节<br />
“Timer5 特 殊 事 件 复 位 输 入 ”)。<br />
14.2 16 位 读 / 写 和 写 模 式<br />
前 面 已 经 提 到 , Timer5 寄 存 器 对 的 真 正 高 字 节 映 射 到<br />
TMR5H, TMR5H 作 为 缓 冲 器 。 读 TMR5L 将 使 寄 存 器<br />
对 的 高 字 节 内 容 加 载 到 TMR5H 寄 存 器 。 这 样 使 得 用 户<br />
可 以 准 确 地 读 取 寄 存 器 对 的 全 部 16 位 , 而 不 会 因 两 次<br />
读 取 之 间 发 生 滚 存 而 需 要 判 断 读 高 字 节 再 读 低 字 节 是 否<br />
有 效 。<br />
由 于 Timer5 寄 存 器 对 的 实 际 高 字 节 不 可 以 直 接 读 写 , 它<br />
必 须 通 过 Timer5 高 字 节 缓 冲 寄 存 器 (TMR5H) 来 读<br />
写 。 当 发 生 写 TMR5L 的 操 作 时 , 会 用 TMR5H 的 内 容<br />
更 新 T5 高 字 节 。 这 允 许 用 户 一 次 写 入 Timer5 高 位 字 节<br />
和 低 位 字 节 的 全 部 16 位 。 写 入 TMR5H 不 会 清 零 Timer5<br />
预 分 频 器 。 预 分 频 器 只 有 在 写 TMR5L 时 清 零 。<br />
14.2.1 16 位 读 — 修 改 — 写 操 作<br />
读 — 修 改 — 写 指 令 ( 如 BSF 和 BCF) 先 读 寄 存 器 的 内<br />
容 , 进 行 适 当 修 改 , 然 后 将 结 果 写 回 到 寄 存 器 。 对<br />
TMR5H 执 行 读 — 修 改 — 写 指 令 的 写 部 分 直 到 发 生 写<br />
TMR5L 时 才 会 更 新 TMR5 的 高 字 节 内 容 。 之 后 才 会 将<br />
TMR5H 的 内 容 放 入 TMR5 高 字 节 。<br />
14.3 Timer5 预 分 频 器<br />
可 以 使 用 Timer5 的 可 编 程 预 分 频 器 对 Timer5 时 钟 输 入<br />
(TCY 或 外 部 时 钟 ) 进 行 分 频 。 预 分 频 器 控 制 位<br />
T5PS1:T5PS0(T5CON) 选 择 预 分 频 因 子 2、4、<br />
8 或 不 预 分 频 。<br />
Timer5 预 分 频 器 可 以 用 下 面 任 一 种 方 法 清 零 :<br />
• 写 Timer5 寄 存 器<br />
• 禁 止 Timer5 (TMR5ON = 0)<br />
• 器 件 复 位 , 比 如 主 清 零 、 POR 或 BOR<br />
注 :<br />
写 T5CON 寄 存 器 不 会 清 零 Timer5。<br />
14.4 噪 声 滤 波 器<br />
Timer5 模 块 包 含 一 个 可 选 的 输 入 噪 声 滤 波 器 , 专 用 于 降<br />
低 噪 声 工 作 环 境 下 的 杂 散 信 号 。 该 滤 波 器 确 保 只 有 在 连<br />
续 三 个 采 样 时 钟 周 期 都 得 到 一 个 稳 定 值 的 时 候 才 会 改 变<br />
输 入 。<br />
噪 声 滤 波 器 是 与 运 动 反 馈 模 块 相 关 的 输 入 滤 波 网 络 的 一<br />
部 分 ( 见 第 16.0 节 “ 运 动 反 馈 模 块 ”)。 所 有 这 些 滤 波<br />
器 都 由 数 据 滤 波 器 控 制 (DFLTCON) 寄 存 器 ( 寄 存<br />
器 16-3) 控 制 。 Timer5 滤 波 器 可 以 通 过 置 位 或 清 零<br />
FLT4EN 位 (DFLTCON) 被 单 独 使 能 或 禁 止 。 它<br />
在 所 有 POR 和 BOR 复 位 时 都 会 被 禁 止 。<br />
如 需 了 解 更 多 信 息 , 请 参 阅 运 动 反 馈 模 块 中 的 第 16.3 节<br />
“ 噪 声 滤 波 器 ”。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 147 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
14.5 Timer5 中 断<br />
Timer5 能 够 在 周 期 匹 配 时 产 生 中 断 。 当 PR5 寄 存 器 装<br />
入 新 的 周 期 值 (00FFh) 时 ,Timer5 时 基 进 行 递 增 计 数<br />
直 到 它 的 值 与 PR5 的 值 相 等 。 当 发 生 匹 配 时 , 在 Q4 的<br />
上 升 沿 产 生 Timer5 中 断 ; 并 在 下 一 个 TCY 置 位<br />
TMR5IF。<br />
中 断 等 待 时 间 ( 也 就 是 从 Timer5 计 满 回 零 到 TMR5IF<br />
置 位 所 经 过 的 时 间 ) 不 会 超 过 1TCY。 当 Timer5 时 钟 输<br />
入 被 预 分 频 且 发 生 TMR5/PR5 匹 配 时 , 在 TMR5 复 位<br />
后 的 第 一 个 Q4 上 升 沿 会 产 生 中 断 。<br />
14.6 Timer5 特 殊 事 件 触 发 输 出<br />
在 TMR5/PR5 匹 配 时 产 生 Timer5 特 殊 事 件 触 发 。 此 特<br />
殊 事 件 触 发 在 Q3 的 下 降 沿 产 生 。<br />
Timer5 必 须 配 置 为 同 步 模 式 ( 计 数 器 或 定 时 器 ) 才 能<br />
利 用 特 殊 事 件 触 发 功 能 。 如 果 Timer5 在 异 步 计 数 器 模<br />
下 运 行 , 特 殊 事 件 触 发 器 可 能 不 会 工 作 , 也 因 此 无 法 使<br />
用 。<br />
14.7 Timer5 特 殊 事 件 复 位 输 入<br />
除 了 特 殊 事 件 输 出 ,Timer5 还 有 特 殊 事 件 复 位 输 入 , 该<br />
功 能 可 以 与 运 动 反 馈 模 块 的 输 入 捕 捉 通 道 1 (IC1) 配<br />
合 使 用 。 要 使 用 特 殊 事 件 复 位 , 捕 捉 1 控 制 寄 存 器<br />
CAP1CON 必 须 配 置 为 某 一 种 特 殊 事 件 触 发 模 式<br />
(CAP1M3:CAP1M0=1110 或 1111)。 置 位 RESEN 控<br />
制 位 (T5CON) 可 以 禁 止 特 殊 事 件 复 位 触 发 。<br />
特 殊 事 件 复 位 将 复 位 Timer5 时 基 。 在 连 续 计 数 或 单 脉<br />
冲 模 式 下 都 会 发 生 此 复 位 。<br />
14.7.1 IC1 边 沿 唤 醒<br />
Timer5 特 殊 事 件 复 位 输 入 可 用 作 Timer5 唤 醒 和 启 动 脉<br />
冲 。 Timer5 必 须 在 单 脉 冲 模 式 且 被 禁 止 (TMR5ON =<br />
0)。CAP1 输 入 引 脚 上 的 活 动 边 沿 将 置 位 TMR5ON ;<br />
然 后 定 时 器 在 下 一 个 时 钟 根 据 预 分 频 器 和 Timer5 时 钟<br />
设 置 进 行 递 增 计 数 。 接 下 来 的 硬 件 超 时 ( 如 TMR5/PR5<br />
匹 配 ) 将 清 零 TMR5ON 位 并 停 止 该 定 时 器 。<br />
14.7.2 延 迟 操 作 事 件 触 发<br />
CAP1 上 的 活 动 边 沿 还 可 用 于 启 动 某 个 后 续 操 作 , 并 由<br />
Timer5 时 基 对 该 后 续 操 作 进 行 延 迟 。 这 种 情 况 下 ,<br />
Timer5 在 被 触 发 后 会 像 之 前 一 样 递 增 计 数 。 当 发 生 硬 件<br />
超 时 时 , 将 产 生 特 殊 事 件 触 发 输 出 用 于 触 发 另 一 个 操<br />
作 , 如 A/D 转 换 。 这 就 允 许 从 CAP1 的 捕 获 边 沿 引 用 某<br />
个 给 定 的 硬 件 操 作 , 且 该 硬 件 操 作 由 定 时 器 进 行 延 迟 。<br />
我 们 将 在 第 16.1 节 “ 输 入 捕 捉 ” 中 更 深 入 地 讨 论 延 迟<br />
操 作 事 件 触 发 的 事 件 时 序 。<br />
14.7.3 当 TIMER5 递 增 时 的 特 殊 事 件 复 位<br />
如 果 Timer5 的 总 线 写 操 作 与 特 殊 事 件 复 位 触 发 同 时 发<br />
生 , 该 总 线 写 操 作 的 优 先 级 始 终 高 于 特 殊 事 件 复 位 触<br />
发 。<br />
14.8 休 眠 模 式 下 运 行<br />
当 Timer5 配 置 为 异 步 操 作 模 式 时 , 它 将 在 每 个 定 时 器<br />
时 钟 信 号 下 ( 或 时 钟 的 预 分 频 倍 乘 ) 继 续 递 增 。 执 行<br />
SLEEP 指 令 可 能 会 停 止 定 时 器 也 可 能 会 让 定 时 器 继 续 工<br />
作 , 这 取 决 于 是 否 置 位 Timer5 的 休 眠 使 能 位 (T5SE)。<br />
如 果 T5SE 被 置 位 (= 1) 且 选 定 外 部 时 钟 (TMR5CS<br />
= 1) , 执 行 SLEEP 指 令 时 定 时 器 将 继 续 工 作 。 如 果<br />
T5SE 被 清 零 , 则 无 论 GTPCS 位 的 状 态 如 何 , 当 执 行<br />
SLEEP 指 令 时 定 时 器 都 将 停 止 。<br />
总 之 , 只 有 以 下 所 有 位 被 置 位 时 ,Timer5 在 执 行 SLEEP<br />
指 令 时 才 会 保 持 继 续 递 增 :<br />
• TMR5ON<br />
• T5SE<br />
• TMR5CS<br />
• T5SYNC<br />
14.8.1 休 眠 模 式 下 的 中 断 检 测<br />
如 果 按 上 述 进 行 配 置 , 休 眠 模 式 下 Timer5 将 在 T5CKI<br />
的 每 个 上 升 沿 继 续 递 增 。 当 发 生 TMR5/PR5 匹 配 时 , 会<br />
产 生 中 断 , 可 唤 醒 该 器 件 。<br />
DS39616B_CN 第 148 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 14-1:<br />
与 TIMER5 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR<br />
时 的 值<br />
其 他 复 位 时<br />
的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
IPR3 — — — PTIP IC3DRIP IC2QEIP IC1IP TMR5IP ---1 1111 ---1 1111<br />
PIE3 — — — PTIE IC3DRIE IC2QEIE IC1IE TMR5IE ---0 0000 ---0 0000<br />
PIR3 — — — PTIF IC3DRIF IC2QEIF IC1IF TMR5IF ---0 0000 ---0 0000<br />
TMR5H Timer5 寄 存 器 高 字 节 xxxx xxxx uuuu uuuu<br />
TMR5L TImer5 寄 存 器 低 字 节 xxxx xxxx uuuu uuuu<br />
PR5H Timer5 周 期 寄 存 器 高 字 节 1111 1111 1111 1111<br />
PR5L Timer5 周 期 寄 存 器 低 字 节 1111 1111 1111 1111<br />
T5CON T5SEN RESEN T5MOD T5PS1 T5PS0 T5SYNC TMR5CS TMR5ON 0000 0000 0000 0000<br />
CAP1CON — CAP1REN — — CAP1M3 CAP1M2 CAP1M1 CAP1M0 -1-- 0000 -1-0 0000<br />
DFLTCON — FLT4EN FLT3EN FLT2EN FLT1EN FLTCK2 FLTCK1 FLTCK0 -000 0000 -000 0000<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 149 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 150 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
15.0 捕 捉 / 比 较 /PWM (CCP) 模 块<br />
CCP ( 捕 捉 / 比 较 /PWM) 模 块 包 含 一 个 16 位 的 寄 存<br />
器 , 它 可 作 为 16 位 捕 捉 寄 存 器 、 比 较 寄 存 器 或 PWM 主<br />
控 / 从 动 占 空 比 寄 存 器 。 表 15-1 所 示 为 CCP 模 块 的 每<br />
种 工 作 模 式 所 需 要 的 定 时 器 资 源 。<br />
除 了 特 殊 事 件 触 发 器 之 外 ,CCP1 的 操 作 和 CCP2 相 同 。<br />
因 此 , 除 了 特 别 注 明 之 处 为 , 以 下 描 述 的 CCP 模 块 操<br />
作 皆 是 针 对 CCP1 而 言 的 。<br />
寄 存 器 15-1:<br />
CCPxCON:CCP 模 块 控 制 寄 存 器<br />
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
— — DCxB1 DCxB0 CCPxM3 CCPxM2 CCPxM1 CCPxM0<br />
bit 7 bit 0<br />
bit 7-6 未 实 现 位 : 读 作 0<br />
bit 5-4 DCxB1:DCxB0:PWM 占 空 比 bit1 和 bit0<br />
捕 捉 模 式 :<br />
未 使 用<br />
比 较 模 式 :<br />
未 使 用<br />
PWM 模 式 :<br />
这 些 位 是 10 位 PWM 占 空 比 的 两 个 LSb (bit 1 和 bit 0)。 占 空 比 的 高 八 位 (DCx9:DCx2)<br />
在 CCPRxL 中 。<br />
bit 3-0 CCPxM3:CCPxM0:CCPx 模 式 选 择 位<br />
0000 = 禁 止 捕 捉 / 比 较 /PWM ( 复 位 CCPx 模 块 )<br />
0001 = 保 留<br />
0010 = 比 较 模 式 , 匹 配 时 翻 转 输 出 ( 置 位 CCPxIF 位 )<br />
0011 = 保 留<br />
0100 = 捕 捉 模 式 , 每 个 下 降 沿<br />
0101 = 捕 捉 模 式 , 每 个 上 升 沿<br />
0110 = 捕 捉 模 式 , 每 4 个 上 升 沿<br />
1000 = 捕 捉 模 式 , 每 16 个 上 升 沿<br />
1000 = 比 较 模 式 , 初 始 化 CCP 引 脚 为 低 电 平 , 比 较 匹 配 时 强 制 CCP 引 脚 为 高 电 平<br />
( 置 位 CCPxIF 位 )<br />
1001 = 比 较 模 式 , 初 始 化 CCP 引 脚 为 高 电 平 , 比 较 匹 配 时 强 制 CCP 引 脚 为 低 电 平<br />
( 置 位 CCPxIF 位 )<br />
1010 = 比 较 模 式 , 比 较 匹 配 时 产 生 软 件 中 断 ( 置 位 CCPxIF 位 , CCP 引 脚 不 受 影 响 )<br />
1010 = 比 较 模 式 , 产 生 特 殊 触 发 事 件 ( 置 位 CCP2IF 位 )<br />
11xx = PWM 模 式<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
- n = 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 151 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
15.1 CCP1 模 块<br />
捕 捉 / 比 较 /PWM 寄 存 器 1(CCPR1) 由 两 个 8 位 寄 存<br />
器 组 成 :CCPR1L ( 低 字 节 ) 和 CCPR1H ( 高 字 节 )。<br />
CCP1CON 寄 存 器 控 制 CCP1 的 操 作 。 所 有 位 均 可 读<br />
写 。<br />
15.2 CCP2 模 块<br />
捕 捉 / 比 较 /PWM 寄 存 器 2(CCPR2) 由 两 个 8 位 寄 存<br />
器 组 成 :CCPR2L ( 低 字 节 ) 和 CCPR2H ( 高 字 节 )。<br />
CCP2CON 寄 存 器 控 制 CCP2 的 操 作 。 所 有 位 均 可 读<br />
写 。<br />
表 15-1:<br />
CCP 模 式<br />
捕 捉<br />
比 较<br />
PWM<br />
CCP 模 块 - 定 时 器 资 源<br />
定 时 器 资 源<br />
Timer1<br />
Timer1<br />
Timer2<br />
DS39616B_CN 第 152 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
15.3 捕 捉 模 式<br />
在 捕 捉 模 式 下 , 当 引 脚 RC2/CCP1 上 发 生 事 件 时 ,<br />
CCPR1H:CCPR1L 将 捕 捉 TMR1 寄 存 器 的 16 位 值 。 事<br />
件 定 义 如 下 :<br />
• 每 个 下 降 沿<br />
• 每 个 上 升 沿<br />
• 每 4 个 上 升 沿<br />
• 每 16 个 上 升 沿<br />
事 件 由 控 制 位 CCP1M3:CCP1M0 (CCP1CON)<br />
选 择 。 当 一 个 捕 捉 发 生 时 , 中 断 请 求 标 志 位 CCP1IF<br />
(PIR1) 置 位 , 它 必 须 用 软 件 清 零 。 如 果 在 寄 存 器<br />
CCPR1 中 的 值 被 读 出 之 前 , 发 生 了 另 一 个 捕 捉 , 那 么 之<br />
前 捕 捉 的 值 将 会 被 新 值 覆 盖 。<br />
15.3.1 CCP 引 脚 配 置<br />
在 捕 捉 模 式 下 , 应 通 过 将 TRISC 位 置 位 使 RC2/<br />
CCP1 引 脚 配 置 为 输 入 。<br />
注 :<br />
如 果 RC2/CCP1 被 配 置 为 输 出 , 对 端 口 的<br />
写 操 作 可 以 产 生 捕 捉 条 件 。<br />
15.3.2 TIMER1 模 式 选 择<br />
在 使 用 捕 捉 功 能 时 ,Timer1 必 须 为 定 时 器 模 式 或 同 步 计<br />
数 器 模 式 。 在 异 步 计 数 器 模 式 下 , 捕 捉 可 能 无 法 进 行 。<br />
15.3.3 软 件 中 断<br />
捕 捉 模 式 的 改 变 可 能 会 产 生 错 误 的 捕 捉 中 断 。 为 避 免 产<br />
生 错 误 中 断 , 用 户 应 该 保 持 CCP1IE 位 (PIE1) 为<br />
零 , 且 应 在 操 作 模 式 改 变 后 将 标 志 位 CCP1IF 清 零 。<br />
15.3.4 CCP 预 分 频 器<br />
通 过 指 定 CCP1M3:CCP1M0 位 , 可 设 置 四 种 预 分 频 比 。<br />
只 要 CCP 模 块 关 闭 或 未 处 于 捕 捉 模 式 , 预 分 频 器 的 计<br />
数 器 即 清 零 。 这 意 味 着 任 何 复 位 都 会 将 预 分 频 器 计 数 器<br />
清 零 。<br />
从 一 个 捕 捉 预 分 频 值 切 换 到 另 一 个 捕 捉 预 分 频 值 可 能 产<br />
生 中 断 。 而 且 , 预 分 频 器 计 数 器 将 不 会 清 零 , 因 此 , 第<br />
一 个 捕 捉 可 能 来 自 一 个 非 零 的 预 分 频 值 。 例 15-1 给 出<br />
了 在 捕 捉 预 分 频 值 之 间 切 换 的 建 议 方 法 。 这 个 例 子 也 使<br />
预 分 频 器 计 数 器 清 零 且 不 会 产 生 “ 错 误 ” 中 断 。<br />
例 15-1: 在 捕 捉 预 分 频 值 之 间 进 行 切 换<br />
CLRF CCP1CON, F ; Turn CCP module off<br />
MOVLW NEW_CAPT_PS ; Load WREG with the<br />
; new prescaler mode<br />
; value and CCP ON<br />
MOVWF CCP1CON ; Load CCP1CON with<br />
; this value<br />
图 15-1:<br />
捕 捉 模 式 操 作 框 图<br />
标 志 位 CCP1IF 置 位<br />
CCP1 引 脚<br />
预 分 频 器<br />
÷ 1, 4, 16<br />
TMR1<br />
使 能<br />
CCPR1H<br />
CCPR1L<br />
和<br />
边 沿 检 测<br />
TMR1H<br />
TMR1L<br />
Q's<br />
CCP1CON<br />
标 志 位 CCP2IF 置 位<br />
预 分 频 器<br />
÷ 1, 4, 16<br />
CCPR2H<br />
CCPR2L<br />
CCP2 引 脚<br />
TMR1<br />
使 能<br />
和<br />
边 沿 检 测<br />
TMR1H<br />
TMR1L<br />
Q's<br />
CCP2CON<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 153 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
15.4 比 较 模 式<br />
在 比 较 模 式 下 , 16 位 CCPR1 (CCPR2) 寄 存 器 的 值<br />
不 断 与 TMR1 寄 存 器 对 的 值 进 行 比 较 。 当 两 者 相 符 时 ,<br />
RC2/CCP1 (RC1/CCP2) 引 脚 将 :<br />
• 被 拉 高<br />
• 被 拉 低<br />
• 翻 转 输 出 ( 高 电 平 变 为 低 电 平 或 低 电 平 变 为 高 电<br />
平 )<br />
• 保 持 不 变 ( 仅 中 断 )<br />
引 脚 的 行 为 取 决 于 控 制 位 CCP1M3:CCP1M0<br />
(CCP2M3:CCP2M0) 的 值 。 同 时 , 中 断 标 志 位 CCP1IF<br />
(CCP2IF) 被 置 位 。<br />
15.4.1 CCP 引 脚 配 置<br />
用 户 必 须 通 过 将 相 应 的 TRISC 位 清 零 , 将 CCPx 引 脚<br />
配 置 为 输 出 引 脚 。<br />
注 :<br />
清 零 CCP1CON 寄 存 器 将 迫 使 RC2/CCP1<br />
比 较 输 出 锁 存 器 为 缺 省 低 电 平 。 这 不 是<br />
PORTC I/O 数 据 锁 存 器 。<br />
15.4.2 TIMER1 模 式 选 择<br />
当 CCP 模 块 使 用 比 较 功 能 时 ,Timer1 必 须 为 定 时 器 模<br />
式 或 同 步 计 数 器 模 式 。 在 异 步 计 数 器 模 式 下 , 可 能 无 法<br />
进 行 比 较 操 作 。<br />
15.4.3 软 件 中 断 模 式<br />
当 选 择 产 生 软 件 中 断 时 , CCP1 引 脚 上 的 电 平 不 受 影<br />
响 。 只 会 产 生 一 个 CCP 中 断 ( 若 中 断 使 能 )。<br />
15.4.4 特 殊 事 件 触 发 器<br />
在 这 一 模 式 下 , 将 产 生 一 个 内 部 硬 件 触 发 信 号 , 该 信 号<br />
可 用 来 启 动 一 个 操 作 。<br />
CCP1 的 特 殊 事 件 触 发 器 输 出 使 TMR1 寄 存 器 对 复 位 。<br />
这 将 使 CCPR1 寄 存 器 有 效 地 成 为 Timer1 的 16 位 可 编<br />
程 周 期 寄 存 器 。<br />
CCP2 的 特 殊 事 件 触 发 器 输 出 使 TMR1 寄 存 器 对 复 位 。<br />
另 外 , 如 果 使 能 了 A/D 模 块 , 则 CCP2 特 殊 事 件 触 发 器<br />
将 启 动 A/D 转 换 。<br />
注 : CCP2 模 块 的 特 殊 事 件 触 发 器 不 会 将<br />
Timer1 的 中 断 标 志 位 置 位 。<br />
图 15-2:<br />
比 较 模 式 操 作 框 图<br />
特 殊 事 件 触 发 器 将 :<br />
复 位 Timer1, 但 不 会 将 Timer1 中 断 标 志 位 置 位 ,<br />
并 将 GO/DONE 位 (ADCON0) 置 位 , 这 将 启 动 A/D 转 换 ( 仅 对 CCP2)<br />
特 殊 事 件 触 发 器<br />
标 志 位 CCP1IF 置 位<br />
CCPR1H CCPR1L<br />
RC2/CCP1 引 脚<br />
TRISC<br />
输 出 使 能<br />
Q<br />
S<br />
R<br />
输 出<br />
逻 辑<br />
CCP1CON<br />
模 式 选 择<br />
匹 配<br />
比 较 器<br />
特 殊 事 件 触 发 器<br />
TMR1H<br />
TMR1L<br />
标 志 位 CCP2IF 置 位<br />
RC1/CCP2 引 脚<br />
TRISC<br />
输 出 使 能<br />
Q<br />
S<br />
R<br />
输 出<br />
逻 辑<br />
匹 配<br />
比 较 器<br />
CCP2CON<br />
模 式 选 择<br />
CCPR2H CCPR2L<br />
DS39616B_CN 第 154 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 15-2:<br />
与 捕 捉 、 比 较 和 TIMER1 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR 时 的 值<br />
其 他<br />
复 位 时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF -000 0000 -000 0000<br />
PIE1 — ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE -000 0000 -000 0000<br />
IPR1 — ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP -111 1111 -111 1111<br />
TRISC PORTC 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
TMR1L 保 持 寄 存 器 的 值 为 16 位 TMR1 寄 存 器 的 低 有 效 字 节 xxxx xxxx uuuu uuuu<br />
TMR1H 保 持 寄 存 器 的 值 为 16 位 TMR1 寄 存 器 的 高 有 效 字 节 xxxx xxxx uuuu uuuu<br />
T1CON RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 uuuu uuuu<br />
CCPR1L 捕 捉 / 比 较 /PWM 寄 存 器 1 (LSB) xxxx xxxx uuuu uuuu<br />
CCPR1H 捕 捉 / 比 较 /PWM 寄 存 器 1 (MSB) xxxx xxxx uuuu uuuu<br />
CCP1CON - - DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000<br />
CCPR2L 捕 捉 / 比 较 /PWM 寄 存 器 2 (LSB) xxxx xxxx uuuu uuuu<br />
CCPR2H 捕 捉 / 比 较 /PWM 寄 存 器 2 (MSB) xxxx xxxx uuuu uuuu<br />
CCP2CON — — DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000<br />
PIR2 OSCFIF CMIF — EEIF BCLIF LVDIF TMR3IF CCP2IF 00-0 0000 00-0 0000<br />
PIE2 OSCFIE CMIE — EEIE BCLIE LVDIE TMR3IE CCP2IE 00-0 0000 00-0 0000<br />
IPR2 OSCFIP CMIP — EEIP BCLIP LVDIP TMR3IP CCP2IP 11-1 1111 11-1 1111<br />
图 注 : x= 未 知 , u= 不 变 , - = 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 捕 捉 或 Timer1 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 155 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
15.5 PWM 模 式<br />
在 脉 宽 调 制 (PWM) 模 式 下 , CCP1 引 脚 会 产 生 高 达<br />
10 位 分 辨 率 的 PWM 输 出 。 由 于 CCP1 引 脚 与 PORTC<br />
数 据 锁 存 器 复 用 , 所 以 必 须 清 零 TRISC 位 以 使<br />
CCP1 引 脚 为 输 出 引 脚 。<br />
注 :<br />
图 15-3 所 示 为 PWM 模 式 下 CCP 模 块 的 简 化 框 图 。<br />
如 需 了 解 将 CCP 模 块 设 置 为 PWM 操 作 的 详 细 步 骤 , 请<br />
参 阅 第 15.5.3 节 “ 设 置 PWM 操 作 ”。<br />
图 15-3:<br />
清 零 CCP1CON 寄 存 器 将 迫 使 CCP1 PWM<br />
输 出 锁 存 器 为 缺 省 低 电 平 。 这 不 是 PORTC<br />
I/O 数 据 锁 存 器 。<br />
占 空 比 寄 存 器<br />
CCPR1L<br />
PWM 的 简 化 框 图<br />
CCP1CON<br />
15.5.1 PWM 周 期<br />
通 过 对 PR2 寄 存 器 进 行 写 操 作 , 指 定 PWM 周 期 。 可 使<br />
用 以 下 公 式 来 计 算 PWM 周 期 。<br />
公 式 15-1:<br />
PWM 周 期 =<br />
PWM 频 率 定 义 为 1/[PWM 周 期 ]。 当 TMR2 等 于 PR2<br />
时 , 在 下 一 个 递 增 周 期 会 发 生 以 下 三 个 事 件 :<br />
• TMR2 被 清 零<br />
• CCP1 引 脚 被 置 位 ( 如 果 PWM 占 空 比 =0%,<br />
CCP1 引 脚 不 会 被 置 位 )<br />
• PWM 占 空 比 从 CCPR1L 复 制 到 CCPR1H<br />
注 :<br />
[(PR2) + 1] • 4 • TOSC •<br />
(TMR2 预 分 频 值 )<br />
Timer2 后 分 频 器 ( 见 第 13.0 节 “Timer2<br />
模 块 ”) 与 PWM 频 率 无 关 。 使 用 后 分 频 器 ,<br />
可 以 以 不 同 于 PWM 频 率 的 速 率 进 行 数 据 更<br />
新 。<br />
CCPR1H( 从 动 )<br />
比 较 器<br />
TMR2 ( 注 1)<br />
R<br />
S<br />
Q<br />
RC2/CCP1<br />
15.5.2 PWM 占 空 比<br />
通 过 对 CCPR1L 寄 存 器 和 CCP1CON 位 进 行 写 操<br />
作 , 指 定 PWM 的 占 空 比 。 最 高 分 辨 率 可 达 10 位 。<br />
CCPR1L 包 含 八 个 MSb, CCP1CON 包 含 两 个<br />
LSb。 CCPR1L:CCP1CON 就 代 表 这 10 位 值 。<br />
PWM 占 空 比 根 据 以 下 公 式 计 算 。<br />
比 较 器<br />
PR2<br />
清 零 定 时 器 、<br />
CCP1 引 脚 和<br />
锁 存 D.C。<br />
TRISC<br />
公 式 15-2:<br />
PWM 占 空 比 =<br />
(CCPR1L:CCP1CON) •<br />
Tosc • (TMR2 预 分 频 值 )<br />
注 :<br />
8 位 定 时 器 与 2 位 内 部 Q 时 钟 或<br />
2 位 预 分 频 器 并 置 构 成 10 位 时 基 。<br />
PWM 输 出 ( 图 15-4) 有 一 个 时 基 ( 周 期 ) 和 输 出 为<br />
高 电 平 的 时 间 ( 占 空 比 )。 PWM 的 频 率 是 周 期 的 倒 数<br />
(1/ 周 期 )。<br />
任 何 时 候 都 可 以 写 CCPR1L 和 CCP1CON, 但 直<br />
到 PR2 与 TMR2 中 的 值 相 符 ( 即 周 期 结 束 时 ), 占 空<br />
比 的 值 才 被 复 制 到 CCPR1H。 在 PWM 模 式 下 ,<br />
CCPR1H 是 只 读 寄 存 器 。<br />
图 15-4:<br />
周 期<br />
PWM 输 出<br />
占 空 比<br />
TMR2 = PR2<br />
TMR2 = 占 空 比<br />
TMR2=PR2<br />
DS39616B_CN 第 156 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
CCPR1H 寄 存 器 和 一 个 2 位 内 部 锁 存 器 为 PWM 占 空 比<br />
提 供 双 重 缓 冲 。 双 重 缓 冲 对 PWM 的 无 毛 刺 操 作 是 极 其<br />
重 要 的 。 当 CCPR1H 和 2 位 锁 存 值 与 TMR2 加 上 内 部<br />
2 位 Q 时 钟 或 TMR2 预 分 频 器 的 两 位 相 符 时 ,CCP1 引<br />
脚 被 清 零 。 对 于 给 定 的 PWM 频 率 , 最 大 PWM 分 辨 率<br />
( 位 ) 可 以 根 据 以 下 公 式 计 算 。<br />
公 式 15-3:<br />
PWM 分 辨 率 ( 最 大 ) =<br />
FOSC<br />
log<br />
⎛ ⎞<br />
⎝FPWM⎠<br />
log(2)<br />
位<br />
15.5.3 设 置 PWM 操 作<br />
将 CCP 模 块 配 置 为 PWM 操 作 , 应 执 行 以 下 步 骤 :<br />
1. 写 PR2 寄 存 器 来 设 置 PWM 周 期<br />
2. 写 CCPR1L 寄 存 器 和 CCP1CON 位 来 设 置<br />
PWM 的 占 空 比 。<br />
3. 清 零 TRISC 位 , 使 CCP1 引 脚 为 输 出 。<br />
4. 写 T2CON 来 设 置 TMR2 预 分 频 值 并 使 能 Timer2。<br />
5. 将 CCP1 模 块 配 置 为 PWM 操 作 。<br />
注 : 如 果 PWM 占 空 比 的 值 大 于 PWM 周 期 ,<br />
CCP1 引 脚 将 不 会 被 清 零 。<br />
表 15-3: 40 MHz 时 PWM 频 率 和 分 辨 率 示 例<br />
PWM 频 率 2.44 kHz 9.77 kHz 39.06 kHz 156.25 kHz 312.50 kHz 416.67 kHz<br />
定 时 器 预 分 频 器 (1,4,16) 16 4 1 1 1 1<br />
PR2 值 FFh FFh FFh 3Fh 1Fh 17h<br />
最 大 分 辨 率 ( 位 ) 10 10 10 8 7 6.58<br />
表 15-4:<br />
与 PWM 和 TIMER2 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR 时 的<br />
值<br />
其 他<br />
复 位 时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF -000 0000 -000 0000<br />
PIE1 — ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE -000 0000 -000 0000<br />
IPR1 — ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP -111 1111 -111 1111<br />
TRISC PORTC 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
TMR2 Timer2 模 块 寄 存 器 0000 0000 0000 0000<br />
PR2 Timer2 模 块 周 期 寄 存 器 1111 1111 1111 1111<br />
T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000<br />
CCPR1L 捕 捉 / 比 较 /PWM 寄 存 器 1 (LSB) xxxx xxxx uuuu uuuu<br />
CCPR1H 捕 捉 / 比 较 /PWM 寄 存 器 1 (MSB) xxxx xxxx uuuu uuuu<br />
CCP1CON — — DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000<br />
CCPR2L 捕 捉 / 比 较 /PWM 寄 存 器 2 (LSB) xxxx xxxx uuuu uuuu<br />
CCPR2H 捕 捉 / 比 较 /PWM 寄 存 器 2 (MSB) xxxx xxxx uuuu uuuu<br />
CCP2CON — — DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000<br />
图 注 : x= 未 知 , u= 不 变 , – = 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 PWM 或 Timer2 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 157 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 158 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.0 运 动 反 馈 模 块<br />
运 动 反 馈 模 块 是 为 运 动 反 馈 应 用 设 计 的 特 殊 功 能 外 设 。<br />
配 合 功 率 控 制 PWM 模 块 ( 参 见 第 17.0 节 “ 功 率 控 制<br />
PWM 模 块 ”), 它 可 以 为 多 种 电 动 机 提 供 各 种 不 同 的 控<br />
制 解 决 方 案 。<br />
此 模 块 实 际 上 由 两 个 硬 件 子 模 块 组 成 :<br />
• 输 入 捕 捉 模 块 (Input Capture, IC)<br />
• 正 交 编 码 器 接 口 (Quadrature Encoder<br />
Interface, QEI)<br />
这 些 模 块 和 Timer5( 参 见 第 14.0 节 “Timer5 模 块 ”)<br />
一 起 为 运 动 和 控 制 应 用 提 供 了 许 多 选 择 。<br />
IC 和 QEI 子 模 块 的 很 多 功 能 都 是 完 全 可 编 程 的 , 因 此 为<br />
外 设 结 构 提 供 了 很 好 的 灵 活 性 , 可 以 满 足 一 系 列 系 统 内<br />
应 用 。 表 16-1 概 括 了 这 些 可 用 功 能 。 图 16-1 显 示 了 整<br />
个 运 动 反 馈 模 块 的 简 化 框 图 。<br />
注 :<br />
因 为 IC 和 QEI 子 模 块 的 输 入 引 脚 是 共 用<br />
的 , 所 以 任 何 时 候 , 这 两 个 子 模 块 中 只 能<br />
有 一 个 可 以 使 用 。 如 果 两 个 模 块 都 被 使<br />
能 , QEI 子 模 块 有 更 高 的 优 先 级 。<br />
表 16-1:<br />
运 动 反 馈 模 块 功 能 概 要<br />
子 模 块 模 式 功 能 定 时 器 功 能<br />
IC (3x) • 同 步<br />
• 输 入 捕 捉<br />
TMR5<br />
• 灵 活 的 输 入 捕 捉 模 式<br />
• 可 用 预 分 频 器<br />
• 可 选 时 基 复 位<br />
• ADC 采 样 / 转 换 特 殊 事 件 触<br />
发 或 可 选 TMR5 复 位 功 能<br />
( 仅 CAP1)<br />
• 休 眠 唤 醒 功 能<br />
• 可 选 中 断 频 率<br />
• 可 选 噪 声 滤 波 器<br />
QEI QEI • 检 测 位 置<br />
• 检 测 转 动 方 向<br />
• 大 带 宽 (Fcy/16)<br />
• 可 选 噪 声 滤 波 器<br />
速 度 测 量<br />
• 2x 和 4x 更 新 模 式<br />
• 速 度 事 件 后 分 频 器<br />
• 低 转 速 计 数 器 溢 出 标 志<br />
• 利 用 输 入 捕 捉 (IC1) 逻 辑 电<br />
路<br />
• 支 持 高 速 和 低 速<br />
16 位 位<br />
置 计 数 器<br />
TMR5<br />
• 3x 输 入 捕 捉 ( 边 沿 捕 捉 、 脉<br />
宽 、 周 期 测 量 、 变 化 捕 捉 )<br />
• 在 CAP1 输 入 引 脚 上 的 特 殊 事<br />
件 触 发 A/D 转 换<br />
• 位 置 测 量<br />
• 转 动 方 向 状 态<br />
• 精 确 的 速 度 测 量<br />
• 转 动 方 向 状 态<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 159 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-1:<br />
运 动 反 馈 模 块 框 图<br />
T5CKI<br />
滤 波 器<br />
特 殊 复 位 触 发<br />
定 时 器 复 位<br />
TMR5<br />
复 位<br />
控 制<br />
TCY<br />
TMR5<br />
Timer5<br />
3x 输 入 捕 捉 逻 辑 电 路<br />
TMR5IF<br />
特 殊 事 件 输 出<br />
TMR5<br />
8<br />
数 据 总 线 <br />
CAP3/QEB<br />
滤 波 器<br />
预 分 频 器<br />
IC3<br />
IC3IF<br />
8<br />
CAP2/QEA<br />
滤 波 器<br />
预 分 频 器<br />
IC2<br />
IC2IF<br />
8<br />
CAP1/INDX<br />
滤 波 器<br />
预 分 频 器<br />
IC1<br />
IC1IF<br />
特 殊 复 位 触 发<br />
8<br />
TCY<br />
时 钟<br />
分 频 器<br />
后 分 频 器<br />
8<br />
QEB<br />
速 度 事 件<br />
定 时 器 复 位<br />
QEA 方 向<br />
时 钟<br />
QEI<br />
控 制<br />
逻 辑 电 路<br />
INDX<br />
CHGIF<br />
位 置 计 数 器<br />
QEIF<br />
8<br />
8<br />
QEI 逻 辑 电 路<br />
CHGIF<br />
IC3IF<br />
IC3DRIF<br />
QEI<br />
模 式<br />
解 码 器<br />
8<br />
QEIF<br />
IC2IF<br />
IC2QEIF<br />
DS39616B_CN 第 160 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.1 输 入 捕 捉<br />
输 入 捕 捉 (IC) 子 模 块 实 现 了 以 下 功 能 :<br />
• CAP1、 CAP2 和 CAP3 引 脚 上 的 3 个 独 立 输 入 捕<br />
捉 通 道 (16 位 / 通 道 )<br />
• 每 个 通 道 的 边 沿 触 发 、 周 期 或 脉 宽 测 量 工 作 模 式<br />
• 每 个 输 入 捕 捉 通 道 的 可 编 程 预 分 频 器<br />
• 特 殊 事 件 触 发 输 出 ( 仅 IC1)<br />
• 每 个 捕 捉 输 入 的 可 选 噪 声 滤 波 器<br />
输 入 通 道 (IC1) 包 括 一 个 特 殊 事 件 触 发 器 , 可 以 配 置<br />
用 于 速 度 测 量 模 式 。 图 16-2 显 示 了 其 框 图 。IC2 和 IC3<br />
与 此 相 似 , 但 缺 少 特 殊 事 件 触 发 器 功 能 或 附 加 的 速 度 测<br />
量 逻 辑 电 路 。 图 16-3 中 显 示 了 有 代 表 性 的 框 图 。 请 注<br />
意 时 基 是 Timer5。<br />
图 16-2: IC1 输 入 捕 捉 框 图<br />
CAP1 引 脚<br />
噪 声<br />
滤 波 器<br />
预 分 频 器<br />
1, 4, 16<br />
与<br />
模 式<br />
选 择<br />
CAP1BUF/VELR (1)<br />
时 钟<br />
3<br />
FLTCK<br />
4<br />
CAP1M<br />
Q 时 钟<br />
IC1IF<br />
IC1_TR<br />
TMR5<br />
复 位<br />
velcap (2)<br />
1<br />
MUX<br />
0<br />
VELM<br />
时 钟 /<br />
复 位 /<br />
中 断<br />
解 码<br />
逻 辑 电 路<br />
CAP1BUF_clk<br />
第 一 个 事 件<br />
复 位<br />
特 殊<br />
事 件<br />
复 位<br />
Timer5 逻 辑 电 路<br />
定 时 器<br />
复 位<br />
控 制<br />
复 位<br />
控 制<br />
Timer5 复 位<br />
Q 时 钟<br />
CAP1M<br />
CAPXREN<br />
注 1: 当 QEI 模 式 有 效 时 , CAP1BUF 寄 存 器 会 被 重 新 配 置 为 VELR 寄 存 器 。<br />
2: QEI 模 式 产 生 的 速 度 脉 冲 是 vel_out, 减 小 对 其 采 样 可 以 产 生 此 速 度 捕 捉 信 号 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 161 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-3:<br />
IC2 和 IC3 的 输 入 捕 捉 框 图<br />
CAP2/CAP3 引 脚<br />
CAPxBUF (1,2,3)<br />
捕 捉<br />
时 钟<br />
噪 声<br />
滤 波 器<br />
3<br />
FLTCK<br />
预 分 频 器<br />
1, 4, 16<br />
4<br />
CAPxM (1)<br />
和<br />
模 式<br />
选 择<br />
Q<br />
TMR5<br />
使 能<br />
TMR5<br />
ICxIF (1)<br />
捕 捉 时 钟 /<br />
复 位 /<br />
中 断<br />
解 码<br />
逻 辑 电 路<br />
CAPxBUF_clk (1)<br />
复 位<br />
定 时 器<br />
复 位<br />
控 制<br />
TMR5 复 位<br />
Q 时 钟 CAPxM (1)<br />
CAPXREN (2)<br />
注 1: IC2 和 IC3 被 表 示 为 x=2 和 3。<br />
2: 当 QEI 模 式 有 效 时 , CAP2BUF 作 为 POSCNT 被 使 能 。<br />
3: 当 QEI 模 式 有 效 时 , CAP3BUF 作 为 MAXCNT 被 使 能 。<br />
DS39616B_CN 第 162 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
3 条 输 入 捕 捉 通 道 由 输 入 捕 捉 控 制 寄 存 器 CAP1CON、<br />
CAP2CON 和 CAP3CON 控 制 。 每 条 通 道 都 由 其 专 用 寄<br />
存 器 独 立 配 置 。 除 了 特 殊 事 件 触 发 器 ( 参 见 第 16.1.8 节<br />
“ 特 殊 事 件 触 发 ( 仅 适 用 于 CAP1)”) 外 , 其 他 寄 存 器<br />
的 实 现 都 是 相 同 的 。 寄 存 器 16-1 所 示 为 典 型 的 捕 捉 控<br />
制 寄 存 器 。<br />
寄 存 器 16-1:<br />
CAPxCON: 输 入 捕 捉 控 制 寄 存 器<br />
U-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- CAPxREN - - CAPxM3 CAPxM2 CAPxM1 CAPxM0<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 CAPxREN: 时 基 复 位 使 能 位<br />
1 = 使 能<br />
0 = 在 捕 捉 时 禁 止 所 选 时 基 复 位<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4 未 实 现 位 : 读 作 0<br />
bit 3-0 CAPxM3:CAPxM0: 输 入 捕 捉 1 (ICx) 模 式 选 择 位<br />
(1)<br />
1111 = 特 殊 事 件 触 发 模 式 。 触 发 发 生 在 CAP1 输 入 引 脚 的 每 个 上 升 沿<br />
(1)<br />
1110 = 特 殊 事 件 触 发 模 式 。 触 发 发 生 在 CAP1 输 入 引 脚 的 每 个 下 降 沿<br />
1101 = 未 使 用<br />
1100 = 未 使 用<br />
1011 = 未 使 用<br />
1010 = 未 使 用<br />
1001 = 未 使 用<br />
1000 = 在 每 次 CAPx 输 入 状 态 改 变 时 捕 捉<br />
0111 = 脉 宽 测 量 模 式 , 每 个 上 升 沿 到 下 降 沿<br />
0110 = 脉 宽 测 量 模 式 , 每 个 下 降 沿 到 上 升 沿<br />
0101 = 频 率 测 量 模 式 , 每 个 上 升 沿<br />
0100 = 捕 捉 模 式 , 每 16 个 上 升 沿<br />
0011 = 捕 捉 模 式 , 每 4 个 上 升 沿<br />
0010 = 捕 捉 模 式 , 每 个 上 升 沿<br />
0001 = 捕 捉 模 式 , 每 个 下 降 沿<br />
0000 = 输 入 捕 捉 1 (ICx) 关 闭<br />
注 1: 特 殊 事 件 触 发 器 仅 在 CAP1 引 脚 上 有 效 。 CAP2 和 CAP3 不 使 用 此 配 置 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
注 :<br />
在 本 章 中 , 在 提 到 可 能 与 具 体 捕 捉 模 式 有<br />
关 的 寄 存 器 和 位 名 称 , 会 使 用 “x” 代 替 通<br />
道 编 号 表 示 一 般 的 寄 存 器 和 位 。 例 如 ,<br />
“CAPxREN” 指 CAP1CON、 CAP2CON<br />
或 CAP3CON 中 的 捕 捉 复 位 使 能 位 。<br />
处 于 计 数 器 模 式 时 , 计 数 器 只 能 配 置 为 同 步 计 数 器<br />
(TMR5SYNC = 0)。 当 配 置 为 异 步 模 式 时 ,IC 模 块 将<br />
不 会 正 常 工 作 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 163 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注<br />
1: 当 禁 止 输 入 捕 捉 模 块 (CAPxM=0000)<br />
时 , 输 入 捕 捉 预 分 频 器 会 复 位 ( 清 零 )。<br />
2: 如 果 没 有 首 先 禁 止 此 模 块 , 输 入 捕 捉 模 式<br />
便 发 生 改 变 进 入 新 输 入 捕 捉 模 式 , 可 能 会<br />
产 生 错 误 的 中 断 ( 或 IC1 上 出 现 特 殊 事 件<br />
触 发 )。 用 户 应 该 (1) 在 进 入 另 一 个 模 式 前<br />
禁 止 输 入 捕 捉 或 (2) 禁 止 IC 中 断 以 免 在 IC<br />
模 式 改 变 期 间 产 生 错 误 中 断 。<br />
3: 在 IC 模 式 改 变 期 间 , 预 分 频 计 数 器 不 会 清<br />
零 , 因 此 在 新 IC 模 式 下 的 第 一 个 捕 捉 结 果<br />
可 能 来 自 非 零 预 分 频 器 。<br />
16.1.1 边 沿 捕 捉 模 式<br />
在 此 模 式 中 , 会 在 每 个 上 升 沿 、 每 个 下 降 沿 、 每 4 个 上<br />
升 沿 或 每 16 个 上 升 沿 捕 捉 时 基 的 值 。 通 过 同 步 锁 存 器<br />
对 输 入 捕 捉 引 脚 (CAP1、 CAP2 和 CAP3) 上 的 信 号<br />
沿 进 行 采 样 。 此 信 号 用 于 在 随 后 的 Q1 时 钟 周 期 载 入 输<br />
入 捕 捉 缓 冲 器 (ICxBUF 寄 存 器 )( 参 见 图 16-4)。 结<br />
果 , Timer5 可 能 会 复 位 为 0 (Q1 紧 接 着 捕 捉 事 件 ) 或<br />
保 持 自 由 运 行 ( 由 CAPxCON 寄 存 器 中 的 捕 捉 复 位 使<br />
能 位 CAPxREN 决 定 )。<br />
注 : 在 设 置 输 入 捕 捉 模 式 ( 即 MOVWF<br />
CAP1CON) 后 的 第 一 个 捕 捉 边 沿 , Timer5<br />
的 内 容 总 是 会 被 捕 捉 到 相 应 的 输 入 捕 捉 缓<br />
冲 器 ( 即 CAPxBUF)。 Timer5 也 可 以 复<br />
位 , 但 是 这 取 决 于 捕 捉 复 位 使 能 位<br />
(CAPxREN) 的 设 置 状 态 , 参 见 图 16-4。<br />
图 16-4:<br />
边 沿 捕 捉 模 式 时 序<br />
Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3 Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3 Q4<br />
Osc<br />
TMR5 (1)<br />
0012 0013 0014 0015<br />
0000 0001 0002 0000 0001 0002<br />
CAP1 引 脚 (2)<br />
CAP1BUF (3) ABCD 0016<br />
0003<br />
0002<br />
TMR5 复 位 (4)<br />
( 注 5)<br />
指 令<br />
执 行<br />
MOVWF CAP1CON<br />
BCF CAP1CON, CAP1REN<br />
注 1: TMR5 是 输 入 捕 捉 的 同 步 时 基 输 入 ( 预 分 频 比 为 1:1)。 它 在 Q1 的 上 升 沿 递 增 。<br />
2: IC1 配 置 为 边 沿 捕 捉 模 式 (CAP1M3:CAP1M0 = 0010), 并 且 在 边 沿 捕 捉 时 复 位 时 基 (CAP1REN=1) 且 没 有 噪 声 滤<br />
波 器 。<br />
3: TMR5 值 由 CAP1BUF 在 TCY 锁 存 。 如 果 对 TMR5 的 写 操 作 与 输 入 捕 捉 事 件 同 时 发 生 , 写 操 作 总 是 会 优 先 执 行 。 当 发 生<br />
捕 捉 事 件 时 ( 何 时 发 生 复 位 , 请 参 见 注 4) , 在 下 一 个 TCY 时 钟 沿 用 增 加 后 的 时 基 值 来 更 新 所 有 输 入 捕 捉 缓 冲 器 :<br />
CAP1BUF、 CAP2BUF 和 CAP3BUF。<br />
4: TMR5 复 位 对 于 TMR5 通 常 是 一 个 异 步 复 位 信 号 。 当 配 合 输 入 捕 捉 使 用 时 , 它 会 在 捕 捉 到 时 基 值 后 随 即 有 效 。<br />
5: 将 CAP1REN 位 清 零 ( 例 如 BCF CAP1CON, CAP1REN) 会 禁 止 TMR5 复 位 脉 冲 。<br />
DS39616B_CN 第 164 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.1.2 周 期 测 量 模 式<br />
将 CAPxM3:CAPxM0 设 置 为 0101 可 以 选 择 周 期 测 量<br />
模 式 。 在 此 模 式 下 ,Timer5 的 值 在 输 入 捕 捉 触 发 信 号 的<br />
上 升 沿 锁 存 到 CAPxBUF 寄 存 器 , 然 后 Timer5 会 在 下<br />
一 个 TCY 复 位 为 0000h( 或 者 也 可 通 过 将 CAPxREN 置<br />
位 为 1)( 参 见 图 16-4 中 的 捕 捉 和 复 位 关 系 )。<br />
16.1.3 脉 宽 测 量 模 式<br />
可 将 脉 宽 测 量 模 式 配 置 为 两 种 不 同 的 边 沿 序 列 , 这 样 脉<br />
宽 可 以 基 于 CAPx 输 入 引 脚 的 下 降 沿 到 上 升 沿<br />
(CAPxM3:CAPxM0=0110), 也 可 以 基 于 上 升 到 下 降<br />
沿 (CAPxM3:CAPxM0=0111)。<br />
当 开 始 第 一 次 测 量 时 , Timer5 总 是 会 在 边 沿 复 位 。 例<br />
如 , 当 测 量 基 于 下 降 到 上 升 沿 时 ,Timer5 首 先 会 在 下 降<br />
沿 复 位 , 然 后 在 上 升 沿 捕 捉 到 定 时 器 值 。 当 进 入 脉 宽 测<br />
量 模 式 时 , 总 是 能 捕 捉 到 CAPx 引 脚 上 的 第 一 个 边 信 号<br />
沿 。TMR5 值 在 第 一 个 有 效 信 号 沿 复 位 ( 参 见 图 16-5)。<br />
图 16-5:<br />
脉 宽 测 量 模 式 时 序<br />
Q1Q2 Q3Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3Q4 Q1Q2Q3 Q4 Q1Q2Q3 Q4<br />
TMR5 (1)<br />
0012 0013 0014 0015<br />
0000 0001 0002 0000 0001 0002<br />
CAP1 引 脚 (2)<br />
CAP1BUF (3) 0015<br />
0001<br />
0002<br />
TMR5 复 位 (4.5)<br />
指 令<br />
执 行 (2)<br />
MOVWF CAP1CON<br />
注 1: TMR5 是 输 入 捕 捉 的 同 步 时 基 输 入 ( 预 分 频 比 为 1:1)。 它 在 每 个 Q1 的 上 升 沿 递 增 。<br />
2: IC1 配 置 为 脉 宽 测 量 模 式 (CAP1M3:CAP1M0=0111, 上 升 到 下 降 测 量 脉 宽 )。 在 CAP1 输 入 引 脚 上 没 有 使 用 噪 声 滤<br />
波 器 。 当 W=0111 时 , MOVWF 指 令 会 载 入 CAP1CON。<br />
3: TMR5 值 由 CAP1BUF 在 TCY 的 上 升 沿 锁 存 。 如 果 对 TMR5 的 写 操 作 与 输 入 捕 捉 事 件 同 时 发 生 , 写 操 作 总 是 会 优 先 执<br />
行 。 当 发 生 捕 捉 事 件 时 ( 何 时 发 生 复 位 , 请 参 见 注 4), 在 下 一 个 TCY 时 钟 沿 用 增 加 后 的 时 基 值 来 更 新 所 有 输 入 捕 捉 缓<br />
冲 器 :CAP1BUF、 CAP2BUF 和 CAP3BUF。<br />
4: TMR5 复 位 对 于 TMR5 通 常 是 一 个 异 步 复 位 信 号 。 当 在 脉 宽 测 量 模 式 使 用 时 , 它 总 是 出 现 在 首 先 开 始 脉 宽 测 量 的 时 钟<br />
沿 ( 也 就 是 说 , 当 配 置 为 上 升 到 下 降 脉 宽 测 量 模 式 时 , 它 会 在 每 个 检 测 到 的 上 升 沿 有 效 ; 处 于 下 降 到 上 升 沿 脉 宽 测 量<br />
模 式 时 , 它 会 在 每 个 检 测 到 的 下 降 沿 有 效 )。<br />
5: TMR5 复 位 脉 冲 在 捕 捉 边 沿 激 活 。 CAP1REN 位 在 此 模 式 中 没 有 意 义 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 165 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.1.3.1 脉 宽 测 量 时 序<br />
只 有 CAPx 输 入 引 脚 上 出 现 的 高 低 脉 宽 超 过 一 个 TCY 时<br />
钟 周 期 时 , 才 可 能 保 证 脉 宽 测 量 的 精 度 。 此 局 限 性 因 所<br />
选 的 模 式 而 异 。<br />
• 当 CAPxM3:CAPxM0=0110 时 ( 上 升 到 下 降 沿 延<br />
迟 ), CAPx 输 入 的 高 脉 宽 (TccH) 必 须 大 于<br />
TCY+10 ns。<br />
• 当 CAPxM3:CAPxM0=0111 时 ( 下 降 到 上 升 沿 延<br />
迟 ), CAPx 输 入 的 低 脉 宽 (TccL) 必 须 大 于<br />
TCY+10 ns。<br />
16.1.4 状 态 变 化 时 的 输 入 捕 捉<br />
当 CAPxM3:CAPxM0=1000 时 , 会 在 CAPx 输 入 的 每<br />
次 信 号 改 变 时 捕 捉 此 值 。 如 果 所 有 3 个 捕 捉 通 道 都 配 置<br />
为 此 模 式 , 这 种 3 输 入 捕 捉 可 作 为 霍 尔 效 应 传 感 器 状 态<br />
变 换 检 测 器 使 用 。 可 以 捕 获 Timer5 的 值 , Timer5 复 位<br />
并 产 生 中 断 。 CAP1、 CAP2 或 CAP3 的 任 何 变 化 都 会<br />
被 检 测 , 同 时 会 捕 捉 相 关 的 时 基 计 数 。<br />
对 于 该 模 式 下 的 位 置 和 速 度 测 量 , 可 以 选 择 复 位 定 时 器<br />
( 有 关 复 位 选 项 , 请 参 见 第 16.1.6 节 “Timer5 复 位 ”)。<br />
注<br />
1: 周 期 测 量 模 式 会 在 采 样 输 入 捕 捉 的 第 2 个<br />
上 升 沿 时 产 生 有 效 结 果 。 在 初 始 化 后 的 第<br />
一 个 有 效 沿 期 间 锁 存 的 CAPxBUF 值 无<br />
效 。<br />
2: 脉 宽 测 量 模 式 将 会 在 输 入 捕 捉 采 样 第 一 个<br />
输 入 信 号 沿 时 锁 存 定 时 器 值 。<br />
图 16-6: 状 态 变 化 时 的 输 入 捕 捉 ( 霍 尔 效 应 传 感 器 模 式 )<br />
状 态 1<br />
状 态 2<br />
状 态 3<br />
状 态 4<br />
状 态 5<br />
状 态 6<br />
CAP1<br />
CAP2<br />
1<br />
0<br />
1<br />
0<br />
1<br />
1<br />
0<br />
1<br />
0<br />
1<br />
0<br />
0<br />
CAP3<br />
(1) 时 基<br />
0FFFh<br />
0000h<br />
1<br />
0<br />
0<br />
0<br />
1<br />
1<br />
CAP1BUF (2)<br />
CAP2BUF (2)<br />
CAP3BUF (2)<br />
时 基 复 位 (1)<br />
注 1: TMR5 可 以 选 择 作 为 输 入 捕 捉 的 时 基 。 当 捕 捉 复 位 使 能 位 置 位 时 (CAPXREN=1) 也 可 以 选 择 将 该 时 基 复 位 。<br />
2: 具 体 的 CAPxBUF 事 件 时 序 ( 所 有 模 式 都 反 映 了 相 同 捕 捉 和 复 位 时 序 ) 如 图 16-4 所 示 。 本 图 中 显 示 了 6 个 换 相 BLDC<br />
霍 尔 效 应 传 感 器 状 态 。 其 余 两 个 状 态 ( 即 000h 和 111h) 在 正 常 工 作 状 态 下 无 效 。 在 BLDC 电 机 应 用 中 , 它 们 仍 然 由<br />
CPU 固 件 进 行 解 码 。<br />
DS39616B_CN 第 166 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.1.5 进 入 输 入 捕 捉 模 式 和 捕 捉 时 序<br />
以 下 为 进 入 任 何 输 入 捕 捉 模 式 时 的 有 效 操 作 概 述 :<br />
1. 通 过 设 置 模 式 选 择 位 (CAPxM3:CAPxM0) 将 模<br />
块 配 置 为 某 一 个 捕 捉 模 式 后 , 首 先 检 测 到 的 信 号<br />
沿 会 捕 捉 Timer5 的 值 并 将 其 保 存 在 CAPxBUF 寄<br />
存 器 。 然 后 定 时 器 复 位 ( 视 CAPxREN 位 的 设 置<br />
而 定 ) 并 根 据 设 置 情 况 开 始 递 增 , 参 见 图 16-4、<br />
图 16-5 和 图 16-6。<br />
2. 在 所 有 的 边 沿 , 捕 捉 逻 辑 电 路 会 执 行 以 下 操 作 ;<br />
a) 解 码 输 入 捕 捉 模 式 并 确 定 有 效 沿 。<br />
b) 检 查 CAPxREN 位 以 确 定 Timer5 是 否 复 位 。<br />
c) 在 每 个 有 效 沿 上 , 将 Timer5 的 值 记 录 在 输<br />
入 捕 捉 缓 冲 器 (CAPxBUF) 中 。<br />
d) 当 使 能 了 CAPxREN 位 时 , 在 捕 捉 到 Timer5<br />
的 值 后 复 位 该 定 时 器 。 这 种 情 况 下 ,Timer5<br />
在 每 个 有 效 捕 捉 沿 复 位 。<br />
e) 所 有 后 续 的 捕 捉 沿 事 件 将 重 复 步 骤 a 到 d,<br />
直 到 由 用 户 固 件 、POR 或 BOR 终 止 此 工 作<br />
模 式 。<br />
f) 当 在 各 种 输 入 捕 捉 模 式 之 间 切 换 时 , 定 时 器<br />
值 不 受 影 响 。<br />
16.1.6 TIMER5 复 位<br />
每 个 输 入 捕 捉 触 发 器 能 够 可 选 地 复 位 TMR5。 捕 捉 复 位<br />
使 能 位 CAPxREN 使 用 此 使 能 复 位 信 号 使 能 或 禁 止 自 动<br />
复 位 捕 捉 事 件 的 时 基 。 当 CAPxREN 置 位 时 , 所 有 捕 捉<br />
事 件 都 会 使 所 选 定 时 器 复 位 。 如 果 CAPxREN 清 零 , 则<br />
禁 止 复 位 ( 参 见 图 16-4、 图 16-5 和 图 16-6)。<br />
注 : CAPxREN 位 在 脉 宽 测 量 模 式 中 不 起 作 用 。<br />
16.1.7 IC 中 断<br />
IC 模 块 可 以 在 四 种 工 作 模 式 下 产 生 中 断 并 将 其 中 一 个 中<br />
断 捕 捉 标 志 位 (IC1IF、 IC2QEIF 或 IC3DRIF) 置 位 。<br />
中 断 标 志 位 是 否 置 位 取 决 于 事 件 发 生 的 通 道 。 这 四 种 模<br />
式 为 :<br />
• 边 沿 捕 捉 (CAPxM3:CAPxM0=0001、 0010、<br />
0011 或 0100)<br />
• 周 期 测 量 事 件 (CAPxM3:CAPxM0=0101)<br />
• 脉 宽 测 量 事 件 (CAPxM3:CAPxM0=0110 或<br />
0111)<br />
• 状 态 改 变 事 件 (CAPxM3:CAPxM0=1000)<br />
注 : 只 有 在 特 殊 事 件 触 发 模 式 下 才 会 在 CAP1<br />
输 入 (CAP1M2:CAP1M0>=1110 和<br />
1111) 上 发 生 特 殊 事 件 触 发 。 在 此 模 式 中<br />
不 会 置 位 IC1IF 中 断 标 志 位 。<br />
图 16-7 显 示 了 中 断 和 特 殊 触 发 事 件 的 时 序 。 在 Q2 周 期<br />
的 上 升 沿 检 测 任 意 有 效 沿 , 并 在 Q4 周 期 的 上 升 沿 进 行<br />
传 播 。 如 果 有 效 沿 正 好 发 生 在 此 时 间 以 后 ( 例 如 在 Q2<br />
的 下 降 沿 ), 则 它 要 在 下 一 个 Q2 上 升 沿 才 能 被 识 别 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 167 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-7:<br />
CAPxIF 中 断 和 IC1 特 殊 事 件 触 发 器<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
Osc<br />
CAP1 引 脚<br />
IC1IF<br />
TMR5 复 位<br />
TMR5<br />
XXXX 0000 0001<br />
TMR5ON (1)<br />
注<br />
1: 只 有 使 能 了 Timer5 复 位 输 入 的 特 殊 事 件 复 位 触 发 时 ,Timer5 才 会 复 位 并 使 能 ( 假 定 :TMR5ON=0 且 TMR5MOD=1)。<br />
TMR5ON 位 置 位 和 Timer5 复 位 发 生 在 事 件 捕 捉 后 的 Q1 上 升 沿 。 禁 止 了 特 殊 事 件 复 位 触 发 后 , CAP1 输 入 引 脚 上 的 特<br />
殊 事 件 复 位 触 发 无 法 复 位 Timer5。 为 了 使 特 殊 事 件 复 位 触 发 像 Timer5 复 位 触 发 那 样 工 作 , IC1 必 须 配 置 为 特 殊 事 件 触<br />
发 模 式 (CAP1M=1110 或 1111)。<br />
16.1.8 特 殊 事 件 触 发 ( 仅 适 用 于 CAP1)<br />
IC1 的 特 殊 事 件 触 发 模 式 (CAP1M3:CAP1M0=1110 或<br />
1111) 会 使 能 特 殊 事 件 触 发 信 号 。 触 发 信 号 可 以 作 为<br />
TMR5 的 特 殊 事 件 复 位 输 入 信 号 , 当 IC1 上 发 生 特 定 事<br />
件 时 将 TMR5 定 时 器 复 位 。 表 16-2 概 括 了 这 些 事 件 。<br />
表 16-2:<br />
特 殊 事 件 触 发 器<br />
CAP1M3:<br />
CAP1M0<br />
描 述<br />
1110 在 CAP1 输 入 引 脚 的 每 个 下 降 沿 触 发<br />
1111 在 CAP1 输 入 引 脚 的 每 个 下 降 沿 触 发<br />
16.1.10 其 他 工 作 模 式<br />
虽 然 IC 和 QEI 子 模 块 是 互 斥 的 , 但 仍 然 可 重 新 配 置 IC,<br />
使 其 同 QEI 模 块 一 起 工 作 以 执 行 特 定 功 能 。 实 际 上 ,QEI<br />
会 “ 借 用 ” IC 的 硬 件 资 源 来 执 行 这 些 操 作 。<br />
QEI 使 用 IC1 通 道 中 的 专 用 硬 件 进 行 速 度 测 量 。<br />
CAP1BUF 寄 存 器 被 重 新 映 射 为 VREG 寄 存 器 。 其 工 作<br />
原 理 和 用 法 请 参 见 第 16.2.6 节 “ 速 度 测 量 ”。<br />
在 QEI 模 式 下 ,IC2 和 IC3 通 道 的 CAP2BUF 和 CAP3BUF<br />
寄 存 器 用 于 位 置 测 定 。 它 们 也 分 别 被 重 新 映 射 为<br />
POSCNT 和 MAXCNT 缓 冲 寄 存 器 。<br />
16.1.9 工 作 模 式 概 要<br />
表 16-3 给 出 与 TMR5 定 时 器 资 源 配 合 使 用 时 的 输 入 捕<br />
捉 配 置 概 要 。<br />
DS39616B_CN 第 168 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 16-3:<br />
输 入 捕 捉 时 基 复 位 概 要<br />
引 脚 CAPxM 模 式 定 时 器<br />
捕 捉 复 位<br />
定 时 器<br />
描 述<br />
CAP1 0001-0100 边 沿 捕 捉 TMR5 (1)<br />
可 选 简 单 边 沿 捕 捉 模 式 ( 包 括 一 个 可 选 的 预 分 频<br />
器 )<br />
0101 周 期 测 量 TMR5 (1)<br />
可 选 在 周 期 边 沿 捕 捉 Timer5<br />
0110-0111 脉 宽 测 量 TMR5 总 是 在 脉 冲 边 沿 捕 捉 Timer5<br />
1000 状 态 改 变 时 的 输 入 捕 TMR5 (1)<br />
可 选 状 态 改 变 时 捕 捉 Timer5<br />
捉<br />
1110-1111 特 殊 事 件 触 发 ( 上 升<br />
沿 或 下 降 沿 )<br />
TMR5 (2)<br />
可 选 作 为 特 殊 事 件 触 发 , 用 于 与 Timer5 或 其 他<br />
外 设 模 块 一 起 使 用<br />
CAP2 0001-0100 边 沿 捕 捉 TMR5 (1)<br />
可 选 简 单 边 沿 捕 捉 模 式 ( 包 括 一 个 可 选 的 预 分 频<br />
器 )<br />
0101 周 期 测 量 TMR5 (1)<br />
可 选 在 周 期 边 沿 捕 捉 Timer5<br />
0110-0111 脉 宽 测 量 TMR5 总 是 在 脉 冲 边 沿 捕 捉 Timer5<br />
1000 状 态 改 变 时 的 输 入 捕 TMR5 (1)<br />
可 选 状 态 改 变 时 捕 捉 Timer5<br />
捉<br />
CAP3 0001-0100 边 沿 捕 捉 TMR5 (1)<br />
可 选 简 单 边 沿 捕 捉 模 式 ( 包 括 一 个 可 选 的 预 分 频<br />
器 )<br />
0101 周 期 测 量 TMR5 (1)<br />
可 选 在 周 期 边 沿 捕 捉 Timer5<br />
0110-0111 脉 宽 测 量 TMR5 总 是 在 脉 冲 边 沿 捕 捉 Timer5<br />
1000 状 态 改 变 时 的 输 入 捕 TMR5 (1)<br />
可 选 状 态 改 变 时 捕 捉 Timer5<br />
捉<br />
注 1: 仅 当 CAPxRE=1 时 , 在 发 生 捕 捉 事 件 时 Timer5 才 能 被 复 位 。<br />
2: 除 非 在 T5CON 寄 存 器 中 RESEN=0, 否 则 触 发 模 式 不 会 将 Timer5 复 位 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 169 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.2 正 交 编 码 器 接 口<br />
正 交 编 码 器 接 口 (QEI) 解 码 速 度 和 运 动 传 感 器 信 息 。<br />
它 可 以 在 任 何 将 正 交 编 码 器 用 于 反 馈 的 应 用 中 使 用 。 此<br />
接 口 实 现 了 以 下 功 能 :<br />
• 三 种 QEI 输 入 信 号 : 两 个 相 位 信 号 (QEA 和<br />
QEB) 和 一 个 索 引 信 号 (INDX)<br />
• 移 动 方 向 检 测 , 带 方 向 变 化 中 断 (IC3DRIF)<br />
• 16 位 递 增 / 递 减 位 置 计 数 器<br />
• 标 准 高 精 度 位 置 记 录 模 式<br />
• 两 个 位 置 刷 新 模 式 (x2 和 x4)<br />
• 速 度 测 量 , 带 有 用 于 高 速 速 度 测 量 的 可 编 程 后 分 频<br />
器<br />
• 位 置 计 数 器 中 断 (PIR3 寄 存 器 的 IC2QEIF)<br />
• 速 度 控 制 中 断 (PIR3 寄 存 器 的 IC1IF)<br />
QEI 子 模 块 有 三 个 主 要 部 分 :QEI 控 制 逻 辑 电 路 、 位 置<br />
计 数 器 和 速 度 后 分 频 器 。<br />
QEI 控 制 逻 辑 电 路 检 测 QEA 或 QEB 相 输 入 引 脚 的 前<br />
沿 , 产 生 计 数 脉 冲 , 然 后 发 送 到 位 置 计 数 器 逻 辑 电 路 。<br />
它 还 对 索 引 输 入 信 号 (INDX) 进 行 采 样 , 并 产 生 转 动<br />
方 向 信 号 ( 正 向 / 反 向 ) 和 速 度 事 件 信 号 。<br />
位 置 计 数 器 则 作 为 积 分 器 , 用 来 记 录 所 经 过 的 距 离 。<br />
QEA 和 QEB 输 入 边 沿 作 为 激 励 源 产 生 输 入 时 钟 , 此 时<br />
钟 信 号 使 位 置 计 数 器 寄 存 器 (POSCNT) 递 增 。 此 寄 存<br />
器 是 在 QEA 输 入 沿 还 是 QEA 和 QEB 输 入 沿 递 增 , 这<br />
取 决 于 工 作 模 式 。 如 果 与 周 期 寄 存 器 MAXCNT 匹 配 或<br />
因 为 外 部 索 引 脉 冲 输 入 信 号 (INDX) 产 生 计 满 回 零 ,<br />
该 寄 存 器 复 位 。 如 果 允 许 位 置 计 数 器 中 断 , 当 POSCNT<br />
复 位 时 会 产 生 一 个 中 断 。<br />
速 度 后 分 频 器 减 少 对 速 度 脉 冲 ( 此 脉 冲 信 号 按 指 定 比 例<br />
递 增 速 度 计 数 器 ) 的 采 样 。 它 实 际 上 是 将 速 度 脉 冲 的 数<br />
量 分 成 一 定 数 量 的 输 入 为 一 个 输 出 , 以 便 在 过 程 中 保 留<br />
脉 宽 。<br />
图 16-8 所 示 为 QEI 模 块 的 简 化 框 图 。<br />
图 16-8:<br />
QEI 框 图<br />
QEI 模 块<br />
数 据 总 线<br />
方 向 改 变<br />
定 时 器 复 位<br />
CHGIF 置 位<br />
Timer5 复 位<br />
速 度 捕 捉<br />
速 度 事 件 后 分 频 器 8<br />
设 置 UP/DOWN<br />
CAP3/QEB<br />
滤 波 器<br />
QEB<br />
QEA<br />
INDX<br />
方 向 8<br />
时 钟<br />
POSCNT/CAP2BUF<br />
匹 配 时 复 位<br />
滤 波 器<br />
比 较 器<br />
IC2QEIF 置 位<br />
CAP2/QEA<br />
CAP1/INDX<br />
滤 波 器<br />
QEI<br />
控 制<br />
逻 辑<br />
电 路<br />
MAXCNT/CAP3BUF<br />
位 置 计 数 器<br />
8<br />
8<br />
8<br />
DS39616B_CN 第 170 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.2.1 QEI 配 置<br />
QEI 模 块 与 输 入 捕 捉 模 块 共 用 其 输 入 引 脚 。 输 入 信 号 是<br />
互 斥 的 , 每 次 只 能 使 能 IC 模 块 或 QEI 模 块 中 的 一 个 。<br />
同 样 , 因 为 IC 和 QEI 复 用 到 同 样 的 输 入 引 脚 , 所 有 可<br />
编 程 噪 声 滤 波 器 只 能 由 一 个 模 块 专 用 。<br />
QEI 的 工 作 模 式 由 QEICON 配 置 寄 存 器 控 制 。 参 见 寄 存<br />
器 16-2。<br />
注 :<br />
如 果 同 时 使 能 QEI 和 IC, 则 QEI 具 有 优 先<br />
权 , IC 将 保 持 禁 止 。<br />
寄 存 器 16-2:<br />
QEICON: 正 交 编 码 器 接 口 控 制 寄 存 器<br />
R/W-0 R/W-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
VELM ERROR UP/DOWN QEIM2 QEIM1 QEIM0 PDEC1 PDEC0<br />
bit 7 bit 0<br />
bit 7 VELM: 速 度 模 式 位<br />
1 = 禁 止 速 度 模 式<br />
0 = 使 能 速 度 模 式<br />
bit 6<br />
(1)<br />
ERROR:QEI 错 误 位<br />
1 = 位 置 计 数 器 (4) 上 溢 或 下 溢<br />
0 = 没 有 上 溢 或 下 溢<br />
bit 5 UP/DOWN: 转 动 方 向 状 态 位 (1)<br />
1 = 正 向<br />
0 = 逆 向<br />
bit 4-2 QEIM2:QEIM0:QEI 模 式 位 (2,3)<br />
bit 1-0<br />
111 = 未 使 用<br />
110 = 使 能 QEI 4x 刷 新 模 式 ; 在 周 期 匹 配 (POSCNT=MAXCNT) 时 将 位 置 计 数 器<br />
复 位<br />
101 = 使 能 QEI 4x 刷 新 模 式 ; INDX 将 位 置 计 数 器 复 位<br />
100 = 未 使 用<br />
010 = 使 能 QEI 2x 刷 新 模 式 ; 在 周 期 匹 配 (POSCNT=MAXCNT) 时 将 位 置 计 数 器<br />
复 位<br />
001 = 使 能 QEI 2x 刷 新 模 式 ; INDX 将 位 置 计 数 器 复 位<br />
000 = 禁 止 QEI<br />
PDEC1:PDEC0: 速 度 脉 冲 降 低 比 例 位<br />
11 =1:64<br />
10 =1:16<br />
01 =1:4<br />
00 =1:1<br />
注 1:QEI 必 须 使 能 并 处 于 索 引 模 式 。<br />
2: 要 使 能 CAP1、CAP2 或 CAP3 输 入 , 必 须 将 QEI 模 式 选 择 位 清 零 (=000)。 如 果 QEI 和 IC<br />
模 块 同 时 使 能 , QEI 具 有 优 先 权 。<br />
3: 使 能 任 何 一 个 QEI 模 式 都 会 将 IC 缓 冲 寄 存 器 CAP1BUFH、 CAP1BUFL、 CAP2BUFH、<br />
CAP2BUFL、 CAP3BUFH 和 CAP3BUFL 分 别 重 新 映 射 为 QEI 的 VREGH、 VREGL、<br />
POSCNTH、 POSCNTL、 MAXCNTH 和 MAXCNTL 寄 存 器 。<br />
4:ERROR 位 必 须 用 软 件 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 171 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.2.2 QEI 模 式<br />
位 置 测 量 分 辨 率 取 决 于 位 置 计 数 器 寄 存 器 POSCNT 递<br />
增 的 频 率 。 有 两 种 QEI 刷 新 模 式 可 测 量 转 子 位 置 :QEI<br />
x2 和 QEI x4。<br />
表 16-4:<br />
QEIM2<br />
QEIM0<br />
模 式 /<br />
复 位<br />
QEI 模 式<br />
16.2.2.1 QEI x2 刷 新 模 式<br />
描 述<br />
000 - 禁 止 QEI (1)<br />
001 x2 刷 新 /<br />
索 引 脉 冲<br />
每 个 QEA 脉 冲 两 个 时 钟 周 期 。<br />
INDX 将 POSCNT 复 位 。<br />
010 x2 刷 新 /<br />
周 期 匹 配<br />
每 个 QEA 脉 冲 两 个 时 钟 周 期 。<br />
周 期 匹 配 (MAXCNT) 将<br />
POSCNT 复 位 。<br />
011 - 未 使 用<br />
100 - 未 使 用<br />
101 x4 刷 新 /<br />
索 引<br />
110 x4 刷 新 /<br />
周 期 匹 配<br />
每 个 QEA 和 QEB 脉 冲 对 四<br />
个 时 钟 周 期 。<br />
INDX 将 POSCNT 复 位 。<br />
每 个 QEA 和 QEB 脉 冲 对 四<br />
个 时 钟 周 期 。<br />
周 期 匹 配 (MAXCNT) 将<br />
POSCNT 复 位 。<br />
111 - 未 使 用<br />
注 1: 禁 止 QEI 模 块 。 在 此 模 式 下 会 完 全 禁 止 位<br />
置 计 数 器 和 速 度 测 量 功 能 。<br />
通 过 将 QEI 模 式 选 择 位 (QEIM2:QEIM0) 置 为 001 或<br />
010 可 选 择 QEI x2 刷 新 模 式 。 在 此 模 式 下 , QEI 逻 辑<br />
电 路 只 会 检 测 QEA 输 入 的 每 个 边 沿 。QEA 信 号 的 每 个<br />
上 升 和 下 降 沿 为 位 置 计 数 器 提 供 时 钟 源 。<br />
即 使 当 POSCNT 寄 存 器 对 与 MAXCNT 相 等<br />
(QEIM2:QEIM0=010) 时 , 位 置 计 数 器 也 可 以 通 过<br />
INDX 引 脚 的 输 入 或 周 期 匹 配 (QEIM2:QEIM0=001)<br />
复 位 。<br />
16.2.2.2 QEI 4x 刷 新 模 式<br />
QEI x4 刷 新 模 式 为 转 子 位 置 提 供 了 更 高 的 分 辨 率 , 因 为<br />
比 起 QEI x2 模 式 而 言 , 计 数 器 对 每 个 QEA/QEB 输 入<br />
脉 冲 对 的 递 增 或 递 减 更 加 频 繁 。 此 模 式 是 通 过 将 QEI 模<br />
式 选 择 位 设 置 为 101 或 110 选 择 的 。 在 QEI x4 模 式<br />
中 , 相 位 测 量 是 在 QEA 和 QEB 输 入 的 上 升 沿 和 下 降 沿<br />
进 行 的 。 每 个 QEA 和 QEB 边 沿 就 为 位 置 计 数 器 提 供 一<br />
个 时 钟 信 号 。<br />
和 QEI x2 模 式 类 似 , 可 以 通 过 引 脚 的 输 入 信 号<br />
(QEIM2:QEIM0=101) 或 周 期 匹 配 事 件<br />
(QEIM2:QEIM0=010) 将 位 置 计 数 器 复 位 。<br />
16.2.3 QEI 工 作 原 理<br />
位 置 计 数 器 寄 存 器 对 (POSCNTH: POSCNTL) 用 作 积<br />
分 器 , 其 值 与 传 感 器 转 子 位 置 ( 对 应 于 所 检 测 到 的 有 效<br />
沿 数 量 ) 成 正 比 。POSCNT 可 以 递 增 也 可 以 递 减 , 这 取<br />
决 于 很 多 由 QEI 逻 辑 电 路 解 码 的 可 选 因 素 。 其 中 包 括 所<br />
选 的 计 数 模 式 、 QEA 与 QEB 的 相 位 关 系 ( 超 前 / 滞<br />
后 )、 转 动 方 向 以 及 是 否 发 生 复 位 事 件 等 。 此 逻 辑 电 路<br />
将 在 后 续 章 节 详 细 讲 述 。<br />
16.2.3.1 边 沿 与 相 位 检 测<br />
在 第 一 步 中 , 检 测 到 了 QEA 和 QEB 的 有 效 边 沿 , 并 确<br />
定 它 们 之 间 的 相 位 关 系 。 位 置 计 数 器 根 据 所 选 QEI 模 式<br />
改 变 。<br />
在 QEI x2 刷 新 模 式 , 位 置 计 数 器 根 据 QEA 和 QEB 信<br />
号 的 相 位 关 系 在 每 个 QEA 边 沿 递 增 或 递 减 。<br />
在 QEI x4 刷 新 模 式 , 位 置 计 数 器 根 据 QEA 和 QEB 信<br />
号 的 相 位 关 系 在 每 个 QEA 和 QEB 边 沿 递 增 或 递 减 。 例<br />
如 , 如 果 QEA 超 前 于 QEB, 位 置 计 数 器 将 加 1 ; 如 果<br />
QEB 滞 后 于 QEA, 则 位 置 计 数 器 减 1。<br />
16.2.3.2 计 数 方 向<br />
QEI 控 制 逻 辑 电 路 会 产 生 一 个 信 号 来 置 位 UP/DOWN<br />
位 (QEICON); 因 此 也 就 决 定 了 计 数 的 方 向 。 当<br />
QEA 超 前 于 QEB 时 , UP/DOWN 位 置 位 (=1), 而<br />
位 置 计 数 器 会 在 每 个 有 效 边 沿 递 增 。 当 QEA 滞 后 于<br />
QEB 时 ,UP/DOWN 位 清 零 , 而 位 置 计 数 器 会 在 每 个<br />
有 效 边 沿 递 减 。<br />
表 16-5:<br />
当 前 检 测 到 的<br />
信 号<br />
转 动 方 向<br />
上 一 个 检 测 到 的 信 号<br />
上 升 下 降<br />
QEA QEB QEA QEB<br />
位 置<br />
(1)<br />
控 制<br />
QEA 上 升 沿 x 递 增<br />
x<br />
递 减<br />
QEA 下 降 沿 x 递 减<br />
x<br />
递 增<br />
QEB 上 升 沿 x 递 增<br />
x<br />
递 减<br />
QEB 下 降 沿 x 递 增<br />
x<br />
递 减<br />
注 1: 当 UP/DOWN=1 时 , 位 置 计 数 器 递 增 ;<br />
当 UP/DOWN=0 时 , 位 置 计 数 器 递 减 。<br />
DS39616B_CN 第 172 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.2.3.3 复 位 和 刷 新 事 件<br />
位 置 计 数 器 会 一 直 递 增 或 递 减 , 直 到 发 生 以 下 事 件 之<br />
一 。 事 件 类 型 和 事 件 发 生 时 的 转 动 方 向 决 定 是 发 生 寄 存<br />
器 复 位 还 是 刷 新 。<br />
1. 在 INDX 输 入 引 脚 检 测 到 了 索 引 脉 冲<br />
(QEIM2:QEIM0=001)。<br />
如 果 编 码 器 正 向 移 动 ,POSCNT 会 在 检 测 到 索 引<br />
标 记 INDX 后 的 下 一 个 时 钟 沿 复 位 (00h)。 检<br />
测 到 INDX 上 升 沿 后 , 位 置 计 数 器 会 在 QEA 或<br />
QEB 边 沿 复 位 。<br />
如 果 编 码 器 反 向 移 动 , 会 在 检 测 到 INDX 下 降 沿<br />
后 的 下 一 个 正 交 脉 冲 边 沿 (QEA 或 QEB) 将<br />
MAXCNT 寄 存 器 中 的 值 装 入 POSCNT。<br />
2. 发 生 了 POSTCNT/MAXCNT 周 期 匹 配<br />
(QEIM2:QEIM0=010)。<br />
如 果 编 码 器 正 向 移 动 , POSCNT 会 在<br />
POSCNT=MAXCNT 后 的 下 一 个 时 钟 边 沿 复 位<br />
(00h)。 复 位 后 , 在 下 一 个 TCY 会 触 发 中 断 事 件<br />
( 参 见 图 16-10)。<br />
如 果 编 码 器 反 向 移 动 且 POSCNT 的 值 成 为 00h,<br />
MAXCNT 寄 存 器 的 内 容 会 在 下 一 个 时 钟 边 沿 装<br />
入 POSCNT。 装 入 操 作 后 , 在 下 一 个 TCY 会 触<br />
发 中 断 事 件 ( 参 见 图 16-10)。<br />
在 QEI 模 式 改 变 或 完 全 禁 止 QEI 时 位 置 计 数 器 的 值 不 受<br />
影 响 。<br />
16.2.4 QEI 中 断<br />
基 于 下 列 事 件 发 生 位 置 计 数 器 中 断 , 将 中 断 标 志 位<br />
(IC2QEIF) 置 位 :<br />
• POSCNT/MAXCNT 周 期 匹 配 事 件<br />
(QEIM2:QEIM0=010 或 110)<br />
• POSCNT 计 满 回 零 (FFFFh 到 0000h), 仅 适 用<br />
于 周 期 模 式 (QEIM2:QEIM0=010 或 110)<br />
• 在 INDX 检 测 到 索 引 脉 冲 。<br />
图 16-10 和 图 16-11 显 示 了 IC2QEIF 的 中 断 时 序 图 。<br />
当 方 向 改 变 时 , 方 向 改 变 中 断 标 志 位 (IC3DRIF) 会 在<br />
下 一 个 TCY 时 钟 周 期 置 位 ( 参 见 图 16-10)。<br />
如 果 位 置 计 数 器 在 索 引 模 式 计 满 回 零 , ERROR 位 会 置<br />
位 。<br />
16.2.5 QEI 采 样 时 序<br />
正 交 输 入 信 号 QEA 和 QEB 的 正 交 频 率 可 能 不 同 。 最 小<br />
正 交 输 入 周 期 TQEI 为 16TCY。<br />
位 置 计 数 频 率 FPOS 与 转 子 的 RPM、 行 计 数 D 和 QEI<br />
刷 新 模 式 (x2 和 x4) 直 接 成 正 比 , 即 :<br />
注 :<br />
F POS<br />
4D ⋅ RPM<br />
= ------------------------<br />
60<br />
位 置 编 码 器 中 递 增 行 的 数 量 通 常 设 置 为<br />
D=1024, 并 且 QEI 刷 新 模 式 =x4。<br />
FCY=10 MIPS 时 , 最 大 位 置 计 数 频 率 ( 即 4x QEI 刷<br />
新 模 式 ,D=1024) 等 同 于 2.5 MHz, 对 应 于 625 kHz<br />
的 FQEI。<br />
图 16-9 显 示 了 当 通 过 噪 声 滤 波 器 采 样 时 ,QEA 和 QEB<br />
正 交 输 入 时 序 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 173 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-9:<br />
当 滤 波 器 采 样 时 ( 分 频 比 =1:1) 的 QEI 输 入<br />
TCY<br />
QEA 引 脚<br />
TQEI=16TCY (1)<br />
QEB 引 脚<br />
QEA 输 入<br />
TGD=3TCY<br />
QEB 输 入<br />
注<br />
1: 此 模 块 的 设 计 允 许 正 交 频 率 最 高 可 达 FQEI=FCY/16。<br />
图 16-10:<br />
周 期 匹 配 时 的 QEI 模 块 复 位 时 序<br />
正 向<br />
逆 向<br />
QEA<br />
QEB<br />
计 数 (+/-)<br />
+1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1<br />
POSCNT (1)<br />
MAXCNT<br />
IC2QEIF<br />
UP/DOWN<br />
位 置<br />
计 数 器 加 载<br />
IC3DRIF<br />
1520<br />
1521<br />
1522<br />
1523<br />
1524<br />
1525<br />
1526<br />
1527<br />
MAXCNT=1527<br />
0000<br />
0001<br />
0002<br />
0003<br />
0004<br />
注 2 注 2<br />
Q4 (3) Q4 (3)<br />
Q1 (4) Q1 (5)<br />
Q1 (5)<br />
0003<br />
0002<br />
0001<br />
0000<br />
1527<br />
1526<br />
1525<br />
1524<br />
1523<br />
1522<br />
1521<br />
1520<br />
1519<br />
1518<br />
1517<br />
1516<br />
1515<br />
1514<br />
注 6<br />
注 1: 图 中 所 示 的 POSCNT 寄 存 器 为 QEI x4 刷 新 模 式 (POSCNT 在 QEA 和 QEB 输 入 信 号 的 每 个 上 升 沿 和 下 降 沿 递 增 )。<br />
异 步 外 部 QEA 和 QEB 输 入 通 过 噪 声 滤 波 器 的 输 入 采 样 FF 与 TCY 时 钟 信 号 同 步 ( 参 见 图 16-14)。<br />
2: 当 POSCNT=MAXCNT 时 ,POSCNT 在 下 一 个 QEA 上 升 沿 复 位 为 0。 当 POSCNT=0( 递 减 时 ),POSCNT 在 下 一<br />
个 QEA 下 降 边 沿 被 设 置 为 MAXCNT。<br />
3: IC2QEI 在 Q4 上 升 沿 产 生 。<br />
4: 当 POSCNT=MAXCNT 时 , 将 0 装 入 位 置 计 数 器 ( 在 此 情 况 下 是 计 满 回 零 事 件 )。<br />
5: 在 下 溢 时 , 将 MAXCNT 的 值 (1527h) 装 入 位 置 计 数 器 。<br />
6: IC2QEIF 必 须 用 软 件 清 零 。<br />
DS39616B_CN 第 174 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-11:<br />
带 索 引 输 入 的 QEI 模 块 复 位 时 序<br />
正 向<br />
( 注 2) ( 注 2)<br />
逆 向<br />
QEA<br />
QEB<br />
计 数 (+/-) +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1<br />
POSCNT (1)<br />
1520<br />
1521<br />
1522<br />
1523<br />
1524<br />
1525<br />
1526<br />
1527<br />
0000<br />
0001<br />
0002<br />
0003<br />
0004<br />
0003<br />
0002<br />
0001<br />
0000<br />
1527<br />
1526<br />
1525<br />
1524<br />
1523<br />
1522<br />
1521<br />
1520<br />
1519<br />
1518<br />
1517<br />
1516<br />
1515<br />
1514<br />
MAXCNT<br />
MAXCNT=1527<br />
INDX<br />
IC2QEIF<br />
( 注 6)<br />
UP/DOWN<br />
Q4 (3) Q4 (3)<br />
位 置<br />
计 数 器 加 载<br />
Q1 (4) Q1 (5)<br />
注 1: 图 中 所 示 的 POSCNT 寄 存 器 为 QEI x4 刷 新 模 式 (POSCNT 在 QEA 和 QEB 输 入 信 号 的 每 个 上 升 沿 和 下 降 沿 递 增 )。<br />
2: 当 检 测 到 INDX 复 位 脉 冲 时 ,POSCNT 在 下 一 个 QEA 或 QEB 边 沿 复 位 为 0。 当 POSCNT=0( 递 减 ) 时 ,POSCNT<br />
在 下 一 个 QEA 或 QEB 边 沿 被 置 为 MAXCNT。 反 向 时 也 会 发 生 类 似 的 复 位 过 程 , 不 同 的 是 INDX 信 号 在 下 降 沿 被 识<br />
别 。 在 下 一 个 QEA 或 QEB 边 沿 产 生 复 位 。<br />
3: IC2QEI 在 一 个 TCY 时 钟 周 期 内 使 能 。<br />
4: 当 INDX 为 高 电 平 时 , 会 在 下 一 个 QEA 或 QEB 边 沿 将 “0000h” 加 载 到 位 置 计 数 器 ( 即 复 位 )。<br />
5: 在 检 测 到 INDX 下 降 沿 输 入 信 号 后 的 下 一 个 QEA 或 QEB 边 沿 , 会 将 MAXCNT 的 值 ( 例 如 1527h) 装 入 位 置 计 数 器 。<br />
6: IC2QEIF 必 须 用 软 件 清 零 。<br />
16.2.6 速 度 测 量<br />
速 度 脉 冲 发 生 器 配 合 IC1 和 同 步 TMR5( 同 步 工 作 模 式<br />
下 ) 共 同 为 高 速 和 低 速 运 行 的 机 械 电 机 提 供 了 一 种 高 精<br />
度 的 速 度 测 量 方 法 。 当 VELM 位 为 零 (=0) 且 QEI 置<br />
于 某 个 工 作 模 式 ( 参 见 表 16-6) 时 , 使 能 速 度 模 式 。<br />
要 优 化 寄 存 器 空 间 , 输 入 捕 捉 通 道 1 (IC1) 用 于 捕 捉<br />
TMR5 计 数 器 的 值 。 输 入 捕 捉 缓 冲 寄 存 器 CAP1BUF 被<br />
重 新 定 义 为 在 速 度 测 量 模 式 (VELM = 0) 下 作 为 速 度<br />
寄 存 器 缓 冲 器 (VREGH, VREGL)。<br />
表 16-6:<br />
QEIM<br />
001<br />
010<br />
101<br />
110<br />
速 度 脉 冲<br />
速 度 事 件 模 式<br />
x2 速 度 事 件 模 式 。 速 度 脉 冲 在 每 个<br />
QEA 边 沿 产 生 。<br />
x4 速 度 事 件 模 式 。 速 度 脉 冲 在 每 个<br />
QEA 和 QEB 有 效 边 沿 产 生 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 175 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.2.6.1 速 度 事 件 时 序<br />
速 度 脉 冲 分 频 器 按 固 定 比 例 减 少 事 件 脉 冲 。 分 频 器 在 速<br />
度 事 件 频 繁 发 生 的 高 速 测 量 应 用 中 非 常 有 用 。 通 过 为 给<br />
定 数 量 的 输 入 事 件 脉 冲 产 生 单 个 输 出 脉 冲 , 计 数 器 在 给<br />
定 的 时 间 间 隔 内 可 以 记 录 更 多 的 脉 冲 计 数 ( 即 , 经 过 的<br />
距 离 )。 时 间 的 测 量 是 利 用 TMR5 时 基 完 成 的 。<br />
每 个 速 度 脉 冲 都 作 为 捕 捉 脉 冲 。 当 TMR5 处 于 同 步 定 时<br />
器 模 式 时 , 在 后 分 频 器 的 每 个 输 出 脉 冲 捕 捉 TMR5 的<br />
值 。 计 数 器 随 后 复 位 为 0。 TMR5 在 发 生 捕 捉 事 件 时 复<br />
位 。<br />
图 16-13 为 速 度 测 量 时 序 图 。<br />
图 16-12:<br />
速 度 测 量 框 图<br />
QEI<br />
控 制<br />
逻 辑 电 路<br />
复 位 TMR5 复 位<br />
逻 辑 电 路<br />
TMR5<br />
16<br />
时 钟<br />
TCY<br />
速 度 模 式<br />
CAP3/QEB<br />
噪 声 滤 波 器<br />
QEB<br />
速 度 事 件<br />
后 分 频 器<br />
速 度 捕 捉<br />
IC1<br />
(VELR 寄 存 器 )<br />
CAP2/QEA<br />
QEA<br />
INDX<br />
方 向<br />
时 钟<br />
位 置<br />
计 数 器<br />
CAP1/INDX<br />
DS39616B_CN 第 176 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-13:<br />
(1)<br />
速 度 测 量 时 序<br />
正 向<br />
反 向<br />
QEA<br />
QEB<br />
vel_out<br />
VELCAP<br />
TMR5 (2)<br />
1520<br />
1521<br />
1522<br />
1523<br />
1524<br />
1525<br />
1526<br />
1527<br />
1528<br />
1529<br />
1530<br />
1531<br />
1532<br />
1533<br />
1534<br />
1535<br />
1536<br />
0000<br />
0001<br />
0002<br />
0003<br />
0004<br />
0005<br />
0006<br />
0007<br />
0008<br />
0009<br />
0000<br />
0001<br />
0002<br />
0003<br />
0004<br />
VELR (2)<br />
旧 值<br />
1529<br />
1537<br />
CNT_RESET (3)<br />
Q1<br />
Q1<br />
Q1<br />
IC1IF (4)<br />
CAP1REN<br />
指 令<br />
执 行<br />
BCF TMR5CON, VELM<br />
BCF PIE2, IC1IE<br />
BSF PIE2, IC1IE<br />
MOVWF QEICON (5)<br />
注<br />
1: 以 上 为 QEIM=101、110 或 111( 使 能 x4 刷 新 模 式 ) 的 时 序 , 且 速 度 后 分 频 器 设 置 为 4 分 频 (PDEC=01)。<br />
2: VELR 寄 存 器 在 “velcap” 捕 捉 脉 冲 时 锁 存 TMR5 的 计 数 。 Timer5 必 须 设 置 为 同 步 定 时 器 或 计 数 器 模 式 。 在 此 例 中 ,<br />
Timer5 被 设 置 为 同 步 定 时 器 模 式 , 其 中 TMR5 预 分 频 器 的 分 频 比 为 1 ( 即 Timer5 时 钟 =TCY)。<br />
3: TMR5 计 数 器 在 “velcap” 脉 冲 后 的 下 一 个 Q1 时 钟 周 期 复 位 。 如 果 首 先 使 能 了 速 度 测 量 模 式 (VELM=0), TMR5 的<br />
值 不 受 影 响 。 当 重 新 进 入 速 度 测 量 模 式 时 , 必 须 将 速 度 后 分 频 值 重 新 配 置 为 其 原 先 设 置 。 在 转 速 非 常 低 的 情 况 下 进 行 速<br />
度 测 量 ( 例 如 伺 服 控 制 器 应 用 ) 时 , 速 度 测 量 模 式 的 精 度 可 能 不 足 。 为 了 提 高 精 度 , 可 能 必 须 使 用 脉 宽 测 量 模 式 。 在<br />
这 种 情 况 下 , 测 量 CAP1 输 入 引 脚 上 的 输 入 脉 冲 。<br />
4: 如 下 方 法 将 IC1IE 置 位 可 以 允 许 IC1IF 中 断 :BSF PIE2, IC1IE。 假 设 IC1E 位 放 置 在 目 标 器 件 的 PIE2 外 设 中 断 使<br />
能 寄 存 器 中 。 实 际 IC1IF 位 会 在 Q2 上 升 边 沿 写 入 。<br />
5: 抽 取 后 的 值 从 PDEC=01 ( 用 1/4 抽 取 速 率 ) 变 为 PDEC=00 ( 抽 取 速 率 为 1)。<br />
16.2.6.2 速 度 后 分 频 器<br />
速 度 事 件 脉 冲 (velcap, 参 见 图 16-12) 在 速 度 模 式 中<br />
充 当 IC1 的 TMR5 捕 捉 触 发 器 。 速 度 后 分 频 器 先 减 少 速<br />
度 事 件 的 数 量 , 然 后 将 它 们 作 为 输 入 捕 捉 时 钟 。 速 度 事<br />
件 减 少 的 比 例 可 以 通 过 PDEC1:PDEC0 控 制 位<br />
(QEICON) 设 置 为 1:4、 1:16、 1:64 或 不 减 少<br />
(1:1) 实 现 。<br />
当 重 新 使 能 速 度 模 式 时 , 速 度 后 分 频 器 设 置 自 动 重 新 加<br />
载 为 其 原 先 的 值 。<br />
16.2.6.3 速 度 模 式 下 的 CAP1REN<br />
通 过 将 CAP1REN 位 (CAP1CON) 置 位 , 可 以 在<br />
发 生 速 度 事 件 捕 捉 时 将 TMR5 值 复 位 (TMR5 寄 存 器 对<br />
为 0000h)。 当 CAP1REN 清 零 时 , 任 何 事 件 捕 捉 脉 冲<br />
都 不 会 使 TMR5 时 基 复 位 。 但 是 VELR 寄 存 器 对 会 继 续<br />
使 用 当 前 的 TMR5 值 刷 新 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 177 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
16.3 噪 声 滤 波 器<br />
运 动 反 馈 模 块 在 CAP1/INDX、 CAP2/QEA 和<br />
CAP3/QEB 上 有 3 个 噪 声 抑 制 滤 波 器 。 滤 波 电 路 还 包 括<br />
T5CKI 引 脚 的 第 4 个 滤 波 器 。 这 些 滤 波 器 的 作 用 是 帮 助<br />
减 少 寄 生 噪 声 尖 峰 信 号 , 这 种 信 号 可 能 会 破 坏 输 入 引 脚<br />
上 的 输 入 信 号 。 滤 波 器 确 保 在 三 个 连 续 的 采 样 时 钟 周 期<br />
都 获 得 同 一 个 稳 定 值 之 后 才 允 许 改 变 输 入 信 号 。<br />
所 有 这 些 滤 波 器 都 由 数 字 滤 波 器 控 制 (DFLTCON) 寄<br />
存 器 控 制 ( 参 见 寄 存 器 16-3)。 通 过 将 DFLTCON 寄 存<br />
器 中 相 应 的 FLTxEN 位 置 位 或 清 零 , 可 以 单 独 使 能 或 禁<br />
止 这 些 滤 波 器 。 可 以 通 过 FLTCK2:FLTCK0 配 置 位 对 采<br />
样 频 率 进 行 编 程 , 确 保 全 部 3 个 噪 声 滤 波 器 都 具 有 相 同<br />
的 采 样 率 。 TCY 作 为 时 钟 分 频 器 电 路 的 参 考 时 钟 源 。<br />
通 过 分 别 将 相 应 的 FLTxEN 位 置 位 或 清 零 , 可 以 在 输 入<br />
捕 捉 通 道 或 QEI 信 道 上 添 加 或 除 掉 噪 声 滤 波 器 。 每 个 捕<br />
捉 通 道 都 提 供 了 单 独 的 滤 波 器 输 出 使 能 控 制 。 FLT4EN<br />
位 可 以 使 能 或 禁 止 Timer5 模 块 中 TMR5CKI 输 入 引 脚 上<br />
的 噪 声 滤 波 器 。<br />
在 POR 和 BOR 复 位 时 DFLTCON 寄 存 器 清 零 , 因 此 禁<br />
止 所 有 通 道 上 的 滤 波 电 路 。 滤 波 器 的 工 作 原 理 请 见<br />
图 16-14 中 的 时 序 图 。<br />
寄 存 器 16-3:<br />
DFLTCON: 数 字 滤 波 器 控 制 寄 存 器<br />
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- FLT4EN FLT3EN FLT2EN FLT1EN FLTCK2 FLTCK1 FLTCK0<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 FLT4EN: 噪 声 滤 波 器 输 出 使 能 位 , T5CKI 输 入<br />
1 = 使 能<br />
0 = 禁 止<br />
bit 5<br />
(1)<br />
FLT3EN: 噪 声 滤 波 器 输 出 使 能 位 , CAP3/QEB 输 入<br />
1 = 使 能<br />
0 = 禁 止<br />
bit 4 FLT2EN: 噪 声 滤 波 器 输 出 使 能 位 , CAP2/QEA 输 入 (1)<br />
bit 3<br />
bit 2-0<br />
1 = 使 能<br />
0 = 禁 止<br />
(1)<br />
FLT1EN: 噪 声 滤 波 器 输 出 使 能 位 , CAP1/INDX 输 入<br />
1 = 使 能<br />
0 = 禁 止<br />
FLTCK: 噪 声 滤 波 器 时 钟 分 频 比 位<br />
111 = 未 使 用<br />
110 =1:128<br />
101 =1:64<br />
100 =1:32<br />
011 =1:16<br />
010 =1:4<br />
001 =1:2<br />
000 =1:1<br />
注 1: 在 QEI 和 IC 工 作 模 式 下 都 可 用 噪 声 滤 波 器 输 出 使 能 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
注 : 噪 声 滤 波 器 主 要 用 于 随 机 高 频 滤 波 , 而 非 连 续 高 频 滤 波 。<br />
DS39616B_CN 第 178 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 16-14: 滤 波 器 时 序 图 ( 时 钟 分 频 器 =1:1)<br />
TQEI=16TCY<br />
TCY<br />
(3)<br />
噪 声 干 扰<br />
噪 声 干 扰 (3)<br />
(1)<br />
CAP1/INDX 引 脚<br />
( 滤 波 器 输 入 )<br />
(2) CAP1/INDX 输 入 TGD=3TCY<br />
( 滤 波 器 输 出 )<br />
注 1: 为 了 简 明 起 见 , 图 中 仅 显 示 了 CAP1/INDX 引 脚 输 入 。 CAP2/QEA 和 CAP3/QEB 引 脚 也 会 具 有 类 似 的 事 件 时 序 。<br />
2: 噪 声 滤 波 发 生 在 CAP1 输 入 的 阴 影 部 分 。<br />
3: 滤 波 器 群 延 迟 :TGD=3 TCY。<br />
16.4 IC 和 QEI 共 享 中 断<br />
IC 和 QEI 子 模 块 各 自 可 以 产 生 3 个 不 同 的 中 断 信 号 ;<br />
但 是 它 们 共 同 使 用 PIR3 寄 存 器 中 的 3 个 中 断 标 志 位 。<br />
任 意 给 定 时 间 特 定 中 断 标 志 位 的 含 义 取 决 于 中 断 置 位 时<br />
哪 个 模 块 有 效 。 表 16-7 概 括 了 具 体 情 况 下 的 中 断 标 志<br />
位 的 含 义 。<br />
当 IC 子 模 块 有 效 时 ,3 个 标 志 位 (IC1IF、IC2QEIF 和<br />
IC3DRIF) 作 为 相 应 输 入 捕 捉 通 道 的 捕 捉 中 断 事 件 标<br />
志 。 通 道 必 须 针 对 某 个 产 生 中 断 的 事 件 进 行 配 置 ( 如 需<br />
更 多 信 息 , 请 参 见 第 16.1.7 节 “IC 中 断 ”)。<br />
当 使 能 QEI 时 , IC1IF 中 断 标 志 位 表 示 速 度 测 量 事 件<br />
( 通 常 是 VELR 寄 存 器 刷 新 ) 造 成 的 中 断 。IC2QEIF 中<br />
断 标 志 位 表 示 发 生 了 位 置 测 量 事 件 。IC3DRIF 表 示 检 测<br />
到 了 方 向 改 变 。<br />
表 16-7: IC 和 QEI 中 断 标 志 位 的 含 义<br />
含 义<br />
中 断 标 志<br />
IC 模 式<br />
QEI 模 式<br />
IC1IF IC1 捕 捉 事 件 速 度 寄 存 器 刷 新<br />
IC2QEIF IC2 捕 捉 事 件 位 置 测 量 刷 新<br />
IC3DRIF IC3 捕 捉 事 件 方 向 改 变<br />
16.5 休 眠 模 式 下 的 操 作<br />
16.5.1 休 眠 模 式 下 的 3X 输 入 捕 捉<br />
因 为 输 入 捕 捉 只 能 在 其 时 基 被 配 置 为 同 步 模 式 时 才 能 进<br />
行 , 所 以 休 眠 模 式 下 输 入 捕 捉 不 会 捕 捉 任 何 事 件 。 这 是<br />
因 为 器 件 内 部 时 钟 已 经 停 止 , 并 且 同 步 模 式 的 任 何 内 部<br />
定 时 器 都 不 会 递 增 。 预 分 频 器 将 继 续 对 事 件 计 数 ( 非 同<br />
步 )。<br />
当 发 生 了 指 定 捕 捉 事 件 时 , CAPxIF 中 断 置 位 。 捕 捉 缓<br />
冲 寄 存 器 会 在 器 件 从 休 眠 中 唤 醒 时 刷 新 为 当 前 TMR5 的<br />
值 。 如 果 使 能 了 CAPxIF 中 断 , 器 件 将 从 休 眠 中 被 唤 醒 。<br />
这 实 际 上 使 所 有 的 输 入 捕 捉 通 道 都 可 以 作 为 外 部 中 断 使<br />
用 。<br />
16.5.2 休 眠 模 式 下 的 QEI<br />
所 有 的 QEI 功 能 在 休 眠 模 式 下 都 被 暂 停 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 179 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 16-8:<br />
与 运 动 反 馈 模 块 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR 时 的 值<br />
其 他 复 位 时<br />
的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
IPR3 - - - PTIP IC3DRIP IC2QEIP IC1IP TMR5IP ---1 1111 ---1 1111<br />
PIE3 - - - PTIE IC3DRIE IC2QEIE IC1IE TMR5IE ---0 0000 ---0 0000<br />
PIR3 - - - PTIF IC3DRIF IC2QEIF IC1IF TMR5IF ---0 0000 ---0 0000<br />
TMR5H Timer5 寄 存 器 高 字 节 ( 缓 冲 器 ) xxxx xxxx uuuu uuuu<br />
TMR5L TImer5 寄 存 器 低 字 节 xxxx xxxx uuuu uuuu<br />
PR5H Timer5 周 期 寄 存 器 高 字 节 1111 1111 1111 1111<br />
PR5L Timer5 周 期 寄 存 器 低 字 节 1111 1111 1111 1111<br />
T5CON T5SEN RESEN T5MOD T5PS1 T5PS0 T5SYNC TMR5CS TMR5ON 0000 0000 0000 0000<br />
CAP1BUFH/ 捕 捉 1 寄 存 器 , 高 字 节 / 速 度 寄 存 器 , 高 字 节 (1)<br />
xxxx xxxx uuuu uuuu<br />
VELRH<br />
CAP1BUFL/ 捕 捉 1 寄 存 器 , 低 字 节 / 速 度 寄 存 器 , 低 字 节 (1)<br />
xxxx xxxx uuuu uuuu<br />
VELRL<br />
CAP2BUFH/<br />
POSCNTH<br />
捕 捉 2 寄 存 器 , 高 字 节 / QEI 位 置 计 数 器 寄 存 器 , 高 字 节 (1)<br />
xxxx xxxx uuuu uuuu<br />
CAP2BUFL/<br />
POSCNTL<br />
CAP3BUFH/<br />
MAXCNTH<br />
CAP3BUFL/<br />
MAXCNTL<br />
(1)<br />
捕 捉 2 寄 存 器 , 低 字 节 / QEI 位 置 计 数 器 寄 存 器 , 低 字 节<br />
(1)<br />
捕 捉 3 寄 存 器 , 高 字 节 / QEI 最 大 计 数 限 制 寄 存 器 , 高 字 节<br />
(1)<br />
捕 捉 3 寄 存 器 , 低 字 节 / QEI 最 大 计 数 限 制 寄 存 器 , 低 字 节<br />
xxxx xxxx<br />
xxxx xxxx<br />
xxxx xxxx<br />
uuuu uuuu<br />
uuuu uuuu<br />
uuuu uuuu<br />
CAP1CON - CAP1REN - - CAP1M3 CAP1M2 CAP1M1 CAP1M0 -0-- 0000 -0-- 0000<br />
CAP2CON - CAP2REN - - CAP2M3 CAP2M2 CAP2M1 CAP2M0 -0-- 0000 -0-- 0000<br />
CAP3CON - CAP3REN - - CAP3M3 CAP3M2 CAP3M1 CAP3M0 -0-- 0000 -0-- 0000<br />
DFLTCON - FLT4EN FLT3EN FLT2EN FLT1EN FLTCK2 FLTCK1 FLTCK0 -000 0000 -000 0000<br />
QEICON VELM ERROR UP/DOWN QEIM2 QEIM1 QEIM0 PDEC1 PDEC0 0000 0000 0000 0000<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , q= 根 据 条 件 变 化 。<br />
阴 影 单 元 格 表 示 运 动 反 馈 模 块 未 使 用 。<br />
注 1: 寄 存 器 名 称 和 功 能 取 决 于 所 选 择 的 子 模 块 ( 分 别 是 IC/QEI)。 如 需 更 多 信 息 , 请 参 见 第 16.1.10 节 “ 其 他 工 作 模 式 ”。<br />
DS39616B_CN 第 180 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.0 功 率 控 制 PWM 模 块<br />
在 电 机 控 制 器 和 功 率 转 换 应 用 中 , 功 率 控 制 PWM 模 块<br />
简 化 了 产 生 多 种 同 步 脉 冲 宽 度 调 制 (PWM) 输 出 的 过<br />
程 。 特 别 是 ,PWM 模 块 支 持 以 下 功 率 和 动 作 控 制 应 用 :<br />
• 三 相 和 单 相 AC 感 应 电 机<br />
• 开 关 磁 阻 电 机<br />
• 无 刷 直 流 (Brushless DC, BLDC) 电 机<br />
• 不 间 断 电 源 (UPS)<br />
• 多 种 DC 有 刷 电 机<br />
PWM 模 块 有 如 下 特 点 :<br />
• 多 达 八 个 的 PWM I/O 引 脚 , 有 四 个 占 空 比 发 生<br />
器 。 可 以 将 引 脚 配 对 成 完 整 的 半 桥 控 制 。<br />
• 分 辨 率 高 达 14 位 , 取 决 于 PWM 的 周 期 。<br />
• 动 态 PWM 频 率 变 化 。<br />
• 边 沿 或 中 心 对 齐 输 出 模 式 。<br />
• 单 脉 冲 发 生 模 式 。<br />
• 可 在 成 对 的 PWM 之 间 进 行 可 编 程 死 区 控 制 。<br />
• 中 心 对 齐 模 式 中 不 对 称 更 新 的 中 断 支 持 。<br />
• 电 子 换 相 电 机 (Electrically Commutated Motor,<br />
ECM) 的 输 出 改 写 , 如 BLDC。<br />
• 预 定 其 他 外 设 事 件 的 特 殊 事 件 比 较 器 。<br />
• 在 调 试 模 式 中 , PWM 输 出 禁 止 功 能 会 将 PWM 输<br />
出 设 置 为 无 效 状 态 。<br />
在 PIC18F2X31 器 件 上 , 功 率 控 制 PWM 模 块 支 持 三 个<br />
PWM 发 生 器 和 六 个 输 出 通 道 ; 在 PIC18F4X31 器 件 上 ,<br />
则 支 持 四 个 发 生 器 和 八 个 输 出 通 道 。 图 17-1 给 出 了 该<br />
模 块 的 简 化 框 图 。 图 17-2 和 图 17-3 给 出 了 模 块 硬 件 如<br />
何 将 每 个 PWM 输 出 对 配 置 为 互 补 和 独 立 输 出 模 式 。<br />
以 下 各 节 将 会 探 讨 PWM 模 块 的 每 个 功 能 单 元 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 181 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-1:<br />
内 部 数 据 总 线<br />
8<br />
功 率 控 制 PWM 模 块 框 图<br />
PWMCON0<br />
8<br />
PWMCON1<br />
PWM 使 能 和 模 式<br />
8<br />
DTCON<br />
死 区 控 制<br />
8<br />
FLTCON<br />
故 障 引 脚 控 制<br />
8<br />
OVDCON<br />
PWM 手 工 控 制<br />
8<br />
PWM 发 生 器 3 (1)<br />
PDC3 缓 冲 器<br />
PDC3<br />
比 较 器<br />
通 道 3<br />
死 区 发 生 器<br />
(2)<br />
与 改 写 逻 辑<br />
PWM7 (2)<br />
PWM6 (2)<br />
8<br />
PTMR<br />
比 较 器<br />
PTPER<br />
PWM 发 生 器<br />
2<br />
PWM 发 生 器<br />
1<br />
通 道 2<br />
死 区 发 生 器<br />
与 改 写 逻 辑<br />
通 道 1<br />
死 区 发 生 器<br />
与 改 写 逻 辑<br />
输 出<br />
驱 动 器<br />
模 块<br />
PWM5<br />
PWM4<br />
PWM3<br />
PWM2<br />
8<br />
PTPER 缓 冲 器<br />
PWM 发 生 器<br />
0<br />
通 道 0<br />
死 区 发 生 器<br />
与 改 写 逻 辑<br />
PWM1<br />
PWM0<br />
8<br />
PTCON<br />
FLTA<br />
FLTB (2)<br />
8<br />
比 较 器<br />
SEVTCMP<br />
SEVTDIR<br />
PTDIR<br />
特 殊 事 件<br />
后 分 频 器<br />
特 殊 事 件 触 发 器<br />
注 1: 本 图 只 给 出 了 PWM 发 生 器 3 的 细 节 。 其 他 发 生 器 与 之 相 同 , 所 以 为 了 明 了 起 见 , 它 们 的 细 节 就 省 略 了 。<br />
2: 在 PIC18F2X31 器 件 上 未 实 现 PWM 发 生 器 3 及 其 逻 辑 电 路 、 PWM 通 道 6 和 7 以 及 FLTB 及 其 逻 辑 电 路 。<br />
DS39616B_CN 第 182 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-2:<br />
PWM 模 块 框 图 , 一 个 输 出 对 , 互 补 模 式<br />
VDD<br />
死 区<br />
发 生 器<br />
PWM1<br />
占 空 比 比 较 器<br />
HPOL<br />
PWM 占 空 比 寄 存 器<br />
PWM0<br />
故 障 改 写 值<br />
LPOL<br />
通 道 改 写 值<br />
故 障 A 引 脚<br />
故 障 B 引 脚<br />
故 障 引 脚 分 配<br />
逻 辑 电 路<br />
注 :<br />
在 互 补 模 式 中 , 奇 数 通 道 活 动 时 , 偶 数 通 道 不 能 由 故 障 或 改 写<br />
事 件 强 行 激 活 。 在 奇 数 通 道 被 驱 动 为 活 动 状 态 之 前 , 偶 数 通 道<br />
总 是 奇 数 通 道 的 互 补 , 且 不 激 活 , 带 死 区 插 入 。<br />
图 17-3:<br />
PWM 模 块 框 图 , 一 个 输 出 对 , 独 立 模 式<br />
VDD<br />
PWM 占 空 比 寄 存 器<br />
占 空 比 比 较 器<br />
PWM1<br />
VDD<br />
HPOL<br />
PWM0<br />
故 障 改 写 值<br />
LPOL<br />
通 道 改 写 值<br />
故 障 A 引 脚<br />
故 障 B 引 脚<br />
故 障 引 脚 分 配<br />
逻 辑 电 路<br />
此 模 块 包 含 四 个 占 空 比 发 生 器 , 编 号 为 0 到 3。 八 个<br />
PWM 输 出 引 脚 , 编 号 为 0 到 7。 这 八 个 PWM 输 出 引 脚<br />
被 分 为 由 偶 数 和 奇 数 输 出 引 脚 组 成 的 输 出 引 脚 对 。 在 互<br />
补 模 式 中 , 偶 数 PWM 引 脚 必 须 总 是 作 为 相 应 奇 数 PWM<br />
引 脚 的 互 补 。 例 如 , PWM0 作 为 PWM1 的 互 补 , 而<br />
PWM2 作 为 PWM3 的 互 补 , 等 等 。 死 区 发 生 器 在 成 对<br />
引 脚 中 从 一 个 引 脚 关 闭 到 互 补 引 脚 开 启 之 间 插 入 一 个<br />
“ 关 闭 时 间 ”, 称 作 “ 死 区 ”。 这 是 为 了 防 止 对 连 接 到<br />
PWM 输 出 引 脚 的 功 率 开 关 器 件 的 破 坏 。<br />
PWM 模 块 的 时 基 由 本 身 的 12 位 定 时 器 提 供 , 也 可 由 可<br />
选 预 分 频 器 和 后 分 频 器 选 项 组 成 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 183 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.1 控 制 寄 存 器<br />
PWM 模 块 的 操 作 总 共 由 22 个 寄 存 器 控 制 。 其 中 有 八 个<br />
寄 存 器 用 于 配 置 模 块 功 能 :<br />
• PWM 定 时 器 控 制 寄 存 器 0 (PTCON0)<br />
• PWM 定 时 器 控 制 寄 存 器 1 (PTCON1)<br />
• PWM 控 制 寄 存 器 0 (PWMCON0)<br />
• PWM 控 制 寄 存 器 1 (PWMCON1)<br />
• 死 区 控 制 寄 存 器 (DTCON)<br />
• 输 出 改 写 控 制 寄 存 器 (OVDCOND)<br />
• 输 出 状 态 寄 存 器 (OVDCONS)<br />
• 故 障 配 置 寄 存 器 (FLTCONFIG)<br />
其 他 的 14 个 寄 存 器 被 配 置 为 七 个 16 位 的 寄 存 器 对 。 它<br />
们 用 于 配 置 特 殊 功 能 值 。 它 们 分 别 是 :<br />
• PWM 时 基 寄 存 器 (PTMRH 和 PTMRL)<br />
• PWM 周 期 寄 存 器 (PTPERH 和 PTPERL)<br />
• PWM 特 殊 事 件 比 较 寄 存 器 (SEVTCMPH 和<br />
SEVTCMPL)<br />
• PWM 占 空 比 0 寄 存 器 (PDC0H 和 PDC0L)<br />
• PWM 占 空 比 1 寄 存 器 (PDC1H 和 PDC1L)<br />
• PWM 占 空 比 2 寄 存 器 (PDC2H 和 PDC2L)<br />
• PWM 占 空 比 3 寄 存 器 (PDC3H 和 PDC3L)<br />
所 有 这 些 寄 存 器 对 都 是 双 缓 冲 的 。<br />
17.2 模 块 功 能<br />
PWM 模 块 支 持 几 种 工 作 模 式 , 这 些 模 式 对 特 定 功 率 和<br />
电 机 控 制 应 用 很 有 好 处 。 在 后 续 各 节 中 将 对 每 个 工 作 模<br />
式 进 行 描 述 。<br />
PWM 模 块 由 几 个 功 能 模 块 组 成 。 每 个 模 块 的 运 行 将 分<br />
别 在 相 关 的 工 作 模 式 中 进 行 说 明 :<br />
• PWM 时 基<br />
• PWM 时 基 中 断<br />
• PWM 周 期<br />
• PWM 占 空 比<br />
• 死 区 发 生 器<br />
• PWM 输 出 改 写<br />
• PWM 故 障 输 入<br />
• PWM 特 殊 事 件 触 发 器<br />
17.3 PWM 时 基<br />
PWM 时 基 由 带 预 分 频 器 和 后 分 频 器 功 能 的 12 位 定 时 器<br />
提 供 。 图 17-4 给 出 了 PWM 时 基 的 简 化 框 图 。PWM 时<br />
基 由 PTCON0 和 PTCON1 寄 存 器 配 置 。 通 过 置 位 或 清<br />
零 PTCON1 寄 存 器 中 的 PTEN 位 来 实 现 时 基 使 能 或 禁<br />
止 。<br />
注 :<br />
当 PTEN 位 由 软 件 清 零 时 , PTMR 寄 存 器<br />
对 (PTMRL:PTMRH) 没 有 被 清 零 。<br />
DS39616B_CN 第 184 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-4:<br />
PWM 时 基 框 图<br />
PTMR 寄 存 器<br />
PTMR 时 钟<br />
定 时 器 复 位<br />
上 / 下<br />
比 较 器<br />
比 较 器<br />
周 期 匹 配<br />
零 匹 配<br />
PTMOD1<br />
定 时 器<br />
方 向<br />
控 制<br />
PTDIR<br />
占 空 比 载 入<br />
PTPER<br />
周 期 载 入<br />
PTPER 缓 冲 器<br />
更 新 禁 止 (UDIS)<br />
FOSC/4<br />
预 分 频 器<br />
1:1, 1:4, 1:16, 1:64<br />
零 匹 配<br />
周 期 匹 配<br />
PTMOD1<br />
PTMOD0<br />
时 钟<br />
控 制<br />
PTMR 时 钟<br />
PTEN<br />
零<br />
匹 配<br />
周 期<br />
匹 配<br />
后 分 频 器<br />
1:1 - 1:16<br />
中 断<br />
控 制<br />
PTIF<br />
PTMOD1<br />
PTMOD0<br />
可 以 为 以 下 四 种 不 同 的 工 作 模 式 配 置 PWM 时 基 :<br />
• 自 由 运 行 模 式<br />
• 单 步 模 式<br />
• 连 续 上 / 下 计 数 模 式<br />
• 带 双 更 新 中 断 的 连 续 上 / 下 计 数 模 式<br />
这 四 个 模 式 由 PTCON0 寄 存 器 中 的 PTMOD1:PTMOD0<br />
位 选 定 。 自 由 运 行 模 式 产 生 边 沿 对 齐 的 PWM 生 成 。 上<br />
/ 下 计 数 模 式 产 生 中 心 对 齐 的 PWM 生 成 。 单 步 模 式 允 许<br />
PWM 模 块 支 持 某 些 电 子 换 相 电 机 (ECM) 的 脉 冲 控 制<br />
并 产 生 边 沿 对 齐 操 作 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 185 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-1: PTCON0:PWM 定 时 器 控 制 寄 存 器 0<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
PTOPS3 PTOPS2 PTOPS1 PTOPS0 PTCKPS1 PTCKPS0 PTMOD1 PTMOD0<br />
bit 7 bit 0<br />
bit 7-4<br />
bit 3-2<br />
bit 1-0<br />
PTOPS3:PTOPS0:PWM 时 基 输 出 后 分 频 值 选 择 位<br />
0000 =1:1 后 分 频 值<br />
0001 =1:2 后 分 频 值<br />
.<br />
.<br />
.<br />
1111 =1:16 后 分 频 值<br />
PTCKPS1:PTCKPS0:PWM 时 基 输 入 时 钟 预 分 频 值 选 择 位<br />
00 =PWM 时 基 输 入 时 钟 为 Fosc/4 (1:1 预 分 频 值 )<br />
01 =PWM 时 基 输 入 时 钟 为 Fosc/16 (1:4 预 分 频 值 )<br />
10 =PWM 时 基 输 入 时 钟 为 Fosc/64 (1:16 预 分 频 值 )<br />
11 =PWM 时 基 输 入 时 钟 为 Fosc/256 (1:64 预 分 频 值 )<br />
PTMOD1:PTMOD0: PWM 时 基 模 式 选 择 位<br />
11 =PWM 时 基 工 作 在 带 双 PWM 更 新 中 断 的 连 续 上 / 下 模 式 下 。<br />
10 =PWM 时 基 工 作 在 连 续 上 / 下 计 数 模 式 下 。<br />
01 =PWM 时 基 配 置 为 单 步 模 式 。<br />
00 =PWM 时 基 工 作 在 自 由 运 行 模 式 下 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
寄 存 器 17-2: PTCON1:PWM 定 时 器 控 制 寄 存 器 1<br />
R/W-0 R-0 U-0 U-0 U-0 U-0 U-0 U-0<br />
PTEN PTDIR - - - - - -<br />
bit 7 bit 0<br />
bit 7 PTEN:PWM 时 基 定 时 器 使 能 位<br />
1 = PWM 时 基 启 动<br />
0 = PWM 时 基 关 闭<br />
bit 6 PTDIR:PWM 时 基 计 数 方 向 状 态 位<br />
1 = PWM 时 基 向 下 计 数<br />
0 = PWM 时 基 向 上 计 数<br />
bit 5-0 未 实 现 位 : 读 作 0。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 186 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-3: PWMCON0:PWM 控 制 寄 存 器 0<br />
U-0 R/W-1 (1) R/W-1 (1) R/W-1 (1) R/W-0 R/W-0 R/W-0 R/W-0<br />
- PWMEN2 PWMEN1 PWMEN0 PMOD3 (3) PMOD2 PMOD1 PMOD0<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0。<br />
bit 6-4 PWMEN2:PWMEN0:PWM 模 块 使 能 位<br />
(1)<br />
111 = 所 有 奇 数 PWM I/O 引 脚 使 能 为 PWM 输 出 (2) 。<br />
110 =PWM1 和 PWM3 引 脚 使 能 为 PWM 输 出 。<br />
101 = 所 有 PWM I/O 引 脚 使 能 为 PWM 输 出<br />
。<br />
100 =PWM0、 PWM1、 PWM2、 PWM3、 PWM4 和 PWM5 引 脚 使 能 为 PWM 输 出 。<br />
011 =PWM0、 PWM1、 PWM2 和 PWM3 I/O 引 脚 使 能 为 PWM 输 出 。<br />
010 =PMW0 和 PMW1 引 脚 使 能 为 PWM 输 出 。<br />
001 =PWM1 引 脚 使 能 为 PWM 输 出 。<br />
000 =PWM 模 块 禁 止 。 所 有 PWM I/O 引 脚 均 为 通 用 I/O 引 脚 。<br />
bit 3-0<br />
PMOD3:PMOD0:PWM 输 出 对 模 式 位<br />
对 于 PMOD0:<br />
1 = PWM I/O 引 脚 对 (PWM0, PWM1) 在 独 立 模 式 中 。<br />
0 = PWM I/O 引 脚 对 (PWM0, PWM1) 在 互 补 模 式 中 。<br />
对 于 PMOD1:<br />
1 = PWM I/O 引 脚 对 (PWM2, PWM3) 在 独 立 模 式 中 。<br />
0 = PWM I/O 引 脚 对 (PWM2, PWM3) 在 互 补 模 式 中 。<br />
对 于 PMOD2:<br />
1 = PWM I/O 引 脚 对 (PWM4, PWM5) 在 独 立 模 式 中 。<br />
0 = PWM I/O 引 脚 对 (PWM4, PWM5) 在 互 补 模 式 中 。<br />
对 于 PMOD3 (3) :<br />
1 = PWM I/O 引 脚 对 (PWM6, PWM7) 在 独 立 模 式 中 。<br />
0 = PWM I/O 引 脚 对 (PWM6, PWM7) 在 互 补 模 式 中 。<br />
注 1: PWMEN 位 的 复 位 条 件 取 决 于 PWMPIN 的 器 件 配 置 位 。<br />
2: 当 PWMEN2:PWMEN0=101 时 , 对 于 PIC18F2X31 器 件 ,PWM[5:0] 输 出 使 能 ;<br />
对 于 PIC18F4X31 器 件 , PWM[7:0] 输 出 使 能 。<br />
当 PWMEN2:PWMEN0=111 时 , 对 于 PIC18F2X31 器 件 , PWM 输 出 1、 3 和 5<br />
使 能 ; 对 于 PIC18F4X31 器 件 , PWM 输 出 1、 3、 5 和 7 使 能 。<br />
3: PIC18F2X31 器 件 中 未 实 现 , 保 持 这 些 位 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 187 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-4: PWMCON1:PWM 控 制 寄 存 器 1<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0<br />
SEVOPS3 SEVOPS2 SEVOPS1 SEVOPS0 SEVTDIR - UDIS OSYNC<br />
bit 7 bit 0<br />
bit 7-4 SEVOPS3:SEVOPS0:PWM 特 殊 事 件 触 发 器 输 出 后 分 频 值 选 择 位<br />
0000 =1:1 后 分 频 值<br />
0001 =1:2 后 分 频 值<br />
.<br />
.<br />
.<br />
1111 =1:16 后 分 频 值<br />
bit 3 SEVTDIR: 特 殊 事 件 触 发 器 时 基 方 向 位<br />
1 = PWM 时 基 向 下 计 数 时 会 触 发 特 殊 事 件 。<br />
0 = PWM 时 基 向 上 计 数 时 会 触 发 特 殊 事 件 。<br />
bit 2 未 实 现 位 : 读 作 0。<br />
bit 1 UDIS:PWM 更 新 禁 止 位<br />
1 = 禁 止 从 占 空 比 和 周 期 缓 冲 寄 存 器 更 新 。<br />
0 = 使 能 从 占 空 比 和 周 期 缓 冲 寄 存 器 更 新 。<br />
bit 0 OSYNC:PWM 输 出 改 写 同 步 位<br />
1 = 通 过 OVDCON 寄 存 器 的 输 出 改 写 与 PWM 时 基 同 步 。<br />
0 = 通 过 OVDCON 寄 存 器 的 输 出 改 写 与 PWM 时 基 异 步 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1 = 置 位 0= 清 零 x= 未 知<br />
17.3.1 自 由 运 行 模 式<br />
在 自 由 运 行 模 式 中 ,PWM 时 基 (PTMRL 和 PTMRH)<br />
将 开 始 向 上 计 数 , 直 到 与 时 基 周 期 寄 存 器 PTPER<br />
(PTPERL 和 PTPERH) 中 的 值 匹 配 。PTMR 寄 存 器 将<br />
在 接 下 来 的 输 入 时 钟 沿 复 位 , 且 只 要 PTEN 位 保 持 置<br />
位 , 时 基 将 继 续 向 上 计 数 。<br />
17.3.2 单 步 模 式<br />
在 单 步 模 式 下 , 当 PTEN 位 置 位 时 , PWM 时 基 开 始 向<br />
上 计 数 。 当 PTMR 寄 存 器 的 值 与 PTPER 寄 存 器 匹 配 时 ,<br />
PTMR 寄 存 器 将 在 接 下 来 的 输 入 时 钟 沿 复 位 , 且 PTEN<br />
位 将 由 硬 件 清 零 , 停 止 时 基 。<br />
17.3.3 连 续 上 / 下 计 数 模 式<br />
在 连 续 上 / 下 计 数 模 式 下 , PWM 时 基 向 上 计 数 直 到<br />
PTPER 寄 存 器 中 的 值 与 PTMR 匹 配 。 在 其 后 的 输 入 时<br />
钟 边 沿 , 定 时 器 向 下 计 数 。PTCON1 寄 存 器 中 的 PTDIR<br />
位 是 只 读 位 , 用 来 表 示 计 数 方 向 。 当 定 时 器 向 下 计 数<br />
时 , PTDIR 位 置 位 。<br />
17.3.4 PWM 时 基 预 分 频 器<br />
PTMR (FOSC/4) 的 输 入 时 钟 的 预 分 频 值 选 项 为 1:1、<br />
1:4、1:16 或 1:64。 它 们 由 PTCON0 寄 存 器 中 的 控 制 位<br />
PTCKPS 来 选 择 。 当 发 生 以 下 任 何 一 种 情 况 时 ,<br />
预 分 频 器 计 数 器 清 零 :<br />
• 写 PTMR 寄 存 器<br />
• 写 PTCON (PTCON0 或 PTCON1) 寄 存 器<br />
• 任 何 器 件 复 位<br />
注 : 写 PTCON 时 , PTMR 寄 存 器 不 会 清 零 。<br />
表 17-1 给 出 了 PWM 时 基 和 预 分 频 器 可 以 产 生 的 最 小<br />
PWM 频 率 。 表 中 假 设 工 作 频 率 为 40 MHz<br />
(FCYC =10MHz) 且 PTPER = 0xFFF。 PWM 模 块 必<br />
须 有 能 力 为 特 定 的 功 率 控 制 应 用 产 生 行 频 (50 Hz 或<br />
60 Hz) 的 PWM 信 号 。<br />
注 : 当 PWM 定 时 器 在 上 / 下 计 数 模 式 使 能 时 ,<br />
在 上 / 下 计 数 模 式 的 第 一 个 周 期 的 前 半 周 期<br />
中 ,PWM 输 出 保 持 停 止 。 这 样 的 话 ,PWM<br />
引 脚 会 因 PTMR 寄 存 器 中 的 未 知 值 而 输 出<br />
无 意 义 的 占 空 比 。<br />
DS39616B_CN 第 188 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 17-1:<br />
最 小 PWM 频 率<br />
FCYC = 10 MIPS 且 PTPER = 0FFFh 时 ,<br />
最 小 PWM 频 率 与 预 分 频 值 的 关 系<br />
预 分 频<br />
边 沿 对 齐<br />
PWM 频 率<br />
17.3.5 PWM 时 基 后 分 频 器<br />
中 心 对 齐<br />
PWM 频 率<br />
1:1 2441 Hz 1221 Hz<br />
1:4 610 Hz 305 Hz<br />
1:16 153 Hz 76 Hz<br />
1:64 38 Hz 19 Hz<br />
PTMR 的 匹 配 输 出 可 以 通 过 一 个 4 位 后 分 频 值 ( 包 括<br />
1:1 到 1:16 的 分 频 ) 任 意 进 行 后 分 频 产 生 中 断 。 当 发 生<br />
以 下 任 何 一 种 情 况 时 , 后 分 频 器 计 数 器 清 零 :<br />
• 写 PTMR 寄 存 器<br />
• 写 PTCON 寄 存 器<br />
• 任 何 器 件 复 位<br />
写 PTCON 寄 存 器 时 , PTMR 寄 存 器 不 会 清 零 。<br />
17.4 PWM 时 基 中 断<br />
PWM 定 时 器 可 以 根 据 PTMOD 位 和 后 分 频 值 位<br />
(PTOPS) 选 择 的 工 作 模 式 产 生 中 断 。<br />
17.4.1 自 由 运 行 模 式 下 的 中 断<br />
当 PWM 时 基 在 自 由 运 行 模 式 (PTMOD = 00)<br />
时 , 每 当 发 生 与 PTPER 寄 存 器 的 匹 配 时 , 即 产 生 中 断<br />
事 件 。 PTMR 寄 存 器 在 接 下 来 的 时 钟 边 沿 复 位 到 0。<br />
使 用 非 1:1 的 后 分 频 值 选 项 , 将 会 降 低 中 断 事 件 的 发 生<br />
频 率 。<br />
图 17-5:<br />
自 由 运 行 模 式 下 PWM 时 基 中 断 时 序<br />
A: 预 分 频 值 = 1:1<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
FOSC/4<br />
PTMR<br />
1<br />
FFEh FFFh 000h 001h 002h<br />
PTMR_INT_REQ<br />
PTIF 位<br />
B: 预 分 频 值 = 1:4<br />
Q4 Q4<br />
Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc<br />
PTMR FFEh FFFh 000h 001h 002h<br />
PTMR_INT_REQ<br />
1<br />
PTIF 位<br />
注<br />
1: 在 此 例 中 , PWM 时 基 周 期 寄 存 器 PTPER 装 入 的 值 为 FFFh。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 189 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.4.2 单 步 模 式 下 的 中 断<br />
当 PWM 时 基 在 单 步 模 式 下 (PTMOD = 01) 时 ,<br />
与 PTPER 寄 存 器 匹 配 发 生 时 , 即 产 生 中 断 事 件 。 在 接<br />
下 来 的 输 入 时 钟 沿 , PWM 定 时 器 寄 存 器 (PTMR) 复<br />
位 到 零 且 PTEN 位 清 零 。 此 定 时 器 模 式 不 会 影 响 后 分 频<br />
值 选 择 位 。<br />
17.4.3 连 续 上 / 下 计 数 模 式 下 的 中 断<br />
在 上 / 下 计 数 模 式 (PTMOD = 10) 中 , 当 PTMR<br />
寄 存 器 的 值 变 为 零 , 且 PWM 时 基 开 始 向 上 计 数 时 产 生<br />
中 断 事 件 。 在 此 模 式 中 使 用 后 分 频 值 选 择 位 , 可 以 降 低<br />
中 断 事 件 的 发 生 频 率 。 图 17-7 给 出 了 连 续 上 / 下 计 数 模<br />
式 下 的 中 断 。<br />
图 17-6:<br />
单 步 模 式 下 PWM 时 基 中 断 时 序<br />
A: 预 分 频 值 = 1:1<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
FOSC/4<br />
2<br />
PTMR FFEh FFFh 000h 000h 000h<br />
PTMR_INT_REQ<br />
1 1<br />
1<br />
PTIF 位<br />
B: 预 分 频 值 = 1:4<br />
Q4 Q4<br />
Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc<br />
2<br />
PTMR FFEh FFFh 000h 000h 000h<br />
1 1<br />
1<br />
PTMR_INT_REQ<br />
PTIF 位<br />
注 1: 中 断 标 志 位 PTIF 在 每 个 Q1 周 期 采 样 。<br />
2: 在 此 例 中 , PWM 时 基 周 期 寄 存 器 PTPER 装 入 的 值 为 FFFh。<br />
DS39616B_CN 第 190 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-7:<br />
预 分 频 值 = 1:1<br />
上 / 下 计 数 模 式 下 PWM 时 基 中 断<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
FOSC/4<br />
PTMR 002h 001h 000h 001h 002h<br />
PTDIR 位<br />
PTMR_INT_REQ<br />
1 1 1 1<br />
PTIF 位<br />
预 分 频 值 = 1:4<br />
Q4 Q4<br />
Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc Qc<br />
PTMR 002h 001h 000h 001h 002h<br />
PTDIR 位<br />
PTMR_INT_REQ<br />
1 1<br />
1<br />
1<br />
PTIF 位<br />
注 1: 中 断 标 志 位 PTIF 在 每 个 Q1 周 期 采 样 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 191 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.4.4 双 更 新 模 式 下 的 中 断<br />
此 模 式 在 上 / 下 计 数 模 式 中 有 效 。 在 双 更 新 模 式<br />
(PTMOD = 11) 中 , 当 PTMR 寄 存 器 等 于 零 及<br />
PTMR 与 PTPER 寄 存 器 相 匹 配 时 , 即 产 生 中 断 事 件 。<br />
图 17-8 给 出 了 带 双 更 新 的 上 / 下 计 数 模 式 下 的 中 断 。<br />
双 更 新 模 式 为 中 心 对 齐 模 式 的 用 户 提 供 两 种 附 加 功 能 。<br />
1. 由 于 PWM 占 空 比 在 每 个 周 期 更 新 两 次 , 所 以 控<br />
制 环 带 宽 加 倍 。<br />
2. 可 以 产 生 不 对 称 的 中 心 对 齐 PWM 波 形 , 它 对 于<br />
在 特 定 电 机 控 制 应 用 中 尽 可 能 地 减 小 输 出 波 形 失<br />
真 很 有 用 处 。<br />
注 :<br />
当 PTEN 有 效 时 不 要 改 变 PTMOD。 它 会<br />
产 生 意 料 之 外 的 值 。 要 改 变 PWM 定 时 器 的<br />
工 作 模 式 , 首 先 清 零 PTEN 位 , 将 必 需 的<br />
数 据 载 入 PTMOD, 然 后 再 将 PTEN 位 置<br />
位 。<br />
图 17-8:<br />
A: 预 分 频 值 = 1:1<br />
带 双 更 新 的 上 / 下 计 数 模 式 下 的 PWM 时 基 中 断<br />
情 形 1:PTMR 向 上 计 数<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
OSC1<br />
PTMR 3FDh 3FEh 3FFh 3FEh 3FDh<br />
2<br />
PTDIR 位<br />
PTMR_INT_REQ<br />
1 1<br />
1<br />
1<br />
PTIF 位<br />
情 形 2:PTMR 向 下 计 数<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
OSC1<br />
PTMR 002h 001h 000h 001h 002h<br />
PTDIR 位<br />
PTMR_INT_REQ<br />
PTIF 位<br />
1 1<br />
1<br />
1<br />
注 1: 中 断 标 志 位 PTIF 在 每 个 Q1 周 期 采 样 。<br />
2: 在 此 例 中 , PWM 时 基 周 期 寄 存 器 PTPER 装 入 的 值 为 3FFh。<br />
DS39616B_CN 第 192 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.5 PWM 周 期<br />
PWM 周 期 由 PTPER 寄 存 器 对 (PTPERL 和 PTPERH)<br />
定 义 。 PWM 周 期 有 12 位 的 分 辨 率 , 由 PTPERH 的 4<br />
个 LSb 和 PTPERL 的 8 位 构 成 。PTPER 是 双 缓 冲 寄 存<br />
器 , 用 于 设 置 PWM 时 基 计 数 周 期 。<br />
在 以 下 情 况 下 ,PTPER 缓 冲 器 的 内 容 会 装 入 PTPER 寄<br />
存 器 :<br />
• 自 由 运 行 和 单 步 模 式 : 与 PTPER 寄 存 器 匹 配 之<br />
后 , PTMR 寄 存 器 复 位 到 零 。<br />
• 上 / 下 计 数 模 式 : 当 PTMR 寄 存 器 为 零 。 当 PWM<br />
时 基 禁 止 (PTEN = 0) 时 , PTPER 缓 冲 器 中 的<br />
值 会 自 动 装 入 PTPER 寄 存 器 。 图 17-9 和<br />
图 17-10 给 出 了 PTPER 缓 冲 器 中 的 内 容 装 入 真 正<br />
的 PTPER 寄 存 器 的 时 刻 。<br />
以 下 公 式 用 来 计 算 PWM 周 期 。<br />
公 式 17-1:<br />
公 式 17-2:<br />
PWM 频 率 是 周 期 的 倒 数 , 即<br />
自 由 运 行 模 式 的 PWM 周 期<br />
(PTPER + 1)<br />
TPWM =<br />
Fosc/(PTMRPS/4)<br />
或<br />
(PTPER + 1) x PTMRPS<br />
TPWM =<br />
Fosc/4<br />
上 / 下 计 数 模 式 的 PWM 周<br />
期<br />
(2 x PTPER)<br />
TPWM =<br />
Fosc/(PTMRPS/4)<br />
PWMýµ¬þ<br />
=<br />
----------------------<br />
1<br />
PWM÷‹ý⁄<br />
给 定 器 件 振 荡 器 和 PWM 频 率 时 , 最 大 分 辨 率 ( 以 位 为<br />
单 位 ) 可 以 由 以 下 公 式 确 定 :<br />
公 式 17-3:<br />
PWM 分 辨 率<br />
表 17-2 给 出 了 选 定 执 行 速 度 和 PTPER 值 时 ,PWM 分<br />
辨 率 和 频 率 。 表 17-2 中 的 PWM 频 率 是 针 对 边 沿 对 齐 的<br />
PWM 模 式 而 计 算 的 。 对 于 中 心 对 齐 模 式 ,PWM 频 率 大<br />
约 为 表 中 所 示 值 的 一 半 。<br />
表 17-2:<br />
Fosc<br />
PWM 频 率 和 分 辨 率 示 例<br />
PWM 频 率 =1/TPWM<br />
MIPS PTPER<br />
值<br />
PWM<br />
分 辨 率<br />
PWM 频 率<br />
40 MHz 10 0FFFh 14 位 2.4 kHz<br />
40 MHz 10 07FFh 13 位 4.9 kHz<br />
40 MHz 10 03FFh 12 位 9.8 kHz<br />
40 MHz 10 01FFh 11 位 19.5 kHz<br />
40 MHz 10 FFh 10 位 39.0 kHz<br />
40 MHz 10 7Fh 9 位 78.1 kHz<br />
40 MHz 10 3Fh 8 位 156.2 kHz<br />
40 MHz 10 1Fh 7 位 312.5 kHz<br />
40 MHz 10 0Fh 6 位 625 kHz<br />
25 MHz 6.25 0FFFh 14 位 1.5 kHz<br />
25 MHz 6.25 03FFh 12 位 6.1 kHz<br />
25 MHz 6.25 FFh 10 位 24.4 kHz<br />
10 MHz 2.5 0FFFh 14 位 610 Hz<br />
10 MHz 2.5 03FFh 12 位 2.4 kHz<br />
10 MHz 2.5 FFh 10 位 9.8 kHz<br />
5 MHz 1.25 0FFFh 14 位 305 Hz<br />
5 MHz 1.25 03FFh 12 位 1.2 kHz<br />
5 MHz 1.25 FFh 10 位 4.9 kHz<br />
4 MHz 1 0FFFh 14 位 244 Hz<br />
4 MHz 1 03FFh 12 位 976 Hz<br />
4 MHz 1 FFh 10 位 3.9 kHz<br />
注 :<br />
分 辨 率 =<br />
log<br />
Fosc/4<br />
Fpwm<br />
log(2)<br />
对 于 中 心 对 齐 操 作 , PWM 频 率 大 约 为 表 中 所 示 值 的<br />
1/2。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 193 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-9:<br />
自 由 运 行 计 数 模 式 下 的 PWM 周 期 缓 冲 器 更 新<br />
从 PTPER 缓 冲 寄 存 器 装 入 的 周 期 值<br />
新 PTPER 值 =007<br />
旧 PTPER 值 =004<br />
0<br />
1<br />
2<br />
3<br />
4<br />
0<br />
1<br />
2<br />
3<br />
4<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
写 入 PTPER 缓 冲 器 的 新 值 。<br />
图 17-10:<br />
上 / 下 计 数 模 式 下 PWM 周 期 缓 冲 器 更 新<br />
从 PTPER 缓 冲 寄 存 器<br />
装 入 的 周 期 值<br />
新 PTPER 值 =007<br />
6<br />
7<br />
6<br />
旧 PTPER 值 =004<br />
0<br />
1<br />
2<br />
3<br />
4<br />
3<br />
2<br />
1<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
写 入 PTPER 缓 冲 器 的 新 值 。<br />
DS39616B_CN 第 194 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.6 PWM 占 空 比<br />
PWM 占 空 比 由 PDCx (PDCxL 和 PDCxH) 寄 存 器 定<br />
义 。 共 有 4 个 PWM 占 空 比 寄 存 器 , 对 应 4 对 PWM 通<br />
道 。PDCxH 的 6 个 LSb 和 PDCxL 的 8 位 构 成 了 14 位<br />
分 辨 率 的 占 空 比 寄 存 器 。 PDCx 是 双 缓 冲 寄 存 器 , 用 于<br />
设 置 PWM 时 基 计 数 周 期 。<br />
17.6.1 PWM 占 空 比 寄 存 器<br />
四 个 14 位 特 殊 功 能 寄 存 器 用 于 指 定 PWM 模 块 的 占 空<br />
比 值 :<br />
• PDC0 (PDC0L 和 PDC0H)<br />
• PDC1 (PDC1L 和 PDC1H)<br />
• PDC2 (PDC2L 和 PDC2H)<br />
• PDC3 (PDC3L 和 PDC3H)<br />
每 个 占 空 比 寄 存 器 中 的 值 确 定 PWM 输 出 处 于 有 效 状 态<br />
的 时 间 。PDCn 的 高 12 位 保 持 了 PTMRH/L 中 真<br />
正 的 占 空 比 值 , 而 低 2 位 控 制 占 空 比 匹 配 在 哪 个 内 部 Q<br />
时 钟 上 发 生 。 如 图 17-11 所 示 , 这 2 位 值 自 Q 时 钟 译 码<br />
( 当 预 分 频 值 为 1:1 时 (PTCKPS = 00))。<br />
在 边 沿 对 齐 模 式 中 , PWM 周 期 从 Q1 开 始 , 之 后 当 占<br />
空 比 寄 存 器 与 PTMR 寄 存 器 匹 配 时 结 束 。 当 PDC 的 高<br />
12 位 等 于 PTMR, 且 低 2 位 等 于 Q1、 Q2、 Q3 或 Q4<br />
时 , 需 要 根 据 PDC 的 低 两 位 ( 当 预 分 频 值 为 1:1 或<br />
PTCKPS = 00 时 ) 考 虑 到 占 空 比 匹 配 。<br />
注 : 当 预 分 频 值 不 是 1:1 时 (PTCKPS ≠<br />
~00), PTMR 与 PDC 匹 配 时 , 在 指 令 周<br />
期 的 Q1 时 钟 发 生 占 空 比 匹 配 。<br />
每 个 比 较 单 元 都 有 允 许 改 写 PWM 信 号 的 逻 辑 。 此 逻 辑<br />
也 确 保 PWM 信 号 在 互 补 模 式 中 互 相 补 充 ( 带 死 区 插<br />
入 )( 参 阅 第 17.7 节 “ 死 区 发 生 器 ”)。<br />
图 17-11:<br />
占 空 比 比 较<br />
PTMRH<br />
PTMRL<br />
PTMR<br />
未 使 用<br />
PTMRH PTMRL Q-CLOCKS (1)<br />
<br />
未 使 用<br />
比 较 器<br />
PDCnH<br />
PDCnL<br />
PDCn<br />
PDCnH<br />
PDCnL<br />
注 1: 此 值 自 Q 时 钟 译 码 :<br />
00 = 占 空 比 匹 配 发 生 在 Q1<br />
01 = 占 空 比 匹 配 发 生 在 Q2<br />
10 = 占 空 比 匹 配 发 生 在 Q3<br />
11 = 占 空 比 匹 配 发 生 在 Q4<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 195 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.6.2 占 空 比 寄 存 器 缓 冲 器<br />
四 个 PWM 占 空 比 寄 存 器 是 双 缓 冲 , 允 许 PWM 输 出 无<br />
故 障 更 新 。 对 于 每 个 占 空 比 电 路 来 说 , 用 户 可 以 访 问 一<br />
个 的 占 空 比 缓 冲 寄 存 器 和 另 一 个 占 空 比 寄 存 器 , 它 用 来<br />
保 持 当 前 PWM 周 期 中 使 用 的 真 实 比 较 值 。<br />
在 边 沿 对 齐 的 PWM 输 出 模 式 中 , 只 要 发 生 PTMR 和<br />
PTPER 寄 存 器 匹 配 且 PTMR 复 位 ( 如 图 17-12 中 所<br />
示 ), 新 的 占 空 比 值 就 会 被 更 新 。 另 外 , 当 PWM 时 基<br />
被 禁 止 (PTEN = 0) 时 , 占 空 比 缓 冲 器 的 内 容 会 自 动<br />
装 入 占 空 比 寄 存 器 。<br />
如 果 PWM 时 基 为 上 / 下 计 数 模 式 , 当 PTMR 寄 存 器 值<br />
为 零 且 PWM 时 基 开 始 向 上 计 数 时 , 新 占 空 比 值 将 被 更<br />
新 。 当 PWM 时 基 被 禁 止 (PTEN = 0) 时 , 占 空 比 缓<br />
冲 器 的 内 容 被 自 动 装 入 占 空 比 寄 存 器 。 图 17-13 给 出 了<br />
上 / 下 计 数 模 式 下 发 生 占 空 比 更 新 的 时 序 。 在 此 模 式 中 ,<br />
修 改 生 效 之 前 , 最 多 整 个 PWM 周 期 都 可 用 于 计 算 和 装<br />
入 新 的 PWM 占 空 比 。<br />
如 果 PWM 时 基 为 双 更 新 上 / 下 计 数 模 式 , 当 PTMR 寄<br />
存 器 的 值 为 零 和 PTMR 寄 存 器 的 值 与 PTPER 寄 存 器 中<br />
的 值 相 匹 配 时 , 将 更 新 新 的 占 空 比 值 。 在 上 述 两 个 条 件<br />
发 生 时 , 占 空 比 缓 冲 器 的 内 容 被 自 动 装 入 占 空 比 寄 存<br />
器 。 图 17-14 给 出 了 双 更 新 的 上 / 下 计 数 模 式 下 的 占 空<br />
比 更 新 。 在 此 模 式 中 , 修 改 生 效 之 前 , 最 多 只 有 半 个<br />
PWM 周 期 可 用 于 计 算 和 装 入 新 的 PWM 占 空 比 。<br />
17.6.3 边 沿 对 齐 的 PWM<br />
当 PWM 时 基 为 自 由 运 行 模 式 或 单 步 模 式 时 , 由 此 模 块<br />
产 生 边 沿 对 齐 的 PWM 信 号 。 对 于 边 沿 对 齐 的 PWM 输<br />
出 , 给 定 PWM 通 道 输 出 的 周 期 由 PTPER 中 的 值 指 定 ,<br />
其 占 空 比 则 由 相 应 占 空 比 寄 存 器 指 定 ( 参 见<br />
图 17-12)。 在 周 期 开 始 时 (PTMR = 0), PWM 输 出<br />
驱 动 为 有 效 , 而 当 占 空 比 寄 存 器 中 的 值 与 PTMR 匹 配<br />
时 , 驱 动 为 无 效 。 如 PWM 周 期 部 分 所 述 , 当 PTMR 与<br />
PTPER 匹 配 时 , 将 开 始 新 的 周 期 。<br />
如 果 特 定 占 空 比 寄 存 器 中 的 值 为 零 , 相 应 PWM 引 脚 上<br />
的 输 出 对 整 个 PWM 周 期 无 效 。 此 外 , 如 果 占 空 比 寄 存<br />
器 的 值 大 于 PTPER 寄 存 器 中 的 值 , PWM 引 脚 上 的 输<br />
出 对 整 个 PWM 周 期 有 效 。<br />
图 17-12:<br />
PTPER<br />
PDC PTMR<br />
( 旧 ) 值<br />
PDC<br />
( 新 )<br />
0<br />
边 沿 对 齐 的 PWM<br />
锁 存 新 占 空 比<br />
占 空 比<br />
在 周 期<br />
开 始 时<br />
有 效<br />
周 期<br />
图 17-13:<br />
上 / 下 计 数 模 式 中 占 空 比 的 更 新 时 序<br />
从 缓 冲 寄 存 器 装 入 的 占 空 比 值<br />
PWM 输 出<br />
PTMR 值<br />
写 入 占 空 比 缓 冲 器 的 新 值<br />
DS39616B_CN 第 196 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-14:<br />
双 更 新 的 上 / 下 计 数 模 式 中 占 空 比 的 更 新 时 序<br />
从 缓 冲 寄 存 器 装 入 的 占 空 比 值<br />
PWM 输 出<br />
PTMR 值<br />
写 入 占 空 比 缓 冲 器 的 新 值<br />
17.6.4 中 心 对 齐 PWM<br />
当 PWM 时 基 在 上 / 下 计 数 模 式 中 进 行 配 置 时 , 此 模 块<br />
产 生 中 心 对 齐 的 PWM 信 号 ( 参 见 图 17-15)。 当 占 空<br />
比 寄 存 器 的 值 与 PTMR 的 值 匹 配 且 PWM 时 基 向 下 计 数<br />
时 (PTDIR = 1), PWM 比 较 输 出 被 驱 动 为 有 效 状 态 。<br />
当 PWM 时 基 向 上 计 数 (PTDIR = 0), 且 PTMR 寄 存<br />
器 中 的 值 与 占 空 比 值 匹 配 时 , PWM 比 较 输 出 被 驱 动 为<br />
无 效 状 态 。 如 果 特 定 占 空 比 寄 存 器 中 的 值 为 零 , 相 应<br />
PWM 引 脚 上 的 输 出 将 对 整 个 PWM 周 期 无 效 。 此 外 ,<br />
如 果 占 空 比 寄 存 器 的 值 大 于 或 等 于 PTPER 寄 存 器 的<br />
值 , PWM 引 脚 上 的 输 出 将 对 整 个 PWM 周 期 有 效 。<br />
注 :<br />
当 PWM 在 中 心 对 齐 模 式 启 动 时 , 周 期 寄 存<br />
器 (PTPER) 的 值 被 装 入 PWM 定 时 器 寄<br />
存 器 (PTMR) 且 PTMR 被 自 动 配 置 以 开<br />
始 向 下 计 数 。 这 样 可 以 确 保 所 有 PWM 信 号<br />
不 会 同 时 启 动 。<br />
图 17-15:<br />
启 动 中 心 对 齐 的 PWM<br />
周 期 /2<br />
PTPER<br />
占 空<br />
比<br />
PTMR<br />
值<br />
0<br />
启 动<br />
第 一 个<br />
PWM<br />
周 期<br />
占 空 比<br />
周 期<br />
周 期<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 197 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.6.5 互 补 PWM 运 行<br />
如 图 17-16 所 示 ,PWM 的 互 补 运 行 模 式 对 于 在 半 桥 配<br />
置 中 驱 动 一 个 或 多 个 功 率 开 关 很 有 用 处 。 此 逆 变 器 拓 扑<br />
常 见 于 三 相 感 应 电 机 、 无 刷 DC 电 机 或 三 相 不 间 断 电 源<br />
(UPS) 的 控 制 应 用 中 。 每 个 上 端 / 下 端 功 率 开 关 对 都<br />
由 一 个 互 补 的 PWM 信 号 源 提 供 信 号 。 在 器 件 开 关 时 ,<br />
也 可 以 选 择 插 入 死 区 ( 参 见 第 17.7 节 “ 死 区 发 生 器 ”),<br />
此 时 两 个 输 出 均 暂 时 失 效 。 在 互 补 模 式 中 , PWM 输 出<br />
的 占 空 比 比 较 单 元 分 配 如 下 :<br />
• PDC0 寄 存 器 控 制 PWM1/PWM0 输 出<br />
• PDC1 寄 存 器 控 制 PWM3/PWM2 输 出<br />
• PDC2 寄 存 器 控 制 PWM5/PWM4 输 出<br />
• PDC3 寄 存 器 控 制 PWM7/PWM6 输 出<br />
PWM1/3/5/7 是 主 PWM, 由 PDC 寄 存 器 控 制 ,<br />
PWM0/2/4/6 则 是 互 补 输 出 。 当 使 用 PWM 控 制 半 桥 时 ,<br />
奇 数 编 号 的 PWM 可 用 于 控 制 上 部 功 率 开 关 , 偶 数 编 号<br />
的 PWM 则 用 于 控 制 下 部 开 关 。<br />
图 17-16:<br />
+V<br />
PWM1<br />
PWM0<br />
PWM3<br />
PWM2<br />
互 补 PWM 输 出 的 典 型 负 载<br />
PWM5<br />
PWM4<br />
三 相<br />
负 载<br />
每 个 PWM I/O 引 脚 对 都 可 以 通 过 将 PWMCON0 寄 存 器<br />
中 相 应 的 PMODx 位 清 零 来 选 择 互 补 模 式 。 缺 省 情 况 下 ,<br />
PWM I/O 引 脚 在 所 有 的 器 件 复 位 时 被 置 为 互 补 模 式 。<br />
DS39616B_CN 第 198 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.7 死 区 发 生 器<br />
在 功 率 逆 变 器 应 用 中 , PWM 以 互 补 模 式 控 制 半 桥 电 路<br />
的 上 下 部 开 关 , 强 烈 建 议 使 用 死 区 插 入 。 死 区 插 入 可 以<br />
使 两 个 输 出 暂 时 无 效 。 在 因 TON 和 TOFF 特 性 引 起 的 功<br />
率 器 件 状 态 改 变 时 , 避 免 开 关 过 程 中 发 生 交 叠 。<br />
因 为 功 率 输 出 器 件 不 可 能 瞬 时 切 换 , 所 以 必 须 在 互 补 对<br />
中 的 PWM 输 出 关 闭 事 件 和 另 一 个 晶 体 管 开 关 开 启 事 件<br />
之 间 留 出 一 定 的 时 间 。 PWM 模 块 允 许 对 死 区 编 程 。 后<br />
续 部 分 详 细 说 明 了 死 区 电 路 。<br />
17.7.1 死 区 插 入<br />
PWM 模 块 的 每 个 互 补 输 出 对 都 有 一 个 6 位 的 向 下 计 数<br />
器 , 用 于 产 生 死 区 插 入 。 如 图 17-17 所 示 , 每 个 死 区 单<br />
元 都 有 与 占 空 比 比 较 输 出 连 接 的 一 个 上 升 / 下 降 沿 探 测<br />
器 。 当 发 生 PWM 边 沿 事 件 时 , 死 区 就 会 装 入 定 时 器 。<br />
根 据 上 升 沿 和 下 降 沿 的 不 同 , 在 定 时 器 向 下 计 数 至 零<br />
后 , 互 补 输 出 中 的 一 个 转 换 才 会 延 迟 到 那 时 进 行 。<br />
图 17-18 给 出 了 将 死 区 插 入 一 对 PWM 输 出 的 时 序 图 。<br />
图 17-17:<br />
PWM 输 出 对 的 死 区 控 制 单 元 框 图<br />
死 区<br />
选 择 位<br />
零 对 比<br />
FOSC<br />
时 钟 控 制<br />
和 预 分 频 器<br />
6 位 向 下 计 数 器<br />
奇 数 PWM 信 号 发 送 到<br />
输 出 控 制 电 路<br />
死 区<br />
预 分 频<br />
偶 数 PWM 信 号 发 送 到<br />
输 出 控 制 电 路<br />
死 区 寄 存 器<br />
占 空 比<br />
比 较 输 入<br />
图 17-18:<br />
互 补 PWM 的 死 区 插 入<br />
t d<br />
t d<br />
PDC1<br />
比 较<br />
输 出<br />
PWM1<br />
PWM0<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 199 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-5:<br />
DTCON: 死 区 控 制 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
DTPS1 DTPS0 DT5 DT4 DT3 DT2 DT1 DT0<br />
bit 7 bit 0<br />
bit 7-6 DTPS1:DTPS0: 死 区 单 元 A 预 分 频 值 选 择 位<br />
11 = 死 区 单 元 时 钟 源 为 FOSC/16。<br />
10 = 死 区 单 元 时 钟 源 为 FOSC/8。<br />
01 = 死 区 单 元 时 钟 源 为 FOSC/4。<br />
00 = 死 区 单 元 时 钟 源 为 FOSC/2。<br />
bit 5-0 DT5:DT0: 死 区 单 元 的 无 符 号 6 位 死 区 值 位 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1 = 置 位 0= 清 零 x= 未 知<br />
17.7.2 死 区 范 围<br />
通 过 在 DTCON 寄 存 器 中 指 定 输 入 时 钟 预 分 频 值 的 6 位<br />
无 符 号 值 , 选 择 死 区 单 元 提 供 的 死 区 量 。 为 了 根 据 器 件<br />
工 作 频 率 提 供 适 当 的 死 区 范 围 , 有 四 个 输 入 时 钟 预 分 频<br />
值 可 供 选 择 。FOSC/2、FOSC/4、FOSC/8 和 FOSC/16 为<br />
时 钟 预 分 频 值 选 项 , 可 以 用 DTCON 寄 存 器 中 的<br />
DTPS1:DTPS0 控 制 位 来 选 择 。<br />
在 选 择 了 合 适 的 预 分 频 值 后 , 将 6 位 无 符 号 值 装 入<br />
DTCON 来 调 整 死 区 。 发 生 如 下 任 何 事 件 时 , 死 区<br />
单 元 预 分 频 值 会 被 清 零 :<br />
• 由 于 占 空 比 比 较 边 沿 事 件 , 装 入 向 下 定 时 器 ;<br />
• 写 DTCON 寄 存 器 ; 或<br />
• 任 何 器 件 复 位 。<br />
17.7.3 递 减 死 区 计 数 器<br />
基 于 以 下 条 件 , 死 区 计 数 器 以 任 意 Q 时 钟 作 为 时 钟 源 。<br />
1. 当 如 下 情 况 发 生 时 , 死 区 计 数 器 以 Q1 作 为 时 钟<br />
源 :<br />
• DTPS 位 设 置 为 以 下 任 一 死 区 预 分 频 值 :<br />
Fosc/4、 FOSC/8 或 FOSC/16 ;<br />
• PWM 时 基 预 分 频 位 (PTCKPS) 设 置 为 以 下<br />
任 一 预 分 频 值 :FOSC/16、 FOSC/64 和<br />
FOSC/256。<br />
2. 当 PWM 时 基 预 分 频 位 设 置 为 1:1<br />
(PTCKPS1:PTCKPS0 = 00, FOSC/4), 且 死<br />
区 计 数 器 时 钟 源 频 率 为 FOSC/2<br />
(DTPS1:DTPS0 = 00), 死 区 计 数 器 由 一 对 Q<br />
时 钟 提 供 时 钟 源 。<br />
3. 根 据 占 空 比 寄 存 器 的 两 个 LSb 的 置 位 情 况 , 死 区<br />
计 数 器 可 使 用 所 有 其 他 Q 时 钟 作 为 时 钟 源 :<br />
• 如 果 在 Q1 或 Q3 发 生 PWM 占 空 比 匹 配 , 则<br />
死 区 计 数 器 使 用 Q1 和 Q3 作 为 时 钟 源 ;<br />
• 如 果 在 Q2 或 Q4 发 生 PWM 占 空 比 匹 配 , 则<br />
死 区 计 数 器 使 用 Q2 和 Q4 作 为 时 钟 源 。<br />
4. 当 DTPS1:DTPS0 位 设 置 为 其 他 死 区 预 分 频 值 设<br />
置 ( 即 FOSC/4、FOSC/8 或 FOSC/16), 且 PWM<br />
时 基 预 分 频 值 置 为 1:1 时 , 死 区 计 数 器 的 时 钟 源<br />
是 发 生 PWM 占 空 比 匹 配 时 相 应 的 Q 时 钟 。<br />
根 据 DTCON 寄 存 器 的 值 , 用 如 下 公 式 计 算 实 际 死 区 :<br />
死 区 = 死 区 值 / (FOSC/ 预 分 频 值 )<br />
表 17-3 给 出 的 示 例 为 死 区 范 围 与 所 选 输 入 时 钟 预 分 频<br />
值 和 器 件 工 作 频 率 的 函 数 关 系 。<br />
DS39616B_CN 第 200 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 17-3: 死 区 范 围 示 例 17.7.4 死 区 失 真<br />
Fosc<br />
(MHz)<br />
MIPS<br />
预 分 频 值<br />
选 择<br />
最 小 死 区<br />
最 大 死 区<br />
40 10 FOSC/2 50 ns 3.2 µs<br />
40 10 FOSC/4 100 ns 6.4 µs<br />
40 10 FOSC/8 200 ns 12.8 µs<br />
40 10 FOSC/16 400 ns 25.6 µs<br />
32 8 FOSC/2 62.5 ns 4 µs<br />
32 8 FOSC/4 125 ns 8 µs<br />
32 8 FOSC/8 250 ns 16 µs<br />
32 8 FOSC/16 500 ns 32 µs<br />
25 6.25 FOSC/2 80 ns 5.12 µs<br />
25 6.25 FOSC/4 160 ns 10.2 µs<br />
25 6.25 FOSC/8 320 ns 20.5 µs<br />
25 6.25 FOSC/16 640 ns 41 µs<br />
20 5 FOSC/2 100 ns 6.4 µs<br />
20 5 FOSC/4 200 ns 12.8 µs<br />
20 5 FOSC/8 400 25.6 µs<br />
20 5 FOSC/16 800 51.2 µs<br />
10 2.5 FOSC/2 200 ns 12.8 µs<br />
10 2.5 FOSC/4 400 ns 25.6 µs<br />
10 2.5 FOSC/8 800 ns 51.2 µs<br />
10 2.5 FOSC/16 1.6 µs 102.4 µs<br />
5 1.25 FOSC/2 400 ns 25.6 µs<br />
5 1.25 FOSC/4 800 ns 51.2 µs<br />
5 1.25 FOSC/8 1.6 µs 102.4 µs<br />
5 1.25 FOSC/16 3.2 µs 204.8 µs<br />
4 1 FOSC/2 .5 µs 32 µs<br />
4 1 FOSC/4 1 µs 64 µs<br />
4 1 FOSC/8 2 µs 128 µs<br />
4 1 FOSC/16 4 µs 256 µs<br />
注 1: 对 于 较 小 的 PWM 占 空 比 , 死 区 与 有 效<br />
PWM 时 间 的 比 可 能 会 很 大 。 在 这 种 情 况<br />
下 , 插 入 的 死 区 可 能 会 导 致 PWM 模 块 产<br />
生 的 波 形 发 生 失 真 。 至 少 保 持 PWM 占 空<br />
比 为 死 区 的 4 倍 , 用 户 就 可 以 确 保 将 死 区<br />
失 真 的 影 响 降 到 最 低 。 在 占 空 比 为 100%<br />
或 接 近 100% 时 , 会 产 生 类 似 影 响 。 在 应<br />
用 中 , 应 使 用 最 大 占 空 比 , 使 最 小 无 效 时<br />
间 至 少 是 死 区 的 4 倍 。 如 果 死 区 大 于 或 等<br />
于 其 中 一 个 PWM 输 出 对 的 占 空 比 , 则 该<br />
PWM 对 在 整 个 周 期 内 都 会 保 持 无 效 。<br />
2: 当 PWM 使 能 时 , 修 改 DTCON 中 的 死 区<br />
值 可 能 会 导 致 意 外 结 果 。 在 修 改 死 区 值 前<br />
应 先 禁 止 PWM (PTEN = 0)。<br />
17.8 独 立 PWM 输 出<br />
如 图 17-19 所 示 , 该 电 路 用 于 驱 动 开 关 磁 阻 电 机 的 一 个<br />
绕 组 , 也 就 是 说 , 独 立 PWM 模 式 可 用 于 驱 动 负 载 。 当<br />
PWMCON0 寄 存 器 中 相 应 的 PMOD 位 置 位 时 , 会 将 一<br />
对 特 定 PWM 输 出 配 置 为 独 立 输 出 模 式 。 当 模 块 工 作 在<br />
独 立 模 式 下 , 且 允 许 两 个 I/O 引 脚 同 时 有 效 时 , 在 PWM<br />
I/O 引 脚 之 间 不 实 现 死 区 控 制 。 此 模 式 还 用 于 驱 动 步 进<br />
电 机 。<br />
17.8.1 独 立 模 式 下 的 占 空 比 分 配<br />
在 独 立 模 式 下 , 每 个 占 空 比 发 生 器 都 与 给 定 的 PWM 输<br />
出 对 的 两 个 PWM 输 出 引 脚 连 接 。 奇 数 和 偶 数 PWM 输<br />
出 引 脚 都 由 单 个 PWM 占 空 比 发 生 器 驱 动 。 PWM1 和<br />
PWM0 由 PDC0 寄 存 器 设 置 占 空 比 的 PWM 通 道 驱 动 。<br />
相 应 地 ,PWM3 和 PWM2 对 应 的 是 PDC1,PWM5 和<br />
PWM4 对 应 的 是 PDC2, PWM7 和 PWM6 对 应 的 是<br />
PDC3, 参 见 图 17-3 和 寄 存 器 17-3。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 201 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.8.2 PWM 通 道 改 写<br />
使 用 OVDCOND 和 OVDCONS 寄 存 器 中 适 当 的 位 可 以<br />
手 工 改 写 每 个 PWM 通 道 的 PWM 输 出 。 对 于 每 个 工 作<br />
在 独 立 模 式 下 的 PWM 输 出 引 脚 , 用 户 可 以 选 择 下 列 信<br />
号 输 出 选 项 :<br />
• I/O 引 脚 输 出 PWM 信 号<br />
• I/O 引 脚 无 效<br />
• I/O 引 脚 有 效<br />
如 需 所 有 改 写 功 能 的 详 细 信 息 , 请 参 阅 第 17.10 节<br />
“PWM 输 出 改 写 ”。<br />
图 17-19:<br />
中 心 连 接 负 载<br />
17.9 单 脉 冲 PWM 工 作 模 式<br />
仅 在 边 沿 对 齐 模 式 下 可 以 使 用 单 脉 冲 PWM 工 作 模 式 。<br />
在 此 模 式 下 ,PWM 模 块 将 产 生 单 脉 冲 输 出 。 当 PTCON0<br />
寄 存 器 中 的 PTMOD1:PTMOD0 位 设 置 为 01 时 , 模 块<br />
将 被 配 置 为 单 脉 冲 工 作 模 式 。 此 工 作 模 式 对 于 驱 动 某 些<br />
类 型 的 ECM 很 有 用 。<br />
在 单 脉 冲 模 式 下 , 当 PTEN 位 置 位 时 ,PWM I/O 引 脚 被<br />
驱 动 为 有 效 状 态 。 当 PWM 定 时 器 与 占 空 比 寄 存 器 匹 配<br />
时 ,PWM I/O 引 脚 被 驱 动 为 无 效 状 态 。 当 PWM 定 时 器<br />
与 PTPER 寄 存 器 匹 配 时 , PTMR 寄 存 器 清 零 , 所 有 的<br />
有 效 PWM I/O 引 脚 被 驱 动 为 无 效 状 态 ,PTEN 位 清 零 ,<br />
如 果 相 应 的 中 断 位 置 位 , 还 会 产 生 一 个 中 断 。<br />
注 :<br />
+V<br />
PWM1<br />
负 载<br />
PWM0<br />
在 单 脉 冲 输 出 后 , PTPER 和 PDC 保 持 原<br />
值 。 要 产 生 另 一 个 单 脉 冲 周 期 , 只 需 要 将<br />
PTEN 位 置 位 使 能 。<br />
17.10 PWM 输 出 改 写<br />
无 论 占 空 比 比 较 单 元 的 状 态 如 何 , PWM 输 出 改 写 位 允<br />
许 用 户 手 工 将 PWM I/O 引 脚 驱 动 为 指 定 的 逻 辑 状 态 。 在<br />
控 制 各 种 ECM ( 如 BLDC 电 机 ) 时 , PWM 改 写 位 是<br />
很 有 用 的 。<br />
使 用 OVDCOND 和 OVDCONS 寄 存 器 定 义 PWM 改 写<br />
选 项 。OVDCOND 寄 存 器 包 含 8 位 (POVD7:POVD0),<br />
用 于 决 定 要 改 写 哪 个 PWM I/O 引 脚 。 OVDCONS 寄 存<br />
器 也 包 含 8 位 (POUT7:POUT0), 当 通 过 POVD 位 改<br />
写 特 定 输 出 时 , 这 8 位 决 定 PWM I/O 引 脚 的 状 态 。<br />
POVD 位 是 低 电 平 有 效 控 制 位 。 当 POVD 位 置 位 时 , 相<br />
应 的 POUT 位 并 不 影 响 PWM 输 出 。 换 句 话 说 , 与 置 位<br />
的 POVD 位 对 应 的 引 脚 的 PWM 占 空 比 由 PDC 寄 存 器<br />
决 定 。 当 一 个 POVD 位 清 零 后 , 相 应 PWM I/O 引 脚 的<br />
输 出 将 由 POUT 位 的 状 态 决 定 。 当 POUT 位 置 位 时 ,<br />
PWM 引 脚 将 被 驱 动 为 有 效 状 态 。 当 POUT 位 清 零 时 ,<br />
PWM 引 脚 将 被 驱 动 为 无 效 状 态 。<br />
17.10.1 互 补 输 出 模 式<br />
当 一 对 PWM I/O 引 脚 工 作 在 互 补 模 式 (PMODx = 0)<br />
时 , 对 偶 数 PWM I/O 引 脚 的 改 写 有 限 制 。 在 互 补 模 式<br />
下 , 如 果 通 过 将 相 应 的 POVD 位 清 零 且 OVDCOND 和<br />
OVDCONS 寄 存 器 中 的 POUT 位 置 位 使 偶 数 编 号 的 引<br />
脚 驱 动 为 有 效 , 则 输 出 信 号 将 被 强 制 作 为 引 脚 对 中 奇 数<br />
I/O 引 脚 的 互 补 ( 如 需 详 细 信 息 , 请 参 见 图 17-2)。<br />
17.10.2 改 写 同 步<br />
如 果 PWMCON1 寄 存 器 中 的 OSYNC 位 置 位 , 所 有 通<br />
过 OVDCOND 和 OVDCONS 寄 存 器 改 写 的 输 出 都 会 与<br />
PWM 时 基 同 步 。 在 下 列 情 况 中 会 发 生 同 步 输 出 改 写 :<br />
• PWM 处 于 边 沿 对 齐 模 式 , 当 PTMR 为 0 时 发 生<br />
同 步 。<br />
• PWM 处 于 中 心 对 齐 模 式 , 当 PTMR 为 0 且<br />
PTMR 与 PTPER 的 值 匹 配 时 发 生 同 步 。<br />
注<br />
1: 在 互 补 模 式 中 , 当 奇 数 通 道 被 驱 动 为 有 效<br />
时 , 不 会 因 错 误 或 改 写 事 件 强 制 偶 数 通 道<br />
驱 动 为 有 效 。 死 区 插 入 的 情 况 下 , 奇 数 通<br />
道 被 驱 动 为 有 效 状 态 前 , 偶 数 通 道 总 是 奇<br />
数 通 道 的 互 补 ( 参 见 图 17-20)。<br />
2: 即 使 PWM 通 道 处 于 改 写 模 式 , 死 区 也 会<br />
插 入 PWM 通 道 。<br />
DS39616B_CN 第 202 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 17-20:<br />
互 补 模 式 下 改 写 位<br />
1<br />
POUT0<br />
POUT1<br />
4<br />
5<br />
PWM1<br />
PWM0<br />
2<br />
3<br />
6<br />
7<br />
假 设 PVOD0 = 0 ; PVOD1 = 0 ; PMOD0 = 0<br />
1. 在 互 补 模 式 中 偶 数 改 写 位 无 效 。<br />
2. 奇 数 改 写 位 生 效 , 会 导 致 偶 数 PWM 失 效 。<br />
3. 死 区 插 入 。<br />
4. 奇 数 PWM 在 死 区 后 生 效 。<br />
5. 奇 数 改 写 位 失 效 , 会 导 致 奇 数 PWM 失 效 。<br />
6. 死 区 插 入 。<br />
7. 偶 数 PWM 在 死 区 后 生 效 。<br />
17.10.3 输 出 改 写 示 例<br />
图 17-21 给 出 了 使 用 PWM 输 出 改 写 功 能 时 , 可 能 会 产<br />
生 的 波 形 示 例 。 该 图 给 出 了 BLDC 电 机 的 6 步 换 相 序<br />
列 。 如 图 17-16 所 示 , 电 机 由 三 相 逆 变 器 驱 动 。 当 检 测<br />
到 相 应 的 转 子 位 置 时 , PWM 输 出 会 切 换 到 序 列 中 的 下<br />
一 个 换 相 状 态 。 在 此 例 中 , PWM 输 出 驱 动 为 特 定 的 逻<br />
辑 状 态 。 表 17-4 给 出 了 用 来 生 成 图 17-21 中 信 号 的<br />
OVDCOND 和 OVDCONS 寄 存 器 的 值 。<br />
PWM 占 空 比 寄 存 器 与 OVDCOND 和 OVDCONS 寄 存<br />
器 配 合 使 用 。 负 载 上 的 电 压 由 占 空 比 寄 存 器 控 制 , 换 相<br />
序 列 则 由 OVDCOND 和 OVDCONS 寄 存 器 控 制 。<br />
图 17-22 给 出 了 波 形 图 , 表 17-4 和 表 17-5 给 出 了 用 于<br />
生 成 所 需 信 号 的 OVDCOND 和 OVDCONS 寄 存 器 的 值 。<br />
寄 存 器 17-6:<br />
OVDCOND: 输 出 改 写 控 制 寄 存 器<br />
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1<br />
POVD7 (1) POVD6 (1) POVD5 POVD4 POVD3 POVD2 POVD1 POVD0<br />
bit 7 bit 0<br />
bit 7-0 POVD7:POVD0:PWM 输 出 改 写 位 (1)<br />
1 = PWM I/O 引 脚 输 出 由 占 空 比 寄 存 器 的 值 和 PWM 时 基 控 制 。<br />
0 = PWM I/O 引 脚 输 出 由 相 应 POUT 位 的 值 控 制 。<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 这 些 位 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 203 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-7:<br />
OVDCONS: 输 出 状 态 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
POUT7 (1) POUT6 (1) POUT5 POUT4 POUT3 POUT2 POUT1 POUT0<br />
bit 7 bit 0<br />
bit7-0<br />
POUT7:POUT0:PWM 手 工 输 出 位<br />
(1)<br />
1 = 当 相 应 PWM 输 出 改 写 位 清 零 时 , PWM I/O 引 脚 输 出 有 效 。<br />
0 = 当 相 应 PWM 输 出 改 写 位 清 零 时 , PWM I/O 引 脚 输 出 无 效 。<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 这 些 位 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
图 17-21: PWM 输 出 改 写 示 例 1<br />
图 17-22: PWM 输 出 改 写 示 例 2<br />
1 2 3 4 5 6<br />
1 2 3 4<br />
PWM5<br />
PWM4<br />
PWM3<br />
PWM2<br />
PWM1<br />
PWM0<br />
PWM7<br />
PWM6<br />
PWM5<br />
表 17-4: PWM 输 出 改 写 示 例 1<br />
状 态 OVDCOND(POVD) OVDCONS(POUT)<br />
1 00000000b 00100100b<br />
2 00000000b 00100001b<br />
3 00000000b 00001001b<br />
4 00000000b 00011000b<br />
5 00000000b 00010010b<br />
6 00000000b 00000110b<br />
PWM4<br />
PWM3<br />
PWM2<br />
PWM1<br />
PWM0<br />
表 17-5: PWM 输 出 改 写 示 例 2<br />
状 态 OVDCOND(POVD) OVDCONS(POUT)<br />
1 11000011b 00000000b<br />
2 11110000b 00000000b<br />
3 00111100b 00000000b<br />
4 00001111b 00000000b<br />
DS39616B_CN 第 204 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.11 PWM 输 出 与 极 性 控 制<br />
有 3 个 与 PWM 模 块 相 关 的 器 件 配 置 位 , 它 们 提 供<br />
CONFIG3L 配 置 寄 存 器 中 定 义 的 PWM 输 出 引 脚 控 制 。<br />
• HPOL 配 置 位<br />
• LPOL 配 置 位<br />
• PWMPIN 配 置 位<br />
这 3 个 配 置 位 与 PWMCON0 寄 存 器 中 的 3 个 PWM 使<br />
能 位 (PWMEN2:PWMEN0) 联 合 工 作 。 配 置 位 和 PWM<br />
使 能 位 确 保 发 生 器 件 复 位 后 , PWM 引 脚 处 于 正 确 的 状<br />
态 。<br />
17.11.1 输 出 引 脚 控 制<br />
按 应 用 所 需 , PWMEN2:PWMEN0 控 制 位 使 能 每 个<br />
PWM 输 出 引 脚 。<br />
所 有 的 PWM I/O 引 脚 都 是 通 用 I/O。 当 一 对 引 脚 使 能 为<br />
PWM 输 出 时 , 禁 止 控 制 引 脚 的 PORT 和 TRIS 寄 存 器 。<br />
如 需 详 细 信 息 , 请 参 见 图 17-23。<br />
图 17-23:<br />
PWM I/O 引 脚 框 图<br />
来 自 模 块 的<br />
PWM 信 号<br />
1<br />
PWM 引 脚 使 能<br />
0<br />
数 据 总 线<br />
WR PORT<br />
D Q<br />
CK Q<br />
数 据 锁 存 器<br />
VDD<br />
P<br />
D<br />
Q<br />
N<br />
I/O 引 脚<br />
WR TRIS<br />
CK<br />
Q<br />
VSS<br />
TRIS 锁 存 器<br />
RD TRIS<br />
TTL 或<br />
施 密 特<br />
触 发 器<br />
Q<br />
D<br />
EN<br />
RD PORT<br />
注 : I/O 引 脚 有 连 接 到 VDD 和 VSS 的 保 护 二 极 管 。 为 明 了 起 见 , 图 中 未 显 示 PWM 极 性 选 择 逻 辑 电 路 。<br />
17.11.2 输 出 极 性 控 制<br />
在 器 件 编 程 时 , 通 过 CONFIG3L 器 件 配 置 寄 存 器 中 的<br />
HPOL 和 LPOL 配 置 位 设 置 PWM I/O 引 脚 的 极 性 。HPOL<br />
配 置 位 设 置 的 是 上 半 PWM 输 出 (PWM1、 PWM3、<br />
PWM5 和 PWM7) 的 极 性 。 当 HPOL 清 零 (= 0) 时 ,<br />
极 性 为 高 电 平 有 效 ; 当 其 置 位 (= 1) 时 , 极 性 为 低 电<br />
平 有 效 。<br />
LPOL 配 置 位 设 置 的 是 下 半 PWM 输 出 (PWM0、<br />
PWM2、 PWM4 和 PWM6) 的 极 性 。 与 HPOL 一 样 ,<br />
当 LPOL 清 零 时 , 这 些 引 脚 为 高 电 平 有 效 。 当 LPOL 置<br />
位 时 , 极 性 为 低 电 平 有 效 。<br />
PWM 模 块 产 生 的 所 有 的 输 出 信 号 ( 包 括 由 于 故 障 输 入<br />
或 手 工 改 写 产 生 的 信 号 ) 都 会 引 用 极 性 控 制 位 ( 参 见 第<br />
17.10 节 “PWM 输 出 改 写 ”)。<br />
缺 省 极 性 配 置 位 是 使 PWM I/O 引 脚 输 出 极 性 为 高 电 平<br />
有 效 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 205 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.11.3 PWM 输 出 引 脚 复 位 状 态<br />
器 件 脱 离 复 位 状 态 后 ,PWMPIN 配 置 位 决 定 PWM 输 出<br />
引 脚 是 PWM 输 出 引 脚 还 是 数 字 I/O 引 脚 。 如 果 PWMPIN<br />
配 置 位 未 编 程 ( 缺 省 ),PWMEN2:PWMEN0 控 制 位 会<br />
在 器 件 复 位 时 清 零 。 因 此 , 所 有 的 PWM 输 出 都 将 为 三<br />
态 , 并 由 相 应 的 PORT 和 TRIS 寄 存 器 控 制 。 如 果<br />
PWMPIN 配 置 位 已 编 程 为 低 电 平 ,PWMEN2:PWMEN0<br />
控 制 位 会 在 器 件 复 位 时 置 位 :<br />
• 如 果 器 件 有 8 个 PWM 引 脚 (PIC18F4X31 器<br />
件 ), 则 PWMEN2:PWMEN0 = 101<br />
• 如 果 器 件 有 6 个 PWM 引 脚 (PIC18F2X31 器<br />
件 ), 则 PWMEN2:PWMEN0 = 100<br />
所 有 的 PWM 引 脚 将 使 能 为 PWM 输 出 引 脚 , 且 其 输 出<br />
极 性 由 HPOL 和 LPOL 配 置 位 定 义 。<br />
17.12 PWM 故 障 输 入<br />
有 两 种 与 PWM 模 块 相 关 的 故 障 输 入 。 输 入 故 障 引 脚 的<br />
主 要 作 用 是 禁 止 PWM 输 出 信 号 , 并 将 其 驱 动 为 无 效 状<br />
态 。 对 故 障 输 入 的 操 作 直 接 在 硬 件 中 执 行 , 这 样 的 话 ,<br />
当 发 生 故 障 时 , 可 以 快 速 做 出 反 应 , 且 PWM 输 出 被 置<br />
为 无 效 状 态 , 以 便 保 护 连 接 到 PWM 的 电 源 设 备 。<br />
PWM 故 障 输 入 为 FLTA 和 FLTB, 可 以 来 自 I/O 引 脚 、<br />
CPU 或 另 一 个 模 块 。 FLTA 和 FLTB 引 脚 为 低 电 平 有 效<br />
输 入 , 因 此 很 容 易 将 很 多 信 号 源 进 行 “ 或 ” 运 算 , 并 进<br />
入 到 同 一 个 输 入 。<br />
FLTCONFIG 寄 存 器 ( 寄 存 器 17-8) 定 义 FLTA 和 FLTB<br />
输 入 设 置 。<br />
注 :<br />
PWM 引 脚 的 无 效 状 态 与 HPOL 和 LPOL 配<br />
置 位 的 设 置 情 况 有 关 , 这 两 个 配 置 位 定 义<br />
了 PWM 输 出 的 有 效 / 无 效 状 态 。<br />
17.12.2 故 障 输 入 模 式<br />
当 PWM I/O 引 脚 因 故 障 输 入 而 改 写 为 无 效 时 ,<br />
FLTCONFIG 寄 存 器 中 的 FLTAMOD 和 FLTBMOD 位<br />
决 定 这 些 引 脚 的 模 式 。<br />
FLTCONFIG 寄 存 器 中 的 FLTAS 和 FLTBS 位 表 明 FaultA<br />
和 FaultB 输 入 的 状 态 。<br />
每 个 故 障 输 入 都 有 两 个 工 作 模 式 :<br />
• 无 效 模 式 (FLTxMOD = 0)<br />
这 是 灾 难 性 故 障 管 理 模 式 。 当 发 生 此 模 式 的 故 障<br />
时 , PWM 输 出 变 为 无 效 。 在 故 障 清 除 ( 故 障 输 入<br />
驱 动 为 高 电 平 ), 并 且 相 应 的 故 障 状 态 位 用 软 件 清<br />
零 前 , PWM 引 脚 保 持 无 效 状 态 。 故 障 状 态 位<br />
(FLTxS) 清 零 后 ,PWM 输 出 在 下 一 个 PWM 周 期<br />
开 始 时 立 即 使 能 。<br />
• 逐 周 期 模 式 (FLTxMOD = 1)<br />
当 发 生 此 模 式 的 故 障 时 , PWM 输 出 无 效 。 只 要 故<br />
障 引 脚 保 持 低 电 平 , PWM 输 出 将 保 持 定 义 的 故 障<br />
状 态 ( 所 有 的 PWM 输 出 无 效 )。 故 障 引 脚 驱 动 为<br />
高 电 平 后 , PWM 输 出 将 在 下 一 个 PWM 周 期 开 始<br />
时 返 回 正 常 工 作 状 态 , 且 FLTS 位 自 动 清 零 。<br />
17.12.1 故 障 引 脚 使 能 位<br />
将 FLTCONFIG 寄 存 器 中 的 FLTAEN 和 FLTBEN 位 置<br />
位 , 可 使 能 相 应 的 故 障 输 入 。 如 果 这 两 个 位 都 被 清 零 ,<br />
则 故 障 输 入 对 PWM 模 块 没 有 影 响 。<br />
DS39616B_CN 第 206 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.12.3 故 障 状 态 下 的 PWM 输 出<br />
当 处 于 故 障 状 态 ( 即 FLTA 和 / 或 FLTB 输 出 有 效 ) 时 ,<br />
PWM 输 出 信 号 被 驱 动 为 无 效 。 如 下 所 示 , 选 择 使 哪 个<br />
PWM 输 出 失 效 ( 在 故 障 状 态 下 ) 取 决 于 FLTCONFIG<br />
寄 存 器 的 FLTCON 位 :<br />
• FLTCON = 1。 当 FLTA 或 FLTB 拉 高 时 ,PWM 输<br />
入 ( 即 PWM[7:0]) 被 驱 动 为 无 效 状 态<br />
• FLTCON = 0。 当 FLTA 或 FLTB 拉 高 时 , 只 有<br />
PWM[5:0] 输 出 被 驱 动 为 无 效 , PWM[7:6] 保 持 有<br />
效 。<br />
注 : 在 故 障 状 态 下 , 只 禁 止 3 个 PWM 通 道 ,1<br />
个 PWM 通 道 保 持 使 能 ; 这 可 以 使 器 件 具 有<br />
至 少 使 能 一 个 PWM 通 道 的 灵 活 性 。 当<br />
FLTCON = 1, 且 出 现 故 障 状 态 时 , 所 有 的<br />
PWM 输 出 都 被 禁 止 ( 由 PWM 占 空 比 寄 存<br />
器 驱 动 )。<br />
17.12.4 调 试 模 式 下 的 PWM 输 出<br />
使 用 在 线 仿 真 器 (In-Circuit Emulator,ICE) 或 在 线 调<br />
试 器 (In-Circuit Debugger, ICD) 调 试 应 用 时 ,<br />
FLTCONFIG 寄 存 器 中 的 BRFEN 位 控 制 遇 到 断 点 时 故<br />
障 条 件 的 模 拟 。 BRFEN 置 为 高 , 允 许 在 断 点 产 生 故 障<br />
状 态 , 这 将 使 PWM 输 出 驱 动 为 无 效 状 态 。 这 样 做 的 目<br />
的 是 为 了 防 止 连 续 保 持 PWM 引 脚 的 状 态 , 在 这 种 情 况<br />
下 , 有 可 能 会 导 致 连 接 到 PWM 输 出 上 的 电 源 设 备 遭 到<br />
损 坏 。<br />
如 果 BRFEN = 0, 则 禁 止 在 断 点 产 生 故 障 状 态 。<br />
注 :<br />
在 开 发 固 件 并 使 用 了 高 功 率 电 路 时 , 如 果<br />
使 用 调 试 工 具 , 强 烈 建 议 使 能 在 断 点 产 生<br />
故 障 条 件 。 在 调 试 完 固 件 可 以 对 器 件 进 行<br />
编 程 时 , 就 可 以 禁 止 BRFEN 位 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 207 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 17-8:<br />
FLTCONFIG: 故 障 配 置 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
BRFEN FLTBS (1) FLTBMOD (1) FLTBEN (1) FLTCON FLTAS FLTA-MOD FLTAEN<br />
bit 7 bit 0<br />
bit 7 BRFEN: 断 点 故 障 使 能 位<br />
1 = 在 断 点 ( 即 , 仅 当 HDMIN = 1 时 ) 时 使 能 故 障 状 态<br />
0 = 禁 止 故 障 状 态<br />
bit 6 FLTBS: 故 障 B 状 态 位<br />
(1)<br />
1 = FLTB 拉 高 ;<br />
如 果 FLTBMOD = 0, 则 由 用 户 清 零<br />
如 果 FLTBMOD = 1, 当 FLTB 拉 低 时 , 在 新 周 期 开 始 时 自 动 清 零<br />
0 = 无 故 障<br />
bit 5 FLTBMOD: 故 障 B 模 式 位 (1)<br />
1 = 逐 周 期 模 式 : 引 脚 在 当 前 PWM 周 期 剩 余 时 间 或 FLTB 拉 低 前 无 效 。 当 FLTB 无 效 ( 没 有 出<br />
现 故 障 ) 时 , FLTBS 自 动 清 零 。<br />
0 = 无 效 模 式 : 引 脚 失 效 ( 灾 难 性 失 败 ), 直 到 FLTB 被 拉 低 且 FLTBS 仅 由 用 户 清 零 。<br />
bit 4 FLTBEN: 故 障 B 使 能 位 (1)<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
1 = 故 障 B 使 能<br />
0 = 故 障 B 禁 止<br />
FLTCON: 故 障 配 置 位<br />
1 = FLTA 和 / 或 FLTB 使 所 有 的 PWM 输 出 失 效<br />
0 = FLTA 或 FLTB 使 PWM[5:0] 失 效<br />
FLTAS: 故 障 A 状 态 位<br />
1 = FLTA 拉 高 ;<br />
如 果 FLTAMOD = 0, 则 由 用 户 清 零<br />
如 果 FLTAMOD = 1, 当 FLTA 拉 低 时 , 在 新 周 期 开 始 时 自 动 清 零<br />
0 = 无 故 障<br />
FLTAMOD: 故 障 A 模 式 位<br />
1 = 逐 周 期 模 式 : 引 脚 在 当 前 PWM 周 期 剩 余 时 间 或 FLTA 拉 低 前 无 效 。 FLTAS 会 自 动 清 零 。<br />
0 = 无 效 模 式 : 引 脚 失 效 ( 灾 难 性 失 败 ), 直 到 FLTA 被 拉 低 且 FLTAS 仅 由 用 户 清 零 。<br />
FLTAEN: 故 障 A 使 能 位<br />
1 = 故 障 A 使 能<br />
0 = 故 障 A 禁 止<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 这 些 位 清 零 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 208 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
17.13 PWM 更 新 锁 定<br />
对 于 复 杂 的 PWM 应 用 , 在 给 定 时 间 内 , 用 户 最 多 可 能<br />
需 要 写 4 个 占 空 比 寄 存 器 和 时 基 周 期 寄 存 器 PTPER。 在<br />
某 些 应 用 中 , 在 装 入 新 占 空 比 和 周 期 值 供 模 块 使 用 前 写<br />
入 所 有 缓 冲 寄 存 器 是 很 重 要 的 。<br />
可 选 择 使 能 PWM 更 新 锁 定 功 能 , 因 此 用 户 可 以 指 定 何<br />
时 新 占 空 比 缓 冲 器 值 有 效 。 将 PWMCON1 寄 存 器 中 的<br />
UDIS 控 制 位 置 位 可 以 使 能 PWM 更 新 锁 定 功 能 。 此 位<br />
对 所 有 占 空 比 缓 冲 寄 存 器 和 PWM 时 基 周 期 缓 冲 器<br />
PTPER 都 有 影 响 。<br />
执 行 PWM 更 新 锁 定 :<br />
1. 将 UDIS 位 置 位 。<br />
2. 如 果 适 用 , 写 所 有 占 空 比 寄 存 器 和 PTPER。<br />
3. 将 UDIS 位 清 零 , 重 新 使 能 更 新 。<br />
4. 这 样 , UDIS 位 清 零 后 , 缓 冲 器 值 将 装 入 真 正 的<br />
寄 存 器 。 这 会 同 步 装 入 寄 存 器 。<br />
17.14.1 特 殊 事 件 触 发 器 使 能<br />
PWM 模 块 总 是 会 产 生 特 殊 事 件 触 发 脉 冲 。 此 信 号 也 可<br />
以 由 A/D 模 块 选 用 。 如 需 详 细 信 息 , 请 参 阅 第 20.0 节<br />
“10 位 高 速 模 数 转 换 器 (A/D) 模 块 ”。<br />
17.14.2 特 殊 事 件 触 发 器 后 分 频 器<br />
PWM 特 殊 事 件 触 发 器 有 一 个 后 分 频 器 , 其 后 分 频 值 为<br />
1:1 到 1:16。 通 过 写 PWMCON1 寄 存 器 中 的<br />
SEVOPS3:SEVOPS0 控 制 位 可 以 配 置 后 分 频 值 。<br />
在 任 何 对 SEVTCMP 寄 存 器 对 的 写 操 作 或 器 件 复 位 时 ,<br />
特 殊 事 件 输 出 后 分 频 器 清 零 。<br />
17.14 PWM 特 殊 事 件 触 发 器<br />
PWM 模 块 有 一 个 特 殊 事 件 触 发 器 功 能 , 可 以 让 A/D 转<br />
换 与 PWM 时 基 同 步 。 A/D 采 样 和 转 换 时 间 可 以 通 过 编<br />
程 在 PWM 周 期 内 的 任 意 时 间 点 发 生 。 特 殊 事 件 触 发 器<br />
可 以 让 用 户 在 采 集 A/D 转 换 结 果 和 更 新 占 空 比 值 时 的 延<br />
迟 最 小 化 。<br />
PWM 16 位 特 殊 事 件 触 发 器 寄 存 器 SEVTCMP ( 高 或<br />
低 ) 和 PWMCON1 寄 存 器 中 的 5 个 控 制 位 用 于 控 制 其<br />
操 作 。<br />
应 当 发 生 的 特 殊 事 件 触 发 器 的 PTMR 值 装 入 SEVTCMP<br />
寄 存 器 对 。PWMCON1 寄 存 器 中 的 SEVTDIR 位 指 定 当<br />
PWM 时 基 处 于 向 上 或 向 下 计 数 模 式 时 的 计 数 相 位 。<br />
如 果 SEVTDIR 位 清 零 , 特 殊 事 件 触 发 器 将 在 PWM 时<br />
基 的 向 上 计 数 周 期 发 生 。 如 果 SEVTDIR 位 置 位 , 特 殊<br />
事 件 触 发 器 将 在 PWM 时 基 的 向 下 计 数 周 期 发 生 。<br />
SEVTDIR 位 仅 在 PWM 定 时 器 处 于 向 上 或 向 下 计 数 模<br />
式 时 才 有 效 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 209 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 17-6:<br />
与 功 率 控 制 PWM 模 块 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR 时 的 值<br />
所 有 其 他<br />
复 位 时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
IPR3 - - - PTIP IC3DRIP IC2QEIP IC1IP TMR5IP ---1 1111 ---1 1111<br />
PIE3 - - - PTIE IC3DRIE IC2QEIE IC1IE TMR5IE ---0 0000 ---0 0000<br />
PIR3 - - - PTIF IC3DRIF IC2QEIF IC1IF TMR5IF ---0 0000 ---0 0000<br />
PTCON0 PTOPS3 PTOPS2 PTOPS1 PTOPS0 PTCKPS1 PTCKPS0 PTMOD1 PTMOD0 0000 0000 0000 0000<br />
PTCON1 PTEN PTDIR - - - - - - 00-- ---- 00-- ----<br />
PTMRL (1) PWM 时 基 ( 低 8 位 ) 0000 0000 0000 0000<br />
PTMRH (1) - - - - PWM 时 基 ( 高 4 位 ) ---- 0000 ---- 0000<br />
PTPERL (1) PWM 时 基 周 期 ( 低 8 位 ) 1111 1111 1111 1111<br />
PTPERH (1) - - - - PWM 时 基 周 期 ( 高 4 位 ) ---- 1111 ---- 1111<br />
SEVTCMPL (1) PWM 特 殊 事 件 比 较 ( 低 8 位 ) 0000 0000 0000 0000<br />
SEVTCMPH (1) - - - - PWM 特 殊 事 件 比 较 ( 高 4 位 ) ---- 0000 ---- 0000<br />
PWMCON0 - PWMEN2 PWMEN1 PWMEN0 PMOD3 (2) PMOD2 PMOD1 PMOD0 -101 0000 -101 0000<br />
PWMCON1 SEVOPS3 SEVOPS2 SEVOPS1 SEVOPS0 SEVTDIR - UDIS OSYNC 0000 0-00 0000 0-00<br />
DTCON DTPS1 DTPS0 死 区 A 值 寄 存 器 0000 0000 0000 0000<br />
FLTCONFIG BRFEN FLTBS (2) FLTBMOD (2) FLTBEN (2) FLTCON FLTAS FLTAMOD FLTAEN 0000 0000 0000 0000<br />
OVDCOND POVD7 (2) POVD6 (2) POVD5 POVD4 POVD3 POVD2 POVD1 POVD0 1111 1111 1111 1111<br />
OVDCONS POUT7 (2) POUT6 (2) POUT5 POUT4 POUT3 POUT2 POUT1 POUT0 0000 0000 0000 0000<br />
PDC0L (1) PWM 占 空 比 0L 寄 存 器 ( 低 8 位 ) --00 0000 --00 0000<br />
PDC0H (1) - - PWM 占 空 比 0H 寄 存 器 ( 高 6 位 ) 0000 0000 0000 0000<br />
PDC1L (1) PWM 占 空 比 1L 寄 存 器 ( 低 8 位 ) 0000 0000 0000 0000<br />
PDC1H (1) - - PWM 占 空 比 1H 寄 存 器 ( 高 6 位 ) --00 0000 --00 0000<br />
PDC2L (1) PWM 占 空 比 2L 寄 存 器 ( 低 8 位 ) 0000 0000 0000 0000<br />
PDC2H (1) - - PWM 占 空 比 2H 寄 存 器 ( 高 6 位 ) --00 0000 --00 0000<br />
PDC3L (1,2) PWM 占 空 比 3L 寄 存 器 ( 低 8 位 ) 0000 0000 0000 0000<br />
PDC3H (1,2) - - PWM 占 空 比 3H 寄 存 器 ( 高 6 位 ) --00 0000 --00 0000<br />
图 注 : -= 未 实 现 , u= 不 变 。 阴 影 单 元 格 表 示 功 率 控 制 PWM 未 使 用 。<br />
注 1: 双 缓 冲 寄 存 器 对 。 有 关 寄 存 器 读 写 的 内 容 请 参 见 正 文 。<br />
2: PIC18F2X31 器 件 中 未 实 现 ; 保 持 这 些 位 清 零 。 给 出 的 是 PIC18F4X31 器 件 的 复 位 值 。<br />
DS39616B_CN 第 210 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
18.0 同 步 串 行 端 口 (SSP) 模 块<br />
18.1 SSP 模 块 概 述<br />
同 步 串 行 端 口 (Synchronous Serial Port, SSP) 模 块<br />
是 用 于 与 其 他 外 设 或 单 片 机 器 件 通 讯 的 非 常 有 用 的 串 行<br />
接 口 。 这 些 外 设 器 件 包 括 串 行 EEPROM、 移 位 寄 存 器 、<br />
显 示 驱 动 器 和 A/D 转 换 器 等 。SSP 模 块 可 以 工 作 在 以 下<br />
两 种 模 式 之 一 :<br />
• 串 行 外 设 接 口 (Serial Peripheral Interface,<br />
SPI)<br />
• 内 部 互 联 总 线 (Inter-Integrated Circuit, I 2 C)<br />
有 关 SSP 模 块 的 I 2 C 工 作 原 理 概 述 和 其 他 信 息 可 以 参 考<br />
《PICmicro ®<br />
中 档 单 片 机 系 列 参 考 手 册 》<br />
(DS33023A_CN)。<br />
参 见 应 用 笔 记 AN578,“Use of the SSP module in the<br />
I 2 C Multi-Master Environment”(DS00578)。<br />
18.2 SPI 模 式<br />
本 节 包 括 寄 存 器 定 义 和 SPI 模 式 的 工 作 特 点 。 有 关 SPI<br />
模 块 的 其 他 信 息 , 可 以 参 考 《PICmicro ® 中 档 单 片 机 系<br />
列 参 考 手 册 》(DS33023A_CN)。<br />
SPI 模 式 允 许 同 时 进 行 同 步 收 发 8 位 数 据 。 要 完 成 通 讯 ,<br />
通 常 会 使 用 3 个 引 脚 :<br />
• 串 行 数 据 输 出 (SDO) – RC7/RX/DT/SDO<br />
• 串 行 数 据 输 入 (SDI) – RC4/INT1/SDI/SDA<br />
• 串 行 时 钟 (SCK) – RC5/INT2/SCK/SCL<br />
此 外 , 处 于 从 动 工 作 模 式 时 , 可 能 会 用 到 第 4 个 引 脚 。<br />
• 从 动 选 择 (SS) –RC6/TX/CK/SS<br />
当 初 始 化 SPI 时 , 需 要 指 定 几 个 选 项 。 需 通 过 对<br />
SSPCON 寄 存 器 中 相 应 的 控 制 位 (SSPCON) 和<br />
SSPSTAT 进 行 编 程 完 成 。 这 些 控 制 位 允 许 指 定 以<br />
下 选 项 :<br />
• 主 控 模 式 (SCK 作 为 时 钟 输 出 )<br />
• 从 动 模 式 (SCK 作 为 时 钟 输 入 )<br />
• 时 钟 极 性 (SCK 的 空 闲 状 态 )<br />
• 时 钟 边 沿 ( 在 SCK 上 升 沿 / 下 降 沿 输 出 数 据 )<br />
• 时 钟 速 率 ( 仅 主 控 模 式 )<br />
• 从 动 选 择 模 式 ( 仅 从 动 模 式 )<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 211 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 18-1: SSPSTAT: 同 步 串 行 端 口 状 态 寄 存 器 ( 地 址 94h)<br />
R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0<br />
SMP CKE D/A P S R/W UA BF<br />
bit 7 bit 0<br />
bit 7 SMP:SPI 数 据 输 入 采 样 相 位 位<br />
SPI 主 控 模 式 :<br />
1= 在 数 据 输 出 结 束 时 采 样 输 入 数 据<br />
0= 在 数 据 输 出 中 间 时 采 样 输 入 数 据 (Microwire ® )<br />
SPI 从 动 模 式 :<br />
当 SPI 用 于 从 动 模 式 时 , 必 须 将 SMP 清 零<br />
I 2 C 模 式 :<br />
此 位 必 须 保 持 清 零<br />
bit 6 CKE:SPI 时 钟 边 沿 选 择 位 ( 图 18-2、 图 18-3 和 图 18-4)<br />
SPI 模 式 , CKP=0:<br />
1= 在 SCK 的 上 升 沿 发 送 数 据 (Microwire ® 备 选 方 案 )<br />
0= 在 SCK 的 下 降 沿 发 送 数 据<br />
SPI 模 式 , CKP=1:<br />
1= 在 SCK 的 下 降 沿 发 送 数 据 (Microwire ® 缺 省 方 案 )<br />
0= 在 SCK 的 上 升 沿 发 送 数 据<br />
I 2 C 模 式 :<br />
此 位 必 须 保 持 清 零<br />
bit 5 D/A: 数 据 / 地 址 位 ( 仅 I 2 C 模 式 )<br />
1= 表 示 接 收 或 发 送 的 最 后 字 节 是 数 据<br />
0= 表 示 接 收 或 发 送 的 最 后 字 节 是 地 址<br />
bit 4 P: 停 止 位 ( 仅 I 2 C 模 式 )<br />
当 SSP 模 块 禁 止 或 最 后 检 测 到 了 停 止 位 时 , 此 位 会 清 零 。<br />
SSPEN 清 零 。<br />
1= 表 示 最 后 检 测 到 了 停 止 位 ( 此 位 在 复 位 时 为 0)<br />
0= 最 后 没 有 检 测 到 停 止 位<br />
bit 3 S: 起 始 位 ( 仅 I 2 C 模 式 )<br />
当 SSP 模 块 禁 止 或 最 后 检 测 到 了 起 始 位 时 , 此 位 会 清 零 。<br />
SSPEN 清 零 。<br />
1= 表 示 最 后 检 测 到 了 起 始 位 ( 此 位 在 复 位 时 为 0)<br />
0= 最 后 没 有 检 测 到 起 始 位<br />
bit 2 R/W: 读 / 写 位 信 息 ( 仅 I 2 C 模 式 )<br />
此 位 保 存 最 后 一 个 地 址 匹 配 后 的 R/W 位 信 息 。 此 位 仅 在 地 址 匹 配 到 下 一 个 起 始 位 、 停 止 位 或<br />
ACK 位 之 间 有 效 。<br />
1= 读<br />
0= 写<br />
bit 1 UA: 更 新 地 址 位 ( 仅 10 位 I 2 C 模 式 )<br />
1= 表 示 用 户 需 要 更 新 SSPADD 寄 存 器 中 的 地 址<br />
0= 不 需 要 更 新 地 址<br />
bit 0 BF: 缓 冲 器 满 状 态 位<br />
接 收 (SPI 和 I 2 C 模 式 ):<br />
1= 接 收 完 成 , SSPBUF 满<br />
0= 接 收 未 完 成 , SSPBUF 空<br />
发 送 ( 仅 I 2 C 模 式 ):<br />
1= 正 在 发 送 , SSPBUF 满<br />
0= 发 送 完 成 , SSPBUF 空<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 212 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 18-2: SSPCON: 同 步 串 行 端 口 控 制 寄 存 器 ( 地 址 14h)<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0<br />
bit 7 bit 0<br />
bit 7<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3-0<br />
WCOL: 写 冲 突 检 测 位<br />
1= 正 在 发 送 前 一 个 字 时 对 SSPBUF 寄 存 器 进 行 写 操 作<br />
( 必 须 用 软 件 清 零 )<br />
0= 无 冲 突<br />
SSPOV: 接 收 溢 出 指 示 位<br />
在 SPI 模 式 下 :<br />
1= SSPBUF 寄 存 器 中 保 存 有 前 一 数 据 时 , 接 收 到 新 的 字 节 。 如 果 发 生 溢 出 , SSPSR<br />
中 的 数 据 会 丢 失 。 仅 在 从 动 模 式 可 能 会 发 生 溢 出 。 即 使 只 是 发 送 数 据 , 用 户 也 必 须<br />
读 SSPBUF, 以 避 免 置 位 溢 出 位 。 在 主 控 模 式 下 , 溢 出 位 未 置 位 , 因 为 每 个 新 接 收<br />
( 和 发 送 ) 的 字 节 都 是 通 过 写 SSPBUF 寄 存 器 开 始 的 。<br />
0= 无 溢 出<br />
在 I 2 C 模 式 中 :<br />
1= 当 SSPBUF 寄 存 器 中 仍 保 存 原 先 的 数 据 时 , 接 收 到 新 字 节 。 在 发 送<br />
模 式 下 可 以 忽 略 SSPOV。 两 种 模 式 下 SSPOV 都 必 须 用 软 件 清 零 。<br />
0= 无 溢 出<br />
SSPEN: 同 步 串 行 端 口 使 能 位<br />
在 SPI 模 式 中 :<br />
1= 使 能 串 行 端 口 , 并 将 SCK、 SDO 和 SDI 配 置 为 串 行 端 口 引 脚<br />
0= 禁 止 串 行 端 口 , 并 将 这 些 引 脚 配 置 为 I/O 端 口 引 脚<br />
在 I 2 C 模 式 中 :<br />
1= 使 能 串 行 端 口 , 并 将 SDA 和 SCL 引 脚 配 置 为 串 行 端 口 引 脚<br />
0= 禁 止 串 行 端 口 , 并 将 这 些 引 脚 配 置 为 I/O 端 口 引 脚<br />
在 两 种 模 式 下 , 当 使 能 时 , 这 些 引 脚 必 须 被 正 确 配 置 为 输 入 或 输 出 引 脚 。<br />
CKP: 时 钟 极 性 选 择 位<br />
在 SPI 模 式 中 :<br />
1= 高 电 平 为 时 钟 的 空 闲 状 态 (Microwire ® 缺 省 )<br />
0= 低 电 平 为 时 钟 的 空 闲 状 态 (Microwire ® 备 选 )<br />
在 I 2 C 模 式 中 :<br />
SCK 释 放 控 制<br />
1= 使 能 时 钟<br />
0= 保 持 时 钟 低 电 平 ( 时 钟 延 长 )。( 用 于 确 保 数 据 建 立 时 间 。)<br />
SSPM3:SSPM0: 同 步 串 行 端 口 模 式 选 择 位<br />
0000 = SPI 主 控 模 式 , 时 钟 =FOSC/4<br />
0001 = SPI 主 控 模 式 , 时 钟 =FOSC/16<br />
0010 = SPI 主 控 模 式 , 时 钟 =FOSC/64<br />
0011 = SPI 主 控 模 式 , 时 钟 =TMR2 输 出 /2<br />
0100 = SPI 从 动 模 式 , 时 钟 =SCK 引 脚 。 使 能 SS 引 脚 控 制 。<br />
0101 = SPI 从 动 模 式 , 时 钟 =SCK 引 脚 。 禁 止 SS 引 脚 控 制 。 SS 可 作 为 I/O 引 脚 使 用 。<br />
0110 = I 2 C 从 动 模 式 , 7 位 地 址<br />
0111 = I 2 C 从 动 模 式 , 10 位 地 址<br />
1011 = I 2 C 固 件 控 制 主 控 模 式 ( 从 单 元 空 闲 )<br />
1110 = I 2 C 从 动 模 式 , 7 位 地 址 , 且 起 始 位 和 停 止 位 中 断 使 能<br />
1111 = I 2 C 从 动 模 式 , 10 位 地 址 , 且 起 始 位 和 停 止 位 中 断 使 能<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 213 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 18-1: SSP 框 图 (SPI 模 式 ) 要 使 能 串 行 端 口 , 必 须 将 SSP 使 能 位 SSPEN<br />
读<br />
写<br />
(SSPCON) 置 位 。 要 复 位 或 重 新 配 置 SPI 模 式 ,<br />
内 部<br />
需 将 SSPEN 位 清 零 , 重 新 初 始 化 SSPCON 寄 存 器 , 然<br />
数 据 总 线<br />
后 将 SSPEN 位 置 位 。 这 样 做 会 将 SDI、SDO、SCK 和<br />
SS 引 脚 配 置 为 串 行 端 口 引 脚 。 要 使 这 些 引 脚 作 为 串 行<br />
端 口 , 必 须 对 它 们 的 数 据 方 向 位 ( 在 TRISC 寄 存 器 中 )<br />
SSPBUF 寄 存 器<br />
正 确 编 程 。 即 :<br />
RC4/SDI/SDA<br />
RC5/SDO<br />
外 设 OE<br />
bit0<br />
SSPSR 寄 存 器<br />
移 位<br />
时 钟<br />
• 必 须 将 SDI 的 TRISC 置 位<br />
• 必 须 将 SDO 的 TRISC 清 零<br />
• 必 须 将 SCK ( 主 控 模 式 ) 的 TRISC 清 零<br />
• 必 须 将 SCK ( 从 动 模 式 ) 的 TRISC 置 位<br />
• 必 须 将 SS 的 TRISA 置 位 , 而 且 必 须 配 置<br />
ADCON 使 RA5 作 为 数 字 I/O<br />
.<br />
RA5/SS/AN4<br />
RC3/SCK/<br />
SCL<br />
SS<br />
控 制<br />
使 能<br />
边 沿<br />
选 择<br />
边 沿<br />
选 择<br />
TRISC<br />
2<br />
时 钟 选 择<br />
SSPM3:SSPM0<br />
4<br />
TMR2 输 出<br />
2<br />
预 分 频 器<br />
4, 16, 64<br />
TCY<br />
注<br />
1: 当 SPI 处 于 从 动 模 式 且 SS 引 脚 控 制 使 能<br />
(SSPCON=0100) 时 , 如 果 SS 引<br />
脚 设 置 为 VDD, SPI 模 块 将 会 复 位 。<br />
2: 如 果 使 用 SPI 从 动 模 式 , 且 CKE = 1, 则<br />
必 须 使 能 SS 引 脚 控 制 。<br />
3: 当 SPI 处 于 从 动 模 式 且 使 能 SS 引 脚 控 制<br />
(SSPCON=0100) 时 , SS 引 脚 的<br />
状 态 可 能 会 影 响 从 TRISC 位 读 取 的 状<br />
态 。 从 SSP 模 块 向 PORTC 发 送 的 外 设<br />
OE 信 号 控 制 从 TRISC 位 读 取 的 状 态<br />
( 如 需 了 解 PORTC 的 更 多 信 息 , 请 参 阅<br />
第 10.3 节 “PORTC、TRISC 和 LATC 寄<br />
存 器 ”)。 如 果 对 TRISC 寄 存 器 执 行 读 -<br />
修 改 - 写 指 令 ( 例 如 BSF), 而 SS 引 脚<br />
处 于 高 电 平 , 这 将 使 TRISC 位 置 位 ,<br />
从 而 禁 止 SDO 输 出 。<br />
DS39616B_CN 第 214 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 18-2:<br />
SPI 模 式 时 序 , 主 控 模 式<br />
SCK (CKP = 0,<br />
CKE = 0)<br />
SCK (CKP = 0,<br />
CKE = 1)<br />
SCK (CKP = 1,<br />
CKE = 0)<br />
SCK (CKP = 1,<br />
CKE = 1)<br />
SDO<br />
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />
SDI (SMP = 0)<br />
SDI (SMP = 1)<br />
bit7<br />
bit0<br />
SSPIF<br />
bit7<br />
bit0<br />
图 18-3: SPI 模 式 时 序 ( 从 动 模 式 , CKE = 0)<br />
SS( 可 选 )<br />
SCK (CKP=0)<br />
SCK (CKP=1)<br />
SDO<br />
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />
SDI (SMP=0)<br />
bit7<br />
bit0<br />
SSPIF<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 215 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 18-4: SPI 模 式 时 序 ( 从 动 模 式 , CKE = 1)<br />
SS<br />
SCK (CKP = 0)<br />
SCK (CKP = 1)<br />
SDO<br />
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />
SDI (SMP = 0)<br />
SSPIF<br />
bit7<br />
bit0<br />
表 18-1:<br />
与 SPI 工 作 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和<br />
BOR<br />
时 的 值<br />
所 有 其 他<br />
复 位 时<br />
的 值<br />
INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u<br />
PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000<br />
PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000<br />
TRISC PORTC 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
SSPBUF 同 步 串 行 端 口 接 收 缓 冲 器 / 发 送 寄 存 器 xxxx xxxx uuuu uuuu<br />
SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000<br />
TRISA - - PORTA 数 据 方 向 寄 存 器 --11 1111 --11 1111<br />
SSP-STAT SMP CKE D/A P S R/W UA BF 0000 0000 0000 0000<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 SSP 未 在 SPI 模 式 中 使 用 。<br />
注 1: 在 PIC16F73/76 中 保 留 了 PSPIE 和 PSPIF 位 ; 应 该 将 这 些 位 保 持 为 零 。<br />
DS39616B_CN 第 216 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
18.3 SSP I 2 C 工 作 原 理<br />
除 了 全 局 呼 叫 支 持 外 ,I 2 C 模 式 的 SSP 模 块 几 乎 完 全 实<br />
现 了 所 有 的 从 动 功 能 , 并 提 供 了 起 始 位 和 停 止 位 的 硬 件<br />
中 断 , 帮 助 固 件 实 现 主 控 功 能 。SSP 模 块 实 现 标 准 模 式<br />
规 范 及 7 位 和 10 位 寻 址 。<br />
数 据 传 输 使 用 了 两 个 引 脚 。 它 们 是 SCK/SCL 引 脚 和 SDI/<br />
SDA 引 脚 , 即 时 钟 引 脚 (SCL) 和 数 据 引 脚 (SDA)。<br />
用 户 必 须 通 过 TRISC 或 TRISD 位 将 这 两 个<br />
引 脚 配 置 为 输 入 或 输 出 。<br />
通 过 将 SSP 使 能 位 SSPEN(SSPCON) 置 位 , 可<br />
以 使 能 SSP 模 式 的 功 能 。<br />
图 18-5: SSP 框 图 (I 2 C 模 式 )<br />
SCK/SCL (1)<br />
SDI/<br />
SDA (1)<br />
读<br />
移 位<br />
时 钟<br />
MSb<br />
SSPBUF 寄 存 器<br />
SSPSR 寄 存 器<br />
匹 配 检 测<br />
SSPADD 寄 存 器<br />
起 始 位 和<br />
停 止 位 检 测<br />
LSb<br />
SSP 模 块 有 5 个 寄 存 器 用 于 I 2 C 工 作 。 它 们 是 :<br />
• SSP 控 制 寄 存 器 (SSPCON)<br />
• SSP 状 态 寄 存 器 (SSPSTAT)<br />
• 串 行 接 收 / 发 送 缓 冲 器 (SSPBUF)<br />
• SSP 移 位 寄 存 器 (SSPSR): 不 能 直 接 访 问<br />
• SSP 地 址 寄 存 器 (SSPADD)<br />
写<br />
内 部<br />
数 据 总 线<br />
地 址 匹 配<br />
置 位 、 复 位<br />
S 和 P 位<br />
(SSPSTAT<br />
寄 存 器 )<br />
注 1: 当 CONFIG3H 中 的 SSPMX=1 时 :<br />
SCK/SCL 与 引 脚 RC5 复 用 , SDA/SDI<br />
与 引 脚 RC4 复 用 , 并 且 SDO 与 引 脚<br />
RC7 复 用 。<br />
当 CONFIG3H 中 的 SSPMX=0 时 :<br />
SCK/SCL 与 引 脚 RD3 复 用 , SDA/SDI<br />
与 引 脚 RD2 复 用 , 并 且 SDO 与 引 脚<br />
RD1 复 用 。<br />
通 过 SSPCON 寄 存 器 可 以 控 制 I 2 C 的 工 作 状 况 。 通 过<br />
4 个 模 式 选 择 位 (SSPCON) 可 以 选 择 以 下 I 2 C<br />
模 式 之 一 :<br />
• I 2 C 从 动 模 式 (7 位 地 址 )<br />
• I 2 C 从 动 模 式 (10 位 地 址 )<br />
• I 2 C 从 动 模 式 (7 位 地 址 ), 使 能 起 始 和 停 止 位<br />
中 断 , 支 持 固 件 主 控 模 式<br />
• I 2 C 从 动 模 式 (10 位 地 址 ), 使 能 起 始 和 停 止 位<br />
中 断 , 支 持 固 件 主 控 模 式<br />
• 使 能 I 2 C 的 开 始 和 停 止 位 中 断 , 支 持 固 件 主 控 模<br />
式 , 从 单 元 空 闲<br />
倘 若 将 TRISC 或 TRISD 位 适 当 置 位 , 使 这 些 引 脚 编 程<br />
为 输 入 引 脚 , 在 SSPEN 位 置 位 时 选 择 任 何 I 2 C 模 式 都<br />
将 强 制 SCL 和 SDA 引 脚 漏 极 开 路 。 SCL 和 SDA 引 脚<br />
上 必 须 有 外 部 上 拉 电 阻 , 才 能 使 I 2 C 模 块 正 常 工 作 。<br />
有 关 SSP 模 块 I 2 C 工 作 原 理 的 其 他 信 息 , 可 以 参 考<br />
《PICmicro ® 中 档 单 片 机 系 列 参 考 手 册 》<br />
(DS33023A_CN)。<br />
18.3.1 从 动 模 式<br />
在 从 动 模 式 下 , 必 须 将 SCL 和 SDA 引 脚 配 置 为 输 入 引<br />
脚 (TRISC 或 TRISD 置 位 )。 需 要 时 ( 从<br />
发 送 器 ) SSP 模 块 将 用 输 出 数 据 覆 盖 输 入 状 态 。<br />
当 地 址 匹 配 时 , 或 接 收 到 了 匹 配 地 址 后 进 行 数 据 传 输<br />
时 , 硬 件 将 自 动 产 生 应 答 (ACK) 脉 冲 , 然 后 将 SSPSR<br />
寄 存 器 当 前 接 收 到 的 值 装 入 SSPBUF 寄 存 器 。<br />
在 某 些 情 况 下 , SSP 模 块 不 会 发 出 此 ACK 脉 冲 信 号 。<br />
这 些 情 况 包 括 ( 之 一 或 两 者 ):<br />
a) 缓 冲 器 满 位 BF (SSPSTAT) 在 接 收 到 传 输<br />
数 据 前 置 位 。<br />
b) 溢 出 位 SSPOV (SSPCON) 在 接 收 到 传 输<br />
数 据 前 置 位 。<br />
在 这 种 情 况 下 ,SSPSR 寄 存 器 的 值 没 有 装 入 SSPBUF,<br />
但 SSPIF 位 (PIR1) 已 置 位 。 表 18-2 给 出 了 根 据<br />
BF 和 SSPOV 位 的 状 态 , 接 收 到 数 据 传 输 字 节 时 发 生 的<br />
情 况 。 阴 影 单 元 格 表 示 用 户 软 件 没 有 正 确 将 溢 出 状 态 清<br />
零 时 的 情 况 。 当 SSPOV 位 软 件 清 零 时 , 通 过 读 SSPBUF<br />
寄 存 器 可 以 将 标 志 位 BF 清 零 。<br />
为 确 保 正 常 工 作 ,SCL 时 钟 输 入 必 须 满 足 最 小 高 电 平 时<br />
间 和 最 小 低 电 平 时 间 。 在 时 序 参 数 #100 和 参 数 #101 中<br />
给 出 了 I 2 C 规 范 的 高 低 电 平 时 间 和 SSP 模 块 的 要 求 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 217 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
18.3.1.1 寻 址<br />
SSP 模 块 使 能 后 , 它 会 等 待 启 动 条 件 发 生 。 当 启 动 条 件<br />
发 生 后 , 就 会 向 SSPSR 寄 存 器 移 入 8 位 。 所 有 移 入 的<br />
位 都 是 在 时 钟 线 (SCL) 的 上 升 沿 进 行 采 样 的 。 寄 存 器<br />
SSPSR 的 值 会 和 SSPADD 寄 存 器 的 值 进 行 比 较 。<br />
地 址 会 在 第 8 个 时 钟 (SCL) 脉 冲 的 下 降 沿 进 行 比 较 。<br />
如 果 地 址 匹 配 , 并 且 BF 和 SSPOV 位 清 零 , 将 发 生 下<br />
列 事 件 :<br />
a) SSPSR 寄 存 器 的 值 装 入 SSPBUF 寄 存 器 。<br />
b) 缓 冲 器 满 位 BF 置 位 。<br />
c) 产 生 ACK 脉 冲 。<br />
d) 在 第 9 个 SCL 脉 冲 的 下 降 沿 , SSP 中 断 标 志 位<br />
SSPIF(PIR1) 置 位 ( 如 果 允 许 中 断 则 发 生<br />
中 断 )。<br />
在 10 位 地 址 模 式 下 , 从 单 元 需 要 接 收 两 个 地 址 字 节<br />
( 图 18-7) 。 第 一 个 地 址 字 节 的 五 个 最 高 有 效 字 位<br />
(MSb) 用 以 说 明 它 是 否 为 10 位 地 址 。 R/W 位<br />
(SSPSTAT) 必 须 指 定 写 操 作 , 这 样 从 器 件 才 能 收<br />
到 第 二 个 地 址 字 节 。 对 于 10 位 地 址 , 第 一 个 字 节 等 于<br />
‘1111 0 A9 A8 0’, 其 中 A9 和 A8 是 地 址 的 两 个<br />
MSb。<br />
10 位 地 址 的 事 件 顺 序 如 下 , 其 中 第 7 步 到 第 9 步 所 述 为<br />
从 发 送 器 :<br />
1. 接 收 地 址 的 第 一 个 ( 高 ) 字 节 (SSPIF 位 、 BF<br />
位 和 UA 位 (SSPSTAT) 置 位 )。<br />
2. 用 地 址 的 第 二 个 ( 低 ) 字 节 更 新 SSPADD 寄 存<br />
器 (UA 位 清 零 并 释 放 SCL 线 )。<br />
3. 读 SSPBUF 寄 存 器 (BF 位 清 零 ), 并 将 标 志 位<br />
SSPIF 清 零 。<br />
4. 接 收 地 址 的 第 二 个 ( 低 ) 字 节 (SSPIF 位 、 BF<br />
位 和 UA 位 置 位 )。<br />
5. 使 用 地 址 的 第 一 个 ( 高 ) 字 节 更 新 SSPADD 寄<br />
存 器 。 如 果 匹 配 释 放 SCL 线 , 则 UA 位 清 零 。<br />
6. 读 SSPBUF 寄 存 器 (BF 位 清 零 ), 并 将 标 志 位<br />
SSPIF 清 零 。<br />
7. 接 收 重 复 启 动 条 件 。<br />
8. 接 收 地 址 的 第 一 个 ( 高 ) 字 节 (SSPIF 位 和 BF<br />
位 置 位 )。<br />
9. 读 SSPBUF 寄 存 器 (BF 位 清 零 ), 并 将 标 志 位<br />
SSPIF 清 零 。<br />
表 18-2:<br />
数 据 传 输 已 接 收 字 节 操 作<br />
接 收 到 传 输 数 据 时<br />
的 状 态 位<br />
BF<br />
SSPOV<br />
SSPSR → SSPBUF<br />
产 生 ACK<br />
脉 冲<br />
SSPIF 位 置 位<br />
( 如 SSP 中 断 使 能 , 则<br />
发 生 该 中 断 )<br />
0 0 是 是 是<br />
1 0 否 否 是<br />
1 1 否 否 是<br />
0 1 否 否 是<br />
注 : 阴 影 单 元 格 表 示 用 户 软 件 没 有 正 确 将 溢 出 状 态 清 零 时 的 情 况 。<br />
18.3.1.2 接 收<br />
当 地 址 字 节 的 R/W 位 清 零 并 发 生 地 址 匹 配 时 ,<br />
SSPSTAT 寄 存 器 的 R/W 位 清 零 。 接 收 到 的 地 址 装 入<br />
SSPBUF 寄 存 器 。<br />
当 地 址 字 节 溢 出 时 , 不 会 产 生 应 答 (ACK) 脉 冲 。 溢 出<br />
状 态 定 义 为 BF 位 (SSPSTAT) 置 位 或 SSPOV 位<br />
(SSPCON) 置 位 的 状 态 。 这 是 因 用 户 固 件 造 成 的<br />
一 个 错 误 状 况 。<br />
每 个 数 据 传 输 字 节 都 会 产 生 SSP 中 断 。 标 志 位 SSPIF<br />
(PIR1) 必 须 用 软 件 清 零 。SSPSTAT 寄 存 器 用 于 确<br />
定 该 字 节 的 状 态 。<br />
DS39616B_CN 第 218 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 18-6: I 2 C 接 收 波 形 (7 位 地 址 )<br />
SDA<br />
接 收 地 址<br />
R/W = 0<br />
ACK<br />
A7 A6 A5 A4 A3 A2 A1 D7<br />
D6<br />
接 收 数 据<br />
D5 D4 D3<br />
D2<br />
D1<br />
ACK<br />
D0 D7<br />
D6<br />
接 收 数 据<br />
D5 D4 D3<br />
D2<br />
D1<br />
ACK<br />
D0<br />
SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
P<br />
SSPIF(PIR1)<br />
BF(SSPSTAT)<br />
软 件 清 零<br />
读 SSPBUF 寄 存 器<br />
总 线 主 控 器 件<br />
终 止 传 输<br />
SSPOV(SSPCON)<br />
因 为 SSPBUF 寄 存 器 仍 然 是 满 的 , 所 以 SSPOV 位 置 位 。<br />
不 发 送 ACK。<br />
18.3.1.3 发 送<br />
当 进 入 的 地 址 字 节 之 R/W 位 置 位 并 发 生 地 址 匹 配 时 ,<br />
SSPSTAT 寄 存 器 的 R/W 位 置 位 。 接 收 到 的 地 址 装 入<br />
SSPBUF 寄 存 器 。ACK 脉 冲 将 在 第 9 位 发 送 , 且 SCK/<br />
SCL 引 脚 保 持 低 电 平 。 发 送 数 据 必 须 装 入 SSPBUF 寄 存<br />
器 , 同 时 也 装 入 SSPSR 寄 存 器 。 然 后 , 应 通 过 将 CKP<br />
(SSPCON) 位 置 位 使 能 SCK/SCL 引 脚 。 主 单 元 必<br />
须 在 判 定 另 一 个 时 钟 脉 冲 前 监 视 SCL 引 脚 。 从 器 件 可 以<br />
通 过 时 钟 延 长 , 从 而 不 与 主 器 件 同 步 。8 个 数 据 位 在 SCL<br />
输 入 的 下 降 沿 移 出 。 这 样 做 , 可 以 保 证 SDA 信 号 在 SCL<br />
高 电 平 时 有 效 ( 图 18-7)。<br />
每 个 数 据 传 输 字 节 都 会 产 生 SSP 中 断 。 标 志 位 SSPIF<br />
必 须 用 软 件 清 零 , SSPSTAT 寄 存 器 用 于 判 断 该 字 节 的<br />
状 态 。 标 志 位 SSPIF 在 第 9 个 时 钟 脉 冲 的 下 降 沿 置 位 。<br />
作 为 从 发 送 器 , 主 接 收 器 的 ACK 脉 冲 在 第 9 个 SCL 输<br />
入 脉 冲 的 上 升 沿 锁 存 。 如 果 SDA 线 是 高 电 平 ( 非<br />
ACK), 则 完 成 数 据 传 输 。 当 ACK 由 从 器 件 锁 存 时 , 从<br />
器 件 逻 辑 复 位 (SSPSTAT 寄 存 器 复 位 ), 然 后 从 器 件<br />
监 控 另 一 个 起 始 位 的 出 现 。 如 果 SDA 线 为 低 电 平<br />
(ACK), 发 送 数 据 必 须 装 入 SSPBUF 寄 存 器 , 同 时 也<br />
装 入 SSPSR 寄 存 器 。 然 后 , 应 通 过 将 CKP 位 置 位 使 能<br />
SCK/SCL 引 脚 。<br />
图 18-7: I 2 C 发 送 波 形 (7 位 地 址 )<br />
SDA<br />
接 收 地 址<br />
R/W = 1<br />
发 送 数 据<br />
A7 A6 A5 A4 A3 A2 A1 ACK D7 D6 D5 D4 D3 D2 D1 D0<br />
ACK<br />
SCL<br />
S<br />
SSPIF(PIR1)<br />
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9<br />
数 据 输 入<br />
当 CPU 响 应<br />
采 样<br />
SSPIF 时<br />
SCL 保 持 低 电 平<br />
软 件 清 零<br />
P<br />
BF(SSPSTAT)<br />
CKP(SSPCON)<br />
SSPBUF 用 软 件 写 入<br />
从 SSP 中 断<br />
服 务 程 序<br />
写 SSPBUF 后 置 位<br />
(SSPBUF 的 内 容 必 须 在<br />
CKP 位 置 位 前 写 入 )<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 219 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
18.3.2 主 控 模 式<br />
利 用 在 检 测 到 启 动 和 停 止 条 件 时 产 生 的 中 断 , 固 件 可 以<br />
支 持 主 控 模 式 。 停 止 (P) 位 和 起 始 (S) 位 在 复 位 时<br />
或 禁 止 SSP 模 块 时 清 零 。 停 止 (P) 位 和 开 始 (S) 位<br />
会 根 据 启 动 和 停 止 条 件 切 换 。 当 P 位 置 位 时 , 或 总 线 处<br />
于 空 闲 状 态 且 S 和 P 位 均 清 零 时 , 就 可 以 取 得 I 2 C 总 线<br />
的 控 制 权 。<br />
在 主 控 模 式 下 , SCL 和 SDA 线 是 通 过 将 相 应<br />
TRISC 或 TRISD 位 清 零 控 制 的 。 不 管<br />
PORTC 或 PORTD 的 值 如 何 , 输 出 电 平 始<br />
终 为 低 。 因 此 当 发 送 数 据 时 , 为 1 的 数 据 位 必 须 将<br />
TRISC 位 置 位 ( 输 入 ) , 而 为 0 的 数 据 位 则 将<br />
TRISC 位 清 零 ( 输 出 )。 对 于 SCL 线 以 及 TRISC<br />
和 TRISD 位 也 应 做 类 似 处 理 。SCL 和 SDA 引 脚 上<br />
必 须 外 接 上 拉 电 阻 , I 2 C 模 块 才 能 正 常 工 作 。<br />
以 下 事 件 将 导 致 SSP 中 断 标 志 位 SSPIF 置 位 ( 如 果 使<br />
能 SSP 中 断 , 则 发 生 此 中 断 ):<br />
• 启 动 条 件<br />
• 停 止 条 件<br />
• 数 据 传 输 字 节 已 发 送 / 已 接 收<br />
可 以 在 从 动 模 式 空 闲 (SSPM3:SSPM0=1011) 或 从 动<br />
模 式 有 效 状 态 完 成 主 控 模 式 操 作 。 当 主 控 模 式 和 从 动 模<br />
式 同 时 使 能 时 , 软 件 需 要 区 分 中 断 源 。<br />
18.3.3 多 主 模 式<br />
在 多 主 模 式 下 , 在 检 测 到 启 动 和 停 止 条 件 时 产 生 中 断 ,<br />
这 可 以 用 于 判 断 总 线 是 否 空 闲 。 停 止 (P) 位 和 起 始<br />
(S) 位 在 复 位 时 或 禁 止 SSP 模 块 时 清 零 。 停 止 (P)<br />
位 和 起 始 (S) 位 会 根 据 启 动 和 停 止 条 件 切 换 。 当 P 位<br />
(SSPSTAT) 置 位 时 , 或 总 线 处 于 空 闲 状 态 且 S 位<br />
和 P 位 均 清 零 时 , 就 可 以 取 得 I 2 C 总 线 的 控 制 权 。 当 总<br />
线 忙 时 , 如 果 出 现 停 止 条 件 , 则 使 能 SSP 中 断 会 产 生 中<br />
断 。<br />
在 多 主 操 作 中 , 必 须 监 视 SDA 线 , 以 确 定 信 号 电 平 是<br />
否 为 预 期 的 输 出 电 平 。 此 检 测 仅 需 在 输 出 为 高 电 平 时 进<br />
行 。 如 果 预 期 为 高 电 平 输 出 , 但 检 测 到 了 低 电 平 , 器 件<br />
必 须 释 放 SDA 和 SCL 线 (TRISC 或 TRISD<br />
置 位 )。 此 仲 裁 在 以 下 两 个 阶 段 会 失 败 :<br />
• 地 址 传 输<br />
• 数 据 传 输<br />
当 从 动 逻 辑 使 能 时 , 从 动 器 件 将 继 续 接 收 。 如 果 在 地 址<br />
传 输 阶 段 仲 裁 失 败 , 与 该 器 件 的 通 讯 将 继 续 进 行 。 如 果<br />
被 寻 址 , 将 产 生 ACK 脉 冲 。 如 果 在 数 据 传 输 阶 段 仲 裁<br />
失 败 , 器 件 需 要 稍 后 重 新 传 输 数 据 。<br />
表 18-3:<br />
与 I 2 C 工 作 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他<br />
复 位 时 的 值<br />
INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u<br />
PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000<br />
PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000<br />
SSPBUF 同 步 串 行 端 口 接 收 缓 冲 器 / 发 送 寄 存 器 xxxx xxxx uuuu uuuu<br />
SSPADD 同 步 串 行 端 口 (I 2 C 模 式 ) 地 址 寄 存 器 0000 0000 0000 0000<br />
SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000<br />
SSPSTAT SMP (2) CKE (2) D/A P S R/W UA BF 0000 0000 0000 0000<br />
TRISC (3) PORTC 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
TRISD (3) PORTD 数 据 方 向 寄 存 器 1111 1111 1111 1111<br />
图 注 : x= 未 知 , u= 不 变 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 SSP 模 块 在 I 2 C 模 式 下 未 使 用 。<br />
注 1: 在 PIC16F73/76 中 保 留 了 PSPIE 和 PSPIF 位 ; 应 始 终 保 持 这 些 位 清 零 。<br />
2: 在 I 2 C 模 式 下 保 持 这 些 位 清 零 。<br />
3: 根 据 CONFIG3H 中 SSPMX 的 设 置 , 这 些 引 脚 与 PORTC 或 PORTD 复 用 。<br />
DS39616B_CN 第 220 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.0 增 强 型 通 用 同 步 / 异 步 收 发 器<br />
增 强 型 通 用 同 步 / 异 步 收 发 器 (Enhanced Universal<br />
Synchronous Asynchronous Receiver Transmitter,<br />
EUSART) 模 块 是 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 系 列<br />
单 片 机 具 有 的 两 个 串 行 I/O 模 块 之 一 。EUSART 也 称 为<br />
“ 串 行 通 讯 接 口 ”( 即 SCI)。<br />
可 以 将 EUSART 配 置 为 能 与 CRT 终 端 和 个 人 计 算 机 等<br />
外 设 通 讯 的 全 双 工 异 步 系 统 。 也 可 以 将 它 配 置 成 能 够 与<br />
A/D 或 D/A 集 成 电 路 、 串 行 EEPROM 等 外 设 通 讯 的 半<br />
双 工 同 步 系 统 。<br />
EUSART 模 块 还 实 现 了 其 他 功 能 , 包 括 自 动 波 特 率 检 测<br />
和 校 准 、 接 收 到 同 步 间 隔 字 符 时 的 自 动 唤 醒 和 12 位 间<br />
隔 字 符 发 送 。 因 为 具 有 这 些 功 能 , 所 以 局 域 互 连 网 络<br />
(Local Interconnect Network, LIN) 总 线 系 统 使 用<br />
EUSART 模 块 非 常 理 想 。<br />
USART 可 配 置 为 以 下 几 种 工 作 模 式 :<br />
• 异 步 模 式 ( 全 双 工 ):<br />
- 接 收 到 字 符 时 自 动 唤 醒<br />
- 自 动 波 特 率 校 准<br />
- 12 位 间 隔 字 符 发 送<br />
• 同 步 —— 主 控 ( 半 双 工 ) 模 式 , 带 可 选 时 钟 极 性<br />
• 同 步 —— 从 动 ( 半 双 工 ) 模 式 , 带 可 选 时 钟 极 性<br />
为 了 将 RC6/TX/CK/SS 引 脚 和 RC7/RX/DT/SDO 引 脚<br />
配 置 为 通 用 同 步 / 异 步 收 发 器 :<br />
• SPEN (RCSTA) 位 必 须 置 位 (=1),<br />
• TRISC 位 必 须 置 位 (=1), 并 且<br />
• TRISC 位 必 须 置 位 (=1)。<br />
注 : USART 控 制 电 路 会 根 据 需 要 自 动 将 引 脚 从<br />
输 入 重 新 配 置 为 输 出 。<br />
增 强 型 USART 模 块 的 工 作 状 况 是 通 过 3 个 寄 存 器 控 制<br />
的 :<br />
• 发 送 状 态 和 控 制 (TXSTA)<br />
• 接 收 状 态 和 控 制 (RCSTA)<br />
• 波 特 率 控 制 (BAUDCTL)<br />
后 续 几 页 的 寄 存 器 19-1、 寄 存 器 19-2 和 寄 存 器 19-3 分<br />
别 对 它 们 进 行 了 详 细 的 介 绍 。<br />
19.1 功 耗 管 理 模 式 下 的 异 步 工 作 原 理<br />
当 外 设 时 钟 由 内 部 振 荡 电 路 提 供 时 , USART 可 以 在 异<br />
步 模 式 下 工 作 。 因 此 可 以 去 掉 OSC1 和 OSC2 引 脚 上 通<br />
常 作 为 主 时 钟 连 接 的 晶 振 或 谐 振 器 。<br />
工 厂 会 将 内 部 振 荡 电 路 输 出 (INTOSC) 校 准 为 8MHz<br />
( 参 见 表 25-6)。 但 是 , 在 VDD 或 温 度 变 化 时 , 此 频 率<br />
可 能 会 发 生 漂 移 , 这 将 直 接 影 响 异 步 波 特 率 。 两 种 方 法<br />
可 用 于 调 整 波 特 率 时 钟 , 但 这 两 种 方 法 都 需 要 某 种 类 型<br />
的 参 考 时 钟 源 。<br />
第 一 种 ( 建 议 ) 方 法 使 用 OSCTUNE 寄 存 器 将 INTOSC<br />
输 出 调 整 回 8MHz。 调 整 OSCTUNE 寄 存 器 的 值 可 以<br />
微 调 系 统 时 钟 源 ( 如 需 更 多 信 息 , 请 参 见 第 3.6 节<br />
“INTOSC 频 率 漂 移 ”)。<br />
另 一 个 方 法 是 调 整 波 特 率 发 生 器 的 值 。 当 调 整 波 特 率 发<br />
生 器 时 , 其 微 调 分 辨 率 可 能 不 足 以 补 偿 外 设 时 钟 频 率 的<br />
渐 进 变 化 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 221 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 19-1:<br />
bit 7<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
TXSTA: 发 送 状 态 和 控 制 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-1 R/W-0<br />
CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D<br />
bit 7 bit 0<br />
CSRC: 时 钟 源 选 择 位<br />
异 步 模 式 :<br />
忽 略<br />
同 步 模 式 :<br />
1 = 主 控 模 式 ( 时 钟 来 自 内 部 BRG)<br />
0 = 从 动 模 式 ( 时 钟 来 自 外 部 时 钟 源 )<br />
TX9:9 位 发 送 使 能 位<br />
1 = 选 择 9 位 发 送<br />
0 = 选 择 8 位 发 送<br />
TXEN: 发 送 使 能 位<br />
1 = 使 能 发 送<br />
0 = 禁 止 发 送<br />
注 : 同 步 模 式 下 SREN/CREN 会 覆 盖 TXEN 的 值 。<br />
SYNC:USART 模 式 选 择 位<br />
1 = 同 步 模 式<br />
0 = 异 步 模 式<br />
SENDB: 发 送 间 隔 字 符 位<br />
异 步 模 式 :<br />
1 = 在 下 一 次 发 送 时 发 送 同 步 间 隔 字 符 ( 完 成 后 由 硬 件 清 零 )<br />
0 = 同 步 间 隔 发 送 完 成<br />
同 步 模 式 :<br />
忽 略<br />
BRGH: 高 波 特 率 选 择 位<br />
异 步 模 式 :<br />
1 = 高 速<br />
0 = 低 速<br />
同 步 模 式 :<br />
在 此 模 式 下 未 使 用<br />
TRMT: 发 送 移 位 寄 存 器 状 态 位<br />
1 = TSR 空<br />
0 = TSR 满<br />
TX9D: 发 送 数 据 的 第 9 位<br />
可 以 是 地 址 / 数 据 位 或 奇 偶 校 验 位 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
DS39616B_CN 第 222 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 19-2:<br />
RCSTA: 接 收 状 态 和 控 制 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0 R-0 R-x<br />
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D<br />
bit 7 bit 0<br />
bit 7<br />
bit 6<br />
bit 5<br />
bit 4<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
SPEN: 串 行 端 口 使 能 位<br />
1 = 使 能 串 行 端 口 ( 配 置 RX/DT 和 TX/CK 引 脚 为 串 行 端 口 引 脚 )<br />
0 = 禁 止 串 行 端 口 ( 保 持 在 复 位 状 态 )<br />
RX9:9 位 接 收 使 能 位<br />
1 = 选 择 9 位 接 收<br />
0 = 选 择 8 位 接 收<br />
SREN: 单 字 接 收 使 能 位<br />
异 步 模 式 :<br />
忽 略<br />
同 步 主 控 模 式 :<br />
1 = 使 能 单 字 接 收<br />
0 = 禁 止 单 字 接 收<br />
此 位 在 接 收 完 成 后 清 零 。<br />
同 步 从 动 模 式 :<br />
忽 略<br />
CREN: 连 续 接 收 使 能 位<br />
异 步 模 式 :<br />
1 = 使 能 接 收 器<br />
0 = 禁 止 接 收 器<br />
同 步 模 式 :<br />
1 = 使 能 连 续 接 收 , 直 到 使 能 位 CREN 清 零 (CREN 覆 盖 SREN)<br />
0 = 禁 止 连 续 接 收<br />
ADDEN: 地 址 检 测 使 能 位<br />
9 位 异 步 模 式 (RX9=1):<br />
1 = 使 能 地 址 检 测 , 允 许 中 断 , 当 RSR 置 位 时 装 入 接 收 缓 冲 器<br />
0 = 禁 止 地 址 检 测 , 接 收 所 有 字 节 并 且 第 9 位 可 作 为 奇 偶 校 验 位<br />
8 位 异 步 模 式 (RX9=0):<br />
忽 略<br />
FERR: 帧 错 误 位<br />
1 = 帧 错 误 ( 可 通 过 读 RCREG 寄 存 器 刷 新 该 位 , 并 接 收 下 一 个 有 效 字 节 )<br />
0 = 没 有 帧 错 误<br />
OERR: 溢 出 错 误 位<br />
1 = 溢 出 错 误 ( 可 以 通 过 清 零 CREN 位 来 清 零 该 位 )<br />
0 = 没 有 溢 出 错 误<br />
RX9D: 接 收 数 据 的 第 9 位<br />
这 可 以 是 地 址 / 数 据 位 或 奇 偶 校 验 位 , 必 须 由 用 户 固 件 计 算 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 223 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 19-3:<br />
BAUDCTL: 波 特 率 控 制 寄 存 器<br />
U-0 R-1 U-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0<br />
- RCIDL - SCKP BRG16 - WUE ABDEN<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 RCIDL: 接 收 操 作 空 闲 状 态 位<br />
1= 接 收 器 空 闲<br />
0= 正 在 接 收<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4 SCKP: 同 步 时 钟 极 性 选 择 位<br />
异 步 模 式 :<br />
在 此 模 式 下 未 使 用<br />
同 步 模 式 :<br />
1= 时 钟 (CK) 为 高 电 平 时 处 于 空 闲 状 态<br />
0= 时 钟 (CK) 为 低 电 平 时 处 于 空 闲 状 态<br />
bit 3 BRG16:16 位 波 特 率 寄 存 器 使 能 位<br />
1=16 位 波 特 率 发 生 器 ——SPBRGH 和 SPBRG<br />
0= 8 位 波 特 率 发 生 器 —— 仅 SPBRG ( 兼 容 模 式 ), 忽 略 SPBRGH 值<br />
bit 2 未 实 现 位 : 读 作 0<br />
bit 1 WUE: 唤 醒 使 能 位<br />
异 步 模 式 :<br />
1= USART 将 继 续 采 样 该 RX 引 脚 —— 中 断 在 下 降 沿 产 生 ; 在 下 一 个 上 升 沿 用 硬 件 清 零 该 位<br />
0= 未 检 测 RX 引 脚 或 检 测 到 了 上 升 沿<br />
同 步 模 式 :<br />
在 此 模 式 下 未 使 用<br />
bit 0 ABDEN: 自 动 波 特 率 检 测 使 能 位<br />
异 步 模 式 :<br />
1= 在 下 一 个 字 符 使 能 波 特 率 测 量 —— 需 要 接 收 同 步 字 段 (55h); 完 成 后 用 硬 件 清 零<br />
0= 波 特 率 测 量 被 禁 止 或 已 完 成<br />
同 步 模 式 :<br />
在 此 模 式 下 未 使 用<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
DS39616B_CN 第 224 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.2 USART 波 特 率 发 生 器 (BRG)<br />
BRG 是 一 个 专 用 的 8 位 或 16 位 发 生 器 , 支 持 USART<br />
的 异 步 和 同 步 模 式 。 缺 省 情 况 下 ,BRG 工 作 在 8 位 模 式<br />
下 , 通 过 置 位 BRG16 位 (BAUDCTL) 可 以 选 择<br />
16 位 模 式 。<br />
SPBRGH:SPBRG 寄 存 器 对 控 制 自 由 运 行 的 定 时 器 周<br />
期 。 在 异 步 模 式 ,BRGH(TXSTA) 和 BRG16 位 也<br />
控 制 波 特 率 。 在 同 步 模 式 , 会 忽 略 BRGH 位 。 表 19-1 所<br />
示 为 不 同 USART 模 式 的 波 特 率 计 算 公 式 , 但 仅 适 用 于 主<br />
控 模 式 ( 内 部 生 成 时 钟 信 号 )。<br />
给 出 期 望 的 波 特 率 和 FOSC 值 , 就 可 以 使 用 表 19-1 中 的<br />
公 式 计 算 出 SPBRGH:SPBRG 寄 存 器 的 最 近 似 整 数 值 。<br />
这 样 就 可 以 确 定 波 特 率 的 误 差 。 例 19-1 给 出 了 一 个 计<br />
算 示 例 。 表 19-2 中 给 出 了 不 同 异 步 模 式 下 的 典 型 波 特<br />
率 和 误 差 值 。 这 对 于 使 用 高 波 特 率 (BRGH=1) 或 16<br />
位 BRG 可 以 减 小 波 特 率 误 差 , 或 实 现 快 速 振 荡 频 率 下<br />
的 低 波 特 率 可 能 是 很 有 用 的 。<br />
向 SPBRGH:SPBRG 寄 存 器 写 入 新 值 会 使 BRG 定 时 器<br />
复 位 ( 或 清 零 )。 这 可 以 确 保 BRG 不 必 在 定 时 器 溢 出<br />
之 后 才 输 出 新 波 特 率 。<br />
19.2.1 功 耗 管 理 模 式 工 作 原 理<br />
系 统 时 钟 用 于 产 生 所 需 的 波 特 率 , 但 是 当 进 入 功 耗 管 理<br />
模 式 时 , 时 钟 源 的 工 作 频 率 可 能 不 同 于 PRI_RUN 模 式<br />
下 的 工 作 频 率 。 休 眠 状 态 不 使 用 任 何 时 钟 , 而 在<br />
PRI_IDLE 状 态 下 , 主 时 钟 源 将 继 续 为 波 特 率 发 生 器 提<br />
供 时 钟 信 号 , 但 是 , 在 其 他 功 耗 管 理 模 式 下 , 时 钟 频 率<br />
可 能 会 发 生 变 化 。 可 能 需 要 调 整 SPBRG 中 的 值 。<br />
如 果 系 统 时 钟 在 主 动 接 收 操 作 过 程 中 发 生 变 化 , 可 能 会<br />
导 致 接 收 错 误 或 数 据 丢 失 。 为 了 避 免 此 问 题 , 应 该 检 查<br />
RCIDL 位 的 状 态 并 确 保 在 改 变 系 统 时 钟 前 接 收 处 于 空 闲<br />
状 态 。<br />
19.2.2 采 样<br />
主 要 检 测 电 路 会 对 RC7/RX/DT/SDO 引 脚 上 的 数 据 采 样<br />
3 次 , 以 确 定 在 RX 引 脚 上 是 出 现 高 电 平 还 是 低 电 平 。<br />
表 19-1: 波 特 率 计 算 公 式<br />
配 置 位<br />
SYNC BRG16 BRGH<br />
BRG / USART 模 式<br />
波 特 率 计 算 公 式<br />
0 0 0 8 位 / 异 步 FOSC/[64 (n+1)]<br />
0 0 1 8 位 / 异 步<br />
0 1 0 16 位 / 异 步<br />
0 1 1 16 位 / 异 步<br />
1 0 x 8 位 / 同 步<br />
1 1 x 16 位 / 同 步<br />
图 注 : x = 忽 略 , n=SPBRGH:SPBRG 寄 存 器 对 的 值<br />
FOSC/[16 (n+1)]<br />
FOSC/[4 (n+1)]<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 225 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 19-1:<br />
计 算 波 特 率 误 差<br />
如 果 某 个 器 件 FOSC 为 16MHz、 波 特 率 期 望 值 为 9600、 异 步 工 作 模 式 、 8 位 BRG:<br />
波 特 率 期 望 值 = FOSC / (64 ([SPBRGH:SPBRG] + 1))<br />
求 解 SPBRGH:SPBRG:<br />
X = ((Fosc / Desired Baud Rate)/64) - 1<br />
= ((16000000 / 9600) / 64) - 1<br />
= [25.042] = 25<br />
波 特 率 计 算 值 =16000000 / (64 (25 + 1))<br />
= 9615<br />
误 差 = ( 波 特 率 计 算 值 - 波 特 率 期 望 值 ) / 波 特 率 期 望 值<br />
= (9615 - 9600) / 9600 = 0.16%<br />
表 19-2:<br />
与 波 特 率 发 生 器 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 -010 0000 -010<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
BAUDCTL - RCIDL - SCKP BRG16 - WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 位 , – = 未 实 现 位 , 读 作 0。 阴 影 单 元 格 表 示 不 适 用 于 BRG。<br />
表 19-3:<br />
异 步 模 式 波 特 率<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 0, BRG16 = 0<br />
FOSC = 40.000 MHz FOSC = 20.000 MHz FOSC = 10.000 MHz FOSC = 8,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 — — — — — — — — — — — —<br />
1.2 — — — 1.221 1.73 255 1.202 0.16 129 1201 -0.16 103<br />
2.4 2.441 1.73 255 2.404 0.16 129 2.404 0.16 64 2403 -0.16 51<br />
9.6 9.615 0.16 64 9.766 1.73 31 9.766 1.73 15 9615 -0.16 12<br />
19.2 19.531 1.73 31 19.531 1.73 15 19.531 1.73 7 — — —<br />
57.6 56.818 -1.36 10 62.500 8.51 4 52.083 -9.58 2 — — —<br />
115.2 125.000 8.51 4 104.167 -9.58 2 78.125 -32.18 1 — — —<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 0, BRG16 = 0<br />
FOSC = 4,000 MHz FOSC = 2,000 MHz FOSC = 1,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 0.300 0.16 207 300 -0.16 103 300 -0.16 51<br />
1.2 1.202 0.16 51 1201 -0.16 25 1201 -0.16 12<br />
2.4 2.404 0.16 25 2403 -0.16 12 — — —<br />
9.6 8.929 -6.99 6 - - - — — —<br />
19.2 20.833 8.51 2 - - - — — —<br />
57.6 62.500 8.51 0 - - - — — —<br />
115.2 62.500 - 0 - - - — — —<br />
DS39616B_CN 第 226 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 19-3: 异 步 模 式 波 特 率 ( 续 )<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 1, BRG16 = 0<br />
FOSC = 40.000 MHz FOSC = 20,000 MHz FOSC = 10.000 MHz FOSC = 8,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
2.4 — — — — — — 2.441 1.73 255 2403 -0.16 207<br />
9.6 9.766 1.73 255 9.615 0.16 129 9.615 0.16 64 9615 -0.16 51<br />
19.2 19.231 0.16 129 19.231 0.16 64 19.531 1.73 31 19230 -0.16 25<br />
57.6 58.140 0.94 42 56.818 -1.36 21 56.818 -1.36 10 55555 3.55 8<br />
115.2 113.636 -1.36 21 113.636 -1.36 10 125.000 8.51 4 — — —<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 1, BRG16 = 0<br />
FOSC = 4,000 MHz FOSC = 2,000 MHz FOSC = 1,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 — — — — — — 300 -0.16 207<br />
1.2 1.202 0.16 207 1201 -0.16 103 1201 -0.16 51<br />
2.4 2.404 0.16 103 2403 -0.16 51 2403 -0.16 25<br />
9.6 9.615 0.16 25 9615 -0.16 12 — — —<br />
19.2 19.231 0.16 12 — — — — — —<br />
57.6 62.500 8.51 3 — — — — — —<br />
115.2 125.000 8.51 1 — — — — — —<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 0, BRG16 = 1<br />
FOSC = 40.000 MHz FOSC = 20,000 MHz FOSC = 10.000 MHz FOSC = 8,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 0.300 0.00 8332 0.300 0.02 4165 0.300 0.02 2082 300 -0.04 1665<br />
1.2 1.200 0.02 2082 1.200 -0.03 1041 1.200 -0.03 520 1201 -0.16 415<br />
2.4 2.402 0.06 1040 2.399 -0.03 520 2.404 0.16 259 2403 -0.16 207<br />
9.6 9.615 0.16 259 9.615 0.16 129 9.615 0.16 64 9615 -0.16 51<br />
19.2 19.231 0.16 129 19.231 0.16 64 19.531 1.73 31 19230 -0.16 25<br />
57.6 58.140 0.94 42 56.818 -1.36 21 56.818 -1.36 10 55555 3.55 8<br />
115.2 113.636 -1.36 21 113.636 -1.36 10 125.000 8.51 4 — — —<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 0, BRG16 = 1<br />
FOSC = 4,000 MHz FOSC = 2,000 MHz FOSC = 1,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 0.300 0.04 832 300 -0.16 415 300 -0.16 207<br />
1.2 1.202 0.16 207 1201 -0.16 103 1201 -0.16 51<br />
2.4 2.404 0.16 103 2403 -0.16 51 2403 -0.16 25<br />
9.6 9.615 0.16 25 9615 -0.16 12 — — —<br />
19.2 19.231 0.16 12 — — — — — —<br />
57.6 62.500 8.51 3 — — — — — —<br />
115.2 125.000 8.51 1 — — — — — —<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 227 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 19-3: 异 步 模 式 波 特 率 ( 续 )<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 1, BRG16 = 1 或 SYNC = 1, BRG16 = 1<br />
FOSC = 40.000 MHz FOSC = 20,000 MHz FOSC = 10.000 MHz FOSC = 8,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 0.300 0.00 33332 0.300 0.00 16665 0.300 0.00 8332 300 -0.01 6665<br />
1.2 1.200 0.00 8332 1.200 0.02 4165 1.200 0.02 2082 1200 -0.04 1665<br />
2.4 2.400 0.02 4165 2.400 0.02 2082 2.402 0.06 1040 2400 -0.04 832<br />
9.6 9.606 0.06 1040 9.596 -0.03 520 9.615 0.16 259 9615 -0.16 207<br />
19.2 19.193 -0.03 520 19.231 0.16 259 19.231 0.16 129 19230 -0.16 103<br />
57.6 57.803 0.35 172 57.471 -0.22 86 58.140 0.94 42 57142 0.79 34<br />
115.2 114.943 -0.22 86 116.279 0.94 42 113.636 -1.36 21 117647 -2.12 16<br />
目 标<br />
波 特 率<br />
(Kbps)<br />
SYNC = 0, BRGH = 1, BRG16 = 1 或 SYNC = 1, BRG16 = 1<br />
FOSC = 4,000 MHz FOSC = 2,000 MHz FOSC = 1,000 MHz<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
实 际<br />
波 特 率<br />
(Kbps)<br />
误 差<br />
(%)<br />
SPBRG<br />
值<br />
( 十 进 制 )<br />
0.3 0.300 0.01 3332 300 -0.04 1665 300 -0.04 832<br />
1.2 1.200 0.04 832 1201 -0.16 415 1201 -0.16 207<br />
2.4 2.404 0.16 415 2403 -0.16 207 2403 -0.16 103<br />
9.6 9.615 0.16 103 9615 -0.16 51 9615 -0.16 25<br />
19.2 19.231 0.16 51 19230 -0.16 25 19230 -0.16 12<br />
57.6 58.824 2.12 16 55555 3.55 8 — — —<br />
115.2 111.111 -3.55 8 — — — — — —<br />
DS39616B_CN 第 228 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.2.3 自 动 波 特 率 检 测<br />
增 强 型 USART 模 块 支 持 波 特 率 自 动 检 测 和 校 准 。 该 功<br />
能 仅 在 异 步 模 式 下 有 效 , 此 时 WUE 位 清 零 。<br />
只 要 接 收 到 起 始 位 并 且 AEDEN 位 已 置 位 就 会 开 始 自 动<br />
波 特 率 测 量 序 列 ( 图 19-1)。 此 计 算 是 自 平 均 的 。<br />
在 自 动 波 特 率 检 测 (Auto-Baud Rate Detect,ABD) 模<br />
式 下 ,BRG 的 时 钟 信 号 反 向 。 不 是 由 BRG 为 进 入 的 RX<br />
信 号 提 供 时 钟 信 号 , 而 是 由 RX 信 号 为 BRG 定 时 。 在<br />
ABD 模 式 下 , 内 部 波 特 率 发 生 器 作 为 计 数 器 计 算 进 入 的<br />
串 行 字 节 流 的 位 周 期 。<br />
ABDEN 位 置 位 后 , 状 态 机 将 BRG 清 零 并 寻 找 起 始 位 。<br />
要 计 算 正 确 的 比 特 率 , 自 动 波 特 率 检 测 必 须 接 收 到 值 为<br />
55h 的 字 节 (ASCII 码 为 U, 也 是 LIN 总 线 的 同 步 字<br />
符 )。 为 了 尽 量 减 小 进 入 信 号 不 对 称 造 成 的 影 响 , 测 量<br />
需 要 一 个 低 位 时 间 和 一 个 高 位 时 间 。 在 起 始 位 后 ,<br />
SPBRG 使 用 预 先 选 定 的 时 钟 源 在 RX 的 第 一 个 上 升 沿<br />
开 始 计 数 。 在 RX 引 脚 传 输 了 8 位 以 后 , 即 在 第 5 个 上<br />
升 沿 时 , 将 相 应 BRG 周 期 累 加 , 并 将 结 果 保 存 在<br />
SPBRGH:SPBRG 寄 存 器 中 。 一 旦 出 现 第 5 个 上 升 沿<br />
( 应 该 对 应 于 停 止 位 ), ABDEN 位 会 自 动 清 零 。<br />
当 校 准 波 特 率 周 期 时 ,BRG 寄 存 器 时 钟 源 为 预 配 置 时 钟<br />
频 率 的 1/8。 请 注 意 BRG 时 钟 将 由 BRG16 和 BRGH 位<br />
配 置 。 不 管 BRG16 如 何 设 置 ,SPBRG 和 SPBRGH 都<br />
是 16 位 计 数 器 。 通 过 检 查 SPBRGH 寄 存 器 值 是 否 为<br />
00h, 用 户 可 以 验 证 8 位 模 式 下 是 否 发 生 进 位 。 参 见<br />
表 19-4 了 解 BRG 计 数 器 时 钟 频 率 。<br />
当 发 生 ABD 序 列 时 ,USART 状 态 机 保 持 在 空 闲 状 态 。<br />
一 旦 在 RX 上 检 测 到 第 5 个 上 升 沿 RCIF 中 断 就 会 置 位 。<br />
要 清 除 RCIF 中 断 , 需 要 读 取 RCREG 中 的 值 。RCREG<br />
的 内 容 应 该 被 丢 弃 。<br />
注<br />
1: 如 果 WUE 位 与 ABDEN 位 一 起 置 位 , 自<br />
动 波 特 率 检 测 会 在 间 隔 字 符 之 后 的 字 节 开<br />
始 。( 参 见 第 19.3.4 节 “ 接 收 到 同 步 间 隔<br />
字 符 时 自 动 唤 醒 ”)。<br />
2: 判 断 进 入 字 符 波 特 率 是 否 处 于 所 选 BRG<br />
时 钟 源 范 围 内 是 由 用 户 决 定 的 。 由 于 位 误<br />
差 率 的 原 因 , 无 法 实 现 某 些 振 荡 频 率 和<br />
USART 波 特 率 的 组 合 。 在 使 用 自 动 波 特 率<br />
检 测 功 能 时 , 必 须 考 虑 系 统 总 体 时 序 和 通<br />
讯 波 特 率 。<br />
表 19-4: BRG 计 数 器 时 钟 频 率<br />
BRG16 BRGH BRG 计 数 器 时 钟<br />
0 0 FOSC/512<br />
0 1 FOSC/256<br />
1 0 FOSC/128<br />
1 1 FOSC/32<br />
注 : 在 ABD 序 列 中 , 不 管 BRG16 如 何 设 置 ,<br />
SPBRG 和 SPBRGH 都 是 16 位 计 数 器 。<br />
图 19-1:<br />
自 动 波 特 率 计 算<br />
BRG 值<br />
XXXXh<br />
0000h<br />
001Ch<br />
RX 引 脚<br />
起 始 位<br />
边 沿 1<br />
Bit 0 Bit 1<br />
边 沿 2<br />
Bit 2 Bit 3<br />
边 沿 3<br />
Bit 4 Bit 5<br />
边 沿 4<br />
Bit 6 Bit 7<br />
边 沿 5<br />
停 止 位<br />
BRG 时 钟<br />
ABDEN 位<br />
由 用 户 置 位<br />
自 动 清 零<br />
RCIF 位<br />
( 中 断 )<br />
读<br />
RCREG<br />
SPBRG XXXXh 1Ch<br />
SPBRGH XXXXh 00h<br />
注 1: 需 要 将 USART 模 块 配 置 为 异 步 模 式 , 并 且 WUE = 0 才 能 进 行 ABD 序 列 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 229 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.3 USART 异 步 模 式<br />
通 过 将 SYNC 位 (TXSTA) 清 零 可 选 择 异 步 工 作 模<br />
式 。 在 此 模 式 下 ,USART 使 用 标 准 的 “ 不 归 零 ”(nonreturn-to-zero,NRZ)<br />
格 式 (1 个 起 始 位 ,8 个 或 9 个<br />
数 据 位 , 1 个 停 止 位 )。 最 常 用 的 数 据 格 式 为 8 位 。 片<br />
上 专 用 8 位 / 16 位 波 特 率 发 生 器 可 用 于 从 振 荡 器 产 生<br />
标 准 波 特 率 频 率 。<br />
USART 首 先 发 送 和 接 收 LSb。USART 的 发 送 器 和 接 收<br />
器 独 立 工 作 , 但 使 用 相 同 的 数 据 格 式 和 波 特 率 。 根 据<br />
BRGH 和 BRG16 位 (TXSTA 和 BAUDCTL)<br />
的 设 置 情 况 , 波 特 率 发 生 器 会 产 生 一 个 16 倍 频 或 64 倍<br />
频 移 位 速 率 的 时 钟 信 号 。 硬 件 不 支 持 奇 偶 校 验 , 但 可 以<br />
用 软 件 实 现 , 校 验 位 保 存 在 第 9 个 数 据 位 。<br />
在 所 有 的 低 功 耗 模 式 中 都 可 以 使 用 异 步 模 式 , 但 在 休 眠<br />
模 式 下 , 只 有 使 能 了 “ 同 步 间 隔 自 动 唤 醒 ” 时 才 能 使 用<br />
异 步 模 式 。 在 PRI_IDLE 模 式 下 , 不 要 求 改 变 波 特 率 发<br />
生 器 值 , 但 是 其 他 低 功 耗 模 式 时 钟 的 工 作 频 率 可 能 与 主<br />
时 钟 不 同 。 因 此 , 可 能 还 是 需 要 调 整 波 特 率 发 生 器 的<br />
值 。<br />
当 工 作 在 异 步 模 式 时 ,USART 模 块 包 括 以 下 主 要 部 分 :<br />
• 波 特 率 发 生 器<br />
• 采 样 电 路<br />
• 异 步 发 送 器<br />
• 异 步 接 收 器<br />
• 接 收 到 同 步 间 隔 字 符 时 自 动 唤 醒<br />
• 12 位 间 隔 字 符 发 送<br />
• 自 动 波 特 率 检 测<br />
标 志 位 TXIF 表 示 的 是 TXREG 寄 存 器 的 状 态 , 而 另 一<br />
个 位 TRMT(TXSTA) 则 表 示 TSR 寄 存 器 的 状 态 。<br />
状 态 位 TRMT 是 只 读 位 , 当 TSR 寄 存 器 为 空 时 置 位 。<br />
因 为 没 有 与 此 位 关 联 的 中 断 逻 辑 , 所 以 用 户 必 须 查 询 此<br />
位 以 判 断 TSR 寄 存 器 是 否 为 空 。<br />
注<br />
1: TSR 寄 存 器 不 映 射 到 数 据 存 储 器 , 因 此 用<br />
户 无 法 使 用 它 。<br />
2: 当 使 能 位 TXEN 置 位 时 , 标 志 位 TXIF 置<br />
位 。<br />
要 建 立 异 步 发 送 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRGH:SPBRG 寄 存<br />
器 。 按 需 要 将 BRGH 和 BRG16 位 置 位 或 清 零 ,<br />
以 获 得 所 需 的 波 特 率 。<br />
2. 通 过 将 SYNC 位 清 零 并 将 SPEN 位 置 位 使 能 异 步<br />
串 行 端 口 。<br />
3. 如 果 需 要 中 断 , 将 使 能 位 TXIE 置 位 。<br />
4. 如 果 需 要 9 位 发 送 , 将 发 送 位 TX9 置 位 。 可 以 作<br />
为 地 址 / 数 据 位 使 用 。<br />
5. 通 过 将 TXEN 位 置 位 使 能 发 送 , 此 操 作 同 时 也 会<br />
将 TXIF 位 置 位 。<br />
6. 如 果 选 择 了 9 位 发 送 , 应 该 将 第 9 位 装 入 TX9D<br />
位 。<br />
7. 将 数 据 装 入 TXREG 寄 存 器 ( 开 始 发 送 )。<br />
如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE 和 PEIE<br />
位 (INTCON) 已 置 位 。<br />
19.3.1 USART 异 步 发 送 器<br />
图 19-2 所 示 为 USART 发 送 器 框 图 。 发 送 器 的 核 心 是 发<br />
送 ( 串 行 ) 移 位 寄 存 器 (TSR)。 移 位 寄 存 器 从 读 / 写<br />
发 送 缓 冲 器 TXREG 获 取 数 据 。 TXREG 寄 存 器 要 用 软<br />
件 装 入 数 据 。 在 前 一 次 装 入 数 据 的 停 止 位 发 送 前 , 不 会<br />
向 TSR 寄 存 器 装 入 数 据 。 一 旦 发 送 了 停 止 位 , 就 会 将<br />
TXREG 寄 存 器 的 新 数 据 ( 如 果 有 的 话 ) 装 入 TSR。<br />
TXREG 寄 存 器 向 TSR 寄 存 器 传 输 数 据 后 ( 在 1 个 TCY<br />
内 发 生 ) , TXREG 寄 存 器 为 空 , 同 时 标 志 位 TXIF<br />
(PIR1) 置 位 。 通 过 置 位 / 清 零 使 能 位 TXIE<br />
(PIE1) , 该 中 断 可 以 被 使 能 / 禁 止 。 不 管 使 能 位<br />
TXIE 的 状 态 如 何 , 标 志 位 TXIF 都 将 置 位 并 且 无 法 用 软<br />
件 清 零 。 在 加 载 发 送 缓 冲 寄 存 器 TXREG 时 , 标 志 位<br />
TXIF 不 会 立 即 清 零 。TXIF 在 装 载 指 令 后 的 第 2 个 指 令<br />
周 期 生 效 。 在 装 入 TXREG 后 立 即 查 询 TXIF 会 得 到 无<br />
效 结 果 。<br />
DS39616B_CN 第 230 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 19-2:<br />
USART 发 送 框 图<br />
数 据 总 线<br />
TXIE<br />
中 断<br />
TXIF<br />
TXREG 寄 存 器<br />
8<br />
MSb<br />
LSb<br />
(8) • • •<br />
0<br />
TSR 寄 存 器<br />
引 脚 缓 冲 器<br />
和 控 制<br />
RC6/TX/CK/SS 引 脚<br />
TXEN<br />
波 特 率 CLK<br />
TRMT<br />
SPEN<br />
BRG16<br />
SPBRGH<br />
SPBRG<br />
波 特 率 发 生 器<br />
TX9D<br />
TX9<br />
图 19-3:<br />
异 步 发 送<br />
写 TXREG<br />
BRG 输 出<br />
( 移 位 时 钟 )<br />
RC6/TX/CK/SS<br />
( 引 脚 )<br />
TXIF 位<br />
( 发 送 缓 冲 寄 存 器<br />
空 标 志 )<br />
第 1 个 字<br />
起 始 位 bit 0 bit 1 bit 7/8<br />
第 1 个 字<br />
1 TCY<br />
停 止 位<br />
TRMT 位<br />
( 发 送 移 位 寄 存 器<br />
空 标 志 )<br />
第 1 个 字<br />
发 送 移 位 寄 存 器<br />
图 19-4: 异 步 发 送 ( 背 靠 背 方 式 )<br />
写 TXREG<br />
BRG 输 出<br />
( 移 位 时 钟 )<br />
RC6/TX/CK/SS<br />
( 引 脚 )<br />
TXIF 位<br />
( 中 断 寄 存 器 标 志 )<br />
TRMT 位<br />
( 发 送 移 位 寄 存 器<br />
空 标 志 )<br />
第 1 个 字 第 2 个 字<br />
起 始 位 bit 0 bit 1 bit 7/8 停 止 位 起 始 位 bit 0<br />
1 TCY<br />
第 1 个 字<br />
第 2 个 字<br />
1 TCY<br />
第 1 个 字<br />
第 2 个 字<br />
发 送 移 位 寄 存 器<br />
发 移 位 寄 存 器<br />
注 : 此 时 序 图 显 示 了 两 个 连 续 发 送 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 231 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 19-5:<br />
与 异 步 发 送 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 -000 -000 -000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 -000 -000 -000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -111 -111 -111 -111<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
TXREG USART 发 送 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 的 地 址 单 元 , 读 作 0。 阴 影 单 元 格 表 示 在 异 步 发 送 模 式 下 未 使 用 。<br />
DS39616B_CN 第 232 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.3.2 USART 异 步 接 收 器<br />
图 19-5 中 显 示 了 接 收 器 框 图 。 数 据 在 RC7/RX/DT/SDO<br />
引 脚 接 收 , 并 驱 动 数 据 恢 复 电 路 。 数 据 恢 复 电 路 实 际 上<br />
是 一 个 高 速 移 位 器 , 工 作 在 波 特 率 的 16 倍 频 下 , 而 主<br />
接 收 串 行 移 位 器 工 作 在 比 特 率 或 FOSC 下 。 此 模 式 通 常<br />
用 于 RS-232 系 统 。<br />
要 建 立 异 步 接 收 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRGH:SPBRG 寄 存<br />
器 。 按 需 要 将 BRGH 和 BRG16 位 置 位 或 清 零 ,<br />
以 获 得 所 需 的 波 特 率 。<br />
2. 通 过 将 SYNC 位 清 零 并 将 SPEN 位 置 位 使 能 异 步<br />
串 行 端 口 。<br />
3. 如 果 需 要 中 断 , 将 使 能 位 RXIE 置 位 。<br />
4. 如 果 需 要 9 位 接 收 , 将 RX9 位 置 位 。<br />
5. 通 过 将 CREN 位 置 位 使 能 接 收 。<br />
6. 当 接 收 完 成 时 RCIF 位 将 置 位 , 并 且 如 果 使 能 位<br />
RCIE 置 位 , 会 产 生 一 个 中 断 。<br />
7. 读 RCSTA 寄 存 器 以 获 取 第 9 位 ( 如 果 使 能 ) 并<br />
判 断 是 否 在 接 收 过 程 中 发 生 了 错 误 。<br />
8. 读 RCREG 寄 存 器 来 读 取 8 位 接 收 数 据 。<br />
9. 如 果 发 生 错 误 , 通 过 将 使 能 位 CREN 清 零 清 除 错<br />
误 。<br />
10. 如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE<br />
和 PEIE 位 (INTCON) 已 置 位 。<br />
19.3.3 建 立 带 地 址 检 测 的 9 位 模 式<br />
此 模 式 通 常 用 于 RS-485 系 统 。 要 建 立 使 能 地 址 检 测 的<br />
异 步 接 收 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRGH:SPBRG 寄 存<br />
器 。 按 需 要 将 BRGH 和 BRG16 位 置 位 或 清 零 ,<br />
以 获 得 所 需 的 波 特 率 。<br />
2. 通 过 将 SYNC 位 清 零 并 将 SPEN 位 置 位 使 能 异 步<br />
串 行 端 口 。<br />
3. 如 果 需 要 中 断 , 将 RCEN 位 置 位 并 用 RCIP 位 选<br />
择 所 需 的 优 先 级 别 。<br />
4. 将 RX9 位 置 位 以 使 能 9 位 接 收 。<br />
5. 将 ADDEN 位 置 位 使 能 地 址 检 测 。<br />
6. 将 CREN 位 置 位 使 能 接 收 。<br />
7. 接 收 完 成 时 RCIF 位 会 置 位 。 如 果 RCIE 和 GIE<br />
位 置 位 , 则 将 应 答 中 断 。<br />
8. 读 RCSTA 寄 存 器 和 数 据 的 第 9 位 ( 如 适 用 ) 以<br />
确 定 是 否 在 接 收 时 发 生 了 错 误 。<br />
9. 读 RCREG 以 判 断 是 否 正 在 寻 址 该 器 件 。<br />
10. 如 果 发 生 了 错 误 , 将 CREN 位 清 零 。<br />
11. 如 果 已 寻 址 到 器 件 , 将 ADDEN 位 清 零 以 允 许 所<br />
有 的 接 收 数 据 进 入 接 收 缓 冲 器 并 中 断 CPU。<br />
图 19-5:<br />
USART 接 收 框 图<br />
CREN OERR FERR<br />
64 倍 频 波 特 率 CLK<br />
BRG16<br />
SPBRGH SPBRG<br />
波 特 率 发 生 器<br />
÷ 64<br />
或<br />
÷ 16<br />
或<br />
÷ 4<br />
MSb<br />
停 止<br />
RSR 寄 存 器<br />
(8) 7 • • • 1 0<br />
LSb<br />
起 始<br />
RX9<br />
RC7/RX/DT/SDO<br />
引 脚 缓 冲 器<br />
和 控 制<br />
数 据<br />
恢 复<br />
RX9D<br />
RCREG 寄 存 器<br />
FIFO<br />
SPEN<br />
8<br />
中 断<br />
RCIF<br />
RCIE<br />
数 据 总 线<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 233 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
要 建 立 异 步 发 送 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRG 寄 存 器 。 如 果 需<br />
要 高 速 波 特 率 , 将 BRGH 位 置 位 ( 参 见 第 19.2<br />
节 “USART 波 特 率 发 生 器 (BRG)”)。<br />
2. 通 过 将 SYNC 位 清 零 并 将 SPEN 位 置 位 使 能 异 步<br />
串 行 端 口 。<br />
3. 如 果 需 要 中 断 , 将 使 能 位 TXIE 置 位 。<br />
4. 如 果 需 要 9 位 发 送 , 将 发 送 位 TX9 置 位 。 可 以 作<br />
为 地 址 / 数 据 位 使 用 。<br />
5. 通 过 将 TXEN 位 置 位 使 能 发 送 , 此 操 作 同 时 也 会<br />
将 TXIF 位 置 位 。<br />
6. 如 果 选 择 了 9 位 发 送 , 应 该 将 第 9 位 装 入 TX9D<br />
位 。<br />
7. 将 数 据 装 入 TXREG 寄 存 器 ( 开 始 发 送 )。<br />
如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE 和 PEIE<br />
位 (INTCON) 已 置 位 。<br />
图 19-6:<br />
异 步 接 收<br />
RX( 引 脚 )<br />
接 收 移 位 寄 存 器<br />
起 始<br />
位<br />
起 始<br />
bit0 bit1 bit7/8 停 止 位 bit0<br />
位<br />
bit7/8<br />
停 止<br />
位<br />
起 始<br />
位<br />
bit7/8<br />
停 止<br />
位<br />
接 收 缓 冲 寄 存 器<br />
读 接 收<br />
缓 冲 寄 存 器<br />
RCREG<br />
第 1 个 字<br />
RCREG<br />
第 2 个 字<br />
RCREG<br />
RCIF<br />
( 中 断 标 志 )<br />
OERR 位<br />
CREN<br />
注 :<br />
此 时 序 图 显 示 了 RX 输 入 引 脚 上 出 现 的 3 个 字 。 在 第 3 个 字 后 读 RCREG ( 接 收 缓 冲 器 ), 这 会 使 OERR ( 溢<br />
出 ) 位 置 位 。<br />
表 19-6:<br />
与 异 步 接 收 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR 时<br />
的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 -000 -000 -000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 -000 -000 -000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -111 -111 -111 -111<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
RCREG USART 接 收 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 的 地 址 单 元 , 读 作 0。 阴 影 单 元 格 表 示 在 异 步 接 收 模 式 下 未 使 用 。<br />
DS39616B_CN 第 234 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.3.4 接 收 到 同 步 间 隔 字 符 时 自 动 唤 醒<br />
在 休 眠 模 式 下 , 所 有 的 USART 时 钟 都 会 暂 停 。 因 此 ,<br />
波 特 率 发 生 器 处 于 不 活 动 状 态 , 并 且 无 法 进 行 正 确 的 字<br />
节 接 收 。 当 USART 工 作 在 异 步 模 式 下 时 , 自 动 唤 醒 功<br />
能 允 许 RX/DT 线 上 的 活 动 唤 醒 控 制 器 。<br />
通 过 将 WUE 位 (BAUDCTL) 置 位 可 以 使 能 自 动 唤<br />
醒 功 能 。 置 位 后 , 将 禁 止 RX/DT 上 的 典 型 接 收 序 列 , 并<br />
且 USART 保 持 在 空 闲 状 态 , 监 视 唤 醒 事 件 ( 不 管 CPU<br />
运 行 模 式 如 何 )。 唤 醒 事 件 包 括 RX/DT 线 上 一 个 下 降 沿<br />
信 号 。( 与 LIN 协 议 的 同 步 间 隔 或 唤 醒 信 号 字 符 中 的 起<br />
始 位 保 持 一 致 。)<br />
唤 醒 事 件 后 , 模 块 会 产 生 一 个 RCIF 中 断 。 在 正 常 工 作<br />
模 式 下 , 产 生 的 中 断 与 Q 时 钟 同 步 ( 图 19-7); 如 果<br />
器 件 处 于 休 眠 模 式 , 则 异 步 ( 图 19-8)。 通 过 读 RCREG<br />
寄 存 器 可 清 除 中 断 状 态 。<br />
唤 醒 事 件 后 一 旦 RX 线 出 现 上 升 沿 信 号 ,WUE 位 就 会 自<br />
动 清 零 。 此 时 , USART 模 块 处 于 空 闲 状 态 并 返 回 正 常<br />
工 作 模 式 。 这 就 通 知 用 户 同 步 间 隔 事 件 已 经 结 束 。<br />
19.3.4.1 使 用 自 动 唤 醒 的 特 别 注 意 事 项<br />
因 为 自 动 唤 醒 功 能 是 通 过 在 RX/DT 检 测 到 上 升 沿 信 号 执<br />
行 的 , 任 何 在 停 止 位 前 的 状 态 改 变 都 可 能 会 产 生 错 误 的<br />
结 束 信 号 并 导 致 数 据 错 误 或 帧 错 误 。 因 此 , 要 正 常 工<br />
作 , 发 送 的 初 始 字 符 必 须 全 为 0。 对 于 标 准 的 RS-232<br />
器 件 可 以 是 00h(8 位 ), 对 于 LIN 总 线 则 是 000h(12<br />
位 )。<br />
另 外 还 必 须 考 虑 振 荡 器 起 振 时 间 , 尤 其 是 在 所 采 用 振 荡<br />
器 的 起 振 间 隔 时 间 ( 比 如 LP、XT 或 HS/PLL 模 式 ) 较<br />
长 的 应 用 中 。 同 步 间 隔 ( 或 唤 醒 信 号 ) 字 符 必 须 足 够 长<br />
并 且 之 后 的 间 隔 时 间 也 足 够 长 , 以 便 所 选 振 荡 器 有 足 够<br />
的 时 间 起 振 并 让 USART 正 确 初 始 化 。<br />
19.3.4.2 使 用 WUE 位 的 特 别 注 意 事 项<br />
当 判 断 接 收 数 据 的 有 效 性 时 ,WUE 和 RCIF 时 间 的 时 序<br />
可 能 会 造 成 某 些 困 扰 。 如 前 所 述 , 将 WUE 位 置 位 会 使<br />
USART 进 入 空 闲 模 式 。 唤 醒 事 件 通 过 置 位 RCIF 位 来 产<br />
生 一 个 接 收 中 断 。 此 后 当 RX/DT 出 现 上 升 沿 时 WUE 位<br />
清 零 。 然 后 可 以 通 过 读 RCREG 寄 存 器 清 除 中 断 状 态 。<br />
一 般 情 况 下 ,RCREG 中 的 数 据 是 无 效 数 据 , 应 该 丢 弃 。<br />
不 应 该 将 WUE 位 清 零 ( 或 仍 然 置 位 ) 以 及 RCIF 标 志<br />
位 置 位 作 为 RCREG 中 数 据 完 整 性 的 指 示 。 用 户 应 该 考<br />
虑 用 固 件 实 现 一 种 并 行 方 法 以 验 证 接 收 数 据 的 完 整 性 。<br />
要 确 保 没 有 丢 失 有 效 数 据 , 应 检 查 RCIDL 位 以 验 证 是 否<br />
在 进 行 接 收 。 如 果 没 有 发 生 接 收 操 作 , 则 随 后 可 以 在 进<br />
入 休 眠 模 式 前 将 WUE 位 置 位 。<br />
图 19-7:<br />
OSC1<br />
WUE 位<br />
正 常 工 作 模 式 下 的 自 动 唤 醒 位 (WUE) 时 序<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
由 用 户 置 位<br />
自 动 清 零<br />
RX/DT 线<br />
RCIF<br />
因 用 户 读 RCREG 而 清 零<br />
注 1: WUE 位 置 位 时 USART 保 持 在 空 闲 状 态 。<br />
图 19-8:<br />
OSC1<br />
WUE 位<br />
休 眠 模 式 下 的 自 动 唤 醒 位 (WUE) 时 序<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
由 用 户 置 位<br />
自 动 清 零<br />
RX/DT 线<br />
( 注 1)<br />
RCIF<br />
因 用 户 读 RCREG 而 清 零<br />
执 行 了 休 眠 命 令<br />
休 眠 结 束<br />
注 1: 如 果 唤 醒 事 件 需 要 较 长 的 振 荡 器 预 热 时 间 , 当 stposc 信 号 仍 然 有 效 时 可 能 会 发 生 WUE 位 自 动 清 零 。 此 过 程 与 Q 时 钟 出 现 与 否 无 关 。<br />
2: WUE 位 置 位 时 USART 保 持 在 空 闲 状 态 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 235 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.3.5 间 隔 字 符 序 列<br />
增 强 型 USART 模 块 能 够 发 送 LIN 总 线 标 准 所 需 的 特 殊<br />
间 隔 字 符 序 列 。 发 送 的 间 隔 字 符 包 括 1 个 起 始 位 、 后 面<br />
跟 着 12 位 0 位 , 还 有 1 个 停 止 位 。 当 发 送 移 位 寄 存 器<br />
装 入 数 据 时 , 只 要 SENDB 和 TXEN 位 (TXSTA 和<br />
TXSTA) 置 位 , 就 会 发 送 帧 间 隔 字 符 。 请 注 意 写 入<br />
TXREG 的 数 据 值 会 被 忽 略 , 并 作 为 0 发 送 。<br />
在 发 送 了 相 应 的 停 止 位 后 , 硬 件 会 自 动 将 SENDB 位 复<br />
位 。 这 可 以 让 用 户 在 间 隔 字 符 ( 在 LIN 规 范 中 通 常 是 同<br />
步 字 符 ) 后 预 先 将 下 一 个 发 送 字 节 装 入 发 送 FIFO 队 列 。<br />
请 注 意 间 隔 字 符 中 写 入 TXREG 的 数 据 值 会 被 忽 略 。 这<br />
个 写 操 作 仅 仅 是 为 了 开 始 正 确 的 序 列 。<br />
TRMT 位 表 明 发 送 处 于 活 动 还 是 空 闲 状 态 , 这 与 正 常 发<br />
送 模 式 相 同 。 关 于 间 隔 字 符 序 列 , 请 参 见 图 19-9。<br />
19.3.5.1 间 隔 和 同 步 发 送 序 列<br />
下 列 序 列 会 发 送 一 个 报 文 帧 头 , 包 括 一 个 间 隔 字 符 , 后<br />
面 跟 着 一 个 自 动 波 特 率 同 步 字 节 。 此 序 列 适 用 于 典 型 的<br />
主 LIN 总 线 。<br />
1. 将 USART 配 置 为 所 需 的 模 式 。<br />
2. 将 TXEN 和 SENDB 位 置 位 以 建 立 间 隔 字 符 。<br />
3. 将 无 效 字 符 装 入 TXREG, 开 始 发 送 ( 该 值 会 被<br />
忽 略 )。<br />
4. 将 55h 写 入 TXREG, 以 便 把 同 步 字 符 装 入 发 送<br />
FIFO 缓 冲 器 。<br />
5. 间 隔 字 符 发 送 后 , 硬 件 会 将 SENDB 位 复 位 。 然<br />
后 同 步 字 符 在 预 配 置 模 式 下 开 始 发 送 。<br />
当 TXIF 标 识 TXREG 变 空 以 后 , 下 一 个 数 据 字 节 会 写<br />
入 TXREG。<br />
19.3.6 接 收 间 隔 字 符<br />
增 强 型 USART 模 块 有 两 种 方 法 接 收 间 隔 字 符 。<br />
第 一 种 方 法 是 强 制 将 波 特 率 配 置 为 标 准 速 度 的 9/13。 这<br />
可 以 使 停 止 位 在 正 确 的 采 样 点 ( 对 于 间 隔 字 符 和 起 始 位<br />
是 13 位 , 典 型 数 据 则 是 8 个 数 据 位 ) 被 发 送 。<br />
第 二 种 方 法 使 用 第 19.3.4 节 “ 接 收 到 同 步 间 隔 字 符 时<br />
自 动 唤 醒 ” 中 描 述 的 自 动 唤 醒 功 能 。 通 过 使 能 此 功 能 ,<br />
USART 将 采 样 RX/DT 线 的 下 两 个 发 送 信 号 , 产 生 一 个<br />
RCIF 中 断 , 并 且 接 收 下 一 个 数 据 字 节 , 之 后 再 产 生 另<br />
一 个 中 断 。<br />
请 注 意 在 间 隔 字 符 后 , 用 户 通 常 希 望 使 能 自 动 波 特 率 检<br />
测 功 能 。 在 这 两 种 方 法 中 , 用 户 都 可 以 在 USART 进 入<br />
休 眠 模 式 前 将 ABD 位 置 位 。<br />
图 19-9:<br />
写 TXREG<br />
发 送 间 隔 字 符 序 列<br />
无 效 写 入<br />
BRG 输 出<br />
( 移 位 时 钟 )<br />
TX( 引 脚 )<br />
TXIF 位<br />
( 发 送 缓 冲 寄 存 器<br />
空 标 志 )<br />
TRMT 位<br />
( 发 送 移 位 寄 存 器<br />
空 标 志 )<br />
SENDB<br />
( 发 送 移 位 寄 存 器<br />
空 标 志 )<br />
起 始 位 Bit 0 Bit 1 Bit 11 停 止 位<br />
间 隔 字 符<br />
此 处 采 样 SENDB 自 动 清 零<br />
DS39616B_CN 第 236 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.4 USART 同 步 主 控 模 式<br />
将 CSRC 位 (TXSTA) 置 位 可 以 进 入 同 步 主 控 模<br />
式 。 在 此 模 式 中 , 数 据 以 半 双 工 方 式 发 送 ( 即 发 送 和 接<br />
收 不 能 同 时 进 行 ) 。 发 送 数 据 时 禁 止 接 收 , 反 之 亦 然 。<br />
将 SYNC 位 (TXSTA) 置 位 可 进 入 同 步 模 式 。 此<br />
外 , 置 位 使 能 位 SPEN (RCSTA), 会 使 RC6/TX/<br />
CK/SS 和 RC7/RX/DT/SDO I/O 引 脚 分 别 配 置 为 CK( 时<br />
钟 ) 和 DT ( 数 据 ) 线 。<br />
主 控 模 式 表 示 处 理 器 在 CK 线 发 送 主 时 钟 。 时 钟 极 性 是 通<br />
过 SCKP 位 (BAUDCTL) 进 行 选 择 的 ; 将 SCKP 置<br />
位 使 CK 为 高 电 平 时 进 入 空 闲 状 态 , 将 该 位 清 零 则 将 空 闲<br />
状 态 置 为 低 电 平 。 提 供 此 选 项 是 为 了 支 持 Microwire ® 器<br />
件 使 用 本 模 块 。<br />
19.4.1 USART 同 步 主 控 发 送 模 式<br />
图 19-2 所 示 为 USART 发 送 器 框 图 。 发 送 器 的 核 心 是 发<br />
送 ( 串 行 ) 移 位 寄 存 器 (TSR)。 移 位 寄 存 器 中 的 数 据<br />
通 过 读 / 写 发 送 缓 冲 寄 存 器 TXREG 获 取 。TXREG 寄 存<br />
器 要 用 软 件 装 入 数 据 。 直 到 前 一 次 装 入 的 数 据 被 发 送 完<br />
成 才 会 再 次 向 TSR 寄 存 器 装 入 数 据 。 一 旦 发 送 了 最 后 一<br />
位 , 就 会 将 TXREG 寄 存 器 的 新 数 据 ( 如 果 有 的 话 ) 装<br />
入 TSR。<br />
一 旦 TXREG 寄 存 器 将 数 据 传 递 到 TSR 寄 存 器 ( 在 1<br />
个 TCY 周 期 内 发 生 ) 之 后 , TXREG 寄 存 器 为 空 , 同 时<br />
中 断 位 TXIF (PIR1) 置 位 。 通 过 置 位 / 清 零 中 断<br />
使 能 位 TXIE (PIE1), 该 中 断 可 以 被 使 能 / 禁 止 。<br />
不 管 使 能 位 TXIE 的 状 态 如 何 , 标 志 位 TXIF 都 将 置 位 并<br />
且 无 法 用 软 件 清 零 。 只 有 在 TXREG 寄 存 器 装 入 了 新 数<br />
据 后 此 位 才 会 复 位 。<br />
标 志 位 TXIF 表 示 TXREG 寄 存 器 的 状 态 , 而 另 一 位<br />
TRMT(TXSTA) 则 表 示 TSR 寄 存 器 的 状 态 。TRMT<br />
是 只 读 位 , 当 TSR 寄 存 器 为 空 时 置 位 。 因 为 没 有 与 此 位<br />
关 联 的 中 断 逻 辑 , 所 以 用 户 必 须 查 询 此 位 以 判 断 TSR 寄<br />
存 器 是 否 为 空 。TSR 寄 存 器 不 映 射 到 数 据 存 储 器 , 因 此<br />
用 户 无 法 使 用 它 。<br />
要 建 立 同 步 主 控 发 送 模 式 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRGH:SPBRG 寄 存<br />
器 。 按 需 要 将 BRGH 和 BRG16 位 置 位 或 清 零 ,<br />
以 获 得 所 需 的 波 特 率 。<br />
2. 通 过 将 SYNC、SPEN 和 CSRC 位 置 位 可 以 使 能<br />
同 步 主 串 行 端 口 。<br />
3. 如 果 需 要 中 断 , 将 使 能 位 TXIE 置 位 。<br />
4. 如 果 需 要 9 位 发 送 , 将 TX9 置 位 。<br />
5. 将 TXEN 位 置 位 以 使 能 发 送 。<br />
6. 如 果 选 择 了 9 位 发 送 , 应 该 将 第 9 位 装 入 TX9D<br />
位 。<br />
7. 将 数 据 装 入 TXREG 寄 存 器 以 开 始 发 送 。<br />
8. 如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE<br />
和 PEIE 位 (INTCON) 已 置 位 。<br />
图 19-10:<br />
同 步 发 送<br />
Q1 Q2 Q3Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
RC7/RX/DT/<br />
SDO 引 脚<br />
RC6/TX/CK/<br />
SS 引 脚<br />
(SCKP=0)<br />
RC6/TX/CK/<br />
SS 引 脚<br />
(SCKP=1)<br />
写<br />
TXREG 寄 存 器<br />
TXIF 位<br />
( 中 断 标 志 )<br />
TRMT 位<br />
写 第 1 个 字<br />
bit 0 bit 1 bit 2 bit 7 bit 0 bit 1 bit 7<br />
第 1 个 字<br />
第 2 个 字<br />
写 第 2 字<br />
TXEN 位<br />
'1'<br />
'1'<br />
注 : 同 步 主 控 模 式 , SPBRG=0, 连 续 发 送 两 个 8 位 字 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 237 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 19-11:<br />
同 步 发 送 ( 通 过 TXEN)<br />
RC7/RX/DT/SDO 引 脚<br />
bit0 bit1 bit2 bit6 bit7<br />
RC6/TX/CK/SS 引 脚<br />
写 TXREG 寄 存 器<br />
TXIF 位<br />
TRMT 位<br />
TXEN 位<br />
表 19-7:<br />
与 同 步 主 控 发 送 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 -000 -000 -000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 -000 -000 -000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -000 -000 -000 -000<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
TXREG USART 发 送 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 在 同 步 主 控 发 送 模 式 下 未 使 用 。<br />
DS39616B_CN 第 238 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.4.2 USART 同 步 主 控 接 收 模 式<br />
选 择 了 同 步 模 式 后 , 通 过 将 单 字 接 收 使 能 位 SREN<br />
(RCSTA) 或 连 续 接 收 使 能 位 CREN(RCSTA)<br />
置 位 可 使 能 接 收 。 在 时 钟 下 降 沿 会 对 RC7/RX/DT/SDO<br />
引 脚 上 的 数 据 采 样 。<br />
如 果 使 能 位 SREN 置 位 , 则 只 接 收 一 个 字 。 如 果 使 能 位<br />
CREN 置 位 , 在 CREN 清 零 前 会 连 续 接 收 数 据 。 如 果 两<br />
个 位 同 时 置 位 , 则 CREN 优 先 。<br />
要 建 立 同 步 主 控 接 收 模 式 :<br />
1. 用 适 当 的 波 特 率 初 始 化 SPBRGH:SPBRG 寄 存<br />
器 。 按 需 要 将 BRGH 和 BRG16 位 置 位 或 清 零 ,<br />
以 获 得 所 需 的 波 特 率 。<br />
2. 通 过 将 SYNC、SPEN 和 CSRC 位 置 位 可 以 使 能<br />
同 步 主 串 行 端 口 。<br />
3. 确 保 将 CREN 和 SREN 位 清 零 。<br />
4. 如 果 需 要 中 断 , 将 中 断 使 能 位 RXIE 置 位 。<br />
5. 如 果 需 要 9 位 接 收 , 将 RX9 位 置 位 。<br />
6. 如 果 需 要 单 字 节 接 收 , 将 SREN 位 置 位 。 如 果 需<br />
要 连 续 接 收 , 将 CREN 位 置 位 。<br />
7. 当 接 收 完 成 时 中 断 标 志 RCIF 位 将 置 位 , 并 且 如<br />
果 使 能 位 RCIE 置 位 , 会 产 生 一 个 中 断 。<br />
8. 读 RCSTA 寄 存 器 以 获 取 第 9 位 ( 如 果 使 能 ) 并<br />
判 断 是 否 在 接 收 过 程 中 发 生 了 错 误 。<br />
9. 读 RCREG 寄 存 器 来 读 取 8 位 接 收 数 据 。<br />
10. 如 果 发 生 错 误 , 将 CREN 位 清 零 以 清 除 错 误 。<br />
11. 如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE<br />
和 PEIE 位 (INTCON) 已 置 位 。<br />
图 19-12:<br />
同 步 接 收 ( 主 控 模 式 , SREN)<br />
Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
RC7/RX/DT/SDO<br />
引 脚<br />
RC6/TX/CK/SS<br />
引 脚<br />
(SCKP=0)<br />
RC6/TX/CK/SS<br />
引 脚<br />
(SCKP=1)<br />
bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7<br />
写 SREN 位<br />
SREN 位<br />
CREN 位<br />
RCIF 位<br />
( 中 断 )<br />
0<br />
0<br />
读 RXREG<br />
注 : 此 时 序 图 说 明 SREN=1 并 且 BRGH=0 时 的 同 步 主 控 模 式 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 239 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 19-8:<br />
与 同 步 主 控 接 收 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 -000 -000 -000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 -000 -000 -000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -111 -111 -111 -111<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
RCREG USART 接 收 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 同 步 主 控 接 收 模 式 下 未 使 用 。<br />
DS39616B_CN 第 240 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.5 USART 同 步 从 动 模 式<br />
将 CSRC 位 (TXSTA) 清 零 可 进 入 同 步 从 动 模 式 。<br />
此 模 式 与 同 步 主 控 模 式 的 区 别 在 于 移 位 时 钟 是 由 RC6/<br />
TX/CK/SS 引 脚 外 部 提 供 的 ( 在 主 控 模 式 中 是 内 部 提 供<br />
的 )。 这 使 器 件 可 以 在 任 何 低 功 耗 模 式 下 发 送 或 接 收 数<br />
据 。<br />
19.5.1 USART 同 步 从 动 发 送 模 式<br />
除 了 休 眠 模 式 以 外 , 同 步 主 控 模 式 和 从 动 模 式 的 工 作 原<br />
理 是 相 同 的 。<br />
如 果 向 TXREG 写 两 个 字 , 然 后 执 行 SLEEP 指 令 , 则 会<br />
发 生 以 下 事 件 :<br />
a) 第 一 个 字 立 即 传 输 到 TSR 寄 存 器 并 发 送 。<br />
b) 第 二 个 字 留 在 TXREG 寄 存 器 。<br />
c) 标 志 位 TXIF 不 会 置 位 。<br />
d) 当 第 一 个 字 移 出 TSR 时 ,TXREG 寄 存 器 将 第 二<br />
字 发 送 到 TSR, 然 后 标 志 位 TXIF 置 位 。<br />
e) 如 果 中 断 使 能 位 TXIE 置 位 , 中 断 将 芯 片 从 休 眠<br />
状 态 唤 醒 。 如 果 使 能 全 局 中 断 , 程 序 会 转 移 到 中<br />
断 向 量 。<br />
要 建 立 同 步 从 动 发 送 :<br />
1. 通 过 将 SYNC 和 SPEN 位 置 位 并 清 零 CSRC 位<br />
可 以 使 能 同 步 从 串 行 端 口 。<br />
2. 将 CREN 和 SREN 位 清 零 。<br />
3. 如 果 需 要 中 断 , 将 中 断 使 能 位 TXIE 置 位 。<br />
4. 如 果 需 要 9 位 发 送 , 将 TX9 位 置 位 。<br />
5. 将 使 能 位 TXEN 置 位 以 使 能 发 送 。<br />
6. 如 果 选 择 了 9 位 发 送 , 应 该 将 第 9 位 装 入 TX9D<br />
位 。<br />
7. 将 数 据 装 入 TXREG 寄 存 器 以 开 始 发 送 。<br />
8. 如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE<br />
和 PEIE 位 (INTCON) 已 置 位 。<br />
表 19-9:<br />
与 同 步 从 动 发 送 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 -000 -000 -000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 -000 -000 -000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -000 -000 -000 -000<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
TXREG USART 发 送 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 在 同 步 从 动 发 送 模 式 下 未 使 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 241 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
19.5.2 USART 同 步 从 动 接 收 模 式<br />
除 了 休 眠 模 式 、 任 何 空 闲 模 式 和 SREN 位 ( 在 从 动 模<br />
式 被 忽 略 ) 外 , 同 步 主 控 模 式 和 从 动 模 式 的 工 作 原 理 是<br />
相 同 的 。<br />
如 果 在 进 入 休 眠 或 任 何 空 闲 模 式 前 将 CREN 位 置 位 以 使<br />
能 接 收 , 则 在 此 低 功 耗 模 式 下 可 以 接 收 一 个 字 。 接 收 到<br />
该 字 后 ,RSR 寄 存 器 将 把 数 据 发 送 到 RCREG 寄 存 器 ,<br />
如 果 RCIE 使 能 位 置 位 , 产 生 的 中 断 将 把 芯 片 从 低 功 耗<br />
模 式 唤 醒 。 如 果 使 能 全 局 中 断 , 程 序 会 转 移 到 中 断 向<br />
量 。<br />
要 建 立 同 步 从 动 接 收 模 式 :<br />
1. 通 过 将 SYNC 和 SPEN 位 置 位 并 清 零 CSRC 位<br />
可 以 使 能 同 步 主 串 行 端 口 。<br />
2. 如 果 需 要 中 断 , 将 中 断 使 能 位 RCIE 置 位 。<br />
3. 如 果 需 要 9 位 接 收 , 将 RX9 位 置 位 。<br />
4. 要 使 能 接 收 , 将 使 能 位 CREN 置 位 。<br />
5. 接 收 完 成 时 标 志 位 RCIF 会 置 位 。 如 果 中 断 使 能<br />
位 RCIE 置 位 , 会 产 生 一 个 中 断 。<br />
6. 读 RCSTA 寄 存 器 以 获 取 第 9 位 ( 如 果 使 能 ) 并<br />
判 断 是 否 在 接 收 过 程 中 发 生 了 错 误 。<br />
7. 读 RCREG 寄 存 器 来 读 取 8 位 接 收 数 据 。<br />
8. 如 果 发 生 错 误 , 将 CREN 位 清 零 以 清 除 错 误 。<br />
9. 如 果 使 用 中 断 , 应 确 保 INTCON 寄 存 器 中 的 GIE<br />
和 PEIE 位 (INTCON) 已 置 位 。<br />
表 19-10:<br />
与 同 步 从 动 接 收 模 式 相 关 的 寄 存 器<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
POR 和 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 0000 000u<br />
PIR1 — ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000<br />
PIE1 — ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000<br />
IPR1 — ADIP RCIP TXIP — CCP1IP TMR2IP TMR1IP -111 -111 -111 -111<br />
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x 0000 -00x<br />
RCREG USART 接 收 寄 存 器 0000 0000 0000 0000<br />
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010<br />
BAUDCTL — RCIDL — SCKP BRG16 — WUE ABDEN -1-1 0-00 -1-1 0-00<br />
SPBRGH 波 特 率 发 生 器 寄 存 器 的 高 位 字 节 0000 0000 0000 0000<br />
SPBRG 波 特 率 发 生 器 寄 存 器 的 低 位 字 节 0000 0000 0000 0000<br />
图 注 : x= 未 知 , -= 未 实 现 , 读 作 0。 阴 影 单 元 格 表 示 同 步 从 动 接 收 模 式 下 未 使 用 。<br />
DS39616B_CN 第 242 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.0 10 位 高 速 模 数 转 换 器 (A/D) 模<br />
块<br />
高 速 模 数 (A/D) 转 换 器 模 块 允 许 将 模 拟 信 号 转 换 为 对<br />
应 的 10 位 数 字 。<br />
A/D 模 块 在 PIC18F2X31 器 件 上 支 持 多 达 5 个 输 入 通<br />
道 , 在 PIC18F4X31 器 件 上 支 持 多 达 9 个 输 入 通 道 。<br />
高 速 10 位 A/D 模 块 提 供 以 下 性 能 :<br />
• 每 秒 多 达 200K 次 的 采 样<br />
• 两 采 样 保 持 输 入 端 用 于 双 通 道 同 步 采 样<br />
• 可 选 的 同 步 或 连 续 采 样 模 式<br />
• 用 于 A/D 转 换 结 果 的 4 字 数 据 缓 冲 器<br />
• 可 选 的 数 据 采 集 时 序<br />
• 可 选 的 A/D 事 件 触 发<br />
• 使 用 内 部 振 荡 器 在 休 眠 模 式 运 行<br />
这 些 性 能 使 它 们 可 以 用 于 很 多 应 用 场 合 , 包 括 电 机 控<br />
制 、 传 感 器 连 接 、 数 据 采 集 和 过 程 控 制 。 在 很 多 情 况 下 ,<br />
这 些 功 能 可 以 减 少 与 标 准 A/D 模 块 相 关 的 软 件 开 销 。<br />
此 模 块 有 9 个 寄 存 器 :<br />
• A/D 结 果 高 位 寄 存 器 (ADRESH)<br />
• A/D 结 果 低 位 寄 存 器 (ADRESL)<br />
• A/D 控 制 寄 存 器 0 (ADCON0)<br />
• A/D 控 制 寄 存 器 1 (ADCON1)<br />
• A/D 控 制 寄 存 器 2 (ADCON2)<br />
• A/D 控 制 寄 存 器 3 (ADCON3)<br />
• A/D 通 道 选 择 寄 存 器 (ADCHS)<br />
• 模 拟 I/O 选 择 寄 存 器 0 (ANSEL0)<br />
• 模 拟 I/O 选 择 寄 存 器 1 (ANSEL1)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 243 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-1: ADCON0:A/D 控 制 寄 存 器 0<br />
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
- - ACONV ACSCH ACMOD1 ACMOD0 GO/DONE ADON<br />
bit 7 bit 0<br />
bit 7-6 未 实 现 位 : 读 作 0<br />
bit 5<br />
bit 4<br />
bit 3-2<br />
bit 1<br />
bit 0<br />
ACONV: 自 动 转 换 连 续 循 环 模 式 或 单 步 模 式 选 择 位<br />
1= 使 能 连 续 循 环 模 式<br />
0= 使 能 单 步 模 式<br />
ACSCH: 自 动 转 换 单 通 道 或 多 通 道 模 式 位<br />
1= 使 能 多 通 道 模 式 , 禁 止 单 通 道 模 式<br />
0= 使 能 单 通 道 模 式 , 禁 止 多 通 道 模 式<br />
ACMOD: 自 动 转 换 模 式 顺 序 选 择 位<br />
如 果 ACSCH=1:<br />
00= 连 续 模 式 1 (SEQM1)。 两 次 采 样 按 顺 序 进 行 :<br />
第 一 次 采 样 :A 组<br />
第 二 次 采 样 :B 组<br />
01= 连 续 模 式 2 (SEQM2)。 四 次 采 样 按 顺 序 进 行 :<br />
第 一 次 采 样 :A 组<br />
第 二 次 采 样 :B 组<br />
第 三 次 采 样 :C 组<br />
第 四 次 采 样 :D 组<br />
10= 同 步 模 式 1 (STNM1)。 两 次 采 样 同 时 进 行 :<br />
第 一 次 采 样 :A 组 和 B 组<br />
11= 同 步 模 式 2 (STNM2)。 两 次 采 样 同 时 进 行 :<br />
第 一 次 采 样 :A 组 和 B 组<br />
第 二 次 采 样 :C 组 和 D 组<br />
如 果 ACSCH=0, 自 动 转 换 单 通 道 顺 序 模 式 使 能 :<br />
00= 单 通 道 模 式 1 (SCM1)。 对 A 组 采 样 并 转 换<br />
01= 单 通 道 模 式 2 (SCM2)。 对 B 组 采 样 并 转 换<br />
10= 单 通 道 模 式 3 (SCM3)。 对 C 组 采 样 并 转 换<br />
11= 单 通 道 模 式 4 (SCM4)。 对 D 组 采 样 并 转 换<br />
注 : 有 关 A 组 、 B 组 、 C 组 和 D 组 的 信 息 , 请 参 阅 ADCHS 寄 存 器 。<br />
GO/DONE:A/D 转 换 状 态 位<br />
1= A/D 转 换 周 期 正 在 进 行 。 将 该 位 置 位 来 启 动 A/D 转 换 周 期 。 如 果 自 动 转 换 单 步 模 式 被 使 能<br />
(ACONV = 0), 当 A/D 转 换 (ACMOD 的 置 位 决 定 是 单 通 道 还 是 多 通 道 ) 完 成 时 该 位 自 动<br />
由 硬 件 清 零 。 如 果 使 能 自 动 转 换 连 续 循 环 模 式 (ACONV=1), 该 位 在 被 用 户 / 触 发 器 置 位<br />
( 连 续 转 换 ) 后 将 保 持 置 位 状 态 。 用 户 可 以 手 工 清 零 该 位 来 停 止 转 换 。<br />
0= A/D 转 换 或 多 次 转 换 完 成 / 没 有 处 于 进 行 中<br />
ADON:A/D 启 动 位<br />
1= 使 能 A/D 转 换 器 模 块 ( 在 快 速 上 电 延 迟 之 后 , 开 始 连 续 采 样 )<br />
0= 禁 止 A/D 转 换 器 模 块<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
DS39616B_CN 第 244 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-2: ADCON1:A/D 控 制 寄 存 器 1<br />
R/W-0 R/W-0 U-0 R/W-0 R-0 R-0 R-0 R-0<br />
VCFG1 VCFG0 - FIFOEN BFEMT BFOVFL ADPNT1 ADPNT0<br />
bit 7 bit 0<br />
bit 7-6 VCFG: A/D VREF+ 和 A/D VREF- 源 选 择 位<br />
00=VREF+=AVDD, VREF-=AVSS (AN2 和 AN3 为 模 拟 输 入 或 数 字 I/O)<br />
01=VREF+= 外 部 VREF+, VREF-=AVSS (AN2 为 模 拟 输 入 或 数 字 I/O)<br />
10=VREF+=AVDD, VREF-= 外 部 VREF- (AN3 为 模 拟 输 入 或 数 字 I/O)<br />
11=VREF+= 外 部 VREF-, VREF-= 外 部 VREFbit<br />
5 未 实 现 位 : 读 作 0<br />
bit 4 FIFOEN:FIFO 缓 冲 器 使 能 位<br />
1= 使 能 FIFO<br />
0= 禁 止 FIFO<br />
bit 3 BFEMT: 缓 冲 器 变 空 位<br />
1= FIFO 已 空<br />
0= FIFO 未 空 ( 四 个 缓 冲 器 位 置 中 至 少 有 一 个 包 含 未 读 取 A/D 结 果 数 据 )<br />
bit 2 BFOVFL: 缓 冲 器 溢 出 位<br />
1= A/D 结 果 覆 盖 了 包 含 未 读 取 数 据 的 缓 冲 器 位 置<br />
0= A/D 结 果 未 溢 出<br />
bit 1-0 ADPNT: 缓 冲 器 读 指 针 位 置 位<br />
指 定 下 一 个 读 位 置 。<br />
00= 缓 冲 器 地 址 0<br />
01= 缓 冲 器 地 址 1<br />
10= 缓 冲 器 地 址 2<br />
11= 缓 冲 器 地 址 3<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 245 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-3: ADCON2:A/D 控 制 寄 存 器 2<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
ADFM ACQT3 ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0<br />
bit 7 bit 0<br />
bit 7<br />
bit 6-3<br />
bit 2-0<br />
ADFN:A/D 结 果 格 式 选 择 位<br />
1= 右 对 齐<br />
0= 左 对 齐<br />
ACQT:A/D 采 集 时 间 选 择 位<br />
0000= 无 延 迟<br />
( 当 GO/DONE 位 置 位 时 转 换 立 即 开 始 )<br />
0001= 2 TAD<br />
0010= 4 TAD<br />
0011= 6 TAD<br />
0100= 8 TAD<br />
0101= 10 TAD<br />
0110= 12 TAD<br />
0111= 16 TAD<br />
1000= 20 TAD<br />
1001= 24 TAD<br />
1010= 28 TAD<br />
1011= 32 TAD<br />
1100= 36 TAD<br />
1101= 40 TAD<br />
1110= 48 TAD<br />
1111= 64 TAD<br />
ADCS:A/D 转 换 时 钟 选 择 位<br />
000 = FOSC/2<br />
001 = FOSC/8<br />
010 = FOSC/32<br />
011 = FRC/4 (2)<br />
100 = FOSC/4<br />
101 = FOSC/16<br />
110 = FOSC/64<br />
111 = FRC ( 内 部 A/D RC 振 荡 器 )<br />
注 1: 如 果 选 择 RC 作 为 A/D 时 钟 源 , 在 采 样 / 转 换 开 始 之 前 增 加 一 个 TCY 时 间 。<br />
2: 由 于 内 部 A/D RC 振 荡 器 的 频 率 增 加 ,FRC/4 提 供 与 以 前 的 A/D 模 块 相 兼 容 的 时 钟 频<br />
率 。<br />
3: TACQ 在 连 续 模 式 中 应 该 为 12 TAD 以 上 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
DS39616B_CN 第 246 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-4: ADCON3:A/D 控 制 寄 存 器 3<br />
R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
ADRS1 ADRS0 - SSRC4 SSRC3 SSRC2 SSRC1 SSRC0<br />
bit 7 bit 0<br />
bit 7-6 ADRS: 连 续 循 环 模 式 下 A/D 结 果 缓 冲 器 深 度 中 断 选 择 控 制 位<br />
在 单 步 模 式 中 ADRS 位 被 忽 略 。<br />
00= 每 向 缓 冲 器 写 入 一 个 字 就 产 生 中 断<br />
01= 每 向 缓 冲 器 写 入 第 二 个 和 第 四 个 字 就 产 生 中 断<br />
10= 每 向 缓 冲 器 写 入 第 四 个 字 就 产 生 中 断<br />
11= 未 实 现<br />
bit 5 未 实 现 位 : 读 作 0<br />
bit 4:0<br />
SSRCx:A/D 触 发 源 选 择 位<br />
00000= 禁 止 所 有 触 发<br />
xxxx1= 外 部 中 断 RC3/INT0 启 动 A/D 序 列<br />
xxx1x=Timer5 启 动 A/D 序 列<br />
xx1xx= 输 入 捕 捉 1 (IC1) 启 动 A/D 序 列<br />
x1xxx=CCP2 比 较 匹 配 启 动 A/D 序 列<br />
1xxxx= 功 率 控 制 PWM 模 块 上 升 沿 启 动 A/D 序 列<br />
注<br />
1: SSRCx 位 可 以 被 置 位 , 这 样 任 何 触 发 都 将 启 动 转 换<br />
( 例 如 , SSRCx=00101, 将 在 RC3/INT0 或 输 入 捕<br />
捉 1 事 件 发 生 时 触 发 A/D 转 换 )。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 247 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-5:<br />
ADCHS:A/D 通 道 选 择 寄 存 器<br />
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0<br />
GDSEL1 GDSEL0 GBSEL1 GBSEL0 GCSEL1 GCSEL0 GASEL1 GASEL0<br />
bit 7 bit 0<br />
bit 7-6<br />
bit 5-4<br />
bit 3-2<br />
bit 1-0<br />
GDSEL1:GDSEL0:D 组 选 择 位<br />
S/H-2 正 输 入 端<br />
00=AN3<br />
01=AN7 (1)<br />
1x= 保 留<br />
GBSEL1:GBSEL0:B 组 选 择 位<br />
S/H-2 正 输 入 端<br />
00=AN1<br />
01=AN5 (1)<br />
1x= 保 留<br />
GCSEL1:GCSEL0:C 组 选 择 位<br />
S/H-1 正 输 入 端<br />
00=AN2<br />
01=AN6 (1)<br />
1x= 保 留<br />
GASEL1:GASEL0:A 组 选 择 位<br />
S/H-1 正 输 入 端<br />
00=AN0<br />
01=AN4<br />
01=AN8 (1)<br />
11= 保 留<br />
注 1: 只 有 在 PIC18F4X31 器 件 中 AN5 至 AN8 才 可 用 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知<br />
DS39616B_CN 第 248 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 20-6: ANSEL0: 模 拟 选 择 寄 存 器 0 (1)<br />
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1<br />
ANS7 (2) ANS6 (2) ANS5 (2) ANS4 ANS3 ANS2 ANS1 ANS0<br />
bit 7 bit 0<br />
bit 7-0<br />
ANS: 模 拟 输 入 功 能 选 择 位<br />
对 应 引 脚 AN<br />
1= 模 拟 输 入<br />
0= 数 字 I/O<br />
注<br />
1: 将 引 脚 设 置 为 模 拟 输 入 将 禁 止 数 字 输 入 缓 冲 器 。 作 为 输 入 引 脚 时 应 该 置 位 相 应 的<br />
TRIS 位 , 作 为 输 出 ( 模 拟 或 数 字 ) 引 脚 时 应 该 清 零 相 应 的 TRIS 位 。 ANSx 位 直 接<br />
对 应 于 ANx 引 脚 ( 例 如 ,ANS0=AN0,ANS1=AN1 等 等 )。 未 使 用 的 ANSx 位 读 为 0。<br />
2: 只 有 在 PIC18F4X31 器 件 中 ANS7 至 ANS5 才 可 用 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
寄 存 器 20-7: ANSEL1: 模 拟 选 择 寄 存 器 1 (1)<br />
U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1<br />
- - - - - - - ANS8 (2)<br />
bit 15 bit 8<br />
bit 15-9 未 实 现 位 : 读 作 0<br />
bit 8<br />
ANS8: 模 拟 输 入 功 能 选 择 位<br />
1= 模 拟 输 入<br />
0= 数 字 I/O<br />
注<br />
1: 将 引 脚 设 置 为 模 拟 输 入 将 禁 止 数 字 输 入 缓 冲 器 。 作 为 输 入 引 脚 时 应 该 置 位 相 应 的<br />
TRIS 位 , 作 为 输 出 引 脚 ( 模 拟 或 数 字 ) 时 应 该 清 零 相 应 的 TRIS 位 。 ANSx 位 直 接<br />
对 应 于 ANx 引 脚 ( 例 如 ,ANS0=AN0,ANS1=AN1 等 等 )。 未 使 用 的 ANSx 位 读 为 0。<br />
2: ANS8 只 在 PIC18F4X31 器 件 上 才 可 用 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U = 未 实 现 位 , 读 作 0<br />
-n= 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 249 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
A/D 通 道 分 为 四 组 , 每 组 分 别 有 2 或 3 个 通 道 。 对 于<br />
PIC18F2X31 器 件 来 说 ,AN0 和 AN4 在 A 组 ,AN1 在<br />
B 组 ,AN2 在 C 组 而 AN3 在 D 组 。 对 于 PIC18F4X31<br />
器 件 来 说 AN0、 AN4 和 AN8 在 A 组 , AN1 和 AN5 在<br />
B 组 , AN2 和 AN6 在 C 组 而 AN3 和 AN7 在 D 组 。 配<br />
置 A/D 通 道 选 择 寄 存 器 ADCHS 可 以 选 择 使 用 每 组 中 的<br />
通 道 。<br />
可 用 软 件 选 择 模 拟 参 考 电 压 作 为 器 件 的 正 模 拟 供 电 电 压<br />
和 负 模 拟 供 电 电 压 (AVDD 和 AVSS), 或 RA3/AN3/<br />
VREF+/CAP2/QEA 和 RA2/AN2/VREF-/CAP1/INDX 电<br />
平 , 又 或 是 供 电 电 源 和 外 部 电 源 的 组 合 。 寄 存 器<br />
ADCON1 控 制 参 考 电 压 的 设 置 。<br />
A/D 转 换 器 具 备 可 在 休 眠 状 态 下 工 作 的 独 特 特 性 。 要 使<br />
A/D 转 换 器 在 休 眠 状 态 下 运 行 , A/D 转 换 时 钟 必 须 来 自<br />
于 A/D 模 块 内 部 的 RC 振 荡 器 。<br />
器 件 复 位 强 制 所 有 寄 存 器 进 入 复 位 状 态 。 同 时 强 制 关 闭<br />
A/D 模 块 并 中 止 任 何 正 在 进 行 的 转 换 。<br />
可 以 用 ANSEL0 和 ANSEL1 寄 存 器 将 每 个 与 A/D 转 换<br />
器 相 关 的 端 口 引 脚 分 别 配 置 成 模 拟 输 入 或 数 字 I/O。<br />
ADRESH 和 ADRESL 寄 存 器 包 含 ADPNT<br />
(ADCON1) 指 向 的 结 果 缓 冲 器 中 的 值 。 结 果 缓 冲<br />
器 是 一 个 深 度 为 4 层 的 循 环 缓 冲 器 , 它 有 一 个 空 状 态 位<br />
BEMT (ADCON1) 和 一 个 溢 出 状 态 位 BOVFL<br />
(ADCON1)。<br />
图 20-1:<br />
A/D 框 图<br />
AVDD AVSS<br />
VCFG<br />
VREF+<br />
VREF-<br />
VREFL<br />
VREFH<br />
ADC<br />
AN0<br />
AN4<br />
AN8 (1)<br />
AN2/VREF-<br />
AN6 (1)<br />
模 拟<br />
Mux<br />
10<br />
ADRESH, ADRESL<br />
MUX<br />
ADPNT<br />
ACMOD, GxSEL<br />
S/H-1<br />
+<br />
S/H<br />
-<br />
1<br />
2<br />
3<br />
4<br />
4 个 10 位 FIFO<br />
00<br />
01<br />
10<br />
11<br />
AVSS<br />
AN1<br />
AN5 (1)<br />
AN3/VREF+<br />
AN7 (1)<br />
模 拟<br />
Mux<br />
ACONV<br />
ACSCM<br />
ACMOD<br />
S/H-2<br />
+<br />
S/H<br />
-<br />
ACMOD, GxSEL<br />
AVSS<br />
顺 序<br />
控 制<br />
注 1: 只 有 在 PIC18F4X31 器 件 中 AN5 至 AN8 才 可 用 。<br />
DS39616B_CN 第 250 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.1 配 置 A/D 转 换 器<br />
A/D 转 换 器 有 两 种 转 换 类 型 , 两 种 操 作 模 式 以 及 八 种 不<br />
同 的 顺 序 模 式 。 这 些 特 性 由 ACONV 位<br />
(ADCON0)、ACSH 位 (ADCON0) 和<br />
ACMOD 位 (ADCON0) 控 制 。 此 外 ,A/D<br />
通 道 根 据 ADCHS 寄 存 器 中 的 定 义 分 为 四 组 。 表 20-1 所<br />
示 为 ACSCH 和 ACMOD 位 所 控 制 的 顺 序 配 置 。<br />
表 20-1:<br />
自 动 转 换 顺 序 配 置<br />
模 式 ACSCH ACMOD 描 述<br />
多 通 道 连 续 模 式 1 (SEQM1) 1 00 连 续 采 样 并 转 换 A 组 和 B 组<br />
多 通 道 连 续 模 式 2 (SEQM2) 1 01 连 续 采 样 并 转 换 A、 B、 C 和 D 组<br />
多 通 道 同 步 模 式 1 (STNM1) 1 10 同 步 采 样 A 组 和 B 组 , 然 后 连 续 进 行 转 换<br />
多 通 道 同 步 模 式 2 (STNM2) 1 11 同 步 采 样 A 组 和 B 组 , 然 后 连 续 进 行 转 换 。 同 步 采<br />
样 C 组 和 D 组 , 然 后 连 续 进 行 转 换 。<br />
单 通 道 模 式 1 (SCM1) 0 00 采 样 并 转 换 A 组<br />
单 通 道 模 式 2 (SCM2) 0 01 采 样 并 转 换 B 组<br />
单 通 道 模 式 3 (SCM3) 0 10 采 样 并 转 换 C 组<br />
单 通 道 模 式 4 (SCM4) 0 11 采 样 并 转 换 D 组<br />
20.1.1 转 换 类 型<br />
高 速 10 位 A/D 转 换 器 模 块 有 两 种 转 换 类 型 , 可 使 用<br />
ACONV 位 选 择 。 当 ACONV=0 时 , 单 步 模 式 允 许 单 次<br />
转 换 或 顺 序 转 换 。 在 顺 序 转 换 结 束 的 时 候 , GO/DONE<br />
位 将 被 自 动 清 零 且 置 位 中 断 标 志 位 ADIF。 当 采 用 单 步<br />
模 式 并 配 置 为 同 步 模 式 STNM2 时 , 必 须 使 用 采 集 时 间<br />
来 确 保 模 拟 输 入 信 号 的 正 确 转 换 。<br />
当 ACONV=1 时 , 连 续 循 环 模 式 允 许 以 连 续 循 环 的 方 式<br />
来 执 行 已 定 义 顺 序 转 换 。 在 这 个 模 式 中 , 用 户 可 以 通 过<br />
置 位 GO/DONE 位 来 启 动 转 换 , 或 通 过 一 个 A/D 触 发 来<br />
启 动 转 换 。 中 断 标 志 位 ADIF 根 据 ADRS 位<br />
(ADCON3) 的 配 置 而 置 位 。 在 同 步 模 式 STNM1<br />
和 STNM2 中 , 必 须 配 置 采 集 时 间 以 确 保 模 拟 输 入 信 号<br />
的 正 确 转 换 。<br />
20.1.2 转 换 模 式<br />
ACSCH 位 (ADCON0) 控 制 在 配 置 的 顺 序 中 将 使<br />
用 多 少 个 通 道 。 当 清 零 时 , A/D 配 置 为 单 通 道 转 换 , 它<br />
将 转 换 ACMOD 所 选 定 的 组 和 GxSEL<br />
(ADCHS) 所 选 定 的 通 道 。 当 ACSCH=1 时 ,A/D 配 置<br />
为 多 通 道 转 换 , 顺 序 由 ACMOD 定 义 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 251 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.1.3 转 换 顺 序<br />
ACMOD 位 控 制 A/D 转 换 顺 序 。 当 ACSCH = 0 时 ,<br />
A/D 被 配 置 为 采 样 并 转 换 一 个 单 通 道 。 ACMOD 位 选 择<br />
用 哪 个 组 来 执 行 转 换 , 而 GxSEL 位 选 择 要 转 换 组<br />
中 的 哪 个 通 道 。 如 果 使 能 单 步 模 式 , A/D 中 断 标 志 位 将<br />
在 通 道 被 转 换 后 置 位 。 如 果 使 能 连 续 循 环 模 式 , A/D 中<br />
断 标 志 位 将 根 据 ADRS 位 置 位 。<br />
当 ACSHC = 1 时 , 多 通 道 顺 序 转 换 被 使 能 而 且 有 两 个<br />
子 模 式 可 供 选 择 。 第 一 个 模 式 是 带 两 个 设 置 的 连 续 模<br />
式 。 第 一 种 设 置 称 为 SEQM1 且 首 先 对 选 定 的 A 组 通 道<br />
进 行 采 样 和 转 换 , 然 后 对 选 定 的 B 组 通 道 进 行 采 样 和 转<br />
换 。 第 二 种 模 式 叫 做 SEQM2, 它 对 A 组 通 道 、 B 组 通<br />
道 、 C 组 通 道 以 及 D 组 通 道 依 次 进 行 采 样 和 转 换 。<br />
第 二 个 多 通 道 顺 序 转 换 子 模 式 是 同 步 采 样 模 式 。 这 个 模<br />
式 中 也 有 两 种 设 置 。 第 一 种 设 置 叫 做 STNM1, 使 用 A/<br />
D 模 块 上 的 两 个 采 样 保 持 电 路 。 所 选 择 的 A 组 和 B 组 通<br />
道 被 同 步 采 样 , 然 后 先 转 换 A 组 通 道 再 转 换 B 组 通 道 。<br />
第 二 种 设 置 叫 做 STNM2, 它 的 启 动 与 STNM1 相 同 , 但<br />
在 它 之 后 有 C 组 和 D 通 道 的 同 步 采 样 。 然 后 A/D 模 块<br />
将 转 换 C 组 通 道 , 再 转 换 D 组 通 道 。<br />
20.1.4 触 发 A/D 转 换<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 能 够 由 很 多 不 同 的<br />
源 触 发 转 换 。 其 他 的 单 片 机 也 使 用 置 位 GO/DONE 位 的<br />
方 法 触 发 转 换 。 其 他 触 发 源 包 括 :<br />
• RC3/INT0 引 脚<br />
• Timer5 溢 出<br />
• 输 入 捕 捉 1 (IC1)<br />
• CCP2 比 较 匹 配<br />
• 功 率 控 制 PWM 上 升 沿<br />
用 SSRC 位 (ADCON3) 使 能 这 些 触 发 。<br />
只 要 置 位 ADCON3 中 的 相 应 位 , 这 五 种 触 发 源 的 任 意<br />
组 合 都 可 以 触 发 转 换 。 当 发 生 触 发 时 ,GO/DONE 位 自<br />
动 由 硬 件 置 位 , 一 旦 转 换 完 成 , 该 位 就 被 清 零 。<br />
20.1.5 A/D 模 块 初 始 化 步 骤<br />
按 照 以 下 步 骤 进 行 A/D 模 块 的 初 始 化 :<br />
1. 配 置 A/D 模 块 :<br />
a) 配 置 模 拟 引 脚 、 参 考 电 压 和 数 字 I/O<br />
b) 选 择 A/D 输 入 通 道<br />
c) 选 择 A/D 自 动 转 换 模 式<br />
( 单 步 或 连 续 循 环 )<br />
d) 选 择 A/D 转 换 时 钟<br />
e) 选 择 A/D 转 换 触 发<br />
2. 配 置 A/D 中 断 ( 如 果 需 要 的 话 ):<br />
a) GIE 位 置 位<br />
b) PEIE 位 置 位<br />
c) ADIE 位 置 位<br />
d) ADIF 位 清 零<br />
e) 选 择 A/D 触 发 器 设 置<br />
f) 选 择 A/D 中 断 优 先 级<br />
3. 启 动 ADC:<br />
a) 置 位 ADCON0 寄 存 器 中 的 ADON 位<br />
b) 等 待 必 需 的 上 电 启 动 时 间 , 约 为 5-10 µs<br />
4. 开 始 采 样 / 转 换 顺 序 :<br />
a) 采 样 时 间 最 少 为 2TAD, 置 位 GO/DONE 位<br />
开 始 转 换 。GO/DONE 位 由 用 户 用 软 件 进 行<br />
置 位 , 如 果 由 触 发 引 起 转 换 的 话 , 则 由 模 块<br />
进 行 置 位 。<br />
b) 如 果 分 配 给 TACQ 一 个 值 (TAD 的 倍 数 ), 则<br />
置 位 GO/DONE 位 启 动 采 样 周 期 , 这 时 采 样<br />
周 期 等 于 TACQ, 然 后 开 始 转 换 。<br />
5. 使 用 以 下 其 中 一 个 方 法 等 待 A/D 转 换 完 成 :<br />
a) 如 果 是 单 步 模 式 则 查 询 GO/DONE 是 否 被 清<br />
零 。<br />
b) 等 待 A/D 中 断 标 志 位 (ADIF) 置 位 。<br />
c) 查 询 是 否 已 清 零 BFEMT 位 , 表 示 至 少 第 一<br />
个 转 换 已 完 成 。<br />
6. 读 A/D 结 果 , 清 零 ADIF 标 志 位 , 重 新 配 置 触 发 。<br />
DS39616B_CN 第 252 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.2 A/D 结 果 缓 冲 器<br />
A/D 模 块 有 一 个 深 度 为 4 层 的 结 果 缓 冲 器 , 地 址 范 围 从<br />
0 到 3, 通 过 置 位 ADCON1 寄 存 器 中 的 FIFOEN 位 使<br />
能 。 缓 冲 器 以 循 环 方 式 实 现 , 其 中 将 A/D 结 果 存 储 在 一<br />
个 单 元 , 然 后 对 地 址 进 行 递 增 。 如 果 地 址 大 于 3, 指 针<br />
将 回 到 0。 结 果 缓 冲 器 有 一 个 缓 冲 器 空 标 志 位 BEMT,<br />
表 示 缓 冲 器 内 是 否 有 数 据 。 它 也 有 一 个 溢 出 标 志 位<br />
BOVFL, 表 示 新 的 采 样 数 据 是 否 已 经 覆 盖 之 前 未 读 取<br />
的 单 元 。<br />
指 向 下 一 个 读 操 作 地 址 的 指 针 与 该 缓 冲 器 相 关 。<br />
ADPNT 位 配 置 下 次 读 操 作 的 地 址 。 这 些 位 是 只 读<br />
的 。<br />
结 果 缓 冲 器 也 有 可 配 置 中 断 触 发 级 别 , 由 ADRS<br />
位 配 置 。 用 户 有 三 个 选 择 : 每 次 写 缓 冲 器 时 置 位 中 断 标<br />
志 位 、 每 隔 一 次 写 缓 冲 器 时 触 发 中 断 或 者 每 四 次 写 缓 冲<br />
器 时 触 发 中 断 。 每 次 开 始 转 换 时 (GO/DONE 位 置 位 或<br />
触 发 时 ) 将 ADPNT 复 位 为 “00”。<br />
注 : 当 右 对 齐 时 , 读 ADRESL, 并 递 增<br />
ADPNT。 当 左 对 齐 时 , 读 ADRESH, 并 递<br />
减 ADPNT。<br />
20.3 A/D 采 集 时 间 要 求<br />
为 了 使 A/D 转 换 器 达 到 规 定 精 度 , 必 须 让 充 电 保 持 电 容<br />
(CHOLD) 充 满 至 输 入 通 道 的 电 平 。 模 拟 输 入 模 块 如<br />
图 20-2 所 示 。 源 阻 抗 (RS) 和 内 部 采 样 开 关 (RSS)<br />
阻 抗 直 接 影 响 给 电 容 CHOLD 充 电 所 需 要 的 时 间 。 采 样 开<br />
关 (RSS) 阻 抗 随 器 件 电 压 (VDD) 而 改 变 。 源 阻 抗 将<br />
影 响 模 拟 输 入 的 偏 置 电 压 ( 由 于 引 脚 泄 漏 电 流 )。 模 拟<br />
源 的 最 大 建 议 阻 抗 为 2.5 kΩ。 在 选 择 ( 改 变 ) 了 模 拟 输<br />
入 通 道 之 后 , 对 通 道 采 样 的 时 间 必 须 大 于 或 等 于 最 小 采<br />
集 时 间 。 在 过 了 这 段 时 间 后 才 开 始 转 换 。<br />
注 :<br />
当 开 始 转 换 时 , 保 持 电 容 从 输 入 引 脚 断<br />
开 。<br />
可 以 使 用 公 式 20-1 计 算 最 小 采 集 时 间 。 该 公 式 假 设 误 差<br />
为 1/2 LSb ( 即 A/D 的 1024 步 )。 1/2 LSb 误 差 是 A/D<br />
模 块 达 到 规 定 精 度 所 能 允 许 的 最 大 误 差 。<br />
例 20-1 所 示 为 如 何 计 算 所 需 的 最 小 采 集 时 间 TACQ。 在<br />
这 种 情 况 下 , 转 换 器 模 块 在 初 始 阶 段 被 完 全 上 电 , 因 此<br />
放 大 器 稳 定 时 间 TAMP 可 以 忽 略 。 这 个 计 算 是 在 以 下 应<br />
用 系 统 假 设 的 基 础 上 进 行 的 :<br />
CHOLD = 9 pF<br />
Rs = 100 Ω<br />
转 换 误 差 ≤ 1/2 LSb<br />
VDD = 5V → Rss = 6 kΩ<br />
温 度 = 50°C ( 系 统 最 大 值 )<br />
VHOLD = 0V ( time = 0 时 )<br />
公 式 20-1:<br />
采 集 时 间<br />
TACQ = 放 大 器 稳 定 时 间 + 保 持 电 容 充 电 时 间 + 温 度 系 数<br />
= TAMP + TC + TCOFF<br />
公 式 20-2:<br />
最 小 A/D 保 持 电 容 充 电 时 间<br />
VHOLD = (VREF - (VREF/2048)) • (1-e (-Tc/CHOLD(RIC + RSS + RS)) )<br />
或<br />
TC = -(CHOLD)(RIC + RSS + RS) ln(1/2048)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 253 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
例 20-1:<br />
计 算 必 需 的 最 小 采 集 时 间<br />
TACQ = TAMP + TC + TCOFF<br />
TAMP = 可 忽 略<br />
TCOFF = (Temp–25°C)(0.005 µs/°C)<br />
(50°C –25°C)(0.005 µs/°C) = .13 µs<br />
温 度 系 数 只 有 在 温 度 > 25°C 时 需 要 。 当 温 度 低 于 25°C 时 , TCOFF = 0 µs。<br />
TC – -(CHOLD) (RIC + RSS + RS) ln(1/2047) µs<br />
-(9 pF) (1 kΩ + 6 kΩ + 100 Ω) ln(0.0004883) µs = .49 µs + .13 µs = .62 µs<br />
TACQ = 0 + .62 µs + .13 µs = .75 µs<br />
注 :<br />
如 果 转 换 器 模 块 已 经 在 休 眠 模 式 中 , 从 休 眠 模 式 退 出 起 算 TAMP 为 2.0 µs。<br />
图 20-2:<br />
模 拟 输 入 模 型<br />
Rs<br />
ANx<br />
VDD<br />
VT = 0.6V<br />
RIC ≤ 1k<br />
采 样<br />
开 关<br />
SS RSS<br />
VAIN<br />
CPIN<br />
5 pF<br />
VT = 0.6V<br />
I leakage<br />
± 500 nA<br />
CHOLD = 9 pF<br />
VSS<br />
图 注 : CPIN<br />
VT<br />
= 输 入 电 容<br />
= 门 限 电 压<br />
I LEAKAGE = 引 脚 上 由 各 结 点<br />
引 起 的 泄 漏 电 流<br />
RIC<br />
SS<br />
CHOLD<br />
RSS<br />
= 连 线 电 阻<br />
= 采 样 开 关<br />
= 采 样 / 保 持 电 容 ( 来 自 DAC)<br />
= 采 样 开 关 电 阻<br />
VDD<br />
6V<br />
5V<br />
4V<br />
3V<br />
2V<br />
5 6 7 8 9 10 11<br />
采 样 开 关 (kΩ)<br />
注 :<br />
在 VDD
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.4 A/D 参 考 电 压<br />
如 果 外 部 参 考 电 压 用 于 取 代 内 部 AVDD 和 AVSS 源 , 就<br />
必 须 考 虑 到 VREF+ 和 VREF- 电 压 源 的 源 阻 抗 。 在 采 集 过<br />
程 中 , 这 些 源 提 供 的 电 流 可 以 被 忽 略 。 但 是 在 转 换 过 程<br />
中 , A/D 模 块 将 通 过 这 些 参 考 源 产 生 灌 电 流 和 拉 电 流 。<br />
为 了 保 持 A/D 精 度 , 参 考 电 压 源 阻 抗 应 保 持 为 低 以 减 少<br />
电 压 的 变 化 。 当 参 考 电 流 流 经 这 些 参 考 源 阻 抗 时 电 压 将<br />
发 生 变 化 。<br />
注 :<br />
在 使 用 外 部 参 考 源 时 , 外 部 参 考 电 压 的 电<br />
源 阻 抗 必 须 小 于 75Ω 以 达 到 指 定 ADC 精<br />
度 。 参 考 源 阻 抗 更 高 会 增 加 ADC 偏 置 和 增<br />
益 误 差 。 电 阻 分 压 器 不 能 提 供 足 够 低 的 源<br />
阻 抗 。 为 了 确 保 ADC 可 能 达 到 的 最 佳 性<br />
能 , 应 该 使 用 运 算 放 大 器 或 其 他 低 阻 抗 电<br />
路 对 外 部 VREF 输 入 进 行 缓 冲 。<br />
20.5 选 择 和 配 置 自 动 采 集 时 间<br />
ADCON2 寄 存 器 允 许 用 户 选 择 每 次 触 发 A/D 转 换 时 的<br />
采 集 时 间 。<br />
当 GO/DONE 位 置 位 时 , 采 样 停 止 , 转 换 开 始 。 用 户 负<br />
责 确 保 在 选 择 了 期 望 的 输 入 通 道 后 , 经 过 必 需 的 采 集 时<br />
间 才 开 始 转 换 。 这 在 ACQT3:ACQT0 位<br />
(ADCON2) 保 持 在 复 位 状 态 (0000) 时 完 成 。<br />
如 果 需 要 , 可 以 置 位 ACQT 位 来 选 择 A/D 模 块 的 可 编 程<br />
采 集 时 间 。 当 发 生 触 发 时 , A/D 模 块 在 选 定 的 采 集 时 间<br />
内 继 续 采 样 输 入 信 号 , 然 后 自 动 开 始 转 换 。 因 为 采 集 时<br />
间 已 被 编 程 , 就 不 需 要 在 选 择 通 道 以 后 等 待 一 个 采 集 时<br />
间 才 触 发 A/D 转 换 。 如 果 采 集 时 间 被 编 程 , 采 集 时 间 结<br />
束 和 转 换 开 始 都 不 会 有 任 何 指 示 。<br />
20.6 选 择 A/D 转 换 时 钟<br />
每 个 位 的 A/D 转 换 时 间 被 定 义 为 TAD。 每 次 10 位 A/D<br />
转 换 需 要 12 TAD 。A/D 转 换 时 钟 源 可 用 软 件 选 择 。TAD<br />
有 以 下 八 种 选 择 :<br />
• 2 TOSC<br />
• 4 TOSC<br />
• 8 TOSC<br />
• 16 TOSC<br />
• 32 TOSC<br />
• 64 TOSC<br />
• 内 部 RC 振 荡 器<br />
• 内 部 RC 振 荡 器 /4<br />
要 进 行 正 确 的 A/D 转 换 , A/D 转 换 时 钟 (TAD) 必 须 尽<br />
可 能 小 , 但 它 必 须 大 于 最 小 TAD( 大 约 为 416 µs, 参 见<br />
参 数 130 了 解 更 多 的 信 息 )。<br />
表 20-2 所 示 为 根 据 器 件 工 作 频 率 和 选 定 的 A/D 时 钟 源<br />
得 到 的 TAD 结 果 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 255 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 20-2:<br />
注<br />
TAD 与 器 件 工 作 频 率<br />
AD 时 钟 源 (TAD)<br />
最 大 器 件 频 率<br />
工 作 时 间 ADCS2:ADCS0 PIC18FXX31 PIC18LFXX31 (4)<br />
2 TOSC 000 4.8 MHz 666 kHz<br />
4 TOSC 100 9.6 MHz 1.33 MHz<br />
8 TOSC 001 19.2 MHz 2.66 MHz<br />
16 TOSC 101 38.4 MHz 5.33 MHz<br />
32 TOSC 010 40.0 MHz 10.65 MHz<br />
64 TOSC 110 40.0 MHz 21.33 MHz<br />
RC/4 (3) 011 1.00 MHz (1) 1.00 MHz (2)<br />
RC (3) 111 4.0 MHz (2) 4.0 MHz (2)<br />
1: RC 源 的 典 型 TAD 时 间 为 2-6 µs。<br />
2: RC 源 的 典 型 TAD 时 间 为 .5-1.5 µs。<br />
3: 器 件 工 作 频 率 高 于 1 MHz 时 , 整 个 转 换 过 程 必 须 在 休 眠 模 式 下 进 行 , 否 则 A/D 转 换 精 度 可 能 超 出 规 范 , 单<br />
步 模 式 除 外 。<br />
4: 只 适 用 于 低 功 率 器 件 。<br />
20.7 功 耗 管 理 模 式 下 的 工 作 原 理<br />
功 耗 管 理 模 式 下 , 时 钟 源 和 频 率 部 分 决 定 了 自 动 采 集<br />
时 间 和 A/D 转 换 时 钟 的 选 择 。<br />
如 果 希 望 器 件 在 功 耗 管 理 模 式 下 进 行 A/D 转 换 , 就 应 该<br />
根 据 将 要 使 用 的 功 耗 管 理 模 式 时 钟 来 更 新 ADCON2 中<br />
的 ACQT3:ACQT0 和 ADCS2:ADCS0 位 。 在 进 入 功 耗<br />
管 理 模 式 之 后 ( 或 者 正 在 运 行 功 耗 管 理 模 式 时 ), 可 以<br />
开 始 A/D 采 集 或 转 换 。 一 旦 采 集 或 转 换 开 始 , 就 应 该 由<br />
同 一 个 功 耗 管 理 模 式 时 钟 源 继 续 为 器 件 提 供 时 钟 信 号 ,<br />
直 到 这 次 转 换 结 束 。 希 望 的 话 可 以 在 转 换 过 程 中 让 器 件<br />
置 于 相 应 的 功 耗 管 理 空 闲 模 式 。<br />
如 果 功 耗 管 理 模 式 的 时 钟 频 率 小 于 1MHz, 就 应 该 选 择<br />
A/D RC 时 钟 源 。<br />
在 休 眠 模 式 下 工 作 要 选 定 A/D RC 时 钟 。 如 果<br />
ACQT3:ACQT0 位 置 为 “0000” 且 转 换 开 始 , 则 转 换<br />
将 延 迟 一 个 指 令 周 期 以 允 许 执 行 SLEEP 指 令 并 进 入 休 眠<br />
模 式 。 OSCCON 寄 存 器 中 的 IDLEN 和 SCS 位 必 须 在<br />
转 换 开 始 之 前 被 清 零 。<br />
注 : A/D 转 换 只 有 配 置 为 单 步 操 作 时 才 可 以 在<br />
休 眠 模 式 下 运 行 。 如 果 该 器 件 在 休 眠 模 式<br />
下 , 可 能 会 是 一 个 非 A/D 模 块 的 源 来 唤 醒<br />
该 器 件 , 用 户 必 须 在 读 结 果 之 前 查 询<br />
ADCON 位 来 确 保 它 已 清 零 。<br />
20.8 配 置 模 拟 端 口 引 脚<br />
ANSEL0、 ANSEL1、 TRISA 和 TRISE 寄 存 器 都 配 置<br />
A/D 端 口 引 脚 。 需 要 配 置 为 模 拟 输 入 的 端 口 引 脚 必 须 将<br />
它 们 相 应 的 TRIS 位 置 位 ( 输 入 )。 如 果 TRIS 位 被 清<br />
零 ( 输 出 ), 将 转 换 数 字 输 出 电 平 (VOH 或 VOL)。<br />
A/D 操 作 与 ANSEL0、ANSEL1 和 TRIS 位 的 状 态 无 关 。<br />
注<br />
1: 读 取 端 口 寄 存 器 时 , 所 有 配 置 为 模 拟 输 入<br />
通 道 的 引 脚 均 读 为 0 ( 低 电 平 )。 配 置 为<br />
数 字 输 入 的 引 脚 将 转 换 模 拟 输 入 信 号 。 将<br />
正 确 转 换 配 置 为 数 字 输 入 引 脚 上 的 模 拟 电<br />
平 。<br />
2: 定 义 为 数 字 输 入 引 脚 上 的 模 拟 电 平 可 能 会<br />
导 致 数 字 输 入 缓 冲 器 所 消 耗 的 电 流 超 出 器<br />
件 规 范 的 限 制 。<br />
DS39616B_CN 第 256 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.9 A/D 转 换<br />
图 20-3 所 示 为 GO 位 被 置 位 且 ACQT2:ACQT0 位 被 清<br />
零 后 A/D 转 换 器 的 操 作 。 转 换 在 下 一 个 指 令 执 行 之 后 开<br />
始 , 以 允 许 器 件 在 转 换 开 始 之 前 进 入 休 眠 模 式 。 必 须 选<br />
择 内 部 A/D RC 振 荡 器 在 休 眠 模 式 中 执 行 转 换 。<br />
图 20-4 所 示 为 GO 位 被 置 位 且 ACQT3:ACQT0 位 被 置<br />
为 “010” 后 A/D 转 换 器 的 操 作 , 并 选 择 了 转 换 开 始 前<br />
的 采 集 时 间 为 4 TAD。<br />
在 转 换 过 程 中 清 零 GO/DONE 位 将 终 止 正 在 进 行 的 转<br />
换 。 结 果 寄 存 器 的 单 元 将 包 含 部 分 完 成 的 A/D 转 换 采<br />
样 。 这 不 会 置 位 ADIF 标 志 位 , 因 此 , 用 户 必 须 在 缓 冲<br />
器 单 元 被 转 换 序 列 覆 盖 之 前 读 缓 冲 器 单 元 。<br />
在 A/D 转 换 完 成 或 停 止 以 后 , 在 下 一 次 采 集 开 始 之 前 需<br />
要 等 待 2TAD。 这 个 等 待 时 间 之 后 将 自 动 对 所 选 通 道 进<br />
行 采 样 。<br />
注 :<br />
用 相 同 的 指 令 开 始 A/D 转 换 时 GO/DONE<br />
位 不 应 该 被 置 位 。<br />
图 20-3: A/D 转 换 TAD 周 期 (ACQT = 000, TACQ = 0)<br />
GO 位 被 置 位 ,<br />
且 保 持 电 容 与<br />
模 拟 输 入 断 开<br />
连 接<br />
TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11<br />
b9 b8 b7 b6 b5 b4 b3 b2 b1 b0<br />
转 换 开 始<br />
在 第 一 个 Q3 后 等 待 TAD11 (1) 时 间 , 然 后 在 Q1 的 上 升 沿 将 GO 位 清 零<br />
并 且 加 载 结 果 缓 冲 器 。<br />
注<br />
1: 转 换 时 间 最 小 为 11 TAD + 2 TCY, 最 大 为 11 TAD + 6 TCY。<br />
图 20-4:<br />
A/D 转 换 TAD 周 期 (ACQT = 0010, TACQ = 4 TAD)<br />
TACQT 周 期<br />
1 2 3 4<br />
自 动 采 集 时 间<br />
TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11<br />
b9 b8 b7 b6 b5 b4 b3 b2 b1 b0<br />
转 换 开 始<br />
( 断 开 保 持 电 容 )<br />
TAD 周 期<br />
触 发 A/D<br />
在 第 一 个 Q3 后 等 待 TAD11 (1) 时 间 , 然 后 在 Q1 的 上 升 沿<br />
将 GO 位 清 零 并 且 加 载 结 果 缓 冲 器 。<br />
注 1: 在 连 续 模 式 中 , 下 一 个 转 换 在 TAD12 结 束 的 时 候 开 始 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 257 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
20.9.1 A/D 结 果 寄 存 器<br />
在 A/D 转 换 完 成 时 , 10 位 A/D 结 果 被 装 入<br />
ADRESH:ADRESL 寄 存 器 对 。 该 寄 存 器 对 的 宽 度 为 16<br />
位 。 可 以 灵 活 选 择 该 A/D 模 块 的 10 位 结 果 是 以 左 对 齐<br />
还 是 右 对 齐 的 格 式 存 放 在 16 位 结 果 寄 存 器 中 。A/D 格 式<br />
选 择 位 (ADFM) 控 制 对 齐 方 式 。 图 20-5 所 示 为 A/D 转<br />
换 结 果 对 齐 的 操 作 。 多 余 位 以 0 填 充 。 当 这 些 位 置 没 有<br />
被 A/D 转 换 结 果 覆 盖 时 (A/D 被 禁 止 ), 这 两 个 寄 存 器<br />
可 以 作 为 两 个 通 用 8 位 寄 存 器 。<br />
图 20-5:<br />
A/D 转 换 结 果 对 齐<br />
10 位 转 换 结 果<br />
ADFM = 1<br />
ADFM = 0<br />
7<br />
2 1 0 7<br />
0<br />
7 0 7 6 5 0<br />
0000 00<br />
0000 00<br />
ADRESH<br />
ADRESL<br />
ADRESH<br />
ADRESL<br />
10 位 转 换 结 果<br />
10 位 转 换 结 果<br />
右 对 齐<br />
左 对 齐<br />
公 式 20-3:<br />
多 通 道 模 式 的 转 换 时 间<br />
连 续 模 式 :<br />
T = (TACQ) A + (TCON) A + [(TACQ) B - 12TAD] + (TCON) B + [(TACQ) C - 12TAD] + (TCON) C + [(TACQ) D - 12TAD] + (TCON) D<br />
同 步 模 式 :<br />
T = TACQ + (TCON) A + (TCON) B + TACQ + (TCON) C + (TCON) D<br />
DS39616B_CN 第 258 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 20-3:<br />
A/D 寄 存 器 综 述<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
INTCON<br />
GIE/<br />
GIEH<br />
PEIE/<br />
GIEL<br />
POR 与 BOR<br />
时 的 值<br />
所 有 其 他 复 位<br />
时 的 值<br />
TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 0000 0000 0000<br />
PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000<br />
PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000<br />
IPR1 PSPIP ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP 1111 1111 1111 1111<br />
PIR2 OSCFIF CMIF - EEIF BCLIF LVDIF TMR3IF CCP2IF 00-0 0000 00-0 0000<br />
PIE2 OSCFIE CMIE - EEIE BCLIE LVDIE TMR3IE CCP2IE 00-0 0000 00-0 0000<br />
IPR2 OSCFIP CMIP - EEIP BCLIP LVDIP TMR3IP CCP2IP 11-1 1111 11-1 1111<br />
ADRESH A/D 结 果 寄 存 器 高 字 节 xxxx xxxx uuuu uuuu<br />
ADRESL A/D 结 果 寄 存 器 低 字 节 xxxx xxxx uuuu uuuu<br />
ADCON0 - - ACONV ACMOD1 ACMOD0 CHS0 GO/DONE ADON 00-1 0000 00-1 0000<br />
ADCON1 VCFG1 VCFG0 - FIFOEN BFEMT BFOVFL ADPNT1 ADPNT0 --00 qqqq --00 qqqq<br />
ADCON2 ADFM ACQT3 ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0 0-00 0000 0-00 0000<br />
ADCON3 ADRS1 ADRS0 - SSRC4 SSRC3 SSRC2 SSRC1 SSRC0 00-0 0000 00-0 0000<br />
ADCHS GDSEL1 GDSEL0 GBSEL1 GBSEL0 GCSEL1 GCSEL0 GASEL1 GASEL0 0000 0000 0000 0000<br />
ANSEL0 ANS7 (6) ANS6 (6) ANS5 (6) ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111<br />
ANSEL1 - - - - - - - ANS8 (5) ---- ---1 ---- ---1<br />
PORTA RA7 (4) RA6 (4) RA5 RA4 RA3 RA2 RA1 RA0 --0x 0000 --0u 0000<br />
TRISA TRISA7 (4) TRISA6 (4) PORTA 的 数 据 方 向 控 制 寄 存 器 --11 1111 --11 1111<br />
PORTE (2) - - - - RE3 (1) 读 PORTE 引 脚 , 然 后 写 (4) ---- xxxx ---- uuuu<br />
TRISE (3) IBF OBE IBOV PSPMODE - PORTE 数 据 方 向 0000 -111 0000 -111<br />
LATE (3) - - - - PORTE 输 出 数 据 锁 存 器 ---- -xxx ---- -uuu<br />
图 注 : x = 未 知 , u = 不 变 - = 未 实 现 , 读 作 0, q = 根 据 条 件 而 变 化 。<br />
阴 影 单 元 格 不 适 用 于 A/D 转 换 。<br />
注 1: 当 配 置 寄 存 器 中 的 MCLRE 位 为 0 时 , RE3 端 口 位 只 可 作 为 输 入 引 脚 。<br />
2: 该 寄 存 器 在 PIC18F2X31 器 件 上 未 实 现 。<br />
3: 这 些 位 在 PIC18F2X31 器 件 上 未 实 现 。<br />
4: 这 些 引 脚 可 以 根 据 选 定 的 振 荡 模 式 配 置 为 端 口 引 脚 。<br />
5: 只 有 在 PIC18F4X31 器 件 中 ANS5 至 ANS8 才 可 用 。<br />
6: 在 28 引 脚 的 器 件 上 不 可 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 259 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 260 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
21.0 低 压 检 测<br />
很 多 应 用 中 都 期 待 能 有 一 个 判 断 器 件 电 压 (VDD) 是 否<br />
低 于 指 定 电 压 的 功 能 。 可 以 为 应 用 创 建 一 个 工 作 窗 口 ,<br />
在 器 件 电 压 偏 离 有 效 工 作 范 围 前 , 应 用 软 件 可 在 此 窗 口<br />
执 行 “ 保 护 性 工 作 ” 。 这 可 以 使 用 低 压 检 测 (Low-<br />
Voltage Detect module, LVD) 模 块 来 实 现 。<br />
该 模 块 是 一 个 软 件 可 编 程 电 路 , 其 中 可 以 指 定 器 件 的 电<br />
压 跳 变 点 。 当 器 件 电 压 低 于 此 指 定 跳 变 点 时 , 中 断 标 志<br />
位 置 位 。 如 果 允 许 中 断 , 程 序 执 行 会 转 到 中 断 向 量 地<br />
址 , 然 后 软 件 会 响 应 中 断 源 。<br />
低 压 检 测 电 路 完 全 由 软 件 控 制 。 这 使 得 电 路 可 由 软 件 关<br />
断 , 以 便 器 件 的 电 流 消 耗 最 低 。<br />
图 21-1 是 一 种 可 能 的 应 用 电 压 曲 线 ( 常 用 于 电 池 )。 器<br />
件 电 压 会 随 时 间 逐 渐 下 降 。 当 器 件 电 压 等 于 电 压 VA 时 ,<br />
LVD 逻 辑 电 路 会 在 TA 时 刻 产 生 中 断 。 然 后 应 用 软 件 有<br />
时 间 在 器 件 电 压 偏 离 有 效 工 作 范 围 之 前 关 闭 系 统 。 电 压<br />
点 VB 是 最 低 有 效 工 作 电 压 的 指 定 值 , 对 应 时 间 TB。TB<br />
减 TA 的 差 就 是 总 的 关 闭 时 间 。<br />
图 21-2 所 示 为 LVD 模 块 的 框 图 。 比 较 器 使 用 内 部 产 生<br />
的 参 考 电 压 作 为 设 定 点 。 当 选 定 器 件 分 压 输 出 经 过 ( 低<br />
于 ) 设 定 点 时 , LVDIF 位 就 会 被 置 位 。<br />
电 阻 分 压 器 的 每 个 节 点 代 表 一 个 “ 跳 变 点 ” 电 压 。“ 跳<br />
变 点 ” 电 压 指 在 LVD 模 块 发 出 中 断 前 器 件 工 作 所 需 的 最<br />
低 电 压 。 当 电 源 电 压 等 于 跳 变 点 时 , 从 电 阻 阵 列 得 到 的<br />
分 压 等 于 电 压 参 考 模 块 产 生 的 1.2 V 内 部 参 考 电 压 。 比<br />
较 器 随 后 会 发 出 一 个 中 断 信 号 将 LVDIF 位 置 位 。 此 电 压<br />
可 以 用 软 件 编 程 为 16 个 值 中 的 任 何 一 个 ( 见 图 21-2)。<br />
对 LVDL3:LVDL0 位 (LVDCON) 编 程 可 选 择 跳 变<br />
点 。<br />
图 21-1:<br />
典 型 低 压 检 测 应 用<br />
VA<br />
VB<br />
电 压<br />
图 注 :<br />
VA=LVD 跳 变 点<br />
VB= 器 件 的 最 低 有 效 工 作 电 压<br />
时 间<br />
TA<br />
TB<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 261 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 21-2:<br />
低 压 检 测 (LVD) 框 图<br />
VDD<br />
LVDIN<br />
LVD 控 制<br />
寄 存 器<br />
16 选 1 MUX<br />
LVDIF<br />
LVDEN<br />
内 部 产 生 的<br />
参 考 电 压<br />
1.2V<br />
LVD 模 块 还 有 一 项 功 能 可 以 让 用 户 使 用 外 部 电 源 为 模 块<br />
提 供 检 测 电 压 。 当 LVDL3:LVDL0 位 设 置 为 1111 时 ,<br />
此 模 式 被 使 能 。 在 此 状 态 下 , 比 较 器 输 入 复 用 外 部 输 入<br />
引 脚 LVDIN( 图 21-3)。 这 可 以 让 用 户 配 置 在 有 效 工 作<br />
电 压 范 围 内 的 任 何 电 压 发 生 低 压 检 测 中 断 , 从 而 更 具 灵<br />
活 性 。<br />
图 21-3:<br />
带 有 外 部 输 入 的 低 压 检 测 (LVD) 框 图<br />
VDD<br />
VDD<br />
LVD 控 制<br />
寄 存 器<br />
外 部 产 生 的 跳 变 点<br />
LVDIN<br />
16 选 1 MUX<br />
LVDEN<br />
LVD<br />
VxEN<br />
BODEN<br />
EN<br />
BGAP<br />
DS39616B_CN 第 262 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
21.1 控 制 寄 存 器<br />
低 压 检 测 控 制 寄 存 器 控 制 低 压 检 测 电 路 的 工 作 。<br />
寄 存 器 21-1:<br />
LVDCON 寄 存 器<br />
U-0 U-0 R-0 R/W-0 R/W-0 R/W-1 R/W-0 R/W-1<br />
— — IRVST LVDEN LVDL3 LVDL2 LVDL1 LVDL0<br />
bit 7 bit 0<br />
bit 7-6 未 实 现 位 : 读 作 0<br />
bit 5<br />
bit 4<br />
bit 3-0<br />
IRVST: 内 部 参 考 电 压 稳 定 标 志 位<br />
1 = 低 压 检 测 逻 辑 将 在 指 定 电 压 范 围 产 生 中 断 标 志<br />
0 = 低 压 检 测 逻 辑 将 不 会 在 指 定 电 压 范 围 产 生 中 断 标 志 , 并 且 不 应 该 允 许 LVD 中 断<br />
LVDEN: 低 压 检 测 电 源 使 能 位<br />
1= 使 能 LVD, LVD 电 路 通 电<br />
0= 禁 止 LVD, LVD 电 路 断 电<br />
LVDL3:LVDL0: 低 压 检 测 限 制 位<br />
1111= 使 用 外 部 模 拟 输 入 ( 输 入 来 自 LVDIN 引 脚 )<br />
1110= 4.23V - 4.96V<br />
1101= 3.93V - 4.62V<br />
1100= 3.75V -4.40V<br />
1011= 3.56V -4.18V<br />
1010= 3.38V -3.96V<br />
1001= 3.29V -3.86V<br />
1000= 3.09V -3.63V<br />
0111= 2.82V - 3.31V<br />
0110= 2.64V - 3.10V<br />
0101= 2.55V - 2.99V<br />
0100= 2.35V - 2.76V<br />
0011= 2.26V - 2.65V<br />
0010= 2.08V - 2.44V<br />
0001= 保 留<br />
0000= 保 留<br />
注 : 没 有 测 试 某 些 LVDL3:LVDL0 模 式 下 会 出 现 的 低 于 器 件 有 效 工 作 电 压 的 跳 变 点 。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位 U= 未 实 现 位 , 读 作 0<br />
-n= 上 电 复 位 时 的 值 1= 置 位 0= 清 零 x= 未 知 位<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 263 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
21.2 工 作 原 理<br />
通 常 电 压 下 降 相 对 较 慢 , 这 取 决 于 器 件 电 压 的 电 源 。 这<br />
意 味 着 LVD 模 块 不 需 要 一 直 工 作 。 为 了 降 低 电 流 需 求 ,<br />
只 需 要 在 检 测 电 压 时 , 短 时 间 使 能 LVD 电 路 。 检 测 完 成<br />
之 后 , 可 以 禁 止 LVD 模 块 。<br />
每 次 使 能 LVD 模 块 时 , 电 路 需 要 过 些 时 间 才 能 稳 定 下<br />
来 。 当 电 路 稳 定 之 后 , 可 以 将 所 有 状 态 标 志 都 清 零 。 然<br />
后 该 模 块 会 指 示 正 确 的 系 统 状 态 。<br />
需 要 执 行 以 下 步 骤 来 设 置 LVD 模 块 :<br />
1. 将 值 写 入 LVDL3:LVDL0 位 (LVDCON 寄 存 器 )<br />
来 选 择 所 需 的 LVD 跳 变 点 。<br />
2. 确 保 LVD 中 断 被 禁 止 (LVDIE 位 或 GIE 位 已 清<br />
零 )。<br />
3. 使 能 LVD 模 块 ( 将 LVDCON 寄 存 器 中 的 LVDEN<br />
位 置 位 )。<br />
4. 等 待 LVD 模 块 稳 定 下 来 ( 等 待 IRVST 置 位 )。<br />
5. 在 LVD 模 块 稳 定 前 LVD 中 断 标 志 可 能 被 错 误 置<br />
位 , 应 将 该 标 志 位 清 零 ( 将 LVDIF 位 清 零 )。<br />
6. 允 许 LVD 中 断 (LVDIE 位 和 GIE 位 置 位 )。<br />
图 21-4 所 示 为 可 用 于 低 压 检 测 的 LVD 模 块 的 典 型 波 形 。<br />
图 21-4:<br />
情 形 1:<br />
低 压 检 测 波 形<br />
LVDIF 可 能 没 有 置 位<br />
VDD<br />
VLVD<br />
LVDIF<br />
使 能 LVD<br />
内 部 产 生 的<br />
稳 定 的 参 考 电 压<br />
TIVRST<br />
用 软 件 清 零 LVDIF<br />
情 形 2:<br />
VDD<br />
VLVD<br />
LVDIF<br />
使 能 LVD<br />
内 部 产 生 的<br />
稳 定 的 参 考 电 压<br />
TIVRST<br />
用 软 件 清 零 LVDIF<br />
用 软 件 清 零 LVDIF,<br />
由 于 仍 然 存 在 LVD 状 态 ,LVDIF 保 持 置 位<br />
DS39616B_CN 第 264 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
21.2.1 参 考 电 压 设 置 点<br />
LVD 模 块 的 内 部 参 考 电 压 可 以 被 其 他 内 部 电 路 ( 可 编 程<br />
的 欠 压 复 位 ) 使 用 。 如 果 禁 止 这 些 电 路 ( 降 低 电 流 消<br />
耗 ), 参 考 电 压 电 路 需 要 一 段 时 间 才 能 稳 定 下 来 , 之 后<br />
才 能 可 靠 检 测 低 压 状 态 。 这 一 时 间 不 随 系 统 时 钟 频 率 变<br />
化 。 在 电 气 规 范 参 数 36 中 指 定 了 稳 定 所 需 时 间 。 在 达<br />
到 稳 定 参 考 电 压 后 , 低 压 中 断 标 志 才 会 被 使 能 。 参 见<br />
图 21-4 中 的 波 形 。<br />
21.2.2 电 流 消 耗<br />
如 果 使 能 LVD 模 块 , 就 使 能 了 LVD 比 较 器 和 分 压 器 ,<br />
并 会 消 耗 静 态 电 流 。 分 压 器 可 以 从 电 阻 阵 列 中 的 多 个 位<br />
置 接 出 。 电 气 规 范 参 数 D022B 中 指 出 了 使 能 时 的 总 电<br />
流 消 耗 。<br />
21.3 在 休 眠 模 式 下 工 作<br />
使 能 后 ,LVD 电 路 在 休 眠 期 间 将 继 续 工 作 。 如 果 器 件 电<br />
压 经 过 跳 变 点 ,LVDIF 位 将 会 被 置 位 , 并 且 从 休 眠 状 态<br />
中 唤 醒 器 件 。 如 果 已 允 许 全 局 中 断 , 器 件 会 从 中 断 向 量<br />
地 址 处 继 续 执 行 。<br />
21.4 复 位 的 影 响<br />
器 件 复 位 强 制 所 有 寄 存 器 进 入 复 位 状 态 。 这 会 导 致 LVD<br />
模 块 被 关 闭 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 265 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 266 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.0 CPU 的 特 殊 功 能<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 包 含 了 一 些 功 能 , 旨<br />
在 最 大 限 度 地 提 高 系 统 可 靠 性 , 并 通 过 去 除 外 部 元 器 件<br />
将 成 本 降 至 最 低 。 这 些 功 能 包 括 :<br />
• 振 荡 器 选 择<br />
• 复 位 :<br />
- 上 电 复 位 (POR)<br />
- 上 电 延 时 定 时 器 (PWRT)<br />
- 振 荡 器 起 振 定 时 器 (OST)<br />
- 欠 压 复 位 (BOR)<br />
• 中 断<br />
• 看 门 狗 定 时 器 (WDT)<br />
• 故 障 保 护 时 钟 监 视 器<br />
• 双 速 起 振<br />
• 代 码 保 护<br />
• ID 单 元<br />
• 在 线 串 行 编 程 (In-Circuit Serial<br />
Programming, ICSP)<br />
可 以 针 对 应 用 配 置 振 荡 器 , 如 何 配 置 则 取 决 于 频 率 、 功<br />
耗 、 精 度 和 成 本 。 第 2.0 节 “ 振 荡 器 配 置 ” 对 所 有 选 项<br />
进 行 了 详 细 讨 论 。<br />
关 于 器 件 复 位 和 中 断 的 完 整 讨 论 可 在 本 数 据 手 册 前 几 章<br />
中 找 到 。<br />
除 了 为 复 位 提 供 上 电 延 时 定 时 器 和 振 荡 器 起 振 定 时 器 之<br />
外 ,<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 还 提 供 一 个 看 门<br />
狗 定 时 器 , 该 定 时 器 可 以 通 过 配 置 位 永 久 使 能 , 也 可 以<br />
用 软 件 控 制 ( 如 果 配 置 为 禁 止 )。<br />
包 含 在 器 件 内 部 的 RC 振 荡 器 对 故 障 保 护 时 钟 监 视 器<br />
(FSCM) 和 双 速 起 振 有 额 外 的 好 处 。 FSCM 对 外 设 时<br />
钟 提 供 后 台 监 视 , 并 在 外 设 时 钟 发 生 故 障 时 自 动 切 换 时<br />
钟 源 。 双 速 起 振 使 得 在 起 振 发 生 后 , 几 乎 立 即 可 执 行 代<br />
码 , 与 此 同 时 , 主 时 钟 源 完 成 起 振 延 时 。<br />
通 过 设 置 相 应 的 配 置 寄 存 器 位 , 可 以 使 能 和 配 置 所 有 这<br />
些 功 能 。<br />
22.1 配 置 位<br />
可 以 通 过 对 配 置 位 编 程 ( 读 作 0) 或 不 编 程 ( 读 作 1)<br />
来 选 择 不 同 的 器 件 配 置 。 这 些 配 置 位 从 程 序 存 储 器 单 元<br />
300000h 开 始 映 射 。<br />
用 户 会 注 意 到 地 址 300000h 超 出 了 用 户 程 序 存 储 器 空 间<br />
范 围 。 事 实 上 , 它 属 于 配 置 存 储 器 空 间 (300000h -<br />
3FFFFFh), 仅 能 通 过 读 / 写 表 来 访 问 。<br />
在 某 种 意 义 上 , 对 配 置 寄 存 器 编 程 类 似 于 对 闪 存 存 储 器<br />
编 程 。 EECON1 寄 存 器 中 的 WR 位 可 启 动 对 配 置 寄 存<br />
器 的 自 定 时 写 操 作 。 在 正 常 工 作 模 式 下 , 执 行 TBLWT 指<br />
令 时 , 如 果 TBLPTR 指 向 配 置 寄 存 器 地 址 , 将 按 照 此 指<br />
令 指 定 的 地 址 和 数 据 写 配 置 寄 存 器 。 将 WR 位 置 位 可 启<br />
动 对 配 置 寄 存 器 的 长 写 操 作 。 每 次 只 能 往 配 置 寄 存 器 写<br />
入 一 个 字 节 。 要 写 入 或 擦 除 一 个 配 置 单 元 , 可 用 TBLWT<br />
指 令 分 别 对 该 单 元 写 入 1 或 0。 关 于 闪 存 编 程 的 更 多 详<br />
情 , 请 参 阅 第 6.5 节 “ 写 闪 存 程 序 存 储 器 ”。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 267 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 22-1:<br />
配 置 位 和 器 件 ID<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
缺 省 值 /<br />
未 编 程<br />
值<br />
300000h CONFIG1L — — — — — — — — ---- ----<br />
300001h CONFIG1H IESO FCMEN — — FOSC3 FOSC2 FOSC1 FOSC0 11-- 1111<br />
300002h CONFIG2L — — — — BORV1 BORV0 BOREN PWRTEN ---- 1111<br />
300003h CONFIG2H — — WINEN WDPS3 WDPS2 WDPS1 WDPS0 WDTEN ---1 1111<br />
300004h CONFIG3L — — T1OSCMX HPOL LPOL PWMPIN — — --11 11--<br />
300005h CONFIG3H MCLRE — — EXCLKMX PWM4MX SSPMX — FLTAMX 1--1 1-11<br />
300006h CONFIG4L DEBUG — — — — LVP — STVREN 1--- -1-1<br />
300007h CONFIG4H — — — — — — — — ---- ----<br />
300008h CONFIG5L — — — — CP3 CP2 CP1 CP0 ---- 1111<br />
300009h CONFIG5H CPD CPB — — — — — — 11-- ----<br />
30000Ah CONFIG6L — — — — WRT3 WRT2 WRT1 WRT0 ---- 1111<br />
30000Bh CONFIG6H WRTD WRTB WRTC — — — — — 111- ----<br />
30000Ch CONFIG7L — — — — EBTR3 EBTR2 EBTR1 EBTR0 ---- 1111<br />
30000Dh CONFIG7H — EBTRB — — — — — — -1-- ----<br />
3FFFFEh DEVID1 (1) DEV2 DEV1 DEV0 REV4 REV3 REV2 REV1 REV0 xxxx xxxx (1)<br />
3FFFFFh DEVID2 (1) DEV10 DEV9 DEV8 DEV7 DEV6 DEV5 DEV4 DEV3 0000 0101<br />
图 注 : x= 未 知 , u= 不 变 , –= 未 实 现 , q= 其 值 根 据 条 件 变 化 。<br />
阴 影 单 元 格 表 示 未 实 现 位 , 读 作 0。<br />
注 1: DEVID1 的 值 参 见 寄 存 器 22-13。 DEVID 寄 存 器 是 只 读 的 , 用 户 不 能 对 其 编 程 。<br />
寄 存 器 22-1: CONFIG1H: 配 置 寄 存 器 1 高 字 节 ( 字 节 地 址 300001h)<br />
R/P-1 R/P-1 U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1<br />
IESO FCMEN - - FOSC3 FOSC2 FOSC1 FOSC0<br />
bit 7 bit 0<br />
bit 7 IESO: 内 / 外 部 切 换 位<br />
1= 使 能 内 / 外 部 切 换 模 式<br />
0= 禁 止 内 / 外 部 切 换 模 式<br />
bit 6 FCMEN: 故 障 保 护 时 钟 监 视 器 使 能 位<br />
1= 使 能 故 障 保 护 时 钟 监 视 器<br />
0= 禁 止 故 障 保 护 时 钟 监 视 器<br />
bit 5-4 未 实 现 位 : 读 作 0<br />
bit 3-0 FOSC: 振 荡 器 选 择 位<br />
11xx= 外 部 RC 振 荡 器 , RA6 复 用 为 CLKO<br />
1001= 内 部 振 荡 电 路 , RA6 复 用 为 CLKO, RA7 复 用 为 端 口 引 脚<br />
1000= 内 部 振 荡 电 路 , RA6 复 用 为 CLKO, RA7 复 用 为 端 口 引 脚<br />
0111= 外 部 RC 振 荡 器 , RA6 复 用 为 端 口 引 脚<br />
0110= HS 振 荡 器 , PLL 使 能 ( 时 钟 频 率 =4 × FOSC1)<br />
0101= EC 振 荡 器 , RA6 复 用 为 端 口 引 脚<br />
0100= EC 振 荡 器 , RA6 复 用 为 CLKO<br />
0010= HS 振 荡 器<br />
0001= XT 振 荡 器<br />
0000= LP 振 荡 器<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
DS39616B_CN 第 268 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-2: CONFIG2L: 配 置 寄 存 器 2 低 字 节 ( 字 节 地 址 300002h)<br />
U-0 U-0 U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1<br />
- - - - BORV1 BORV0 BOREN PWRTEN<br />
bit 7 bit 0<br />
bit 7-4 未 实 现 位 : 读 作 0<br />
bit 3-2 BORV1:BORV0: 欠 压 复 位 电 压 位<br />
11= 保 留<br />
10= VBOR 设 置 为 2.7V<br />
01= VBOR 设 置 为 4.2V<br />
00= VBOR 设 置 为 4.5V<br />
bit 1 BOREN: 欠 压 复 位 使 能 位 (1)<br />
bit 0<br />
1= 使 能 欠 压 复 位<br />
0= 禁 止 欠 压 复 位<br />
PWRTEN: 上 电 延 时 定 时 器 使 能 位<br />
(1)<br />
1= 禁 止 PWRT<br />
0= 使 能 PWRT<br />
注 1: BOREN = 1 时 , 不 会 自 动 将 PWRTEN 改 写 为 0, 也 不 会 自 动 使 能 上 电 延 时 定 时 器 。<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 269 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-3: CONFIG2H: 配 置 寄 存 器 2 高 字 节 ( 字 节 地 址 300003h)<br />
U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1<br />
- - WINEN WDTPS3 WDTPS2 WDTPS1 WDTPS0 WDTEN<br />
bit 7 bit 0<br />
bit 7-6 未 实 现 位 : 读 作 0<br />
bit 5 WINEN: 看 门 狗 定 时 器 窗 口 使 能 位<br />
1= 禁 止 WDT 窗 口<br />
0= 使 能 WDT 窗 口<br />
bit 4-1 WDPS: 看 门 狗 定 时 器 后 分 频 选 择 位<br />
1111 = 1:32,768<br />
1110 = 1:16,384<br />
1101 = 1:8,192<br />
1100 = 1:4,096<br />
1011 = 1:2,048<br />
1010 = 1:1,024<br />
1001 = 1:512<br />
1000 = 1:256<br />
0111 = 1:128<br />
0110 = 1:64<br />
0101 = 1:32<br />
0100 = 1:16<br />
0011 = 1:8<br />
0010 = 1:4<br />
0001 = 1:2<br />
0000 = 1:1<br />
bit 0 WDTEN: 看 门 狗 定 时 器 使 能 位<br />
1= 使 能 WDT<br />
0= 禁 止 WDT ( 控 制 位 为 SWDTEN 位 )<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
DS39616B_CN 第 270 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-4: CONFIG3L: 配 置 寄 存 器 3 低 字 节 ( 字 节 地 址 300004h)<br />
U-0 U R/P-1 R/P-1 R/P-1 R/P-1 U U<br />
- - T1OSCMX HPOL LPOL PWMPIN - -<br />
bit 7 bit 0<br />
bit 7-6 未 实 现 位 : 读 作 0<br />
bit 5 T1OSCMX:Timer1 振 荡 模 式 位<br />
1= 低 功 耗 Timer1 运 行 模 式 ( 单 片 机 处 于 休 眠 模 式 )。<br />
0= 标 准 ( 传 统 ) Timer1 振 荡 器 运 行 模 式 。<br />
bit 4 HPOL (1) : 高 端 晶 体 管 极 性 位 ( 即 奇 数 编 号 PWM 输 出 的 极 性 控 制 位 )<br />
1= PWM 1、 3、 5 和 7 高 电 平 有 效 ( 缺 省 )<br />
0= PWM 1、 3、 5 和 7 低 电 平 有 效<br />
bit 3 LPOL (1) : 低 端 晶 体 管 极 性 位 ( 即 偶 数 编 号 PWM 输 出 极 性 控 制 位 )<br />
1= PWM 0、 2、 4 和 6 高 电 平 有 效 ( 缺 省 )<br />
0= PWM 0、 2、 4 和 6 低 电 平 有 效<br />
bit 2 PWMPIN (2) :PWM 输 出 引 脚 复 位 状 态 控 制 位<br />
1= 复 位 时 , PWM 输 出 禁 止 ( 缺 省 )<br />
0=<br />
(3)<br />
复 位 时 , PWM 输 出 驱 动 为 有 效 状 态<br />
bit 1-0 未 实 现 位 : 读 作 0<br />
注<br />
1: 极 性 控 制 位 HPOL 和 LPOL 定 义 了 PWM 输 出 信 号 的 有 效 和 无 效 状 态 ; 错 误 输 入 或 人<br />
工 改 写 PWM 都 可 以 改 变 PWM 的 状 态 。<br />
2: PWM6 和 PWM7 输 出 通 道 仅 在 PIC18F4X21 器 件 上 可 用 。<br />
3: 当 PWMPIN=0 时 , 如 果 器 件 有 8 个 PWM 输 出 引 脚 (40 和 44 引 脚 器 件 ), 则<br />
PWMEN=101 ; 如 果 器 件 有 6 个 PWM 输 出 引 脚 (28 引 脚 器 件 ) , 则<br />
PWMEN = 100。 PWM 的 输 出 极 性 由 HPOL 和 LPOL 定 义 。<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 271 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-5: CONFIG3H: 配 置 寄 存 器 3 高 字 节 ( 字 节 地 址 300005h)<br />
R/P-1 U U R/P-1 R/P-1 R/P-1 U R/P-1<br />
MCLRE - - EXCLKMX (1) PWM4MX (1) SSPMX (1) - FLTAMX (1)<br />
bit 7 bit 0<br />
bit 7 MCLRE:MCLR 引 脚 使 能 位<br />
1= 使 能 RE3 引 脚 ; 禁 止 MCLR。<br />
0= 使 能 MCLR 引 脚 ; 禁 止 RE3 输 入 引 脚 。<br />
bit 6-5 未 实 现 位 : 读 作 0<br />
bit 4 EXCLKMX:TMR0/T5CKI 外 部 时 钟 复 用 选 择 位<br />
1= TMR0/T5CKI 外 部 时 钟 输 入 与 RC3 复 用<br />
0= TMR0/T5CKI 外 部 时 钟 输 入 与 RD0 复 用<br />
bit 3 PWM4MX:PWM4 复 用 选 择 位<br />
1= PWM4 输 出 与 RB5 复 用<br />
0= PWM4 输 出 与 RD5 复 用<br />
bit 2 SSPMX:SSP I/O 复 用 选 择 位<br />
1= SCK/SCL 时 钟 引 脚 和 SDA/SDI 数 据 引 脚 分 别 与 RC5 和 RC4 复 用 。<br />
SDO 输 出 与 RC7 复 用 。<br />
0= SCK/SCL 时 钟 引 脚 和 SDA/SDI 数 据 引 脚 分 别 与 RD3 和 RD2 复 用 。<br />
SDO 输 出 与 RD1 复 用 。<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
FLTAMX:FLTA 复 用 选 择 位<br />
1= FLTA 输 入 引 脚 与 RC1 复 用<br />
0= FLTA 输 入 引 脚 与 RD4 复 用<br />
注 1:PIC18F2X31 器 件 中 未 实 现 ; 保 持 该 位 置 位 。<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
DS39616B_CN 第 272 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-6: CONFIG4L: 配 置 寄 存 器 4 低 字 节 ( 字 节 地 址 300006h)<br />
R/P-1 U-0 U-0 U-0 U-0 R/P-1 U-0 R/P-1<br />
DEBUG - - - - LVP - STVREN<br />
bit 7 bit 0<br />
bit 7 DEBUG: 后 台 调 试 器 使 能 位<br />
1= 禁 止 后 台 调 试 器 , RB6 和 RB7 被 配 置 为 通 用 I/O 引 脚<br />
0= 使 能 后 台 调 试 器 , RB6 和 RB7 专 用 于 在 线 调 试 。<br />
bit 6-3 未 实 现 位 : 读 作 0<br />
bit 2 LVP: 低 压 ICSP 使 能 位<br />
1= 使 能 低 压 ICSP<br />
0= 禁 止 低 压 ICSP<br />
bit 1 未 实 现 位 : 读 作 0<br />
bit 0<br />
STVREN: 堆 栈 满 / 下 溢 复 位 使 能 位<br />
1= 堆 栈 满 / 下 溢 会 导 致 复 位<br />
0= 堆 栈 满 / 下 溢 不 会 导 致 复 位<br />
图 注 :<br />
R= 可 读 位 C= 可 清 零 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 273 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-7: CONFIG5L: 配 置 寄 存 器 5 低 字 节 ( 字 节 地 址 300008h)<br />
U-0 U-0 U-0 U-0 R/C-1 R/C-1 R/C-1 R/C-1<br />
- - - - CP3 (1) CP2 (1) CP1 CP0<br />
bit 7 bit 0<br />
bit 7-4 未 实 现 位 : 读 作 0<br />
bit 3<br />
bit 2<br />
bit 1<br />
bit 0<br />
CP3: 代 码 保 护 位<br />
1=Block3 (001800 到 001FFFh) 无 代 码 保 护<br />
0=Block3 (001800 到 001FFFh) 有 代 码 保 护<br />
CP2: 代 码 保 护 位<br />
1=Block2 (001000 到 0017FFh) 无 代 码 保 护<br />
0=Block2 (001000 到 0017FFh) 有 代 码 保 护<br />
CP1: 代 码 保 护 位<br />
1=Block1 (000800 到 000FFFh) 无 代 码 保 护<br />
0=Block1 (000800 到 000FFFh) 有 代 码 保 护<br />
CP0: 代 码 保 护 位<br />
1=Block0 (000200 到 0007FFh) 无 代 码 保 护<br />
0=Block0 (000200 到 0007FFh) 有 代 码 保 护<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 该 位 置 位 。<br />
图 注 :<br />
R= 可 读 位 C= 可 清 零 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
寄 存 器 22-8: CONFIG5H: 配 置 寄 存 器 5 高 字 节 ( 字 节 地 址 300009h)<br />
R/C-1 R/C-1 U-0 U-0 U-0 U-0 U-0 U-0<br />
CPD CPB - - - - - -<br />
bit 7 bit 0<br />
bit 7 CPD: 数 据 EEPROM 代 码 保 护 位<br />
1= 数 据 EEPROM 无 代 码 保 护<br />
0= 数 据 EEPROM 有 代 码 保 护<br />
bit 6 CPB: 引 导 块 代 码 保 护 位<br />
1= 引 导 块 (000000 到 0001FFh) 无 代 码 保 护<br />
0= 引 导 块 (000000 到 0001FFh) 有 代 码 保 护<br />
bit 5-0 未 实 现 位 : 读 作 0<br />
图 注 :<br />
R= 可 读 位 C= 可 清 零 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
DS39616B_CN 第 274 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-9:<br />
CONFIG6L: 配 置 寄 存 器 6 低 字 节 ( 字 节 地 址 30000Ah)<br />
U-0 U-0 U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1<br />
- - - - WRT3 (1) WRT2 (1) WRT1 WRT0<br />
bit 7 bit 0<br />
bit 7-4 未 实 现 位 : 读 作 0<br />
bit 3 WRT3: 写 保 护 位 (1)<br />
bit 2<br />
bit 1<br />
bit 0<br />
1=Block3 (001800 到 001FFFh) 无 写 保 护<br />
0=Block3 (001800 到 001FFFh) 有 写 保 护<br />
(1)<br />
WRT2: 写 保 护 位<br />
1=Block2 (001000 到 0017FFh) 无 写 保 护<br />
0=Block2 (001000 到 0017FFh) 有 写 保 护<br />
WRT1: 写 保 护 位<br />
1=Block1 (000800 到 000FFFh) 无 写 保 护<br />
0=Block1 (000800 到 000FFFh) 有 写 保 护<br />
WRT0: 写 保 护 位<br />
1=Block0 (000200 到 0007FFh) 无 写 保 护<br />
0=Block0 (000200 到 0007FFh) 有 写 保 护<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 该 位 置 位 。<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
寄 存 器 22-10:<br />
CONFIG6H: 配 置 寄 存 器 6 高 字 节 ( 字 节 地 址 30000Bh)<br />
R/P-1 R/P-1 R-1 U-0 U-0 U-0 U-0 U-0<br />
WRTD WRTB WRTC - - - - -<br />
bit 7 bit 0<br />
bit 7 WRTD: 数 据 EEPROM 写 保 护 位<br />
1= 数 据 EEPROM 无 写 保 护<br />
0= 数 据 EEPROM 有 写 保 护<br />
bit 6 WRTB: 引 导 块 写 保 护 位<br />
1= 引 导 块 (000000 到 0001FFh) 无 写 保 护<br />
0= 引 导 块 (000000 到 0001FFh) 有 写 保 护<br />
bit 5 WRTC: 配 置 寄 存 器 写 保 护 位<br />
1= 配 置 寄 存 器 (300000 到 3000FFh) 无 写 保 护<br />
0= 配 置 寄 存 器 (300000 到 3000FFh) 有 写 保 护<br />
注 : 在 正 常 执 行 模 式 下 , 该 位 只 读 ; 仅 在 编 程 模 式 下 可 写 该 位 。<br />
bit4-0 未 实 现 位 : 读 作 0<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 275 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-11: CONFIG7L: 配 置 寄 存 器 7 低 字 节 ( 字 节 地 址 30000Ch)<br />
U-0 U-0 U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1<br />
- - - - EBTR3 (1) EBTR2 (1) EBTR1 EBTR0<br />
bit 7 bit 0<br />
bit 7-4 未 实 现 位 : 读 作 0<br />
bit 3 EBTR3: 读 表 保 护 位 (1)<br />
bit 2<br />
bit 1<br />
bit 0<br />
1=Block3 (001800 到 001FFFh) 未 读 保 护 , 可 从 其 他 块 执 行 读 表 操 作<br />
0=Block3 (001800 到 001FFFh) 读 保 护 , 不 能 从 其 他 块 执 行 读 表 操 作<br />
(1)<br />
EBTR2: 读 表 保 护 位<br />
1=Block2 (001000 到 0017FFh) 未 读 保 护 , 可 从 其 他 块 执 行 读 表 操 作<br />
0=Block2 (001000 到 0017FFh) 读 保 护 , 不 能 从 其 他 块 执 行 读 表 操 作<br />
EBTR1: 读 表 保 护 位<br />
1=Block1 (000800 到 000FFFh) 未 读 保 护 , 可 从 其 他 块 执 行 读 表 操 作<br />
0=Block1 (000800 到 000FFFh) 读 保 护 , 不 能 从 其 他 块 执 行 读 表 操 作<br />
EBTR0: 读 表 保 护 位<br />
1=Block0 (000200 到 0007FFh) 未 读 保 护 , 可 从 其 他 块 执 行 读 表 操 作<br />
0=Block0 (000200 到 0007FFh) 读 保 护 , 不 能 从 其 他 块 执 行 读 表 操 作<br />
注 1: PIC18F2X31 器 件 中 未 实 现 ; 保 持 该 位 置 位 。<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
寄 存 器 22-12:<br />
CONFIG7H: 配 置 寄 存 器 7 高 字 节 ( 字 节 地 址 30000Dh)<br />
U-0 R/P-1 U-0 U-0 U-0 U-0 U-0 U-0<br />
- EBTRB - - - - - -<br />
bit 7 bit 0<br />
bit 7 未 实 现 位 : 读 作 0<br />
bit 6 EBTRB: 引 导 块 读 表 保 护 位<br />
1= 引 导 块 (000000 到 0001FFh) 未 读 保 护 , 可 从 其 他 块 执 行 读 表 操 作<br />
0= 引 导 块 (000000 到 0001FFh) 读 保 护 , 不 能 从 其 他 块 执 行 读 表 操 作<br />
bit 5-0 未 实 现 位 : 读 作 0<br />
图 注 :<br />
R= 可 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
DS39616B_CN 第 276 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
寄 存 器 22-13: <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 器 件 ID 寄 存 器 1<br />
R R R R R R R R<br />
DEV2 DEV1 DEV0 REV4 REV3 REV2 REV1 REV0<br />
bit 7 bit 0<br />
bit 7-5<br />
bit 4-0<br />
DEV: 器 件 ID 位<br />
这 些 位 与 器 件 ID 寄 存 器 2 中 的 DEV 结 合 使 用 , 以 确 定 器 件 编 号 。<br />
000=PIC18F<strong>4331</strong><br />
001=PIC18F<strong>4431</strong><br />
100=<strong>PIC18F2331</strong><br />
101=PIC18F<strong>2431</strong><br />
REV: 版 本 ID 位<br />
这 些 位 用 于 表 明 器 件 版 本 。<br />
图 注 :<br />
R= 只 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
寄 存 器 22-14: <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 器 件 ID 寄 存 器 2<br />
R R R R R R R R<br />
DEV10 DEV9 DEV8 DEV7 DEV6 DEV5 DEV4 DEV3<br />
bit 7 bit 0<br />
bit 7-0<br />
DEV10:DEV3: 器 件 ID 位<br />
这 些 位 与 器 件 ID 寄 存 器 1 中 的 DEV2:DEV0 结 合 使 用 , 以 确 定 器 件 编 号 。<br />
0000 0101=<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件<br />
注<br />
1: DEV10:DEV3 的 这 些 值 可 能 与 其 他 器 件 共 用 。 完 整 的 DEV10:DEV0 位 序 列 总 是 标<br />
示 了 某 个 特 定 的 器 件 。<br />
图 注 :<br />
R= 只 读 位 P= 可 编 程 位 U= 未 实 现 位 , 读 作 0<br />
-n= 器 件 未 编 程 时 的 值<br />
u= 编 程 后 状 态 不 变<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 277 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.2 看 门 狗 定 时 器 (WDT)<br />
对 于 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 , WDT 由<br />
INTRC 源 驱 动 。 当 WDT 使 能 时 , 时 钟 源 也 被 使 能 。<br />
WDT 的 标 称 值 为 4ms, 与 INTRC 振 荡 器 的 稳 定 性 相 同 。<br />
4ms 周 期 的 WDT 可 用 16 位 后 分 频 器 倍 乘 。WDT 后 分<br />
频 器 的 任 何 输 出 通 过 多 路 转 换 器 选 定 , 由 配 置 寄 存 器<br />
2H 中 的 位 控 制 ( 见 寄 存 器 22-3)。 可 用 的 周 期 范 围 从<br />
4ms 到 131.072 秒 (2.18 分 钟 )。 当 以 下 任 一 事 件 发<br />
生 时 ,WDT 和 后 分 频 器 将 被 清 零 , 包 括 执 行 SLEEP 或<br />
CLRWDT 指 令 、 改 变 IRCF 位 (OSCCON) 或 发<br />
生 时 钟 故 障 ( 见 第 22.4.1 节 “FSCM 和 看 门 狗 定 时<br />
器 ”)。<br />
使 用 OSCTUNE 寄 存 器 调 节 内 部 振 荡 器 时 钟 周 期 也 会 以<br />
同 样 的 因 子 影 响 WDT 的 周 期 。 例 如 , 如 果 INTRC 的 周<br />
期 延 长 3%, 则 WDT 的 周 期 随 之 延 长 3%。<br />
注<br />
1: 当 执 行 CLRWDT 和 SLEEP 指 令 时 , WDT<br />
和 后 分 频 器 计 数 将 被 清 零 。<br />
2: 通 过 更 改 IRCF 位 (OSCCON) 的<br />
设 置 可 以 清 零 WDT 和 后 分 频 器 计 数 。<br />
3: 当 执 行 CLRWDT 指 令 时 , 后 分 频 器 计 数 将<br />
被 清 零 。<br />
4: 如 果 WINEN=0, 则 仅 当 WDTW=1 时 ,<br />
CLRWDT 指 令 才 可 执 行 ; 否 则 , 将 导 致 器<br />
件 复 位 。<br />
22.2.1 控 制 寄 存 器<br />
寄 存 器 22-15 给 出 了 WDTCON 寄 存 器 。 该 寄 存 器 可 读<br />
写 。 仅 当 配 置 位 禁 止 WDT 时 ,SWDTEN 位 才 允 许 软 件<br />
使 能 或 禁 止 WDT。WDTW 位 是 只 读 位 , 该 位 表 示 WDT<br />
计 数 是 否 处 于 第 四 段 ( 也 就 是 说 , 是 否 8 位 的 WDT 值<br />
达 到 二 进 制 数 11000000 或 更 大 )。<br />
图 22-1:<br />
INTRC 源<br />
SWDTEN<br />
WDTEN<br />
WDT 框 图<br />
使 能 WDT<br />
INTRC 控 制<br />
WDT 计 数 器<br />
÷125<br />
从 休 眠 状 态<br />
唤 醒<br />
改 变 IRCF 位<br />
CLRWDT<br />
所 有 器 件 复 位<br />
WDTPS<br />
休 眠<br />
4<br />
可 编 程 后 分 频 器<br />
1:1 到 1:32,768<br />
WDT<br />
复 位<br />
WDT<br />
复 位<br />
寄 存 器 22-15:<br />
bit 7<br />
bit 6<br />
bit 0<br />
WDTCON 寄 存 器<br />
R-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0<br />
WDTW - - - - - - SWDTEN<br />
bit 7 bit 0<br />
WDTW: 看 门 狗 定 时 器 窗 口 位<br />
1 = WDT 计 数 处 于 第 四 段<br />
0= WDT 计 数 不 处 于 第 四 段<br />
未 实 现 位<br />
(1)<br />
SWDTEN: 软 件 使 能 / 禁 止 看 门 狗 定 时 器 位<br />
1 = WDT 打 开<br />
0= WDT 关 闭<br />
注<br />
1: 如 果 WDTEN 配 置 位 为 1, 则 WDT 总 是 使 能 , 与 SWDTEN 控 制 位 的 状 态 无 关 。 如 果<br />
WDTEN 配 置 位 为 0, 则 可 以 使 用 SWDTEN 控 制 位 打 开 / 关 闭 WDT。<br />
图 注 :<br />
R= 可 读 位 W= 可 写 位<br />
U= 未 实 现 位 , 读 作 0 -n= 上 电 复 位 时 的 值<br />
DS39616B_CN 第 278 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 22-2: 看 门 狗 定 时 器 的 寄 存 器 汇 总<br />
名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
CONFIG2H - - WINEN WDTPS3 WDTPS2 WDTPS2 WDTPS0 WDTEN<br />
RCON IPEN - - RI TO PD POR BOR<br />
WDTCON WDTW - - - - - - SWDTEN<br />
图 注 : 阴 影 单 元 格 表 示 看 门 狗 定 时 器 未 使 用 。<br />
22.3 双 速 起 振<br />
双 速 起 振 功 能 允 许 单 片 机 在 主 时 钟 源 可 用 之 前 , 使 用<br />
INTRC 振 荡 器 作 为 时 钟 源 , 从 而 帮 助 器 件 最 大 限 度 地 缩<br />
短 振 荡 器 起 振 到 代 码 执 行 间 的 延 时 。 通 过 将 配 置 寄 存 器<br />
1H 中 的 IESO 位 (CONFIG1H) 置 位 可 以 使 能 该<br />
功 能 。<br />
仅 当 主 振 荡 器 模 式 为 LP、 XT、 HS 或 HSPLL ( 基 于 晶<br />
振 的 模 式 ) 时 双 速 起 振 才 可 用 。 其 他 源 不 需 要 OST 起 振<br />
延 时 ; 对 于 这 些 时 钟 源 , 双 速 起 振 禁 止 。<br />
当 双 速 起 振 使 能 时 , 器 件 复 位 或 从 休 眠 状 态 唤 醒 时 , 器<br />
件 将 配 置 为 使 用 内 部 振 荡 电 路 作 为 时 钟 源 , 接 着 , 当 上<br />
电 复 位 使 能 后 , 将 发 生 上 电 延 时 定 时 器 延 时 。 这 样 允 许<br />
代 码 执 行 几 乎 与 主 振 荡 器 起 振 、OST 运 行 同 时 发 生 。 一<br />
旦 OST 延 时 结 束 , 器 件 自 动 换 到 PRI_RUN 模 式 。<br />
因 为 OSCCON 寄 存 器 在 发 生 复 位 事 件 时 会 被 清 零 ,<br />
INTOSC ( 或 后 分 频 器 ) 时 钟 源 在 复 位 发 生 后 不 是 立 即<br />
可 用 ,INTRC 时 钟 源 可 以 直 接 以 基 频 使 用 。 为 了 在 唤 醒<br />
器 件 时 使 用 更 高 的 时 钟 速 度 , 通 过 在 复 位 后 立 即 将<br />
IFRC2:IFRC0 位 置 位 , 选 择 INTOSC 或 其 后 分 频 器 时<br />
钟 源 提 供 更 高 的 时 钟 速 度 。 对 于 从 休 眠 模 式 唤 醒 的 情<br />
况 , 可 以 通 过 在 进 入 休 眠 模 式 之 前 置 位 IFRC2:IFRC0 位<br />
来 选 择 INTOSC 或 其 后 分 频 时 钟 源 。<br />
对 于 所 有 其 他 的 功 耗 管 理 模 式 , 不 使 用 双 速 起 振 。 器 件<br />
将 使 用 当 前 选 择 的 时 钟 源 直 到 主 时 钟 源 可 用 为 止 。<br />
IESO 位 的 设 置 被 忽 略 。<br />
22.3.1 使 用 双 速 起 振 的 特 别 注 意 事 项<br />
当 在 双 速 起 振 中 使 用 INTRC 振 荡 器 时 , 器 件 仍 遵 守 进<br />
入 功 耗 管 理 模 式 的 正 常 命 令 序 列 , 包 括 连 续 的 SLEEP 指<br />
令 ( 见 第 3.1.3 节 “ 多 种 休 眠 命 令 ”)。 实 际 上 , 这 意<br />
味 着 在 OST 延 时 结 束 之 前 , 用 户 代 码 可 以 改 变<br />
SCS1:SCS0 位 的 设 置 , 并 且 发 出 SLEEP 指 令 。 这 就 允<br />
许 应 用 程 序 短 暂 唤 醒 器 件 , 执 行 “ 现 场 保 护 ” 任 务 , 并<br />
在 器 件 开 始 使 用 主 振 荡 器 运 行 之 前 返 回 休 眠 状 态 。<br />
用 户 代 码 还 能 通 过 检 查 OSTS 位 (OSCCON) 的<br />
状 态 来 确 定 主 时 钟 源 是 否 为 当 前 系 统 时 钟 。 如 果 该 位 置<br />
位 , 则 主 振 荡 器 为 当 前 系 统 时 钟 。 否 则 , 当 器 件 从 复 位<br />
或 休 眠 模 式 唤 醒 期 间 , 由 内 部 振 荡 电 路 为 系 统 提 供 时<br />
钟 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 279 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 22-2:<br />
双 速 起 振 的 转 换 时 序 ( 从 INTOSC 到 HSPLL)<br />
Q1 Q2 Q3 Q4 Q1<br />
Q2 Q3 Q4 Q1 Q2 Q3 Q4<br />
INTOSC<br />
多 路 转 换 器<br />
OSC1<br />
TOST (1) TPLL (1) 1 2 3 4 5 6 7 8<br />
PLL 时 钟<br />
输 出<br />
时 钟 转 换<br />
CPU 时 钟<br />
外 设<br />
时 钟<br />
程 序<br />
计 数 器<br />
PC<br />
PC+2<br />
PC+4<br />
PC+6<br />
从 中 断 事 件 中 唤 醒<br />
OSTS 位 置 位<br />
注 1: TOST=1024 TOSC ; TPLL=2 ms ( 约 数 )。 这 些 间 隔 没 有 按 比 例 显 示 。<br />
DS39616B_CN 第 280 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.4 故 障 保 护 时 钟 监 视 器<br />
故 障 保 护 时 钟 监 视 器 (FSCM) 允 许 单 片 机 在 发 生 外 部<br />
振 荡 器 故 障 时 , 自 动 地 将 系 统 时 钟 切 换 为 内 部 振 荡 电<br />
路 , 以 保 持 器 件 继 续 运 行 。 通 过 将 故 障 保 护 时 钟 监 视 器<br />
使 能 位 FCMEN (CONFIG1H) 置 位 , 可 以 使 能<br />
FSCM 功 能 。<br />
当 FSCM 使 能 时 , INTRC 振 荡 器 将 一 直 保 持 运 行 以 监<br />
视 外 设 时 钟 , 并 且 在 发 生 外 设 时 钟 故 障 时 立 即 用 作 备 用<br />
时 钟 。 时 钟 监 视 ( 如 图 22-3 所 示 ) 通 过 创 建 一 个 采 样<br />
时 钟 信 号 实 现 , 该 信 号 为 INTRC 输 出 的 64 分 频 。 这 样<br />
就 使 得 FSCM 采 样 时 钟 沿 与 外 设 时 钟 沿 有 充 足 的 时 间 间<br />
隔 。 外 设 系 统 时 钟 和 采 样 时 钟 作 为 时 钟 监 视 器 锁 存 器<br />
(Clock Monitor latch, CM) 的 输 入 。 CM 在 系 统 时 钟<br />
源 的 下 降 沿 被 置 位 , 在 采 样 时 钟 的 上 升 沿 被 清 零 。<br />
图 22-3:<br />
外 设<br />
时 钟<br />
INTRC<br />
时 钟 源<br />
÷ 64<br />
(32 µs) 488 Hz<br />
(2.048 ms)<br />
FSCM 框 图<br />
时 钟 监 视 器<br />
锁 存 器 (CM)<br />
( 边 沿 触 发 )<br />
时 钟 故 障 在 采 样 时 钟 的 下 降 沿 被 检 测 。 如 果 采 样 时 钟 出<br />
现 下 降 沿 时 , CM 仍 然 置 位 , 则 检 测 到 外 部 时 钟 故 障<br />
( 图 22-4)。 这 将 引 发 以 下 事 件 :<br />
• 通 过 置 位 OSCFIF 位 (PIR2), FSCM 产 生<br />
振 荡 器 故 障 中 断 ;<br />
• 系 统 时 钟 源 切 换 为 内 部 振 荡 电 路 (OSCCON 不 会<br />
被 更 新 , 所 以 无 法 显 示 当 前 时 钟 源 , 这 就 是 故 障 保<br />
护 状 态 ); 并 发 生<br />
• WDT 复 位 。<br />
由 于 来 自 内 部 振 荡 电 路 的 后 分 频 器 频 率 可 能 不 够 稳 定 ,<br />
所 以 最 好 能 选 择 另 一 个 时 钟 配 置 并 进 入 一 个 备 用 功 耗 管<br />
理 模 式 ( 更 多 细 节 请 参 阅 第 22.3.1 节 “ 使 用 双 速 起 振<br />
的 特 别 注 意 事 项 ” 和 第 3.1.3 节 “ 多 种 休 眠 命 令 ”)。 如<br />
果 要 尝 试 部 分 恢 复 或 执 行 受 控 关 闭 , 可 以 这 样 做 。<br />
S<br />
C<br />
Q<br />
Q<br />
检 测 到<br />
时 钟<br />
故 障<br />
为 了 在 唤 醒 器 件 时 使 用 更 高 的 时 钟 速 度 , 可 以 通 过 在 复<br />
位 发 生 后 立 即 设 置 IFRC2:IFRC0 位 , 选 择 INTOSC 或<br />
后 分 频 器 时 钟 源 提 供 更 高 的 时 钟 速 度 。 对 于 从 休 眠 模 式<br />
唤 醒 的 情 况 , 可 以 通 过 在 进 入 休 眠 模 式 之 前 设 置<br />
IFRC2:IFRC0 位 来 选 择 INTOSC 或 后 分 频 器 时 钟 源 。<br />
使 用 OSCTUNE 寄 存 器 调 节 内 部 振 荡 电 路 也 会 以 同 样 的<br />
因 子 影 响 FSCM 的 周 期 , 但 这 种 影 响 通 常 被 忽 略 , 因 为<br />
被 监 视 的 时 钟 频 率 通 常 比 采 样 时 钟 频 率 高 得 多 。<br />
FSCM 只 能 检 测 出 主 时 钟 源 或 辅 助 时 钟 源 的 故 障 。 如 果<br />
内 部 振 荡 电 路 发 生 故 障 时 , 无 法 检 测 到 其 他 时 钟 故 障 ,<br />
当 然 也 不 可 能 采 取 任 何 措 施 。<br />
22.4.1 FSCM 和 看 门 狗 定 时 器<br />
FSCM 和 WDT 均 以 INTRC 振 荡 器 作 为 时 钟 源 。 由 于<br />
WDT 使 用 独 立 的 分 频 器 和 计 数 器 , 当 FSCM 使 能 时 ,<br />
禁 止 WDT 对 INTRC 振 荡 器 的 运 行 没 有 影 响 。<br />
如 上 所 述 , 当 检 测 到 时 钟 故 障 时 , 时 钟 源 将 切 换 到<br />
INTOSC 时 钟 。 根 据 IRCF2:IRCF0 位 选 择 的 频 率 的 不<br />
同 , 代 码 执 行 速 度 也 会 相 应 发 生 很 大 的 变 化 。 如 果 用 小<br />
预 分 频 值 的 时 钟 源 使 能 WDT, 时 钟 速 度 的 下 降 将 允 许<br />
WDT 发 生 超 时 , 以 及 随 后 的 器 件 复 位 。 由 于 这 个 原 因 ,<br />
故 障 保 护 时 钟 事 件 也 会 复 位 WDT 和 后 分 频 器 , 使 WDT<br />
从 执 行 速 度 发 生 变 化 的 时 刻 开 始 重 新 计 数 , 从 而 减 少 发<br />
生 错 误 超 时 的 可 能 性 。<br />
22.4.2 退 出 故 障 安 全 运 行<br />
故 障 保 护 状 态 可 以 通 过 器 件 复 位 或 进 入 功 耗 管 理 模 式 来<br />
终 止 。 发 生 复 位 时 , 控 制 器 启 动 配 置 寄 存 器 1H 中 指 定 的<br />
主 时 钟 源 ( 将 发 生 所 有 该 振 荡 模 式 所 需 的 起 振 延 时 , 诸<br />
如 OST 或 PLL 定 时 器 延 时 )。INTOSC 多 路 转 换 器 将 提<br />
供 系 统 时 钟 直 到 主 时 钟 源 就 绪 为 止 ( 类 似 于 双 速 起 振 )。<br />
此 时 系 统 时 钟 源 切 换 到 主 时 钟 ( 用 OSCCON 寄 存 器 中<br />
的 OSTS 位 置 位 表 示 )。 然 后 , 故 障 保 护 时 钟 监 视 器 恢<br />
复 对 外 设 时 钟 的 监 视 。<br />
在 起 振 期 间 , 主 时 钟 源 可 能 永 远 不 就 绪 。 如 果 是 这 样 , 器<br />
件 运 行 将 以 INTOSC 多 路 转 换 器 作 为 时 钟 源 。OSCCON<br />
寄 存 器 将 保 持 复 位 状 态 直 至 进 入 功 耗 管 理 模 式 。<br />
通 过 装 载 OSCCON 寄 存 器 , 并 执 行 SLEEP 指 令 进 入 功<br />
耗 管 理 模 式 将 会 清 零 故 障 保 护 状 态 。 当 故 障 保 护 状 态 清<br />
零 后 , 时 钟 监 视 器 将 重 新 开 始 监 视 外 设 时 钟 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 281 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 22-4:<br />
FSCM 时 序 图<br />
采 样 时 钟<br />
系 统<br />
时 钟<br />
输 出<br />
振 荡 器<br />
发 生 故 障<br />
CM 输 出<br />
(Q)<br />
OSCFIF<br />
检 测 到<br />
故 障<br />
CM 检 测 CM 检 测 CM 检 测<br />
注 : 通 常 , 系 统 时 钟 的 频 率 比 采 样 时 钟 高 很 多 。 为 明 了 起 见 , 该 示 例 中 选 择 了 有 可 比 性 的 频 率 。<br />
22.4.3 功 耗 管 理 模 式 下 的 FSCM 中 断<br />
正 如 前 面 提 到 的 , 进 入 功 耗 管 理 模 式 将 会 清 零 故 障 保 护<br />
状 态 。 进 入 功 耗 管 理 模 式 时 , 时 钟 多 路 转 换 器 选 择 由<br />
OSCCON 寄 存 器 选 定 的 时 钟 源 。 在 功 耗 管 理 模 式 下 将<br />
恢 复 对 功 耗 管 理 时 钟 源 的 故 障 保 护 监 视 。<br />
如 果 在 功 耗 管 理 运 行 期 间 发 生 振 荡 器 故 障 , 随 后 将 会 发<br />
生 的 事 件 取 决 于 振 荡 器 故 障 中 断 是 否 使 能 。 如 果 使 能<br />
(OSCFIF = 1), 代 码 执 行 将 以 INTOSC 多 路 转 换 器 作<br />
为 时 钟 源 。 不 会 自 动 转 回 到 发 生 故 障 的 时 钟 源 。<br />
如 果 该 中 断 禁 止 , 当 发 生 振 荡 器 故 障 时 , 器 件 将 不 会 退<br />
出 功 耗 管 理 模 式 。 相 反 , 器 件 将 继 续 像 以 前 一 样 运 行 ,<br />
但 是 以 INTOSC 多 路 转 换 器 作 为 时 钟 源 。 当 处 于 空 闲 模<br />
式 时 , 随 后 发 生 的 中 断 将 导 致 CPU 开 始 执 行 指 令 , 此<br />
时 CPU 以 INTOSC 多 路 转 换 器 作 为 时 钟 。 器 件 将 在 故<br />
障 保 护 状 态 清 零 时 才 会 切 换 到 另 一 个 不 同 的 时 钟 源 。<br />
22.4.4 上 电 复 位 或 从 休 眠 中 唤 醒<br />
设 计 FSCM 的 目 的 是 在 器 件 退 出 上 电 复 位 (POR) 或<br />
低 功 耗 休 眠 模 式 后 的 任 意 时 刻 , 检 测 振 荡 器 故 障 。 当 系<br />
统 主 时 钟 为 EC、 RC 或 INTRC 模 式 时 , 监 视 会 在 这 些<br />
事 件 发 生 后 立 即 开 始 。<br />
对 于 涉 及 到 晶 振 或 谐 振 器 的 振 荡 模 式 ( 如 HS、HSPLL、<br />
LP 或 XT), 情 况 稍 有 不 同 。 由 于 这 类 振 荡 器 需 要 的 起<br />
振 时 间 可 能 比 FCSM 采 样 时 钟 的 时 间 长 很 多 , 所 以 有 可<br />
能 检 测 到 假 的 时 钟 故 障 。 为 了 防 止 这 一 问 题 , 内 部 振 荡<br />
电 路 会 被 自 动 配 置 为 系 统 时 钟 , 并 工 作 到 主 时 钟 稳 定 为<br />
止 (OST 和 PLL 定 时 器 已 完 成 延 时 )。 这 与 双 速 起 振<br />
模 式 相 同 。 一 旦 主 时 钟 稳 定 下 来 , INTRC 重 新 作 为<br />
FSCM 时 钟 源 。<br />
注 :<br />
防 止 在 发 生 POR 或 从 休 眠 状 态 唤 醒 时 检 测<br />
到 假 振 荡 器 故 障 中 断 的 逻 辑 , 同 样 也 可 以<br />
防 止 在 发 生 这 些 事 件 后 启 动 对 振 荡 器 故 障<br />
的 检 测 。 避 免 这 种 情 况 的 方 法 是 : 监 视<br />
OSTS 位 , 并 使 用 定 时 程 序 来 确 定 振 荡 器<br />
起 振 所 需 时 间 是 否 过 长 。 虽 然 如 此 , 所 有<br />
振 荡 器 故 障 中 断 都 不 会 留 下 标 志 。<br />
正 如 第 22.3.1 节 “ 使 用 双 速 起 振 的 特 别 注 意 事 项 ” 中<br />
所 述 , 在 等 待 系 统 主 时 钟 稳 定 的 过 程 中 , 选 择 另 一 个 时<br />
钟 配 置 并 进 入 一 个 备 用 的 功 耗 管 理 模 式 也 是 可 能 的 。 当<br />
选 择 了 新 的 功 耗 管 理 模 式 时 , 主 时 钟 将 被 禁 止 。<br />
DS39616B_CN 第 282 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.5 程 序 校 验 和 代 码 保 护<br />
PIC18 闪 存 器 件 的 整 个 代 码 保 护 结 构 与 其 他 的<br />
PICmicro ® 系 列 器 件 显 著 不 同 。<br />
用 户 程 序 存 储 器 被 分 为 五 块 。 其 中 的 引 导 块 有 512 字<br />
节 。 存 储 器 的 剩 余 部 分 根 据 二 进 制 边 界 被 分 为 四 块 。<br />
这 五 块 中 的 每 一 个 都 有 三 位 代 码 保 护 位 与 之 相 关 联 。 它<br />
们 是 :<br />
• 代 码 保 护 位 (CPn)<br />
• 写 保 护 位 (WRTn)<br />
• 外 部 存 储 块 读 表 位 (EBTRn)<br />
图 22-5 给 出 了 8KB 和 16KB 器 件 的 程 序 存 储 器 构 成 ,<br />
以 及 与 每 个 块 相 关 的 指 定 代 码 保 护 位 。 这 些 位 的 真 实 位<br />
置 汇 总 在 表 22-3 中 。<br />
图 22-5:<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 的 受 代 码 保 护 的 程 序 存 储 器<br />
存 储 器 大 小 / 器 件<br />
控 制 块 代 码 保 护 的<br />
位 是 :<br />
8KB<br />
(PIC18FX331)<br />
寻 址 范 围<br />
16 KB<br />
(PIC18FX431)<br />
寻 址 范 围<br />
引 导 块<br />
0000h<br />
0FFFh<br />
引 导 块<br />
0000h<br />
01FFh<br />
CPB、 WRTB、 EBTRB<br />
Block0<br />
0200h<br />
0FFFh<br />
Block0<br />
0200h<br />
0FFFh<br />
CP0、 WRT0、 EBTR0<br />
Block1<br />
1000h<br />
1FFFh<br />
Block1<br />
1000h<br />
1FFFh<br />
CP1、 WRT1、 EBTR1<br />
未 实 现<br />
读 作 0<br />
3FFFh<br />
Block2<br />
Block3<br />
2000h<br />
2FFFh<br />
3000h<br />
3FFFh<br />
CP2、 WRT2、 EBTR2<br />
CP3、 WRT3、 EBTR3<br />
表 22-3:<br />
代 码 保 护 寄 存 器 汇 总<br />
文 件 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0<br />
300008h CONFIG5L - - - - CP3 CP2 CP1 CP0<br />
300009h CONFIG5H CPD CPB - - - - - -<br />
30000Ah CONFIG6L - - - - WRT3 WRT2 WRT1 WRT0<br />
30000Bh CONFIG6H WRTD WRTB WRTC - - - - -<br />
30000Ch CONFIG7L - - - - EBTR3 EBTR2 EBTR1 EBTR0<br />
30000Dh CONFIG7H - EBTRB - - - - - -<br />
图 注 : 阴 影 单 元 格 未 实 现 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 283 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.5.1 程 序 存 储 器 代 码 保 护<br />
使 用 读 / 写 表 指 令 可 以 对 程 序 存 储 器 的 任 何 单 元 进 行 读<br />
写 操 作 。 读 表 操 作 会 读 取 器 件 ID。 使 用 读 / 写 表 指 令 可<br />
以 对 配 置 寄 存 器 进 行 读 写 操 作 。<br />
在 正 常 执 行 模 式 下 ,CPn 位 不 产 生 直 接 的 作 用 。CPn 位<br />
限 制 了 外 部 的 读 写 操 作 。 如 果 WRTn 配 置 位 是 “0”, 可<br />
以 保 护 用 户 存 储 器 的 某 个 块 不 受 写 表 指 令 的 影 响 。<br />
EBTRn 位 控 制 读 表 操 作 。 如 果 某 一 用 户 存 储 块 的 EBTRn<br />
位 置 为 “0”, 该 块 内 的 读 表 指 令 就 允 许 执 行 读 取 操 作 。<br />
而 来 自 该 块 以 外 的 读 表 指 令 则 不 被 允 许 , 读 出 的 结 果 为<br />
“0”。 图 22-6 到 22-8 举 例 说 明 了 读 / 写 表 保 护 。<br />
注 : 代 码 保 护 位 仅 能 从 “1” 状 态 改 写 为 “0”<br />
状 态 。 而 不 可 能 从 “0” 状 态 改 写 到 “1”<br />
状 态 。 只 有 使 用 整 个 芯 片 擦 除 或 块 擦 除 功<br />
能 才 能 将 代 码 保 护 位 置 “1”。 而 整 个 芯 片<br />
或 块 擦 除 功 能 仅 能 通 过 ICSP 或 外 部 编 程 器<br />
启 动 。<br />
图 22-6:<br />
禁 止 写 表 操 作 (WRTn)<br />
寄 存 器 值 程 序 存 储 器 配 置 位 设 置<br />
000000h<br />
WRTB,EBTRB = 11<br />
0001FFh<br />
000200h<br />
TBLPTR=0002FFh<br />
WRT0,EBTR0 = 01<br />
PC=0007FEh<br />
PC=0017FEh<br />
TBLWT *<br />
TBLWT *<br />
0007FFh<br />
000800h<br />
000FFFh<br />
001000h<br />
0017FFh<br />
001800h<br />
WRT1,EBTR1 = 11<br />
WRT2,EBTR2 = 11<br />
WRT3,EBTR3 = 11<br />
001FFFh<br />
结 果 :: 当 WRTn=0 时 , 禁 止 所 有 对 Blockn 的 写 表 操 作 。<br />
DS39616B_CN 第 284 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 22-7:<br />
禁 止 外 部 存 储 块 读 表 操 作 (EBTRn)<br />
寄 存 器 值 程 序 存 储 器 配 置 位 设 置<br />
000000h<br />
0001FFh<br />
000200h<br />
WRTB,EBTRB = 11<br />
TBLPTR=0002FFh<br />
WRT0,EBTR0 = 10<br />
PC=000FFEh<br />
TBLRD *<br />
0007FFh<br />
000800h<br />
WRT1,EBTR1 = 11<br />
000FFFh<br />
001000h<br />
WRT2,EBTR2 = 11<br />
0017FFh<br />
001800h<br />
WRT3,EBTR3=11<br />
001FFFh<br />
结 果 : 当 EBTRn=0 时 , 禁 止 所 有 来 自 外 部 存 储 块 对 Blockn 的 读 表 操 作 。<br />
TABLAT 寄 存 器 返 回 值 为 0。<br />
图 22-8:<br />
允 许 外 部 存 储 块 读 表 操 作 (EBTRn)<br />
寄 存 器 值 程 序 存 储 器 配 置 位 设 置<br />
000000h<br />
0001FFh<br />
000200h<br />
WRTB,EBTRB = 11<br />
TBLPTR=0002FFh<br />
WRT0,EBTR0 = 10<br />
PC=0007FEh<br />
TBLRD *<br />
0007FFh<br />
000800h<br />
000FFFh<br />
001000h<br />
WRT1,EBTR1 = 11<br />
WRT2,EBTR2 = 11<br />
0017FFh<br />
001800h<br />
WRT3,EBTR3 = 11<br />
001FFFh<br />
结 果 : 即 使 当 EBTRBn=0 时 , 仍 允 许 Blockn 内 部 的 读 表 操 作 。<br />
TABLAT 寄 存 器 返 回 单 元 TBLPTR 中 的 数 据 值 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 285 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
22.5.2 数 据 EEPROM 代 码 保 护<br />
整 个 数 据 EEPROM 的 外 部 读 写 由 两 个 配 置 位 CPD 和<br />
WRTD 保 护 。CPD 禁 止 对 数 据 EEPROM 的 外 部 读 写 操<br />
作 。WRTD 禁 止 对 数 据 EEPROM 的 外 部 写 操 作 。CPU<br />
可 以 不 受 这 些 保 护 位 的 设 置 影 响 , 继 续 读 写 数 据<br />
EEPROM。<br />
22.5.3 配 置 寄 存 器 保 护<br />
配 置 寄 存 器 可 以 写 保 护 。WRTC 位 控 制 配 置 寄 存 器 的 保<br />
护 。 在 正 常 执 行 模 式 下 ,WRTC 位 只 读 。WRTC 仅 能 通<br />
过 ICSP 或 外 部 编 程 器 修 改 。<br />
22.6 ID 单 元<br />
八 个 存 储 单 元 (200000h-200007h) 指 定 为 ID 单 元 ,<br />
供 用 户 存 储 校 验 和 或 其 他 标 识 代 码 编 号 。 在 正 常 运 行 或<br />
编 程 / 校 验 期 间 , 可 以 用 TBLRD 和 TBLWT 指 令 读 写 这<br />
些 单 元 。 当 器 件 有 代 码 保 护 时 , 可 以 读 取 ID 单 元 。<br />
22.7 在 线 串 行 编 程<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 单 片 机 可 以 在 最 终 应 用<br />
电 路 中 进 行 串 行 编 程 。 ICSP 只 需 使 用 五 根 线 , 其 中 时<br />
钟 和 数 据 线 各 1 根 , 另 外 三 根 线 作 为 电 源 、 接 地 和 编 程<br />
电 压 线 。 这 就 允 许 用 户 可 生 产 带 有 未 编 程 器 件 的 电 路<br />
板 , 仅 在 产 品 交 付 前 对 单 片 机 进 行 编 程 。 同 样 允 许 对 最<br />
新 的 或 定 制 的 固 件 进 行 编 程 。<br />
22.8 在 线 调 试 器<br />
当 配 置 寄 存 器 CONFIG4L 中 的 DEBUG 位 被 编 程 为 “0”<br />
时 , 在 线 调 试 功 能 使 能 。 这 一 功 能 在 同 MPLAB ® IDE 一<br />
起 使 用 的 时 候 , 就 能 进 行 一 些 简 单 的 调 试 。 当 单 片 机 的<br />
这 项 功 能 使 能 时 , 某 些 资 源 就 不 再 是 通 用 的 了 。 表 22-4<br />
给 出 了 后 台 调 试 器 所 需 的 资 源 。<br />
要 使 用 单 片 机 的 在 线 调 试 器 功 能 , 就 必 须 实 现 MCLR/<br />
VPP、VDD、VSS、RB7 和 RB6 在 线 串 行 编 程 连 接 的 设<br />
计 。 这 可 以 与 Microchip 或 第 三 方 开 发 工 具 公 司 提 供 的<br />
在 线 调 试 器 模 块 相 连 。<br />
22.9 低 压 ICSP 编 程<br />
配 置 寄 存 器 4L 中 的 LVP 位 (CONFIG4L) 使 能 低<br />
压 ICSP 编 程 (LVP)。 当 LVP 使 能 时 , 单 片 机 无 需 在<br />
MCLR/VPP 引 脚 加 上 高 电 压 就 能 够 编 程 , 但 此 时 RB5/<br />
PGM 引 脚 用 于 控 制 进 入 编 程 模 式 , 不 能 再 作 为 通 用 I/O<br />
引 脚 。<br />
器 件 被 擦 除 后 , LVP 被 使 能 。<br />
当 使 用 LVP 编 程 时 , 与 正 常 执 行 模 式 一 样 , 将 VDD 电<br />
压 加 到 MCLR/VPP 引 脚 。 要 进 入 编 程 模 式 , 将 VDD 电<br />
压 加 到 PGM 引 脚 上 。<br />
注<br />
1: 不 管 LVP 位 和 PGM 引 脚 的 状 态 如 何 , 只<br />
要 把 VIHH 电 压 加 在 MCLR 引 脚 上 , 就 可<br />
以 实 现 高 压 编 程 。<br />
2: 当 低 压 编 程 使 能 时 ,RB5 引 脚 不 能 再 用 作<br />
通 用 I/O 引 脚 。<br />
3: 当 LVP 使 能 时 , 从 外 部 将 PGM 引 脚 上 拉<br />
到 VSS, 以 允 许 正 常 程 序 执 行 。<br />
如 果 不 使 用 低 压 ICSP 编 程 模 式 , 可 以 清 零 LVP 位 , 且<br />
RB5/PGM 可 用 作 数 字 I/O 引 脚 RB5。 仅 当 使 用 标 准 高<br />
压 编 程 (VIHH 电 压 加 在 MCLR/VPP 引 脚 上 ) 时 , 才 可<br />
以 清 零 或 置 位 LVP 位 。 一 旦 LVP 禁 止 , 只 有 标 准 高 压<br />
编 程 可 用 , 且 只 能 用 于 器 件 编 程 。<br />
没 有 代 码 保 护 的 存 储 器 可 用 块 擦 除 或 逐 行 擦 除 的 方 法 来<br />
擦 除 , 然 后 可 在 任 意 规 定 的 VDD 电 压 下 对 其 写 入 。 如 果<br />
要 擦 除 有 代 码 保 护 的 存 储 器 , 需 要 使 用 块 擦 除 。 当 使 用<br />
低 压 编 程 时 , 若 要 执 行 块 擦 除 , 必 须 提 供 4.5V 到 5.5V<br />
的 VDD 电 压 。<br />
表 22-4:<br />
I/O 引 脚 :<br />
堆 栈 :<br />
程 序 存 储 器 :<br />
数 据 存 储 器 :<br />
调 试 器 资 源<br />
RB6, RB7<br />
2 级<br />
512 字 节<br />
10 字 节<br />
DS39616B_CN 第 286 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
23.0 指 令 集 综 述<br />
PIC18 指 令 集 与 以 前 的 PICmicro 指 令 集 相 比 , 添 加 了<br />
很 多 增 强 功 能 , 并 保 持 了 易 于 从 其 他 PICmicro 指 令 集<br />
移 植 的 特 点 。<br />
大 部 分 指 令 只 占 一 个 程 序 存 储 字 的 空 间 (16 位 ), 但 有<br />
三 条 指 令 需 要 两 个 程 序 存 储 字 单 元 。<br />
每 条 单 字 指 令 都 是 一 个 16 位 字 , 由 指 明 指 令 类 型 的 操<br />
作 码 和 指 令 操 作 的 一 个 或 多 个 操 作 数 组 成 。<br />
整 个 指 令 集 具 有 高 度 正 交 性 , 分 为 四 种 基 本 类 型 :<br />
• 针 对 字 节 的 操 作 类 指 令<br />
• 针 对 位 的 操 作 类 指 令<br />
• 立 即 数 操 作 类 指 令<br />
• 控 制 操 作 类 指 令<br />
表 23-2 中 的 PIC18 指 令 集 综 述 列 出 了 针 对 字 节 的 操 作<br />
类 指 令 、 针 对 位 的 操 作 类 指 令 、 立 即 数 操 作 类 指 令 和 控<br />
制 操 作 类 指 令 。 表 23-1 中 是 对 操 作 码 字 段 的 说 明 。<br />
大 多 数 针 对 字 节 的 操 作 类 指 令 都 有 三 种 操 作 数 :<br />
1. 数 据 寄 存 器 ( 由 “f” 指 定 )<br />
2. 保 存 结 果 的 目 标 寄 存 器 ( 由 “d” 指 定 )<br />
3. 访 问 的 存 储 器 ( 由 “a” 指 定 )<br />
数 据 寄 存 器 指 示 符 “f” 指 定 指 令 会 使 用 哪 个 数 据 寄 存<br />
器 。<br />
目 标 寄 存 器 指 示 符 “d” 指 定 操 作 结 果 的 存 放 位 置 。 如<br />
果 “d” 为 0, 操 作 结 果 存 入 WREG 寄 存 器 中 。 如 果<br />
“d” 为 1, 操 作 结 果 则 存 入 指 令 指 定 的 数 据 寄 存 器 中 。<br />
所 有 针 对 位 的 操 作 类 指 令 都 有 三 种 操 作 数 :<br />
1. 数 据 寄 存 器 ( 由 “f” 指 定 )<br />
2. 数 据 寄 存 器 中 的 位 ( 由 “b” 指 定 )<br />
3. 访 问 的 存 储 器 ( 由 “a” 指 定 )<br />
位 字 段 指 示 符 “b” 选 择 受 操 作 影 响 的 位 , 而 数 据 寄 存<br />
器 指 示 符 “f” 则 表 示 该 位 所 在 的 数 据 寄 存 器 地 址 。<br />
立 即 数 操 作 类 指 令 可 以 使 用 以 下 操 作 数 :<br />
• 要 装 入 数 据 寄 存 器 的 立 即 数 值 ( 由 “k” 指 定 )<br />
• 希 望 装 入 立 即 数 值 的 FSR 寄 存 器 ( 由 “f” 指<br />
定 )<br />
• 不 需 要 操 作 数 ( 用 “—” 表 示 )<br />
•<br />
控 制 操 作 类 指 令 可 以 使 用 以 下 一 些 操 作 数 :<br />
• 程 序 存 储 器 地 址 ( 由 “n” 指 定 )<br />
• 调 用 或 返 回 指 令 模 式 ( 由 “s” 指 定 )<br />
• 读 表 和 写 表 指 令 模 式 ( 由 “m” 指 定 )<br />
• 不 需 要 操 作 数 ( 用 “—” 表 示 )<br />
所 有 的 指 令 都 是 单 字 指 令 , 除 了 三 条 双 字 指 令 。 这 三 条<br />
指 令 被 作 为 双 字 指 令 , 这 样 所 有 需 要 的 信 息 就 可 以 保 存<br />
在 32 位 中 。 在 第 二 个 字 中 , 4 个 MSb 都 是 1。 如 果 第<br />
二 个 字 作 为 指 令 执 行 ( 仅 第 二 个 字 ), 将 执 行 一 个 NOP<br />
指 令 。<br />
除 非 条 件 测 试 结 果 为 true 或 者 指 令 执 行 改 变 了 程 序 计 数<br />
器 值 , 否 则 所 有 单 字 指 令 的 执 行 都 只 需 要 一 个 指 令 周<br />
期 。 对 于 条 件 测 试 结 果 为 true 或 者 指 令 执 行 改 变 了 程 序<br />
计 数 器 值 的 这 些 情 况 , 需 要 两 个 指 令 周 期 , 其 中 新 增 加<br />
的 指 令 周 期 是 执 行 NOP 指 令 。<br />
执 行 双 字 指 令 需 要 两 个 指 令 周 期 。<br />
每 条 指 令 周 期 包 括 4 个 振 荡 周 期 。 因 此 , 对 于 频 率 为 4<br />
MHz 的 振 荡 器 , 其 正 常 指 令 执 行 时 间 为 1 µs。 如 果 条 件<br />
测 试 为 true 或 指 令 执 行 改 变 了 程 序 计 数 器 值 , 则 该 指 令<br />
的 执 行 时 间 为 2 µs。 双 字 转 移 指 令 ( 如 果 为 true) 的 执<br />
行 需 要 3 µs。<br />
图 23-1 给 出 了 指 令 的 几 种 通 用 格 式 。<br />
所 有 示 例 都 使 用 “nnh” 格 式 来 表 示 十 六 进 制 数 , 其 中<br />
“h” 表 示 一 个 十 六 进 制 数 字 。<br />
表 23-2 “ 指 令 集 综 述 ” 列 出 了 Microchip 汇 编 器<br />
(MPASM TM 汇 编 器 ) 能 识 别 的 指 令 。 第 23.2 节 “ 指 令<br />
集 ” 将 一 一 介 绍 每 条 指 令 。<br />
23.1 读 - 修 改 - 写 操 作 指 令<br />
指 令 中 如 果 指 定 了 数 据 寄 存 器 , 则 这 些 指 令 都 会 执 行 读<br />
- 修 改 - 写 ( Read-Modify-Write, R-M-W) 操 作 。 先<br />
读 寄 存 器 , 然 后 修 改 数 据 , 再 将 结 果 存 放 在 由 指 令 或 目<br />
标 指 示 符 “d” 指 定 的 位 置 。 即 使 指 令 将 写 某 个 寄 存 器 ,<br />
之 前 也 仍 然 会 对 此 寄 存 器 执 行 读 操 作 。<br />
例 如 ,“BCF PORTB,1” 指 令 先 读 取 PORTB, 然 后 将<br />
数 据 的 bit 1 清 零 , 最 后 把 结 果 写 回 到 PORTB。 读 操 作<br />
可 能 会 产 生 意 外 的 结 果 : 任 何 将 RBIF 标 志 位 置 位 的 状<br />
态 都 被 清 零 。R-M-W 操 作 还 会 把 输 入 引 脚 的 电 平 锁 存 到<br />
相 应 的 输 出 锁 存 器 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 287 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 23-1:<br />
操 作 码 字 段 描 述<br />
字 段<br />
描 述<br />
a RAM 存 取 位 :<br />
a=0:RAM 位 于 快 速 访 问 存 储 区 ( 忽 略 BSR 寄 存 器 )<br />
a=1:RAM 存 储 区 由 BSR 寄 存 器 指 定<br />
bbb 8 位 数 据 寄 存 器 内 的 位 地 址 (0 到 7)。<br />
BSR 存 储 区 选 择 寄 存 器 。 用 于 选 择 当 前 的 RAM 存 储 区 。<br />
d 目 标 寄 存 器 选 择 位 :<br />
d=0: 结 果 保 存 至 WREG<br />
d=1: 结 果 保 存 至 数 据 寄 存 器 f<br />
dest 目 标 寄 存 器 , 可 以 是 WREG 寄 存 器 或 指 定 的 寄 存 器 文 件 地 址 。<br />
f<br />
8 位 寄 存 器 文 件 地 址 (0x00 到 0xFF)。<br />
fs 12 位 寄 存 器 文 件 地 址 (0x000 到 0xFFF)。 这 是 源 地 址 。<br />
fd 12 位 寄 存 器 文 件 地 址 (0x000 到 0xFFF)。 这 是 目 标 地 址 。<br />
k 立 即 数 、 常 数 或 者 标 号 ( 可 能 是 8 位 、 12 位 或 20 位 值 )。<br />
label 标 号 名 。<br />
mm 读 表 和 写 表 指 令 的 TBLPTR 寄 存 器 模 式 。<br />
只 与 读 表 和 写 表 指 令 一 起 使 用 :<br />
* 不 改 变 寄 存 器 ( 比 如 读 表 和 写 表 的 TBLPTR)。<br />
*+ 后 增 寄 存 器 ( 比 如 读 表 和 写 表 的 TBLPTR)。<br />
*- 后 减 寄 存 器 ( 比 如 读 表 和 写 表 的 TBLPTR)。<br />
+* 先 增 寄 存 器 ( 比 如 读 表 和 写 表 的 TBLPTR)。<br />
n 相 对 于 转 移 指 令 的 相 对 地 址 ( 二 进 制 补 码 ), 或 调 用 / 转 移 和 返 回 指 令 的 直 接 地 址 。<br />
PRODH 乘 积 高 位 字 节 。<br />
PRODL 乘 积 低 位 字 节 。<br />
s 快 速 调 用 / 返 回 模 式 选 择 位 :<br />
s=0: 不 更 新 影 子 寄 存 器 , 也 不 用 影 子 寄 存 器 的 内 容 更 新 其 他 寄 存 器<br />
s=1: 将 某 些 寄 存 器 值 存 入 影 子 寄 存 器 , 或 把 影 子 寄 存 器 的 内 容 载 入 某 些 寄 存 器 ( 快 速 模 式 )<br />
u 未 使 用 或 未 改 变 。<br />
WREG 工 作 寄 存 器 ( 累 加 器 )。<br />
x 与 取 值 无 关 的 位 (0 或 1)。<br />
汇 编 器 将 产 生 x=0 的 代 码 。 为 了 与 所 有 的 Microchip 软 件 工 具 兼 容 , 建 议 使 用 这 种 格 式 。<br />
TBLPTR 21 位 表 指 针 ( 指 向 程 序 存 储 单 元 )。<br />
TABLAT 8 位 表 锁 存 器 。<br />
TOS 栈 顶 。<br />
PC 程 序 计 数 器 。<br />
PCL 程 序 计 数 器 低 位 字 节 。<br />
PCH 程 序 计 数 器 高 位 字 节 。<br />
PCLATH 程 序 计 数 器 次 高 位 字 节 锁 存 器 。<br />
PCLATU 程 序 计 数 器 最 高 位 字 节 锁 存 器 。<br />
GIE 全 局 中 断 允 许 位 。<br />
WDT 看 门 狗 定 时 器 。<br />
TO 超 时 溢 出 位 。<br />
PD 掉 电 位 。<br />
C, DC, Z, OV, N ALU 状 态 位 : 进 位 标 志 位 、 辅 助 进 位 标 志 位 、 全 零 标 志 位 、 溢 出 标 志 位 及 负 标 志 位 。<br />
[ ] 可 选 的 。<br />
( ) 内 容 。<br />
→ 赋 值 给 。<br />
< > 寄 存 器 位 域 。<br />
∈ 表 示 属 于 某 个 集 合 。<br />
italics<br />
用 户 定 义 项 ( 字 体 为 courier)。<br />
DS39616B_CN 第 288 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 23-1:<br />
指 令 的 通 用 格 式<br />
针 对 字 节 的 数 据 寄 存 器 操 作<br />
15 10 9 8 7 0<br />
操 作 码 d a f ( 数 据 寄 存 器 地 址 )<br />
d=0 表 示 结 果 存 入 WREG 寄 存 器<br />
d=1 表 示 结 果 存 入 数 据 寄 存 器 (f)<br />
a=0 访 问 快 速 存 取 RAM<br />
a=1 由 BSR 选 择 存 储 区<br />
f=8 位 数 据 寄 存 器 地 址<br />
从 字 节 到 字 节 传 送 操 作 ( 双 字 )<br />
15 12 11 0<br />
操 作 码 f ( 源 数 据 寄 存 器 地 址 )<br />
15 12 11 0<br />
1111 f ( 目 标 数 据 寄 存 器 地 址 )<br />
f=12 位 数 据 寄 存 器 地 址<br />
针 对 位 的 数 据 寄 存 器 操 作<br />
15 12 11 9 8 7 0<br />
操 作 码 b (BIT #) a f ( 数 据 寄 存 器 地 址 )<br />
b= 占 3 位 , 表 示 数 据 寄 存 器 (f) 中 某 位 的 位 置<br />
a= 0 访 问 快 速 存 取 RAM<br />
a= 1 由 BSR 选 择 存 储 区<br />
f= 8 位 数 据 寄 存 器 地 址<br />
立 即 数 操 作<br />
15 8 7 0<br />
操 作 码 k ( 立 即 数 )<br />
k=8 位 立 即 数<br />
示 例 指 令<br />
ADDWF MYREG, W, B<br />
MOVFF MYREG1, MYREG2<br />
BSF MYREG, bit, B<br />
MOVLW 0x7F<br />
控 制 操 作<br />
CALL、GOTO 和 转 移 操 作<br />
15 8 7 0<br />
操 作 码 n ( 立 即 数 )<br />
15 12 11 0<br />
1111 n ( 立 即 数 )<br />
n=20 位 立 即 数<br />
15 8 7 0<br />
操 作 码 S n ( 立 即 数 )<br />
15 12 11 0<br />
n ( 立 即 数 )<br />
S= 快 速 位<br />
GOTO Label<br />
CALL MYFUNC<br />
15 11 10 0<br />
操 作 码 n ( 立 即 数 )<br />
BRA MYFUNC<br />
15 8 7 0<br />
操 作 码 n ( 立 即 数 ) BC MYFUNC<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 289 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 23-2:<br />
PIC18FXXX 指 令 集<br />
助 记 符 , 操 作 数 描 述 周 期<br />
MSb<br />
16 位 指 令 字<br />
LSb<br />
影 响 的 状 态 位<br />
备 注<br />
针 对 字 节 的 数 据 寄 存 器 操 作<br />
ADDWF<br />
ADDWFC<br />
ANDWF<br />
CLRF<br />
COMF<br />
CPFSEQ<br />
CPFSGT<br />
CPFSLT<br />
DECF<br />
DECFSZ<br />
DCFSNZ<br />
INCF<br />
INCFSZ<br />
INFSNZ<br />
IORWF<br />
MOVF<br />
MOVFF<br />
MOVWF<br />
MULWF<br />
NEGF<br />
RLCF<br />
RLNCF<br />
RRCF<br />
RRNCF<br />
SETF<br />
SUBFWB<br />
SUBWF<br />
SUBWFB<br />
SWAPF<br />
TSTFSZ<br />
XORWF<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, a<br />
f, d, a<br />
f, a<br />
f, a<br />
f, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f s , f d<br />
f, a<br />
f, a<br />
f, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, d, a<br />
f, a<br />
f, d, a<br />
针 对 位 的 数 据 寄 存 器 操 作<br />
BCF<br />
BSF<br />
BTFSC<br />
BTFSS<br />
BTG<br />
注<br />
f, b, a<br />
f, b, a<br />
f, b, a<br />
f, b, a<br />
f, d, a<br />
WREG 与 f 相 加<br />
WREG、 f 和 进 位 位 相 加<br />
WREG 与 f 进 行 “ 与 ” 运 算<br />
f 清 零<br />
f 取 反<br />
比 较 f 和 WREG, = 则 跳 过<br />
比 较 f 和 WREG, > 则 跳 过<br />
比 较 f 和 WREG, < 则 跳 过<br />
f 减 1<br />
f 减 1, 为 0 则 跳 过<br />
f 减 1, 非 0 则 跳 过<br />
f 增 1<br />
f 增 1, 为 0 则 跳 过<br />
f 增 1, 非 0 则 跳 过<br />
WREG 与 f 进 行 “ 或 ” 运 算<br />
传 送 f<br />
将 第 一 个 字 f s ( 源 ) 传 送 到<br />
第 二 个 字 f d ( 目 标 )<br />
WREG 传 送 到 f<br />
WREG 与 f 相 乘<br />
f 取 补<br />
带 进 位 的 循 环 左 移 f<br />
循 环 左 移 f ( 无 进 位 )<br />
带 进 位 循 环 右 移 f<br />
循 环 右 移 f ( 无 进 位 )<br />
f 置 位<br />
从 WREG 减 去 f 和 借 位 位<br />
从 f 减 去 WREG<br />
从 f 减 去 WREG 和 借 位 位<br />
对 f 进 行 半 字 节 交 换<br />
测 试 f, 为 0 则 跳 过<br />
WREG 与 f 进 行 “ 异 或 ” 运 算<br />
对 f 进 行 位 清 零<br />
对 f 进 行 位 置 位<br />
检 测 f 的 位 , 为 0 则 跳 过<br />
检 测 f 的 位 , 为 1 则 跳 过<br />
对 f 中 的 某 位 取 反<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 (2 或 3)<br />
1 (2 或 3)<br />
1 (2 或 3)<br />
1<br />
1 (2 或 3)<br />
1 (2 或 3)<br />
1<br />
1 (2 或 3)<br />
1 (2 或 3)<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 (2 或 3)<br />
1<br />
1<br />
1<br />
1 (2 或 3)<br />
1 (2 或 3)<br />
1<br />
0010<br />
0010<br />
0001<br />
0110<br />
0001<br />
0110<br />
0110<br />
0110<br />
0000<br />
0010<br />
0100<br />
0010<br />
0011<br />
0100<br />
0001<br />
0101<br />
1100<br />
1111<br />
0110<br />
0000<br />
0110<br />
0011<br />
0100<br />
0011<br />
0100<br />
0110<br />
0101<br />
0101<br />
0101<br />
0011<br />
0110<br />
0001<br />
1001<br />
1000<br />
1011<br />
1010<br />
0111<br />
01da<br />
00da<br />
01da<br />
101a<br />
11da<br />
001a<br />
010a<br />
000a<br />
01da<br />
11da<br />
11da<br />
10da<br />
11da<br />
10da<br />
00da<br />
00da<br />
ffff<br />
ffff<br />
111a<br />
001a<br />
110a<br />
01da<br />
01da<br />
00da<br />
00da<br />
100a<br />
01da<br />
11da<br />
10da<br />
10da<br />
011a<br />
10da<br />
bbba<br />
bbba<br />
bbba<br />
bbba<br />
bbba<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
C, DC, Z, OV, N<br />
C, DC, Z, OV, N<br />
Z, N<br />
Z<br />
Z, N<br />
无<br />
无<br />
无<br />
C, DC, Z, OV, N<br />
无<br />
无<br />
C, DC, Z, OV, N<br />
无<br />
无<br />
Z, N<br />
Z, N<br />
无<br />
无<br />
无<br />
C, DC, Z, OV, N<br />
C, Z, N<br />
Z, N<br />
C, Z, N<br />
Z, N<br />
无<br />
C, DC, Z, OV, N<br />
C, DC, Z, OV, N<br />
C, DC, Z, OV, N<br />
无<br />
无<br />
Z, N<br />
1, 2<br />
1, 2<br />
1,2<br />
2<br />
1, 2<br />
4<br />
4<br />
1, 2<br />
1, 2, 3, 4<br />
1, 2, 3, 4<br />
1, 2<br />
1, 2, 3, 4<br />
4<br />
1, 2<br />
1, 2<br />
1<br />
1: 当 修 改 端 口 寄 存 器 使 其 随 本 身 内 容 改 变 时 ( 例 如 , MOVF PORTB, 1, 0), 使 用 的 值 是 引 脚 上 的 当 前 值 。 例<br />
如 , 如 果 一 引 脚 配 置 为 输 入 , 其 数 据 锁 存 器 中 的 值 为 “1”, 但 此 时 外 部 器 件 将 该 引 脚 拉 为 低 电 平 , 则 写 回 数<br />
据 锁 存 器 的 数 据 值 将 是 “0”。<br />
2: 当 对 TMR0 寄 存 器 执 行 指 令 ( 并 且 , 可 能 的 话 d=1) 时 , 如 果 对 预 分 频 器 赋 值 , 则 将 清 零 该 预 分 频 器 。<br />
3: 如 果 程 序 计 数 器 (PC) 被 修 改 或 者 执 行 条 件 测 试 为 true, 则 执 行 指 令 需 要 两 个 指 令 周 期 。 第 二 个 周 期 执 行<br />
NOP 指 令 。<br />
4: 某 些 指 令 是 双 字 指 令 。 如 果 指 令 的 第 一 个 字 无 法 从 该 16 位 获 得 内 嵌 的 信 息 , 则 第 二 个 字 将 作 为 NOP 指 令 执<br />
行 。 这 将 确 保 所 有 程 序 存 储 单 元 内 都 具 有 合 法 指 令 。<br />
5: 如 果 写 表 操 作 开 始 写 内 部 存 储 器 , 则 写 操 作 将 持 续 到 终 止 为 止 。<br />
无<br />
无<br />
无<br />
无<br />
无<br />
1, 2<br />
1, 2<br />
1, 2<br />
1, 2<br />
4<br />
1, 2<br />
1, 2<br />
1, 2<br />
3, 4<br />
3, 4<br />
1, 2<br />
DS39616B_CN 第 290 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 23-2: PIC18FXXX 指 令 集 ( 续 )<br />
助 记 符 , 操 作 数 描 述 周 期<br />
MSb<br />
16 位 指 令 字<br />
LSb<br />
影 响 的 状 态 位<br />
备 注<br />
控 制 操 作<br />
BC<br />
BN<br />
BNC<br />
BNN<br />
BNOV<br />
BNZ<br />
BOV<br />
BRA<br />
BZ<br />
CALL<br />
CLRWDT<br />
DAW<br />
GOTO<br />
NOP<br />
NOP<br />
POP<br />
PUSH<br />
RCALL<br />
RESET<br />
RETFIE<br />
RETLW<br />
RETURN<br />
SLEEP<br />
注<br />
n<br />
n<br />
n<br />
n<br />
n<br />
n<br />
n<br />
n<br />
n<br />
n, s<br />
-<br />
-<br />
n<br />
-<br />
-<br />
-<br />
-<br />
n<br />
s<br />
k<br />
s<br />
-<br />
进 位 则 转 移<br />
为 负 则 转 移<br />
无 进 位 则 转 移<br />
不 为 负 则 转 移<br />
不 溢 出 则 转 移<br />
不 为 0 则 转 移<br />
溢 出 则 转 移<br />
无 条 件 转 移<br />
为 0 则 转 移<br />
调 用 子 程 序 的 第 一 个 字<br />
第 二 个 字<br />
清 零 看 门 狗 定 时 器<br />
十 进 制 调 整 WREG<br />
跳 转 到 地 址 的 第 一 个 字<br />
第 二 个 字<br />
空 操 作<br />
空 操 作<br />
弹 出 返 回 堆 栈 栈 顶 (TOS)<br />
内 容<br />
将 内 容 压 入 返 回 堆 栈 栈 顶<br />
相 对 调 用<br />
用 软 件 使 器 件 复 位<br />
中 断 返 回<br />
返 回 时 将 立 即 数 写 入 WREG<br />
从 子 程 序 返 回<br />
进 入 休 眠 模 式<br />
1 (2)<br />
1 (2)<br />
1 (2)<br />
1 (2)<br />
1 (2)<br />
2<br />
1 (2)<br />
1 (2)<br />
1 (2)<br />
2<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
1<br />
2<br />
2<br />
2<br />
1<br />
1110<br />
1110<br />
1110<br />
1110<br />
1110<br />
1110<br />
1110<br />
1101<br />
1110<br />
1110<br />
1111<br />
0000<br />
0000<br />
1110<br />
1111<br />
0000<br />
1111<br />
0000<br />
0000<br />
1101<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0010<br />
0110<br />
0011<br />
0111<br />
0101<br />
0001<br />
0100<br />
0nnn<br />
0000<br />
110s<br />
kkkk<br />
0000<br />
0000<br />
1111<br />
kkkk<br />
0000<br />
XXXX<br />
0000<br />
0000<br />
1nnn<br />
0000<br />
0000<br />
1100<br />
0000<br />
0000<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
kkkk<br />
kkkk<br />
0000<br />
0000<br />
kkkk<br />
kkkk<br />
0000<br />
XXXX<br />
0000<br />
0000<br />
nnnn<br />
1111<br />
0001<br />
kkkk<br />
0001<br />
0000<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
nnnn<br />
kkkk<br />
kkkk<br />
0100<br />
0111<br />
kkkk<br />
kkkk<br />
0000<br />
XXXX<br />
0110<br />
0101<br />
nnnn<br />
1111<br />
000s<br />
kkkk<br />
001s<br />
0011<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
TO,PD<br />
C,DC<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
所 有<br />
GIE/GIEH,<br />
PEIE/GIEL<br />
无<br />
无<br />
TO,PD<br />
1: 当 修 改 端 口 寄 存 器 使 其 随 本 身 内 容 改 变 时 ( 例 如 , MOVF PORTB, 1, 0), 使 用 的 值 是 引 脚 上 的 当 前 值 。 例<br />
如 , 如 果 一 引 脚 配 置 为 输 入 , 其 数 据 锁 存 器 中 的 值 为 “1”, 但 此 时 外 部 器 件 将 该 引 脚 拉 为 低 电 平 , 则 写 回 数<br />
据 锁 存 器 的 数 据 值 将 是 “0”。<br />
2: 当 对 TMR0 寄 存 器 执 行 指 令 ( 并 且 , 可 能 的 话 d=1) 时 , 如 果 对 预 分 频 器 赋 值 , 则 将 清 零 该 预 分 频 器 。<br />
3: 如 果 程 序 计 数 器 (PC) 被 修 改 或 者 执 行 条 件 测 试 为 true, 则 执 行 指 令 需 要 两 个 指 令 周 期 。 第 二 个 周 期 执 行<br />
NOP 指 令 。<br />
4: 某 些 指 令 是 双 字 指 令 。 如 果 指 令 的 第 一 个 字 无 法 从 该 16 位 获 得 内 嵌 的 信 息 , 则 第 二 个 字 将 作 为 NOP 指 令 执<br />
行 。 这 将 确 保 所 有 程 序 存 储 单 元 内 都 具 有 合 法 指 令 。<br />
5: 如 果 写 表 操 作 开 始 写 内 部 存 储 器 , 则 写 操 作 将 持 续 到 终 止 为 止 。<br />
4<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 291 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 23-2: PIC18FXXX 指 令 集 ( 续 )<br />
助 记 符 , 操 作 数 描 述 周 期<br />
MSb<br />
16 位 指 令 字<br />
LSb<br />
影 响 的 状 态 位<br />
备 注<br />
立 即 数 操 作<br />
ADDLW<br />
ANDLW<br />
IORLW<br />
LFSR<br />
MOVLB<br />
MOVLW<br />
MULLW<br />
RETLW<br />
SUBLW<br />
XORLW<br />
k<br />
k<br />
k<br />
f, k<br />
k<br />
k<br />
k<br />
k<br />
k<br />
k<br />
数 据 存 储 器 ↔ 程 序 存 储 器 操 作<br />
TBLRD*<br />
TBLRD*+<br />
TBLRD*-<br />
TBLRD+*<br />
TBLWT *<br />
TBLWT*+<br />
TBLWT*-<br />
TBLWT+*<br />
注<br />
立 即 数 与 WREG 相 加<br />
立 即 数 与 WREG 进 行 “ 与 ”<br />
运 算<br />
立 即 数 与 WREG 进 行 “ 或 ”<br />
运 算<br />
将 立 即 数 (12 位 ) 的 第 二 个<br />
字 传 送 到 FSRx 的 第 一 个 字<br />
将 立 即 数 传 送 到 BSR<br />
将 立 即 数 传 送 到 WREG<br />
立 即 数 与 WREG 相 乘<br />
返 回 时 将 立 即 数 写 入 WREG<br />
从 立 即 数 减 去 WREG<br />
立 即 数 与 WREG 进 行 “ 异<br />
或 ” 运 算<br />
读 表<br />
后 增 读 表<br />
后 减 读 表<br />
先 增 读 表<br />
写 表<br />
后 增 写 表<br />
后 减 写 表<br />
先 增 写 表<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
2<br />
2 (5)<br />
0000<br />
0000<br />
0000<br />
1110<br />
1111<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
1111<br />
1011<br />
1001<br />
1110<br />
0000<br />
0001<br />
1110<br />
1101<br />
1100<br />
1000<br />
1010<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
kkkk<br />
kkkk<br />
kkkk<br />
00ff<br />
kkkk<br />
0000<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
0000<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
kkkk<br />
1000<br />
1001<br />
1010<br />
1011<br />
1100<br />
1101<br />
1110<br />
1111<br />
C, DC, Z, OV, N<br />
Z, N<br />
Z, N<br />
无<br />
无<br />
无<br />
无<br />
无<br />
C, DC, Z, OV, N<br />
Z, N<br />
1: 当 修 改 端 口 寄 存 器 使 其 随 本 身 内 容 改 变 时 ( 例 如 , MOVF PORTB, 1, 0), 使 用 的 值 是 引 脚 上 的 当 前 值 。 例<br />
如 , 如 果 一 引 脚 配 置 为 输 入 , 其 数 据 锁 存 器 中 的 值 为 “1”, 但 此 时 外 部 器 件 将 该 引 脚 拉 为 低 电 平 , 则 写 回 数<br />
据 锁 存 器 的 数 据 值 将 是 “0”。<br />
2: 当 对 TMR0 寄 存 器 执 行 指 令 ( 并 且 , 可 能 的 话 d=1) 时 , 如 果 对 预 分 频 器 赋 值 , 则 将 清 零 该 预 分 频 器 。<br />
3: 如 果 程 序 计 数 器 (PC) 被 修 改 或 者 执 行 条 件 测 试 为 true, 则 执 行 指 令 需 要 两 个 指 令 周 期 。 第 二 个 周 期 执 行<br />
NOP 指 令 。<br />
4: 某 些 指 令 是 双 字 指 令 。 如 果 指 令 的 第 一 个 字 无 法 从 该 16 位 获 得 内 嵌 的 信 息 , 则 第 二 个 字 将 作 为 NOP 指 令 执<br />
行 。 这 将 确 保 所 有 程 序 存 储 单 元 内 都 具 有 合 法 指 令 。<br />
5: 如 果 写 表 操 作 开 始 写 内 部 存 储 器 , 则 写 操 作 将 持 续 到 终 止 为 止 。<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
无<br />
DS39616B_CN 第 292 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
23.2 指 令 集<br />
ADDLW 立 即 数 与 W 内 容 相 加<br />
语 法 : [ label ] ADDLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
(W)+k → W<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0000 1111 kkkk kkkk<br />
描 述 : W 的 内 容 与 8 位 立 即 数 k 相 加 ,<br />
结 果 存 入 W。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 : ADDLW 0x15<br />
指 令 执 行 前<br />
W = 0x10<br />
指 令 执 行 后<br />
W = 0x25<br />
ADDWF<br />
W 内 容 与 f 内 容 相 加<br />
语 法 : [ label ] ADDWF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W)+(f) → dest<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0010 01da ffff ffff<br />
描 述 :<br />
W 内 容 与 寄 存 器 f 内 容 相 加 。 如 果<br />
d 为 0, 结 果 存 储 在 W 中 。 如 果 d<br />
为 1, 结 果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 a 为 0, 选 择 快 速 存 取 RAM。<br />
如 果 a 为 1, 使 用 BSR。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : ADDWF REG, W<br />
指 令 执 行 前<br />
W = 0x17<br />
REG = 0xC2<br />
指 令 执 行 后<br />
W = 0xD9<br />
REG = 0xC2<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 293 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
ADDWFC W 内 容 、 f 内 容 和 进 位 位 相 加<br />
语 法 : [ label ] ADDWFC f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W)+(f)+(C) → dest<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0010 00da ffff ffff<br />
描 述 :<br />
W 内 容 、 进 位 标 志 位 和 数 据 存 储 单<br />
元 f 相 加 。 如 果 d 为 0, 结 果 存 储 在<br />
W 中 。 如 果 d 为 1, 结 果 存 储 在 数<br />
据 存 储 单 元 f 中 。 如 果 a 为 0, 选 择<br />
快 速 存 取 RAM。 如 果 a 为 1, 则 使<br />
用 BSR。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
ANDLW 立 即 数 与 W 内 容 进 行 “ 与 ” 运 算<br />
语 法 : [ label ] ANDLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
(W) .AND. k → W<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0000 1011 kkkk kkkk<br />
描 述 :<br />
W 的 内 容 与 8 位 立 即 数 k 进 行<br />
“ 与 ” 运 算 。 结 果 存 储 在 W 中 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 : ANDLW 0x5F<br />
指 令 执 行 前<br />
W = 0xA3<br />
指 令 执 行 后<br />
W = 0x03<br />
示 例 : ADDWFC REG, W<br />
指 令 执 行 前<br />
进 位 标 志 位 = 1<br />
REG = 0x02<br />
W = 0x4D<br />
指 令 执 行 后<br />
进 位 标 志 位 = 0<br />
REG = 0x02<br />
W = 0x50<br />
DS39616B_CN 第 294 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
ANDWF W 内 容 与 f 内 容 进 行 “ 与 ” 运 算<br />
语 法 : [ label ] ANDWF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) .AND. (f) → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0001 01da ffff ffff<br />
描 述 :<br />
W 的 内 容 与 寄 存 器 f 的 内 容 进 行<br />
“ 与 ” 运 算 。 如 果 d 为 0, 结 果 存 储<br />
在 W 中 。 如 果 d 为 1, 结 果 存 回 寄<br />
存 器 f ( 缺 省 )。 如 果 a 为 0, 选 择<br />
快 速 存 取 RAM。 如 果 a 为 1, 则 使<br />
用 BSR ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : ANDWF REG, W<br />
指 令 执 行 前<br />
W = 0x17<br />
REG = 0xC2<br />
指 令 执 行 后<br />
W = 0x02<br />
REG = 0xC2<br />
BC<br />
进 位 则 转 移<br />
语 法 : [ label ] BC n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 进 位 标 志 位 为 “1”<br />
(PC)+2+2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0010 nnnn nnnn<br />
描 述 : 如 果 进 位 标 志 位 为 1, 程 序 将 转 移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BC JUMP<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 进 位 标 志 位 = 1;<br />
PC = 地 址 (JUMP)<br />
如 果 进 位 标 志 位 = 0;<br />
PC = 地 址 (HERE+2)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 295 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BCF<br />
对 f 进 行 位 清 零<br />
语 法 : [ label ] BCF f,b[,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
0 ≤ b ≤ 7<br />
a ∈ [0,1]<br />
操 作 :<br />
0 → f<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1001 bbba ffff ffff<br />
描 述 :<br />
对 寄 存 器 f 中 的 bit 'b' 清 零 。 如 果 a<br />
为 0, 选 择 快 速 存 取 RAM, 忽 略<br />
BSR 的 值 。 如 果 a 为 1, 则 会 根 据<br />
BSR 的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
示 例 : BCF FLAG_REG, 7<br />
指 令 执 行 前<br />
FLAG_REG=0xC7<br />
指 令 执 行 后<br />
FLAG_REG=0x47<br />
BN<br />
为 负 则 转 移<br />
语 法 : [ label ] BN n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 负 标 志 位 为 “1”<br />
(PC) +2+2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0110 nnnn nnnn<br />
描 述 :<br />
如 果 负 标 志 位 为 “1”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BN Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 负 标 志 位 = 1;<br />
PC = 地 址 (Jump)<br />
如 果 负 标 志 位 = 0;<br />
PC = 地 址 (HERE+2)<br />
DS39616B_CN 第 296 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BNC<br />
无 进 位 则 转 移<br />
语 法 : [ label ] BNC n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 进 位 标 志 位 为 “0”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0011 nnnn nnnn<br />
描 述 :<br />
如 果 进 位 标 志 位 为 “0”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
BNN<br />
不 为 负 则 转 移<br />
语 法 : [ label ] BNN n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 负 标 志 位 为 “0”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0111 nnnn nnnn<br />
描 述 :<br />
如 果 负 标 志 位 为 “0”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BNC Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 进 位 标 志 位 = 0<br />
PC = 地 址 (Jump)<br />
如 果 进 位 标 志 位 = 1<br />
PC = 地 址 (HERE+2)<br />
示 例 : HERE BNN Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 负 标 志 位 = 0<br />
PC = 地 址 (Jump)<br />
如 果 负 标 志 位 = 1<br />
PC = 地 址 (HERE+2)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 297 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BNOV<br />
不 溢 出 则 转 移<br />
语 法 : [ label ] BNOV n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 溢 出 标 志 位 为 “0”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0101 nnnn nnnn<br />
描 述 :<br />
如 果 溢 出 标 志 位 为 “0”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
BNZ<br />
不 为 0 则 转 移<br />
语 法 : [ label ] BNZ n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 全 零 标 志 位 为 “0”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0001 nnnn nnnn<br />
描 述 :<br />
如 果 全 零 标 志 位 为 “0”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BNOV Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 溢 出 标 志 位 = 0<br />
PC = 地 址 (Jump)<br />
如 果 溢 出 标 志 位 = 1<br />
PC = 地 址 (HERE+2)<br />
示 例 : HERE BNZ Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 全 零 标 志 位 = 0<br />
PC = 地 址 (Jump)<br />
如 果 全 零 标 志 位 = 1<br />
PC = 地 址 (HERE+2)<br />
DS39616B_CN 第 298 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BRA<br />
无 条 件 转 移<br />
语 法 : [ label ] BRA n<br />
操 作 数 : -1024 ≤ n ≤ 1023<br />
操 作 :<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1101 0nnn nnnn nnnn<br />
描 述 :<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE BRA Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
PC = 地 址 (Jump)<br />
BSF<br />
对 f 进 行 位 置 位<br />
语 法 : [ label ] BSF f,b[,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
0 ≤ b ≤ 7<br />
a ∈ [0,1]<br />
操 作 :<br />
1 → f<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1000 bbba ffff ffff<br />
描 述 :<br />
将 寄 存 器 f 中 的 bit 'b' 置 1。 如 果 a<br />
为 0, 选 择 快 速 存 取 RAM, 忽 略<br />
BSR 的 值 。 如 果 a 为 1, 则 会 根 据<br />
BSR 的 值 选 择 存 储 区 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
示 例 : BSF FLAG_REG, 7<br />
指 令 执 行 前<br />
FLAG_REG = 0x0A<br />
指 令 执 行 后<br />
FLAG_REG = 0x8A<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 299 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BTFSC<br />
对 数 据 寄 存 器 进 行 位 测 试 , 为 0 则 跳<br />
过<br />
语 法 : [ label ] BTFSC f,b[,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
0 ≤ b ≤ 7<br />
a ∈ [0,1]<br />
操 作 :<br />
如 果 (f)=0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1011 bbba ffff ffff<br />
描 述 :<br />
如 果 寄 存 器 f 的 bit 'b' 为 0, 则 跳 过 下<br />
一 条 指 令 。<br />
如 果 bit 'b' 为 0, 则 丢 弃 下 一 条 指 令<br />
( 已 在 当 前 指 令 执 行 期 间 取 指 ) 而 执<br />
行 一 条 NOP 指 令 , 使 该 指 令 变 成 双 周<br />
期 指 令 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为 1,<br />
则 会 根 据 BSR 的 值 选 择 存 储 区 ( 缺<br />
省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
BTFSS<br />
对 数 据 寄 存 器 进 行 位 测 试 , 为 1 则 跳<br />
过<br />
语 法 : [ label ] BTFSS f,b[,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
0 ≤ b < 7<br />
a ∈ [0,1]<br />
操 作 :<br />
如 果 (f)=1 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1010 bbba ffff ffff<br />
描 述 :<br />
如 果 寄 存 器 f 的 bit 'b' 为 1, 则 跳 过<br />
下 一 条 指 令 。<br />
如 果 bit 'b 为 1, 则 丢 弃 下 一 条 指 令<br />
( 已 在 当 前 指 令 执 行 期 间 取 指 ), 转<br />
而 执 行 一 条 NOP 指 令 , 使 该 指 令 变 成<br />
双 周 期 指 令 。 如 果 a 为 0, 选 择 快 速<br />
存 取 RAM, 忽 略 BSR 的 值 。 如 果 a<br />
为 1, 则 会 根 据 BSR 的 值 选 择 存 储<br />
区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 :<br />
HERE<br />
FALSE<br />
TRUE<br />
BTFSC<br />
:<br />
:<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 FLAG = 0<br />
PC = 地 址 (TRUE)<br />
如 果 FLAG = 1<br />
PC = 地 址 (FALSE)<br />
FLAG, 1<br />
示 例 :<br />
HERE<br />
FALSE<br />
TRUE<br />
BTFSS<br />
:<br />
:<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 FLAG = 0<br />
PC = 地 址 (FALSE)<br />
如 果 FLAG = 1<br />
PC = 地 址 (TRUE)<br />
FLAG, 1<br />
DS39616B_CN 第 300 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BTG<br />
对 f 中 的 某 位 取 反<br />
语 法 : [ label ] BTG f,b[,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
0 ≤ b < 7<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → f<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0111 bbba ffff ffff<br />
描 述 :<br />
对 数 据 存 储 单 元 f 的 bit 'b' 取 反 。 如<br />
果 a 为 0, 选 择 快 速 存 取 RAM, 忽<br />
略 BSR 的 值 。 如 果 a 为 1, 则 会 根<br />
据 BSR 的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
示 例 : BTG PORTC, 4<br />
指 令 执 行 前 :<br />
PORTC = 0111 0101 [0x75]<br />
指 令 执 行 后 :<br />
PORTC = 0110 0101 [0x65]<br />
BOV<br />
溢 出 则 转 移<br />
语 法 : [ label ] BOV n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 溢 出 标 志 位 为 “1”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0100 nnnn nnnn<br />
描 述 :<br />
如 果 溢 出 标 志 位 为 “1”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BOV JUMP<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 溢 出 标 志 位 = 1<br />
PC = 地 址 (JUMP)<br />
如 果 溢 出 标 志 位 = 0<br />
PC = 地 址 (HERE+2)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 301 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
BZ<br />
为 0 则 转 移<br />
语 法 : [ label ] BZ n<br />
操 作 数 : -128 ≤ n ≤ 127<br />
操 作 : 如 果 全 零 标 志 位 为 “1”<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110 0000 nnnn nnnn<br />
描 述 :<br />
如 果 全 零 标 志 位 为 “1”, 程 序 将 转<br />
移 。<br />
二 进 制 补 码 “2n” 与 PC 相 加 。 因<br />
为 PC 要 先 递 增 才 能 取 下 一 条 指 令 ,<br />
因 此 新 地 址 将 为 PC+2+2n。 然 后 该<br />
指 令 成 为 一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
Q 周 期 操 作 :<br />
如 果 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 不 跳 转 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n 处 理 数 据 无 操 作<br />
示 例 : HERE BZ Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 全 零 标 志 位 = 1;<br />
PC = 地 址 (Jump)<br />
如 果 全 零 标 志 位 = 0;<br />
PC = 地 址 (HERE+2)<br />
CALL<br />
调 用 子 程 序<br />
语 法 :<br />
[ label ] CALL k [,s]<br />
操 作 数 : 0 ≤ k ≤ 1048575<br />
s ∈ [0,1]<br />
操 作 :<br />
(PC) + 4 → TOS,<br />
k → PC,<br />
如 果 s=1<br />
(W) → WS,<br />
(STATUS) → STATUSS,<br />
(BSR) → BSRS<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 :<br />
第 一 个 字 (k)<br />
第 二 个 字 (k)<br />
1110<br />
1111<br />
110s<br />
k 19 kkk<br />
k 7 kkk<br />
kkkk<br />
kkkk 0<br />
kkkk 8<br />
描 述 :<br />
可 在 2MB 存 储 空 间 内 进 行 子 程 序 调<br />
用 。 首 先 , 将 返 回 地 址 (PC+4) 压<br />
入 返 回 堆 栈 。 如 果 s=1, 则 W、<br />
STATUS 和 BSR 寄 存 器 也 会 被 压 入<br />
对 应 的 影 子 寄 存 器 WS、 STATUSS<br />
和 BSRS。 如 果 s=0, 则 不 会 进 行<br />
更 新 ( 缺 省 )。 然 后 , 将 20 位 的 k<br />
值 装 入 PC。 CALL 是 一 条 双<br />
周 期 指 令 。<br />
指 令 字 数 : 2<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读 立 即 数<br />
k<br />
将 PC 压 入<br />
堆 栈<br />
读 立 即 数<br />
k,<br />
写 入 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE CALL THERE,FAST<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
PC = 地 址 (THERE)<br />
TOS = 地 址 (HERE+4)<br />
WS = W<br />
BSRS = BSR<br />
STATUSS= STATUS<br />
DS39616B_CN 第 302 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
CLRF<br />
f 清 零<br />
语 法 : [ label ] CLRF f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]]<br />
操 作 :<br />
000h → f<br />
1 → Z<br />
受 影 响 的 状 态 位 : Z<br />
机 器 码 : 0110 101a ffff ffff<br />
描 述 :<br />
清 零 指 定 寄 存 器 的 内 容 。 如 果 a 为<br />
0, 选 择 快 速 存 取 RAM, 忽 略 BSR<br />
的 值 。 如 果 a 为 1, 则 会 根 据 BSR<br />
的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
CLRWDT<br />
语 法 :<br />
操 作 数 :<br />
操 作 :<br />
清 零 看 门 狗 定 时 器<br />
受 影 响 的 状 态 位 : TO、 PD<br />
[ label ] CLRWDT<br />
无<br />
000h → WDT,<br />
000h → WDT 后 分 频 器 ,<br />
1 → TO,<br />
1 → PD<br />
机 器 码 : 0000 0000 0000 0100<br />
描 述 :<br />
CLRWDT 指 令 复 位 看 门 狗 定 时 器 。 而<br />
且 还 复 位 WDT 的 后 分 频 器 。 状 态<br />
位 TO 和 PD 被 置 位 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 处 理 数 据 无 操 作<br />
示 例 : CLRF FLAG_REG<br />
指 令 执 行 前<br />
FLAG_REG = 0x5A<br />
指 令 执 行 后<br />
FLAG_REG = 0x00<br />
示 例 :<br />
CLRWDT<br />
指 令 执 行 前<br />
WDT 计 数 器 = <br />
指 令 执 行 后<br />
WDT 计 数 器 = 0x00<br />
WDT 后 分 频 器 = 0<br />
TO = 1<br />
PD = 1<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 303 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
COMF<br />
f 取 反<br />
语 法 : [ label ] COMF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 : (f) → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0001 11da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 取 反 。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。 如 果 a 为<br />
0, 选 择 快 速 存 取 RAM, 忽 略 BSR<br />
的 值 。 如 果 a 为 1, 则 会 根 据 BSR<br />
的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : COMF REG, W<br />
指 令 执 行 前<br />
REG = 0x13<br />
指 令 执 行 后<br />
REG = 0x13<br />
W = 0xEC<br />
CPFSEQ 比 较 f 和 W, 如 果 f = W 则 跳 过<br />
语 法 : [ label ] CPFSEQ f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – (W),<br />
如 果 (f) = (W) 则 跳 过<br />
( 无 符 号 比 较 )<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 001a ffff ffff<br />
描 述 :<br />
通 过 执 行 无 符 号 减 法 比 较 数 据 存 储<br />
单 元 f 和 W 的 内 容 。<br />
如 果 f 的 内 容 等 于 W 的 内 容 , 则 所<br />
取 的 指 令 会 被 丢 弃 , 转 而 执 行 一 个<br />
NOP, 从 而 使 该 指 令 变 成 双 周 期 指<br />
令 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE CPFSEQ REG<br />
NEQUAL :<br />
EQUAL :<br />
指 令 执 行 前<br />
PC 地 址 = HERE<br />
W = <br />
REG = <br />
指 令 执 行 后<br />
如 果 REG = W;<br />
PC = 地 址 (EQUAL)<br />
如 果 REG ≠ W;<br />
PC = 地 址 (NEQUAL)<br />
DS39616B_CN 第 304 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
CPFSGT 比 较 f 和 W, 如 果 f > W 则 跳 过<br />
语 法 : [ label ] CPFSGT f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) − (W),<br />
如 果 (f) > (W) 则 跳 过<br />
( 无 符 号 比 较 )<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 010a ffff ffff<br />
描 述 :<br />
通 过 执 行 无 符 号 减 法 比 较 数 据 存 储<br />
单 元 f 和 W 的 内 容 。<br />
如 果 f 的 内 容 大 于 W 的 内 容 , 则 所<br />
取 的 指 令 会 被 丢 弃 , 转 而 执 行 一 个<br />
NOP, 从 而 使 该 指 令 变 成 双 周 期 指<br />
令 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE CPFSGT REG<br />
NGREATER :<br />
GREATER :<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
W = <br />
指 令 执 行 后<br />
如 果 REG > W;<br />
PC = 地 址 (GREATER)<br />
如 果 REG ≤ W;<br />
PC = 地 址 (NGREATER)<br />
CPFSLT 比 较 f 和 W, 如 果 f < W 则 跳 过<br />
语 法 : [ label ] CPFSLT f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – (W),<br />
如 果 (f) < (W) 则 跳 过<br />
( 无 符 号 比 较 )<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 000a ffff ffff<br />
描 述 :<br />
通 过 执 行 无 符 号 减 法 比 较 数 据 存 储<br />
单 元 f 和 W 的 内 容 。<br />
如 果 f 的 内 容 小 于 W 的 内 容 , 则 所<br />
取 的 指 令 会 被 丢 弃 , 转 而 执 行 一 个<br />
NOP, 从 而 使 该 指 令 变 成 双 周 期 指<br />
令 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM。 如 果 a 为 1, 则 使 用 BSR<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE CPFSLT REG<br />
NLESS :<br />
LESS :<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
W = <br />
指 令 执 行 后<br />
如 果 REG < W;<br />
PC = 地 址 (LESS)<br />
如 果 REG ≥ W;<br />
PC = 地 址 (NLESS)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 305 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
DAW<br />
语 法 :<br />
操 作 数 :<br />
操 作 :<br />
十 进 制 调 整 W 寄 存 器<br />
[ label ] DAW<br />
无<br />
如 果 [W >9] 或 [DC = 1], 则<br />
(W) + 6 → W;<br />
否 则<br />
(W) → W;<br />
如 果 [W >9] 或 [C = 1], 则<br />
(W) + 6 → W;<br />
否 则<br />
(W) → W;<br />
受 影 响 的 状 态 位 : C、 DC<br />
机 器 码 : 0000 0000 0000 0111<br />
描 述 :<br />
DAW 调 整 W 内 的 8 位 值 , 这 8 位 值 为<br />
前 面 两 个 变 量 ( 格 式 均 为 紧 凑 型<br />
BCD 格 式 ) 的 和 , 并 产 生 正 确 的 紧<br />
凑 型 BCD 结 果 。 进 位 标 志 位 可 用<br />
DAW 指 令 设 置 , 与 执 行 DAW 指 令 前 的<br />
该 位 设 置 无 关 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 W 处 理 数 据 写 W<br />
示 例 1:<br />
指 令 执 行 前<br />
DAW<br />
W = 0xA5<br />
C = 0<br />
DC = 0<br />
指 令 执 行 后<br />
W = 0x05<br />
C = 1<br />
DC = 0<br />
DECF f 减 1<br />
语 法 : [ label ] DECF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – 1 → dest<br />
受 影 响 的 状 态 位 : C、 DC、 N、 OV、 Z<br />
机 器 码 : 0000 01da ffff ffff<br />
描 述 :<br />
寄 存 器 f 内 容 减 1。 如 果 d 为 0, 结<br />
果 存 储 在 W 中 。 如 果 d 为 1, 结 果<br />
存 回 寄 存 器 f ( 缺 省 )。 如 果 a 为<br />
0, 选 择 快 速 存 取 RAM, 忽 略 BSR<br />
的 值 。 如 果 a 为 1, 则 会 根 据 BSR<br />
的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : DECF CNT,<br />
指 令 执 行 前<br />
CNT = 0x01<br />
Z = 0<br />
指 令 执 行 后<br />
CNT = 0x00<br />
Z = 1<br />
示 例 2:<br />
指 令 执 行 前<br />
W = 0xCE<br />
C = 0<br />
DC = 0<br />
指 令 执 行 后<br />
W = 0x34<br />
C = 1<br />
DC = 0<br />
DS39616B_CN 第 306 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
DECFSZ f 减 1, 为 0 则 跳 过<br />
语 法 : [ label ] DECFSZ f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – 1 → dest,<br />
如 果 结 果 为 0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0010 11da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 减 1。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 结 果 为 0, 则 已 经 取 指 的 下 一<br />
条 指 令 被 丢 弃 , 转 而 执 行 一 条<br />
NOP, 使 该 指 令 变 成 双 周 期 指 令 。<br />
如 果 a 为 0, 选 择 快 速 存 取 RAM,<br />
忽 略 BSR 的 值 。 如 果 a 为 1, 则 会<br />
根 据 BSR 的 值 选 择 存 储 区 ( 缺<br />
省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读<br />
寄 存 器 f<br />
处 理 数 据<br />
写 目 标<br />
寄 存 器<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE DECFSZ CNT<br />
GOTO LOOP<br />
CONTINUE<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
CNT = CNT - 1<br />
如 果 CNT = 0;<br />
PC = 地 址 (CONTINUE)<br />
如 果 CNT ≠ 0;<br />
PC = 地 址 (HERE+2)<br />
DCFSNZ f 减 1, 非 0 则 跳 过<br />
语 法 : [ label ] DCFSNZ f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – 1 → dest,<br />
如 果 结 果 不 为 0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0100 11da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 减 1。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 结 果 不 为 0, 则 已 经 取 指 的 下<br />
一 条 指 令 被 丢 弃 , 转 而 执 行 一 条<br />
NOP, 使 该 指 令 变 成 双 周 期 指 令 。<br />
如 果 a 为 0, 选 择 快 速 存 取 RAM,<br />
忽 略 BSR 的 值 。 如 果 a 为 1, 则 会<br />
根 据 BSR 的 值 选 择 存 储 区 ( 缺<br />
省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读<br />
寄 存 器 f<br />
处 理 数 据<br />
写 目 标<br />
寄 存 器<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE DCFSNZ TEMP<br />
ZERO :<br />
NZERO :<br />
指 令 执 行 前<br />
TEMP = <br />
指 令 执 行 后<br />
TEMP = TEMP-1,<br />
如 果 TEMP = 0;<br />
PC = 地 址 (ZERO)<br />
如 果 TEMP ≠ 0;<br />
PC = 地 址 (NZERO)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 307 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
GOTO<br />
无 条 件 转 移<br />
语 法 : [ label ] GOTO k<br />
操 作 数 : 0 ≤ k ≤ 1048575<br />
操 作 :<br />
k → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 :<br />
第 一 个 字 (k)<br />
第 二 个 字 (k)<br />
1110<br />
1111<br />
1111<br />
k 19 kkk<br />
k 7 kkk<br />
kkkk<br />
kkkk 0<br />
kkkk 8<br />
描 述 :<br />
GOTO 允 许 无 条 件 转 移 到 整 个 2MB 存<br />
储 空 间 中 的 任 何 地 方 。 将 20 位 的 k<br />
值 装 入 PC。 GOTO 永 远 是 双<br />
周 期 指 令 。<br />
指 令 字 数 : 2<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读 立 即 数<br />
k<br />
无<br />
操 作<br />
读 立 即 数<br />
k,<br />
写 入 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 :<br />
GOTO THERE<br />
指 令 执 行 后<br />
PC = 地 址 (THERE)<br />
INCF f 增 1<br />
语 法 : [ label ] INCF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) + 1 → dest<br />
受 影 响 的 状 态 位 : C、 DC、 N、 OV、 Z<br />
机 器 码 : 0010 10da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 增 1。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。 如 果 a 为<br />
0, 选 择 快 速 存 取 RAM, 忽 略 BSR<br />
的 值 。 如 果 a 为 1, 则 会 根 据 BSR<br />
的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : INCF CNT,<br />
指 令 执 行 前<br />
CNT = 0xFF<br />
Z = 0<br />
C = <br />
DC = <br />
指 令 执 行 后<br />
CNT = 0x00<br />
Z = 1<br />
C = 1<br />
DC = 1<br />
DS39616B_CN 第 308 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
INCFSZ<br />
f 增 1, 为 0 则 跳 过<br />
INFSNZ<br />
f 增 1, 非 0 则 跳 过<br />
语 法 : [ label ] INCFSZ f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) + 1 → dest,<br />
如 果 结 果 为 0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0011 11da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 增 1。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 结 果 为 0, 则 已 经 取 指 的 下 一<br />
条 指 令 被 丢 弃 , 转 而 执 行 一 条<br />
NOP, 使 该 指 令 变 成 双 周 期 指 令 。<br />
如 果 a 为 0, 选 择 快 速 存 取 RAM,<br />
忽 略 BSR 的 值 。 如 果 a 为 1, 则 会<br />
根 据 BSR 的 值 选 择 存 储 区 ( 缺<br />
省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读<br />
寄 存 器 f<br />
处 理 数 据<br />
写 目 标<br />
寄 存 器<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 , 而 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
语 法 : [ label ] INFSNZ f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) + 1 → dest,<br />
如 果 结 果 不 为 0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0100 10da ffff ffff<br />
描 述 : 寄 存 器 f 的 内 容 增 1。 如 果 d 为 0,<br />
结 果 存 储 在 W 中 。 如 果 d 为 1, 结<br />
果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 结 果 不 为 0, 则 已 经 取 指 的 下<br />
一 条 指 令 被 丢 弃 , 转 而 执 行 一 条<br />
NOP, 使 该 指 令 变 成 双 周 期 指 令 。<br />
如 果 a 为 0, 选 择 快 速 存 取 RAM,<br />
忽 略 BSR 的 值 。 如 果 a 为 1, 则 会<br />
根 据 BSR 的 值 选 择 存 储 区 ( 缺<br />
省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读<br />
寄 存 器 f<br />
处 理 数 据<br />
写 目 标<br />
寄 存 器<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 , 而 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : HERE INCFSZ CNT<br />
NZERO :<br />
ZERO :<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
CNT = CNT +1<br />
如 果 CNT = 0;<br />
PC = 地 址 (ZERO)<br />
如 果 CNT ≠ 0;<br />
PC = 地 址 (NZERO)<br />
示 例 : HERE INFSNZ REG<br />
ZERO<br />
NZERO<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
REG = REG+1<br />
如 果 REG≠ 0;<br />
PC = 地 址 (NZERO)<br />
如 果 REG= 0;<br />
PC = 地 址 (ZERO)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 309 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
IORLW<br />
立 即 数 与 W 内 容 进 行 “ 或 ” 运 算<br />
语 法 : [ label ] IORLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
(W) .OR. k → W<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0000 1001 kkkk kkkk<br />
描 述 :<br />
W 的 内 容 与 8 位 立 即 数 k 进 行<br />
“ 或 ” 运 算 。 结 果 存 储 在 W 中 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 : IORLW 0x35<br />
指 令 执 行 前<br />
W = 0x9A<br />
指 令 执 行 后<br />
W = 0xBF<br />
IORWF<br />
W 内 容 与 f 内 容 进 行 “ 或 ” 运 算<br />
语 法 : [ label ] IORWF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) .OR. (f) → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0001 00da ffff ffff<br />
描 述 :<br />
W 的 内 容 与 寄 存 器 f 的 内 容 进 行<br />
“ 或 ” 运 算 。 如 果 d 为 0, 结 果 存 储<br />
在 W 中 。 如 果 d 为 1, 结 果 存 回 寄<br />
存 器 f ( 缺 省 )。 如 果 a 为 0, 选 择<br />
快 速 存 取 RAM, 忽 略 BSR 的 值 。<br />
如 果 a 为 1, 则 会 根 据 BSR 的 值 选<br />
择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 :<br />
IORWF RESULT, W<br />
指 令 执 行 前<br />
RESULT = 0x13<br />
W = 0x91<br />
指 令 执 行 后<br />
RESULT = 0x13<br />
W = 0x93<br />
DS39616B_CN 第 310 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
LFSR<br />
载 入 FSR<br />
语 法 : [ label ] LFSR f,k<br />
操 作 数 : 0 ≤ f ≤ 2<br />
0 ≤ k ≤ 4095<br />
操 作 :<br />
k → FSRf<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1110<br />
1111<br />
1110<br />
0000<br />
00ff<br />
k 7 kkk<br />
k 11 kkk<br />
kkkk<br />
描 述 :<br />
12 位 立 即 数 k 装 入 f 指 向 的 文 件<br />
选 择 寄 存 器 。<br />
指 令 字 数 : 2<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
译 码<br />
读 立 即 数 k<br />
的 MSB<br />
读 立 即 数 k<br />
的 LSB<br />
处 理 数 据<br />
处 理 数 据<br />
示 例 :<br />
LFSR 2, 0x3AB<br />
指 令 执 行 后<br />
FSR2H = 0x03<br />
FSR2L = 0xAB<br />
将 立 即 数 k<br />
的 MSB 写 入<br />
FSRfH<br />
将 立 即 数 k<br />
的 LSB 入<br />
SRfL<br />
MOVF<br />
传 送 f<br />
语 法 : [ label ] MOVF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
f → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0101 00da ffff ffff<br />
描 述 :<br />
根 据 d 的 状 态 , 将 寄 存 器 f 的 内 容<br />
送 入 目 标 寄 存 器 。 如 果 d 为 0, 结<br />
果 存 储 在 W 中 。 如 果 d 为 1, 结 果<br />
存 回 寄 存 器 f ( 缺 省 )。 单 元 f 可 以<br />
位 于 256 字 节 存 储 区 中 的 任 何 地<br />
方 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 W<br />
示 例 : MOVF REG, W<br />
指 令 执 行 前<br />
REG = 0x22<br />
W = 0xFF<br />
指 令 执 行 后<br />
REG = 0x22<br />
W = 0x22<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 311 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
MOVFF<br />
将 f s 的 内 容 送 入 f d<br />
MOVLB<br />
将 立 即 数 传 送 到 BSR 的 低 4 位<br />
语 法 : [ label ] MOVFF f s , f d<br />
操 作 数 : 0 ≤ f s ≤ 4095<br />
0 ≤ f d ≤ 4095<br />
操 作 :<br />
(f s )→ f d<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 :<br />
第 一 个 字 ( 源 )<br />
第 二 个 字 ( 目 标 )<br />
描 述 :<br />
1100<br />
1111<br />
ffff<br />
ffff<br />
ffff<br />
ffff<br />
ffff s<br />
ffff d<br />
源 寄 存 器 f s 的 内 容 被 送 入 目 标 寄 存<br />
器 f d 。 源 f s 可 以 是 4096 字 节 数 据<br />
空 间 (000h 到 FFFh) 中 的 任 何 存<br />
储 单 元 , 目 标 f d 也 可 以 是 000h 到<br />
FFFh 中 的 任 何 存 储 单 元 。<br />
源 或 目 标 都 可 以 是 W ( 这 是 个 有 用<br />
的 特 殊 情 况 )。<br />
MOVFF 可 将 数 据 存 储 单 元 传 递 到 外<br />
设 寄 存 器 ( 例 如 发 送 缓 冲 器 或 I/O<br />
端 口 ), 这 一 点 特 别 有 用 。<br />
MOVFF 指 令 中 的 目 标 寄 存 器 不 能 是<br />
PCL、 TOSU、 TOSH 或 TOSL。<br />
当 允 许 任 何 中 断 时 , 不 应 当 使 用<br />
MOVFF 指 令 来 修 改 中 断 设 置 ( 参 见<br />
第 91 页 上 的 注 )。<br />
语 法 : [ label ] MOVLB k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
k → BSR<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 0001 kkkk kkkk<br />
描 述 :<br />
8 位 立 即 数 k 装 入 存 储 区 选 择 寄<br />
存 器 (BSR)。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 将<br />
立 即 数 k 写<br />
入 BSR<br />
示 例 : MOVLB 5<br />
指 令 执 行 前<br />
BSR 寄 存 器 = 0x02<br />
指 令 执 行 后<br />
BSR 寄 存 器 = 0x05<br />
指 令 字 数 : 2<br />
指 令 周 期 : 2 (3)<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 “f”<br />
( 源 )<br />
处 理 数 据 无<br />
操 作<br />
译 码<br />
无<br />
操 作<br />
无 哑 读 取<br />
无<br />
操 作<br />
写<br />
寄 存 器 “f”<br />
( 目 标 )<br />
示 例 : MOVFF REG1, REG2<br />
指 令 执 行 前<br />
REG1 = 0x33<br />
REG2 = 0x11<br />
指 令 执 行 后<br />
REG1 = 0x33,<br />
REG2 = 0x33<br />
DS39616B_CN 第 312 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
MOVLW 将 立 即 数 传 送 到 W<br />
语 法 : [ label ] MOVLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
k → W<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 1110 kkkk kkkk<br />
描 述 : 8 位 立 即 数 k 装 入 W。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 : MOVLW 0x5A<br />
指 令 执 行 后<br />
W = 0x5A<br />
MOVWF 将 W 的 内 容 传 送 到 f<br />
语 法 : [ label ] MOVWF f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) → f<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 111a ffff ffff<br />
描 述 :<br />
将 数 据 从 W 传 送 到 寄 存 器 f。 单 元 f<br />
可 以 位 于 256 字 节 存 储 区 中 的 任 何<br />
地 方 。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
示 例 : MOVWF REG<br />
指 令 执 行 前<br />
W = 0x4F<br />
REG = 0xFF<br />
指 令 执 行 后<br />
W = 0x4F<br />
REG = 0x4F<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 313 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
MULLW 立 即 数 与 W 相 乘<br />
语 法 : [ label ] MULLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
(W) x k → PRODH:PRODL<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 1101 kkkk kkkk<br />
描 述 :<br />
W 的 内 容 与 8 位 立 即 数 k 执 行<br />
无 符 号 乘 法 运 算 。 16 位 结 果 存 储<br />
在 PRODH:PRODL 寄 存 器 对<br />
中 。 PRODH 包 含 高 字 节 。<br />
W 不 改 变 。<br />
不 影 响 任 何 状 态 标 志 位 。<br />
请 注 意 此 操 作 不 可 能 发 生 溢 出 或<br />
进 位 。 结 果 有 可 能 为 零 , 但 不 会<br />
被 检 测 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
立 即 数 k<br />
处 理 数 据 写<br />
寄 存 器 对<br />
PRODH:<br />
PRODL<br />
示 例 : MULLW 0xC4<br />
指 令 执 行 前<br />
W = 0xE2<br />
PRODH = <br />
PRODL = <br />
指 令 执 行 后<br />
W = 0xE2<br />
PRODH = 0xAD<br />
PRODL = 0x08<br />
MULWF W 与 f 相 乘<br />
语 法 : [ label ] MULWF f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) x (f) → PRODH:PRODL<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 001a ffff ffff<br />
描 述 :<br />
W 的 内 容 与 数 据 寄 存 单 元 f 执 行<br />
无 符 号 乘 法 运 算 。 16 位 结 果 存 储<br />
在 PRODH:PRODL 寄 存 器 对<br />
中 。 PRODH 包 含 高 字 节 。<br />
W 和 f 都 不 改 变 。<br />
所 有 状 态 标 志 位 都 不 受 影 响 。<br />
请 注 意 此 操 作 不 可 能 发 生 溢 出 或<br />
进 位 。 结 果 有 可 能 为 零 , 但 不 会<br />
被 检 测 到 。 如 果 a 为 0, 选 择 快<br />
速 存 取 RAM, 忽 略 BSR 的 值 。<br />
如 果 a 为 1, 则 会 根 据 BSR 的 值<br />
选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写<br />
寄 存 器 对<br />
PRODH:<br />
PRODL<br />
示 例 : MULWF REG<br />
指 令 执 行 前<br />
W = 0xC4<br />
REG = 0xB5<br />
PRODH = <br />
PRODL = <br />
指 令 执 行 后<br />
W = 0xC4<br />
REG = 0xB5<br />
PRODH = 0x8A<br />
PRODL = 0x94<br />
DS39616B_CN 第 314 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
NEGF<br />
f 取 补<br />
语 法 : [ label ] NEGF f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
(f)+1 → f<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0110 110a ffff ffff<br />
描 述 :<br />
对 单 元 f 取 二 进 制 补 码 。 结 果 存 储<br />
在 数 据 存 储 单 元 f 中 。 如 果 a<br />
为 0, 选 择 快 速 存 取 RAM, 忽 略<br />
BSR 的 值 。 如 果 a 为 1, 则 会 根 据<br />
BSR 的 值 选 择 存 储 区 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
NOP<br />
空 操 作<br />
语 法 :<br />
[ label ] NOP<br />
操 作 数 : 无<br />
操 作 :<br />
无 操 作<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000<br />
1111<br />
0000<br />
xxxx<br />
0000<br />
xxxx<br />
0000<br />
xxxx<br />
描 述 : 无 操 作 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 无 操 作 无 操 作<br />
示 例 :<br />
无 。<br />
示 例 : NEGF REG, 1<br />
指 令 执 行 前<br />
REG = 0011 1010 [0x3A]<br />
指 令 执 行 后<br />
REG = 1100 0110 [0xC6]<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 315 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
POP<br />
弹 出 返 回 堆 栈 栈 顶 内 容<br />
语 法 : [ label ] POP<br />
操 作 数 : 无<br />
操 作 :<br />
(TOS) → 位 存 储 桶<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 0000 0000 0110<br />
描 述 :<br />
从 返 回 堆 栈 取 出 TOS 值 并 丢 弃 。 然<br />
后 , 前 一 个 压 入 返 回 堆 栈 的 值 成 为<br />
TOS 值 。<br />
此 指 令 可 以 让 用 户 正 确 管 理 返 回 堆<br />
栈 以 组 成 软 件 堆 栈 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 弹 出 TOS 值 无 操 作<br />
示 例 :<br />
POP<br />
GOTO<br />
NEW<br />
指 令 执 行 前<br />
TOS = 0x0031A2<br />
堆 栈 ( 下 一 级 ) = 0x014332<br />
指 令 执 行 后<br />
TOS = 0x014332<br />
PC = NEW<br />
PUSH<br />
将 内 容 压 入 返 回 堆 栈 栈 顶<br />
语 法 : [ label ] PUSH<br />
操 作 数 : 无<br />
操 作 :<br />
(PC+2) → TOS<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 0000 0000 0101<br />
描 述 :<br />
PC+2 被 压 入 返 回 堆 栈 的 栈 顶 。 原<br />
先 的 TOS 值 被 压 入 堆 栈 的 下 一 级 。<br />
此 指 令 允 许 通 过 修 改 TOS 并 将 其 压<br />
入 返 回 堆 栈 来 实 现 软 件 堆 栈 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 将 PC+2 压<br />
入 返 回 堆 栈<br />
无 操 作 无 操 作<br />
示 例 :<br />
PUSH<br />
指 令 执 行 前<br />
TOS = 0x00345A<br />
PC = 0x000124<br />
指 令 执 行 后<br />
PC = 0x000126<br />
TOS = 0x000126<br />
堆 栈 ( 下 一 级 ) = 0x00345A<br />
DS39616B_CN 第 316 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RCALL<br />
相 对 调 用<br />
语 法 : [ label ] RCALL n<br />
操 作 数 : -1024 ≤ n ≤ 1023<br />
操 作 :<br />
(PC) + 2 → TOS,<br />
(PC) + 2 + 2n → PC<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 1101 1nnn nnnn nnnn<br />
描 述 :<br />
从 当 前 单 元 跳 转 ( 最 多 1KB) 来 调<br />
用 子 程 序 。 首 先 , 将 返 回 地 址<br />
(PC+2) 压 入 堆 栈 。 然 后 , 将 二 进<br />
制 补 码 “2n” 与 PC 相 加 。 因 为<br />
PC 要 先 递 增 才 能 取 下 一 条 指 令 , 因<br />
此 新 地 址 将 为 PC+2+2n。 此 指 令 是<br />
一 条 双 周 期 指 令 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 n,<br />
将 PC 压 入<br />
堆 栈<br />
处 理 数 据 写 PC<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
RESET<br />
复 位<br />
语 法 : [ label ] RESET<br />
操 作 数 : 无<br />
操 作 :<br />
将 所 有 受 MCLR 复 位 影 响 的 寄 存 器<br />
和 标 志 位 复 位 。<br />
受 影 响 的 状 态 位 : 所 有<br />
机 器 码 : 0000 0000 1111 1111<br />
描 述 :<br />
软 件 可 使 用 此 指 令 执 行 MCLR 复<br />
位 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 开 始 复 位 无 操 作 无 操 作<br />
示 例 :<br />
RESET<br />
指 令 执 行 后<br />
寄 存 器 = 复 位 值<br />
标 志 位 * = 复 位 值<br />
示 例 : HERE RCALL Jump<br />
指 令 执 行 前<br />
PC = 地 址 (HERE)<br />
指 令 执 行 后<br />
PC = 地 址 (Jump)<br />
TOS = 地 址 (HERE+2)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 317 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RETFIE<br />
中 断 返 回<br />
语 法 : [ label ] RETFIE [s]<br />
操 作 数 : s ∈ [0,1]<br />
操 作 :<br />
(TOS) → PC,<br />
1 → GIE/GIEH 或 PEIE/GIEL,<br />
如 果 s=1<br />
(WS) → W,<br />
(STATUSS) → STATUS,<br />
(BSRS) → BSR,<br />
PCLATU 和 PCLATH 都 不 改 变 。<br />
受 影 响 的 状 态 位 : GIE/GIEH 和 PEIE/GIEL。<br />
机 器 码 : 0000 0000 0001 000s<br />
描 述 :<br />
从 中 断 返 回 。 执 行 出 栈 操 作 , 将 栈<br />
顶 (Top-of-Stack, TOS) 单 元 内<br />
容 装 入 PC。 通 过 将 高 / 低 优 先 级 全<br />
局 中 断 使 能 位 置 位 , 可 以 允 许 中<br />
断 。 如 果 s=1, 则 将 影 子 寄 存 器<br />
WS、STATUSS 和 BSRS 的 内 容 装<br />
入 对 应 的 寄 存 器 W、 STATUS 和<br />
BSR。 如 果 s=0, 则 不 更 新 这 些 寄<br />
存 器 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 无 操 作 从 堆 栈 弹 出<br />
PC 值 ,<br />
将 GIEH 或<br />
GIEL 置 位<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 : RETFIE 1<br />
中 断 后<br />
PC = TOS<br />
W = WS<br />
BSR = BSRS<br />
STATUS = STATUSS<br />
GIE/GIEH、 PEIE/GIEL = 1<br />
RETLW<br />
返 回 时 将 立 即 数 写 入 W<br />
语 法 : [ label ] RETLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 : k → W,<br />
(TOS) → PC,<br />
PCLATU 和 PCLATH 都 不 改 变<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 1100 kkkk kkkk<br />
描 述 :<br />
将 8 位 立 即 数 k 装 入 W。 将 栈 顶 单<br />
元 内 容 ( 返 回 地 址 ) 装 入 程 序 计 数<br />
器 。 高 位 地 址 锁 存 器 (PCLATH)<br />
保 持 不 变 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
立 即 数 k<br />
处 理 数 据 从 堆 栈 弹 出<br />
PC 值 ,<br />
写 W<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
示 例 :<br />
CALL TABLE ; W contains table<br />
; offset value<br />
; W now has<br />
; table value<br />
:<br />
TABLE<br />
ADDWF PCL ; W = offset<br />
RETLW k0 ; Begin table<br />
RETLW k1 ;<br />
:<br />
:<br />
RETLW kn ; End of table<br />
指 令 执 行 前<br />
W = 0x07<br />
指 令 执 行 后<br />
W = kn 值<br />
DS39616B_CN 第 318 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RETURN 从 子 程 序 返 回<br />
语 法 : [ label ] RETURN [s]<br />
操 作 数 : s ∈ [0,1]<br />
操 作 :<br />
(TOS)→ PC,<br />
如 果 s=1<br />
(WS) → W,<br />
(STATUSS) → STATUS,<br />
(BSRS) → BSR,<br />
PCLATU 和 PCLATH 都 不 改 变<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0000 0000 0001 001s<br />
描 述 :<br />
从 子 程 序 返 回 。 执 行 出 栈 操 作 , 将<br />
栈 顶 (TOS) 单 元 内 容 装 入 程 序 计<br />
数 器 。 如 果 s=1, 则 将 影 子 寄 存 器<br />
WS、STATUSS 和 BSRS 的 内 容 装<br />
入 对 应 的 寄 存 器 :W、 STATUS 和<br />
BSR。 如 果 s=0, 则 不 更 新 这 些 寄<br />
存 器 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 处 理 数 据 从 堆 栈 弹 出<br />
PC 值<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
RLCF<br />
带 进 位 循 环 左 移 f<br />
语 法 : [ label ] RLCF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → dest,<br />
(f) → C,<br />
(C) → dest<br />
受 影 响 的 状 态 位 : C、 N、 Z<br />
机 器 码 : 0011 01da ffff ffff<br />
描 述 :<br />
寄 存 器 f 的 内 容 带 进 位 标 志 位 循 环<br />
左 移 1 位 。 如 果 d 为 0, 结 果 存 储<br />
在 W 中 。 如 果 d 为 1, 结 果 存 回 寄<br />
存 器 f ( 缺 省 )。 如 果 a 为 0, 选 择<br />
快 速 存 取 RAM, 忽 略 BSR 的 值 。<br />
如 果 a 为 1, 则 会 根 据 BSR 的 值 选<br />
择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
C<br />
寄 存 器 f<br />
示 例 :<br />
中 断 后<br />
PC<br />
=TOS<br />
RETURN<br />
示 例 : RLCF REG, W<br />
指 令 执 行 前<br />
REG = 1110 0110<br />
C = 0<br />
指 令 执 行 后<br />
REG = 1110 0110<br />
W = 1100 1100<br />
C = 1<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 319 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RLNCF 循 环 左 移 f ( 无 进 位 )<br />
语 法 : [ label ] RLNCF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → dest,<br />
(f) → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0100 01da ffff ffff<br />
描 述 :<br />
寄 存 器 f 的 内 容 循 环 左 移 1 位 。 如<br />
果 d 为 0, 结 果 存 储 在 W 中 。 如 果<br />
d 为 1, 结 果 存 回 寄 存 器 f ( 缺<br />
省 )。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
寄 存 器 f<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : RLNCF REG<br />
指 令 执 行 前<br />
REG = 1010 1011<br />
指 令 执 行 后<br />
REG = 0101 0111<br />
RRCF<br />
带 进 位 循 环 右 移 f<br />
语 法 : [ label ] RRCF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → dest,<br />
(f) → C,<br />
(C) → dest<br />
受 影 响 的 状 态 位 : C、 N、 Z<br />
机 器 码 : 0011 00da ffff ffff<br />
描 述 :<br />
寄 存 器 f 的 内 容 带 进 位 标 志 位 循 环<br />
右 移 1 位 。 如 果 d 为 0, 结 果 存 储<br />
在 W 中 。 如 果 d 为 1, 结 果 存 回 寄<br />
存 器 f ( 缺 省 )。 如 果 a 为 0, 选 择<br />
快 速 存 取 RAM, 忽 略 BSR 的 值 。<br />
如 果 a 为 1, 则 会 根 据 BSR 的 值 选<br />
择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : RRCF REG, W<br />
指 令 执 行 前<br />
REG = 1110 0110<br />
C = 0<br />
指 令 执 行 后<br />
REG = 1110 0110<br />
W = 0111 0011<br />
C = 0<br />
C<br />
寄 存 器 f<br />
DS39616B_CN 第 320 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RRNCF 循 环 右 移 f ( 无 进 位 )<br />
语 法 : [ label ] RRNCF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → dest,<br />
(f) → dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0100 00da ffff ffff<br />
描 述 :<br />
寄 存 器 f 的 内 容 循 环 右 移 1 位 。 如<br />
果 d 为 0, 结 果 存 储 在 W 中 。 如 果<br />
d 为 1, 结 果 存 回 寄 存 器 f ( 缺<br />
省 )。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
寄 存 器 f<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
SETF<br />
f 置 位<br />
语 法 : [ label ] SETF f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
FFh → f<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 100a ffff ffff<br />
描 述 :<br />
将 指 定 寄 存 器 的 内 容 置 为 FFh。 如<br />
果 a 为 0, 选 择 快 速 存 取 RAM, 忽<br />
略 BSR 的 值 。 如 果 a 为 1, 则 会 根<br />
据 BSR 的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 写 寄 存 器 f<br />
示 例 : SETF REG<br />
指 令 执 行 前<br />
REG = 0x5A<br />
指 令 执 行 后<br />
REG = 0xFF<br />
示 例 1: RRNCF REG, 1, 0<br />
指 令 执 行 前<br />
REG = 1101 0111<br />
指 令 执 行 后<br />
REG = 1110 1011<br />
示 例 2: RRNCF REG, W<br />
指 令 执 行 前<br />
W = <br />
REG = 1101 0111<br />
指 令 执 行 后<br />
W = 1110 1011<br />
REG = 1101 0111<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 321 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
SLEEP<br />
语 法 :<br />
操 作 数 :<br />
操 作 :<br />
受 影 响 的 状 态 位 :<br />
进 入 休 眠 模 式<br />
[ label ] SLEEP<br />
无<br />
00h → WDT,<br />
0 → WDT 后 分 频 器 ,<br />
1 → TO,<br />
0 → PD<br />
TO、 PD<br />
机 器 码 : 0000 0000 0000 0011<br />
描 述 :<br />
掉 电 状 态 位 (PD) 清 零 。 超 时 状<br />
态 位 (TO) 置 位 。 看 门 狗 定 时 器<br />
及 其 后 分 频 器 清 零 。<br />
振 荡 器 停 振 , 单 片 机 进 入 休 眠 模<br />
式 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 处 理 数 据 进 入<br />
休 眠 模 式<br />
示 例 :<br />
SLEEP<br />
指 令 执 行 前<br />
TO = <br />
PD = <br />
指 令 执 行 后<br />
TO = 1<br />
PD = 0<br />
† 如 果 WDT 唤 醒 单 片 机 , 则 此 位 将 被 清 零 。<br />
SUBFWB 带 借 位 从 W 减 去 f<br />
语 法 : [ label ] SUBFWB f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) – (f) – (C) → dest<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0101 01da ffff ffff<br />
描 述 :<br />
从 W 减 去 f 寄 存 器 的 内 容 和 进 位 标<br />
志 位 ( 借 位 )( 通 过 二 进 制 补 码 方<br />
法 进 行 运 算 )。 如 果 d 为 0, 结 果<br />
存 储 在 W 中 。 如 果 d 为 1, 结 果 存<br />
入 寄 存 器 f ( 缺 省 )。 如 果 a 为 0,<br />
选 择 快 速 存 取 RAM, 忽 略 BSR 的<br />
值 。 如 果 a 为 1, 则 会 根 据 BSR<br />
的 值 选 择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 1:<br />
SUBFWB REG<br />
指 令 执 行 前<br />
REG = 0x03<br />
W = 0x02<br />
C = 0x01<br />
指 令 执 行 后<br />
REG = 0xFF<br />
W = 0x02<br />
C = 0x00<br />
Z = 0x00<br />
N = 0x01 ; result is negative<br />
示 例 2: SUBFWB REG, 0, 0<br />
指 令 执 行 前<br />
REG = 2<br />
W = 5<br />
C = 1<br />
指 令 执 行 后<br />
REG = 2<br />
W = 3<br />
C = 1<br />
Z = 0<br />
N = 0 ; result is positive<br />
示 例 3: SUBFWB REG, 1, 0<br />
指 令 执 行 前<br />
REG = 1<br />
W = 2<br />
C = 0<br />
指 令 执 行 后<br />
REG = 0<br />
W = 2<br />
C = 1<br />
Z = 1 ; result is zero<br />
N = 0<br />
DS39616B_CN 第 322 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
SUBLW<br />
从 立 即 数 减 去 W<br />
SUBWF<br />
从 f 减 去 W<br />
语 法 : [ label ] SUBLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
k – (W) → W<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0000 1000 kkkk kkkk<br />
描 述 :<br />
从 8 位 立 即 数 k 减 去 W。 结 果 存<br />
储 在 W 中 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 1: SUBLW 0x02<br />
指 令 执 行 前<br />
W = 1<br />
C = <br />
指 令 执 行 后<br />
W = 1<br />
C = 1 ; result is positive<br />
Z = 0<br />
N = 0<br />
示 例 2: SUBLW 0x02<br />
指 令 执 行 前<br />
W = 2<br />
C = <br />
指 令 执 行 后<br />
W = 0<br />
C = 1 ;result is zero<br />
Z = 1<br />
N = 0<br />
示 例 3: SUBLW 0x02<br />
指 令 执 行 前<br />
W = 3<br />
C = <br />
指 令 执 行 后<br />
W = FF ;(2’s complement)<br />
C = 0 ;result is negative<br />
Z = 0<br />
N = 1<br />
语 法 : [ label ] SUBWF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – (W) → dest<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0101 11da ffff ffff<br />
描 述 :<br />
从 寄 存 器 f 减 去 W ( 通 过 二 进 制<br />
补 码 方 法 进 行 运 算 )。 如 果 d 为<br />
0, 结 果 存 储 在 W 中 。 如 果 d 为<br />
1, 结 果 存 回 寄 存 器 f ( 缺 省 )。<br />
如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储<br />
区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 1:<br />
SUBWF REG<br />
指 令 执 行 前<br />
REG = 3<br />
W = 2<br />
C = <br />
指 令 执 行 后<br />
REG = 1<br />
W = 2<br />
C = 1 ; result is positive<br />
Z = 0<br />
N = 0<br />
示 例 2:<br />
SUBWF REG, W<br />
指 令 执 行 前<br />
REG = 2<br />
W = 2<br />
C = <br />
指 令 执 行 后<br />
REG = 2<br />
W = 0<br />
C = 1 ;result is zero<br />
Z = 1<br />
N = 0<br />
示 例 3:<br />
SUBWF REG<br />
指 令 执 行 前<br />
REG = 0x01<br />
W = 0x02<br />
C = <br />
指 令 执 行 后<br />
REG = 0xFFh ;(2’s complement)<br />
W = 0x02<br />
C = 0x00 ; result is negative<br />
Z = 0x00<br />
N = 0x01<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 323 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
SUBWFB<br />
从 f 减 去 W 和 借 位 位<br />
语 法 : [ label ] SUBWFB f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) – (W) – (C) → dest<br />
受 影 响 的 状 态 位 : N、 OV、 C、 DC、 Z<br />
机 器 码 : 0101 10da ffff ffff<br />
描 述 :<br />
从 寄 存 器 f 减 去 W 的 内 容 和 进 位 标<br />
志 位 ( 借 位 )( 通 过 二 进 制 补 码 方<br />
法 进 行 运 算 )。 如 果 d 为 0, 结 果 存<br />
储 在 W 中 。 如 果 d 为 1, 结 果 存 回<br />
寄 存 器 f ( 缺 省 )。 如 果 a 为 0, 选<br />
择 快 速 存 取 RAM, 忽 略 BSR 的 值 。<br />
如 果 a 为 1, 则 会 根 据 BSR 的 值 选<br />
择 存 储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 1: SUBWFB REG, 1, 0<br />
指 令 执 行 前<br />
REG = 0x19 (0001 1001)<br />
W = 0x0D (0000 1101)<br />
C = 0x01<br />
指 令 执 行 后<br />
REG = 0x0C (0000 1011)<br />
W = 0x0D (0000 1101)<br />
C = 0x01<br />
Z = 0x00<br />
N = 0x00 ; result is positive<br />
示 例 2: SUBWFB REG, 0, 0<br />
指 令 执 行 前<br />
REG = 0x1B (0001 1011)<br />
W = 0x1A (0001 1010)<br />
C = 0x00<br />
指 令 执 行 后<br />
REG = 0x1B (0001 1011)<br />
W = 0x00<br />
C = 0x01<br />
Z = 0x01 ; result is zero<br />
N = 0x00<br />
示 例 3: SUBWFB REG, 1, 0<br />
指 令 执 行 前<br />
REG = 0x03 (0000 0011)<br />
W = 0x0E (0000 1101)<br />
C = 0x01<br />
指 令 执 行 后<br />
REG = 0xF5 (1111 0100)<br />
; [2’s comp]<br />
W = 0x0E (0000 1101)<br />
C = 0x00<br />
Z = 0x00<br />
N = 0x01 ; result is negative<br />
DS39616B_CN 第 324 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
SWAPF<br />
对 f 的 内 容 进 行 半 字 节 交 换<br />
语 法 : [ label ] SWAPF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(f) → dest,<br />
(f) → dest<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0011 10da ffff ffff<br />
描 述 : 交 换 寄 存 器 f 的 高 4 位 和 低 4 位 。<br />
如 果 d 为 0, 结 果 存 储 在 W 中 。 如<br />
果 d 为 1, 结 果 存 入 寄 存 器 f ( 缺<br />
省 )。 如 果 a 为 0, 选 择 快 速 存 取<br />
RAM, 忽 略 BSR 的 值 。 如 果 a 为<br />
1, 则 会 根 据 BSR 的 值 选 择 存 储 区<br />
( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读<br />
寄 存 器 f<br />
处 理 数 据 写 目 标<br />
寄 存 器<br />
示 例 : SWAPF REG<br />
指 令 执 行 前<br />
REG = 0x53<br />
指 令 执 行 后<br />
REG = 0x35<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 325 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
TBLRD 读 表<br />
语 法 : [ label ] TBLRD ( *; *+; *-; +*)<br />
操 作 数 : 无<br />
操 作 : 对 于 TBLRD *,<br />
( 程 序 存 储 器 (TBLPTR)) → TABLAT;<br />
TBLPTR 不 变 ;<br />
对 于 TBLRD *+,<br />
( 程 序 存 储 器 (TBLPTR)) → TABLAT;<br />
(TBLPTR) +1 → TBLPTR;<br />
对 于 TBLRD *-,<br />
( 程 序 存 储 器 (TBLPTR)) → TABLAT;<br />
(TBLPTR) -1 → TBLPTR;<br />
对 于 TBLRD +*,<br />
(TBLPTR) +1 → TBLPTR;<br />
( 程 序 存 储 器 (TBLPTR)) → TABLAT;<br />
受 影 响 的 状 态 无<br />
位 :<br />
机 器 码 : 0000 0000 0000 10nn<br />
nn=0 *<br />
=1 *+<br />
=2 *-<br />
=3 +*<br />
描 述 : 该 指 令 用 于 读 取 程 序 存 储 器 (PM) 的<br />
内 容 。 使 用 表 指 针 (TBLPTR) 对 程 序<br />
存 储 器 进 行 寻 址 。<br />
TBLPTR (21 位 指 针 ) 可 以 指 向 程 序<br />
存 储 器 中 的 所 有 字 节 。 TBLPTR 的 寻 址<br />
空 间 是 2MB。<br />
TBLPTR[0]=0: 程 序 存 储 器 字 的 最<br />
低 有 效 字 节<br />
TBLPTR[0]=1: 程 序 存 储 器 字 的 最<br />
高 有 效 字 节<br />
TBLRD 指 令 可 以 如 下 修 改 TBLPTR 的<br />
值 :<br />
• 不 变<br />
• 后 加<br />
• 后 减<br />
• 先 加<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 无 操 作 无 操 作<br />
无 操 作<br />
无 操 作<br />
( 读 程 序<br />
存 储 器 )<br />
无 操 作<br />
无 操 作<br />
( 写 TABLAT)<br />
TBLRD 读 表 ( 续 )<br />
示 例 1: TBLRD *+ ;<br />
指 令 执 行 前<br />
TABLAT = 0x55<br />
TBLPTR = 0x00A356<br />
存 储 器 (0x00A356) = 0x34<br />
指 令 执 行 后<br />
TABLAT = 0x34<br />
TBLPTR = 0x00A357<br />
示 例 2: TBLRD +* ;<br />
指 令 执 行 前<br />
TABLAT = 0xAA<br />
TBLPTR = 0x01A357<br />
存 储 器 (0x01A357) = 0x12<br />
存 储 器 (0x01A358) = 0x34<br />
指 令 执 行 后<br />
TABLAT = 0x34<br />
TBLPTR = 0x01A358<br />
DS39616B_CN 第 326 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
TBLWT 写 表<br />
语 法 : [ label ] TBLWT ( *; *+; *-; +*)<br />
操 作 数 : 无<br />
操 作 : 对 于 TBLWT*,<br />
(TABLAT) → 保 持 寄 存 器 ;<br />
TBLPTR 不 变 ;<br />
对 于 TBLWT*+,<br />
(TABLAT) → 保 持 寄 存 器 ;<br />
(TBLPTR) +1 → TBLPTR ;<br />
对 于 TBLWT*-,<br />
(TABLAT) → 保 持 寄 存 器 ;<br />
(TBLPTR) -1 → TBLPTR ;<br />
对 于 TBLWT+*,<br />
(TBLPTR) +1 → TBLPTR ;<br />
(TABLAT) → 保 持 寄 存 器 ;<br />
受 影 响 的 状 态 无<br />
位 :<br />
机 器 码 : 0000 0000 0000 11nn<br />
nn=0 *<br />
=1 *+<br />
=2 *-<br />
=3 +*<br />
描 述 :<br />
该 指 令 使 用 TBLPTR 的 3 个 LSb 来 决<br />
定 要 将 TABLAT 的 数 据 写 入 8 个 保 持 寄<br />
存 器 中 的 哪 一 个 。 该 保 持 寄 存 器 用 于 对<br />
程 序 存 储 器 (PM) 的 内 容 编 程 。( 关<br />
于 闪 存 存 储 器 编 程 的 更 多 详 情 , 请 参 阅<br />
第 6.0 节 “ 闪 存 程 序 存 储 器 ”。 )<br />
TBLPTR (21 位 指 针 ) 可 以 指 向 程 序<br />
存 储 器 中 的 所 有 字 节 。 TBLPTR 的 寻 址<br />
空 间 是 2MB。 TBLPTR 的 LSb 决 定 要<br />
访 问 程 序 存 储 单 元 的 哪 个 字 节 。<br />
TBLPTR[0]=0: 程 序 存 储 器 字 的 最<br />
低 有 效 字 节<br />
TBLPTR[0]=1: 程 序 存 储 器 字 的 最<br />
高 有 效 字 节<br />
TBLWT 指 令 可 以 如 下 修 改 TBLPTR 的<br />
值 :<br />
• 不 变<br />
• 后 加<br />
• 后 减<br />
• 先 加<br />
TBLWT 写 表 ( 续 )<br />
指 令 字 数 : 1<br />
指 令 周 期 : 2<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作<br />
( 读<br />
TABLAT)<br />
无 操 作 无 操 作<br />
( 写 保 持<br />
寄 存 器 )<br />
示 例 1: TBLWT *+;<br />
指 令 执 行 前<br />
TABLAT = 0x55<br />
TBLPTR = 0x00A356<br />
保 持 寄 存 器<br />
(0x00A356) = 0xFF<br />
指 令 执 行 后 ( 写 表 完 成 )<br />
TABLAT = 0x55<br />
TBLPTR = 0x00A357<br />
保 持 寄 存 器<br />
(0x00A356) = 0x55<br />
示 例 2: TBLWT +*;<br />
指 令 执 行 前<br />
TABLAT = 0x34<br />
TBLPTR = 0x01389A<br />
保 持 寄 存 器<br />
(0x01389A) = 0xFF<br />
保 持 寄 存 器<br />
(0x01389B) = 0xFF<br />
指 令 执 行 后 ( 写 表 完 成 )<br />
TABLAT = 0x34<br />
TBLPTR = 0x01389B<br />
保 持 寄 存 器<br />
(0x01389A) = 0xFF<br />
保 持 寄 存 器<br />
(0x01389B) = 0x34<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 327 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
TSTFSZ 测 试 f, 为 0 则 跳 过<br />
语 法 :<br />
[ label ] TSTFSZ f [,a]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
a ∈ [0,1]<br />
操 作 :<br />
如 果 f=0 则 跳 过<br />
受 影 响 的 状 态 位 : 无<br />
机 器 码 : 0110 011a ffff ffff<br />
描 述 :<br />
如 果 f=0, 则 丢 弃 下 一 条 指 令 ( 已<br />
在 当 前 指 令 执 行 期 间 取 指 ), 且 执<br />
行 一 条 NOP 指 令 , 使 该 指 令 变 成 双<br />
周 期 指 令 。 如 果 a 为 0, 选 择 快 速<br />
存 取 RAM, 忽 略 BSR 的 值 。 如 果<br />
a 为 1, 则 会 根 据 BSR 的 值 选 择 存<br />
储 区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1(2)<br />
注 :<br />
如 果 跳 过 并 且 后 面 为 一 条 双<br />
字 指 令 , 则 需 要 3 个 指 令 周<br />
期 。<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 寄 存 器 f 处 理 数 据 无 操 作<br />
如 果 跳 过 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
如 果 跳 过 并 且 后 面 为 一 条 双 字 指 令 :<br />
Q1 Q2 Q3 Q4<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
无 操 作 无 操 作 无 操 作 无 操 作<br />
XORLW<br />
立 即 数 与 W 进 行 “ 异 或 ” 运 算<br />
语 法 :<br />
[ label ] XORLW k<br />
操 作 数 : 0 ≤ k ≤ 255<br />
操 作 :<br />
(W) .XOR. k → W<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0000 1010 kkkk kkkk<br />
描 述 :<br />
W 的 内 容 与 8 位 立 即 数 k 进 行<br />
“ 异 或 ” 运 算 。 结 果 存 储 在 W 中 。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码 读 立 即 数 k 处 理 数 据 写 W<br />
示 例 : XORLW 0xAF<br />
指 令 执 行 前<br />
W = 0xB5<br />
指 令 执 行 后<br />
W = 0x1A<br />
示 例 : HERE TSTFSZ CNT<br />
NZERO :<br />
ZERO :<br />
指 令 执 行 前<br />
PC= 地 址 (HERE)<br />
指 令 执 行 后<br />
如 果 CNT = 0x00,<br />
PC = 地 址 (ZERO)<br />
如 果 CNT ≠ 0x00,<br />
PC = 地 址 (NZERO)<br />
DS39616B_CN 第 328 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
XORWF<br />
W 的 内 容 与 f 的 内 容 进 行 “ 异 或 ”<br />
运 算<br />
语 法 : [ label ] XORWF f [,d [,a]]<br />
操 作 数 : 0 ≤ f ≤ 255<br />
d ∈ [0,1]<br />
a ∈ [0,1]<br />
操 作 :<br />
(W) .XOR. (f)→ dest<br />
受 影 响 的 状 态 位 : N、 Z<br />
机 器 码 : 0001 10da ffff ffff<br />
描 述 : W 的 内 容 与 寄 存 器 f 进 行 “ 异 或 ”<br />
运 算 。 如 果 d 为 0, 结 果 存 储 在 W<br />
中 。 如 果 d 为 1, 结 果 存 回 寄 存 器 f<br />
( 缺 省 )。 如 果 a 为 0, 选 择 快 速 存<br />
取 RAM, 忽 略 BSR 的 值 。 如 果 a<br />
为 1, 则 会 根 据 BSR 的 值 选 择 存 储<br />
区 ( 缺 省 )。<br />
指 令 字 数 : 1<br />
指 令 周 期 : 1<br />
Q 周 期 操 作 :<br />
Q1 Q2 Q3 Q4<br />
译 码<br />
读<br />
寄 存 器 f<br />
处 理 数 据<br />
写 目 标<br />
寄 存 器<br />
示 例 : XORWF REG<br />
指 令 执 行 前<br />
REG = 0xAF<br />
W = 0xB5<br />
指 令 执 行 后<br />
REG = 0x1A<br />
W = 0xB5<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 329 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 330 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
24.0 开 发 支 持<br />
一 系 列 硬 件 及 软 件 开 发 工 具 对 PICmicro ® 单 片 机 提 供 支<br />
持 :<br />
• 集 成 开 发 环 境<br />
- MPLAB ® IDE 软 件<br />
• 汇 编 器 / 编 译 器 / 链 接 器<br />
- MPASM TM 汇 编 器<br />
- MPLAB C18 和 MPLAB C30 C 编 译 器<br />
- MPLINK TM 目 标 链 接 器 /<br />
MPLIB TM 目 标 库 管 理 器<br />
- MPLAB ASM30 汇 编 器 / 链 接 器 / 库<br />
• 模 拟 器<br />
- MPLAB SIM 软 件 模 拟 器<br />
• 仿 真 器<br />
- MPLAB ICE 2000 在 线 仿 真 器<br />
- MPLAB ICE 4000 在 线 仿 真 器<br />
• 在 线 调 试 器<br />
- MPLAB ICD 2<br />
• 器 件 编 程 器<br />
- PICSTART ® Plus 开 发 编 程 器<br />
- MPLAB PM3 器 件 编 程 器<br />
• 低 成 本 演 示 和 开 发 板 及 评 估 工 具 包<br />
24.1 MPLAB 集 成 开 发 环 境 软 件<br />
MPLAB IDE 软 件 为 8/16 位 单 片 机 市 场 提 供 了 前 所 未 有<br />
的 易 于 使 用 的 软 件 开 发 平 台 。 MPLAB IDE 是 基 于<br />
Windows ® 操 作 系 统 的 应 用 软 件 , 包 括 :<br />
• 一 个 包 含 所 有 调 试 工 具 的 图 形 界 面<br />
- 模 拟 器<br />
- 编 程 器 ( 单 独 销 售 )<br />
- 仿 真 器 ( 单 独 销 售 )<br />
- 在 线 调 试 器 ( 单 独 销 售 )<br />
• 具 有 彩 色 上 下 文 代 码 显 示 的 全 功 能 编 辑 器<br />
• 多 项 目 管 理 器<br />
• 内 容 可 直 接 编 辑 的 可 定 制 式 数 据 窗 口<br />
• 高 级 源 代 码 调 试<br />
• 可 视 化 器 件 初 始 化 程 序 , 便 于 进 行 寄 存 器 的 初 始 化<br />
• 鼠 标 停 留 在 变 量 上 进 行 查 看 的 功 能<br />
• 通 过 拖 放 把 变 量 从 源 代 码 窗 口 拉 到 观 察 窗 口<br />
• 丰 富 的 在 线 帮 助<br />
• 集 成 了 可 选 的 第 三 方 工 具 , 如 HI-TECH 软 件 C 编<br />
译 器 和 IAR C 编 译 器<br />
MPLAB IDE 可 以 让 您 :<br />
• 编 辑 源 文 件 ( 汇 编 语 言 或 C 语 言 )<br />
• 点 击 一 次 即 可 完 成 汇 编 ( 或 编 译 ) 并 将 代 码 下 载<br />
到 PICmicro MCU 仿 真 器 和 模 拟 器 工 具 中 ( 自 动<br />
更 新 所 有 项 目 信 息 )<br />
• 可 使 用 如 下 各 项 进 行 调 试 :<br />
- 源 文 件 ( 汇 编 语 言 或 C 语 言 )<br />
- 混 合 汇 编 语 言 和 C 语 言<br />
- 机 器 码<br />
MPLAB IDE 在 单 个 开 发 范 例 中 支 持 使 用 多 种 调 试 工<br />
具 , 包 括 从 成 本 效 益 高 的 模 拟 器 到 低 成 本 的 在 线 调 试<br />
器 , 再 到 全 功 能 的 仿 真 器 。 这 样 缩 短 了 用 户 升 级 到 更 加<br />
灵 活 而 功 能 更 强 大 的 工 具 时 的 学 习 时 间 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 331 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
24.2 MPASM 汇 编 器<br />
MPASM 汇 编 器 是 全 功 能 通 用 宏 汇 编 器 , 适 用 于 所 有 的<br />
PICmicro MCU。<br />
MPASM 汇 编 器 可 生 成 用 于 MPLINK 目 标 链 接 器 的 可 重<br />
定 位 目 标 文 件 、Intel ® 标 准 HEX 文 件 、 详 细 描 述 存 储 器<br />
使 用 状 况 和 符 号 参 考 的 MAP 文 件 、 包 含 源 代 码 行 及 生<br />
成 机 器 码 的 绝 对 LST 文 件 以 及 用 于 调 试 的 COFF 文 件 。<br />
MPASM 汇 编 器 具 有 如 下 特 征 :<br />
• 集 成 在 MPLAB IDE 项 目 中<br />
• 用 户 定 义 的 宏 可 简 化 汇 编 代 码<br />
• 对 多 用 途 源 文 件 进 行 条 件 汇 编<br />
• 允 许 完 全 控 制 汇 编 过 程 的 指 令<br />
24.3 MPLAB C18 和 MPLAB C30<br />
C 编 译 器<br />
MPLAB C18 和 MPLAB C30 代 码 开 发 系 统 是 完 全 的<br />
ANSI C 编 译 器 , 分 别 适 用 于 Microchip 的 PIC18 系 列<br />
单 片 机 和 dsPIC30F 系 列 数 据 信 号 控 制 器 。 这 些 编 译 器<br />
可 提 供 其 他 编 译 器 并 不 具 备 的 强 大 的 集 成 功 能 和 出 众 的<br />
代 码 优 化 能 力 , 且 使 用 方 便 。<br />
为 便 于 源 代 码 调 试 , 编 译 器 提 供 了 针 对 MPLAB IDE 调<br />
试 器 的 优 化 符 号 信 息 。<br />
24.4 MPLINK 目 标 链 接 器 /<br />
MPLIB 目 标 库 管 理 器<br />
MPLINK 目 标 链 接 器 包 含 了 由 MPASM 汇 编 器 、MPLAB<br />
C18 C 编 译 器 产 生 的 可 重 定 位 目 标 。 通 过 使 用 链 接 器 脚<br />
本 中 的 指 令 , 它 还 可 链 接 预 编 译 库 中 的 可 重 定 位 目 标 。<br />
MPLIB 目 标 库 管 理 器 管 理 预 编 译 代 码 库 文 件 的 创 建 和 修<br />
改 。 当 从 源 文 件 调 用 库 中 的 一 段 子 程 序 时 , 只 有 包 含 此<br />
子 程 序 的 模 块 被 链 接 到 应 用 中 。 这 样 可 使 大 型 库 在 许 多<br />
不 同 应 用 中 被 高 效 地 利 用 。<br />
目 标 链 接 器 / 库 管 理 器 具 有 如 下 特 征 :<br />
• 高 效 地 连 接 单 个 的 库 而 不 是 许 多 小 文 件<br />
• 通 过 将 相 关 的 模 块 组 合 在 一 起 来 增 强 代 码 的 可 维 护<br />
性<br />
• 只 要 列 出 、 替 换 、 删 除 和 抽 取 模 块 , 便 可 灵 活 地 创<br />
建 库<br />
24.5 MPLAB ASM30 汇 编 器 、<br />
链 接 器 和 库 管 理 器<br />
MPLAB ASM30 汇 编 器 为 dsPIC30F 器 件 提 供 转 换 自 符<br />
号 汇 编 语 言 的 可 重 定 位 机 器 码 。 MPLAB C30 C 编 译 器<br />
使 用 该 汇 编 器 生 成 目 标 文 件 。 汇 编 器 产 生 可 重 定 位 目 标<br />
文 件 之 后 , 可 将 这 些 目 标 文 件 存 档 , 或 与 其 他 可 重 定 位<br />
目 标 文 件 和 存 档 链 接 以 生 成 可 执 行 文 件 。 该 汇 编 器 有 如<br />
下 显 著 特 征 :<br />
• 支 持 整 个 dsPIC30F 指 令 集<br />
• 支 持 定 点 数 据 和 浮 点 数 据<br />
• 命 令 行 界 面<br />
• 丰 富 的 指 令 集<br />
• 灵 活 的 宏 语 言<br />
• MPLAB IDE 兼 容 性<br />
24.6 MPLAB SIM 软 件 模 拟 器<br />
MPLAB SIM 软 件 模 拟 器 在 指 令 级 对 PICmicro MCU 和<br />
dsPIC ® DSC 进 行 模 拟 , 使 得 用 户 可 以 在 PC 主 机 的 环<br />
境 下 进 行 代 码 开 发 。 对 于 任 何 给 定 的 指 令 , 用 户 均 可 对<br />
数 据 区 进 行 检 查 或 修 改 , 并 通 过 各 种 触 发 机 制 来 产 生 激<br />
励 。 可 以 将 各 寄 存 器 的 情 况 记 录 在 文 件 中 , 以 便 进 行 进<br />
一 步 地 运 行 时 分 析 。 跟 踪 缓 冲 器 和 逻 辑 分 析 器 的 显 示 使<br />
模 拟 器 还 能 记 录 和 跟 踪 程 序 的 执 行 、 I/O 的 动 作 以 及 内<br />
部 寄 存 器 的 状 况 。<br />
MPLAB SIM 软 件 模 拟 器 完 全 支 持 使 用 MPLAB C18 和<br />
MPLAB C30 C 编 译 器 以 及 MPASM 和 MAPLAB ASM30<br />
汇 编 器 的 符 号 调 试 。 该 软 件 模 拟 器 可 用 于 在 实 验 室 环 境<br />
外 灵 活 地 开 发 和 调 试 代 码 , 是 一 款 完 美 且 经 济 的 软 件 开<br />
发 工 具 。<br />
DS39616B_CN 第 332 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
24.7 MPLAB ICE 2000 高 性 能 在 线 仿 真 器<br />
MPLAB ICE 2000 在 线 仿 真 器 旨 在 为 产 品 开 发 工 程 师 提<br />
供 一 整 套 用 于 PICmicro 单 片 机 的 设 计 工 具 。 MPLAB<br />
ICE 2000 在 线 仿 真 器 的 软 件 控 制 由 MPLAB 集 成 开 发 环<br />
境 平 台 提 供 , 它 允 许 在 单 一 环 境 下 进 行 编 辑 、 编 译 、 下<br />
载 以 及 源 代 码 调 试 。<br />
MPLAB ICE 2000 是 全 功 能 仿 真 器 系 统 , 它 具 有 增 强 的<br />
跟 踪 、 触 发 和 数 据 监 控 功 能 。 处 理 器 模 块 可 插 拔 , 使 系<br />
统 可 轻 松 进 行 重 新 配 置 以 适 应 各 种 不 同 处 理 器 的 仿 真 需<br />
要 。MPLAB ICE 2000 在 线 仿 真 器 的 架 构 允 许 对 其 进 行<br />
扩 展 以 支 持 新 的 PICmicro 单 片 机 。<br />
MPLAB ICE 2000 在 线 仿 真 器 系 统 设 计 为 一 款 实 时 仿 真<br />
系 统 , 该 仿 真 系 统 具 备 通 常 只 有 昂 贵 的 开 发 工 具 中 才 有<br />
的 高 级 功 能 。 选 择 PC 平 台 和 Microsoft ® Windows ® 32<br />
位 操 作 系 统 可 使 这 些 功 能 在 一 个 简 单 而 统 一 的 应 用 中 得<br />
到 很 好 的 利 用 。<br />
24.8 MPLAB ICE 4000 高 性 能 在 线 仿 真 器<br />
MPLAB ICE 4000 在 线 仿 真 器 旨 在 为 产 品 开 发 工 程 师 提<br />
供 一 整 套 用 于 高 端 PICmicro MCU 和 dsPIC DSC 的 设<br />
计 工 具 。 MPLAB ICE 4000 在 线 仿 真 器 的 软 件 控 制 由<br />
MPLAB 集 成 开 发 环 境 平 台 提 供 , 它 允 许 在 单 一 环 境 下<br />
进 行 编 辑 、 编 译 、 下 载 以 及 源 代 码 调 试 。<br />
MPLAB ICE 4000 是 高 级 的 仿 真 系 统 , 除 具 备 MPLAB<br />
ICE 2000 的 所 有 功 能 外 , 它 还 增 加 了 适 用 于 dsPIC30F<br />
和 PIC18XXXX 器 件 的 仿 真 存 储 容 量 以 及 高 速 性 能 。 该<br />
仿 真 器 的 先 进 特 性 包 括 复 杂 触 发 和 定 时 功 能 及 高 达 2<br />
Mb 的 仿 真 存 储 容 量 。<br />
MPLAB ICE 4000 在 线 仿 真 系 统 设 计 为 一 款 实 时 仿 真 系<br />
统 , 该 仿 真 系 统 具 备 通 常 只 有 在 更 加 昂 贵 的 开 发 工 具 中<br />
才 有 的 高 级 功 能 。 选 择 PC 平 台 和 Microsoft Windows<br />
32 位 操 作 系 统 可 使 这 些 功 能 在 一 个 简 单 而 统 一 的 应 用<br />
程 序 中 得 以 很 好 的 利 用 。<br />
24.9 MPLAB ICD 2 在 线 调 试 器<br />
Microchip 的 在 线 调 试 器 MPLAB ICD 2 是 一 款 功 能 强 大<br />
而 成 本 低 廉 的 运 行 时 开 发 工 具 , 通 过 RS-232 或 高 速<br />
USB 接 口 与 PC 主 机 相 连 。 该 工 具 基 于 闪 存 PICmicro<br />
MCU, 可 用 于 开 发 本 系 列 及 其 他 PICmicro MCU 和<br />
dsPIC DSC。 MPLAB ICD 2 使 用 了 闪 存 器 件 中 内 建 的<br />
在 线 调 试 功 能 。 该 功 能 结 合 Microchip 的 在 线 串 行 编 程<br />
(In-Circuit Serial Programming TM , ICSP TM ) 协 议 , 可<br />
在 MPLAB 集 成 开 发 环 境 的 图 形 用 户 界 面 上 提 供 成 本 效<br />
益 很 高 的 在 线 闪 存 调 试 。 这 使 设 计 人 员 可 通 过 设 置 断<br />
点 、 单 步 运 行 以 及 对 变 量 、CPU 状 态 以 及 外 设 寄 存 器 进<br />
行 监 视 的 方 法 实 现 源 代 码 的 开 发 和 调 试 。 其 全 速 运 行 特<br />
性 可 对 硬 件 和 应 用 进 行 实 时 测 试 。MPLAB ICD 2 还 可 用<br />
作 某 些 PICmicro 器 件 的 开 发 编 程 器 。<br />
24.10 MPLAB PM3 器 件 编 程 器<br />
MPLAB PM3 器 件 编 程 器 是 一 款 通 用 的 、 符 合 CE 规 范<br />
的 器 件 编 程 器 , 其 可 编 程 电 压 设 置 在 VDDMIN 和 VDDMAX<br />
之 间 时 可 靠 性 最 高 。 它 有 一 个 用 来 显 示 菜 单 和 错 误 信 息<br />
的 大 LCD 显 示 器 (128 x 64), 以 及 一 个 支 持 各 种 封 装<br />
类 型 的 可 拆 卸 模 块 化 插 槽 装 置 。 编 程 器 标 准 配 置 中 带 有<br />
一 根 ICSP TM 电 缆 。 在 单 机 模 式 下 , MPLAB PM3 器 件<br />
编 程 器 不 必 与 PC 相 连 即 可 对 PICmicro 器 件 进 行 读 取 、<br />
验 证 和 编 程 。 在 该 模 式 下 它 还 可 设 置 代 码 保 护 。MPLAB<br />
PM3 通 过 RS-232 或 USB 电 缆 连 接 到 PC 主 机 上 。<br />
MPLAB PM3 具 备 高 速 通 信 能 力 以 及 优 化 算 法 , 可 对 存<br />
储 器 很 大 的 器 件 进 行 快 速 编 程 , 它 还 采 用 SD/MMC 卡<br />
用 作 文 件 存 储 及 数 据 安 全 应 用 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 333 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
24.11 PICSTART Plus 开 发 编 程 器<br />
PICSTART Plus 开 发 编 程 器 是 一 款 易 于 使 用 而 成 本 低 廉<br />
的 原 型 编 程 器 。 它 通 过 COM (RS-232) 端 口 与 PC 相<br />
连 。 MPLAB 集 成 开 发 环 境 软 件 使 得 该 编 程 器 的 使 用 简<br />
便 、 高 效 。PICSTART Plus 开 发 编 程 器 支 持 采 用 DIP 封<br />
装 的 大 部 分 PICmicro 器 件 , 其 引 脚 数 最 多 可 达 40 个 。<br />
引 脚 数 更 多 的 器 件 , 如 PIC16C92X 和 PIC17C76X, 可<br />
通 过 连 接 一 个 转 接 插 槽 来 获 得 支 持 。PICSTART Plus 开<br />
发 编 程 器 符 合 CE 规 范 。<br />
24.12 演 示 、 开 发 和 评 估 板<br />
有 许 多 演 示 、 开 发 和 评 估 板 可 用 于 各 种 PICmicro MCU<br />
和 dsPIC DSC, 实 现 对 全 功 能 系 统 的 快 速 应 用 开 发 。 大<br />
多 数 的 演 示 、 开 发 和 评 估 板 都 有 实 验 布 线 区 , 供 用 户 添<br />
加 定 制 电 路 ; 还 有 应 用 固 件 和 源 代 码 , 用 于 测 试 和 修<br />
改 。<br />
这 些 板 支 持 多 种 功 能 部 件 , 包 括 LED、 温 度 传 感 器 、 开<br />
关 、 扬 声 器 、 RS-232 接 口 、 LCD 显 示 器 、 电 位 计 和 附<br />
加 EEPROM 存 储 器 。<br />
演 示 和 开 发 板 可 用 于 教 学 环 境 , 在 实 验 布 线 区 设 计 定 制<br />
电 路 , 从 而 掌 握 各 种 单 片 机 应 用 。<br />
除 了 PICDEM 和 dsPICDEM 演 示 / 开 发 板 系 列 电 路<br />
外 , Microchip 还 有 一 系 列 评 估 工 具 包 和 演 示 软 件 , 适<br />
用 于 模 拟 滤 波 器 设 计 、 KEELOQ ® 数 据 安 全 产 品 IC、<br />
CAN、 IrDA ® 、 PowerSmart ® 电 池 管 理 、 SEEVAL ® 评<br />
估 系 统 、 Σ−∆ ADC、 流 速 传 感 器 , 等 等 。<br />
有 关 演 示 、 开 发 和 评 估 工 具 包 的 完 整 列 表 , 请 查 阅<br />
Microchip 公 司 网 页 (www.microchip.com) 以 及 最 新<br />
的 “Product Selector Guide ( 产 品 选 型 指 南 ) ”<br />
(DS00148)。<br />
DS39616B_CN 第 334 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 335 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 336 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.0 电 气 特 性<br />
(†)<br />
绝 对 最 大 额 定 值<br />
环 境 温 度 ................................................................................................................................................. -55°C 至 +125°C<br />
储 存 温 度 ................................................................................................................................................. -65°C 至 +150°C<br />
任 一 引 脚 ( 除 了 VDD、 MCLR, 和 RA4 之 外 ) 相 对 于 VSS 的 电 压 .................................................-0.3V 至 (VDD+0.3V)<br />
VDD 相 对 于 VSS 的 电 压 .............................................................................................................................-0.3V 至 +7.5V<br />
MCLR 引 脚 上 相 对 于 VSS 的 电 压 ( 注 2).................................................................................................0V 至 +13.25V<br />
RA4 引 脚 上 相 对 于 Vss 的 电 压 .......................................................................................................................0V 至 +8.5V<br />
总 功 耗 ( 注 1)..........................................................................................................................................................1.0W<br />
VSS 引 脚 的 最 大 电 流 ..............................................................................................................................................300 mA<br />
VDD 引 脚 的 最 大 电 流 .............................................................................................................................................250 mA<br />
输 入 箝 位 电 流 IIK (VI < 0 或 VI > VDD)............................................................................................................................. ±20 mA<br />
输 出 箝 位 电 流 IOK (VO < 0 或 VO > VDD)........................................................................................................................ ±20 mA<br />
任 一 I/O 引 脚 的 最 大 输 出 灌 电 流 ..............................................................................................................................25 mA<br />
任 一 I/O 引 脚 的 最 大 输 出 拉 电 流 ..............................................................................................................................25 mA<br />
所 有 引 脚 的 最 大 灌 电 流 .........................................................................................................................................200 mA<br />
所 有 引 脚 的 最 大 拉 电 流 ..........................................................................................................................................200 mA<br />
注 1: 功 耗 按 如 下 公 式 计 算 :<br />
Pdis = VDD x {IDD - ∑ IOH} + ∑ {(VDD-VOH) x IOH} + ∑(VOl x IOL)<br />
2: 如 果 MCLR/VPP 引 脚 上 的 尖 峰 电 压 低 于 VSS, 感 应 电 流 大 于 80 mA, 可 能 引 起 锁 死 。 因 此 当 对 MCLR/VPP<br />
引 脚 施 加 低 电 平 时 , 应 该 串 联 一 个 50-100Ω 的 电 阻 , 而 不 是 直 接 将 该 引 脚 拉 到 VSS。<br />
† 注 意 : 如 果 工 作 条 件 超 过 上 述 “ 绝 对 最 大 额 定 值 ” 可 能 会 对 器 件 造 成 永 久 性 损 坏 。 上 述 值 仅 为 工 作 条 件 极 大 值 , 我<br />
们 不 建 议 器 件 在 该 极 大 值 条 件 下 或 超 出 该 规 范 范 围 的 条 件 下 运 行 。 长 时 间 运 行 在 最 大 额 定 值 条 件 下 会 影 响 器 件 的 可 靠<br />
性 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 337 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-1: <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 电 压 - 频 率 关 系 图 ( 工 业 级 )<br />
6.0V<br />
5.5V<br />
5.0V<br />
PIC18F2X31/4X31<br />
电 压<br />
4.5V<br />
4.0V<br />
3.5V<br />
4.2V<br />
3.0V<br />
2.5V<br />
2.0V<br />
频 率<br />
40 MHz<br />
图 25-2: PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 电 压 - 频 率 关 系 图 ( 工 业 级 )<br />
6.0V<br />
5.5V<br />
5.0V<br />
电 压<br />
4.5V<br />
4.0V<br />
3.5V<br />
PIC18LF2X31/4X31<br />
4.2V<br />
3.0V<br />
2.5V<br />
2.0V<br />
4 MHz<br />
频 率<br />
40 MHz<br />
FMAX = (16.36 MHz/V) (VDDAPPMIN-2.0V) + 4 MHz<br />
注 :VDDAPPMIN 是 此 应 用 中 PICmicro ® 器 件 的 最 小 电 压 。<br />
DS39616B_CN 第 338 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.1 DC 特 性 : 电 源 电 压<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 符 号 特 性 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
VDD 电 源 电 压<br />
D001 PIC18LF2X31/4X31 2.0 - 5.5 V HS、 XT、 RC 和 LP 振 荡 模 式<br />
PIC18F2X31/4X31 4.2 - 5.5 V<br />
D002 VDR (1)<br />
RAM 数 据 保 持 电 压 1.5 - - V<br />
D003 VPOR VDD 起 始 电 压<br />
确 保 能 够 产 生 内 部 上 电 复<br />
位 信 号<br />
- - 0.7 V 详 情 请 参 阅 有 关 上 电 复 位 的 章 节<br />
D004 SVDD VDD 上 升 率<br />
确 保 能 够 产 生 内 部 上 电 复<br />
位 信 号<br />
0.05 - - V/ms 详 情 请 参 阅 有 关 上 电 复 位 的 章 节<br />
VBOR 欠 压 复 位 电 压<br />
D005 BORV1:BORV0 = 10 2.45 - 2.99 V<br />
BORV1:BORV0 = 01 3.80 - 4.64 V<br />
BORV1:BORV0 = 00 4.09 - 4.99 V<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 这 是 在 休 眠 模 式 下 或 器 件 复 位 时 保 证 不 会 丢 失 RAM 数 据 的 VDD 下 限 值 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 339 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
掉 电 电 流 (IPD) (1)<br />
PIC18LF2X31/4X31 0.1 0.5 µA -40°C<br />
0.1 0.5 µA 25°C<br />
0.2 1.9 µA 85°C<br />
PIC18LF2X31/4X31 0.1 0.5 µA -40°C<br />
0.1 0.5 µA 25°C<br />
0.3 1.9 µA 85°C<br />
VDD = 2.0V<br />
( 休 眠 模 式 )<br />
VDD = 3.0V<br />
( 休 眠 模 式 )<br />
所 有 器 件 0.1 2.0 µA -40°C<br />
0.1 2.0 µA 25°C<br />
VDD = 5.0V<br />
( 休 眠 模 式 )<br />
0.4 6.5 µA 85°C<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
DS39616B_CN 第 340 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 8 40 µA -40°C<br />
9 40 µA 25°C VDD = 2.0V<br />
11 40 µA 85°C<br />
PIC18LF2X31/4X31 25 68 µA -40°C<br />
25 68 µA 25°C VDD = 3.0V<br />
20 68 µA 85°C<br />
所 有 器 件 55 180 µA -40°C<br />
55 180 µA 25°C VDD = 5.0V<br />
50 180 µA 85°C<br />
PIC18LF2X31/4X31 140 220 µA -40°C<br />
145 220 µA 25°C VDD = 2.0V<br />
155 220 µA 85°C<br />
PIC18LF2X31/4X31 215 330 µA -40°C<br />
225 330 µA 25°C VDD = 3.0V<br />
235 330 µA 85°C<br />
所 有 器 件 385 550 µA -40°C<br />
390 550 µA 25°C VDD = 5.0V<br />
405 550 µA 85°C<br />
FOSC = 31 kHz<br />
(RC_RUN 模 式 ,<br />
内 部 振 荡 源 )<br />
FOSC = 1 MHz<br />
(RC_RUN 模 式 ,<br />
内 部 振 荡 源 )<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 341 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
PIC18LF2X31/4X31 410 600 µA -40°C<br />
425 600 µA 25°C VDD = 2.0V<br />
435 600 µA 85°C<br />
PIC18LF2X31/4X31 650 900 µA -40°C<br />
670 900 µA 25°C VDD = 3.0V<br />
680 900 µA 85°C<br />
所 有 器 件 1.2 1.8 mA -40°C<br />
1.2 1.8 mA 25°C VDD = 5.0V<br />
1.2 1.8 mA 85°C<br />
FOSC = 4 MHz<br />
(RC_RUN 模 式 ,<br />
内 部 振 荡 源 )<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
DS39616B_CN 第 342 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 4.7 8 µA -40°C<br />
5.0 8 µA 25°C VDD = 2.0V<br />
5.8 11 µA 85°C<br />
PIC18LF2X31/4X31 7.0 11 µA -40°C<br />
7.8 11 µA 25°C VDD = 3.0V<br />
8.7 15 µA 85°C<br />
所 有 器 件 12 16 µA -40°C<br />
14 16 µA 25°C VDD = 5.0V<br />
14 22 µA 85°C<br />
PIC18LF2X31/4X31 75 150 µA -40°C<br />
85 150 µA 25°C VDD = 2.0V<br />
95 150 µA 85°C<br />
PIC18LF2X31/4X31 110 180 µA -40°C<br />
125 180 µA 25°C VDD = 3.0V<br />
135 180 µA 85°C<br />
所 有 器 件 180 300 µA -40°C<br />
195 300 µA 25°C VDD = 5.0V<br />
200 300 µA 85°C<br />
FOSC = 31 kHz<br />
(RC_IDLE 模 式 ,<br />
内 部 振 荡 源 )<br />
FOSC = 1 MHz<br />
(RC_IDLE 模 式 ,<br />
内 部 振 荡 源 )<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 343 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
PIC18LF2X31/4X31 175 275 µA -40°C<br />
185 275 µA 25°C VDD = 2.0V<br />
195 275 µA 85°C<br />
PIC18LF2X31/4X31 265 375 µA -40°C<br />
280 375 µA 25°C VDD = 3.0V<br />
300 375 µA 85°C<br />
所 有 器 件 475 800 µA -40°C<br />
500 800 µA 25°C VDD = 5.0V<br />
505 800 µA 85°C<br />
FOSC = 4 MHz<br />
(RC_IDLE 模 式 ,<br />
内 部 振 荡 源 )<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
DS39616B_CN 第 344 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 150 250 µA -40°C<br />
150 250 µA 25°C VDD = 2.0V<br />
160 250 µA 85°C<br />
PIC18LF2X31/4X31 340 350 µA -40°C<br />
300 350 µA 25°C VDD = 3.0V<br />
280 350 µA 85°C<br />
所 有 器 件 0.72 1.0 mA -40°C<br />
0.63 1.0 mA 25°C VDD = 5.0V<br />
FOSC = 1 MHZ<br />
(PRI_RUN,<br />
EC 振 荡 器 )<br />
0.57 1.0 mA 85°C<br />
PIC18LF2X31/4X31 440 600 µA -40°C<br />
450 600 µA 25°C VDD = 2.0V<br />
460 600 µA 85°C<br />
PIC18LF2X31/4X31 0.80 1.0 mA -40°C<br />
0.78 1.0 mA 25°C VDD = 3.0V<br />
0.77 1.0 mA 85°C<br />
所 有 器 件 1.6 2.0 mA -40°C<br />
1.5 2.0 mA 25°C VDD = 5.0V<br />
FOSC = 4 MHz<br />
(PRI_RUN,<br />
EC 振 荡 器 )<br />
1.5 2.0 mA 85°C<br />
所 有 器 件 9.5 12 mA -40°C<br />
9.7 12 mA 25°C VDD = 4.2V<br />
9.9 12 mA 85°C<br />
所 有 器 件 11.9 15 mA -40°C<br />
12.1 15 mA 25°C VDD = 5.0V<br />
FOSC = 40 MHZ<br />
(PRI_RUN,<br />
EC 振 荡 器 )<br />
12.3 15 mA 85°C<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 345 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 35 50 µA -40°C<br />
35 50 µA 25°C VDD = 2.0V<br />
35 60 µA 85°C<br />
PIC18LF2X31/4X31 55 80 µA -40°C<br />
50 80 µA 25°C VDD = 3.0V<br />
60 100 µA 85°C<br />
所 有 器 件 105 150 µA -40°C<br />
110 150 µA 25°C VDD = 5.0V<br />
115 150 µA 85°C<br />
PIC18LF2X31/4X31 135 180 µA -40°C<br />
140 180 µA 25°C VDD = 2.0V<br />
140 180 µA 85°C<br />
PIC18LF2X31/4X31 215 280 µA -40°C<br />
225 280 µA 25°C VDD = 3.0V<br />
230 280 µA 85°C<br />
所 有 器 件 410 525 µA -40°C<br />
420 525 µA 25°C VDD = 5.0V<br />
430 525 µA 85°C<br />
所 有 器 件 3.2 4.1 mA -40°C<br />
3.2 4.1 mA 25°C VDD = 4.2 V<br />
3.3 4.1 mA 85°C<br />
所 有 器 件 4.0 5.1 mA -40°C<br />
4.1 5.1 mA 25°C VDD = 5.0V<br />
FOSC = 1 MHz<br />
(PRI_IDLE 模 式 ,<br />
EC 振 荡 器 )<br />
FOSC = 4 MHz<br />
(PRI_IDLE 模 式 ,<br />
EC 振 荡 器 )<br />
FOSC = 40 MHz<br />
(PRI_IDLE 模 式 ,<br />
EC 振 荡 器 )<br />
4.1 5.1 mA 85°C<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
DS39616B_CN 第 346 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 5.1 9 µA -10°C<br />
5.8 9 µA 25°C VDD = 2.0V<br />
7.9 11 µA 70°C<br />
PIC18LF2X31/4X31 7.9 12 µA -10°C<br />
8.9 12 µA 25°C VDD = 3.0V<br />
10.5 14 µA 70°C<br />
所 有 器 件 12.5 20 µA -10°C<br />
16.3 20 µA 25°C VDD = 5.0V<br />
18.9 25 µA 70°C<br />
供 电 电 流 (IDD) (2,3)<br />
PIC18LF2X31/4X31 9.2 15 µA -10°C<br />
9.6 15 µA 25°C VDD = 2.0V<br />
12.7 18 µA 70°C<br />
PIC18LF2X31/4X31 22.0 30 µA -10°C<br />
21.0 30 µA 25°C VDD = 3.0V<br />
20.0 35 µA 70°C<br />
所 有 器 件 30 80 µA -10°C<br />
45 80 µA 25°C VDD = 5.0V<br />
45 85 µA 70°C<br />
FOSC = 32 kHz (4)<br />
(SEC_RUN 模 式 ,<br />
时 钟 为 Timer1)<br />
FOSC = 32 kHz (4)<br />
(SEC_IDLE 模 式 ,<br />
时 钟 为 Timer1)<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 347 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.2 DC 特 性 : 掉 电 电 流 和 供 电 电 流<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 , 扩 展 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 典 型 值 最 大 值 单 位 条 件<br />
模 块 电 流 差 (∆IWDT、 ∆IBOR、 ∆ILVD、 ∆IOSCB、 ∆IAD)<br />
D022<br />
看 门 狗 定 时 器 1.5 4.0 µA -40°C<br />
(∆IWDT)<br />
2.2 4.0 µA 25°C VDD = 2.0V<br />
3.1 5.0 µA 85°C<br />
2.5 6.0 µA -40°C<br />
3.3 6.0 µA 25°C VDD = 3.0V<br />
4.7 7.0 µA 85°C<br />
3.7 10.0 µA -40°C<br />
4.5 10.0 µA 25°C VDD = 5.0V<br />
6.1 13.0 µA 85°C<br />
D022A 欠 压 复 位 19 35.0 µA -40°C 至 +85°C VDD = 3.0V<br />
(∆IBOR) 24 45.0 µA -40°C 至 +85°C VDD = 5.0V<br />
D022B 低 压 检 测 8.5 25.0 µA -40°C 至 +85°C VDD = 2.0V<br />
(∆ILVD) 16 35.0 µA -40°C 至 +85°C VDD = 3.0V<br />
20 45.0 µA -40°C 至 +85°C VDD = 5.0V<br />
D025 Timer1 振 荡 器 1.7 3.5 µA -40°C<br />
(∆IOSCB) 1.8 3.5 µA 25°C VDD = 2.0V Timer1 (4) 振 荡 器 为 32 kHz<br />
2.1 4.5 µA 85°C<br />
2.2 4.5 µA -40°C<br />
2.6 4.5 µA 25°C VDD = 3.0V Timer1 (4) 振 荡 器 为 32 kHz<br />
2.8 5.5 µA 85°C<br />
3.0 6.0 µA -40°C<br />
3.3 6.0 µA 25°C VDD = 5.0V Timer1 (4) 振 荡 器 为 32 kHz<br />
3.6 7.0 µA 85°C<br />
D026<br />
A/D 转 换 器 1.0 3.0 µA -40°C 到 85°C VDD = 2.0V<br />
(∆IAD)<br />
1.0 4.0 µA -40°C 到 85°C VDD = 3.0V A/D 开 启 , 但 不 在 进 行 转 换<br />
2.0 10.0 µA -40°C 到 85°C VDD = 5.0V<br />
图 注 : 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 休 眠 模 式 下 的 掉 电 电 流 与 振 荡 器 类 型 无 关 。 掉 电 电 流 是 在 器 件 休 眠 时 , 所 有 I/O 引 脚 处 于 高 阻 态 并 连 接 到 VDD 或 者<br />
VSS, 且 禁 止 了 所 有 会 增 加 电 流 的 功 能 部 件 ( 比 如 WDT, Timer1 振 荡 器 , BOR 等 ) 时 测 得 的 。<br />
2: 供 电 电 流 主 要 随 工 作 电 压 、 频 率 和 模 式 而 变 化 。 其 他 因 素 , 如 I/O 引 脚 负 载 和 开 关 频 率 、 振 荡 器 类 型 和 电 路 、 内 部 代 码<br />
执 行 模 式 和 温 度 也 会 影 响 电 流 消 耗 。<br />
在 有 源 工 作 模 式 下 , 所 有 IDD 测 量 的 测 试 条 件 为 :<br />
OSC1= 外 部 方 波 , 满 幅 ; 所 有 I/O 引 脚 均 为 三 态 , 拉 至 VDD ;<br />
MCLR=VDD ; WDT 按 规 定 使 能 / 禁 止 。<br />
3: 器 件 配 置 为 RC 振 荡 器 模 式 时 , 该 电 流 不 包 括 流 经 REXT 的 电 流 。 流 经 此 电 阻 的 电 流 可 以 通 过 公 式 Ir=VDD/2REXT (mA)<br />
进 行 估 算 , 其 中 REXT 的 单 位 是 kΩ。<br />
4: 标 准 低 成 本 32 kHz 晶 体 振 荡 器 的 工 作 温 度 范 围 是 从 -10°C 到 +70°C 。 扩 展 级 温 度 的 晶 体 振 荡 器 成 本 就 更 高 一 些 。<br />
DS39616B_CN 第 348 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.3 DC 特 性 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
DC 特 性<br />
参 数<br />
编 号<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
VIL 输 入 低 电 压<br />
I/O 端 口 :<br />
D030 带 TTL 缓 冲 器 VSS 0.15 VDD V VDD < 4.5V<br />
D030A - 0.8 V 4.5V ≤ VDD ≤ 5.5V<br />
D031<br />
带 施 密 特 触 发 缓 冲 器<br />
RC3 和 RC4<br />
VSS<br />
VSS<br />
0.2 VDD<br />
0.3 VDD<br />
V<br />
V<br />
D032 MCLR VSS 0.2 VDD V<br />
D032A OSC1 和 T1OSI VSS 0.3 VDD V LP、 XT、 HS 和 HSPLL<br />
模 式 (1)<br />
D033 OSC1 VSS 0.2 VDD V EC 模 式 (1)<br />
VIH 输 入 高 电 压<br />
I/O 端 口 :<br />
D040 带 TTL 缓 冲 器 0.25 VDD + 0.8V VDD V VDD < 4.5V<br />
D040A 2.0 VDD V 4.5V ≤ VDD ≤ 5.5V<br />
D041<br />
带 施 密 特 触 发 缓 冲 器<br />
RC3 和 RC4<br />
0.8 VDD<br />
0.7 VDD<br />
VDD<br />
VDD<br />
V<br />
V<br />
D042 MCLR 0.8 VDD VDD V<br />
D042A OSC1 和 T1OSI 0.7 VDD VDD V LP、 XT、 HS 和 HSPLL<br />
模 式 (1)<br />
D043 OSC1 0.8 VDD VDD V EC 模 式 (1)<br />
IIL 输 入 泄 漏 电 流 (2,3)<br />
D060 I/O 端 口 - ±1 µA VSS ≤ VPIN ≤ VDD,<br />
引 脚 处 于 高 阻 态<br />
D061 MCLR - ±1 µA Vss ≤ VPIN ≤ VDD<br />
D063 OSC1 - ±1 µA Vss ≤ VPIN ≤ VDD<br />
IPU<br />
弱 上 拉 电 流<br />
D070 IPURB PORTB 弱 上 拉 电 流 50 400 µA VDD = 5V, VPIN = VSS<br />
注<br />
1: 在 RC 振 荡 器 配 置 中 , OSC1/CLKI 引 脚 是 施 密 特 触 发 输 入 。 在 RC 模 式 中 建 议 不 要 使 用 外 部 时 钟 驱 动<br />
PICmicro 器 件 。<br />
2: MCLR 引 脚 上 的 泄 漏 电 流 主 要 取 决 于 所 施 加 的 电 平 。 规 定 的 电 平 表 示 正 常 工 作 条 件 。 不 同 的 输 入 电 压 可 能<br />
导 致 测 得 更 高 的 泄 漏 电 流 。<br />
3: 负 电 流 定 义 为 引 脚 的 拉 电 流 。<br />
4: 参 数 仅 为 特 性 数 据 , 未 经 测 试 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 349 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.3 DC 特 性 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 ) ( 续 )<br />
DC 特 性<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
VOL 输 出 低 电 压<br />
D080 I/O 端 口 - 0.6 V IOL=8.5 mA,VDD=4.5V,<br />
-40°C 至 +85°C<br />
D083<br />
OSC2/CLKO<br />
(RC、 RCIO、 EC 和 ECIO 模 式 )<br />
- 0.6 V IOL=1.6 mA,VDD=4.5V,<br />
-40°C 至 +85°C<br />
VOH 输 出 高 电 压<br />
(3)<br />
D090 I/O 端 口 VDD -0.7 - V IOH=-3.0 mA,<br />
VDD=4.5V,<br />
-40°C 至 +85°C<br />
D092<br />
OSC2/CLKO<br />
(RC、 RCIO、 EC 和 ECIO 模 式 )<br />
VDD -0.7 - V IOH=-1.3 mA,<br />
VDD=4.5V,<br />
-40°C 至 +85°C<br />
D150 VOD 开 漏 高 电 压 - 8.5 V RA4 引 脚<br />
输 出 引 脚 上 的 容 性 负 载 规 范<br />
D100 (4) COSC2 OSC2 引 脚 - 15 pF 当 外 部 时 钟 用 于 驱 动<br />
OSC1 时 , 处 于 XT、 HS<br />
和 LP 模 式<br />
D101 CIO 所 有 I/O 引 脚 和 OSC2<br />
- 50 pF 满 足 AC 时 序 规 范<br />
(RC 模 式 )<br />
D102 CB SCL, SDA - 400 pF I 2 C 规 范<br />
注 1: 在 RC 振 荡 器 配 置 中 , OSC1/CLKI 引 脚 是 施 密 特 触 发 输 入 。 在 RC 模 式 中 建 议 不 要 使 用 外 部 时 钟 驱 动<br />
PICmicro 器 件 。<br />
2: MCLR 引 脚 上 的 泄 漏 电 流 主 要 取 决 于 所 施 加 的 电 平 。 规 定 的 电 平 表 示 正 常 工 作 条 件 。 不 同 的 输 入 电 压 可 能<br />
导 致 测 得 更 高 的 泄 漏 电 流 。<br />
3: 负 电 流 定 义 为 引 脚 的 拉 电 流 。<br />
4: 参 数 仅 为 特 性 数 据 , 未 经 测 试 。<br />
DS39616B_CN 第 350 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 25-1:<br />
DC 特 性<br />
存 储 器 编 程 要 求<br />
标 准 工 作 条 件 ( 除 非 另 外 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 典 型 值 † 最 大 值 单 位 条 件<br />
内 部 程 序 存 储 器 编 程 规 范 (1)<br />
D110 VPP MCLR/VPP 引 脚 上 的 电 压 9.00 - 13.25 V ( 注 3)<br />
D112 IPP MCLR/VPP 引 脚 的 电 流 - - 300 µA<br />
D113 IDDP 编 程 期 间 的 供 电 电 流 - - 1 mA<br />
数 据 EEPROM 存 储 器<br />
D120 ED 耐 擦 写 能 力 100K 1M - E/W -40°C 至 +85°C<br />
D121 VDRW 读 / 写 操 作 时 的 VDD VMIN - 5.5 V 用 EECON 进 行 读 / 写 操 作<br />
VMIN= 最 小 工 作 电 压<br />
D122 TDEW 擦 / 写 周 期 时 间 - 4 - ms<br />
D123 TRETD 特 性 保 持 时 间 40 - - 年 假 设 没 有 违 反 其 他 规 范<br />
D124 TREF (2)<br />
在 刷 新 之 前 的 总 擦 写 次 数 1M 10M - E/W -40°C 至 +85°C<br />
闪 存 程 序 存 储 器<br />
D130 EP 电 池 耐 久 性 10K 100K - E/W -40°C 至 +85°C<br />
D131 VPR 读 操 作 时 的 VDD VMIN - 5.5 V VMIN= 最 小 工 作 电 压<br />
D132 VIE 块 擦 除 时 的 VDD 4.5 - 5.5 V 使 用 ICSP 端 口<br />
D132A VIW 外 部 定 时 擦 写 时 的 VDD 4.5 - 5.5 V 使 用 ICSP 端 口<br />
D132B VPEW 自 定 时 写 时 的 VDD VMIN - 5.5 V VMIN= 最 小 工 作 电 压<br />
D133 TIE ICSP 块 擦 除 周 期 时 间 - 4 - ms VDD > 4.5V<br />
D133A TIW ICSP 擦 或 写 周 期 时 间 ( 外 部 定 1 - - ms VDD > 4.5V<br />
时 )<br />
D133A TIW 自 定 时 写 周 期 时 间 - 2 - ms<br />
D134 TRETD 特 性 保 持 时 间 40 100 - 年 假 设 没 有 违 反 其 他 规 范<br />
† 除 非 另 外 声 明 , 否 则 “ 典 型 值 ” 栏 中 的 数 据 均 在 5.0V、 25°C 下 测 得 。 这 些 参 数 仅 供 设 计 参 考 , 未 经 测 试 。<br />
注 1: 这 些 编 程 规 范 适 用 于 通 过 写 表 指 令 对 片 上 程 序 存 储 器 编 程 。<br />
2: 有 关 数 据 EEPROM 耐 擦 写 能 力 的 更 详 细 讨 论 , 请 参 阅 第 7.8 节 “ 使 用 数 据 EEPROM”。<br />
3: 只 有 在 低 电 压 编 程 被 禁 止 时 才 需 要 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 351 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-3:<br />
低 压 检 测 特 性<br />
VDD<br />
(LVDIF 由 硬 件 置 位 )<br />
VLVD<br />
(LVDIF 可 以<br />
用 软 件 清 零 )<br />
LVDIF<br />
表 25-2:<br />
低 压 检 测 特 性<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 符 号 特 性 最 小 值<br />
D420<br />
典 型 值<br />
†<br />
VDD 由 高 电 平 变 为 低 LVV = 0010 2.08 2.26 2.44 V<br />
电 平 时 的 LVD 电 压 LVV = 0011 2.26 2.45 2.65 V<br />
LVV = 0100 2.35 2.55 2.76 V<br />
LVV = 0101 2.55 2.77 2.99 V<br />
LVV = 0110 2.64 2.87 3.10 V<br />
LVV = 0111 2.82 3.07 3.31 V<br />
LVV = 1000 3.09 3.36 3.63 V<br />
LVV = 1001 3.29 3.57 3.86 V<br />
LVV = 1010 3.38 3.67 3.96 V<br />
LVV = 1011 3.56 3.87 4.18 V<br />
LVV = 1100 3.75 4.07 4.40 V<br />
LVV = 1101 3.93 4.28 4.62 V<br />
LVV = 1110 4.23 4.60 4.96 V<br />
† 生 产 测 试 温 度 TAMB = 25°C。 超 过 温 度 限 制 的 规 范 由 器 件 特 性 确 保 。<br />
最 大 值 单 位 条 件<br />
DS39616B_CN 第 352 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.4 AC ( 时 序 ) 特 性<br />
25.4.1 时 序 参 数 符 号<br />
可 根 据 以 下 格 式 中 的 一 种 来 创 建 时 序 参 数 符 号 :<br />
1. TppS2ppS 3. TCC:ST ( 仅 I 2 C 规 范 )<br />
2. TppS 4. Ts ( 仅 I 2 C 规 范 )<br />
T<br />
F 频 率 T 时 间<br />
小 写 字 母 (pp) 及 其 含 意 :<br />
pp<br />
cc CCP1 osc OSC1<br />
ck CLKO rd RD<br />
cs CS rw RD or WR<br />
di SDI sc SCK<br />
do SDO ss SS<br />
dt 数 据 输 入 t0 T0CKI<br />
io I/O 端 口 t1 T1CKI<br />
mc MCLR wr WR<br />
大 写 字 母 及 其 含 意 :<br />
S<br />
F 下 降 P 周 期<br />
H 高 电 平 R 上 升<br />
I 无 效 ( 高 阻 态 ) V 有 效<br />
L 低 电 平 Z 高 阻 态<br />
仅 用 于 I 2 C 模 式<br />
AA 输 出 访 问 HIGH 高 电 平<br />
BUF 总 线 空 闲 LOW 低 电 平<br />
TCC:ST ( 仅 I 2 C 规 范 )<br />
CC<br />
HD 保 持 SU 建 立<br />
ST<br />
DAT 数 据 输 入 保 持 STO 停 止 条 件<br />
STA 启 动 条 件<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 353 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.4.2 时 序 条 件<br />
除 非 另 外 指 明 , 否 则 表 25-3 中 指 定 的 温 度 和 电 压 适 用<br />
于 所 有 时 序 规 范 。 图 25-4 规 定 了 时 序 规 范 的 负 载 条 件 。<br />
注 :<br />
由 于 篇 幅 所 限 , 本 节 中 通 称 的<br />
“PIC18FXX31” 和 “PIC18LFXX31” 分 别<br />
指 代 ( 而 且 仅 指 代 )<strong>PIC18F2331</strong>/<strong>2431</strong>/<br />
<strong>4331</strong>/<strong>4431</strong> 和 PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<br />
<strong>4431</strong> 系 列 器 件 。<br />
表 25-3:<br />
AC 特 性<br />
温 度 和 电 压 规 范 — 交 流<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
工 作 电 压 VDD 的 范 围 如 DC 规 范 第 25.1 节 和 第 25.3 节 所 述 。 LF 器 件 仅 在 工 业 级 温<br />
度 下 工 作 。<br />
图 25-4:<br />
器 件 时 序 规 范 的 负 载 条 件<br />
负 载 条 件 1 负 载 条 件 2<br />
VDD/2<br />
RL<br />
引 脚<br />
CL<br />
引 脚<br />
VSS<br />
CL<br />
RL =464Ω<br />
VSS<br />
CL =50 pF 对 于 除 OSC2/CLKO 之 外 的 所 有 引 脚<br />
也 包 括 作 为 端 口 的 D 和 E 输 出<br />
DS39616B_CN 第 354 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
25.4.3 时 序 图 和 规 范<br />
图 25-5: 外 部 时 钟 时 序 ( 除 PLL 之 外 的 所 有 模 式 )<br />
Q4 Q1 Q2 Q3 Q4 Q1<br />
OSC1<br />
CLKO<br />
1<br />
2<br />
3 3 4 4<br />
表 25-4:<br />
外 部 时 钟 时 序 要 求<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
1A FOSC 外 部 CLKI 频 率 (1) DC 40 MHz EC, ECIO<br />
(1)<br />
振 荡 器 频 率<br />
DC 4 MHz RC 振 荡 模 式<br />
0.1 4 MHz XT 振 荡 模 式<br />
4 25 MHz HS 振 荡 模 式<br />
4 10 MHz HS + PLL 振 荡 模 式<br />
5 200 kHz LP 振 荡 模 式<br />
1 TOSC 外 部 CLKI 周 期 (1) 25 - ns EC, ECIO<br />
振 荡 器 周 期 (1) 250 - ns RC 振 荡 模 式<br />
250 10,000 ns XT 振 荡 模 式<br />
25<br />
100<br />
250<br />
250<br />
ns<br />
ns<br />
HS 振 荡 模 式<br />
HS + PLL 振 荡 模 式<br />
25 - µs LP 振 荡 模 式<br />
2 TCY 指 令 周 期 时 间 (1) 100 - ns TCY = 4/FOSC<br />
3 TosL,<br />
TosH<br />
4 TosR,<br />
TosF<br />
注<br />
外 部 时 钟 输 入 (OSC1)<br />
高 电 平 或 低 电 平 时 间<br />
外 部 时 钟 输 入 (OSC1)<br />
上 升 或 下 降 时 间<br />
30 - ns XT 振 荡 模 式<br />
2.5 - µs LP 振 荡 模 式<br />
10 - ns HS 振 荡 模 式<br />
- 20 ns XT 振 荡 模 式<br />
- 50 ns LP 振 荡 模 式<br />
- 7.5 ns HS 振 荡 模 式<br />
1: 对 于 除 PLL 的 所 有 配 置 , 指 令 周 期 (TCY) 等 于 输 入 振 荡 器 时 基 周 期 的 四 倍 。 所 有 指 定 的 值 均 基 于 在 标 准<br />
工 作 条 件 下 器 件 执 行 代 码 时 对 应 特 定 振 荡 器 类 型 的 特 征 数 据 。 超 过 这 些 指 定 的 极 限 值 可 能 导 致 振 荡 器 运 行<br />
不 稳 定 和 / 或 电 流 消 耗 比 预 期 的 要 高 。 所 有 器 件 在 “ 最 小 值 ” 下 测 试 时 , 外 部 时 钟 接 到 OSC1/CLKI 引 脚 。<br />
当 使 用 了 外 部 时 钟 输 入 时 , 所 有 器 件 的 “ 最 大 ” 周 期 时 间 极 限 为 “DC”( 没 有 时 钟 )。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 355 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 25-5:<br />
PLL 时 钟 时 序 规 范 (VDD = 4.2V 到 5.5V)<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
F10 FOSC 振 荡 器 频 率 范 围 4 - 10 MHz 仅 HS 模 式<br />
F11 FSYS 片 上 VCO 系 统 频 率 16 - 40 MHz 仅 HS 模 式<br />
F12 TPLL PLL 启 动 时 间 ( 锁 定 时 间 ) - - 2 ms<br />
F13 DCLK CLKO 稳 定 性 ( 抖 动 ) -2 - +2 %<br />
† 除 非 另 外 声 明 , 否 则 “ 典 型 值 ” 栏 中 的 数 据 均 在 5.0V、 25°C 下 测 得 。 这 些 参 数 仅 作 为 设 计 时 的 参 考 , 未 经<br />
测 试 。<br />
表 25-6:<br />
PIC18F1220/1320<br />
( 工 业 级 )<br />
内 部 RC 精 度<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
PIC18LF1220/1320<br />
( 工 业 级 )<br />
标 准 工 作 条 件 ( 除 非 另 有 声 明 )<br />
工 作 温 度 -40°C ≤ TA ≤ +85°C ( 工 业 级 )<br />
参 数 号 器 件 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
Freq = 8 MHz, 4 MHz, 2 MHz, 1 MHz, 500 kHz, 250 kHz, 125 kHz (1) 时 的 INTOSC 精 度<br />
F2 PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> -15 +/-5 +15 % 25°C VDD = 3.0V<br />
F3 所 有 器 件 -15 +/-5 +15 % 25°C VDD = 5.0V<br />
Freq = 31 kHz (2) 时 的 INTRC 精 度<br />
F5 PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 26.562 - 35.938 kHz 25°C VDD = 3.0V<br />
F6 所 有 器 件 26.562 - 35.938 kHz 25°C VDD = 5.0V<br />
(3)<br />
INTRC 稳 定 性<br />
F8 PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> TBD 1 TBD % 25°C VDD = 3.0V<br />
F9 所 有 器 件 TBD 1 TBD % 25°C VDD = 5.0V<br />
图 注 : 使 用 阴 影 行 是 为 了 增 强 表 的 可 读 性 。<br />
注 1: 频 率 校 准 温 度 为 25°C。 OSCTUNE 寄 存 器 可 以 用 于 对 温 度 漂 移 进 行 补 充 。<br />
2: 校 准 后 的 INTRC 频 率 。<br />
3: INTRC 频 率 随 VDD 的 改 变 而 改 变 。<br />
DS39616B_CN 第 356 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-6:<br />
CLKO 和 I/O 时 序<br />
Q4 Q1 Q2 Q3<br />
OSC1<br />
10<br />
11<br />
CLKO<br />
13<br />
14<br />
19 18<br />
12<br />
16<br />
I/O 引 脚<br />
( 输 入 )<br />
17<br />
15<br />
I/O 引 脚<br />
( 输 出 )<br />
旧 值<br />
新 值<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
20, 21<br />
表 25-7:<br />
CLKO 和 I/O 时 序 要 求<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
10 TosH2ckL OSC1 ↑ 到 CLKO ↓ - 75 200 ns (1)<br />
11 TosH2ckH OSC1 ↑ 到 CLKO ↑ - 75 200 ns (1)<br />
12 TckR CLKO 上 升 时 间 - 35 100 ns (1)<br />
13 TckF CLKO 下 降 时 间 - 35 100 ns (1)<br />
14 TckL2ioV CLKO ↓ 到 端 口 输 出 有 效 - - 0.5 TCY + 20 ns (1)<br />
15 TioV2ckH 在 CLKO ↑ 前 端 口 输 入 有 效 0.25 TCY +25 - - ns (1)<br />
16 TckH2ioI 在 CLKO ↑ 后 端 口 输 入 保 持 0 - - ns (1)<br />
17 TosH2ioV OSC1 ↑(Q1 周 期 ) 到 端 口 输 出 有 效 - 50 150 ns<br />
18 TosH2ioI OSC1 ↑(Q2 周 期 ) 到 PIC18FXX31 100 - - ns<br />
18A 端 口 输 入 无 效<br />
(I/O 输 入 保 持 时 间 )<br />
PIC18LFXX31 200 - - ns<br />
19 TioV2osH 端 口 输 入 有 效 到 OSC1 ↑(I/O 输 入 建 立 时 0 - - ns<br />
间 )<br />
20 TioR 端 口 输 出 上 升 时 间 PIC18FXX31 - 10 25 ns<br />
20A PIC18LFXX31 - - 60 ns<br />
21 TioF 端 口 输 出 下 降 时 间 PIC18FXX31 - 10 25 ns<br />
21A PIC18LFXX31 - - 60 ns<br />
22†† TINP INT 引 脚 高 电 平 或 低 电 平 时 间 TCY - - ns<br />
23†† TRBP RB7:RB4 变 化 中 断 高 电 平 或 低 电 平 时 间 TCY - - ns<br />
24†† TRCP RB7:RB4 变 化 中 断 高 电 平 或 低 电 平 时 间 20 ns<br />
†† 这 些 参 数 为 异 步 事 件 , 与 所 有 内 部 时 钟 沿 无 关 。<br />
注 1: 测 量 在 RC 模 式 进 行 , 其 中 CLKO 输 出 为 4 x TOSC。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 357 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-7:<br />
复 位 、 看 门 狗 定 时 器 、 振 荡 器 起 振 定 时 器 和 上 电 延 时 定 时 器 时 序<br />
VDD<br />
MCLR<br />
内 部 POR<br />
30<br />
PWRT<br />
延 时<br />
OSC<br />
延 时<br />
33<br />
32<br />
内 部 复 位<br />
看 门 狗<br />
定 时 器 复 位<br />
34<br />
31<br />
34<br />
I/O 引 脚<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
图 25-8:<br />
欠 压 复 位 时 序<br />
VDD<br />
BVDD<br />
35<br />
VBGAP = 1.2V<br />
VIRVST<br />
使 能 内 部 参 考 电 压<br />
内 部 参 考 电 压 稳 定 36<br />
表 25-8:<br />
复 位 、 看 门 狗 定 时 器 、 振 荡 器 起 振 定 时 器 、 上 电 延 时 定 时 器 和 欠 压 复 位 要 求<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
30 TmcL MCLR 脉 冲 宽 度 ( 低 电 平 ) 2 - - µs<br />
31 TWDT 看 门 狗 定 时 器 超 时 溢 出 周 期<br />
- 4.00 TBD ms<br />
( 无 后 分 频 器 )<br />
32 TOST 振 荡 器 起 振 定 时 器 周 期 1024 TOSC - 1024 TOSC - TOSC = OSC1 周 期<br />
33 TPWRT 上 电 延 时 定 时 器 周 期 - 65.5 TBD ms<br />
34 TIOZ MCLR 低 电 平 或 看 门 狗 定 时 器 复 位 - 2 - µs<br />
引 起 I/O 高 阻 态<br />
35 TBOR 欠 压 复 位 脉 冲 宽 度 200 - - µs VDD ≤ BVDD( 参 见 D005)<br />
36 TIVRST 内 部 参 考 电 压 变 稳 定 的 时 间 - 20 50 µs<br />
37 TLVD 低 压 检 测 脉 冲 宽 度 200 - - µs VDD ≤ VLVD<br />
DS39616B_CN 第 358 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-9:<br />
TIMER0 和 TIMER1 外 部 时 钟 时 序<br />
T0CKI<br />
40<br />
41<br />
42<br />
T1OSO/T1CKI<br />
45<br />
46<br />
47<br />
48<br />
TMR0 或<br />
TMR1<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-9:<br />
TIMER0 和 TIMER1 外 部 时 钟 要 求<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
40 Tt0H T0CKI 高 电 平 脉 冲 宽 度 无 预 分 频 器 0.5 TCY + 20 - ns<br />
有 预 分 频 器 10 - ns<br />
41 Tt0L T0CKI 低 电 平 脉 冲 宽 度 无 预 分 频 器 0.5 TCY + 20 - ns<br />
有 预 分 频 器 10 - ns<br />
42 Tt0P T0CKI 周 期 无 预 分 频 器 TCY +10 - ns<br />
45 Tt1H T1CKI 高<br />
电 平 时 间<br />
46 Tt1L T1CKI<br />
低 电 平 时<br />
间<br />
47 Tt1P T1CKI 输<br />
入 周 期<br />
有 预 分 频 器 取 两 者 中 较 大 值 :<br />
20 ns 或 Tcy + 40<br />
N<br />
同 步 , 无 预 分 频 器 0.5 TCY + 20 - ns<br />
同 步<br />
PIC18FXX31 10 - ns<br />
有 预 分 频 器 PIC18LFXX31 25 - ns<br />
异 步 PIC18FXX31 30 - ns<br />
PIC18LFXX31 50 - ns<br />
同 步 , 无 预 分 频 器 0.5 TCY +5 - ns<br />
同 步<br />
有 预 分 频 器<br />
PIC18FXX31 10 - ns<br />
PIC18LFXX31 25 - ns<br />
异 步 PIC18FXX31 30 - ns<br />
PIC18LFXX31 TBD TBD ns<br />
同 步 取 较 大 值 :<br />
20 ns 或 TCY + 40<br />
N<br />
异 步 60 - ns<br />
Ft1 T1CKI 振 荡 器 输 入 频 率 范 围 DC 50 kHz<br />
48 Tcke2tmrI 外 部 T1CKI 时 钟 边 沿 到 定 时 器 递 增 的 延 时 2 TOSC 7 TOSC -<br />
- ns N = 预 分 频 比<br />
(1, 2, 4,..., 256)<br />
- ns N = 预 分 频 比<br />
(1, 2, 4, 8)<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 359 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-10: 捕 捉 / 比 较 / PWM 时 序 ( 所 有 CCP 模 块 )<br />
CCPx<br />
( 捕 捉 模 式 )<br />
50 51<br />
52<br />
CCPx<br />
( 比 较 或 PWM 模 式 )<br />
53 54<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-10: 捕 捉 / 比 较 / PWM 时 序 ( 所 有 CCP 模 块 )<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
50 TccL CCPx 输 入 低 电<br />
平 时 间<br />
51 TccH CCPx 输 入 高 电<br />
平 时 间<br />
无 预 分 频 器 0.5 TCY + 20 - ns<br />
带 PIC18FXX31 10 - ns<br />
预 分 频 器 PIC18LFXX31 20 - ns<br />
无 预 分 频 器 0.5 TCY + 20 - ns<br />
带<br />
预 分 频 器<br />
PIC18FXX31 10 - ns<br />
PIC18LFXX31 20 - ns<br />
52 TccP CCPx 输 入 周 期 3 TCY + 40<br />
N<br />
53 TccR CCPx 输 出 上 升 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 - 45 ns<br />
54 TccF CCPx 输 出 下 降 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 - 45 ns<br />
- ns N= 预 分 频 比<br />
(1、 4 或 16)<br />
DS39616B_CN 第 360 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-11: SPI 主 控 模 式 时 序 示 例 (CKE = 0)<br />
SS<br />
SCK<br />
(CKP = 0)<br />
70<br />
71 72<br />
78<br />
79<br />
SCK<br />
(CKP = 1)<br />
80<br />
79<br />
78<br />
SDO<br />
MSb<br />
bit6 - - - - - -1<br />
LSb<br />
75, 76<br />
SDI<br />
MSb IN<br />
bit6 - - - - - -1<br />
LSb IN<br />
73<br />
74<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-11: SPI 模 式 要 求 示 例 ( 主 控 模 式 , CKE = 0)<br />
参<br />
数<br />
编<br />
号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
70 TssL2scH, SS ↓ 到 SCK ↓ 或 SCK ↑ 输 入<br />
TssL2scL<br />
TCY - ns<br />
71 TscH SCK 输 入 高 电 平 时 间 连 续 1.25 TCY + 30 - ns<br />
71A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
72 TscL SCK 输 入 低 电 平 时 间 连 续 1.25 TCY + 30 - ns<br />
72A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
73 TdiV2scH, SDI 数 据 输 入 到 SCK 边 沿 的 建 立 时 间<br />
TdiV2scL<br />
100 - ns<br />
73A TB2B Byte1 的 最 后 一 个 时 钟 边 沿 到 Byte2 的 第 一 个 时<br />
1.5 TCY +40 - ns<br />
( 注 2)<br />
钟 边 沿<br />
74 TscH2diL, SDI 数 据 输 入 到 SCK 边 沿 的 保 持 时 间<br />
TscL2diL<br />
100 - ns<br />
75 TdoR SDO 数 据 输 出 上 升 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 - 45 ns<br />
76 TdoF SDO 数 据 输 出 下 降 时 间 - 25 ns<br />
78 TscR SCK 输 出 上 升 时 间<br />
( 主 控 模 式 )<br />
PIC18FXX31 - 25 ns<br />
PIC18LFXX31 - 45 ns<br />
79 TscF SCK 输 出 下 降 时 间 ( 主 控 模 式 ) - 25 ns<br />
80 TscH2doV,<br />
TscL2doV<br />
SCK 边 沿 后 SDO 数 据 输 出 有<br />
效<br />
注 1: 要 求 使 用 参 数 73A。<br />
2: 仅 当 使 用 参 数 71A 和 72A 时 。<br />
PIC18FXX31 - 50 ns<br />
PIC18LFXX31 - 100 ns<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 361 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-12: SPI 主 控 模 式 时 序 示 例 (CKE = 1)<br />
SS<br />
SCK<br />
(CKP = 0)<br />
81<br />
73<br />
71 72<br />
79<br />
SCK<br />
(CKP = 1)<br />
80<br />
78<br />
SDO<br />
MSb<br />
bit6 - - - - - -1<br />
LSb<br />
75, 76<br />
SDI<br />
MSb IN<br />
bit6 - - - - - -1<br />
LSb IN<br />
74<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-12: SPI 模 式 要 求 示 例 ( 主 控 模 式 , CKE = 1)<br />
参 数<br />
最 大<br />
符 号 特 性 最 小 值<br />
编 号<br />
值<br />
单 位 条 件<br />
71 TscH SCK 输 入 高 电 平 时 间 连 续 1.25 TCY + 30 - ns<br />
71A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
72 TscL SCK 输 入 低 电 平 时 间 连 续 1.25 TCY + 30 - ns<br />
72A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
73 TdiV2scH, SDI 数 据 输 入 到 SCK 边 沿 的 建 立 时 间<br />
TdiV2scL<br />
100 - ns<br />
73A TB2B Byte1 最 后 一 个 时 钟 沿 到 Byte2 第 一 个 时 钟 沿 1.5 TCY +40 - ns ( 注 2)<br />
74 TscH2diL, SDI 数 据 输 入 到 SCK 边 沿 的 保 持 时 间<br />
TscL2diL<br />
100 - ns<br />
75 TdoR SDO 数 据 输 出 上 升 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 45 ns<br />
76 TdoF SDO 数 据 输 出 下 降 时 间 - 25 ns<br />
78 TscR SCK 输 出 上 升 时 间<br />
( 主 控 模 式 )<br />
PIC18FXX31 - 25 ns<br />
PIC18LFXX31 45 ns<br />
79 TscF SCK 输 出 下 降 时 间 ( 主 控 模 式 ) - 25 ns<br />
80 TscH2doV,<br />
TscL2doV<br />
81 TdoV2scH,<br />
TdoV2scL<br />
SCK 边 沿 后 SDO 数 据 输 出<br />
有 效<br />
SDO 数 据 输 出 建 立 到 SCK 边 沿<br />
注 1: 要 求 使 用 参 数 73A。<br />
2: 仅 当 使 用 参 数 71A 和 72A 时 。<br />
PIC18FXX31 - 50 ns<br />
PIC18LFXX31 100 ns<br />
TCY - ns<br />
DS39616B_CN 第 362 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-13: SPI 从 动 模 式 时 序 示 例 (CKE = 0)<br />
SS<br />
SCK<br />
(CKP = 0)<br />
70<br />
83<br />
71 72<br />
78<br />
79<br />
SCK<br />
(CKP = 1)<br />
80<br />
79<br />
78<br />
SDO<br />
MSb<br />
bit6 - - - - - -1<br />
LSb<br />
75, 76 77<br />
SDI<br />
MSb IN bit6 - - - - - -1 LSb IN<br />
73<br />
74<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-13: SPI 模 式 要 求 示 例 ( 从 动 模 式 , CKE = 0)<br />
参 数 号 符 号 特 性 最 小 值<br />
最 大<br />
值<br />
单 位 条 件<br />
70 TssL2scH, SS ↓ 到 SCK ↓ 或 SCK ↑ 输 入 TCY - ns<br />
TssL2scL<br />
71 TscH SCK 输 入 高 电 平 时 间<br />
连 续 1.25 TCY + 30 - ns<br />
71A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
72 TscL SCK 输 入 低 电 平 时 间<br />
连 续 1.25 TCY + 30 - ns<br />
72A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
73 TdiV2scH, SDI 数 据 输 入 到 SCK 边 沿 的 建 立 时 间 100 - ns<br />
TdiV2scL<br />
73A TB2B Byte1 最 后 一 个 时 钟 沿 到 Byte2 第 一 个 时 钟 沿 1.5 TCY +40 - ns ( 注 2)<br />
74 TscH2diL, SDI 数 据 输 入 到 SCK 边 沿 的 保 持 时 间 100 - ns<br />
TscL2diL<br />
75 TdoR SDO 数 据 输 出 上 升 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 45 ns<br />
76 TdoF SDO 数 据 输 出 下 降 时 间 - 25 ns<br />
77 TssH2doZ SS ↑ 到 SDO 输 出 高 阻 态 10 50 ns<br />
78 TscR SCK 输 出 上 升 时 间 ( 主 控 模 式 ) PIC18FXX31 - 25 ns<br />
PIC18LFXX31 45 ns<br />
79 TscF SCK 输 出 下 降 时 间 ( 主 控 模 式 ) - 25 ns<br />
80 TscH2doV,<br />
TscL2doV<br />
83 TscH2ssH,<br />
TscL2ssH<br />
SCK 边 沿 后 SDO 数 据 输 出 有 效 PIC18FXX31 - 50 ns<br />
PIC18LFXX31 100 ns<br />
SCK 边 沿 到 SS ↑ 1.5 TCY +40 - ns<br />
注 1: 要 求 使 用 参 数 73A。<br />
2: 仅 当 使 用 参 数 71A 和 72A 时 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 363 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-14: SPI 从 动 模 式 时 序 示 例 (CKE = 1)<br />
SS<br />
82<br />
SCK<br />
(CKP = 0)<br />
70<br />
83<br />
71 72<br />
SCK<br />
(CKP = 1)<br />
80<br />
SDO<br />
MSb bit6 - - - - - -1 LSb<br />
75, 76<br />
77<br />
SDI<br />
MSb IN bit6 - - - - - -1 LSb IN<br />
74<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-14: SPI 从 动 模 式 要 求 示 例 (CKE = 1)<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
70 TssL2scH, SS ↓ 到 SCK ↓ 或 SCK ↑ 输 入<br />
- ns<br />
TCY<br />
TssL2scL<br />
71 TscH SCK 输 入 高 电 平 时 间<br />
连 续 1.25 TCY + 30 - ns<br />
71A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
72 TscL SCK 输 入 低 电 平 时 间<br />
连 续 1.25 TCY + 30 - ns<br />
72A ( 从 动 模 式 )<br />
单 字 节 40 - ns ( 注 1)<br />
73A TB2B Byte1 最 后 一 个 时 钟 沿 到 Byte2 第 一 个 时 钟 沿 1.5 TCY +40 - ns ( 注 2)<br />
74 TscH2diL, SDI 数 据 输 入 到 SCK 边 沿 的 保 持 时 间<br />
100<br />
- ns<br />
TscL2diL<br />
75 TdoR SDO 数 据 输 出 上 升 时 间 PIC18FXX31 - 25 ns<br />
PIC18LFXX31 45 ns<br />
76 TdoF SDO 数 据 输 出 下 降 时 间 - 25 ns<br />
77 TssH2doZ SS ↑ 到 SDO 输 出 高 阻 态 10 50 ns<br />
78 TscR SCK 输 出 上 升 时 间<br />
( 主 控 模 式 )<br />
PIC18FXX31 - 25 ns<br />
PIC18LFXX31 - 45 ns<br />
79 TscF SCK 输 出 下 降 时 间 ( 主 控 模 式 ) - 25 ns<br />
80 TscH2doV,<br />
TscL2doV<br />
SCK 边 沿 后 SDO 数 据 输 出 有 效 PIC18FXX31 - 50 ns<br />
PIC18LFXX31 - 100 ns<br />
82 TssL2doV 在 SS ↓ 边 沿 之 后 SDO 数 据 输 出<br />
有 效<br />
83 TscH2ssH, SCK 边 沿 到 SS ↑<br />
TscL2ssH<br />
注 1: 要 求 使 用 参 数 73A。<br />
2: 仅 当 使 用 参 数 71A 和 72A 时 。<br />
PIC18FXX31 - 50 ns<br />
PIC18LFXX31 - 100 ns<br />
1.5 TCY +40<br />
- ns<br />
DS39616B_CN 第 364 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-15:<br />
I 2 C 总 线 启 动 / 停 止 位 时 序<br />
SCL<br />
90<br />
91<br />
92<br />
93<br />
SDA<br />
启 动<br />
条 件<br />
停 止<br />
条 件<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-15: I 2 C 总 线 启 动 / 停 止 位 要 求 ( 从 动 模 式 )<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
90 TSU:STA 启 动 条 件 100 kHz 模 式 4700 - ns 仅 与 重 复 启 动 条 件 相 关<br />
建 立 时 间 400 kHz 模 式 600 -<br />
91 THD:STA 启 动 条 件 100 kHz 模 式 4000 - ns 这 个 周 期 后 , 产 生 第 一 个 时<br />
保 持 时 间 400 kHz 模 式 600 -<br />
钟 脉 冲<br />
92 TSU:STO 停 止 条 件 100 kHz 模 式 4700 - ns<br />
建 立 时 间 400 kHz 模 式 600 -<br />
93 THD:STO 停 止 条 件 100 kHz 模 式 4000 - ns<br />
保 持 时 间 400 kHz 模 式 600 -<br />
图 25-16:<br />
I 2 C 总 线 数 据 时 序<br />
SCL<br />
90<br />
103<br />
100<br />
101<br />
106 107<br />
102<br />
SDA<br />
输 入<br />
SDA<br />
输 出<br />
91 92<br />
109 109<br />
110<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 365 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 25-16: I 2 C 总 线 数 据 要 求 ( 从 动 模 式 )<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
100 THIGH 时 钟 高 电 平 时 间 100 kHz 模 式 4.0 - µs PIC18FXX31 的 工 作 频 率 至 少<br />
为 1.5 MHz<br />
400 kHz 模 式 0.6 - µs PIC18FXX31 的 工 作 频 率 至 少<br />
为 10 MHz<br />
SSP 模 块 1.5 TCY -<br />
101 TLOW 时 钟 低 电 平 时 间 100 kHz 模 式 4.7 - µs PIC18FXX31 的 工 作 频 率 至 少<br />
为 1.5 MHz<br />
400 kHz 模 式 1.3 - µs PIC18FXX31 的 工 作 频 率 至 少<br />
为 10 MHz<br />
SSP 模 块 1.5 TCY -<br />
102 TR SDA 和 SCL 上 升 时 100 kHz 模 式 - 1000 ns<br />
间<br />
400 kHz 模 式 20 + 0.1 CB 300 ns 规 定 CB 值 为 10 -400 pF<br />
103 TF SDA 和 SCL 下 降 时 100 kHz 模 式 - 300 ns<br />
间<br />
400 kHz 模 式 20 + 0.1 CB 300 ns 规 定 CB 值 为 10 -400 pF<br />
90 TSU:STA 启 动 条 件 建 立 时 间 100 kHz 模 式 4.7 - µs 仅 与 重 复 启 动 条 件 相 关<br />
400 kHz 模 式 0.6 - µs<br />
91 THD:STA 启 动 条 件 保 持 时 间 100 kHz 模 式 4.0 - µs 这 个 周 期 后 , 产 生 第 一 个 时 钟<br />
400 kHz 模 式 0.6 - µs 脉 冲<br />
106 THD:DAT 数 据 输 入 保 持 时 间 100 kHz 模 式 0 - ns<br />
400 kHz 模 式 0 0.9 µs<br />
107 TSU:DAT 数 据 输 入 建 立 时 间 100 kHz 模 式 250 - ns ( 注 2)<br />
400 kHz 模 式 100 - ns<br />
92 TSU:STO 停 止 条 件 建 立 时 间 100 kHz 模 式 4.7 - µs<br />
400 kHz 模 式 0.6 - µs<br />
109 TAA 时 钟 输 出 有 效 时 间 100 kHz 模 式 - 3500 ns ( 注 1)<br />
400 kHz 模 式 - - ns<br />
110 TBUF 总 线 空 闲 时 间 100 kHz 模 式 4.7 - µs 在 新 的 传 输 开 始 之 前 , 总 线 必<br />
400 kHz 模 式 1.3 - µs 须 保 持 空 闲 的 时 间<br />
D102 CB 总 线 的 容 性 负 载 - 400 pF<br />
注 1: 作 为 发 送 器 , 为 避 免 意 外 产 生 启 动 或 停 止 条 件 , 器 件 必 须 提 供 此 内 部 最 小 延 迟 时 间 , 以 补 偿 SCL 下 降 沿 的<br />
不 确 定 区 域 ( 最 小 值 300ns)。<br />
2: 在 标 准 模 式 的 I 2 C 总 线 系 统 中 可 以 使 用 快 速 模 式 的 I 2 C 总 线 器 件 , 但 必 须 满 足 TSU:DAT ≥ 250 ns 的 要 求 。<br />
如 果 器 件 没 有 延 长 SCL 信 号 的 低 电 平 周 期 , 将 自 动 满 足 此 条 件 。 如 果 器 件 延 长 了 SCL 信 号 的 低 电 平 周 期 ,<br />
则 下 一 个 数 据 位 必 须 输 出 到 SDA 线 。<br />
SCL 线 释 放 前 , TR max. + TSU:DAT =1000+250=1250ns( 根 据 标 准 模 式 I 2 C 总 线 规 范 )。<br />
DS39616B_CN 第 366 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-17:<br />
SSP I 2 C 总 线 启 动 / 停 止 位 时 序 波 形<br />
SCL<br />
91 93<br />
90 92<br />
SDA<br />
启 动<br />
条 件<br />
停 止<br />
条 件<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-17:<br />
SSP I 2 C 总 线 启 动 / 停 止 位 要 求<br />
参 数<br />
编 号<br />
符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
90 TSU:STA 启 动 条 件 100 kHz 模 式 2(TOSC)(BRG + 1) - ns 仅 与 重 复 启 动 条 件 相<br />
建 立 时 间 400 kHz 模 式 2(TOSC)(BRG + 1) -<br />
关<br />
1 MHz 模 式 (1) 2(TOSC)(BRG + 1) -<br />
91 THD:STA 启 动 条 件 100 kHz 模 式 2(TOSC)(BRG + 1) - ns 这 个 周 期 后 , 产 生 第<br />
保 持 时 间 400 kHz 模 式 2(TOSC)(BRG + 1) -<br />
一 个 时 钟 脉 冲<br />
1 MHz 模 式 (1) 2(TOSC)(BRG + 1) -<br />
92 TSU:STO 停 止 条 件 100 kHz 模 式 2(TOSC)(BRG + 1) - ns<br />
建 立 时 间 400 kHz 模 式 2(TOSC)(BRG + 1) -<br />
1 MHz 模 式 (1) 2(TOSC)(BRG + 1) -<br />
93 THD:STO 停 止 条 件 100 kHz 模 式 2(TOSC)(BRG + 1) - ns<br />
保 持 时 间 400 kHz 模 式 2(TOSC)(BRG + 1) -<br />
1 MHz 模 式 (1) 2(TOSC)(BRG + 1) -<br />
注 1: 对 于 所 有 I 2 C 引 脚 , 最 小 引 脚 电 容 为 10 pF。<br />
图 25-18:<br />
SSP I 2 C 总 线 数 据 时 序<br />
SCL<br />
SDA<br />
输 入<br />
SDA<br />
输 出<br />
103<br />
100<br />
102<br />
101<br />
90<br />
106<br />
91 107<br />
92<br />
109 109 110<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 367 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 25-18:<br />
SSP I 2 C 总 线 数 据 要 求<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
100 THIGH 时 钟 高 电 平 时 间 100 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
400 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
(1)<br />
1 MHz 模 式 2(TOSC)(BRG + 1) - ms<br />
101 TLOW 时 钟 低 电 平 时 间 100 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
400 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
(1)<br />
1 MHz 模 式 2(TOSC)(BRG + 1) - ms<br />
102 TR SDA 和 SCL<br />
上 升 时 间<br />
103 TF SDA 和 SCL<br />
下 降 时 间<br />
90 TSU:STA 启 动 条 件<br />
建 立 时 间<br />
91 THD:STA 启 动 条 件<br />
保 持 时 间<br />
106 THD:DAT 数 据 输 入<br />
保 持 时 间<br />
107 TSU:DAT 数 据 输 入<br />
建 立 时 间<br />
92 TSU:STO 停 止 条 件<br />
建 立 时 间<br />
109 TAA 时 钟 输 出 有 效 时<br />
间<br />
100 kHz 模 式 - 1000 ns 规 定 CB 为 10-400 pF 之<br />
400 kHz 模 式 20 + 0.1 CB 300 ns 间<br />
(1)<br />
1 MHz 模 式<br />
- 300 ns<br />
100 kHz 模 式 - 300 ns 规 定 CB 为 10-400 pF 之<br />
400 kHz 模 式 20 + 0.1 CB 300 ns 间<br />
(1)<br />
1 MHz 模 式<br />
- 100 ns<br />
100 kHz 模 式 2(TOSC)(BRG + 1) - ms 仅 与 重 复 的 启 动 条 件 相 关<br />
400 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
(1)<br />
1 MHz 模 式 2(TOSC)(BRG + 1) - ms<br />
100 kHz 模 式 2(TOSC)(BRG + 1) - ms 这 个 周 期 后 , 产 生 第 一 个<br />
400 kHz 模 式 2(TOSC)(BRG + 1) - ms 时 钟 脉 冲<br />
(1)<br />
1 MHz 模 式 2(TOSC)(BRG + 1) - ms<br />
100 kHz 模 式 0 - ns<br />
400 kHz 模 式 0 0.9 ms<br />
(1)<br />
1 MHz 模 式<br />
TBD - ns<br />
100 kHz 模 式 250 - ns ( 注 2)<br />
400 kHz 模 式 100 - ns<br />
(1)<br />
1 MHz 模 式<br />
TBD - ns<br />
100 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
400 kHz 模 式 2(TOSC)(BRG + 1) - ms<br />
(1)<br />
1 MHz 模 式 2(TOSC)(BRG + 1) - ms<br />
100 kHz 模 式 - 3500 ns<br />
400 kHz 模 式 - 1000 ns<br />
(1)<br />
1 MHz 模 式<br />
- - ns<br />
110 TBUF 总 线 空 闲 时 间 100 kHz 模 式 4.7 - ms 在 新 的 传 输 开 始 之 前 总 线<br />
400 kHz 模 式 1.3 - ms 必 须 保 持 空 闲 的 时 间<br />
1 MHz 模 式 (1) TBD - ms<br />
D102 CB 总 线 的 容 性 负 载 - 400 pF<br />
注 1: 对 于 所 有 I 2 C 引 脚 , 最 小 引 脚 电 容 为 10 pF。<br />
2: 在 标 准 模 式 的 I 2 C 总 线 系 统 中 可 以 使 用 快 速 模 式 的 I 2 C 总 线 器 件 , 但 必 须 满 足 参 数 107 ≥ 250 ns 的 要 求 。<br />
如 果 器 件 没 有 延 长 SCL 信 号 的 低 电 平 周 期 , 将 自 动 满 足 此 条 件 。 如 果 该 器 件 延 长 SCL 信 号 的 低 电 平 周 期 ,<br />
它 必 须 将 下 一 个 数 据 位 输 出 到 SDA 线 ; SCL 线 释 放 前 , 参 数 102 + 参 数 107 = 1000 + 250 = 1250 ns<br />
(100 kHz 模 式 )。<br />
DS39616B_CN 第 368 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
图 25-19:<br />
USART 同 步 发 送 ( 主 控 / 从 动 ) 时 序<br />
RC6/TX/CK<br />
引 脚<br />
RC7/RX/DT<br />
引 脚<br />
121 121<br />
120<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
122<br />
表 25-19:<br />
USART 同 步 发 送 要 求<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
120 TckH2dtV 同 步 发 送 ( 主 控 和 从 动 )<br />
时 钟 高 电 平 到 数 据 输 出 有 效 PIC18FXX31 - 40 ns<br />
PIC18LFXX31 - 100 ns<br />
121 Tckrf 时 钟 输 出 上 升 时 间 和 下 降 时 间<br />
( 主 控 模 式 )<br />
PIC18FXX31 - 20 ns<br />
PIC18LFXX31 - 50 ns<br />
122 Tdtrf 时 钟 输 出 上 升 时 间 和 下 降 时 间 PIC18FXX31 - 20 ns<br />
PIC18LFXX31 - 50 ns<br />
图 25-20:<br />
USART 同 步 接 收 ( 主 控 / 从 动 ) 时 序<br />
RC6/TX/CK<br />
引 脚<br />
RC7/RX/DT<br />
引 脚<br />
125<br />
126<br />
注 : 负 载 条 件 请 参 考 图 25-4。<br />
表 25-20:<br />
USART 同 步 接 收 要 求<br />
参 数 号 符 号 特 性 最 小 值 最 大 值 单 位 条 件<br />
125 TdtV2ckl 同 步 接 收 ( 主 控 和 从 动 )<br />
在 CK ↓ 之 前 数 据 保 持 (DT 保 持 时 间 ) 10 - ns<br />
126 TckL2dtl 在 CK ↓ 之 后 数 据 保 持 (DT 保 持 时 间 ) 15 - ns<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 369 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
表 25-21: A/D 转 换 器 特 性 :<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> ( 工 业 级 )<br />
参 数 编 号 符 号 特 性 最 小 值 典 型 值 最 大 值 单 位 条 件<br />
器 件 供 电<br />
AVDD 模 拟 VDD VDD-0.3 - VDD+0.3 V<br />
AVSS 模 拟 VSS VSS-0.3 VSS+0.3 V<br />
IAD<br />
模 块 电 流<br />
( 转 换 过 程 中 )<br />
500<br />
250<br />
IADO 模 块 关 断 电 流 1.0 µA<br />
µA<br />
µA<br />
VDD = 5V<br />
VDD = 2.5V<br />
AC 时 序 参 数<br />
A10 FTHR 吞 吐 率 -<br />
-<br />
A11 TAD A/D 时 钟 周 期 385<br />
1000<br />
A12 TRC A/D 内 部 RC 振 荡 器 周 期 500<br />
750<br />
10000<br />
200<br />
75<br />
ksps<br />
ksps<br />
VDD=5V, 单 通 道<br />
VDD < 3V, 单 通 道<br />
20,000<br />
20,000<br />
ns<br />
VDD = 5V<br />
VDD = 3V<br />
1500<br />
2250<br />
20000<br />
ns<br />
ns<br />
ns<br />
PIC18F 器 件<br />
PIC18LF 器 件<br />
AVDD < 3.0V<br />
A13 TCNV 转 换 时 间 (1) 12 12 12 TAD<br />
A14 TACQ 采 集 时 间 (2) 2 (2) TAD<br />
A16 TTC 转 换 从 外 部 开 始 1/4 TCY 1Tcy<br />
参 考 电 压 输 入<br />
A20 VREF 10 位 分 辨 率 的 参 考 电 压<br />
(VREF+ - VREF-)<br />
1.5<br />
1.8<br />
-<br />
-<br />
AVDD-AVSS<br />
AVDD-AVSS<br />
V<br />
V<br />
VDD ≥ 3V<br />
VDD < 3V<br />
A21 VREFH 参 考 电 压 高 电 平<br />
1.5V - AVDD V VDD ≥ 3V<br />
(AVDD 或 VREF+)<br />
A22 VREFL 参 考 电 压 低 电 平<br />
(AVSS 或 VREF-)<br />
AVSS - VREFH-1.5V V<br />
A23 IREF 参 考 电 流 150µA<br />
75µA<br />
模 拟 输 入 特 性<br />
A26 VAIN (3)<br />
输 入 电 压<br />
AVSS-0.3 - AVDD+0.3 V<br />
A30 ZAIN 模 拟 电 压 源 的 建 议 阻 抗 - - 2.5 kΩ<br />
VDD = 5V<br />
VDD = 2.5V<br />
A31 ZCHIN 模 拟 通 道 输 入 阻 抗 - 10.0 kΩ VDD = 3.0 V<br />
DC 性 能<br />
A41 NR 分 辨 率 10 位 -<br />
A42 EIL 积 分 非 线 性 - - < ±1 LSb VDD ≥ 3.0V<br />
VREFH ≥ 3.0V<br />
A43 EIL 微 分 非 线 性 - - < ±1 LSb VDD ≥ 3.0V<br />
VREFH ≥ 3.0V<br />
A45 EOFF 偏 移 误 差 - ±0.5 < ±1.5 LSb VDD ≥ 3.0V<br />
VREFH ≥ 3.0V<br />
A46 EGA 增 益 误 差 - ±0.5 < ±1.5 LSb VDD ≥ 3.0V<br />
VREFH ≥ 3.0V<br />
A47 - (4) 单 调 性 保 证 - VDD ≥ 3.0V<br />
VREFH ≥ 3.0V<br />
注 1: 转 换 时 间 不 包 括 采 集 时 间 。 有 关 采 集 时 间 要 求 的 全 面 讨 论 , 请 参 阅 第 20.0 节 “10 位 高 速 模 数 转 换 器 (A/D) 模 块 ”。<br />
2: Tacq 在 连 续 模 式 中 应 该 为 12Tad 或 更 大 。<br />
3: 由 于 VDD 小 于 2.7V 且 温 度 低 于 0°C, 应 该 把 VAIN 限 制 在 小 于 VDD/2 的 范 围 内 。<br />
4: A/D 转 换 结 果 不 会 随 着 输 入 电 压 的 增 加 而 减 小 , 也 不 会 丢 失 数 字 码 。<br />
DS39616B_CN 第 370 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
26.0 直 流 和 交 流 特 性 图 表 初 稿<br />
目 前 没 有 图 表 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 371 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 372 页 初 稿 © 2005 Microchip Technology Inc.
27.0 封 装 信 息<br />
27.1 封 装 标 识 信 息<br />
28 引 脚 PDIP( 小 型 DIP) 示 例<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
XXXXXXXXXXXXXXXXX<br />
XXXXXXXXXXXXXXXXX<br />
YYWWNNN<br />
<strong>PIC18F2331</strong>-I/SP<br />
0317017<br />
28 引 脚 SOIC<br />
示 例<br />
XXXXXXXXXXXXXXXXXXXX<br />
XXXXXXXXXXXXXXXXXXXX<br />
XXXXXXXXXXXXXXXXXXXX<br />
YYWWNNN<br />
PIC18F<strong>2431</strong>-E/SO<br />
0310017<br />
40 引 脚 PDIP 示 例<br />
XXXXXXXXXXXXXXXXXX<br />
XXXXXXXXXXXXXXXXXX<br />
XXXXXXXXXXXXXXXXXX<br />
YYWWNNN<br />
PIC18F<strong>4331</strong>-I/P<br />
0312017<br />
44 引 脚 TQFP 示 例<br />
XXXXXXXXXX<br />
XXXXXXXXXX<br />
XXXXXXXXXX<br />
YYWWNNN<br />
PIC18F<strong>4431</strong><br />
-I/PT<br />
0320017<br />
44 引 脚 QFN 示 例<br />
XXXXXXXXXX<br />
XXXXXXXXXX<br />
XXXXXXXXXX<br />
YYWWNNN<br />
PIC18F<strong>4431</strong><br />
-I/ML<br />
0320017<br />
图 注 : XX...X 客 户 特 定 信 息 *<br />
Y 年 份 代 码 ( 日 历 年 的 最 后 一 位 数 字 )<br />
YY 年 份 代 码 ( 日 历 年 的 最 后 两 位 数 字 )<br />
WW 星 期 代 码 ( 一 月 一 日 的 星 期 代 码 为 “01”)<br />
NNN 以 字 母 数 字 排 序 的 追 踪 代 码<br />
注 :<br />
Microchip 元 器 件 编 号 如 果 无 法 在 同 一 行 内 完 整 标 注 , 将 换 行 标 出 , 因 此 会 限 制<br />
表 示 客 户 特 定 信 息 的 字 符 数 。<br />
* 标 准 PICmicro 器 件 标 识 由 Microchip 元 器 件 编 号 、 年 份 代 码 、 星 期 代 码 和 追 踪 代 码 组 成 。 若 PICmicro 器<br />
件 标 识 超 出 上 述 内 容 , 需 支 付 一 定 的 附 加 费 用 。 请 向 当 地 的 Microchip 销 售 办 事 处 了 解 确 认 。 对 于 QTP 器<br />
件 , 任 何 特 殊 标 记 的 费 用 都 已 包 含 在 QTP 价 格 中 。<br />
©2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 373 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
27.2 封 装 详 细 信 息<br />
以 下 部 分 将 介 绍 封 装 的 技 术 细 节 。<br />
28 引 脚 塑 料 窄 条 双 列 直 插 式 封 装 (SP)——300 mil (PDIP)<br />
E1<br />
D<br />
n<br />
2<br />
1<br />
α<br />
E<br />
A2<br />
A<br />
c<br />
L<br />
β<br />
A1<br />
B1<br />
eB<br />
B<br />
p<br />
单 位<br />
英 寸 *<br />
尺 寸 范 围 最 小 正 常 最 大<br />
引 脚 数<br />
n<br />
28<br />
引 脚 间 距<br />
p<br />
.100<br />
顶 端 到 固 定 面 高 度<br />
A<br />
.140 .150 .160<br />
塑 模 封 装 厚 度<br />
A2<br />
.125 .130 .135<br />
塑 封 底 端 到 固 定 面 高 度<br />
A1<br />
.015<br />
肩 到 肩 宽 度<br />
E<br />
.300 .310 .325<br />
塑 模 封 装 宽 度<br />
E1<br />
.275 .285 .295<br />
总 长 度<br />
D 1.345 1.365 1.385<br />
引 脚 尖 到 固 定 面 高 度<br />
L<br />
.125 .130 .135<br />
引 脚 厚 度<br />
c<br />
.008 .012 .015<br />
引 脚 上 部 宽 度<br />
B1<br />
.040 .053 .065<br />
引 脚 下 部 宽 度<br />
B<br />
.016 .019 .022<br />
总 排 列 间 距 §<br />
eB<br />
.320 .350 .430<br />
塑 模 顶 部 锥 度<br />
α<br />
5<br />
10<br />
15<br />
塑 模 底 部 锥 度<br />
β<br />
5<br />
10<br />
15<br />
* 控 制 参 数<br />
§ 重 要 特 性<br />
注 :<br />
尺 寸 D 和 E1 不 包 括 塑 模 毛 边 或 突 起 。 塑 模 每 侧 的 毛 边 或 突 起 不 得 超 过 .010"(0.254mm)。<br />
等 同 于 JEDEC 号 :MO-095<br />
图 号 C04-070<br />
最 小<br />
3.56<br />
3.18<br />
0.38<br />
7.62<br />
6.99<br />
34.16<br />
3.18<br />
0.20<br />
1.02<br />
0.41<br />
8.13<br />
5<br />
5<br />
毫 米<br />
正 常<br />
28<br />
2.54<br />
3.81<br />
3.30<br />
7.87<br />
7.24<br />
34.67<br />
3.30<br />
0.29<br />
1.33<br />
0.48<br />
8.89<br />
10<br />
10<br />
最 大<br />
4.06<br />
3.43<br />
8.26<br />
7.49<br />
35.18<br />
3.43<br />
0.38<br />
1.65<br />
0.56<br />
10.92<br />
15<br />
15<br />
DS39616B_CN 第 374 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
28 引 脚 塑 料 小 型 封 装 (SO)—— 宽 条 , 300 mil (SOIC)<br />
E<br />
p<br />
E1<br />
D<br />
B<br />
n<br />
2<br />
1<br />
h<br />
α<br />
45°<br />
c<br />
A<br />
A2<br />
β<br />
L<br />
φ<br />
A1<br />
单 位<br />
英 寸 *<br />
毫 米<br />
尺 寸 范 围 最 小 正 常 最 大 最 小 正 常 最 大<br />
引 脚 数<br />
n<br />
28<br />
28<br />
引 脚 间 距<br />
p<br />
.050<br />
1.27<br />
总 高 度<br />
A .093 .099 .104 2.36 2.50 2.64<br />
塑 模 封 装 厚 度<br />
A2 .088 .091 .094 2.24 2.31 2.39<br />
悬 空 间 隙 §<br />
A1 .004 .008 .012 0.10 0.20 0.30<br />
总 宽 度<br />
E .394 .407 .420 10.01 10.34 10.67<br />
塑 模 封 装 宽 度<br />
E1 .288 .295 .299 7.32 7.49 7.59<br />
总 长 度<br />
D .695 .704 .712 17.65 17.87 18.08<br />
斜 面 投 影 距 离<br />
h .010 .020 .029 0.25 0.50 0.74<br />
底 脚 长 度<br />
L .016 .033 .050 0.41 0.84 1.27<br />
底 脚 向 上 倾 斜 角 φ 0 4 8 0 4 8<br />
引 脚 厚 度<br />
c .009 .011 .013 0.23 0.28 0.33<br />
引 脚 宽 度<br />
B .014 .017 .020 0.36 0.42 0.51<br />
塑 模 顶 部 锥 度<br />
α<br />
0 12 15<br />
0 12 15<br />
塑 模 底 部 锥 度<br />
β<br />
0 12 15<br />
0 12 15<br />
* 控 制 参 数<br />
§ 重 要 特 性<br />
注 :<br />
尺 寸 D 和 E1 不 包 括 塑 模 毛 边 或 突 起 。 塑 模 每 侧 的 毛 边 或 突 起 不 得 超 过 .010"(0.254mm)。<br />
等 同 于 JEDEC 号 :MS-013<br />
图 号 C04-052<br />
©2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 375 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
40 引 脚 塑 料 双 列 直 插 式 封 装 (P)——600 mil (PDIP)<br />
E1<br />
D<br />
n<br />
2<br />
1<br />
α<br />
E<br />
A<br />
A2<br />
c<br />
L<br />
β<br />
eB<br />
A1<br />
B1<br />
B<br />
p<br />
单 位<br />
尺 寸 范 围<br />
n<br />
p<br />
最 小<br />
英 寸 *<br />
正 常<br />
40<br />
.100<br />
.175<br />
.150<br />
引 脚 数<br />
引 脚 间 距<br />
顶 端 到 固 定 面 高 度<br />
A .160<br />
.190<br />
塑 模 封 装 厚 度<br />
A2 .140<br />
.160<br />
塑 封 底 端 到 固 定 面 高 度<br />
A1 .015<br />
肩 到 肩 宽 度<br />
E .595 .600 .625<br />
塑 模 封 装 宽 度<br />
E1 .530 .545 .560<br />
总 长 度<br />
D 2.045 2.058 2.065<br />
引 脚 尖 到 固 定 面 高 度<br />
L .120 .130 .135<br />
引 脚 厚 度<br />
c .008 .012 .015<br />
引 脚 上 部 宽 度<br />
B1 .030 .050 .070<br />
引 脚 下 部 宽 度<br />
B .014 .018 .022<br />
总 排 列 间 距 §<br />
eB .620 .650 .680<br />
塑 模 顶 部 锥 度<br />
α<br />
5 10 15<br />
塑 模 底 部 锥 度<br />
β<br />
5 10 15<br />
* 控 制 参 数<br />
§ 重 要 特 性<br />
注 :<br />
尺 寸 D 和 E1 不 包 括 塑 模 毛 边 或 突 起 。 塑 模 每 侧 的 毛 边 或 突 起 不 得 超 过 .010"(0.254mm)。<br />
等 同 于 JEDEC 号 :MO-011<br />
图 号 C04-016<br />
最 大<br />
毫 米<br />
最 小 正 常<br />
40<br />
2.54<br />
4.06 4.45<br />
3.56 3.81<br />
0.38<br />
15.11 15.24<br />
13.46 13.84<br />
51.94 52.26<br />
3.05 3.30<br />
0.20 0.29<br />
0.76 1.27<br />
0.36 0.46<br />
15.75 16.51<br />
5 10<br />
5 10<br />
最 大<br />
4.83<br />
4.06<br />
15.88<br />
14.22<br />
52.45<br />
3.43<br />
0.38<br />
1.78<br />
0.56<br />
17.27<br />
15<br />
15<br />
DS39616B_CN 第 376 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
44 引 脚 塑 料 薄 型 四 方 扁 平 封 装 (PT)—— 主 体 10x10x1 mm, 引 脚 形 式 1.0/0.10 mm (TQFP)<br />
E<br />
E1<br />
引 脚 数 =n1<br />
p<br />
D1<br />
D<br />
B<br />
2<br />
1<br />
n<br />
CH x 45 °<br />
A<br />
α<br />
c<br />
β<br />
φ<br />
L<br />
A1<br />
(F)<br />
A2<br />
单 位 英 寸 毫 米 *<br />
尺 寸 范 围 最 小 正 常 最 大 最 小 正 常 最 大<br />
引 脚 数 n 44 44<br />
引 脚 间 距 p .031 0.80<br />
每 侧 引 脚 数 n1 11 11<br />
总 高 度 A .039 .043 .047 1.00 1.10 1.20<br />
塑 模 封 装 厚 度 A2 .037 .039 .041 0.95 1.00 1.05<br />
悬 空 间 隙 § A1 .002 .004 .006 0.05 0.10 0.15<br />
底 脚 长 度 L .018 .024 .030 0.45 0.60 0.75<br />
底 脚 占 位 ( 参 考 )<br />
(F)<br />
.039<br />
1.00<br />
底 脚 倾 斜 角 φ 0 3.5 7 0 3.5 7<br />
总 宽 度 E .463 .472 .482 11.75 12.00 12.25<br />
总 长 度 D .463 .472 .482 11.75 12.00 12.25<br />
塑 模 封 装 宽 度 E1 .390 .394 .398 9.90 10.00 10.10<br />
塑 模 封 装 长 度 D1 .390 .394 .398 9.90 10.00 10.10<br />
引 脚 厚 度 c .004 .006 .008 0.09 0.15 0.20<br />
引 脚 宽 度 B .012 .015 .017 0.30 0.38 0.44<br />
引 脚 1 处 角 斜 面<br />
CH .025 .035 .045 0.64 0.89 1.14<br />
塑 模 顶 部 锥 度 α 5 10 15 5 10 15<br />
塑 封 底 部 锥 度 β 5 10 15 5 10 15<br />
* 控 制 参 数<br />
§ 重 要 特 性<br />
注 :<br />
尺 寸 D1 和 E1 不 包 括 塑 模 毛 边 或 突 起 。 塑 模 每 侧 的 毛 边 或 突 起 不 得 超 过 .010"(0.254mm)。<br />
等 同 于 JEDEC 号 :MS-026<br />
图 号 C04-076<br />
©2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 377 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
44 引 脚 塑 料 四 方 扁 平 无 引 线 封 装 (ML)—— 主 体 8x8 mm (QFN)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
DS39616B_CN 第 378 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
附 录 A:<br />
版 本 历 史<br />
附 录 B:<br />
器 件 比 较<br />
版 本 A (2003 年 7 月 )<br />
表 B-1 所 示 为 本 数 据 手 册 所 列 器 件 的 比 较 。<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 器 件 的 原 始 数 据 手 册 。<br />
版 本 B (2003 年 12 月 )<br />
更 新 了 第 25.0 节 “ 电 气 特 性 ” 中 的 电 气 规 范 , 并 且 对<br />
数 据 手 册 文 本 稍 作 修 正 。<br />
表 B-1:<br />
器 件 比 较<br />
功 能 部 件 <strong>PIC18F2331</strong> PIC18F<strong>2431</strong> PIC18F<strong>4331</strong> PIC18F<strong>4431</strong><br />
程 序 存 储 器 ( 字 节 ) 4096 8192 4096 8192<br />
程 序 存 储 器 ( 指 令 ) 2048 4096 2048 4096<br />
中 断 源 22 22 34 34<br />
I/O 端 口 端 口 A, B, C, D, E 端 口 A, B, C, D, E 端 口 A, B, C, D, E 端 口 A, B, C, D, E<br />
捕 捉 / 比 较 / PWM 模 块 2 2 2 2<br />
增 强 型 捕 捉 / 比 较 / PWM 模 块 1 1 1 1<br />
并 行 通 讯 (PSP) 无 无 有 有<br />
10 位 模 数 转 换 模 块 5 个 输 入 通 道 5 个 输 入 通 道 9 个 输 入 通 道 9 个 输 入 通 道<br />
封 装<br />
28 引 脚 SDIP<br />
28 引 脚 SOIC<br />
28 引 脚 SDIP<br />
28 引 脚 SOIC<br />
40 引 脚 DIP<br />
44 引 脚 TQFP<br />
44 引 脚 QFN<br />
40 引 脚 DIP<br />
44 引 脚 TQFP<br />
44 引 脚 QFN<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 379 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
附 录 C:<br />
转 换 注 意 事 项<br />
本 附 录 讲 述 了 从 器 件 的 老 版 本 升 级 至 此 数 据 手 册 中 所 列<br />
版 本 时 需 要 注 意 的 事 项 。 这 些 变 化 通 常 是 由 于 所 采 用 的<br />
工 艺 技 术 不 同 而 引 起 的 。 比 方 说 从 PIC16C74A 转 换 为<br />
PIC16C74B。<br />
不 适 用<br />
附 录 D:<br />
从 低 档 器 件 移 植 到 增 强<br />
型 器 件<br />
本 节 论 述 如 何 从 低 档 器 件 ( 如 PIC16C5X) 移 植 到 增 强<br />
型 单 片 机 ( 如 PIC18FXXX)。<br />
下 表 列 出 了 本 系 列 器 件 与 PIC16C5X 单 片 机 系 列 相 比 ,<br />
所 做 的 修 改 :<br />
目 前 未 提 供<br />
DS39616B_CN 第 380 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
附 录 E:<br />
从 中 档 器 件 移 植 到 增 强<br />
型 器 件<br />
在 AN716(“Migrating Designs from PIC16C74A/74B<br />
to PIC18F442” ) 中 详 细 讲 述 了 中 档 单 片 机 ( 例 如<br />
PIC16CXXX) 与 增 强 型 器 件 ( 例 如 PIC18FXXX) 之 间<br />
的 区 别 。 虽 然 所 讨 论 的 变 化 都 是 针 对 特 定 器 件 的 , 但 是<br />
通 常 适 用 于 所 有 从 中 档 器 件 到 增 强 型 器 件 的 移 植 。<br />
此 应 用 笔 记 也 可 以 从 Microchip 的 网 站 获 取 , 网 址 是 :<br />
www.Microchip.com。<br />
附 录 F:<br />
从 高 档 器 件 移 植 到 增 强<br />
型 器 件<br />
在 AN726(“PIC17CXXX to PIC18FXXX Migration”)<br />
中 详 细 讲 述 了 高 档 单 片 机 ( 例 如 PIC17CXXX) 如 何 移<br />
植 到 增 强 型 器 件 ( 例 如 PIC18FXXX), 以 及 它 们 之 间<br />
的 区 别 。<br />
此 应 用 笔 记 也 可 以 从 Microchip 的 网 站 获 取 , 网 址 是 :<br />
www.Microchip.com。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 381 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
注 :<br />
DS39616B_CN 第 382 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
索 引<br />
A<br />
A/D .................................................................................. 243<br />
计 算 所 需 要 的 最 小 采 集 时 间 ..................................... 254<br />
特 殊 事 件 触 发 器 (CCP).......................................... 154<br />
相 关 寄 存 器 ............................................................. 259<br />
ACK 脉 冲 .................................................................217, 218<br />
AC ( 时 序 ) 特 性 ............................................................ 353<br />
参 数 符 号 ................................................................... 353<br />
器 件 时 序 规 范 的 负 载 条 件 ......................................... 354<br />
时 序 条 件 .................................................................. 354<br />
温 度 和 电 压 规 范 ....................................................... 354<br />
ADDLW ............................................................................. 293<br />
ADDWF............................................................................. 293<br />
ADDWFC .......................................................................... 294<br />
ANDLW ............................................................................. 294<br />
ANDWF............................................................................. 295<br />
B<br />
BC ..................................................................................... 295<br />
BCF................................................................................... 296<br />
BF 位 ................................................................................ 212<br />
BN ..................................................................................... 296<br />
BNC .................................................................................. 297<br />
BNN .................................................................................. 297<br />
BNOV................................................................................ 298<br />
BNZ ................................................................................. 298<br />
BOR. 参 见 欠 压 复 位 。<br />
BOV ................................................................................. 301<br />
BRA ................................................................................. 299<br />
BSF ................................................................................. 299<br />
BTFSC ............................................................................ 300<br />
BTFSS ............................................................................. 300<br />
BTG ................................................................................. 301<br />
BZ .................................................................................... 302<br />
版 本 历 史 .......................................................................... 379<br />
比 较 (CCP 模 块 )<br />
CCPR1 寄 存 器 ........................................................ 154<br />
CCP 引 脚 配 置 ......................................................... 154<br />
软 件 中 断 .................................................................. 154<br />
Timer1 模 式 选 择 ...................................................... 154<br />
特 殊 事 件 触 发 器 ....................................................... 154<br />
相 关 寄 存 器 .............................................................. 155<br />
编 程 , 器 件 指 令 ............................................................... 287<br />
表 指 针 操 作 ( 表 ) ............................................................. 78<br />
不 同 情 况 下 的 延 时 ( 表 ) ................................................... 47<br />
捕 捉 / 比 较 /PWM (CCP) .............................................. 151<br />
比 较 模 式 . 参 见 比 较 。<br />
捕 捉 模 式 . 参 见 捕 捉 。<br />
CCP1 ....................................................................... 152<br />
CCPR1H 寄 存 器 .............................................. 152<br />
CCPR1L 寄 存 器 .............................................. 152<br />
CCP2 ....................................................................... 152<br />
CCPR2H 寄 存 器 .............................................. 152<br />
CCPR2L 寄 存 器 .............................................. 152<br />
定 时 器 资 源 .............................................................. 152<br />
PWM 模 式 . 参 见 PWM。<br />
捕 捉 (CCP 模 块 ) .................................................153, 154<br />
CCPR1H:CCPR1L 寄 存 器 ...................................... 153<br />
CCP 引 脚 配 置 ......................................................... 153<br />
软 件 中 断 .................................................................. 153<br />
Timer1 模 式 选 择 ...................................................... 153<br />
相 关 寄 存 器 .............................................................. 155<br />
C<br />
CALL ............................................................................... 302<br />
C 编 译 器<br />
MPLAB C17 ............................................................ 332<br />
MPLAB C18 ............................................................ 332<br />
MPLAB C30 ............................................................ 332<br />
CKE 位 ............................................................................ 212<br />
CKP 位 ............................................................................ 213<br />
CLRF .............................................................................. 303<br />
CLRWDT ......................................................................... 303<br />
COMF ............................................................................. 304<br />
CPFSEQ ......................................................................... 304<br />
CPFSGT ......................................................................... 305<br />
CPFSLT .......................................................................... 305<br />
CPU 的 特 殊 功 能 ............................................................. 267<br />
操 作 码 字 段 描 述 ............................................................... 288<br />
查 找 表 ............................................................................... 63<br />
程 序 存 储 器<br />
复 位 向 量 ................................................................... 57<br />
<strong>PIC18F2331</strong>/<strong>4331</strong> 的 映 射 图 和 堆 栈 ........................... 57<br />
PIC18F<strong>2431</strong>/<strong>4431</strong> 的 映 射 图 和 堆 栈 ........................... 57<br />
中 断 向 量 ................................................................... 57<br />
程 序 存 储 器 代 码 保 护 ....................................................... 284<br />
程 序 存 储 器 中 的 指 令 ......................................................... 62<br />
双 字 指 令 ................................................................... 62<br />
程 序 计 数 器<br />
PCLATH 寄 存 器 ........................................................ 60<br />
PCLATU 寄 存 器 ........................................................ 60<br />
PCL 寄 存 器 ............................................................... 60<br />
程 序 校 验 ......................................................................... 283<br />
程 序 校 验 和 代 码 保 护 相 关 寄 存 器 ...................................... 283<br />
串 行 时 钟 (SCK) 引 脚 ................................................... 211<br />
串 行 数 据 输 出 (SDO) 引 脚 ........................................... 211<br />
串 行 数 据 输 入 (SDI) 引 脚 ............................................. 211<br />
从 低 档 器 件 迁 移 到 增 强 型 器 件 ......................................... 380<br />
从 动 选 择 (SS) 引 脚 ..................................................... 211<br />
从 高 档 器 件 迁 移 到 增 强 型 器 件 ......................................... 381<br />
从 中 档 器 件 迁 移 到 增 强 型 器 件 ......................................... 381<br />
存 储 器 编 程 要 求 ............................................................... 351<br />
存 储 器 构 成 ........................................................................ 57<br />
程 序 存 储 器 ................................................................ 57<br />
数 据 存 储 器 ................................................................ 63<br />
存 储 区 选 择 寄 存 器 (BSR) ............................................... 70<br />
D<br />
D/A 位 ............................................................................. 212<br />
DAW ............................................................................... 306<br />
DCFSNZ ......................................................................... 307<br />
DC 和 AC 特 性<br />
图 表 ( 初 稿 ) .......................................................... 371<br />
DC 特 性 ........................................................ 339, 340, 349<br />
DECF .............................................................................. 306<br />
DECFSZ .......................................................................... 307<br />
代 码 保 护 ................................................................267, 283<br />
代 码 示 例<br />
16 × 16 无 符 号 乘 法 程 序 .......................................... 90<br />
16 × 16 有 符 号 乘 法 程 序 .......................................... 90<br />
8 × 8 无 符 号 乘 法 程 序 .............................................. 89<br />
8 × 8 有 符 号 乘 法 程 序 .............................................. 89<br />
擦 除 闪 存 程 序 存 储 器 的 一 行 ....................................... 80<br />
初 始 化 PORTA ........................................................ 107<br />
初 始 化 PORTB ........................................................ 112<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 381 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
初 始 化 PORTC ........................................................ 118<br />
初 始 化 PORTD ........................................................ 124<br />
初 始 化 PORTE ........................................................ 129<br />
读 闪 存 程 序 存 储 器 的 一 个 字 ....................................... 79<br />
计 算 GOTO 使 用 偏 移 值 ............................................. 63<br />
快 速 寄 存 器 堆 栈 ......................................................... 60<br />
使 用 间 接 寻 址 将 RAM ( 存 储 区 1) 清 零 的 方 法 ........ 71<br />
使 用 Timer1 中 断 服 务 程 序 实 现 实 时 时 钟 ................. 141<br />
数 据 EEPROM 读 取 .................................................. 87<br />
数 据 EEPROM 刷 新 程 序 ........................................... 88<br />
数 据 EEPROM 写 入 .................................................. 87<br />
写 入 闪 存 程 序 存 储 器 .............................................82-83<br />
在 捕 捉 预 分 频 器 之 间 进 行 切 换 ................................. 153<br />
在 RAM 内 保 存 Status、 WREG 和 BSR 寄 存 器 ..... 106<br />
低 压 ICSP 编 程 ................................................................ 286<br />
低 压 检 测 .......................................................................... 261<br />
复 位 的 影 响 .............................................................. 265<br />
工 作 原 理 .................................................................. 264<br />
参 考 电 压 设 置 点 ............................................... 265<br />
电 流 消 耗 .......................................................... 265<br />
特 性 ......................................................................... 352<br />
在 休 眠 模 式 下 工 作 ................................................... 265<br />
电 气 特 性 .......................................................................... 337<br />
读 表 / 写 表 ........................................................................ 63<br />
堆 栈 满 / 下 溢 复 位 .............................................................. 59<br />
F<br />
FSCM. 参 见 故 障 保 护 时 钟 监 视 器 。<br />
返 回 地 址 堆 栈 ..................................................................... 58<br />
返 回 堆 栈 指 针 (STKPTR) ............................................... 58<br />
封 装 信 息 .......................................................................... 373<br />
标 识 ......................................................................... 373<br />
复 位 ......................................................................... 45, 267<br />
G<br />
GOTO .............................................................................. 308<br />
更 新 地 址 位 , UA ............................................................. 212<br />
功 耗 管 理 模 式 ..................................................................... 31<br />
唤 醒 ........................................................................... 40<br />
进 入 ........................................................................... 32<br />
空 闲 模 式 .................................................................... 33<br />
休 眠 模 式 .................................................................... 33<br />
选 择 ........................................................................... 31<br />
运 行 模 式 .................................................................... 38<br />
综 述 ( 表 ) ................................................................ 31<br />
公 式<br />
16 × 16 无 符 号 乘 法 算 法 ........................................... 90<br />
16 × 16 有 符 号 乘 法 算 法 ........................................... 90<br />
A/D 采 集 时 间 ........................................................... 253<br />
A/D 最 小 充 电 时 间 .................................................... 253<br />
固 件 指 令 .......................................................................... 287<br />
故 障 保 护 时 钟 监 视 器 .............................................. 267, 281<br />
功 耗 管 理 模 式 下 的 中 断 ............................................ 282<br />
POR 或 从 休 眠 中 唤 醒 .............................................. 282<br />
振 荡 器 故 障 期 间 的 WDT .......................................... 281<br />
H<br />
HSPLL ............................................................................... 22<br />
后 分 频 器 , WDT<br />
比 率 选 择 (T0PS2:T0PS0 位 ) .............................. 135<br />
分 配 (PSA 位 ) ...................................................... 135<br />
汇 编 器<br />
MPASM 汇 编 器 ....................................................... 331<br />
I<br />
I/O 端 口 ........................................................................... 107<br />
I 2 C 模 式<br />
从 动 模 式<br />
SCL 和 SDA 引 脚 ............................................ 217<br />
多 主 模 式 ................................................................. 220<br />
发 送 ......................................................................... 219<br />
工 作 原 理 ................................................................. 217<br />
接 收 ......................................................................... 218<br />
模 式 选 择 ................................................................. 217<br />
相 关 寄 存 器 .............................................................. 220<br />
寻 址 ......................................................................... 218<br />
主 控 模 式 ................................................................. 220<br />
ID 单 元 ...................................................................267, 286<br />
INCF ................................................................................ 308<br />
INCFSZ ........................................................................... 309<br />
INFSNZ ........................................................................... 309<br />
INTCON 寄 存 器 ................................................................. 93<br />
RBIF 位 ................................................................... 112<br />
INTOSC 频 率 漂 移 ............................................................. 42<br />
INTOSC, INTRC. 参 见 内 部 振 荡 电 路 。<br />
IORLW ............................................................................ 310<br />
IORWF ............................................................................ 310<br />
IPR 寄 存 器 ...................................................................... 102<br />
J<br />
寄 存 器<br />
CONFIG1H ( 配 置 寄 存 器 1 高 位 ) ......................... 268<br />
CONFIG2H ( 配 置 寄 存 器 2 高 位 ) ................270, 271<br />
CONFIG2L ( 配 置 寄 存 器 2 低 位 ) .......................... 269<br />
CONFIG3H ( 配 置 寄 存 器 3 高 位 ) ......................... 272<br />
CONFIG4L ( 配 置 寄 存 器 4 低 位 ) .......................... 273<br />
CONFIG5H ( 配 置 寄 存 器 5 高 位 ) ......................... 274<br />
CONFIG6H ( 配 置 寄 存 器 6 高 位 ) ......................... 275<br />
CONFIG6L ( 配 置 寄 存 器 6 低 位 ) .......................... 275<br />
CONFIG7H ( 配 置 寄 存 器 7 高 位 ) ......................... 276<br />
CONFIG7L ( 配 置 寄 存 器 7 低 位 ) .......................... 275<br />
EECON1 ( 数 据 EEPROM 控 制 1) ..................77, 86<br />
INTCON ( 中 断 控 制 ) .............................................. 93<br />
INTCON2 ( 中 断 控 制 2) ......................................... 94<br />
INTCON3 ( 中 断 控 制 3) ......................................... 95<br />
IPR1 ( 外 设 中 断 优 先 级 1) ..................................... 102<br />
IPR2 ( 外 设 中 断 优 先 级 2) ..................................... 103<br />
LVDCON (LVD 控 制 ) .......................................... 263<br />
OSCCON ( 振 荡 器 控 制 ) ......................................... 28<br />
器 件 ID 寄 存 器 1 ...................................................... 277<br />
器 件 ID 寄 存 器 2 ...................................................... 277<br />
PIE1 ( 外 设 中 断 使 能 1) .......................................... 99<br />
PIE2 ( 外 设 中 断 使 能 2) ........................................ 100<br />
PIR1 ( 外 设 中 断 请 求 ( 标 志 ) 1) ........................... 96<br />
PIR2 ( 外 设 中 断 请 求 ( 标 志 ) 2) ........................... 97<br />
RCON ( 复 位 控 制 )..........................................74, 105<br />
RCSTA ( 接 收 状 态 和 控 制 ) ................................... 223<br />
SSPCON ( 同 步 串 行 口 控 制 ) 寄 存 器 ..................... 213<br />
SSPSTAT ( 同 步 串 行 口 状 态 ) 寄 存 器 ................... 212<br />
STKPTR ( 堆 栈 指 针 ) .............................................. 59<br />
TRISE ..................................................................... 131<br />
TXSTA ( 发 送 状 态 和 控 制 ) .................................... 222<br />
WDTCON ( 看 门 狗 定 时 器 控 制 ) ............................ 278<br />
状 态 ........................................................................... 73<br />
综 述 ...................................................................... 66-68<br />
寄 存 器 文 件 ........................................................................ 63<br />
计 算 GOTO ....................................................................... 63<br />
DS39616B_CN 第 382 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
间 隔 字 符 (12 位 ) 发 送 和 接 收 ....................................... 236<br />
间 接 文 件 操 作 数 ................................................................. 63<br />
间 接 寻 址 ............................................................................ 72<br />
工 作 原 理 .................................................................... 71<br />
INDF 和 FSR 寄 存 器 ................................................. 71<br />
间 接 寻 址 操 作 ..................................................................... 72<br />
接 收 溢 出 表 示 位 (SSPOV) ........................................... 213<br />
晶 体 振 荡 器 / 陶 瓷 谐 振 器 ................................................... 21<br />
绝 对 最 大 额 定 值 ............................................................... 337<br />
K<br />
开 发 支 持 .......................................................................... 331<br />
看 门 狗 定 时 器 (WDT) ..........................................267, 278<br />
编 程 注 意 事 项 ........................................................... 278<br />
控 制 寄 存 器 .............................................................. 278<br />
相 关 寄 存 器 .............................................................. 279<br />
振 荡 器 故 障 期 间 ....................................................... 281<br />
勘 误 表 ................................................................................. 6<br />
控 制 寄 存 器<br />
EECON1 和 EECON2 ............................................... 76<br />
快 速 访 问 存 储 区 ................................................................. 70<br />
快 速 寄 存 器 堆 栈 ................................................................. 60<br />
框 图<br />
16 位 模 式 Timer0 .................................................... 134<br />
8 位 模 式 Timer0 ...................................................... 134<br />
比 较 模 式 操 作 ........................................................... 154<br />
捕 捉 模 式 操 作 ........................................................... 153<br />
带 有 外 部 输 入 的 低 压 检 测 (LVD) .......................... 262<br />
低 压 检 测 (LVD) .................................................... 262<br />
读 表 操 作 .................................................................... 75<br />
读 取 闪 存 程 序 存 储 器 .................................................. 79<br />
对 闪 存 程 序 存 储 器 的 写 表 操 作 ................................... 81<br />
故 障 保 护 时 钟 监 视 器 ................................................ 281<br />
看 门 狗 定 时 器 ........................................................... 278<br />
模 拟 输 入 模 型 ........................................................... 254<br />
<strong>PIC18F2331</strong>/<strong>2431</strong> ..................................................... 10<br />
PIC18F<strong>4331</strong>/<strong>4431</strong> ..................................................... 11<br />
PLL ............................................................................ 22<br />
PWM ( 标 准 ) ......................................................... 156<br />
片 上 复 位 电 路 ............................................................. 45<br />
RA0 引 脚 ................................................................. 108<br />
RA1 引 脚 ................................................................. 108<br />
RA3:RA2 引 脚 ......................................................... 108<br />
RA4 引 脚 ................................................................. 109<br />
RA5 引 脚 ................................................................. 110<br />
RA6 引 脚 ................................................................. 110<br />
RB3:RB0 引 脚 ......................................................... 113<br />
RB4 引 脚 ................................................................. 114<br />
RB5 引 脚 ........................................................115, 121<br />
RB7:RB6 引 脚 ......................................................... 116<br />
RC0 引 脚 ................................................................. 118<br />
RC1 引 脚 ................................................................. 119<br />
RC2 引 脚 ................................................................. 119<br />
RC3 引 脚 ................................................................. 120<br />
RC4 引 脚 ................................................................. 120<br />
RC6 引 脚 ................................................................. 121<br />
RC7 引 脚 ................................................................. 122<br />
RD0 引 脚 ................................................................. 127<br />
RD1 引 脚 ................................................................. 127<br />
RD2 引 脚 ................................................................. 126<br />
RD3 引 脚 ................................................................. 126<br />
L<br />
RD4 引 脚 ................................................................ 125<br />
RD5 引 脚 ................................................................ 125<br />
RD7:RD6 引 脚 ........................................................ 124<br />
RE2:RE0 引 脚 ......................................................... 130<br />
RE3 引 脚 ................................................................. 130<br />
SSP (I 2 C 模 式 ) .................................................... 217<br />
SSP (SPI 模 式 ) ................................................... 214<br />
Timer2 ..................................................................... 144<br />
Timer5 ..................................................................... 146<br />
Timer1 ..................................................................... 138<br />
Timer1 (16 位 读 / 写 模 式 ) ................................... 138<br />
通 用 I/O 端 口 ........................................................... 107<br />
USART 发 送 ............................................................ 231<br />
USART 接 收 ............................................................ 233<br />
外 部 上 电 复 位 电 路 ( 缓 慢 的 VDD 上 电 ) ................... 46<br />
系 统 时 钟 ................................................................... 27<br />
写 表 操 作 ................................................................... 76<br />
中 断 逻 辑 ................................................................... 92<br />
LFSR ............................................................................... 311<br />
LVD. 参 见 低 压 检 测 。 ....................................................... 261<br />
M<br />
MOVF ............................................................................. 311<br />
MOVFF ........................................................................... 312<br />
MOVLB ........................................................................... 312<br />
MOVLW .......................................................................... 313<br />
MOVWF .......................................................................... 313<br />
MPLAB ASM30 汇 编 器 、 链 接 器 、 库 管 理 器 ................... 332<br />
MPLAB ICD 2 在 线 调 试 器 ............................................... 333<br />
MPLAB ICE 2000 高 性 能 通 用 在 线 仿 真 器 ....................... 333<br />
MPLAB ICE 4000 高 性 能 通 用 在 线 仿 真 器 ....................... 333<br />
MPLAB IDE 软 件 ............................................................. 331<br />
MPLINK 目 标 链 接 器 / MPLIB 目 标 库 管 理 器 .................. 332<br />
MULLW ........................................................................... 314<br />
MULWF ........................................................................... 314<br />
脉 冲 宽 度 调 制 . 参 见 PWM (CCP 模 块 ) 和 PWM (ECCP 模<br />
块 )。<br />
模 数 转 换 器 . 参 见 A/D。<br />
N<br />
NEGF .............................................................................. 315<br />
NOP ................................................................................ 315<br />
内 部 互 联 总 线 (I 2 C) . 参 见 I 2 C 模 式 。<br />
内 部 RC 振 荡 器<br />
与 WDT 一 起 使 用 .................................................... 278<br />
内 部 振 荡 电 路<br />
INTIO 模 式 ................................................................ 24<br />
INTRC 输 出 频 率 ........................................................ 24<br />
OSCTUNE 寄 存 器 ..................................................... 24<br />
调 整 ........................................................................... 24<br />
O<br />
OPTION_REG 寄 存 器<br />
PSA 位 .................................................................... 135<br />
T0CS 位 .................................................................. 135<br />
T0PS2:T0PS0 位 .................................................... 135<br />
T0SE 位 .................................................................. 135<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 383 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
P<br />
PIC18F2X31/4X31 的 数 据 存 储 器 映 射 图 ........................... 64<br />
PICkit 1 闪 存 启 动 工 具 包 .................................................. 335<br />
PICSTART Plus 开 发 编 程 器 ............................................ 334<br />
PIE 寄 存 器 ......................................................................... 99<br />
PIR 寄 存 器 ......................................................................... 96<br />
PLL 锁 定 延 时 ..................................................................... 46<br />
POP ................................................................................. 316<br />
POR. 参 见 上 电 复 位 。<br />
PORTA<br />
LATA 寄 存 器 ............................................................ 107<br />
PORTA 寄 存 器 ........................................................ 107<br />
TRISA 寄 存 器 .......................................................... 107<br />
相 关 寄 存 器 .............................................................. 111<br />
PORTB<br />
LATB 寄 存 器 ............................................................ 112<br />
PORTB 寄 存 器 ........................................................ 112<br />
RB7:RB4 电 平 变 化 中 断 标 志 (RBIF 位 ) ................ 112<br />
TRISB 寄 存 器 .......................................................... 112<br />
相 关 寄 存 器 .............................................................. 117<br />
PORTC<br />
LATC 寄 存 器 ........................................................... 118<br />
PORTC 寄 存 器 ........................................................ 118<br />
TRISC 寄 存 器 .......................................................... 118<br />
相 关 寄 存 器 .............................................................. 123<br />
PORTD<br />
LATD 寄 存 器 ........................................................... 124<br />
PORTD 寄 存 器 ........................................................ 124<br />
TRISD 寄 存 器 .......................................................... 124<br />
相 关 寄 存 器 .............................................................. 128<br />
PORTE<br />
LATE 寄 存 器 ............................................................ 129<br />
PORTE 寄 存 器 ........................................................ 129<br />
TRISE 寄 存 器 .......................................................... 129<br />
相 关 寄 存 器 .............................................................. 132<br />
PRO MATE II 通 用 器 件 编 程 器 ........................................ 333<br />
PWM (CCP 模 块 ) ......................................................... 156<br />
CCPR1H:CCPR1L 寄 存 器 ....................................... 156<br />
PWM 操 作 的 建 立 ..................................................... 157<br />
示 例 频 率 / 分 辨 率 .................................................... 157<br />
TMR2 与 PR2 匹 配 ........................................ 143, 156<br />
相 关 寄 存 器 .............................................................. 157<br />
占 空 比 ..................................................................... 156<br />
周 期 ......................................................................... 156<br />
PUSH .............................................................................. 316<br />
PUSH 和 POP 指 令 ........................................................... 59<br />
P ( 停 止 ) 位 ................................................................... 212<br />
配 置 寄 存 器 保 护 ............................................................... 286<br />
配 置 位 .............................................................................. 267<br />
评 估 和 编 程 工 具 ............................................................... 335<br />
Q<br />
QEI 采 样 模 式 ................................................................... 172<br />
器 件 比 较 .......................................................................... 379<br />
器 件 综 述 .............................................................................. 7<br />
其 他 特 别 功 能 ............................................................... 8<br />
特 性 ( 表 ) .................................................................. 9<br />
新 的 内 核 功 能 ............................................................... 7<br />
Q 时 钟 ............................................................................. 157<br />
欠 压 复 位 (BOR) ................................................... 46, 267<br />
R<br />
R/W 位 ......................................................... 212, 218, 219<br />
RAM. 参 见 数 据 存 储 器 。<br />
RCALL ............................................................................ 317<br />
RCON 寄 存 器<br />
初 始 化 期 间 的 位 状 态 ................................................. 47<br />
位 和 位 置 ................................................................... 47<br />
RCSTA 寄 存 器<br />
SPEN 位 .................................................................. 221<br />
RC 振 荡 器 ......................................................................... 23<br />
RCIO 振 荡 模 式 .......................................................... 23<br />
RESET ............................................................................ 317<br />
RETFIE ........................................................................... 318<br />
RETLW ........................................................................... 318<br />
RETURN ......................................................................... 319<br />
RLCF ............................................................................... 319<br />
RLNCF ............................................................................ 320<br />
RRCF .............................................................................. 320<br />
RRNCF ........................................................................... 321<br />
软 件 模 拟 器 (MPLAB SIM30) ....................................... 332<br />
软 件 模 拟 器 (MPLAB SIM) ........................................... 332<br />
S<br />
SCK ................................................................................. 211<br />
SCL ................................................................................. 217<br />
SDI .................................................................................. 211<br />
SDO ................................................................................ 211<br />
SETF ............................................................................... 321<br />
Sleep ............................................................................... 322<br />
SMP 位 ............................................................................ 212<br />
SPI 模 式 .......................................................................... 211<br />
串 行 时 钟 ................................................................. 211<br />
串 行 数 据 输 出 .......................................................... 211<br />
串 行 数 据 输 入 .......................................................... 211<br />
从 动 选 择 ................................................................. 211<br />
相 关 寄 存 器 .............................................................. 216<br />
SS ................................................................................... 211<br />
SSP<br />
概 述<br />
用 于 时 钟 移 位 的 TMR2 输 出 ...........................143, 144<br />
SSP I 2 C 工 作 原 理 ........................................................... 217<br />
从 动 模 式 ................................................................. 217<br />
SSPEN 位 ....................................................................... 213<br />
SSPM 位 ................................................................ 213<br />
SSPOV 位 ....................................................................... 213<br />
SUBFWB ......................................................................... 322<br />
SUBLW ........................................................................... 323<br />
SUBWF ........................................................................... 323<br />
SUBWFB ......................................................................... 324<br />
SWAPF ........................................................................... 325<br />
S ( 起 始 ) 位 ................................................................... 212<br />
闪 存 程 序 存 储 器 ................................................................. 75<br />
表 指 针 ....................................................................... 78<br />
范 围 ( 基 于 操 作 ) ............................................. 78<br />
表 指 针 范 围 ................................................................ 78<br />
擦 除 ........................................................................... 80<br />
擦 除 顺 序 ................................................................... 80<br />
代 码 保 护 时 的 操 作 ..................................................... 83<br />
读 表 与 写 表 ................................................................ 75<br />
读 取 ........................................................................... 79<br />
DS39616B_CN 第 384 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
控 制 寄 存 器 ................................................................ 76<br />
TABLAT 寄 存 器 ......................................................... 78<br />
相 关 寄 存 器 ................................................................ 83<br />
写 入 ........................................................................... 81<br />
写 入 操 作 的 意 外 终 止 .................................................. 83<br />
写 入 校 验 .................................................................... 83<br />
上 电 复 位 (POR) ....................................................46, 267<br />
上 电 延 时 定 时 器 (PWRT) ..............................46, 267<br />
延 时 序 列 .................................................................... 46<br />
振 荡 器 起 振 定 时 器 (OST) ..............................46, 267<br />
上 电 延 迟 ............................................................................ 29<br />
上 电 延 时 定 时 器 (PWRT) ........................................29, 46<br />
时 序 图<br />
捕 捉 / 比 较 /PWM (CCP) ..................................... 360<br />
CLKO 和 I/O ............................................................ 357<br />
从 PRI_IDLE 模 式 唤 醒 的 转 换 时 序 ............................ 35<br />
从 RC_RUN 模 式 唤 醒 的 转 换 (RC_RUN 到 NFP) .. 37<br />
从 SEC_RUN 模 式 唤 醒 的 转 换 ( 辅 助 时 钟 到 HSPLL) 36<br />
从 休 眠 模 式 唤 醒 (HSPLL) 的 转 换 ........................... 34<br />
低 压 检 测 特 性 ........................................................... 352<br />
低 压 检 测 .................................................................. 264<br />
发 生 POR 且 PLL 使 能 时 的 延 时 序 列<br />
(MCLR 连 接 到 VDD) ....................................... 55<br />
发 送 间 隔 字 符 序 列 ................................................... 236<br />
复 位 、 看 门 狗 定 时 器 (WDT)、 振 荡 器 起 振<br />
定 时 器 (OST) 和 上 电 延 时 定 时 器 (PWRT) 358<br />
故 障 保 护 时 钟 监 视 器 ................................................ 282<br />
缓 慢 上 升 时 间 (MCLR 连 接 到 VDD,<br />
VDD 电 压 上 升 时 间 > TPWRT) ............................ 55<br />
I 2 C 发 送 (7 位 地 址 ) .............................................. 219<br />
I 2 C 接 收 (7 位 地 址 ) .............................................. 219<br />
I 2 C 总 线 起 始 / 停 止 位 .............................................. 365<br />
I 2 C 总 线 数 据 ............................................................ 365<br />
进 入 SEC_IDLE 模 式 的 转 换 ...................................... 36<br />
进 入 SEC_RUN 模 式 的 转 换 ...................................... 38<br />
进 入 RC_IDLE 模 式 的 转 换 ........................................ 37<br />
进 入 RC_RUN 模 式 的 转 换 ........................................ 39<br />
进 入 休 眠 模 式 的 转 换 .................................................. 34<br />
PWM 输 出 ............................................................... 156<br />
欠 压 复 位 (BOR) ................................................... 358<br />
SPI 从 动 模 式 时 序 示 例 (CKE=0) .......................... 363<br />
SPI 从 动 模 式 时 序 示 例 (CKE=1) .......................... 364<br />
SPI 模 式 ( 从 动 模 式 , CKE=0) ............................. 215<br />
SPI 模 式 ( 从 动 模 式 , CKE=1) ............................. 216<br />
SPI 模 式 ( 主 控 模 式 ) ............................................. 215<br />
SPI 主 控 模 式 时 序 示 例 (CKE=0) .......................... 361<br />
SPI 主 控 模 式 时 序 示 例 (CKE=1) .......................... 362<br />
上 电 时 的 延 时 序 列 (MCLR 不 连 接 到 VDD)<br />
情 形 1 ................................................................ 54<br />
上 电 时 的 延 时 序 列 (MCLR 不 连 接 到 VDD)<br />
情 形 2 ................................................................ 54<br />
上 电 时 的 延 时 序 列 (MCLR 连 接 到 VDD,<br />
VDD 电 压 上 升 时 间
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
SSP 时 钟 移 位 ................................................ 143, 144<br />
TMR2 寄 存 器 ........................................................... 143<br />
TMR2 与 PR2 匹 配 中 断 ........................143, 144, 156<br />
相 关 寄 存 器 .............................................................. 144<br />
预 分 频 器 . 参 见 预 分 频 器 , Timer2。<br />
Timer5<br />
框 图 ......................................................................... 146<br />
Timer1 ............................................................................. 137<br />
16 位 读 / 写 模 式 ...................................................... 140<br />
复 位 , 使 用 特 殊 事 件 触 发 器 (CCP) ...................... 140<br />
工 作 原 理 .................................................................. 138<br />
TMR1H 寄 存 器 ........................................................ 137<br />
TMR1L 寄 存 器 ......................................................... 137<br />
特 殊 事 件 触 发 器 (CCP) ........................................ 154<br />
相 关 寄 存 器 .............................................................. 141<br />
溢 出 中 断 .................................................................. 137<br />
振 荡 器 ........................................................... 137, 139<br />
振 荡 器 布 局 注 意 事 项 ................................................ 139<br />
中 断 ......................................................................... 140<br />
作 为 实 时 时 钟 使 用 ................................................... 140<br />
TSTFSZ ........................................................................... 328<br />
TXSTA 寄 存 器<br />
BRGH 位 ................................................................. 225<br />
特 殊 功 能 寄 存 器 ................................................................. 65<br />
映 射 图 ....................................................................... 65<br />
特 殊 事 件 触 发 器 . 参 见 比 较 (CCP 模 块 )。<br />
同 步 串 行 端 口 模 式 选 择 位 (SSPM) ...................... 213<br />
同 步 串 行 端 口 使 能 位 (SSPEN) ..................................... 213<br />
同 步 串 行 端 口 . 参 见 SSP。<br />
同 步 间 隔 字 符 自 动 唤 醒 .................................................... 235<br />
U<br />
UA ................................................................................... 212<br />
USART<br />
波 特 率 发 生 器 (BRG) ............................................ 225<br />
波 特 率 误 差 , 计 算 ........................................... 226<br />
波 特 率 , 异 步 模 式 ........................................... 226<br />
采 样 ................................................................. 225<br />
高 波 特 率 选 择 位 (BRGH 位 ) ......................... 225<br />
功 耗 管 理 模 式 工 作 原 理 .................................... 225<br />
相 关 寄 存 器 ...................................................... 226<br />
自 动 波 特 率 检 测 ............................................... 229<br />
串 行 端 口 使 能 (SPEN 位 ) ..................................... 221<br />
同 步 从 动 模 式 ........................................................... 241<br />
发 送 ................................................................. 241<br />
接 收 ................................................................. 242<br />
相 关 寄 存 器 , 发 送 ........................................... 241<br />
相 关 寄 存 器 , 接 收 ........................................... 242<br />
同 步 主 模 式 .............................................................. 237<br />
发 送 ................................................................. 237<br />
接 收 ................................................................. 239<br />
相 关 寄 存 器 , 发 送 ........................................... 238<br />
相 关 寄 存 器 , 接 收 ........................................... 240<br />
异 步 模 式 .................................................................. 230<br />
12 位 间 隔 字 符 发 送 和 接 收 ............................... 236<br />
发 送 器 ............................................................. 230<br />
建 立 带 地 址 检 测 的 9 位 模 式 ............................. 233<br />
接 收 器 ............................................................. 233<br />
同 步 间 隔 字 符 自 动 唤 醒 .................................... 235<br />
相 关 寄 存 器 , 发 送 ........................................... 232<br />
相 关 寄 存 器 , 接 收 ........................................... 234<br />
W<br />
WCOL 位 ......................................................................... 213<br />
WWW 在 线 技 术 支 持 ........................................................... 6<br />
外 部 时 钟 输 入 .................................................................... 23<br />
X<br />
XORLW ........................................................................... 328<br />
XORWF ........................................................................... 329<br />
写 冲 突 检 测 位 (WCOL) ................................................ 213<br />
休 眠<br />
OSC1 和 OSC2 引 脚 状 态 .......................................... 29<br />
Y<br />
演 示 板<br />
PICDEM 1 ............................................................... 334<br />
PICDEM 17 ............................................................. 334<br />
PICDEM 18R PIC18C601/801 ................................ 335<br />
PICDEM 2 Plus ....................................................... 334<br />
PICDEM 3 PIC16C92X ........................................... 334<br />
PICDEM 4 ............................................................... 334<br />
PICDEM LIN PIC16C43X ....................................... 335<br />
PICDEM USB PIC16C7X5 ...................................... 335<br />
PICDEM.net 因 特 网 / 以 太 网 .................................. 334<br />
引 脚 功 能<br />
MCLR/Vpp/RE3 .................................................12, 15<br />
OSC1/CLKI/RA7 ................................................12, 15<br />
OSC2/CLKO/RA6 ..............................................12, 15<br />
RA0/AN0 ............................................................12, 15<br />
RA1/AN1 ............................................................12, 15<br />
RA2/AN2/Vref-/CAP1/INDX ...............................12, 15<br />
RA3/AN3/Vref+/CAP2/QEA ...............................12, 15<br />
RA4/AN4/CAP3/QEB ................................................ 15<br />
RA4/CAP3/QEB ........................................................ 12<br />
RA5/AN5/LVDIN ....................................................... 15<br />
RB0/PWM0 ........................................................13, 16<br />
RB1/PWM1 ........................................................13, 16<br />
RB2/PWM2 ........................................................13, 16<br />
RB3/PWM3 ........................................................13, 16<br />
RB4/KBI0/PWM5 ...................................................... 16<br />
RB4/PWM5 ............................................................... 13<br />
RB5/KBI1/PWM4/PGM ......................................13, 16<br />
RB6/KBI2/PGC ..................................................13, 16<br />
RB7/KBI3/PGD ..................................................13, 16<br />
RC0/T1OSO/T1CKI ...........................................14, 17<br />
RC1/T1OSI/CCP2/FLTA ....................................14, 17<br />
RC2/CCP1/FLTB ...............................................14, 17<br />
RC3/T0CKI/T5CKI/INT0 .....................................14, 17<br />
RC4/INT1/SDI/SDA ............................................14, 17<br />
RC5/INT2/SCK/SCL ...........................................14, 17<br />
RC6/TX/CK/SS ..................................................14, 17<br />
RC7/RX/DT/SDO ...............................................14, 17<br />
RD0/T0CKI/T5CKI .................................................... 18<br />
RD1/SDO .................................................................. 18<br />
RD2/SDI/SDA ........................................................... 18<br />
RD3/SCK/SCL .......................................................... 18<br />
RD4/FLTA ................................................................. 18<br />
RD5/PWM4 ............................................................... 18<br />
RD6/PWM6 ............................................................... 18<br />
RD7/PWM7 ............................................................... 18<br />
RE0/AN6 ................................................................... 19<br />
RE1/AN7 ................................................................... 19<br />
DS39616B_CN 第 386 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
RE2/AN8 ................................................................... 19<br />
VDD .....................................................................14, 19<br />
VSS .....................................................................14, 19<br />
引 脚 I/O 介 绍<br />
<strong>PIC18F2331</strong>/<strong>2431</strong> ..................................................... 12<br />
PIC18F<strong>4331</strong>/<strong>4431</strong> ..................................................... 15<br />
硬 件 乘 法 器 ........................................................................ 89<br />
工 作 原 理 .................................................................... 89<br />
简 介 ........................................................................... 89<br />
性 能 对 比 .................................................................... 89<br />
应 用 笔 记<br />
AN578(Use of the SSP Module in the I 2 C Multi-Master<br />
Environment) ................................................. 211<br />
预 分 频 器 , 捕 捉 ............................................................... 153<br />
预 分 频 器 , Timer0 .......................................................... 135<br />
比 率 选 择 (T0PS2:T0PS0 位 ) ............................... 135<br />
分 配 (PSA 位 ) ...................................................... 135<br />
预 分 频 器 , Timer2 .......................................................... 157<br />
Z<br />
在 线 串 行 编 程 (ICSP) ..........................................267, 286<br />
在 线 调 试 器 ...................................................................... 286<br />
增 强 型 通 用 同 步 / 异 步 收 发 器 (EUSART) .................... 221<br />
栈 顶 访 问 ............................................................................ 58<br />
振 荡 器 配 置 ........................................................................ 21<br />
EC ............................................................................. 21<br />
ECIO ......................................................................... 21<br />
HS ............................................................................. 21<br />
HSPLL ....................................................................... 21<br />
INTIO1 ....................................................................... 21<br />
INTIO2 ....................................................................... 21<br />
LP .............................................................................. 21<br />
内 部 振 荡 电 路 ............................................................. 24<br />
RC ............................................................................. 21<br />
RCIO ......................................................................... 21<br />
XT .............................................................................. 21<br />
振 荡 器 起 振 定 时 器 (OST) ........................................29, 46<br />
振 荡 器 切 换 ........................................................................ 26<br />
振 荡 器 选 择 ...................................................................... 267<br />
振 荡 器 转 换 ........................................................................ 28<br />
振 荡 器 , Timer1 .............................................................. 137<br />
指 令 格 式 .......................................................................... 289<br />
指 令 集 ............................................................................. 287<br />
ADDLW ................................................................... 293<br />
ADDWF ................................................................... 293<br />
ADDWFC ................................................................ 294<br />
ANDLW ................................................................... 294<br />
ANDWF ................................................................... 295<br />
BC ........................................................................... 295<br />
BCF ......................................................................... 296<br />
BN ........................................................................... 296<br />
BNC ......................................................................... 297<br />
BNN ......................................................................... 297<br />
BNOV ...................................................................... 298<br />
BNZ ......................................................................... 298<br />
BOV ......................................................................... 301<br />
BRA ......................................................................... 299<br />
BSF ......................................................................... 299<br />
BTFSC .................................................................... 300<br />
BTFSS ..................................................................... 300<br />
BTG ......................................................................... 301<br />
BZ ............................................................................ 302<br />
CALL ....................................................................... 302<br />
CLRF ....................................................................... 303<br />
CLRWDT ................................................................. 303<br />
COMF ...................................................................... 304<br />
CPFSEQ ................................................................. 304<br />
CPFSGT ................................................................. 305<br />
CPFSLT .................................................................. 305<br />
DAW ....................................................................... 306<br />
DCFSNZ ................................................................. 307<br />
DECF ...................................................................... 306<br />
DECFSZ ................................................................. 307<br />
GOTO ..................................................................... 308<br />
INCF ....................................................................... 308<br />
INCFSZ ................................................................... 309<br />
INFSNZ ................................................................... 309<br />
IORLW .................................................................... 310<br />
IORWF .................................................................... 310<br />
LFSR ....................................................................... 311<br />
MOVF ..................................................................... 311<br />
MOVFF ................................................................... 312<br />
MOVLB ................................................................... 312<br />
MOVLW .................................................................. 313<br />
MOVWF .................................................................. 313<br />
MULLW ................................................................... 314<br />
MULWF ................................................................... 314<br />
NEGF ...................................................................... 315<br />
NOP ........................................................................ 315<br />
POP ........................................................................ 316<br />
PUSH ...................................................................... 316<br />
RCALL .................................................................... 317<br />
RESET .................................................................... 317<br />
RETFIE ................................................................... 318<br />
RETLW ................................................................... 318<br />
RETURN ................................................................. 319<br />
RLCF ...................................................................... 319<br />
RLNCF .................................................................... 320<br />
RRCF ...................................................................... 320<br />
RRNCF ................................................................... 321<br />
SETF ....................................................................... 321<br />
SLEEP .................................................................... 322<br />
SWAPF ................................................................... 325<br />
SUBFWB ................................................................ 322<br />
SUBLW ................................................................... 323<br />
SUBWF ................................................................... 323<br />
SUBWFB ................................................................ 324<br />
TBLRD .................................................................... 326<br />
TBLWT .................................................................... 327<br />
TSTFSZ .................................................................. 328<br />
XORLW ................................................................... 328<br />
XORWF .................................................................. 329<br />
总 表 ......................................................................... 290<br />
指 令 流 / 流 水 线 ................................................................. 61<br />
指 令 周 期 ........................................................................... 61<br />
指 针 , FSRn ..................................................................... 71<br />
中 断 ................................................................................... 91<br />
中 断 的 现 场 保 护 ............................................................... 106<br />
中 断 源 ............................................................................. 267<br />
比 较 完 成 (CCP) ................................................... 154<br />
捕 捉 完 成 (CCP) ................................................... 153<br />
电 平 变 化 中 断 (RB7:RB4) .................................... 112<br />
INTn 引 脚 ................................................................ 106<br />
PORTB 电 平 变 化 中 断 ............................................. 106<br />
TMR0 ...................................................................... 106<br />
TMR1 溢 出 .............................................................. 137<br />
TMR2 与 PR2 匹 配 .................................................. 144<br />
TMR2 与 PR2 匹 配 (PWM) .........................143, 156<br />
中 断 , 标 志 位<br />
CCP1 标 志 (CCP1IF 位 ) ...................................... 153<br />
CCP1IF 标 志 (CCP1IF 位 ) .................................. 154<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 387 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
电 平 变 化 中 断 (RB7:RB4) 标 志 (RBIF 位 ) ........ 112<br />
中 断 , 使 能 位<br />
CCP1 使 能 (CCP1IE 位 ) ...................................... 153<br />
转 换 注 意 事 项 ................................................................... 380<br />
DS39616B_CN 第 388 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
MICROCHIP 网 站<br />
Microchip 网 站 (www.microchip.com) 为 客 户 提 供 在<br />
线 支 持 。 客 户 可 通 过 该 网 站 方 便 地 获 取 文 件 和 信 息 。 只<br />
要 使 用 常 用 的 因 特 网 浏 览 器 即 可 访 问 。 网 站 提 供 以 下 信<br />
息 :<br />
• 产 品 支 持 —— 数 据 手 册 和 勘 误 表 、 应 用 笔 记 和 样 本<br />
程 序 、 设 计 资 源 、 用 户 指 南 以 及 硬 件 支 持 文 档 、 最<br />
新 的 软 件 版 本 以 及 存 档 软 件<br />
• 一 般 技 术 支 持 —— 常 见 问 题 (FAQ)、 技 术 支 持 请<br />
求 、 在 线 讨 论 组 以 及 Microchip 顾 问 计 划 成 员 名 单<br />
• Microchip 业 务 —— 产 品 选 型 和 订 购 指 南 、 最 新<br />
Microchip 新 闻 稿 、 研 讨 会 和 活 动 安 排 表 、<br />
Microchip 销 售 办 事 处 、 代 理 商 以 及 工 厂 代 表 列 表<br />
客 户 支 持<br />
Microchip 产 品 的 用 户 可 通 过 以 下 渠 道 获 得 帮 助 :<br />
• 代 理 商 或 代 表<br />
• 当 地 销 售 办 事 处<br />
• 应 用 工 程 师 (FAE)<br />
• 技 术 支 持<br />
• 开 发 系 统 信 息 热 线<br />
客 户 应 联 系 其 代 理 商 、 代 表 或 应 用 工 程 师 (FAE) 寻 求<br />
支 持 。 当 地 销 售 办 事 处 也 可 为 客 户 提 供 帮 助 。 本 文 档 后<br />
附 有 销 售 办 事 处 的 联 系 方 式 。<br />
也 可 通 过 http://support.microchip.com 获 得 网 上 技<br />
术 支 持 。<br />
变 更 通 知 客 户 服 务<br />
Microchip 的 变 更 通 知 客 户 服 务 有 助 于 客 户 了 解<br />
Microchip 产 品 的 最 新 信 息 。 注 册 客 户 可 在 他 们 感 兴 趣<br />
的 某 个 产 品 系 列 或 开 发 工 具 发 生 变 更 、 更 新 、 发 布 新 版<br />
本 或 勘 误 表 时 , 收 到 电 子 邮 件 通 知 。<br />
欲 注 册 , 请 登 录 Microchip 网 站 www.microchip.com,<br />
点 击 “ 变 更 通 知 客 户 (Customer<br />
Change<br />
Notification)” 服 务 后 按 照 注 册 说 明 完 成 注 册 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 391 页
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
读 者 反 馈 表<br />
我 们 努 力 为 您 提 供 最 佳 文 档 , 以 确 保 您 能 够 成 功 使 用 Microchip 产 品 。 如 果 您 对 文 档 的 组 织 、 条 理 性 、 主 题 及 其 他 有 助<br />
于 提 高 文 档 质 量 的 方 面 有 任 何 意 见 或 建 议 , 请 填 写 本 反 馈 表 并 传 真 给 我 公 司 TRC 经 理 , 传 真 号 码 为 86-21-5407-5066。<br />
请 填 写 以 下 信 息 , 并 从 下 面 各 方 面 提 出 您 对 本 文 档 的 意 见 。<br />
致 : TRC 经 理<br />
关 于 : 读 者 反 馈<br />
总 页 数 ________<br />
发 自 : 姓 名<br />
公 司<br />
地 址<br />
国 家 / 省 份 / 城 市 / 邮 编<br />
电 话 :(______)__________________<br />
应 用 ( 选 填 ):<br />
您 希 望 收 到 回 复 吗 是 否<br />
器 件 : <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> 文 献 编 号 :<br />
传 真 :(______) __________________<br />
DS39616B_CN<br />
问 题 :<br />
1. 本 文 档 中 哪 些 部 分 最 有 特 色 <br />
2. 本 文 档 是 否 满 足 了 您 的 软 硬 件 开 发 要 求 如 何 满 足 的 <br />
3. 您 认 为 本 文 档 的 组 织 结 构 便 于 理 解 吗 如 果 不 便 于 理 解 , 那 么 问 题 何 在 <br />
4. 您 认 为 本 文 档 应 该 添 加 哪 些 内 容 以 改 善 其 结 构 和 主 题 <br />
5. 您 认 为 本 文 档 中 可 以 删 减 哪 些 内 容 , 而 又 不 会 影 响 整 体 使 用 效 果 <br />
6. 本 文 档 中 是 否 存 在 错 误 或 误 导 信 息 如 果 存 在 , 请 指 出 是 什 么 信 息 及 其 具 体 页 数 。<br />
7. 您 认 为 本 文 档 还 有 哪 些 方 面 有 待 改 进 <br />
DS39616B_CN 第 392 页 初 稿 © 2005 Microchip Technology Inc.
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong><br />
产 品 标 识 体 系<br />
欲 订 货 , 或 获 取 价 格 、 交 货 等 信 息 , 请 与 我 公 司 生 产 厂 或 各 销 售 办 事 处 联 系 。<br />
器 件 编 号 X /XX XXX<br />
器 件<br />
温 度 范 围<br />
封 装<br />
模 式<br />
器 件 <strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> (1) ,<br />
<strong>PIC18F2331</strong>/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>T (1,2) ;<br />
VDD 范 围 :4.2V 至 5.5V<br />
示 例 :<br />
a) PIC18LF<strong>4431</strong>-I/P 301 = 工 业 级 温 度 ,<br />
PDIP 封 装 , 扩 展 级 VDD 范 围 ,QTP 模 式<br />
#301。<br />
b) PIC18LF2331-I/SO = 工 业 级 温 度 ,SOIC<br />
封 装 , 扩 展 级 VDD 范 围 。<br />
c) PIC18F<strong>4331</strong>-I/P = 工 业 级 温 度 ,PDIP 封<br />
装 , 一 般 VDD 范 围 。<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong> (1) ,<br />
PIC18LF2331/<strong>2431</strong>/<strong>4331</strong>/<strong>4431</strong>0T (1,2) ;<br />
VDD 范 围 :2.0V 至 5.5V<br />
温 度 范 围 I = -40°C 至 +85°C ( 工 业 级 )<br />
封 装 PT = TQFP ( 薄 型 四 方 扁 平 封 装 )<br />
SO = SOIC<br />
SP = 窄 型 塑 料 DIP<br />
P = PDIP<br />
ML = QFN<br />
注<br />
1: F = 标 准 电 压 范 围<br />
LF = 宽 电 压 范 围<br />
2: T = 卷 带 式 —— 仅 SOIC 和 TQFP<br />
封 装 。<br />
模 式<br />
QTP、 SQTP、 编 码 或 特 殊 要 求<br />
( 空 白 为 其 他 情 况 )<br />
销 售 与 技 术 支 持<br />
数 据 手 册<br />
初 始 数 据 手 册 中 所 述 的 产 品 可 能 会 有 一 份 勘 误 表 , 其 中 描 述 实 际 运 行 与 数 据 手 册 中 记 载 内 容 之 间 存 在 的 细 微 差 异 以 及 建 议 的 变 通 方<br />
法 。 要 了 解 是 否 存 在 某 一 器 件 的 勘 误 表 , 可 通 过 以 下 方 式 联 系 我 们 :<br />
1. Microchip 在 当 地 的 销 售 办 事 处<br />
2. Microchip 网 站 (www.microchip.com)<br />
请 说 明 您 所 使 用 的 器 件 型 号 、 硅 片 版 本 和 数 据 手 册 版 本 ( 包 括 文 献 编 号 )。<br />
最 新 信 息 客 户 通 知 系 统<br />
欲 及 时 获 知 Microchip 产 品 的 最 新 信 息 , 请 到 我 公 司 网 站 (www.microchip.com) 上 注 册 。<br />
© 2005 Microchip Technology Inc. 初 稿 DS39616B_CN 第 393 页
全 球 销 售 及 服 务 网 点<br />
美 洲<br />
亚 太 地 区<br />
亚 太 地 区<br />
欧 洲<br />
公 司 总 部 Corporate Office<br />
2355 West Chandler Blvd.<br />
Chandler, AZ 85224-6199<br />
Tel: 1-480-792-7200<br />
Fax: 1-480-792-7277<br />
技 术 支 持 :<br />
http://support.microchip.com<br />
网 址 :www.microchip.com<br />
亚 特 兰 大 Atlanta<br />
Alpharetta, GA<br />
Tel: 1-770-640-0034<br />
Fax: 1-770-640-0307<br />
波 士 顿 Boston<br />
Westborough, MA<br />
Tel: 1-774-760-0087<br />
Fax: 1-774-760-0088<br />
芝 加 哥 Chicago<br />
Itasca, IL<br />
Tel: 1-630-285-0071<br />
Fax: 1-630-285-0075<br />
达 拉 斯 Dallas<br />
Addison, TX<br />
Tel: 1-972-818-7423<br />
Fax: 1-972-818-2924<br />
底 特 律 Detroit<br />
Farmington Hills, MI<br />
Tel: 1-248-538-2250<br />
Fax: 1-248-538-2260<br />
科 科 莫 Kokomo<br />
Kokomo, IN<br />
Tel: 1-765-864-8360<br />
Fax: 1-765-864-8387<br />
洛 杉 矶 Los Angeles<br />
Mission Viejo, CA<br />
Tel: 1-949-462-9523<br />
Fax: 1-949-462-9608<br />
圣 何 塞 San Jose<br />
Mountain View, CA<br />
Tel: 1-650-215-1444<br />
Fax: 1-650-961-0286<br />
加 拿 大 多 伦 多 Toronto<br />
Mississauga, Ontario,<br />
Canada<br />
Tel: 1-905-673-0699<br />
Fax: 1-905-673-6509<br />
中 国 - 北 京<br />
Tel: 86-10-8528-2100<br />
Fax: 86-10-8528-2104<br />
中 国 - 成 都<br />
Tel: 86-28-8676-6200<br />
Fax: 86-28-8676-6599<br />
中 国 - 福 州<br />
Tel: 86-591-8750-3506<br />
Fax: 86-591-8750-3521<br />
中 国 - 香 港 特 别 行 政 区<br />
Tel: 852-2401-1200<br />
Fax: 852-2401-3431<br />
中 国 - 上 海<br />
Tel: 86-21-5407-5533<br />
Fax: 86-21-5407-5066<br />
中 国 - 沈 阳<br />
Tel: 86-24-2334-2829<br />
Fax: 86-24-2334-2393<br />
中 国 - 深 圳<br />
Tel: 86-755-8203-2660<br />
Fax: 86-755-8203-1760<br />
中 国 - 顺 德<br />
Tel: 86-757-2839-5507<br />
Fax: 86-757-2839-5571<br />
中 国 - 青 岛<br />
Tel: 86-532-8502-7355<br />
Fax: 86-532-8502-7205<br />
中 国 - 武 汉<br />
Tel: 86-27-5980-5300<br />
Fax: 86-27-5980-5118<br />
中 国 - 西 安<br />
Tel: 86-29-8833-7252<br />
Fax: 86-29-8833-7256<br />
台 湾 地 区 - 高 雄<br />
Tel: 886-7-536-4818<br />
Fax: 886-7-536-4803<br />
台 湾 地 区 - 台 北<br />
Tel: 886-2-2500-6610<br />
Fax: 886-2-2508-0102<br />
台 湾 地 区 - 新 竹<br />
Tel: 886-3-572-9526<br />
Fax: 886-3-572-6459<br />
澳 大 利 亚 Australia - Sydney<br />
Tel: 61-2-9868-6733<br />
Fax: 61-2-9868-6755<br />
印 度 India - Bangalore<br />
Tel: 91-80-2229-0061<br />
Fax: 91-80-2229-0062<br />
印 度 India - New Delhi<br />
Tel: 91-11-5160-8631<br />
Fax: 91-11-5160-8632<br />
日 本 Japan - Kanagawa<br />
Tel: 81-45-471- 6166<br />
Fax: 81-45-471-6122<br />
韩 国 Korea - Seoul<br />
Tel: 82-2-554-7200<br />
Fax: 82-2-558-5932 或<br />
82-2-558-5934<br />
马 来 西 亚 Malaysia - Penang<br />
Tel:011-604-646-8870<br />
Fax:011-604-646-5086<br />
菲 律 宾 Philippines - Manila<br />
Tel: 011-632-634-9065<br />
Fax: 011-632-634-9069<br />
新 加 坡 Singapore<br />
Tel: 65-6334-8870<br />
Fax: 65-6334-8850<br />
奥 地 利 Austria - Weis<br />
Tel: 43-7242-2244-399<br />
Fax: 43-7242-2244-393<br />
丹 麦 Denmark - Ballerup<br />
Tel: 45-4450-2828<br />
Fax: 45-4485-2829<br />
法 国 France - Massy<br />
Tel: 33-1-69-53-63-20<br />
Fax: 33-1-69-30-90-79<br />
德 国 Germany - Ismaning<br />
Tel: 49-89-627-144-0<br />
Fax: 49-89-627-144-44<br />
意 大 利 Italy - Milan<br />
Tel: 39-0331-742611<br />
Fax: 39-0331-466781<br />
荷 兰 Netherlands - Drunen<br />
Tel: 31-416-690399<br />
Fax: 31-416-690340<br />
英 国 England - Berkshire<br />
Tel: 44-118-921-5869<br />
Fax: 44-118-921-5820<br />
06/28/05<br />
DS39616B_CN 第 394 页 初 稿 © 2005 Microchip Technology Inc.