PIC18F97J60 系列
数据手册
带有以太网模块的
64/80/100 引脚高性能
1 Mb 闪存单片机
2006 Microchip Technology Inc. 超前信息 DS39762A_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•M i c r o c h i p的产品均达到 Microchip 数据手册中所述的技术指标。
•M i c r o c h i p确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
• 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•M i c r o c h i p愿与那些注重代码完整性的客户合作。
•M i c r o c h i p或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act )》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 K
EEL OQ、 microID 、 MPLAB、 PIC、 PICmicro、
PICSTART、 PRO MATE、 PowerSmart、 rfPIC 和
SmartShunt 均为 Microchip Technology Inc. 在美国和其他国
家或地区的注册商标。
AmpLab、 FilterLab、 Migratable Memory、 MXDEV、
MXLAB、 SEEVAL、SmartSensor 和 The Embedded Control
Solutions Company 均为 Microchip Technology Inc. 在美国的
注册商标。
Analog-for-the-Digital Age、 Application Maestro、
CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、
ECAN、 ECONOMONITOR、 FanSense、 FlexROM、
fuzzyLAB、 In-Circuit Serial Programming、 ICSP、 ICEPIC、
Linear Active Thermistor、 Mindi、 MiWi、 MPASM、
MPLIB、 MPLINK、 PICkit、 PICDEM、 PICDEM.net、
PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、
PowerTool、 REAL ICE、 rfLAB、 rfPICDEM、 Select Mode、
Smart Serial、 SmartTel、 Total Endurance、 UNI/O、
WiperLock和 ZENA均为 Microchip Technology Inc.在美国和其
他国家或地区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2006, Microchip Technology Inc . 版权所有。
Microchip
Gresham
晶圆生产厂均通过了
机、
器和模拟产品方面的质量体系流程均符合
Microchip
9001:2000
位于美国亚利桑那州
及位于加利福尼亚州
KEE LOQ
在开发系统的设计和生产方面的质量体系也已通过了
ISO/TS-16949:2002
®
跳码器件、串行
认证。
Chandler和Te mp e
Mountain View
EEPROM
的全球总部、设计中心和
认证。公司在
、单片机外设、非易失性存储
ISO/TS-16949:2002
、位于俄勒冈州
®
PIC
8
位单片
。此外,
ISO
DS39762A_CN 第 ii 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
带有以太网模块的 64/80/100 引脚
高性能 1 Mb 闪存单片机
以太网特性:
• IEEE 802.3 兼容的以太网控制器
• 集成 MAC 和 10Base-T PHY
• 8 KB 发送 / 接收数据包缓冲区 SRAM
• 支持一个带自动极性检测和校正的 10Base-T 端口
• 在发生冲突时可编程自动重发
• 可编程填充和 CRC 生成
• 可编程自动拒绝错误数据包
• 可驱动 2 个 LED 指示器的活动输出信号
• 缓冲器:
- 可配置发送 / 接收缓冲区大小
- 硬件管理的循环接收 FIFO
- 字节宽度的随机访问和顺序访问
- 用于快速数据传送的内部 DMA
- 支持各种协议的硬件校验和计算
• MAC:
- 支持单播、组播和广播数据包
- 多达 64 字节的可编程模式匹配 (偏移量可由用
户定义)
- 多个数据包格式的可编程唤醒
• PHY:
- 整形输出滤波器
- 环回模式
灵活的振荡器结构:
• 可选择的系统时钟,来自单个 25 MHz 外部时钟源:
-2.78到 41.67 MHz
• 内部 31 kHz 振荡器
• 辅助振荡器使用 Timer1 (工作频率为 32 kHz)
• 故障保护时钟监视器:
- 当振荡器停止工作时可使器件安全断电
• 双速振荡器启动
外部存储器总线 (仅限 100 引脚器件):
• 地址容量最高可达 2 MB
• 8 位或 16 位接口
• 12 位、 16 位和 20 位寻址模式
外设特点:
• 高灌 / 拉电流 :在 PORTB 和 PORTC 上为 25 mA/25 mA
• 5 个定时器模块 ( Timer0 到 Timer4)
• 4 个外部中断引脚
• 2 个捕捉 / 比较 /PWM ( CCP)模块
• 3 个增强型捕捉 / 比较 /PWM ( ECCP)模块:
-1、 2 或 4 路 PWM 输出
- 可选择极性
- 可编程死区延时
- 自动关闭和自动重启
• 多达 2个主控同步串行口(Master Synchronous Serial
Port, MSSP)模块,支持 SPI (所有 4 种模式)和
2
I
C™ 主 / 从模式
• 多达 2 个增强型 USART 模块:
- 支持 RS-485、 RS-232 和 LIN 1.2
- 启动位自动唤醒
- 自动波特率检测
• 多达 16 路通道的 10 位模数转换器模块 (A/D):
- 自动采样功能
- 可在休眠模式下进行转换
• 输入复用的双模拟比较器
• 并行从动端口 (Parallel Slave Port, PSP)模块
(仅限 100 引脚器件)
单片机特性:
• 最大容许输入电压为 5.5V (仅限数字引脚)
• 低功耗、高速 CMOS 闪存技术:
- 可在软件控制下自行重新编程
• 为重入代码优化的 C 编译器架构
• 功耗管理特性:
- 运行: CPU 工作,外设打开
- 空闲: CPU 不工作,外设打开
- 休眠: CPU 不工作,外设关闭
• 中断优先级
• 8 x 8 单周期硬件乘法器
• 扩展型看门狗定时器 (Watchdog Timer, WDT):
- 可编程周期从 4ms到 134s
• 通过两个引脚进行单电源 3.3V 在线串行编程 (In-
Circuit Serial Programming™, ICSP™)
• 通过两个引脚进行带有 3 个断点的在线调试 ( In-
Circuit Debug, ICD)
• 工作电压范围为 2.35V 到 3.6V(使用以太网模块时为
3.14V 到 3.45V)
• 片上 2.5V 稳压器
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 1 页
PIC18F97J60 系列
器件
闪存程序
存储器
(字节)
SRAM
数据
存储器
(字节)
以太网
TX/RX
缓冲区
(字节)
I/O
10 位
A/D
(通道)
CCP/
ECCP
PIC18F66J60 64K 3808 8192 39 11 2/3 1
PIC18F66J65 96K 3808 8192 39 11 2/3 1
PIC18F67J60 128K 3808 8192 39 11 2/3 1
PIC18F86J60 64K 3808 8192 55 15 2/3 1
PIC18F86J65 96K 3808 8192 55 15 2/3 1
PIC18F87J60 128K 3808 8192 55 15 2/3 1
PIC18F96J60 64K 3808 8192 70 16 2/3 2
PIC18F96J65 96K 3808 8192 70 16 2/3 2
PIC18F97J60 128K 3808 8192 70 16 2/3 2
引脚示意图
64 引脚 TQFP
SSPLL
RE2/P2B
RE3/P3C
RE4/P3B
RE5/P1C
RD0/P1B
VDD
RD1/ECCP3/P3A
RD2/CCP4/P3D
V
VDDPLL
VSS
MSSP
SPI
有有
有有
有有
有有
有有
有有
有有
有有
有有
SSTX
RBIAS
V
TPOUT+
TPOUT-
主控
2
C™
I
DDTX
V
8/16 位
定时器
比较器
EUSART
12 2 / 3
12 2 / 3
12 2 / 3
22 2 / 3
22 2 / 3
22 2 / 3
22 2 / 3
22 2 / 3
22 2 / 3
PSP
外部
无无
无无
无无
无无
无无
无无
有有
有有
有有
存储器总线
RE1/P2C
RE0/P2D
RB0/INT0/FLT0
RB1/INT1
RB2/INT2
RB3/INT3
RG4/CCP5/P1D
RF5/AN10/CV
RF2/AN7/C1OUT
MCLR
VSS
VDDCORE /VCAP
RF7/SS1
RF6/AN11
REF
RF4/AN9
RF3/AN8
64
63 62 61
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 18 19 20 21 22 23 24 25 26
ENVREG
RF1/AN6/C2OUT
DD
AV
AVSS
PIC18F66J60
PIC18F66J65
PIC18F67J60
REF-
RA2/AN2/V
RA1/LEDB/AN1
RA3/AN3/VREF +
RA0/LEDA/AN0
54 53 52 51 58 57 56 55 60 59
27 28
SS
V
VDD
RA5/AN4
50 49
31
29 30 32
RA4/T0CKI
RC0/T1OSO/T13CKI
RC1/T1OSI/ECCP2/P2A
V
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
RC6/TX1/CK1
RC7/RX1/DT1
DDRX
TPIN+
TPIN-
VSSRX
RB4/KBI0
RB5/KBI1
RB6/KBI2/PGC
SS
V
OSC2/CLKO
OSC1/CLKI
VDD
RB7/KBI3/PGD
RC5/SDO1
RC4/SDI1/SDA1
RC3/SCK1/SCL1
RC2/ECCP1/P1A
DS39762A_CN 第 2 页 超前信息 2006 Microchip Technology Inc.
引脚示意图 (续)
80 引脚 TQFP
PIC18F97J60 系列
(1)
/P2A
(2)
(2)
(1)
(2)
(2)
RH2
RH3
RE1/P2C
RE0/P2D
RB0/INT0/FLT0
RB1/INT1
RB2/INT2
RB3/INT3
MCLR
RG4/CCP5/P1D
VSS
VDDCORE /VCAP
RF7/SS1
RF6/AN11
RF5/AN10/CV
REF
RF4/AN9
RF3/AN8
RF2/AN7/C1OUT
RH7/AN15/P1B
RH6/AN14/P1C
RH1
RH0
RE2/P2B
RE3/P3C
RE4/P3B
RE5/P1C
RE6/P1B
RE7/ECCP2
RD0
VDDVSS
RD1
RD2
VSSPLL
68 67 66 65 72 71 70 69 74 73 78 77 76 75 79 80
VDDPLL
RBIAS
SSTX
V
64 63 62 61
1
2
3
4
5
6
7
8
9
10
11
12
PIC18F86J60
PIC18F86J65
PIC18F87J60
13
14
15
16
17
(2)
(2)
18
19
20
21 22 23 24 25 26 27 28 29 30 31 32
33 34
37
35 36 38
TPOUT+
DDTX
TPOUT-
V
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
VDDRX
TPIN+
TPIN-
SSRX
V
RG0/ECCP3/P3A
RG1/TX2/CK2
RB4/KBI0
RB5/KBI1
RB6/KBI2/PGC
SS
V
OSC2/CLKO
OSC1/CLKI
DD
V
RB7/KBI3/PGD
RC5/SDO1
RC4/SDI1/SDA1
RC3/SCK1/SCL1
RC2/ECCP1/P1A
RG2/RX2/DT2
RG3/CCP4/P3D
(2)
(2)
RF1/AN6/C2OUT
RH5/AN13/P3B
RH4/AN12/P3C
DD
AV
ENVREG
SS
RA1/LEDB/AN1
V
RA0/LEDA/AN0
REF-
AVSS
RA2/AN2/V
RA3/AN3/VREF +
VDD
RA5/AN4
RA4/T0CKI
(1)
/P2A
(1)
RC6/TX1/CK1
RJ5
RJ4
RC7/RX1/DT1
RC0/T1OSO/T13CKI
RC1/T1OSI/ECCP2
引脚排列为最早的版本,可能会有变化。
注 1 : ECCP2/P2A 引脚位置取决于 CCP2MX 配置位设置。
2 : P1B 、 P1C 、 P3B 和 P3C 引脚位置取决于 ECCPMX 配置位设置。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 3 页
PIC18F97J60 系列
引脚示意图 (续)
100 引脚 TQFP
(2)
(2)
RE2/AD10/CS/P2B
RE4/AD12/P3B
RH0/A16
RE3/AD11/P3C
969897
99
2829303132333435363738
RE1/AD9/WR/P2C
RE0/AD8/RD
RB0/INT0/FLT0
RB3/INT3/ECCP2
RG4/CCP5/P1D
Vddcore/Vcap
RF5/AN10/CVREF
RF2/AN7/C1OUT
RH7/AN15/P1B
RH6/AN14/P1C
RH2/A18
RH3/A19
/P2D
RB1/INT1
RB2/INT2
(1)
/P2A
NC
RG6
RG5
RF0/AN5
MCLR
Vss
V
DD
RF7/SS1
RF6/AN11
RF4/AN9
RF3/AN8
RH1/A17
100
1
2
3
4
5
6
7
(1)
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(2)
24
(2)
25
26
27
(2)
RE5/AD13/P1C
95
(1)
/P2A
(1)
(2)
RE6/AD14/P1B
RE7/AD15/ECCP2
RD0/AD0/PSP0
RD1/AD1/PSP1
RD2/AD2/PSP2
RD3/AD3/PSP3
RD4/AD4/PSP4/SDO2
RD5/AD5/PSP5/SDI2/SDA2
VDDVSS
RD6/AD6/PSP6/SCK2/SCL2
RD7/AD7/PSP7/SS2
9294939190898887868584838281807978
PIC18F96J60
PIC18F96J65
PIC18F97J60
43
42
41
40
39
VSSPLL
44
VDDPLL
SSTX
RBIAS
V
TPOUT+
45
4647484950
DDTX
TPOUT-
V
76
77
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
VDDRX
TPIN+
TPINV
SSRX
RG0/ECCP3/P3A
RG1/TX2/CK2
RB4/KBI0
RB5/KBI1
RB6/KBI2/PGC
RJ2/WRL
V
SS
OSC2/CLKO
OSC1/CLKI
V
DD
RJ3/WRH
VSS
VDD
RJ6/LB
RB7/KBI3/PGD
RC5/SDO1
RC4/SDI1/SDA1
RC3/SCK1/SCL1
RC2/ECCP1/P1A
RG2/RX2/DT2
RG3/CCP4/P3D
(2)
(2)
DD
AV
REF-
AVSS
ENVREG
RA2/AN2/V
RF1/AN6/C2OUT
RH5/AN13/P3B
RH4/AN12/P3C
RA3/AN3/VREF +
RA1/LEDB/AN1
RA0/LEDA/AN0
SS
V
VDD
RG7
RJ7/UB
SS
V
(1)
/P2A
(1)
RA5/AN4
RA4/T0CKI
RJ5/CE
RJ1/OE
RJ4/BA0
RJ0/ALE
RC6/TX1/CK1
RC7/RX1/DT1
RC0/T1OSO/T13CKI
RC1/T1OSI/ECCP2
引脚排列为最早的版本,可能会有变化。
注 1 : ECCP2/P2A 引脚位置取决于 CCP2MX 配置位和处理器模式设置。
2 : P1B、 P1C、 P3B 和 P3C 引脚位置取决于 ECCPMX 配置位设置。
DS39762A_CN 第 4 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
目录
1.0 器件概述 ....................................................................................................................................................................................... 7
2.0 振荡器配置 ................................................................................................................................................................................. 39
3.0 功耗管理模式 .............................................................................................................................................................................. 45
4.0 复位 ............................................................................................................................................................................................ 53
5.0 存储器构成 ................................................................................................................................................................................. 67
6.0 闪存程序存储器 .......................................................................................................................................................................... 95
7.0 外部存储器总线 ........................................................................................................................................................................ 105
8.0 8 x 8 硬件乘法器....................................................................................................................................................................... 117
9.0 中断 .......................................................................................................................................................................................... 119
10.0 I/O 端口 .................................................................................................................................................................................... 135
11.0 Timer0 模块 .............................................................................................................................................................................. 163
12.0 Timer1 模块 .............................................................................................................................................................................. 167
13.0 Timer2 模块 .............................................................................................................................................................................. 173
14.0 Timer3 模块 .............................................................................................................................................................................. 175
15.0 Timer4 模块 .............................................................................................................................................................................. 179
16.0 捕捉 / 比较 /PWM ( CCP)模块 ............................................................................................................................................... 181
17.0 增强型捕捉 / 比较 /PWM ( ECCP)模块 ................................................................................................................................. 189
18.0 以太网模块 ............................................................................................................................................................................... 205
19.0 主控同步串行口 ( MSSP)模块 ............................................................................................................................................... 255
20.0 增强型通用同步 / 异步收发器 ( EUSART).............................................................................................................................. 301
21.0 10 位模数转换器 ( A/D)模块 .................................................................................................................................................. 325
22.0 比较器模块 ............................................................................................................................................................................... 335
23.0 比较器参考电压模块 ................................................................................................................................................................. 341
24.0 CPU 的特殊功能 ....................................................................................................................................................................... 345
25.0 指令集汇总 ............................................................................................................................................................................... 359
26.0 开发支持 ................................................................................................................................................................................... 409
27.0 电气特性 ................................................................................................................................................................................... 413
28.0 直流和交流特性图表 ................................................................................................................................................................. 449
29.0 封装信息 ................................................................................................................................................................................... 451
附录 A :版本历史............................................................................................................................................................................ 455
附录 B :器件差异............................................................................................................................................................................ 455
索引.................................................................................................................................................................................................... 457
Microchip 网站.................................................................................................................................................................................... 469
变更通知客户服务 .............................................................................................................................................................................. 469
客户支持............................................................................................................................................................................................. 469
读者反馈表 ......................................................................................................................................................................................... 470
产品标识体系 ..................................................................................................................................................................................... 471
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 5 页
PIC18F97J60 系列
致客户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。
出版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 CTRC@microchip.com ,或将本
数据手册后附的 《读者反馈表》传真到 86-21-5407 5066 。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A是DS30000
的 A 版本。
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到
器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
•Microchip网站 http://www.microchip.com
• 当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
DS39762A_CN 第 6 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
1.0 器件概述
本文档涉及以下器件的具体信息:
• PIC18F66J60 • PIC18F87J60
• PIC18F66J65 • PIC18F96J60
• PIC18F67J60 • PIC18F96J65
• PIC18F86J60 • PIC18F97J60
• PIC18F86J65
PIC18F97J60 是新面世的低压产品系列,继承了 PIC18
单片机的传统优点(即出色的计算性能、丰富的功能集
以及极具竞争力的价格)。这些特点使得 PIC18F97J60
系列成为许多高性能,尤其是那些成本作为首要考虑因
素的应用的理想选择。
1.1 内核特性
1.1.1 纳瓦技术
PIC18F97J60 系列的所有器件具有一系列能在工作时显
著降低功耗的功能。主要包含以下几项:
• 备用运行模式 :通过将 Timer1 或内部 RC 振荡器作
为单片机时钟源,可使代码执行时的功耗降低大约
90%。
• 多种空闲模式:单片机还可工作在其 CPU 内核禁
止而外设仍然工作的情况下。处于这些状态时,功
耗能降得更低,只有正常工作时的 4% 。
• 动态模式切换:在器件工作期间可由用户代码调用
功耗管理模式,允许用户将节能的理念融入到他们
的应用软件设计中。
1.1.2 振荡器选项和特性
PIC18F97J60 系列的所有器件可提供 5个不同的振荡器
选项,使用户在开发应用硬件时有很大的选择范围。这
些选择包括:
•2种晶振模式,使用晶振或陶瓷谐振器。
•2种外部时钟模式,提供 4 分频时钟输出选项。
•1个锁相环 (Phase Lock Loop, PLL)倍频器,
可在外部振荡器模式下使用,可使时钟速度最高达
到 41.67 MHz 。
• 具有固定的 31 kHz 输出的 RC 振荡器,为对时序不
敏感的应用提供一个极低功耗的选择。
内部振荡器模块还提供了一个稳定的参考源,增加了以
下功能以使器件更安全地工作:
• 故障保护时钟监视器:该部件持续监视主时钟源,
将其与内部振荡器提供的参考信号作比较。如果时
钟发生了故障,单片机会将时钟源切换到内部振荡
器,使器件可继续低速工作或安全地关闭应用。
• 双速启动:该功能允许在上电复位或从休眠模式唤
醒时将内部振荡器用作时钟源,直到主时钟源可用
为止。
1.1.3 扩展存储器
PIC18F97J60 系列为应用程序代码提供了充足的空间
——从 64 KB 到 128 KB 。程序存储器的闪存单元经测
评最多可承受 100 次擦写。在不刷新的情况下,数据保
存期保守地估计在 20 年以上。
PIC18F97J60 系列还为动态应用程序数据提供了充足
的空间——3808 字节的数据 RAM 。
1.1.4 外部存储器总线
即使万一 (这种情况很少发生) 128 KB 的存储器对于
某种应用不够用, PIC18F97J60 系列的 100 引脚器件
还实现了外部存储器总线。这使单片机的内部程序计数
器的寻址空间可以扩展到高达 2MB,为用户提供 8 位
器件很少能达到的数据访问水平。这使得有更多的存储
器选项可供选择,包括:
• 片上和外部存储器结合使用,存储容量最多可达
2 MB
• 使用外部闪存来存储可再编程应用程序代码或大数
据表
• 使用外部 RAM 器件存储大量的变量数据
1.1.5 扩展指令集
PIC18F97J60 系列在 PIC18 指令集的基础上进行了可
选择的扩展,添加了 8 条新指令和一个变址寻址模式。
此扩展可以使用一个器件配置选项使能,它是为优化重
入应用程序代码而特别设计的,这些代码原来是使用高
级语言 (如 C 语言)开发的。
1.1.6 移植方便
无论存储器容量如何,所有器件都共享相同的丰富外
设,使应用程序的扩展和升级工作变得轻松而容易。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 7 页
PIC18F97J60 系列
1.2 其他特殊功能
• 通信:PIC18F97J60 系列包括一系列串行通信外
设,包括多至 2 个的独立增强型 USART 和多至 2
个的主控 SSP 模块,能够进行 SPI 和 I 2C™ (主
控和从动)模式操作。此外,通用 I/O 端口中有一
个可重新配置为 8 位并行从动端口,用于进行直
接的处理器间通信。
• CCP 模块 :本系列的所有器件都包括 2 个捕捉 / 比
较 /PWM (CCP) 模块和 3 个增强型 CCP (ECCP )
模块,可方便灵活地实现控制应用。在同一时间,
最多可以使用 4 种不同时基来执行几项不同的操
作。 3 个 ECCP 模块中的每一个最多都可提供 4
路 PWM 输出,从而总共可有 12 路 PWM 。
ECCP 模块还提供许多有用功能,包括极性选择、
可编程死区延时、自动关闭与重启,以及半桥与全
桥输出模式。
• 10 位 A/D 转换器 :该模块具备可编程采集时间,
从而不必在选择通道和启动转换之间等待一个采样
周期,因而减少了代码开销。
• 扩展型看门狗定时器 (WDT): 该增强型版本加
入了一个 16 位预分频器,可以保证扩展的超时范
围在工作电压和温度变化时保持稳定。超时周期请
参见第 27.0 节 “电气特性”。
1.3 系列中各产品的详细说明
PIC18F97J60 系列器件以 64 引脚、 80 引脚和 100 引
脚封装形式提供。图 1-1 、图 1-2 和图 1-3 分别为这三
类器件的框图。
这些器件在以下四个方面存在差异:
1. 闪存程序存储器(3 种大小,范围从 PIC18FX6J60
器件的 64 KB 到PIC18FX7J60 器件的 128 KB )。
2. A/D 通道数(64 引脚器件有 11 路, 80 引脚器件
有 15 路, 100 引脚器件有 16 路)。
3. 串行通信模块数(64 引脚器件上有 1 个 EUSART
模块和 1 个 MSSP 模块, 80 引脚器件上有 2 个
EUSART 模块和 1 个 MSSP 模块, 100 引脚器
件上有 2 个 EUSART 模块和 2 个 MSSP 模块)。
4. I/O 引脚数(64 引脚器件上 39 个,80 引脚器件
上 55 个, 100 引脚器件上 70 个)。
本系列器件的所有其他功能都是相同的。表 1-1 、表 1-2
和表 1-3 中总结了这些功能。
表 1-4 、表 1-5 和表 1-6 给出了本系列中所有器件的引
脚说明。
DS39762A_CN 第 8 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-1: PIC18F97J60 系列器件特性 (64 引脚器件)
特性
工作频率
程序存储器 (字节数)
程序存储器 (指令数)
数据存储器 (字节数)
中断源
I/O 端口
I/O 引脚
定时器
捕捉 / 比较 /PWM 模块
增强型捕捉 / 比较 /PWM 模块
串行通信 MSSP (1) 和增强型 USART (1)
以太网通信 (10Base-T )有
并行从动端口通信 (PSP )无
外部存储器总线 无
10 位模数转换模块 11 路输入通道
复位 (和延时) POR 、 BOR 、 RESET 指令、堆栈满、
指令集 75 条指令,使能扩展指令集后总共为 83 条指令
封装 64 引脚 TQFP
PIC18F66J60 PIC18F66J65 PIC18F67J60
DC – 41.67 MHz DC – 41.67 MHz DC – 41.67 MHz
64K 96K 128K
32764 49148 65532
3808
26
端口 A, B, C, D, E, F, G
39
5
2
3
堆栈下溢、 MCLR
和 WDT (PWRT 和 OST )
表 1-2 : PIC18F97J60 系列器件特性 (80 引脚器件)
特性
工作频率
程序存储器 (字节数)
程序存储器 (指令数)
数据存储器 (字节数)
中断源
I/O 端口 端口 A, B, C, D, E, F, G, H, J
I/O 引脚
定时器
捕捉 / 比较 /PWM 模块
增强型捕捉 / 比较 /PWM 模块
串行通信 MSSP (1) 和增强型 USART (2)
以太网通信 (10Base-T )有
并行从动端口通信 (PSP )无
外部存储器总线 无
10 位模数转换模块 15 路输入通道
复位 (和延时) POR 、 BOR 、 RESET 指令、堆栈满、
指令集 75 条指令,使能扩展指令集后总共为 83 条指令
封装 80 引脚 TQFP
PIC18F86J60 PIC18F86J65 PIC18F87J60
DC – 41.67 MHz DC – 41.67 MHz DC – 41.67 MHz
64K 96K 128K
32764 49148 65532
堆栈下溢、 MCLR
3808
27
55
5
2
3
和 WDT ( PWRT 和 OST)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 9 页
PIC18F97J60 系列
表 1-3: PIC18F97J60 系列器件特性 (100 引脚器件)
特性
工作频率
程序存储器 (字节数)
程序存储器 (指令数)
数据存储器 (字节数)
中断源
I/O 端口 端口 A, B, C, D, E, F, G, H, J
I/O 引脚
定时器
捕捉 / 比较 /PWM 模块
增强型捕捉 / 比较 /PWM 模块
串行通信 MSSP (2) 和增强型 USART (2)
以太网通信 (10Base-T )有
并行从动端口通信 (PSP )有
外部存储器总线 有
10 位模数转换模块 16 路输入通道
复位 (和延时) POR 、 BOR 、 RESET 指令、堆栈满、
指令集 75 条指令,使能扩展指令集后总共为 83 条指令
封装 100 引脚 TQFP
PIC18F96J65 PIC18F97J60 PIC18F86J10
DC – 41.67 MHz DC – 41.67 MHz DC – 41.67 MHz
64K 96K 128K
32764 49148 65532
3808
29
70
5
2
3
堆栈下溢、 MCLR
和 WDT (PWRT 和 OST )
DS39762A_CN 第 10 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
图 1-1 : PIC18F66J60/66J65/67J60 (64 引脚)框图
OSC2/CLKO
OSC1/CLKI
ENVREG
表指针 <21>
加 / 减逻辑
21
地址锁存器
程序存储器
(64 、96 或 128 KB)
数据锁存器
指令总线 <16>
时序
发生
INTRC
振荡器
高精度
带隙
参考源
稳压器
VDDCORE /VCAP
20
8
V
表锁存器
ROM 锁存器
译码与
上电延时
定时器
振荡器
起振定时器
看门狗
定时器
复位
DD,
SS
V
PCLATH
PCLATU
PCH PCL
PCU
程序计数器
31 级堆栈
STKPTR
IR
指令
控制
上电
复位
欠压
(2)
MCLR
数据总线 <8>
8
8
状态机
控制信号
4
BSR
3
BITOP
数据锁存器
数据存储器
(3808 字节)
地址锁存器
数据地址 <12>
12
FSR0
FSR1
FSR2
加 / 减
逻辑
地址
译码
8 x 8 乘法器
W
8
8
ALU<8>
12
快速操作
存储区
PRODL PRODH
8
8
PORTA
(1)
RA0:RA5
PORTB
(1)
RB0:RB7
4
12
PORTC
RC0:RC7
(1)
PORTD
(1)
RD0:RD2
8
PORTE
(1)
RE0:RE5
8
8
8
PORTF
RF1:RF7
(1)
PORTG
(1)
RG4
10 位
ADC
ECCP1
ECCP2
ECCP3
Timer2 Timer1 Timer3 Timer0
CCP4 CCP5
Timer4
MSSP1
比较器
EUSART1
以太网
注 1 : 关于 I/O 端口引脚的说明,请参见表 1-4 。
2 : BOR 功能在使能片上稳压器时提供。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 11 页
PIC18F97J60 系列
图 1-2 : PIC18F86J60/86J65/87J60 (80 引脚)框图
OSC2/CLKO
OSC1/CLKI
ENVREG
表指针 <21>
加 / 减逻辑
21
地址锁存器
程序存储器
(64 、96 或 128 KB)
数据锁存器
指令总线 <16>
时序
发生
INTRC
振荡器
高精度
带隙
参考源
稳压器
20
8
PCLATH
PCLATU
PCU
程序计数器
31 级堆栈
STKPTR
表锁存器
ROM 锁存器
IR
指令
译码与
控制
上电延时
定时器
振荡器
起振定时器
上电
复位
看门狗
定时器
欠压
(2)
复位
数据总线 <8>
8
PCH PCL
控制信号
8
状态机
4
BSR
3
BITOP
8
数据锁存器
数据存储器
(3808 字节)
地址锁存器
12
数据地址 <12>
12
快速操作
FSR0
存储区
FSR1
FSR2
加 / 减
逻辑
地址
译码
PRODL PRODH
8 x 8 乘法器
W
8
8
ALU<8>
8
PORTA
(1)
RA0:RA5
PORTB
(1)
RB0:RB7
4
PORTC
RC0:RC7
(1)
12
PORTD
(1)
RD0:RD2
PORTE
(1)
RE0:RE7
8
PORTF
(1)
RF1:RF7
8
8
PORTG
RG0:RG4
(1)
8
PORTH
(1)
RH0:RH7
PORTJ
RJ4:RJ5
(1)
ECCP1
VDDCORE /VCAP
10 位
ADC
ECCP2 ECCP3
V
DD, V SS
MCLR
Timer2 Ti mer 1 Timer3 Timer0
CCP4 CCP5
EUSART1
Timer4
EUSART2
比较器
MSSP1
以太网
注 1 : 关于 I/O 端口引脚的说明,请参见表 1-5 。
2 : BOR 功能在使能片上稳压器时提供。
DS39762A_CN 第 12 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
图 1-3 : PIC18F96J60/96J65/97J60 (100 引脚)框图
数据总线 <8>
表指针 <21>
加 / 减逻辑
地址锁存器
程序存储器
(64 、96 或 128 KB)
数据锁存器
系统总线接口
指令总线 <16>
AD15:AD0 和 A19:A16
(与 PORTD 、PORTE
和 PORTH 复用)
OSC2/CLKO
OSC1/CLKI
ENVREG
21
状态机
控制信号
时序
发生
INTRC
振荡器
高精度
带隙
参考源
稳压器
8
8
数据锁存器
数据存储器
PCLATH
PCLATU
20
PCU
PCH PCL
程序计数器
(3808 字节)
地址锁存器
12
PORTA
RA0:RA5
PORTB
RB0:RB7
(1)
(1)
数据地址 <12>
31 级堆栈
STKPTR
8
表锁存器
ROM 锁存器
IR
BSR
4
FSR0
FSR1
FSR2
加 / 减
逻辑
地址
译码
12
4
快速操作
存储区
PORTC
(1)
RC0:RC7
12
PORTD
(1)
RD0:RD7
PORTE
(1)
RE0:RE7
8
指令
译码与
控制
上电延时
定时器
振荡器
起振定时器
上电
复位
看门狗
定时器
欠压
(2)
复位
3
BITOP
8
PRODL PRODH
8 x 8 乘法器
W
8
8
ALU<8>
8
8
8
8
PORTF
RF0:RF7
PORTG
RG0:RG7
PORTH
RH0:RH7
PORTJ
RJ0:RJ7
(1)
(1)
(1)
(1)
10 位
ADC
ECCP1
VDDCORE /VCAP
ECCP2 ECCP3
V
Timer2 Timer1 Timer3 Timer0
DD, V SS
MCLR
Timer4
EUSART1
比较器
EUSART2
MSSP1
MSSP2 CCP4 CCP5
以太网
注 1 : 关于 I/O 端口引脚的说明,请参见表 1-6 。
2 : BOR 功能在使能片上稳压器时提供。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 13 页
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明
引脚名称
引脚号
TQFP
引脚类型缓冲区
类型
说明
MCLR
OSC1/CLKI
OSC1
CLKI
OSC2/CLKO
OSC2
CLKO
RA0/LEDA/AN0
RA0
LEDA
AN0
RA1/LEDB/AN1
RA1
LEDB
AN1
RA2/AN2/V
RA3/AN3/V
RA4/T0CKI
RA5/AN4
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
REF-
RA2
AN2
V
REF-
REF+
RA3
AN3
V
REF+
RA4
T0CKI
RA5
AN4
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
7I S T
39
I
I
CMOS
40
O
O
24
I/O
O
I
23
I/O
O
I
22
I/O
I
I
21
I/O
I
I
28
I/O
I
27
I/O
I
主清零 (复位)输入。此引脚为低电平时,器件复位。
振荡器晶振或外部时钟输入。
ST
—
—
TTL
—
模拟
TTL
—
模拟
TTL
模拟
模拟
TTL
模拟
模拟
ST
ST
TTL
模拟
振荡器晶振或外部时钟源输入。
在内部 RC 模式下带 ST 缓冲区,否则带 CMOS 缓冲区。
外部时钟源输入。总是与引脚功能 OSC1 复用。(见相关
的 OSC2/CLKO 引脚信息。)
振荡器晶振或时钟输出。
振荡器晶振输出。在晶振振荡器模式下,该引脚与晶振或
谐振器相连。
在内部 RC 模式下, OSC2 引脚输出 CLKO 振荡信号,该
信号是 OSC1 引脚上振荡信号的 4 分频,该频率等于指令
周期的倒数。
PORTA 是双向 I/O 端口。
数字 I/O 。
以太网 LEDA 指示器输出。
模拟输入 0。
数字 I/O 。
以太网 LEDB 指示器输出。
模拟输入 1。
数字 I/O 。
模拟输入 2。
A/D 参考电压 (低电平)输入。
数字 I/O 。
模拟输入 3。
A/D 参考电压 (高电平)输入。
数字 I/O 。
Timer0 外部时钟输入。
数字 I/O 。
模拟输入 4。
DD)
DS39762A_CN 第 14 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RB0/INT0/FLT0
RB0
INT0
FLT0
RB1/INT1
RB1
INT1
RB2/INT2
RB2
INT2
RB3/INT3
RB3
INT3
RB4/KBI0
RB4
KBI0
RB5/KBI1
RB5
KBI1
RB6/KBI2/PGC
RB6
KBI2
PGC
RB7/KBI3/PGD
RB7
KBI3
PGD
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚号
TQFP
3
4
5
6
44
43
42
37
引脚类型缓冲区
类型
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
TTL
I
I
I
I
I
I
I
I
I
ST
ST
TTL
ST
TTL
ST
TTL
ST
TTL
TTL
TTL
TTL
TTL
TTL
ST
TTL
TTL
ST
说明
PORTB 是双向 I/O 端口。 PORTB 在所有输入端都可软件
编程为内部弱上拉。
数字 I/O 。
外部中断 0。
增强型 PWM 故障输入 (ECCP 模块);通过软件使能。
数字 I/O 。
外部中断 1。
数字 I/O 。
外部中断 2。
数字 I/O 。
外部中断 3。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP™ 编程时钟引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP 编程数据引脚。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 15 页
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RC0/T1OSO/T13CKI
RC0
T1OSO
T13CKI
RC1/T1OSI/ECCP2/P2A
RC1
T1OSI
ECCP2
P2A
RC2/ECCP1/P1A
RC2
ECCP1
P1A
RC3/SCK1/SCL1
RC3
SCK1
SCL1
RC4/SDI1/SDA1
RC4
SDI1
SDA1
RC5/SDO1
RC5
SDO1
RC6/TX1/CK1
RC6
TX1
CK1
RC7/RX1/DT1
RC7
RX1
DT1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚号
TQFP
30
29
33
34
35
36
31
32
引脚类型缓冲区
类型
I/O
O
I
I/O
I
I/O
O
I/O
I/O
O
I/O
I/O
I/O
I/O
I
I/O
I/O
O
I/O
O
I/O
I/O
I
I/O
ST
—
ST
ST
CMOS
ST
—
ST
ST
—
ST
ST
ST
ST
ST
ST
ST
—
ST
—
ST
ST
ST
ST
说明
PORTC 是双向 I/O 端口。
数字 I/O 。
Timer1 振荡器输出。
Timer1/Timer3 外部时钟输入。
数字 I/O。
Timer1 振荡器输入。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A。
数字 I/O 。
捕捉 1 输入 / 比较 1 输出 /PWM 1 输出。
ECCP1 PWM 输出 A。
数字 I/O 。
SPI 模式的同步串行时钟输入 / 输出。
2
I
C™ 模式的同步串行时钟输入 / 输出。
数字 I/O。
SPI 数据输入。
2
I
C 数据 I/O。
数字 I/O。
SPI 数据输出。
数字 I/O。
EUSART1 异步发送。
EUSART1 同步时钟 (见相关的 RX1/DT1 引脚信息)。
数字 I/O。
EUSART1 异步接收。
EUSART1 同步数据 (见相关的 TX1/CK1 引脚信息)。
DD)
DS39762A_CN 第 16 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RD0/P1B
RD0
P1B
RD1/ECCP3/P3A
RD1
ECCP3
P3A
RD2/CCP4/P3D
RD2
CCP4
P3D
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚号
TQFP
60
59
58
引脚类型缓冲区
类型
I/O
O
I/O
I/O
O
I/O
I/O
O
ST
—
ST
ST
—
ST
ST
—
说明
PORTD 是双向 I/O 端口。
数字 I/O 。
ECCP1 PWM 输出 B 。
数字 I/O 。
捕捉 3 输入 / 比较 3 输出 /PWM 3 输出。
ECCP3 PWM 输出 A 。
数字 I/O 。
捕捉 4 输入 / 比较 4 输出 /PWM 4 输出。
ECCP4 PWM 输出 D。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 17 页
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RE0/P2D
RE0
P2D
RE1/P2C
RE1
P2C
RE2/P2B
RE2
P2B
RE3/P3C
RE3
P3C
RE4/P3B
RE4
P3B
RE5/P1C
RE5
P1C
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚号
TQFP
2
1
64
63
62
61
引脚类型缓冲区
类型
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
说明
PORTE 是双向 I/O 端口。
数字 I/O 。
ECCP2 PWM 输出 D 。
数字 I/O 。
ECCP2 PWM 输出 C 。
数字 I/O 。
ECCP2 PWM 输出 B 。
数字 I/O 。
ECCP3 PWM 输出 C 。
数字 I/O 。
ECCP3 PWM 输出 B 。
数字 I/O 。
ECCP1 PWM 输出 C。
DD)
DS39762A_CN 第 18 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RF1/AN6/C2OUT
RF1
AN6
C2OUT
RF2/AN7/C1OUT
RF2
AN7
C1OUT
RF3/AN8
RF3
AN8
RF4/AN9
RF4
AN9
RF5/AN10/CV
RF5
AN10
CV
RF6/AN11
RF6
AN11
RF7/SS1
RF7
SS1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
REF
REF
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚号
TQFP
17
16
15
14
13
12
11
引脚类型缓冲区
类型
I/O
I
O
I/O
I
O
I/O
I
I/O
I
I/O
I
O
I/O
I
I/O
I
ST
模拟
—
ST
模拟
—
ST
模拟
ST
模拟
ST
模拟
—
ST
模拟
ST
TTL
说明
PORTF 是双向 I/O 端口。
数字 I/O 。
模拟输入 6。
比较器 2 的输出。
数字 I/O 。
模拟输入 7。
比较器 1 的输出。
数字 I/O 。
模拟输入 8。
数字 I/O 。
模拟输入 9。
数字 I/O 。
模拟输入 10 。
比较器参考电压输出。
数字 I/O 。
模拟输入 11 。
数字 I/O 。
SPI 从动选择输入。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 19 页
PIC18F97J60 系列
表 1-4 : PIC18F66J60/66J65/67J60 I/O 引脚说明 (续)
引脚名称
RG4/CCP5/P1D
TQFP
8
RG4
CCP5
P1D
引脚号
V
SS 9, 25, 41, 56 P —
DD 26, 38, 57 P —
V
SS 20 P —
AV
DD 19 P —
AV
ENVREG 18 I ST
DDCORE/V CAP
V
10
VDDCORE
VCAP
V
SSPLL 55 P —
DDPLL 54 P —
V
SSTX 52 P —
V
DDTX 49 P —
V
SSRX 45 P —
V
DDRX 48 P —
V
RBIAS 53 P —
TPOUT+ 51 O —
TPOUT- 50 O —
TPIN+ 47 I
TPIN- 46 I
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
引脚类型缓冲区
类型
I/O
I/O
O
P
P
ST
ST
—
—
—
模拟 以太网差分信号输入。
模拟 以太网差分信号输入。
说明
PORTG 是双向 I/O 端口。
数字 I/O 。
捕捉 5 输入 / 比较 5 输出 /PWM 5 输出。
ECCP1 PWM 输出 D。
逻辑和 I/O 引脚的参考地。
外设数字逻辑和 I/O 引脚的正电源。
模拟模块的参考地。
模拟模块的正电源。
片上稳压器使能。
内核逻辑电源或外部滤波电容连接。
单片机内核逻辑的正电源 (稳压器禁止)。
外部滤波电容连接 (稳压器使能)。
以太网 PHY PLL 的参考地。
以太网 PHY PLL 的 3.3V 正电源。
以太网 PHY 发送子系统的参考地。
以太网 PHY 发送子系统的 3.3V 正电源。
以太网 PHY 接收子系统的参考地。
以太网 PHY 接收子系统的 3.3V 正电源。
以太网 PHY 的偏置电流。必须通过电阻连接到 V
请参见第 18.0 节 “以太网模块”。
以太网差分信号输出。
以太网差分信号输出。
SS,有关规范
DD)
DS39762A_CN 第 20 页 超前信息 2006 Microchip Technology Inc.
表 1-5 : PIC18F86J60/86J65/87J60 I/O 引脚说明
引脚名称
引脚号
TQFP
引脚类型缓冲区
类型
PIC18F97J60 系列
说明
MCLR
OSC1/CLKI
OSC1
CLKI
OSC2/CLKO
OSC2
CLKO
RA0/LEDA/AN0
RA0
LEDA
AN0
RA1/LEDB/AN1
RA1
LEDB
AN1
RA2/AN2/V
RA3/AN3/V
RA4/T0CKI
RA5/AN4
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
注 1 : CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
REF-
RA2
AN2
V
REF-
REF+
RA3
AN3
V
REF+
RA4
T0CKI
RA5
AN4
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
9I S T
49
I
I
CMOS
50
O
O
30
I/O
O
I
29
I/O
O
I
28
I/O
I
I
27
I/O
I
I
34
I/O
I
33
I/O
I
主清零 (复位)输入。此引脚为低电平时,器件复位。
振荡器晶振或外部时钟输入。
ST
OSC2/CLKO 引脚信息。)
振荡器晶振或时钟输出。
—
—
PORTA 是双向 I/O 端口。
TTL
—
模拟
TTL
—
模拟
TTL
模拟
模拟
TTL
模拟
模拟
ST
ST
TTL
模拟
振荡器晶振或外部时钟源输入。
在内部 RC 模式下带 ST 缓冲区,否则带 CMOS 缓冲区。
外部时钟源输入。总是与 OSC1 引脚功能复用。(见相关的
振荡器晶振输出。在晶振振荡器模式下,该引脚与晶振或
谐振器相连。
在内部 RC 模式下, OSC2 引脚输出 CLKO 振荡信号,该信
号是 OSC1 引脚上振荡信号的 4 分频,该频率等于指令周期
的倒数。
数字 I/O 。
以太网 LEDA 指示器输出。
模拟输入 0。
数字 I/O 。
以太网 LEDB 指示器输出。
模拟输入 1。
数字 I/O 。
模拟输入 2。
A/D 参考电压 (低电平)输入。
数字 I/O 。
模拟输入 3。
A/D 参考电压 (高电平)输入。
数字 I/O 。
Timer0 外部时钟输入。
数字 I/O 。
模拟输入 4。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 21 页
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RB0/INT0/FLT0
RB0
INT0
FLT0
RB1/INT1
RB1
INT1
RB2/INT2
RB2
INT2
RB3/INT3
RB3
INT3
RB4/KBI0
RB4
KBI0
RB5/KBI1
RB5
KBI1
RB6/KBI2/PGC
RB6
KBI2
PGC
RB7/KBI3/PGD
RB7
KBI3
PGD
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
5
6
7
8
54
53
52
47
引脚类型缓冲区
类型
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
TTL
I
I
I
I
I
I
I
I
I
ST
ST
TTL
ST
TTL
ST
TTL
ST
TTL
TTL
TTL
TTL
TTL
TTL
ST
TTL
TTL
ST
说明
PORTB 是双向 I/O 端口。 PORTB 在所有输入端都可软件
编程为内部弱上拉。
数字 I/O 。
外部中断 0。
增强型 PWM 故障输入 (ECCP 模块);通过软件使能。
数字 I/O 。
外部中断 1。
数字 I/O 。
外部中断 2。
数字 I/O 。
外部中断 3。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP™ 编程时钟引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP 编程数据引脚。
DD)
DS39762A_CN 第 22 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RC0/T1OSO/T13CKI
RC0
T1OSO
T13CKI
RC1/T1OSI/ECCP2/P2A
RC1
T1OSI
(1)
ECCP2
(1)
P2A
RC2/ECCP1/P1A
RC2
ECCP1
P1A
RC3/SCK1/SCL1
RC3
SCK1
SCL1
RC4/SDI1/SDA1
RC4
SDI1
SDA1
RC5/SDO1
RC5
SDO1
RC6/TX1/CK1
RC6
TX1
CK1
RC7/RX1/DT1
RC7
RX1
DT1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
36
35
43
44
45
46
37
38
引脚类型缓冲区
类型
I/O
O
I
I/O
I
I/O
O
I/O
I/O
O
I/O
I/O
I/O
I/O
I
I/O
I/O
O
I/O
O
I/O
I/O
I
I/O
ST
—
ST
ST
CMOS
ST
—
ST
ST
—
ST
ST
ST
ST
ST
ST
ST
—
ST
—
ST
ST
ST
ST
说明
PORTC 是双向 I/O 端口。
数字 I/O 。
Timer1 振荡器输出。
Timer1/Timer3 外部时钟输入。
数字 I/O。
Timer1 振荡器输入。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A。
数字 I/O 。
捕捉 1 输入 / 比较 1 输出 /PWM 1 输出。
ECCP1 PWM 输出 A。
数字 I/O 。
SPI 模式的同步串行时钟输入 / 输出。
2
I
C™ 模式的同步串行时钟输入 / 输出。
数字 I/O。
SPI 数据输入。
2
I
C 数据 I/O。
数字 I/O。
SPI 数据输出。
数字 I/O。
EUSART1 异步发送。
EUSART1 同步时钟 (见相关的 RX1/DT1 引脚信息)。
数字 I/O。
EUSART1 异步接收。
EUSART1 同步数据 (见相关的 TX1/CK1 引脚信息)。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 23 页
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RD0 72 I/O ST
RD1 69 I/O ST
RD2 68 I/O ST
RE0/P2D
RE0
P2D
RE1/P2C
RE1
P2C
RE2/P2B
RE2
P2B
RE3/P3C
RE3
(2)
P3C
RE4/P3B
RE4
(2)
P3B
RE5/P1C
RE5
(2)
P1C
RE6/P1B
RE6
(2)
P1B
RE7/ECCP2/P2A
RE7
(3)
ECCP2
(3)
P2A
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
4
3
78
77
76
75
74
73
引脚类型缓冲区
类型
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
I/O
O
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
ST
ST
—
说明
PORTD 是双向 I/O 端口。
数字 I/O 。
数字 I/O 。
数字 I/O 。
PORTE 是双向 I/O 端口。
数字 I/O 。
ECCP2 PWM 输出 D。
数字 I/O 。
ECCP2 PWM 输出 C。
数字 I/O 。
ECCP2 PWM 输出 B。
数字 I/O 。
ECCP3 PWM 输出 C。
数字 I/O 。
ECCP3 PWM 输出 B。
数字 I/O 。
ECCP1 PWM 输出 C。
数字 I/O 。
ECCP1 PWM 输出 B。
数字 I/O 。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A。
DD)
DS39762A_CN 第 24 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RF1/AN6/C2OUT
RF1
AN6
C2OUT
RF2/AN7/C1OUT
RF2
AN7
C1OUT
RF3/AN8
RF3
AN8
RF4/AN9
RF4
AN9
RF5/AN10/CV
RF5
AN10
CV
RF6/AN11
RF6
AN11
RF7/SS1
RF7
SS1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
注 1 : CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
REF
REF
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
23
18
17
16
15
14
13
引脚类型缓冲区
类型
I/O
I
O
I/O
I
O
I/O
I
I/O
I
I/O
I
O
I/O
I
I/O
I
ST
模拟
—
ST
模拟
—
ST
模拟
ST
模拟
ST
模拟
—
ST
模拟
ST
TTL
说明
PORTF 是双向 I/O 端口。
数字 I/O 。
模拟输入 6。
比较器 2 的输出。
数字 I/O 。
模拟输入 7。
比较器 1 的输出。
数字 I/O 。
模拟输入 8。
数字 I/O 。
模拟输入 9。
数字 I/O 。
模拟输入 10 。
比较器参考电压输出。
数字 I/O 。
模拟输入 11 。
数字 I/O 。
SPI 从动选择输入。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 25 页
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RG0/ECCP3/P3A
RG0
ECCP3
P3A
RG1/TX2/CK2
RG1
TX2
CK2
RG2/RX2/DT2
RG2
RX2
DT2
RG3/CCP4/P3D
RG3
CCP4
P3D
RG4/CCP5/P1D
RG4
CCP5
P1D
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
56
55
42
41
10
引脚类型缓冲区
类型
I/O
I/O
O
I/O
O
I/O
I/O
I
I/O
I/O
I/O
O
I/O
I/O
O
ST
ST
—
ST
—
ST
ST
ST
ST
ST
ST
—
ST
ST
—
说明
PORTG 是双向 I/O 端口。
数字 I/O 。
捕捉 3 输入 / 比较 3 输出 /PWM 3 输出。
ECCP3 PWM 输出 A。
数字 I/O 。
EUSART2 异步发送。
EUSART2 同步时钟 (见相关的 RX2/DT2 引脚信息)。
数字 I/O。
EUSART2 异步接收。
EUSART2 同步数据 (见相关的 TX2/CK2 引脚信息)。
数字 I/O 。
捕捉 4 输入 / 比较 4 输出 /PWM 4 输出。
ECCP3 PWM 输出 D。
数字 I/O 。
捕捉 5 输入 / 比较 5 输出 /PWM 5 输出。
ECCP1 PWM 输出 D。
DD)
DS39762A_CN 第 26 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
RH0 79 I/O ST
RH1 80 I/O ST
RH2 1 I/O ST
RH3 2 I/O ST
RH4/AN12/P3C
RH4
AN12
(4)
P3C
RH5/AN13/P3B
RH5
AN13
(4)
P3B
RH6/AN14/P1C
RH6
AN14
(4)
P1C
RH7/AN15/P1B
RH7
AN15
(4)
P1B
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
22
21
20
19
引脚类型缓冲区
类型
I/O
I
O
I/O
I
O
I/O
I
O
I/O
I
O
ST
模拟
—
ST
模拟
—
ST
模拟
—
ST
模拟
—
说明
PORTH 是双向 I/O 端口。
数字 I/O 。
数字 I/O 。
数字 I/O 。
数字 I/O 。
数字 I/O 。
模拟输入 12 。
ECCP3 PWM 输出 C。
数字 I/O 。
模拟输入 13 。
ECCP3 PWM 输出 B。
数字 I/O 。
模拟输入 14 。
ECCP1 PWM 输出 C。
数字 I/O 。
模拟输入 15 。
ECCP1 PWM 输出 B。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 27 页
PIC18F97J60 系列
表 1-5: PIC18F86J60/86J65/87J60 I/O 引脚说明 (续)
引脚名称
TQFP
RJ4 39 I/O ST
RJ5 40 I/O ST
引脚号
SS 11, 31, 51, 70 P —
V
DD 32, 48, 71 P —
V
SS 26 P —
AV
DD 25 P —
AV
ENVREG 24 I ST
DDCORE/V CAP
V
12
VDDCORE
VCAP
V
SSPLL 67 P —
DDPLL 66 P —
V
V
SSTX 64 P —
V
DDTX 61 P —
SSRX 57 P —
V
DDRX 60 P —
V
RBIAS 65 P —
TPOUT+ 63 O —
TPOUT- 62 O —
TPIN+ 59 I
TPIN- 58 I
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位置 1 时, ECCP2/P2A 的默认配置。
2: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
3: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置。
4: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚类型缓冲区
类型
P
P
—
—
模拟 以太网差分信号输入。
模拟 以太网差分信号输入。
说明
PORTJ 是双向 I/O 端口。
数字 I/O 。
数字 I/O
逻辑和 I/O 引脚的参考地。
外设数字逻辑和 I/O 引脚的正电源。
模拟模块的参考地。
模拟模块的正电源。
片上稳压器使能。
内核逻辑电源或外部滤波电容连接。
单片机内核逻辑的正电源 (稳压器禁止)。
外部滤波电容连接 (稳压器使能)。
以太网 PHY PLL 的参考地。
以太网 PHY PLL 的 3.3V 正电源。
以太网 PHY 发送子系统的参考地。
以太网 PHY 发送子系统的 3.3V 正电源。
以太网 PHY 接收子系统的参考地。
以太网 PHY 接收子系统的 3.3V 正电源。
以太网 PHY 的偏置电流。必须通过电阻连接到 V
请参见第 18.0 节 “以太网模块”。
以太网差分信号输出。
以太网差分信号输出。
SS,有关规范
DD)
DS39762A_CN 第 28 页 超前信息 2006 Microchip Technology Inc.
表 1-6 : PIC18F96J60/96J65/97J60 I/O 引脚说明
引脚名称
引脚号
TQFP
引脚类型缓冲区
类型
PIC18F97J60 系列
说明
MCLR
OSC1/CLKI
OSC1
CLKI
OSC2/CLKO
OSC2
CLKO
RA0/LEDA/AN0
RA0
LEDA
AN0
RA1/LEDB/AN1
RA1
LEDB
AN1
RA2/AN2/V
RA3/AN3/V
RA4/T0CKI
RA5/AN4
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
注 1 : CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
REF-
RA2
AN2
V
REF-
REF+
RA3
AN3
V
REF+
RA4
T0CKI
RA5
AN4
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
13 I ST
63
I
I
64
O
O
35
I/O
O
I
34
I/O
O
I
33
I/O
I
I
32
I/O
I
I
42
I/O
I
41
I/O
I
ST
CMOS
—
—
TTL
—
模拟
TTL
—
模拟
TTL
模拟
模拟
TTL
模拟
模拟
ST
ST
TTL
模拟
主清零 (复位)输入。此引脚为低电平时,器件复位。
振荡器晶振或外部时钟输入。
振荡器晶振或外部时钟源输入。
在内部 RC 模式下带 ST 缓冲区,否则带 CMOS 缓冲区。
外部时钟源输入。总是与 OSC1 引脚功能复用。(见相关的
OSC2/CLKO 引脚信息。)
振荡器晶振或时钟输出。
振荡器晶振输出。在晶振振荡器模式下,该引脚与晶振或谐
振器相连。
在内部 RC 模式下, OSC2 引脚输出 CLKO 振荡信号,该信
号是 OSC1 引脚上振荡信号的 4 分频,该频率等于指令周期
的倒数。
PORTA 是双向 I/O 端口。
数字 I/O 。
以太网 LEDA 指示器输出。
模拟输入 0。
数字 I/O 。
以太网 LEDB 指示器输出。
模拟输入 1。
数字 I/O 。
模拟输入 2。
A/D 参考电压 (低电平)输入。
数字 I/O 。
模拟输入 3。
A/D 参考电压 (高电平)输入。
数字 I/O 。
Timer0 外部时钟输入。
数字 I/O 。
模拟输入 4。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 29 页
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RB0/INT0/FLT0
RB0
INT0
FLT0
RB1/INT1
RB1
INT1
RB2/INT2
RB2
INT2
RB3/INT3/ECCP2/P2A
RB3
INT3
(1)
ECCP2
(1)
P2A
RB4/KBI0
RB4
KBI0
RB5/KBI1
RB5
KBI1
RB6/KBI2/PGC
RB6
KBI2
PGC
RB7/KBI3/PGD
RB7
KBI3
PGD
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
5
6
7
8
69
68
67
57
引脚类型缓冲区
类型
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
TTL
I
I
I
I
I
O
I
I
I
I
ST
ST
TTL
ST
TTL
ST
TTL
ST
ST
—
TTL
TTL
TTL
TTL
TTL
TTL
ST
TTL
TTL
ST
说明
PORTB 是双向 I/O 端口。 PORTB 在所有输入端都可软件
编程为内部弱上拉。
数字 I/O 。
外部中断 0。
增强型 PWM 故障输入 (ECCP 模块);通过软件使能。
数字 I/O 。
外部中断 1。
数字 I/O 。
外部中断 2。
数字 I/O 。
外部中断 3。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A 。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP™ 编程时钟引脚。
数字 I/O 。
电平变化中断引脚。
在线调试器和 ICSP 编程数据引脚。
DD)
DS39762A_CN 第 30 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RC0/T1OSO/T13CKI
RC0
T1OSO
T13CKI
RC1/T1OSI/ECCP2/P2A
RC1
T1OSI
(2)
ECCP2
(2)
P2A
RC2/ECCP1/P1A
RC2
ECCP1
P1A
RC3/SCK1/SCL1
RC3
SCK1
SCL1
RC4/SDI1/SDA1
RC4
SDI1
SDA1
RC5/SDO1
RC5
SDO1
RC6/TX1/CK1
RC6
TX1
CK1
RC7/RX1/DT1
RC7
RX1
DT1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
44
43
53
54
55
56
45
46
引脚类型缓冲区
类型
I/O
O
I
I/O
I
I/O
O
I/O
I/O
O
I/O
I/O
I/O
I/O
I
I/O
I/O
O
I/O
O
I/O
I/O
I
I/O
ST
—
ST
ST
CMOS
ST
—
ST
ST
—
ST
ST
ST
ST
ST
ST
ST
—
ST
—
ST
ST
ST
ST
说明
PORTC 是双向 I/O 端口。
数字 I/O 。
Timer1 振荡器输出。
Timer1/Timer3 外部时钟输入。
数字 I/O。
Timer1 振荡器输入。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A。
数字 I/O 。
捕捉 1 输入 / 比较 1 输出 /PWM 1 输出。
ECCP1 PWM 输出 A 。
数字 I/O 。
SPI 模式的同步串行时钟输入 / 输出。
2
I
C™ 模式的同步串行时钟输入 / 输出。
数字 I/O。
SPI 数据输入。
2
I
C 数据 I/O。
数字 I/O。
SPI 数据输出。
数字 I/O。
EUSART1 异步发送。
EUSART1 同步时钟 (见相关的 RX1/DT1 引脚信息)。
数字 I/O。
EUSART1 异步接收。
EUSART1 同步数据 (见相关的 TX1/CK1 引脚信息)。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 31 页
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RD0/AD0/PSP0
RD0
AD0
PSP0
RD1/AD1/PSP1
RD1
AD1
PSP1
RD2/AD2/PSP2
RD2
AD2
PSP2
RD3/AD3/PSP3
RD3
AD3
PSP3
RD4/AD4/PSP4/SDO2
RD4
AD4
PSP4
SDO2
RD5/AD5/PSP5/
SDI2/SDA2
RD5
AD5
PSP5
SDI2
SDA2
RD6/AD6/PSP6/
SCK2/SCL2
RD6
AD6
PSP6
SCK2
SCL2
RD7/AD7/PSP7/SS2
RD7
AD7
PSP7
SS2
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
92
91
90
89
88
87
84
83
引脚类型缓冲区
类型
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
O
I/O
I/O
I/O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
ST
TTL
TTL
ST
TTL
TTL
ST
TTL
TTL
ST
TTL
TTL
ST
TTL
TTL
—
ST
TTL
TTL
ST
ST
ST
TTL
TTL
ST
ST
ST
TTL
TTL
TTL
说明
PORTD 是双向 I/O 端口。
数字 I/O 。
外部存储器地址 / 数据 0。
并行从动端口数据。
数字 I/O 。
外部存储器地址 / 数据 1。
并行从动端口数据。
数字 I/O 。
外部存储器地址 / 数据 2。
并行从动端口数据。
数字 I/O 。
外部存储器地址 / 数据 3。
并行从动端口数据。
数字 I/O 。
外部存储器地址 / 数据 4。
并行从动端口数据。
SPI 数据输出。
数字 I/O 。
外部存储器地址 / 数据 5。
并行从动端口数据。
SPI 数据输入。
2
I
C™ 数据 I/O。
数字 I/O 。
外部存储器地址 / 数据 6。
并行从动端口数据。
SPI 模式的同步串行时钟输入 / 输出。
2
I
C 模式的同步串行时钟输入 / 输出。
数字 I/O 。
外部存储器地址 / 数据 7。
并行从动端口数据。
SPI 从动选择输入。
DD)
DS39762A_CN 第 32 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RE0/AD8/RD
RE0
AD8
RD
P2D
RE1/AD9/WR
RE1
AD9
WR
P2C
RE2/AD10/CS
RE2
AD10
CS
P2B
RE3/AD11/P3C
RE3
AD11
P3C
RE4/AD12/P3B
RE4
AD12
P3B
RE5/AD13/P1C
RE5
AD13
P1C
RE6/AD14/P1B
RE6
AD14
P1B
RE7/AD15/ECCP2/P2A
RE7
AD15
ECCP2
P2A
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
注 1 : CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
/P2D
/P2C
/P2B
(3)
(3)
(3)
(3)
(4)
(4)
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
4
3
98
97
96
95
94
93
引脚类型缓冲区
类型
I/O
I/O
I
O
I/O
I/O
I
O
I/O
I/O
I
O
I/O
I/O
O
I/O
I/O
O
I/O
I/O
O
I/O
I/O
O
I/O
I/O
I/O
O
ST
TTL
TTL
—
ST
TTL
TTL
—
ST
TTL
TTL
—
ST
TTL
—
ST
TTL
—
ST
TTL
—
ST
TTL
—
ST
TTL
ST
—
说明
PORTE 是双向 I/O 端口。
数字 I/O 。
外部存储器地址 / 数据 8。
并行从动端口的读控制。
ECCP2 PWM 输出 D。
数字 I/O 。
外部存储器地址 / 数据 9。
并行从动端口的写控制。
ECCP2 PWM 输出 C。
数字 I/O 。
外部存储器地址 / 数据 10。
并行从动端口的片选控制。
ECCP2 PWM 输出 B。
数字 I/O 。
外部存储器地址 / 数据 11。
ECCP3 PWM 输出 C。
数字 I/O 。
外部存储器地址 / 数据 12。
ECCP3 PWM 输出 B。
数字 I/O 。
外部存储器地址 / 数据 13。
ECCP1 PWM 输出 C。
数字 I/O 。
外部存储器地址 / 数据 14。
ECCP1 PWM 输出 B。
数字 I/O 。
外部存储器地址 / 数据 15。
捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
ECCP2 PWM 输出 A。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 33 页
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RF0/AN5
RF0
AN5
RF1/AN6/C2OUT
RF1
AN6
C2OUT
RF2/AN7/C1OUT
RF2
AN7
C1OUT
RF3/AN8
RF3
AN8
RF4/AN9
RF4
AN9
RF5/AN10/CV
RF5
AN10
CV
RF6/AN11
RF6
AN11
RF7/SS1
RF7
SS1
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
注 1 : CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
REF
REF
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
12
28
23
22
21
20
19
18
引脚类型缓冲区
类型
I/O
I
I/O
I
O
I/O
I
O
I/O
I
I/O
I
I/O
I
O
I/O
I
I/O
I
ST
模拟
ST
模拟
—
ST
模拟
—
ST
模拟
ST
模拟
ST
模拟
—
ST
模拟
ST
TTL
说明
PORTF 是双向 I/O 端口。
数字 I/O 。
模拟输入 5。
数字 I/O 。
模拟输入 6。
比较器 2 的输出。
数字 I/O 。
模拟输入 7。
比较器 1 的输出。
数字 I/O 。
模拟输入 8。
数字 I/O 。
模拟输入 9。
数字 I/O 。
模拟输入 10 。
比较器参考电压输出。
数字 I/O 。
模拟输入 11 。
数字 I/O 。
SPI 从动选择输入。
DD)
DS39762A_CN 第 34 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RG0/ECCP3/P3A
RG0
ECCP3
P3A
RG1/TX2/CK2
RG1
TX2
CK2
RG2/RX2/DT2
RG2
RX2
DT2
RG3/CCP4/P3D
RG3
CCP4
P3D
RG4/CCP5/P1D
RG4
CCP5
P1D
RG5 11 I/O ST
RG6 10 I/O ST
RG7 38 I/O ST
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
71
70
52
51
14
引脚类型缓冲区
类型
I/O
I/O
O
I/O
O
I/O
I/O
I
I/O
I/O
I/O
O
I/O
I/O
O
ST
ST
—
ST
—
ST
ST
ST
ST
ST
ST
—
ST
ST
—
说明
PORTG 是双向 I/O 端口。
数字 I/O 。
捕捉 3 输入 / 比较 3 输出 /PWM 3 输出。
ECCP3 PWM 输出 A 。
数字 I/O 。
EUSART2 异步发送。
EUSART2 同步时钟 (见相关的 RX2/DT2 引脚信息)。
数字 I/O。
EUSART2 异步接收。
EUSART2 同步数据 (见相关的 TX2/CK2 引脚信息)。
数字 I/O 。
捕捉 4 输入 / 比较 4 输出 /PWM 4 输出。
ECCP3 PWM 输出 D 。
数字 I/O 。
捕捉 5 输入 / 比较 5 输出 /PWM 5 输出。
ECCP1 PWM 输出 D 。
数字 I/O 。
数字 I/O 。
数字 I/O 。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 35 页
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RH0/A16
RH0
A16
RH1/A17
RH1
A17
RH2/A18
RH2
A18
RH3/A19
RH3
A19
RH4/AN12/P3C
RH4
AN12
(5)
P3C
RH5/AN13/P3B
RH5
AN13
(5)
P3B
RH6/AN14/P1C
RH6
AN14
(5)
P1C
RH7/AN15/P1B
RH7
AN15
(5)
P1B
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
99
100
1
2
27
26
25
24
引脚类型缓冲区
类型
I/O
O
I/O
O
I/O
O
I/O
O
I/O
I
O
I/O
I
O
I/O
I
O
I/O
I
O
ST
—
ST
—
ST
—
ST
—
ST
模拟
—
ST
模拟
—
ST
模拟
—
ST
模拟
—
说明
PORTH 是双向 I/O 端口。
数字 I/O 。
外部存储器地址 16 。
数字 I/O 。
外部存储器地址 17 。
数字 I/O 。
外部存储器地址 18 。
数字 I/O 。
外部存储器地址 19 。
数字 I/O 。
模拟输入 12 。
ECCP3 PWM 输出 C。
数字 I/O 。
模拟输入 13 。
ECCP3 PWM 输出 B。
数字 I/O 。
模拟输入 14 。
ECCP1 PWM 输出 C。
数字 I/O 。
模拟输入 15 。
ECCP1 PWM 输出 B。
DD)
DS39762A_CN 第 36 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
RJ0/ALE
RJ0
ALE
RJ1/OE
RJ1
OE
RJ2/WRL
RJ2
WRL
RJ3/WRH
RJ3
WRH
RJ4/BA0
RJ4
BA0
RJ5/CE
RJ5
CE
RJ6/LB
RJ6
LB
RJ7/UB
RJ7
UB
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚号
TQFP
49
50
66
61
47
48
58
39
引脚类型缓冲区
类型
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
I/O
O
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
ST
—
说明
PORTJ 是双向 I/O 端口。
数字 I/O 。
外部存储器地址锁存器使能。
数字 I/O 。
外部存储器输出使能。
数字 I/O 。
外部存储器低字节写控制。
数字 I/O 。
外部存储器高字节写控制。
数字 I/O 。
外部存储器字节地址 0 控制。
数字 I/O
外部存储器芯片使能控制。
数字 I/O 。
外部存储器低字节控制。
数字 I/O 。
外部存储器高字节控制。
DD)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 37 页
PIC18F97J60 系列
表 1-6: PIC18F96J60/96J65/97J60 I/O 引脚说明 (续)
引脚名称
TQFP
NC 9 — —
引脚号
V
SS 15, 36, 40,
60, 65, 85
DD 17, 37, 59,
V
62, 86
SS 31 P —
AV
DD 30 P —
AV
ENVREG 29 I ST
DDCORE/V CAP
V
16
VDDCORE
VCAP
V
SSPLL 82 P —
DDPLL 81 P —
V
SSTX 79 P —
V
DDTX 76 P —
V
SSRX 72 P —
V
DDRX 75 P —
V
RBIAS 80 P —
TPOUT+ 78 O —
TPOUT- 77 O —
TPIN+ 74 I
TPIN- 73 I
图注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入或输出
ST = CMOS 电平的施密特触发器 Analog = 模拟输入
I= 输入 O= 输出
P= 电源 OD = 漏极开路 (没有 P 二极管接到 V
注 1: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (扩展单片机模式)。
2: 在所有操作模式中,所有器件的 ECCP2/P2A 的默认配置 (CCP2MX 配置位置 1)。
3: P1B/P1C/P3B/P3C 的默认配置 ( ECCPMX 配置位置 1)。
4: CCP2MX 配置位清零时, ECCP2/P2A 的替代配置 (单片机模式)。
5: P1B/P1C/P3B/P3C 的替代配置 ( ECCPMX 配置位清零)。
引脚类型缓冲区
类型
P—
P—
P
P
—
—
模拟 以太网差分信号输入。
模拟 以太网差分信号输入。
说明
无连接。
逻辑和 I/O 引脚的参考地。
外设数字逻辑和 I/O 引脚的正电源。
模拟模块的参考地。
模拟模块的正电源。
片上稳压器使能。
内核逻辑电源或外部滤波电容连接。
单片机内核逻辑的正电源 (稳压器禁止)。
外部滤波电容连接 (稳压器使能)。
以太网 PHY PLL 的参考地。
以太网 PHY PLL 的 3.3V 正电源。
以太网 PHY 发送子系统的参考地。
以太网 PHY 发送子系统的 3.3V 正电源。
以太网 PHY 接收子系统的参考地。
以太网 PHY 接收子系统的 3.3V 正电源。
以太网 PHY 的偏置电流。必须通过电阻连接到 V
请参见第 18.0 节 “以太网模块”。
以太网差分信号输出。
以太网差分信号输出。
SS,有关规范
DD)
DS39762A_CN 第 38 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
2.0 振荡器配置
2.1 概述
PIC18F97J60 系列器件的振荡器和单片机时钟系统不
同于标准 PIC18FXXJXX 器件的。新增的以太网模块需
要一个稳定的 25 MHz 时钟源,因此必须为其配备能提
供该频率的主振荡器以及不同范围的单片机时钟速度。
图 2-1 中简要说明了振荡器的结构。
PIC18FXXJXX 增强型单片机中使用的其他振荡器功能
(例如内部 RC 振荡器和时钟切换)仍保持不变。它们
将在本章中稍后讨论。
图 2-1 : PIC18F97J60 系列时钟框图
2.2 振荡器类型
PIC18F97J60 系列器件可以在 5 种不同的振荡器模式下
工作:
1. HS 高速晶振 / 谐振器
2. HSPLL 带软件 PLL 控制的高速晶振 / 谐振器
3. EC 带 F
4. ECPLL 带软件 PLL控制的外部时钟
5. INTRC 31 kHz 内部振荡器
2.2.1 振荡器控制
可以通过编程 FOSC2:FOSC0 配置位来选择振荡器模
式。 FOSC1:FOSC0 位选择默认的主振荡器模式,而
FOSC2 选择何时调用 INTRC。
OSCCON 寄存器 (寄存器 2-2)选择有效时钟模式。它
主要用于在功耗管理模式下控制时钟切换。它的使用在
第 2.7.1 节 “振荡器控制寄存器”中讨论。
通过选择预分频器 / 后分频器组合设置以及使能 PLL ,
OSCTUNE 寄存器 (寄存器 2-1 )用于选择主振荡器源
的系统时钟频率。它的使用在第 2.6.1 节“PLL 模块”
中讨论。
OSC /4 输出的外部时钟
主振荡器
OSC2
休眠
OSC1
辅助振荡器
T1OSO
T1OSCEN
T1OSI
注: 关于 OSCTUNE 寄存器配置及相应的频率,请参见表 2-2 。
使能
振荡器
PLL
预分频器
PIC18F97J60 系列
PLL/ 预分频器 / 后分频器
5x PLL
INTRC
源
PLL
后分频器
EC、HS、ECPLL 和 HSPLL
T1OSC
内部振荡器
以太网时钟
OSCTUNE<7:5>
时钟
控制
WDT 、PWRT、FSCM
和双速启动
时钟源选项
(供其他模块使用)
FOSC2:FOSC0
OSCCON<1:0>
MUX
IDLEN
(1)
外设
CPU
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 39 页
PIC18F97J60 系列
2.3 晶振 / 陶瓷谐振器 ( HS 模式)
在 HS 或 HSPLL 振荡器模式下,晶振与 OSC1 和 OSC2
引脚相连来产生振荡信号。图2-2 显示了引脚连接方式。
振荡器的设计要求使用平行切割的晶体。
注: 使用顺序切割的晶体,可能会使振荡器产
生的频率超出晶体制造厂商所给出的参数
范围。
图 2-2 : 晶振工作原理 (HS 或
HSPLL 配置)
(1)
C1
(1)
C2
注 1: 关于 C1 和 C2 的初始值,请参见表 2-1 。
2: 对于 AT 条形切割的晶体可能会需要一个串联电
阻( RS )。
F 的值随选定的振荡器模式变化。
3 : R
XTAL
RS
OSC1
OSC2
(2)
(3)
RF
休眠
PIC18FXXJ6X
至
内部
逻辑
注 1 :电容值越大,振荡器的稳定性越高,但同
时起振时间也越长。
2 : 因为每种晶振都有其自身特性,用户应当
向晶振制造厂商询问外部元件的适当值。
3 : 可能需要使用电阻Rs 以避免对低驱动规格
的晶体造成过驱动。
4 : 请始终在设计的 V
DD 和温度范围下验证振
荡器性能。
2.4 外部时钟输入 ( EC 模式)
EC 和 ECPLL 振荡器模式要求 OSC1 引脚与一个外部
时钟源相连。在上电复位后或从休眠模式退出后,不需
要振荡器起振时间。
在 EC 振荡器模式下,由 OSC2 引脚输出振荡器频率的
4 分频信号。此信号可用于测试或同步其他逻辑。图 2-3
显示了 EC 振荡器模式的引脚连接方式。
图 2-3 : 外部时钟输入工作原理
(EC 配置)
来自外部
系统的时钟
OSC/4
F
OSC1/CLKI
PIC18FXXJ6X
OSC2/CLKO
表 2-1 : 晶振的电容选择
振荡器
类型
晶振频率
HS 25 MHz 15 pF 15 pF
上述电容值仅供设计参考。
要得到理想的振荡器工作状况,可能需要不同的电容
值。用户应当在设计的 V
的性能。请参见以下应用笔记以获取振荡器具体信息:
• AN588
,“
PIC® Microcontroller Oscillator
Design Guide
”
• AN826,“Crystal Oscillator Basics and Crystal
Selection for rfPIC
®
• AN849 ,“Basic PIC® Oscillator Design
• AN943 ,“Practical PIC® Oscillator Analysis and
”
Design
• AN949,“Making Your Oscillator Work
更多信息,请参见本表下方的 “注”。
已测试的典型电容值:
C1 C2
DD 和温度条件下测试振荡器
and PIC® Devices
”
”
”
如图 2-4 所示,在 HS 模式下, OSC1 引脚也可以连接
外部时钟源。在这种配置下,OSC2引脚保持开路状态。
图 2-4 : 外部时钟输入工作原理
(HS 振荡器配置)
来自外部
系统的时钟
开路
OSC1
PIC18FXXJ6X
( HS 模式)
OSC2
DS39762A_CN 第 40 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
2.5 内部振荡器模块
PIC18F97J60 系列器件包含一个内部振荡器源(INTRC ),
它提供了标称值为 31 kHz 的输出。 INTRC 在器件上电时
被使能,并在器件的配置阶段为其提供时钟直到器件进
入工作模式为止。如果选择 INTRC 作为器件的时钟源或
者使能以下任一功能时,也会使能 INTRC :
• 故障保护时钟监视器
• 看门狗定时器
• 双速启动
在第 24.0 节“CPU 的特殊功能”中详细讨论了这些功
能。
也可以通过将 FOSC2 配置位置 1 ,将 INTRC 配置为器
件启动时的默认时钟源。这将在第 2.7.1 节 “振荡器控
制寄存器”中讨论。
器源内部生成所需的以太网时钟。频率的误差范围已规
定,基本上排除了使用陶瓷谐振器的可能性。更多详细信
息,请参见第 27.0 节“电气特性”的表 27-6 中的参数 5。
2.6.1 PLL 模块
为了适应各种应用和单片机时钟速度,在时钟系统中包
括了独立的 PLL 模块。它由 3 个元件组成:
• 可配置的预分频器 ( 1:2 或 1:3)
• 5x PLL 倍频器
• 可配置的后分频器 ( 1:1、 1:2 或 1:3)
PLL 模块的工作受 OSCTUNE 寄存器(寄存器 2-1)的
控制。PLL 模块的预分频器和后分频器可以和 PLL 自身
一起使用或独立使用,提供了一定范围的可供选择的系
统时钟频率,包括不能改变的主振荡器频率 25 MHz 。
表 2-2 中给出了与操作兼容的所有可能的振荡器配置。
2.6 以太网操作和单片机时钟
尽管PIC18F97J60 系列器件可接受范围很广的晶振和外
部振荡器输入信号,但它们用在以太网应用中时,必须
始终使用 25 MHz 时钟源。不支持从其他频率的主振荡
寄存器 2-1 : OSCTUNE :PLL 模块控制寄存器
R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0
PPST1 PLLEN
bit 7 bit 0
(1)
PPST0 PPRE — — — —
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3-0
注 1: 仅在 ECPLL 和 HSPLL 振荡器配置中可用;其他情况下,此位不可用,并且读为 0 。
PPST1: PLL 后分频器配置位
1 =2分频
0 =3分频
PLLEN: 5x 倍频器 PLL 使能位
1 = 使能 PLL
0 = 禁止 PLL
PPST0: PLL 后分频器使能位
1 = 使能后分频器
0 = 禁止后分频器
PPRE: PLL 预分频器配置位
1 =2分频
0 =3分频
未用:读为 0
(1)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 41 页
PIC18F97J60 系列
表 2-2 :不 同PLL 模块配置的器件时钟速度
5x PLL
使能
禁止
图注: x = 无关位
注 1 : 未实现的配置;代表超出单片机运行范围的时钟频率。
2: PLL 和后分频器都禁止时,预分频器自动禁止。
PLL 预分频器 PLL 后分频器
禁止
÷2
÷3
禁止
÷2
÷3
(2)
÷2 1111 31.2500
÷3 0111 20.8333
禁止
÷2 1110 20.8333
÷3 0110 13.8899
禁止
÷2 1011 6.2500
÷3 0010 4.1667
÷2 1011 4.1667
÷3 1000 2.7778
PLL 模块配置
(OSCTUNE<7:4> )
x101
x100 41.6667
x00x
时钟频率 (MHz )
(注 1 )
25 (默认值)
2.7 时钟源与振荡器切换
PIC18F97J60 系列器件包含了允许器件时钟源从主振
荡器切换到其他时钟源的功能。这些器件还提供 2 个备
用时钟源。当使能备用时钟源时,可以使用多种功耗管
理工作模式。
基本上,这些器件都有 3 种时钟源:
• 主振荡器
• 辅助振荡器
• 内部振荡器模块
主振荡器包括外部晶振、谐振器模式和外部时钟模式。
特定的模式由 FOSC2:FOSC0 配置位定义。这些模式的
详细信息已在本章前面的内容中作过介绍。
辅助振荡器是指那些不与 OSC1 或 OSC2 引脚连接的外
部时钟源。这些时钟源即使在控制器处于功耗管理模式
时仍然可以继续工作。PIC18F97J60 系列器件支持使用
Timer1 振荡器作为辅助振荡器。此振荡器在所有功耗管
理模式中通常用作实时时钟等功能的时基。
大部分情况下,在 RC0/T1OSO/T13CKI 和 RC1/T1OSI
引脚之间接有一个 32.768 kHz 的时钟晶振。在每个引
脚与地之间均接有负载电容。将在第 12.3 节“Timer1
振荡器”中详细讨论 Timer1 振荡器。
除了作为主时钟源之外,内部振荡器还可以作为功耗管
理模式的时钟源。INTRC 源也可作为几种特殊功能部件
(例如 WDT 和故障保护时钟监视器)的时钟源。
图 2-1 显示了 PIC18F97J60 系列器件的时钟源。关于配
置寄存器的详细信息,请参见第 24.0 节“CPU 的特殊
功能”。
DS39762A_CN 第 42 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
2.7.1 振荡器控制寄存器
OSCCON 寄存器(寄存器 2-2)控制全功耗模式和功耗
管理模式下器件时钟工作的多个方面。
系统时钟选择位 SCS1:SCS0 用于选择时钟源。可用的
时钟源包括主时钟(由 FOSC2:FOSC0 配置位定义)、
辅助时钟 (Timer1 振荡器)和内部振荡器。当更改一
个或多个位之后,接着是一段很短的时钟转换间隔,然
后时钟源会改变。
OSTS (OSCCON<3> )和 T1RUN (T1CON<6> )位
指出当前提供器件时钟的是哪一个时钟源。 T1RUN 位
置 1 表明 Timer1 振荡器正在辅助时钟模式下提供器件
时钟。在功耗管理模式下,任何时候这些位中只有一个
会置 1 。如果这些位都没有置 1 ,则表示当前时钟源是
INTRC,或内部振荡器刚刚起振且尚未稳定。
IDLEN 位决定当执行 SLEEP 指令时器件是进入休眠模
式还是某个空闲模式。
第 3.0 节“功耗管理模式”更详细地讨论了 OSCCON 寄
存器中标志位和控制位的使用。
注 1 :要选择辅助时钟源,必须使能 Timer1 振荡
器。通过将 Timer1 控制寄存器中的
T1OSCEN 位(T1CON<3>)置 1 ,可以
使能 Timer1 振荡器。如果未使能 Timer1
振荡器,则选择辅助时钟源的任何尝试都
会被忽略。
2 : 建议在Timer1 振荡器稳定工作之后再执行
SLEEP 指令,否则当 Timer1 振荡器起振
时可能会发生很长的延时。
寄存器 2-2 : OSCCON :振荡器控制寄存器
R/W-0 U-0 U-0 U-0 R-q U-0 R/W-0 R/W-0
IDLEN
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
— — —O S T S
q = 由配置决定的值
(1)
— SCS1 SCS0
bit 7
bit 6-4
bit 3
bit 2
bit 1-0
注 1: 双速启动使能时复位值为 0 ,禁止时为 1 。
IDLEN:空闲使能位
1 = 执行 SLEEP 指令后器件进入空闲模式
0 = 执行 SLEEP 指令后器件进入休眠模式
未用:读为 0
OSTS:振荡器状态位
1 = 器件使用 SCS1:SCS0 = 00 定义的振荡器源运行
0 = 器件使用 SCS1:SCS0 = 01、 10 或 11 定义的振荡器源运行
未用:读为 0
SCS1:SCS0:系统时钟选择位
11 = 内部振荡器
10 = 主振荡器
01 =Timer1 振荡器
FOSC2 = 1 时;
当
00 = 主振荡器
FOSC2 = 0 时;
当
00 = 内部振荡器
(1)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 43 页
PIC18F97J60 系列
2.7.1.1 系统时钟选择和 FOSC2 配置位
在所有形式的复位中,SCS 位都会被清零。在器件的默
认配置中,这意味着 FOSC1:FOSC0 (也就是 HS 或
EC 模式的一种)定义的主振荡器用作器件复位时的主
时钟源。
复位时的默认时钟配置可以随着 FOSC2 配置位的改变而
改变。当 SCS1:SCS0 = 00 时此位会影响时钟源的选择。
当 FOSC2 = 1 (默认)时,不管何时 SCS1:SCS0 = 00 ,
都选择由FOSC1:FOSC0 定义的振荡器源。当FOSC2 = 0
时,不管何时 SCS1:SCS0 = 00 ,都 选 择 INTRC 振荡器。
因为在复位时 SCS 位被清零,FOSC2 的设置也会更改复
位时的默认振荡器模式。
不管 FOSC2 的设置如何,INTRC 总是会在器件上电时
被使能。它将作为时钟源直到器件从存储器中装入了它
的配置值。此时 FOSC 配置位被读取并选择了振荡器的
工作模式。
注意主时钟或内部振荡器在任何给定条件下都会有两种
位设置选项,这取决于 FOSC2 的设置。
2.7.2 振荡器转换
PIC18F97J60 系列器件包含在时钟源切换时防止时钟
产生 “毛刺”的电路。在时钟切换时,系统时钟会有短
暂的停顿。该停顿的时间长度是旧时钟源的两个周期加
上新时钟源的三到四个周期的和。此公式假设新时钟源
是稳定的。
第 3.1.2 节“进入功耗管理模式”详细讨论了时钟切换。
2.8 功耗管理模式对各种时钟源的影响
当选定了 PRI_IDLE 模式后,指定的主振荡器会继续运
行而不中断。对于所有其他功耗管理模式,使用 OSC1
引脚的振荡器会被禁止。OSC1 引脚(以及由振荡器使
用的 OSC2 引脚)将会停止振荡。
在辅助时钟模式下(SEC_RUN 和SEC_IDLE ),Timer1
振荡器作为器件时钟源工作。如果需要,Timer1 振荡器
也可以运行在所有功耗管理模式下为 Timer1 或 Timer3
提供时钟。
在 RC_RUN 和 RC_IDLE 模式下,由内部振荡器提供器
件时钟源。无论是哪种功耗管理模式,31 kHz 的INTRC
输出均可被直接用来提供时钟并且可被使能来支持多种
特殊的功能部件 (关于 WDT 、故障保护时钟监视器和
双速启动的更多信息,请参见第 24.2 节 “看门狗定时
器(WDT )”到第 24.5 节“故障保护时钟监视器”)。
如果选择了休眠模式,所有的时钟源都会被停止。因为
休眠模式切断了所有晶体管的开启电流,休眠模式能实
现最小的器件电流消耗 (仅泄漏电流)。
在休眠期间使能任何片上功能都将增加休眠时的电流消
耗。要支持 WDT 工作,需要使能 INTRC 。Timer1 振荡
器可以用来为实时时钟提供时钟源。不需要器件时钟源
的其他功能部件也可以工作(即,MSSP 从器件、PSP
和 INTx 引脚等)。在第 27.2 节 “直流特性:掉电和供
电电流”中列出了可能显著增加电流消耗的外设。
2.9 上电延时
由两个定时器控制上电延时,这样大多数应用都无需外
接复位电路。上电延时可以确保在器件电源稳定(常规
环境下)和主时钟稳定工作之前器件保持在复位状态。
关于上电延时的更多信息,请参见第 4.5 节 “上电延时
定时器 (PWRT )”。
第一个定时器是上电延时定时器 (PWRT ),在上电时
它提供了固定的延迟时间 (表 27-12 中的参数 33 );
它总是使能的。
第二个定时器是振荡器起振定时器 (OST ),用于在晶
振稳定前使芯片保持在复位状态 (HS 模式)。 OST 在
计数 1024 个振荡周期后允许振荡器为器件提供时钟。
POR 之后有一个T
在此延时期间控制器为执行指令做准备。
CSD间隔的延时(表 27-12中的参数 38),
表 2-3 : 休眠模式下 OSC1 和 OSC2 引脚的状态
振荡器模式 OSC1 引脚 OSC2 引脚
EC 和 ECPLL 悬空,由外部时钟驱动 处于逻辑低电平 (时钟 /4 输出)
HS 和 HSPLL 反馈反相器被禁止,处于静止电平 反馈反相器被禁止,处于静止电平
注: 关于由休眠和 MCLR
DS39762A_CN 第 44 页 超前信息 2006 Microchip Technology Inc.
复位引起的延时,请参见第 4.0 节 “复位”中的表 4-2 。
PIC18F97J60 系列
3.0 功耗管理模式
PIC18F97J60 系列器件提供了只需通过管理 CPU 和外
设的时钟源就可以管理功耗的功能。一般而言,较低的
时钟频率和由时钟源驱动的电路数目的减少会使功耗降
低。为了在应用中管理功耗,提供了三种主要的工作模
式:
• 运行模式
• 空闲模式
• 休眠模式
这些模式定义了需要为器件的哪些部分提供时钟以及时
钟的速度。运行和空闲模式可以使用三种时钟源(主时
钟源、辅助时钟源或内部振荡器)中的任意一种;而休
眠模式则不使用时钟源。
®
功耗管理模式包括几个由早期的 PIC
功耗的功能。其中之一就是其他 PIC18 器件也提供的时
钟切换功能,该功能允许使用 Timer1 振荡器代替主振
荡器。节省功耗的功能还包括所有 PIC 器件都提供的休
眠模式,在该模式下,器件所有的时钟都停止。
3.1 选择功耗管理模式
选择功耗管理模式之前需要先做出两个决定:是否为
CPU 提供时钟源以及选择何种时钟源。 IDLEN 位
(OSCCON<7> )控制是否为 CPU 提供时钟源,而
SCS1:SCS0 位(OSCCON<1:0> )选择时钟源。表 3-1
总结了各个模式下的位设置、时钟源和受影响的模块。
器件提供的节省
3.1.1 时钟源
SCS1:SCS0 位允许为功耗管理模式在三个时钟源中任
选其一。它们是:
• 主时钟,由 FOSC2:FOSC0 配置位定义
• 辅助时钟 ( Timer1 振荡器)
• 内部振荡器
3.1.2 进入功耗管理模式
可以通过装载 OSCCON 寄存器从一种功耗管理模式切
换到另一种功耗管理模式。 SCS1:SCS0 位选择时钟源
并确定使用运行模式还是空闲模式。更改这些位会导致
立即切换到一个新的时钟源 (假定新时钟源正在运
行)。此切换可能会引起时钟转换延时。第 3.1.3 节“时
钟转换和状态指示”及其后续章节将会讨论这些问题。
执行SLEEP 指令可以触发进入功耗管理空闲模式或休眠
模式。最后实际进入哪个模式由 IDLEN 状态位决定。
更改功耗管理模式并不总是要求设置所有的位,而是取
决于当前的模式和将要切换到的模式。通过在发出
SLEEP 指令之前更改振荡器选择位或更改 IDLEN 位可
完成多种模式转换。如果已经正确配置了 IDLEN 位,可
能只需执行 SLEEP 指令就可实现模式切换。
表 3-1 : 功耗管理模式
模式
休眠
PRI_RUN N/A 10
SEC_RUN N/A 01
RC_RUN N/A 11
PRI_IDLE 11 0
SEC_IDLE 10 1
RC_IDLE 11 1
注 1: IDLEN 反映它在执行 SLEEP 指令时的值。
IDLEN<7>
OSCCON 位 模块时钟
(1)
SCS1:SCS0<1:0> CPU
0 N/A
提供时钟 提供时钟 主时钟—— HS 、EC 、HSPLL 和 ECPLL ;
提供时钟 提供时钟 辅助时钟——Timer1 振荡器
提供时钟 提供时钟 内部振荡器
外设
可用时钟和振荡器源
关闭 关闭 无——所有时钟被禁止
这是正常的全功耗执行模式。
关闭 提供时钟 主时钟——HS 、 EC 、 HSPLL 和 ECPLL
关闭 提供时钟 辅助时钟——Timer1 振荡器
关闭 提供时钟 内部振荡器
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 45 页
PIC18F97J60 系列
3.1.3 时钟转换和状态指示
在两个时钟源之间进行转换所需的时间长度是旧时钟源
的两个周期与新时钟源的三到四个周期的和。此公式假
设新时钟源是稳定的。
以下两位用于指明当前的时钟源及其状态:OSTS
(OSCCON<3> )和 T1RUN (T1CON<6> )。一般来
说,在一个给定的功耗管理模式中,这两个位中只有一
个位会置 1 。当 OSTS 位置 1 时,表明由主时钟提供器
件时钟。当 T1RUN 位置 1 时,表明由 Timer1 振荡器提
供时钟源。如果这些位均不置 1 ,则 由 INTRC 为器件提
供时钟信号。
注: 执行 SLEEP 指令并不一定会将器件置于休
眠模式。它只是作为触发条件,让器件进
入休眠模式或一种空闲模式,具体何种模
式由 IDLEN 位的设置决定。
3.1.4 多条 SLEEP 命令
使用 SLEEP 指令调用功耗管理模式时,具体进入何种模
式在该指令执行那一刻由 IDLEN 位的设置决定。如果执
行了另一条 SLEEP 指令,器件将进入由此时 IDLEN 位
指定的功耗管理模式。如果 IDLEN 位已更改,器件将进
入由新的设置指定的新的功耗管理模式。
3.2 运行模式
在运行模式中,内核和外设的时钟都是激活的。这些运
行模式之间的区别就在于时钟源的不同。
3.2.2 SEC_RUN 模式
SEC_RUN 模式与其他 PIC18 器件提供的“时钟切换”
功能兼容。在此模式下,CPU 和外设将 Timer1 振荡器
作为时钟源。这允许用户在使用高精度时钟源的情况下
仍可获得较低的功耗。
通过将 SCS1:SCS0 位置为 01 进入 SEC_RUN 模式。
器件时钟源被切换到 Timer1 振荡器(见图 3-1 ), 主 振
荡器被关闭, T1RUN 位(T1CON<6>)被置 1 并且
OSTS 位被清零。
注: Timer1 振荡器应该在进入 SEC_RUN 模式
之前就已经运行了。如果在 SCS1:SCS0 位
被置为 01 时 T1OSCEN 位没有置 1 ,就 不
会进入 SEC_RUN 模式。如果 Timer1 振荡
器已经被使能,但没有开始运行,器件时
钟将会延时直到该振荡器起振。在这种情
况下,最初的振荡器运行很不稳定,可能
会导致无法预料的结果。
在从 SEC_RUN 模式转换到 PRI_RUN 模式期间,外
设和 CPU 继续使用 Timer1 振荡器作为时钟源,直到
主时钟启动。当主时钟准备好以后,时钟切换回主时钟
(见图 3-2 )。当时钟切换完成后,T1RUN 位被清零,
OSTS 位被置 1 并且由主时钟提供器件时钟。这种唤
醒不会影响 IDLEN 和 SCS 位。Timer1 振荡器继续运
行。
3.2.1 PRI_RUN 模式
PRI_RUN 模式是单片机的正常全功耗执行模式。除非
使能了双速启动 (详细信息,请参见第 24.4 节“双速
启动”),该模式也是器件复位后的默认模式。在此模式
下, OSTS 位置 1 (见第 2.7.1 节 “振荡器控制寄存
器”)。
DS39762A_CN 第 46 页 超前信息 2006 Microchip Technology Inc.
图 3-1 :进 入SEC_RUN 模式的转换时序
Q4 Q3 Q2
Q1
Q1
PIC18F97J60 系列
Q4 Q3 Q2 Q1 Q3 Q2
T1OSI
OSC1
CPU
时钟
外设
时钟
程序
计数器
123
时钟转换
n-1
n
PC + 2 PC
图 3-2 :从SEC_RUN 模式切换到 PRI_RUN 模式的转换时序 (HSPLL)
T1OSI
OSC1
PLL 时钟
输出
CPU 时钟
外设
时钟
程序
计数器
Q1 Q3 Q4
(1)
TOST
PC
Q3 Q4 Q1
Q2 Q2 Q3
(1)
TPLL
12 n-1n
时钟
转换
PC + 2
Q1
PC + 4
PC + 4
Q2
SCS1:SCS0 位改变
注 1 : TOST = 1024 TOSC ; T PLL = 2 ms (近似值)。这些时间间隔未按比例绘制。
OSTS 位置 1
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 47 页
PIC18F97J60 系列
3.2.3 RC_RUN 模式
在 RC_RUN 模式下,内部振荡器作为 CPU 和外设的时
钟源;主时钟关闭。此模式是在代码执行期间所有运行
模式中最节省功耗的运行模式。它非常适用于对定时精
度要求不高或者不是一直需要高速时钟的应用。
通过将 SCS 置为 11 可以进入此模式。当将时钟源切换
到INTRC 时(见图 3-3 ),主振荡器将被关闭并且 OSTS
位被清零。
图 3-3 :到RC_RUN 模式的转换时序
Q4 Q3 Q2
Q1
123 n - 1n
时钟转换
INTRC
OSC1
CPU
时钟
外设
时钟
程序
计数器
Q1
在从 RC_RUN 模式转换到 PRI_RUN 模式期间,在主时
钟处于启动状态时,器件将继续使用 INTRC 作为时钟
源。当主时钟准备好以后,时钟切换回主时钟 (见
图 3-4 )。当时钟切换完成后,OSTS 位被置 1 并且由主
时钟提供器件时钟。这种切换不会影响 IDLEN 和 SCS
位。如果使能了 WDT 或故障保护时钟监视器,INTRC 源
将继续运行。
Q4 Q3 Q2 Q1 Q3 Q2
PC + 2 PC
PC + 4
图 3-4 :从RC_RUN 模式切换到 PRI_RUN 模式的转换时序
Q1
Q4
Q1
INTRC
OSC1
PLL 时钟
输出
CPU 时钟
外设
时钟
程序
计数器
SCS1:SCS0 位改变
注 1 :TOST = 1024 TOSC ; T PLL = 2 ms (近似值)。这些时间间隔未按比例绘制。
TOST
Q2
(1)
PC
Q3
(1)
TPLL
OSTS 位置 1
12 n-1n
时钟
转换
PC + 2
Q2
Q3 Q4
Q1
Q2
PC + 4
Q3
DS39762A_CN 第 48 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
3.3 休眠模式
功耗管理休眠模式和所有其他 PIC 器件提供的传统休眠
模式相同。通过清零 IDLEN 位 (器件复位时的默认状
态)并执行 SLEEP 指令即可进入此模式。这将关闭所选
择的振荡器 (见图 3-5 ),并将所有的时钟源状态位清
零。
从其他模式进入休眠模式不需要切换时钟。这是因为单
片机一旦进入休眠模式就不需要时钟了。如果选择了
WDT , INTRC 时钟源将继续工作。如果使能了 Timer1
振荡器,它也将继续运行。
当在休眠模式中发生唤醒事件时 (通过中断、复位或
WDT 超时),在时钟源(通过 SCS1:SCS0 位选择)准
备好之前器件将没有时钟源 (见图 3-6 ),或者如果使
能了双速启动或故障保护时钟监视器,它将使用内部振
荡器作为时钟源(见第 24.0 节“CPU 的特殊功能”)。
在这两种情况下,当由主时钟提供器件时钟时, OSTS
位将置 1 。这种唤醒不会影响 IDLEN 和 SCS 位。
3.4 空闲模式
空闲模式允许在外设继续工作的同时有选择地关闭单片
机的 CPU 。选择特定的空闲模式允许用户进一步管理功
耗。
图 3-5 : 进入休眠模式的转换时序
如果在执行 SLEEP 指令时,IDLEN 位置 1 ,外设将使用
由 SCS1:SCS0 位选择的时钟作为时钟源,而 CPU 没有
时钟源。时钟源状态位不受影响。将 IDLEN 置 1 并执行
SLEEP 指令可以从给定的运行模式快速切换到相应的空
闲模式。
如果选择了 WDT , INTRC 时钟源将继续工作。如果使
能了 Timer1 振荡器,它也将继续运行。
由于 CPU 没有执行指令,器件只能通过中断、WDT 超
时或复位从空闲模式退出。当发生唤醒事件时,CPU 会
在其准备好执行代码前延时一个 T
CSD 间隔 (表 27-12
中的参数 38 )。 当 CPU 开始执行代码时,它将沿用当
前空闲模式所使用的时钟源。例如,当从 RC_IDLE 模
式唤醒时,将使用内部振荡器模块为 CPU 和外设提供
时钟 (即 RC_RUN 模式)。这种唤醒不会影响 IDLEN
和 SCS 位。
当处于任何空闲模式或休眠模式中时, WDT 超时会导
致 WDT 唤醒并进入当前由 SCS1:SCS0 位指定的运行
模式。
Q4 Q3 Q2
Q1 Q1
OSC1
CPU
时钟
外设
时钟
休眠
程序
计数器
PC + 2 PC
图 3-6 : 从休眠模式唤醒的转换时序 (HSPLL )
Q1 Q2 Q3 Q4 Q1 Q2
OSC1
PLL 时钟
CPU 时钟
计数器
注 1 :T
(1)
TOST
输出
外设
时钟
程序
唤醒事件
OST = 1024 TOSC ; T PLL = 2 ms (近似值)。这些时间间隔未按比例绘制。
(1)
TPLL
PC
OSTS 位置 1
Q3 Q4 Q1 Q2
PC + 2
Q3 Q4
Q1 Q2 Q3 Q4
PC + 6 PC + 4
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 49 页
PIC18F97J60 系列
3.4.1 PRI_IDLE 模式
在三种低功耗空闲模式中,只有该模式不会禁止主器件
时钟。由于时钟源不需要“热身”或是从其他振荡器转
换过来,选用此模式可以使对时间要求较高的应用以最
快的速度恢复器件运行,并使用较精确的主时钟源。
可以通过将 IDLEN 位置 1 并执行 SLEEP 指令以实现从
PRI_RUN 模式进入 PRI_IDLE 模式。如果器件处于另
一种运行模式,首先将 IDLEN 位置 1 ,然后将 SCS 位
置为 10 并执行 SLEEP 。虽然 CPU 已被禁止,但外设
仍继续使用由FOSC1:FOSC0 配置位指定的主时钟源为
其提供时钟信号。 OSTS 位保持置 1 (见图 3-7 )。
当发生唤醒事件时,由主时钟源为 CPU 提供时钟。在唤
醒事件和代码执行开始之间需要一个 T
CSD 间隔的延时。
该延时用来让 CPU 做好执行指令的准备。在唤醒之后,
OSTS 位保持置 1 状态。这种唤醒不会影响 IDLEN 和
SCS 位(见图 3-8)。
图 3-7 : 进入空闲模式的转换时序
Q1
Q2
Q3
Q4
Q1
3.4.2 SEC_IDLE 模式
在 SEC_IDLE 模式下, CPU 被禁止,但外设继续将
Timer1 振荡器作为时钟源。可以通过将 IDLEN 位置 1
并执行 SLEEP 指令从 SEC_RUN 模式进入此模式。如
果器件处于另一种运行模式,首先将 IDLEN 位置 1 ,然
后将 SCS1:SCS0 置为 01 并执行 SLEEP 。当时钟源切
换到 Timer1 振荡器时,主振荡器关闭, OSTS 位被清
零并且 T1RUN 位置 1 。
当唤醒事件发生时,外设继续将 Timer1 振荡器作为时
钟源。唤醒事件发生后经过一个 T
开始执行代码并使用 Timer1 振荡器作为其时钟源。这
种唤醒不会影响 IDLEN 和 SCS 位。Timer1 振荡器继续
运行 (见图 3-8 )。
注: Timer1 振荡器应该在进入 SEC_IDLE 模式
之前就已经运行了。如果执行 SLEEP 指令
时 T1OSCEN 位没有置1 ,就会忽略SLEEP
指令并不会进入 SEC_IDLE 模式。如果使
能了 Timer1 振荡器,但它尚未运行,外设
时钟将会延时直到该振荡器起振。在这种
情况下,最初的振荡器运行很不稳定,可
能会导致无法预料的结果。
CSD 时间间隔, CPU
OSC1
CPU 时钟
外设
时钟
程序
计数器
PC PC + 2
图 3-8 : 从空闲模式唤醒进入运行模式的转换时序
Q1 Q3 Q4
OSC1
CPU 时钟
外设
时钟
程序
计数器
唤醒事件
TCSD
PC
Q2
DS39762A_CN 第 50 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
3.4.3 RC_IDLE 模式
RC_IDLE 模式禁止 CPU,但仍继续由内部振荡器为外
设提供时钟。该模式允许在空闲期间对功耗进行控制。
可以通过将IDLEN 位置1 并执行SLEEP 指令从RC_RUN
模式进入此模式。如果器件处于另一种运行模式,首先
将 IDLEN 位置 1 ,然后清零 SCS 位并执行 SLEEP 。当
时钟源切换到 INTRC 时,主振荡器被关闭, OSTS 位
被清零。
当唤醒事件发生时,外设继续将 INTRC 作为时钟源。在
唤醒事件后的 T
用 INTRC 作为时钟源。这种唤醒不会影响 IDLEN 和
SCS 位。如果使能了 WDT 或故障保护时钟监视器,
INTRC 源将继续运行。
CSD 间隔之后,CPU 开始执行代码并使
3.5 退出空闲和休眠模式
由中断、复位或 WDT 超时触发从休眠模式或任何空闲
模式的退出。本节将讨论从功耗管理模式退出的触发方
式。在每种功耗管理模式章节中我们已经讨论过其时钟
源子系统的作用 (见第 3.2 节 “运行模式”、第 3.3 节
“休眠模式”和第 3.4 节 “空闲模式”)。
3.5.1 通过中断退出
任何可用的中断源都可导致器件从空闲模式或休眠模式
退出到运行模式。要使能此功能,必须通过将对应
INTCON 或 PIE 寄存器中的中断源允许位置 1 来允许中
断源。当相应的中断标志位置 1 时,触发退出操作。
当使用中断从空闲或休眠模式退出时,如果 GIE/GIEH
位(INTCON<7>)置 1,程序就会跳转到中断向量处
执行代码。否则代码就会顺序执行 (见第 9.0 节“中
断”)。
唤醒事件之后需要一个固定的 T
才会退出休眠和空闲模式。CPU 需要此延时来准备执行
代码。在延时后的第一个时钟周期重新开始执行指令。
CSD 间隔的延时,器件
3.5.2 通过 WDT 超时退出
根据 WDT 超时发生时器件所处的不同功耗管理模式会
引发不同的操作。
如果器件不在执行代码 (所有空闲模式和休眠模式),
超时将导致从功耗管理模式退出(见第 3.2 节“运行模
式”和第 3.3 节 “休眠模式”)。如果器件正在执行代
码 (所有运行模式),超时将导致 WDT 复位 (见
第 24.2 节 “看门狗定时器 (WDT )”)。
WDT 定时器和后分频器可由以下任一事件清零:
• 执行 SLEEP 或 CLRWDT 指令
• 当前选择的时钟源失效 (如果使能了故障保护时
钟监视器)
3.5.3 通过复位退出
通过复位退出空闲或休眠模式会自动强制器件使用
INTRC 运行。
3.5.4 在没有振荡器起振延时的情况下退出
从某些功耗管理模式退出完全不需要 OST 延时。有以
下两种情形:
• 主时钟源不停止的 PRI_IDLE 模式
• 主时钟源为 EC 或 ECPLL 模式
在这些情况下,主时钟源不需要振荡器起振延时,因为
它已经在运行(PRI_IDLE ),或者它本来就不需要振荡
器起振延时(EC )。但是,当器件退出休眠和空闲模式
时,在唤醒事件之后仍然需要一个固定的 T
延时,以便让 CPU 准备好执行代码。在延时后的第一
个时钟周期重新开始执行指令。
CSD 间隔的
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 51 页
PIC18F97J60 系列
注:
DS39762A_CN 第 52 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
4.0 复位
PIC18F97J60 系列器件有以下几种不同的复位方式:
a) 上电复位 ( POR)
b) 正常工作状态下的 MCLR
c) 功耗管理模式下的 MCLR
d) 看门狗定时器 ( WDT)复位 (执行程序期间)
e) 欠压复位 ( BOR)
f) RESET 指令复位
g) 堆栈满复位
h) 堆栈下溢复位
本节将讨论由 MCLR
、 POR 和 BOR 产生的复位,并
涉及各种起振定时器的工作方式。堆栈复位事件将在
第 5.1.6.4 节 “堆栈满和下溢复位”中讨论。 WDT 复
位将在第 24.2 节“看门狗定时器 (WDT )” 中讨论。
图 4-1 给出了片上复位电路的简化框图。
图 4-1 : 片上复位电路的简化框图
RESET 指令
堆栈
指针
复位
复位
堆栈满 / 下溢复位
外部复位
4.1 RCON 寄存器
通过 RCON 寄存器 (寄存器 4-1 )跟踪器件复位事件。
该寄存器的低 5 位表明是否已经发生了特定的复位事
件。在大多数情况下,只能通过事件将这些位置 1 ,而
且必须在事件发生后由应用程序将它们清零。需要读取
所有这些标志位来确定刚发生的复位的类型。在第 4.6 节
“寄存器的复位状态”中对此进行了更详细的说明。
RCON 寄存器还有设置中断优先级的控制位(IPEN )。
在第 9.0 节 “中断”中讨论了中断优先级。
MCLR
VDD
注 1 : ENVREG 引脚必须连接到高电平以使能欠压复位。当电源电压不能满足器件供电条件时,片上稳压器将产生欠压
( )_IDLE
PWRT
复位。
休眠
WDT
超时
V
DD 上升
沿检测
欠压
复位
32
µs
INTRC
POR 脉冲
(1)
PWRT
66 ms
11 位脉动计数器
S
Chip_Reset
R
Q
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 53 页
PIC18F97J60 系列
寄存器 4-1 : RCON :复位控制寄存器
R/W-0 U-0 U-0 R/W-1 R-1 R-1 R/W-0 R/W-0
IPEN
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
— —R ITO PD POR BOR
bit 7
bit 6-5
bit 4
bit 3
bit 2
bit 1
bit 0
注 1:建议在检测到上电复位后,将 POR 位置 1 ,以便继续检测后续的上电复位。
2: 如果禁止了片上稳压器, BOR
3: 当 BOR 为 0 并且 POR 为 1 时(假定在上电复位之后立即用软件将 POR 置 1 ),可以说已发生了欠压复位。
IPEN:中断优先级使能位
1 = 使能中断优先级
0 = 禁止中断优先级 (PIC16CXXX 兼容模式)
未用:读为 0
RI
: RESET 指令标志位
1 = 未执行 RESET 指令 (只能由固件置 1 )
0 = 已执行了 RESET 指令,导致器件复位 (必须在发生复位后由软件置 1 )
TO
:看门狗超时标志位
1 = 通过上电、 CLRWDT 指令或 SLEEP 指令置 1
0 = 发生了 WDT 超时溢出
PD:掉电检测标志位
1 = 通过上电或 CLRWDT 指令置 1
0 = 通过执行 SLEEP 指令置 1
POR:上电复位状态位
1 = 未发生上电复位 (只能由固件置 1 )
0 = 已发生上电复位 (必须在发生上电复位后由软件置 1 )
:欠压复位状态位
BOR
1 = 未发生欠压复位 (只能由固件置 1 )
0 = 已发生欠压复位 (必须在发生欠压复位后由软件置 1 )
则总是保持为 0。更多信息,请参见第 4.4.1 节“检测 BOR ”。
DS39762A_CN 第 54 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
4.2 主复位 ( MCLR)
MCLR 引脚提供触发硬件外部复位器件的方法。将该引
脚拉低可以产生复位信号。PIC18 扩展的单片机器件在
MCLR 复位路径上有一个噪声滤波器,该滤波器可以检
测并滤除小的干扰脉冲。
任何内部复位,包括 WDT 复位,均不能将 MCLR
引脚
驱动为低电平。
4.3 上电复位 (POR )
只要当 VDD 上升超过某个门限时,就会在片上产生上电
复位条件。这使得 V
DD 达到满足器件正常工作的数值
时,器件会以初始化状态启动。
为了利用 POR 电路,需要将 MCLR
引脚通过一个电阻
(阻值范围为 1kΩ 到 10 k Ω)连接到 VDD 。这样可以省
去产生上电复位延时通常所需的外部 RC 元件。V
DD 的
最小上升速率已指定 (参数 D004 )。上升速率缓慢的
情况,请参见图 4-2 。
当器件开始正常工作 (即,退出复位状态)时,器件的
工作参数 (电压、频率和温度等)必须得到满足,以确
保其正常工作。如果不满足这些条件,那么器件必须保
持在复位状态,直到满足工作条件为止。
POR 事件由 POR
位(RCON<1>)捕获。每当发生上
电复位时,该位的状态就会被置为 0 ;任何其他复位事
件均不能改变它。任何硬件事件均不能将 POR 复位为
1 。要捕获多个事件,用户必须在上电复位之后用软件
手动将该位复位为 1 。
4.4 欠压复位 (BOR )
当内部稳压器被使能时(ENVREG 引脚连接到 VDD ),
PIC18F97J60 系列器件就具备了简单的 BOR 功能。只
要 VDD 低于 VBOR (参数 D005 )的时间大于 TBOR (参数
35)就会复位器件。如果 VDD 降到 VBOR 以下的时间小
BOR,器件是否发生复位不确定。芯片将保持欠压
于 T
复位状态,直至 V
一旦发生BOR ,上电延时定时器将芯片保持在复位状态
的时间就是 T
器运行过程中,VDD 电压降到 VBOR 以下,芯片将重新
回到欠压复位状态并且初始化上电延时定时器。一旦
DD 电压上升到 V BOR 以上,上电延时定时器将重新执
V
行延时。
DD 电压上升到 V BOR 以上。
PWRT (参数 33)。如果在上电延时定时
图 4-2 : 外部上电复位电路 (VDD 缓慢上电
的情况)
DD
V
VDD
D
R
R1
MCLR
C
注 1 : 仅当 VDD 上电速率过慢时才需要外部上电复
位电路。二极管 D 有助于在 V
容迅速放电。
2 : 建议 R < 40 k Ω ,确保电阻 R 两端压降符合器
件的电气规范。
3 : R1 ≥ 1 kΩ 将限制任何电流从外部电容 C 流入
MCLR
,以避免由于静电放电 ( Electrostatic
Discharge, ESD)或 电 过 载 ( Electrical
Overstress, EOS)导致 MCLR
坏。
PIC18FXXJ6X
DD 掉电时使电
/VPP 引脚损
4.4.1 检测 BOR
BOR 位在欠压复位或上电复位事件时总是复位为 0 。因
此只通过读 BOR 位的状态很难确定是否发生过欠压复
位事件。更可靠的方法是同时检查 POR 和 BOR 的状
态。假定在发生任何上电复位事件后,POR 位被立即用
软件复位为 1 。如果 BOR
可以断定已经发生了欠压复位事件。
如果禁止稳压器,也会禁止欠压复位功能。在这种情况
下,不能使用 BOR
事件仍会将 BOR
位清零。
为 0 同时 POR 为 1 ,那么就
位来确定欠压复位事件。上电复位
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 55 页
PIC18F97J60 系列
4.5 上电延时定时器 ( PWRT)
PIC18F97J60 系列器件具有片上上电延时定时器
(PWRT )以帮助稳定上电复位过程。 PWRT 总是使能
的。其主要功能是确保在代码执行之前,器件的电压
是稳定的。
PIC18F97J60 系列器件的上电延时定时器(PWRT )是
一个11 位计数器,它使用INTRC 时钟源作为时钟输入。
该定时器可产生大约 2048 x 32 µ s=66ms 的时间间
隔。 PWRT 计数期间,器件保持在复位状态。
上电延时时间取决于 INTRC 时钟,并且由于温度和工
艺的不同,不同器件的延迟时间也将各不相同。详情请
参见直流参数 33 。
4.5.1 延时时序
在 POR 脉冲被清零后,启动 PWRT 延时。总延迟时间
将取决于 PWRT 的状态。图 4-3 、图 4-4 、图 4-5 和图 4-6
都说明了在使能上电延时定时器时的延时序列。
由于延时是由 POR 脉冲触发的,因此如果 MCLR
足够长时间的低电平, PWRT 将结束。将 MCLR
拉高后器件将立即开始执行代码 (图 4-5 )。这对于测
试或同步多个并行工作的 PIC18FXXJ6X 器件是非常有
用的。
图 4-3 : 上电延时时序 (MCLR 连接到 VDD , VDD 电压上升时间 < TPWRT )
VDD
MCLR
内部 POR
TPWRT
延时
PWRT
保持
电平
内部复位
图 4-4 : 上电延时时序 (MCLR
VDD
MCLR
内部 POR
PWRT
延时
内部复位
未连接到 VDD ): 情 形 1
TPWRT
DS39762A_CN 第 56 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
图 4-5 : 上电延时时序 (MCLR 未连接到 VDD ): 情 形 2
VDD
MCLR
内部 POR
TPWRT
PWRT
延时
内部复位
图 4-6 : 缓慢上升时间 (MCLR
0V
MCLR
内部 POR
PWRT
内部复位
VDD
延时
连接到 VDD , VDD 电压上升时间 > TPWRT )
3.3V
1V
PWRT
T
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 57 页
PIC18F97J60 系列
4.6 寄存器的复位状态
大多数寄存器不受复位的影响。在 POR 时这些寄存器
的状态不确定,而在其他复位时它们的状态不变。而剩
余寄存器则根据不同的复位类型被强制为 “复位状
态”。
大多数寄存器不受 WDT 唤醒的影响,这是因为 WDT 唤
醒被视为对正常工作的恢复。如表 4-1 所示,RCON 寄
存器中的状态位:RI
同的复位情形中会分别被置 1 或清零。可在软件中使用
这些状态位判断复位的性质。
表 4-2 描述了所有特殊功能寄存器的复位状态。可以将
这些复位状态分类为上电和欠压复位、主复位、WDT 复
位以及 WDT 唤醒。
、 TO 、 PD 、 POR 和 BOR ,在不
表 4-1 : RCON 寄存器的状态位、含义以及初始化状态
条件
上电复位
RESET 指令
欠压复位
功耗管理运行模式下的 MCLR
功耗管理空闲和休眠模式下的 MCLR
复位
全功耗或功耗管理运行模式期间的
WDT 超时
全功耗执行期间的 MCLR
堆栈满复位 (STVREN = 1 )
堆栈下溢复位 (STVREN = 1 )
堆栈下溢错误 (不是真正的复位,
STVREN = 0)
功耗管理空闲或休眠模式下的 WDT
超时
通过中断从功耗管理模式退出
图注: u = 不变
注 1 : 当器件被中断唤醒且 GIEH 或 GIEL 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
复位
复位
程序
(1)
计数器
0000h 11100 0 0
0000h 0uuuu u u
0000h 111u0 u u
0000h u1uuu u u
0000h u10uu u u
0000h u0uuu u u
0000h uuuuu u u
0000h uuuuu 1 u
0000h uuuuu u 1
0000h uuuuu u 1
PC + 2 u00uu u u
PC + 2 uu0uu u u
RI
RCON 寄存器 STKPTR 寄存器
TO PD POR BOR STKFUL STKUNF
DS39762A_CN 第 58 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态
MCLR
复位,
寄存器 适用器件
TOSU PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---0 uuuu
TOSH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TOSL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
STKPTR PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 00-0 0000 uu-0 0000 uu-u uuuu
PCLATU PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
PCLATH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PCL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 PC + 2
TBLPTRU PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --00 0000 --00 0000 --uu uuuu
TBLPTRH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TBLPTRL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TABLAT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PRODH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PRODL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
INTCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 000x 0000 000u uuuu uuuu
INTCON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
INTCON3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1100 0000 1100 0000 uuuu uuuu
INDF0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTINC0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTDEC0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PREINC0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PLUSW0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
FSR0H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- xxxx ---- uuuu ---- uuuu
FSR0L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
WREG PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
INDF1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTINC1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTDEC1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PREINC1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PLUSW1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
FSR1H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- xxxx ---- uuuu ---- uuuu
FSR1L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
BSR PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- 0000 ---- 0000 ---- uuuu
INDF2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTINC2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
POSTDEC2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PREINC2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
PLUSW2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X N/A N/A N/A
FSR2H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- xxxx ---- uuuu ---- uuuu
FSR2L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
向硬件堆栈的下一个单元。
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
(2)
(1)
(1)
(1)
(1)
(3)
(3)
(3)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 59 页
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
复位,
寄存器 适用器件
STATUS PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---x xxxx ---u uuuu ---u uuuu
TMR0H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TMR0L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
T0CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
OSCCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0--- q-00 0--- q-00 u--- q-uu
ECON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 00-- 0000 00-- uuuu uu--
WDTCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- ---0 ---- ---0 ---- ---u
(4)
RCON
TMR1H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
TMR1L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
T1CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 u0uu uuuu uuuu uuuu
TMR2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PR2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 1111 1111
T2CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0000 -000 0000 -uuu uuuu
SSP1BUF PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
SSP1ADD PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP1STAT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP1CON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP1CON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ADRESH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
ADRESL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
ADCON0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0-00 0000 0-00 0000 u-uu uuuu
ADCON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --00 0000 --00 0000 --uu uuuu
ADCON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0-00 0000 0-00 0000 u-uu uuuu
CCPR1H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCPR1L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCP1CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
CCPR2H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCPR2L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCP2CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
CCPR3H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCPR3L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCP3CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ECCP1AS PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
CVRCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
CMCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0111 0000 0111 uuuu uuuu
TMR3H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
TMR3L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
T3CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 uuuu uuuu uuuu uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0--1 1100 0--q qquu u--u qquu
向硬件堆栈的下一个单元。
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
DS39762A_CN 第 60 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
寄存器 适用器件
PSPCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 ---- 0000 ---- uuuu ----
SPBRG1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
RCREG1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TXREG1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
TXSTA1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0010 0000 0010 uuuu uuuu
RCSTA1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 000x 0000 000x uuuu uuuu
EECON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- ---- ---- ---- ---- ---EECON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 x00- ---0 x00- ---u uuu-
IPR3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIR3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PIE3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
IPR2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1-11 1111 1-11 uuuu u-uu
PIR2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0-00 0000 0-00 uuuu u-uu
PIE2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0-00 0000 0-00 uuuu u-uu
IPR1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIR1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PIE1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MEMCON
OSCTUNE PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 ---- 0000 ---- uuuu ----
TRISJ
TRISH
TRISG PIC18F6XJ6X
TRISF PIC18F6XJ6X PIC18F8XJ6X
TRISE PIC18F6XJ6X
TRISD PIC18F6XJ6X PIC18F8XJ6X
TRISC PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
TRISB PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
TRISA PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --11 1111 --11 1111 --uu uuuu
LATJ
LATH
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0-00 --00 0-00 --00 u-uu --uu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --11 ---- --11 ---- --uu ----
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F8XJ6X PIC18F9XJ6X ---1 ---- ---1 ---- ---u ----
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---1 1111 ---1 1111 ---u uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F9XJ6X 1111 111- 1111 111- uuuu uuu-
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F8XJ6X PIC18F9XJ6X --11 1111 --11 1111 --uu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F9XJ6X ---- -111 ---- -111 ---- -uuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --xx ---- --uu ---- --uu ----
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
向硬件堆栈的下一个单元。
上电复位,
欠压复位
复位,
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
(3)
(3)
(3)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 61 页
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
复位,
寄存器 适用器件
LATG PIC18F6XJ6X
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---x xxxx ---u uuuu ---u uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATF PIC18F6XJ6X PIC18F8XJ6X
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATE PIC18F6XJ6X
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATD PIC18F6XJ6X PIC18F8XJ6X
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATC PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATB PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
LATA PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 00xx xxxx 00uu uuuu uuuu uuuu
PORTJ
PORTH
PORTG PIC18F6XJ6X
PORTF PIC18F6XJ6X PIC18F8XJ6X
PORTE PIC18F6XJ6X
PORTD PIC18F6XJ6X PIC18F8XJ6X
PORTC PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PORTB PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PORTA PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0-0x 0000 0-0u 0000 u-uu uuuu
SPBRGH1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
BAUDCON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0100 0-00 01-0 0-00 uu-u u-uu
SPBRGH2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
BAUDCON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0100 0-00 01-0 0-00 uu-u u-uu
ERDPTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 1010 ---0 1010 ---u uuuu
ERDPTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 0101 1111 0101 uuuu uuuu
ECCP1DEL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TMR4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
PR4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 1111 1111
T4CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0000 -000 0000 -uuu uuuu
CCPR4H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCPR4L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --xx ---- --uu ---- --uu ----
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---x xxxx ---u uuuu ---u uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 111x xxxx 111u uuuu uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X x000 000- x000 000- uuuu uuu-
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
向硬件堆栈的下一个单元。
PIC18F8XJ6X PIC18F9XJ6X ---x ---- ---u ---- ---u ----
PIC18F9XJ6X xxxx xxx- uuuu uuu- uuuu uuu-
PIC18F8XJ6X PIC18F9XJ6X --xx xxxx --uu uuuu --uu uuuu
PIC18F9XJ6X ---- -xxx ---- -uuu ---- -uuu
PIC18F8XJ6X PIC18F9XJ6X ---x ---- ---u ---- ---u ----
PIC18F9XJ6X x000 000- x000 000- uuuu uuu-
PIC18F8XJ6X PIC18F9XJ6X --xx xxxx --uu uuuu --uu uuuu
PIC18F9XJ6X ---- -xxx ---- -uuu ---- -uuu
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
DS39762A_CN 第 62 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
复位,
寄存器 适用器件
CCP4CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --00 0000 --00 0000 --uu uuuu
CCPR5H PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCPR5L PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
CCP5CON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --00 0000 --00 0000 --uu uuuu
SPBRG2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
RCREG2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TXREG2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
TXSTA2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0010 0000 0010 uuuu uuuu
RCSTA2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 000x 0000 000x uuuu uuuu
ECCP3AS PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ECCP3DEL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ECCP2AS PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ECCP2DEL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP2BUF PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
SSP2ADD PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP2STAT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP2CON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
SSP2CON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EDATA PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X xxxx xxxx uuuu uuuu uuuu uuuu
EIR PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0-00 -000 0-00 -uuu u-uu
ECON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 100- ---- 100- ---- uuu- ----
ESTAT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -0-0 -000 -0-0 -000 -u-u -uuu
EIE PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0-00 -000 0-00 -uuu u-uu
EDMACSH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EDMACSL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EDMADSTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EDMADSTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EDMANDH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EDMANDL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EDMASTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EDMASTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ERXWRPTH
ERXWRPTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ERXRDPTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0101 ---0 0101 ---u uuuu
ERXRDPTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1010 1111 1010 uuuu uuuu
ERXNDH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---1 1111 ---1 1111 ---u uuuu
ERXNDL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1111 1111 1111 uuuu uuuu
ERXSTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0101 ---0 0101 ---u uuuu
ERXSTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1111 1010 1111 1010 uuuu uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
向硬件堆栈的下一个单元。
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 63 页
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
复位,
寄存器 适用器件
ETXNDH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
ETXNDL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ETXSTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
ETXSTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EWRPTH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EWRPTL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPKTCNT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
ERXFCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 1010 0001 1010 0001 uuuu uuuu
EPMOH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EPMOL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMCSH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMCSL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM7 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM6 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM5 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EPMM0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT7 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT6 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT5 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EHT0 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MIRDH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MIRDL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MIWRH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MIWRL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MIREGADR PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
MICMD PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- --00 ---- --00 ---- --uu
MICON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0--- ---- 0--- ---- u--- ----
MAMXFLH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0110 0000 0110 uuuu uuuu
MAMXFLL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MACLCON2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X --11 0111 --11 0111 --uu uuuu
MACLCON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- 1111 ---- 1111 ---- uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
向硬件堆栈的下一个单元。
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
DS39762A_CN 第 64 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 4-2 : 所有寄存器的初始化状态 (续)
MCLR
复位,
寄存器 适用器件
MAIPGH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0000 -000 0000 -uuu uuuu
MAIPGL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0000 -000 0000 -uuu uuuu
MABBIPG PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 0000 -000 0000 -uuu uuuu
MACON4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X -000 --00 -000 --00 -uuu --uu
MACON3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MACON1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---0 0000 ---0 0000 ---u uuuu
EPAUSH PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0001 0000 0001 0000 000u uuuu
EPAUSL PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
EFLOCON PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- -000 ---- -000 ---- -uuu
MISTAT PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X ---- 0000 ---- 0000 ---- uuuu
MAADR2 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MAADR1 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MAADR4 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MAADR3 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MAADR6 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
MAADR5 PIC18F6XJ6X PIC18F8XJ6X PIC18F9XJ6X 0000 0000 0000 0000 uuuu uuuu
图注: u = 不变, x = 未知, - = 未用位 (读为 0), q = 值取决于具体条件。阴影单元表示不适用于指定器件。
注 1 : 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时,用 PC 的当前值更新 TOSU 、 TOSH 和 TOSL 。将 STKPTR 修改为指
向硬件堆栈的下一个单元。
2: 当器件被中断唤醒且 GIEL 或 GIEH 位被置 1 时, PC 装入中断向量 (0008h 或 0018h )。
3: INTCONx 或 PIRx 寄存器中的一位或多位会受到影响 (引起唤醒)。
4: 具体条件下的复位值,请参见表 4-1 。
上电复位,
欠压复位
WDT 复位,
RESET 指令,
堆栈复位
通过 WDT 或
中断唤醒器件
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 65 页
PIC18F97J60 系列
注:
DS39762A_CN 第 66 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.0 存储器构成
PIC18 闪存单片机器件有两种类型的存储器:
• 程序存储器
• 数据 RAM
由于是哈佛架构的器件,数据和程序存储器使用不同的
总线,因而可同时访问这两种存储器空间。
第 6.0 节“闪存程序存储器”提供了关于闪存程序存储
器操作的更多详细信息。
5.1 程序存储器构成
PIC18 单片机具有一个 21 位程序计数器,可以对 2 MB
的程序存储器空间进行寻址。访问存储器物理地址上边
界和这个 2 MB 地址之间的存储单元会返回全 0 (NOP
指令)。
整个 PIC18F97J60 系列提供了三种大小的片上闪存程
序存储器,从 64 KB (至多 32,764 条单字指令)到
128 KB (65,532 条单字指令)。图 5-1 给出了该系列
的各个器件的程序存储器映射图。
图 5-1 : PIC18F97J60 系列器件的存储器映射图
CALL, CALLW, RCALL,
RETURN, RETFIE, RETLW,
ADDULNK, SUBULNK
PIC18FX6J60 PIC18FX6J65 PIC18FX7J60
片上
存储器
PC<20:0>
1 级堆栈
•
•
•
31 级堆栈
片上
存储器
21
片上
存储器
000000h
配置字
配置字
配置字
未用
读为 0
注: 存储器空间的大小未按比例显示。放大了程序存储器区域以显示细节。
未用
读为 0
未用
读为 0
00FFFFh
017FFFh
01FFFFh
1FFFFFh
用户存储器空间
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 67 页
PIC18F97J60 系列
5.1.1 存储器硬件编码向量
所有的 PIC18 器件在它们的程序存储器空间内共有 3 个
硬件编码的返回向量。复位向量地址是在器件发生任何
复位时程序计数器返回的默认值;它位于 0000h 。
PIC18 器件还有两个中断向量地址,用于处理高优先级
和低优先级中断。高优先级中断向量位于 0008h ,低优
先级中断向量位于 0018h 。它们在程序存储器映射图中
的相对位置如图 5-2 所示。
图 5-2 : PIC18F97J60 系列器件的硬件编码
向量和配置字单元
复位向量
高优先级中断向量
低优先级中断向量
片上
程序存储器
闪存配置字
0000h
0008h
0018h
(存储器的顶部 -7 )
(存储器的顶部)
5.1.2 闪存配置字
由于 PIC18F97J60 系列器件没有固定的配置存储器,所
以保留片上程序存储器顶部的 4 个字来保存配置信息。
复位时,该配置信息被复制到配置寄存器。
配置字由低到高顺序存储在程序存储器单元中,从最低
地址开始存放 CONFIG1 的低字节,到 CONFIG4 的高
字节结束。对于这些器件,只使用从 CONFIG1 到
CONFIG3 的配置字,保留 CONFIG4 。 PIC18F97J60
系列器件的闪存配置字的实际地址如表 5-1 所示。图5-2
给出了闪存配置字以及其他的存储器向量在存储器映射
图中的位置。
第 24.1 节 “配置位”中提供了有关器件配置字的更多
详细信息。
表 5-1 : PIC18F97J60 系列器件的闪存
配置字
器件
PIC18F66J60
PIC18F86J60
PIC18F96J60
PIC18F66J65
PIC18F86J65
PIC18F96J65
PIC18F67J60
PIC18F87J60
PIC18F97J60
程序存储器
(KB )
64
96
128
配置字地址
FFF8h 到
FFFFh
17FF8h 到
17FFFh
1FFF8h 到
1FFFFh
读为 0
1FFFFFh
图注: (存储器的顶部)代表片上程序存储器空
间的上边界 (特定器件的具体值,请参见
图 5-1 )。阴影区域表示未实现的存储器。
这些区域未按比例显示。
DS39762A_CN 第 68 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.1.3 PIC18F9XJ60/9XJ65 程序存储器模式
此系列中的 100 引脚器件可以对总共 2MB的程序存储
器进行寻址。这是通过外部存储器总线实现的。控制器
有两种不同的工作模式:
• 单片机 ( MC)
• 扩展单片机 ( EMC)
通过设置 EMB 配置位 (CONFIG3L<5:4> )决定程序
存储器模式,如寄存器 5-1 所示。(关于器件配置位的
更多详细信息,请参见第 24.1 节 “配置位”。)
程序存储器模式的工作方式如下:
• 单片机模式只访问片上闪存存储器。尝试读片上存储
• 扩展单片机模式允许将内部和外部程序存储器作为
一个整体进行访问。器件可以访问其整个的片上程
序存储器。除此之外,器件还可以访问外部程序存
储器,寻址范围最大限制为 2 MB 。程序可按照需
要自动在两个存储器之间切换执行。
EMB 配置位的设置还能控制外部存储器的地址总线宽
度。在第 7.0 节 “外部存储器总线”中对此有更详细的
论述。
在这两种模式下,单片机都能访问数据 RAM 。
图 5-3 比较了不同程序存储器模式的存储器映射图。
表 5-2 中更充分地说明了片上存储器和外部存储器在
访问限制方面的差异。
器顶部以上的地址单元会导致读取值为全 0 (NOP
指令)。
单片机模式也是 64 引脚和 80 引脚器件唯一可用的工
作模式。
寄存器 5-1 : CONFIG3L :配置寄存器 3 低字节
R/WO-1 R/WO-1 R/WO-1 R/WO-1 R/WO-1 U-0 U-0 U-0
(1)
WAIT
bit 7 bit 0
图注:
R = 可读位 WO = 一次性写入位 U = 未用位,读为 0
-n = 未对器件编程时的值 1 = 置 10 = 清零
BW
(1)
EMB1
(1)
EMB0
(1)
EASHFT
(1)
— — —
bit 7
WAIT:外部总线等待使能位
1 = 禁止外部存储器总线上的操作的等待状态
0 = 使能外部存储器总线上的操作的等待状态并由 MEMCON<5:4> 选择
bit 6
BW:数据总线宽度选择位
1 = 16 位数据宽度模式
0 = 8 位数据宽度模式
bit 5-4
EMB1:EMB0:外部存储器总线配置位
11 = 单片机模式,禁止外部总线
10 = 扩展单片机模式, 12 位地址模式
01 = 扩展单片机模式, 16 位地址模式
00 = 扩展单片机模式, 20 位地址模式
bit 3
EASHFT:外部地址总线平移使能位
1 = 使能地址平移;外部总线上的地址是以 000000h 为起始地址的偏移值
0 = 禁止地址平移;外部总线上的地址反映 PC 值
bit 2-0
未用:读为 0
注 1 : 仅在 100 引脚器件上实现。
(1)
(1)
(1)
(1)
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 69 页
PIC18F97J60 系列
5.1.4 扩展单片机模式和地址平移
默认情况下,处于扩展单片机模式的器件将指向外部存
储器空间范围内的程序计数器值直接放到外部地址总线
上。实际上,这意味着外部存储器中低于片上存储器顶
部的地址都不能被访问。
为了避免这种情况,扩展单片机模式使用了一个地址平
移功能以使能自动的地址转换。在此模式下,放在外部
总线上的地址值减去片上程序存储器的大小并被重新映
射到从 0000h 开始的地址处。这样就可以利用外部存储
器的全部存储空间。
图 5-3 : PIC18F97J60 系列程序存储器模式的存储器映射图
片上
存储器
空间
片上
程序
存储器
读为 0
单片机模式
(存储器的顶部)
(存储器的顶部)+1
(1)
000000h
扩展单片机模式
外部
存储器
空间
不能
访问
外部
存储器
存储器
存储器
存储器
片上
空间
片上
程序
映射
到
外部
空间
(2)
000000h
(存储器的顶部)
(存储器的顶部)+1
外部
存储器
空间
外部
存储器
带地址平移的
扩展单片机模式
片上
存储器
空间
片上
程序
存储器
映射
外部
存储器
空间
000000h
(存储器的顶部)
(存储器的顶部)+1
到
1FFFFFh –
(存储器的顶部)
(2)
1FFFFFh
图注: (存储器的顶部)代表片上程序存储器空间的上边界 (关于器件的具体值,请参见图 5-1 )。阴影区域代表未实现或
不能访问的区域,取决于不同模式。
注 1 : 此模式是 64 引脚和 80 引脚器件唯一可用的模式,也是 100 引脚器件的默认模式。
2 : 这些模式仅在 100 引脚器件上可用。
1FFFFFh
1FFFFFh
表 5-2 : PIC18F9XJ60/9XJ65 程序存储器模式下的存储器访问
工作模式
程序执行 表读 表写 程序执行 表读 表写
单片机 可以 可以 可以 不可以 不可以 不可以
扩展单片机 可以 可以 可以 可以 可以 可以
内部程序存储器 外部程序存储器
DS39762A_CN 第 70 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.1.5 程序计数器
程序计数器(Program Counter ,PC )指定欲取出执行
的指令的地址。PC 为 21 位宽,且保存在三个不同的 8
位寄存器中。存储低字节的寄存器称为 PCL 寄存器,该
寄存器可读写。存储高字节的寄存器,即 PCH 寄存器,
存储 PC<15:8> 位;该寄存器不可直接读写。更新 PCH
寄存器的操作是通过 PCLATH 寄存器实现的。存储最高
字节的寄存器称为 PCU 。该寄存器存储 PC<20:16> 位;
它也不能直接读写。更新 PCU 寄存器的操作是通过
PCLATU 寄存器实现的。
PCLATH 和 PCLATU 的内容通过执行写 PCL 的操作被
传送到程序计数器。同样,程序计数器的两个高字节通
过读 PCL 的操作被传送到 PCLATH 和 PCLATU 。这对
于计算 PC 的偏移量很有用处 (见第 5.1.8.1 节“计算
GOTO ”)。
PC 是按字节寻址程序存储器的。为了防止 PC 不能正
确获取字指令,需要将 PCL 的最低有效位固定取值为
0。 PC 每次加 2 来寻址程序存储器中的顺序指令。
CALL、 RCALL、 GOTO 和程序转移指令直接写入程序计
数器。对于这些指令,PCLATH 和 PCLATU 的内容不会
传送到程序计数器。
5.1.6 返回地址堆栈
返回地址堆栈允许保存最多31 个程序调用地址和中断向
量。当执行 CALL 、RCALL 指令或响应中断时,PC 值会
被压入该堆栈。当执行 RETURN, RETLW 或 RETFIE 指
令 (如果使能了扩展指令集,则还包括 ADDULNK
和SUBULNK 指令)时, PC 值会从堆栈弹出。 PCLATU
和 PCLATH 不受 RETURN 或 CALL 指令的影响。
通过 21 位的 RAM 和一个 5 位的堆栈指针 STKPTR 来
实现 31 字的堆栈操作。堆栈既不占用程序存储器空间,
也不占用数据存储器空间。堆栈指针是可读写的,并且
通过栈顶的特殊功能寄存器可以读写栈顶地址。也可以
使用这些寄存器将数据压入堆栈或者从堆栈弹出。
执行 CALL 类型的指令时,执行进栈操作:首先堆栈指
针加 1 ,并且将 PC 的内容写入堆栈指针所指向的地址
单元(PC 已经指向 CALL 下一条指令)。执行 RETURN
类型的指令时,执行出栈操作:STKPTR 所指向的地址
单元的内容会被传送给 PC ,然后堆栈指针减 1 。
所有复位后,堆栈指针均会初始化为 00000 。堆栈指针
00000 不指向任何 RAM 单元;它仅仅是一个复位值。
状态位表明堆栈是已满、上溢还是下溢。
5.1.6.1 访问栈顶
只可读写返回地址堆栈的栈顶(Top - of - St ac k ,TOS)。
有三个寄存器 TOSU:TOSH:TOSL 用于保存由STKPTR
寄存器所指向的堆栈单元的内容 (图 5-4 )。这可以让
用户在必要时实现软件堆栈。在 CALL 、 RCALL 或中断
(如果使能了扩展指令集,则还包括ADDULNK 和SUBUL NK
指令)后,软件可以通过读取 TOSU:TOSH:TOSL 寄存
器来读取压入堆栈的值。这些值可以被置入由用户定义
的软件堆栈。返回时,软件将这些值存回
TOSU:TOSH:TOSL 并执行返回。
为防止意外的堆栈操作,访问堆栈时用户必须禁止全局
中断允许位。
图 5-4 : 返回地址堆栈和相关的寄存器
返回地址堆栈 <20:0>
栈顶寄存器
TOSL TOSH TOSU
34h 1Ah 00h
栈顶
001A34h
000D58h
11111
11110
11101
00011
00010
00001
00000
堆栈指针
STKPTR<4:0>
00010
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 71 页
PIC18F97J60 系列
5.1.6.2 返回堆栈指针 ( STKPTR)
STKPTR 寄存器 (寄存器 5-2)包含堆栈指针值、
STKFUL(堆栈满)状态位和 STKUNF(堆栈下溢)状
态位。堆栈指针值可为 0 到 31 范围内的值。向堆栈压
入值前,堆栈指针加 1 ;而从堆栈弹出值后,堆栈指针
减 1 。复位时,堆栈指针值为零。用户可以读写堆栈指
针的值。实时操作系统(Real-Time Operating System ,
RTOS )可以利用此特性对返回堆栈进行维护。
向堆栈压入 PC 值 31 次 (且没有值从堆栈弹出)后,
STKFUL 位置 1 。通过软件或 POR 使 STKFUL 位清零。
由 STVREN (堆栈溢出复位使能)配置位的状态决定
堆栈满时将执行的操作。(关于器件配置位的说明,请
参见第 24.1 节 “配置位”。)如果 STVREN 位已经置
1 (默认),第 31 次进栈将把 ( PC + 2 )值压入堆栈,
从而将 STKFUL 位置 1 并复位器件。STKFUL 位将保持
置 1 ,而堆栈指针将被清零。
如果 STVREN 已经清零,第 31 次进栈时 STKFUL 位将
会置 1 ,堆栈指针递增到 31 。后续的进栈操作都不会覆
盖第 31 次进栈的值,并且 STKPTR 将保持为 31 。
当出栈次数足够卸空堆栈时,下一次出栈操作会向 PC
返回一个零值,并将 STKUNF 位置 1 ,而堆栈指针则保
持为零。STKUNF 位将保持置 1 ,直到软件清零或发生
POR 为止。
注: 下溢时,将零值返回给 PC ,会使程序指向
复位向量,此时可以验证堆栈状态并采取
相应的操作。这与复位不同,因为下溢时
SFR 的内容不受影响。
5.1.6.3 PUSH 和 POP 指令
由于栈顶是可以读写的,因此将值压入堆栈或从堆栈弹
出而不影响程序的正常执行是非常理想的。PIC18 指令
集包含两个指令 PUSH 和 POP ,使用这两个指令可在软
件控制下对 TOS 执行操作。然后就可以修改 TOSU 、
TOSH 和 TOSL ,将数据或返回地址压入堆栈。
PUSH 指令将当前的 PC 值压入堆栈。执行该指令会使
堆栈指针加 1 并将当前的 PC 值装入堆栈。
POP 指令通过将堆栈指针减 1 来放弃当前的 TOS 值。
然后前一个入栈的值就成为了 TOS 值。
寄存器 5-2 : STKPTR :堆栈指针寄存器
R/C-0 R/C-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
STKFUL
bit 7 bit 0
(1)
STKUNF
(1)
— SP4 SP3 SP2 SP1 SP0
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4-0
注 1: 通过用户软件或 POR 清零 bit 7 和 bit 6 。
STKFUL:堆栈满标志位
1 = 堆栈满或溢出
0 = 堆栈未满或未溢出
STKUNF:堆栈下溢标志位
1 = 发生堆栈下溢
0 = 未发生堆栈下溢
未用:读为 0
SP4:SP0:堆栈指针地址位
C = 可清零位
(1)
(1)
DS39762A_CN 第 72 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.1.6.4 堆栈满和下溢复位
通过将配置寄存器 1L 中的 STVREN 位置 1 ,来使能在
堆栈溢出或下溢时的器件复位。当 STVREN 置 1 时,堆
栈满或堆栈下溢状态会将相应的 STKFUL 或 STKUNF
位置 1 ,然后使器件复位。当 STVREN 清零时,堆栈满
或堆栈下溢状态会将相应的 STKFUL 或 STKUNF 位置
1 ,但不会使器件复位。只能通过用户软件或上电复位
使 STKFUL 或 STKUNF 位清零。
5.1.7 快速寄存器堆栈
为 STATUS、WREG 和 BSR 寄存器提供的快速寄存器
堆栈具有从中断 “快速返回”的功能。此堆栈只有一级
且不可读写。当处理器转入中断向量处执行时,它装入
对应寄存器的当前值。所有中断源都会将值压入堆栈寄
存器。如果使用 RETFIE, FAST 指令从中断返回,这
些寄存器中的值就会被装回工作寄存器。
如果同时允许低优先级中断和高优先级中断,从低优先
级中断返回时,无法可靠地使用堆栈寄存器。如果在为
低优先级中断提供服务时,发生了高优先级中断,则低
优先级中断存储在堆栈寄存器中的值将被覆盖。在为低
优先级中断提供服务时,用户必须用软件保存关键寄存
器的值。
如果未使用中断优先级,所有中断都可以使用快速寄存
器堆栈从中断返回。如果没有使用中断,快速寄存器堆
栈可以用于在子程序调用结束后恢复 STATUS、WREG
和 BSR 寄存器。要在子程序调用中使用快速寄存器堆
栈,必须执行 CALL label, FAST 指令,将 STATUS、
WREG 和 BSR 寄存器的内容存入快速寄存器堆栈。然
后执行 RETURN, FAST 指令,从快速寄存器堆栈恢复
这些寄存器。
例 5-1 给出了一个在子程序调用和返回期间使用快速寄
存器堆栈的源代码示例。
例 5-1 : 快速寄存器堆栈代码示例
CALL SUB1, FAST ;STATUS, WREG, BSR
;SAVED IN FAST REGISTER
;STACK
•
•
SUB1 •
•
RETURN FAST ;RESTORE VALUES SAVED
;IN FAST REGISTER STACK
5.1.8 程序存储器中的查找表
有的编程需要在程序存储器中创建数据结构或查找表。
对于 PIC18 器件,可以用两种方式实现查找表:
• 计算 GOTO
• 表读
5.1.8.1 计算 GOTO
计算 GO TO 是通过向程序计数器加一个偏移量来实现
的。例 5-2 给出了一个示例。
使用 ADDWF PCL 指令和一组 RETLW nn 指令可以创建
一个查找表。在调用该表前,会先将查找表中的偏移量
装入 W 寄存器。被调用子程序的第一条指令应该是
ADDWF PCL 指令。接下去执行的一条是 RETLW nn 指
令,它将值 nn 返回给调用函数。
偏移量 (WREG 中)指定程序计数器应该增加的字节
数,其值应该为 2 的倍数 (LSb = 0 )。
在这种方式中,每个指令单元只能存储一个数据字节,
并且要求返回地址堆栈还有空闲单元。
例 5-2 : 使用偏移量计算 GOTO
MOVF OFFSET, W
CALL TABLE
ORG nn00h
TABLE ADDWF PCL
RETLW nnh
RETLW nnh
RETLW nnh
.
.
.
5.1.8.2 表读
有一种更好的方法可以将数据存储在程序存储器中,这
种方法允许在每个指令单元存储 2 个字节的数据。
编程时,每个程序字可以存储 2 个字节的查找表数据。
表指针(TBLPTR)指定字节地址,而表锁存器
(TABLAT)则存储从程序存储器读取的数据。一次只能
从程序存储器读取一个字节。
在第 6.1 节 “表读与表写”中进一步讨论表读操作。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 73 页
PIC18F97J60 系列
5.2 PIC18 指令周期
5.2.1 时钟分配
来自内部或外部时钟源的单片机时钟输入都将在内部被
四分频以产生四个互不重叠的正交时钟信号(Q1 、Q2、
Q3 和 Q4 )。程序计数器在每个 Q1 递增;在 Q4 期间,
从程序存储器取指令并将指令锁存到指令寄存器 (IR )
中。指令的译码和执行在下一个 Q1 到 Q4 周期完成。
图 5-5 所示为时钟和指令执行的流程图。
图 5-5 :时 钟/指令周期
Q2 Q3 Q4
OSC1
Q1
Q2
Q3
Q4
PC
OSC2/CLKO
( RC 模式)
Q1
PC PC + 2 PC + 4
执行指令(PC – 2 )
取指令(PC )
Q1
5.2.2 指令流 / 流水线
一个指令周期由 Q1 到 Q4 四个 Q 周期组成。取指令和
执行指令是以流水线方式进行的,用一个指令周期来取
指令,而用另一个指令周期译码和执行指令。但由于是
流水线操作,所以每条指令的等效执行时间都是一个指
令周期。如果某条指令改变了程序计数器 (如 GOTO ),
则需要两个指令周期才能完成该指令 (例 5-3 )。
取指周期中:程序计数器 (PC )在 Q1 周期加 1 ,开始
取指令。
指令执行周期中:在 Q1 周期,将所取指令锁存到指令
寄存器 (IR )。在随后的 Q2 、 Q3 和 Q4 周期中译码并
执行该指令。其中读数据存储器(读操作数)发生在 Q2
周期,写操作发生在 Q4 周期 (写目标寄存器)。
Q2 Q3 Q4
执行指令(PC )
取指令(PC + 2 )
Q2 Q3 Q4
Q1
执行指令(PC + 2)
取指令(PC + 4)
内部
相位
时钟
例 5-3 : 指令流水线流程
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOVLW 55h
2. MOVWF PORTB
3. BRA SUB_1
4. BSF PORTA, BIT3 (Forced NOP)
5. Instruction @ address SUB_1
除程序转移指令外,所有的指令都是单周期指令。由于程序转移指令将导致一条已取指令从流水线清除,需要重新取
指令,然后执行指令,所以程序转移指令需要两个周期。
DS39762A_CN 第 74 页 超前信息 2006 Microchip Technology Inc.
取指 1 执行 1
取指 2 执行 2
取指 3 执行 3
取指 4 清除 (NOP )
取指 SUB_1 执行 SUB_1
PIC18F97J60 系列
5.2.3 程序存储器中的指令
程序存储器按字节寻址。指令以 2 字节或 4 字节的形式
存储在程序存储器中。指令字的最低有效字节始终存储
在地址为偶数的程序存储器单元中(LSb = 0 )。要保证
正确指向指令单元,PC 必须以 2 为单位递增,并且 LSb
总是读为 0 (见第 5.1.5 节 “程序计数器”)。
图 5-6 给出了指令字存储在程序存储器中的一个示例。
图 5-6 : 程序存储器中的指令
指令 1:
指令 2:
指令 3:
程序存储器
字节单元
MOVLW 055h 0Fh 55h 000008h
GOTO 0006h EFh 03h 00000Ah
MOVFF 123h, 456h C1h 23h 00000Eh
→
5.2.4 双字指令
标准的 PIC18 指令集有 4 条双字指令: CALL、 MOVFF、
GOTO 和 LFSR。这些指令第二个字的高 4 位均为 1111 ;
其他 12 位是立即数数据,通常为一个数据存储器地址。
指令的高 4 位为 1111 ,用于代表一条特殊的 NOP 指令。
指令顺序执行的正确顺序为:执行完第一个字之后立即
按顺序访问并使用第二个字中的数据。如果由于某些原
CALL 和 GOTO 指令在指令中嵌入了程序存储器的绝对地
址。由于指令总是存储为一个字长,因而指令所包含的
数据为一个字地址。字地址会写入 PC<20:1> ,用于访问
程序存储器中的目标字节。图 5-6 中的指令 #2 给出了指
令 GOTO 0006h 在程序存储器中的译码过程。程序转移
指令也采取同样的方式对相对地址偏移量进行译码。存
储在转移指令中的偏移量代表单字指令数,PC 将以此作
为偏移量跳转到指定的地址单元。第 25.0 节“指令集汇
总”提供了指令集的更多详细信息。
LSB = 1 LSB = 0 ↓
F0h 00h 00000Ch
F4h 56h 000010h
字地址
000000h
000002h
000004h
000006h
000012h
000014h
因跳过了第一个字而自动执行指令的第二个字,那么将
作为一条 NOP 指令执行。如果双字指令跟在修改 PC 的
条件指令后,就有必要执行此操作。例 5-4 给出了它的
执行过程。
注: 关于扩展指令集中的双字指令信息,请参
见第 5.5 节“程序存储器和扩展指令集”。
例 5-4 : 双字指令
情形 1 :
目标代码 源代码
0110 0110 0000 0000 TSTFSZ REG1 ; is RAM location 0?
1100 0001 0010 0011 MOVFF REG1, REG2 ; No, skip this word
1111 0100 0101 0110 ; Execute this word as a NOP
0010 0100 0000 0000 ADDWF REG3 ; continue code
情形 2 :
目标代码 源代码
0110 0110 0000 0000 TSTFSZ REG1 ; is RAM location 0?
1100 0001 0010 0011 MOVFF REG1, REG2 ; Yes, execute this word
1111 0100 0101 0110 ; 2nd word of instruction
0010 0100 0000 0000 ADDWF REG3 ; continue code
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 75 页
PIC18F97J60 系列
5.3 数据存储器构成
注: 当使能了 PIC18 扩展指令集时,数据存储
器某些方面的操作会有所改变。更多信
息,请参见第 5.6 节 “数据存储器和扩展
指令集”。
PIC18 器件中的数据存储器是用静态 RAM 实现的。在数
据存储器中,每个寄存器有 12 位地址,数据存储器可达
4096 个字节。存储器空间被分为 16 个存储区,每个存
储区包含 256 个字节。PIC18F97J60 系列器件实现了所
有可用的存储区,并提供 3808 字节的数据存储区供用户
使用。图 5-7 给出了器件的数据存储器构成。
数据存储器由特殊功能寄存器 (Special Function
Register, SFR)和通用寄存器 (General Purpose
Register, GPR)组成。SFR 用于单片机和外设功能模
块的控制和状态显示,GPR 则在用户应用程序中用于存
储数据和临时存储操作的中间结果。任何未实现单元均
读为 0 。
这样的指令集和架构支持跨存储区的操作。可以通过直
接、间接或变址寻址模式访问整个数据存储器。本章后
面的部分将讨论寻址模式。
为确保能在一个周期存取常用寄存器 (大多数 SFR 和
所选的 GPR ), PIC18 器件设置了一个快速操作存储
区。该存取区是一个 256 字节的存储器空间,它可实现
对大多数 SFR 和 GPR Bank 0 的低地址单元的快速存
取,而无需使用 BSR 。第 5.3.2 节“快速操作存储区”提
供了对于快速操作 RAM 的详细说明。
5.3.1 存储区选择寄存器
容量较大的数据存储器需要有效的寻址机制,以便对所
有地址进行快速存取。理想状况下,这意味着不必为每
次读写操作提供完整地址。 PIC18 器件是使用 RAM 存
储区机制实现快速存取的。这种机制将存储器空间分成
连续的 16 个 256 字节的存储区。根据不同的指令,可
以通过完整的 12 位地址直接寻址每个单元,或通过 8
位的低字节地址和 4 位存储区指针寻址每个单元。
PIC18 指令集中的大部分指令都使用存储区指针,也就
是存储区选择寄存器(Bank Select Register , BSR )。
SFR 保存单元地址的高 4 位,而指令本身则包括单元地
址的低 8 位。只使用 BSR 的低 4 位(BSR3:BSR0),
不使用高 4 位;它们始终读为 0 且不能被写入。可以通
过使用 MOVLB 指令直接装载 BSR 。
BSR 的值代表数据存储器中的存储区,指令中的 8 位指
向存储区中的存储单元,可以将它看作距离存储区下边
界的偏移量。图 5-8 显示了 BSR 的值与数据存储器中的
存储区之间的关系。
由于最多可有 16 个寄存器共享同一个低位地址,用户
必须非常小心以确保在执行数据读或写之前选择了正确
的存储区。例如,当 BSR 为 0Fh 时将程序数据写入地
址为F9h 的8 位地址单元,将导致程序计数器重新赋值。
当选择存储区时,只有已实现的存储区才可以读写。对
未实现存储区进行的写操作将被忽略,而读这些存储区
会返回 0 。虽然是这样, STATUS 寄存器仍然会受到影
响,好像操作是成功的。图 5-7 中的数据存储器映射图
指出了已实现的存储区。
在 PIC18 的内核指令集中,只有 MOVFF 指令指定源寄
存器和目标寄存器的完整 12 位地址。该指令在执行时
完全忽略 BSR 。所有其他指令仅包含作为操作数的低位
地址,而且必须使用 BSR 或快速操作存储区来寻址目
标寄存器。
DS39762A_CN 第 76 页 超前信息 2006 Microchip Technology Inc.
图 5-7 : PIC18F97J60 系列器件的数据存储器映射图
BSR<3:0>
= 0000
= 0001
= 0010
= 0011
= 0100
= 0101
= 0110
= 0111
= 1000
= 1001
= 1010
= 1011
= 1100
= 1101
= 1110
= 1111
Bank 0
Bank 1
Bank 2
Bank 3
Bank 4
Bank 5
Bank 6
Bank 7
Bank 8
Bank 9
Bank 10
Bank 11
Bank 12
Bank 13
Bank 14
Bank 15
数据存储器映射图
00h
快速操作 RAM
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
00h
FFh
FFh
以太网 SFR
00h
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
GPR
SFR
000h
05Fh
060h
0FFh
100h
1FFh
200h
2FFh
300h
3FFh
400h
4FFh
500h
5FFh
600h
6FFh
700h
7FFh
800h
8FFh
900h
9FFh
A00h
AFFh
B00h
BFFh
C00h
CFFh
D00h
DFFh
E00h
E7Fh
E80h
EFFh
F00h
F5Fh
F60h
FFFh
PIC18F97J60 系列
当 a = 0 时:
将忽略BSR 而使用快速操作存储
区。
前 96 个字节是通用 RAM (来自
Bank 0 )。
剩余的 160 个字节是特殊功能寄
存器 (来自 Bank 15 )。
当 a = 1 时:
BSR 指定指令所使用的存储区。
快速操作存储区
快速操作 RAM 的低地址
快速操作 RAM 的高地址
(SFR)
00h
5Fh
60h
FFh
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 77 页
PIC18F97J60 系列
图 5-8 : 使用存储区选择寄存器 (直接寻址)
7
0000
存储区选择
BSR
(2)
(1)
0010
0
000h
100h
200h
300h
数据存储器
Bank 0
Bank 1
Bank 2
Bank 3
到
Bank 13
00h
FFh
00h
FFh
00h
FFh
00h
来自操作码
7
1 1 1 1 1 111
11111111
(2)
0
E00h
F00h
FFFh
注 1: 指令的快速操作 RAM 位强制跳过选定的存储区 ( BSR<3:0> )直接寻址快速操作存储区的寄存器。
2: MOVFF 指令嵌入了完整的 12 位地址。
Bank 14
Bank 15
5.3.2 快速操作存储区
使用 BSR 和嵌入的 8 位地址,用户可以寻址数据存储
器的整个空间,但这同时也意味着用户必须始终确保选
择了正确的存储区。否则,可能会从错误的单元读取数
据或将数据写入错误的单元。如果本来是向 GPR 进行
写操作,却将结果写入了 SFR ,后果是非常严重的。但
是在每次向数据存储器进行读或写操作时确认和 / 或更
改 BSR 会严重影响工作效率。
为了连续访问大多数常用数据存储器单元,现为数据存
储器配置了快速操作存储区,这样可以允许用户访问被
映射的存储区而无需指定 BSR 。快速操作存储区由
Bank 0 的前 96 个字节( 00h-5Fh )和 Bank 15 的后 160
个字节 (60h-FFh )组成。地址较低的部分被称为“快
速操作 RAM ”, 由 GPR 组成。地址较高的部分则被映
射为器件的 SFR 。这两个区域被连续地映射到快速操作
存储区并且可以用一个8 位地址进行线性寻址(图5-7 )。
包括快速操作 RAM 位(指令中的“a ”参数)的 PIC18
内核指令在执行时使用快速操作存储区。当 “a”等于
FFh
00h
FFh
00h
FFh
此“强制”寻址方式可使指令在一个周期内对数据地址
进行操作,而不需要首先更新 BSR 。这意味着用户可以
更有效地对 8 位地址为 60h 或以上的 SFR 进行取值和
操作。地址为 60h 以下的快速操作 RAM 非常适合于存
储那些用户可能需要快速访问的数据值,如直接计算结
果或常用程序变量。快速操作 RAM 也可实现更加快速
和有效的现场保护和变量切换。
使能扩展的指令集 (XINST 配置位 = 1 )时的快速操作
存储区的映射略有不同。在第 5.6.3 节 “在立即数变址
模式中映射快速操作存储区”中对此进行了更详细的讨
论。
5.3.3 通用寄存器文件
PIC18 器件可能在 GPR 区中划分了一部分存储区。这
部分存储区为数据 RAM ,所有指令均可访问它。 GPR
区从 Bank 0 的底部 (地址 000h )开始向上直到 SFR
区的底部。上电复位不会初始化 GPR ,并且其他复位也
不会改变其内容。
1 时,指令使用 BSR 和包含在操作码中的 8 位地址对数
据存储器寻址。当 “a ”为 0 时,强制指令使用快速操
作存储区地址映射,此时忽略 BSR 的当前值。
DS39762A_CN 第 78 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.3.4 特殊功能寄存器
特殊功能寄存器 (SFR )是 CPU 和外设模块用来控制
器件操作的寄存器。这些寄存器以静态 RAM 的形式实
现。
SFR 从数据存储器的顶部 (FFFh )开始向下,它占用
了 Bank 15 上半部分的单元空间(F60h 到 FFFh )。可
以将 SFR 归类为两组:与 “内核”器件功能 (ALU 、
复位和中断)相关的寄存器和与外设功能相关的寄存
器。复位和中断寄存器在相关的章节中进行讨论,本章
后面的部分将对 ALU 状态寄存器进行说明。与外设操作
相关的寄存器将在该外设的章节中进行说明。
SFR 通常分布在受其控制的外设中。未使用的 SFR 单元
是未实现的,读为 0 。表 5-3 给出了 SFR 的列表;表 5-5
中提供了完整说明。
表 5-3 : PIC18F97J60 系列器件的特殊功能寄存器映射图
地址 名称 地址 名称 地址 名称 地址 名称 地址 名称
FFFh TOSU FDFh INDF2
(1)
FFEh TOSH FDEh POSTINC2
FFDh TOSL FDDh POSTDEC2
FFCh STKPTR FDCh PREINC2
FFBh PCLATU FDBh PLUSW2
(1)
(1)
FFAh PCLATH FDAh FSR2H FBAh CCP2CON F9Ah TRISJ
FF9h PCL FD9h FSR2L FB9h CCPR3H F99h TRISH
FF8h TBLPTRU FD8h STATUS FB8h CCPR3L F98h TRISG F78h TMR4
FF7h TBLPTRH FD7h TMR0H FB7h CCP3CON F97h TRISF F77h PR4
FF6h TBLPTRL FD6h TMR0L FB6h ECCP1AS F96h TRISE F76h T4CON
FF5h TABLAT FD5h T0CON FB5h CVRCON F95h TRISD F75h CCPR4H
(2)
FF4h PRODH FD4h
—
FF3h PRODL FD3h OSCCON FB3h TMR3H F93h TRISB F73h CCP4CON
FF2h INTCON FD2h ECON1 FB2h TMR3L F92h TRISA F72h CCPR5H
FF1h INTCON2 FD1h WDTCON FB1h T3CON F91h LATJ
FF0h INTCON3 FD0h RCON FB0h PSPCON F90h LATH
FEFh INDF0
(1)
FEEh POSTINC0
FEDh POSTDEC0
FECh PREINC0
FEBh PLUSW0
(1)
(1)
FCFh TMR1H FAFh SPBRG1 F8Fh LATG F6Fh SPBRG2
(1)
FCEh TMR1L FAEh RCREG1 F8Eh LATF F6Eh RCREG2
(1)
FCDh T1CON FADh TXREG1 F8Dh LATE F6Dh TXREG2
FCCh TMR2 FACh TXSTA1 F8Ch LATD F6Ch TXSTA2
FCBh PR2 FABh RCSTA1 F8Bh LATC F6Bh RCSTA2
FEAh FSR0H FCAh T2CON FAAh
FE9h FSR0L FC9h SSP1BUF FA9h
FE8h WREG FC8h SSP1ADD FA8h
FE7h INDF1
(1)
FE6h POSTINC1
FE5h POSTDEC1
FE4h PREINC1
FE3h PLUSW1
(1)
(1)
FC7h SSP1STAT FA7h EECON2
(1)
FC6h SSP1CON1 FA6h EECON1 F86h PORTG F66h SSP2BUF
(1)
FC5h SSP1CON2 FA5h IPR3 F85h PORTF F65h SSP2ADD
FC4h ADRESH FA4h PIR3 F84h PORTE F64h SSP2STAT
FC3h ADRESL FA3h PIE3 F83h PORTD F63h SSP2CON1
FE2h FSR1H FC2h ADCON0 FA2h IPR2 F82h PORTC F62h SSP2CON2
FE1h FSR1L FC1h ADCON1 FA1h PIR2 F81h PORTB F61h EDATA
FE0h BSR FC0h ADCON2 FA0h PIE2 F80h PORTA F60h EIR
FBFh CCPR1H F9Fh IPR1 F7Fh SPBRGH1
(1)
FBEh CCPR1L F9Eh PIR1 F7Eh BAUDCON1
(1)
FBDh CCP1CON F9Dh PIE1 F7Dh SPBRGH2
FBCh CCPR2H F9Ch MEMCON
(3)
F7Ch BAUDCON2
FBBh CCPR2L F9Bh OSCTUNE F7Bh ERDPTH
(3)
(3)
F7Ah ERDPTL
F79h ECCP1DEL
FB4h CMCON F94h TRISC F74h CCPR4L
(3)
(3)
(2)
—
(2)
—
(2)
—
(1)
F8Ah LATB F6Ah ECCP3AS
F89h LATA F69h ECCP3DEL
F88h PORTJ
F87h PORTH
(3)
(3)
F71h CCPR5L
F70h CCP5CON
F68h ECCP2AS
F67h ECCP2DEL
注 1: 这不是实际存在的寄存器。
2: 未实现的寄存器,读为
0。
3: 在 64 引脚的器件上寄存器不可用。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 79 页
PIC18F97J60 系列
5.3.5 以太网 SFR
除了 Bank 15 中的标准 SFR , PIC18F97J60 系列器件
还有另外一组SFR 。后者专用于以态网模块,占用Bank
14 的上半部分 (E80h 到 EFFh )。
注: 要改善性能,经常访问的以太网寄存器应
位于标准 SFR 存储区 (F60h 到 FFFh )。
表 5-4 给出了以太网 SFR 的完整列表。表 5-5 对所有
SFR 进行了完整的说明。
表 5-4 : PIC18F97J60 系列器件的以太网 SFR 映射图
地址 名称 地址 名称 地址 名称 地址 名称
EFFh
—
EDFh —
(1)
EFEh ECON2 EDEh —
EFDh ESTAT EDDh —
EFCh —
(1)
EDCh —
EFBh EIE EDBh —
EFAh —
EF9h —
EF8h
(1)
(2)
(2)
—
EDAh —
ED9h EPKTCNT EB9h MIRDH E99h EPAUSH
ED8h ERXFCON EB8h MIRDL E98h EPAUSL
EF7h EDMACSH ED7h
EF6h EDMACSL ED6h
EF5h EDMADSTH ED5h EPMOH EB5h —
EF4h EDMADSTL ED4h EPMOL EB4h MIREGADR E94h —
EF3h EDMANDH ED3h —
EF2h EDMANDL ED2h —
EF1h EDMASTH ED1h EPMCSH EB1h MICON E91h —
EF0h EDMASTL ED0h EPMCSL EB0h —
EEFh ERXWRPTH ECFh EPMM7 EAFh —
EEEh ERXWRPTL ECEh EPMM6 EAEh —
EEDh ERXRDPTH ECDh EPMM5 EADh —
EECh ERXRDPTL ECCh EPMM4 EACh —
EEBh ERXNDH ECBh EPMM3 EABh MAMXFLH E8Bh —
EEAh ERXNDL ECAh EPMM2 EAAh MAMXFLL E8Ah MISTAT
EE9h ERXSTH EC9h EPMM1 EA9h MACLCON2 E89h
EE8h ERXSTL EC8h EPMM0 EA8h MACLCON1 E88h —
EE7h ETXNDH EC7h EHT7 EA7h MAIPGH E87h —
EE6h ETXNDL EC6h EHT6 EA6h MAIPGL E86h —
EE5h ETXSTH EC5h EHT5 EA5h —
EE4h ETXSTL EC4h EHT4 EA4h MABBIPG E84h MAADR1
EE3h EWRPTH EC3h EHT3 EA3h MACON4 E83h MAADR4
EE2h EWRPTL EC2h EHT2 EA2h MACON3 E82h MAADR3
(1)
EE1h
EE0h
—
(1)
—
EC1h EHT1 EA1h —
EC0h EHT0 EA0h MACON1 E80h MAADR5
(1)
(1)
(1)
(1)
(1)
(1)
(1)
—
(1)
—
(2)
(2)
EBFh —
EBEh —
EBDh —
EBCh —
EBBh —
EBAh —
EB7h MIWRH E97h EFLOCON
EB6h MIWRL E96h —
EB3h —
EB2h MICMD E92h —
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(2)
(1)
(2)
(1)
(1)
(1)
(2)
(1)
E9Fh —
E9Eh —
E9Dh —
E9Ch —
E9Bh —
E9Ah —
E95h —
E93h —
E90h —
E8Fh —
E8Eh —
E8Dh —
E8Ch —
E85h MAADR2
E81h MAADR6
(1)
(1)
(1)
(1)
(1)
(1)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(1)
—
(1)
(1)
(1)
注 1: 保留的寄存器单元,不能修改。
2: 未实现的寄存器,读为
0。
DS39762A_CN 第 80 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列)
寄存器名称
TOSU
TOSH
TOSL
STKPTR STKFUL
PCLATU
PCLATH
PCL
TBLPTRU
TBLPTRH
TBLPTRL
TAB LAT
PRODH
PRODL
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 59, 121
INTCON2 RBPU
INTCON3 INT2IP INT1IP INT3IE INT2IE INT1IE INT3IF INT2IF INT1IF 1100 0000 59, 123
INDF0
POSTINC0
POSTDEC0
PREINC0
PLUSW0
FSR0H
FSR0L
WREG
INDF1
POSTINC1
POSTDEC1
PREINC1
PLUSW1
FSR1H
FSR1L
BSR
INDF2
POSTINC2
POSTDEC2
PREINC2
PLUSW2
FSR2H
FSR2L
图注: x = 未知, u = 不变, - = 未用 (读为 0 ), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
— — —
栈顶寄存器高字节 (TOS<15:8> )
栈顶寄存器低字节 (TOS<7:0> )
(1)
— —b i t 2 1
PC<15:8> 的保持寄存器
PC 低字节 ( PC<7:0>)
— —b i t 2 1
程序存储器表指针高字节 (TBLPTR<15:8> )
程序存储器表指针低字节 (TBLPTR<7:0> )
程序存储器表锁存器
乘积寄存器高字节
乘积寄存器低字节
使用 FSR0 的内容寻址数据存储器——FSR0 的值不变 (不是实际存在的寄存器)
使用 FSR0 的内容寻址数据存储器——FSR0 的值后增 (不是实际存在的寄存器)
使用 FSR0 的内容寻址数据存储器——FSR0 的值后减 (不是实际存在的寄存器)
使用 FSR0 的内容寻址数据存储器——FSR0 的值预增 (不是实际存在的寄存器)
使用 FSR0 的内容寻址数据存储器——FSR0 的值预增(不是实际存在的寄存器), FSR0 的偏移量由 W 寄存器
提供
— — — —
间接数据存储器地址指针 0 的低字节
工作寄存器
使用 FSR1 的内容寻址数据存储器——FSR1 的值不变 (不是实际存在的寄存器)
使用 FSR1 的内容寻址数据存储器——FSR1 的值后增 (不是实际存在的寄存器)
使用 FSR1 的内容寻址数据存储器——FSR1 的值后减 (不是实际存在的寄存器)
使用 FSR1 的内容寻址数据存储器——FSR1 的值预增 (不是实际存在的寄存器)
使用 FSR1 的内容寻址数据存储器——FSR1 的值预增(不是实际存在的寄存器), FSR1 的偏移量由 W 寄存器
提供
— — — —
间接数据存储器地址指针 1 的低字节
— — — —
使用 FSR2 的内容寻址数据存储器——FSR2 的值不变 (不是实际存在的寄存器)
使用 FSR2 的内容寻址数据存储器——FSR2 的值后增 (不是实际存在的寄存器)
使用 FSR2 的内容寻址数据存储器——FSR2 的值后减 (不是实际存在的寄存器)
使用 FSR2 的内容寻址数据存储器——FSR2 的值预增 (不是实际存在的寄存器)
使用 FSR2 的内容寻址数据存储器——FSR2 的值预增(不是实际存在的寄存器), FSR2 的偏移量由 W 寄存器
提供
— — — —
间接数据存储器地址指针 2 的低字节
(1)
STKUNF
INTEDG0 INTEDG1 INTEDG2 INTEDG3 TMR0IP INT3IP RBIP 1111 1111 59, 122
2
C™ 从动模式下时,这些位的其他名称和定义。
栈顶寄存器最高字节 ( TOS<20:16>)
— SP4 SP3 SP2 SP1 SP0 00-0 0000 59, 72
(2)
PC<20:16> 的保持寄存器
程序存储器表指针最高字节 (TBLPTR<20:16> )
间接数据存储器地址指针 0 的高字节
间接数据存储器地址指针 1 的高字节
存储区选择寄存器
间接数据存储器地址指针 2 的高字节
POR/BOR
时的值
---0 0000 59, 71
0000 0000 59, 71
0000 0000 59, 71
---0 0000 59, 71
0000 0000 59, 71
0000 0000 59, 71
--00 0000 59, 98
0000 0000 59, 98
0000 0000 59, 98
0000 0000 59, 98
xxxx xxxx 59, 117
xxxx xxxx 59, 117
N/A 59, 89
N/A 59, 90
N/A 59, 90
N/A 59, 90
N/A 59, 90
---- xxxx 59, 89
xxxx xxxx 59, 90
xxxx xxxx 59
N/A 59, 89
N/A 59, 90
N/A 59, 90
N/A 59, 90
N/A 59, 90
---- xxxx 59, 89
xxxx xxxx 59, 89
---- 0000 59, 89
N/A 59, 89
N/A 59, 90
N/A 59, 90
N/A 59, 90
N/A 59, 90
---- xxxx 59, 89
xxxx xxxx 59, 89
详情请见
(页):
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 81 页
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列) (续)
寄存器名称
STATUS — — —NO VZD CC---x xxxx 60, 87
TMR0H
TMR0L
T0CON TMR0ON T08BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0 1111 1111 60, 163
OSCCON IDLEN
ECON1 TXRST RXRST DMAST CSUMEN TXRTS RXEN
WDTCON
RCON IPEN
TMR1H
TMR1L
T1CON RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
TMR2
PR2
T2CON
SSP1BUF
SSP1ADD
SSP1STAT SMP CKE D/A
SSP1CON1 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 60, 257,
SSP1CON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000 60, 268
ADRESH
ADRESL
ADCON0 ADCAL
ADCON1
ADCON2 ADFM
CCPR1H
CCPR1L
CCP1CON P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 60, 189
CCPR2H
CCPR2L
CCP2CON P2M1 P2M0 DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 0000 0000 60, 189
CCPR3H
CCPR3L
CCP3CON P3M1 P3M0 DC3B1 DC3B0 CCP3M3 CCP3M2 CCP3M1 CCP3M0 0000 0000 60, 189
ECCP1AS ECCP1ASE ECCP1AS2 ECCP1AS1 ECCP1AS0 PSS1AC1 PSS1AC0 PSS1BD1 PSS1BD0 0000 0000 60, 201
CVRCON CVREN CVROE CVRR CVRSS CVR3 CVR2 CVR1 CVR0 0000 0000 60, 341
CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0111 60, 335
TMR3H
TMR3L
图注: x = 未知, u = 不变, - = 未用 (读为 0), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer0 寄存器的高字节
Timer0 寄存器的低字节
ADMSK3
(3)
— SCS1 SCS0 0--- q-00 60, 43
— — 0000 00-- 60, 211
TMR1CS TMR1ON 0000 0000 60, 167
(4)
ADMSK2
(4)
ADMSK1
(4)
SEN
— — —O S T S
— — — — — — —S W D T E N--- ---0 60, 353
— —R ITO PD POR BOR 0--1 1100 60, 54, 133
Timer1 寄存器的高字节
Timer1 寄存器的低字节
Timer2 寄存器
Timer2 周期寄存器
— T2OUTPS3 T2OUTPS2 T2OUTPS1 T2OUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 60, 173
MSSP1 接收缓冲区 / 发送寄存器
MSSP1 地址寄存器 ( I
GCEN
A/D 结果寄存器的高字节
A/D 结果寄存器的低字节
— — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0 --00 0000 60, 326
捕捉 / 比较 /PWM 寄存器 1 的高字节
捕捉 / 比较 /PWM 寄存器 1 的低字节
捕捉 / 比较 /PWM 寄存器 2 的高字节
捕捉 / 比较 /PWM 寄存器 2 的低字节
捕捉 / 比较 /PWM 寄存器 3 的高字节
捕捉 / 比较 /PWM 寄存器 3 的低字节
Timer3 寄存器的高字节
Timer3 寄存器的低字节
2
C™ 从动模式), MSSP1 波特率重载寄存器 (I 2C 主控模式)
PSR / WUA BF 0000 0000 60, 256,
ACKSTAT ADMSK5
— CHS3 CHS2 CHS1 CHS0 GO/DONE ADON 0-00 0000 60, 325
— ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0 0-00 0000 60, 327
2
C™ 从动模式下时,这些位的其他名称和定义。
(4)
ADMSK4
(4)
POR/BOR
时的值
0000 0000 60, 163
xxxx xxxx 60, 163
xxxx xxxx 60, 167
xxxx xxxx 60, 167
0000 0000 60, 173
1111 1111 60, 173
xxxx xxxx 60, 265
0000 0000 60, 265
xxxx xxxx 60, 333
xxxx xxxx 60, 333
xxxx xxxx 60, 185
xxxx xxxx 60, 185
xxxx xxxx 60, 185
xxxx xxxx 60, 185
xxxx xxxx 60, 185
xxxx xxxx 60, 185
xxxx xxxx 60, 175
xxxx xxxx 60, 175
详情请见
(页):
266
267
DS39762A_CN 第 82 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列) (续)
寄存器名称
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR/BOR
时的值
T3CON RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 T3SYNC TMR3CS TMR3ON 0000 0000 60, 175
PSPCON
SPBRG1
RCREG1
TXREG1
(5)
IBF OBF IBOV PSPMODE — — — — 0000 ---- 61, 161
EUSART1 波特率发生器寄存器的低字节
EUSART1 接收寄存器
EUSART1 发送寄存器
0000 0000 61, 306
0000 0000 61, 313
xxxx xxxx 61, 315
TXSTA1 CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 61, 306
RCSTA1 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 61, 306
EECON2
EECON1
IPR3 SSP2IP
PIR3 SSP2IF
PIE3 SSP2IE
IPR2 OSCFIP CMIP ETHIP r BCL1IP
PIR2 OSCFIF CMIF ETHIF r BCL1IF
PIE2 OSCFIE CMIE ETHIE r BCL1IE
IPR1 PSPIP
PIR1 PSPIF
PIE1 PSPIE
MEMCON
OSCTUNE PPST1 PLLEN
TRISJ
TRISH
TRISG TRISG7
数据存储器控制寄存器 (不是实际存在的寄存器)
— — — FREE WRERR WREN WR — ---0 x00- 61, 97
(5)
(5)
(5)
(9)
(9)
(9)
(5.7)
EBDIS —W A I T 1W A I T 0— —W M 1W M 00-00 --00 61, 106
(6)
(6)
TRISJ7
TRISH7
(5)
(6)
(5)
(5)
BCL2IP
BCL2IF
BCL2IE
RC2IP
(5)
RC2IF
(5)
RC2IE
ADIP RC1IP TX1IP SSP1IP CCP1IP TMR2IP TMR1IP 1111 1111 61, 130
ADIF RC1IF TX1IF SSP1IF CCP1IF TMR2IF TMR1IF 0000 0000 61, 124
ADIE RC1IE TX1IE SSP1IE CCP1IE TMR2IE TMR1IE 0000 0000 61, 127
(8)
PPST0 PPRE — — — — 0000 ---- 61, 41
(5)
TRISJ6
TRISH6
TRISG6
TRISJ5
(6)
TRISH5
(5)
TRISG5
(6)
TX2IP
(6)
TX2IF
(6)
TX2IE
(5)
TRISJ4
(6)
TRISH4
(5)
TRISG4 TRISG3
(6)
TMR4IP CCP5IP CCP4IP CCP3IP 1111 1111 61, 132
(6)
TMR4IF CCP5IF CCP4IF CCP3IF 0000 0000 61, 126
(6)
TMR4IE CCP5IE CCP4IE CCP3IE 0000 0000 61, 129
— TMR3IP CCP2IP 1111 1-11 61, 131
— TMR3IF CCP2IF 0000 0-00 61, 125
— TMR3IE CCP2IE 0000 0-00 61, 128
(5)
(6)
TRISJ3
TRISH3
(5)
(6)
(6)
TRISJ2
TRISH2
TRISG2
(5)
(6)
(6)
TRISJ1
TRISH1
TRISG1
(5)
TRISJ0
(6)
TRISH0
(6)
TRISG0
TRISF TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0
TRISE TRISE7
TRISD TRISD7
(6)
(5)
TRISE6
TRISD6
(6)
TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0 1111 1111 61, 150
(5)
TRISD5
(5)
TRISD4
(5)
TRISD3
(5)
TRISD2 TRISD1 TRISD0 1111 1111 61, 147
---- ---- 61, 96
(5)
1111 1111 61, 159
(6)
1111 1111 61, 157
(6)
1111 1111 61, 155
(5)
1111 1111 61, 152
TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 61, 143
TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 61, 140
TRISA
(6)
LATJ
(6)
LATH
LATG LATG7
LATF LATF7 LATF6 LATF5 LATF4 LATF3 LATF2 LATF1 LATF0
LATE LATE7
LATD LATD7
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 61, 137
LATJ7
LATH7
(5)
(6)
(5)
(6)
(5)
LATJ6
LATH6
LATG6
LATE6
LATD6
(5)
(6)
(5)
(6)
(5)
LATJ5
LATH5
LATG5
(6)
(6)
(5)
(6)
LATJ4
LATH4
LATJ3
(6)
LATH3
LATG4 LATG3
(5)
(6)
(6)
LATJ2
LATH2
LATG2
(5)
(6)
(6)
LATJ1
LATH1
LATG1
(5)
(6)
(6)
LATJ0
LATH0
LATG0
(5)
xxxx xxxx 61, 159
(6)
xxxx xxxx 61, 157
(6)
xxxx xxxx 62, 155
(5)
xxxx xxxx 62, 152
LAT E5 LAT E4 L ATE3 L ATE2 L ATE1 L ATE0 xxxx xxxx 62, 150
LATD5
(5)
LATD4
(5)
LATD3
(5)
LATD2 LATD1 LATD0 xxxx xxxx 62, 147
LATC LATC7 LATC6 LATC5 LATC4 LATC3 LATC2 LATC1 LATC0 xxxx xxxx 62, 143
LATB LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 xxxx xxxx 62, 140
LATA RDP U RE PU LATA5 LATA 4 L ATA3 L ATA2 L ATA1 LATA0 00xx xxxx 62, 137
(6)
PORTJ
(6)
PORTH
PORTG RG7
RJ7
RH7
(5)
(6)
(5)
RJ6
RH6
RG6
(5)
(6)
(5)
RJ5
RH5
RG5
(6)
(6)
(5)
(6)
RJ4
(6)
RH4
RG4 RG3
RJ3
RH3
(5)
(6)
(6)
RJ2
RH2
RG2
(5)
(6)
(6)
RJ1
RH1
RG1
(5)
(6)
(6)
RJ0
RH0
RG0
(5)
xxxx xxxx 62, 159
(6)
0000 xxxx 62, 157
(6)
111x xxxx 62, 155
图注: x = 未知, u = 不变, - = 未用 (读为 0 ), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
2
C™ 从动模式下时,这些位的其他名称和定义。
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
详情请见
(页):
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 83 页
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列) (续)
寄存器名称
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTF RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0
PORTE RE7
PORTD RD7
(6)
(5)
RE6
RD6
(6)
(5)
RE5 RE4 RE3 RE2 RE1 RE0 xxxx xxxx 62, 150
RD5
(5)
RD4
(5)
RD3
(5)
RD2 RD1 RD0 xxxx xxxx 62, 147
POR/BOR
时的值
(5)
0000 0000 62, 152
PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx 62, 143
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 62, 140
PORTA RJPU
SPBRGH1
BAUDCON1 ABDOVF RCIDL RXDTP TXCKP BRG16
SPBRGH2
BAUDCON2 ABDOVF RCIDL RXDTP TXCKP BRG16
ERDPTH
ERDPTL
(6)
— RA5 RA4 RA3 RA2 RA1 RA0 0-0x 0000 62, 137
EUSART1 波特率发生器寄存器的高字节
EUSART2 波特率发生器寄存器的高字节
— — —
缓冲区读指针的低字节
缓冲区读指针的高字节
0000 0000 62, 306
— WUE ABDEN 0100 0-00 62, 304
0000 0000 62, 306
— WUE ABDEN 0100 0-00 62, 304
---0 0101 62, 209
1111 1010 62, 209
ECCP1DEL P1RSEN P1DC6 P1DC5 P1DC4 P1DC3 P1DC2 P1DC1 P1DC0 0000 0000 62, 200
TMR4
PR4
T4CON
CCPR4H
CCPR4L
CCP4CON
CCPR5H
CCPR5L
CCP5CON
SPBRG2
RCREG2
TXREG2
Timer4 寄存器
Timer4 周期寄存器
— T4OUTPS3 T4OUTPS2 T4OUTPS1 T4OUTPS0 TMR4ON T4CKPS1 T4CKPS0 -000 0000 62, 179
捕捉 / 比较 /PWM 寄存器 4 的高字节
捕捉 / 比较 /PWM 寄存器 4 的低字节
— — DC4B1 DC4B0 CCP4M3 CCP4M2 CCP4M1 CCP4M0 --00 0000 63, 181
捕捉 / 比较 /PWM 寄存器 5 的高字节
捕捉 / 比较 /PWM 寄存器 5 的低字节
— — DC5B1 DC5B0 CCP5M3 CCP5M2 CCP5M1 CCP5M0 --00 0000 63, 181
EUSART2 波特率发生器寄存器的低字节
EUSART2 接收寄存器
EUSART2 发送寄存器
0000 0000 62, 179
1111 1111 62, 179
xxxx xxxx 62, 185
xxxx xxxx 62, 185
xxxx xxxx 63, 185
xxxx xxxx 63, 185
0000 0000 63, 306
0000 0000 63, 313
0000 0000 63, 315
TXSTA2 CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 63, 302
RCSTA2 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 63, 303
ECCP3AS ECCP3ASE ECCP3AS2 ECCP3AS1 ECCP3AS0 PSS3AC1 PSS3AC0 PSS3BD1 PSS3BD0 0000 0000 63, 201
ECCP3DEL P3RSEN P3DC6 P3DC5 P3DC4 P3DC3 P3DC2 P3DC1 P3DC0 0000 0000 63, 200
ECCP2AS ECCP2ASE ECCP2AS2 ECCP2AS1 ECCP2AS0 PSS2AC1 PSS2AC0 PSS2BD1 PSS2BD0 0000 0000 63, 201
ECCP2DEL P2RSEN P2DC6 P2DC5 P2DC4 P2DC3 P2DC2 P2DC1 P2DC0 0000 0000 63, 200
SSP2BUF
SSP2ADD
MSSP2 接收缓冲区 / 发送寄存器
MSSP2 地址寄存器 ( I
2
C™ 从动模式), MSSP2 波特率重载寄存器 (I 2C 主控模式)
SSP2STAT SMP CKE D/A
PSR / WUA BF 0000 0000 63, 256
xxxx xxxx 63, 265
0000 0000 63, 265
SSP2CON1 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 63, 257,
SSP2CON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000 63, 268
EDATA
EIR
GCEN
以太网发送 / 接收缓冲区寄存器 ( EDATA<7:0>)
— PKTIF DMAIF LINKIF TXIF — TXERIF RXERIF -000 0-00 63, 227
ACKSTAT ADMSK5
ECON2 AUTOINC PKTDEC ETHEN
(4)
ADMSK4
(4)
ADMSK3
(4)
ADMSK2
(4)
ADMSK1
(4)
SEN
xxxx xxxx 63, 211
— — — — — 100- ---- 63, 212
图注: x = 未知, u = 不变, - = 未用 (读为 0), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
2
C™ 从动模式下时,这些位的其他名称和定义。
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
详情请见
(页):
267
DS39762A_CN 第 84 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列) (续)
寄存器名称
ESTAT —B U F E R—L A T E C O L— RXBUSY TXABRT PHYRDY -0-0 -000 63, 212
EIE
EDMACSH
EDMACSL
EDMADSTH
EDMADSTL
EDMANDH
EDMANDL
EDMASTH
EDMASTL
ERXWRPTH
ERXWRPTL
ERXRDPTH
ERXRDPTL
ERXNDH
ERXNDL
ERXSTH
ERXSTL
ETXNDH
ETXNDL
ETXSTH
ETXSTL
EWRPTH
EWRPTL
EPKTCNT
ERXFCON UCEN ANDOR CRCEN PMEN MPEN HTEN MCEN BCEN 1010 0001 64, 246
EPMOH
EPMOL
EPMCSH
EPMCSL
EPMM7
EPMM6
EPMM5
EPMM4
EPMM3
EPMM2
EPMM1
EPMM0
EHT7
EHT6
EHT5
图注: x = 未知, u = 不变, - = 未用 (读为 0 ), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
— PKTIE DMAIE LINKIE TXIE —T X E R I ER X E R I E-000 0-00 63, 226
DMA 校验和寄存器的高字节
DMA 校验和寄存器的低字节
— — —
DMA 目标寄存器的低字节
— — —
DMA 结束寄存器的低字节
— — —
DMA 开始寄存器的低字节
— — —
接收缓冲区写指针的低字节
— — —
接收缓冲区读指针的低字节
— — —
接收结束寄存器的低字节
— — —
接收开始寄存器的低字节
— — —
发送结束寄存器的低字节
— — —
发送开始寄存器的低字节
— — —
缓冲区写指针的低字节
以太网数据包计数寄存器
— — —
模式匹配偏移寄存器的低字节
模式匹配校验和寄存器的高字节
模式匹配校验和寄存器的低字节
模式匹配屏蔽寄存器的字节 7
模式匹配屏蔽寄存器的字节 6
模式匹配屏蔽寄存器的字节 5
模式匹配屏蔽寄存器的字节 4
模式匹配屏蔽寄存器的字节 3
模式匹配屏蔽寄存器的字节 2
模式匹配屏蔽寄存器的字节 1
模式匹配屏蔽寄存器的字节 0
哈希表寄存器的字节 7
哈希表寄存器的字节 6
哈希表寄存器的字节 5
2
C™ 从动模式下时,这些位的其他名称和定义。
DMA 目标寄存器的高字节
DMA 结束寄存器的高字节
DMA 开始寄存器的高字节
接收缓冲区写指针的高字节
接收缓冲区读指针的高字节
接收结束寄存器的高字节
接收开始寄存器的高字节
发送结束寄存器的高字节
发送开始寄存器的高字节
缓冲区写指针的高字节
模式匹配偏移寄存器的高字节
POR/BOR
时的值
0000 0000 63, 253
0000 0000 63, 253
---0 0000 63, 253
0000 0000 63, 253
---0 0000 63, 253
0000 0000 63, 253
---0 0000 63, 253
0000 0000 63, 253
---0 0000 63, 241
0000 0000 63, 241
---0 0101 63, 241
1111 1010 63, 241
---1 1111 63, 241
1111 1111 63, 241
---0 0101 63, 241
1111 1010 63, 241
---0 0000 64, 241
0000 0000 64, 241
---0 0000 64, 241
0000 0000 64, 241
---0 0000 64, 209
0000 0000 64, 209
0000 0000 64, 241
---0 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 249
0000 0000 64, 245
0000 0000 64, 245
详情请见
(页):
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 85 页
PIC18F97J60 系列
表 5-5 : 寄存器文件汇总 (PIC18F97J60 系列) (续)
寄存器名称
EHT4
EHT3
EHT2
EHT1
EHT0
MIRDH
MIRDL
MIWRH
MIWRL
MIREGADR
MICMD
MICON RSTMII
MAMXFLH
MAMXFLL
MACLCON2
MACLCON1
MAIPGH
MAIPGL
MABBIPG
MACON4
MACON3 PADCFG2 PADCFG1 PADCFG0 TXCRCEN PHDRLEN HFRMEN FRMLNEN FULDPX 0000 0000 65, 214
MACON1
EPAUSH
EPAUSL
EFLOCON
MISTAT
MAADR2
MAADR1
MAADR4
MAADR3
MAADR6
MAADR5
图注: x = 未知, u = 不变, - = 未用 (读为 0), q = 值取决于具体条件, r = 保留位 (不能修改)。阴影单元未实现,读为 0。
注 1 : 通过用户软件或 POR 清零 bit 7 和 bit 6 。
2: PC 的 bit 21 仅在串行编程模式下可用。
3: 使能双速启动时复位值为 0,禁止双速启动时复位值为 1。
4: 当 MSSP 模块工作在 I
5: 这些位和 / 或寄存器仅在 100 引脚器件上可用;在其他器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
6: 这些位和 / 或寄存器仅在 80 引脚和 100 引脚器件上可用;在 64 引脚器件上,它们未实现并读为 0。所示为 100 引脚器件的复位值。
7: 在单片机模式下,此寄存器中的位不可写且读为 0。
8: 仅当选定了 ECPLL 或 HSPLL 振荡器模式时, PLLEN 位可用;否则,该位读为 0。
9: 仅在单片机模式下的 100 引脚器件上实现。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
哈希表寄存器的字节 4
哈希表寄存器的字节 3
哈希表寄存器的字节 2
哈希表寄存器的字节 1
哈希表寄存器的字节 0
MII 读数据寄存器的高字节
MII 读数据寄存器的低字节
MII 写数据寄存器的高字节
MII 写数据寄存器的低字节
— — —
— — — — — — MIISCAN MIIRD ---- --00 64, 216
— — — — — — — 0--- ---- 64, 215
最大帧长寄存器的高字节
最大帧长寄存器的低字节
— —
— — — —
—
非背对背包间间隔寄存器的高字节
—
非背对背包间间隔寄存器的低字节
—
背对背包间间隔发送寄存器
— DEFER BPEN NOBKOFF — —r r-000 --00 65, 215
— — — r TXPAUS RXPAUS PASSALL MARXEN ---0 0000 65, 213
暂停定时器值寄存器的高字节
暂停定时器值寄存器的低字节
— — — — — FULDPXS FCEN1 FCEN0 ---- -000 65, 244
— — — — r NVALID SCAN BUSY ---- 0000 65, 216
MAC 地址寄存器的字节 2 ( MAADR<39:32>), OUI 字节 2
MAC 地址寄存器的字节 1 ( MAADR<47:40>), OUI 字节 1
MAC 地址寄存器的字节 4 ( MAADR<23:16>)
MAC 地址寄存器的字节 3 ( MAADR<31:24>), OUI 字节 3
MAC 地址寄存器的字节 6 ( MAADR<7:0>)
MAC 地址寄存器的字节 5 ( MAADR<15:8>)
2
冲突窗口寄存器
C™ 从动模式下时,这些位的其他名称和定义。
MII 地址寄存器
重发最大数寄存器
POR/BOR
时的值
0000 0000 64, 245
0000 0000 64, 245
0000 0000 64, 245
0000 0000 64, 245
0000 0000 64, 245
0000 0000 64, 217
0000 0000 64, 217
0000 0000 64, 217
0000 0000 64, 217
---0 0000 64, 217
0000 0110 64, 241
0000 0000 64, 241
--11 0111 64, 241
---- 1111 64, 241
-000 0000 65, 241
-000 0000 65, 241
-000 0000 65, 232
0001 0000 65, 244
0000 0000 65, 244
0000 0000 65, 231
0000 0000 65, 231
0000 0000 65, 231
0000 0000 65, 231
0000 0000 65, 231
0000 0000 65, 231
详情请见
(页):
DS39762A_CN 第 86 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.3.6 STATUS 寄存器
如寄存器 5-3 所示,STATUS 寄存器包含 ALU 的算术运
算状态。STATUS 寄存器与任何其他寄存器一样,可以
作为任何指令的操作数。如果一条影响 Z 、DC、C、OV
或 N 位的指令以 STATUS 寄存器作为目标寄存器,则
会禁止对这 5 位进行写操作。
这些位根据器件逻辑来置 1 或清零。因此,当执行一条
把 STATUS 寄存器作为目标寄存器的指令后,运行结果
可能会与预想的不同。例如, CLRF STATUS 会将 Z 位
置 1 ,而保留其余位不变。然后读 STATUS 寄存器将得
到“000u u1uu” 。因此,建议仅使用 BCF 、 BSF、
SWAPF 、MOVFF 和 MOVWF 指令来改变 STATUS 寄存器,
因为这些指令不会影响STATUS寄存器中的Z 、C、DC、
OV 或 N 位。
关于其他不会影响状态位的指令,请参见表 25-2 和表 25-3
中的指令集汇总。
注: 在减法运算中,C 和 DC 位分别作为借位位
和半借位
位。
寄存器 5-3 : STATUS 寄存器
U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x
— — —NO VZD C
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
bit 7-5
bit 4
bit 3
bit 2
bit 1
bit 0
未用:读为 0
N :负标志位
此位用于有符号的算术运算 (2 进制补码)。它可以表示结果是否为负 (ALU MSb = 1 )。
1 = 结果为负
0 = 结果为正
OV :溢出标志位
此位用于有符号的算术运算 (2 进制补码)。表明运算结果溢出了 7 位二进制数的范围,溢出导致符
号位 (bit 7 )发生改变。
1 = 有符号算术运算中发生溢出 (本次运算)
0 = 未发生溢出
Z:全零标志位
1 = 算术运算或逻辑运算的结果为零
0 = 算术运算或逻辑运算的结果不为零
位
(2)
位
(1)
DC:半进位 / 借位
用于 ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令:
1 = 结果的第 4 个低位发生了进位
0 = 结果的第 4 个低位未发生进位
C :进位 / 借位
用于 ADDWF 、 ADDLW 、 SUBLW 和 SUBWF 指令:
1 = 结果中最高位发生了进位
0 = 结果中最高位未发生进位
(1)
(2)
C
注 1 : 对于借位
RLF ),此位来自源寄存器的 bit 4 或 bit 3 。
2 : 对于借位
RLF ),此位来自源寄存器的最高位或最低位。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 87 页
,极性是相反的。减法是通过加上第二个操作数的 2 进制补码来执行的。对于移位指令 (RRF 和
,极性是相反的。减法是通过加上第二个操作数的 2 进制补码来执行的。对于移位指令 (RRF 和
PIC18F97J60 系列
5.4 数据寻址模式
注: 当使能 PIC18 扩展指令集时, PIC18 内核
指令集中某些指令的执行方式会发生改
变。更多信息,请参见第 5.6 节“数据存储
器和扩展指令集”。
程序存储器只能用一种方式寻址 (通过程序计数器),
而数据存储器空间可用多种方式寻址。大部分指令的寻
址模式都是固定的。其他指令可能使用最多三种模式,
根据它们所使用的操作数和是否使能了扩展指令集而
定。
这些寻址模式为:
• 固有寻址
• 立即数寻址
• 直接寻址
• 间接寻址
当使能了扩展指令集时 (XINST 配置位 = 1 ),还可使
用另外一种寻址模式,即立即数变址寻址模式。第 5.6.1
节“使用立即数偏移量进行变址寻址”将更详细讨论它
的操作。
5.4.1 固有和立即数寻址
很多 PIC18 控制指令根本不需要任何参数。执行这些指
令要么对整个器件造成影响,要么仅针对一个寄存器进
行操作。此寻址模式就是固有寻址。例如指令 SLEEP 、
RESET 和 DAW 。
其他指令的工作方式与此类似,但需要操作码中有其他
的参数。由于需要一些立即数作为参数,这种寻址模式
被称为立即数寻址。例如 ADDLW 和 MOVLW ,它们分别
向 W 寄存器添加或移入立即数值。其他立即数寻址指
令,例如 CALL 和 GOTO ,它们包括 20 位的程序存储器
地址。
5.4.2 直接寻址
直接寻址方式在操作码中指定操作的全部或部分源地址
和 / 或目标地址。此选项由指令附带的参数指定。
在 PIC18 内核指令集中,针对位和针对字节的指令默认
情况下使用直接寻址模式。所有这些指令都包含某个 8
位的直接地址作为它们的最低有效字节。此地址指定数
据 RAM 的某个存储区中寄存器的地址(第 5.3.3 节“ 通
用寄存器文件”)或快速操作存储区 (第 5.3.2 节“快
速操作存储区”)中作为指令数据源的单元地址。
快速操作 RAM 位“a”决定地址的解析方式。当 “a”
为 1 时, BSR (第 5.3.1 节 “存储区选择寄存器”)的
内容将和指令中的直接地址一起用于确定寄存器的完整
12 位地址。当“a ”为 0 时,此直接地址将被解析为快
速操作存储区中的一个寄存器。使用快速操作 RAM 的
寻址模式有时也被称为直接强制寻址模式。
有几个指令,例如 MOVFF ,在操作码中包含完整的 12
位地址(源地址或目标地址)。在这些情况下,BSR 被
完全忽略。
操作目标地址由目标位 “d”确定。当 “d”为 1 时,
结果被存回源寄存器并覆盖原来的内容。当 “d”为 0
时,结果被存储在 W 寄存器中。没有 “d ”参数的指令
的目标地址是隐含的,它们是正在操作的目标寄存器或
W 寄存器。
5.4.3 间接寻址
间接寻址模式允许用户访问数据存储器中的单元而无需
在指令中给出一个固定的地址。这种寻址方式是通过使
用文件选择寄存器 (File Select Register , FSR )作为
指向被读写单元的指针实现的。由于 FSR 本身作为特殊
功能寄存器位于 RAM 中,因此也可在程序中直接控制
它们。这使得 FSR 对于在数据存储器中实现诸如表和数
组等数据结构时非常有用。
也可以使用间接文件操作数 (Indirect File Operand ,
INDF )进行间接寻址。这种操作允许自动递增、递减或
偏移指针,从而自动控制指针的值。它通过使用循环提
高代码执行效率,如例 5-5 所示的清零整个 RAM 存储
区的操作。它还允许用户在数据存储器中执行变址寻址
和其他针对程序存储器堆栈指针的操作。
例 5-5 : 使用间接寻址清零 RAM
(BANK 1 )
LFSR FSR0, 100h ;
NEXT CLRF POSTINC0 ; Clear INDF
; register then
; inc pointer
BTFSS FSR0H, 1 ; All done with
; Bank1?
BRA NEXT ; NO, clear next
CONTINUE ; YES, continue
DS39762A_CN 第 88 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.4.3.1 FSR 寄存器和 INDF 操作数
间接寻址的核心是三组寄存器 :FSR0、FSR1和FSR2。
每组寄存器都含有一对 8 位寄存器 :FSRnH 和FSRnL。
FSRnH 寄存器的高 4 位未使用,因此每对 FSR 只保存
一个 12 位值,从而可以线性寻址数据存储器的整个空
间。因此, FSR 寄存器对被用作数据存储器的地址指
针。
间接寻址是通过一组间接文件操作数(INDF0 到INDF2 )
完成的。这些操作数可被看作 “虚拟”寄存器:它们被
映射到 SFR 空间而不是通过物理方式实现的。对特定的
图 5-9 : 间接寻址
使用带有一个间接寻址寄存器作为
操作数的指令 ....
... 使用存储在与该寄存器相关联的
一对 FSR 中的 12 位地址 ....
xxxx1111 11001100
... 确定将在该操作中使用的数据存
储器单元。
在本例中,FSR1 寄存器对中的值为
FCCh 。这意味着将把 FCCh 单元的
内容与 W 寄存器的内容相加,并将
结果存回 FCCh 单元中。
ADDWF INDF1, 1
FSR1H:FSR1L
INDF 寄存器执行读或写操作实际上访问的是与之对应
的一对 FSR 寄 存器。例 如,读 INDF1 就是读
FSR1H:FSR1L 指向单元中的数据。使用 INDF 寄存器作
为操作数的指令实际上使用的是相应的 FSR 的内容,该
内容为指向目标地址的指针。INDF 操作数只是使用该指
针的一种简便方法。
由于间接寻址使用完整的 12 位地址,因此没有必要进
行数据 RAM 分区。所以 BSR 的当前内容和快速操作
RAM 位对于确定目标地址没有影响。
000h
Bank 0
100h
Bank 1
200h
300h
0 7
7
0
E00h
F00h
FFFh
Bank 2
Bank 3
Bank 13
Bank 14
Bank 15
数据存储器
到
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 89 页
PIC18F97J60 系列
5.4.3.2 FSR 寄存器和 POSTINC、
POSTDEC、 PREINC 以及 PLUSW
除了 INDF 操作数之外,每对 FSR 寄存器还有 4 个额外
的间接操作数。和 INDF 一样,它们也都是不能直接读
写的 “虚拟”寄存器。访问这些寄存器实际上访问的是
与之相关的一对 FSR 寄存器,并对其所存储的数值进行
特定的操作。这些寄存器是:
•POSTDEC:访问 FSR 的值,然后将它自动减 1
•POSTINC:访问 FSR 的值,然后将它自动加 1
• PREINC :将 FSR 的值加 1 ,然后在操作中使用该值
•PLUSW:将 W 寄存器中有符号的值 (-128 到
127)与 FSR 寄存器中的值相加,并在操作中使
用得到的新值
在本文中使用 FSR 寄存器中的值 (不会更改此值)访
问 INDF 寄存器。同样,访问 PLUSW 寄存器是将 W 寄
存器中的值作为 FSR 的偏移量。该操作不会改变这两个
寄存器中的值,而访问其他虚拟寄存器均会更改 FSR 寄
存器的值。
使用 POSTDEC 、 POSTINC 和 PREINC 对 FSR 进行
操作会影响整对寄存器:即, FSRnL 寄存器从 FFh 到
00h 溢出并向 FSRnH 寄存器进位。但这些操作的结果
不会更改状态寄存器中的标志位(如 Z 、N 和 OV 等)。
PLUSW 寄存器可用于在数据存储器空间实现变址寻
址。通过控制 W 寄存器中的值,用户可以访问相对当前
指针地址有固定偏移量的地址单元。在某些应用中,该
功能可被用于在数据存储器内部实现某些强大的程序控
制结构,如软件堆栈。
5.4.3.3 通过 FSR 对其他 FSR 进行操作
在某些特殊情况下,间接寻址操作以其他 FSR 或虚拟寄
存器作为目标。例如,使用 FSR 指向一个虚拟寄存器会
导致操作不成功。假设如下特殊情况 :FSR0H:FSR0L
对保存的是 INDF1 的地址 FE7h 。尝 试 使用 INDF0 作为
操作数读取 INDF1 的值,将返回 00h 。尝试 使用 INDF0
作为操作数写入 INDF1 ,将会导致执行一条 NOP 指令。
另一方面,使用虚拟寄存器对一对 FSR 寄存器进行写操
作可能会产生与预期不同的结果。在这些情况下,会将
值写入一对 FSR 寄存器,但 FSR 不会递增或递减。因
此,写入 INDF2 或 POSTDEC2 时会把同样的值写入
FSR2H:FSR2L 对。
由于 FSR 是映射到 SFR 空间中的物理寄存器,所以可
以通过直接寻址来控制它们。用户在使用这些寄存器时
应该特别小心,尤其是在代码使用间接寻址的方式时。
同样,通常允许通过间接寻址对所有其他 SFR 进行操
作。用户在进行此类操作时应该特别小心,以免不小心
更改设置从而影响器件操作。
5.5 程序存储器和扩展指令集
程序存储器的操作不受扩展指令集的影响。
使能扩展指令集会将 5 条额外的双字命令添加到现有的
PIC18 指令集中:即 ADDFSR 、 CALLW、MOVS F 、MOVSS
和 SUBFSR 。这些指令如第 5.2.4 节 “双字指令”中所
述执行。
5.6 数据存储器和扩展指令集
使能 PIC18 扩展指令集 (XINST 配置位 = 1 )显著改变
了数据存储器及其寻址的某些方面。特别是许多 PIC18
内核指令使用快速操作存储区的方式有所不同。这是由
于扩展指令集引入了对数据存储器空间的新的寻址模
式。该模式还会更改使用 FSR2 及其相关操作数进行间
接寻址的方式。
同样需要了解哪些部分保持不变。数据存储器空间的大
小及其线性寻址方式都不会改变。 SFR 映射也保持不
变。PIC18 内核指令也仍然以直接和间接寻址模式进行
操作;固有和立即数指令操作照旧。 FSR0 和 FSR1 的
间接寻址方式也保持不变。
DS39762A_CN 第 90 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
5.6.1 使用立即数偏移量进行变址寻址
使能 PIC18 扩展指令集将更改使用 FSR2 寄存器对及其
相关文件操作数进行间接寻址的方式。在适当的条件
下,使用快速操作存储区的指令(即绝大多数针对位和
针对字节的指令)可以利用指令中的偏移量来执行变址
寻址。这种特定的寻址模式被称为使用立即数偏移量的
变址寻址或立即数变址寻址模式。
使用扩展指令集时,这种寻址模式有如下要求:
• 强制使用快速操作存储区 ( a = 0);且
• 文件地址参数要小于或等于 5Fh。
在这些条件下,指令的文件地址不会被解析为地址的低
字节 (在直接寻址中和 BSR 一起使用),或快速操作
存储区中的 8 位地址,而是被解析为由 FSR2 指定的地
址指针的偏移量。将该偏移量与 FSR2 的内容相加以获
取操作的目标地址。
5.6.2 受立即数变址寻址模式影响的指令
任何采用直接寻址模式的 PIC18 内核指令均会受到立即
数变址寻址模式的潜在影响,包括所有针对字节和针对
位的指令,或标准 PIC18 指令集中几乎一半的指令。只
有使用固有或立即数寻址模式的指令不受影响。
此外,如果针对字节和针对位的指令使用快速操作存储
区 (快速操作 RAM 位为 1 )或包含 60h 以上的文件地
址,它们也不受影响。符合这些条件的指令会像以前一
样执行。图 5-10 显示了当使能扩展指令集时,各种寻址
模式之间的对比。
那些想要在立即数变址寻址模式中使用针对位或针对字
节的指令的用户,应该注意此模式下汇编语法的改变。
在第 25.2.1 节 “扩展指令的语法”中对此进行了更详
细的说明。
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 91 页
PIC18F97J60 系列
图 5-10 : 针对位和针对字节的指令的寻址方式对比 (使能了扩展指令集)
示例指令 : ADDWF f, d, a(操作码 :0010 01da ffff ffff)
当 a = 0 且 f ≥ 60h 时:
此指令以直接强制模式执行。
“f ”被解析为快速操作 RAM 中
060h 到 FFFh 之间的单元地
址,该地址也是数据存储器的
F60h 到 FFFh (Bank 15 )。
不可用此模式寻址地址低于
060h 的单元。
当 a = 0 且 f ≤ 5Fh 时:
此指令以立即数变址寻址模式
执行。“f ”被解析为 FSR2 中地
址值的偏移量。将这两个值相
加可以得到指令的目标寄存器
的地址。此地址可以在数据存
储器空间的任何地方。
注意在此模式中,正确的语法
如下:
ADDWF [k], d
其中 “ k”就是 “ f”。
000h
060h
100h
F00h
F40h
FFFh
000h
060h
100h
F00h
F40h
FFFh
Bank 0
Bank 1
到
Bank 14
Bank 15
SFR
数据存储器
Bank 0
Bank 1
到
Bank 14
Bank 15
SFR
数据存储器
00h
60h
快速操作 RAM
FSR2H FSR2L
FFh
FFFFFFFF 001001DA
“f ”的
有效范围
BSR
00000000
FFFFFFFF 001001DA
1(f 可为任何值)时:
当 a =
指令以直接寻址模式 (也称为
直接长地址寻址模式)执行。
“f ”被解析为数据存储器空间
的16 个存储区中的一个单元地
址。存储区由存储区选择寄存
器(BSR)指定。此地址可以
在数据存储器空间的任何地
000h
060h
100h
Bank 0
Bank 1
到
Bank 14
方。
F00h
F40h
FFFh
DS39762A_CN 第 92 页 超前信息 2006 Microchip Technology Inc.
Bank 15
SFR
数据存储器
PIC18F97J60 系列
5.6.3 在立即数变址模式中映射快速操作存
储区
使用立即数变址寻址模式能有效改变快速操作 RAM 低
地址单元(00h 到 5Fh )的映射方式。此模式映射 Bank 0
的内容和由用户定义的、可位于数据存储器空间中任何
地方的 “窗口”内容,而不仅仅映射 Bank 0 底部的内
容。 FSR2 的值定义映射到窗口的地址的下边界,而上
边界则由 FSR2 加 95 (5Fh )决定。地址为 5Fh 以上
的快速操作 RAM 的映射方法如前所述 (见第 5.3.2 节
“快速操作存储区”)。图 5-11 显示了在此寻址模式下
重新映射的快速操作存储区示例。
图 5-11 : 使用立即数变址寻址模式重新映射快速操作存储区
示例 :
ADDWF f, d, a
FSR2H:FSR2L = 120h
从 FSR2 指针 ( 120h)到
FSR2指针加 05Fh(17Fh)
区域内的存储单元被映射
到快速操作 RAM 的底部
(000h-05Fh )。
从 F60h 到 FFFh 的特殊功
能寄存器被映射到 60h 到
FFh,和常规寻址一样。
Bank 0 中低于 5Fh 的地址
在该模式下不可用。它们
仍可通过 BSR 寻址。
000h
05Fh
100h
120h
17Fh
200h
F00h
F60h
FFFh
不能访问
Bank 0
窗口
Bank 1
Bank 2
到
Bank 14
Bank 15
SFR
数据存储器
快速操作存储区的重新映射
式。使用 BSR (快速操作 RAM 位为 1 )的操作和以前
一样继续使用直接寻址模式。任何明确使用间接文件操
作数 (包括 FSR2 )的间接或变址操作都将像标准间接
寻址一样操作。任何使用快速操作存储区的指令(包含
大于 05Fh 的寄存器地址)都将使用直接寻址和常规的
快速操作存储区映射。
5.6.4 立即数变址模式中的 BSR
尽管使能扩展指令集时会重新映射快速操作存储区,但
BSR 的操作不变。使用 BSR 选择数据存储区的直接寻
址操作方式和以前描述的相同。
仅
适用于立即数变址寻址模
Bank 1“窗口”
SFR
快速操作存储区
00h
5Fh
60h
FFh
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 93 页
PIC18F97J60 系列
注:
DS39762A_CN 第 94 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
6.0 闪存程序存储器
正常工作状态下,闪存程序存储器在整个 VDD 范围内都
是可读写可擦除的。
读程序存储器时,每次读取一个字节。写程序存储器
时,每次写入一个 64 字节的块。擦除程序存储器时,每
次擦除一个 1024 字节的块。用户代码不能执行批量擦
除操作。
在擦写程序存储器时,系统会停止取指令直到操作完
成。擦写期间不能访问该程序存储器,因此也就无法执
行代码。由内部编程定时器来终止程序存储器的擦写操
作。
写入程序存储器的值不一定非要是有效指令。执行存储
无效指令的程序存储器单元会导致执行 NOP 。
图 6-1 : 表读操作
6.1 表读与表写
为了读写程序存储器,有两个操作指令可供处理器在程
序存储器空间和数据 RAM 之间移动字节:
• 表读 (TBLRD )
• 表写 (TBLWT )
程序存储器空间为 16 位宽,而数据 RAM 空间为 8 位
宽。表读和表写操作通过一个 8 位寄存器 (TABLAT)
在这两个存储器空间之间传送数据。
表读操作从程序存储器获取数据并将其放入数据 RAM
空间。图 6-1 显示了程序存储器和数据 RAM 之间的一
次表读操作。
表写操作将数据存储器中的数据存入程序存储器的保持
寄存器。第 6.5 节 “写闪存程序存储器”详细介绍了将
保持寄存器内容写入程序存储器的过程。图 6-2 显示了
程序存储器和数据 RAM 之间的一次表写操作。
表操作以字节为单位。包含数据而非程序指令的表块不
需要按字对齐。因此,表块可以在任何字节地址开始和
结束。如果使用表写操作向程序存储器写入可执行代
码,程序指令必须按字对齐。
指令:TBLRD*
表指针
TBLPTRU
注 1: 表指针寄存器指向程序存储器中的某个字节。
(1)
TBLPTRH TBLPTRL
程序存储器
(TBLPTR )
程序存储器
表锁存器(8 位)
TABLAT
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 95 页
PIC18F97J60 系列
图 6-2 : 表写操作
表指针
TBLPTRU
注 1 : 表指针实际指向 64 个保持寄存器中的某一个,其地址由 TBLPTRL<5:0> 决定。第 6.5 节 “写闪存程序
存储器”中将讨论向程序存储器阵列写入数据的物理过程。
(1)
TBLPTRH TBLPTRL
程序存储器
(TBLPTR )
指令:TBLWT*
程序存储器
保持寄存器
表锁存器(8 位)
TAB LAT
6.2 控制寄存器
TBLRD 和 TBLWT 指令要用到几个控制寄存器。包括:
• EECON1 寄存器
• EECON2 寄存器
• TABLAT 寄存器
•TBLPTR寄存器
6.2.1 EECON1 和 EECON2 寄存器
EECON1 寄存器(寄存器 6-1)是存储器访问的控制寄
存器。EECON2 寄存器不是实际存在的寄存器,专用于
存储器的擦写操作。读 EECON2 将得到全 0 。
当 FREE 位置 1 时,允许对程序存储器进行擦除操作,
擦除操作由下一条 WR 命令启动。当 FREE 清零时,则
仅使能写操作。
当 WREN 位置 1 时,允许进行写操作。上电时,WREN
位被清零。WRERR 位在 WR 位置 1 时由硬件置 1 ,在
内部编程定时器超时、写操作结束时被清零。
注: 在正常操作期间,WRERR 读为 1 。这表明
写操作被复位提早终止或进行了不合法的
写操作。
WR 控制位用于启动写操作。用软件只能将该位置 1 而
无法清零。在写操作完成后,由硬件将其清零。
DS39762A_CN 第 96 页 超前信息 2006 Microchip Technology Inc.
PIC18F97J60 系列
寄存器 6-1 : EECON1 :EEPROM 控制寄存器 1
U-0 U-0 U-0 R/W-0 R/W-x R/W-0 R/S-0 U-0
— — — FREE WRERR WREN WR —
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未用位,读为 0
-n = POR 值 1 = 置 10 = 清零 x = 未知
bit 7-5 未用:读为 0
bit 4
bit 3
bit 2
bit 1
bit 0
FREE:闪存行擦除使能位
1 = 在下一条 WR 命令时擦除 TBLPTR 指定的程序存储器行 (擦除操作完成后清零)
0 = 仅执行写操作
WRERR:闪存程序存储器错误标志位
1 = 写操作提早终止 (由于正常操作中自定时编程期间的任何复位,或不合法的写操作)
0 = 写操作完成
WREN:闪存程序存储器写使能位
1 = 允许对闪存程序存储器的写周期
0 = 禁止对闪存程序存储器的写周期
WR:写控制位
1 = 启动程序存储器的擦写周期
(操作是自定时的,一旦写操作完成,该位即由硬件清零。
用软件只能将 WR 位置 1 ,但不能清零。)
0 = 写周期完成
未用:读为 0
S = 可设置位
2006 Microchip Technology Inc. 超前信息 DS39762A_CN 第 97 页
PIC18F97J60 系列
6.2.2 表锁存寄存器 (TABLAT )
表锁存器(TABLAT)是映射到 SFR 空间的一个 8 位寄
存器。表锁存器用于在程序存储器和数据 RAM 之间传
输数据时保存 8 位数据。
6.2.3 表指针寄存器 (TBLPTR )
表指针 (TBLPTR )寄存器在程序存储器中以字节为单
位进行寻址。 TBLPTR 由 3 个 SFR 寄存器组成:表指
针最高字节、表指针高字节和表指针低字节
(TBLPTRU:TBLPTRH:TBLPTRL)。 这 3 个寄存器合
起来组成一个 22 位宽的指针。其中低 21 位允许器件寻
址高达 2MB 程序存储器空间。第 22 位则允许访问器件
ID 和配置位。
TBLRD 和 TBLWT 指令要使用表指针寄存器 TBLPTR 。
这些指令可以基于表操作以 4 种方法更新 TBLPTR 。
表 6-1 列出了这些操作。这些表操作只会影响 TBLPTR
的低 21 位。
表 6-1 :执 行TBLRD 和 TBLWT 指令的表指针操作
示例 表指针操作
TBLRD*
TBLWT*
TBLRD*+
TBLWT*+
TBLRD*TBLWT*-
TBLRD+*
TBLWT+*
不修改 TBLPTR
TBLPTR 在读 / 写后递增
TBLPTR 在读 / 写后递减
TBLPTR 在读 / 写前递增
6.2.4 表指针范围
TBLPTR 用于读、写和擦除闪存程序存储器。
当执行 TBLRD 时,TBLPTR 的所有 22 位决定将程序存
储器的哪个字节读入 TABLAT。
当执行 TBLWT 时,表指针寄存器的低 6 位
(TBLPTR<5:0> )决定要写入程序存储器的哪个保持寄
存器 (共有 64 个)。当程序存储器的定时写入 (通过
WR 位)开始时,TBLPTR的高 15 位( TBLPTR<20:6> )
将决定要写入哪个程序存储器块 (每块 64 字节)。更
多详细信息,请参见第 6.5 节 “写闪存程序存储器”。
当执行擦除程序存储器时,表指针寄存器的高 11 位
(TBLPTR<20:10> )指向将要擦除的 1024 字节块。低有
效位 (TBLPTR<9:0> )被忽略。
图 6-3 说明了基于闪存程序存储器操作的 TBLPTR 相关
范围。
图 6-3 : 基于操作的表指针范围
21 16 15 87 0
表擦除
TBLPTR<20:10>
表写
TBLPTR<20:6>
表读—— TBLPTR<21:0>
TBLPTRL TBLPTRH TBLPTRU
DS39762A_CN 第 98 页 超前信息 2006 Microchip Technology Inc.