MICROCHIP PIC18F2423, PIC18F2523, PIC18F4423, PIC18F4523 Technical data

PIC18F2423/2523/4423/4523
深圳市英锐恩科技有限公司(Microchip Authorized Design Partner)指定授权 Add: Room 1203-1205 Top office,Glittery City,No. 3027, Shennan Road Central,Futian ,  Shenzhen City  电话(tel) :86-755-88845951,82543411 传真(fax) :86-755-82543511 Web: Http://www.Enroo.com ,"o"为字母. E-mail: enroo@enroo.com jason.ma@139.com  联系人:马先生,王小姐 公司在线咨询:QQ:27781279 MSN:picmcu@hotmail.com
数据手册
采用 12 A/D 和纳瓦技术的
28/40/44 引脚
增强型闪存单片机
2007 Microchip Technology Inc. 初稿 DS39755A_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
Microchip 的产品均达到 Microchip 数据手册中所述的技术标。
Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中安全的产品之一。
目前存在着恶意、甚至破坏代码保护功能的为。就我们所知,所有这些不是以 Microchip 数据手册中规定的 作规范使用 Microchip 产品的。这样做人极可能侵犯了知识产权。
Microchip 些注代码完整性的客户合作。
Microchip 或任何其他半导体厂商均法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的为均可视 为违反器件千年版权法案(Digital Millennium Copyright Act)》。如果这种行为导致他未经授权的情况下,能访问您的 件或其他版权保护的果,您有权提起诉讼,制止种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含 的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc.及其分公司和相 关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用 符合 技术 规范,
是您自身应负的责任。Microchip对这些信息不作任何明示或 暗示、书面或口头、法定或其他形式的声明或担保,包括但不 限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而 引起的后果不承担任何责任。如果将 Microchip 器件用于生命 维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障 Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron dsPIC、 K
EELOQ、 KEELOQ 徽标、 microID、 MPLAB、 PIC、
PICmicroPICSTARTPRO MATEPowerSmart、 rfPIC
SmartShunt 均为 Microchip Technology Inc. 在美国和其他 国家或地区的注册商标。
AmpLabFilterLabLinear Active ThermistorMigratable MemoryMXDEVMXLABPS 徽标、 SEEVAL
SmartSensor The Embedded Contr ol Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标。
Analog-for-the-Digital AgeApplication Maestro CodeGuarddsPICDEMdsPICDEM.netdsPICworks
ECANECONOMONITORFanSenseFlexROM fuzzyLABIn-Circuit Serial ProgrammingICSPICEPIC
MindiMiWi、 MPASM、 MPLAB Certified 徽标、 MPLIB MPLINKPICkitPICDEMPICDEM.netPICLAB PICtailPowerCalPowerInfoPowerMatePowerTool
REAL ICE、 rfLAB、 rfPICDEM、 Select Mode、 Smart SerialSmart TelTotal Endurance、 UNI/O、 WiperLock 和
ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地
区的商标。 SQTP Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。 © 2007, Microchip Technology Inc. 版权所有。
Microchip Gresham
晶圆生产均于通过了 与 片机外设非易失性存器和模拟产品方面的质量体系流程均符合
ISO/TS-16949:2002
的质量体系也已通过
位于美国桑那州
及位于加利福尼亚州
®
dsPIC
号控制器、
Chandler和Tempe
Mountain View
ISO/TS-16949:2002
KEELOQ
。此
Microchip
ISO 9001:2000
、位于俄勒冈州
的全球总部、设计中
证。公司在
®
码器件、串行
系统设计和生产方面
证。
PIC
EEPROM
®
单片机
、单
DS39755A_CN ii 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
采用 12 A/D 和纳瓦技术的
28/40/44 引脚增强型闪存单片机

外设特点:

最多 13 路通道的 12 位数转模块 (A/D)
- 功能
- 可在休眠模式下进行
输入多路选择双模拟比较
高灌 / 拉电流25 mA/25 mA
3 编程外部中
4 个输入电平变化
多达两个捕捉 / 比较 /PWMCCP)模 块 ,一 个具
的功能 (28 引脚器件
增强型捕捉 / 比较 /PWMECCP)模块 ( 仅限 40/44
引脚器件):
-1、 2 或 4 PWM
- 选择极
- 编程死区时
- 和自动重启
主同步串行(Master Synchronous Serial Port
MSSP)模块持 3 线 SPI 所有 4 种模
2
I
C™ 主 / 从模
增强型 USART 模块
- RS-485RS-232 LIN 1.2
- 使用内部振荡模块RS-232 工作(无
需外部晶振)
- 检测到位自动唤醒
- 动波率检测

管理式:

运行:CPU 工作,外设打开
空闲:CPU 不工作,外设打开
休眠:CPU 不工作,外设
空闲模式时电流降至 5.8 µA (典值)
休眠模式时电流降至 0.1 µA (典值)
Timer1振荡器: 1.8 µA32 kHz2V
看门狗定时器: 2.1 µA
双速振荡启动

灵活振荡器结构:

4 种晶振模式,频率最高25 MHz
4 倍频锁环(Phase Lock Loop, PLL)( 可用于
晶振和内部振荡器)
两种外部 RC 式,频率最高为 4 MHz
两种外部时钟模式,频率最高为 25 MHz
内部振荡模块
-8可由用户选择频率从 31 kHz 到 8MHz
- PLL 合使用时可提供较宽的时钟频率 31 kHz 32 MHz
- 可对该电路进行调节频率漂移
辅助振荡器使用 Timer1 工作频率为 32 kHz
障保护时钟监视器:
- 当外部时钟停止工作时自换到内部振荡

单片机特性:

优化的 C 译器构:
- 优化重入代码而设计的可扩展指令集
进行100,000次擦写操作的增强型闪存程序
(典值)
进行 1,000,000 次擦写操作的数据 EEPROM
(典值)
闪存 / 数据 EEPROM 保存时100 年(典值)
可在控制下自编程
断优先
8 x 8 周期硬法器
扩展看门狗定时器 (Watchdog Timer, WDT
- 编程周期从 4ms131s
通过两个引脚进行电源线串行编程 (In-Circuit
Serial Programming™, ICSP™
通过两个引脚进行线调试 (In-Circuit Debug
ICD
工作电压:2.0V 到 5.5V
编程 16 高 / 低压检测 (High/Low-Voltage
DetectionHLVD)模块
- / 低压检测
编程欠压复(Brown-out Reset, BOR
- 带软件使能选项
程序 数据存
器件
PIC18F2423 16K 8192 768 256 25 10 2/0 PIC18F2523 32K 16384 1536 256 25 10 2/0 PIC18F4423 16K 8192 768 256 36 13 1/1 PIC18F4523 32K 16384 1536 256 36 13 1/1
2007 Microchip Technology Inc. 初稿 DS39755A_CN 1
闪存
(字节)单指令
SRAM
(字节)
EEPROM
(字节)
I/O
12
A/D
(通道)
CCP/
ECCP
PWM
MSSP
SPI
2
C™
I
有有 有有 有有 有有
比较
EUSART
121/3 121/3 121/3 121/3
8/16 位 定时器
PIC18F2423/2523/4423/4523

引脚示意

28 引脚 PDIP SOIC
28 引脚 QFN
RA2/AN2/V
RA5/AN4/SS
(1)
MCLR/VPP/RE3
RA0/AN0 RA1/AN1
REF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
/HLVDIN/C2OUT
OSC1/CLKI
OSC2/CLKO
RC0/T1OSO/T13CKI
RC1/T1OSI/CCP2
RC3/SCK/SCL
V
(3)
/RA7
(3)
/RA6
RC2/CCP1
PIC18F2523
RB7/KBI3/PGD
28 27 26 25 24 23 22 21 20 19 18 17 16 15
RB6/KBI2/PGC
RB5/KBI1/PGM
RB4KBI0/AN11
RB7/KBI3/PGD RB6//KBI2/PGC RB5/KBI1/PGM RB4/KBI0/AN11 RB3/AN9/CCP2 RB2/INT2/AN8 RB1/INT1/AN10
RB0/INT0/FLT0/AN12 V
DD
VSS RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA
(2)
1 2 3 4 5 6 7
SS
(2)
8 9 10 11 12 13 14
RA1/AN1
RA0/AN0
PIC18F2423
/VPP/RE3
MCLR
RA2/AN2/VREF-/CVREF
RA5/AN4/SS
RA4/T0CKI/C1OUT
/HLVDIN/C2OUT
OSC1/CLKI
OSC2/CLKO
RA3/AN3/VREF+
V
(3)
/RA7
(3)
/RA6
232425262728
1 2 3
PIC18F2423
4
SS
PIC18F2523
5 6 7
8
9
(2)
RC1/T1OSI/CCP2
RC0/T1OSO/T13CKI
1011
RC2/CCP1
1213 14
RC3/SCK/SCL
RC5/SDO
RC6/TX/CK
RC4/SDI/SDA
21 20 19 18 17 16 15
RB3/AN9/CCP2 RB2/INT2/AN8 RB1/INT1/AN10 RB0/INT0/FLT0/AN12 V
DD
VSS RC7/RX/DT
(2)
22
1: 建议将 QFN 封装器件部的焊垫连VSS
2RB3 是与 CCP2 用的用引脚。 3OSC1/CLKI OSC2/CLKO 仅在振荡式下,并两个引脚不用作数I/O 引脚时可用。更
信息,请参 2.0 节 “振荡配置
DS39755A_CN 2 初稿 2007 Microchip Technology Inc.
引脚示意图(续)
40 引脚 PDIP
PIC18F2423/2523/4423/4523
44 引脚 TQFP
RA2/AN2/V
RA4/T0CKI/C1OUT
RA5/AN4/SS
OSC2/CLKO
RC0/T1OSO/T13CKI
RC1/T1OSI/CCP2
MCLR/VPP/RE3
RA0/AN0 RA1/AN1
REF-/CVREF
RA3/AN3/VREF+
/HLVDIN/C2OUT
RE0/RD
RE1/WR
RE2/CS
OSC1/CLKI
(2) (2)
RC2/CCP1/P1A
RC3/SCK/SCL
RD0/PSP0 RD1/PSP1
/AN5 /AN6 /AN7
V
DD
VSS /RA7 /RA6
1 2 3 4 5 6 7 8 9 10 11 12 13 14
RC6/TX/CK
RC5/SDO
15 16 17 18 19 20
RC4/SDI/SDA
RD3/PSP3
(1)
RD2/PSP2
RD1/PSP1
RD0/PSP0
PIC18F4423
RC3/SCK/SCL
40 39 38 37 36 35 34 33 32 31 30 29
PIC18F4523
28 27 26 25 24 23 22 21
(1)
NC
RC2/CCP1/P1A
RC1/T1OSI/CCP2
RB7/KBI3/PGD RB6/KBI2/PGC
RB5/KBI1/PGM RB4/KBI0/AN11 RB3/AN9/CCP2 RB2/INT2/AN8
RB1/INT1/AN10 RB0/INT0/FLT0/AN12
DD
V VSS RD7/PSP7/P1D RD6/PSP6/P1C
RD5/PSP5/P1B RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2
(1)
15
RB5/KBI1/PGM
38
39
1819202122
16
17
/VPP/RE3
RB7/KBI3/PGD
RB6/KBI2/PGC
MCLR
363435
37
33 32 31 30 29
28 27 26 25 24 23
RA1/AN1
RA0/AN0
REF-/CVREF
RA3/AN3/VREF+
RA2/AN2/V
NC RC0/T1OSO/T13CKI OSC2/CLKO OSC1/CLKI
SS
V VDD RE2/CS/AN7 RE1/WR RE0/RD RA5/AN4/SS RA4/T0CKI/C1OUT
(2)
/RA6
(2)
/RA7
/AN6
/AN5
/HLVDIN/C2OUT
RC7/RX/DT
RD4/PSP4 RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D
RB0/INT0/FLT0/AN12
RB1/INT1/AN10
RB2/INT2/AN8
RB3/AN9/CCP2
V VDD
4443424140
1 2 3 4
PIC18F4423
SS
(1)
5 6 7 8 9 10 11
121314
NC
PIC18F4523
NC
RB4/KBI0/AN11
1RB3 是与 CCP2 用的用引脚。
2OSC1/CLKI OSC2/CLKO 仅在振荡式下,并两个引脚不用作数I/O 引脚时可用。更
信息,请参 2.0 节 “振荡配置
2007 Microchip Technology Inc. 初稿 DS39755A_CN 3
PIC18F2423/2523/4423/4523
引脚示意图(续)
44 引脚 QFN
(1)
RC7/RX/DT
RD4/PSP4
RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D
RB0/INT0/FLT0/AN12
RB1/INT1/AN10
RB2/INT2/AN8
V VDD VDD
(2)
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0
RC3/SCK/SCL
RC2/CCP1/P1A
RC1/T1OSI/CCP2
RC0/T1OSO/T13CKI
15
16
RB6/KBI2/PGC
RB5/KBI1/PGM
38
39
37
1819202122
17
RA0/AN0
/VPP/RE3
RB7/KBI3/PGD
MCLR
363435
RA1/AN1
33 32 31 30 29 28 27 26 25 24
23
REF+
REF-/CVREF
RA3/AN3/V
RA2/AN2/V
OSC2/CLKO OSC1/CLKI
SS
V VSS VDD VDD RE2/CS/AN7 RE1/WR RE0/RD RA5/AN4/SS RA4/T0CKI/C1OUT
(3)
/RA6
(3)
/RA7
/AN6
/AN5
/HLVDIN/C2OUT
4443424140
1 2 3 4 5
SS
6 7 8 9 10 11
121314
(2)
RB3/AN9/CCP2
PIC18F4423 PIC18F4523
NC
RB4/KBI0/AN11
1: 建议将 QFN 封装器件部的焊垫连VSS
2RB 3 是与 CCP2 用的用引脚。 3OSC1/CLKI OSC2/CLKO 仅在振荡式下,并两个引脚不用作数I/O 引脚时可用。更
信息,请参 2.0 节“振荡配置
DS39755A_CN 第 4 页 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1.0 器件.......................................................................................................................................................................................7
2.0 振荡配置 ................................................................................................................................................................................. 23
3.0 管理..............................................................................................................................................................................33
4.0 ............................................................................................................................................................................................ 41
5.0 器构................................................................................................................................................................................. 53
6.0 闪存程序.......................................................................................................................................................................... 73
7.0 数据 EEPROM ................................................................................................................................................................ 83
8.0 8 x 8 法器......................................................................................................................................................................... 89
9.0 ............................................................................................................................................................................................ 91
10.0 I/O .................................................................................................................................................................................... 105
11.0 Timer0 模块 .............................................................................................................................................................................. 123
12.0 Timer1 模块 .............................................................................................................................................................................. 127
13.0 Timer2 模块 .............................................................................................................................................................................. 133
14.0 Timer3 模块 .............................................................................................................................................................................. 135
15.0 捕捉 / 比较 /PWM CCP)模块............................................................................................................................................... 139
16.0 增强型捕捉 / 比较 /PWM ECCP)模块 ................................................................................................................................. 147
17.0 主同步串行MSSP)模块 .................................................................................................................................................. 161
18.0 增强型用同步 / 发器 EUSART)..............................................................................................................................205
19.0 12 数转A/D)模块.................................................................................................................................................. 227
20.0 比较模块 ...............................................................................................................................................................................237
21.0 比较器参考电压模块................................................................................................................................................................. 243
22.0 高 / 低压检测 (HLVD)............................................................................................................................................................ 247
23.0 CPU 的特功能 ....................................................................................................................................................................... 253
24.0 指令集...............................................................................................................................................................................271
25.0 ................................................................................................................................................................................... 321
26.0 特性 ...................................................................................................................................................................................325
27.0 特性.................................................................................................................................................................363
28.0 封装信息 ...................................................................................................................................................................................365
附录 A:版历史 ........................................................................................................................................................................ 373
附录 B:器........................................................................................................................................................................ 373
附录 C:转注意事.................................................................................................................................................................374
附录 D 从低档器件增强型器件 ........................................................................................................................................ 374
附录 E 中档器件增强型器件 ........................................................................................................................................ 375
附录 F 从高档器件增强型器件 ........................................................................................................................................ 375
索引 ............................................................................................................................................ ...................................................... 377
Microchip 网站.................................................................................................................................................................................... 387
客户服务 ..............................................................................................................................................................................387
客户支............................................................................................................................................................................................. 387
读者馈表 ......................................................................................................................................................................................... 388
PIC18F2423/2523/4423/4523 产品标识体系 ..................................................................................................................................... 389
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 5
PIC18F2423/2523/4423/4523
致客户
在提供文档供客户正确使用 Microchip 产品。为此,们将不断改进出版物的内容和质量,使之更满足您的要
出版物的质量将新文档及更新版本的推出而得提升。 如果您对本出版物有任何和建议,请通过电子邮件联系我公司 TRC 理,子邮件地址为 CTRC@microchip.com,或将本
数据手册后附的 读者馈表传真86-21-5407 5066。我们期您的馈。

新数据手册

欲获得本数据手册的最新版本,请查询我公司的网站
http://www.microchip.com
看数据手册中任意一页下边角处的文编号可确定其版本。文编号中数字串后的是版本号,例如:DS30000ADS30000A 版本。
勘误表
有器件可能有一份勘误表,述了实际运行与数据手册中记内容之存在的细微以及建议的变通方法。一们了解 器件 / 文档存在些差时,会发布勘误表勘误表将注明其所适用的片版本和文件版本。
了解一器件是存在勘误表,请通过以下方式之一查询
Microchip 网站 http://www.microchip.com
地 Microchip 销售办处(后一页
联络售办时,请明您所使用的器件型片版本和数据手册版本 包括文献编号)

客户通系统

及时知 Microchip 产品的新信息,请到我公司网站 www.microchip.com 注册。
DS39755A_CN 第 6 页 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

1.0 器件

本文档及以下器件的具体信息:
• PIC18F2423
• PIC18F2523
• PIC18F4423
• PIC18F4523
该系列具所有 PIC18 单片机有的点,即实惠 价格提供出性能,以及用性的增强型闪存
程序器。了这些点之PIC18F2423/2523/ 4423/4523 系列增强了器件设计,使得该系列单片机
为许多高性能以及功敏感应用的明选择

1.1 新的内特性

1.1.1 纳瓦技术

PIC18F2423/2523/4423/4523 系列的所有器件有一
系列显著降低工作时的功的功能。主要包含以下
备用运行模式:通过将 Timer1 或内部振荡模块
作为单片机时钟源,可使代码时的功耗降低
90%
多种空闲模式:单片机可在其 CPU 核禁
外设仍工作的情况下工作。于这些状态时,功得更正常工作时的 4%
式切:在器件工作期间可由用代码
用功管理式,许用能的理念融入到他 们的应用设计中。
模块低Timer1 看门狗定时器模块
耗需降至最具体请参 26.0
“电气特性

1.1.2 多个振荡选项和特性

PIC18F2423/2523/4423/4523 系列的所有器件可提供 10不同的振荡选项,使用发应用件时有
选择。这些选项包括:
•4种晶振模式,使用晶振陶瓷谐器。
两种外部时钟模式,提供使用两个引脚 (振荡
输入引脚和钟输出引脚或一引脚
(振荡输入引脚,出引脚新分
I/O 引脚选项
两种外部 RC 振荡器式,有与部时钟模式相
同的引脚选项
内部振荡模块,它提供一8MHz的时钟源 和一INTRC 时钟源 (近似值为 31 kHz),并有
6 钟频率可供用户选择 (从 125 kHz 4MHz共 8 钟频率。此选项可以 个振荡器引脚作为用 I/O 引脚。
个锁环(PLL)倍频器,可在高速晶振和内部
振荡器模式下使用,使来自 HS 钟源的时钟速 最高达到 40 MHzPLL 和内部振荡合使用, 可以用户提供频率 围从 31 kHz 32 MHz 的时 钟速选择,而不需要使用晶振或时钟电
了可用作时钟源外,内部振荡模块提供了一 定的参考,为此系列器件增加了以下功能以使器件更 可地工作:
故障保护时钟监视器:部件持续监视主时钟源 将其与内部振荡器提供的参考信比较。如果时 发生了障,单片机会将时钟源换到内部振荡模块,使器件可工作或安全地关应用。
双速启动功能许在上电复位或从休眠模时将内部振荡器用作时钟源主时钟源可用
2007 Microchip Technology Inc. 初稿 DS39755A_CN 7
PIC18F2423/2523/4423/4523

1.2 其他特功能

12 A/D 转换 该模块具编程
而不选择通道启动等待样 周期,因而减少了代码销。
用性:程序存器和数据 EEPROM 的增
强型闪存单,可以次擦写程序高达 100,000 EEPROM 高达 1,000,000 次。在不新的情况下,数据保存时40
编程:这些器件能在内部控制写入
自的程序空间通过使用保护的引
位于程序器的顶端中的自程序,可
能在场进行更新的应用程序
扩展指令集:PIC18F2423/2523/4423/4523系列PIC18 指令集基础上进行了可选择扩展加了 8 指令址寻址模式。此扩展可以 使用一器件配置选项使能,它是为优化重入应 用程序代码而特设计的,这些代码原是使用语言 C 语言)开发的。
增强型 CCP 模块 :在 PWM 式下,该模块提供用控制半或全桥驱器的 12 4 路调制输 出。其他功能包括自,用于在中或其他 件下PWM 动重启,一旦条清除活输出。
增强型可寻址 USART该串行通模块进行RS-232 信并LIN 总线议。其他增强
功能包括自动波率检测和分16 发生器。单片机使用内部振荡模块时, EUSART 为与的应用提供定的信方 式,而无需使用晶振也无需的功
扩展型看门狗定时器 WDT):该增强型版本增 加了一16 器,可以提供在工作电压
温度变化时保持定的扩展时范围时周期 具体请参 26.0 节“电特性”

1.3 系列中各员的详细说

PIC18F2423/2523/4423/4523 系列器件28 引脚和 40/44 引脚封装形式。 1-1 1-2 为这类器
件的
类器件在以下方面存在差
1. 闪存程序PIC18F2423/4423 器件为 16 KBPIC18F2523/4523 器件为 32 KB
2. A/D 通道 (28 引脚器件有 10 40/44 引脚 器件有 13 路)
3. I/O 28 引脚器件有 3 个双向端口, 40/44 引脚器件有 5 个双向端
4. CCP和增强型 CCP 实现28 引脚器 件有 2
CCP 模块40/44 引脚器件有 1 CCP 模块1 ECCP 模块)。
5. 行从动仅存在于 40/44 引脚器件)。
系列器件的所有其他功能是相同的。 1-1 总结了 这些功能。
1-2 1-3 出了本系列中所有器件的引脚明。 PIC18F2423/2523/4423/4523 系列器件仅提供低压
件,用 “LFPIC18LF2423,其工作电压 VDD 2.0V 3.6V
DS39755A_CN 第 8 页 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

1-1: 器件特性

特性
工作频率
程序(字节
程序(指令
数据存(字节 数据 EEPROM (字节
断源 I/O端口 A, B, C, (E) 端口 A, B, C, (E) 端口 A, B, C, D, E 端口 A, B, C, D, E
定时器
捕捉 / 比较 /PWM 模块 增强型捕捉 / 比较 /PWM 模块 串行通 MSSP 和增强型 USART MSSP 和增强型 USART MSSP和增强型 USART MSSP 和增强型 USART
行通(PSP)无有有 12 数转换模块 10 路输入通道 10 路输入通道 13 路输入通道 13 路输入通道
PORBOR
编程高 / 低压检测 有有有有
编程欠压复 有有有有
指令集 75 指令使能了扩展指
封装 28 引脚 PDIP
PIC18F2423 PIC18F2523 PIC18F4423 PIC18F4523
DC – 40 MHz DC – 40 MHz DC – 40 MHz DC – 40 MHz
16384 32768 16384 32768
8192 16384 8192 16384
768 1536 768 1536 256 256 256 256
19 19 20 20
4444 2211 0011
RESET 指令
堆栈满堆栈
PWRTOST)、
选)和 WDT
MCLR
令集为 83 指令
28 引脚 SOIC
28 引脚 QFN
PORBOR
RESET 指令
堆栈满堆栈
PWRT OST)、
MCLR 选)WDT
75指令使能了扩展指
令集为 83 指令
28 引脚 PDIP 28 引脚 SOIC
28 引脚 QFN
PORBOR
RESET 指令
堆栈满堆栈
PWRTOST)、
MCLR 选)WDT
75 指令使能了扩展指
令集为 83 指令
40 引脚 PDIP 44 引脚 QFN
44 引脚 TQFP
(PWRTOST
MCLR 选)WDT
75 指令使能了扩展指
令集为 83 指令
PORBOR
RESET 指令
堆栈满堆栈
40 引脚 PDIP
44 引脚 QFN
44 引脚 TQFP
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 9
PIC18F2423/2523/4423/4523

