28.01.2015 Views

PIC18F2331/2431/4331/4431

PIC18F2331/2431/4331/4431

PIC18F2331/2431/4331/4431

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!