1-1 PIC18F2423/252328 引脚

<21>
/ 递减逻辑
21
址锁存器
程序存储器
16/32KB
数据存器
指令总线 <16>
(3)
OSC1
(3)
OSC2
T1OSI
T1OSO
(2)
MCLR
V
VDD,
SS
20
8
内部
振荡
模块
INTRC
振荡
8 MHz
振荡
电源
编程 线
调试
PCLATH
PCLATU
PCU
程序计数器
31 堆栈
STKPTR
存器
ROM 存器
IR
指令
译码与
控制
数据总线 <8>
8
PCH PCL
状态
控制
上电
定时器 振荡
定时器
上电 复
看门狗
定时器
欠压 复
障保护
钟监视器
8
数据存器
数据存储器
3.9KB
址锁存器
12
数据地址 <12>
BSR
4
FSR0 FSR1 FSR2
/
减逻辑
译码
12
4
速操
12
PORTA
PORTB
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS OSC2/CLKO OSC1/CLKI
/HLVDIN/C2OUT
(3)
/RA6
(3)
/RA7
RB0/INT0/FLT0/AN12 RB1/INT1/AN10 RB2/INT2/AN8 RB3/AN9/CCP2
(1)
RB4/KBI0/AN11 RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD
8
PRODLPRODH
BITOP
3
8
8 x 8 法器
W
8
PORTC
8
8
RC0/T1OSO/T13CKI RC1/T1OSI/CCP2
(1)
RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO
8
8
RC6/TX/CK RC7/RX/DT
ALU<8>
8
精度
参考
PORTE
MCLR/VPP/RE3
(2)
BOR
HLVD
数据
EEPROM
CCP1
CCP2
MSSP
Timer2Timer1 Timer3Timer0
EUSART比较
12
ADC
1配置CCP2MX 1 时, CCP2 RC1 CCP2MX 清零时, CCP2 RB3 用。
2有在MCLR 3OSC1/CLKI OSC2/CLKO 仅在振荡式下,并两个引脚不用作数I/O 引脚时可用。
信息,请参 2.0 节 “振荡器配置”。
功能时, RE3 可用。
DS39755A_CN 10 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

1-2 PIC18F4423/4523 40/44 引脚

<21>
/ 递减逻辑
21
址锁存器
程序存储器
16/32KB
数据存器
指令总线 <16>
20
8
PCLATH
PCLATU
PCU
程序计数器
31 堆栈
STKPTR
存器
ROM 存器
IR
指令
译码与
控制
数据总线 <8>
8
PCH PCL
状态
控制信号
PORTA
8
数据存器
数据存储器
3.9KB
址锁存器
12
4
BSR
数据地址 <12>
12
速操
FSR0
FSR1 FSR2
/
减逻辑
译码
4
12
PORTB
PORTC
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS OSC2/CLKO OSC1/CLKI
/HLVDIN/C2OUT
(3)
/RA6
(3)
/RA7
RB0/INT0/FLT0/AN12 RB1/INT1/AN10 RB2/INT2/AN8 RB3/AN9/CCP2
(1)
RB4/KBI0/AN11 RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD
RC0/T1OSO/T13CKI RC1/T1OSI/CCP2
(1)
RC2/CCP1/P1A RC3/SCK/SCL
RC4/SDI/SDA
8
RC5/SDO RC6/TX/CK RC7/RX/DT
PRODLPRODH
OSC1
OSC2
T1OSI
T1OSO
MCLR
VDD,
V
BOR
HLVD
8 x 8 法器
3
8
W
8 ALU<8>
8
8
12
ADC
BITOP
(3)
(3)
(2)
SS
内部
振荡
模块
INTRC
振荡
8 MHz
振荡
电源
编程 线
调试
数据
EEPROM
ECCP1
CCP2
上电延时
定时器 振荡
定时器
上电 复
看门狗
定时器
欠压 复
障保护
钟监视器
MSSP
精度
参考
Timer2Timer1 Timer3Timer0
EUSART比较
8
8
8
PORTD
PORTE
1配置CCP2MX1 时, CCP2 RC1 CCP2MX 清零时, CCP2 RB3 用。
2有在MCLR
功能时, RE3 可用。
3OSC1/CLKI OSC2/CLKO 仅在某些振荡式下,并两个 引脚不用作数I/O 引脚时可用。
信息,请参 2.0 节“振荡器配置”。
RD0/PSP0
:RD4/PSP4 RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D
RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 MCLR/VPP/RE3
(2)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 11
PIC18F2423/2523/4423/4523

1-2 PIC18F2423/2523 引脚

引脚
引脚名称
/VPP/RE3
MCLR
MCLR VPP RE3
OSC1/CLKI/RA7
OSC1 CLKI RA7
OSC2/CLKO/RA6
OSC2 CLKO RA6
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
PDIP, SOIC
126
96
10 7
QFN
引脚类型缓冲器
类型
I
ST
P
I
ST
I
ST
I
CMOS
I/O
TTL
O
O
I/O
TTL
(输入)编程电压 (输入)。
输入。此引脚为低电平时,器件位。 编程电压输入。 数字输入
振荡晶振部时钟输入
振荡晶振部时钟源输入 RC 式下ST 缓冲器,否则CMOS 缓冲器。部时钟源输入是与 OSC1 引脚功能用。
相关的 OSC1/CLKI OSC2/CLKO引脚信息。)
I/O 引脚。
振荡晶振或时钟输出。
振荡晶振输出。在晶振模式下,引脚与晶振器相
RC 式下, OSC2 引脚CLKO OSC1引脚的4分该频 率指令周期数。 用 I/O 引脚。
DS39755A_CN 12 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1-2 PIC18F2423/2523 引脚(续)
引脚
引脚名称
RA0/AN0
RA0 AN0
RA1/AN1
RA1 AN1
RA2/AN2/V
RA2 AN2 VREF­CV
RA3/AN3/V
RA3 AN3 V
RA4/T0CKI/C1OUT
RA4 T0CKI C1OUT
RA5/AN4/SS C2OUT
RA5 AN4 SS HLVDIN
C2OUT RA6 RA7
注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入
1配置位 CCP2MX 1 时,对 CCP2 使用认引脚分配。
REF-/CVREF
REF
REF+
REF+
/HLVDIN/
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
PDIP, SOIC
227
328
41
52
63
74
QFN
引脚类型缓冲器
类型
I/OITTL
模拟
I/OITTL
模拟
I/O
TTL
I
模拟
I
模拟
O
模拟
I/O
TTL
I
模拟
I
模拟
I/O
ST
I
ST
O
I/O
TTL
I
模拟
I
TTL
I
模拟
O
PORTA I/O 端口。
I/O模拟输入 0。
I/O模拟输入 1。
I/O
模拟输入 2 A/D 参考电压 (低电压)输入
比较器参考电压输出。
I/O
模拟输入 3 A/D 参考电压 (高电压)输入
字 I/O Timer0 部时钟输入
比较1 出。
I/O
模拟输入 4 SPI 从动选择输入
/ 低压检测输入 比较2 出。
请参OSC2/CLKO/RA6 引脚信息。 请参OSC1/CLKI/RA7 引脚信息。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 13
PIC18F2423/2523/4423/4523
1-2 PIC18F2423/2523 引脚(续)
引脚
引脚名称
RB0/INT0/FLT0/AN12
RB0 INT0 FLT0 AN12
RB1/INT1/AN10
RB1 INT1 AN10
RB2/INT2/AN8
RB2 INT2 AN8
RB3/AN9/CCP2
RB3 AN9
(1)
CCP2
RB4/KBI0/AN11
RB4 KBI0 AN11
RB5/KBI1/PGM
RB5 KBI1 PGM
RB6/KBI2/PGC
RB6 KBI2 PGC
RB7/KBI3/PGD
RB7 KBI3 PGD
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
PDIP, SOIC
21 18
22 19
23 20
24 21
25 22
26 23
27 24
28 25
QFN
引脚类型缓冲器
类型
I/O
TTL
I
ST
I
ST
I
模拟
I/O
TTL
I
ST
I
模拟
I/O
TTL
I
ST
I
模拟
I/O
TTL
I
模拟
I/O
ST
I/O
TTL
I
TTL
I
模拟
I/O
TTL
I
TTL
I/O
ST
I/O
TTL
I
TTL
I/O
ST
I/O
TTL
I
TTL
I/O
ST
PORTB I/O 端口。 PORTB 在所有输入编程 为内部上拉
I/O
部中0 CCP1 PWM 输入
模拟输入 12
I/O
部中1 模拟输入 10
I/O部中2 模拟输入 8
I/O 模拟输入 9 捕捉 2 输入 / 比较 2 /PWM 2 出。
I/O 电平变化引脚。 模拟输入 11
I/O 电平变化引脚。 低电压 ICSP™ 编程使能引脚。
I/O 电平变化引脚。
线调试器和 ICSP 编程引脚。
I/O电平变化引脚。 在线调试器和 ICSP 编程数据引脚。
DS39755A_CN 14 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1-2 PIC18F2423/2523 引脚(续)
引脚
引脚名称
RC0/T1OSO/T13CKI
RC0
T1OSO
T13CKI RC1/T1OSI/CCP2
RC1
T1OSI
(2)
CCP2 RC2/CCP1
RC2
CCP1 RC3/SCK/SCL
RC3
SCK
SCL RC4/SDI/SDA
RC4
SDI
SDA RC5/SDO
RC5
SDO RC6/TX/CK
RC6
TX
CK RC7/RX/DT
RC7
RX
DT RE3
SS 8, 19 5, 16 P
V VDD 20 17 P
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
PDIP, SOIC
11 8
12 9
13 10
14 11
15 12
16 13
17 14
18 15
QFN
引脚类型缓冲器
类型
I/O
ST
O
I
ST
I/O
ST
I
模拟
I/O
ST
I/O I/OSTST
I/O
ST
I/O
ST
I/O
ST
I/O
ST
I
ST
I/O
ST
I/OOST
I/O
ST
O
I/O
ST
I/O
ST
I
ST
I/O
ST
PORTC I/O 端口。
I/O
Timer1 振荡出。 Timer1/Timer3 部时钟输入
字 I/O Timer1 振荡输入
捕捉 2 输入 / 比较 2 /PWM 2 出。
I/O捕捉 1 输入 / 比较 1 /PWM 1 出。
I/O
SPI 式的同步串行钟输入 / 输出。
2
C™ 式的同步串行钟输入 / 输出。
I
字 I/O SPI 数据输入
2
C 数据 I/O
I
字 I/O SPI 数据出。
字 I/O EUSART EUSART 钟(见 RX/DT 引脚信息
字 I/O EUSART 接收 EUSART 数据 TX/CK 引脚信息
请参MCLR 逻辑I/O 引脚的参考地。 逻辑I/O 引脚的正电源
/VPP/RE3 引脚信息。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 15
PIC18F2423/2523/4423/4523

1-3 PIC18F4423/4523 引脚

引脚名称
MCLR
/VPP/RE3 MCLR VPP RE3
OSC1/CLKI/RA7
OSC1 CLKI RA7
OSC2/CLKO/RA6
OSC2 CLKO
RA6
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
11818
13 32 30
14 33 31
引脚类型缓冲器
类型
I
ST
P
I
ST
I
ST
I
CMOS
I/O
TTL
O
O
I/O
TTL
(输入)编程电压 (输入)。
复位输入。此引脚为低电平时,器件 复位。 编程电压输入。 数字输入
振荡晶振部时钟输入
振荡晶振或外部时 钟源 输入 RC 式下ST 缓冲器,否则模拟部时钟源输入。总是与 OSC1 引脚功能用。
相关的 OSC1/CLKI OSC2/CLKO 引脚信息。)
I/O 引脚。
振荡晶振或时钟输出。
振荡晶振输出。在晶振模式下,引脚与晶振
振器相RC 式下, OSC2 引脚CLKO OSC1 引脚4 该频率指令周期数。
用 I/O 引脚。
DS39755A_CN 16 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1-3 PIC18F4423/4523 引脚(续)
引脚名称
RA0/AN0
RA0 AN0
RA1/AN1
RA1 AN1
RA2/AN2/V
RA3/AN3/V
RA4/T0CKI/C1OUT
RA5/AN4/SS C2OUT
RA6 RA7
注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入
1配置位 CCP2MX 1 时,对 CCP2 使用认引脚分配。
REF-/CVREF
RA2 AN2 VREF-
REF
CV
REF+
RA3 AN3
REF+
V
RA4 T0CKI C1OUT
/HLVDIN/
RA5 AN4 SS HLVDIN C2OUT
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
2配置位 CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
21919
32020
42121
52222
62323
72424
引脚类型缓冲器
类型
I/OITTL
模拟
I/OITTL
模拟
I/O
TTL
I
模拟
I
模拟
O
模拟
I/O
TTL
I
模拟
I
模拟
I/O
I/O
ST
I
ST
O
TTL
I
模拟
I
TTL
I
模拟
O
PORTA I/O 端口。
I/O模拟输入 0。
I/O模拟输入 1。
I/O
模拟输入 2 A/D 参考电压 (低电压)输入
比较器参考电压输出。
I/O
模拟输入 3 A/D 参考电压 (高电压)输入
字 I/O Timer0 部时钟输入
比较1 出。
I/O
模拟输入 4 SPI 从动选择输入
/ 低压检测输入 比较2 出。
请参OSC2/CLKO/RA6 引脚信息。 请参OSC1/CLKI/RA7 引脚信息。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 17
PIC18F2423/2523/4423/4523
1-3 PIC18F4423/4523 引脚(续)
引脚名称
RB0/INT0/FLT0/AN12
RB0 INT0 FLT0 AN12
RB1/INT1/AN10
RB1 INT1 AN10
RB2/INT2/AN8
RB2 INT2 AN8
RB3/AN9/CCP2
RB3 AN9
(1)
CCP2
RB4/KBI0/AN11
RB4 KBI0 AN11
RB5/KBI1/PGM
RB5 KBI1 PGM
RB6/KBI2/PGC
RB6 KBI2 PGC
RB7/KBI3/PGD
RB7 KBI3 PGD
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
33 9 8
34 10 9
35 11 10
36 12 11
37 14 14
38 15 15
39 16 16
40 17 17
引脚类型缓冲器
类型
I/O
TTL
I
ST
I
ST
I
模拟
I/O
TTL
I
ST
I
模拟
I/O
TTL
I
ST
I
模拟
I/O
TTL
I
模拟
I/O
I/O
I/O I/O
I/O I/O
I/O I/O
ST
TTL
I
TTL
I
模拟
TTL
I
TTL
ST
TTL
I
TTL
ST
TTL
I
TTL
ST
PORTB 是双I/O 口。 PORTB在所有输入编程为内部上拉
I/O部中0 增强型 CCP1 PWM 输入 模拟输入 12
I/O部中1 模拟输入 10
I/O部中2 模拟输入 8
I/O 模拟输入 9 捕捉 2 输入 / 比较 2 /PWM 2 出。
I/O 电平变化引脚。 模拟输入 11
I/O 电平变化引脚。 低电压 ICSP™ 编程使能引脚。
I/O 电平变化引脚。
线调试器和 ICSP 编程引脚。
I/O电平变化引脚。 在线调试器和 ICSP 编程数据引脚。
DS39755A_CN 18 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1-3 PIC18F4423/4523 引脚(续)
引脚名称
RC0/T1OSO/T13CKI
RC0 T1OSO T13CKI
RC1/T1OSI/CCP2
RC1 T1OSI
(2)
CCP2
RC2/CCP1/P1A
RC2 CCP1 P1A
RC3/SCK/SCL
RC3 SCK SCL
RC4/SDI/SDA
RC4 SDI SDA
RC5/SDO
RC5 SDO
RC6/TX/CK
RC6 TX CK
RC7/RX/DT
RC7 RX DT
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
15 34 32
16 35 35
17 36 36
18 37 37
23 42 42
24 43 43
25 44 44
26 1 1
引脚类型缓冲器
类型
I/O
I/O I/O
I/O I/O
I/O I/O I/O
I/O I/O
I/OOST
I/O I/O
I/O I/O
ST
O
I
ST
ST
I
CMOS
ST
ST ST
O
ST ST ST
ST
I
ST ST
ST
O
ST
ST
I
ST ST
PORTC I/O 端口。
I/O
Timer1 振荡出。 Timer1/Timer3 部时钟输入
字 I/O Timer1 振荡输入
捕捉 2 输入 / 比较 2 /PWM 2 出。
I/O捕捉 1 输入 / 比较 1 /PWM 1 出。 增强型 CCP1 出。
I/O
SPI 式的同步串行钟输入 / 输出。
2
C™ 式的同步串行钟输入 / 输出。
I
字 I/O SPI 数据输入
2
C 数据 I/O
I
字 I/O SPI 数据出。
字 I/O EUSART EUSART 钟(见 RX/DT 引脚信息
字 I/O EUSART 接收 EUSART 数据 TX/CK 引脚信息
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 19
PIC18F2423/2523/4423/4523
1-3 PIC18F4423/4523 引脚(续)
引脚名称
RD0/PSP0
RD0 PSP0
RD1/PSP1
RD1 PSP1
RD2/PSP2
RD2 PSP2
RD3/PSP3
RD3 PSP3
RD4/PSP4
RD4 PSP4
RD5/PSP5/P1B
RD5 PSP5 P1B
RD6/PSP6/P1C
RD6 PSP6 P1C
RD7/PSP7/P1D
RD7 PSP7 P1D
注: TTL = TTL 输入 CMOS = CMOS 输入
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
1配置CCP2MX 1 时,对 CCP2 使用引脚分
2配置CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
19 38 38
20 39 39
21 40 40
22 41 41
27 2 2
28 3 3
29 4 4
30 5 5
引脚类型缓冲器
类型
I/O I/OSTTTL
I/O I/OSTTTL
I/O I/OSTTTL
I/O I/OSTTTL
I/O I/OSTTTL
I/O I/O
I/O I/O
I/O I/O
ST
TTL
O
ST
TTL
O
ST
TTL
O
PORTD 是双I/O 口或与理器口的并行 从动PSP。当使能 PSP 模块时,这些引脚具
TTL 输入缓冲器。
I/O。 并行从动口数据。
I/O。 并行从动口数据。
I/O。 并行从动口数据。
I/O。 并行从动口数据。
I/O。 并行从动口数据。
I/O。 并行从动口数据。 增强型 CCP1 出。
I/O。 并行从动口数据。 增强型 CCP1 出。
I/O。 并行从动口数据。 增强型 CCP1 出。
DS39755A_CN 20 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
1-3 PIC18F4423/4523 引脚(续)
引脚名称
RE0/RD
RE1/WR/AN6
RE2/CS/AN7
RE3 — V
V
NC 13 12, 13,
注: TTL = TTL 兼容输入 CMOS = CMOS 兼容输入
1配置位 CCP2MX 1 时,对 CCP2 使用认引脚分配。
/AN5 RE0 RD AN5
RE1 WR AN6
RE2 CS AN7
SS 12, 31 6, 30,
DD 11, 32 7, 8,
ST = CMOS 电平施密发器输入 I=输入 O= P=电源
2配置位 CCP2MX 清零时,对 CCP2 使用用引脚分
引脚
PDIP QFN TQFP
82525
92626
10 27 27
6, 29 P
31
7, 28 P
28, 29
33, 34
引脚类型缓冲器
类型
I/O
I/O
I/O
——
ST
I
TTL
I
模拟
ST
I
TTL
I
模拟
ST
I
TTL
I
模拟
PORTE I/O 端口。
I/O。 并行从动端口的控制 (WR 模拟输入 5。
I/O。 并行从动口的写控制 ( CS 模拟输入 6。
I/O。 并行从动端口的片选控制 (RD 模拟输入 7。
请参MCLR
逻辑I/O 引脚的参考地。
逻辑I/O 引脚的正电源
无连
/VPP/RE3 引脚信息。
CS 引脚信息)。
RD 引脚信息)。
WR 引脚信息)。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 21
PIC18F2423/2523/4423/4523
注:
DS39755A_CN 22 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

2.0 振荡配置

2.1 振荡器类型

PIC18F2423/2523/4423/4523 器件可以在 10 不同的 振荡器模式下工作。通过编程配置寄存器 1H 中的配置 FOSC3:FOSC0,用可以选择10 种模式中的一 种模式:
1. LP 耗晶振模
2. XT 晶振 /
3. HS 高速晶振 /
4. HSPLL 使能 PLL 高速晶振 /
5. RC 阻 / 振荡式,通过 RA6 引脚F
6. RCIO 阻 / 振荡式,RA6 用作 I/O引脚
7. INTIO1 内部振荡式,通过 RA6 引脚
OSC/4 RA7 用作 I/O 引脚
F
8. INTIO2 内部振荡式, RA6 RA7 均用作 I/O 引脚
9. EC 带 F
10. ECIO RA6 用作 I/O 引脚的部时钟模

2.2 晶振 / 陶瓷谐振器

XTLPHS HSPLL 振荡式下, 晶振陶瓷谐 器与 OSC1 OSC2 引脚相连来产生振荡2-1
示了引脚方式。 振荡器的设计使用平行晶体
OSC/4
OSC/4 出的部时钟模
2-1 晶振 / 陶瓷谐器工作原理
XTLPHS HSPLL 配置)
(1)
C1
(1)
C2
1: 关于C1C2的初始值,请 参 见表2-12-2
2: 对于 AT形切晶体可能会要一个串
3R
OSC1
XTAL
(2)
RS
OSC2
S
(R
F 定的振荡变化
(3)
RF
PIC18FXXXX
内部
逻辑
休眠

2-1 陶瓷谐振器的选择

使用的
频率
XT 3.58 MHz 15 pF 15 pF
仅供设计参考。
达到振荡 器工作 况,可能要不 同的
。用在应用要V器的性能。
信息,请参见表 2-2 下方的
OSC1 OSC2
DD 温度测试振
注: 使用序切割的晶体,可能会使振荡器产
生的频率超出晶体制商所出的参数 范
注: 如果使用的频率3.6 MHz,建
议使用 HS 式而不使用 XT 式。 HS 式可以在单片机标称的任何 VDD 电压下使 用。如果HS 式,振荡器的增益有 可能器。因此在 OSC2 引脚和 振器之个电 。建议 使用 330R
S
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 23
PIC18F2423/2523/4423/4523

2-2 晶振选择

振荡
类型
晶振频率
LP 32 kHz 18 pF 18 pF XT 1 MHz
4 MHz
HS 4 MHz
10 MHz 20 MHz 25 MHz
仅供设计参考。
使用下面出的晶振在本的启动和运行过程中对
这些作了测试。这些值未经过优化
达到振荡 器工 作况,可能要不同的
。用在应用要V器的性能。
信息,请参下方的 ”。
使用的晶振
32 kHz 4 MHz
25 MHz 10 MHz
1 MHz 20 MHz
1当工作电压 VDD 低于 3V,或在任何电压
下使用频率高3.6 MHz 陶瓷谐振器 时,可能要使用 HS 振荡式或切 到晶振模式。
2: 因为/ 晶振都有其自身特性,
向谐/ 晶振制问外件的适当值
3: 可能需要使用 R
成过如在 LP 式下用的晶振
Timer1 振荡器。RS 可用于在其他 式下降低晶振,在这些式下,波形
可能为一个问。请参AN949
Making Your Oscillator Work
4: 请在应用要V
振荡器性 能。关 于 测试方法,请参
AN949,Making Your Oscillator
Work
已测试
C1 C2
15 pF 15 pF
15 pF 15 pF 15 pF 15 pF
DD 温度测试振
S 免对音叉晶振
DD温度
15 pF 15 pF
15 pF 15 pF 15 pF 15 pF
2-2 所示,在 HS 式下, OSC1 引脚可以
部时钟源
2-2 部时钟输入工作原理
HS 振荡配置
系统的时
开路
OSC1
OSC2
PIC18FXXXX
HS

2.3 部时钟输入

EC ECIO 振荡式要OSC1 引脚与一个外部时 钟源。在上电复位后或从休眠模退出后,不 振荡器起
EC 振荡式下,由 OSC2 引脚振荡频率 4 。此 信 可用于测试或同其他逻辑图 2-3
示了 EC 振荡式的引脚方式。
2-3 部时钟输入工作原理
EC 配置
系统的时
F
OSC/4
ECIO 振荡式的工作方式类似于 EC 式,不同之 在于 OSC2 引脚变成了一用 I/O 引脚。 I/O 引脚PORTA bit 6 RA6图 2-4 示了 ECIO 振荡式下的引脚方式。
2-4 部时钟输入工作原理
系统的时
RA6
OSC1/CLKI
PIC18FXXXX
OSC2/CLKO
ECIO 配置
OSC1/CLKI
PIC18FXXXX
I/O(OSC2)
DS39755A_CN 24 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

2.4 RC 振荡

对于对时的应用,适当选择 RC RCIO 器 件能更本。实际振荡频率由以下
素决定:
电电压
R
工作温度
定同样的器件、工作电压温度以及件值振荡 频率仍会各不相同。这些频率上的差是由以下因
引起的:
正常生产工的差
不同封装类型引线电容的不同 C
EXT 和 CEXT 在容限范内的数值波动
•R
RC 振荡式下,由 OSC2 引脚振荡频率 4 。此信可用于测试或同其他逻辑图 2-5
示了R/C 组合电路方式。

2-5 RC 振荡

VDD
REXT
CEXT VSS
建议: 5K REXT 100 k
EXT(CEXT
OSC1
PIC18FXXXX
OSC2/CLKO
OSC/4
F
EXT > 20 pF
C
EXT 值较
内部

2.5 PLL 倍频器

如果用希望使用低频振荡电路通过晶振将器件频率
调节至最高频率,可以选择使用环(PLL) 电路。对于担心高频晶振引起 EMI 或需要内部振荡器提 高速的用,这样做可能有用。

2.5.1 HSPLL 振荡

HSPLL式使用 HS 振荡器产生最高 10 MHz 后 PLL 振荡频率 4 倍频而产生最高 40 MHz 的内部时钟频率。PLLEN位在此振荡式下
不可用。 仅FOSC3:FOSC0 配置编程HSPLL
= 0110时,晶振可以使用 PLL
2-7 PLL 图(HS 模
  使能 HS 振荡
 使能 PLL
(来配置寄存器 1H
OSC2
OSC1
HS
晶振
F
IN
FOUT
÷4
相位
比较
环路
VCO
系统
MUX
RCIO 振荡(图 2-6)的工作方式类似于 RC 式,
不同之在于 OSC2 引脚变成了一外的通用 I/O 脚。I/O 引脚成为 PORTAbit 6 RA6)。

2-6 RCIO 振荡

VDD
REXT
OSC1
CEXT
VSS
RA6
建议: 5K REXT 100 k
I/O(OSC2)
C
EXT > 20 pF
内部
PIC18FXXXX

2.5.2 PLL INTOSC

INTOSC 配置为主时钟源时,内部振荡模块也可以 使用 PLL。在 此 配置下,用件使能 PLL 并产生最高
32 MHz 的时钟输出。第 2.6.4 节“INTOSC 式下的 PLL述了使用 PLL INTOSC的工作原理。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 25
PIC18F2423/2523/4423/4523

2.6 内部振荡模块

PIC18F2423/2523/4423/4523 器件含有可产生两种 同时的内部振荡模块。这两种均可单 片机的时钟源从而无需在 OSC1 / OSC2 引脚上 使用振荡电路
INTOSC是一8MHz的时钟源,可以用于
直接驱器件时。它可以后分器,器可提供31 kHz 4MHz的时钟频率。当选择了
125 kHz 8MHz的时钟频率时,使能 INTOSC 出, 如果要,可提供 31 kHz
钟源是内部 RC 振荡INTRC,它提供了 标称31 kHz 出。如果选择 INTRC 作为器件的 时钟源,它使能使能以下任一功能时,将 自使能 INTRC
上电时定时器
障保护时钟监视器
看门狗定时器
23.0 节“CPU 的特功能详细讨论功能。 通过配置 OSCCON 存器30 IRCF 位,可
选择钟源频率 (INTOSC 直接频率INTRC 直接 频率INTOSC 后分频率)。此 外31 kHz时钟可
以由 INTOSC INTRC 钟源提供,取决INTSRCOSCTUNE<7>)。

2.6.1 INTIO 模式

使用内部振荡器作为时钟源可以不要使用两个外 器引脚,而可将它们用作数I/O目前两种不 同的配置
INTIO1 式下, OSC2 引脚F OSC1 引脚RA7,用于数字输入出。
INTIO2 式下, OSC1 RA7OSC2 RA6用于数字输入出。

2.6.2 INTOSC 频率

校准了内部振荡模块使之能产生 8.0 MHzINTOSC 频率
INTRC 振荡器的工作独立INTOSC 钟源电压 温度变化导致INTOSC 变化并不一定会使 INTRC 之亦然
OSC/4,而

2.6.3 OSCTUNE 存器

内部振荡器的输出已在出厂前经过校准,但仍可以在用 应用中调整。这 是 通过写 OSCTUNE 存器寄存器 2-1
完成的。OSCTUNE 存器后,INTOSC 的频率将改变
为新的频率INTOSC 会在 1ms定下。在 频率改变期间,代码会。不会有任何迹象表 钟频率发生了改变
OSCTUNE 存器也INTSRC PLLEN 位,它们控内部振荡模块些功能。当选择31 kHz 频率
后,用通过 INTSRC 选择用作时钟源的内部振荡 器。在第 2.7.1 节 “振荡器控制寄存器中对此进行了 更详细明。
在内部振荡式下, PLLEN 控制 PLL 倍频器的工 作。

2.6.4 INTOSC 模式下的 PLL

内部振荡模块可以通过使用 4x 倍频产生 内部振荡器所能产生的时钟速度更快的器件时钟速度。 使能时, PLL 最高可产生 32 MHz 的时钟速度。
HSPLL 式不同,PLL 控制控制位 PLLEN
OSCTUNE<6>使能或其工作。
在以下情况下, PLL 可以与 INTOSC 合使用:
1. 主时INTOSC 钟源(在 CONFIG1H<3:0>
),以及
2. 选择 4 或 8 MHz INTOSC 出。
当上两个满足时,写入 PLLEN 位。

2.6.5 INTOSC 频率漂移

时将内部振荡模块(INTOSC校准 8MHz。但是,此频率可能会着 V
而发生漂移,这一点可能会以各方式影响控制器的 运行。通过修改 OSCTUNE 存器的值可以调节
INTOSC 频率。这不会对 INTRC 钟源频率造 影响
调节 INTOSC 时钟源需要了解何时调节调节的方 以及在些情况下的调整量。 第 2.6.5.1 节“用 EUSART 进行补偿”、第 2.6.5.2 节“用定时器进行补和第 2.6.5.3节“在捕捉模式下用 CCP 模块进行 讨论了种补偿技术,但是可使用其他技术。
DD 电压温度
DS39755A_CN 26 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
存器 2-1 OSCTUNE振荡调节存器
R/W-0 R/W-0
INTSRC PLLEN
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
(1)
(1)
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
TUN4 TUN3 TUN2 TUN1 TUN0
bit 7
bit 6
bit 5 bit 4-0
1: 仅在振荡配置中可用其他情况下,此位不可用,并且读0详细信息,请参2.6.4
2.6.5.1 EUSART 进行补
EUSART 开始产生,或步模式下接收
数据有错时可能进行调节误表示器件时频率要对此进行调节,可以减小 OSCTUNE 存器中的值来降低钟频率一方面,数据中有错 可能明时钟速度太; 要 进行补偿,可 以 增
OSCTUNE 存器中的值来钟频率
2.6.5.2 用定时器进行补
此技术是将器件时参考时钟进行比 较。可能要用到两个定时器外设提供时钟 源,而 由一定的参考源( Timer1 振荡提供时钟源
两个定时器被清零,但由参考提供时的定时 器产生中发生时,使用内部时钟源的定时器被读取且两个定时器均被清零。如果使用内部时钟源 的定时器的则表示内部振荡模块运行 过。要对此进行调整,需减小 OSCTUNE 存器中的
INTSRC内部振荡低频钟源选择
1 = 8MHz INTOSC钟源31.25 kHz 器件时钟(使能 256 频) 0 = 直接INTRC 内部振荡器的 31 kHz 器件时
PLLENINTOSC 倍频PLL 使能位
1 = INTOSC 使能 PLL 4MHz8MHz 0 = PLL
实现为 0
TUN4:TUN0频率调节
01111 = 最高频率
00001 00000 = 心频率振荡模块运行校准频率上
11111
10000 = 最低频率
INTOSC 式下的 PLL
(1)
2.6.5.3 捕捉模式下用 CCP 模块进行补
CCP 模块可以使 用由 内部振荡模块提供时
独立运行 Timer1 Timer3周期部事件
即交流电源频率)。在 CCPRxH:CCPRxL 存器中捕
并记第一事件的时以后使用。
导致捕捉时,要用第事件的时减去第一事件 的时间。由于 外部事件的周期知的,因此 可以 事件之的时差。
如果得的时间比计的时大很则表示内部 振荡模块运行过快;要对此进行补偿,减小 OSCTUNE 寄存器中的。如果得的时间比计 的时则表示内部振荡模块运行过OSCTUNE 存器中的值来补偿。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 27
PIC18F2423/2523/4423/4523

2.7 钟源振荡器切

辅助振荡器是指那些不与 OSC1OSC2引脚 部时钟源使在控制于功管理式时这些时
PIC18器件一PIC18F2423/2523/4423/4523 系列包含许将器件时钟源从振荡器切换到备用低频钟源的功能。 PIC18F2423/2523/4423/4523 器件提供 了两个用时 钟源 当使能备用时钟源时,可以使用多种管理工作式。
,这些器件3 钟源
振荡
辅助振荡
内部振荡模块
振荡器包括晶振谐振式、RC 式、部时钟模式和内部振荡器 模块。特定 的 模 式由
FOSC3:FOSC0 配置位定义。这些式的详细信息 在本面的内容中作介绍
源仍工作。 PIC18F2423/2523/4423/4523 器件将 Timer1 振荡器作
辅助振荡器。此振荡在所有功管理式中)通 常时时功能的时
部分情况下,在 RC0/T1OSO/T13CKI RC1/T1OSI 引脚之有一32.768 kHz 的时钟晶振。与 LP 振荡电路类似,在引脚与地之有负容。
将在第 12.3 节“Timer1 振荡器”中详细讨论 Timer1 振荡器。
了作为主时钟源,内部振荡模块可以作为功管理式的时钟源INTRC 源也可作为功能 部件 WDT 障保护时钟监视器的时钟源
2-8 示了 PIC18F2423/2523/4423/4523 器件的时钟 源。关于配置寄存器的详细信息,请参23.0
CPU 的特功能

2-8 PIC18F2423/2523/4423/4523

PIC18F2423/2523/4423/4523
OSCCON<6:4>
8 MHz 4 MHz 2 MHz 1 MHz
500 kHz
后分
250 kHz 125 kHz
31 kHz
1 0
OSCTUNE<7>
OSC2
OSC1
T1OSO
T1OSI
主振荡
辅助振荡
OSCCON<6:4>
休眠
T1OSCEN
使能 振荡
内部
振荡
模块
8 MHz
钟源
INTRC
钟源
31 kHz(INTRC)
OSCTUNE<6>
8 MHz
INTOSC
4 x PLL
111 110 101
100 011 010 001 000
LP、XT、HS、RCEC
HSPLL INTOSC/PLL
内部振荡
MUX
FOSC3:FOSC0
T1OSC
钟 控制
钟源选项
供其他模块使用
WDTPWRT、FSCM双速启动
外设
MUX
CPU
IDLEN
OSCCON<1:0>
DS39755A_CN 28 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

2.7.1 振荡控制存器

OSCCON 存器 存器 2-2)控制全功耗模式和功
管理式下器件时工作的多个方面。 系统钟选择SCS1:SCS0 用于选择钟源。可用的
钟源包括主时钟(FOSC3:FOSC0 配置位定义) 辅助钟(Timer1 振荡器)和内部振荡模块当写多个位之后,接着是一的时换间
然后时钟源立即改变。在所有形式的位中 SCS被清零
内部振荡频率选择IRCF2:IRCF0)选 择 内部振荡模块频率来器件时。这些频率可以是 INTRC钟源频率INTOSC时钟源频率(8MHzINTOSC 后分器产生的频率之一 31.25 kHz 4MHz) 。如果器件时由内部振荡模块提供,改变 这些位的状态会使内部振荡立即改变。器件位 时,内部振荡模块认输频率设1MHz。
当选定了 31 kHz的标称频率(IRCF2 :IRCF0 = 000 时,用可以选择用作时钟源的内部振荡器。这通过
OSCTUNE 存器中的 INTSRC 位(OSCT UNE< 7>)完。将1 选择 INTOSC 作为时钟源,并通过使能
INTOSC 后分器的 256 频输出,使钟源输
31.25 kHz 的时。将 INTSRC 清零选择 INTRC
标称31 kHz作为时钟源,同时INTOSC
钟源 选项使用选择调节确的 INTOSC作为时
钟源,同时以非常低的时钟速运行 INTSRC 的设如何,INTRC 总是作为看门狗定时器和障保护时钟监视器之类功能部件的时钟源
OSTSIOFST1RUN 位指当前提供器件时的是
钟源OSTS 1 振荡器起定时器主时在主时钟模式下作为器件时IOFS 1 明内部振荡模块已定并在 RC 钟模式下提
供器件时T1RUN 位(T1CON<6>1Timer1 振荡辅助钟模式下提供器件时。在功管理式下,任何时3 位中有一1。如果这
些位置 1则表 当前钟源INTRC,或 INTOSC 刚刚定。
IDLEN SLEEP 指令时器件是进入休眠模
个空闲模式。 第 3.0 节“ 管理”更详细讨论OSCCON
存器中标位和控制位的使用。
1: 要选择辅助钟源须使能 Timer1 振荡
器。通过Timer1 控制存器中的 T1OSCEN T1CON<3>1,可以 使能 Timer1 振荡器。如果使能 Timer1 振荡器,选择辅助钟源的任何试都
2: 建议在Timer1振荡定工作之后再选择
辅助否则当 Timer1 振荡器起时可
能会发生时。

2.7.2 振荡器转

PIC18F2423/2523/4423/4523 器件包含了在切
钟源时发生时钟“毛刺”的电路。在切时,器 件时会有短暂该停的时钟源两个周期新时钟源个周期的和。此公式 设新时钟源定的。
3.1.2 节“进入功耗管理模式”详细讨论了时
2007 Microchip Technology Inc. 初稿 DS39755A_CN 29
PIC18F2423/2523/4423/4523
存器 2-2 OSCCON振荡控制存器
R/W-0 R/W-1 R/W-0 R/W-0 R
IDLEN IRCF2 IRCF1 IRCF0 OSTS IOFS SCS1 SCS0
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
(1)
R-0 R/W-0 R/W-0
bit 7
bit 6-4
bit 3
bit 2
bit 1-0
1状态取决IESO 配置位的状态
2: 时钟源INTSRC OSCTUNE<7>)选择,请参文。 3位时 INTOSC 认输频率
IDLEN空闲使能位
1 = SLEEP 指令后器件进入空闲模 0 = SLEEP 指令后器件进入休眠模
IRCF2:IRCF0:内部振荡频率选择
111 = 8 MHz INTOSC 直接驱钟) 110 = 4 MHz
101 = 2 MHz 100 = 1 MHz 011 = 500 kHz 010 = 250 kHz 001 = 125 kHz
000 = 31 kHz (来INTOSC/256 直接INTRC
OSTS振荡器起状态
1 = 振荡器起定时器已结振荡运行 0 = 振荡器起定时器进行振荡未就
IOFSINTOSC 频率定位
1 =INTOSC频率已 0 =INTOSC频率
SCS1:SCS0系统钟选择
1x = 内部振荡模块 01 = 辅助 (Timer1)振荡 00 = 振荡
(3)
(1)
(2)
DS39755A_CN 30 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

2.8 管理式对各钟源影响

当选定了 PRI_IDLE 式后,定的主振荡器会续运 行而不中。对于所有其他功管理式,使用 OSC1
引脚的振荡器会被禁OSC1 引脚以及由振荡器使 用的 OSC2 引脚将会停止振荡
辅助钟模式下SEC_RUNSEC_IDLE),Timer1
振荡器作为器件时钟源工作。如果需要,Timer1 振荡可以运行在所有功管理式下为 Timer1 Timer3
提供时。 在内部振荡式下RC_RUN RC_IDLE),由 内
振荡模块提供器件时钟管理 式,31 kHz 的 INTRC输出均可被直接用来提供时钟并
使能来支多种的功能部件 关于 WDT障保护时钟监视器和双速启动的更信息,请参 23.2 节“看门狗定时 器WDT)”、第 23.3 节“双 速启动”和第 23. 4 节“故障保护时钟监视器” )
8MHzINTOSC 出可以直接用于为器件提供时由后分进行用作器件 时。如 果直接INTRC 出提供时则会禁INTOSC 出。
如果选择休眠模式,所有的时钟源都停止。因为
休眠模消除了所有晶体管的电流休眠模式能实的器件电流耗(泄漏电流)
休眠期间使能任何片功能将增加休眠时的电流。要 WDT 工作,需要使能 INTRCTimer1 振荡
器可以用时时提供时钟源。不要器件时钟源
的其他功能部件可以工作即,MSSP 从器件、PSP、
INTn 引脚等)。在第 26.2 节“直流特性:和供 电流”中列出了可能显著增加电流耗的外设。

2.9 上电延时

两个定时器控制上电时,这数应用都无需外
电路。上电时可以确保在器件电源(常和主时定工作之器件保持在状态
关于上电时的更信息,请参4.5 节“器件 定时器”。
第一定时器是上电时定时器 PWRT),在上电 它提供了定的间(26-10 中的参数 33)。
清零 = 0PWRTEN 二个定时器是振荡器起定时器 OST,用于在晶
使片保持在状态 LPXT HS
)。 OST 1024 个振荡周期振荡器为器 件提供时
当选定 HSPLL 振荡式时,器件将在 HS 式下的 OST 时之后保持 2ms状态,这可使 PLL 定为输入钟频率
POR 之后有一个 T
参数 38,在此期间控制器为行指令做。此延时与其他延时同时发生。ECRCINTIO 式之一用作主时钟源时,这可能是一的时。
配置位可使能它。
CSD 的延26-10 中的

2-3 休眠模式下 OSC1 OSC2 引脚的状态

振荡 OSC1 引脚 OSC2 引脚
RC INTIO1 ,应经外上拉高电平 逻辑低电平 (钟 4 频输 RCIO
INTIO2 ECIO EC
LPXT HS 相器被禁止电平 相器被禁止电平
注: 关于由休眠MCLR
,应经外上拉高电平 配置PORTA bit 6 配置PORTA bit 7 配置PORTA bit 6
部时钟源 配置PORTAbit 6部时钟源 逻辑低电平 (4 频输
位引起的时,请参4.0 节“复位”中的4-2
2007 Microchip Technology Inc. 初稿 DS39755A_CN 31
PIC18F2423/2523/4423/4523
注:
DS39755A_CN 32 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

3.0 管理

PIC18F2423/2523/4423/4523器件提供 7工作 式,可以更进行管理。这些工作式提供了
多种选择,可在源受限的应用
管理式有
运行模
空闲模
休眠模
这些类要为器件的些部分提供时,有时要定运行空闲模式可以使用
钟源 (主时钟源辅助钟源或内部振荡)中的任 意一休眠模不使用时钟源
®
管理式包括PIC的功能。其中之一是其他 PIC18 器件提供的时
功能,功能许使用 Timer1 振荡器代替主振 荡器。节的功能包括所有 PIC 器件提供的 眠模式,在该模式下,器件所有的时钟都停止

3.1 选择管理

选择功耗管理模式之前需先做两个定:是 CPU 提供时钟源以及选择钟源IDLEN
OSCCON<7> )控制 CPU 提供时钟源,而
SCS1:SCS0 位 (OSCCON<1:0>)选择钟源 3-1 总结了各个模式下的位、时钟源和受影响模块
器件提供的

3.1.1 钟源

SCS1:SCS0 许为功管理式在钟源中任 其一。它们是:
主时,由 FOSC3:FOSC0 配置位定
辅助钟(Timer1 振荡
内部振荡模块 (用于 RC

3.1.2 进入管理

可以通过装OSCCON 存器管理式切 换到一种功耗管理模式。SCS1:SCS0位选择要使用的 钟源。更这些位会导致立即换到新的时钟源
定新时钟源正在运行)。此切换可能会引起时钟
时。第 3.1.3 节“时钟状态指及其后将会讨论这些
SLEEP指令可以发进入管理空闲模式或休眠式。最实际进入个模式由 IDLEN 位的状态决定。
管理式并不是要所有的位,而是取 决当前 式和将要切换到式。通过在发 出
SLEEP指令改振荡选择位或更IDLEN位可完 成多种模式转。如果已经正配置IDLEN 位,可能
SLEEP 指令就实现式切
3-1:功管理
休眠
PRI_RUN N/A 00
SEC_RUN N/A 01 RC_RUN N/A 1x PRI_IDLE 100
SEC_IDLE 101 RC_IDLE 11x
1SLEEP 时, IDLEN 到反
2: 包含 INTOSC INTOSC 后分器以及 INTRC 钟源
IDLEN
OSCCON 模块
(1)
SCS1:SCS0<1:0> CPU
0 N/A
闭无——所有时被禁
提供时 提供时 主时——LPXTHSHSPLLRCEC
提供时 提供时钟辅——Timer1 振荡 提供时 提供时 内部振荡模块
提供时 主时——LPXTHSHSPLLRC
提供时钟辅——Timer1 振荡 提供时 内部振荡模块
外设
可用时振荡
(2)
(2)
(2)
和内部振荡模块 这是正常的全功行模式。
EC
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 33
PIC18F2423/2523/4423/4523

3.1.3 状态

两个钟源间进行的时钟源两个周期与新时钟源个周期的和。此公式 新时钟源定的。
以下位用于当前的时钟源及其状态。它们是:
•OSTS(OSCCON<3>)
•IOFS(OSCCON<2>)
• T1RUN T1CON<6>
,在一个给定的功管理式中,这位中有一位会1OSTS 1 时,明由主时
提供器件时IOFS 1 时,明由 INTOSC 出提供定的 8MHz的时钟源到器,实际上由分频器件时T1RUN 1 时,表明由 Timer1 振荡器提供时钟源。如果这些位均不1则表明要INTRC 钟源为器件提供时,要 INTRC 钟源稳定。
如果用 FOSC3:FOSC0 配置位将内部振荡模块配置 为主时钟源PRI_RUN PRI_IDLE 式中,
OSTSIOFS位可能同时1。这示主时钟(INTOSC)正 在产生定的 8MHz输出。进入工作频率相同
管理 RC 式将清零 OSTS 位。
1: 在仅IRCF 位时应别小。如果
DD 电压于 3V,可以选择比低 VDD
V
所能持的时钟速违反 VDD/FOSC 规范会导致器件运行正常
26-1 26-2
2执行SLEEP指令并不一定会将器件于休
眠模式。它是作为件,让器件进 入休眠模式或一种空闲模式,具体种模
式由 IDLEN 位的置决定。

3.1.4 SLEEP

使用 SLEEP 指令调用功管理式时,具体进入何种模 式由该指令IDLEN位的置决定。如果SLEEP 指令,器件将进入由此时 IDLEN 定的 功管理式。如果 IDLEN ,器件将进入由新 的定的新的功管理式。进入退空闲模式 不会影响 IDLEN 位的状态

3.2 运行模式

运行模式中,内外设的时钟都的。这些 行模式之的区在于时钟源的不同。

3.2.1 PRI_RUN

PRI_RUN 式是单片机的正常全功行模式。
使能了双速启动 (详细信息,请参23.3 节 “双速 启动”),该模是器件位后的认模式。在此模式
下, OSTS 置 1。如果内部振荡模块为主时钟源 IOFS 可能置 1 2.7.1 节 “振荡控制
”)。

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 振荡续运行
DS39755A_CN 34 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
3-1 进入 SEC_RUN 式的转
Q4Q3Q2
Q1
Q1
Q4Q3Q2 Q1 Q3Q2
T1OSI OSC1
CPU
外设
程序
数器
1 :时换通常发生在 2-4 个 T
123 n-1n
OSC 内。
(1)
PC + 2PC
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
(2)
PC + 2
Q1
PC + 4
Q2
PC + 4
SCS1:SCS0 改变
1TOST = 1024 TOSC TPLL = 2 ms 值)。这些时间间
2:时换通常发生在 2-4 T
OSC 内。
OSTS置 1

3.2.3 RC_RUN

RC_RUN 式下,内部振荡模块使用 INTOSC 多 路开关的出作为 CPU 外设的时钟源。在 此 式下,
主时。在使用 INTRC 钟源时,此式是在代 码行期间所有运行模式中最节运行模式。它 非常适用于对时不是一高速 的应用。
如果主时钟源为内部振荡模块(INTRC 或 INTOSC), 在代码行期间PRI_RUN RC_RUN 两种模式区 。但是 在 进入退RC_RUN 式时会发生时时。因此,如果主时钟源为内部振荡模块,建 议不要使用 RC_RUN 式。
通过SCS1 1 可以进入式。SCS0 位可,但是建议将 SCS0 清零而保证与
器件的容性。当将时钟源换到 INTOSC多路 3-3时,主振荡器将关闭并OSTS
被清零。在任何时IRCF 位可以立即钟速
注: 在仅改 IRCF 位时应别小。如果
DD 电压于 3V,可以选择比低 VDD 电压
V
所能持的时钟速度 更 度。违反
VDD/FOSC 规范会导致器件运行正常( 26-1 26-2
2007 Microchip Technology Inc. 初稿 DS39755A_CN 35
PIC18F2423/2523/4423/4523
如果 IRCF 位和 INTSRC 位均被清零,将禁止 INTOSC出并IOFS 位将保持清零;不会有关于当前钟源
的任何示。由 INTRC 钟源提供器件时。 如果IRCF清零状态发生改变(因而使能INTOSC
,或者 INTSRC 被置 1,在 INTOSC 定后 IOFS 位将被置 1。在一个 T
IOBST 之后, INTOSC
钟源定,此时器件时续运行。 如果之IRCF 为一个非,或SCS1
INTSRC 已经置 1 INTOSC 已达到定, IOFS 位将保持置 1 状态
3-3 RC_RUN 式的转
Q4Q3Q2
Q1
123 n-1n
INTRC
OSC1
CPU
外设
程序
数器
Q1
RC_RUN 式转换到 PRI_RUN 期间,在主 时钟处启动状态时,器件将使用 INTOSC多路开 关的出作为时钟源主时准备好以后,时
主时钟( 3-4换完成后,IOFS 清零OSTS 被置 1 由主时提供器件时。这
不会影响 IDLEN SCS 位。如果使能了 WDT障保护时钟监视器, INTRC 钟源续运行
Q4Q3Q2 Q1 Q3Q2
(1)
PC + 2PC
PC + 4
1 :时换通常发生在 2-4 个 T
OSC 内。
3-4 RC_RUN 式切换到 PRI_RUN 式的转
Q1
Q4
Q1
INTOSC
用器
OSC1
PLL
CPU 时钟
外设
程序
数器
SCS1:SCS0 改变
1TOST = 1024 TOSC TPLL = 2 ms 近似值)。这些时间间
2:时换通常发生在 2-4 T
TOST
(1)
PC
OSC 内。
Q2
Q3
(1)
TPLL
OSTS 置 1
12
n-1 n
(2)
PC + 2
Q2
Q3 Q4
Q1
Q2
PC + 4
Q3
DS39755A_CN 36 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

3.3 休眠模

PIC18F2423/2523/4423/4523 器件的功管理休眠模式和 所有其他 PIC 器件提供的统休眠模式相同 。通过清零 IDLEN (器件位时的状态)并SLEEP 指令进入模式。这将关闭所选择振荡器 3-5),并 将所有的时钟源状态清零
任何其他进入休眠模式不要切。这是因 为单片机一进入休眠模要时了。如果选择WDTINTRC时钟源工作。如果使能了Timer1
振荡器,它续运行
休眠模式中发生唤醒事件时 (通过位或
WDT ,在 时 钟源(通过 SCS1:SCS0 选择) 备好器件将有时钟源 ( 3-6,或如果使
能了双速启动障保护时钟监视器,它将使用内部振 荡模块作为时钟源 (23.0 节“CPU 的特 ”)。在 这两种情况下,当由主时提供器件时时, OSTS位将1。这种唤醒不会影响 IDLEN SCS 位。

3-5 进入休眠模式的转

Q4Q3Q2
Q1Q1
OSC1

3.4 空闲模

空闲模许在外设继 续 工作的同时关单片机的
CPU选择特定的空闲模许用户进管理功 如果在SLEEP 指令时,IDLEN 被置1外设将
使用由 SCS1:SCS0 选择的时钟源,而 CPU 有时
。时钟源状态位不影响。将 IDLEN1执行SLEEP 指令可以定的运行模快速换到相应的空闲模
式。 如果选择WDTINTRC 钟源工作。如果使
能了 Timer1 振荡器,它续运行。 由于 CPU 行指令,器 件 通过WDT
时或从空闲模退出。当发生唤醒事件时,CPU会 在其准备好执代码时一T 中的参数 38)。CPU 开始代码时,它将沿 前空闲模式所使用的时钟源如,当从 RC_IDLE 唤醒时,将使用内部振荡模块CPU 外设提供 时钟(RC_RUN 模式)。这种唤醒不会影响 IDLENSCS 位。
当处于任何空闲模式或休眠模式中时, WDT 时会导WDT 唤醒进入当前SCS1:SCS0 定的运行 模式。
CSD 表 26-10
CPU
外设
休眠
程序
数器
PC + 2PC

3-6 从休眠模唤醒的时换(HSPLL)

Q1 Q2 Q3 Q4 Q1 Q2
OSC1
PLL
CPU 时钟
外设
程序
数器
1T
(1)
Tost
唤醒事件
OST = 1024 TOSC; TPLL = 2 ms 值)。这些时间间
TPLL
PC
OSTS 置 1
(1)
Q3 Q4 Q1 Q2
PC + 2
Q3 Q4
PC + 4
Q1 Q2 Q3 Q4
PC + 6
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 37
PIC18F2423/2523/4423/4523

3.4.1 PRI_IDLE 模式

种低耗空闲模式中,该模式不会主器件 时。由于时钟源或是其他振荡器转
换过来用此式可以使对时要求较高的应用以器件运行并使用确的主时钟源
可以通过IDLEN 置 1 SLEEP 指令实现 PRI_RUN 进入 PRI_IDLE 式。如果器件在
种运行模式,可以IDLEN 1清零 SCS 位并SLEEPCPU 被禁,但外设仍 使用由FOSC3:FOSC0配置定的主时钟源为其提供 时OSTS 位保持1 3-7)。
发生唤醒事件时,由主时钟源为 CPU 提供时钟。在 唤事件和代码行开始间需要一T
CSD时。
时用让 CPU 好执行指令准备。在 唤醒之后, OSTS 位保持置 1 状态。这种唤醒不会影响 IDLEN SCS 3-8
3-7 进入空闲模式的转
Q1
Q1
Q2
Q3
Q4

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 指令T1OSCEN1就会忽SLEEP 指令并不会进入 SEC_IDLE 式。如果使 能了 Timer1 振荡器,但它未运行外设将会到该振荡器起振。在这 情况下,最初的振荡运行很不稳定,可 能会导致无果。
CSD 间间, CPU
OSC1
CPU
外设
程序
数器
PC
3-8 从空闲模唤醒进入运行模式的转
Q1 Q3 Q4
OSC1
CPU
外设
程序
数器
 唤醒事件
TCSD
PC
PC + 2
Q2
DS39755A_CN 38 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

3.4.3 RC_IDLE

RC_IDLE CPU,但由使用 INTOSC
路开关的内部振荡模块外设提供时该模空闲期间对功耗进行控制
可以通过IDLEN1SLEEP指令从RC_RUN
进入式。如果器件种运行模式,可以IDLEN 1SCS1 1
SLEEP虽然 SCS0 值常常被,但建议将其,这将保证与未来器件的容性。通过
SLEEP指令之IRCF 位可以使用 INTOSC 多路开来选择的时钟频率当时钟源切换到 INTOSC 路开关时,主振荡OSTS 被清零
如果 IRCF 为任何,或 INTSRC
1,就会使能 INTOSC 出。在一T
26-10 中的参数 39之后 INTOSC 出将
定,IOFS 置 1外设的时续运行 INTOSC 钟源定。如果之IRCF 位为一
或者SLEEP 指令INTSRC1,并当前 INTOSC 源已经定,IOFS位将保持置 1状态。
如果IRCFINTSRC位全部清零不会使能INTOSC出, IOFS 位将保持清零状态,此时将不会有当前 钟源的任何示。
当唤醒事件发生时,外设INTOSC 多路开关作为
钟源。在唤醒事件后的 TINTOSC 多路开关作为时钟源代码。这种唤醒不 会影响 IDLEN SCS 位。如果使能了 WDT 障保 护时钟监视器, INTRC 钟源续运行
CSD 之后,CPU 开始使
IOBST

3.5 退出空闲休眠模

由中位或 WDT 从休眠模式或任何空闲 式的退出。本讨论管理退出的发方 式。在管理式中已经讨论其时钟源
系统的作用 3.2 节 “运行模、第 3.3 节“休 眠模和第 3.4 节 “空闲模”)

3.5.1 通过中退出

任何可用的中断源都导致器件从空闲模式或休眠模退到运行模式。要使能此功能,须将对应 INTCONPIE 存器中的中断源许位1 许中断源 相应的中1 时,退作。
当通过断从空闲休眠模退出时,如果 GIE/GIEHINTCON<7>1程序就 行代码。否则代码行或开始行,而9.0 节“中断”)。
唤醒事件之后要一定的 T退休眠空闲模式。CPU 要此延时来准备执行 代码。在时后的第一钟周期重开始执行指令
CSD 时,器件

3.5.2 通过 WDT 退

WDT 时发生时器件所的不同功管理
式会引发不同的作。
如果器件不在代码 所有空闲模式和休眠模), 时将导致从管理退出见第 3.2 节“运行 模式 和第 3.3 节“休眠模式”)。如 果器件正在代码(所运行模),超时将导致 WDT 复位见第 23.2 节“ 看 门狗定时器 WDT)”)
SLEEP CLRWDT 指令当前选择的时钟源失
如果使能了障保护视器以及如果器件时钟源为
内部振荡模块OSCCON 寄存器中的 IRCF位, 均将清零 WDT 定时器和后分器。

3.5.3 通过复退

通常,器件通过振荡器起定时器OST保持在
状态到主时钟就绪。主 时 钟就绪后,OSTS1, 器件开始代码。如果以内部振荡模块作为新的时
钟源IOFS 位将1
从复状态退到开始代码之唤醒 前后的时钟源以及主时钟振荡器的类型如果新的时钟 源为主时钟)定。 3-2 总结退时。
可以在主时钟就前开始代码。如果使能了双速 启动 (23.3 节 “双速启动”)障保护时钟监
视器23.4 节“故障保护时钟监视器”),器件可 以在被清除之后上开始代码。由内部振荡模块INTOSC多路开关的出作为代码的 时钟源代码时,由内部振荡模块提供时钟源 主时钟就;或在主时钟就前进入管理 式,后将关主时
2007 Microchip Technology Inc. 初稿 DS39755A_CN 39
PIC18F2423/2523/4423/4523

3.5.4 振荡器起时的情况下退

些功管理退全不OST 时。有以 两种情形:
主时钟源停止PRI_IDLE
主时钟源不是 LPXTHSHSPLL 中的任意一
在这些情况下,要主时钟源已经运行
PRI_IDLE,要它本来就不振荡器起RCEC INTIO 振荡。但是,当器件退
休眠空闲模式时,在唤醒事件之后要一
CSD 隔的时,以便让 CPU 准备好执代码。在
T
时后的第一个钟周期重开始行指令
种模
3-2 通过复从休眠模式或任何空闲模唤醒退时 (钟源分类
唤醒的时钟源 唤醒之后的时钟源 退
LPXT HS
主器件时
PRI_IDLE
T1OSC INTRC
INTOSC
(1)
(2)
(休眠模
1当从休眠模式和所有空闲模唤醒时都需T
3.4 节“空闲模式”)。位时, INTOSC 认值1 MHz
2: 包括 INTOSC 8 M Hz 钟源和后分器产生的频率 3T
OST 振荡器起定时器的间(参数 32)。 t
称为 T
4: 在 INTOSC 周期——T
PLL
IOBST 参数 39期间,代码
HSPLL
EC RC
INTOSC
(2)
LPXT HS
EC RC
INTOSC
(1)
LPXT HS
EC RC
INTOSC
(1)
LPXT HS
EC RC
INTOSC
(1)
(1)
CSD
T
(3)
OST
T
(3)
rc
(1)
CSD
T
(4)
TIOBST
(4)
OST
T
(3)
rc
(1)
CSD
T
(3)
OST
T
(3)
rc
(1)
CSD
T
(4)
TIOBST
CSD 参数 38时,时与所的其他时并行(
PLL 时定时器的间(参数 F12
rc
钟就状态
OSCCON
OSTS
IOFS
OSTSHSPLL TOST + t
IOFS
OSTSHSPLL TOST + t
IOFS
OSTSHSPLL TOST + t
IOFS
DS39755A_CN 40 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

4.0

PIC18F2423/252 3/4423/4523 器件有以下不同的 位方式:
a) 上电复POR b)正常工作状态下的 MCLR c管理式下的 MCLR d) 看门狗定时器 WDT)复行程序期间) e编程欠压复BOR fRESET 指令 g堆栈满 h堆栈
讨论MCLR
POR BOR 产生的位,并
及各种启动定时器的工作方式。堆栈复位事件将在5.1.2.4 节“堆栈满和下溢复位”中讨论。 WDT 位将在第 23.2 节“看门狗定时器 WDT)” 中讨论

4-1:片上复位电路

RESET
指令
堆栈
堆栈满 /
4-1 出了片上复电路

4.1 RCON 存器

通过 RCON 存器 存器 4-1跟踪器件位事件。存器的5明是已经发生了特定的位事件。 大多数情况下,通过事件将这些位清零,而且必
在事件发生后由应 用程序将它们1。需要读取所有 这 些标志位确定刚发生的位的类型。在第 4.6 节“ 存器的复位状态中对此进行了更详细 说明。
RCON 寄存器中置中断优先级的控制IPEN)和BOR 进行软控制控制SBOREN)。在第 9.0
断”讨论了中断优先级。在4.4 节“欠压复BOR)”讨论 BOR
Sleep
WDT
DD 上升
欠压 复
OST
PWRT
MCLRE
POR
BOREN
1024 个周期
10 步计数器
65.5 ms
11 步计数器
MCLR
VDD
OSC1
1: 这是自内部振荡模块INTRC 钟源,它与 CLKI 引脚RC 振荡关。
2时情况请参见表 4-2
( )_IDLE
V
沿检测
OST/PWRT
32 µs
(1)
INTRC
S
Chip_Reset
R
Q
使能 PWRT
使能 OST
(2)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 41
PIC18F2423/2523/4423/4523

存器 4-1 RCON控制存器

R/W-0 R/W-1
IPEN SBOREN
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
(1)
U-0 R/W-1 R-1 R-1 R/W-0
—RITO PD POR BOR
(2)
R/W-0
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1
bit 0
IPEN:中断优先级使能位
1 = 使能中断优先 0 = 断优先PIC16CXXX
(2)
(1)
SBORENBOR 件使能位
如果 BOREN1:BOREN0 = 01 1 = 使能 BOR 0 = BOR
BOREN1:BOREN0 = 00、 10 11
如果
被禁0实现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
1: 如果使能了 SBOREN 位,其状态1 ;否则0
2POR 实际由器件位的类型定。更信息,请参存器下方的 和第 4.6 节“
器的状态”。
1: 建议在检测到上电复位后,将 POR 1,以便续检测上电复位。
2当 BOR
DS39755A_CN 42 初稿 2007 Microchip Technology Inc.
0 且 POR 1 定在 POR 之后立即件将 POR 1,可以发生了欠压复位。
PIC18F2423/2523/4423/4523

4.2 MCLR

MCLR 引脚提供了用外发器件位的方法。将引脚拉低可以产生位信。这些器件在 MCLR
有一器,检测滤除小
扰脉冲。 任何内部位,包括 WDT 位,均不能将 MCLR
引脚
动为低电平PIC18F2423/2523/4423/4523 器件中,可以用
MCLRE 配置禁止 MCLR
输入。当MCLR 时,
引脚将为一字输入引脚。更信息,请参
10.5 节“PORTETRISE LATE 存器

4.3 上电复POR

VDD 个门限时,就会在片产生上电复。这使得 V 器件会以初始化状态启动
为了利用 POR 电路要将 MCLR 引脚通过个电
1k10 k)连 V
产生上电复通常RC 件。V
速率已指参数 D004速率缓慢 情况,请参4-2
器件开始正常工作 即,退状态时,器件的 工作参数 (电压频率温度等满足,以确 保其正常工作。如果不满足这些件,器件保 持在状态满足工作件为
POR 事件 由 POR POR 时,位的状态被置0 任何其他位事 件均不能改变它。任何件事件均不能将 POR
1。要 多个事件,用POR 之后用件手位为 1
DD 达到满足器件正常工作的数时,
DD。这 可以
DD
RCON<1>)捕发生
位为
4-2 上电复电路 (VDD 缓慢上电
的情况
V
VDD
1: 仅当 VDD 上电速率过上电复
DD
D
R
R1
C
电路D 于在 V
2: 建议 R < 40 k,确 保 R 压降符合器
件的规范。
3R1 1 k将限制任何电流从外C 流入
,以免由于电(El ectrostatic
MCLR DischargeESD电过Electrical OverstressEOS)导致 MCLR
MCLR
PIC18FXXXX
DD 时使
/VPP 引脚
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 43
PIC18F2423/2523/4423/4523

4.4 欠压复BOR

PIC18F2423/252 3/4423/4523器件有一BOR 电路, 它将为用提供一系列配置选项。 BOR
BORV1:BORV0 BOREN1:BOREN0 配置控制4 BOR 配置纳在 4-1 中。
BOR BORV1:BORV0 。如果使能了 BOR当 V 于 T V
位。发生欠压复位以后,片将保持这状态V
如果使能了上电时定时器,它将在 V V
BOR 之后开始工作,并使片在时 TPWRT参数 33
期间保持位。如 果 在上电时定 时器运行过程中, VDD 电压降到VBOR 以下,片将回到欠压复 状态上电时定时器会恢复为初状态。一V 电压上VBOR 上电时定时器将
时。 BOR 上电时定时器 PWRT是分别配置的。使
BOR 位并不会自使能 PWRT

4.4.1 件使能 BOR

BOREN1:BOREN0 = 01 时,用可以用件使能或
BOR。这可通过控制SBOREN RCON<6> 完成。如所述,将 SBOREN 1 可使能 BOR清零 SBOREN 将完禁止 BORSBOREN 工作在这式,其他情况下它将0
DD 跌落到低于 VBOR 参数 D005的时
BOR 参数 35)就位器件。如果 VDD 跌落
BOR 以下的时于 TBOR 可能发生可能不会发
DD 到 VBOR
DD
DD
控制 BOR 位可使用能更灵活地定应用程序 以使其适应境,而无需通过对器件重新编程来更改 BOR 配置。它还允许用户通过减少 BOR 耗的电流调节器件的功BOR 电流通常很小, 但是它可能对应用有一些影响
注: 即使BOR 受软控制时, BOR
平仍将由 BORV1:BORV0 配置该 值不能用件更

4.4.2 检测 BOR

使能 BOR 后,当发生 BOR POR 事件时,BOR位位为 0。因此通过BOR 发生BOR 事件。更可的方法是同时POR
状态假定在发生任何 POR 事件后,POR 位
BOR
立即用软位为 1。如果 BOR可以已经发生了 BOR 事件。
位的状态很确定是
0 同时 POR 1

4.4.3 在休眠模式下禁止 BOR

BOREN1:BOREN0 = 10 时, BOR 受硬控制
前面述的那样工作。器件进入休眠模式时, 会自BOR当器件返回到任何其他工作模式时, 将自动重新使能 BOR
式使应用能在有代码的同时从欠压状态 ,这是器件最需BOR 保护的况。同时,通过
增加的 BOR 电流,可以去休眠模式下的
4-1 BOR 配置
BOR 配置
BOREN1 BOREN0
00 01 10 11
SBOREN
RCON<6>
状态 关位 BOR ;必须对配置编程才能使能 BOR
可用 件使能 BOR 工作式由 SBOREN 控制
关位 件在运行空闲模式下使能 BOR,在休眠模式下关位 件使能 BOR
BOR
DS39755A_CN 44 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

4.5 器件位定时器

PIC18F2423/2523/4423/4523 器件包含了三个独立的片定时器,有调节上电复过程。它们的主要功能 是确保在代码执行器件时定。这些定时器是:
上电时定时器 PWRT
振荡器起定时器 OST
•PLL时定时器

4.5.1 上电时定时器 PWRT

PIC18F2423/2523/4423/4523 器件的上电时定时器
PWRT是一11 数器,它使用 INTRC 钟源
作为时钟输入。定时器可产生大约 2048 x 32 µs=65.6ms的时间间PWRT计数期间 器件保持在状态
上电时时取决INTRC ,并且由于温度和工的不同,不同器件的间也将各不相同。情请
见直流参数 33 通过清零 PWRTEN

4.5.2 振荡器起定时器 OST

PWRT 参数 33)结以后,由振荡器起定 时器 OST提供 1024 个振荡周期 (来OSC1 入)时,而确保晶振足够稳 可以为控制器提供时振荡器可能要更
频率容差规范。有在 XTLPHS HSPLL 式下,并且仅发生
上电复位或数功管理式退出时,OST时。
配置位可使能 PWRT

4.5.3 PLL 时定时器

PLL 式下使能 PLL 时,上电复位后的时时 与其他振荡有不同。在 PLL 式下要使用一
独立的定时器提供一足够PLL振荡 频率时。PLLT 在振荡器起时后发生。
PLL)通 常 为 2 ms,

4.5.4 时时

上电时时如下:
1. 清除 POR
2. PWRT 如果使能
3. OST 时。振荡器在此周期开始
4. PLL 如果使用 HSPLL
取决振荡器的配置PWRT 状态4-34-44-54-6 4-7 各自述了
不同的上电延时时,其 中 上电延时定时器使能,并器件工作在 HS 振荡式下。 4-3 到图 4-6
用于在 XT LP 式下工作 的器 件。 对于 工作 在 RC式下的器件以及PWRT 的器件,将
时。 由于时是由 POR 冲触发的,因此如果 MCLR
足够时间低电平,所 有 时都。将 MCLR 平拉高后器件将立即开始代码 (图 4-5。这对于 测试或同步多个工作的 PIC18FXXXX 器件是非常
有用的。
保持
4-2 不同情形下的
振荡器配置
HSPLL 66 ms HSXT LP EC ECIO RC RCIO INTIO1 INTIO2
166 ms 65.5 ms上电时定时器 PWRT的标称
22 ms PLL 定所的标称时
PWRTEN
(1)
+ 1024 TOSC + 2 ms
(1)
66 ms
66 ms 66 ms 66 ms
上电复
= 0 PWRTEN = 1
+ 1024 TOSC 1024 TOSC 1024 TOSC
(1) (1) (1)
(2)
欠压复
(2)
1024 TOSC + 2 ms
—— —— ——
(2)
管理退
1024 TOSC + 2 ms
(2)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 45
PIC18F2423/2523/4423/4523
4-3 上电时时序(MCLR VDDVDD 电压上< TPWRT
VDD
MCLR
内部 POR
TPWRT
PWRT
OSC1
OST
内部
4-4 上电时时序(MCLR
VDD
MCLR
内部 POR
PWRT
OSC1
OST
TOST
TOST 束之前上
TPWRT
TOST
内部
4-5 上电时时序(MCLR
VDD
MCLR
内部 POR
PWRT
OSC1
OST
内部
DS39755A_CN 46 初稿 2007 Microchip Technology Inc.
TOST 之后
T
PWRT
TOST
PIC18F2423/2523/4423/4523
4-6 缓慢 VDD 间(MCLR VDDVDD 电压上 > TPWRT
3V
VDD
MCLR
内部 POR
PWRT
OSC1
OST
内部复位
0V
TPWRT
TOST
4-7 PLL 使能时 POR 时时序(MCLR
VDD
MCLR
内部 POR
TPWRT
PWRT
TOST
OSC1
OST
PLL
内部复位
注: TOST = 1024 OSC1 周期。 TPLL 2 ms (至多)。
VDD
TPLL
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 47
PIC18F2423/2523/4423/4523

4.6 存器的状态

多数存器不受复位的影响。在 POR 时这些存器 的状态不确定,而在其他位时它们的状态。而
存器据不同的位类型“复位 状
存器不WDT唤醒影响,这是因为 WDT
被视为对正常工作的。如 4-3 所示,RCON 存器中的状态位:RI 同的位情形中会分别被置 1 清零。可在件中使用 这些状态断复位的性质。
TOPDPOR BOR,在不
4-4 述了所有特功能存器的状态。可以将 这些状态分类为上电欠压复位、主位、WDT 位以及 WDT 唤醒

4-3 RCON 存器的状态位、含以及初始化状态

程序计数器
上电复 RESET 指令 欠压复
管理运行模式下的 MCLR
管理空闲休眠模式下的
MCLR
全功或功管理运行模期间WDT 超时
全功行期间MCLR
堆栈满STVREN = 1 堆栈STVREN = 1 堆栈不是位,
STVREN = 0 管理空闲休眠模式下的 WDT
通过断从管理退注: u = 不变
1器件断唤醒GIEH GIEL 1 时, PC 装入008h 0018h
2当软件使能 BOR BOREN1:BOREN0 配置 = 01 SBOREN = 1POR 位的状态1
有其他位不能改变该状态否则,其状态0
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
(1)
PC + 2
RI
uu0uu u u
RCON 存器 STKPTR 存器
TO PD POR BOR STKFUL STKUNF
DS39755A_CN 48 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

4-4:所存器的初始化状态

MCLR
存器 适用器件
TOSU 2423 2523 4423 4523 ---0 0000 ---0 0000 ---0 uuuu TOSH 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TOSL 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu STKPTR 2423 2523 4423 4523 00-0 0000 uu-0 0000 uu-u uuuu PCLATU 2423 2523 4423 4523 ---0 0000 ---0 0000 ---u uuuu PCLATH 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu PCL 2423 2523 4423 4523 0000 0000 0000 0000 PC + 2 TBLPTRU 2423 2523 4423 4523 --00 0000 --00 0000 --uu uuuu TBLPTRH 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TBLPTRL 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TABLAT 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu PRODH 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu PRODL 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu INTCON 2423 2523 4423 4523 0000 000x 0000 000u uuuu uuuu INTCON2 2423 2523 4423 4523 1111 -1-1 1111 -1-1 uuuu -u-u INTCON3 2423 2523 4423 4523 11-0 0-00 11-0 0-00 uu-u u-uu INDF0 2423 2523 4423 4523 N/A N/A N/A POSTINC0 2423 2523 4423 4523 N/A N/A N/A POSTDEC0 2423 2523 4423 4523 N/A N/A N/A PREINC0 2423 2523 4423 4523 N/A N/A N/A PLUSW0 2423 2523 4423 4523 N/ A N/A N/A FSR0H 2423 2523 4423 4523 ---- 0000 ---- 0000 ---- uuuu FSR0L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu WREG 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu INDF1 2423 2523 4423 4523 N/A N/A N/A POSTINC1 2423 2523 4423 4523 N/A N/A N/A POSTDEC1 2423 2523 4423 4523 N/A N/A N/A PREINC1 2423 2523 4423 4523 N/A N/A N/A PLUSW1 2423 2523 4423 4523 N/ A N/A N/A
注: u = x = 未知, - = 实现位 读为 0), q = 取决具体件。元表示不适用于定器件。 1INTCONx PIRx 存器中的一位或位会受到影响 (引起唤醒)。
2器件断唤醒GIEL GIEH 被置 1 时, PC 装入0008h 0018h 3器件断唤醒GIEL GIEH 被置 1 时,用 PC 当前值更新 TOSUTOSH TOSL。将 STKPTR
堆栈的下一
4具体件下的,请参见表 4-3 5据所选择振荡式使能 PORTALATA TRISA 中的 bit 6 bit 7。如果被配置PORTA 引脚 ,它们将
0
上电复位,
欠压复
位,
WDT 位,
RESET 指令
堆栈
通过 WDT
断唤醒器件
(3) (3) (3) (3)
(2)
(1) (1) (1)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 49
PIC18F2423/2523/4423/4523
4-4:所存器的初始化状态 (续)
MCLR
存器 适用器件
FSR1H 2423 2523 4423 4523 ---- 0000 ---- 0000 ---- uuuu FSR1L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu BSR 2423 2523 4423 4523 ---- 0000 ---- 0000 ---- uuuu INDF2 2423 2523 4423 4523 N/A N/A N/A POSTINC2 2423 2523 4423 4523 N/A N/A N/A POSTDEC2 2423 2523 4423 4523 N/A N/A N/A PREINC2 2423 2523 4423 4523 N/A N/A N/A PLUSW2 2423 2523 4423 4523 N/ A N/A N/A FSR2H 2423 2523 4423 4523 ---- 0000 ---- 0000 ---- uuuu FSR2L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu STATUS 2423 2523 4423 4523 ---x xxxx ---u uuuu ---u uuuu TMR0H 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TMR0L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu T0CON 2423 2523 4423 4523 1111 1111 1111 1111 uuuu uuuu OSCCON 2423 2523 4423 4523 0100 q000 0100 q000 uuuu uuqu HLVDCON 2423 2523 4423 4523 0-00 0101 0-00 0101 u-uu uuuu WDTCON 2423 2523 4423 4523 ---- ---0 ---- ---0 ---- ---u
(4)
RCON TMR1H 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu TMR1L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu T1CON 2423 2523 4423 4523 0000 0000 u0uu uuuu uuuu uuuu TMR2 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu PR2 2423 2523 4423 4523 1111 1111 1111 1111 1111 1111 T2CON 2423 2523 4423 4523 -000 0000 -000 0000 -uuu uuuu SSPBUF 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu SSPADD 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu SSPSTAT 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu SSPCON1 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu SSPCON2 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu
注: u = x = 未知, - = 实现位 读为 0), q = 取决具体件。元表示不适用于定器件。 1INTCONx PIRx 存器中的一位或位会受到影响 (引起唤醒)。
2器件断唤醒GIEL GIEH 被置 1 时, PC 装入0008h 0018h 3器件断唤醒GIEL GIEH 被置 1 时,用 PC 当前值更新 TOSUTOSH TOSL。将 STKPTR
堆栈的下一
4具体件下的,请参见表 4-3 5据所选择振荡式使能 PORTALATA TRISA 中的 bit 6 bit 7。如果被配置PORTA 引脚,它们将
0
2423 2523 4423 4523 0q-1 11q0 0q-q qquu uq-u qquu
上电复位,
欠压复
位,
WDT 位,
RESET 指令
堆栈
通过 WDT
断唤醒器件
DS39755A_CN 50 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
4-4:所存器的初始化状态 (续)
MCLR
存器 适用器件
ADRESH 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu ADRESL 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu ADCON0 2423 2523 4423 4523 --00 0000 --00 0000 --uu uuuu ADCON1 2423 2523 4423 4523 --00 0qqq --00 0qqq --uu uuuu ADCON2 2423 2523 4423 4523 0-00 0000 0-00 0000 u-uu uuuu CCPR1H 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu CCPR1L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu
CCP1CON CCPR2H 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu
CCPR2L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu CCP2CON 2423 2523 4423 4523 --00 0000 --00 0000 --uu uuuu BAUDCON 2423 2523 4423 4523 01-0 0-00 01-0 0-00 --uu uuuu ECCP1DEL 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu
ECCP1AS
CVRCON 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu CMCON 2423 2523 4423 4523 0000 0111 0000 0111 uuuu uuuu TMR3H 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu TMR3L 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu T3CON 2423 2523 4423 4523 0000 0000 uuuu uuuu uuuu uuuu SPBRGH 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu SPBRG 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu RCREG 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TXREG 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu TXSTA 2423 2523 4423 4523 0000 0010 0000 0010 uuuu uuuu RCSTA 2423 2523 4423 4523 0000 000x 0000 000x uuuu uuuu EEADR 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu EEDATA 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu EECON2 2423 2523 4423 4523 0000 0000 0000 0000 0000 0000 EECON1 2423 2523 4423 4523 xx-0 x000 uu-0 u000 uu-0 u000
注: u = x = 未知, - = 实现位 读为 0), q = 取决具体件。元表示不适用于定器件。 1INTCONx PIRx 存器中的一位或位会受到影响 (引起唤醒)。
2器件断唤醒GIEL GIEH 被置 1 时, PC 装入0008h 0018h 3器件断唤醒GIEL GIEH 被置 1 时,用 PC 当前值更新 TOSUTOSH TOSL。将 STKPTR
堆栈的下一
4具体件下的,请参见表 4-3 5据所选择振荡式使能 PORTALATA TRISA 中的 bit 6 bit 7。如果被配置PORTA 引脚 ,它们将
0
2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu 2423 2523
2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu 2423 2523
4423 4523 --00 0000 --00 0000 --uu uuuu
4423 4523 0000 00-- 0000 00-- uuuu uu--
上电复位,
欠压复
位,
WDT 位,
RESET 指令
堆栈
通过 WDT
断唤醒器件
2007 Microchip Technology Inc. 初稿 DS39755A_CN 51
PIC18F2423/2523/4423/4523
4-4:所存器的初始化状态 (续)
MCLR
存器 适用器件
上电复位,
欠压复
IPR2 2423 2523 4423 4523 11-1 1111 11-1 1111 uu-u uuuu PIR2 2423 2523 4423 4523 00-0 0000 00-0 0000 uu-u uuuu PIE2 2423 2523 4423 4523 00-0 0000 00-0 0000 uu-u uuuu
IPR1
PIR1
PIE1
2423 2523 4423 4523 1111 1111 1111 1111 uuuu uuuu 2423 2523
4423 4523 -111 1111 -111 1111 -uuu uuuu 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu 2423 2523 4423 4523 -000 0000 -000 0000 -uuu uuuu 2423 2523 4423 4523 0000 0000 0000 0000 uuuu uuuu 2423 2523
4423 4523 -000 0000 -000 0000 -uuu uuuu
OSCTUNE 2423 2523 4423 4523 0q-0 0000 00-0 0000 uu-u uuuu TRISE TRISD
2423 2523 4423 4523 0000 -111 0000 -111 uuuu -uuu 2423 2523 4423 4523 1111 1111 1111 1111 uuuu uuuu
TRISC 2423 2523 4423 4523 1111 1111 1111 1111 uuuu uuuu TRISB 2423 2523 4423 4523 1111 1111 1111 1111 uuuu uuuu TRISA
(5)
2423 2523 4423 4523 1111 1111
(5)
LATE 2423 2523 4423 4523 ---- -xxx ---- -uuu ---- -uuu LATD
2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu
LATC 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu LATB 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu LATA
(5)
2423 2523 4423 4523 xxxx xxxx
(5)
PORTE 2423 2523 4423 4523 ---- xxxx ---- uuuu ---- uuuu PORTD
2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu
PORTC 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu PORTB 2423 2523 4423 4523 xxxx xxxx uuuu uuuu uuuu uuuu PORTA
(5)
2423 2523 4423 4523 xx0x 0000
(5)
注: u = x = 未知, - = 实现位 读为 0), q = 取决具体件。元表示不适用于定器件。 1INTCONx PIRx 存器中的一位或位会受到影响 (引起唤醒)。
2器件断唤醒GIEL GIEH 被置 1 时, PC 装入0008h 0018h 3器件断唤醒GIEL GIEH 被置 1 时,用 PC 当前值更新 TOSUTOSH TOSL。将 STKPTR
堆栈的下一
4具体件下的,请参见表 4-3 5据所选择振荡式使能 PORTALATA TRISA 中的 bit 6 bit 7。如果被配置PORTA 引脚,它们将
0
位,
WDT 位,
RESET 指令
堆栈
1111 1111
uuuu uuuu
uu0u 0000
通过 WDT
断唤醒器件
(5)
(5)
(5)
uuuu uuuu
uuuu uuuu
uuuu uuuu
(1)
(1) (1)
(5)
(5)
(5)
DS39755A_CN 52 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

5.0 器构

PIC18 增强型单片机器件有类型的存器:
程序
数据 RAM
数据 EEPROM
由于是哈佛架构的器件,数据和程序器使用不同的 总线,因而可同时访问两种空间。出于的,可将数据 EEPROM 外设器件,因为它可以通 过一组控制存器进行寻址访问
6.0 节“闪存程序提供了关于闪存程序作的更详细信息。数据 EEPROM将单在第 7.0
数据 EEPROM 讨论

5.1 程序存储器构

PIC18 单片机具21 位程序计数器,可以对 2 MB 储空间进行寻址访问物理实现器的边界
个2 MB的存返回0NOP指令) PIC18F2423 PIC18F4423 各有 16 KB 的闪存存
器,可以存储最多 8,192 字指令PIC18F2523 PIC18F4523各有 32 KB 的闪存存器,可以存储最多 16,384 字指令
PIC18 器件有两个量。量地为 0000h,中
量地0008h 0018h5-1 出了 PIC18F2423/2523/4423/4523 器件的
映射

5-1 PIC18F2423/2523/4423/4523 器件的程序存映射堆栈

PC<20:0>
CALL,RCALL,RETURN
RETFIE,RETLW
高优先级中
低优先级中
1 堆栈
31 堆栈
21
0000h 0008h
0018h
程序存储器
3FFFh 4000h
PIC18FX423
0
程序
PIC18FX523
0
7FFFh 8000h
储空间
1FFFFFh 200000h
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 53
PIC18F2423/2523/4423/4523

5.1.1 程序计数器

程序计数器Program CounterPC)指 欲取
指令的地PC21 ,保存在不同的 8 存器中。存储低字节存器称为 PCL 存器,
存器可读写。存储高字节存器,PCH 存器,存PC<15:8> 存器不可直接读写。更新 PCH 存器的作是通过 PCLATH 存器实现的。存储最高字存器 称为 PCU。该存器存PC<20:16> 不能直接读。更新 PCU 存器的作是通过
PCLATU存器实现的。 PCLATH PCLATU 的内容通过写 PCL 的任何
到程序计数器。同程序计数器的两个高字节通过PCL 传送PCLATH PCLATU。这对于PC 有用 处(见 5.1.4.1 节“计算
GOTO”)
PC 字节寻址程序器的。为了PC 不能获取字指令要将 PCL 最低
0PC 2 寻址程序器中的序指令 CALLRCALLGOTO 程序移指令直接写入程序计
数器。对于这些指令PCLATH 和 PCLATU 的内容不会 传送到程序计数器。

5.1.2 返回址堆栈

返回址堆栈允许保存最多 31 个程序调用地和中
量。CALL、RCALL 指令或应中时,PC压入该堆栈。而在RETURNRETLW或RETFIE
指令时,PC堆栈出。PCLATU PCLATHRETURN CALL 指令影响
通过 21 位的 RAM 和一5 位的堆栈STKPTR 实现 31 堆栈作。堆栈用程序空间用数据存空间堆栈针是可的,并 通过栈顶的特功能存器可以栈顶可以
使用这些存器将数据压入堆栈堆栈出。CALL 类型的指令时,行进作:堆栈
1,并PC 的内容写入堆栈针所的存PC 已经指CALL 指令的下一指令)RETURN 类型的指令时,执行栈操作:STKPTR的存的内容会被传送给 PC堆栈
递减 1。 所有位后,堆栈指针均会初始化为 00000堆栈指针
00000 任何 RAM 元;它仅仅是一个复状态堆栈,是出或下
5.1.2.1 访问栈顶
返回地址堆栈的栈顶T op-of-S t ackTOS。有存器 TOSU:TOSH:TOSL用于保存由 STKPTR
存器所向的堆栈单元的内容(图 5-2)。这可以让用要时实现堆栈。在 CALLRCALL 或中后,
件可以通过读取 TOSU:TOSH:TOSL 存器读取压 入堆栈。这些可以由用
返回时,件将这些TOSU:TOSH:TOSL 返回
堆栈作,访问堆栈时用许位。
5-2 返回址堆栈和相关的存器
返回址堆栈 <20:0>
栈顶寄存器 堆栈
TOSLTOSHTOSU
34h1Ah00h
栈顶
001A34h 000D58h
11111 11110 11101
STKPTR<4:0>
00010
00011 00010 00001 00000
DS39755A_CN 54 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
5.1.2.2 返回堆栈STKPTR
STKPTR 存器存器 5-1包含堆栈、STKFUL
堆栈满状态位和 STKUNF(堆栈溢)状态位。堆栈
可为 0 到 31 范围内的值向堆栈压入值前堆栈1 而从堆栈出值后,堆栈递减 1。复 时, 堆栈指针值。用可以读写堆栈指针的系统 (Real-Time Operating System RTOS可以
利用此特性对返回堆栈进行维护。 向堆栈压入 PC 31 次(且值从堆栈后,
STKFUL1通过软件或 POR 使 STKFUL清零STVREN 堆栈溢复位使能配置位的状态决
栈满时将行的作。(关于器件配置位的说明,请参23.1 节“配置”。)如果 STVREN 1认),31 次进PC + 2)值压入 堆栈 ,将 STKFUL1 位器件。STKFUL 位将保持1,而 堆栈指针被清零
如果 STVREN 清零,第 31 次进STKFUL 位将会 1,堆栈指针31。任何其他操作不会
覆盖31 次进,并STKPTR 将保持为 31
堆栈足够堆栈时,下一PC
返回,并 将 STKUNF 1,而 堆栈 持为STKUNF 位将保持1清零或发 生 POR
注: 时,将返回PC,会 使 程序指
量,此时可以堆栈状态并采 相应的操作。这与复位不同,因为下溢时
SFR 的内容不影响
5.1.2.3 PUSH POP 指令
由于栈顶是可以的,因此将值压入堆栈堆栈 出而不影响程序正常非常的。PIC18 指令 包含指令 PUSH 和 POP,使用这指令可在控制下对 TOS 行操作。可以TOSUTOSH TOSL,将数据或返回压入堆栈
PUSH 指令当前PC 值压入堆栈行该指令会使 堆栈1 并将当前PC 值装入堆栈
POP指令通过将堆栈针递减 1放弃当前TOS个入值就成为了 TOS
存器 5-1 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 7bit 6
STKFUL堆栈满
1 = 堆栈满 0 = 堆栈
STKUNF堆栈
1 = 发生堆栈 0 = 发生堆栈
实现为 0
SP4:SP0堆栈
C = 清零
(1)
(1)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 55
PIC18F2423/2523/4423/4523
5.1.2.4 堆栈满和下
通过配置寄存器 4L 中的 STVREN 1使能在
堆栈溢出或下时的器件位。STVREN 1 时,堆 栈满堆栈溢状态会将相应的 STKFUL STKUNF
1然后使器件位。STVREN 清零时,堆栈满堆栈溢状态会将相应的 STKFUL STKUNF 1,但不会使器件复位。通过户软件或上电 复 使 STKFUL STKUNF 清零

5.1.3 存器堆栈

STATUS、WREG 和 BSR 寄存器提供的快寄存器
堆栈断“快返回的功能。每存器的 栈只有一级不可当处理器转
时,它装入对应存器的当前值。所有中断源都会将值 压入堆栈寄存器。如果使用 RETFIE, FAST 指令从
返回,这些存器中的值就相关的存器。
如果同时低优先级中高优先级中从低优先 级中返回时,法可地使用堆栈寄存器。如果在为
低优先级中提供服务时,发生了高优先级中低 优先级中堆栈寄存器中的覆盖。在为低 优先级中提供服务时,用件保存关键寄
器的
如果使用中断优先级,所有中断都可以使用存 器堆栈返回。如果有使用中存器 可以用于在程序调用束时STATUS、WREGBSR 存器。要在程序调用中使用存器
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.4 程序存器中的

有的编程场要在程序器中建数据构或
。对于 PIC18 器件,可以用两种方式实现查
GOTO
表读
5.1.4.1 GOTO
GOTO 是通过程序计数器加一 实现 的。 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.4.2 表读与
有一的方法可以将数据存程序器中,这 方法许在个指令2 个字节的数据。
使用表读个程序字可以存2 个字节
数据。TBLPTR存器字节,而TABLAT)寄存器存储从程序器中读取或 写入的数据。一程序器或从程序器传个字节
6.1节“表读写”步讨论表读写操作。
DS39755A_CN 56 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

5.2 PIC18 指令周期

5.2.1 时钟

自内部或部时钟源的单片机时钟输入都将在内部
以产生号( Q1Q2 Q3 Q4。在单片机内部,程序计数器在个 Q1
Q4 期间从程序取指令并将指令锁到 指令存器中。指令的译码和在下一Q1 Q4 周期完成5-3 所示为时指令流程图
5-3:时/指令周期
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 指令流 / 流线

个 “指令周期”4 个 Q 周期Q1Q4取指执行指令是以水线方式 进行的,用一个指令周期来 指令,而 用 一个指令周期译码和行指令。但由 于 是线操作,所以每条指令执行时间都是一个指令 周期。如果某条指令改变程序计数器 GOTO两个指令 周期能完成该指令 ( 5-3
指周期中:程序计数器 PCQ1 周期1指令
指令行周期中:在 Q1 周期,将所指令锁到指令
存器 IR。在随后的 Q2Q3 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
程序移指令外,所有的指令都是单周期指令。由于程序移指令导致指令从流线清除,同时指令行指令,所以程序移指令需两个周期
2007 Microchip Technology Inc. 初稿 DS39755A_CN 57
1 1
2 2
3 3
4 清除 NOP
SUB_1 SUB_1
PIC18F2423/2523/4423/4523

5.2.3 程序器中的指令

程序字节寻址。指令2 字节4 字节的形式
程序器中。指令字最低字节始 在地数的程序LSb = 0。要保证
指令单元PC 2 为单位增,并LSb 0 5.1.1 节 “程序计数器”)
5-4 给出了如何将指令字程序器中的一
5-4 程序器中的指令
指令 1 指令 2
指令 3
程序存储器 字节存储单
MOVLW 055h 0Fh 55h 000008h GOTO 0006h EFh 03h 00000Ah
MOVFF 123h, 456h C1h 23h 00000Eh
CALLGOTO指令指令程序器的对地
。由于指令总是边界,因而指令所包含的数 据为一个字字地会写入 PC<20:1>,用 于 访问程
器中的字节。图 5-4 中的指令 #2出了 指令 GOTO 0006h 程序存储器中的编码。程序转移指 令也的方式对相对地进行编码。存
在转移指令中的量代字指令数,PC 将以此作为到指定的地。第 24.0 节 “指令集
总”提供了指令集的更详细信息。
LSB = 1 LSB = 0
F0h 00h 00000Ch
F4h 56h 000010h
000000h 000002h 000004h 000006h
000012h 000014h

5.2.4 双字指令

PIC18 指令集4 双字指令CALLMOVFF GOTO LSFR。这些指令个字4位均为 1111
其他 12 位是立即数数据,通常为一数据存器地 指令4 位为 1111,用于代NOP 指令。
指令为:行完第一个字之后立即
序访问并使用第个字中的数据。如果由于些原
跳过了第一个字而自行指令的第个字将 作为一NOP 指令。如 果 双字指令PC
指令后,作。 5-4 出了它的行过程
注: 关于扩展指令集中的双字指令信息,请参
5.6 节“PIC18 指令扩展指令 集”
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
DS39755A_CN 58 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

5.3 数据存器构

注: 当使能了 PIC18 扩展指令集时,数据存储
些方面的作会有所改变。更信 息,请参5.5 节“数据存器和扩展 指令集”
PIC18 器件中的数据存储器是用RAM 实现的。数据存存器有 12 位地,可 存 数据4096 个字节。存储空间分为 16 个存储区,每个区包含
256 个字节。PIC18F2423/2523/4423/4523 器件实现 所有 16 区。5-5 出了 PIC18F2423/2523/ 4423/4523 器件的数据存器构
数据存器由特功能存器 Special Function
RegisterSFR存器 General Purpose RegisterGPR。SFR 用于单片机和外设功能
控制状态示,GPR用于在用户应用程序中存数据和 存中间结果。任何 实现
0
指令集区的作。可以通过 址寻址模式访问整个数据存器。本 面的部分将讨论寻址式。
为确保能在一个周期访问常存器 SFR
GPRPIC18 器件实现了一速操作存区。区是一256 字节的存储空间,它可实现SFR
GPR Bank 0 速访问,而无需使用 BSR。第 5.3.2 节“速操作存提供了对于 作 RAM 详细说明。

5.3.1 选择存器 BSR

容量的数据存寻址,以便对所 有地进行速访问。理想状况下,这意味着
写操作提供完整PIC18 器件是使用 RAM 区机实现快速访问的。这将存储空间成连 续16 256 字节的存区。据不同的指令,可以 通过完整12 位地址直接寻址每,或通过
8位的低字节4位存寻址每 PIC18 指令集中的部分指令都使用存针,也就
是存选择存器(Bank Select RegisterBSR SFR 保存高 4 位,而指令本身包括
8 位。使用 BSR 4
BSR3:BSR0,不使用高 4 它们始终读0
写入。可以通过使用 MOVLB 指令直接载 BSR BSR数据存器中的存指令中的 8位
区中的存,可以将它距离区下边 界量。5-7示了 BSR 与数据存器中的
区之的关。 由于最多可有 16 存器同一个低字节,用
非常以确保在数据前选择 确的存区。如,BSR 0Fh 时将程序数据写入F9h8位地,将导致程序计数器的位。
当选择区时,实际实现的存可以。 对实现进行写操作将,而这些存 区会返回 0是这STATUS 寄存器然会受到
影响像操作是功的。5-5 5-6 中的数据存映射出了实现的存区。
PIC18 心指令集中,MOVFF 指令指 存器和存器的完整 12 位地该指令
全忽BSR。所有其他指令仅包含作为操作数的低字,而且必使用 BSR 速操作存定位存器。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 59
PIC18F2423/2523/4423/4523
5-5 PIC18F2423/4423 器件的数据存映射
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 00h
FFh
GPR
GPR
GPR
00h
SFR
000h 07Fh 080h 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
EFFh F00h F7Fh
F80h FFFh
a = 0 时:
将忽BSR 而使用速操作 存区。
128 个字节RAM
(来Bank 0
128个字节是特功能存 器 (来Bank 15)。
a = 1 时:
BSR 指令使用的存 区。
速操作存
速操RAM
地址
速操RAM
(SFR
00h 7Fh
80h
FFh
DS39755A_CN 60 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
5-6 PIC18F2523/4523 器件的数据存映射
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 00h
FFh
GPR
GPR
GPR
GPR
GPR
GPR
00h
SFR
000h 07Fh 080h 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
EFFh F00h F7Fh
F80h FFFh
a = 0 时:
将忽BSR 而使用速操作 存区。
128 个字节RAM
(来Bank 0
128个字节是特功能存 器 (来Bank 15)。
a = 1 时:
BSR 指令使用的存 区。
速操作存速操RAM
速操RAM
(SFR
00h 7Fh
80h
FFh
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 61
PIC18F2423/2523/4423/4523
5-7 使用存选择存器 (指向 0x02FF 直接寻址
(1)
7
0000
选择
1: 可使用指令速操RAM 位强制忽定的存储区 (BSR<3:0>而使用速操作存储区中的存器。
2MOVFF 指令指定了完整的 12 位地
BSR
0010
(2)
0
000h
100h
200h
300h
E00h
F00h
FFFh
数据存
Bank 0 Bank 1
Bank 2
Bank 3
Bank 13
Bank 14
Bank 15
00h FFh
00h FFh
00h FFh
00h
FFh 00h
FFh 00h
FFh
7
作码
11111111
(2)
0

5.3.2 速操作存

使用 BSR 和在指令中包含 8 位地,用可以寻址数 据存器的整个空间,但这同时味着 确保选择确的存区。否则,可能会的存元读取数据或将数据写入的存。如果本
希望对一个 GPR 行写操作,写入了一 SFR,后果是非常的。但是在对数据存
读或写操作时确/ 或更BSR 降低
为了用数据存访问,在数据存
器中配置速操作存区,这可以允许用户访问映射的存区而无需指BSR速操作存区由
Bank 0 前 128 个字节 (00h-7Fh)Bank 15 的后 128 个字节 (80h-FFh低半部分称为
RAM,由 GPR 高半部分则被映射为器件SFR。这两个连续映射速操作存区 并可以用一8 位地进行线寻址 (图 5-5)。
速操作存区由包含速操RAM (指令中的
a参数PIC18 心指令使用。当“a”1
时,指令使用 BSR 和包含在作码中的 8 位地对数 据存寻址当“a”为 0 时,强制指令使用速操 作存区地映射,此时全忽BSR 当前值
制”寻址模式可使指令在一个周期内对数据地 进行操作,而不更新 BSR。这 意 味着可以地对 8 位地80h 或以SFR 进行
作。地80h 速操RAM 非常适合于存储 那些用可能速访问的数据,如直接 程序变量。快速操RAM 实现更加快速保护和量切
使能扩展指令集 (XINST 配置 = 1时的速操作 存映射略有不同。在第 5.5.3 节“在立即址寻
式下映射速操作存中对此进行了更详细的 讨论

5.3.3 存器文件

PIC18器件的 GPR区中包含了分区存区。这部分存 区为数据 RAM,所 有 指令均可使用它。GPR 从 Bank 0 最低000h)开始SFR 区的
上电复位不会初始化 GPR,并且其他改变其内容。
DS39755A_CN 62 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

5.3.4 功能存器

功能存器 SFRCPU 外设模块来控制 器件作的存器。这些存器以RAM 的形式 SFR 从数据存器的FFFh)开 始 向下伸,据了 Bank 15 上半 部分的空间(F80hFFFh)。 5-1 5-2 列出了这些存器。
可以将 SFR 类为组:与 器件功能ALU位和中 断)相关的寄存器和与外设功能相关的 器。位和中存器在相关的进行讨论,本 后面的部分将对 ALU STATUS 寄存器进行说明。与 外设操作相关的存器将在相应外设进行 明。
SFR通常分在功能控制外设中。未使用的 SFR实现的,0
5-1 PIC18F2423/2523/4423/4523 器件的特功能存器映射
名称 名称 名称 名称
FFFh TOSU FDFh INDF2 FFEh TOSH FDEh POSTINC2 FFDh TOSL FDDh POSTDEC2 FFCh STKPTR FDCh PREINC2 FFBh PCLATU FDBh PLUSW2
FFAh PCLATH FDAh FSR2H FBAh CCP2CON F9Ah
FF9h PCL FD9h FSR2L FB9h
FF8h TBLPTRU FD8h STATUS FB8h BAUDCON F98h
FF7h TBLPTRH FD7h TMR0H FB7h ECCP1DEL
FF6h TBLPTRL FD6h TMR0L FB6h ECCP1AS
FF5h TABLAT FD5h T0CON FB5h CVRCON F95h TRISD
FF4h PRODH FD4h
FF3h PRODL FD3h OSCCON FB3h TMR3H F93h TRISB
FF2h INTCON FD2h HLVDCON FB2h TMR3L F92h TRISA
FF1h INTCON2 FD1h WDTCON FB1h T3CON F91h
FF0h INTCON3 FD0h RCON FB0h SPBRGH F90h — FEFh INDF0 FEEh POSTINC0
FEDh POSTDEC0 FECh PREINC0
FEBh PLUSW0
(1)
FCFh TMR1H FAFh SPBRG F8Fh
(1)
(1)
(1)
(1)
FCEh TMR1L FAEh RCREG F8Eh — FCDh T1CON FADh TXREG F8Dh LATE FCCh TMR2 FACh TXSTA F8Ch LATD
FCBh PR2 FABh RCSTA F8Bh LATC
FEAh FSR0H FCAh T2CON FAAh
FE9h FSR0L FC9h SSPBUF FA9h EEADR F89h LATA FE8h WREG FC8h SSPADD FA8h EEDATA F88h — FE7h INDF1 FE6h POSTINC1 FE5h POSTDEC1 FE4h PREINC1 FE3h PLUSW1
(1)
(1)
(1)
(1)
(1)
FC7h SSPSTAT FA7h EECON2 FC6h SSPCON1 FA6h EECON1 F86h — FC5h SSPCON2 FA5h — FC4h ADRESH FA4h
FC3h ADRESL FA3h — FE2h FSR1H FC2h ADCON0 FA2h IPR2 F82h PORTC FE1h FSR1L FC1h ADCON1 FA1h PIR2 F81h PORTB FE0h BSR FC0h ADCON2 FA0h PIE2 F80h PORTA
(1)
FBFh CCPR1H F9Fh IPR1
(1)
(1)
(1)
(1)
(2)
FBEh CCPR1L F9Eh PIR1 FBDh CCP1CON F9Dh PIE1 FBCh CCPR2H F9Ch — FBBh CCPR2L F9Bh OSCTUNE
(2)
(3)
(3)
F99h
F97h — F96h TRISE
FB4h CMCON F94h TRISC
(2)
(1)
(2) (2) (2)
F8Ah LATB
F87h
F85h — F84h PORTE F83h PORTD
(2)
(2) (2) (2) (2)
(2) (2) (2) (2)
(2) (2) (2) (2)
(3) (3)
(3) (3)
(3) (3)
1: 这不是实际存在的存器。
2实现存器,0 328 引脚器件不包含此存器。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 63
PIC18F2423/2523/4423/4523
5-2 存器文件总(PIC18F2423/2523/4423/4523
存器名称
TOSU TOSH TOSL STKPTR STKFUL STKUNF PCLATU PCLATH PCL TBLPTRU TBLPTRH TBLPTRL TABLAT PRODH PRODL INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 000x 49, 93 INTCON2 RBPU INTCON3 INT2IP INT1IP INDF0 POSTINC0 POSTDEC0 PREINC0 PLUSW0
FSR0H FSR0L WREG INDF1 POSTINC1 POSTDEC1 PREINC1 PLUSW1
FSR1H FSR1L BSR INDF2 POSTINC2 POSTDEC2 PREINC2 PLUSW2
FSR2H FSR2L STATUS
注: x = 未知, u = = 实现, q = 取决具体条件 1SBOREN 位仅在 BOREN1:BOREN0 配置= 01 时可用;否则,它被禁且读0。请参4.4 节 “欠压复BOR)”
2: 这些存器和 / 或位在 28 引脚器件上未实现0。提供的是 40/44引脚器件的实现示为 -。 3有在特定的振荡配置可使用 PLLEN ;否则,它被禁0。请参2.6.4 节“INTOSC式下的 PLL 4有在MCLRE 配置= 0可使用 RE3 ;否则RE30位是只读的。 5据不同的主振荡式,可将 RA6/RA7 及其相关的存器及方位分别配置口引脚。这些位在0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
栈顶高字节 (TOS<15:8> 栈顶低字节 (TOS<7:0>
— PC<15:8> 的保持存器 PC 低字节 (PC<7:0>
—bit 21
程序高字节 (TBLPTR<15:8>) 程序低字节 (TBLPTR<7:0>
程序存器
存器的高字节
存器的低字节
INTEDG0 INTEDG1 INTEDG2 —TMR0IP—RBIP1111 -1-1 49, 94
使用 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 低字节
—NOVZDCC---x xxxx 50, 67
栈顶最高字节 (TOS<20:16>
SP4 SP3 SP2 SP1 SP0 00-0 0000 49, 55
PC<20:16> 的保持存器
程序最高字节 (TBLPTR<20:16>
—INT2IEINT1IE— INT 2IF INT1IF 11-0 0-00 49, 95
数据存器地0 高字节
数据存器地1 高字节
选择存器
数据存器地2 高字节
POR/BOR
时的
---0 0000 49, 54 0000 0000 49, 54 0000 0000 49, 54
---0 0000 49, 54 0000 0000 49, 54 0000 0000 49, 54
--00 0000 49, 76 0000 0000 49, 76 0000 0000 49, 76 0000 0000 49, 76 xxxx xxxx 49, 89 xxxx xxxx 49, 89
N/A 49, 69 N/A 49, 69 N/A 49, 69 N/A 49, 69 N/A 49, 69
---- 0000 49, 69 xxxx xxxx 49, 69 xxxx xxxx 49
N/A 49, 69 N/A 49, 69 N/A 49, 69 N/A 49, 69 N/A 49, 69
---- 0000 50, 69 xxxx xxxx 50, 69
---- 0000 50, 59
N/A 50, 69 N/A 50, 69 N/A 50, 69 N/A 50, 69 N/A 50, 69
---- 0000 50, 69 xxxx xxxx 50, 69
情请
DS39755A_CN 64 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
5-2 存器文件总(PIC18F2423/2523/4423/4523)(续)
存器名称
TMR0H TMR0L T0CON TMR0ON T08BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0 1111 1111 50, 123 OSCCON IDLEN IRCF2 IRCF1 IRCF0 OSTS IOFS SCS1 SCS0 0100 q000 30, 50 HLVDCON VDIRMAG WDTCON
RCON IPEN SBOREN
TMR1H TMR1L
T1CON R D16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR2 PR2 T2CON SSPBUF
SSPADD SSPSTAT SMP CKE D/A
SSPCON1 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 50, 163,
SSPCON2 GCEN ACKSTAT ACKDT/
ADRESH ADRESL ADCON0 ADCON1 ADCON2 ADFM CCPR1H CCPR1L CCP1CON P1M1
CCPR2H CCPR2L CCP2CON BAUDCON ABDOVF RCIDL ECCP1DEL PRSEN PDC6 ECCP1AS ECCPASE ECCPAS2 ECCPAS1 ECCPAS0 PSSAC1 PSSAC0 PSSBD1 CVRCON CVREN CVROE CVRR CVRSS CVR3 CVR2 CVR1 CVR0 0000 0000 51, 243 CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0111 51, 237 TMR3H TMR3L T3CON RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 T3SYNC
注: x = 未知, u = = 实现, q = 取决具体条件 1SBOREN 位仅在 BOREN1:BOREN0 配置= 01 时可用;否则,它被禁且读0。请参4.4 节 “欠压复BOR)”
2: 这些存器和 / 或位在 28 引脚器件上未实现0。提供的是 40/44引脚器件的实现示为 -。 3有在特定的振荡配置可使用 PLLEN ;否则,它被禁0。请参2.6.4 节“INTOSC式下的 PLL 4有在MCLRE 配置= 0可使用 RE3 ;否则RE30位是只读的。 5据不同的主振荡式,可将 RA6/RA7 及其相关的存器及方位分别配置口引脚。这些位在0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer0存器的高字节 Timer0存器的低字节
IRVST HLVDEN HLVDL3 HLVDL2 HLVDL1 HLVDL0 0-00 0101 50, 251
—SWDTEN--- ---0 50, 263
(1)
—RITO PD POR BOR 0q-1 11q0 42, 48,
Timer1存器的高字节 Timer1存器的低字节
TMR1CS TMR1ON 0000 0000 50, 127 Timer2存器 Timer2周期存器
T2OUTPS3 T2OUTPS2 T2OUTPS1 T2OUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 50, 133
MSSP 接收缓冲器 / 发送寄存器
2
I
C™ 从动模式下的 MSSP 址寄存器。 I2C 控模式下的 MSSP 率重载寄存器。
PSR/WUA BF 0000 0000 50, 162,
ADMSK5 A/D 存器的高字节 A/D 存器的低字节
CHS3 CHS2 CHS1 CHS0 GO/DONE ADON --00 0000 51, 227 — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0 --00 0qqq 51, 228
ACQT2 ACQT1 ACQT0 ADCS2 A DCS1 ADCS0 0-00 0000 51, 229
捕捉 / 比较 /PWM 存器 1 高字节 捕捉 / 比较 /PWM 存器 1 低字节
(2)
P1M0
捕捉 / 比较 /PWM 存器 2 高字节 捕捉 / 比较 /PWM 存器 2 低字节
DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M 1 CCP2M0 --00 0000 51, 139
Timer3存器的高字节 Timer3存器的低字节
(2)
DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 51, 139,
(2)
—SCKPBRG16— WUE ABDEN 01-0 0-00 51, 208
PDC5
ACKEN/
ADMSK4
(2)
PDC4
RCEN/
ADMSK3
(2)
PDC3
PEN/
ADMSK2
(2)
PDC2
RSEN/
ADMSK1
(2)
(2)
PDC1
TMR3CS TMR3ON 0000 0000 51, 135
SEN 0000 0000 50, 173
PDC0
(2)
PSSBD0
POR/BOR
时的
0000 0000 50, 125 xxxx xxxx 50, 125
xxxx xxxx 50, 131 xxxx xxxx 50, 131
0000 0000 50, 134 1111 1111 50, 134
xxxx xxxx 50, 169,
0000 0000 50, 170
xxxx xxxx 51, 236 xxxx xxxx 51, 236
xxxx xxxx 51, 140 xxxx xxxx 51, 140
xxxx xxxx 51, 140 xxxx xxxx 51, 140
(2)
0000 0000 51, 157
(2)
0000 0000 51, 157
xxxx xxxx 51, 137 xxxx xxxx 51, 137
情请
102
170
171
172
147
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 65
PIC18F2423/2523/4423/4523
5-2 存器文件总(PIC18F2423/2523/4423/4523)(续)
存器名称
SPBRGH SPBRG RCREG TXREG
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
EUSART 发生器存器的高字节 EUSART 发生器存器的低字节 EUSART 接收寄存器 EUSART 送寄存器
POR/BOR
时的
0000 0000 51, 210 0000 0000 51, 210 0000 0000 51, 218 0000 0000 51, 216
TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 51, 206 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 51, 207 EEADR EEDATA EECON2
EEPROM 址寄存器 EEPROM 数据存器
EEPROM 控制存器 2 不是实际存在的存器 EECON1 EEPGD CFGS IPR2 OSCFIP CMIP PIR2 OSCFIF CMIF PIE2 OSCFIE CMIE IPR1 PSPIP PIR1 PSPIF PIE1 PSPIE
(2)
ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TM R1IP 1111 1111 52, 100
(2)
ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 52, 96
(2)
ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TM R1IE 0000 0000 52, 98
OSCTUNE INTSRC PLLEN
(2)
TRISE
(2)
TRISD TRISC TRISB TRISA TRISA7
(2)
LATE
IBF OBF IBOV PSPMODE TRISE2 TRISE1 TRISE0 0000 -111 52, 118 PORTD 数据方控制存器 PORTC 数据方控制存器 PORTB 数据方控制存器
(5)
TRISA6
FREE WRERR WREN WR RD xx-0 x000 51, 74, 84 — EEIP BCLIP HLVDIP TMR3IP CCP2IP 11-1 1111 52, 101 — EEIF BCLIF HLVDIF TMR3IF CCP2IF 00-0 0000 52, 97 — EEIE BCLIE HLVDIE TMR3IE CCP2IE 00-0 0000 52, 99
(3)
(5)
TUN4 TUN3 TUN2 TUN1 TUN0 0q-0 0000 27, 52
PORTA 数据方控制存器
PORTE 数据存器
0000 0000 51, 74, 83 0000 0000 51, 74, 83 0000 0000 51, 74, 83
1111 1111 52, 114 1111 1111 52 , 111 1111 1111 52, 108 1111 1111 52, 105
---- -xxx 52, 117
数据存器
(2)
LATD LATC LATB
PORTD 数据存器 数据存器 PORTC 数据存器 数据存器 PORTB 数据存器 数据存器
LATA LATA7 PORTE PORTD
(2)
—RE3
RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx 52, 114
(5)
LATA6
(5)
PORTA 数据存器 数据存器
(4)
RE2
(2)
RE1
(2)
RE0
xxxx xxxx 52, 114 xxxx xxxx 52 , 111 xxxx xxxx 52, 108 xxxx xxxx 52, 105
(2)
---- xxxx 52, 117
PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx 52, 111 PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 52, 108 PORTA RA7
(5)
RA6
(5)
RA5 RA4 RA3 RA2 RA1 RA0 xx0x 0000 52, 105
注: x = 未知, u = = 实现, q = 取决具体条件 1SBOREN 位仅在 BOREN1:BOREN0 配置= 01 时可用;否则,它被禁且读0。请参4.4 节 “欠压复BOR)”
2: 这些存器和 / 或位在 28 引脚器件上未实现0。提供的是 40/44引脚器件的实现示为 -。 3有在特定的振荡配置可使用 PLLEN ;否则,它被禁0。请参2.6.4 节“INTOSC式下的 PLL 4有在MCLRE 配置= 0可使用 RE3 ;否则RE30位是只读的。 5据不同的主振荡式,可将 RA6/RA7 及其相关的存器及方位分别配置口引脚。这些位在0
情请
DS39755A_CN 66 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

5.3.5 STATUS 寄存器

存器 5-2 所示,STATUS寄存器包含 ALU 的 算状态。和任何其他 SFR ,它 可以作为任何指令作数。
如果一条影响 ZDC、C、OV 或 N 位的指令以 STATUS 存器作为目 标 存器,将不会将指令写入 STA TUS寄存器,而是指令更新 STATUS 存器。因此,行一STATUS寄存器作为标寄 存器的指令后,STATUS 寄存器的果可能和预想的不例如,CLRF STATUS Z 位置 1 并保持其 位不变(000u u1uu)。
因此,建议仅使用 BCFBSF、SWAPF、MOVFF 和 MOVWF
指令来改变 STATUS 存器,因为这些指令不会影响 STA TUS存器中的 Z、 C、 DCOV 或 N 位。
关于其他不会影响状态位的指令,请参见表 24-2 24-3 中的指令集
注: 中,C 和 DC 位分作为位位
位。
存器 5-2 STATUS 寄存器
U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x
—NOVZDC
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:负标 此位用于有符进制补)。它果是为负 ALU MSB = 1)。
1 = 果为负 0 = 果为
OV溢出标 此位用于有符进制补)。出了 7 进制数的范出将导致
bit 7发生改变
1 = 有符中发生次运 0 = 发生
Z:全
1 = 逻辑果为 0 = 逻辑果不为
(2)
(1)
DC半进/
用于 ADDWFADDLWSUBLW SUBWF 指令 1 = 果的第 4 个低位发生了
0 = 果的第 4 个低发生
C进位 / 用于 ADDWFADDLWSUBLW SUBWF 指令
1 = 果中最高位发生了 0 = 果中最高发生
(1)
(2)
C
1: 对于
RLF),此位装入源存器的 bit 4 bit 3
2: 对于
RLF),此位装入源存器的最高位或最低位。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 67
性是相的。法是通过个操作数的进制补的。对于指令 (RRF
性是相的。法是通过个操作数的进制补的。对于指令 (RRF
PIC18F2423/2523/4423/4523

5.4 数据寻址

注: 使能 PIC18 扩展指令集时, PIC18 核心
指令集指令执行会发生改变。更信息,请参5.5 节“数据存储器和扩 展指令集”
程序能用一方式寻址 (通过程序计数器 而数据存储空间可用多种方式寻址部分指令寻址定的。其他指令可能使用最多种模式,
据它们所使用的作数和是使能了扩展指令集而定。
这些寻址式为:
寻址
立即寻址
直接寻址
接寻址
使能了扩展指令集(XINST 配置 = 1时,还可使用种寻址模式,即立即数址寻址式。第 5.5.1
使用立即移量进行变址寻址将更详细讨论它的
作。

5.4.1 寻址立即寻址

PIC18 控制指令本不要任何参数。这些
整个器件影响,要么仅式地对一寄存进行操作。此 寻址式称为寻址例 如 指令 SLEEPRESET 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 节“存 储 选择存器
BSR)”)的内容将和指令定的地一起用于确
存器的完整 12 位地当“a”为 0 时,此地速操作存区中的一存器。使用 RAM 寻址式有时被称为强寻址式。
几条指令MOVFF,在作码中包含完整12 位地(源标地)。在这些情况下,BSR 全忽
保存操作结果的目标存器由标位 d确定。
d1 时,结果回源存器并覆盖原来的内容。
当“d”0 时,结W 存器中。有“d
参数的指令存器含在指令中,这些指令存器是作的存器或 W 存器。

5.4.3 接寻址

接寻址许用户访问数据存器中的存 无需指令出一定的地。这寻址式是通 过使用文件选择存器 File Select RegisterFSR
作为向被读实现的。由于 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
DS39755A_CN 68 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
5.4.3.1 FSR 存器和 INDF 作数
接寻址存器 FSR0FSR1FSR2
存器含有一对 8 存器 :FSRnHFSRnL FSRnH 存器的高 4 使用,因此FSR 保存
12 而可以线寻址数据存器的整个空 间。因此, FSR 存器对用作数据存器的地
针。
接寻址通过一组文件作数 INDF0 INDF2)完成 的。这 些 作数可拟”
器:它们映射SFR 空间而不是通过物理方式实现 的。对特定的 INDF 存器写操实际上访问 的是与之对应的一对 FSR 存器。如,INDF1 FSR1H:FSR1L 中的数据。使用 INDF 存器作为作数的指令实际使用相应FSR的内容作为 指令目标地针。 INDF 作数是使用该指 针的一便方法。
由于接寻址使用完整12 位地,因此要确 定数据 RAM 区。所以 BSR当前内容和速操RAM 位对于确定标地影响
5.4.3.2 FSR 存器和 POSTINC POSTDECPREINC 以及 PLUSW
INDF 作数之每对 FSR 存器4 作数。和 INDF ,它们也都是不能直接读 拟”寄存器。访问这些存器实际上访问的是 与之相关的一对 FSR存器,并对其所存的数值进行 特定的作。这些存器是:
•POSTDEC访问 FSR 后将它自递减 1
•POSTINC访问 FSR 后将它自增 1
• PREINC :将 FSR 的增 1,后在作中使用
•PLUSW:将 W 存器中的有符号值 (从 -127 到
128FSR 存器中的相加,并在作中使
用得的新
访问 INDF存器时使用 FSR存器中的而不会更改 该值。同样,访问 PLUSW 存器是将 W 存器中的 作为 FSR偏移量。该操作不会改变两个存器中的,而访问其他虚拟存器均会更改 FSR 存器的值。
使用 POSTDECPOSTINC PREINC FSR 进行 操作会影响存器 :FSRnL 存器FFh
00h 溢出并FSRnH 寄存器位。但这些作的 不会更STATUS寄存器中的标ZN OV
5-8 接寻址
使用以一个间接寻址寄存器作为
作数的指令 ....
... 使用存在与存器相关联的
一对 FSR 中的 12 位地址 ....
... 确定将在该操作中使用的数据存
在本中,FSR1 存器对中的 ECCh。这 意 味着ECCh 内容与 W 存器的内容相加,并将 果存回 ECCh 中。
ADDWF, INDF1, 1
FSR1H:FSR1L
07
7
xxxx1110 11001100
000h
Bank 0
100h
200h
300h
0
E00h
F00h
FFFh
Bank 1
Bank 2
Bank 3
Bank 13
Bank 14
Bank 15
数据存
2007 Microchip Technology Inc. 初稿 DS39755A_CN 69
PIC18F2423/2523/4423/4523
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 数据存器和扩展指令集

使能 PIC18 扩展指令集(XINST 配置 = 1显著改变 了数据存器及其寻址些方面。特是许PIC18 心指令使用速操作存区的方式有所不同。这是由扩展指令集了对数据存空间的新的寻址 式。
样需要了解些部分保持不。数据存储空间大小 及其线性寻址模式都不会改变SFR 映射保持不变。
PIC18心指令也仍以直接间接寻址进行操作;有和立即指令操照旧FSR0FSR1 间接寻址
保持不变

5.5.1 使用立即进行变址寻址

使能 PIC18 扩展指令集将更速操RAM 中使用 FSR2 寄存器对进行间接寻址的方式。在适 下,使用速操作存区的指令(数针对位和 针对字节指令)可以利用指令中的行变
寻址。这寻址式称为使用立即量的 址寻址立即址寻址式。
使用扩展指令集时,这种寻址式有如下要
使用速操作存a = 0;且
文件地参数要于或5Fh
在这些件下,指令的文件地不会为地低 字节 (直接寻址中和 BSR 一起使用,或快速操
区中的 8 位地,而是 为由 FSR2 定的地针的量。将量与 FSR2 的内容相加以获 取作的标地

5.5.2 立即址寻址影响指令

任何采用直接寻址式的PIC18心指令均有可能受到 立即址寻址模式的影响,包括所有针对字节和针对 位的指令,或 标 PIC18 指令集指令。仅 使用有或立即寻址式的指令影响
,如果针对字节和针对位的指令使用速操作存速操RAM 位为 1或包含 60h 或以的文件 地,它们影响。符合这些件的指令5-9 示了使能扩展指令集时,各
式之的对
要在立即址寻址式中使用针对位或针对字 节指令的用,应注意此式下法的改变。
在第 24.2.1 节 “扩展指令的语中对此进行了更详 细明。
DS39755A_CN 70 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
5-9 针对位和针对字节指令寻址式对比(使能了扩展指令集)
指令ADDWF, f, d, a(操作码0010 01da ffff ffff
a = 0 f 60h 时:指令直接制模
f速操作 RAM
060h 0FFh 的地 位于数据存器的060h 07Fh Bank 0F80h FFFh Bank 15中。
不可用此模式 寻址60h 的单
a = 0 f 5Fh 时:指令立即址寻址
f”被FSR2 中地量。将这两个值
加可以得到指令存器 的地址。此地 址 可以在数据存 储空间的任何地方。
注意在此式中,正确的语法 如下:
ADDWF [k], d
其中 “k”就“f
000H 060H
080H
100H
F00H
F80H
FFFH
000H
080H
100H
F00H
F80H
FFFH
Bank 0
Bank 1
Bank 14
Bank 15
SFR
数据存
Bank 0
Bank 1
Bank 14
Bank 15
SFR
数据存
00H 60H
80H
速操RAM
FSR2H FSR2L
FFH
FFFFFFFF001001DA
f
BSR
00000000
FFFFFFFF001001DA
a = 1(f 可为任何值)时: 指令直接寻址(也称为
直接址寻址
f为数据存储空间的
16 区中的一。存区由存选择存器
BSR)指定。此地可以位
于数据存储空间的任何实现
000H
080H
100H
Bank 0
Bank 1
Bank 14
区存区中。
F00H
Bank 15
F80H
FFFH
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 71
SFR
数据存
PIC18F2423/2523/4423/4523
5.5.3 立即址寻址式下映射速操
作存
使用立即址寻址式能有改变速操RAM
96 00h 5Fh映射方式。此映射 Bank 0的内容和由用的、可位于数据存储空间
任何地方的 内容,而不仅仅映射 Bank 0 低半 部分的内容。 FSR2 义映射口的地的下
,而边界则由 FSR2 95 (5Fh定。地 5Fh 速操RAM 映射方法如所述
5.3.2 节“速操作存储区”)。5-10 示了在寻址式下映射速操作存区示

5-10:使立即数址寻址映射速操作存

ADDWF f, d, a
FSR2H:FSR2L = 120h
FSR2 120h)到 FSR2针加 05Fh(17Fh)
内的存元被映射速操RAM
000h-05Fh
Bank 0 060h 07Fh 的存储单 元被 映射 作存区的中,和寻址
F 80h FFFh 的特殊功存器映射80h
FFh,和常寻址5Fh Bank 0
可以使用 BSR 对其进行 寻址
000h 05Fh
07Fh
100h 120h 17Fh
200h
F00h
F80h
FFFh
Bank 0
Bank 0
Bank 1
Bank 1
Bank 2
Bank 14
Bank 15
SFR
数据存
速操作存区的映射 式。使用 BSR 速操RAM 位为 1作和以使用直接寻址式。

5.6 PIC18 指令行和扩展指令集

使能扩展指令集8 其他命令到有的
PIC18 指令集中。这些指令如第 24.2.2 节 “扩展指令 集”中所述执行
适用于立即址寻址
Bank 1
Bank 0
SFR
速操作存
00h
5Fh 7Fh
80h
FFh
DS39755A_CN 72 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

6.0 闪存程序

正常工作状态下,闪存程序器在整个 VDD 是可的。
程序器时,读取个字节写程序 时,次写入一个 32 字节的块。程序存储器时,
次擦64 字节。用代码不能作。
擦写程序器时,系统停止取指令到操完 成擦写期间不能访问该程序器,因此也就无代码。由内部编程定时器止程序器的擦写操
作。
写入程序器的不一定要是有指令储 无指令程序导致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
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 73
PIC18F2423/2523/4423/4523

6-2 写操

指令TBLWT*
程序
保持存器
TBLPTRU
TBLPTRH TBLPTRL
(1)
程序存储器
TBLPTR
存器(8
TABLAT
1指针实际32 个保持寄存器中的某一,其地址由 TBLPTRL<4:0> 决定。 6.5 节“写闪存程序
中将讨论向程序存储器列写入数据的物理过程。

6.2 控制寄存器

TBLRD TBLWT 指令要用个控制寄存器。包括:
• EECON1 存器
• EECON2 存器
• TABLAT 存器
• TBLPTR 存器

6.2.1 EECON1 EECON2 存器

EECON1 存器存器 6-1是存访问控制
存器。EECON2 寄存器不是实际存在的寄存器,专用于器的擦写操作。EECON2 将得0
控制位 EEPGD 访问的是程序是数据 EEPROM 器。清零时,后作将访问数据 EEPROM 器。置 1 时,任何后续操将针对
程序进行 控制CFGS 访问的是配置 / 校准寄存器是程
/ 数据 EEP ROM 器。1 时,不管
EEPGD 如何,后续操作将访问配置寄存器 23.0 节“CPU 的特功能”)。清零时,
EEPGD 来选择访问的存器。
FREE 1 时,许对程序进行擦作,作在下一WR 启动FREE 清零时, 仅使能写操作。
WREN 1 时,许将 WR 1 并开始写操作。 上电时,WREN 被清零WREN WR 1
由代码置 1WREN 保持置 1 由代码清零 WRERR 位在 WR 置 1 时由置 1,在内部编程
时器时、写操被清零。如果由于任何原因导 致写操作中WRERR 保持1
注: 正常工作期间WRERR 1。这
写操被复位提终止进行了不合法的 写操作。
WR 控制位用于启动写操作。用能将1 清零。在写操完成后,由件将其清零
注: 当写操完成时, EEIF
PIR2<4>被置 1。它清零
DS39755A_CN 74 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
存器 6-1 EECON1EEPROM 控制存器 1
R/W-x R/W-x U-0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0
EEPGD CFGS
bit 7 bit 0
FREE WRERR
(1)
WREN WR RD
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1
bit 0
EEPGD:闪存程序器或数据 EEPROM 选择
1 = 访问闪存程序 0 = 访问数据 EEPROM
CFGS:闪存程序/ 数据 EEPROM 器或配置寄存器选择
1 = 访问配置寄存器 0 = 访问闪存程序器或数据 EEPROM
实现为 0
FREE:闪存行擦使能位
1 = 在下一WR TBLPTR 定的程序行(擦完成清零 0 = 行写操
WRERR:闪存程序/ 数据 EEPROM 器错
1 = 写操作提止(由于正常操作中自定时编程期间的任何位,或不合法的写操 0 = 写操完成
WREN:闪存程序/ 数据 EEPROM 使能位
1 = 许对闪存程序/ 数据 EEPROM 器的写周期 0 = 对闪存程序/ 数据 EEPROM 器的写周期
WR写控制
1 = 启动数据 EEPROM 擦写周期程序器的擦写周期写周期 (操作是自定时的,一旦写操
清零用软件能将 WR 1,但不能清零。)
0 = EEPROM 写周期完成 RD读控制
1 = 启动 EEPROM (读要一个周期RD 位由清零。用能将 RD1,但不能
清零EEPGD = 1 CFGS = 1 时, RD 1
0 = 启动 EEPROM
S =
(1)
1发生 WRERR 时, EEPGD CFGS 位不会被清零。这可以跟踪误状况。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 75
PIC18F2423/2523/4423/4523
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、用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时,表指存器的5位(TBLPTR<4:0> 定要写入程序器的哪个保持存器 (32 个) 当程序存储 器的定时写 入 (通 过 WR 位)开 始时, TBLPTR 的高 17 位 (TBLPTR<21:5>定要写入
个程序存块(32 字节)。更 详细信息,请6.5 节“写闪存程序”。
行擦程序器时,表指存器 的16
TBLPTR<21:6>)指将要64 字节块。低
TBLPTR<5:0>6-3 明了于闪存程序作的 TBLPTR相关
6-3 作的针范
21 16 15 87 0
TBLPTRU
——TBLPTR<21:6>
——TBLPTR<21:5>
表读——TBLPTR<21:0>
TBLPTRH
TBLPTRL
DS39755A_CN 76 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

6.3 闪存程序

TBLRD 指令用于从程序读取数据并数据
RAM表读操每次从程序读取个字节

6-4 闪存程序

程序
字节
TBLPTR 程序储空间个字节
TBLRD 指令将向的字节装入 TABLAT。此外, 以自TBLPTR 进行下一表读作。
内部程序通常为单位进行。由地 来选择字高字节低字节6-4 显示了 内部程序存储器和 TABLAT 之间的口。
字节
TBLPTR = xxxxx1
TBLPTR = xxxxx0
指令存器
(IR)
FETCH

6-1 闪存程序器的一个字

MOVLW CODE_ADDR_UPPER ; Load TBLPTR with the base MOVWF TBLPTRU ; address of the word MOVLW CODE_ADDR_HIGH MOVWF TBLPTRH MOVLW CODE_ADDR_LOW MOVWF TBLPTRL
READ_WORD
TBLRD*+ ; read into TABLAT and increment MOVF TABLAT, W ; get data MOVWF WORD_EVEN TBLRD*+ ; read into TABLAT and increment MOVFW TABLAT, W ; get data MOVF WORD_ODD
TBLRD
TABLAT
读寄存器
2007 Microchip Technology Inc. 初稿 DS39755A_CN 77
PIC18F2423/2523/4423/4523

6.4 闪存程序

大小为 32 个字64 字节只有通过使用编程器,或通过 ICSP™ 控制程序。闪存字擦
单片机本身开始个擦过程时,会64 字 节程序16 个最高TBLPTR<21:6>TBLPTR<5:0>
作由 EECON1 存器控制EEPGD
1 以闪存程序器。WREN 位被置 1 以使写操作。 FREE 被置 1 选择擦作。
为了安全起使用 EECON2 写启动序列
内部闪存写操作。在长写周期中,指令。由内部编程定时器写操作。
6-2 闪存程序器的一
MOVLW CODE_ADDR_UPPER ; load TBLPTR with the base MOVWF TBLPTRU ; address of the memory block MOVLW CODE_ADDR_HIGH MOVWF TBLPTRH MOVLW CODE_ADDR_LOW MOVWF TBLPTRL
ERASE_ROW
BSF EECON1, EEPGD ; point to Flash program memory BCF EECON1, CFGS ; access Flash program memory BSF EECON1, WREN ; enable write to memory BSF EECON1, FREE ; enable Row Erase operation BCF INTCON, GIE ; disable interrupts MOVLW 55h MOVWF EECON2 ; write 55h
序列 MOVLW 0AAh
MOVWF EECON2 ; write 0AAh BSF EECON1, WR ; start erase (CPU stall) BSF INTCON, GIE ; re-enable interrupts

6.4.1 闪存程序序列

内部程序如下:
1. 将要装入存器。
2. EECON1 存器行擦作:
EEPGD 1 程序
CFGS 清零访问程序
WREN 1 以使能写操
FREE 1 以使能作。
3.
4. EECON2 写入 55h
5. EECON2 写入 0AAh
6. WR 置 1。这将开始行擦周期
7. CPU 期间将会工作 使用内部定时 器定时约 2ms
8. 许中
DS39755A_CN 78 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

6.5 闪存程序

编程块大小16 个字32 字节。不 字节 编程
在内部使用写入闪存存器的内容装入 保持存器中。写操作使用 32 保持存器进行编
由于存器 TABLAT只是单字节寄存器,所以对次编程操作, TBLWT 指令都32 。因为
保持存器,所以所有的表写操实际上都。更新 32个保持存器后,须写 EECON1 存器, 以便启动写周期开始编程操作。

6-5 对闪存程序器的写操

8
保持存器 保持存器 保持存器 保持存器
8 8 8
TBLPTR = x xxx x2
对内部闪存编程使用长写操作。在长写周期中,指 令。由内部编程定时器写操作。
EEPROM 定时器控制写入的时写入 / 电压由片荷泵产生,该电荷泵可以工作在器件的 电压内。
注: 器件位和写操完成后保持存器的
认值FFh。将 FFh 写入保持存器不会 其中的。这意味着可以单独修改程 序器的各字节 (如不是任何位0 1。当单独修改字节时,无需
行写操前装入所有 32 个保持存 器。
TABLAT
存器
TBLPTR = xxxx1FTBLPTR = xxxxx1TBLPTR = xxxxx0

6.5.1 写入闪存程序器的过程

对内部程序编程过程为:
1. 64 字节RAM
2. 要时更新 RAM 中的数据
3. 标地装入存器。
4. 行行擦
5. 将要写入的第一个字节的地装入
器。
6. 递减 1
7. 32 个字节写入保持存器 预递
8. EECON1 存器行写操作:
EEPGD 1 程序
CFGS 清零访问程序
WREN 1 以使能字节写操作。
程序
9.
10. EECON2 写入 55h
11. EECON2 写入 0AAh
12. WR 置 1。这将开始写周期
13. CPU 写入期间将会工作 使用内部定时
器定时约 2ms
14. 许中
15. 重复从步骤 6开始写入剩余32个字节
16. 校验表读
过程需大约 6ms以更新存器的一64 字节6-3 出了所代码 的示
注: 在将 WR 1 保持
存器中的 32 个字节的地内。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 79
PIC18F2423/2523/4423/4523
6-3 闪存程序
MOVLW D’64’ ; number of bytes in erase block MOVWF COUNTER MOVLW BUFFER_ADDR_HIGH ; point to buffer MOVWF FSR0H MOVLW BUFFER_ADDR_LOW MOVWF FSR0L MOVLW CODE_ADDR_UPPER ; Load TBLPTR with the base MOVWF TBLPTRU ; address of the memory block MOVLW CODE_ADDR_HIGH MOVWF TBLPTRH MOVLW CODE_ADDR_LOW ; 6 LSB = '0' MOVWF TBLPTRL READ_BLOCK TBLRD*+ ; read into TABLAT, and inc MOVF TABLAT, W ; get data MOVWF POSTINC0 ; store data DECFSZ COUNTER, F ; done? BRA READ_BLOCK ; repeat MODIFY_WORD MOVLW DATA_ADDR_HIGH ; point to buffer MOVWF FSR0H MOVLW DATA_ADDR_LOW MOVWF FSR0L MOVLW NEW_DATA_LOW ; update buffer word MOVWF POSTINC0 MOVLW NEW_DATA_HIGH MOVWF INDF0 ERASE_BLOCK MOVLW CODE_ADDR_UPPER ; load TBLPTR with the base MOVWF TBLPTRU ; address of the memory block MOVLW CODE_ADDR_HIGH MOVWF TBLPTRH MOVLW CODE_ADDR_LOW MOVWF TBLPTRL BSF EECON1, EEPGD ; point to Flash program memory BCF EECON1, CFGS ; access Flash program memory BSF EECON1, WREN ; enable write to memory BSF EECON1, FREE ; enable Row Erase operation BCF INTCON, GIE ; disable interrupts MOVLW 55h
MOVWF EECON2 ; write 55h 序列 MOVLW 0AAh
MOVWF EECON2 ; write 0AAh BSF EECON1, WR ; start erase (CPU stall) BSF INTCON, GIE ; re-enable interrupts TBLRD*- ; dummy read - decrement pointer MOVLW BUFFER_ADDR_HIGH ; point to buffer MOVWF FSR0H MOVLW BUFFER_ADDR_LOW MOVWF FSR0L
WRITE_BUFFER_BACK1 ; write first 32 bytes to Flash MOVLW D’32’ ; number of bytes in holding register MOVWF COUNTER WRITE_BYTE_TO_HREGS1 MOVFF POSTINC0,WREG ; get low byte of buffer data MOVWF TABLAT ; present data to table latch TBLWT+* ; short write to holding ; register using pre-increment DECFSZ COUNTER ; loop until buffers are full BRA WRITE_BYTE_TO_HREGS1
DS39755A_CN 80 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523
6-3 闪存程序(续)
PROGRAM_MEMORY1 BSF EECON1, EEPGD ; point to Flash program memory BCF EECON1, CFGS ; access Flash program memory BSF EECON1, WREN ; enable write to memory BCF INTCON, GIE ; disable interrupts MOVLW 55h
MOVWF EECON2 ; write 55h 序列 MOVLW 0Aah
MOVWF EECON2 ; write 0AAh BSF EECON1, WR ; start program (CPU stall) BSF INTCON, GIE ; re-enable interrupts BCF EECON1, WREN ; disable write to memory WRITE_BUFFER_BACK2 ; write remaining 32 bytes to Flash MOVLW D’32’ ; number of bytes in holding register MOVWF COUNTER WRITE_BYTE_TO_HREGS2 MOVFF POSTINC0, WREG ; get low byte of buffer data MOVWF TABLAT ; present data to table latch TBLWT+* ; short write to holding ; register using pre-increment DECFSZ COUNTER, F ; loop until buffers are full BRA WRITE_BYTE_TO_HREGS2 PROGRAM_MEMORY2 BSF EECON1, EEPGD ; point to Flash program memory BCF EECON1, CFGS ; access Flash program memory BSF EECON1, WREN ; enable write to memory BCF INTCON, GIE ; disable interrupts MOVLW 55h
MOVWF EECON2 ; write 55h 序列 MOVLW 0AAh
MOVWF EECON2 ; write 0AAh BSF EECON1, WR ; start program (CPU stall) BSF INTCON, GIE ; re-enable interrupts BCF EECON1, WREN ; disable write to memory

6.5.2 校验

具体应用,将写入器的与原始值校验对是很好编程习惯。在应用中,如果些位的写次接近规定采用校验

6.5.3 止写操

如果由于意事件 (如或意外复写操 作,应刚刚编程的存储进行证,如有要,
要 重 进行编程。当写操作在正常操过程中因
位或 WDT 位而中时,用可以
MCLR WRERR 位,并重写该

6.5.4 写操作的保护

对闪存程序器意写操作,须遵循写操 作的启动序列。在6-3 中,需的序列”通过使用 5 指令的特定序列来写。所示序列否则写操作不会发生。

6.6 代码保护期间闪存程序器的操作

其他保护通过使用第 23.5 节 “程序校验和代码 保护述的代码保护功能实现
2007 Microchip Technology Inc. 初稿 DS39755A_CN 81
PIC18F2423/2523/4423/4523

6-2 与闪存程序器相关的存器

名称
TBLPTR U TBPLTRH TBLPTRL TABLAT INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 49 EECON2 EECON1 EEPGD CFGS IPR2 OSCFIP CMIP EEIP BCLIP HLVDIP TMR3IP CCP2IP 52 PIR2 OSCFIF CMIF EEIF BCLIF HLVDIF TMR3IF CCP2IF 52 PIE2
注: — = 实现0。闪存 /EEPROM 访问期间不使用
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
—bit 21
程序高字节 (TBLPTR<15:8>) 程序低字节 (TBLPTR<7:0>) 程序存器
EEPROM 控制存器 2 不是实际存在的存器
OSCFIE CMIE EEIE BCLIE HLVDIE TMR3IE CCP2IE 52
程序最高字节 (TBLPTR<20:16>
FREE WRERR WREN WR RD 51
所在页
49 49 49 49
51
DS39755A_CN 82 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

7.0 数据 EEPROM

数据 EEPROM 非易失性的存独立于数据 RAM 程序器,用于程序数据的。它并不
直接映射存器文件或程序储空间,而是通过 功能存器 SFR)来间接寻址。在整个 V正常运行期间EEPROM 是可的。
5 SFR 用于数据 EEPROM 以及程序器, 它们是:
• EECON1
• EECON2
• EEDATA
• EEADR
数据 EEPROM 许以字节为单位与数据存口时,EEDATA存8 数据,而 EEADR 存器存访问EEPROM 的地
EEPROM数据存擦写次数。字节写操作会动擦标存写入新数据 (写入 前擦
写入由片定时器控制,其电压温 度和不同的片而不同。具体的限制值,请参D122
26.0 节“电特性中的 26-1

7.1 EEADR 存器

EEADR 寄存器用于寻址数据 EEPROM 进行写操 作。8 位的存器可寻址 256 字节(00h FFh)的存 器范

7.2 EECON1 EECON2 寄存器

DD
EECON1 存器存器 7-1是数据和程序访
控制存器。控制EEPGD 访问程序闪存存是数据 EEPROM 器。清零时,作将访问
数据 EEPROM 器。1 时,访问程序闪存存 器。
控制位CFGS访问配置寄存器程序闪存存 / 数据 EEPROM 器。置 1 时,后续操作会访问配置
存器。而当 CFGS 清零时,EEPGD 来选择具 体访问程序闪存存是数据 EEPROM 器。
WREN 1 时,许进行写操作。上电时,WREN
被清零WRERR 位在 WR 被置 1 时由1, 在内部编程定时器定时写操被清零
注: 正常操期间WRERR 可能会1
写操位提进行了不 合法的写操作。
WR 控制位用于启动写操作。用能将1 清零。在写操完成后,由件将其清零
注: 当写操完成时, EEIF
PIR2<4>被置 1。它清零
控制RD WR 启动擦写操作。这些位由 1,并在完成时由清零
当访问程序器(EEPGD = 1时,RD 位无法1 程序存储器是通过表读指令读取的。关于表读的信息, 请参 6.1 节“表读写”
EECON2寄存器不是实际存在的存器。它用于存过程EECON2 将得0
对数据 EEPROM 访问EECON1 EECON2
存器控制。它们来控制程序器的访问, 访问两种器时对这两个存器的使用方法类似。
2007 Microchip Technology Inc. 初稿 DS39755A_CN 83
PIC18F2423/2523/4423/4523

存器 7-1 EECON1EEPROM 控制存器 1

R/W-x R/W-x U-0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0
EEPGD CFGS FREE WRERR
bit 7 bit 0
(1)
WREN WR RD
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1
bit 0
EEPGD:闪存程序器或数据 EEPROM 选择
1 = 访问闪存程序 0 = 访问数据 EEPROM
CFGS:闪存程序/ 数据 EEPROM 器或配置寄存器选择
1 = 访问配置寄存器 0 = 访问闪存程序器或数据 EEPROM
实现为 0
FREE:闪存行擦使能位
1 = 在下一WR TBLPTR 寻址程序行(擦完成清零 0 = 行写操
WRERR:闪存程序/ 数据 EEPROM 器错
1 = 写操作提止(由于正常操作中自定时编程期间的任何位,或不合法的写操 0 = 写操完成
WREN:闪存程序/ 数据 EEPROM 使能位
1 = 许对闪存程序/ 数据 EEPROM 器的写周期 0 = 对闪存程序/ 数据 EEPROM 器的写周期
WR写控制
1 = 启动数据 EEPROM 擦写周期程序器的周期写周期 (操作是自定时的,一旦写操
清零用软件能将 WR 1,但不能清零。)
0 = EEPROM 写周期完成 RD读控制
1 = 启动 EEPROM (读要一个周期RD 位由清零。用能将 RD1,但不能
清零EEPGD = 1 CFGS = 1 时, RD 1
0 = 启动 EEPROM
S =
(1)
1发生 WRERR 时, EEPGD CFGS 位不会清零。这可以跟踪误状况。
DS39755A_CN 84 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

7.3 数据 EEPROM

读取数据存,用将地写入 EEADR 存器,清零 EEPGD 控制EECON1<7>),后将
控制RD EECON1<0>1。可在下一个指令周 期访问该数据因此,EEDATA 存器可由下一条指令
读取EEDATA 将保存下一读取或用写入数据时 (写操
过程 7-1 中所示。

7.4 写数据 EEPROM

EEPROM 数据存写入数据,须首将地 写入 EEADR 存器,并将数据写入 EEDATA 寄存 器。须遵循 7-2 中的序列启动写周期
如果没有 全遵循该指令序列 (先将 55h 写入
EECON2,随后将 0AAh 写入 EECON2后将 WR 1)写个字节,将不会启动写操作。强建议在这 代码段执行期间

7-1 数据 EEPROM

MOVLW DATA_EE_ADDR ; MOVWF EEADR ; Data Memory Address to read BCF EECON1, EEPGD ; Point to DATA memory BCF EECON1, CFGS ; Access EEPROM BSF EECON1, RD ; EEPROM Read MOVF EEDATA, W ; W = EEDATA
须将 EECON1 中的 WREN 1 以使能写操 作。这由于意代码 程序失控)
导致数据 EEPROM了更新 EEPROM 时以 WREN位应保持清零。WREN位不会清零
个写序列启动后,EECON1EEADR和 EEDATA不被修WREN 1否则WR
被置 1WR WREN 不能由同一指令1 写周期完成后,WR位由硬件清零EEPROM中断标
位 EEIF 被置 1。用可以许此中查询此位。 EEIF 清零

7.5 校验

具体应用,将写入器的与原始值校验对是很好编程习惯。在应用中,如果些位的写次
接近额采用校验

7-2 数据 EEPROM

MOVLW DATA_EE_ADDR ; MOVWF EEADR ; Data Memory Address to write MOVLW DATA_EE_DATA ; MOVWF EEDATA ; Data Memory Value to write BCF EECON1, EEPGD ; Point to DATA memory BCF EECON1, CFGS ; Access EEPROM
序列 MOVWF EECON2 ; Write 0AAh
BSF EECON1, WREN ; Enable writes
BCF INTCON, GIE ; Disable Interrupts MOVLW 55h ; MOVWF EECON2 ; Write 55h MOVLW 0AAh ;
BSF EECON1, WR ; Set WR bit to begin write BSF INTCON, GIE ; Enable Interrupts
; User code execution
BCF EECON1, WREN ; Disable writes on write complete (EEIF set)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 85
PIC18F2423/2523/4423/4523

7.6 代码保护期间

数据 EEPROM 器在配置中有它自的代码保护 位。如果使能任一代码保护机写操 止。
单片机本身可以内部数据 EEPROM,与代码保护 配置位的状态无关。更信息,请参 23.0 节“ CPU 的特功能”。

7.8 使用数据 EEPROM

数据 EEPROM 用性可字节寻址将其
优化以便存储频变动的信息如,程序变量或其他 经常更新的数据变动值的更新频率通常高于规
D124 中的规定。如果情况并如此,新。因此,只偶尔改变量、ID 校准 在闪存程序器中。
单的数据 EEPROM 程序 7-3 中所示。

7.7 写操作的保护

注: 如果数据 EEPROM 仅用于存储常量和 /
有些情况下,用并不希望写入数据 EEPROM器。 为了EEPROM 写操作,器件实现了各保护机
上电时,WREN 被清零。而 上电时定时
PWRT,参数 33)也 对 EEPROM 进行写操
间(T
作。
欠压电源毛刺期间写操作的启动序列 以及 WREN 位可外写操作的发生。

7-3:数EEPROM 刷新程序

CLRF EEADR ; Start at address 0 BCF EECON1, CFGS ; Set for memory BCF EECON1, EEPGD ; Set for Data EEPROM BCF INTCON, GIE ; Disable interrupts
Loop ; Loop to refresh array
BSF EECON1, WREN ; Enable writes
BSF EECON1, RD ; Read current address MOVLW 55h ; MOVWF EECON2 ; Write 55h MOVLW 0AAh ; MOVWF EECON2 ; Write 0AAh BSF EECON1, WR ; Set WR bit to begin write BTFSC EECON1, WR ; Wait for write to complete BRA $-2 INCFSZ EEADR, F ; Increment address BRA LOOP ; Not zero, do it again
很少改变的数据,没有 新。请参规范 D124
BCF EECON1, WREN ; Disable writes BSF INTCON, GIE ; Enable interrupts
DS39755A_CN 86 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

7-1 与数据 EEPROM 器相关的存器

名称
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF 49 EEADR EEDATA EECON2 EECON1 EEPGD CFGS IPR2 OSCFIP CMIP EEIP BCLIP HLVDIP TMR3IP CCP2IP 52 PIR2 PIE2 OSCFIE CMIE EEIE BCLIE HLVDIE TMR3IE CCP2IE 52
注: — = 实现0。闪存 /EEPROM 访问时不使用
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 B it 2 Bit 1 Bit 0
EEPROM 址寄存器 EEPROM 数据存器 EEPROM 控制存器 2 不是实际存在的存器
FREE WRERR WREN WR RD 51
OSCFIF CMIF EEIF BCLIF HLVDIF TMR3IF CCP2IF 52
所在页
51 51 51
2007 Microchip Technology Inc. 初稿 DS39755A_CN 第 87
PIC18F2423/2523/4423/4523
注:
DS39755A_CN 88 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

8.0 8 x 8 法器

8.1 简介

所有 PIC18 器件均包含一8 x 8 法器(是 ALU 的一部分)。该乘法器可行无号运并产生一16果,该结果存在一对存器
PRODH:PRODL 中。该乘法器不会影响 STA TUS存器中的任何标
通过硬行乘算只要一个指令周期法 器有更吞吐量并减少 法 的代码 而可在许多先前仅能使用数号处理器的应用 中使用 PIC18 器件。8-1 给出了件和比较,包括所储空间

8.2 工作原理

8-1 出了一8 x 8 号乘的指令序列WREG 存器中装入了一个乘数时,实现该运算指令
8-2出了一个 8 x 8 有符号乘的指令序列。要
参数的符位,查每参数的2007 MSb,并相应的法。

8-1 8 x 8 号乘程序

MOVF ARG1, W ; MULWF ARG2 ; ARG1 * ARG2 ->
; PRODH:PRODL

8-2 8 x 8 有符号乘程序

MOVF ARG1, W MULWF ARG2 ; ARG1 * ARG2 ->
; PRODH:PRODL BTFSC ARG2, SB ; Test Sign Bit SUBWF PRODH, F ; PRODH = PRODH
; - ARG1 MOVF ARG2, W BTFSC ARG1, SB ; Test Sign Bit SUBWF PRODH, F ; PRODH = PRODH
; - ARG2

8-1:各种乘的性能比较

程序 实现方法
8 x 8
8 x 8 有符
16 x 16
16 x 16 有符
非硬
非硬
非硬
非硬
程序
(字)
13 69 8.63 µs27.6 µs69 µs
1 1 125 ns 400 ns 1 µs
33 91 11.4 µs36.4 µs91 µs
6 6 750 ns 2.4 µs6 µs 21 242 30.3 µs96.8 µs 242 µs 28 28 3.5 µs 11.2 µs28 µs 52 254 31.8 µs102.6 µs 254 µs 35 40 5.0 µs16.0 µs40 µs
周期
(最多)
32 MHz 10 MHz 4 MHz
2007 Microchip Technology Inc. 初稿 DS39755A_CN 89
PIC18F2423/2523/4423/4523
8-3出了一16 x 16号乘指令序列 公式 8-1 为所使用的法。32 位果存4 存器
RES3:RES0中。

公式 8-1 16 x 16 号乘

RES3:RES0 = ARG1H:ARG1L ARG2H:ARG2L
= (ARG1H ARG2H 2
(ARG1H ARG2L 2 (ARG1L ARG2H 2 (ARG1L ARG2L)
16
) +
8
) +
8
) +

8-3 16 x 16 号乘程序

MOVF ARG1L, W MULWF ARG2L ; ARG1L * ARG2L->
MOVFF PRODH, RES1 ; MOVFF PRODL, RES0 ;
;
MOVF ARG1H, W MULWF ARG2H ; ARG1H * ARG2H->
MOVFF PRODH, RES3 ; MOVFF PRODL, RES2 ;
;
MOVF ARG1L, W MULWF ARG2H ; ARG1L * ARG2H->
MOVF PRODL, W ; ADDWF RES1, F ; Add cross MOVF PRODH, W ; products ADDWFC RES2, F ; CLRF WREG ; ADDWFC RES3, F ;
;
MOVF ARG1H, W ; MULWF ARG2L ; ARG1H * ARG2L->
MOVF PRODL, W ; ADDWF RES1, F ; Add cross MOVF PRODH, W ; products ADDWFC RES2, F ; CLRF WREG ; ADDWFC RES3, F ;
8-4 出了 16 x 16 有符号乘指令序列 公式 8-2 为所使用的法。32 果存4 存 器 RES3:RES0中。要数的符位, 查每个乘数的最高MSb,并相应的法。
; PRODH:PRODL
; PRODH:PRODL
; PRODH:PRODL
; PRODH:PRODL

公式 8-2 16 x 16 有符号乘

RES3:RES0 = ARG1 H:ARG1L ARG2H:ARG2L
= (ARG1H ARG2H 2
(ARG1H ARG2L 2 (ARG1L ARG2H 2 (ARG1L ARG2L) + (-1 ARG2H<7> ARG1H:ARG1L 2 (-1 ARG1H<7> ARG2H:ARG2L 2
16
) +
8
) +
8
) +
16 16

8-4 16 x 16 有符号乘程序

MOVF ARG1L, W MULWF AR G2L ; ARG1L * ARG2L ->
MOVFF PRODH, RES1 ; MOVFF PRODL, RES0 ;
;
MOVF ARG1H, W MULWF AR G2H ; ARG1H * ARG2H ->
MOVFF PRODH, RES3 ; MOVFF PRODL, RES2 ;
;
MOVF ARG1L, W MULWF AR G2H ; ARG1L * ARG2H ->
MOVF PRODL, W ; ADDWF RES1, F ; Add cross MOVF PRODH, W ; products ADDWFC RES2, F ; CLRF WREG ; ADDWFC RES3, F ;
;
MOVF ARG1H, W ; MULWF AR G2L ; ARG1H * ARG2L ->
MOVF PRODL, W ; ADDWF RES1, F ; Add cross MOVF PRODH, W ; products ADDWFC RES2, F ; CLRF WREG ; ADDWFC RES3, F ;
;
BTFSS ARG2H, 7 ; ARG2H:ARG2L neg? BRA SIGN_ARG1 ; no, check ARG1 MOVF ARG1L, W ; SUBWF RES2 ; MOVF ARG1H, W ;
SUBWFB RES3 ; SIGN_ARG1
BTFSS ARG1H, 7 ; ARG1H:ARG1L neg?
BRA CONT_CODE ; no, done
MOVF ARG2L, W ;
SUBWF RES2 ;
MOVF ARG2H, W ;
SUBWFB RES3 ; CONT_CODE :
; PRODH:PRODL
; PRODH:PRODL
; PRODH:PRODL
; PRODH:PRODL
) + )
DS39755A_CN 90 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

9.0

PIC18F2423/2523/4423/4523 器件具有多个断源断优先级功能,功能可以给每断源高优先 级或低优先级。高优先级中量位于 0008h低优
级中量位于 0018h高优先级中事件可以中断 正理的低优先级中
10 存器用于控制断操作。这些存器是:
• RCON
•INTCON
• INTCON2
• INTCON3
•PIR1和 PIR2
•PIE1和 PIE2
•IPR1和 IPR2
®
建议使用MPLAB 名这些存器中的位。这使得/ 译器能存器内的这些位。
通常,中断源3 位用于控制作。这些位的功能 分是:
明发生了中事件
许位程序跳量地行(当 置 1
优先级位用于选择高优先低优先
通过IPEN RCON<7>1,可使能中断优先级 功能。当使能中断优先级时,有 2 个全中断允许位。将
GIEH INTCON<7>)置 1,可许所有优先级位1 (高优先的中。将 GIEL INTCON<6>1,可许所有优先级位清零(低优先的中
志位、允许位及相应的全局中允许位均被置 1 时,中断将据优先级位的设置立即跳转到地0008h0018h也可以通过设置相应的中允许位止各
IDE 提供的 Microchip 头文件命
IPEN 清零 状态时,便会断优先级 功能,此时中是与 PIC 式 下,各 断源的中断优先级位不起作用。
INTCON<6>PEIE 位,用于/ 禁止所有的外设 断源INTCON<7> GIE 位,用于/ 所有中 断源。在式下,所有中0008h
应中时,全许位被清零其他中清零后的 IPEN GIE 位。如果使用了中断优 先级,这GIEH 位或GIEL 位。高优先级中 断源会中断低优先级中。在高优先级中时,低 优先级中将不被响应。
返回地址被压入堆栈,中断向量地0008h0018h装入 PC要在中服务程序中,可以通过查询
确定中断源。在许中断前件将中清零,以重复应中
行“从中返回”指令 RETFIE 退出中断程序,同 时将 GIE若使用中断优先级GIEHGIEL 位) 1,许中
对于部中事件,INT 引脚中PORTB
入电平变化,中时将会是 3 4 个指令周 期。对于单周期双周期指令,中全相
同。各中位的1 对应的中许位和 GIE状态影响
注: 允许任何中时,不要使用 MOVFF 指令
改中断控制存器。否则可能导致单片作出错。
®
中档系列器件容的。在
2007 Microchip Technology Inc. 初稿 DS39755A_CN 91
PIC18F2423/2523/4423/4523

9-1 PIC18 逻辑

TMR0IF TMR0IE TMR0IP
RBIF RBIE RBIP
INT0IF
INT0IE
INT1IF INT1IE INT1IP
INT2IE INT2IP
IPEN
PEIE/GIEL
INT2IF
产生高优先级中
产生低优先级中
ADIF ADIE ADIP
RCIF RCIE RCIP
SSPIF SSPIE SSPIP
ADIF ADIE ADIP
RCIF RCIE RCIP
SSPIF SSPIE SSPIP
其他外设
其他外设
IPEN
TMR0IF TMR0IE
TMR0IP
RBIF RBIE
RBIP
INT1IF INT1IE
INT1IP
INT2IF INT2IE
INT2IP
IPEN
GIE/GIEH PEIE/GIEL
如果空闲 休眠模唤醒
CPU 的中断 跳
0008h
GIE/GIEH
CPU 的中断 跳
0018h
DS39755A_CN 92 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

9.1 INTCON 存器

INTCON 寄存器是可写的存器,包含各 位、优先级位和标位。
注: 当中断条件产生时,不管相应的中允许
位或全局中许位的状态如何,中1。中位可由查询
户软件应在许一断前先将相应的清零;否则只要许了中 会产生中断。

存器 9-1 INTCON:中断控制存器

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x
GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
1电平的不会不地将1读取 PORTB 可以情况,并将清零
GIE/GIEH:全许位
IPEN = 0 时: 1 = 许所有屏蔽的中 0 = 所有中
IPEN = 1 时:
1 = 许所有高优先级中 0 = 所有中
PEIE/GIEL外设许位
IPEN = 0 时:
1 = 许所有屏蔽外设 0 = 所有外设
IPEN = 1 时: 1 = 许所有低优先级的外设 0 = 所有低优先级的外设
TMR0IETMR0 出中许位
1 = TMR0 出中 0 = TMR0 出中
INT0IEINT0 部中许位
1 = INT0 部中 0 = INT0 部中
RBIERB电平变化许位
1 = RB 电平变化 0 = RB 电平变化
TMR0IFTMR0 出中
1 = TMR0 存器清零 0 = TMR0 存器
INT0IFINT0 部中
1 = 发生了 INT0 部中断(清零 0 = 发生 INT0 部中
RBIFRB电平变化
1 = RB7:RB4 引脚中有一引脚的电平状态发生了改变 (清零 0 = RB7:RB4 引脚电平状态改变
(1)
(1)
2007 Microchip Technology Inc. 初稿 DS39755A_CN 93
PIC18F2423/2523/4423/4523

存器 9-2 INTCON2:中断控制存器 2

R/W-1 R/W-1 R/W-1 R/W-1 U-0 R/W-1 U-0 R/W-1 RBPU
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
INTEDG0 INTEDG1 INTEDG2 —TMR0IP—RBIP
bit 7
bit 6
bit 5
bit 4
bit 3 bit 2
bit 1 bit 0
注: 件产生时,不管相应的中许位或全许位的状态如何,中置 1。中
RBPU
PORTB 上拉使能位
1 = 所有 PORTB 上拉 0 = 据各使能 PORTB 上拉
INTEDG0部中0 沿选择
1 = 沿发中 0 = 沿发中
INTEDG1部中1 沿选择
1 = 沿发中 0 = 沿发中
INTEDG2部中2 沿选择
1 = 沿发中 0 = 沿发中
实现为 0
TMR0IPTMR0 出中断优先级位
1 = 高优先 0 = 低优先
实现为 0
RBIPRB电平变化断优先级位
1 = 高优先 0 = 低优先
位可由查询
户软件应在许一断前将相应的中清零;否则只许了中会产生中
DS39755A_CN 94 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

存器 9-3 INTCON3:中断控制存器 3

R/W-1 R/W-1 U-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0
INT2IP INT1IP INT2IE INT1IE INT2IF INT1IF
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2 bit 1
bit 0
注: 件产生时,不管相应的中许位或全许位的状态如何,中置 1。中
INT2IPINT2 部中断优先级位
1 = 高优先 0 = 低优先
INT1IPINT1 部中断优先级位
1 = 高优先 0 = 低优先
实现为 0
INT2IEINT2 部中许位
1 = INT2 部中 0 = INT2 部中
INT1IEINT1 部中许位
1 = INT1 部中 0 = INT1 部中
实现为 0
INT2IFINT2 部中
1 = 发生了 INT2 部中断(清零 0 = 发生 INT2 部中
INT1IFINT1 部中
1 = 发生了 INT1 部中断(清零 0 = 发生 INT1 部中
位可由查询
户软件应在许一断前将相应的中清零;否则只许了中会产生中
2007 Microchip Technology Inc. 初稿 DS39755A_CN 95
PIC18F2423/2523/4423/4523

9.2 PIR 存器

PIR 寄存器包含各外设的标位。外设断源 的数 量,有两个外设存器 PIR1 PIR2)。
1当中断条件产生时,不管相应的中允许
位或全许位 GIEINTCON<7>状态如何,中1
2: 户软件应在许中断前
后,将相应的中清零

存器 9-4 PIR1外设(标存器 1

R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0
(1)
PSPIF
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
PSPIF:并行从动读 /
1 = 发生了写操清零 0 = 发生写操
ADIFA/D器中
1 =A/D换完成 (清零 0 =A/D换未完成
RCIFEUSART接收
1 =EUSART接收缓冲RCREG 读取 RCREG 清零 0 =EUSART接收缓冲器为
TXIFEUSART
1 =EUSART送缓冲TXREG 空 (写入 TXREG 清零 0 =EUSART送缓冲
SSPIF:主同步串行口中
1 = / 接收完成 (清零 0 = 等待/ 接收
CCP1IFCCP1 捕捉模式:
1 = 发生了 TMR1 存器捕捉(清零 0 = 发生 TMR1 存器捕捉
比较模式:
1 = 发生了 TMR1 存器的比较清零 0 = 发生 TMR1 存器的比较
PWM 在此式下使用。
TMR2IFTMR2 PR2
1 =TMR2PR2 清零 0 =TMR2PR2 发生
TMR1IFTMR1 出中
1 =TMR1存器清零 0 =TMR1存器
式:
(1)
1位在 28 引脚器件上未实现0
DS39755A_CN 96 初稿 2007 Microchip Technology Inc.
PIC18F2423/2523/4423/4523

存器 9-5 PIR2外设存器 2

R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
OSCFIF CMIF EEIF BCLIF HLVDIF TMR3IF CCP2IF
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1
bit 0
OSCFIF振荡
1 = 系统振荡改成INTOSC 作为时钟输入 (清零 0 = 系统钟正常运行
CMIF比较器中
1 = 比较输入已改变 (清零 0 = 比较输入未变化
实现为 0
EEIF:数据 EEPROM/ 闪存写操作中
1 = 写操完成 (清零 0 = 写操未完成未开始
BCLIF总线
1 = 发生了总线清零 0 = 发生总线
HLVDIF/ 低压检测
1 = 发生了/ 低压VDIRMAG HLVDCON<7> 0 = 发生/ 低压
TMR3IFTMR3 出中
1 =TMR3存器清零 0 =TMR3存器
CCP2IFCCP2 捕捉模式:
1 = 发生了 TMR1 存器捕捉 (清零 0 = 发生 TMR1 存器捕捉
比较模式:
1 = 发生了 TMR1 存器的比较清零 0 = 发生 TMR1 存器的比较
PWM
在此式下不使用。
式:
2007 Microchip Technology Inc. 初稿 DS39755A_CN 97
PIC18F2423/2523/4423/4523

9.3 PIE 存器

PIE 寄存器包含各外设许位。外设断源 的数量,有两个外设存器PIE1PIE2)。
IPEN = 0 时,要允许任一外设,必PEIE1

存器 9-6 PIE1外设存器 1

R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0
(1)
PSPIE
bit 7 bit 0
注:
R = W = U = 实现位,为 0
-n = POR 1 = 10 = 清零 x =
ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
PSPIE:并行从动读 / 许位
1 = PSP / 0 = PSP /
ADIEA/D器中许位
1 = A/D 0 = A/D
RCIEEUSART接收许位
1 = EUSART 接收 0 = EUSART 接收
TXIEEUSART许位
1 = EUSART 0 = EUSART
SSPIE:主同步串行口中许位
1 = MSSP 0 = MSSP
CCP1IECCP1 许位
1 = CCP1 0 = CCP1
TMR2IETMR2 PR2 许位
1 = TMR2 PR2 0 = TMR2 PR2
TMR1IETMR1 出中许位
1 = TMR1 出中 0 = TMR1 出中
(1)
1位在 28 引脚器件上未实现0
DS39755A_CN 98 初稿 2007 Microchip Technology Inc.
Loading...