ETC PIC12L1501

PIC12(L)F1501
数据手册
8 引脚 8 位闪存单片机
*8 位 8 引脚器件受 Microchip 低引脚数专利保护:美国专利号为 5847450。其他美国或他国专利可能已经颁发,或正在
接受审查。
 2012 Microchip Technology Inc.
初稿
DS41615A_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 徽标、 dsPIC、
KEELOQ、 KEELOQ 徽标、 MPLAB、 PIC、 PICmicro、
PICSTART、 PIC32 徽标、 rfPIC 和 UNI/O 均为 Microchip
Technology Inc. 在美国和其他国家或地区的注册商标。
FilterLab、 Hampshire、 HI-TECH C、 Linear Active
Thermistor、MXDEV、MXLAB、SEEVAL 和 The Embedded
Control Solutions Company 均为 Microchip Technology Inc.
在美国的注册商标。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
Analog-for-the-Digital Age、 Application Maestro、 chipKIT、
chipKIT 徽标、 CodeGuard、 dsPICDEM、 dsPICDEM.net、
dsPICworks、 dsSPEAK、 ECAN、 ECONOMONITOR、
FanSense、 HI-TIDE、 In-Circuit Serial Programming、
ICSP、 Mindi、 MiWi、 MPASM、 MPLAB Certified 徽标、
MPLIB、MPLINK、mTouch、Omniscient Code Generation、
PICC、 PICC-18、 PICDEM、 PICDEM.net、 PICkit、
PICtail、 REAL ICE、 rfLAB、 Select Mode、 Total
Endurance、 TSHARC、 UniWinDriver、 WiperLock 和
ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地
区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2012, Microchip Technology Inc. 版权所有。
ISBN:978-1-62076-148-9
QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州
Gresham 的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
印度的设计中心均通过了 ISO/TS-16949:2009 认证。 Microchip 的
PIC® MCU 与 dsPIC® DSC、KEELOQ® 跳码器件、串行 EEPROM、单片
机外设、非易失性存储器和模拟产品严格遵守公司的质量体系流程。此
外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了
ISO 9001:2000 认证。
== ISO/TS 16949 == DS41615A_CN 第 2 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚 8 位闪存单片机
高性能 RISC CPU:
低功耗特性 (PIC12LF1501):
•
•
•
•
•
• 待机电流:
- 1.8V 时,典型值为 20 nA
• 看门狗定时器电流:
- 1.8V 时,典型值为 200 nA
• 工作电流:
- 1.8V 时,典型值为 30 A/MHz
优化的 C 编译器架构
仅需 49 条指令
可寻址 1K 字的线性数据存储空间
可寻址 64 字节的线性数据存储空间
工作速度:
- DC – 20 MHz 时钟输入
- DC – 200 ns 指令周期
• 带有自动现场保护的中断功能
• 带有可选上溢 / 下溢复位的 16 级深硬件堆栈
• 直接、间接和相对寻址模式:
- 两个完全 16 位文件选择寄存器 (File Select
Register, FSR)
- FSR 可以读取程序和数据存储器
外设特性:
• 模数转换器 (Analog-to-Digital Converter,
ADC):
- 10 位分辨率
- 4 路外部通道
- 2 路内部通道:
- 固定参考电压和 DAC 通道
- 温度指示器通道
- 自动采集功能
- 可在休眠模式下进行转换
• 1 个比较器:
- 轨到轨输入
- 功耗模式控制
- 可通过软件控制滞后
• 参考电压模块:
- 具有 1.024V、 2.048V 和 4.096V 输出的固定
参考电压 (Fixed Voltage Reference, FVR)
- 1 个带有正参考电压选择的 5 位轨到轨电阻式
DAC
• 6 个 I/O 引脚 (其中 1 个引脚仅用作输入):
- 高灌 / 拉电流:25 mA/25 mA
- 可单独编程的弱上拉
- 可单独编程的电平变化中断
(Interrupt-On-Change, IOC)引脚
• Timer0:带有 8 位可编程预分频器的 8 位定时器 /
计数器
• 增强型 Timer1:
- 带有预分频器的 16 位定时器 / 计数器
- 外部门控输入模式
• Timer2:带有 8 位周期寄存器、预分频器和后分
频器的 8 位定时器 / 计数器
• 4 个 10 位 PWM 模块
• 2 个可配置逻辑单元 (Configurable Logic Cell,
CLC)模块:
- 16 个可选输入源信号
- 每个模块具有 4 个输入
- 可通过软件控制组合 / 顺序逻辑 / 状态 / 时钟功能
- AND/OR/XOR/D 型触发器 /D 型锁存器 /SR/JK
- 外部或内部输入 / 输出
- 可在休眠模式下工作
灵活的振荡器结构:
• 16 MHz 内部振荡器模块:
- 出厂时精度已校准到 ±1% (典型值)
- 可通过软件选择频率范围:31 kHz 至 16 MHz
• 31 kHz 低功耗内部振荡器
• 三种外部时钟模式,频率最高为 20 MHz
单片机特性:
• 工作电压范围:
- 1.8V 至 3.6V (PIC12LF1501)
- 2.3V 至 5.5V (PIC12F1501)
• 可在软件控制下自编程
• 上电复位 (Power-on Reset, POR)
• 上电延时定时器 (Power-up Timer, PWRT)
• 可编程低功耗欠压复位 (Low-Power Brown-Out
Reset, LPBOR)
• 扩展型看门狗定时器 (Watchdog Timer,
WDT):
- 可编程周期从 1 ms 至 256s
• 可编程代码保护
• 通过两个引脚进行在线串行编程 (In-Circuit
Serial Programming™, ICSP™)
• 增强型低电压编程 (Low-Voltage Programming,
LVP)
• 节能休眠模式:
- 低功耗休眠模式
- 低功耗 BOR (LPBOR)
• 集成温度指示器
• 128 字节高耐用性闪存:
- 闪存可经受 100,000 次写操作 (最小值)
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 3 页
PIC12(L)F1501
外设特性 (续):
• 数控振荡器 (Numerically Controlled Oscillator,
NCO):
- 20 位累加器
- 16 位递增
- 真正线性频率控制
- 高速时钟输入
- 可选输出模式:
- 固定占空比 (Fixed Duty Cycle, FDC)模式
- 脉冲频率 (Pulse Frequency, PF)模式
• 互补波形发生器 (Complementary Waveform
Generator, CWG):
- 8 个可选信号源
- 可选择下降沿和上升沿死区控制
- 极性控制
- 4 个自动关断源
- 多个输入源:PWM、 CLC 和 NCO
闪存程序存储器
(字)
数据 SRAM
(字节)
I/O(2)
10 位 ADC
(通道数)
比较器
DAC
定时器
(8/16 位)
PWM
EUSART
MSSP
(I2C/SPI)
CWG
CLC
NCO
调试 (1)
PIC12(L)F1501
PIC16(L)F1503
PIC16(L)F1507
PIC16(L)F1508
PIC16(L)F1509
(1)
(2)
(3)
(4)
(4)
1024
2048
2048
4096
8192
64
128
128
256
512
6
12
18
18
18
4
8
12
12
12
1
2
—
2
2
1
1
—
1
1
2/1
2/1
2/1
2/1
2/1
4
4
4
4
4
—
—
—
1
1
—
1
—
1
1
1
1
1
1
1
2
2
2
4
4
1
1
1
1
1
H
H
H
I/H
I/H
XLP
器件
数据手册索引
PIC12(L)F1501/PIC16(L)F150X 系列类型
—
—
—
有
有
1: I - 调试,集成在芯片上; H - 调试,需要调试转接头。
2: 其中一个引脚仅用作输入。
数据手册索引:(本文档仅介绍未用阴影表示的器件。)
1: 未来产品
PIC12(L)F1501 数据手册, 8 引脚 8 位闪存单片机。
PIC16(L)F1503 数据手册, 14 引脚 8 位闪存单片机。
2: DS41607B_CN
PIC16(L)F1507 数据手册, 20 引脚 8 位闪存单片机。
3: DS41586A_CN
4: DS41609A_CN PIC16(L)F1508/1509 数据手册, 20 引脚 8 位闪存单片机。
注
DS41615A_CN 第 4 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
图 1:
PIC12(L)F1501 的 8 引脚 PDIP、 SOIC、 MSOP 和 DFN 封装图
注:
1
RA5
2
RA4
3
MCLR/VPP/RA3
4
8
VSS
7
RA0/ICSPDAT
6
RA1/ICSPCLK
5
RA2
关于所有外设功能的位置,请参见表 1。
8 引脚 PDIP/SOIC/MSOP/DFN
ADC
参考电压
比较器
定时器
CWG
NCO
CLC
PWM
中断
上拉
基本功能
8 引脚分配表 (PIC12(L)F1501)
I/O
表 1:
VDD
PIC12(L)F1501
PDIP、SOIC、MSOP 和 DFN
RA0
7
AN0
DACOUT1
C1IN+
—
CWG1B(1)
—
CLC2IN1
PWM2
IOC
有
ICSPDAT
RA1
6
AN1
VREF+
C1IN0-
—
—
NCO1(1)
CLC2IN0
—
IOC
有
ICSPCLK
RA2
5
AN2
DACOUT2
C1OUT
T0CKI
CWG1A(1)
CWG1FLT
—
CLC1(1)
PWM1
INT
IOC
有
—
RA3
4
—
—
—
T1G(2)
—
—
CLC1IN0
—
IOC
有
MCLR
VPP
RA4
3
AN3
—
C1IN1-
T1G(1)
CWG1B(2)
CLC1(2)
PWM3
IOC
有
CLKOUT
T1CKI
CWG1A(2)
CLC1IN1
CLC2
PWM4
IOC
有
CLKIN
RA5
2
—
—
—
NCO1(2)
NCO1CLK
VDD
1
—
—
—
—
—
—
—
—
—
—
VDD
VSS
8
—
—
—
—
—
—
—
—
—
—
VSS
注
1: 外设引脚功能的默认位置。可以使用 APFCON 寄存器选择备用位置。
2: 通过 APFCON 寄存器选择的外设引脚功能的备用位置。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 5 页
PIC12(L)F1501
目录
1.0 器件概述 ....................................................................................................................................................................................... 9
2.0 增强型中档 CPU ......................................................................................................................................................................... 13
3.0 存储器构成 ................................................................................................................................................................................. 15
4.0 器件配置 ..................................................................................................................................................................................... 39
5.0 振荡器模块 ................................................................................................................................................................................. 45
6.0 复位 ............................................................................................................................................................................................ 53
7.0 中断 ............................................................................................................................................................................................ 61
8.0 掉电模式 (休眠)....................................................................................................................................................................... 75
9.0 看门狗定时器.............................................................................................................................................................................. 79
10.0 闪存程序存储器控制 ................................................................................................................................................................... 83
11.0 I/O 端口....................................................................................................................................................................................... 99
12.0 电平变化中断............................................................................................................................................................................ 105
13.0 固定参考电压 (FVR)............................................................................................................................................................. 109
14.0 温度指示器模块 ........................................................................................................................................................................ 111
15.0 模数转换器 (ADC)模块......................................................................................................................................................... 113
16.0 数模转换器 (DAC)模块......................................................................................................................................................... 127
17.0 比较器模块 ............................................................................................................................................................................... 131
18.0 Timer0 模块 .............................................................................................................................................................................. 141
19.0 带门控控制的 Timer1 模块........................................................................................................................................................ 145
20.0 Timer2 模块 .............................................................................................................................................................................. 157
21.0 脉宽调制 (PWM)模块 ........................................................................................................................................................... 161
22.0 可配置逻辑单元 (CLC).......................................................................................................................................................... 167
23.0 数控振荡器 (NCO)模块 ........................................................................................................................................................ 183
24.0 互补波形发生器 (CWG)模块 ................................................................................................................................................ 193
25.0 在线串行编程 (ICSP™)......................................................................................................................................................... 209
26.0 指令集汇总 ............................................................................................................................................................................... 211
27.0 电气规范 ................................................................................................................................................................................... 225
28.0 直流和交流特性图表 ................................................................................................................................................................. 247
29.0 开发支持 ................................................................................................................................................................................... 249
30.0 封装信息 ................................................................................................................................................................................... 253
附录 A:
版本历史......................................................................................................................................................................... 267
索引 ................................................................................................................................................................................................... 269
Microchip 网站.................................................................................................................................................................................... 275
变更通知客户服务 .............................................................................................................................................................................. 275
客户支持............................................................................................................................................................................................. 275
读者反馈表 ......................................................................................................................................................................................... 276
产品标识体系...................................................................................................................................................................................... 277
DS41615A_CN 第 6 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
致客户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。
出版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 [email protected],或将本
数据手册后附的 《读者反馈表》传真到 86-21-5407 5066。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A是DS30000
的 A 版本。
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到
器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
• Microchip 网站:http://www.microchip.com
• 当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 7 页
PIC12(L)F1501
注:
DS41615A_CN 第 8 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
1.0
器件概述
本数据手册介绍了 PIC12(L)F1501 器件。它们采用 14 引
脚封装形式。图 1-1 给出了 PIC12(L)F1501 器件的框
图。表 1-2 给出了引脚说明。
关于每款器件的可用外设,请参见表 1-1。
外设
PIC12LF1501
器件外设汇总
PIC12F1501
表 1-1:
模数转换器 (ADC)
●
●
互补波形发生器 (CWG)
●
●
数模转换器 (DAC)
●
●
固定参考电压 (FVR)
●
●
数控振荡器 (NCO)
●
●
温度指示器
●
●
C1
●
●
CLC1
●
●
CLC2
●
●
PWM1
●
●
PWM2
●
●
PWM3
●
●
PWM4
●
●
Timer0
●
●
Timer1
●
●
Timer2
●
●
比较器
可配置逻辑单元 (CLC)
PWM 模块
定时器
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 9 页
PIC12(L)F1501
图 1-1:
PIC12(L)F1501 框图
闪存
程序存储器
RAM
CLKOUT
时序
发生
CLKIN
INTRC
振荡器
PORTA
CPU
(图 2-1)
MCLR
C1
温度
指示器
注
CLC1
10 位
ADC
1:
2:
DS41615A_CN 第 10 页
CLC2
FVR
Timer0
Timer1
PWM1
Timer2
PWM2
CWG1
PWM3
NCO1
PWM4
DAC
关于外设的更多信息,请参见适用章节。
关于特定器件的可用外设,请参见表 1-1。
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 1-2:
PIC12(L)F1501 引脚说明
名称
RA0/AN0/C1IN+/DACOUT1/
CWG1B(1)/CLC2IN1/PWM2/
ICSPDAT
RA1/AN1/VREF+/C1IN0-/
NCO1(1)/CLC2IN0/ICSPCLK
RA2/AN2/C1OUT/DACOUT2/
T0CKI/INT/PWM1/CLC1(1)/
CWG1A(1)/CWG1FLT
RA3/CLC1IN0/VPP/T1G(2)/MCLR
RA4/AN3/C1IN1-/CWG1B(2)/
CLC1(2)/PWM3/CLKOUT/T1G(1)
功能
输入
类型
RA0
TTL
AN0
AN
输出
类型
CMOS 通用 I/O。
—
A/D 通道输入。
C1IN+
AN
—
DACOUT1
—
AN
CWG1B
—
CLC2IN1
ST
PWM2
—
ICSPDAT
ST
说明
比较器的正输入。
数模转换器输出。
CMOS CWG 互补输出。
—
可配置逻辑单元源输入。
CMOS 脉宽调制源输出。
CMOS ICSP™ 数据 I/O。
RA1
TTL
AN1
AN
VREF+
AN
—
A/D 正参考电压输入。
C1IN0-
AN
—
比较器的负输入。
NCO1
—
CLC2IN0
ST
ICSPCLK
ST
RA2
ST
AN2
AN
C1OUT
—
CMOS 通用 I/O。
—
A/D 通道输入。
CMOS 数控振荡器输出。
—
可配置逻辑单元源输入。
—
ICSP™ 编程时钟。
CMOS 通用 I/O。
—
A/D 通道输入。
CMOS 比较器输出。
AN
数模转换器输出。
DACOUT2
—
T0CKI
ST
—
INT
ST
—
PWM1
—
Timer0 时钟输入。
外部中断。
CMOS 脉宽调制源输出。
CMOS 可配置逻辑单元源输出。
CLC1
—
CWG1A
—
CWG1FLT
ST
RA3
TTL
—
CLC1IN0
ST
—
可配置逻辑单元源输入。
VPP
HV
—
编程电压。
Timer1 门控输入。
CMOS CWG 互补输出。
—
互补波形发生器故障输入。
T1G
ST
—
MCLR
ST
—
RA4
TTL
AN3
AN
C1IN1-
AN
CWG1B
—
CLC1
—
PWM3
—
CLKOUT
—
T1G
ST
通用输入。
带内部上拉的主复位。
CMOS 通用 I/O。
—
A/D 通道输入。
—
比较器的负输入。
CMOS CWG 互补输出。
CMOS 可配置逻辑单元源输出。
CMOS 脉宽调制源输出。
CMOS FOSC/4 输出。
—
Timer1 门控输入。
AN = 模拟输入或输出
CMOS= CMOS 兼容输入或输出
TTL = TTL 兼容输入
ST
= 带 CMOS 电平的施密特触发器输入
HV = 高电压
XTAL = 晶振
1: 外设引脚功能的默认位置。可以使用 APFCON 寄存器选择备用位置。
2: 通过 APFCON 寄存器选择的外设引脚功能的备用位置。
图注:
注
 2012 Microchip Technology Inc.
初稿
OD = 漏极开路
I2C™ =带 I2C 电平的施密特触发器输入
DS41615A_CN 第 11 页
PIC12(L)F1501
表 1-2:
PIC12(L)F1501 引脚说明 (续)
功能
输入
类型
RA5
TTL
CLKIN
CMOS
T1CKI
ST
CWG1A
—
NCO1
ST
NCO1CLK
ST
—
CLC1IN1
ST
—
CLC2
—
PWM4
—
VDD
VDD
电源
—
正电源。
VSS
VSS
电源
—
参考地。
名称
RA5/CLKIN/T1CKI/CWG1A(2)/
NCO1(2)/NCO1CLK/CLC1IN1/
CLC2/PWM4
输出
类型
说明
CMOS 通用 I/O。
—
外部时钟输入 (EC 模式)。
—
Timer1 时钟输入。
CMOS CWG 互补输出。
—
数控振荡器输出。
数控振荡器时钟源输入。
可配置逻辑单元源输入。
CMOS 可配置逻辑单元源输出。
CMOS 脉宽调制源输出。
AN = 模拟输入或输出
CMOS= CMOS 兼容输入或输出
TTL = TTL 兼容输入
ST
= 带 CMOS 电平的施密特触发器输入
HV = 高电压
XTAL = 晶振
1: 外设引脚功能的默认位置。可以使用 APFCON 寄存器选择备用位置。
2: 通过 APFCON 寄存器选择的外设引脚功能的备用位置。
图注:
注
DS41615A_CN 第 12 页
初稿
OD = 漏极开路
I2C™ =带 I2C 电平的施密特触发器输入
 2012 Microchip Technology Inc.
PIC12(L)F1501
2.0
增强型中档 CPU
本器件系列包含了增强型中档 8 位 CPU 内核。CPU 具
有 49 条指令。中断功能包含了自动现场保护功能。硬
件堆栈为 16 级深,具有上溢和下溢复位功能。器件提
供了直接寻址、间接寻址和相对寻址模式。用户可以通
过两个文件选择寄存器(FSR)来读取程序和数据存储
器。
•
•
•
•
自动中断现场保护
带有上溢和下溢的 16 级堆栈
文件选择寄存器
指令集
2.1
自动中断现场保护
在中断期间,器件会自动将一些寄存器保存到影子寄存
器中,从中断返回时则会恢复这些寄存器。这可以节省
堆栈空间和用户代码。更多信息,请参见第 7.5 节 “自
动现场保护”。
2.2
带有上溢和下溢的 16 级堆栈
这些器件具有 15 位宽、16 字深的外部堆栈存储器。在发
生堆栈上溢或下溢时, PCON
寄存器中的相应位
(STKOVF 或 STKUNF)会置 1,如果使能复位,则会导
致软件复位。更多详细信息,请参见第 3.4 节 “堆栈”。
2.3
文件选择寄存器
有两个 16 位文件选择寄存器 (FSR)。 FSR 可以访问
所有文件寄存器和程序存储器,支持对于所有存储器使
用一个数据指针。当FSR指向程序存储器时,使用INDF
的指令需要一个额外的指令周期,用于取数据。通用存
储器现在可以进行线性寻址,支持访问大于 80 字节的
连续数据。此外,还有一些支持 FSR 的新指令。更多详
细信息,请参见第 3.5 节 “间接寻址”。
2.4
指令集
增强型中档 CPU 具有 49 条指令,用于支持 CPU 的特
性。更多详细信息,请参见第 26.0 节 “指令集汇总”。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 13 页
PIC12(L)F1501
图 2-1:
内核框图
15
配置
15
MUX
闪存
程序
存储器
程序
总线
16
8 级堆栈
级堆栈
(15 位)
(13
14
RAM
程序存储器
读(PMR)
指令寄存器
12
RAM 地址
地址 MUX
间接
地址
7
直接地址
8
数据总线
程序计数器
5
12
12
BSR
FSR 寄存器
15
FSR0
寄存器
FSR
寄存器
FSR1
寄存器
FSR 寄存器
15
STATUS 寄存器
8
3
指令
译码和
控制
CLKIN
CLKOUT
时序
发生
内部
振荡器
模块
DS41615A_CN 第 14 页
MUX
上电延时
定时器
上电
复位
看门狗
定时器
欠压
复位
VDD
ALU
8
W 寄存器
VSS
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
3.0
存储器构成
以下特性与程序存储器和数据存储器的访问和控制相关
联:
这些器件包含以下类型的存储器:
• PCL 和 PCLATH
• 堆栈
• 间接寻址
• 程序存储器
- 配置字
- 器件 ID
- 用户 ID
- 闪存程序存储器
• 数据存储器
- 内核寄存器
- 特殊功能寄存器
- 通用 RAM
- 公共 RAM
表 3-1:
3.1
增强型中档内核具有一个 15 位程序计数器,能够寻址
32K x 14 的程序存储空间。表 3-1 列出了已实现的存储
器大小。访问超出上述边界的存储单元,将回到已实现
的存储空间内。复位向量位于 0000h,而中断向量位于
0004h (见图 3-1)。
器件大小和地址
器件
程序存储器大小 (字)
最高程序存储器地址
高耐用性闪存
存储器地址范围 (1)
1,024
03FFh
0380h-03FFh
PIC12F1501
PIC12LF1501
注
程序存储器构成
1: 高耐用性闪存适应于该范围内的每个地址的低字节。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 15 页
PIC12(L)F1501
图 3-1:
PIC12(L)F1501 程序存储器
映射和堆栈
3.1.1
有两种方法来访问程序存储器中的常量。第一种方法是
使用 RETLW 指令表。第二种方法是设置某个 FSR,使
之指向程序存储器。
PC<14:0>
CALL, CALLW
RETURN, RETLW
Interrupt, RETFIE
将程序存储器作为数据存储器进行读取
15
3.1.1.1
RETLW 指令
RETLW 指令可用于访问常量表。创建这种表的推荐方法
如例 3-1 所示。
堆栈深度 0
堆栈深度 1
例 3-1:
堆栈深度 15
复位向量
中断向量
片上
程序
存储器
Page 0
计满返回到 Page 0
回到 Page 0
RETLW 指令
constants
BRW
0000h
RETLW
RETLW
RETLW
RETLW
0004h
0005h
03FFh
0400h
DATA0
DATA1
DATA2
DATA3
;Add Index in W to
;program counter to
;select data
;Index0 data
;Index1 data
my_function
;… LOTS OF CODE&#xC9;
MOVLW
DATA_INDEX
call constants
;… THE CONSTANT IS IN W
回到 Page 0
通过 BRW 指令,可以非常简单地实现这种表。如果代码
必须保持对于前几代单片机的移植性,则 BRW 指令不可
用,所以必须使用先前的表读方法。
回到 Page 0
计满返回到 Page 0
DS41615A_CN 第 16 页
7FFFh
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
3.1.1.2
通过 FSR 间接读取
3.2.1
通过将 FSRxH 寄存器的 bit 7 置 1,并读取匹配的 INDFx
寄存器,可以将程序存储器作为数据存储器进行访问。
MOVIW 指令会将所寻址字的低 8 位放入 W 寄存器。对程
序存储器的写操作不能通过 INDF 寄存器执行。通过
FSR访问程序存储器的指令需要一个额外的指令周期才
能完成操作。例 3-2 给出了通过 FSR 访问程序存储器的
代码。
内核寄存器包含会直接影响基本操作的寄存器。内核寄
存器占用每个数据存储区的前 12 个地址 (地址
x00h/x08h 至 x0Bh/x8Bh)。表 3-2 列出了这些寄存器。
详细信息,请参见表 3-4。
表 3-2:
如果某个标号指向程序存储器中的存储单元, HIGH 伪
指令会将 bit<7> 置 1。
例 3-2:
内核寄存器
地址
x00h 或 x80h
x01h 或 x81h
x02h 或 x82h
x03h 或 x83h
x04h 或 x84h
x05h 或 x85h
x06h 或 x86h
x07h 或 x87h
x08h 或 x88h
x09h 或 x89h
x0Ah 或 x8Ah
x0Bh 或 x8Bh
通过 FSR 访问程序存储器
constants
RETLW DATA0
;Index0 data
RETLW DATA1
;Index1 data
RETLW DATA2
RETLW DATA3
my_function
;… LOTS OF CODE…
MOVLW
LOW constants
MOVWF
FSR1L
MOVLW
HIGH constants
MOVWF
FSR1H
MOVIW
0[FSR1]
;THE PROGRAM MEMORY IS IN W
3.2
内核寄存器
BANKx
INDF0
INDF1
PCL
STATUS
FSR0L
FSR0H
FSR1L
FSR1H
BSR
WREG
PCLATH
INTCON
数据存储器构成
数据存储器划分为 32 个存储区,每个存储区有 128 字
节。每个存储区都包含 (图 3-2):
• 12 个内核寄存器
• 20 个特殊功能寄存器 (Special Function
Register, SFR)
• 最多 80 字节的通用 RAM (General Purpose
RAM, GPR)
• 16 字节的公共 RAM
工作存储区的选择通过向存储区选择寄存器 (Bank
Select Register,BSR)写入存储区编号来进行。未实现
的存储器将读为 0。所有数据存储器可以直接访问 (通
过使用文件寄存器的指令) ,也可以通过两个文件选择
寄存器 (FSR)间接访问。更多信息,请参见第 3.5 节
“间接寻址”。
数据存储器使用一个 12 位地址。地址的高 7 位用于定义
存储区地址,低5位用于选择该存储区中的寄存器/RAM。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 17 页
PIC12(L)F1501
3.2.1.1
STATUS 寄存器
例如, CLRF STATUS 将会清零高 3 位,并将 Z 位置
1。这将使 STATUS 寄存器中的值成为 000u u1uu(其
中, u = 不变)。
STATUS 寄存器如寄存器 3-1 所示,包括:
• ALU 的算术运算状态
• 复位状态
因此,建议仅使用 BCF、 BSF、 SWAPF 和 MOVWF 指令
来改变 STATUS 寄存器的值,因为这些指令不会影响任
何状态位。关于其他不影响任何状态位的指令,请参见
第 26.0 节 “指令集汇总”。
与任何其他寄存器一样,STATUS 寄存器可作为任何指
令的目标寄存器。如果一条影响 Z、 DC 或 C 位的指令
以 STATUS 寄存器作为目标寄存器,那么对这三个位的
写操作将被禁止。这些位根据器件逻辑被置 1 或清零。
而且, TO 和 PD 位均为不可写位。因此,当执行一条
将 STATUS 寄存器作为目标寄存器的指令时,运行结果
可能会与预想的不同。
寄存器 3-1:
U-0
注
1: 在减法运算中, C 和 DC 位分别作为借位
位和半借位位。
STATUS: 状态寄存器
U-0
—
U-0
—
R-1/q
—
R-1/q
TO
PD
R/W-0/u
R/W-0/u
(1)
Z
DC
R/W-0/u
C(1)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7-5
未实现:读为 0
bit 4
TO:超时位
1 = 在上电或者执行 CLRWDT 指令或 SLEEP 指令后
0 = 发生了 WDT 超时
bit 3
PD: 掉电位
1 = 在上电或执行 CLRWDT 指令后
0 = 执行 SLEEP 指令
bit 2
Z:全零标志位
1 = 算术运算或逻辑运算的结果为零
0 = 算术运算或逻辑运算的结果不为零
bit 1
DC:半进位 / 半借位位 (ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令) (1)
1 = 结果的第 4 个低位发生了进位
0 = 结果的第 4 个低位未发生进位
bit 0
C:进位 / 借位位 (1) (ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令) (1)
1 = 结果的最高有效位发生了进位
0 = 结果的最高有效位未发生进位
注
1: 对于借位,极性是相反的。减法是通过加上第二个操作数的二进制补码来执行的。对于移位指令 (RRF 和
RLF),此位装载源寄存器的最高位或最低位。
DS41615A_CN 第 18 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
3.2.2
图 3-2:
特殊功能寄存器
特殊功能寄存器是由应用对器件中外设功能所需操作进
行控制的寄存器。特殊功能寄存器占用每个数据存储区
中内核寄存器之后的 20 字节 (地址 x0Ch/x8Ch 至
x1Fh/x9Fh) 。本数据手册的相应外设章节中介绍了与
外设操作相关的寄存器。
3.2.3
7 位存储区偏移
通用 RAM
0Bh
0Ch
内核寄存器
(12 字节)
特殊功能寄存器
(最大 20 字节)
线性访问 GPR
1Fh
通用 RAM 可以通过 FSR 以非存储区方式访问。这可以
简化对大存储器结构的访问。更多信息,请参见第 3.5.2
节 “线性数据存储器”。
3.2.4
存储器区域
00h
每个数据存储区中有最大 80 字节的 GPR。特殊功能寄
存器占用每个数据存储区中内核寄存器之后的 20 字节
(地址 x0Ch/x8Ch 至 x1Fh/x9Fh)。
3.2.3.1
存储区分区
20h
公共 RAM
有 16 字节的公共 RAM 可以从所有存储区中进行访问。
通用 RAM
(最大 80 字节)
6Fh
70h
公共 RAM
(16 字节)
7Fh
3.2.5
器件存储器映射
表 3-3 给出了 PIC12(L)F1501 的存储器映射。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 19 页
BANK 0
000h
PIC12(L)F1501 存储器映射
BANK 1
080h
内核寄存器
(表 3-2)
初稿
00Bh
00Ch
00Dh
00Eh
00Fh
010h
011h
012h
013h
014h
015h
016h
017h
018h
019h
01Ah
01Bh
01Ch
01Dh
01Eh
01Fh
020h
PORTA
—
—
—
—
PIR1
PIR2
PIR3
—
TMR0
TMR1L
TMR1H
T1CON
T1GCON
TMR2
PR2
T2CON
—
—
—
内核寄存器
(表 3-2)
08Bh
08Ch
08Dh
08Eh
08Fh
090h
091h
092h
093h
094h
095h
096h
097h
098h
099h
09Ah
09Bh
09Ch
09Dh
09Eh
09Fh
0A0h
通用寄存器
48 字节
04Fh
050h
06Fh
070h
未实现
读为 0
公共 RAM
 2012 Microchip Technology Inc.
07Fh
图注:
TRISA
—
—
—
—
PIE1
PIE2
PIE3
—
OPTION_REG
PCON
WDTCON
—
OSCCON
OSCSTAT
ADRESL
ADRESH
ADCON0
ADCON1
ADCON2
0FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
= 未实现的数据存储单元,读为 0
BANK 3
180h
内核寄存器
(表 3-2)
10Bh
10Ch
10Dh
10Eh
10Fh
110h
111h
112h
113h
114h
115h
116h
117h
118h
119h
11Ah
11Bh
11Ch
11Dh
11Eh
11Fh
120h
未实现
读为 0
0EFh
0F0h
BANK 2
100h
LATA
—
—
—
—
CM1CON0
CM1CON1
—
—
CMOUT
BORCON
FVRCON
DACCON0
DACCON1
—
—
—
APFCON
—
—
内核寄存器
(表 3-2)
18Bh
18Ch
18Dh
18Eh
18Fh
190h
191h
192h
193h
194h
195h
196h
197h
198h
199h
19Ah
19Bh
19Ch
19Dh
19Eh
19Fh
1A0h
17Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
ANSELA
—
—
—
—
PMADRL
PMADRH
PMDATL
PMDATH
PMCON1
PMCON2
VREGCON
—
—
—
—
—
—
—
—
1EFh
1F0h
1FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 5
280h
内核寄存器
(表 3-2)
20Bh
20Ch
20Dh
20Eh
20Fh
210h
211h
212h
213h
214h
215h
216h
217h
218h
219h
21Ah
21Bh
21Ch
21Dh
21Eh
21Fh
220h
未实现
读为 0
未实现
读为 0
16Fh
170h
BANK 4
200h
WPUA
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
28Bh
28Ch
28Dh
28Eh
28Fh
290h
291h
292h
293h
294h
295h
296h
297h
298h
299h
29Ah
29Bh
29Ch
29Dh
29Eh
29Fh
2A0h
未实现
读为 0
26Fh
270h
27Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 6
300h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
30Bh
30Ch
30Dh
30Eh
30Fh
310h
311h
312h
313h
314h
315h
316h
317h
318h
319h
31Ah
31Bh
31Ch
31Dh
31Eh
31Fh
320h
未实现
读为 0
2EFh
2F0h
2FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 7
380h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
38Bh
38Ch
38Dh
38Eh
38Fh
390h
391h
392h
393h
394h
395h
396h
397h
398h
399h
39Ah
39Bh
39Ch
39Dh
39Eh
39Fh
3A0h
未实现
读为 0
36Fh
370h
37Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
—
—
—
—
—
IOCAP
IOCAN
IOCAF
—
—
—
—
—
—
—
—
—
—
—
—
未实现
读为 0
3EFh
3F0h
3FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
PIC12(L)F1501
DS41615A_CN 第 20 页
表 3-3:
 2012 Microchip Technology Inc.
表 3-3:
PIC12(L)F1501 存储器映射 (续)
BANK 8
400h
BANK 9
480h
内核寄存器
(表 3-2)
初稿
40Bh
40Ch
40Dh
40Eh
40Fh
410h
411h
412h
413h
414h
415h
416h
417h
418h
419h
41Ah
41Bh
41Ch
41Dh
41Eh
41Fh
420h
内核寄存器
(表 3-2)
48Bh
48Ch
48Dh
48Eh
48Fh
490h
491h
492h
493h
494h
495h
496h
497h
498h
499h
49Ah
49Bh
49Ch
49Dh
49Eh
49Fh
4A0h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
未实现
读为 0
46Fh
470h
4FFh
BANK 16
800h
DS41615A_CN 第 21 页
87Fh
图注:
8FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
= 未实现的数据存储单元,读为 0
67Fh
6FFh
77Fh
7FFh
BANK 23
内核寄存器
(表 3-2)
B8Bh
B8Ch
未实现
读为 0
B7Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
B80h
内核寄存器
(表 3-2)
B6Fh
B70h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
未实现
读为 0
BANK 22
未实现
读为 0
AFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
B0Bh
B0Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
78Bh
78Ch
78Dh
78Eh
78Fh
790h
791h
792h
793h
794h
795h
796h
797h
798h
799h
79Ah
79Bh
79Ch
79Dh
79Eh
79Fh
7A0h
7EFh
7F0h
B00h
内核寄存器
(表 3-2)
AEFh
AF0h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
未实现
读为 0
BANK 21
未实现
读为 0
A7Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
A8Bh
A8Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
70Bh
70Ch
70Dh
70Eh
70Fh
710h
711h
712h
713h
714h
715h
716h
717h
718h
719h
71Ah
71Bh
71Ch
71Dh
71Eh
71Fh
720h
76Fh
770h
A80h
内核寄存器
(表 3-2)
A6Fh
A70h
—
—
—
—
—
CWG1DBR
CWG1DBF
CWG1CON0
CWG1CON1
CWG1CON2
—
—
—
—
—
—
—
—
—
—
BANK 15
780h
内核寄存器
(表 3-2)
未实现
读为 0
BANK 20
未实现
读为 0
9FFh
公共 RAM
(快速操作存储区
70h – 7Fh)
A0Bh
A0Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
68Bh
68Ch
68Dh
68Eh
68Fh
690h
691h
692h
693h
694h
695h
696h
697h
698h
699h
69Ah
69Bh
69Ch
69Dh
69Eh
69Fh
6A0h
6EFh
6F0h
A00h
内核寄存器
(表 3-2)
9EFh
9F0h
—
—
—
—
—
PWM1DCL
PWM1DCH
PWM1CON
PWM2DCL
PWM2DCH
PWM2CON
PWM3DCL
PWM3DCH
PWM3CON
PWM4DCL
PWM4DCH
PWM4CON
—
—
—
BANK 14
700h
内核寄存器
(表 3-2)
未实现
读为 0
BANK 19
未实现
读为 0
97Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
98Bh
98Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
60Bh
60Ch
60Dh
60Eh
60Fh
610h
611h
612h
613h
614h
615h
616h
617h
618h
619h
61Ah
61Bh
61Ch
61Dh
61Eh
61Fh
620h
64Fh
650h
980h
90Bh
90Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
5FFh
内核寄存器
(表 3-2)
96Fh
970h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
BANK 13
680h
内核寄存器
(表 3-2)
未实现
读为 0
BANK 18
未实现
读为 0
8EFh
8F0h
58Bh
58Ch
58Dh
58Eh
58Fh
590h
591h
592h
593h
594h
595h
596h
597h
598h
599h
59Ah
59Bh
59Ch
59Dh
59Eh
59Fh
5A0h
5EFh
5F0h
900h
88Bh
88Ch
公共 RAM
(快速操作存储区
70h – 7Fh)
57Fh
内核寄存器
(表 3-2)
未实现
读为 0
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
BANK 12
600h
内核寄存器
(表 3-2)
未实现
读为 0
BANK 17
内核寄存器
(表 3-2)
86Fh
870h
50Bh
50Ch
50Dh
50Eh
50Fh
510h
511h
512h
513h
514h
515h
516h
517h
518h
519h
51Ah
51Bh
51Ch
51Dh
51Eh
51Fh
520h
56Fh
570h
880h
80Bh
80Ch
内核寄存器
(表 3-2)
未实现
读为 0
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 11
580h
公共 RAM
(快速操作存储区
70h – 7Fh)
未实现
读为 0
BEFh
BF0h
BFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
PIC12(L)F1501
47Fh
—
—
—
—
—
—
—
—
—
—
—
—
NCO1ACCL
NCO1ACCH
NCO1ACCU
NCO1INCL
NCO1INCH
—
NCO1CON
NCO1CLK
4EFh
4F0h
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 10
500h
PIC12(L)F1501 存储器映射 (续)
BANK 24
C00h
BANK 25
C80h
内核寄存器
(表 3-2)
初稿
C0Bh
C0Ch
C0Dh
C0Eh
C0Fh
C10h
C11h
C12h
C13h
C14h
C15h
C16h
C17h
C18h
C19h
C1Ah
C1Bh
C1Ch
C1Dh
C1Eh
C1Fh
C20h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
C8Bh
C8Ch
C8Dh
C8Eh
C8Fh
C90h
C91h
C92h
C93h
C94h
C95h
C96h
C97h
C98h
C99h
C9Ah
C9Bh
C9Ch
C9Dh
C9Eh
C9Fh
CA0h
未实现
读为 0
C6Fh
C70h
 2012 Microchip Technology Inc.
CFFh
图注:
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 26
D00h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
D0Bh
D0Ch
D0Dh
D0Eh
D0Fh
D10h
D11h
D12h
D13h
D14h
D15h
D16h
D17h
D18h
D19h
D1Ah
D1Bh
D1Ch
D1Dh
D1Eh
D1Fh
D20h
未实现
读为 0
CEFh
CF0h
CFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 27
D80h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
D8Bh
D8Ch
D8Dh
D8Eh
D8Fh
D90h
D91h
D92h
D93h
D94h
D95h
D96h
D97h
D98h
D99h
D9Ah
D9Bh
D9Ch
D9Dh
D9Eh
D9Fh
DA0h
未实现
读为 0
D6Fh
D70h
D7Fh
= 未实现的数据存储单元,读为 0。
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 28
E00h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
E0Bh
E0Ch
E0Dh
E0Eh
E0Fh
E10h
E11h
E12h
E13h
E14h
E15h
E16h
E17h
E18h
E19h
E1Ah
E1Bh
E1Ch
E1Dh
E1Eh
E1Fh
E20h
未实现
读为 0
DEFh
DF0h
DFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 29
E80h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
内核寄存器
(表 3-2)
E8Bh
E8Ch
E8Dh
E8Eh
E8Fh
E90h
E91h
E92h
E93h
E94h
E95h
E96h
E97h
E98h
E99h
E9Ah
E9Bh
E9Ch
E9Dh
E9Eh
E9Fh
EA0h
未实现
读为 0
E6Fh
E70h
E7Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
BANK 30
F00h
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
BANK 31
F80h
内核寄存器
(表 3-2)
F0Bh
F0Ch
F0Dh
F0Eh
F0Fh
F10h
F11h
F12h
F13h
F14h
F15h
F16h
F17h
F18h
F19h
F1Ah
F1Bh
F1Ch
F1Dh
F1Eh
F1Fh
F20h
请参见表 3-3
了解寄存器映射
详细信息
内核寄存器
(表 3-2)
F8Bh
F8Ch
F8Dh
F8Eh
F8Fh
F90h
F91h
F92h
F93h
F94h
F95h
F96h
F97h
F98h
F99h
F9Ah
F9Bh
F9Ch
F9Dh
F9Eh
F9Fh
FA0h
请参见表 3-3
了解寄存器映射
详细信息
未实现
读为 0
EEFh
EF0h
EFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
F6Fh
F70h
F7Fh
公共 RAM
(快速操作存储区
70h – 7Fh)
FEFh
FF0h
FFFh
公共 RAM
(快速操作存储区
70h – 7Fh)
PIC12(L)F1501
DS41615A_CN 第 22 页
表 3-3:
PIC12(L)F1501
表 3-3:
PIC12(L)F1501 存储器映射 (续)
Bank 30
F0Ch
F0Dh
F0Eh
F0Fh
F10h
F11h
F12h
F13h
F14h
F15h
F16h
F17h
F18h
F19h
F1Ah
F1Bh
F1Ch
F1Dh
F1Eh
F1Fh
F20h
F6Fh
图注:
Bank 31
—
—
—
CLCDATA
CLC1CON
CLC1POL
CLC1SEL0
CLC1SEL1
CLC1GLS0
CLC1GLS1
CLC1GLS2
CLC1GLS3
CLC2CON
CLC2POL
CLC2SEL0
CLC2SEL1
CLC2GLS0
CLC2GLS1
CLC2GLS2
CLC2GLS3
F8Ch
未实现
读为 0
FE3h
FE4h
FE5h
FE6h
FE7h
FE8h
FE9h
FEAh
FEBh
FECh
FEDh
FEEh
FEFh
STATUS_SHAD
WREG_SHAD
BSR_SHAD
PCLATH_SHAD
FSR0L_SHAD
FSR0H_SHAD
FSR1L_SHAD
FSR1H_SHAD
—
STKPTR
TOSL
TOSH
未实现
读为 0
= 未实现的数据存储单元,读为 0。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 23 页
PIC12(L)F1501
3.2.6
内核功能寄存器汇总
表 3-4 列出了内核功能寄存器,可从任何存储区访问这
些寄存器。
表 3-4:
地址
内核功能寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
POR/BOR
时的值
所有其他复位
时的值
Bank 0-31
x00h 或 INDF0
x80h
通过用 FSR0H/FSR0L 的内容寻址这个存储单元来寻址数据存储器
(不是物理寄存器)
xxxx xxxx
uuuu uuuu
x01h 或 INDF1
x81h
通过用 FSR1H/FSR1L 的内容寻址这个存储单元来寻址数据存储器
(不是物理寄存器)
xxxx xxxx
uuuu uuuu
x02h 或 PCL
x82h
程序计数器 (Program Counter, PC)的最低有效字节
0000 0000
0000 0000
---1 1000
---q quuu
x03h 或 STATUS
x83h
—
—
—
TO
PD
Z
DC
C
x04h 或 FSR0L
x84h
间接数据存储器地址 0 低字节指针
0000 0000
uuuu uuuu
x05h 或 FSR0H
x85h
间接数据存储器地址 0 高字节指针
0000 0000
0000 0000
x06h 或 FSR1L
x86h
间接数据存储器地址 1 低字节指针
0000 0000
uuuu uuuu
x07h 或 FSR1H
x87h
间接数据存储器地址 1 高字节指针
0000 0000
0000 0000
---0 0000
---0 0000
0000 0000
uuuu uuuu
-000 0000
-000 0000
0000 0000
0000 0000
x08h 或 BSR
x88h
—
x09h 或 WREG
x89h
—
BSR<4:0>
工作寄存器
x0Ah
或
x8Ah
PCLATH
—
x0Bh
或
x8Bh
INTCON
GIE
图注:
—
程序计数器高 7 位的写缓冲区
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。
阴影单元未实现,读为 0。
DS41615A_CN 第 24 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
—
—
RA5
RA4
RA3
RA2
RA1
RA0
POR/BOR
时的值
所有其他复
位时的值
Bank 0
00Ch
PORTA
00Dh
—
未实现
—
—
00Eh
—
未实现
—
—
00Fh
—
未实现
—
—
010h
—
未实现
—
—
011h
PIR1
TMR1GIF
ADIF
—
—
—
—
TMR2IF
--xx xxxx --xx xxxx
TMR1IF
00-- --00 00-- --00
012h
PIR2
—
—
C1IF
—
—
NCO1IF
—
—
--0- -0-- --0- -0--
013h
PIR3
—
—
—
—
—
—
CLC2IF
CLC1IF
---- --00 ---- --00
014h
—
未实现
015h
TMR0
8 位 Timer0 计数的保持寄存器
—
—
xxxx xxxx uuuu uuuu
016h
TMR1L
16 位 TMR1 计数最低有效字节的保持寄存器
xxxx xxxx uuuu uuuu
017h
TMR1H
16 位 TMR1 计数最高有效字节的保持寄存器
xxxx xxxx uuuu uuuu
018h
T1CON
019h
T1GCON
TMR1CS<1:0>
TMR1GE
T1GPOL
T1CKPS<1:0>
T1GTM
T1GSPM
—
T1SYNC
T1GGO/
DONE
T1GVAL
—
TMR1ON
T1GSS<1:0>
0000 -0-0 uuuu -u-u
0000 0x00 uuuu uxuu
01Ah
TMR2
Timer2 模块寄存器
01Bh
PR2
Timer2 周期寄存器
01Ch
T2CON
01Dh
—
未实现
—
—
01Eh
—
未实现
—
—
01Fh
—
未实现
—
—
—
0000 0000 0000 0000
1111 1111 1111 1111
T2OUTPS<3:0>
TMR2ON
T2CKPS<1:0>
-000 0000 -000 0000
Bank 1
—
—
TRISA5
—(2)
08Ch
TRISA
TRISA4
08Dh
—
未实现
TRISA2
TRISA1
—
—
08Eh
—
未实现
—
—
08Fh
—
未实现
—
—
090h
—
未实现
—
—
091h
PIE1
TMR1GIE
ADIE
—
—
—
—
TMR2IE
TRISA0
--11 1111 --11 1111
TMR1IE
00-- --00 00-- --00
092h
PIE2
—
—
C1IE
—
—
NCO1IE
—
—
--0- -0-- -00- -0--
093h
PIE3
—
—
—
—
—
—
CLC2IE
CLC1IE
---- --00 ---- --00
094h
—
095h
OPTION_REG
WPUEN
INTEDG
TMR0CS
TMR0SE
PSA
096h
PCON
STKOVF
STKUNF
—
RWDT
097h
WDTCON
—
—
098h
—
099h
OSCCON
—
未实现
RMCLR
PS<2:0>
RI
POR
WDTPS<4:0>
BOR
00-1 11qq qq-q qquu
SWDTEN
--01 0110 --01 0110
—
未实现
—
IRCF<3:0>
09Ah
OSCSTAT
09Bh
ADRESL
A/D 结果寄存器的低字节
09Ch
ADRESH
A/D 结果寄存器的高字节
09Dh
ADCON0
—
09Eh
ADCON1
ADFM
09Fh
ADCON2
—
—
—
—
HFIOFR
—
—
SCS<1:0>
LFIOFR
—
-011 1-00 -011 1-00
HFIOFS
---0 --00 ---q --qq
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
CHS<4:0>
ADCS<2:0>
TRIGSEL<3:0>
GO/DONE
—
—
—
—
ADON
ADPREF<1:0>
—
—
-000 0000 -000 0000
0000 --00 0000 --00
0000 ---- 0000 ----
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
 2012 Microchip Technology Inc.
—
1111 1111 1111 1111
初稿
DS41615A_CN 第 25 页
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总 (续)
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
—
—
LATA5
LATA4
—
LATA2
LATA1
LATA0
POR/BOR
时的值
所有其他复
位时的值
Bank 2
10Ch
LATA
10Dh
—
10Eh
—
10Fh
—
110h
—
111h
CM1CON0
C1ON
C1OUT
112h
CM1CON1
C1INTP
C1INTN
113h
—
114h
—
115h
CMOUT
--xx -xxx --uu -uuu
未实现
—
—
未实现
—
—
未实现
—
—
未实现
—
—
C1OE
C1POL
C1PCH<1:0>
—
C1SP
—
C1HYS
C1SYNC
C1NCH<2:0>
0000 -100 0000 -100
0000 -000 0000 -000
未实现
—
—
未实现
—
—
—
—
—
—
—
—
—
—
—
—
116h
BORCON
SBOREN
BORFS
—
—
117h
FVRCON
FVREN
FVRRDY
TSEN
TSRNG
CDAFVR<1:0>
—
DACOE1
DACOE2
—
MC1OUT
BORRDY
ADFVR<1:0>
---- ---0 ---- ---0
10-- ---q uu-- ---u
0q00 0000 0q00 0000
118h
DACCON0
DACEN
119h
DACCON1
—
11Ah
至
11Ch
—
11Dh
APFCON
CWG1BSEL CWG1ASEL
11Eh
—
未实现
—
—
11Fh
—
未实现
—
—
—
DACPSS
—
—
DACR<4:0>
0-00 -0-- 0-00 -0----0 0000 ---0 0000
—
未实现
—
—
T1GSEL
—
CLC1SEL
NCO1SEL
—
00-- 0-00 00-- 0-00
Bank 3
18Ch
ANSELA
18Dh
—
未实现
—
—
—
18Eh
—
未实现
—
—
18Fh
—
未实现
—
—
190h
—
未实现
—
—
191h
PMADRL
闪存程序存储器地址寄存器的低字节
192h
PMADRH
193h
PMDATL
194h
PMDATH
—
—
195h
PMCON1
—(2)
CFGS
196h
PMCON2
197h
VREGCON(1)
198h
至
19Fh
—
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
0000 0000 0000 0000
-000 0000 -000 0000
闪存程序存储器地址寄存器的高字节
xxxx xxxx uuuu uuuu
闪存程序存储器读数据寄存器的低字节
--xx xxxx --uu uuuu
闪存程序存储器读数据寄存器的高字节
LWLO
FREE
WRERR
WREN
WR
RD
—
—
—
—
VREGPM
保留
—
0000 x000 0000 q000
0000 0000 0000 0000
闪存程序存储器控制寄存器 2
—
---1 -111 ---1 -111
---- --01 ---- --01
—
未实现
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
DS41615A_CN 第 26 页
初稿
 2012 Microchip Technology Inc.
—
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总 (续)
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
—
—
WPUA5
WPUA4
WPUA3
WPUA2
WPUA1
WPUA0
POR/BOR
时的值
所有其他复
位时的值
Bank 4
20Ch
WPUA
20Dh
至
21Fh
—
未实现
—
—
—
未实现
—
—
—
未实现
—
—
38Ch
至
390h
—
未实现
—
—
391h
IOCAP
—
—
IOCAP5
IOCAP4
IOCAP3
IOCAP2
IOCAP1
IOCAP0
--00 0000 --00 0000
392h
IOCAN
—
—
IOCAN5
IOCAN4
IOCAN3
IOCAN2
IOCAN1
IOCAN0
--00 0000 --00 0000
393h
IOCAF
—
—
IOCAF5
IOCAF4
IOCAF3
IOCAF2
IOCAF1
IOCAF0
--00 0000 --00 0000
394h
至
39Fh
—
未实现
—
—
—
未实现
—
—
48Ch
至
497h
—
未实现
—
—
498h
NCO1ACCL
NCO1ACC<7:0>
0000 0000 0000 0000
499h
NCO1ACCH
NCO1ACC<15:8>
0000 0000 0000 0000
49Ah
NCO1ACCU
NCO1ACC<19:16:00>
0000 0000 0000 0000
49Bh
NCO1INCL
NCO1INC<7:0>
0000 0000 0000 0000
49Ch
NCO1INCH
NCO1INC<15:8>
0000 0000 0000 0000
49Dh
—
49Eh
NCO1CON
49Fh
NCO1CLK
--11 1111 --11 1111
Bank 5
28Ch
至
29Fh
Bank 6
30Ch
至
31Fh
Bank 7
Bank 8
40Ch
至
41Fh
Bank 9
—
未实现
N1EN
N1OE
N1PWS<2:0>
N1OUT
N1POL
—
—
—
—
—
—
N1PFM
N1CKS<1:0>
0000 --00 0000 --00
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
 2012 Microchip Technology Inc.
初稿
—
0000 ---0 0000 ---0
DS41615A_CN 第 27 页
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总 (续)
POR/BOR
时的值
所有其他复
位时的值
未实现
—
—
未实现
—
—
未实现
—
—
Bit 7
名称
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bank 10
50Ch
至
51Fh
—
Bank 11
58Ch
至
59Fh
—
Bank 12
60Ch
至
610h
—
611h
PWM1DCL
612h
PWM1DCH
613h
PWM1CON0
614h
PWM2DCL
615h
PWM2DCH
616h
PWM2CON0
617h
PWM3DCL
618h
PWM3DCH
619h
PWM3CON0
61Ah
PWM4DCL
61Bh
PWM4DCH
61Ch
PWM4CON0
61Dh
至
61Fh
—
PWM1DCL<7:6>
—
—
—
—
—
—
—
—
—
—
0000 ---- 0000 ----
—
—
—
—
00-- ---- 00-- ----
—
—
—
—
0000 ---- 0000 ----
—
—
—
—
00-- ---- 00-- ----
—
—
—
—
0000 ---- 0000 ----
—
—
—
—
00-- ---- 00-- ----
—
—
—
PWM1DCH<7:0>
PWM1EN
PWM1OE
PWM2DCL<7:6>
PWM1OUT PWM1POL
—
—
xxxx xxxx uuuu uuuu
PWM2DCH<7:0>
PWM2EN
PWM2OE
PWM3DCL<7:6>
PWM2OUT PWM2POL
—
—
xxxx xxxx uuuu uuuu
PWM3DCH<7:0>
PWM3EN
PWM3OE
PWM4DCL<7:6>
PWM3OUT PWM3POL
—
—
xxxx xxxx uuuu uuuu
PWM4DCH<7:0>
PWM4EN
PWM4OE
PWM4OUT PWM4POL
—
00-- ---- 00-- ----
xxxx xxxx uuuu uuuu
0000 ---- 0000 ----
未实现
—
—
未实现
—
—
Bank 13
68Ch
至
690h
—
691h
CWG1DBR
—
—
CWG1DBR<5:0>
692h
CWG1DBF
—
—
CWG1DBF<5:0>
693h
CWG1CON0
G1EN
G1OEB
694h
CWG1CON1
695h
CWG1CON2
696h
至
69Fh
—
G1ASDLB<1:0>
G1ASE
G1ARSEN
G1OEA
G1POLB
G1POLA
G1ASDLA<1:0>
—
—
—
—
--00 0000 --00 0000
--xx xxxx --xx xxxx
—
—
G1ASDC1
G1ASDFLT
G1IS<2:0>
G1CS0
0000 0--0 0000 0--0
0000 -000 0000 -000
G1ASDCLC2 00-- -000 00-- -000
—
未实现
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
DS41615A_CN 第 28 页
初稿
 2012 Microchip Technology Inc.
—
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总 (续)
名称
POR/BOR
时的值
所有其他复
位时的值
未实现
—
—
未实现
—
—
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bank 14-29
x0Ch/
x8Ch
—
x1Fh/
x9Fh
—
Bank 30
F0Ch
至
F0Eh
—
F0Fh
CLCDATA
—
—
—
—
—
F10h
CLC1CON
LC1EN
LC1OE
LC1OUT
LC1INTP
LC1INTN
—
MLC1OUT
F11h
CLC1POL
LC1POL
—
—
—
F12h
CLC1SEL0
—
LC1D2S<2:0>
—
LC1D1S<2:0>
—
LC1D4S<2:0>
—
LC1D3S<2:0>
MLC2OUT
LC1MODE<2:0>
LC1G4POL LC1G3POL LC1G2POL
---- --00 ---- --00
0000 0000 0000 0000
LC1G1POL
0--- xxxx 0--- uuuu
-xxx -xxx -uuu -uuu
F13h
CLC1SEL1
F14h
CLC1GLS0
LC1G1D4T LC1G1D4N LC1G1D3T LC1G1D3N LC1G1D2T LC1G1D2N LC1G1D1T
LC1G1D1N
xxxx xxxx uuuu uuuu
F15h
CLC1GLS1
LC1G2D4T LC1G2D4N LC1G2D3T LC1G2D3N LC1G2D2T LC1G2D2N LC1G2D1T
LC1G2D1N
xxxx xxxx uuuu uuuu
F16h
CLC1GLS2
LC1G3D4T LC1G3D4N LC1G3D3T LC1G3D3N LC1G3D2T LC1G3D2N LC1G3D1T
LC1G3D1N
xxxx xxxx uuuu uuuu
F17h
CLC1GLS3
LC1G4D4T LC1G4D4N LC1G4D3T LC1G4D3N LC1G4D2T LC1G4D2N LC1G4D1T
LC1G4D1N
F18h
CLC2CON
LC2EN
LC2OE
F19h
CLC2POL
LC2POL
—
F1Ah
CLC2SEL0
—
LC2D2S<2:0>
—
LC2D1S<2:0>
—
LC2D4S<2:0>
—
LC2D3S<2:0>
LC2OUT
LC2INTP
—
—
LC2INTN
-xxx -xxx -uuu -uuu
LC2MODE<2:0>
LC2G4POL LC2G3POL LC2G2POL
xxxx xxxx uuuu uuuu
0000 0000 0000 0000
LC2G1POL
0--- xxxx 0--- uuuu
-xxx -xxx -uuu -uuu
F1Bh
CLC2SEL1
F1Ch
CLC2GLS0
LC2G1D4T LC2G1D4N LC2G1D3T LC2G1D3N LC2G1D2T LC2G1D2N LC2G1D1T
LC2G1D1N
xxxx xxxx uuuu uuuu
F1Dh
CLC2GLS1
LC2G2D4T LC2G2D4N LC2G2D3T LC2G2D3N LC2G2D2T LC2G2D2N LC2G2D1T
LC2G2D1N
xxxx xxxx uuuu uuuu
F1Eh
CLC2GLS2
LC2G3D4T LC2G3D4N LC2G3D3T LC2G3D3N LC2G3D2T LC2G3D2N LC2G3D1T
LC2G3D1N
xxxx xxxx uuuu uuuu
F1Fh
CLC2GLS3
LC2G4D4T LC2G4D4N LC2G4D3T LC2G4D3N LC2G4D2T LC2G4D2N LC2G4D1T
LC2G4D1N
xxxx xxxx uuuu uuuu
F20h
至
F6Fh
—
未实现
-xxx -xxx -uuu -uuu
—
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 29 页
—
PIC12(L)F1501
表 3-5:
地址
特殊功能寄存器汇总 (续)
Bit 7
名称
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
POR/BOR
时的值
所有其他复
位时的值
—
—
Bank 31
F8Ch
—
FE3h
—
FE4h
STATUS_
未实现
—
—
—
—
—
Z_SHAD
DC_SHAD
C_SHAD
---- -xxx ---- -uuu
SHAD
FE5h
WREG_
xxxx xxxx uuuu uuuu
工作寄存器的影子寄存器
SHAD
FE6h
BSR_
—
—
—
存储区选择寄存器的影子寄存器
---x xxxx ---u uuuu
SHAD
FE7h
PCLATH_
—
程序计数器锁存器高字节寄存器的影子寄存器
-xxx xxxx uuuu uuuu
SHAD
FE8h
FSR0L_
间接数据存储器地址 0 低字节指针的影子寄存器
xxxx xxxx uuuu uuuu
间接数据存储器地址 0 高字节指针的影子寄存器
xxxx xxxx uuuu uuuu
间接数据存储器地址 1 低字节指针的影子寄存器
xxxx xxxx uuuu uuuu
间接数据存储器地址 1 高字节指针的影子寄存器
xxxx xxxx uuuu uuuu
SHAD
FE9h
FSR0H_
SHAD
FEAh
FSR1L_
SHAD
FEBh
FSR1H_
SHAD
FECh
—
—
未实现
FEDh
STKPTR
FEEh
TOSL
栈顶低字节
FEFh
TOSH
—
—
—
—
当前堆栈指针
xxxx xxxx uuuu uuuu
-xxx xxxx -uuu uuuu
栈顶高字节
图注:
x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现, r = 保留。 阴影单元未实现,读为 0。
注
1: 仅限 PIC12F1501。
2: 未实现,读为 1。
DS41615A_CN 第 30 页
—
---1 1111 ---1 1111
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
3.3
PCL 和 PCLATH
3.3.2
计算 GOTO 是通过向程序计数器加一个偏移量 (ADDWF
PCL)来实现的。当使用计算 GOTO 方法执行表读操作
时,应注意表地址是否跨越了 PCL 存储器边界 (每个存
储块为 256 字节) 。请参见应用笔记 AN556,
“Implementing a Table Read”(DS00556)。
程序计数器 (PC)为 15 位宽。其低字节来自可读写的
PCL 寄存器,高字节(PC<14:8>)来自 PCLATH,不能
直接读写。任何复位都将清零 PC。图 3-3 显示了装载 PC
值的 5 种情形。
图 3-3:
不同情形下 PC 的装载
14
PCH
PCL
0
PC
6
7
3.3.3
ALU Result
运算结果
14
PCH
PCL
0
PC
6 4
0
如果使用 CALL 指令,PCH<2:0> 和 PCL 寄存器中将装
入 CALL 指令的操作数。 PCH<6:3> 中将装入
PCLATH<6:3> 的值。
GOTO, CALL
CALLW指令通过将PCLATH和W组合构成目标地址来支
持计算调用。计算 CALLW 通过向 W 寄存器中装入所需
地址并执行 CALLW 来实现。 PCL 寄存器中装入 W 的
值, PCH 中装入 PCLATH 的值。
11
OPCODE
操作码 <10:0>
PCLATH
14
PCH
PCL
0
PC
6
7
0
CALLW
3.3.4
W
14
PCH
PCL
0
PC
BRW
如果使用 BRW,则向 W 寄存器中装入所需的无符号地
址,然后执行 BRW。整个 PC 中将装入地址 PC + 1 + W。
15
PC + W
14
PCH
跳转
跳转指令会将一个偏移量与 PC 相加,从而实现可重定
位代码和跨越页边界的代码。存在两种跳转形式:BRW
和 BRA。在两种形式中, PC 都会发生递增,以便取下
一条指令。使用任一跳转指令时,都可以跨越 PCL 存储
器边界。
8
PCLATH
计算函数调用
利用计算函数 CALL,程序可以维护一些函数表,并提
供另一种执行状态机或查找表的方式。当使用计算函数
CALL 执行表读操作时,应注意表地址是否跨越了 PCL
存储器边界 (每个存储块为 256 字节)。
Instruction with
将 PCL
PCL作为
as
目标寄存器
Destination
的指令
8
0
PCLATH
计算 GOTO
PCL
PC
如果使用 BRA,整个 PC 中将装入 PC + 1 + BRA 指令操
作数的有符号值。
0
BRA
15
PC ++OPCODE
<8:0>
PC
操作码 <8:0>
3.3.1
修改 PCL
在执行以 PCL 寄存器作为目标寄存器的任何指令的同
时,也 会 使 程 序 计 数 器 的 PC<14:8> 位 (PCH)被
PCLATH 寄存器的内容所代替。这使得可以通过将所需
的高 7 位写入 PCLATH 寄存器来改变程序计数器的整个
内容。当将低 8 位写入 PCL 寄存器时,程序计数器的所
有 15 位都将变为 PCLATH 寄存器中和那些被写入 PCL
寄存器的值。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 31 页
PIC12(L)F1501
3.4
3.4.1
堆栈
通过 TOSH、TOSL 和 STKPTR 寄存器可以使用堆栈。
STKPTR 是堆栈指针的当前值。TOSH:TOSL 寄存器对
指向栈顶。两个寄存器都是可读写的。由于 PC 的大小
为 15 位,所以 TOS 拆分为 TOSH 和 TOSL。要访问堆
栈,可以调整 STKPTR 的值 (它决定 TOSH:TOSL 位
置),然后读 / 写 TOSH:TOSL。 STKPTR 的宽度为 5
位,以允许检测上溢和下溢。
所有器件都具有 16 级 x 15 位宽的硬件堆栈 (见图 3-4
至 3-7)。堆栈既不占用程序存储空间,也不占用数据存
储空间。当执行 CALL 或 CALLW 指令,或者中断导致程
序跳转时, PC 值将被压入堆栈。而在执行 RETURN、
RETLW 或 RETFIE 指令时,将从堆栈中弹出 PC 值。
PCLATH 不受压栈或出栈操作的影响。
如果 STVREN 位被设定为 0(配置字),堆栈将作为循
环缓冲区工作。这意味着在压栈 16 次后,第 17 次压入
堆栈的值将会覆盖第一次压栈时所保存的值,而第18次
压入堆栈的值将覆盖第二次压栈时所保存的值,依此类
推。无论是否使能了复位, STKOVF 和 STKUNF 标志
位都将在上溢 / 下溢时置 1。
注
注:
在允许中断的情况下,在修改 STKPTR 时
需要小心。
在正常程序操作期间, CALL、 CALLW 和中断会使
STKPTR 递增,而 RETLW、 RETURN 和 RETFIE 会使
STKPTR 递减。在任意时刻,都可以通过检查 STKPTR
来确定所剩余的堆栈空间。STKPTR 总是指向堆栈中当
前使用的位置。因此, CALL 或 CALLW 会先递增
STKPTR,然后再写入PC,而返回操作则会先取出PC,
然后再递减 STKPTR。
1: 不存在被称为 PUSH 或 POP 的指令 / 助
记符。堆栈的压入或弹出是源于执行了
CALL、 CALLW、 RETURN、 RETLW 和
RETFIE 指令,或源于跳转到中断向量地
址。
图 3-4:
访问堆栈
关于访问堆栈的示例,请参见图 3-4 至图 3-7。
访问堆栈示例 1
TOSH:TOSL
0x0F
STKPTR = 0x1F
禁止堆栈复位
Stack Reset Disabled
(STVRE
(STVREN == 0)
0)
0x0E
0x0D
0x0C
0x0B
0x0A
初始堆栈配置
:
Initial Stack
Configuration:
0x09
After Reset,
the堆栈为空。
stack is empty.
The
复位后,
对空堆栈进行初始化,
empty 使得堆栈指针指向地址
stack is initialized so the
Stack如果使能
0x1F。
Pointer了堆栈上溢
is pointing /at下溢复位,
0x1F. If the
Stack
TOSH/TOSL
寄
Overflow/Underflow
Reset
is enabled, the / 下
存器将返回 0。
如果禁止了堆栈上溢
0’. If
TOSH/TOSL
registers
will return
溢复位,
TOSH/TOSL
寄存器将返回堆
the Stack
地址Overflow/Underflow
0x0F 处的内容。 Reset is
disabled, the TOSH/TOSL registers will
return the contents of stack address 0x0F.
0x08
0x07
0x06
0x05
0x04
0x03
0x02
0x01
0x00
TOSH:TOSL
DS41615A_CN 第 32 页
0x1F
0x0000
初稿
STKPTR = 0x1F
Stack
Reset Enabled
使能堆栈复位
(STVREN == 1)
(STVRE
1)
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 3-5:
访问堆栈示例 2
0x0F
0x0E
0x0D
0x0C
0x0B
0x0A
此图显示了执行第一条 CALL 指令或发生一次
This
figure shows the如果执行了
stack configuration
中断后的堆栈配置。
RETURN 指令,
after
the first CALL or a single interrupt.
返回地址将位于程序计数器中,
而堆栈指针将
If递减到空状态
a RETURN instruction
(0x1F)。is executed, the
return address will be placed in the
Program Counter and the Stack Pointer
decremented to the empty state (0x1F).
0x09
0x08
0x07
0x06
0x05
0x04
0x03
0x02
0x01
TOSH:TOSL
图 3-6:
0x00
Return
Address
返回地址
STKPTR = 0x00
访问堆栈示例 3
0x0F
0x0E
0x0D
0x0C
在执行
7 条CALLs
CALL 或
6 条CALLs
CALL and
指令an
After
seven
or six
和中断之后,
堆栈将类似于左图。
一
interrupt,
the stack
looks like the figure
系列
指令会不断地将返回
on
theRETURN
left. A series
of RETURN instructions
地址置于程序计数器中并弹出堆栈。
will
repeatedly place the return addresses
into the Program Counter and pop the stack.
0x0B
0x0A
0x09
0x08
0x07
TOSH:TOSL
 2012 Microchip Technology Inc.
0x06
Return
Address
返回地址
0x05
Return
Address
返回地址
0x04
Return
Address
返回地址
0x03
Return
Address
返回地址
0x02
Return
Address
返回地址
0x01
Return
Address
返回地址
0x00
Return
Address
返回地址
初稿
STKPTR = 0x06
DS41615A_CN 第 33 页
PIC12(L)F1501
图 3-7:
访问堆栈示例 4
TOSH:TOSL
3.4.2
0x0F
Return
Address
返回地址
0x0E
Return
Address
返回地址
0x0D
Return
Address
返回地址
0x0C
Return
Address
返回地址
0x0B
Return
Address
返回地址
0x0A
Return
Address
返回地址
0x09
Return
Address
返回地址
0x08
Return
Address
返回地址
0x07
Return
Address
返回地址
0x06
Return
Address
返回地址
0x05
Return
Address
返回地址
0x04
Return
Address
返回地址
0x03
Return
Address
返回地址
0x02
Return
Address
返回地址
0x01
Return
Address
返回地址
0x00
Return
Address
返回地址
堆栈满时,
下一条
CALL
指令或中断
When
the stack
is full,
the next
CALL or
,这 to
an会将堆栈指针设置为指向
interrupt will set the Stack0x10
Pointer
等于地址
0x00
,因此堆栈将返回,
0x10.
This is
identical
to address 0x00
0x00
如果使the
so并覆盖
the stack
will处的返回地址。
wrap and overwrite
能了堆栈上溢
下溢复位,
return
address at/ 0x00.
If the将发生
Stack
复位,且地址 0x00 中的内容将不会
Overflow/Underflow
Reset is enabled, a
被覆盖。
Reset will occur and location 0x00 will
not be overwritten.
STKPTR = 0x10
上溢 / 下溢复位
如果配置字中的 STVREN 位被设定为 1,则在压栈操作
超过堆栈第 16 级或出栈操作超过堆栈第 1 级时,器件
会发生复位,并将 PCON 寄存器中的相应位 (分别为
STKOVF 或 STKUNF)置 1。
3.5
间接寻址
INDFn 寄存器不是物理寄存器。访问 INDFn 寄存器的
所有指令实际上访问的是由文件选择寄存器(FSR)指
定的地址处的寄存器。如果 FSRn 地址指定了两个
INDFn 寄存器中的一个,则读操作将返回 0,写操作将
不会发生 (虽然状态位可能会受影响)。 FSRn 寄存器
值由 FSRnH 和 FSRnL 对构成。
FSR 寄存器构成一个 16 位地址,支持 65536 个存储单
元的寻址空间。这些存储单元分为 3 个存储器区域:
• 传统数据存储器
• 线性数据存储器
• 闪存程序存储器
DS41615A_CN 第 34 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 3-8:
间接寻址
0x0000
0x0000
传统
数据存储器
0x0FFF
0x1000
0x1FFF
0x2000
0x0FFF
保留
线性
数据存储器
0x29AF
0x29B0
FSR
地址
范围
0x7FFF
0x8000
保留
0x0000
闪存
程序存储器
0xFFFF
注:
0x7FFF
不是所有存储器区域都能完全实现。关于存储器限制,请参见器件存储器表。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 35 页
PIC12(L)F1501
3.5.1
传统数据存储器
传统数据存储器是从FSR地址0x000至FSR地址0xFFF
的区域。这些地址对应于所有 SFR、 GPR 和公共寄存
器的绝对地址。
图 3-9:
传统数据存储器映射
直接寻址
4
BSR
0
6
间接寻址
来自操作码
0
7
0
存储区选择
FSRxH
0
存储单元选择
0x00
0
0
7
FSRxL
0
0
存储区选择
00000 00001 00010
11111
Bank 0 Bank 1 Bank 2
Bank 31
存储单元选择
0x7F
DS41615A_CN 第 36 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
3.5.2
3.5.3
线性数据存储器
线性数据存储器是从 FSR 地址 0x2000 至 FSR 地址
0x29AF 的区域。该区域是一个虚拟区域,它指向所有
存储区中 80 字节的 GPR 存储块。
为了可以更方便地访问常量数据,整个闪存程序存储器
都映射到 FSR 地址空间的上半部分。当 FSRnH 的 MSb
置 1 时,低 15 位为程序存储器中将通过 INDF 访问的地
址。对于每个存储单元,只有低 8 位可通过 INDF 访问。
对闪存程序存储器的写操作无法通过 FSR/INDF 接口实
现。对于通过 FSR/INDF 接口访问闪存程序存储器的所
有指令,都需要一个额外的指令周期才能完成操作。
未实现的存储器将读为0x00。通过使用线性数据存储器
区域,可以支持大于 80 字节的缓冲区,因为在 FSR 递
增至超过一个存储区时,将会直接转至下一个存储区的
GPR 存储器。
16 字节的公共存储器不包含在线性数据存储器区域中。
图 3-10:
7
FSRnH
0 0 1
图 3-11:
线性数据存储器映射
0
7
存储单元选择
FSRnL
闪存程序存储器
7
1
FSRnH
0
7
FSRnL
0
0
存储单元选择
0x2000
闪存程序存储器映射
0x8000
0x0000
0x020
Bank 0
0x06F
0x0A0
Bank 1
0x0EF
0x120
闪存程序
存储器
(低 8 位)
Bank 2
0x16F
0xF20
0xFFFF
Bank 30
0x29AF
 2012 Microchip Technology Inc.
0x7FFF
0xF6F
初稿
DS41615A_CN 第 37 页
PIC12(L)F1501
注:
DS41615A_CN 第 38 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
4.0
器件配置
器件配置功能由配置字、代码保护和器件 ID 组成。
4.1
配置字
有几个配置字位可用于选择不同的振荡器和存储器保护
选项。这些位实现为位于8007h的配置字1和位于8008h
的配置字 2。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 39 页
PIC12(L)F1501
寄存器 4-1:
CONFIG1: 配置字 1
U-1
U-1
R/P-1
—
—
CLKOUTEN
R/P-1
R/P-1
U-1
BOREN<1:0>
—
bit 13
R/P-1
R/P-1
R/P-1
CP
MCLRE
PWRTE
bit 8
R/P-1
R/P-1
WDTE<1:0>
U-1
R/P-1
R/P-1
FOSC<1:0>
—
bit 7
bit 0
图注:
R = 可读位
P = 可编程位
U = 未实现位,读为 1
0 = 清零
1=置1
-n = 空白时或批量擦除后的值
bit 13-12
未实现:读为 1
bit 11
CLKOUTEN:时钟输出使能位
1 = 禁止 CLKOUT 功能。 CLKOUT 引脚为 I/O 功能
0 = 在 CLKOUT 引脚使能 CLKOUT 功能
bit 10-9
BOREN<1:0>:欠压复位使能位 (1)
11 = 使能 BOR
10 = 在工作期间使能 BOR,在休眠期间禁止 BOR
01 = BOR 由 BORCON 寄存器的 SBOREN 位控制
00 = 禁止 BOR
bit 8
未实现:读为 1
bit 7
CP:代码保护位 (2)
1 = 禁止程序存储器代码保护
0 = 使能程序存储器代码保护
bit 6
MCLRE: MCLR/VPP 引脚功能选择位
如果 LVP 位 = 1:
该位被忽略。
如果 LVP 位 = 0:
1 = MCLR/VPP 引脚功能为 MCLR ;使能弱上拉。
0 = MCLR/VPP 引脚功能为数字输入; MCLR 在内部被禁止;弱上拉由 WPUE3 位控制。
bit 5
PWRTE:上电延时定时器使能位
1 = 禁止 PWRT
0 = 使能 PWRT
bit 4-3
WDTE<1:0>: 看门狗定时器使能位
11 = 使能 WDT
10 = 在运行时使能 WDT,在休眠时禁止 WDT
01 = WDT 由 WDTCON 寄存器的 SWDTEN 位控制
00 = 禁止 WDT
bit 2
未实现:读为 1
bit 1-0
FOSC<1:0>: 振荡器选择位
11 = ECH:外部时钟,高功耗模式:在 CLKIN 引脚上
10 = ECM: 外部时钟,中等功耗模式:在 CLKIN 引脚上
01 = ECL:外部时钟,低功耗模式:在 CLKIN 引脚上
00 = INTOSC 振荡器:CLKIN 引脚为 I/O 功能
注
1: 使能欠压复位时并不会自动使能上电延时定时器。
2: 使能代码保护之后,只能通过批量擦除器件来禁止它。
DS41615A_CN 第 40 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 4-2:
CONFIG2: 配置字 2
R/P-1
U-1
R/P-1
R/P-1
R/P-1
U-1
LVP
—
LPBOR
BORV
STVREN
—
bit 13
bit 8
U-1
U-1
U-1
U-1
U-1
U-1
—
—
—
—
—
—
bit 7
R/P-1
R/P-1
WRT<1:0>
bit 0
图注:
R = 可读位
P = 可编程位
U = 未实现位,读为 1
0 = 清零
1=置1
-n = 空白时或批量擦除后的值
bit 13
LVP:低电压编程使能位 (1)
1 = 使能低电压编程
0 = 必须使用 MCLR 上的高电压进行编程
bit 12
未实现:读为 1
bit 11
LPBOR:低功耗 BOR 使能位
1 = 禁止低功耗欠压复位
0 = 使能低功耗欠压复位
bit 10
BORV:欠压复位电压选择位 (2)
1 = 欠压复位电压 (VBOR),选择低跳变点。
0 = 欠压复位电压 (VBOR),选择高跳变点。
bit 9
STVREN: 堆栈上溢 / 下溢复位使能位
1 = 堆栈上溢或下溢将导致复位
0 = 堆栈上溢或下溢不会导致复位
bit 8-2
未实现:读为 1
bit 1-0
WRT<1:0>: 闪存自写保护位
1 kW 闪存:
11 = 写保护关闭
10 = 000h 至 0FFh 被写保护, 100h 至 3FFh 可被修改
01 = 000h 至 1FFh 被写保护, 200h 至 3FFh 可被修改
00 = 000h 至 3FFh 被写保护,没有地址可被修改
注
1: 当通过 LVP 进入编程模式时,不能将 LVP 位编程为 0。
2: 关于具体跳变点电压,请参见 VBOR 参数。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 41 页
PIC12(L)F1501
4.2
代码保护
通过代码保护,可以防止对器件的未授权访问。对程序
存储器的内部访问不会受任何代码保护设置影响。
4.2.1
程序存储器保护
整个程序存储空间都通过配置字中的 CP 位来防止外部
读写操作。当 CP = 0 时,将禁止对程序存储器的外部
读写操作,读取时将返回全 0。无论保护位的设置如何,
CPU 都可以继续读取程序存储器。对程序存储器的写操
作则取决于写保护设置。更多信息,请参见第 4.3 节
“写保护”。
4.3
写保护
通过写保护,可以防止器件发生意外的自写操作。在保
护应用程序 (例如自举程序软件)的同时,可以允许对
程序存储器的其他区域进行修改。
配置字中的WRT<1:0>位定义受保护的程序存储块的大
小。
4.4
用户 ID
有 4 个存储单元 (8000h-8003h)被指定为 ID 存储单
元,供用户存储校验和或其他代码标识号。在正常执行
期间,这些存储单元是可读写的。关于访问这些存储单
元的更多信息,请参见第 10.4 节 “用户 ID、器件 ID 和
配置字访问” 。关于校验和计算的更多信息,请参见
“PIC12(L)F1501/PIC16(L)F150X Memory Programming
Specification”(DS41573)。
DS41615A_CN 第 42 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
4.5
器件 ID 和版本 ID
存储单元 8006h 是存储器件 ID 和版本 ID 的位置。高 9
位保存器件 ID。低 5 位保存版本 ID。关于访问这些存
储单元的更多信息,请参见第 10.4 节 “用户 ID、器件
ID 和配置字访问”。
开发工具(例如器件编程器和调试器)可用于读取器件
ID 和版本 ID。
寄存器 4-3:
DEVICEID: 器件 ID 寄存器
R
R
R
R
R
R
DEV<8:3>
bit 13
R
R
bit 8
R
R
R
DEV<2:0>
R
R
R
REV<4:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 1
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
P = 可编程位
bit 13-5
DEV<8:0>: 器件 ID 位
器件
bit 4-0
DEVICEID<13:0> 值
DEV<8:0>
REV<4:0>
PIC12F1501
10 1100 110
x xxxx
PIC12LF1501
10 1101 100
x xxxx
REV<4:0>: 版本 ID 位
这些位用于指示版本 (见上面 DEV<8:0> 下的表格)。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 43 页
PIC12(L)F1501
注:
DS41615A_CN 第 44 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
5.0
振荡器模块
5.1
概述
振荡器模块可配置为以下时钟模式之一。
1.
ECL——外部时钟低功耗模式
(0 MHz 至 0.5 MHz)
2. ECM——外部时钟中等功耗模式
(0.5 MHz 至 4 MHz)
3. ECH——外部时钟高功耗模式
(4 MHz 至 20 MHz)
4. INTOSC——内部振荡器 (31 kHz 至 16 MHz)
振荡器模块具有多种时钟源和选择特性,从而使其应用
非常广泛,同时最大限度地发挥性能并降低功耗。图5-1
给出了振荡器模块的框图。
时钟源模式通过配置字中的 FOSC<1:0> 位进行选择。
FOSC 位决定在器件初次上电时使用的振荡器类型。
EC 时钟模式依靠外部逻辑电平信号作为器件时钟源。
INTOSC 内部振荡器模块可以产生低频和高频时钟源,
分别用 LFINTOSC 和 HFINTOSC 表示。(请参见内部
振荡器模块,图 5-1)。基于这两个时钟源,可以产生多
种器件时钟频率选择。
简化的 PIC® MCU 时钟源框图
图 5-1:
CLKIN EC
EC
休眠
CPU 和外设
MUX
CLKIN
16 MHz
时钟源
16 MHz
(HFINTOSC)
后分频器
内部
振荡器
模块
31 kHz
时钟源
16 MHz
8 MHz
4 MHz
2 MHz
1 MHz
500 kHz
250 kHz
125 kHz
62.5 kHz
31.25 kHz
MUX
IRCF<3:0>
内部振荡器
时钟
控制
FOSC<1:0> SCS<1:0>
31 kHz
31 kHz(LFINTOSC)
 2012 Microchip Technology Inc.
WDT、PWRT 和其他模块
初稿
DS41615A_CN 第 45 页
PIC12(L)F1501
5.2
5.2.1.1
时钟源类型
外部时钟 (EC)模式允许外部产生的逻辑电平信号作
为系统时钟源。工作在该模式下时,外部时钟源连接到
CLKIN 输入。 CLKOUT 可用作通用 I/O 或 CLKOUT。
图 5-2 给出了 EC 模式的引脚连接图。
时钟源可分为外部和内部模式。
外部时钟源依靠外部电路提供时钟源工作。例如:振荡
器模块 (EC 模式)。
内部时钟源内置于振荡器模块中。振荡器模块具有两个
内部振荡器,用于产生两个系统时钟源:一个是 16 MHz
高频内部振荡器 (HFINTOSC),另一个是 31 kHz 低
频内部振荡器 (LFINTOSC)。
EC 模式具有三种功耗模式,可通过配置字进行选择:
• 高功耗, 4-20 MHz (FOSC = 11)
• 中等功耗, 0.5-4 MHz (FOSC = 10)
• 低功耗, 0-0.5 MHz (FOSC = 01)
通过 OSCCON 寄存器中的系统时钟选择 (SCS)位在
外部和内部时钟源之间选择系统时钟。更多信息,请参
见第 5.3 节 “时钟切换”。
5.2.1
EC 模式
当选取 EC 模式时,上电复位(POR)后或者从休眠唤
醒后的操作不存在延时。因为PIC® MCU 的设计是完全
静态的,停止外部时钟输入将使器件暂停工作并保持所
有数据完整。 当再次启动外部时钟时,器件恢复工作,
就好像没有停止过一样。
外部时钟源
通过执行以下操作之一,可以使用外部时钟源作为器件
系统时钟:
图 5-2:
• 编程配置字中的 FOSC<1:0> 位,选择在器件复位
时用作默认系统时钟的外部时钟源。
• 清零 OSCCON 寄存器中的 SCS<1:0> 位,将系统
时钟源切换为:
- 由 FOSC 位的值决定的外部时钟源。
来自外部
系统的时钟
更多信息,请参见第 5.3 节 “时钟切换”。
FOSC/4 或 I/O(1)
注
DS41615A_CN 第 46 页
初稿
外部时钟 (EC)模式的工
作原理
CLKIN
PIC® MCU
CLKOUT
1: 输出取决于配置字的 CLKOUTEN 位。
 2012 Microchip Technology Inc.
PIC12(L)F1501
5.2.2
5.2.2.2
内部时钟源
LFINTOSC
通过执行以下操作之一,可以将器件配置为使用内部振
荡器模块作为系统时钟:
低频内部振荡器 (LFINTOSC)是未经校准的 31 kHz
内部时钟源。
• 编程配置字中的 FOSC<1:0> 位来选择 INTOSC
时钟源,在器件复位时将使用该时钟源作为默认系
统时钟。
• 在运行时写入 OSCCON 寄存器中的 SCS<1:0>
位,将系统时钟源切换为内部振荡器。更多信息,
请参见第 5.3 节 “时钟切换”。
LFINTOSC 的输出连接到多路开关 (见图 5-1) 。 使用
OSCCON寄存器的IRCF<3:0>位,通过软件选择31 kHz。
更多信息,请参见第 5.2.2.4 节 “内部振荡器时钟切换时
序”。LFINTOSC 还是上电延时定时器 (PWRT)和看门
狗定时器 (WDT)的时钟源。
LFINTOSC 可以通过选择 31 kHz(OSCCON 寄存器的
IRCF<3:0> 位 = 000x)作为系统时钟源(OSCCON 寄
存器的 SCS 位 = 1x)进行使能,也可以通过以下方式
使能:
在 INTOSC 模式下,CLKIN 可用作通用 I/O。CLKOUT
可用作通用 I/O 或 CLKOUT。
CLKOUT 引脚的功能由配置字中的 CLKOUTEN 位决
定。
• 根据所需的 LF 频率配置 OSCCON 寄存器的
IRCF<3:0> 位,并且
• FOSC<1:0> = 00,或者
• 将 OSCCON 寄存器的系统时钟源 (SCS)位设
置为 1x。
内部振荡器模块具有两个独立的振荡器时钟源。
1.
2.
HFINTOSC (高频内部振荡器)出厂时已校准,
工作频率为 16 MHz。
LFINTOSC (低频内部振荡器)未经校准,工作
频率为 31 kHz。
5.2.2.1
使用 LFINTOSC 的外设有:
• 上电延时定时器 (PWRT)
• 看门狗定时器 (WDT)
HFINTOSC
高频内部振荡器 (HFINTOSC)在出厂时已校准,为
16 MHz 内部时钟源。
OSCSTAT 寄存器的低频内部振荡器就绪位(LFIOFR)
指示 LFINTOSC 何时运行。
HFINTOSC 的输出连接到预分频器和多路开关 (见
图 5-1)。 使用 OSCCON 寄存器的 IRCF<3:0> 位,
可通过软件选择基于 HFINTOSC 产生的多个频率中
的一个。 更多信息,请参见第 5.2.2.4 节 “内部振荡
器时钟切换时序”。
发生以下情况时, HFINTOSC 被使能:
• 根据所需的 HF 频率配置 OSCCON 寄存器的
IRCF<3:0> 位,并且
• FOSC<1:0> = 00,或者
• 将 OSCCON 寄存器的系统时钟源 (SCS)位设
置为 1x。
快速启动振荡器使内部电路可以在切换至 HFINTOSC
之前上电并稳定下来。
OSCSTAT 寄存器的高频内部振荡器就绪位(HFIOFR)
指示 HFINTOSC 何时运行。
OSCSTAT 寄存器的高频内部振荡器稳定位(HFIOFS)
指示 HFINTOSC 何时在距离其最终值的 0.5% 范围内运
行。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 47 页
PIC12(L)F1501
5.2.2.3
5.2.2.4
内部振荡器频率选择
使 用 OSCCON 寄 存 器 的 内 部 振 荡 器 频 率 选 择位
IRCF<3:0>,可通过软件选择系统时钟速度。
当在 HFINTOSC 和 LFINTOSC 之间切换时,新振荡器
可能已经关闭以节省功耗 (见图 5-3)。 如果是这种情
况,则在修改 OSCCON 寄存器的 IRCF<3:0> 位之后,
进行频率选择之前,存在一定的延时。 OSCSTAT 寄存
器将反映 HFINTOSC 和 LFINTOSC 振荡器的当前工作
状态。频率选择序列如下:
16 MHz HFINTOSC 后分频器和 LFINTOSC 的输出连接
到多路开关(见图 5-1)。OSCCON 寄存器的内部振荡
器频率选择位 IRCF<3:0>用于选择内部振荡器的频率输
出。可通过软件选择以下频率中的一个:
1.
2.
3.
4.
• HFINTOSC
- 16 MHz
- 8 MHz
- 4 MHz
- 2 MHz
- 1 MHz
修改 OSCCON 寄存器的 IRCF<3:0> 位。
如果新时钟是关闭的,开始时钟启动延时。
时钟切换电路等待当前时钟下降沿出现。
时钟切换完成。
更多详细信息,请参见图 5-3。
如果内部振荡器速度在同一时钟源的两个时钟之间进行
切换,则选取新频率不存在起振延时。
- 500 kHz (复位后的默认值)
- 250 kHz
- 125 kHz
- 62.5 kHz
- 31.25 kHz
• LFINTOSC
- 31 kHz
注:
内部振荡器时钟切换时序
起振延时规范请参见第 27.0 节 “电气规范”中的振荡
器表。
任何复位后, OSCCON
寄存器的
IRCF<3:0> 位都被设置为 0111,频率选择
被设置为 500 kHz。用户可以修改 IRCF 位
来选择其他频率。
通过 OSCCON 寄存器的 IRCF<3:0> 位,可以重复选择
一些频率。 重复选择可以为系统设计提供权衡的空间。
对于某个给定的频率,可以通过更改振荡器源来降低功
耗。在使用同一振荡器源的情况下改变频率时,可以实
现更快的转换速度。
DS41615A_CN 第 48 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 5-3:
内部振荡器切换时序
HFINTOSC
LFINTOSC(禁止 WDT)
HFINTOSC
起振时间
2 周期同步
运行
2 周期同步
运行
LFINTOSC
IRCF<3:0>
0
=0
系统时钟
HFINTOSC
LFINTOSC(使能 WDT)
HFINTOSC
LFINTOSC
0
IRCF<3:0>
0
系统时钟
LFINTOSC
HFINTOSC
除非使能了 WDT,否则 LFINTOSC 会关闭
LFINTOSC
起振时间
2 周期同步
运行
HFINTOSC
IRCF<3:0>
=0
0
系统时钟
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 49 页
PIC12(L)F1501
5.3
5.3.1
时钟切换
系统时钟选择 (SCS)位
OSCCON 寄存器的系统时钟选择 (SCS)位选择用于
CPU 和外设的系统时钟源。
使用 OSCCON 寄存器的系统时钟选择 (SCS)位,可
通过软件在外部和内部时钟源之间切换系统时钟源。使
用 SCS 位可以选择以下时钟源:
• 当 OSCCON 寄存器的 SCS 位 = 00 时,系统时钟
源由配置字中的 FOSC<1:0> 位的值决定。
• 当 OSCCON 寄存器的 SCS 位 = 1x 时,系统时钟
源由通过 OSCCON 寄存器的 IRCF<3:0> 位选择
的内部振荡器频率选择。复位之后, OSCCON 寄
存器的 SCS 位总是被清零。
• 由配置字中的 FOSC 位决定的默认系统振荡器
• 内部振荡器模块 (INTOSC)
当在时钟源之间切换时,需要一定的延时以使新时钟稳
定。表 5-2 给出了各种振荡器延时。
表 5-1:
振荡器切换延时
切换自
切换到
频率
振荡器延时
休眠 /POR
LFINTOSC
HFINTOSC
31 kHz
31.25 kHz-16 MHz
2 个周期
EC
DC – 20 MHz
LFINTOSC
EC
DC – 20 MHz
任何时钟源
HFINTOSC
31.25 kHz-16 MHz
2 s (近似值)
任何时钟源
LFINTOSC
31 kHz
每次一周期
DS41615A_CN 第 50 页
初稿
每次一周期
 2012 Microchip Technology Inc.
PIC12(L)F1501
5.4
振荡器控制寄存器
寄存器 5-1:
U-0
OSCCON: 振荡器控制寄存器
R/W-0/0
R/W-1/1
R/W-1/1
R/W-1/1
IRCF<3:0>
—
U-0
—
R/W-0/0
R/W-0/0
SCS<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现: 读为 0
bit 6-3
IRCF<3:0>: 内部振荡器频率选择位
1111 = 16 MHz
1110 = 8 MHz
1101 = 4 MHz
1100 = 2 MHz
1011 = 1 MHz
1010 = 500 kHz(1)
1001 = 250 kHz(1)
1000 = 125 kHz(1)
0111 = 500 kHz (复位时的默认值)
0110 = 250 kHz
0101 = 125 kHz
0100 = 62.5 kHz
001x = 31.25 kHz
000x = 31 kHz (LFINTOSC)
bit 2
未实现: 读为 0
bit 1-0
SCS<1:0>:系统时钟选择位
1x = 内部振荡器模块
01 = 保留
00 = 由配置字中 FOSC<1:0> 决定的时钟
注
1: 基于 HFINTOSC 产生的重复频率。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 51 页
PIC12(L)F1501
寄存器 5-2:
OSCSTAT: 振荡器状态寄存器
U-0
U-0
U-0
R-0/q
U-0
U-0
R-0/q
R-0/q
—
—
—
HFIOFR
—
—
LFIOFR
HFIOFS
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 条件值
bit 7-5
未实现: 读为 0
bit 4
HFIOFR:高频内部振荡器就绪位
1 = 16 MHz 内部振荡器 (HFINTOSC)就绪
0 = 16 MHz 内部振荡器 (HFINTOSC)未就绪
bit 3-2
未实现: 读为 0
bit 1
LFIOFR: 低频内部振荡器就绪位
1 = 31 kHz 内部振荡器 (LFINTOSC)就绪
0 = 31 kHz 内部振荡器 (LFINTOSC)未就绪
bit 0
HFIOFS:高频内部振荡器稳定位
1 = 16 MHz 内部振荡器 (HFINTOSC)已稳定
0 = 16 MHz 内部振荡器 (HFINTOSC)尚未稳定
表 5-2:
与时钟源相关的寄存器汇总
Bit 7
名称
OSCCON
CONFIG1
图注:
Bit 4
Bit 3
IRCF<3:0>
—
—
—
Bit 2
—
HFIOFR
—
Bit 1
Bit 0
SCS<1:0>
—
LFIOFR
寄存器
所在页
51
HFIOFS
52
— = 未实现位,读为 0。时钟源不使用阴影单元。
表 5-3:
名称
Bit 5
—
OSCSTAT
图注:
Bit 6
与时钟源相关的配置字汇总
Bit
Bit -/7
Bit -/6
Bit 13/5
Bit 12/4
Bit 11/3
13:8
—
—
—
—
CLKOUTEN
7:0
CP
MCLRE
PWRTE
WDTE<1:0>
Bit 10/2
Bit 9/1
BOREN<1:0>
—
Bit 8/0
—
FOSC<1:0>
寄存器
所在页
40
— = 未实现单元,读为 0。时钟源不使用阴影单元。
DS41615A_CN 第 52 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
6.0
复位
该器件有几种复位方式:
•
•
•
•
•
•
•
•
•
上电复位 (POR)
欠压复位 (BOR)
低功耗欠压复位 (LPBOR)
MCLR 复位
WDT 复位
RESET 指令
堆栈上溢
堆栈下溢
退出编程模式
要使 VDD 稳定下来,可以使能可选的上电延时定时器来
延长 BOR 或 POR 事件之后的复位时间。
图 6-1 给出了片上复位电路的简化框图。
图 6-1:
片上复位电路的简化框图
ICSP? Programming
Mode
Exit
退出 ICSP™
编程模式
RESET
Instruction
RESET
指令
Stack
堆栈
指针
Pointer
MCLRE
MCLR
Sleep
休眠
WDT
Time-out
超时
Device
器件复位
Reset
Power-on
上电
复位
Reset
VDD
Brown-out
欠压
Reset
复位
R
PWRT
Done
LPBOR
复位
Reset
PWRTE
LFINTOSC
BOR
有效 (1)
Active
注
1:BOR 有效条件请参见表 6-1。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 53 页
PIC12(L)F1501
6.1
6.2
上电复位 (POR)
欠压复位 (BOR)
POR 电路会将器件一直保持在复位状态,直到 VDD 达到
最低工作条件可接受的电平为止。在 VDD 上升缓慢、高
速运行或要求一定模拟性能时,所需的电压可能高于最
低 VDD。可以使用 PWRT、 BOR 或 MCLR 功能来延长
启动周期,直到满足所有器件工作条件为止。
当 VDD 达到可选的最低电平时, BOR 电路会将器件保
持在复位状态。在 POR 和 BOR 之间,可在整个电压范
围内对器件的执行进行保护。
6.1.1
•
•
•
•
欠压复位模块具有 4 种工作模式,它们由配置字中的
BOREN<1:0> 位控制。 这 4 种工作模式是:
上电延时定时器 (PWRT)
上电延时定时器在 POR 或欠压复位时提供一个 64 ms
标称值的延时。
只要 PWRT 处于活动状态,器件就保持在复位状态。
PWRT延时使VDD 有额外的时间上升到所需的电平。可
通过清零配置字中的 PWRTE 位使能上电延时定时器。
更多信息,请参见表 6-1。
对配置字中的 BORV 位进行配置来选择欠压复位电平。
上电延时定时器会在从 POR 和 BOR 恢复后启动。
VDD 噪声抑制滤波器可以防止 BOR 在发生轻微事件时产
生触发。 如果 VDD 降至低于 VBOR 的时间大于参数
TBORDC,器件将会发生复位。更多信息,请参见图 6-2。
更 多 信 息,请 参 见 应 用 笔 记
AN607,“Power-up
Trouble Shooting”(DS00607)。
表 6-1:
BOR 总是开启
BOR 在休眠模式下关闭
BOR 通过软件进行控制
BOR 总是关闭
BOR 工作模式
BOREN<1:0>
SBOREN
器件模式
BOR 模式
11
X
X
有效
10
X
唤醒
有效
休眠
禁止
1
X
有效
0
X
禁止
X
X
禁止
01
00
注 1:
6.2.1
在以下情况下执行的指令:
从 POR 恢复或从休眠模式唤醒
等待 BOR 就绪 (1) (BORRDY = 1)
等待 BOR 就绪 (BORRDY = 1)
等待 BOR 就绪 (1) (BORRDY = 1)
立即开始 (BORRDY = x)
在 “从 POR 恢复”和 “从休眠模式唤醒”的特殊情况下,启动时没有任何延时。在 CPU 准备好执行指令
之前, BOR 就绪标志会置 1 (BORRDY = 1),这是因为 BOR 电路通过 BOREN<1:0> 位被强制开启。
6.2.3
BOR 总是开启
BOR 通过软件进行控制
当配置字的 BOREN 位编程为 11 时, BOR 将总是开
启。器件启动会被延迟,直到 BOR 就绪,且 VDD 高于
BOR 阈值为止。
当配置字的 BOREN 位编程为 01 时, BOR 将通过
BORCON 寄存器的 SBOREN 位进行控制。器件启动不
会受 BOR 就绪条件或 VDD 电平条件影响而延迟。
BOR 保护在休眠期间有效。 BOR 不会延迟从休眠中唤
醒。
BOR 保护会在 BOR 电路就绪时立即开始。 BOR 电路
的状态通过 BORCON 寄存器的 BORRDY 位反映。
6.2.2
BOR 保护在休眠期间不变。
BOR 在休眠模式下关闭
当配置字的 BOREN 位编程为 10 时,除非处于休眠模
式,否则 BOR 将开启。器件启动会被延迟,直到 BOR
就绪,且 VDD 高于 BOR 阈值为止。
BOR 保护在休眠期间无效。 器件唤醒会被延迟,直到
BOR 就绪为止。
DS41615A_CN 第 54 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 6-2:
欠压情形
VDD
VBOR
内部
复位
TPWRT(1)
VDD
VBOR
内部
< TPWRT
复位
TPWRT(1)
VDD
VBOR
内部
复位
注
TPWRT(1)
1: 仅在 PWRTE 位被编程为 0 时,才应用 TPWRT 延时。
寄存器 6-1:
BORCON: 欠压复位控制寄存器
R/W-1/u
R/W-0/u
U-0
U-0
U-0
U-0
U-0
R-q/u
SBOREN
BORFS
—
—
—
—
—
BORRDY
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7
SBOREN:软件欠压复位使能位
如果配置字中的 BOREN <1:0>  01:
SBOREN 可读 / 写,但对 BOR 没有任何作用。
如果配置字中的 BOREN <1:0> = 01:
1 = 使能 BOR
0 = 禁止 BOR
bit 6
BORFS:欠压复位快速启动位 (1)
如果 BOREN<1:0> = 11 (总是开启)或 BOREN<1:0> = 00 (总是关闭):
BORFS 可读 / 写,但不起任何作用。
如果 BOREN <1:0> = 10 (在休眠模式下禁止)或 BOREN<1:0> = 01 (受软件控制):
1 = 总是强制开启带隙 (包括休眠 / 唤醒 / 工作等情形)
0 = 带隙正常工作,并且可以关闭
bit 5-1
未实现:读为 0
bit 0
BORRDY:欠压复位电路就绪状态位
1 = 欠压复位电路有效
0 = 欠压复位电路无效
注
1:BOREN<1:0> 位在配置字中。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 55 页
PIC12(L)F1501
6.3
6.5
低功耗欠压复位 (LPBOR)
低功耗欠压复位 (LPBOR)是复位子系统的一个重要
组成部分。关于BOR如何与其他模块进行交互的信息,
请参见图 6-1。
如果固件未在超时周期内发出 CLRWDT 指令,看门狗定
时器会产生复位。 STATUS 寄存器中的 TO 和 PD 位会
改变,指示发生了 WDT 复位。更多信息,请参见第 9.0
节 “看门狗定时器”。
LPBOR用于监视外部VDD引脚。当检测到电压太低时,
器件将保持在复位状态。发生这种情况时,有一个寄存
器位(BOR)会发生改变,指示发生了 BOR 复位。 对
于 BOR 和 LPBOR 事件,所设置的是同一个位。 请参
见寄存器 6-2。
6.3.1
6.6
LPBOR 由配置字的 LPBOR 位控制。在器件被擦除后,
LPBOR 模块默认设为禁止。
6.7
堆栈上溢 / 下溢复位
器件可以在堆栈上溢或下溢时复位。 PCON 寄存器的
STKOVF 或 STKUNF 用于指示复位条件。这些复位通过
将配置字中的 STVREN 位置 1 来使能。更多信息,请参
见第 3.4.2 节 “上溢 / 下溢复位”。
LPBOR 模块输出
LPBOR 模块的输出是一个用于指示是否要将复位置为
有效的信号。 该信号与 BOR 模块的复位信号进行或运
算,用以提供通用 BOR 信号,并送至 PCON 寄存器和
电源控制模块。
6.4
RESET 指令
RESET指令会引起器件复位。PCON寄存器中的RI位将
设置为 0。关于发生 RESET 指令之后的默认条件,请参
见表 6-4。
使能 LPBOR
6.3.1.1
看门狗定时器 (WDT)复位
6.8
退出编程模式
在退出编程模式时,器件的反应与刚刚发生 POR 时的
情况相同。
MCLR
MCLR 是可将器件复位的可选外部输入。 MCLR 功能由
配置字的 MCLRE 位及 LVP 位控制 (表 6-2)。
6.9
表 6-2:
上电延时定时器可用于在 BOR 或 POR 事件之后延迟器
件执行。该定时器通常用于使 VDD 在允许器件开始运行
之前先稳定下来。
MCLR 配置
MCLRE
LVP
MCLR
0
0
禁止
1
0
使能
x
1
使能
6.4.1
上电延时定时器
上电延时定时器由配置字的 PWRTE 位控制。
6.10
启动顺序
在从 POR 或 BOR 恢复时,只有先发生以下事件,器件
才会开始执行:
MCLR 使能
当使能 MCLR 并且引脚保持低电平时,器件会保持在复
位状态。MCLR 引脚通过内部弱上拉与 VDD 连接。
1.
2.
器件在 MCLR 复位路径中有一个噪声滤波器。该滤波器
检测并滤除小脉冲。
总延时时间取决于振荡器配置和上电延时定时器配置。
更多信息,请参见第 5.0 节 “振荡器模块”。
注:
6.4.2
上电延时定时器的运行与 MCLR 复位无关。如果 MCLR
保持低电平的时间足够长,上电延时定时器将会延时结
束。将 MCLR 拉为高电平后,器件将立即开始执行代码
(见图 6-3)。这对于测试或同步多个并行工作的器件来
说是非常有用的。
复位不会将 MCLR 引脚驱动为低电平。
MCLR 禁止
当 MCLR 被禁止时,引脚将用作通用输入,内部弱上拉
由软件控制。更多信息,请参见第 11.2 节 “PORTA 寄
存器”。
DS41615A_CN 第 56 页
上电延时定时器运行完毕 (如果使能)。
MCLR 必须被释放 (如果使能)。
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 6-3:
复位启动序列
VDD
内部 POR
TPWRT
上电延时定时器
MCLR
TMCLR
内部复位
内部振荡器
振荡器
FOSC
外部时钟(EC)
CLKIN
FOSC
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 57 页
PIC12(L)F1501
6.11
确定复位原因
在发生任何复位时,STATUS 和 PCON 寄存器中会有多
个位发生更新,以指示复位的原因。表 6-3 和表 6-4 列
出了这些寄存器的复位条件。
表 6-3:
复位状态位及其含义
STKOVF STKUNF RWDT
RMCLR
RI
POR
BOR
TO
PD
条件
0
0
1
1
1
0
x
1
1
上电复位
0
0
1
1
1
0
x
0
x
非法的, POR 时 TO 被置 1
0
0
1
1
1
0
x
x
0
非法的, POR 时 PD 被置 1
0
0
u
1
1
u
0
1
1
欠压复位
u
u
0
u
u
u
u
0
u
WDT 复位
u
u
u
u
u
u
u
0
0
被 WDT 从休眠状态唤醒
u
u
u
u
u
u
u
1
0
被中断从休眠状态唤醒
u
u
u
0
u
u
u
u
u
正常工作期间的 MCLR 复位
u
u
u
0
u
u
u
1
0
休眠期间的 MCLR 复位
u
u
u
u
0
u
u
u
u
执行了 RESET 指令
1
u
u
u
u
u
u
u
u
堆栈上溢复位 (STVREN = 1)
u
1
u
u
u
u
u
u
u
堆栈下溢复位 (STVREN = 1)
表 6-4:
特殊寄存器的复位条件 (2)
程序
计数器
STATUS
寄存器
PCON
寄存器
上电复位
0000h
---1 1000
00-- 110x
正常工作期间的 MCLR 复位
0000h
---u uuuu
uu-- 0uuu
休眠期间的 MCLR 复位
0000h
---1 0uuu
uu-- 0uuu
WDT 复位
0000h
---0 uuuu
uu-- uuuu
被 WDT 从休眠状态唤醒
PC +1
---0 0uuu
uu-- uuuu
欠压复位
0000h
---1 1uuu
00-- 11u0
---1 0uuu
uu-- uuuu
条件
(1)
PC + 1
被中断从休眠状态唤醒
执行了 RESET 指令
0000h
---u uuuu
uu-- u0uu
堆栈上溢复位 (STVREN = 1)
0000h
---u uuuu
1u-- uuuu
堆栈下溢复位 (STVREN = 1)
0000h
---u uuuu
u1-- uuuu
图注:
u = 不变, x = 未知, - = 未实现位,读为 0。
注
1:当器件被中断唤醒且全局中断允许位 GIE 被置 1 时,返回地址被压入堆栈,并且在执行 PC + 1 后, PC 装
入中断向量 (0004h)。
2:如果某个状态位未实现,则该位将读为 0。
DS41615A_CN 第 58 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
6.12
电源控制 (PCON)寄存器
电源控制 (PCON)寄存器包含区分以下各种复位的标
志位:
•
•
•
•
•
•
•
上电复位 (POR)
欠压复位 (BOR)
RESET 指令复位 (RI)
MCLR 复位 (RMCLR)
看门狗定时器复位 (RWDT)
堆栈下溢复位 (STKUNF)
堆栈上溢复位 (STKOVF)
PCON 寄存器位如寄存器 6-2 所示。
寄存器 6-2:
PCON: 电源控制寄存器
R/W/HS-0/q
R/W/HS-0/q
U-0
STKOVF
STKUNF
—
R/W/HC-1/q R/W/HC-1/q
R/W/HC-1/q
R/W/HC-q/u
R/W/HC-q/u
RI
POR
BOR
RMCLR
RWDT
bit 7
bit 0
图注:
HC = 硬件清零位
R = 可读位
HS = 硬件置 1 位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7
STKOVF:堆栈上溢标志位
1 = 发生了堆栈上溢
0 = 未发生堆栈上溢或由固件清零
bit 6
STKUNF:堆栈下溢标志位
1 = 发生了堆栈下溢
0 = 未发生堆栈下溢或由固件清零
bit 5
未实现: 读为 0
bit 4
RWDT:看门狗定时器复位标志位
1 = 未发生看门狗定时器复位或由固件置 1
0 = 发生了看门狗定时器复位 (由硬件清零)
bit 3
RMCLR:MCLR 复位标志位
1 = 未发生 MCLR 复位或由固件置 1
0 = 发生了 MCLR 复位 (由硬件清零)
bit 2
RI:RESET 指令标志位
1 = 未执行 RESET 指令或由固件置 1
0 = 执行了 RESET 指令 (由硬件清零)
bit 1
POR:上电复位状态位
1 = 未发生上电复位
0 = 发生了上电复位 (发生上电复位后必须用软件置 1)
bit 0
BOR:欠压复位状态位
1 = 未发生欠压复位
0 = 发生了欠压复位 (发生上电复位或欠压复位后必须用软件置 1)
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 59 页
PIC12(L)F1501
表 6-5:
与复位相关的寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
BORCON
SBOREN
BORFS
—
—
—
—
—
BORRDY
55
PCON
STKOVF
STKUNF
—
RWDT
RMCLR
RI
POR
BOR
59
STATUS
—
—
—
TO
PD
Z
DC
C
18
WDTCON
—
—
SWDTEN
81
WDTPS<4:0>
图注:
— = 未实现位,读为 0。复位不使用阴影单元。
注
1:其他 (非上电)复位包括在正常工作期间的 MCLR 复位和看门狗定时器复位。
表 6-6:
名称
CONFIG1
CONFIG2
图注:
与复位相关的配置字汇总
Bit
Bit -/7
Bit -/6
Bit 13/5
Bit 12/4
Bit 11/3
13:8
—
—
—
—
CLKOUTEN
7:0
CP
13:8
—
—
LVP
—
LPBOR
BORV
7:0
—
—
—
—
—
—
MCLRE PWRTE
WDTE<1:0>
Bit 10/2
Bit 9/1
BOREN<1:0>
—
Bit 8/0
—
FOSC<1:0>
STVREN
—
WRT<1:0>
寄存器
所在页
40
41
— = 未实现位,读为 0。复位不使用阴影单元。
DS41615A_CN 第 60 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
7.0
中断
通过中断功能,一些事件可以抢占正常的程序流。固件
用于确定中断源,并执行相应的操作。有些中断可配置
为将 MCU 从休眠模式唤醒。
本章包含了关于中断的以下信息:
•
•
•
•
•
工作原理
中断延时
休眠期间的中断
INT 引脚
自动现场保护
许多外设都会产生中断。详情请参见相应章节。
图 7-1 给出了中断逻辑的框图。
图 7-1:
中断逻辑
TMR0IF
TMR0IE
Peripheral
Interrupts
外设中断
(TMR1IF)
(TMR1IF) PIR1<0>
(TMR1IF) PIR1<0>
(TMR1IF)
Wake-up唤醒
(If
in Sleep mode)
(如处休眠模式)
INTF
INTE
IOCIF
IOCIE
至Interrupt
CPU
to CPU
的中断
PEIE
PIRn<7>
PIEn<7>
© 2012 Microchip Technology Inc.
GIE
初稿
DS41615A_CN 第 61 页
PIC12(L)F1501
7.1
7.2
工作原理
任何器件复位时都会禁止中断。通过将以下位置 1 允许
相应中断:
中断响应延时
中断响应延时定义为从发生中断事件到开始执行中断向
量处代码所经过的时间。同步中断的延时为 3 或 4 个指
令周期。对于异步中断,延时为 3 至 5 个指令周期,这
取决于中断发生的时间。更多详细信息,请参见图 7-2
和图 7-3。
• INTCON 寄存器的 GIE 位
• 特定中断事件的中断允许位
• INTCON 寄存器的 PEIE 位 (如果中断事件的中
断允许位包含在 PIE1、 PIE2 和 PIE3 寄存器中)
INTCON、PIR1、PIR2 和 PIR3 寄存器通过中断标志位
记录各个中断。无论 GIE、PEIE 和各个中断允许位的状
态如何,中断标志位都会在中断发生时置 1。
当中断事件发生时,若 GIE 位置 1,将发生以下事件:
•
•
•
•
清除当前的预取指令
GIE 位清零
程序计数器 (PC)的当前值压入堆栈
自动将关键寄存器保存到影子寄存器中 (见第 7.5
节 “自动现场保护”)
• 将中断向量 0004h 装入 PC
中断服务程序 (Interrupt Service Routine, ISR)中的
固件应通过查询中断标志位来确定中断源。退出 ISR 前
必须清零中断标志位,以避免重复中断。由于 GIE 位清
零,执行 ISR 期间发生的任何中断都会通过其中断标志
位记录下来,但不会使处理器重定位到中断向量。
RETFIE 指令通过从堆栈弹出先前保存的地址、从影子
寄存器恢复保存的现场数据并将 GIE 位置 1,来退出
ISR。
关于特定中断操作的更多信息,请参见其外设章节。
注
1: 无论中断允许位状态如何,各中断标志位
都会在中断发生时置 1。
2: GIE 位清零时,将忽略所有中断。 GIE 位
清零期间发生的任何中断都会在 GIE 位再
次置 1 时得到处理。
DS41615A_CN 第 62 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
图 7-2:
中断响应延时
FOSC
OSC1
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
CLKR
CLKOUT
在 Q1 期间
Interrupt
Sampled
during
Q1
采样到的中断
Interrupt
中断
GIE
PC
Execute
执行
PC-1
PC
1 PC
Cycle
处的单周期指令
Instruction at PC
PC+1
0004h
0005h
NOP
NOP
Inst(0004h)
新的 PC/
New
PC+1
0004h
0005h
Inst(PC)
NOP
NOP
Inst(0004h)
FSR ADDR
PC+1
PC+2
0004h
0005h
INST(PC)
NOP
NOP
NOP
Inst(0004h)
Inst(0005h)
FSR 的地址
ADDR
PC+1
0004h
0005h
INST(PC)
NOP
NOP
Inst(0004h)
Inst(PC)
Interrupt
中断
GIE
PC
Execute
执行
PC-1
PC
2 Cycle
Instruction at PC
PC 处的双周期指令
PC + 1/FSR
PC+1/FSR
的地址
ADDR
Interrupt
中断
GIE
PC
Execute
执行
PC-1
PC
3 Cycle
PC 处的
Instruction
3 周期指令
at PC
Interrupt
中断
GIE
PC
执行
Execute
PC-1
PC
3 Cycle
Instruction
at PC
PC 处的
3 周期指令
© 2012 Microchip Technology Inc.
初稿
PC+2
NOP
NOP
DS41615A_CN 第 63 页
PIC12(L)F1501
图 7-3:
INT 引脚中断时序
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
FOSC
CLKOUT
(3)
INT 引脚
(1)
(1)
INTF
(2)
(4)
中断响应延时
GIE
指令流
PC
PC
Inst (PC)
预取指令
执行指令
注
Inst (PC – 1)
PC + 1
PC + 1
Inst (PC + 1)
—
Inst (PC)
强制 NOP
0004h
0005h
Inst (0004h)
Inst (0005h)
强制 NOP
Inst (0004h)
1: 在此时 (每个 Q1 周期)采样 INTF 标志。
2: 异步中断响应延时为 3-5 个 TCY。同步中断响应延时为 3-4 个 TCY,其中 TCY 为一个指令周期时间。无论 (PC) 处的
指令是单周期还是双周期指令,中断响应延时都是一样的。
3: 关于 INT 脉冲的最小宽度,请参见第 27.0 节 “电气规范”中的交流规范。
4: 允许在 Q1-Q4 周期内的任意时刻将 INTF 置 1。
DS41615A_CN 第 64 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
7.3
休眠期间的中断
有些中断可用于将器件从休眠模式唤醒。要从休眠模式
唤醒器件,外设必须能在没有系统时钟的情况下工作。
进入休眠模式前,必须将相应中断源的中断允许位置
1。
从休眠模式唤醒时,如果 GIE 位也置 1,则处理器将跳
转到中断向量。否则,处理器将继续执行 SLEEP 指令后
的指令。紧接 SLEEP 指令后的指令总是会在跳转到 ISR
前执行。更多详细信息,请参见第 8.0 节 “掉电模式
(休眠)”。
7.4
INT 引脚
INT 引脚可用于产生异步边沿触发中断。可以通过将
INTCON 寄存器的 INTE 位置 1 来允许该中断。
OPTION_REG 寄存器的 INTEDG 位确定中断在哪个边
沿发生。 INTEDG 位置 1 时,上升沿将引起中断。
INTEDG 位清零时,下降沿将引起中断。 INTCON 寄存
器的 INTF 位将在 INT 引脚上出现有效边沿时置 1。如果
GIE 和 INTE 位也置 1,则处理器会将程序的执行重定位
到中断向量。
7.5
自动现场保护
进入中断时, PC 的返回地址被保存在堆栈中。此外,
以下寄存器会被自动保存到影子寄存器中:
•
•
•
•
•
W 寄存器
STATUS 寄存器 (TO 和 PD 除外)
BSR 寄存器
FSR 寄存器
PCLATH 寄存器
在退出中断服务程序时,将会自动恢复这些寄存器。在
ISR 期间对这些寄存器进行的任何修改都会丢失。如果
需要修改其中的任意寄存器,则应修改相应的影子寄存
器,该值在退出 ISR 时将会被恢复。影子寄存器位于
Bank 31 中,它们是可读写寄存器。根据用户的应用,
可能还需要保存其他寄存器。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 65 页
PIC12(L)F1501
7.6
中断控制寄存器
注:
7.6.1
INTCON 寄存器
INTCON 寄存器是可读写的寄存器,它包含 TMR0 寄存
器溢出、电平变化中断和外部 INT 引脚中断的各个允许
位和标志位。
寄存器 7-1:
当中断条件发生时,无论相应中断允许位
或全局中断允许位 GIE(在 INTCON 寄存
器中)的状态如何,中断标志位都将被置
1。用户软件应在允许一个中断前,先将相
应的中断标志位清零。
INTCON: 中断控制寄存器
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R-0/0
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF(1)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
GIE: 全局中断允许位
1 = 允许所有有效中断
0 = 禁止所有中断
bit 6
PEIE:外设中断允许位
1 = 允许所有有效外设中断
0 = 禁止所有外设中断
bit 5
TMR0IE:Timer0 溢出中断允许位
1 = 允许 Timer0 中断
0 = 禁止 Timer0 中断
bit 4
INTE:INT 外部中断允许位
1 = 允许 INT 外部中断
0 = 禁止 INT 外部中断
bit 3
IOCIE:电平变化中断允许位
1 = 允许电平变化中断
0 = 禁止电平变化中断
bit 2
TMR0IF:Timer0 溢出中断标志位
1 = TMR0 寄存器已溢出
0 = TMR0 寄存器未溢出
bit 1
INTF:INT 外部中断标志位
1 = 发生了 INT 外部中断
0 = 未发生 INT 外部中断
bit 0
IOCIF:电平变化中断标志位 (1)
1 = 至少有一个电平变化中断引脚改变了状态
0 = 没有任何电平变化中断引脚的状态发生改变
注
1: IOCIF 标志位是只读位,它在 IOCBF 寄存器中的所有电平变化中断标志都已由软件清零后清零。
DS41615A_CN 第 66 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
7.6.2
PIE1 寄存器
PIE1 寄存器包含中断允许位,如寄存器 7-2 所示。
寄存器 7-2:
注:
必须将 INTCON 寄存器的 PEIE 位置 1,以
允许任何外设中断。
PIE1: 外设中断允许寄存器 1
R/W-0/0
R/W-0/0
U-0
U-0
U-0
U-0
R/W-0/0
R/W-0/0
TMR1GIE
ADIE
—
—
—
—
TMR2IE
TMR1IE
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
TMR1GIE:Timer1 门控中断允许位
1 = 允许 Timer1 门控采集中断
0 = 禁止 Timer1 门控采集中断
bit 6
ADIE:A/D 转换器 (ADC)中断允许位
1 = 允许 ADC 中断
0 = 禁止 ADC 中断
bit 5-2
未实现:读为 0
bit 1
TMR2IE:TMR2 与 PR2 匹配中断允许位
1 = 允许 Timer2 与 PR2 匹配中断
0 = 禁止 Timer2 与 PR2 匹配中断
bit 0
TMR1IE:Timer1 溢出中断允许位
1 = 允许 Timer1 溢出中断
0 = 禁止 Timer1 溢出中断
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 67 页
PIC12(L)F1501
7.6.3
PIE2 寄存器
PIE2 寄存器包含中断允许位,如寄存器 7-3 所示。
寄存器 7-3:
注:
必须将 INTCON 寄存器的 PEIE 位置 1,以
允许任何外设中断。
PIE2: 外设中断允许寄存器 2
U-0
U-0
R/W-0/0
U-0
U-0
R/W-0/0
U-0
U-0
—
—
C1IE
—
—
NCO1IE
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5
C1IE:比较器 C1 中断允许位
1 = 允许比较器 C1 中断
0 = 禁止比较器 C1 中断
bit 4-3
未实现:读为 0
bit 2
NCO1IE:数控振荡器中断允许位
1 = 允许 NCO 中断
0 = 禁止 NCO 中断
bit 1-0
未实现:读为 0
DS41615A_CN 第 68 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
7.6.4
PIE3 寄存器
PIE3 寄存器包含中断允许位,如寄存器 7-4 所示。
寄存器 7-4:
注:
必须将 INTCON 寄存器的 PEIE 位置 1,以
允许任何外设中断。
PIE3: 外设中断允许寄存器 3
U-0
U-0
U-0
U-0
U-0
U-0
R/W-0/0
R/W-0/0
—
—
—
—
—
—
CLC2IE
CLC1IE
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-2
未实现:读为 0
bit 1
CLC2IE:可配置逻辑模块 2 中断允许位
1 = 允许 CLC 2 中断
0 = 禁止 CLC 2 中断
bit 0
CLC1IE:可配置逻辑模块 1 中断允许位
1 = 允许 CLC 1 中断
0 = 禁止 CLC 1 中断
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 69 页
PIC12(L)F1501
7.6.5
PIR1 寄存器
PIR1 寄存器包含中断标志位,如寄存器 7-5 所示。
寄存器 7-5:
注:
当中断条件发生时,无论相应中断允许位
或全局中断允许位 GIE (在 INTCON 寄存
器中)的状态如何,中断标志位都将被置
1。用户软件应在允许一个中断前,先将相
应的中断标志位清零。
PIR1: 外设中断请求寄存器 1
R/W-0/0
R/W-0/0
U-0
U-0
U-0
U-0
R/W-0/0
R/W-0/0
TMR1GIF
ADIF
—
—
—
—
TMR2IF
TMR1IF
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
TMR1GIF:Timer1 门控中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 6
ADIF:A/D 转换器中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 5-2
未实现:读为 0
bit 1
TMR2IF:Timer2 与 PR2 匹配中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 0
TMR1IF:Timer1 溢出中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
DS41615A_CN 第 70 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
7.6.6
PIR2 寄存器
PIR2 寄存器包含中断标志位,如寄存器 7-6 所示。
寄存器 7-6:
注:
当中断条件发生时,无论相应中断允许位
或全局中断允许位 GIE (在 INTCON 寄存
器中)的状态如何,中断标志位都将被置
1。用户软件应在允许一个中断前,先将相
应的中断标志位清零。
PIR2: 外设中断请求寄存器 2
U-0
U-0
R/W-0/0
U-0
U-0
R/W-0/0
U-0
U-0
—
—
C1IF
—
—
NCO1IF
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5
C1IF:比较器 C1 中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 4-3
未实现:读为 0
bit 2
NCO1IF:数控振荡器中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 1-0
未实现:读为 0
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 71 页
PIC12(L)F1501
7.6.7
PIR3 寄存器
PIR3 寄存器包含中断标志位,如寄存器 7-7 所示。
寄存器 7-7:
注:
当中断条件发生时,无论相应中断允许位
或全局中断允许位 GIE (在 INTCON 寄存
器中)的状态如何,中断标志位都将被置
1。用户软件应在允许一个中断前,先将相
应的中断标志位清零。
PIR3: 外设中断请求寄存器 3
U-0
U-0
U-0
U-0
U-0
U-0
R/W-0/0
R/W-0/0
—
—
—
—
—
—
CLC2IF
CLC1IF
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-2
未实现:读为 0
bit 1
CLC2IF:可配置逻辑模块 2 中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
bit 0
CLC1IF:可配置逻辑模块 1 中断标志位
1 = 中断处于待处理状态
0 = 中断不处于待处理状态
DS41615A_CN 第 72 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
表 7-1:
名称
INTCON
与中断相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
OPTION_REG WPUEN
PIE1
INTEDG TMR0CS TMR0SE
PSA
ADIE
—
—
—
—
TMR1GIE
PS<2:0>
TMR2IE
143
TMR1IE
67
PIE2
—
—
C1IE
—
—
NCO1IE
—
—
68
PIE3
—
—
—
—
—
—
CLC2IE
CLC1IE
69
PIR1
TMR1GIF
ADIF
—
—
—
—
TMR2IF
TMR1IF
70
—
—
C1IF
—
—
NCO1IF
—
—
71
—
—
—
—
—
—
CLC2IF
CLC1IF
72
PIR2
PIR3
图注:
— = 未实现位,读为 0。中断不使用阴影单元。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 73 页
PIC12(L)F1501
注:
DS41615A_CN 第 74 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
8.0
8.1
掉电模式 (休眠)
发生以下任一事件会将器件从休眠状态唤醒:
1. MCLR 引脚上的外部复位输入 (如果使能)
2. BOR 复位 (如果使能)
3. POR 复位
4. 看门狗定时器 (如果使能)
5. 任何外部中断
6. 可以在休眠期间运行的外设产生的中断(更多信
息,请参见各个外设)
可通过执行 SLEEP 指令进入掉电模式。
在进入休眠模式时,会存在以下条件:
1.
2.
3.
4.
5.
6.
7.
8.
如果在休眠期间使能 WDT,则 WDT 会清零,但
保持运行。
STATUS 寄存器的 PD 位被清零。
STATUS 寄存器的 TO 位被置 1。
CPU 时钟被禁止。
31 kHz LFINTOSC 不受影响,使用它工作的外
设可以在休眠模式下继续工作。
如果选择了专用 FRC 时钟,则 ADC 不受影响。
I/O 端口保持执行 SLEEP 指令之前的状态(驱动
为高电平、低电平或高阻态)。
WDT 之外的其他复位都不会受休眠模式影响。
前三个事件会导致器件复位。后三个事件被认为是程序
执行的继续。要确定是发生了器件复位还是唤醒事件,
请参见第 6.11 节 “确定复位原因”。
当执行 SLEEP 指令时,下一条指令 (PC + 1)被预先
取出。如果希望通过中断事件唤醒器件,则必须允许相
应的中断允许位。唤醒与 GIE 位的状态无关。如果 GIE
位被禁止,器件将继续执行 SLEEP 指令之后的指令。如
果 GIE 位被允许,器件将执行 SLEEP 指令之后的指令,
然后器件将调用中断服务程序。如果不希望执行 SLEEP
指令之后的指令,用户应在 SLEEP 指令后面放置一条
NOP 指令。
关于休眠期间的外设操作的更多详细信息,请参见各个
章节。
要最大程度降低电流消耗,应考虑以下条件:
•
•
•
•
•
•
I/O 引脚不应悬空
来自 I/O 引脚的外部电路灌电流
来自 I/O 引脚的内部电路拉电流
从带内部弱上拉的引脚汲取的电流
使用 31 kHz LFINTOSC 的模块
使用 HFINTOSC 的 CWG、 NCO 和 CLC 模块
器件从休眠状态唤醒时, WDT 都将被清零,而与唤醒
源无关。
8.1.1
使用中断唤醒
当禁止全局中断 (GIE 被清零)时,并且任一中断源的
中断允许位和中断标志位都置 1,将会发生下列事件之
一:
为了避免输入引脚悬空而引入开关电流,应在外部将高
阻抗输入的 I/O 引脚拉为 VDD 或 VSS。
可能产生拉电流的内部电路示例包括 FVR 模块。关于该
模块的更多信息,请参见第 13.0 节 “固定参考电压
(FVR)”。
 2012 Microchip Technology Inc.
从休眠状态唤醒
• 如果在执行 SLEEP 指令之前发生中断:
- SLEEP 指令将作为 NOP 指令执行
- WDT 和 WDT 预分频器不会被清零
- STATUS 寄存器的 TO 位不会被置 1
- STATUS 寄存器的 PD 位不会被清零
• 如果在执行 SLEEP 指令期间或之后发生中断:
- 将完整执行 SLEEP 指令
- 器件将立即从休眠状态唤醒
- WDT 和 WDT 预分频器将被清零
- STATUS 寄存器的 TO 位将被置 1
- STATUS 寄存器的 PD 位将被清零
初稿
DS41615A_CN 第 75 页
PIC12(L)F1501
即使在执行 SLEEP 指令之前检查到标志位为 0,这些标
志位也有可能在 SLEEP 指令执行完毕之前被置 1。要确
定是否执行了 SLEEP 指令,可测试 PD 位。如果 PD 位
置 1,则说明 SLEEP 指令被当作一条 NOP 指令执行了。
图 8-1:
通过中断从休眠状态唤醒
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
CLKIN(1)
CLKOUT(2)
中断响应延时 (3)
中断标志
GIE 位
(INTCON 寄存器)
指令流
PC
注
处理器处于
休眠状态
PC
预取指令
Inst(PC) = Sleep
执行指令
Inst(PC - 1)
1:
2:
3:
PC +1
Inst(PC +1)
休眠
PC + 2
PC + 2
PC + 2
Inst(PC + 2)
Inst(PC + 1)
强制 NOP
0004h
0005h
Inst(0004h)
Inst(0005h)
强制 NOP
Inst(0004h)
外部时钟。假设采用高、中或低功耗模式。
此处显示的 CLKOUT 用于时序参考。
假设 GIE = 1。在这种情形下,处理器被唤醒后,将调用 0004h 处的 ISR。如果 GIE = 0,程序将继续执行。
DS41615A_CN 第 76 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8.2
8.2.2
低功耗休眠模式
选择低功耗休眠模式时,一些可以在休眠模式下工作的
外设将无法正常工作。使能这些外设时,LDO 将保持在
正常功耗模式。低功耗休眠模式旨在与以下外设配合使
用:
PIC12F1501 器件包含一个内部低压差(Low Dropout,
LDO)稳压器,它使器件 I/O 引脚可以使用最高 5.5V 的
电压工作,而内部器件逻辑可以使用较低的电压工作。
在器件处于休眠模式时,LDO 及其关联的参考电路必须
保持活动状态。 PIC12F1501 允许用户根据应用需求来
优化休眠模式下的工作电流。
•
•
•
•
通过将 VREGCON 寄存器的 VREGPM 位置 1,可以选
择低功耗休眠模式。如果该位置 1,当器件处于休眠模
式时, LDO 和参考电路会被置为低功耗状态。
8.2.1
欠压复位 (BOR)
看门狗定时器 (WDT)
外部中断引脚 / 电平变化中断引脚
Timer1 (带外部时钟源)
互补波形发生器 (CWG)、数控振荡器 (NCO)和可
配置逻辑单元 (CLC)模块可以采用 HFINTOSC 振荡
器 作 为 时 钟 源 或 输 入 源。在 某 些 条 件 下,当 选 择
HFINTOSC 与 CWG、 NCO 或 CLC 模块配合使用时,
HFINTOSC 将在休眠期间保持活动状态。这会直接影响
休眠模式的电流。
休眠电流与唤醒时间
在默认工作模式下,处于休眠模式时,LDO 和参考电路
会保持为正常配置。由于所有电路都保持活动状态,所
以器件能够快速地退出休眠模式。在低功耗休眠模式
下,从休眠模式中唤醒时,这些电路需要一个额外的延
时,然后才会恢复为正常配置并稳定下来。
更多信息,请参见 22.5 “休眠期间的操作”、23.7 “休
眠模式下的操作”和 24.10 “休眠期间的操作”。
低功耗休眠模式对于需要长时间处于休眠模式的应用非
常有益。正常模式对于需要快速地、频繁地从休眠模式
中唤醒的应用非常有益。
 2012 Microchip Technology Inc.
休眠模式下的外设使用
注:
初稿
PIC12LF1501 不具有可配置的低功耗休眠
模式。PIC12LF1501 是非稳压器件,它在
休眠模式下总是处于最低功耗状态,并且
没有唤醒时间延时。该器件的最大 VDD 和
I/O 电压低于 PIC12F1501。更多信息,请
参见第 27.0 节 “电气规范”。
DS41615A_CN 第 77 页
PIC12(L)F1501
VREGCON: 稳压器控制寄存器 (1)
寄存器 8-1:
U-0
U-0
U-0
U-0
U-0
U-0
R/W-0/0
—
—
—
—
—
—
VREGPM
bit 7
R/W-1/1
保留
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-2
未实现:读为 0
bit 1
VREGPM:稳压器功耗模式选择位
1 = 休眠时使能低功耗休眠模式
休眠时消耗的电流最低,唤醒速度较慢
0 = 休眠时使能正常功耗模式
休眠时消耗的电流较高,唤醒速度较快
bit 0
保留:读为 1。保持该位置 1。
注
1: 仅限 PIC12F1501。
表 8-1:
与掉电模式相关的寄存器汇总
Bit 0
寄存器
所在页
INTF
IOCIF
66
IOCAF1
IOCAF0
107
IOCAN1
IOCAN0
107
IOCAP2
IOCAP1
IOCAP0
107
—
—
TMR2IE
TMR1IE
67
—
NCO1IE
—
—
68
—
—
—
CLC2IE
CLC1IE
69
—
—
—
TMR2IF
TMR1IF
70
名称
Bit 7
Bit 6
Bit 5
INTCON
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
—
IOCAF5
IOCAF4
IOCAF3
IOCAF2
—
IOCAN5
IOCAN4
IOCAN3
IOCAN2
—
—
IOCAP5
IOCAP4
IOCAP3
PIE1
TMR1GIE
ADIE
—
—
PIE2
—
—
C1IE
—
PIE3
—
—
—
PIR1
TMR1GIF
ADIF
—
IOCAF
IOCAN
IOCAP
—
—
Bit 4
Bit 3
Bit 2
Bit 1
PIR2
—
—
C1IF
—
—
NCO1IF
—
—
71
PIR3
—
—
—
—
—
—
CLC2IF
CLC1IF
72
STATUS
—
—
—
TO
PD
Z
DC
C
18
WDTCON
—
—
SWDTEN
81
图注:
WDTPS<4:0>
— = 未实现,读为 0。掉电模式下不使用阴影单元。
DS41615A_CN 第 78 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
9.0
看门狗定时器
看门狗定时器是一个系统定时器,如果固件未在超时周
期内发出 CLRWDT 指令,看门狗定时器会产生复位。看
门狗定时器通常用于使系统从意外事件中恢复。
WDT 具有以下特性:
• 独立时钟源
• 多种工作模式
- WDT 总是开启
- WDT 在休眠模式下关闭
- WDT 通过软件进行控制
- WDT 总是关闭
• 超时周期可配置为从 1 ms 至 256 秒 (典型值)
• 多种复位条件
• 休眠期间的操作
图 9-1:
看门狗定时器框图
WDTE<1:0> = 01
SWDTEN
WDTE<1:0> = 11
LFINTOSC
23 位可编程的
预分频器 WDT
WDT 超时
WDTE<1:0> = 10
Sleep
 2012 Microchip Technology Inc.
WDTPS<4:0>
初稿
DS41615A_CN第 79 页
PIC12(L)F1501
9.1
9.3
独立时钟源
超时周期
WDT 以 31 kHz LFINTOSC 内部振荡器作为其工作时
基。本章中的时间间隔均基于 1 ms 的标称时间间隔。
关于 LFINTOSC 容差,请参见第 27.0 节“电气规范”。
WDTCON 寄存器的 WDTPS 位用于设置从 1 ms 至 256
秒 (标称值)的超时周期。在复位之后,默认的超时周
期为 2 秒。
9.2
9.4
WDT 工作模式
看门狗定时器模块具有 4 种工作模式,这些工作模式由
配置字中的 WDTE<1:0> 位控制。请参见表 9-1。
9.2.1
当发生以下任何条件时, WDT 被清零:
•
•
•
•
•
•
WDT 总是开启
当配置字的 WDTE 位设置为 11 时,WDT 将总是开启。
WDT 保护在休眠期间有效。
9.2.2
WDT 在休眠模式下关闭
9.5
WDT 保护在休眠期间无效。
当配置字的WDTE位设置为01时,WDT将由WDTCON
寄存器的 SWDTEN 位控制。
在器件处于休眠模式的情况下发生 WDT 超时时,不会
产生复位。器件将会唤醒并继续工作。STATUS 寄存器
中的 TO 和 PD 位会发生改变,指示发生的事件。也可
以使用 PCON 寄存器中的 RWDT 位。更多信息,请参
见第 3.0 节 “存储器构成”。
WDT 保护在休眠期间不变。更多详细信息,请参见表
9-1。
WDT 工作模式
WDTE<1:0>
SWDTEN 器件模式 WDT 模式
11
X
10
X
1
01
0
00
表 9-2:
休眠期间的操作
当器件进入休眠模式时, WDT 会被清零。如果使能
WDT 在休眠期间工作,WDT 会继续计数。当器件退出
休眠模式时, WDT 会被再次清零。
WDT 通过软件进行控制
表 9-1:
任何复位
执行了 CLRWDT 指令
器件进入休眠模式
器件从休眠状态唤醒
振荡器故障
WDT 被禁止
更多信息,请参见表 9-2。
当配置字的 WDTE 位设置为 10 时,除非处于休眠模
式,否则 WDT 将开启。
9.2.3
清零 WDT
X
X
有效
唤醒
有效
休眠
禁止
X
有效
禁止
X
禁止
WDT 清零条件
WDT
条件
WDTE<1:0> = 00
WDTE<1:0> = 01 且 SWDTEN = 0
WDTE<1:0> = 10 并进入休眠状态
清零
CLRWDT 命令
检测到振荡器故障
退出休眠 + 系统时钟 = INTOSC 或 EXTCLK
更改 INTOSC 分频比 (IRCF 位)
DS41615A_CN第 80 页
不受影响
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
9.6
看门狗控制寄存器
寄存器 9-1:
WDTCON:看门狗定时器控制寄存器
U-0
U-0
—
—
R/W-0/0
R/W-1/1
R/W-0/0
R/W-1/1
WDTPS<4:0>
R/W-1/1
R/W-0/0
SWDTEN
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-1
WDTPS<4:0>:看门狗定时器周期选择位 (1)
位值
= 预分频比
00000 = 1:32 (时间间隔标称值为 1 ms)
00001 = 1:64 (时间间隔标称值为 2 ms)
00010 = 1:128 (时间间隔标称值为 4 ms)
00011 = 1:256 (时间间隔标称值为 8 ms)
00100 = 1:128 (时间间隔标称值为 16 ms)
00101 = 1:256 (时间间隔标称值为 32 ms)
00110 = 1:256 (时间间隔标称值为 64 ms)
00111 = 1:256 (时间间隔标称值为 128 ms)
01000 = 1:256 (时间间隔标称值为 256 ms)
01001 = 1:256 (时间间隔标称值为 512 ms)
01010 = 1:32768 (时间间隔标称值为 1s)
01011 = 1:65536 (时间间隔标称值为 2s)(复位值)
01100 = 1:131072 (217)(时间间隔标称值为 4s)
01101 = 1:262144 (218)(时间间隔标称值为 8s)
01110 = 1:524288 (219)(时间间隔标称值为 16s)
01111 = 1:1048576 (220)(时间间隔标称值为 32s)
10000 = 1:2097152 (221)(时间间隔标称值为 64s)
10001 = 1:4194304 (222)(时间间隔标称值为 128s)
10010 = 1:8388608 (223)(时间间隔标称值为 128s)
10011 = 保留。产生最小的时间间隔 (1:32)
•
•
•
11111 = 保留。产生最小的时间间隔 (1:32)
bit 0
注
SWDTEN:看门狗定时器软件使能 / 禁止位
如果 WDTE<1:0> = 00:
该位被忽略。
如果 WDTE<1:0> = 01:
1 = WDT 开启
0 = WDT 关闭
如果 WDTE<1:0> = 1x:
该位被忽略。
1: 时间均为近似值。 WDT 时间基于 31 kHz LFINTOSC。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN第 81 页
PIC12(L)F1501
表 9-3:
与看门狗定时器相关的寄存器汇总
Bit 7
名称
Bit 6
—
OSCCON
Bit 5
Bit 4
Bit 3
IRCF<3:0>
—
STKOVF
STKUNF
—
RWDT
STATUS
—
—
—
TO
WDTCON
—
—
PCON
图注:
CONFIG1
图注:
Bit 1
Bit 0
SCS<1:0>
RMCLR
RI
POR
PD
Z
DC
WDTPS<4:0>
寄存器
所在页
51
BOR
59
C
18
SWDTEN
81
x = 未知, u = 不变, – = 未实现位,读为 0。看门狗定时器不使用阴影单元。
表 9-4:
名称
Bit 2
与看门狗定时器相关的配置字汇总
Bit
Bit -/7
Bit -/6
Bit 13/5
Bit 12/4
Bit 11/3
13:8
—
—
—
—
CLKOUTEN
7:0
CP
MCLRE
PWRTE
WDTE<1:0>
Bit 10/2
Bit 9/1
BOREN<1:0>
—
Bit 8/0
—
FOSC<1:0>
寄存器
所在页
40
— = 未实现位,读为 0。看门狗定时器不使用阴影单元。
DS41615A_CN第 82 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
10.0
控制位 RD 和 WR 分别用于启动读和写操作。用软件只
能将这两位置 1 而无法清零。在读或写操作完成后,它
们由硬件清零。由于无法用软件将 WR 位清零,可避免
意外地过早终止写操作。
闪存程序存储器控制
在整个 VDD 范围内的正常工作期间,闪存程序存储器都
是可读写的。程序存储器通过特殊功能寄存器 (SFR)
来间接寻址。用于访问程序存储器的 SFR 有:
•
•
•
•
•
•
当 WREN 位置 1 时,允许进行写操作。上电时,WREN
位被清零。在正常工作期间,如果写操作被复位中断,
WRERR 位会置 1。在这些情况下,复位后用户可以检
查 WRERR 位并执行相应的错误处理程序。
PMCON1
PMCON2
PMDATL
PMDATH
PMADRL
PMADRH
PMCON2 寄存器是只写寄存器。尝试读 PMCON2 寄存
器将返回全 0。
要使能对程序存储器的写操作,必须向 PMCON2 寄存
器中写入特定的模式 (解锁序列)。必需的解锁序列可
以防止对程序存储器写锁存器和闪存程序存储器的意外
写操作。
当访问程序存储器时,PMDATH:PMDATL 寄存器对组成
双字节字,保存 14 位读 / 写数据,而 PMADRH:PMADRL
寄存器对组成双字节字,保存 15 位被读取的程序存储单
元的地址。
10.2
写入时间由片上定时器控制。写入 / 擦除电压由片上电荷
泵产生。
闪存程序存储器概述
闪存程序存储器可以通过两种方式进行保护:代码保护
(配置字中的 CP 位)和写保护(配置字中的 WRT<1:0>
位)。
要进行擦除和编程操作,了解闪存程序存储器结构非常
重要。闪存程序存储器按行排列。每一行都包含固定数
量的 14 位程序存储字。行是可以通过用户软件擦除的最
小大小。
代码保护 (CP = 0) (1) 会禁止通过外部器件编程器对
闪存程序存储器进行访问 (读写操作)。代码保护不会
影响自写和擦除功能。代码保护只能通过器件编程器对
器件执行批量擦除操作,从而清除所有闪存程序存储
器、配置位和用户 ID 而复位。
在擦除某行之后,用户可以对该行的全部或部分内容进
行再编程。要写入程序存储器行的数据将写入 14 位宽
的数据写锁存器中。用户不能直接访问这些写锁存器,
但可以通过连续写入 PMDATH:PMDATL 寄存器对来装
入数据。
注:
写保护会禁止对由WRT<1:0>位所定义的部分或全部闪
存程序存储器进行自写或擦除操作。写保护不会影响器
件编程器对器件进行读、写或擦除操作。
注
10.1
1: 通过清零配置字的 CP 位使能对整个闪存
程序存储器阵列的代码保护。
PMADRL 和 PMADRH 寄存器
关于闪存程序存储器的擦除行大小和写锁存器数量,请
参见表 10-1。
PMADRH:PMADRL 寄存器对能寻址最大 16K 字的程序
存储器。当选择程序地址值时,地址的 MSB 被写入
PMADRH 寄存器,而 LSB 被写入 PMADRL 寄存器。
10.1.1
如果用户只希望修改先前已编程行的一部
分内容,则必须在擦除之前先读取整行内
容,并保存到 RAM 中。然后,可以将新数
据和已保存数据写入写锁存器,以对闪存
程序存储器行进行再编程。但对于任何未
经过编程的单元,则无需先擦除行即可写
入。这种情况下,不需要保存并重新写入
其他先前已编程的单元。
表 10-1:
PMCON1 和 PMCON2 寄存器
器件
PMCON1 是访问闪存程序存储器的控制寄存器。
PIC12F1501
PIC12LF1501
© 2012 Microchip Technology Inc.
初稿
闪存构成 (按器件)
行擦除 (字)
写锁存器
(字)
16
16
DS41615A_CN 第 83 页
PIC12(L)F1501
10.2.1
图 10-1:
读取闪存程序存储器
闪存程序存储器读操作流程图
要读取程序存储单元,用户必须:
1.
2.
3.
Start
开始读操作
Read
Operation
将所需地址写入 PMADRH:PMADRL 寄存器对。
将 PMCON1 寄存器的 CFGS 位清零。
然后,将 PMCON1 寄存器的控制位 RD 置 1。
Select
选择程序存储器或配置存储器
Program
or Configuration Memory
(CFGS)
(CFGS)
一旦读控制位置1,闪存程序存储器控制器将使用第二个
指令周期来读取数据。这会导致紧随 BSF PMCON1,RD
指令的第二条指令被忽略。在紧接着的下一个周期,
PMDATH:PMDATL寄存器对中的数据即可使用;因此,
可在随后的指令中读取为两个字节。
Select
选择字地址
Word Address
(PMADRH:PMADRL)
(PMADRH:PMADRL)
PMDATH:PMDATL 寄存器对将保留该值直到另一次读
操作开始或用户写入新值为止。
注:
程序存储器读操作后的两条指令必须为
NOP,从而阻止用户在 RD 位置 1 后的下一
条指令执行双周期指令。
Initiate启动读操作
Read operation
(RD
1)
(RD = 1)
Instruction
Fetched ignored
忽略预取指令
NOP强制执行
executionNOP
forced
忽略预取指令
Instruction
Fetched ignored
NOP
NOP 强制执行
execution
forced
Data
read now in
现在在
PMDATH:PMDATL
PMDATH:PMDATL
中读取数据
End
读操作结束
Read Operation
DS41615A_CN 第 84 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
图 10-2:
闪存程序存储器读周期执行时序
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
闪存地址
闪存数据
PC
PC + 1
INSTR (PC)
在此执行
INSTR(PC - 1)
PC
+3
PC+3
PMADRH,PMADRL
INSTR(PC + 1)
在此执行
BSF PMCON1,RD
PMDATH,PMDATL
忽略
INSTR(PC + 1)
在此强制执行 NOP
PC + 4
INSTR(PC + 3)
忽略
INSTR(PC + 2)
在此强制执行 NOP
PC + 5
INSTR(PC + 4)
在此执行
INSTR(PC + 3)
在此执行
INSTR(PC + 4)
RD 位
PMDATH
PMDATL
寄存器
例 10-1:
读取闪存程序存储器
* This code block will read 1 word of program
* memory at the memory address:
PROG_ADDR_HI: PROG_ADDR_LO
*
data will be returned in the variables;
*
PROG_DATA_HI, PROG_DATA_LO
BANKSEL
MOVLW
MOVWF
MOVLW
MOVWF
PMADRL
PROG_ADDR_LO
PMADRL
PROG_ADDR_HI
PMADRH
; Select Bank for PMCON registers
;
; Store LSB of address
;
; Store MSB of address
BCF
BSF
NOP
NOP
PMCON1,CFGS
PMCON1,RD
;
;
;
;
Do not select Configuration Space
Initiate read
Ignored (Figure 10-2)
Ignored (Figure 10-2)
MOVF
MOVWF
MOVF
MOVWF
PMDATL,W
PROG_DATA_LO
PMDATH,W
PROG_DATA_HI
;
;
;
;
Get LSB of word
Store in user location
Get MSB of word
Store in user location
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 85 页
PIC12(L)F1501
10.2.2
图 10-3:
闪存解锁序列
解锁序列是一种用于保护闪存程序存储器免于发生意外
自写编程或擦除的机制。只有在无中断情况下执行并完
成序列时,才能成功地完成以下操作之一:
•
•
•
•
闪存程序存储器解锁序列流
程图
Start
开始解锁序列
Unlock Sequence
行擦除
向程序存储器写锁存器装入数据
将程序存储器写锁存器内容写入程序存储器
将程序存储器写锁存器内容写入用户 ID
Write
055h
to
将 055h
写入
PMCON2
PMCON2
解锁序列包含以下步骤:
1. 将 55h 写入 PMCON2
Write
0AAh
to
将 0AAh
写入
PMCON2
2. 将 AAh 写入 PMCON2
3. 将 PMCON1 中的 WR 位置 1
4. NOP 指令
Initiate
启动写或擦除操作
Write or Erase operation
(WR = 1)
(WR = 1)
5. NOP 指令
在 WR 位置 1 之后,处理器总是会强制执行两条 NOP 指
令。在执行擦除行或编程行操作时,处理器会暂停内部
操作 (通常为 2 ms),直到操作完成为止,然后再继续
执行下一条指令。当操作向程序存储器写锁存器装入数
据时,处理器总是会强制执行两条 NOP 指令,然后继续
无中断地执行下一条指令。
忽略预取指令
Instruction
Fetched ignored
NOP
NOP 强制执行
execution
forced
由于在执行解锁序列的过程中不能发生中断,所以在执
行解锁序列之前应先禁止全局中断,然后在完成解锁序
列之后重新允许。
忽略预取指令
Instruction
Fetched ignored
NOP
NOP 强制执行
execution
forced
End
解锁序列结束
Unlock Sequence
DS41615A_CN 第 86 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
10.2.3
图 10-4:
擦除闪存程序存储器
在执行代码时,程序存储器只能按行进行擦除。要擦除
某行,请执行以下操作:
1.
2.
3.
4.
5.
将 要 擦 除 的 行 内 的 任 意 地 址 装 入
PMADRH:PMADRL 寄存器对。
将 PMCON1 寄存器的 CFGS 位清零。
将 PMCON1 寄存器的 FREE 和 WREN 位置 1。
向 PMCON2 中先写入 55h,然后写入 AAh (闪
存编程解锁序列)。
将 PMCON1 寄存器的控制位 WR 置 1,以开始
擦除操作。
闪存程序存储器擦除操作流
程图
Start
开始擦除操作
Erase Operation
Disable
Interrupts
禁止中断
(GIE == 0)
(GIE
0)
Select
选择程序存储器或配置存储器
Program
or Configuration Memory
(CFGS)
(CFGS)
请参见例 10-2。
在 BSF PMCON1,WR 指令之后,处理器需要两个周期来
设置擦除操作。用户必须在 WR 位置 1 指令之后放置两
条 NOP 指令。处理器将暂停内部操作,产生 2 ms (典
型值)的擦除时间。这不是休眠模式,因为时钟和外设
会 继 续 运 行。在 擦 除 周 期 之 后,处 理 器 将 继 续 处 理
PMCON1 写指令之后的第三条指令。
Select
Row Address
选择行地址
(PMADRH:PMADRL)
(PMADRH:PMADRL)
选择擦除操作
Select
Erase Operation
(FREE = 1)
(FREE
1)
/ 擦除操作
Enable使能写
Write/Erase
Operation
(WREN ==1)
(WREN
1)
解锁序列
Unlock
Sequence
图 10-3x-x)
(FIGURE
图 10-3
CPUCPU
stalls
while
暂停
ERASE
operation completes
直到擦除操作完成
(2ms typical)
(典型值为
2 ms)
Disable禁止写
Write/Erase
Operation
/ 擦除操作
(WREN ==0)
(WREN
0)
重新允许中断
Re-enable
Interrupts
(GIE
1)
(GIE == 1)
End
擦除操作结束
Erase Operation
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 87 页
PIC12(L)F1501
例 10-2:
擦除程序存储器的一行
必需的
序列
; This row erase routine assumes the following:
; 1. A valid address within the erase row is loaded in ADDRH:ADDRL
; 2. ADDRH and ADDRL are located in shared data memory 0x70 - 0x7F (common RAM)
BCF
BANKSEL
MOVF
MOVWF
MOVF
MOVWF
BCF
BSF
BSF
INTCON,GIE
PMADRL
ADDRL,W
PMADRL
ADDRH,W
PMADRH
PMCON1,CFGS
PMCON1,FREE
PMCON1,WREN
MOVLW
MOVWF
MOVLW
MOVWF
BSF
NOP
NOP
55h
PMCON2
0AAh
PMCON2
PMCON1,WR
BCF
BSF
DS41615A_CN 第 88 页
PMCON1,WREN
INTCON,GIE
; Disable ints so required sequences will execute properly
; Load lower 8 bits of erase address boundary
; Load upper 6 bits of erase address boundary
; Not configuration space
; Specify an erase operation
; Enable writes
;
;
;
;
;
;
;
;
;
;
Start of required sequence to initiate erase
Write 55h
Write AAh
Set WR bit to begin erase
NOP instructions are forced as processor starts
row erase of program memory.
The processor stalls until the erase process is complete
after erase processor continues with 3rd instruction
; Disable writes
; Enable interrupts
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
10.2.4
写入闪存程序存储器
要装入写锁存器并对程序存储器的一行进行编程,需要
完 成 以 下 步 骤。这 些 步 骤 分 为 两 个 部 分。首 先,在
LWLO = 1 时,使用解锁序列将来自 PMDATH:PMDATL
的数据装入每个写锁存器。当要装入写锁存器的最后一
个字就绪时,清零 LWLO 位并执行解锁序列。这将启动
编程操作,将所有锁存器内容写入闪存程序存储器。
程序存储器使用以下步骤进行编程:
1.
2.
3.
4.
将 需 要 编 程 的 行 的 地 址 装 入
PMADRH:PMADRL。
向每个写锁存器中装入数据。
启动编程操作。
重复步骤 1 至 3,直到写入所有数据为止。
注:
在写入程序存储器之前,要写入的字必须已擦除或先前
未写入。程序存储器每次只能擦除一行。在启动写操作
时,并不会发生自动擦除操作。
要向写锁存器装入数据或启动闪存编程操
作,需要执行一个特殊的解锁序列。如果
在执行解锁序列的过程中发生中断,则不
会启动对锁存器或程序存储器的写操作。
1.
2.
3.
将 PMCON1 寄存器的 WREN 位置 1。
将 PMCON1 寄存器的 CFGS 位清零。
将PMCON1寄存器的LWLO位置1。当PMCON1
寄存器的 LWLO 位为 1 时,写序列之后只向写锁
存器装入数据,而不会启动对闪存程序存储器的
写操作。
4. 将 要 写 入 的 存 储 单 元 的 地 址 装 入
PMADRH:PMADRL 寄存器对。
5. 将 要 写 入 的 程 序 存 储 器 数 据 装 入
PMDATH:PMDATL 寄存器对。
6. 执行解锁序列(第 10.2.2 节“闪存解锁序列”)。
写锁存器中现在会被装入数据。
7. 递增 PMADRH:PMADRL 寄存器对,使之指向下
一个存储单元。
8. 重复步骤 5 至步骤 7,直到除了最后一个写锁存
器之外的所有写锁存器中都装入数据为止。
9. 将 PMCON1 寄存器的 LWLO 位清零。当
PMCON1 寄存器的 LWLO 位为 0 时,写序列会
启动对闪存程序存储器的写操作。
10. 将 要 写 入 的 程 序 存 储 器 数 据 装 入
PMDATH:PMDATL 寄存器对。
11. 执行解锁序列(第 10.2.2 节“闪存解锁序列”)。
整个程序存储器锁存器的内容现在会被写入闪存
程序存储器中。
程序存储器每次可以写入一个或多个字。每次可以写入
的最大字数等于写锁存器的数量。更多详细信息,请参
见图 10-5 (使用 16 个写锁存器对程序存储器进行行写
操作)。
写锁存器将对齐到由 PMADRH:PMADRL 高 11 位
(PMADRH<6:0>:PMADRL<7:4>)定义的闪存行地址
边界处,PMADRL 的低 4 位(PMADRL<3:0>)将决定
要装入的写锁存器。写操作不会跨越这些边界。在程序
存储器写操作完成时,写锁存器中的数据会复位为包含
0x3FFF。
注:
在每个写操作或擦除操作完成时,程序存
储器写锁存器将复位为空白状态
(0x3FFF) 。因此,不需要向所有程序存
储器写锁存器中装入数据。未装入的锁存
器将保持空白状态。
例 10-3 给出了一个完整的写序列示例。将初始地址装入
PMADRH:PMADRL 寄存器对;数据使用间接寻址方式
装入。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 89 页
7
6
-
r10
使用 16 个写锁存器对闪存程序存储器进行块写操作
0 7
5 4
PMADRH
r9
r8
r7
r6
7
0
PMADRL
r5
r4
r3
r2
r1
r0
c3
c2
c1
c0
5
-
0
7
PMDATH
6
0
PMDATL
8
14
11
Program
Memory Write Latches
程序存储器写锁存器
4
14
Write
Latch
#0
将 00h
写入
锁存器
00h #0
PMADRL<4:0>
14
初稿
CFGS = 0
© 2012 Microchip Technology Inc.
PMADRH<6:0>
:PMADRL<7:4>
Row
行
Address
地址
Decode
译码
14
14
Write
Latch
#1
将 01h
写入
锁存器
01h #1
14
Write
Latch
#14
将 0Eh
写入
锁存器
0Eh#14
14
将 0Fh
写入
Write
Latch
#15
锁存器
0Fh #15
14
14
行
Row
地址
Addr
地址
Addr
地址
Addr
地址
Addr
000h
0000h
0001h
000Eh
001Fh
001h
0010h
0011h
001Eh
001Fh
002h
0020h
0021h
002Eh
002Fh
7FEh
7FE0h
7FE1h
7FEEh
7FEFh
7FFh
7FF0h
7FF1h
7FFEh
7FFFh
Flash
Program Memory
闪存程序存储器
800h
CFGS = 1
8000h - 8003h
USER
用户 IDID0 0- 3- 3
8004h - 8005h
8006h
8007h – 8008h
8009h - 801Fh
reserved
保留
器件 ID
DEVICEID
版本
ID
REVID
Configuration
配置字
Words
保留
reserved
Configuration
配置存储器Memory
PIC12(L)F1501
DS41615A_CN 第 90 页
图 10-5:
PIC12(L)F1501
图 10-6:
闪存程序存储器写操作流程图
Start
开始写操作
Write
Operation
Determine number of words
确定要写入程序存储器
to be
written into Program or
或配置存储器的字数。
Configuration
Memory.
The字数不能超过每行的
number of words cannot
字数。
exceed the
number of words
(word_cnt)
per row.
(word_cnt)
Disable
Interrupts
禁止中断
(GIE == 0)
(GIE
0)
Select
选择程序存储器
或配置存储器
Program
or Config. Memory
(CFGS)
(CFGS)
Select
Row Address
选择行地址
(PMADRH:PMADRL)
(PMADRH:PMADRL)
使能写 Write/Erase
/ 擦除操作
Enable
(WREN
= 1)= 1)
Operation
(WREN
Load
the value to write
装入要写入的值
(PMDATH:PMDATL)
(PMDATH:PMDATL)
Update
the word counter
更新字计数器
(word_cnt--)
(word_cnt--)
Last
word to
最后一个
write ?
要写入的字?
是
Yes
No
否
Unlock
Sequence
解锁序列
(Figure
x-x)
图
图 10-310-3
Select选择写操作
Write Operation
(FREE == 00))
(FREE
No delay
when writing to
写入程序存储器
Program
Memory Latches
锁存器时无延时
Load仅装入写锁存器
Write Latches Only
(LWLO
(LWLO = 1)
1)
地址递增
1
Increment
Address
(PMADRH:PMADRL++)
(PMADRH:PMADRL++)
Write Latches to Flash
将锁存器写入闪存存储器
(LWLO = 0)
(LWLO
0)
Unlock
Sequence
解锁序列
图 10-3
(Figure
图 10-3 x-x)
CPU
stalls
while Write
CPU
暂停直到
operation
completes
写操作完成
(典型值为
2 ms)
(2ms typical)
Disable
禁止写 / 擦除操作
Write/Erase Operation
(WREN = 0)
(WREN = 0)
Re-enable
Interrupts
重新允许中断
(GIE
(GIE == 1)
1)
End
写操作结束
Write Operation
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 91 页
PIC12(L)F1501
例 10-3:
;
;
;
;
;
;
;
写入闪存程序存储器
This write routine assumes the following:
1. 32 bytes of data are loaded, starting at the address in DATA_ADDR
2. Each word of data to be written is made up of two adjacent bytes in DATA_ADDR,
stored in little endian format
3. A valid starting address (the least significant bits = 00000) is loaded in ADDRH:ADDRL
4. ADDRH and ADDRL are located in shared data memory 0x70 - 0x7F (common RAM)
BCF
BANKSEL
MOVF
MOVWF
MOVF
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
BCF
BSF
BSF
INTCON,GIE
PMADRH
ADDRH,W
PMADRH
ADDRL,W
PMADRL
LOW DATA_ADDR
FSR0L
HIGH DATA_ADDR
FSR0H
PMCON1,CFGS
PMCON1,WREN
PMCON1,LWLO
;
;
;
;
;
;
;
;
;
;
;
;
;
Disable ints so required sequences will execute properly
Bank 3
Load initial address
MOVIW
MOVWF
MOVIW
MOVWF
FSR0++
PMDATL
FSR0++
PMDATH
; Load first data byte into lower
;
; Load second data byte into upper
;
MOVF
XORLW
ANDLW
BTFSC
GOTO
PMADRL,W
0x0F
0x0F
STATUS,Z
START_WRITE
; Check if lower bits of address are '00000'
; Check if we're on the last of 16 addresses
;
; Exit if last of 16 words,
;
MOVLW
MOVWF
MOVLW
MOVWF
BSF
NOP
55h
PMCON2
0AAh
PMCON2
PMCON1,WR
;
;
;
;
;
;
;
;
PMADRL,F
LOOP
; Still loading latches Increment address
; Write next latches
PMCON1,LWLO
; No more loading latches - Actually start Flash program
; memory write
55h
PMCON2
0AAh
PMCON2
PMCON1,WR
;
;
;
;
;
;
;
;
;
;
;
;
;
Load initial data address
Load initial data address
Not configuration space
Enable writes
Only Load Write Latches
必需的
序列
LOOP
NOP
INCF
GOTO
必需的
序列
START_WRITE
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
NOP
NOP
BCF
BSF
DS41615A_CN 第 92 页
PMCON1,WREN
INTCON,GIE
Start of required write sequence:
Write 55h
Write AAh
Set WR bit to begin write
NOP instructions are forced as processor
loads program memory write latches
Start of required write sequence:
Write 55h
Write AAh
Set WR bit to begin write
NOP instructions are forced as processor writes
all the program memory write latches simultaneously
to program memory.
After NOPs, the processor
stalls until the self-write process in complete
after write processor continues with 3rd instruction
Disable writes
Enable interrupts
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
10.3
图 10-7:
修改闪存程序存储器
在修改某个程序存储器行中的已有数据,并且该行中的
部分数据必须保留时,必须先读取数据并将数据保存到
RAM 镜像中。程序存储器使用以下步骤进行修改:
1.
2.
3.
4.
5.
6.
7.
闪存程序存储器修改操作流
程图
Start
开始修改操作
Modify Operation
装入要修改的行的起始地址。
将行中的已有数据读取到 RAM 镜像中。
修改 RAM 镜像,使之包含要写入程序存储器的
新数据。
装入要重新写入的行的起始地址。
擦除程序存储器行。
将数据从 RAM 镜像装入写锁存器中。
启动编程操作。
Read读操作
Operation
(Figure
x.x)
图
10-2
图 10-2
An image
of the entire row read
读取的整个行的映像
must
be stored
in RAM
必须保存在
RAM
中
修改映像
Modify
Image
The words
to be modified are
要修改的字必须在
changed
in the
RAM image
RAM
中进行更改
擦除操作
Erase
Operation
(Figure
x.x)
图 10-4
图
10-4
Write写操作
Operation
使用RAM
RAMimage
映像
use
(Figure
x.x)
图 10-5
图
10-5
End
修改操作结束
Modify Operation
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 93 页
PIC12(L)F1501
10.4
用户 ID、器件 ID 和配置字访问
当 PMCON1 寄存器中的 CFGS = 1 时,用户可以访问
用户 ID、器件 ID/ 版本 ID 和配置字,而不是访问程序
存储器。这是在 PC<15> = 1 时指向的区域,但并不是
所有地址都可以访问。对于读操作和写操作,可能存在
不同的访问权限。请参见表 10-2。
对 表 10-2 中 所 列 参 数 之 外 的 地 址 启 动 读 访 问 时,
PMDATH:PMDATL 寄存器对会被清零,读回 0。
表 10-2:
用户 ID、器件 ID 和配置字访问 (CFGS = 1)
地址
功能
8000h-8003h
8006h
8007h-8008h
用户 ID
器件 ID/ 版本 ID
配置字 1 和 2
例 10-4:
读访问
写访问
是
是
是
是
否
否
配置字和器件 ID 访问
* This code block will read 1 word of program memory at the memory address:
*
PROG_ADDR_LO (must be 00h-08h) data will be returned in the variables;
*
PROG_DATA_HI, PROG_DATA_LO
BANKSEL
MOVLW
MOVWF
CLRF
PMADRL
PROG_ADDR_LO
PMADRL
PMADRH
; Select correct Bank
;
; Store LSB of address
; Clear MSB of address
BSF
BCF
BSF
NOP
NOP
BSF
PMCON1,CFGS
INTCON,GIE
PMCON1,RD
INTCON,GIE
;
;
;
;
;
;
Select Configuration Space
Disable interrupts
Initiate read
Executed (See Figure 10-2)
Ignored (See Figure 10-2)
Restore interrupts
MOVF
MOVWF
MOVF
MOVWF
PMDATL,W
PROG_DATA_LO
PMDATH,W
PROG_DATA_HI
;
;
;
;
Get LSB of word
Store in user location
Get MSB of word
Store in user location
DS41615A_CN 第 94 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
10.5
写校验
校验程序存储器写入数据是否与预期值一致是一种良好
的编程做法。由于程序存储器以整页形式存储,所以所
存储的程序存储器内容将在最后一次写操作完成之后与
RAM 中存储的预期数据进行比较。
图 10-8:
闪存程序存储器校验操作流
程图
Start
开始校验操作
Verify Operation
This 该程序假设写入的最后一行
routine assumes that the last row
of data
written was from
image
数据来自保存在
RAMan
中的
saved某个映像。
in RAM. This
image will be used
该映像将用于校
to verify
the data currently stored in
验当前存储在闪存程序存储
Flash器中的数据。
Program Memory.
Read
Operation
读操作
(Figure
x.x)
图 10-2
图 10-2
否
No
PMDAT =
RAM
RAM image
映像?
?
Yes
是
否No
Fail
校验操作失败
Verify Operation
Last
最后
Word
?
一个字?
Yes
是
End
校验操作结束
Verify Operation
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 95 页
PIC12(L)F1501
10.6
闪存程序存储器控制寄存器
寄存器 10-1:
R/W-x/u
PMDATL:程序存储器数据低字节寄存器
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
PMDAT<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
PMDAT<7:0>:程序存储器最低有效位的读 / 写值
寄存器 10-2:
PMDATH:程序存储器数据高字节寄存器
U-0
U-0
—
—
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
PMDAT<13:8>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
PMDAT<13:8>:程序存储器最高有效位的读 / 写值
寄存器 10-3:
R/W-0/0
PMADRL:程序存储器地址低字节寄存器
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
PMADR<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
PMADR<7:0>:指定程序存储器地址的最低有效位
寄存器 10-4:
U-1
PMADRH:程序存储器地址高字节寄存器
R/W-0/0
R/W-0/0
—
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
PMADR<14:8>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现:读为 1
bit 6-0
PMADR<14:8>:指定程序存储器地址的最高有效位
DS41615A_CN 第 96 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 10-5:
U-1
(1)
—
PMCON1:程序存储器控制寄存器 1
R/W-0/0
R/W-0/0
R/W/HC-0/0
R/W/HC-x/q(2)
R/W-0/0
R/S/HC-0/0
R/S/HC-0/0
CFGS
LWLO
FREE
WRERR
WREN
WR
RD
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
S = 只可置 1 位
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
HC = 硬件清零位
bit 7
未实现:读为 1
bit 6
CFGS:配置选择位
1 = 访问配置、用户 ID 和器件 ID 寄存器
0 = 访问闪存程序存储器
bit 5
LWLO:仅装入写锁存器位 (3)
1 = 在下一条 WR 命令时仅装入 / 更新所寻址的程序存储器写锁存器
0 = 在下一条 WR 命令时装入 / 更新所寻址的程序存储器写锁存器,并启动对于所有程序存储器写锁存器的写操作
bit 4
FREE:程序闪存擦除使能位
1 = 在下一条 WR 命令时执行擦除操作 (完成后由硬件清零)
0 = 在下一条 WR 命令时执行写操作
bit 3
WRERR:编程 / 擦除错误标志位
1 = 条件指示试图 / 终止执行不合法的编程或擦除序列 (试图将 WR 位置 1 (写入 1)时自动将该位置 1)
0 = 编程或擦除操作正常完成
bit 2
WREN:编程 / 擦除使能位
1 = 允许编程 / 擦除周期
0 = 禁止对程序闪存的编程 / 擦除操作
bit 1
WR:写控制位
1 = 启动程序闪存的编程或擦除操作。
操作是自定时的,一旦操作完成,该位即由硬件清零。
用软件只能将 WR 位置 1 (不能清零)。
0 = 对闪存的编程 / 擦除操作已完成并且变为无效
bit 0
RD:读控制位
1 = 启动程序闪存的读操作。读操作需要一个周期。 RD 由硬件清零。用软件只能将 RD 位置 1 (不能清零)。
0 = 不启动程序闪存的读操作
注
1: 未实现位,读为 1。
2: 在程序存储器写操作或擦除操作启动 (WR = 1)时,硬件会自动将 WRERR 位置 1。
3: 在程序存储器擦除操作期间 (FREE = 1), LWLO 位会被忽略。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 97 页
PIC12(L)F1501
寄存器 10-6:
PMCON2: 程序存储器控制寄存器 2
W-0/0
W-0/0
W-0/0
W-0/0
W-0/0
W-0/0
W-0/0
W-0/0
程序存储器控制寄存器 2
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
S = 只可置 1 位
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
闪存解锁模式位
要对写操作进行解锁,必须先写入 55h,接着写入 AAh,然后再将 PMCON1 寄存器的 WR 位置 1。 写
入该寄存器的值用于对写操作进行解锁。 对于这些写操作,存在一些特定的时序要求。
表 10-3:
名称
与闪存程序存储器相关的寄存器汇总
Bit 7
Bit 6
Bit 5
—
CFGS
LWLO
PMCON1
PMCON2
图注:
FREE
WRERR
WREN
WR
RD
GIE
PEIE
97
96
96
96
PMDATH<5:0>
TMR0IE
INTE
寄存器
所在页
98
PMDATL<7:0>
—
IOCIE
96
TMR0IF
INTF
IOCIF
66
— = 未实现位,读为 0。闪存程序存储器模块不使用阴影单元。
表 10-4:
CONFIG2
Bit 0
PMADRH<6:0>
—
PMDATH
CONFIG1
Bit 1
PMADRL<7:0>
PMDATL
名称
Bit 2
—
PMADRH
INTCON
Bit 3
程序存储器控制寄存器 2
PMADRL
图注:
Bit 4
与闪存程序存储器相关的配置字汇总
Bit
Bit -/7
Bit -/6
Bit 13/5
Bit 12/4
Bit 11/3
13:8
—
—
—
—
CLKOUTEN
7:0
CP
MCLRE
PWRTE
13:8
—
—
LVP
—
LPBOR
BORV
7:0
—
—
—
—
—
—
WDTE<1:0>
Bit 10/2
Bit 9/1
Bit 8/0
BOREN<1:0>
—
—
FOSC<1:0>
STVREN
WRT<1:0>
—
寄存器
所在页
40
41
— = 未实现位,读为 0。闪存程序存储器不使用阴影单元。
DS41615A_CN 第 98 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
11.0
I/O 端口
图 11-1:
通用 I/O 端口的工作原理
每个端口都有三个标准工作寄存器。这些寄存器是:
• TRISx 寄存器 (数据方向)
• PORTx 寄存器 (读取器件引脚的电平)
• LATx 寄存器 (输出锁存器)
读 LATx
D
一些端口可能还具有以下一个或多个额外的寄存器。这
些寄存器是:
写 LATx
写 PORTx
• ANSELx (模拟选择)
• WPUx (弱上拉)
TRISx
Q
CK
VDD
数据寄存器
通常,当使能某个端口引脚上的外设时,该引脚将不能
用作通用输出。但仍然可以对该引脚进行读操作。
数据总线
I/O 引脚
读 PORTx
每款器件可用的端口
器件
PIC12(L)F1501
至外设
ANSELx
PORTA
表 11-1:
VSS
•
数据锁存器 (LATx 寄存器)对 I/O 引脚驱动的值进行
读 - 修改 - 写操作时非常有用。
对 LATx 寄存器的写操作与写入相应 PORTx 寄存器的
效果相同。读取 LATx 寄存器时,将会读取 I/O 端口锁
存器中保存的值,而读取 PORTx 寄存器时,将会读取
实际的 I/O 引脚值。
支持模拟输入的端口具有关联的 ANSELx 寄存器。当某
个 ANSEL 位置 1 时,与该位关联的数字输入缓冲器会
被禁止。禁止输入缓冲器可以防止该引脚上介于逻辑高
电平和低电平之间的模拟信号电平在逻辑输入电路上产
生过大的电流。图 11-1 给出了通用 I/O 端口的简化模
型,没有给出与其他外设的接口。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 99 页
PIC12(L)F1501
11.1
这些位对于任意 TRIS 寄存器的值没有任何影响。PORT
和 TRIS 改写会被送到正确的引脚。未选择的引脚不会
受影响。
备用引脚功能
备用引脚功能控制(APFCON)寄存器用于将特定的外
设输入和输出功能配置到不同的引脚上。APFCON寄存
器如寄存器 11-1 所示。对于本器件系列,以下功能可以
配置到不同的引脚上。
•
•
•
•
•
SDO
SS
T1G
CLC1
NCO1
寄存器 11-1:
APFCON:备用引脚功能控制寄存器
R/W-0/0
R/W-0/0
U-0
U-0
R/W-0/0
U-0
R/W-0/0
R/W-0/0
CWG1BSEL
CWG1ASEL
—
—
T1GSEL
—
CLC1SEL
NCO1SEL
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
CWG1BSEL:引脚选择位
1 = RA4 上具有 CWG1B 功能
0 = RA0 上具有 CWG1B 功能
bit 6
CWG1ASEL:引脚选择位
1 = RA5 上具有 CWG1A 功能
0 = RA2 上具有 CWG1A 功能
bit 5-4
未实现:读为 0
bit 3
T1GSEL:引脚选择位
1 = RA3 上具有 T1G 功能
0 = RA4 上具有 T1G 功能
bit 2
未实现:读为 0
bit 1
CLC1SEL:引脚选择位
1 = RA4 上具有 CLC1 功能
0 = RA2 上具有 CLC1 功能
bit 0
NCO1SEL:引脚选择位
1 = RA5 上具有 NCO1 功能
0 = RA1 上具有 NCO1 功能
DS41615A_CN 第 100 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
11.2
PORTA 寄存器
11.2.2
每个 PORTA 引脚都与其他功能复用。表 11-2 列出了引
脚及其复用功能和输出优先级。
PORTA 是一个 6 位宽的双向端口。对应的数据方向寄存
器是 TRISA(寄存器 11-3)。将 TRISA 某位置 1(= 1)
时,会将 PORTA 的相应引脚设为输入 (即,禁止输出
驱动器)。将 TRISA 某位清零 (= 0)时,会将 PORTA
的相应引脚设为输出 (即,使能输出驱动器并将输出锁
存器中的内容输出到选定的引脚)。 RA3 是个例外,它
仅可作为输入引脚,其 TRIS 位总是读为 1。例 11-1 显
示了如何初始化 I/O 端口。
当使能多个输出时,实际引脚控制权将属于优先级最高
的外设。
优先级列表中未列出模拟输入功能,例如 ADC 和比较器
输入。这些输入在使用 ANSELx 寄存器将 I/O 引脚设置
为模拟模式时有效。当引脚处于模拟模式时,数字输出
功能可以按照下面的表 11-2 中列出的优先级控制引脚。
读 PORTA 寄存器 (寄存器 11-2)将读出相应引脚的状
态,而对其进行写操作则是将数据写入端口锁存器。所
有写操作都是读 - 修改 - 写操作。因此,对端口的写操
作意味着总是先读端口引脚电平状态,然后修改这个
值,最后再写入该端口的数据锁存器 (LATA)。
表 11-2:
TRISA 寄存器(寄存器 11-3)用于控制 PORTA 引脚输
出驱动器,即使在引脚被用作模拟输入时也是如此。当
引脚用于模拟输入时,用户应确保 TRISA 寄存器中的各
位保持置 1。配置为模拟输入的 I/O 引脚总是读为 0。
11.2.1
ANSELA 位的状态不会影响数字输出功能。 TRIS 清零
且 ANSEL 置 1 的引脚将仍作为数字输出工作,但输入
模式将变为模拟。当在受影响的端口上执行读 - 修改 写指令时,得到的结果可能与预期不符。
例 11-1:
;
;
;
;
RA0
ICSPDAT
DACOUT1
CWG1B(2)
PWM2
RA0
RA1
NCO1(2)
RA1
RA2
DACOUT2
CWG1A(2)
CWG1FLT
CLC1(2)
C1OUT
PWM1
RA2
RA3
无
CLKOUT
CWG1B(3)
CLC1(3)
PWM3
RA4
RA5
初始化 PORTA
This code example illustrates
initializing the PORTA register. The
other ports are initialized in the same
manner.
BANKSEL
CLRF
BANKSEL
CLRF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
功能优先级 (1)
RA4
在发生复位之后, ANSELA 位默认设为模
拟模式。要将任意引脚用作数字通用输入
或外设输入,必须通过用户软件将相应的
ANSEL 位初始化为 0。
PORTA
PORTA
LATA
LATA
ANSELA
ANSELA
TRISA
B'00111000'
TRISA
注
;
;Init PORTA
;Data Latch
;
;
;digital I/O
;
;Set RA<5:3> as inputs
;and set RA<2:0> as
;outputs
 2012 Microchip Technology Inc.
初稿
PORTA 输出优先级
引脚名称
ANSELA 寄存器
ANSELA 寄存器(寄存器 11-5)用于将 I/O 引脚的输入
模式配置为模拟。将相应的 ANSELA 位设置为高电平将
使引脚上的所有数字读操作都读为 0,并允许引脚上的
模拟功能正确工作。
注:
PORTA 功能和输出优先级
CWG1A(3)
CLC2
NCO1(3)
PWM4
RA5
1: 优先级按从最高到最低排列。
2: 默认引脚 (见 APFCON 寄存器)。
3: 备用引脚 (见 APFCON 寄存器)。
DS41615A_CN 第 101 页
PIC12(L)F1501
寄存器 11-2:
PORTA:PORTA 寄存器
U-0
U-0
R/W-x/x
R/W-x/x
R-x/x
R/W-x/x
R/W-x/x
R/W-x/x
—
—
RA5
RA4
RA3
RA2
RA1
RA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
RA<5:0>:PORTA I/O 值位 (1)
1 = 端口引脚电平 > VIH
0 = 端口引脚电平 < VIL
1: 写入 PORTA 时,实际上会写入相应的 LATA 寄存器。读取 PORTA 寄存器时,将返回实际的 I/O 引脚值。
注
寄存器 11-3:
TRISA:PORTA 三态寄存器
U-0
U-0
R/W-1/1
R/W-1/1
U-1
R/W-1/1
R/W-1/1
R/W-1/1
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-4
TRISA<5:4>:PORTA 三态控制位
1 = PORTA 引脚被配置为输入 (三态)
0 = PORTA 引脚被配置为输出
bit 3
未实现:读为 1
bit 2-0
TRISA<2:0>:PORTA 三态控制位
1 = PORTA 引脚被配置为输入 (三态)
0 = PORTA 引脚被配置为输出
注
1: 未实现,读为 1。
DS41615A_CN 第 102 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 11-4:
LATA:PORTA 数据锁存器寄存器
U-0
U-0
R/W-x/u
R/W-x/u
U-0
R/W-x/u
R/W-x/u
R/W-x/u
—
—
LATA5
LATA4
—
LATA2
LATA1
LATA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-4
LATA<5:4>:RA<5:4> 输出锁存值位 (1)
bit 3
未实现:读为 0
bit 2-0
LATA<2:0>:RA<2:0> 输出锁存值位 (1)
1: 写入 PORTA 时,实际上会写入相应的 LATA 寄存器。读取 PORTA 寄存器时,将返回实际的 I/O 引脚值。
注
寄存器 11-5:
ANSELA: PORTA 模拟选择寄存器
U-0
U-0
U-0
R/W-1/1
U-0
R/W-1/1
R/W-1/1
R/W-1/1
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-5
未实现: 读为 0
bit 4
ANSA4:将 RA4 引脚选择为模拟或数字功能
1 = 模拟输入。引脚被配置为模拟输入 (1)。 数字输入缓冲器被禁止。
0 = 数字 I/O。引脚被配置为端口或数字特殊功能。
bit 3
未实现: 读为 0
bit 2-0
ANSA<2:0>:将 RA<2:0> 引脚选择为模拟或数字功能
1 = 模拟输入。引脚被配置为模拟输入 (1)。 数字输入缓冲器被禁止。
0 = 数字 I/O。引脚被配置为端口或数字特殊功能。
注
1: 当将某个引脚设置为模拟输入时,必须将相应的 TRIS 位设置为输入模式,以允许从外部控制引脚电压。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 103 页
PIC12(L)F1501
寄存器 11-6:
WPUA:弱上拉 PORTA 寄存器
U-0
U-0
R/W-1/1
R/W-1/1
R/W-1/1
R/W-1/1
R/W-1/1
R/W-1/1
—
—
WPUA5
WPUA4
WPUA3
WPUA2
WPUA1
WPUA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
WPUA<5:0>:弱上拉寄存器位 (3)
1 = 使能上拉
0 = 禁止上拉
1: 必须清零 OPTION_REG 寄存器的全局 WPUEN 位,从而使能各个上拉功能。
2: 如果引脚被配置为输出,则自动禁止弱上拉器件。
3: 对于 WPUA3 位,当 MCLRE = 1 时,会在内部使能弱上拉,但未在此处指出。
注
表 11-3:
与 PORTA 相关的寄存器汇总
名称
ANSELA
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
ANSA4
—
ANSA2
ANSA1
ANSA0
103
—
CLC1SEL
NCO1SEL
100
LATA2
LATA1
LATA0
Bit 7
Bit 6
Bit 5
Bit 4
—
—
—
—
—
T1GSEL
—
—
LATA5
LATA4
—
WPUEN
INTEDG
TMR0CS
TMR0SE
PSA
PORTA
—
—
RA5
RA4
RA3
RA2
RA1
RA0
102
TRISA
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
WPUA
—
—
WPUA5
WPUA4
WPUA3
WPUA2
WPUA1
WPUA0
104
Bit 10/2
Bit 9/1
Bit 8/0
寄存器
所在页
CWG1BSEL CWG1ASEL
APFCON
LATA
OPTION_REG
PS<2:0>
103
143
图注:
x = 未知, u = 不变, – = 未实现位,读为 0。 PORTA 不使用阴影单元。
注
1: 未实现,读为 1。
表 11-4:
名称
CONFIG1
图注:
与 PORTA 相关的配置字汇总
Bit
Bit -/7
Bit -/6
Bit 13/5
Bit 12/4
Bit 11/3
—
CLKOUTEN
13:8
—
—
—
7:0
CP
MCLRE
PWRTE
WDTE<1:0>
BOREN<1:0>
—
—
FOSC<1:0>
40
— = 未实现位,读为 0。 PORTA 不使用阴影单元。
DS41615A_CN 第 104 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
12.0
12.3
电平变化中断
分别位于IOCAF和IOCBF寄存器中的IOCAFx和IOCBFx
位是对应于关联端口的电平变化中断引脚的状态标志。
如果在正确使能的引脚上检测到期望的边沿,则对应于
该引脚的状态标志会置 1,并且如果 IOCIE 位置 1,则
还会产生中断。INTCON 寄存器的 IOCIF 位会反映所有
IOCAFx 和 IOCBFx 位的状态。
PORTA 和 PORTB 引脚可以配置为作为电平变化中断
(IOC)引脚工作。中断可以通过检测具有上升沿或下降
沿的信号而产生。任意一个端口引脚或端口引脚组合都
可以配置为产生中断。电平变化中断模块具有以下特性:
•
•
•
•
允许电平变化中断 (主开关)
独立的引脚配置
上升沿和下降沿检测
独立的引脚中断标志
12.4
清零中断标志
各个状态标志 (IOCAFx 和 IOCBFx 位)可以通过将其
复位为零的方式清零。如果在该清零操作期间检测到另
一个边沿,则无论实际写入的值如何,关联的状态标志
都会在序列结束时置 1。
图 12-1 给出了 IOC 模块的框图。
12.1
中断标志
使能模块
要允许各个端口引脚产生中断, INTCON 寄存器的
IOCIE 位必须置 1。如果 IOCIE 位被禁止,在引脚上仍
然会发生边沿检测,但不会产生中断。
为了确保在清零标志时不会丢失任何已检测的边沿,应
当仅执行可屏蔽已知更改位的与操作。以下序列是一个
说明应执行何种操作的示例。
12.2
例 12-1:
独立的引脚配置
对于每个端口引脚,都提供了上升沿检测器和下降沿检
测器。要允许引脚检测上升沿,需要将 IOCxP 寄存器的
相关位置 1。要允许引脚检测下降沿,需要将 IOCxN 寄
存器的相关位置 1。
MOVLW
XORWF
ANDWF
通过同时将 IOCxP 和 IOCxN 寄存器的相关位置 1,一
个引脚可以配置为同时检测上升沿和下降沿。
12.5
清零中断标志
(以 PORTA 为例)
0xff
IOCAF, W
IOCAF, F
休眠模式下的操作
如果 IOCIE 位置 1,电平变化中断的中断序列会将器件
从休眠模式唤醒。
如果在处于休眠模式时检测到边沿,则在退出休眠模式
执行第一条指令之前,会先更新 IOCxF 寄存器。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 105 页
PIC12(L)F1501
图 12-1:
电平变化中断框图 (以 PORTA 为例)
IOCANx
D
Q4Q1
Q
CK
Edge
边沿检测
Detect
R
RAx
IOCAPx
D
数据总线
Data
Bus = =
或 11
D
00 or
Q
Write
写 IOCAFx
CK
S
Q
To至数据总线
Data Bus
IOCAFx
CK
IOCIE
R
Q2
来自所有其他
From
all other
IOCAFx
的
IOCAFx
individual
pin各个引脚检测器
detectors
Q1
Q2
Q3
Q4
Q4Q1
DS41615A_CN 第 106 页
Q1
Q1
Q2
Q2
Q3
Q4
至 CPU
内核
IOC
interrupt
的
IOC 中断
to CPU
core
Q3
Q4
Q4Q1
Q4
Q4Q1
初稿
Q4Q1
© 2012 Microchip Technology Inc.
PIC12(L)F1501
12.6
电平变化中断寄存器
寄存器 12-1:
IOCAP: PORTA 正边沿电平变化中断寄存器
U-0
U-0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
—
—
IOCAP5
IOCAP4
IOCAP3
IOCAP2
IOCAP1
IOCAP0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现: 读为 0
bit 5-0
IOCAP<5:0>: PORTA 正边沿电平变化中断允许位
1 = 允许引脚上的正边沿电平变化中断。 IOCAFx 位和 IOCIF 标志将在检测到边沿时置 1。
0 = 禁止关联引脚的电平变化中断。
寄存器 12-2:
IOCAN: PORTA 负边沿电平变化中断寄存器
U-0
U-0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
—
—
IOCAN5
IOCAN4
IOCAN3
IOCAN2
IOCAN1
IOCAN0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
未实现: 读为 0
bit 5-0
IOCAN<5:0>: PORTA 负边沿电平变化中断允许位
1 = 允许引脚上的负边沿电平变化中断。 IOCAFx 位和 IOCIF 标志将在检测到边沿时置 1。
0 = 禁止关联引脚的电平变化中断。
寄存器 12-3:
IOCAF: PORTA 电平变化中断标志寄存器
U-0
U-0
R/W/HS-0/0
R/W/HS-0/0
R/W/HS-0/0
R/W/HS-0/0
R/W/HS-0/0
R/W/HS-0/0
—
—
IOCAF5
IOCAF4
IOCAF3
IOCAF2
IOCAF1
IOCAF0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
HS = 硬件置 1 位
bit 7-6
未实现: 读为 0
bit 5-0
IOCAF<5:0>: PORTA 电平变化中断标志位
1 = 在关联引脚上检测到允许的电平变化。
在 IOCAPx = 1 且检测到 RAx 上有上升沿时,或者在 IOCANx = 1 且检测到 RAx 上有下降沿时置 1。
0 = 未检测到电平变化,或者用户清除了检测到的电平变化。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 107 页
PIC12(L)F1501
表 12-1:
与电平变化中断相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
ANSELA
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
103
INTCON
名称
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
IOCAF
—
—
IOCAF5
IOCAF4
IOCAF3
IOCAF2
IOCAF1
IOCAF0
107
IOCAN
—
—
IOCAN5
IOCAN4
IOCAN3
IOCAN2
IOCAN1
IOCAN0
107
IOCAP
—
—
IOCAP5
IOCAP4
IOCAP3
IOCAP2
IOCAP1
IOCAP0
107
TRISA
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
图注:
— = 未实现位,读为 0。电平变化中断不使用阴影单元。
注
1: 未实现,读为 1。
DS41615A_CN 第 108 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
13.0
FVRCON 寄存器的 ADFVR<1:0> 位用于使能和配置送
到 ADC 模块的参考电压的增益放大器设置。更多信息,
请参见第 15.0 节 “模数转换器 (ADC)模块”。
固定参考电压 (FVR)
固定参考电压(FVR)是独立于 VDD 的稳定参考电压,
可选的输出电压有 1.024V、2.048V 或 4.096V。FVR 的
输出可以配置为向以下对象提供参考电压:
FVRCON 寄存器的 CDAFVR<1:0> 位用于使能和配置
送到比较器模块的参考电压的增益放大器设置。更多信
息,请参见第 17.0 节 “比较器模块”。
• ADC 输入通道
• 比较器的正输入
• 比较器的负输入
13.2
FVR 可以通过将 FVRCON 寄存器的 FVREN 位置 1 来
使能。
13.1
FVR 稳定周期
当固定参考电压模块使能时,参考电压和放大器电路需
要一段时间才能达到稳定。在电路稳定下来、可供使用
时,FVRCON 寄存器的 FVRRDY 位将会置 1。关于最小
延时要求,请参见第 27.0 节 “电气规范”。
独立的增益放大器
送到 ADC 和比较器的 FVR 输出会经过一个可编程增益
放大器。每个放大器都可以设定为增益为 1x、2x 或 4x,
从而产生三种可能的电压。
图 13-1:
参考电压框图
ADFVR<1:0>
CDAFVR<1:0>
2
X1
X2
X4
FVR 缓冲区 1
(至 ADC 模块)
X1
X2
X4
FVR 缓冲区 2
(至比较器)
2
+
FVREN
FVRRDY
_
需要固定参考电压
的任意外设
(见表 13-1)
表 13-1:
需要固定参考电压 (FVR)的外设
外设
HFINTOSC
BOR
LDO
条件
说明
FOSC<1:0> = 00 且
IRCF<3:0> = 000x
INTOSC 有效且器件不处于休眠状态。
BOREN<1:0> = 11
BOR 总是使能。
BOREN<1:0> = 10 且 BORFS = 1
BOR 在休眠模式下被禁止,使能 BOR 快速启动。
BOREN<1:0> = 01 且 BORFS = 1
BOR 受软件控制,使能 BOR 快速启动。
当 VREGPM = 1 且不处于休眠模式
时,所有 PIC12F1501 器件
处于休眠模式时,器件会运行低功耗稳压器。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 109 页
PIC12(L)F1501
13.3
FVR 控制寄存器
寄存器 13-1:
R/W-0/0
FVREN
FVRCON:固定参考电压控制寄存器
R-q/q
FVRRDY
R/W-0/0
R/W-0/0
TSEN
TSRNG
(1)
R/W-0/0
R/W-0/0
R/W-0/0
CDAFVR<1:0>
R/W-0/0
ADFVR<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7
FVREN:固定参考电压使能位
1 = 使能固定参考电压
0 = 禁止固定参考电压
bit 6
FVRRDY:固定参考电压就绪标志位 (1)
1 = 固定参考电压输出就绪备用
0 = 固定参考电压输出未就绪或未使能
bit 5
TSEN:温度指示器使能位 (3)
1 = 使能温度指示器
0 = 禁止温度指示器
bit 4
TSRNG:温度指示器范围选择位 (3)
1 = VOUT = VDD - 4VT (高电压范围)
0 = VOUT = VDD - 2VT (低电压范围)
bit 3-2
CDAFVR<1:0>:比较器固定参考电压选择位
11 = 比较器固定参考电压外设输出为 4x (4.096V) (2)
10 = 比较器固定参考电压外设输出为 2x (2.048V) (2)
01 = 比较器固定参考电压外设输出为 1x (1.024V)
00 = 比较器固定参考电压外设输出关闭
bit 1-0
ADFVR<1:0>:ADC 固定参考电压选择位
11 = ADC 固定参考电压外设输出为 4x (4.096V) (2)
10 = ADC 固定参考电压外设输出为 2x (2.048V) (2)
01 = ADC 固定参考电压外设输出为 1x (1.024V)
00 = ADC 固定参考电压外设输出关闭
1: 对于 PIC12F1501 器件, FVRRDY 总是为 1。
2: 固定参考电压输出不能超出 VDD。
3: 更多信息,请参见第 14.0 节 “温度指示器模块”。
注
表 13-2:
名称
FVRCON
图注:
与固定参考电压相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
FVREN
FVRRDY
TSEN
TSRNG
Bit 3
Bit 2
CDAFVR>1:0>
Bit 1
Bit 0
ADFVR<1:0>
寄存器
所在页
110
固定参考电压模块不使用阴影单元。
DS41615A_CN 第 110 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
14.0
图 14-1:
温度指示器模块
温度指示器电路图
本器件系列配备了用于测量硅裸片工作温度的温度电
路。电路的工作温度范围介于 -40°C 和 +85°C 之间。其
输出是与器件温度成正比的电压。温度指示器的输出在
内部与器件 ADC 连接。
VDD
TSEN
该电路可以用作温度阈值检测器,也可以用作更精确的
温度指示器,这取决于所执行的校准级别。执行单点校
准时,电路可以指示邻近该点的温度。执行双点校准
时,电路可以更精确地检测整个温度范围。关于校准过
程的更多详细信息,请参见应用笔记 AN1333 《内部温
度指示器的使用与校准》(DS01333A_CN)。
14.1
TSRNG
VOUT
电路工作原理
至 ADC
图 14-1 给出了温度电路的简化框图。与温度成正比的电
压输出通过测量多个硅结的正向压降而得到。
公式 14-1 描述了温度指示器的输出特性。
公式 14-1:
VOUT 范围
14.2
高电压范围:VOUT = VDD - 4VT
最小工作电压 VDD
当温度电路工作于低电压范围时,器件可以在规范范围
内的任意工作电压下工作。
低电压范围:VOUT = VDD - 2VT
当温度电路工作于高电压范围时,器件工作电压 VDD 必
须足够高,以确保正确地偏置温度电路。
温度检测电路集成了固定参考电压 (FVR)模块。更多
信息,请参见第 13.0 节 “固定参考电压 (FVR)”。
表 14-1 给出了建议的最小 VDD 与范围设置。
可以通过将 FVRCON 寄存器的 TSEN 位置 1 来使能该
电路。在禁止时,电路不会消耗任何电流。
表 14-1:
电路可以工作于高电压范围或低电压范围。高电压范围
的选择方式是将 FVRCON 寄存器的 TSRNG 位置 1,它
可提供较宽的输出电压。这可以在整个温度范围中提供
更高的分辨率,但各器件之间的一致性较低。该电压范
围 需 要 较 高 的 偏 置 电 压 才 能 工 作,所 以 需 要 较 高 的
VDD。
最小 VDD, TSRNG = 1
最小 VDD, TSRNG = 0
3.6V
1.8V
14.3
温度输出
电路的输出使用内部模数转换器测量。保留一路通道用
于温度电路输出。详细信息,请参见第 15.0 节“模数转
换器 (ADC)模块”。
低电压范围的选择方式是将 FVRCON 寄存器的 TSRNG
位清零。低电压范围产生的压降较小,所以只需较低的
偏置电压就可以让电路工作。低电压范围旨在用于进行
低电压操作。
 2012 Microchip Technology Inc.
建议的 VDD 与范围
14.4
ADC 采集时间
为了确保精确的温度测量,用户必须在 ADC 输入多路开
关连接到温度指示器输出之后至少等待 200 s,然后再
执行转换。此外,用户必须在温度指示器输出的连续两
次转换之间等待 200 s。
初稿
DS41615A_CN 第 111 页
PIC12(L)F1501
表 14-2:
名称
FVRCON
图注:
与温度指示器相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
FVREN
FVRRDY
TSEN
TSRNG
Bit 3
Bit 2
CDAFVR<1:0>
Bit 1
Bit 0
ADFVR<1:0>
寄存器
所在页
110
温度指示器模块不使用阴影单元。
DS41615A_CN 第 112 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
15.0
ADC 可在转换完成时产生中断。该中断可用于将器件从
休眠状态唤醒。
模数转换器 (ADC)模块
模数转换器 (ADC)可将模拟输入信号转换为信号的
10 位二进制表示。该模块使用模拟输入,这些输入通过
多路开关连接到同一个采样保持电路。采样保持电路的
输出与转换器的输入相连接。转换器通过逐次逼近法产
生 10 位二进制结果,并将转换结果存储在 ADC 结果寄
存器(ADRESH:ADRESL 寄存器对)中。图 15-1 给出
了 ADC 的框图。
可通过软件方式选择内部产生的电压或外部提供的电压
作为 ADC 参考电压。
图 15-1:
ADC 框图
VDD
ADPREF = 00
VREF+
AN0
00000
VREF+/AN1
00001
AN2
00010
AN3
保留
00011
00100
ADPREF = 10
VREF- = VSS
VREF+
ADC
10
GO/DONE
保留
11100
温度指示器
11101
DAC
FVR 缓冲区 1
11110
ADFM
ADON
11111
VSS
0 = 左对齐
1 = 右对齐
16
ADRESH
ADRESL
CHS<4:0>
注
1: 当 ADON = 0 时,所有多路开关输入都会被断开。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 113 页
PIC12(L)F1501
15.1
ADC 配置
15.1.4
可通过软件方式设置 ADCON1 寄存器的 ADCS 位来选
择转换时钟源。有以下 7 种时钟频率可供选择:
配置和使用 ADC 时必须考虑以下功能:
•
•
•
•
•
•
端口配置
通道选择
ADC 参考电压选择
ADC 转换时钟源
中断控制
结果格式
15.1.1
•
•
•
•
•
•
端口配置
15.1.2
FOSC/2
FOSC/4
FOSC/8
FOSC/16
FOSC/32
FOSC/64
• FRC (专用内部振荡器)
ADC 可用于转换模拟和数字信号。转换模拟信号时,应
通过设置相关的 TRIS 和 ANSEL 位将 I/O 引脚配置为模
拟。更多信息,请参见第 11.0 节 “I/O 端口”。
注:
转换时钟
完成一个位转换所需的时间定义为 TAD。一次完整的 10
位转换需要 11.5 个 TAD 周期,如图 15-2 所示。
为正确转换,必须满足合适的 TAD 规范。更多信息,请参
见第 27.0 节 “电气规范”中的 A/D 转换要求。表 15-1 给
出了适当的 ADC 时钟选择的示例。
在任何定义为数字输入的引脚上施加模拟
电压可能导致输入缓冲器消耗的电流过
大。
注:
通道选择
除非使用 FRC,否则系统时钟频率的任何
改变都会改变 ADC 时钟频率,这会影响
ADC 结果。
有 7 个通道选择可供使用:
• AN<3:0> 引脚
• 温度指示器
• DAC
• FVR (固定参考电压)输出
关于这些通道选择的更多信息,请参见第 13.0 节 “固定
参考电压 (FVR)”和第 14.0 节 “温度指示器模块”。
ADCON0 寄存器的 CHS 位决定与采样保持电路相连接
的通道。
当改变通道时,在开始下一次转换前需要一段延时。更
多信息,请参见第 15.2 节 “ADC 工作原理”。
15.1.3
ADC 参考电压
ADCON1 寄存器的 ADPREF 位用于控制正参考电压。
正参考电压可以是:
• VREF+ 引脚
• VDD
关于固定参考电压的更多详细信息,请参见第 13.0 节
“固定参考电压 (FVR)”。
DS41615A_CN 第 114 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
表 15-1:
ADC 时钟周期 (TAD)与器件工作频率关系表
ADC 时钟周期 (TAD)
器件频率 (FOSC)
ADC
时钟源
ADCS<2:0>
20 MHz
16 MHz
8 MHz
4 MHz
FOSC/2
000
100 ns(2)
125 ns(2)
250 ns(2)
500 ns(2)
2.0 s
FOSC/4
100
200
ns(2)
ns(2)
ns(2)
1.0 s
4.0 s
FOSC/8
001
400 ns(2)
0.5 s(2)
1.0 s
2.0 s
8.0 s(3)
FOSC/16
101
800 ns
1.0 s
2.0 s
4.0 s
16.0 s(3)
FOSC/32
010
1.6 s
250
2.0 s
FOSC/64
110
3.2 s
4.0 s
FRC
x11
1.0-6.0 s(1,4)
1.0-6.0 s(1,4)
图注:
注
1:
2:
3:
4:
500
4.0 s
8.0
s(3)
1.0-6.0 s(1,4)
1 MHz
8.0
s(3)
32.0 s(3)
16.0
s(3)
64.0 s(3)
1.0-6.0 s(1,4)
1.0-6.0 s(1,4)
阴影单元表示超出了建议范围。
对于 VDD, FRC 时钟源具有 1.6 s 的典型 TAD 时间。
这些值均违反了所需的最小 TAD 时间。
为了加快转换速度,建议选用另一个时钟源。
通过系统时钟 FOSC 来产生 ADC 时钟时,可以最大程度降低 ADC 时钟周期 (TAD)和 ADC 总转换时间。 但是,如果
要在器件处于休眠模式时执行转换,则必须使用 FRC 时钟源。
图 15-2:
模数转换 TAD 周期
TCY - TAD TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11
b4
b1
b0
b6
b7
b2
b9
b8
b3
b5
转换开始
保持电容与模拟输入引脚断开(通常为 100 ns)
将 GO 位置 1
在下一个周期:
装入 ADRESH:ADRESL,清零 GO 位,
将 ADIF 位置 1,保持电容与模拟输入通道相连。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 115 页
PIC12(L)F1501
15.1.5
15.1.6
中断
ADC 模块可在模数转换完成时产生中断。 ADC 中断标
志位是 PIR1 寄存器中的 ADIF 位。 ADC 中断允许位是
PIE1 寄存器中的 ADIE 位。 ADIF 位必须用软件清零。
注
结果格式
10 位 A/D 转换结果可以两种格式提供:左对齐或右对
齐。 ADCON1 寄存器的 ADFM 位控制输出格式。
图 15-3 给出了两种输出格式。
1: ADIF 位在每次转换完成时置 1,与是否允
许 ADC 中断无关。
2: 仅当选择了 FRC 振荡器时, ADC 才能在
休眠模式下工作。
器件工作或休眠时都可产生该中断。如果器件处于休眠
状态,该中断会唤醒器件。从休眠状态唤醒时,总是执
行紧跟 SLEEP 指令后的下一条指令。如果用户试图从休
眠状态唤醒器件并恢复主代码执行,必须禁止 INTCON
寄存器的 GIE 和 PEIE 位。如果使能了 INTCON 寄存器
的 GIE 和 PEIE 位,执行将切换到中断服务程序。
图 15-3:
10 位 A/D 转换结果格式
ADRESH
(ADFM = 0)
ADRESL
MSb
LSb
bit 7
bit 0
bit 7
bit 0
10 位 A/D 结果
未实现:读为 0
MSb
(ADFM = 1)
bit 7
LSb
bit 0
bit 0
10 位 A/D 结果
未实现:读为 0
DS41615A_CN 第 116 页
bit 7
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
15.2
15.2.1
ADC 工作原理
15.2.4
ADC 模块可以在休眠模式下工作。这需要将 ADC 时钟
源设置为 FRC 选项。当选择 FRC 时钟源时, ADC 需等
待一个额外的指令周期后才能启动转换。这使得可以执
行 SLEEP 指令,这将降低转换期间的系统噪声。如果允
许了 ADC 中断,转换完成时器件将从休眠状态唤醒。如
果禁止了 ADC 中断,尽管 ADON 位仍保持置 1,但转
换完成后 ADC 模块将关闭。
启动转换
要使能 ADC 模块,ADCON0 寄存器的 ADON 位必须设
置为 1。将 ADCON0 寄存器的 GO/DONE 位设置为 1
将启动模数转换。
注:
15.2.2
不应在启动 ADC 的同一条指令中将 GO/
DONE 位置 1。请参见第 15.2.6 节 “A/D
转换步骤”。
ADC 时钟源不是 FRC 时,尽管 ADON 位仍保持置 1,
但 SLEEP 指令会导致当前转换中止,ADC 模块被关闭。
转换完成
15.2.5
转换完成时, ADC 模块将:
自动转换触发源使用ADCON2寄存器的TRIGSEL<3:0>
位进行选择。
使用自动转换触发器不能确保正确的 ADC 时序。用户
需负责确保满足 ADC 时序要求。
终止转换
如 果必 须 在转换 完 成前 终 止 转换,可 用 软件将 GO/
DONE 位清零。会 用部分完 成的模 数转换结果更新
ADRESH 和 ADRESL 寄存器。未完成的位将用最后转
换的位替代。
注:
自动转换触发源有:
•
•
•
•
•
•
器件复位将强制所有寄存器进入复位状
态。因此, ADC 模块被关闭,任何待处理
的转换操作被终止。
© 2012 Microchip Technology Inc.
自动转换触发器
自动转换触发器允许定期进行 ADC 测量而无需软件干
预。当出现选定源的上升沿时, GO/DONE 位由硬件置
1。
• 清零 GO/DONE 位
• 将 ADIF 中断标志位置 1
• 用新的转换结果更新 ADRESH 和 ADRESL 寄存
器
15.2.3
休眠期间的 ADC 操作
初稿
TMR0
TMR1
TMR2
C1
CLC1
CLC2
DS41615A_CN 第 117 页
PIC12(L)F1501
15.2.6
A/D 转换步骤
例 15-1:
以下是用 ADC 执行模数转换的示例步骤:
1.
2.
3.
4.
5.
6.
7.
8.
;This code block configures the ADC
;for polling, Vdd and Vss references, Frc
;clock and AN0 input.
;
;Conversion start & polling for completion
; are included.
;
BANKSEL
ADCON1
;
MOVLW
B’11110000’ ;Right justify, Frc
;clock
MOVWF
ADCON1
;Vdd and Vss Vref+
BANKSEL
TRISA
;
BSF
TRISA,0
;Set RA0 to input
BANKSEL
ANSEL
;
BSF
ANSEL,0
;Set RA0 to analog
BANKSEL
ADCON0
;
MOVLW
B’00000001’ ;Select channel AN0
MOVWF
ADCON0
;Turn ADC On
CALL
SampleTime
;Acquisiton delay
BSF
ADCON0,ADGO ;Start conversion
BTFSC
ADCON0,ADGO ;Is conversion done?
GOTO
$-1
;No, test again
BANKSEL
ADRESH
;
MOVF
ADRESH,W
;Read upper 2 bits
MOVWF
RESULTHI
;store in GPR space
BANKSEL
ADRESL
;
MOVF
ADRESL,W
;Read lower 8 bits
MOVWF
RESULTLO
;Store in GPR space
配置端口:
• 禁止引脚输出驱动器 (见 TRIS 寄存器)
• 将引脚配置为模拟功能 (见 ANSEL 寄存器)
配置 ADC 模块:
• 选择 ADC 转换时钟
• 配置参考电压
• 选择 ADC 输入通道
• 开启 ADC 模块
配置 ADC 中断 (可选):
• 清零 ADC 中断标志
• 允许 ADC 中断
• 允许外设中断
• 允许全局中断 (1)
等待所需采集时间 (2)。
通过将 GO/DONE 位置 1 启动转换。
通过以下方式之一等待 ADC 转换完成:
• 查询 GO/DONE 位
• 等待 ADC 中断 (已允许中断)
读取 ADC 结果。
清零 ADC 中断标志 (如果已允许中断则需要此
操作)。
注
A/D 转换
1: 如果用户试图从休眠状态唤醒器件并恢复
主代码执行,必须禁止全局中断。
2: 请参见第 15.3 节 “A/D 采集要求”。
DS41615A_CN 第 118 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
15.2.7
ADC 寄存器定义
以下寄存器用于控制 ADC 的操作。
寄存器 15-1:
U-0
ADCON0: A/D 控制寄存器 0
R/W-0/0
R/W-0/0
—
R/W-0/0
R/W-0/0
R/W-0/0
CHS<4:0>
R/W-0/0
R/W-0/0
GO/DONE
ADON
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现: 读为 0
bit 6-2
CHS<4:0>:模拟通道选择位
00000 = AN0
00001 = AN1
00010 = AN2
00011 = AN3
00100 = 保留。不连接任何通道。
•
•
•
11100 = 保留。不连接任何通道。
11101 = 温度指示器 (1)
11110 = DAC (数模转换器) (2)
11111 = FVR (固定参考电压)缓冲区 1 输出 (3)
bit 1
GO/DONE:A/D 转换状态位
1 = A/D 转换正在进行。 将该位置 1 可启动 A/D 转换周期。
A/D 转换完成后,该位由硬件自动清零。
0 = A/D 转换已完成 / 未进行
bit 0
ADON: ADC 使能位
1 = 使能 ADC
0 = 禁止 ADC,不消耗工作电流
注
1: 更多信息,请参见第 14.0 节 “温度指示器模块”。
2: 更多信息,请参见第 16.0 节 “数模转换器 (DAC)模块”。
3: 更多信息,请参见第 13.0 节 “固定参考电压 (FVR)”。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 119 页
PIC12(L)F1501
寄存器 15-2:
R/W-0/0
ADCON1:A/D 控制寄存器 1
R/W-0/0
ADFM
R/W-0/0
R/W-0/0
ADCS<2:0>
U-0
U-0
—
—
R/W-0/0
R/W-0/0
ADPREF<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
ADFM:A/D 结果格式选择位
1 = 右对齐。当装入转换结果时, ADRESH 的高 6 位设置为 0。
0 = 左对齐。当装入转换结果时, ADRESL 的低 6 位设置为 0。
bit 6-4
ADCS<2:0>:A/D 转换时钟选择位
000 = FOSC/2
001 = FOSC/8
010 = FOSC/32
011= FRC (由专用 RC 振荡器提供的时钟)
100 = FOSC/4
101 = FOSC/16
110 = FOSC/64
111 = FRC (由专用 RC 振荡器提供的时钟)
bit 3-2
未实现:读为 0
bit 1-0
ADPREF<1:0>:A/D 正参考电压配置位
00 = VREF+ 连接到 VDD
01 = 保留
10 = VREF+ 连接到外部 VREF+ 引脚 (1)
11 = 保留
注
1: 当选择 VREF+ 引脚作为正参考电压源时,请注意存在最小电压规范值。详情请参见第 27.0 节 “电气规
范”。
DS41615A_CN 第 120 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 15-3:
R/W-0/0
ADCON2: A/D 控制寄存器 2
R/W-0/0
R/W-0/0
R/W-0/0
TRIGSEL<3:0>
U-0
U-0
U-0
U-0
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-4
TRIGSEL<3:0>:自动转换触发源选择位 (1)
0000 = 未选择任何自动转换触发源
0001 = 保留
0010 = 保留
0011 = TMR0 溢出 (2)
0100 = TMR1 溢出 (2)
0101 = TMR2 与 PR2 的匹配输出信号 (2)
0110 = C1OUT
0111 = 保留
1000 = CLC1
1001 = CLC2
1010 = 保留
1011 = 保留
1100 = 保留
1101 = 保留
1110 = 保留
1111 = 保留
bit 3-0
未实现: 读为 0
注
1: 这是所有触发源的上升沿敏感输入。
2: 信号还会将其相应的中断标志置 1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 121 页
PIC12(L)F1501
寄存器 15-4:
R/W-x/u
ADRESH:ADC 结果寄存器高字节 (ADRESH) ADFM = 0
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
ADRES<9:2>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
ADRES<9:2>:ADC 结果寄存器位
10 位转换结果的高 8 位
寄存器 15-5:
R/W-x/u
ADRESL: ADC 结果寄存器低字节 (ADRESL) ADFM = 0
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
—
—
—
—
—
—
ADRES<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
ADRES<1:0>:ADC 结果寄存器位
10 位转换结果的低 2 位
bit 5-0
保留: 不要使用。
DS41615A_CN 第 122 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 15-6:
ADRESH: ADC 结果寄存器高字节 (ADRESH) ADFM = 1
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
—
—
—
—
—
—
R/W-x/u
R/W-x/u
ADRES<9:8>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-2
保留:不要使用。
bit 1-0
ADRES<9:8>:ADC 结果寄存器位
10 位转换结果的高 2 位
寄存器 15-7:
R/W-x/u
ADRESL: ADC 结果寄存器低字节 (ADRESL) ADFM = 1
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
ADRES<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
ADRES<7:0>:ADC 结果寄存器位
10 位转换结果的低 8 位
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 123 页
PIC12(L)F1501
15.3
A/D 采集要求
采集时间可能随着源阻抗的降低而缩短。在选择(或改
变)模拟输入通道后,必须在启动转换前完成 A/D 采集。
可以使用公式15-1来计算最小采集时间。该公式假设误
差为 1/2 LSb (ADC 转换需要 1,024 步)。 1/2 LSb 误
差是 ADC 达到规定分辨率所能允许的最大误差。
为了使 ADC 达到规定的精度,必须使充电保持电容
(CHOLD)完全充电至输入通道的电平。模拟输入模型
如图 15-4 所示。模拟信号源阻抗 (RS)和内部采样开
关阻抗(RSS)直接影响电容 CHOLD 的充电时间。采样
开关阻抗 (RSS)随器件电压 (VDD)的变化而变化,
请参见图15-4。模拟信号源的最大阻抗推荐值为10 k。
公式 15-1:
采集时间示例
假设 :温度 = 50°C,且外部阻抗为 10 k,5.0V VDD
TACQ
放大器稳定时间 + 保持电容充电时间 + 温度系数
= T AMP + T C + T COFF
= 22?s
C+
  Temperature
-(25掳鈥濩
  0.05?s/掳鈥濩  
µs ++ TTc
+[(
温度 - 25°C)
0.05 µs/°C)]
=
用以下公式可近似求得 TC 的值:
1
 = V CHOLD
V APPLIED  1 – -------------------------

n+1
2
–1
;[1] 在 1/2 lsb 误差范围内对 VCHOLD 充电
–T C
----------

RC
V APPLIED  1 – e  = V CHOLD


;[2] 依照 VAPPLIED 对 VCHOLD 充电
– Tc
---------

RC
1
 ; 合并 [1] 和 [2]
V APPLIED  1 – e  = V APPLIED  1 – -------------------------

n+1


2
–1
注 :其中 n = ADC 的位数。
对 TC 求值:
T C = – C HOLD  R IC + R SS + R S  ln(1/2047)
== -12.5pF
(1 k
+ 7+k7k
+10+k)
ln (0.0004885)
1k
10k
 ln  0.0004885 
– 12.5pF
==1.12
µs
1.12Á•ç
因此:
T ACQ = 55µs
µs ++1.12
1.12µs
  50°C25°C   0.05 µs/°C
µs+ +
[(50°C
- 25°C)(0.05µs/°C
)]  
= 7.37
7.37 µs
注
1: 因为参考电压 (VREF+)自行抵消,因此它对该公式没有影响。
2: 充电保持电容 (CHOLD)在每次转换后不会放电。
3: 模拟信号源的最大阻抗推荐值为 10 k。此要求是为了符合引脚泄漏电流规范。
DS41615A_CN 第 124 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
图 15-4:
模拟输入模型
VDD
模拟
输入
引脚
Rs
VT  0.6V
CPIN
5 pF
VA
RIC  1k
采样
开关
SS Rss
I LEAKAGE(1)
VT  0.6V
CHOLD = 10 pF
VREF-
图注 :
CHOLD
CPIN
6V
5V
VDD 4V
3V
2V
= 采样 / 保持电容
= 输入电容
RSS
I LEAKAGE = 由各连接点在引脚上
产生的泄漏电流
RIC
= 片内走线等效电阻
= 采样开关的电阻
RSS
注
图 15-5:
SS
= 采样开关
VT
= 阈值电压
5 6 7 8 9 10 11
采样开关
(k)
1: 请参见第 27.0 节 “电气规范”。
ADC 传递函数
满量程
3FFh
3FEh
3FDh
3FCh
ADC 输出码
3FBh
03h
02h
01h
00h
模拟输入电压
0.5 LSB
VREF-
1.5 LSB
零量程切换
满量程切换
© 2012 Microchip Technology Inc.
初稿
VREF+
DS41615A_CN 第 125 页
PIC12(L)F1501
表 15-2:
名称
与 ADC 相关的寄存器汇总
Bit 7
ADCON0
—
ADCON1
ADFM
ADCON2
Bit 6
Bit 5
Bit 4
Bit 2
—
—
ADPREF<1:0>
120
—
—
—
121
CHS<4:0>
ADCS<2:0>
TRIGSEL<3:0>
ADRESH
A/D 结果寄存器高字节
ADRESL
A/D 结果寄存器低字节
Bit 1
Bit 0
GO/DONE
ADON
寄存器
所在页
Bit 3
—
119
122, 123
122, 123
ANSELA
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
103
INTCON
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
PIE1
TMR1GIE
ADIE
—
—
—
—
TMR2IE
TMR1IE
67
PIR1
TMR1GIF
ADIF
—
—
—
—
TMR2IF
TMR1IF
70
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
FVREN
FVRRDY
TSEN
TSRNG
TRISA
FVRCON
CDAFVR<1:0>
ADFVR<1:0>
110
图注:
x = 未知, u = 不变, — = 未实现,读为 0, q = 值取决于具体条件。 ADC 模块不使用阴影单元。
注
1: 未实现,读为 1。
DS41615A_CN 第 126 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
16.0
16.1
数模转换器 (DAC)模块
输出电压选择
数模转换器提供了一个可变参考电压,它与输入源成比
例,具有 32 个可选输出电压。
DAC 具有 32 个电平范围。 32 个电平通过 DACCON1
寄存器的 DACR<4:0> 位进行设置。
DAC 的输入可以连接到:
DAC 输出电压由以下公式确定:
• 外部 VREF+ 引脚
• VDD 供电电压
DAC 的输出可以配置为向以下对象提供参考电压:
•
•
•
•
比较器的正输入
ADC 输入通道
DACOUT1 引脚
DACOUT2 引脚
数模转换器 (DAC)可以通过将 DACCON0 寄存器的
DACEN 位置 1 来使能。
公式 16-1:
DAC 输出电压
如果 DACEN = 1
DACR  4:0 
VOUT = (V
 VSOURCE+ – VSO URCE-   ----------------------------+ VSOURCE5
 SOURCE+ - VSOURCE-)×
 +VSOURCE2
如果 DACEN = 0、DACLPS = 1 且 DACR[4:0] = 11111
V OUT = V SOURCE +
如果 DACEN = 0、DACLPS = 0 且 DACR[4:0] = 00000
V OUT = V SOURCE –
VSOURCE+ = VDD、VREF 或 FVR 缓冲区 2
VSOURCE- = VSS
16.2
16.3
比例输出电压
DAC 输出值通过使用一个梯形电阻网络产生,梯形电阻
网络的每一端分别与正参考电压和负参考电压输入源连
接。如果任一输入源的电压发生波动,DAC 输出值都会
产生类似的波动。
DAC 参考电压输出
可以通过将 DACCON0 寄存器的相应 DACOE1 和
DACOE2 位置 1,将 DAC 电压输出到 DACOUT1 和
DACOUT2 引脚。选择将 DAC 参考电压输出到
DACOUTx 引脚会自动改写数字输出缓冲器和该引脚的
数字输入阈值检测器功能。当 DACOUTx 引脚已被配置
为 DAC 参考电压输出时,读取该引脚将总是返回 0。
第 27.0 节 “电气规范”中给出了梯形电阻网络中各个
电阻的阻值。
受电流驱动能力的限制,必须在 DAC 参考电压输出端
上使用缓冲器,以从外部连接到任一 DACOUTx 引脚。
图 16-2 举例说明了这一缓冲技术。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 127 页
PIC12(L)F1501
图 16-1:
数模转换器框图
数模转换器(DAC)
VSOURCE+
VDD
5
VREF+
DACR<4:0>
R
R
DACEN
R
R
32
阶
R
32 选 1 多路开关(MUX)
R
DACPSS
R
DAC
(至比较器和
ADC 模块)
DACOUT1
R
DACOE1
VSOURCE-
DACOUT2
DACOE2
图 16-2:
参考电压输出缓冲示例
PIC® MCU
DAC
模块
DS41615A_CN 第 128 页
R
参考
电压
输出
阻抗
+
–
DACOUTX
初稿
经缓冲的 DAC 输出
© 2012 Microchip Technology Inc.
PIC12(L)F1501
16.4
休眠期间的操作
如果因中断或看门狗定时器超时将器件从休眠模式唤
醒,DACCON0 寄存器的内容将不受影响。为了最大程
度降低休眠模式下的电流消耗,应禁止参考电压模块。
16.5
复位的影响
器件复位会产生以下影响:
• DAC 被禁止。
• DAC 输出电压从 DACOUT 引脚上被移除。
• DACR<4:0> 范围选择位被清零。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 129 页
PIC12(L)F1501
16.6
DAC 控制寄存器
寄存器 16-1:
DACCON0:参考电压控制寄存器 0
R/W-0/0
U-0
R/W-0/0
R/W-0/0
U-0
R/W-0/0
U-0
U-0
DACEN
—
DACOE1
DACOE2
—
DACPSS
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
DACEN:DAC 使能位
1 = 使能 DAC
0 = 禁止 DAC
bit 6
未实现:读为 0
bit 5
DACOE1:DAC 电压输出使能位
1 = DAC 电平也从 DACOUT1 引脚输出
0 = DAC 电平从 DACOUT1 引脚断开
bit 4
DACOE2:DAC 电压输出使能位
1 = DAC 电平也从 DACOUT2 引脚输出
0 = DAC 电平从 DACOUT2 引脚断开
bit 3
未实现:读为 0
bit 2
DACPSS:DAC 正参考电压源选择位
1 = VREF+ 引脚
0 = VDD
bit 1-0
未实现:读为 0
寄存器 16-2:
DACCON1:参考电压控制寄存器 1
U-0
U-0
U-0
—
—
—
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
DACR<4:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-5
未实现:读为 0
bit 4-0
DACR<4:0>:DAC 电压输出选择位
表 16-1:
与 DAC 模块相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
FVRCON
FVREN
FVRRDY
TSEN
TSRNG
DACCON0
DACEN
—
DACOE1
DACOE2
DACCON1
—
—
—
名称
图注:
Bit 3
Bit 2
CDAFVR<1:0>
—
DACPSS
DACR<4:0>
寄存器
所在页
Bit 1
Bit 0
ADFVR1
ADFVR0
110
—
—
130
130
— = 未实现位,读为 0。 DAC 模块不使用阴影单元。
DS41615A_CN 第 130 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
17.0
图 17-1:
比较器模块
比较器通过比较两个模拟电压并提供其相对幅值的数字
表示,用于建立模拟电路与数字电路的接口。比较器是
非常有用的混合信号构建模块,因为它们提供了与程序
执行相独立的模拟功能。模拟比较器模块具有以下特
性:
•
•
•
•
•
•
•
•
•
独立的比较器控制
可编程输入选择
有内部 / 外部比较器输出
可编程输出极性
电平变化中断
从休眠状态唤醒
可编程的速度 / 功耗优化
PWM 关闭
可编程和固定参考电压
17.1
单比较器
VIN+
+
VIN-
–
输出
VINVIN+
输出
注:
比较器概述
图17-1所示为单比较器以及模拟输入电平与数字输出之
间的关系。当 VIN+ 上的模拟电压小于 VIN- 上的模拟电
压时,比较器输出为数字低电平。当 VIN+ 上的模拟电
压大于 VIN- 上的模拟电压时,比较器输出为数字高电
平。
比较器输出的黑色区域表示因输入失调
电压和响应时间所造成的输出不确定区
域。
表 17-1 给出了该器件可用的比较器。
表 17-1:
每款器件可用的比较器
器件
PIC12F1501
PIC12LF1501
© 2012 Microchip Technology Inc.
C1


初稿
DS41615A_CN 第 131 页
PIC12(L)F1501
图 17-2:
比较器模块的简化框图
CxNCH<2:0>
CxON(1)
3
C12IN0-
0
C12IN1C12IN2-
1
MUX
2 (2)
C12IN3-
3
FVR 缓冲区 2
4
检测
将 CxIF 置 1
DAC
0
MUX
1 (2)
FVR 缓冲区 2
CxINTN
中断
检测
CXPOL
CxVN
D
Cx
CxVP
CXIN+
CxINTP
中断
CXOUT
MCXOUT
Q
至数据总线
+
EN
Q1
CxHYS
CxSP
async_CxOUT
至 CWG
2
3
CXSYNC
CxON
CXPCH<1:0>
CXOE
TRIS 位
CXOUT
0
2
D
(来自 Timer1)
T1CLK
注
1:
2:
Q
1
SYNC_CXOUT
至 Timer1、
CLCx 和 ADC
当 CxON = 0 时,比较器将产生 0 输出。
当 CxON = 0 时,所有多路开关输入都会断开。
DS41615A_CN 第 132 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
17.2
17.2.3
比较器控制
将比较器的输出反相在功能上等效于交换比较器输入。
可以通过将 CMxCON0 寄存器的 CxPOL 位置 1 来使比
较器输出的极性反相。清零 CxPOL 位得到的是未反相
的输出信号。
每个比较器都具有 2 个控制寄存器:CMxCON0 和
CMxCON1。
CMxCON0 寄存器(见寄存器 17-1)包含以下控制和状
态位:
•
•
•
•
•
•
比较器输出极性
表 17-2 给出了输出状态与输入条件的关系(包括极性控
制)。
使能
输出选择
输出极性
速度 / 功耗选择
滞后使能
输出同步
表 17-2:
比较器输出状态与输入条件
输入条件
CxPOL
CxOUT
CxVN > CxVP
0
0
CxVN < CxVP
0
1
CMxCON1 寄存器 (见寄存器 17-2)包含以下控制位:
CxVN > CxVP
1
1
•
•
•
•
CxVN < CxVP
1
0
中断允许
中断边沿极性
同相输入通道选择
反相输入通道选择
17.2.1
17.2.4
在程序执行期间通过 CxSP 控制位可以最佳地权衡速度
与功耗。该位的默认状态为 1,选择正常速度模式。器
件功耗可以通过将 CxSP 位清零进行优化,代价是比较
器传输延时变长。
比较器使能
将 CMxCON0 寄存器的 CxON 位置 1 可以使能比较器
操作。清零 CxON 位可以禁止比较器,以使电流消耗降
至最低。
17.2.2
比较器速度 / 功耗选择
比较器输出选择
可以通过读 CMxCON0 寄存器的 CxOUT 位或 CMOUT
寄存器的 MCxOUT 位监视比较器的输出。为了使输出
可用于外部连接,必须满足以下条件:
• 必须将 CMxCON0 寄存器的 CxOE 位置 1
• 必须清零相应的 TRIS 位
• 必须将 CMxCON0 寄存器的 CxON 位置 1
注
1: CMxCON0 寄存器的 CxOE 位会改写端口
数 据 锁 存 器。将 CMxCON0 寄存器的
CxON 位置 1 对端口改写没有影响。
2: 比较器的内部输出在每个指令周期被锁
存。除非另外指定,否则不锁存外部输
出。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 133 页
PIC12(L)F1501
17.3
17.5
比较器滞后
通过在每个比较器的输入引脚上加上一个可选的分离电
压量,可以为整体操作提供滞后功能。滞后功能通过将
CMxCON0 寄存器的 CxHYS 位置 1 来使能。
比较器中断
比较器可以在输出值发生改变时产生中断;对于每个比
较器,都提供了上升沿检测器和下降沿检测器。
更多信息,请参见第 27.0 节 “电气规范”。
当触发任一边沿检测器时,如果它关联的允许位已置 1
(CMxCON1 寄存器的 CxINTP 和 / 或 CxINTN 位),则
相应的中断标志位 (PIR2 寄存器的 CxIF 位)会置 1。
17.4
要允许中断,必须将以下位置 1:
Timer1 门控操作
• CMxCON0 寄存器的 CxON、 CxPOL 和 CxSP 位
• PIE2 寄存器的 CxIE 位
• CMxCON1 寄存器的 CxINTP 位 (对于上升沿检
测)
• CMxCON1 寄存器的 CxINTN 位 (对于下降沿检
测)
• INTCON 寄存器的 PEIE 和 GIE 位
比较器操作产生的输出可以用作 Timer1 的门控源。更
多信息,请参见第 19.5 节 “Timer1 门控”。该功能可
用于对模拟事件的持续时间或间隔时间进行计时。
建议将比较器输出与 Timer1 进行同步。这可以确保在
比较器中发生变化时, Timer1 不会递增。
17.4.1
比较器输出同步
通过将 CMxCON0 寄存器的 CxSYNC 位置 1,可以使
比较器的输出与 Timer1 保持同步。
关联的中断标志位(PIR2 寄存器的 CxIF 位)必须用软
件清零。如果在清零该标志时检测到另一个边沿,则标
志仍然会在序列结束时置 1。
使能比较器的输出时,比较器的输出在 Timer1 时钟源的
下降沿被锁存。如果 Timer1 使用了预分频器,则比较器
的输出在经过预分频后被锁存。为了防止发生竞争,比
较器的输出在Timer1时钟源的下降沿被锁存,而Timer1
在其时钟源的上升沿递增。更多信息,请参见比较器框
图 (图 17-2)和 Timer1 框图 (图 19-1)。
注:
17.6
即使比较器被禁止,还是可以通过使用
CMxCON0 寄存器的 CxPOL 位更改输出极
性来产生中断,或者通过使用 CMxCON0
寄存器的 CxON 位开启或关闭比较器来产
生中断。
比较器同相输入选择
通过配置 CMxCON1 寄存器的 CxPCH<1:0> 位,将内
部参考电压或模拟引脚连接到比较器的同相输入。
• CxIN+ 模拟引脚
• DAC
• FVR (固定参考电压)
• VSS (地)
关于固定参考电压模块的更多信息,请参见第 13.0 节
“固定参考电压 (FVR)”。
关于 DAC 输入信号的更多信息,请参见第 16.0 节“数
模转换器 (DAC)模块”。
每当禁止比较器 (CxON = 0)时,所有比较器输入都
会被禁止。
DS41615A_CN 第 134 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
17.7
17.9
比较器反相输入选择
CMxCON0 寄存器的 CxNCH<1:0> 位指示输入源之一
连接到比较器的反相输入。
注:
17.8
模拟输入的简化电路如图 17-3 所示。由于模拟输入引脚
与数字输入共用连接,它们在 VDD 和 VSS 之间连有反
向偏置的 ESD 保护二极管。因此,模拟输入必须在 VSS
和 VDD 之间。如果输入电压在任一方向上超出该范围
0.6V,其中一个二极管就会发生正向偏置从而使输入电
压被钳位。
要将 CxIN+ 和 CxINx- 引脚用作模拟输入,
必须将 ANSEL 寄存器中的相应位置 1,同
时也必须将相应的 TRIS 位置 1 来禁止输出
驱动器。
模拟信号源的最大阻抗推荐值为 10 k。任何连接到模拟
输入引脚的外部元件 (如电容或齐纳二极管) ,应保证
其泄漏电流极小以使引入的误差降至最低。
比较器响应时间
在改变输入源或选择新的参考电压后,一段时间内比较
器的输出状态都是不确定的,这段时间被称为响应时
间。比较器的响应时间不同于参考电压的稳定时间。因
此,在确定比较器输入改变的总响应时间时,必须考虑
这两个时间。更多详细信息,请参见第 27.0 节“电气规
范”中的比较器和参考电压规范。
© 2012 Microchip Technology Inc.
模拟输入连接注意事项
注
1: 读端口寄存器时,所有配置为模拟输入的
引脚均读为 0。配置为数字输入的引脚将
根据输入规范转换为模拟输入。
2: 定义为数字输入引脚上的模拟电平可能会
使输入缓冲器的电流消耗超过规定值。
初稿
DS41615A_CN 第 135 页
PIC12(L)F1501
图 17-3:
模拟输入模型
VDD
Rs < 10K
模拟
输入
引脚
VT  0.6V
RIC
至比较器
CPIN
5 pF
VA
VT  0.6V
ILEAKAGE(1)
Vss
图注:
注
CPIN
= 输入电容
ILEAKAGE = 由各连接点在引脚上产生的泄漏电流
RIC
= 片内走线等效电阻
= 信号源阻抗
RS
VA
= 模拟电压
= 阈值电压
VT
1: 请参见第 27.0 节 “电气规范”。
DS41615A_CN 第 136 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 17-1:
CMxCON0:比较器 Cx 控制寄存器 0
R/W-0/0
R-0/0
R/W-0/0
R/W-0/0
U-0
R/W-1/1
R/W-0/0
R/W-0/0
CxON
CxOUT
CxOE
CxPOL
—
CxSP
CxHYS
CxSYNC
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
CxON:比较器使能位
1 = 使能比较器,并且比较器不消耗有功功率
0 = 禁止比较器
bit 6
CxOUT:比较器输出位
如果 CxPOL = 1 (极性反相):
1 = CxVP < CxVN
0 = CxVP > CxVN
如果 CxPOL = 0 (极性不反相):
1 = CxVP > CxVN
0 = CxVP < CxVN
bit 5
CxOE:比较器输出使能位
1 = CxOUT 出现在 CxOUT 引脚。只有关联的 TRIS 位清零时,才能实际驱动引脚。不受 CxON 影响。
0 = CxOUT 仅在内部有效
bit 4
CxPOL:比较器输出极性选择位
1 = 比较器输出反相
0 = 比较器输出不反相
bit 3
未实现:读为 0
bit 2
CxSP:比较器速度 / 功耗选择位
1 = 比较器工作在正常功耗、高速模式下
0 = 比较器工作在低功耗、低速模式下
bit 1
CxHYS:比较器滞后使能位
1 = 使能比较器滞后
0 = 禁止比较器滞后
bit 0
CxSYNC:比较器输出同步模式位
1 = 送到Timer1和I/O引脚的比较器输出与Timer1时钟源的变化同步。输出在Timer1时钟源的下降沿进
行更新。
0 = 送到 Timer1 和 I/O 引脚的比较器输出与时钟源的变化是异步的。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 137 页
PIC12(L)F1501
寄存器 17-2:
CMxCON1:比较器 Cx 控制寄存器 1
R/W-0/0
R/W-0/0
CxINTP
CxINTN
R/W-0/0
R/W-0/0
U-0
CxPCH<1:0>
R/W-0/0
R/W-0/0
R/W-0/0
CxNCH<2:0>
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
CxINTP:比较器正向边沿中断允许位
1 = 在 CxOUT 位的正向边沿, CxIF 中断标志将置 1
0 = 在 CxOUT 位的正向边沿,无中断标志置 1
bit 6
CxINTN:比较器负向边沿中断允许位
1 = 在 CxOUT 位的负向边沿, CxIF 中断标志将置 1
0 = 在 CxOUT 位的负向边沿,无中断标志置 1
bit 5-4
CxPCH<1:0>:比较器同相输入通道选择位
11 = CxVP 连接到 VSS
10 = CxVP 连接到 FVR 参考电压
01 = CxVP 连接到 DAC 参考电压
00 = CxVP 连接到 CxIN+ 引脚
bit 3
未实现:读为 0
bit 2-0
CxNCH<2:0>:比较器反相输入通道选择位
111 = 保留
110 = 保留
101 = 保留
100 = CxVN 连接到 FVR 参考电压
011 = CxVN 连接到 C12IN3- 引脚
010 = CxVN 连接到 C12IN2- 引脚
001 = CxVN 连接到 C12IN1- 引脚
000 = CxVN 连接到 C12IN0- 引脚
寄存器 17-3:
CMOUT:比较器输出寄存器
U-0
U-0
U-0
U-0
U-0
U-0
U-0
R-0/0
—
—
—
—
—
—
—
MC1OUT
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-1
未实现:读为 0
bit 0
MC1OUT:C1OUT 的镜像副本位
DS41615A_CN 第 138 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
表 17-3:
名称
ANSELA
与比较器模块相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
103
C1OE
C1POL
—
C1SP
C1HYS
C1SYNC
137
CM1CON0
C1ON
C1OUT
CM1CON1
C1NTP
C1INTN
—
—
—
—
—
—
—
MC1OUT
138
DACEN
—
DACOE1
DACOE2
—
DACPSS
—
—
130
CMOUT
DACCON0
—
C1PCH<1:0>
C1NCH<2:0>
138
—
—
—
FVRCON
FVREN
FVRRDY
TSEN
TSRNG
INTCON
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
PIE2
—
—
C1IE
—
—
NCO1IE
—
—
68
PIR2
—
—
C1IF
—
—
NCO1IF
—
—
71
RA5
RA4
RA3
RA2
RA1
RA0
102
DACCON1
DACR<4:0>
CDAFVR<1:0>
130
ADFVR<1:0>
110
PORTA
—
—
LATA
—
—
LATA5
LATA4
—
LATA2
LATA1
LATA0
103
TRISA
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
图注:
— = 未实现位,读为 0。比较器模块不使用阴影单元。
注
1: 未实现,读为 1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 139 页
PIC12(L)F1501
注:
DS41615A_CN 第 140 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
18.0
TIMER0 模块
18.1.2
在 8 位计数器模式下,Timer0 模块将在 T0CKI 引脚的每
个上升沿或下降沿递增。
Timer0 模块是 8 位定时器 / 计数器,具有以下特性:
•
•
•
•
•
•
8 位计数器模式
8 位定时器 / 计数器寄存器 (TMR0)
8 位预分频器 (独立于看门狗定时器)
可编程内部或外部时钟源
可编程外部时钟边沿选择
溢出时产生中断
TMR0 可用于门控 Timer1
使用 T0CKI 引脚的 8 位计数器模式,可通过将
OPTION_REG 寄存器的 TMR0CS 位设置为 1 来选择。
两个输入源递增边沿是上升沿还是下降沿由
OPTION_REG 寄存器中的 TMR0SE 位决定。
图 18-1 给出了 Timer0 模块的框图。
18.1
Timer0 工作原理
Timer0 模块可被用作 8 位定时器或 8 位计数器。
18.1.1
8 位定时器模式
如果在没有预分频器的情况下使用 Timer0 模块,它将
在每个指令周期递增。可通过清零 OPTION_REG 寄存
器的 TMR0CS 位选择 8 位定时器模式。
当写 TMR0 时,在紧跟写操作之后的两个指令周期内禁
止 TMR0 递增。
注:
当写 TMR0 时,考虑到存在两个指令周期
的延时,可以调整写入TMR0寄存器的值。
图 18-1:
TIMER0 框图
FOSC/4
数据总线
0
T0CKI
8
1
同步
2 TCY
1
TMR0
0
TMR0SE TMR0CS
8位
预分频器
PSA
溢出时将标志位
TMR0IF 置 1
溢出到 Timer1
8
PS<2:0>
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 141 页
PIC12(L)F1501
18.1.3
软件可编程的预分频器
软件可编程的预分频器只能用于 Timer0。可通过清零
OPTION_REG 寄存器的 PSA 位来使能预分频器。
注:
看门狗定时器 (WDT)使用它自己的独立
预分频器。
Timer0 模块有 8 个预分频比选项,范围从 1:2 至 1:256。
可通过 OPTION_REG 寄存器的 PS<2:0> 位选择预分频
值。为了让 Timer0 模块使用 1:1 预分频值,必须通过将
OPTION_REG 寄存器的 PSA 位置 1 来禁止预分频器。
预分频器是不可读写的。向 TMR0 寄存器写入任何指令
都会清空预分频器。
18.1.4
TIMER0 中断
TMR0 寄存器从 FFh 溢出到 00h 时,将产生 Timer0 中
断。每次 TMR0 寄存器溢出时都会将 INTCON 寄存器
的 TMR0IF 中断标志位置 1,这与是否允许 Timer0 中断
无关。TMR0IF 位只能用软件清零。Timer0 中断允许位
是 INTCON 寄存器的 TMR0IE 位。
注:
18.1.5
由于定时器在休眠状态下是停止的,所以
Timer0 中断无法将处理器从休眠状态唤
醒。
8 位同步计数器模式
在 8 位计数器模式下,T0CKI 引脚的递增边沿必须与指
令时钟保持同步。同步可通过在指令时钟的 Q2 和 Q4
周期对预分频器的输出进行采样实现。外部时钟源的高
低电平周期必须满足第 27.0 节 “电气规范”中所示的
时序要求。
18.1.6
休眠期间的操作
在处理器处于休眠模式时,Timer0 无法工作。在处理器
处于休眠模式时, TMR0 寄存器的内容将保持不变。
DS41615A_CN 第 142 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
18.2
OPTION 寄存器和 Timer0 控制寄存器
寄存器 18-1:
OPTION_REG:OPTION 寄存器
R/W-1/1
R/W-1/1
R/W-1/1
R/W-1/1
R/W-1/1
WPUEN
INTEDG
TMR0CS
TMR0SE
PSA
R/W-1/1
R/W-1/1
R/W-1/1
PS<2:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
WPUEN:弱上拉使能位
1 = 禁止所有弱上拉 (MCLR 除外,如果已使能)
0 = 通过各个 WPUx 锁存值使能弱上拉
bit 6
INTEDG:中断边沿选择位
1 = INT 引脚的上升沿触发中断
0 = INT 引脚的下降沿触发中断
bit 5
TMR0CS:Timer0 时钟源选择位
1 = T0CKI 引脚上的电平跳变
0 = 内部指令周期时钟 (FOSC/4)
bit 4
TMR0SE:Timer0 时钟源边沿选择位
1 = 在 T0CKI 引脚信号从高至低跳变时,递增计数
0 = 在 T0CKI 引脚信号从低至高跳变时,递增计数
bit 3
PSA:预分频器分配位
1 = 预分频器未分配给 Timer0 模块
0 = 预分频器已分配给 Timer0 模块
bit 2-0
PS<2:0>:预分频比选择位
位值
000
001
010
011
100
101
110
111
表 18-1:
名称
INTCON
TMR0
TRISA
图注:
注
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
与 TIMER0 相关的寄存器汇总
Bit 7
Bit 6
ADCON2
OPTION_REG
Timer0 预分频比
Bit 5
Bit 4
TRIGSEL<3:0>
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
—
—
—
—
121
TMR0IF
INTF
IOCIF
GIE
PEIE
TMR0IE
INTE
IOCIE
WPUEN
INTEDG
TMR0CS
TMR0SE
PSA
TRISA4
—(1)
PS<2:0>
141*
8 位 Timer0 计数的保持寄存器
—
—
TRISA5
66
143
TRISA2
TRISA1
TRISA0
102
— = 未实现位,读为 0。 Timer0 模块不使用阴影单元。
* 提供寄存器信息的页。
1: 未实现,读为 1。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 143 页
PIC12(L)F1501
注:
DS41615A_CN 第 144 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
19.0
带门控控制的 TIMER1 模块
• 门控单脉冲模式
• 门控值状态
• 门控事件中断
Timer1 模块是 16 位定时器 / 计数器,具有以下特性:
•
•
•
•
•
•
•
•
•
•
图 19-1 给出了 Timer1 模块的框图。
16 位定时器 / 计数器寄存器对 (TMR1H:TMR1L)
可编程内部或外部时钟源
2 位预分频器
可选的同步比较器输出
多个 Timer1 门控源 (可以计数)
溢出时产生中断
溢出触发唤醒 (仅限外部时钟,异步模式)
特殊事件触发器
可选择的门控源极性
门控翻转模式
图 19-1:
TIMER1 框图
T1GSS<1:0>
00
T1G
来自 Timer0 溢出
T1GSPM
01
0
t1g_in
sync_C1OUT
0
10
保留
单脉冲
11
TMR1ON
T1GPOL
D
Q
CK
R
Q
1
采集控制
1
T1GVAL
Q1
数据总线
D
Q
读
T1GCON
EN
中断
T1GGO/DONE
检测
置1
TMR1GIF
T1GTM
TMR1GE
溢出时将
TMR1IF
标志位置 1
至 ADC 自动转换
TMR1ON
TMR1(2)
TMR1H
EN
TMR1L
Q
D
T1CLK
同步
时钟输入
0
1
TMR1CS<1:0>
LFINTOSC
T1SYNC
11
(1)
检测
10
T1CKI
注
同步 (3)
预分频器
1, 2, 4, 8
FOSC
内部
时钟
01
FOSC/4
内部
时钟
00
2
T1CKPS<1:0>
FOSC/2
内部
时钟
休眠输入
1: 当使用 T1CKI 时, ST 缓冲器为高速型。
2: Timer1 寄存器在上升沿递增。
3: 处于休眠模式时,无法执行同步。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 145 页
PIC12(L)F1501
19.1
Timer1 工作原理
19.2
Timer1模块是16位递增计数器,可通过TMR1H:TMR1L
寄存器对访问。写 TMR1H 或 TMR1L 会直接更新计数
器。
时钟源选择
T1CON 寄存器的 TMR1CS<1:0> 位用于选择 Timer1 的
时钟源。表 19-2 显示了时钟源选择。
19.2.1
当 Timer1 与内部时钟源一起使用时,该模块为定时器
并在每个指令周期递增。当与外部时钟源一起使用时,
该模块可用作定时器或计数器,并在外部时钟源的每个
选定边沿递增。
内部时钟源
当选定内部时钟源时,TMR1H:TMR1L 寄存器对的递增
频率将为 FOSC 的整数倍 (取决于 Timer1 预分频器)。
Timer1 分别通过配置 T1CON 和 T1GCON 寄存器中的
TMR1ON 和 TMR1GE 位使能。表 19-1 显示了 Timer1
使能选择。
选定 FOSC 内部时钟源时, Timer1 寄存器的值将在每个
指令时钟周期中递增4次。由于这个原因,在读取Timer1
值时,分辨率将会出现 2 LSB 的误差。为了利用 Timer1
的全部分辨率,必须使用异步输入信号来对 Timer1 时钟
输入进行门控。
表 19-1:
可以使用以下异步源:
TIMER1 使能选择
• T1G 引脚上的异步事件用于进行 Timer1 门控
Timer1
工作原理
TMR1ON
TMR1GE
0
0
关闭
0
1
关闭
1
0
总是开启
1
1
使能计数
19.2.2
外部时钟源
当选定外部时钟源时,Timer1 模块可以作为定时器或计
数器工作。
Timer1 使能计数时,它在外部时钟输入 T1CKI 的上升沿
递增。外部时钟源既可以与单片机系统时钟同步运行,
也可以异步运行。
注:
在计数器模式下,发生以下任何一个或多
个情况后,计数器在首个上升沿递增前,
必须先经过一个下降沿:
• POR 后使能 Timer1
• 写入 TMR1H 或 TMR1L
• Timer1 被禁止
• T1CKI 为高电平时 Timer1 被禁止
(TMR1ON = 0),然后在 T1CKI 为低电
平时 Timer1 被使能 (TMR1ON = 1)。
表 19-2:
时钟源选择
TMR1CS<1:0>
T1OSCEN
11
x
LFINTOSC
10
0
T1CKI 引脚上的外部时钟源
01
x
系统时钟 (FOSC)
00
x
指令时钟 (FOSC/4)
DS41615A_CN 第 146 页
时钟源
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
19.3
Timer1 预分频器
使能 Timer1 门控使能模式时,Timer1 将在 Timer1 时钟
源的上升沿递增。禁止 Timer1 门控使能模式时,不会
发生递增,Timer1 将保持当前计数。时序详细信息,请
参见图 19-3。
Timer1 有 4 个预分频比选项,允许对时钟输入进行 1、2、
4 或 8 分频。T1CON 寄存器的 T1CKPS 位控制预分频器
计数器。不能对预分频器计数器直接进行读写操作;但
是,通过写入 TMR1H 或 TMR1L 可将预分频器计数器清
零。
19.4
表 19-3:
异步计数器模式下的 Timer1 操作
如果 T1CON 寄存器的控制位 T1SYNC 置 1,外部时钟
输入将不同步。定时器异步于内部相位时钟进行递增计
数。如果选择了外部时钟源,在休眠期间定时器将继续
运行,并在溢出时产生中断以唤醒处理器。但是,需要
用软件对定时器进行读 / 写操作时,要特别当心 (见第
19.4.1 节 “在异步计数器模式下读写 Timer1”)。
注:
19.4.1
T1GPOL
T1G

0
0
计数

0
1
保持计数

1
0
保持计数

1
1
计数
19.5.2
Timer1 工作状态
TIMER1 门控源选择
表19-4列出了Timer1门控源选择。源的选择由T1GCON
寄存器的 T1GSS<1:0> 位控制。每个可用源的极性也是
可选择的。极性的选择由 T1GCON 寄存器的 T1GPOL
位控制。
当从同步切换到异步操作时,可能会跳过
一次递增。当从异步切换到同步操作时,
可能会产生一次额外递增。
在异步计数器模式下读写 TIMER1
表 19-4:
当 定 时 器 采 用 外 部 异 步 时 钟 运 行 时,对 TMR1H 或
TMR1L 的读操作将确保为有效读操作(由硬件实现)。
但是,用户应该记住通过读两个 8 位值来读取 16 位定
时器本身就会产生某些问题,这是因为定时器可能在两
次读操作之间产生溢出。
TIMER1 门控源
T1GSS
对于写操作,建议用户直接停止定时器,然后写入需要
的值。如果定时器寄存器正进行递增计数,对定时器寄
存器进行写操作可能会导致写入操作冲突,这可能在
TMR1H:TMR1L 寄存器对中产生不可预测的值。
19.5
TIMER1 门控使能选择
T1CLK
Timer1 门控源
00
Timer1 门控引脚
01
Timer0 溢出
(TMR0 从 FFh 递增到 00h)
10
比较器 1 输出 sync_C1OUT
(可选的同步比较器输出)
11
保留
Timer1 门控
Timer1 可配置为自由计数或用 Timer1 门控电路使能和
禁止计数。这也称为 Timer1 门控使能。
Timer1 门控也可由多个可选源驱动。
19.5.1
TIMER1 门控使能
通过将 T1GCON 寄存器的 TMR1GE 位置 1 使能 Timer1
门控使能模式。使用 T1GCON 寄存器的 T1GPOL 位来
配置 Timer1 门控使能模式的极性。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 147 页
PIC12(L)F1501
19.5.2.1
T1G 引脚门控操作
19.5.5
T1G 引脚是 Timer1 门控源之一。它可用于向 Timer1 门
控电路提供外部源。
19.5.2.2
使用 Timer1 门控值状态时,可读取门控控制值的最新
电平。该值保存在 T1GCON 寄存器的 T1GVAL 位中。
即使 Timer1 门控未使能(TMR1GE 位清零),T1GVAL
位也是有效的。
Timer0 溢出门控操作
Timer0 从 FFh 递增到 00h 时,将自动产生由低至高脉
冲并在内部提供给 Timer1 门控电路。
19.5.3
TIMER1 门控值状态
19.5.6
TIMER1 门控事件中断
允许 Timer1 门控事件中断时,可在门控事件完成时产
生一个中断。出现 T1GVAL 的下降沿时, PIR1 寄存器
中的 TMR1GIF 标志位将置 1。如果 PIE1 寄存器中的
TMR1GIE 位置 1,则会响应中断。
TIMER1 门控翻转模式
使能 Timer1 门控翻转模式时,可测量 Timer1 门控信号
整个周期的长度,而不只是单电平脉冲的持续时间。
即使Timer1门控未使能(TMR1GE位清零),TMR1GIF
标志位也仍有效。
Timer1 门控源经由一个单稳态触发器输送到 Timer1,
该单稳态触发器在信号的每个递增边沿改变状态。时序
详细信息请参见图 19-4。
通过将 T1GCON 寄存器的 T1GTM 位置 1 使能 Timer1
门控翻转模式。 T1GTM 位清零时,将清除单稳态触发
器并保持清零状态。这对于控制测量哪个边沿是必需
的。
注:
19.5.4
在使能翻转模式的同时改变门控极性,可
能会导致不确定的操作。
TIMER1 门控单脉冲模式
使能 Timer1 门控单脉冲模式时,可能会捕捉到一个单脉
冲门控事件。首先通过将 T1GCON 寄存器中的 T1GSPM
位置 1 来使能 Timer1 门控单脉冲模式。然后,必须将
T1GCON 寄存器中的 T1GGO/DONE 位置 1。Timer1 将
在下一个递增边沿完全使能。在脉冲的下个后边沿,将
自动清零 T1GGO/DONE 位。在 T1GGO/DONE 位再次
由软件置 1 前,不允许其他门控事件递增 Timer1。时序
详细信息,请参见图 19-5。
如果通过清零 T1GCON 寄存器的 T1GSPM 位来禁止单
脉冲门控模式,则 T1GGO/DONE 位也会清零。
同时使能翻转模式和单脉冲模式将允许两种模式协同工
作。这样就可以测量 Timer1 门控源的周期时间。时序
详细信息,请参见图 19-6。
DS41615A_CN 第 148 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
19.6
Timer1 中断
19.7.1
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
Timer1 寄存器对 (TMR1H:TMR1L)递增到 FFFFh,
然后计满返回到 0000h。当 Timer1 计满返回时, PIR1
寄存器的 Timer1 中断标志位将置 1。为允许计满返回时
的中断,必须将以下位置 1:
•
•
•
•
备用引脚位置
T1CON 寄存器的 TMR1ON 位
PIE1 寄存器的 TMR1IE 位
INTCON 寄存器的 PEIE 位
INTCON 寄存器的 GIE 位
在中断服务程序中将 TMR1IF 位清零将清除中断。
在允许中断前,应将 TMR1H:TMR1L 寄存
器对以及 TMR1IF 位清零。
注:
19.7
休眠期间的 Timer1 操作
只有在设置为异步计数器模式时,Timer1 才能在休眠模
式下工作。在该模式下,可使用外部晶振或时钟源使计
数器递增计数。要设置定时器以唤醒器件:
•
•
•
•
•
必须将 T1CON 寄存器的 TMR1ON 位置 1
必须将 PIE1 寄存器的 TMR1IE 位置 1
必须将 INTCON 寄存器的 PEIE 位置 1
必须将 T1CON 寄存器的 T1SYNC 位置 1
必须配置 T1CON 寄存器的 TMR1CS 位
器 件 将 在 溢 出 时被 唤 醒 并 执行 下 一 条 指令。如 果 将
INTCON 寄存器的 GIE 位置 1,器件将调用中断服务程
序。
无论 T1SYNC 位的设置如何, Timer1 振荡器都会在休
眠模式下继续工作。
图 19-2:
TIMER1 递增边沿
T1CKI = 1
当 TMR1
使能时
T1CKI = 0
当 TMR1
使能时
注
1: 箭头指示计数器递增。
2: 在计数器模式下,计数器在首个上升沿递增之前,必须先经过一个下降沿。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 149 页
PIC12(L)F1501
图 19-3:
TIMER1 门控使能模式
TMR1GE
T1GPOL
T1G_IN
T1CKI
T1GVAL
Timer1
N
图 19-4:
N+1
N+2
N+3
N+4
TIMER1 门控翻转模式
TMR1GE
T1GPOL
T1GTM
T1G_IN
T1CKI
T1GVAL
Timer1
N
DS41615A_CN 第 150 页
N+1 N+2 N+3
N+4
初稿
N+5 N+6 N+7
N+8
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 19-5:
TIMER1 门控单脉冲模式
TMR1GE
T1GPOL
T1GSPM
T1GGO/
在 T1GVAL 的下降沿
由硬件清零
用软件置 1
DONE
在 T1G 的上升沿
使能计数
T1G_IN
T1CKI
T1GVAL
Timer1
TMR1GIF
N
N+1
在 T1GVAL 的下降沿
由硬件置 1
用软件清零
 2012 Microchip Technology Inc.
N+2
初稿
用软件清零
DS41615A_CN 第 151 页
PIC12(L)F1501
图 19-6:
TIMER1 门控单脉冲和翻转组合模式
TMR1GE
T1GPOL
T1GSPM
T1GTM
T1GGO/
在 T1GVAL 的下降沿
由硬件清零
用软件置 1
DONE
在 T1GVAL 的上升沿
使能计数
T1G_IN
T1CKI
T1GVAL
Timer1
TMR1GIF
DS41615A_CN 第 152 页
N
用软件清零
N+1
N+2
N+3
在 T1GVAL 的下降沿
由硬件置 1
初稿
N+4
用软件清零
 2012 Microchip Technology Inc.
PIC12(L)F1501
19.8
Timer1 控制寄存器
寄存器 19-1:
R/W-0/u
T1CON:TIMER1 控制寄存器
R/W-0/u
R/W-0/u
TMR1CS<1:0>
R/W-0/u
T1CKPS<1:0>
U-0
R/W-0/u
U-0
R/W-0/u
—
T1SYNC
—
TMR1ON
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
TMR1CS<1:0>:Timer1 时钟源选择位
11 = Timer1 时钟源为 LFINTOSC
10 = Timer1 时钟源为 T1CKI 引脚 (上升沿触发计数)
01 = Timer1 时钟源为系统时钟 (FOSC)
00 = Timer1 时钟源为指令时钟 (FOSC/4)
bit 5-4
T1CKPS<1:0>:Timer1 输入时钟预分频比选择位
11 = 1:8 预分频值
10 = 1:4 预分频值
01 = 1:2 预分频值
00 = 1:1 预分频值
bit 3
未实现:读为 0
bit 2
T1SYNC:Timer1 同步控制位
1 = 不同步异步时钟输入
0 = 将异步时钟输入与系统时钟 (FOSC)同步
bit 1
未实现:读为 0
bit 0
TMR1ON:Timer1 使能位
1 = 使能 Timer1
0 = 停止 Timer1 并清除 Timer1 门控触发器
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 153 页
PIC12(L)F1501
寄存器 19-2:
T1GCON:TIMER1 门控控制寄存器
R/W-0/u
R/W-0/u
R/W-0/u
R/W-0/u
R/W/HC-0/u
R-x/x
TMR1GE
T1GPOL
T1GTM
T1GSPM
T1GGO/
DONE
T1GVAL
R/W-0/u
R/W-0/u
T1GSS<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
HC = 硬件清零位
bit 7
TMR1GE:Timer1 门控使能位
如果 TMR1ON = 0:
该位被忽略
如果 TMR1ON = 1:
1 = Timer1 计数由 Timer1 门控功能控制
0 = Timer1 计数与 Timer1 门控功能无关
bit 6
T1GPOL:Timer1 门控极性位
1 = Timer1 门控为高电平有效 (当门控信号为高电平时, Timer1 计数)
0 = Timer1 门控为低电平有效 (当门控信号为低电平时, Timer1 计数)
bit 5
T1GTM:Timer1 门控翻转模式位
1 = 使能 Timer1 门控翻转模式
0 = 禁止 Timer1 门控翻转模式并清除触发器翻转
Timer1 门控触发器在每个上升沿翻转。
bit 4
T1GSPM:Timer1 门控单脉冲模式位
1 = 使能 Timer1 门控单脉冲模式,控制 Timer1 门控
0 = 禁止 Timer1 门控单脉冲模式
bit 3
T1GGO/DONE:Timer1 门控单脉冲采集状态位
1 = Timer1 门控单脉冲采集就绪,正在等待一个边沿
0 = Timer1 门控单脉冲采集已经结束或尚未开始
bit 2
T1GVAL:Timer1 门控当前状态位
表示可提供给 TMR1H:TMR1L 的 Timer1 门控信号的当前状态。
不受 Timer1 门控使能 (TMR1GE)的影响。
bit 1-0
T1GSS<1:0>:Timer1 门控源选择位
11 = 保留
10 = 比较器 1 的可选同步输出 (sync_C1OUT)
01 = Timer0 溢出输出
00 = Timer1 门控引脚
DS41615A_CN 第 154 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
19.8.1
备用引脚位置
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
表 19-5:
名称
与 TIMER1 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
ANSELA
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
103
APFCON
CWG1BSEL
CWG1ASEL
—
—
T1GSEL
—
CLC1SEL
NCO1SEL
100
66
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
PIE1
TMR1GIE
ADIE
—
—
—
—
TMR2IE
TMR1IE
67
PIR1
TMR1GIF
ADIF
—
—
—
—
TMR2IF
TMR1IF
70
INTCON
TMR1H
16 位 TMR1 计数最高有效字节的保持寄存器
TMR1L
16 位 TMR1 计数最低有效字节的保持寄存器
—
TRISA
T1CON
T1GCON
—
TMR1CS<1:0>
TMR1GE
T1GPOL
TRISA5
149*
149*
TRISA4
T1CKPS<1:0>
T1GTM
T1GSPM
—(1)
TRISA2
TRISA1
TRISA0
—
T1SYNC
—
TMR1ON
T1GGO/
T1GVAL
T1GSS<1:0>
102
153
154
DONE
图注:
注
— = 未实现位,读为 0。 Timer1 模块不使用阴影单元。
* 提供寄存器信息的页。
1: 未实现,读为 1。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 155 页
PIC12(L)F1501
注:
DS41615A_CN 第 156 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
20.0
TIMER2 模块
Timer2 模块具有以下特性:
• 8 位定时器和周期寄存器 (分别为 TMR2 和 PR2)
• 可读写 (以上两个寄存器)
• 可由软件编程的预分频器 (分频比为 1:1、 1:4、
1:16 和 1:64)
• 可由软件编程的后分频器 (分频比为 1:1 至 1:16)
• TMR2 与 PR2 匹配时产生中断
Timer2 框图请参见图 20-1。
图 20-1:
TIMER2 框图
TMR2
输出
FOSC/4
预分频器
1:1, 1:4, 1:16, 1:64
2
将标志位
TMR2IF 置 1
复位
TMR2
比较器
相等
后分频器
1:1 至 1:16
T2CKPS<1:0>
PR2
4
T2OUTPS<3:0>
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 157 页
PIC12(L)F1501
20.1
Timer2 工作原理
20.3
Timer2 模块的时钟输入是系统指令时钟 (FOSC/4)。
Timer2 输出
TMR2 的未经分频的输出主要用于 PWMx 模块,它用作
PWMx 模块的工作时基。
TMR2 会从 00h 开始在每个时钟脉冲边沿递增。
4 位计数器 / 预分频器提供了对时钟输入不分频、4 分频
和 16 分频三个预分频选项。这些选项通过 T2CON 寄存
器的预分频比控制位 T2CKPS<1:0> 进行选择。在每个
时钟周期,TMR2 的值都会与周期寄存器 PR2 中的值进
行比较。当两个值匹配时,由比较器产生匹配信号作为
定时器的输出。该信号也会将 TMR2 的值在下一个周期
复位为 00h,并驱动输出计数器 / 后分频器 (见第 20.2
节 “Timer2 中断”)。
20.4
休眠期间的 Timer2 操作
在处理器处于休眠模式时,Timer2 无法工作。在处理器
处于休眠模式时,TMR2 和 PR2 寄存器的内容将保持不
变。
TMR2 和 PR2 寄存器均可直接读写。在任何器件复位
时,TMR2 寄存器都会清零,而 PR2 寄存器则初始化为
FFh。发生以下事件时,预分频器和后分频器计数器均
会清零:
•
•
•
•
•
•
•
•
•
对 TMR2 寄存器进行写操作
对 T2CON 寄存器进行写操作
上电复位 (POR)
欠压复位 (BOR)
MCLR 复位
看门狗定时器 (WDT)复位
堆栈上溢复位
堆栈下溢复位
RESET 指令
注:
20.2
写 T2CON 时 TMR2 不会清零。
Timer2 中断
Timer2 也可以产生可选的器件中断。 Timer2 输出信号
(TMR2 与 PR2 匹配时)为 4 位计数器 / 后分频器提供
输入。该计数器产生 TMR2 匹配中断,对应的中断标志
位为 PIR1 寄存器的 TMR2IF 位。可以通过将 PIE1 寄存
器的TMR2匹配中断允许位TMR2IE置1来允许该中断。
可以通过
T2CON
寄 存 器 的 后 分 频 比 控 制位
T2OUTPS<3:0> 在 16 个后分频比选项(从 1:1 至 1:16)
中选择其一。
DS41615A_CN 第 158 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 20-1:
U-0
T2CON:TIMER2 控制寄存器
R/W-0/0
R/W-0/0
—
R/W-0/0
R/W-0/0
T2OUTPS<3:0>
R/W-0/0
TMR2ON
R/W-0/0
R/W-0/0
T2CKPS<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现:读为 0
bit 6-3
T2OUTPS<3:0>:Timer2 输出后分频比选择位
0000 = 1:1 后分频比
0001 = 1:2 后分频比
0010 = 1:3 后分频比
0011 = 1:4 后分频比
0100 = 1:5 后分频比
0101 = 1:6 后分频比
0110 = 1:7 后分频比
0111 = 1:8 后分频比
1000 = 1:9 后分频比
1001 = 1:10 后分频比
1010 = 1:11 后分频比
1011 = 1:12 后分频比
1100 = 1:13 后分频比
1101 = 1:14 后分频比
1110 = 1:15 后分频比
1111 = 1:16 后分频比
bit 2
TMR2ON:Timer2 使能位
1 = 使能 Timer2
0 = 禁止 Timer2
bit 1-0
T2CKPS<1:0>:Timer2 时钟预分频比选择位
00 = 预分频器为 1
01 = 预分频器为 4
10 = 预分频器为 16
11 = 预分频器为 64
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 159 页
PIC12(L)F1501
表 20-1:
与 TIMER2 相关的寄存器汇总
Bit 7
名称
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
PIE1
TMR1GIE
ADIE
—
—
—
—
TMR2IE
TMR1IE
67
PIR1
TMR1GIF
ADIF
—
—
—
—
TMR2IF
TMR1IF
INTCON
PR2
70
157*
Timer2 模块周期寄存器
PWM1CON
PWM1EN
PWM1OE
PWM1OUT PWM1POL
—
—
—
—
165
PWM2CON
PWM2EN
PWM2OE
PWM2OUT PWM2POL
—
—
—
—
165
PWM3CON
PWM3EN
PWM3OE
PWM3OUT PWM3POL
—
—
—
—
165
PWM4CON
PWM4EN
PWM4OE
PWM4OUT PWM4POL
—
—
—
—
165
—
T2CON
TMR2
T2OUTPS<3:0>
TMR2ON
图注:
*
T2CKPS<1:0>
159
157*
8 位 TMR2 计数的保持寄存器
— = 未实现位,读为 0。 Timer2 模块不使用阴影单元。
提供寄存器信息的页。
DS41615A_CN 第 160 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
21.0
关于如何设置该模块使之工作于 PWM 模式的详细步
骤,请参见第 21.1.9 节 “使用 PWMx 引脚设置 PWM
操作”。
脉宽调制 (PWM)模块
PWM 模块可产生由占空比、周期和分辨率决定的脉宽
调制信号,占空比、周期和分辨率则通过以下寄存器进
行配置:
•
•
•
•
•
图 21-1:
PR2
T2CON
PWMxDCH
PWMxDCL
PWMxCON
PWM 输出
周期
脉冲宽度
TMR2 = PR2
TMR2 =
PWMxDCH<7:0>:PWMxDCL<7:6>
图 21-2 给出了 PWM 操作的简化框图。
TMR2 = 0
图 21-1 给出了 PWM 信号的典型波形图。
图 21-2:
PWM 简化框图
PWMxDCL<7:6>
占空比寄存器
PWMxDCH
PWMxOUT
至其他外设: CLC 和 CWG
锁存
(对于用户不可见)
输出使能(PWMxOE)
TRIS 控制
R
比较器
Q
0
PWMx
S
Q
1
TMR2 模块
TMR2
(1)
输出极性(PWMxPOL)
比较器
PR2
注
清零定时器和
PWMx 引脚,并
锁存占空比
1: 8 位定时器与 1/FOSC 的低 2 位相结合,通过 Timer2 预分频器进行调节,构成一个
10 位时基。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 161 页
PIC12(L)F1501
21.1
PWMx 引脚配置
当 TMR2 中的值与 PR2 中的值相等时,在下一个递增
周期将发生以下 3 个事件:
所有 PWM 输出都与端口数据锁存器复用。 用户必须通
过清零相关的 TRIS 位将引脚配置为输出。
注:
21.1.1
• TMR2 被清零。
• PWM 输出有效。 (例外情况: 当 PWM 占空
比 = 0% 时, PWM 输出将保持无效。)
• PWMxDCH 和 PWMxDCL 寄存器的值被锁存到缓
冲区中。
清零 PWMxOE 位将放弃对 PWMx 引脚的
控制。
基本操作
PWM 模块可产生一个 10 位分辨率的输出。 Timer2 和
PR2 用于设置 PWM 的周期。PWMxDCL 和 PWMxDCH
寄存器用于配置占空比。周期对于所有 PWM 模块是相
同的,而占空比则独立进行控制。
注:
注:
21.1.4
在确定 PWM 频率时不会用到 Timer2 后分
频比。后分频器可用不同于PWM输出频率
的频率进行伺服数据更新。
21.1.2
公式 21-2 用于计算 PWM 脉冲宽度。
公式 21-3 用于计算 PWM 占空比。
公式 21-2:
PWMxDCH 和 PWMxDCL 寄存器是双重缓
冲的。当 Timer2 与 PR2 匹配时,缓冲区会
发生更新。 在定时器匹配发生之前更新两
个寄存器时需要非常小心。
T OSC  (TMR2预分频值 )
注 : TOSC = 1/FOSC
PWM 输出极性
公式 21-3:
PWM 周期
占空比
 PWMxDCH:PWMxDCL<7:6> 
占空比 = ----------------------------------------------------------------------------------4  PR2 + 1 
PWM 周期可通过 Timer2 的 PR2 寄存器来指定。PWM
周期可由公式 21-1 计算。
公式 21-1:
脉冲宽度
脉冲宽度 =  PWMxDCH:PWMxDCL<7:6>  
输出极性通过将 PWMxCON 寄存器的 PWMxPOL 位置
1 来进行反相。
21.1.3
PWM 占空比
PWM 占空比通过将一个 10 位值写入 PWMxDCH 和
PWMxDCL 寄存器对来指定。 PWMxDCH 寄存器包含
高 8 位,而 PWMxDCL<7:6> 包含低 2 位。PWMxDCH
和 PWMxDCL 寄存器可以在任意时刻写入。
当 TMR2 清零时,与 Timer2 相关的所有 PWM 输出都
会置 1。 当 TMR2 等于相应 PWMxDCH (8 MSb)和
PWMxDCL<7:6> (2 LSb)寄存器指定的值时,每个
PWMx 都会清零。当值大于等于 PR2 时,PWM 输出永
远不会清零 (占空比为 100%)。
注:
Timer2 后分频器对 PWM 操作没有任何作
用。
8 位定时器 TMR2 寄存器与 1/FOSC 的低 2 位相结合,
通过 Timer2 预分频器进行调节,构成 10 位时基。如果
Timer2 预分频比设置为 1:1,则使用系统时钟。
PWM 周期
PWM 周期 =   PR2  + 1   4  T OSC 
(TMR2预分频值 )
注:
TOSC = 1/FOSC
DS41615A_CN 第 162 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
21.1.5
PWM 分辨率
分辨率决定给定周期的可用占空比数。例如,10 位分辨
率将可得到 1024 个不连续的占空比,而 8 位分辨率将
可得到 256 个不连续的占空比。
当 PR2 为 255 时, PWM 最大分辨率为 10 位。分辨率
是 PR2 寄存器值的函数,如公式 21-4 所示。
公式 21-4:
PWM 分辨率
log  4  PR2 + 1  - bits
Restion
分辨率 = ----------------------------------------位
log  2 
如果脉冲宽度值比周期长,则指定的 PWM
引脚将保持不变。
注:
表 21-1:
PWM 频率和分辨率示例 (FOSC = 20 MHz)
PWM 频率
定时器预分频值 (1、 4 和 64)
PR2 值
最大分辨率 (位)
表 21-2:
4.88 kHz
19.53 kHz
78.12 kHz
156.3 kHz
208.3 kHz
64
4
1
1
1
1
0xFF
0xFF
0xFF
0x3F
0x1F
0x17
10
10
10
8
7
6.6
19.61 kHz
76.92 kHz
153.85 kHz
200.0 kHz
PWM 频率和分辨率示例 (FOSC = 8 MHz)
PWM 频率
定时器预分频值 (1、 4 和 64)
PR2 值
最大分辨率 (位)
21.1.6
0.31 kHz
0.31 kHz
4.90 kHz
64
4
1
1
1
1
0x65
0x65
0x65
0x19
0x0C
0x09
8
8
8
6
5
5
休眠模式下的操作
在休眠模式下, TMR2 寄存器将不会递增,模块状态也
不会改变。如果 PWMx 引脚正在驱动一个值,则会继续
驱动该值。 当器件被唤醒时, TMR2 将从先前状态继
续。
21.1.7
改变系统时钟频率
PWM 频率是由系统时钟频率(FOSC)产生的。系统时
钟频率的任何改变都将导致 PWM 频率改变。 更多详细
信息,请参见第 5.0 节 “振荡器模块”。
21.1.8
复位的影响
任何复位都将强制所有端口为输入模式,并强制 PWM
寄存器为其复位状态。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 163 页
PIC12(L)F1501
21.1.9
使用 PWMx 引脚设置 PWM 操作
当使用 PWMx 引脚将模块配置为 PWM 操作时,可采用
以下步骤:
1.
2.
3.
4.
5.
6.
7.
8.
通过将相关的 TRIS 位置 1,禁止 PWMx 引脚输
出驱动器。
清零 PWMxCON 寄存器。
将 PWM 周期值装入 PR2 寄存器。
清零 PWMxDCH 寄存器和 PWMxDCL 寄存器的
bit <7:6>。
配置并启动 Timer2:
• 清零 PIR1 寄存器的 TMR2IF 中断标志位。请
参见下面的 “注”。
• 用 Timer2 预分频值配置 T2CON 寄存器的
T2CKPS 位。
• 通过将 T2CON 寄存器的 TMR2ON 位置 1 来
使能 Timer2。
使能 PWM 输出引脚并等待直到 Timer2 溢出,
PIR1 寄存器的 TMR2IF 位置 1。 请参见下面的
“注”。
通过将关联的 TRIS 位清零并将 PWMxCON 寄存
器的 PWMxOE 位置 1,使能 PWMx 引脚输出驱
动器。
通过将相应值装入 PWMxCON 寄存器来配置
PWM 模块。
注
1: 为在第一个 PWM 输出时发送完整的占空
比和周期,必须按给出的顺序执行上述步
骤。 如果并非必须以一个完整 PWM 信号
开始,则用步骤 8 来代替步骤 4。
2: 对 于 仅 针 对 其 他 外 设 的 操 作,请 禁 止
PWMx 引脚输出。
DS41615A_CN 第 164 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
21.2
PWM 寄存器定义
寄存器 21-1:
PWMxCON: PWM 控制寄存器
R/W-0/0
R/W-0/0
R-0/0
R/W-0/0
U-0
U-0
U-0
U-0
PWMxEN
PWMxOE
PWMxOUT
PWMxPOL
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
PWMxEN:PWM 模块使能位
1 = 使能模块
0 = 禁止模块
bit 6
PWMxOE:PWM 模块输出使能位
1 = 使能到 PWMx 引脚的输出
0 = 禁止到 PWMx 引脚的输出
bit 5
PWMxOUT:PWM 模块输出值位
bit 4
PWMxPOL:PWMx 输出极性选择位
1 = PWM 输出为低电平有效
0 = PWM 输出为高电平有效
bit 3-0
未实现:读为 0
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 165 页
PIC12(L)F1501
寄存器 21-2:
R/W-x/u
PWMxDCH: PWM 占空比高位
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
PWMxDCH<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
PWMxDCH<7:0>:PWM 占空比最高有效位
这些位是 PWM 占空比的高位。低 2 位位于 PWMxDCL 寄存器中。
寄存器 21-3:
R/W-x/u
PWMxDCL: PWM 占空比低位
R/W-x/u
PWMxDCL<7:6>
U-0
U-0
U-0
U-0
U-0
U-0
—
—
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-6
PWMxDCL<7:6>:PWM 占空比最低有效位
这些位是 PWM 占空比的低位。高位位于 PWMxDCH 寄存器中。
bit 5-0
未实现: 读为 0
表 21-3:
名称
与 PWM 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
PWM1EN
PWM1OE
PWM1OUT
PWM1POL
PR2
Bit 2
Bit 1
Bit 0
—
—
—
PWM1DCH
PWM1DCL
PWM2CON
PWM1DCH<7:0>
PWM1DCL<7:6>
PWM2EN
PWM2OE
PWM3CON
—
—
—
—
—
—
PWM2POL
—
—
—
—
PWM2DCH<7:0>
PWM2DCL<7:6>
PWM3EN
PWM3OE
PWM3DCL
PWM4CON
—
—
—
—
—
—
PWM3POL
—
—
—
—
PWM3DCH<7:0>
PWM3DCL<7:6>
PWM4EN
PWM4OE
—
—
—
—
—
—
PWM4POL
—
—
—
—
PWM4DCH<7:0>
PWM4DCL
PWM4DCL<7:6>
T2CON
—
—
—
—
T2OUTPS<3:0>
TMR2
—
图注:
*
1:
—
TRISA5
—
TMR2ON
TRISA4
—(1)
166
165
166
165
166
—
—
T2CKPS<1:0>
166
159
157*
Timer2 模块寄存器
TRISA
166
166
PWM4OUT
PWM4DCH
166
166
PWM3OUT
PWM3DCH
165
166
PWM2OUT
PWM2DCH
PWM2DCL
—
寄存器
所在页
157*
Timer2 模块周期寄存器
PWM1CON
注
Bit 3
TRISA2
TRISA1
TRISA0
102
- = 未实现位,读为 0, u = 不变, x = 未知。 PWM 不使用阴影单元。
提供寄存器信息的页。
未实现,读为 1。
DS41615A_CN 第 166 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
22.0
可配置逻辑单元 (CLC)
关于说明通过CLCx的信号流的简化框图,请参见图22-1。
可能的配置包括:
可配置逻辑单元(CLC)提供可超越软件执行速度限制
而工作的可编程逻辑。该逻辑单元最多可接收 16 个输
入信号,并通过使用可配置门将 16 个输入缩减为 4 条
驱动 8 种可选单输出逻辑功能之一的逻辑线。
• 组合逻辑
- AND
- NAND
- AND-OR
- AND-OR-INVERT
- OR-XOR
- OR-XNOR
输入源是以下信号源的组合:
•
•
•
•
I/O 引脚
内部时钟
外设
寄存器位
• 锁存器
- S-R
可将输出内部连接到外设和输出引脚。
- 带置 1 和复位功能的时钟控制 D 锁存器
- 带置 1 和复位功能的透明 D 锁存器
- 带复位功能的时钟控制 J-K 锁存器
CLCxIN[0]
CLCxIN[1]
CLCxIN[2]
CLCxIN[3]
CLCxIN[4]
CLCxIN[5]
CLCxIN[6]
CLCxIN[7]
CLCxIN[8]
CLCxIN[9]
CLCxIN[10]
CLCxIN[11]
CLCxIN[12]
CLCxIN[13]
CLCxIN[14]
CLCxIN[15]
CLCx 简化框图
D
Q1
输入数据选择门
图 22-1:
LCxOUT
MLCxOUT
LE
LCxOE
LCxEN
lcxg1
Q
TRIS 控制
lcxg2
逻辑
lcxg3
功能
lcxq
lcx_out
CLCx
lcxg4
LCxPOL
中断
LCxMODE<2:0>
检测
LCxINTP
LCxINTN
置1
CLCxIF
标志
中断
检测
注:请参见图 22-2。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 167 页
PIC12(L)F1501
22.1
CLCx 设置
22.1.1
有 16 个信号可用作可配置逻辑的输入。使用 4 个 8 输
入多路开关来选择要传递到下一阶段的输入。多路开关
的 16 个输入以 4 个为一组进行分组。每组可供 4 个多
路开关中的两个使用,在每种情形中,每组都与另一个
组进行配对。这种分组安排使这些多路开关最多可以选
择一个组两次,又不排除对另一个组的选择。
CLCx 模块的编程通过配置逻辑信号流中的 4 个阶段来
实现。这 4 个阶段是:
•
•
•
•
数据选择
数据选择
数据门控
逻辑功能选择
输出极性
数据输入使用 CLCxSEL0 和 CLCxSEL1 寄存器 (分别
为寄存器 22-3 和寄存器 22-4)进行选择。
每个阶段都可在运行时通过写入相应的 CLCx 特殊功能
寄存器来进行设置。这具有支持在程序执行期间即时执
行逻辑重新配置的额外优点。
数据选择通过图 22-2 左侧所示的 4 个多路开关来进行。
图中的数据输入使用通用编码的输入名称来表示。
表 22-1 列出了每个 CLC 模块中的通用编码的输入名称
和实际信号。标记为 lcxd1 至 lcxd4 的列表示所选数据输
入的多路开关输出。D1S 至 D4S 是多路开关选择输入代
码的缩写:分别为 LCxD1S<2:0> 至 LCxD4S<2:0>。选
择某列中的数据输入即排除了该列中的所有其他输入。
注:
表 22-1:
数据选择在上电时是未定义的。
CLCx 数据输入选择
lcxd1
D1S
lcxd2
D2S
lcxd3
D3S
lcxd4
D4S
CLCxIN[0]
000
—
—
100
CLC1IN0
CLC2IN0
CLCxIN[1]
001
—
—
101
CLC1IN1
CLC2IN1
CLCxIN[2]
010
—
—
110
sync_C1OUT
sync_C1OUT
CLCxIN[3]
011
—
—
111
CLCxIN[4]
100
000
—
—
保留
FOSC
保留
FOSC
数据输入
CLC 1
CLC 2
CLCxIN[5]
101
001
—
—
TMR0IF
TMR0IF
CLCxIN[6]
110
010
—
—
TMR1IF
TMR1IF
CLCxIN[7]
111
011
—
—
TMR2 = PR2
TMR2 = PR2
CLCxIN[8]
—
100
000
—
lc1_out
lc1_out
CLCxIN[9]
—
101
001
—
lc2_out
lc2_out
CLCxIN[10]
—
110
010
—
保留
保留
CLCxIN[11]
—
111
011
—
CLCxIN[12]
—
—
100
000
保留
NCO1OUT
保留
LFINTOSC
CLCxIN[13]
—
—
101
001
HFINTOSC
ADFRC
CLCxIN[14]
—
—
110
010
PWM3OUT
PWM1OUT
CLCxIN[15]
—
—
111
011
PWM4OUT
PWM2OUT
DS41615A_CN 第 168 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
22.1.2
图 22-2 右侧给出了数据门控的图示。其中仅详细说明了
一个门。其余三个门使用相同的配置,只是数据使能对
应于该门的使能信号。
数据门控
来自输入多路开关的输出将通过数据门控阶段转送到所
需的逻辑功能输入。每个数据门可以转送由 4 个选定输
入组成的任意组合。
注:
22.1.3
数据门控在上电时是未定义的。
逻辑功能
有 8 种可用的逻辑功能,包括:
• AND-OR
• OR-XOR
• AND
门阶段不仅仅是信号方向。可将门配置为将每个输入信
号指定为反相或同相数据。在每个门中,将定向后的信
号进行与运算。每个门的输出可以先进行反相,然后再
进入逻辑功能阶段。
•
•
•
•
•
门控实际上是一个 1 至 4 的输入 AND/NAND/OR/NOR
门。如果将每个输入和输出进行反相,则该门的作用是
对所有已使能数据输入进行或运算。如果输入和输出不
进行反相,则该门的作用是对所有已使能输入进行与运
算。
S-R 锁存器
带置 1 和复位功能的 D 型单稳态触发器
带复位功能的 D 型单稳态触发器
带复位功能的 J-K 型单稳态触发器
带置 1 和复位功能的透明锁存器
表 22-2 总结了可以通过使用门逻辑选择位在门 1 中获
得的基本逻辑。该表列出了具有 4 个输入变量的逻辑,
但每个门可以配置为使用少于 4 个输入。如果未选择
任何输入,则输出将为 0 或 1,具体取决于门输出极性
位。
这些逻辑功能如图 22-3 所示。每种逻辑功能具有 4 个
输入和 1 个输出。4 个输入是上一阶段的 4 个数据门输
出。输出送到反相阶段,接着送到其他外设、输出引脚,
然后回到 CLCx。
表 22-2:
可 配 置 逻 辑 单 元 中 的 最 后 一 个 阶 段 是 输 出 极 性。将
CLCxCON 寄存器的 LCxPOL 位置 1 时,来自逻辑阶段
的输出信号会进行反相。如果在允许中断时改变极性会
导致中断结果输出转换。
22.1.4
数据门控逻辑
CLCxGLS0
LCxG1POL
门逻辑
0x55
1
AND
0x55
0
NAND
0xAA
1
NOR
0xAA
0
OR
0x00
0
逻辑 0
0x00
1
逻辑 1
输出极性
用户可以 (但建议不要)同时选择同一输入的正负值。
如果这么做,则无论其他输入如何,门的输出都将为 0,
但可能会出现逻辑故障 (瞬态电流引起的脉冲)。如果
通道的输出必须为 0 或 1,则建议的方法是将所有门位
设置为 0,并使用门极性位来设置所需的电平。
数据门控使用如下逻辑门选择寄存器进行配置:
•
•
•
•
门 1:CLCxGLS0 (寄存器 22-5)
门 2:CLCxGLS1 (寄存器 22-6)
门 3:CLCxGLS2 (寄存器 22-7)
门 4:CLCxGLS3 (寄存器 22-8)
寄存器编号后缀不同于门编号,这是因为该模块的其他
形式在同一寄存器中具有多种门选择。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 169 页
PIC12(L)F1501
22.1.5
CLCx 设置步骤
作为中断服务的一部分,必须用软件将关联 PIR 寄存器
的 CLCxIF 位清零。如果在清零该标志时检测到另一个
边沿,则标志仍然会在序列结束时置 1。
在设置 CLCx 时,应遵循以下步骤:
• 通过清零 LCxEN 位来禁止 CLCx。
• 使用 CLCxSEL0 和 CLCxSEL1 寄存器选择所需的
输入 (见表 22-1)。
• 清零所有关联的 ANSEL 位。
• 将与输入关联的所有 TRIS 位置 1。
• 将与输出关联的所有 TRIS 位清零。
• 使用 CLCxGLS0、 CLCxGLS1、 CLCxGLS2 和
CLCxGLS3 寄存器通过 4 个门来使能所选输入。
• 使用 CLCxPOL 寄存器的 LCxPOL 位选择门输出
极性。
• 使用 CLCxCON 寄存器的 LCxMODE<2:0> 位选
择所需的逻辑功能。
• 使用 CLCxPOL 寄存器的 LCxPOL 位选择所需的
逻辑输出极性。(该步骤可与前面的门输出极性步
骤结合)。
• 如果要驱动 CLCx 引脚,则将 CLCxCON 寄存器
的 LCxOE 位置 1,同时将对应于该输出的 TRIS
位清零。
• 如果需要中断,则配置以下位:
- 上升沿事件时,将 CLCxCON 寄存器中的
LCxINTP 位置 1。
- 下降沿事件时,将 CLCxCON 寄存器中的
LCxINTN 位置 1。
- 将关联的 PIE 寄存器的 CLCxIE 位置 1。
- 将 INTCON 寄存器的 GIE 和 PEIE 位置 1。
• 通过将 CLCxCON 寄存器的 LCxEN 位置 1 来使能
CLCx。
22.2
22.3
输出镜像副本
所有 CLCxCON 输出位的镜像副本包含在 CLCxDATA
寄存器中。读取该寄存器将同时读取所有 CLC 的输出。
这可以防止由于测试或读取各个 CLCxCON 寄存器中的
CLCxOUT 位而导致读取差错。
22.4
复位的影响
发生复位后, CLCxCON 寄存器会清零。所有其他选择
和门控值保持不变。
22.5
休眠期间的操作
CLC 模块独立于系统时钟工作,只要选定的输入源保
持活动状态,它就会继续在休眠期间运行。
如果使能了 CLC 模块,并且选择 HFINTOSC 作为输
入源,则无论所选择的系统时钟源如何, HFINTOSC
都会在休眠期间保持活动状态。
即,如果在 CLC 使能时,同时选择 HFINTOSC 作为
系统时钟和 CLC 输入源,则在休眠期间 CPU 会进入
空闲状态,而 CLC 会继续工作,并且 HFINTOSC 将
保持活动状态。
这会直接影响休眠模式的电流。
22.6
备用引脚位置
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
CLCx 中断
如果相应的中断允许位置 1,则在 CLCx 的输出值改变
时,将会产生中断。因此,每个 CLC 中都具有一个上升
沿检测器和一个下降沿检测器。
触发其中一个边沿检测器,且其关联的使能位置 1 时,
关联 PIR 寄存器的 CLCxIF 位会置 1。 LCxINTP 位用于
允许上升沿中断,LCxINTN 位用于允许下降沿中断。它
们都位于 CLCxCON 寄存器中。
要完全允许中断,需要将以下位置 1:
• CLCxCON 寄存器的 LCxON 位
• 关联 PIE 寄存器的 CLCxIE 位
• CLCxCON 寄存器的 LCxINTP 位 (对于上升沿检
测)
• CLCxCON 寄存器的 LCxINTN 位 (对于下降沿检
测)
• INTCON 寄存器的 PEIE 和 GIE 位
DS41615A_CN 第 170 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
图 22-2:
CLCxIN[0]
CLCxIN[1]
CLCxIN[2]
CLCxIN[3]
CLCxIN[4]
CLCxIN[5]
CLCxIN[6]
CLCxIN[7]
输入数据选择和门控
数据选择
000
数据门 1
lcxd1T
LCxD1G1T
lcxd1N
LCxD1G1N
111
LCxD2G1T
LCxD1S<2:0>
LCxD2G1N
CLCxIN[4]
CLCxIN[5]
CLCxIN[6]
CLCxIN[7]
CLCxIN[8]
CLCxIN[9]
CLCxIN[10]
CLCxIN[11]
LCxD3G1T
lcxd2T
LCxD3G1N
LCxD4G1T
111
LCxD4G1N
000
数据门 2
lcxg2
lcxd3T
(与数据门 1 相同)
lcxd3N
数据门 3
111
lcxg3
LCxD3S<2:0>
CLCxIN[12]
CLCxIN[13]
CLCxIN[14]
CLCxIN[15]
CLCxIN[0]
CLCxIN[1]
CLCxIN[2]
CLCxIN[3]
LCxG1POL
lcxd2N
LCxD2S<2:0>
CLCxIN[8]
CLCxIN[9]
CLCxIN[10]
CLCxIN[11]
CLCxIN[12]
CLCxIN[13]
CLCxIN[14]
CLCxIN[15]
lcxg1
000
(与数据门 1 相同)
数据门 4
000
lcxg4
(与数据门 1 相同)
lcxd4T
lcxd4N
111
LCxD4S<2:0>
注:
在上电时,所有控制都是未定义的。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 171 页
PIC12(L)F1501
图 22-3:
可编程逻辑功能
AND - OR
OR - XOR
lcxg1
lcxg1
lcxg2
lcxg2
lcxq
lcxg3
lcxq
lcxg3
lcxg4
lcxg4
LCxMODE<2:0> = 000
LCxMODE<2:0> = 001
4 输入 AND
S-R 锁存器
lcxg1
lcxg1
lcxg2
lcxg2
lcxq
lcxg3
S
lcxg3
R
lcxg4
lcxg4
LCxMODE<2:0> = 010
lcxq
Q
LCxMODE<2:0> = 011
带置 1 和复位功能的 1 输入 D 触发器
带复位功能的 2 输入 D 触发器
lcxg4
lcxg2
D
S
lcxg4
Q
lcxq
D
lcxg2
lcxg1
lcxg1
Q
lcxq
R
R
lcxg3
lcxg3
LCxMODE<2:0> = 100
LCxMODE<2:0> = 101
带复位功能的 J-K 触发器
带置 1 和复位功能的 1 输入透明锁存器
lcxg4
lcxg2
J
Q
lcxq
lcxg1
lcxg4
K
R
lcxg2
D
lcxg1
LE
lcxg3
S
Q
lcxq
R
lcxg3
LCxMODE<2:0> = 110
DS41615A_CN 第 172 页
LCxMODE<2:0> = 111
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
22.7
CLCx 控制寄存器
寄存器 22-1:
CLCxCON:可配置逻辑单元控制寄存器
R/W-0/0
R/W-0/0
R-0/0
R/W-0/0
R/W-0/0
LCxEN
LCxOE
LCxOUT
LCxINTP
LCxINTN
R/W-0/0
R/W-0/0
R/W-0/0
LCxMODE<2:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxEN:可配置逻辑单元使能位
1 = 使能可配置逻辑单元,并混合输入信号
0 = 禁止可配置逻辑单元,并输出逻辑 0
bit 6
LCxOE:可配置逻辑单元输出使能位
1 = 使能可配置逻辑单元端口引脚输出
0 = 禁止可配置逻辑单元端口引脚输出
bit 5
LCxOUT:可配置逻辑单元数据输出位
只读: 经过 LCxPOL 之后的逻辑单元输出数据;从 lcx_out 线采样。
bit 4
LCxINTP:可配置逻辑单元上升边沿中断允许位
1 = CLCxIF 将在 lcx_out 上出现上升沿时置 1
0 = CLCxIF 不会置 1
bit 3
LCxINTN:可配置逻辑单元下降边沿中断允许位
1 = CLCxIF 将在 lcx_out 上出现下降沿时置 1
0 = CLCxIF 不会置 1
bit 2-0
LCxMODE<2:0>:可配置逻辑单元功能模式位
111 = 单元是带置 1 和复位功能的 1 输入透明锁存器
110 = 单元是带复位功能的 J-K 触发器
101 = 单元是带复位功能的 2 输入 D 触发器
100 = 单元是带置 1 和复位功能的 1 输入 D 触发器
011 = 单元是 S-R 锁存器
010 = 单元是 4 输入 AND 逻辑
001 = 单元是 OR-XOR 逻辑
000 = 单元是 AND-OR 逻辑
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 173 页
PIC12(L)F1501
寄存器 22-2:
CLCxPOL:信号极性控制寄存器
R/W-0/0
U-0
U-0
U-0
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
LCxPOL
—
—
—
LCxG4POL
LCxG3POL
LCxG2POL
LCxG1POL
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxPOL:LCOUT 极性控制位
1 = 逻辑单元的输出反相
0 = 逻辑单元的输出同相
bit 6-4
未实现:读为 0
bit 3
LCxG4POL:门 4 输出极性控制位
1 = 门 4 的输出在施加到逻辑单元时反相
0 = 门 4 的输出同相
bit 2
LCxG3POL:门 3 输出极性控制位
1 = 门 3 的输出在施加到逻辑单元时反相
0 = 门 3 的输出同相
bit 1
LCxG2POL:门 2 输出极性控制位
1 = 门 2 的输出在施加到逻辑单元时反相
0 = 门 2 的输出同相
bit 0
LCxG1POL:门 1 输出极性控制位
1 = 门 1 的输出在施加到逻辑单元时反相
0 = 门 1 的输出同相
DS41615A_CN 第 174 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 22-3:
U-0
—
CLCxSEL0:多路开关数据 1 和 2 选择寄存器
R/W-x/u
R/W-x/u
R/W-x/u
U-0
LCxD2S<2:0>
R/W-x/u
—
R/W-x/u
R/W-x/u
LCxD1S<2:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现:读为 0
bit 6-4
LCxD2S<2:0>:输入数据 2 选择控制位 (1)
111 = 为 lcxd2 选择 CLCxIN[11]
110 = 为 lcxd2 选择 CLCxIN[10]
101 = 为 lcxd2 选择 CLCxIN[9]
100 = 为 lcxd2 选择 CLCxIN[8]
011 = 为 lcxd2 选择 CLCxIN[7]
010 = 为 lcxd2 选择 CLCxIN[6]
001 = 为 lcxd2 选择 CLCxIN[5]
000 = 为 lcxd2 选择 CLCxIN[4]
bit 3
未实现:读为 0
bit 2-0
LCxD1S<2:0>:输入数据 1 选择控制位 (1)
111 = 为 lcxd1 选择 CLCxIN[7]
110 = 为 lcxd1 选择 CLCxIN[6]
101 = 为 lcxd1 选择 CLCxIN[5]
100 = 为 lcxd1 选择 CLCxIN[4]
011 = 为 lcxd1 选择 CLCxIN[3]
010 = 为 lcxd1 选择 CLCxIN[2]
001 = 为 lcxd1 选择 CLCxIN[1]
000 = 为 lcxd1 选择 CLCxIN[0]
注
1: 关于与输入关联的信号名称,请参见表 22-1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 175 页
PIC12(L)F1501
寄存器 22-4:
U-0
CLCxSEL1:多路开关数据 3 和 4 选择寄存器
R/W-x/u
—
R/W-x/u
R/W-x/u
U-0
LCxD4S<2:0>
R/W-x/u
—
R/W-x/u
R/W-x/u
LCxD3S<2:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
未实现:读为 0
bit 6-4
LCxD4S<2:0>:输入数据 4 选择控制位 (1)
111 = 为 lcxd4 选择 CLCxIN[3]
110 = 为 lcxd4 选择 CLCxIN[2]
101 = 为 lcxd4 选择 CLCxIN[1]
100 = 为 lcxd4 选择 CLCxIN[0]
011 = 为 lcxd4 选择 CLCxIN[15]
010 = 为 lcxd4 选择 CLCxIN[14]
001 = 为 lcxd4 选择 CLCxIN[13]
000 = 为 lcxd4 选择 CLCxIN[12]
bit 3
未实现:读为 0
bit 2-0
LCxD3S<2:0>:输入数据 3 选择控制位 (1)
111 = 为 lcxd3 选择 CLCxIN[15]
110 = 为 lcxd3 选择 CLCxIN[14]
101 = 为 lcxd3 选择 CLCxIN[13]
100 = 为 lcxd3 选择 CLCxIN[12]
011 = 为 lcxd3 选择 CLCxIN[11]
010 = 为 lcxd3 选择 CLCxIN[10]
001 = 为 lcxd3 选择 CLCxIN[9]
000 = 为 lcxd3 选择 CLCxIN[8]
注
1: 关于与输入关联的信号名称,请参见表 22-1。
DS41615A_CN 第 176 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 22-5:
CLCxGLS0:门 1 逻辑选择寄存器
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
LCxG1D4T
LCxG1D4N
LCxG1D3T
LCxG1D3N
LCxG1D2T
LCxG1D2N
LCxG1D1T
LCxG1D1N
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxG1D4T:门 1 数据 4 (同相)位
1 = lcxd4T 通过门输入到 lcxg1
0 = lcxd4T 未通过门输入到 lcxg1
bit 6
LCxG1D4N:门 1 数据 4 取反 (反相)位
1 = lcxd4N 通过门输入到 lcxg1
0 = lcxd4N 未通过门输入到 lcxg1
bit 5
LCxG1D3T:门 1 数据 3 (同相)位
1 = lcxd3T 通过门输入到 lcxg1
0 = lcxd3T 未通过门输入到 lcxg1
bit 4
LCxG1D3N:门 1 数据 3 取反 (反相)位
1 = lcxd3N 通过门输入到 lcxg1
0 = lcxd3N 未通过门输入到 lcxg1
bit 3
LCxG1D2T:门 1 数据 2 (同相)位
1 = lcxd2T 通过门输入到 lcxg1
0 = lcxd2T 未通过门输入到 lcxg1
bit 2
LCxG1D2N:门 1 数据 2 取反 (反相)位
1 = lcxd2N 通过门输入到 lcxg1
0 = lcxd2N 未通过门输入到 lcxg1
bit 1
LCxG1D1T:门 1 数据 1 (同相)位
1 = lcxd1T 通过门输入到 lcxg1
0 = lcxd1T 未通过门输入到 lcxg1
bit 0
LCxG1D1N:门 1 数据 1 取反 (反相)位
1 = lcxd1N 通过门输入到 lcxg1
0 = lcxd1N 未通过门输入到 lcxg1
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 177 页
PIC12(L)F1501
寄存器 22-6:
CLCxGLS1:门 2 逻辑选择寄存器
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
LCxG2D4T
LCxG2D4N
LCxG2D3T
LCxG2D3N
LCxG2D2T
LCxG2D2N
LCxG2D1T
LCxG2D1N
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxG2D4T:门 2 数据 4 (同相)位
1 = lcxd4T 通过门输入到 lcxg2
0 = lcxd4T 未通过门输入到 lcxg2
bit 6
LCxG2D4N:门 2 数据 4 取反 (反相)位
1 = lcxd4N 通过门输入到 lcxg2
0 = lcxd4N 未通过门输入到 lcxg2
bit 5
LCxG2D3T:门 2 数据 3 (同相)位
1 = lcxd3T 通过门输入到 lcxg2
0 = lcxd3T 未通过门输入到 lcxg2
bit 4
LCxG2D3N:门 2 数据 3 取反 (反相)位
1 = lcxd3N 通过门输入到 lcxg2
0 = lcxd3N 未通过门输入到 lcxg2
bit 3
LCxG2D2T:门 2 数据 2 (同相)位
1 = lcxd2T 通过门输入到 lcxg2
0 = lcxd2T 未通过门输入到 lcxg2
bit 2
LCxG2D2N:门 2 数据 2 取反 (反相)位
1 = lcxd2N 通过门输入到 lcxg2
0 = lcxd2N 未通过门输入到 lcxg2
bit 1
LCxG2D1T:门 2 数据 1 (同相)位
1 = lcxd1T 通过门输入到 lcxg2
0 = lcxd1T 未通过门输入到 lcxg2
bit 0
LCxG2D1N:门 2 数据 1 取反 (反相)位
1 = lcxd1N 通过门输入到 lcxg2
0 = lcxd1N 未通过门输入到 lcxg2
DS41615A_CN 第 178 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 22-7:
CLCxGLS2:门 3 逻辑选择寄存器
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
LCxG3D4T
LCxG3D4N
LCxG3D3T
LCxG3D3N
LCxG3D2T
LCxG3D2N
LCxG3D1T
LCxG3D1N
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxG3D4T:门 3 数据 4 (同相)位
1 = lcxd4T 通过门输入到 lcxg3
0 = lcxd4T 未通过门输入到 lcxg3
bit 6
LCxG3D4N:门 3 数据 4 取反 (反相)位
1 = lcxd4N 通过门输入到 lcxg3
0 = lcxd4N 未通过门输入到 lcxg3
bit 5
LCxG3D3T:门 3 数据 3 (同相)位
1 = lcxd3T 通过门输入到 lcxg3
0 = lcxd3T 未通过门输入到 lcxg3
bit 4
LCxG3D3N:门 3 数据 3 取反 (反相)位
1 = lcxd3N 通过门输入到 lcxg3
0 = lcxd3N 未通过门输入到 lcxg3
bit 3
LCxG3D2T:门 3 数据 2 (同相)位
1 = lcxd2T 通过门输入到 lcxg3
0 = lcxd2T 未通过门输入到 lcxg3
bit 2
LCxG3D2N:门 3 数据 2 取反 (反相)位
1 = lcxd2N 通过门输入到 lcxg3
0 = lcxd2N 未通过门输入到 lcxg3
bit 1
LCxG3D1T:门 3 数据 1 (同相)位
1 = lcxd1T 通过门输入到 lcxg3
0 = lcxd1T 未通过门输入到 lcxg3
bit 0
LCxG3D1N:门 3 数据 1 取反 (反相)位
1 = lcxd1N 通过门输入到 lcxg3
0 = lcxd1N 未通过门输入到 lcxg3
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 179 页
PIC12(L)F1501
寄存器 22-8:
CLCxGLS3:门 4 逻辑选择寄存器
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
LCxG4D4T
LCxG4D4N
LCxG4D3T
LCxG4D3N
LCxG4D2T
LCxG4D2N
LCxG4D1T
LCxG4D1N
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
LCxG4D4T:门 4 数据 4 (同相)位
1 = lcxd4T 通过门输入到 lcxg4
0 = lcxd4T 未通过门输入到 lcxg4
bit 6
LCxG4D4N:门 4 数据 4 取反 (反相)位
1 = lcxd4N 通过门输入到 lcxg4
0 = lcxd4N 未通过门输入到 lcxg4
bit 5
LCxG4D3T:门 4 数据 3 (同相)位
1 = lcxd3T 通过门输入到 lcxg4
0 = lcxd3T 未通过门输入到 lcxg4
bit 4
LCxG4D3N:门 4 数据 3 取反 (反相)位
1 = lcxd3N 通过门输入到 lcxg4
0 = lcxd3N 未通过门输入到 lcxg4
bit 3
LCxG4D2T:门 4 数据 2 (同相)位
1 = lcxd2T 通过门输入到 lcxg4
0 = lcxd2T 未通过门输入到 lcxg4
bit 2
LCxG4D2N:门 4 数据 2 取反 (反相)位
1 = lcxd2N 通过门输入到 lcxg4
0 = lcxd2N 未通过门输入到 lcxg4
bit 1
LCxG4D1T:门 4 数据 1 (同相)位
1 = lcxd1T 通过门输入到 lcxg4
0 = lcxd1T 未通过门输入到 lcxg4
bit 0
LCxG4D1N:门 4 数据 1 取反 (反相)位
1 = lcxd1N 通过门输入到 lcxg4
0 = lcxd1N 未通过门输入到 lcxg4
DS41615A_CN 第 180 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 22-9:
CLCDATA:CLC 数据输出寄存器
U-0
U-0
U-0
U-0
U-0
U-0
R-0
R-0
—
—
—
—
—
—
MLC2OUT
MLC1OUT
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-2
未实现:读为 0
bit 1
MLC2OUT:LC2OUT 的镜像副本位
bit 0
MLC1OUT:LC1OUT 的镜像副本位
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 181 页
PIC12(L)F1501
表 22-3:
名称
与 CLCx 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
—
Bit 1
Bit 0
寄存器
所在页
CLC1SEL
NCO1SEL
100
—
—
T1GSEL
CLC1CON
LC1EN
LC1OE
LC1OUT
LC1INTP
LC1INTN
CLC2CON
LC2EN
LC2OE
LC2OUT
LC2INTP
LC2INTN
CLCDATA
—
—
—
—
—
—
MLC2OUT
MLC1OUT
177
CLC1GLS0
LC1G1D4T
LC1G1D4N
LC1G1D3T
LC1G1D3N
LC1G1D2T
LC1G1D2N
LC1G1D1T
LC1G1D1N
177
CLC1GLS1
LC1G2D4T
LC1G2D4N
LC1G2D3T
LC1G2D3N
LC1G2D2T
LC1G2D2N
LC1G2D1T
LC1G2D1N
178
CLC1GLS2
LC1G3D4T
LC1G3D4N
LC1G3D3T
LC1G3D3N
LC1G3D2T
LC1G3D2N
LC1G3D1T
LC1G3D1N
179
CLC1GLS3
LC1G4D4T
LC1G4D4N
LC1G4D3T
LC1G4D3N
LC1G4D2T
LC1G4D2N
LC1G4D1T
LC1G4D1N
180
CLC1POL
LC1POL
—
—
—
LC1G4POL
LC1G3POL
LC1G2POL
LC1G1POL
174
CLC1SEL0
—
APFCON
CWG1BSEL CWG1ASEL
LC1D2S<2:0>
LC1MODE<2:0>
LC2MODE<2:0>
—
LC1D4S<2:0>
173
173
LC1D1S<2:0>
—
175
CLC1SEL1
—
CLC2GLS0
LC2G1D4T
LC2G1D4N
LC2G1D3T
LC2G1D3N
LC2G1D2T
LC2G1D2N
LC1D3S<2:0>
LC2G1D1T
LC2G1D1N
176
177
CLC2GLS1
LC2G2D4T
LC2G2D4N
LC2G2D3T
LC2G2D3N
LC2G2D2T
LC2G2D2N
LC2G2D1T
LC2G2D1N
178
CLC2GLS2
LC2G3D4T
LC2G3D4N
LC2G3D3T
LC2G3D3N
LC2G3D2T
LC2G3D2N
LC2G3D1T
LC2G3D1N
179
CLC2GLS3
LC2G4D4T
LC2G4D4N
LC2G4D3T
LC2G4D3N
LC2G4D2T
LC2G4D2N
LC2G4D1T
LC2G4D1N
180
—
—
—
LC2G4POL
LC2G3POL
LC2G2POL
LC2G1POL
174
CLC2POL
LC2POL
CLC2SEL0
—
LC2D2S<2:0>
—
LC2D1S<2:0>
175
CLC2SEL1
—
LC2D4S<2:0>
—
LC2D3S<2:0>
176
GIE
PEIE
TMR0IE
INTE
IOCIE
TMR0IF
INTF
IOCIF
66
PIE3
—
—
—
—
—
—
CLC2IE
CLC1IE
69
PIR3
—
—
—
—
—
—
CLC2IF
CLC1IF
72
TRISA
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
INTCON
图注:
— = 未实现,读为 0。 CLC 模块不使用阴影单元。
注
1: 未实现,读为 1。
DS41615A_CN 第 182 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
23.0
数控振荡器 (NCO)模块
数控振荡器 (NCOx)模块是一个定时器,它使用增加
递增值产生的溢出来对输入频率进行分频。加法运算方
法优于简单计数器驱动定时器的优点是分频分辨率不会
随分频值而变化。对于要求在固定占空比下确保频率精
度和精细分辨率的应用, NCOx 最为有用。
NCOx 的特性包括:
•
•
•
•
•
•
•
16 位递增功能
固定占空比 (FDC)模式
脉冲频率 (PF)模式
输出脉冲宽度控制
多个时钟输入源
输出极性控制
中断能力
图 23-1 给出了 NCOx 模块的简化框图。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 183 页
数控振荡器 (NCOx)模块的简化框图
递增
16
(1)
缓冲区
16
中断事件
将 NCOxIF 标志置 1

NCO1CLK
LC1OUT
FOSC
HFINTOSC
20
11
10
累加器
01
20
00
D
NCOxOUT
Q
NxOE
溢出
Q
NCOx 时钟
NxEN
TRIS 控制
0
NCOx
1
初稿
2
NxCKS<2:0>
溢出
S
Q
NxPFM
NxPOL
R
3
 2012 Microchip Technology Inc.
NCOx 时钟
脉动计数器
注
至 CLC 和 CWG
Q
NxPWS<2:0>
复位
1: 递增寄存器是双重缓冲的,因而无需先禁止 NCOx 模块即可对值进行更改。 它们在此仅作为参考。 缓冲区对于用户是
不可访问的。
PIC12(L)F1501
DS41615A_CN 第 184 页
图 23-1:
PIC12(L)F1501
23.1
NCOx 工作原理
23.1.3
加法器
NCOx 的工作方式是重复向累加器增加一个固定值。 达
到特定输入时钟频率时会进行加法运算。累加器会定期
发生进位溢出,该位为原始的 NCOx 输出。 这实际上是
按照增加值与最大累加器值的比率来降低输入时钟速
率。请参见公式 23-1。
NCOx 加法器是一个全加器,它独立于系统时钟工作。
先前结果与递增值的加法运算结果将在每个输入时钟的
上升沿替换累加器值。
NCOx 输出可以通过延长脉冲或翻转触发器进一步进行
修正。然后,修正后的 NCOx 输出在内部分配至其他外
设,以及可选地输出到引脚上。 累加器溢出还会产生一
个中断。
递增值存储在两个 8 位寄存器中,以构成一个 16 位递
增值。按从低字节到高字节的顺序排列为:
23.1.4
• NCOxINCL
• NCOxINCH
NCOx 周期以离散步阶进行变化,从而产生一个平均频
率。 该输出依靠接收电路 (即, CWG 或外部谐振转换
器电路)对 NCOx 输出进行平均,从而降低偏差。
23.1.1
这两个寄存器都是可读写的。 递增寄存器是双重缓冲
的,因而无需先禁止 NCOx 模块即可对值进行更改。
禁 止 模 块 后,会 立 即 装 载 缓 冲 区。必 须 先 写 入
NCOxINCH 寄存器,因为在对 NCOxINCL 寄存器执行
写操作之后,缓冲区数据装入会与 NCOx 操作同步进
行。
NCOx 时钟源
NCOx 可用的时钟源包括:
•
•
•
•
HFINTOSC
FOSC
LCxOUT
CLKIN 引脚
注:
NCOx 时 钟 源 通 过 配 置 NCOxCLK
NxCKS<2:0> 位进行选择。
23.1.2
递增寄存器
用户不能访问递增缓冲寄存器。
寄 存器中的
累加器
累加器是一个 20 位寄存器。 可通过 3 个寄存器对累加
器进行读写访问:
• NCOxACCL
• NCOxACCH
• NCOxACCU
公式 23-1:
NCO 时钟频率xIValue
递增值
F OVERFLOW = NCOequency
-----------------------------------------------------n
2
n = 累加器宽度(单位为位)
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 185 页
PIC12(L)F1501
23.2
固定占空比 (FDC)模式
在固定占空比 (FDC)模式下,每次累加器发生溢出
时,输出都会发生翻转。只要递增值保持恒定,就将得
到一个 50% 的占空比。更多信息,请参见图 23-2。
可通过将 NCOxCON 寄存器中的 NxPFM 位清零来选择
FDC 模式。
23.3
脉冲频率 (PF)模式
在脉冲频率(PF)模式下,每次累加器发生溢出时,输
出都会变为有效,并持续一个或多个时钟周期。时钟周
期结束时,输出会恢复为无效状态。这将产生一个脉冲
输出。
输出会在紧随溢出事件之后的时钟上升沿变为有效。更
多信息,请参见图 23-2。
有效状态和无效状态的值取决于 NCOxCON 寄存器中的
极性位 NxPOL。
可通过将 NCOxCON 寄存器中的 NxPFM 位置 1 来选择
PF 模式。
23.3.1
输出脉冲宽度控制
在 PF 模式下工作时,输出有效状态的宽度可以在多个
时钟周期之间变化。 可使用 NCOxCLK 寄存器中的
NxPWS<2:0> 位来选择各种脉冲宽度。
当选定的脉冲宽度大于累加器溢出时间帧时,NCOx 操
作的输出是不确定的。
23.4
输出极性控制
NCOx 模块中的最后一个阶段是输出极性。 NCOxCON
寄存器中的 NxPOL 位用于选择输出极性。 如果在允许
中断时改变极性会导致中断结果输出转换。
NCOx 输出可以在内部由源代码或其他外设使用。 通过
读取 NCOxCON 寄存器的 NxOUT(只读)位可以实现
这一点。
DS41615A_CN 第 186 页
初稿
 2012 Microchip Technology Inc.
FDC 输出模式工作原理图
时钟源
NCOx
递增值
NCOx
累加器
输入
2000h
02000h
04000h
06000h
08000h
0A000h
0C000h
0E000h
10000h
02000h
04000h
06000h
08000h
0A000h
0C000h
0E000h
10000h
02000h
2000h
4000h
6000h
8000h
A000h
C000h
E000h
0000h
04000h
Tadder
溢出的是累加器的高字节
累加器输入溢出
Tadder_
初稿
NCOx
累加器值
0000h
2000h
4000h
6000h
8000h
A000h
C000h
E000h
0000h
Tadder
溢出时
PWS = 000
中断
事件
 2012 Microchip Technology Inc.
NCOx 输出
FDC 模式
NCOx 输出 PF 模式
NCOX PWS = 000
NCOx 输出 PF 模式
NCOx PWS = 010
Tadder
2000h
PIC12(L)F1501
DS41615A_CN 第 187 页
图 23-2:
PIC12(L)F1501
23.5
中断
当累加器发生溢出时, PIRx 寄存器的 NCOx 中断标志
位NCOxIF会置1。要允许中断事件,必须将以下位置1:
•
•
•
•
NCOxCON 寄存器的 NxEN 位
PIEx 寄存器的 NCOxIE 位
INTCON 寄存器的 PEIE 位
INTCON 寄存器的 GIE 位
中断必须用软件通过在中断服务程序中将 NCOxIF 位清
零而清除。
23.6
复位的影响
发生复位时,所有 NCOx 寄存器都会清零。
23.7
休眠模式下的操作
NCO 模块独立于系统时钟工作,只要选定的时钟源保
持活动状态,它就会在休眠期间继续运行。
如果使能了 NCO 模块,并且选择 HFINTOSC 作为时
钟源,则无论所选择的系统时钟源如何, HFINTOSC
都会在休眠期间保持活动状态。
即,如果在 NCO 使能时,同时选择 HFINTOSC 作为
系统时钟和 NCO 时钟源,则 CPU 在休眠期间将处于
空闲状态,而 NCO 会继续工作,并且 HFINTOSC 将
保持活动状态。
这会直接影响休眠模式的电流。
23.8
备用引脚位置
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
DS41615A_CN 第 188 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
23.9
NCOx 控制寄存器
寄存器 23-1:
NCOxCON: NCOx 控制寄存器
R/W-0/0
R/W-0/0
R-0/0
R/W-0/0
U-0
U-0
U-0
R/W-0/0
NxEN
NxOE
NxOUT
NxPOL
—
—
—
NxPFM
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7
NxEN: NCOx 使能位
1 = 使能 NCOx 模块
0 = 禁止 NCOx 模块
bit 6
NxOE: NCOx 输出使能位
1 = 使能 NCOx 输出引脚
0 = 禁止 NCOx 输出引脚
bit 5
NxOUT: NCOx 输出位
1 = NCOx 输出为高电平
0 = NCOx 输出为低电平
bit 4
NxPOL: NCOx 极性位
1 = NCOx 输出信号为高电平有效
0 = NCOx 输出信号为低电平有效
bit 3-1
未实现: 读为 0
bit 0
NxPFM: NCOx 脉冲频率模式位
1 = NCOx 在脉冲频率模式下工作
0 = NCOx 在固定占空比模式下工作
寄存器 23-2:
R/W-0/0
NCOxCLK:NCOx 输入时钟控制寄存器
R/W-0/0
R/W-0/0
NxPWS<2:0>
U-0
U-0
U-0
—
—
—
R/W-0/0
R/W-0/0
NxCKS<1:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-5
NxPWS<2:0>:NCOx 输出脉冲宽度选择位 (1, 2)
111 = 128 个 NCOx 时钟周期
110 = 64 个 NCOx 时钟周期
101 = 32 个 NCOx 时钟周期
100 = 16 个 NCOx 时钟周期
011 = 8 个 NCOx 时钟周期
010 = 4 个 NCOx 时钟周期
001 = 2 个 NCOx 时钟周期
000 = 1 个 NCOx 时钟周期
bit 4-2
未实现: 读为 0
bit 1-0
NxCKS<1:0>:NCOx 时钟源选择位
11 = NCO1CLK
10 = LC1OUT
01 = FOSC
00 = HFINTOSC (16 MHz)
注
1: 只有在脉冲频率模式下工作时,才会应用 NxPWS。
2: 如果 NCOx 脉冲宽度大于 NCOx 溢出周期,操作将是不确定的。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 189 页
PIC12(L)F1501
寄存器 23-3:
R/W-0/0
NCOxACCL: NCOx 累加器寄存器——低字节
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
NCOxACC<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
NCOxACC<7:0>:NCOx 累加器的低字节
寄存器 23-4:
R/W-0/0
NCOxACCH: NCOx 累加器寄存器——高字节
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
NCOxACC<15:8>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
NCOxACC<15:8>:NCOx 累加器的高字节
寄存器 23-5:
NCOxACCU: NCOx 累加器寄存器——最高字节
U-0
U-0
U-0
U-0
—
—
—
—
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
NCOxACC<19:16>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-4
未实现:读为 0
bit 3-0
NCOxACC<19:16>:NCOx 累加器的最高字节
DS41615A_CN 第 190 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 23-6:
R/W-0/0
NCOxINCL: NCOx 递增寄存器——低字节
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-1/1
NCOxINC<7:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
寄存器 23-7:
R/W-0/0
NCOxINC<7:0>:NCOx 递增值的低字节
NCOxINCH: NCOx 递增寄存器——高字节
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
NCOxINC<15:8>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
bit 7-0
NCOxINC<15:8>:NCOx 递增值的高字节
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 191 页
PIC12(L)F1501
表 23-1:
名称
APFCON
INTCON
与 NCOx 相关的寄存器汇总
Bit 7
Bit 6
CWG1BSEL CWG1ASEL
GIE
PEIE
Bit 2
Bit 1
Bit 0
寄存器
所在页
T1GSEL
—
CLC1SEL
NCO1SEL
100
IOCIE
TMR0IF
INTF
IOCIF
66
Bit 5
Bit 4
Bit 3
—
—
TMR0IE
INTE
NCO1ACCH
NCO1ACC<15:8>
190
NCO1ACCL
NCO1ACC<7:0>
190
—
NCO1ACCU
NCO1CLK
NCO1CON
NCO1ACC<19:16>
N1PWS<2:0>
N1EN
N1OE
N1OUT
NCO1INCH
—
—
—
N1POL
—
—
190
N1CKS<1:0>
—
N1PFM
NCO1INC<15:8>
NCO1INCL
189
189
191
NCO1INC<7:0>
191
PIE2
—
—
C1IE
—
—
NCO1IE
—
—
PIR2
—
—
C1IF
—
—
NCO1IF
—
—
71
TRISA
—
—
TRISA5
TRISA4
—(1)
TRISA2
TRISA1
TRISA0
102
68
图注:
x = 未知, u = 不变, — = 未实现,读为 0, q = 值取决于具体条件。 NCO 模块不使用阴影单元。
注
1: 未实现,读为 1。
DS41615A_CN 第 192 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
24.0
互补波形发生器 (CWG)模块
互补波形发生器 (CWG)可从选择的输入源产生带死
区延时的互补波形。
CWG 模块具有以下特性:
•
•
•
•
•
可选死区时钟源控制
可选输入源
输出使能控制
输出极性控制
使用独立的 6 位上升沿和下降沿死区计数器进行
死区控制
• 可使用以下方法启动自动关断控制:
- 可选关断源
- 自动重启使能
- 自动关断引脚改写控制
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 193 页
© 2012 Microchip Technology Inc.
图 24-1:
简化的 CWG 框图
GxASDLA
GxCS
00
1
FOSC
2
cwg_clock
1
0
10
1
11
GxASDLA = 01
GxOEA
CWGxDBR
HFINTOSC
6
GxIS
1
3
初稿
async_C1OUT
保留
PWM1OUT
PWM2OUT
PWM3OUT
PWM4OUT
NCO1OUT
LC1OUT
EN
R
S
Q
R
Q
=
0
TRISx
GxPOLA
输入源
CWGxA
CWGxDBF
6
GxOEB
EN
R
TRISx
=
0
GxPOLB
1
CWGxB
GxASDLB = 01
00
DS41615A_CN 第 194 页
LC2OUT
GxASCLC
GxASE 数据位
WRITE
x = CWG 模块编号
GxASE
自动关断源
GxARSEN
S
Q
R
Q
设置控制权
D
S
Q
关断
0
10
1
11
GxASDLB
2
PIC12(L)F1501
CWG1FLT(INT 引脚)
GxASDFLT
async_C1OUT
GxASDC1
PIC12(L)F1501
图 24-2:
使用 PWM1 的典型 CWG 工作原理 (无自动关断)
cwg_clock
PWM1
CWGxA
上升沿死区
上升沿死区
下降沿死区
上升沿死区
下降沿死区
CWGxB
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 195 页
PIC12(L)F1501
24.1
24.4.2
基本操作
极性控制
每个 CWG 输出的极性可以单独进行选择。当输出极性
位置 1 时,相应的输出为高电平有效。清零输出极性位
时,相应输出将配置为低电平有效。但是,极性不会影
响改写电平。使用 CWGxCON0 寄存器的 GxPOLA 和
GxPOLB 位选择输出极性。
CWG 基于 4 个可选输入源之一来产生一个双输出互补
波形。
每路输出由关到开的转变可能会因其他输出由开到关的
转变而受到延时,因而在未驱动任何输出前会立即产生
延时。这被称为死区,第 24.5 节 “死区控制”对此进
行了介绍。图 24-2 给出了基于单输入信号产生的带死区
的典型工作波形。
24.5
死区控制
死区控制用于提供不重叠的输出信号,以防止功率开关
中产生直通电流。 CWG 包含两个 6 位死区计数器。一
个死区计数器用于输入源控制的上升沿。另一个用于输
入源控制的下降沿。
可能需要防止电路发生故障、反馈事件太晚送达或根本
不送达的可能性。在这种情况下,必须在故障条件造成
损坏之前终止有效驱动。这被称为自动关断,第 24.9 节
“自动关断控制”对此进行了介绍。
CWG 模块允许选择以下时钟源:
死区的计时方式是对 CWG 时钟周期进行计数,从 0 开
始一直计数至上升沿或下降沿死区计数器寄存器中的
值。请参见 CWGxDBR 和 CWGxDBF 寄存器(分别为
寄存器 24-4 和寄存器 24-5)。
• Fosc (系统时钟)
• HFINTOSC (仅限 16 MHz)
24.6
24.2
时钟源
使用 CWGxCON0 寄存器(寄存器 24-1)的 G1CS0 位
选择时钟源。
24.3
上升沿死区在禁止 CWGxB 输出时延迟使能 CWGxA 输
出。当输入源信号出现上升沿时,上升沿死区计时开
始。发生这种情况时, CWGxB 输出会立即禁止,上升
沿死区延时开始计时。当达到上升沿死区延时时,使能
CWGxA 输出。
可选输入源
CWG 可基于以下输入源产生互补波形:
•
•
•
•
•
•
•
上升沿死区
CWGxDBR 寄存器用于设置输入源信号上升沿死区时间
间隔的持续时间。该持续时间为 0 至 64 个死区计数。
async_C1OUT
PWM1
PWM2
PWM3
PWM4
N1OUT
LC1OUT
死区总是在输入源信号的上升沿停止计数。计数为 0 表
示不存在死区。
如果输入源信号出现的时间不足以完成计数,则相应输
出上不会产生任何输出。
使用CWGxCON1寄存器(寄存器24-2)中的GxIS<2:0>
位选择输入源。
24.4
输出控制
使 能 CWG 模 块之 后,立 即 配 置 互 补 驱 动,并清零
CWGxA 和 CWGxB 驱动。
24.4.1
输出使能
每个 CWG 输出引脚都具有独立的输出使能控制。使用
CWGxCON0 寄存器的 GxOEA 和 GxOEB 位选择输出
使能。当输出使能控制清零时,模块对引脚无控制权。
当输出使能置 1 时,每次选择端口极性都将对引脚施加
改写值或有效 PWM 波形。输出引脚使能取决于模块使
能位 GxEN。当 GxEN 清零时,CWG 输出使能和 CWG
驱动电平没有任何作用。
DS41615A_CN 第 196 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
24.7
下降沿死区
下降沿死区在禁止 CWGxA 输出时延迟使能 CWGxB 输
出。当输入源出现下降沿时,下降沿死区计时开始。发
生这种情况时, CWGxA 输出会立即禁止,下降沿死区
延 时 开 始 计 时。当 达 到 下 降 沿 死 区 延 时 时,使 能
CWGxB 输出。
CWGxDBF寄存器用于设置输入源信号下降沿死区时间
间隔的持续时间。该持续时间为 0 至 64 个死区计数。
死区总是在输入源信号的下降沿停止计数。计数为 0 表
示不存在死区。
如果输入源信号出现的时间不足以完成计数,则相应输
出上不会产生任何输出。
示例请参见图 24-3 和图 24-4。
24.8
死区偏差
在输入源的上升沿和下降沿触发死区计数器时,输入可
能是异步的。这会在死区延时中产生一定的偏差。最大
偏差等于 1 个 CWG 时钟周期。更多详细信息,请参见
公式 24-1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 197 页
© 2012 Microchip Technology Inc.
图 24-3:
死区工作原理 (CWGxDBR = 01H, CWGxDBF = 02H)
cwg_clock
输入源
CWGxA
CWGxB
图 24-4:
死区工作原理 (CWGxDBR = 03H, CWGxDBF = 04H,输入源比死区短)
初稿
cwg_clock
输入源
CWGxA
输入源比死区短
CWGxB
PIC12(L)F1501
DS41615A_CN 第 198 页
PIC12(L)F1501
公式 24-1:
死区偏差
1
TDEADBAND_UNCERTAINTY = ---------------------------Fcwg_clock
示例 :
Fcwg_clock = 16 MHz
因此:
1
TDEADBAND_UNCERTAINTY = ---------------------------Fcwg_clock
1 = -----------------16 MHz
= 62.5ns
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 199 页
PIC12(L)F1501
24.9
24.10 休眠期间的操作
自动关断控制
自动关断是一种使用特定改写信号立即改写 CWG 输出
电平,从而安全关断电路的方法。关断状态可以自动清
除,也可以一直保持,直到用软件清除。
24.9.1
CWG 模块独立于系统时钟工作,只要选定的时钟和输
入源保持活动状态,它就会继续在休眠期间运行。
只要使能了 CWG 模块,输入源保持活动状态,并且选
择 HFINTOSC 作为时钟源,则无论所选择的系统时钟
源如何, HFINTOSC 都会在休眠期间保持活动状态。
关断
关断状态可以通过以下两种方法之一进入:
即,如果在 CWG 使能且输入源处于活动状态时,选择
HFINTOSC 同时作为系统时钟和 CWG 时钟源,则
CPU 在休眠期间将处于空闲状态,而 CWG 会继续工
作,并且 HFINTOSC 将保持活动状态。
• 软件产生
• 外部输入
24.9.1.1
由软件产生的关断
这会直接影响休眠模式的电流。
将 CWGxCON2 寄存器的 GxASE 位置 1 可以强制 CWG
进入关断状态。
24.11 备用引脚位置
在禁止自动重启时,只要 GxASE 位置 1,就会一直保
持关断状态。
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
在使能自动重启时, GxASE 位会自动清零,并在发生
下一个上升沿事件时继续工作。请参见图 24-6。
24.9.1.2
外部输入源
外部关断输入提供了 在出现故 障条件 时安全地暂停
CWG 工作的最快办法。当选定的任意关断输入变为有
效时, CWG 输出会立即变为选定的改写电平,无任何
软件延时。可以选择两个输入源的任意组合来产生关断
条件。这些输入源是:
• async_C1OUT
• LC2OUT
• CWG1FLT
使用 CWGxCON2 寄存器(寄存器 24-3)的 GxASDS0
和 GxASDS1 位选择关断输入。
注:
关断输入是电平敏感的,而不是边沿敏感
的。只要关断输入电平仍然存在,除非禁
止自动关断,否则无法清除关断状态。
DS41615A_CN 第 200 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
24.12 配置 CWG
24.12.1
以下步骤说明了如何正确配置 CWG 来确保同步启动:
在关断输入为真时驱动到输出引脚上的电平通过
CWGxCON2 寄存器 (寄存器 24-3)的 GxASDLA 和
GxASDLB 位进行控制。 GxASDLA 控制 CWG1A 改写
电平, GxASDLB 控制 CWG1B 改写电平。控制位逻辑
电平对应于处于关断状态时的输出逻辑驱动电平。极性
控制不应用于改写电平。
1.
2.
3.
4.
5.
6.
7.
8.
9.
确保对应于 CWGxA 和 CWGxB 的 TRIS 控制位
置 1,从而将它们都配置为输入。
清零 GxEN 位 (如果尚未清零)。
使用 CWGxDBR 和 CWGxDBF 寄存器设置所需
的死区时间。
在 CWGxCON2 自动关断寄存器中设置以下控
制:
• 选择所需的关断源。
• 将两个输出改写选择为所需电平 (即使不使
用自动关断也需如此设置,因为启动将从关
断状态开始)。
• 将 GxASE 位置 1,将 GxARSEN 位清零。
使用 CWGxCON1 寄存器选择所需的输入源。
在 CWGxCON0 寄存器中配置以下控制:
• 选择所需的时钟源。
• 选择所需的输出极性。
• 将要使用的输出设为使能。
将 GxEN 位置 1。
将对应于要使用的 CWGxA 和 CWGxB 的 TRIS
控制位清零,从而将这些引脚配置为输出。
如果要使用自动重启,则将 GxARSEN 位置 1,
GxASE
位 将 会 自 动 清 零。否 则,通过清零
GxASE 位来启动 CWG。
24.12.2
引脚改写电平
自动关断 / 重启
在发生自动关断事件之后,可以使用两种方法来恢复工
作:
• 软件控制
• 自动重启
重启方法使用 CWGxCON2 寄存器的 GxARSEN 位进行
选择。图 24-5 和图 24-6 给出了软件控制重启和自动重
启的波形。
24.12.2.1
软件控制重启
当 CWGxCON2 寄存器的 GxARSEN 位清零时,在自动
关断事件之后,必须用软件重启 CWG。
清除关断状态要求所有选定的关断输入为低电平,否则
GxASE 位将保持置 1。改写电平将一直保持有效,直到
GxASE 位清零之后发生第一个上升沿事件为止。然后,
CWG 将继续工作。
24.12.2.2
自动重启
当 CWGxCON2 寄存器的 GxARSEN 位置 1 时,CWG
将从自动关断状态中自动重启。
当所有关断源变为低电平时,GxASE 位将自动清零。改
写电平将一直保持有效,直到 GxASE 位清零之后发生
第一个上升沿事件为止。然后, CWG 将继续工作。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 201 页
© 2012 Microchip Technology Inc.
图 24-5:
禁止自动重启时的关断功能 (GxARSEN = 0, GxASDLA = 01, GxASDLB = 01)
关断事件停止
GxASE 用软件清零
CWG 输入源
关断源
GxASE
CWG1A
三态(无脉冲)
CWG1B
三态(无脉冲)
无关断条件
输出继续
关断
初稿
图 24-6:
使能自动重启时的关断功能 (GxARSEN = 1, GxASDLA = 01, GxASDLB = 01)
关断事件停止
GxASE 由硬件自动清零
CWG 输入源
GxASE
DS41615A_CN 第 202 页
CWG1A
三态(无脉冲)
CWG1B
三态(无脉冲)
无关断条件
关断
输出继续
PIC12(L)F1501
关断源
PIC12(L)F1501
24.13 CWG 控制寄存器
寄存器 24-1:
CWGxCON0: CWG 控制寄存器 0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
R/W-0/0
U-0
U-0
R/W-0/0
GxEN
GxOEB
GxOEA
GxPOLB
GxPOLA
—
—
GxCS0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7
GxEN:CWGx 使能位
1 = 使能模块
0 = 禁止模块
bit 6
GxOEB:CWGxB 输出使能位
1 = CWGxB 在相应的 I/O 引脚上可用
0 = CWGxB 在相应的 I/O 引脚上不可用
bit 5
GxOEA:CWGxA 输出使能位
1 = CWGxA 在相应的 I/O 引脚上可用
0 = CWGxA 在相应的 I/O 引脚上不可用
bit 4
GxPOLB:CWGxB 输出极性位
1 = 输出极性翻转
0 = 输出极性不翻转
bit 3
GxPOLA:CWGxA 输出极性位
1 = 输出极性翻转
0 = 输出极性不翻转
bit 2-1
未实现: 读为 0
bit 0
GxCS0: CWGx 时钟源选择位
1 = HFINTOSC
0 = FOSC
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 203 页
PIC12(L)F1501
寄存器 24-2:
R/W-x/u
CWGxCON1: CWG 控制寄存器 1
R/W-x/u
R/W-x/u
GxASDLB<1:0>
R/W-x/u
U-0
GxASDLA<1:0>
R/W-0/0
—
R/W-0/0
R/W-0/0
GxIS<2:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7-6
GxASDLB<1:0>:CWGxB 的 CWGx 关断状态
当发生自动关断事件 (GxASE = 1)时:
11 = CWGxB 引脚被驱动为 1,与 GxPOLB 位的设置无关。
10 = CWGxB 引脚被驱动为 0,与 GxPOLB 位的设置无关。
01 = CWGxB 引脚为三态
00 = 在选定的死区时间间隔之后, CWGxB 引脚被驱动为其无效状态。GxPOLB 仍将控制输出的
极性。
bit 5-4
GxASDLA<1:0>:CWGxA 的 CWGx 关断状态
当发生自动关断事件 (GxASE = 1)时:
11 = CWGxA 引脚被驱动为 1,与 GxPOLA 位的设置无关。
10 = CWGxA 引脚被驱动为 0,与 GxPOLA 位的设置无关。
01 = CWGxA 引脚为三态
00 = 在选定的死区时间间隔之后, CWGxA 引脚被驱动为其无效状态。GxPOLA 仍将控制输出的
极性。
bit 3
未实现:读为 0
bit 2-0
GxIS<2:0>: CWGx 输入源选择位
111 = LC1OUT
110 = N1OUT
101 = PWM4OUT
100 = PWM3OUT
011 = PWM2OUT
010 = PWM1OUT
001 = async_C1OUT
000 = 保留
DS41615A_CN 第 204 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
寄存器 24-3:
CWGxCON2: CWG 控制寄存器 2
R/W-0/0
R/W-0/0
G1ASE
G1ARSEN
U-0
—
U-0
—
U-0
R/W-0/0
R/W-0/0
R/W-0/0
—
G1ASDC1
G1ASDFLT
G1ASDCLC2
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7
G1ASE:自动关断事件状态位
1 = 发生了自动关断事件
0 = 未发生自动关断事件
bit 6
G1ARSEN:自动重启使能位
1 = 使能自动重启
0 = 禁止自动重启
bit 5-3
未实现:读为 0
bit 2
G1ASDC1: 基于比较器 1 的 CWG 自动关断使能位
1 = 在比较器 1 的输出为高电平时关断
0 = 比较器 1 的输出对关断没有任何作用
bit 1
G1ASDFLT: 基于 FLT 的 CWG 自动关断使能位
1 = 在 CWG1FLT 输入为低电平时关断
0 = CWG1FLT 输入对关断没有任何作用
bit 0
G1ASDCLC2:基于 CLC2 的 CWG 自动关断使能位
1 = 在 LC2OUT 为高电平时关断
0 = LC2OUT 对关断没有任何作用
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 205 页
PIC12(L)F1501
寄存器 24-4:
CWGxDBR:互补波形发生器 (CWGx)上升沿死区计数寄存器
U-0
U-0
—
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
CWGxDBR<5:0>
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7-6
未实现:读为 0
bit 5-0
CWGxDBR<5:0>:互补波形发生器 (CWGx)上升沿计数
11 1111 = 死区为 63-64 个计数
11 1110 = 死区为 62-63 个计数



00 0010 = 死区为 2-3 个计数
00 0001 = 死区为 1-2 个计数
00 0000 = 死区为 0 个计数
寄存器 24-5:
CWGxDBF:互补波形发生器 (CWGx)下降沿死区计数寄存器
U-0
U-0
—
—
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
R/W-x/u
CWGxDBF<5:0>
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
u = 不变
x = 未知
-n/n = POR 和 BOR 时的值 / 所有其他复位时的值
1=置1
0 = 清零
q = 值取决于具体条件
bit 7-6
未实现:读为 0
bit 5-0
CWGxDBF<5:0>:互补波形发生器 (CWGx)下降沿计数
11 1111 = 死区为 63-64 个计数
11 1110 = 死区为 62-63 个计数



00 0010 = 死区为 2-3 个计数
00 0001 = 死区为 1-2 个计数
00 0000 = 死区为 0 个计数。死区生成被旁路。
DS41615A_CN 第 206 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
24.13.1
备用引脚位置
该模块具有以下 I/O 引脚:通过使用备用引脚功能寄存
器 APFCON,可将 I/O 引脚转移到其他位置。要确定可
转移哪些引脚以及其在复位时的默认位置,请参见第
11.1 节 “备用引脚功能”了解更多信息。
表 24-1:
名称
与 CWG 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
寄存器
所在页
ANSELA
—
—
—
ANSA4
—
ANSA2
ANSA1
ANSA0
103
APFCON
CWG1BSEL
CWG1ASEL
—
—
T1GSEL
—
CLC1SEL
NCO1SEL
100
G1EN
G1OEB
G1OEA
G1POLB
G1POLA
—
—
G1CS0
203
CWG1CON0
CWG1CON1
CWG1CON2
CWG1DBF
CWG1DBR
TRISA
G1ASDLB<1:0>
G1ASDLA<1:0>
—
—
G1IS<1:0>
204
G1ASE
G1ARSEN
—
—
CWG1DBF<5:0>
206
—
CWG1DBR<5:0>
206
—
—
—
—
TRISA5
—
—
TRISA4
—(1)
G1ASDC1
TRISA2
G1ASDFLT
TRISA1
G1ASDCLC2
TRISA0
205
102
图注:
x = 未知, u = 不变, – = 未实现位,读为 0。 CWG 不使用阴影单元。
注
1: 未实现,读为 1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 207 页
PIC12(L)F1501
注:
DS41615A_CN 第 208 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
25.0
25.3
在线串行编程 (ICSP™)
与目标器件的连接通常通过 ICSP™ 插头来实现。开发
工具中常见的连接器是采用 6P6C(6 引脚,6 连接器)
配置的 RJ-11。请参见图 25-1。
ICSP™ 编程允许用户在生产电路板时使用未编程器件。
编程可以在组装流程之后完成,从而可以使用最新版本
的固件或者定制固件对器件编程。ICSP™ 编程需要 5 个
引脚:
• ICSPCLK
• ICSPDAT
• MCLR/VPP
• VDD
• VSS
图 25-1:
在编程 / 校验模式下,通过串行通信对程序存储器、用户
ID 和配置字进行编程。ICSPDAT 引脚是用于传输串行数
据的双向 I/O, ICSPCLK 引脚是时钟输入引脚。关于
ICSP™ 的更多信息,请参见“PIC16193X/PIC16LF193X
Memory Programming Specification”(DS41360)。
25.1
常用编程接口
VDD
ICD RJ-11 型连接器接口
ICSPDAT
NC
2 4 6
ICSPCLK
1 3 5
VPP/MCLR
VSS
目标
PC 板
底部
高电压编程进入模式
引脚说明 *
通过将 ICSPCLK 和 ICSPDAT 引脚保持为低电平,然
后将 MCLR/VPP 上的电压升至 VIHH,将器件置于高电
压编程进入模式。
1 = VPP/MCLR
2 = VDD 目标电源
3 = VSS (地)
25.2
低电压编程进入模式
4 = ICSPDAT
5 = ICSPCLK
通过低电压编程进入模式,只需使用VDD 就可以对PIC®
闪存 MCU 进行编程,而无需使用高电压。当配置字的
LVP 位设置为 1 时,将会使能低电压 ICSP 编程进入模
式。要禁止低电压 ICSP 模式, LVP 位必须编程为 0。
6 = 无连接
进入低电压编程进入模式需要执行以下步骤:
1.
2.
另一种常用于 PICkit™ 编程器的连接器是间距为 0.1 英
寸的标准 6 引脚插头。请参见图 25-2。
MCLR 电压设置为 VIL。
在提供 ICSPCLK 时钟的同时,在 ICSPDAT 上
送出 32 位密钥序列。
完成密钥序列后,在需要维持编程 / 校验模式的时间内,
必须将 MCLR 保持为 VIL。
如果使能了低电压编程 (LVP = 1),则 MCLR 复位功
能会被自动使能,无法禁止。更多信息,请参见 MCLR
章节。
LVP 位只能通过使用高电压编程模式重新设定为 0。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 209 页
PIC12(L)F1501
图 25-2:
PICkit™ 编程器型连接器接口
引脚 1 指示标记
引脚说明 *
1 = VPP/MCLR
1
2
3
4
5
6
2 = VDD 目标电源
3 = VSS (地)
4 = ICSPDAT
5 = ICSPCLK
6 = 无连接
*
此 6 引脚插头 (0.100" 间距)可连接 0.025" 的方形引脚。
关于其他接口建议,请在进行 PCB 设计之前参见具体
的器件编程器手册。
建议使用隔离器件来隔离编程引脚与其他电路。隔离类
型高度依赖于具体应用,可能会包含诸如电阻、二极管
甚至跳线之类的元件。更多信息,请参见图 25-3。
图 25-3:
ICSP™ 编程的典型连接
外部
编程
信号
VDD
要编程的器件
VDD
VDD
VPP
MCLR/VPP
VSS
VSS
数据
ICSPDAT
时钟
ICSPCLK
*
*
*
至正常连接
* 隔离器件 (根据需要而定)。
DS41615A_CN 第 210 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
26.0
26.1
指令集汇总
任何一条指定文件寄存器作为指令一部分的指令都进行
读 - 修改 - 写(Read-Modify-Write,R-M-W)操作。根
据指令或目标标识符 d 读寄存器、修改数据和存储结
果。即使指令是写入该寄存器,还是会执行对寄存器的
读操作。
每条指令都是一个包含操作码和所有必需操作数的 14
位字。操作码可以分为三大类。
• 针对字节的操作类指令
• 针对位的操作类指令
• 立即数和控制操作类指令
表 26-1:
立即数和控制类指令字格式最为丰富。
表 26-3 列出了 MPASM
TM
读 - 修改 - 写操作
汇编器可识别的指令。
操作码字段说明
字段
除了以下指令 (可能需要 2 或 3 个周期),所有指令都
在单个指令周期内执行:
f
• 子程序指令需要两个周期 (CALL 和 CALLW)
• 中断或子程序返回指令需要两个周期 (RETURN、
RETLW 和 RETFIE)
• 程序跳转指令需要两个周期 (GOTO、 BRA、
BRW、 BTFSS、 BTFSC、 DECFSZ 和 INCSFZ)
• 当任意指令引用某个间接文件寄存器,并且文件选
择寄存器指向程序存储器时,将需要使用一个额外
的指令周期。
一个指令周期包含4个振荡器周期;振荡器频率为4 MHz
时,得到的标称指令执行速率为 1 MHz。
文件寄存器地址 (0x00 至 0x7F)
W
工作寄存器 (累加器)
b
8 位文件寄存器内的位地址
k
立即数字段、常数或标号
x
无关位 (= 0 或 1)。
汇编器将生成 x = 0 的代码。为了与所有的
Microchip 软件工具兼容,建议使用这种形式。
d
目标寄存器选择; d = 0:结果存入 W,
d = 1:结果存入文件寄存器 f。
默认值 d = 1。
n
FSR 或 INDF 编号 (0-1)。
mm
所有指令示例均使用格式 0xhh 来表示一个十六进制
数,其中 h 表示一个十六进制数字。
说明
预 / 后递增 / 递减模式选择
表 26-2:
缩写说明
字段
程序计数器
TO
超时位
C
进位位
DC
Z
PD
© 2012 Microchip Technology Inc.
初稿
说明
PC
半进位位
全零标志位
掉电位
DS41615A_CN 第 211 页
PIC12(L)F1501
图 26-1:
指令的通用格式
针对字节的文件寄存器操作类指令
13
8 7 6
0
操作码
d
f(寄存器地址)
d = 0,结果存入 W
d = 1,结果存入 f
f = 7 位文件寄存器地址
针对位的文件寄存器操作类指令
13
10 9
7 6
0
操作码
b(位地址) f(寄存器地址)
b = 3 位位地址
f = 7 位文件寄存器地址
立即数和控制操作类指令
一般格式
13
操作码
8
7
0
k(立即数)
k = 8 位立即数的值
仅限 CALL 和 GOTO 指令
13
11 10
0
k(立即数)
操作码
k = 11 位立即数的值
仅限 MOVLP 指令
13
操作码
7
6
0
k(立即数)
k = 7 位立即数的值
仅限 MOVLB 指令
13
操作码
5 4
0
k(立即数)
k = 5 位立即数的值
仅限 BRA 指令
13
操作码
9
8
0
k(立即数)
k = 9 位立即数的值
FSR 偏移指令
13
操作码
7
6
n
5
0
k(立即数)
n = 相应的 FSR
k = 6 位立即数的值
FSR 递增指令
13
操作码
3 2 1
0
n m(模式)
n = 相应的 FSR
m = 2 位模式值
仅限操作码
13
0
操作码
DS41615A_CN 第 212 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
表 26-3:
PIC12(L)F1501 增强指令集
助记符,
操作数
说明
周期数
14 位操作码
MSb
受影响的
状态位
LSb
注
针对字节的文件寄存器操作类指令
ADDWF
ADDWFC
ANDWF
ASRF
LSLF
LSRF
CLRF
CLRW
COMF
DECF
INCF
IORWF
MOVF
MOVWF
RLF
RRF
SUBWF
SUBWFB
SWAPF
XORWF
f, d
f, d
f, d
f, d
f, d
f, d
f
–
f, d
f, d
f, d
f, d
f, d
f
f, d
f, d
f, d
f, d
f, d
f, d
W 与 f 相加
W 与 f 相加 (带进位)
W 和 f 作逻辑与运算
算术右移
逻辑左移
逻辑右移
将 f 清零
将 W 清零
对 f 取反
f 递减 1
f 递增 1
W 和 f 作逻辑或运算
传送 f
将 W 的内容传送到 f
f 带进位循环左移
f 带进位循环右移
f 减去 W
f 减去 W (带借位)
将 f 中的两个半字节进行交换
W 和 f 作逻辑异或运算
DECFSZ
INCFSZ
f, d
f, d
f 递减 1,为 0 则跳过
f 递增 1,为 0 则跳过
BCF
BSF
f, b
f, b
将 f 中的某位清零
将 f 中的某位置 1
BTFSC
BTFSS
f, b
f, b
测试 f 中的某位,为 0 则跳过
测试 f 中的某位,为 1 则跳过
ADDLW
ANDLW
IORLW
MOVLB
MOVLP
MOVLW
SUBLW
XORLW
k
k
k
k
k
k
k
k
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
00
11
00
11
11
11
00
00
00
00
00
00
00
00
00
00
00
11
00
00
0111
1101
0101
0111
0101
0110
0001
0001
1001
0011
1010
0100
1000
0000
1101
1100
0010
1011
1110
0110
dfff
dfff
dfff
dfff
dfff
dfff
lfff
0000
dfff
dfff
dfff
dfff
dfff
1fff
dfff
dfff
dfff
dfff
dfff
dfff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
00xx
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
C, DC, Z
C, DC, Z
Z
C, Z
C, Z
C, Z
Z
Z
Z
Z
Z
Z
Z
C
C
C, DC, Z
C, DC, Z
Z
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
针对字节的跳过操作类指令
1(2)
1(2)
1011 dfff ffff
1111 dfff ffff
1, 2
1, 2
01
01
00bb bfff ffff
01bb bfff ffff
2
2
01
01
10bb bfff ffff
11bb bfff ffff
1, 2
1, 2
11
11
11
00
11
11
11
11
1110
1001
1000
0000
0001
0000
1100
1010
00
00
针对位的文件寄存器操作类指令
1
1
针对位的跳过操作类指令
1 (2)
1 (2)
立即数操作类指令
注
1
1
1
1
1
1
1
1
立即数与 W 相加
立即数和 W 作逻辑与运算
立即数和 W 作逻辑或运算
将立即数传送到 BSR
将立即数传送到 PCLATH
将立即数传送到 W
立即数减去 W
立即数和 W 作逻辑异或运算
kkkk
kkkk
kkkk
001k
1kkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
C, DC, Z
Z
Z
C, DC, Z
Z
1: 如果程序计数器 (PC)被修改或条件测试结果为真,则该指令需要两个周期。 第二个周期执行一条 NOP 指令。
2: 如果该指令寻址的是 INDF 寄存器,并且相应 FSR 的 MSb 置 1,则该指令将需要一个额外的指令周期。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 213 页
PIC12(L)F1501
表 26-3:
PIC12(L)F1501 增强指令集 (续)
助记符,
操作数
说明
周期数
LSb
受影响的
状态位
11
00
10
00
10
00
11
00
001k
0000
0kkk
0000
1kkk
0000
0100
0000
kkkk
0000
kkkk
0000
kkkk
0000
kkkk
0000
kkkk
1011
kkkk
1010
kkkk
1001
kkkk
1000
固有操作类指令
1
1
1
1
1
1
00
00
00
00
00
00
0000
0000
0000
0000
0000
0000
0110
0000
0110
0000
0110
0110
0100 TO, PD
0000
0010
0001
0011 TO, PD
0fff
k
–
k
–
k
k
k
–
相对跳转
使用 W 进行相对跳转
调用子程序
使用 W 调用子程序
跳转到地址
从中断返回
返回并将立即数送入 W
从子程序返回
CLRWDT
NOP
OPTION
RESET
SLEEP
TRIS
–
–
–
–
–
f
将看门狗定时器清零
空操作
将 W 的内容装入 OPTION_REG 寄存器
软件器件复位
进入待机模式
将 W 的内容装入 TRIS 寄存器
ADDFSR
MOVIW
n, k
n mm
MOVWI
k[n]
n mm
k[n]
MSb
控制操作类指令
2
2
2
2
2
2
2
2
BRA
BRW
CALL
CALLW
GOTO
RETFIE
RETLW
RETURN
注
14 位操作码
优化的 C 编译器指令
1
立即数 k 与 FSRn 相加
1
将间接寄存器 FSRn 传送到 W,带有预 / 后递
增 / 递减修改量 mm
1
将 INDFn 传送到 W,变址间接寻址
1
将 W 传送到间接寄存器 FSRn,带有预 / 后递
增 / 递减修改量 mm
1
将 W 传送到 INDFn,变址间接寻址
注
11
00
0001 0nkk kkkk
0000 0001 0nmm Z
2, 3
11
00
1111 0nkk kkkk Z
0000 0001 1nmm
2
2, 3
11
1111 1nkk kkkk
2
1: 如果程序计数器 (PC)被修改或条件测试结果为真,则该指令需要两个周期。 第二个周期执行一条 NOP 指令。
2: 如果该指令寻址的是 INDF 寄存器,并且相应 FSR 的 MSb 置 1,则该指令将需要一个额外的指令周期。
3: 请参见 MOVIW 和 MOVWI 指令说明表。
DS41615A_CN 第 214 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
26.2
指令说明
ADDFSR
立即数与 FSRn 相加
ANDLW
立即数和 W 作逻辑与运算
语法:
[ 标号 ] ADDFSR FSRn, k
语法:
[ 标号 ] ANDLW
操作数:
-32  k  31
n  [ 0, 1]
操作数:
0  k  255
操作:
FSR(n) + k  FSR(n)
受影响的状态位:
无
说明:
将有符号 6 位立即数 k 与
FSRnH:FSRnL 寄存器对的内容相加。
k
操作:
(W) .AND. (k)  (W)
受影响的状态位:
Z
说明:
将 W 寄存器中的内容与 8 位立即数 k
进行逻辑与运算。 结果存入 W 寄存
器。
ANDWF
W 和 f 作逻辑与运算
FSRn 地址范围限制为 000h-FFFFh。
传送地址超出该边界时, FSR 会发生
计满返回。
ADDLW
立即数与 W 相加
语法:
[ 标号 ] ADDLW
操作数:
0  k  255
操作:
(W) + k  (W)
受影响的状态位:
C、 DC 和 Z
说明:
将 W 寄存器的内容与 8 位立即数 k 相
加,结果存入 W 寄存器。
k
语法:
[ 标号 ] ANDWF
操作数:
0  f  127
d 0,1
操作:
(W) .AND. (f)  ( 目标寄存器 )
受影响的状态位:
Z
说明:
将 W 寄存器的内容与寄存器 f 的内容
进行逻辑与运算。 如果 d 为 0,结果存
入 W 寄存器。 如果 d 为 1,结果存入 f
寄存器。
ASRF
算术右移
语法:
[ 标号 ] ASRF
f,d
ADDWF
W 与 f 相加
语法:
[ 标号 ] ADDWF
操作数:
0  f  127
d 0,1
操作数:
0  f  127
d [0,1]
操作:
(W) + (f)  ( 目标寄存器 )
操作:
受影响的状态位:
C、 DC 和 Z
(f<7>) dest<7>
(f<7:1>)  dest<6:0>
(f<0>)  C
说明:
将 W 寄存器的内容与寄存器 f 的内容
相加。 如果 d 为 0,结果存入 W 寄存
器。 如果 d 为 1,结果存入 f 寄存器。
受影响的状态位:
C和Z
说明:
将寄存器 f 的内容连同进位标志位一
起右移 1 位。 MSb 保持不变。 如果 d
为 0,结果存入 W。 如果 d 为 1,结
果存入 f 寄存器。
ADDWFC
f,d
寄存器 f
W 与 f 相加 (带进位)
语法:
[ 标号 ] ADDWFC
操作数:
0  f  127
d [0,1]
操作:
(W) + (f) + (C)  dest
受影响的状态位:
C、 DC 和 Z
说明:
将 W 的内容、进位标志位与数据存储
单元 f 的内容相加。 如果 d 为 0,结果
存入 W。 如果 d 为 1,结果存入数据
存储单元 f。
© 2012 Microchip Technology Inc.
f {,d}
C
f {,d}
初稿
DS41615A_CN 第 215 页
PIC12(L)F1501
BTFSC
测试 f 中的某位,为 0 则跳过
语法:
[ 标号 ] BTFSC f,b
0  f  127
0b7
操作数:
0  f  127
0b7
0  (f<b>)
操作:
如果 (f<b>) = 0,则跳过
受影响的状态位:
无
受影响的状态位:
无
说明:
寄存器 f 中的位 b 清零。
说明:
如果寄存器 f 的位 b 为 1,则执行下一
条指令。
如果寄存器 f 的位 b 为 0,则放弃下一
条指令,转而执行一条 NOP 指令,使
之成为一条双周期指令。
BRA
相对跳转
BTFSS
测试 f 中的某位,为 1 则跳过
语法:
[ 标号 ] BRA label
[ 标号 ] BRA $+k
语法:
[ 标号 ] BTFSS f,b
操作数:
操作数:
-256  label - PC + 1  255
-256  k  255
0  f  127
0b<7
操作:
(PC) + 1 + k  PC
如果 (f<b>) = 1,则跳过
操作:
受影响的状态位:
无
受影响的状态位:
无
说明:
说明:
将有符号 9 位立即数 k 与 PC 相加。
由于 PC 将递增以便取出下一条指令,
所以新地址将为 PC + 1 + k。该指令
为一条双周期指令。 该跳转的地址范
围存在限制。
如果寄存器 f 的位 b 为 0,则执行下一
条指令。
如果位 b 为 1,则丢弃下一条指令,转
而执行一条 NOP 指令,使之成为一条
双周期指令。
BRW
使用 W 进行相对跳转
BCF
将 f 中的某位清零
语法:
[ 标号 ] BCF
操作数:
操作:
f,b
语法:
[ 标号 ] BRW
操作数:
无
操作:
(PC) + (W)  PC
受影响的状态位:
无
说明:
将 W 的内容 (无符号)与 PC 相加。
由于 PC 将递增以便取出下一条指令,
所以新地址将为 PC + 1 + (W)。 该指
令为一条双周期指令。
BSF
将 f 中的某位置 1
语法:
[ 标号 ] BSF
操作数:
0  f  127
0b7
操作:
1  (f<b>)
f,b
受影响的状态位:
无
说明:
寄存器 f 中的位 b 置 1。
DS41615A_CN 第 216 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
CALL
调用子程序
CLRWDT
将看门狗定时器清零
语法:
[ 标号 ] CALL k
语法:
[ 标号 ] CLRWDT
操作数:
0  k  2047
操作数:
无
操作:
(PC)+ 1 TOS
k  PC<10:0>
(PCLATH<4:3>)  PC<12:11>
操作:
受影响的状态位:
无
00h  WDT
0  WDT 预分频器
1  TO
1  PD
说明:
调用子程序。 首先,将返回地址 (PC
+ 1)压入堆栈。 11 位直接地址值被装
入 PC 的 <10:0> 位。 PC 的高位值从
PCLATH 装入。 CALL 是一条双周期指
令。
受影响的状态位:
TO 和 PD
说明:
CLRWDT 指令复位看门狗定时器及其预
分频器。 状态位 TO 和 PD 均被置 1。
CALLW
使用 W 调用子程序
COMF
对 f 取反
语法:
[ 标号 ] CALLW
语法:
[ 标号 ] COMF
操作数:
无
操作数:
操作:
(PC) +1  TOS
(W)  PC<7:0>
(PCLATH<6:0>) PC<14:8>
0  f  127
d  [0,1]
操作:
(f)  ( 目标寄存器 )
受影响的状态位:
Z
说明:
将寄存器 f 的内容取反。 如果 d 为 0,
结果存入 W 寄存器。如果 d 为 1,结
果存回寄存器 f。
DECF
f 递减 1
f,d
受影响的状态位:
无
说明:
使用 W 调用子程序。首先,将返回地
址 (PC + 1)压入返回堆栈。 然后,
W 的内容被装入 PC<7:0>, PCLATH
的内容被装入 PC<14:8>。 CALLW 是
一条双周期指令。
CLRF
将 f 清零
语法:
[ 标号 ] CLRF
语法:
[ 标号 ] DECF f,d
操作数:
0  f  127
操作数:
操作:
00h  (f)
1Z
0  f  127
d  [0,1]
操作:
(f) - 1  ( 目标寄存器 )
Z
受影响的状态位:
Z
说明:
寄存器 f 的内容被清零,并且 Z 位被
置 1。
说明:
将寄存器 f 的内容递减 1。 如果 d 为
0,结果存入 W 寄存器。如果 d 为 1,结
果存入 f 寄存器。
CLRW
将 W 清零
受影响的状态位:
f
语法:
[ 标号 ] CLRW
操作数:
无
操作:
00h  (W)
1Z
受影响的状态位:
Z
说明:
W 寄存器被清零。 全零位 (Z)被置
1。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 217 页
PIC12(L)F1501
DECFSZ
f 递减 1,为 0 则跳过
INCFSZ
f 递增 1,为 0 则跳过
语法:
[ 标号 ] DECFSZ f,d
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
操作数:
0  f  127
d  [0,1]
操作:
(f) - 1  ( 目标寄存器 ) ;
如果结果 = 0 则跳过
操作:
(f) + 1  ( 目标寄存器 ),
如果结果 = 0 则跳过
受影响的状态位:
无
受影响的状态位:
无
说明:
将寄存器 f 的内容递减 1。 如果 d 为
0,结果存入 W 寄存器。如果 d 为 1,结
果存入 f 寄存器。
如果结果为 1,则执行下一条指令。 如
果结果为 0,转而执行一条 NOP 指令,
使之成为一条双周期指令。
说明:
将寄存器 f 的内容递增 1。 如果 d 为
0,结果存入 W 寄存器。如果 d 为 1,结
果存入 f 寄存器。
如果结果为 1,则执行下一条指令。 如
果结果为 0,转而执行一条 NOP 指令,
使之成为一条双周期指令。
GOTO
无条件跳转
IORLW
立即数和 W 作逻辑或运算
语法:
[ 标号 ]
语法:
[ 标号 ]
操作数:
0  k  2047
操作数:
0  k  255
操作:
k  PC<10:0>
PCLATH<4:3>  PC<12:11>
操作:
(W) .OR. k  (W)
受影响的状态位:
Z
受影响的状态位:
无
说明:
说明:
GOTO 是一条无条件跳转指令。11 位立
即数被装入 PC 的 <10:0> 位。 PC 的
高位值从 PCLATH<4:3> 装入。 GOTO
是一条双周期指令。
将 W 寄存器的内容与 8 位立即数 k 进
行逻辑或运算。 结果存入 W 寄存器。
INCF
f 递增 1
语法:
[ 标号 ]
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
操作数:
0  f  127
d  [0,1]
操作:
(f) +1  ( 目标寄存器 )
操作:
(W) .OR. (f)  ( 目标寄存器 )
受影响的状态位:
Z
受影响的状态位:
Z
说明:
将寄存器 f 的内容递增 1。 如果 d 为
0,结果存入 W 寄存器。如果 d 为 1,结
果存入 f 寄存器。
说明:
将 W 寄存器的内容与寄存器 f 的内容
进行逻辑或运算。 如果 d 为 0,结果存
入 W 寄存器。 如果 d 为 1,结果存入 f
寄存器。
DS41615A_CN 第 218 页
GOTO k
IORWF
INCF f,d
初稿
INCFSZ f,d
IORLW k
W 和 f 作逻辑或运算
IORWF
f,d
© 2012 Microchip Technology Inc.
PIC12(L)F1501
LSLF
逻辑左移
语法:
[ 标号 ] LSLF
操作数:
0  f  127
d [0,1]
操作:
(f<7>)  C
(f<6:0>)  dest<7:1>
0  dest<0>
f {,d}
受影响的状态位:
C和Z
说明:
将寄存器 f 的内容连同进位标志位一起
左移 1 位。 0 移入 LSb。 如果 d 为 0,
结果存入 W。 如果 d 为 1,结果存入 f
寄存器。
C
寄存器 f
0
MOVF
传送 f
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
操作:
(f)  ( 目标寄存器 )
受影响的状态位:
Z
说明:
根据 d 的状态,将寄存器 f 的内容传送
到目标寄存器。如果 d = 0,目标寄存
器为 W 寄存器。 如果 d = 1,目标寄
存器为文件寄存器 f 本身。由于状态标
志位 Z 要受影响,可用 d = 1 对文件寄
存器进行检测。
指令字数:
1
指令周期数:
1
示例:
LSRF
逻辑右移
语法:
[ 标号 ] LSRF
操作数:
0  f  127
d [0,1]
操作:
0  dest<7>
(f<7:1>)  dest<6:0>
(f<0>)  C
受影响的状态位:
C和Z
说明:
将寄存器 f 的内容连同进位标志位一起
右移 1 位。 0 移入 MSb。 如果 d 为 0,
结果存入 W。 如果 d 为 1,结果存入 f
寄存器。
0
© 2012 Microchip Technology Inc.
MOVF
执行指令后
W =
Z =
f {,d}
寄存器 f
MOVF f,d
FSR, 0
FSR 寄存器的值
1
C
初稿
DS41615A_CN 第 219 页
PIC12(L)F1501
MOVIW
将 INDFn 的内容传送到 W
MOVLP
将立即数传送到 PCLATH
语法:
[ 标号 ] MOVIW ++FSRn
[ 标号 ] MOVIW --FSRn
[ 标号 ] MOVIW FSRn++
[ 标号 ] MOVIW FSRn-[ 标号 ] MOVIW k[FSRn]
语法:
[ 标号 ] MOVLP k
操作数:
0  k  127
操作:
k  PCLATH
受影响的状态位:
无
说明:
将 7 位立即数 k 装入 PCLATH 寄存器。
操作数:
n  [0,1]
mm  [00,01, 10, 11]
-32  k  31
操作:
INDFn  W
有效地址通过以下方式确定
• FSR + 1 (预递增)
• FSR - 1 (预递减)
• FSR + k (相对偏移)
在传送之后, FSR 值将为以下之一:
• FSR + 1 (全部递增)
• FSR - 1 (全部递减)
• 不变
受影响的状态位:
Z
模式
语法
mm
预递增
++FSRn
00
预递减
--FSRn
01
后递增
FSRn++
10
后递减
FSRn--
11
说明:
MOVLW
将立即数传送到 W
语法:
[ 标号 ]
操作数:
0  k  255
操作:
k  (W)
受影响的状态位:
无
说明:
将 8 位立即数 k 装入 W 寄存器。 其余
无关位均汇编为 0。
指令字数:
1
指令周期数:
1
示例:
MOVLW k
MOVLW
0x5A
执行指令后
W
=
0x5A
MOVWF
将 W 的内容传送到 f
语法:
[ 标号 ]
操作数:
0  f  127
操作:
(W)  (f)
受影响的状态位:
无
注:INDFn 寄存器不是物理寄存器。 访
问 INDFn 寄存器的所有指令实际上访问
的是由 FSRn 指定的地址处的寄存器。
说明:
将 W 寄存器的数据传送到寄存器 f。
指令字数:
1
指令周期数:
1
FSRn 地址范围限制为 0000h-FFFFh。
地址递增 / 递减到超出这些边界时,将导
致它发生计满返回。
示例:
该指令用于在 W 和一个间接寄存器
(INDFn)之间传送数据。 在该传送操
作之前 / 之后,将通过预 / 后递增 / 递减
指针 (FSRn)来对其进行更新。
MOVLB
将立即数传送到 BSR
语法:
[ 标号 ] MOVLB k
操作数:
0  k  15
操作:
k  BSR
受影响的状态位:
无
说明:
将 5 位立即数 k 装入存储区选择寄存
器 (BSR)。
DS41615A_CN 第 220 页
MOVWF
MOVWF
OPTION_REG
执行指令前
OPTION_REG
W
执行指令后
OPTION_REG
W
初稿
f
= 0xFF
= 0x4F
= 0x4F
= 0x4F
© 2012 Microchip Technology Inc.
PIC12(L)F1501
MOVWI
语法:
操作数:
操作:
受影响的状态位:
将 W 的内容传送到 INDFn
NOP
空操作
[ 标号 ] MOVWI ++FSRn
[ 标号 ] MOVWI --FSRn
[ 标号 ] MOVWI FSRn++
[ 标号 ] MOVWI FSRn-[ 标号 ] MOVWI k[FSRn]
语法:
[ 标号 ]
操作数:
无
操作:
空操作
受影响的状态位:
无
n  [0,1]
mm  [00,01, 10, 11]
-32  k  31
说明:
空操作
指令字数:
1
指令周期数:
1
W  INDFn
有效地址通过以下方式确定
• FSR + 1 (预递增)
• FSR - 1 (预递减)
• FSR + k (相对偏移)
在传送之后, FSR 值将为以下之一:
• FSR + 1 (全部递增)
• FSR - 1 (全部递减)
不变
无
mm
模式
语法
预递增
++FSRn
00
预递减
--FSRn
01
后递增
FSRn++
10
后递减
FSRn--
11
说明:
示例:
该指令用于在 W 和一个间接寄存器
(INDFn)之间传送数据。 在该传送操
作之前 / 之后,将通过预 / 后递增 / 递减
指针 (FSRn)来对其进行更新。
注:INDFn 寄存器不是物理寄存器。访
问 INDFn 寄存器的所有指令实际上访问
的是由 FSRn 指定的地址处的寄存器。
NOP
NOP
OPTION
将 W 的内容装入 OPTION_REG
寄存器
语法:
[ 标号 ] OPTION
操作数:
无
操作:
(W)  OPTION_REG
受影响的状态位:
无
说明:
将 W 寄存器的数据传送到
OPTION_REG 寄存器。
RESET
软件复位
语法:
[ 标号 ] RESET
操作数:
无
操作:
执行器件复位。 复位 PCON 寄存器的
nRI 标志。
受影响的状态位:
无
说明:
此指令可实现用软件执行硬件复位。
FSRn 地址范围限制为 0000h-FFFFh。
地址递增 / 递减到超出这些边界时,将导
致它发生计满返回。
对于 FSRn 的递增 / 递减操作不会影响任
何状态位。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 221 页
PIC12(L)F1501
RETFIE
从中断返回
RETURN
从子程序返回
语法:
[ 标号 ]
语法:
[ 标号 ]
操作数:
无
操作数:
无
操作:
TOS  PC
1  GIE
操作:
TOS  PC
受影响的状态位:
无
受影响的状态位:
无
说明:
说明:
从中断返回。 执行出栈操作,将栈顶
(Top-of-Stack, TOS)的内容装入
PC。 通过将全局中断允许位 GIE
(INTCON<7>)置 1,来允许中断。
这是一条双周期指令。
从子程序返回。 执行出栈操作,将栈
顶 (TOS)内容装入程序计数器。 这
是一条双周期指令。
指令字数:
1
指令周期数:
2
RETFIE k
RETURN
RETFIE
示例:
中断后
PC =
GIE =
TOS
1
RETLW
返回并将立即数送入 W
RLF
f 带进位循环左移
语法:
[ 标号 ]
语法:
[ 标号 ]
操作数:
0  k  255
操作数:
操作:
k  (W)
TOS  PC
0  f  127
d  [0,1]
操作:
见下面的说明
受影响的状态位:
无
受影响的状态位:
C
说明:
将 8 位立即数 k 装入 W 寄存器。 将栈
顶内容 (返回地址)装入程序计数
器。 这是一条双周期指令。
说明:
指令字数:
1
将寄存器 f 的内容连同进位标志位一起
循环左移 1 位。 如果 d 为 0,结果存
入 W 寄存器。 如果 d 为 1,结果存入
f 寄存器。
指令周期数:
2
示例:
TABLE
RETLW k
RLF
C
CALL TABLE;W contains table
; offset value
•
;W now has table value
•
•
ADDWF PC
;W = offset
RETLW k1 ;Begin table
RETLW k2 ;
•
•
•
RETLW kn ;End of table
执行指令前
W
执行指令后
W
DS41615A_CN 第 222 页
=
0x07
=
k8 的值
指令字数:
1
指令周期数:
1
示例:
RLF
寄存器 f
REG1,0
执行指令前
REG1
C
执行指令后
REG1
W
C
初稿
f,d
=
=
1110 0110
0
=
=
=
1110 0110
1100 1100
1
© 2012 Microchip Technology Inc.
PIC12(L)F1501
RRF
f 带进位循环右移
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
SUBLW
RRF f,d
立即数减去 W
SUBLW k
语法:
[ 标号 ]
操作数:
0 k 255
操作:
k - (W) W)
操作:
见下面的说明
受影响的状态位: C、 DC 和 Z
受影响的状态位:
C
说明:
说明:
将寄存器 f 的内容连同进位标志位一起
循环右移 1 位。 如果 d 为 0,结果存
入 W 寄存器。 如果 d 为 1,结果存入 f
寄存器。
C
寄存器 f
SLEEP
进入休眠模式
语法:
[ 标号 ]
操作数:
无
操作:
00h  WDT
0  WDT 预分频器
1  TO
0  PD
SLEEP
受影响的状态位:
TO 和 PD
说明:
掉电状态位 PD 被清零。 超时状态位
TO 被置 1。 看门狗定时器及其预分频
器被清零。
振荡器停振,处理器进入休眠模式。
© 2012 Microchip Technology Inc.
用 8 位立即数 k 减去 W 寄存器的内容
(通过二进制补码方式进行运算)。 结
果存入 W 寄存器。
C=0
Wk
C=1
Wk
DC = 0
W<3:0>  k<3:0>
DC = 1
W<3:0>  k<3:0>
SUBWF
f 减去 W
语法:
[ 标号 ]
操作数:
0 f 127
d  [0,1]
操作:
(f) - (W)  ( 目标寄存器 )
SUBWF f,d
受影响的状态位: C、 DC 和 Z
说明:
初稿
用寄存器 f 的内容减去 W 寄存器的内容
(通过二进制补码方式进行运算)。 如果
d 为 0,结果存入 W 寄存器。 如果 d 为
1,结果存入 f 寄存器。
C=0
Wf
C=1
Wf
DC = 0
W<3:0>  f<3:0>
DC = 1
W<3:0>  f<3:0>
SUBWFB
f 减去 W (带借位)
语法:
SUBWFB
操作数:
0  f  127
d  [0,1]
操作:
(f) – (W) – (B) dest
f {,d}
受影响的状态位:
C、 DC 和 Z
说明:
用 f 寄存器的内容减去 W 的内容和借位
标志 (进位)(通过二进制补码方式进
行运算)。 如果 d 为 0,结果存入 W。
如果 d 为 1,结果存入 f 寄存器。
DS41615A_CN 第 223 页
PIC12(L)F1501
SWAPF
将 f 中的两个半字节进行交换
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
操作:
SWAPF f,d
(f<3:0>)  ( 目标寄存器 <7:4>)
(f<7:4>)  ( 目标寄存器 <3:0>)
受影响的状态位:
无
说明:
寄存器 f 的高半字节和低半字节相互交
换。 如果 d 为 0,结果存入 W 寄存
器。 如果 d 为 1,结果存入 f 寄存器。
TRIS
将 W 的内容装入 TRIS 寄存器
XORLW
立即数和 W 作逻辑异或运算
语法:
[ 标号 ]
XORLW k
操作数:
0 k 255
操作:
(W) .XOR. k  (W)
受影响的状态位:
Z
说明:
将 W 寄存器的内容与 8 位立即数 k
进行逻辑异或运算。 结果存入 W 寄
存器。
XORWF
W 和 f 作逻辑异或运算
XORWF
f,d
语法:
[ 标号 ] TRIS f
语法:
[ 标号 ]
操作数:
0  f  127
d  [0,1]
操作:
(W) .XOR. (f)  ( 目标寄存器 )
操作数:
5f7
操作:
(W)  TRIS 寄存器 f
受影响的状态位:
无
说明:
将 W 寄存器的数据传送到 TRIS 寄存
器。
当 f = 5 时,装入 TRISA。
当 f = 6 时,装入 TRISB。
当 f = 7 时,装入 TRISC。
DS41615A_CN 第 224 页
初稿
受影响的状态位:
Z
说明:
将 W 寄存器的内容与寄存器 f 的内容
进行逻辑异或运算。 如果 d 为 0,结
果存入 W 寄存器。 如果 d 为 1,结果
存入 f 寄存器。
© 2012 Microchip Technology Inc.
PIC12(L)F1501
27.0
电气规范
绝对最大值 (†)
环境温度............................................................................................................................................-40°C 至 +125°C
储存温度............................................................................................................................................-65°C 至 +150°C
VDD 引脚相对于 VSS 的电压, PIC12F1501 ........................................................................................ -0.3V 至 +6.5V
VDD 引脚相对于 VSS 的电压, PIC12LF1501 ...................................................................................... -0.3V 至 +4.0V
MCLR 引脚相对于 Vss 的电压 ............................................................................................................. -0.3V 至 +9.0V
所有其他引脚相对于 VSS 的电压........................................................................................... -0.3V 至 (VDD + 0.3V)
总功耗 (1) ........................................................................................................................................................ 800 mW
VSS 引脚的最大输出电流, -40°C  TA  +85°C (工业级)........................................................................... 210 mA
VSS 引脚的最大输出电流, -40°C  TA  +125°C (扩展级)........................................................................... 95 mA
VDD 引脚的最大输入电流, -40°C  TA  +85°C (工业级)........................................................................... 150 mA
VDD 引脚的最大输入电流, -40°C  TA  +125°C (扩展级)........................................................................... 70 mA
钳位电流 IK (VPIN < 0 或 VPIN > VDD)......................................................................................................... ± 20 mA
任一 I/O 引脚的最大输出灌电流 ........................................................................................................................ 25 mA
任一 I/O 引脚的最大输出拉电流 ........................................................................................................................ 25 mA
注
1: 功耗按如下公式计算:PDIS = VDD x {IDD –  IOH} +  {(VDD – VOH) x IOH} + (VOl x IOL)。
† 注:如果器件工作条件超过上述 “绝对最大值”,可能会对器件造成永久性损坏。上述值仅为运行条件极大值,我
们不建议使器件在或超过本规范指定的最大值条件下运行。器件长时间工作在最大值条件下可能会影响其可靠性。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 225 页
PIC12(L)F1501
PIC12F1501 电压—频率关系图, -40°C  TA +125°C
图 27-1:
VDD(V)
5.5
2.5
2.3
0
16
10
4
20
频率(MHz)
注
1: 阴影区域表示允许的电压频率组合。
2: 请参见表 27-1 了解每种振荡器模式所支持的频率。
PIC12LF1501 电压—频率关系图, -40°C  TA +125°C
VDD(V)
图 27-2:
3.6
2.5
1.8
0
4
10
16
20
频率(MHz)
注
1: 阴影区域表示允许的电压频率组合。
2: 请参见表 27-1 了解每种振荡器模式所支持的频率。
DS41615A_CN 第 226 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.1
直流特性:PIC12(L)F1501-I/E (工业级,扩展级)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
参数
编号
符号
D001
VDD
特性
最小值 典型值† 最大值
VDR
PIC12LF1501
1.8
2.5
—
—
3.6
3.6
V
V
FOSC  16 MHz:
FOSC  20 MHz
PIC12F1501
2.3
2.5
—
—
5.5
5.5
V
V
FOSC  16 MHz:
FOSC  20 MHz
PIC12LF1501
1.5
—
—
V
器件处于休眠模式
PIC12F1501
1.65
—
—
V
器件处于休眠模式
PIC12LF1501
—
1.6
—
V
PIC12F1501
—
1.7
—
V
PIC12LF1501
—
0.8
—
V
PIC12F1501
—
1.7
—
V
1
1
1
1
1
1
—
—
—
—
—
—
%
RAM 数据保持电压 (1)
D002*
D002A* VPOR*
上电复位释放电压
D002A*
D002B* VPORR*
上电复位重新激活电压
D002B*
VADFVR
ADC 的固定参考电压,初始精度
—
—
—
—
—
—
D003C*
TCVFVR
温度系数,固定参考电压
—
-130
—
ppm/°C
D003D*
VFVR/
VIN
线路稳定度,固定参考电压
—
0.270
—
%/V
D004*
SVDD
确保内部上电复位信号的 VDD 上升
速率
0.05
—
—
V/ms
D003
*
†
注
条件
供电电压
D001
D002*
单位
1.024V, VDD  2.5V, 85°C (注 2)
1.024V, VDD  2.5V, 125°C (注 2)
2.048V, VDD  2.5V, 85°C
2.048V, VDD  2.5V, 125°C
4.096V, VDD  4.75V, 85°C
4.096V, VDD  4.75V, 125°C
详情请参见第 6.1 节 “上电复位
(POR)”。
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 这是在不丢失 RAM 数据的前提下,休眠模式下 VDD 的下限值。
2: 为确保正常工作, ADC 正参考电压的最小值必须大于等于 1.8V。当选择 FVR 或 VREF+ 引脚作为 ADC 正参考电压源时,请
注意电压必须大于等于 1.8V。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 227 页
PIC12(L)F1501
图 27-3:
VDD 缓慢上升时, POR 和 POR 重新激活
VDD
VPOR
VPORR
VSS
NPOR
POR 重新激活
VSS
TPOR(3)
TVLOW(2)
注
1:当 NPOR 为低电平时,器件保持在复位状态。
2:TPOR 典型值为 1 s。
3:TVLOW 典型值为 2.7 s。
DS41615A_CN 第 228 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.2
直流特性: PIC12(L)F1501-I/E (工业级,扩展级)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
条件
参数
编号
器件特性
供电电流
最小值 典型值 † 最大值
单位
VDD
D013
D013
D014
D014
D015
D015
D017*
D017*
D018
D018
—
25
140
A
1.8
—
45
230
A
3.0
—
60
180
A
2.3
—
80
240
A
3.0
—
100
320
A
5.0
—
100
250
A
1.8
—
180
430
A
3.0
—
160
275
A
2.3
—
210
450
A
3.0
—
260
650
A
5.0
—
2.5
18
A
1.8
—
4.0
20
A
3.0
—
14
58
A
2.3
—
15
65
A
3.0
—
16
70
A
5.0
—
0.40
0.70
mA
1.8
—
0.60
1.10
mA
3.0
—
0.50
0.75
mA
2.3
—
0.60
1.15
mA
3.0
—
0.70
1.35
mA
5.0
—
0.60
1.2
mA
1.8
—
1.0
1.75
mA
3.0
—
0.74
1.2
mA
2.3
—
0.96
1.8
mA
3.0
5.0
—
1.03
2.0
mA
—
6
17
A
1.8
—
8
20
A
3.0
D019A
—
14
25
A
3.0
—
15
30
A
5.0
D019B
—
15
165
A
1.8
—
20
190
A
3.0
D019A
*
†
注
注
(IDD) (1, 2)
FOSC = 1 MHz
EC 振荡器模式,中等功耗模式
FOSC = 1 MHz
EC 振荡器模式
中等功耗模式
FOSC = 4 MHz
EC 振荡器模式
中等功耗模式
FOSC = 4 MHz
EC 振荡器模式
中等功耗模式
FOSC = 31 kHz
LFINTOSC 模式
FOSC = 31 kHz
LFINTOSC 模式
FOSC = 8 MHz
HFINTOSC 模式
FOSC = 8 MHz
HFINTOSC 模式
FOSC = 16 MHz
HFINTOSC 模式
FOSC = 16 MHz
HFINTOSC 模式
FOSC = 32 kHz
ECL 模式
FOSC = 32 kHz
ECL 模式
FOSC = 500 kHz
ECM 模式
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。 这些参数仅供设计参考,未经测试。
1: 有效工作模式下,所有 IDD 测量值的测试条件为: CLKIN = 外部方波,轨到轨满幅;所有 I/O 引脚均为三态,上拉至
VDD ; MCLR = VDD ;禁止 WDT。
2: 供电电流主要受工作电压和频率的影响。 其他因素,如 I/O 引脚负载和开关速率、振荡器类型、内部代码执行模式以及
温度也会对电流消耗产生影响。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 229 页
PIC12(L)F1501
27.2
直流特性: PIC12(L)F1501-I/E (工业级,扩展级) (续)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
条件
参数
编号
器件特性
最小值 典型值 † 最大值
单位
VDD
注
供电电流 (IDD) (1, 2)
—
34
210
A
3.0
—
37
270
A
5.0
D019C
—
0.65
—
mA
3.0
D019C
—
0.75
—
mA
3.0
—
0.87
—
mA
5.0
D019B
*
†
注
FOSC = 500 kHz
ECM 模式
FOSC = 20 MHz
ECH 模式
FOSC = 20 MHz
ECH 模式
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。 这些参数仅供设计参考,未经测试。
1: 有效工作模式下,所有 IDD 测量值的测试条件为: CLKIN = 外部方波,轨到轨满幅;所有 I/O 引脚均为三态,上拉至
VDD ; MCLR = VDD ;禁止 WDT。
2: 供电电流主要受工作电压和频率的影响。 其他因素,如 I/O 引脚负载和开关速率、振荡器类型、内部代码执行模式以及
温度也会对电流消耗产生影响。
DS41615A_CN 第 230 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.3
直流特性:PIC12(L)F1501-I/E (掉电)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
参数
编号
器件特性
最小值 典型值†
条件
最大值
+85°C
最大值
+125°C
单位
VDD
注
掉电基本电流 (IPD) (2)
D022
D022
D023
D023
D023A
D023A
—
.02
1.0
2.4
A
1.8
—
.03
1.1
3.0
A
3.0
—
10
35
40
A
2.3
—
11
42
48
A
3.0
—
12
45
61
A
5.0
—
0.2
1.5
2.4
A
1.8
—
0.5
2.0
3.0
A
3.0
—
11
38
44
A
2.3
—
12
43
48
A
3.0
—
13
48
65
A
5.0
—
13
22
25
A
1.8
—
22
24
27
A
3.0
—
23
62
65
A
2.3
—
30
72
75
A
3.0
禁止 WDT、 BOR、 FVR 和
T1OSC,所有外设不工作
禁止 WDT、 BOR、 FVR 和
T1OSC,所有外设不工作
LPWDT 电流 (注 1)
LPWDT 电流 (注 1)
FVR 电流 (注 1)
FVR 电流 (注 1)
—
34
115
120
A
5.0
D024
—
7
14
16
A
3.0
BOR 电流 (注 1)
D024
—
15
47
50
A
3.0
BOR 电流 (注 1)
—
17
55
66
A
5.0
D024A
—
0.2
5
7
A
3.0
LPBOR 电流
D024A
—
10
25
40
A
3.0
LPBOR 电流
—
12
30
50
A
5.0
—
0.03
3.5
4.0
A
1.8
—
0.04
4.0
4.5
A
3.0
—
10
39
45
A
2.3
—
11
43
49
A
3.0
—
12
46
65
A
5.0
—
250
1.5
3.0
A
1.8
—
250
2.0
3.5
A
3.0
—
280
38
45
A
2.3
—
280
43
49
A
3.0
—
280
46
65
A
5.0
D026
D026
D026A*
D026A*
*
†
A/D 电流 (注 1 和注 3),无转
换
A/D 电流 (注 1 和注 3),无转
换
A/D 电流 (注 1 和注 3),转换
正在进行
A/D 电流 (注 1 和注 3),转换
正在进行
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
图注:
TBD = 待定
注
1: 外设电流为基本 IDD 或 IPD 与该外设使能时所额外消耗的电流之和。可通过从该参数值中减去基本 IDD 或 IPD 电流,以
确定外设  电流。在计算总电流消耗时应使用最大值。
2: 在休眠模式下,掉电电流与振荡器类型无关。掉电电流是在器件处于休眠模式、所有 I/O 引脚处于高阻态并且连接到
VDD 时测得的。
3: A/D 振荡器源是 FRC。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 231 页
PIC12(L)F1501
27.3
直流特性:PIC12(L)F1501-I/E (掉电) (续)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
参数
编号
器件特性
掉电基本电流
D027*
D027*
D027A*
D027A*
D028*
D028*
D028A*
D028A*
*
†
最小值 典型值†
最大值
+85°C
最大值
+125°C
条件
单位
VDD
注
(IPD) (2)
—
20
43
55
A
1.8
—
21
45
60
A
3.0
—
30
53
65
A
2.3
—
31
57
70
A
3.0
—
32
61
75
A
5.0
—
7
20
35
A
1.8
—
80
25
40
A
3.0
—
17
30
45
A
2.3
—
18
37
55
A
3.0
—
19
40
60
A
5.0
—
21
44
56
A
1.8
—
22
46
61
A
3.0
—
31
54
66
A
2.3
—
32
58
71
A
3.0
—
33
62
76
A
5.0
—
8
21
36
A
1.8
—
81
26
41
A
3.0
—
18
31
46
A
2.3
—
19
38
56
A
3.0
—
20
41
61
A
5.0
使能 1 个比较器
(HP 模式)
使能 1 个比较器
(HP 模式)
使能 1 个比较器
(LP 模式)
使能 1 个比较器
(LP 模式)
使能 2 个比较器
(HP 模式)
使能 2 个比较器
(HP 模式)
使能 2 个比较器
(LP 模式)
使能 2 个比较器
(LP 模式)
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
图注:
TBD = 待定
注
1: 外设电流为基本 IDD 或 IPD 与该外设使能时所额外消耗的电流之和。可通过从该参数值中减去基本 IDD 或 IPD 电流,以
确定外设  电流。在计算总电流消耗时应使用最大值。
2: 在休眠模式下,掉电电流与振荡器类型无关。掉电电流是在器件处于休眠模式、所有 I/O 引脚处于高阻态并且连接到
VDD 时测得的。
3: A/D 振荡器源是 FRC。
DS41615A_CN 第 232 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.3
直流特性:PIC12(L)F1501-I/E (掉电)(续)
PIC12LF1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
PIC12F1501
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
参数
编号
器件特性
最大值
+125°C
单位
1.5
2.0
A
2.3
0.2
1.7
2.3
A
3.0
0.3
1.9
2.5
A
5.0
18
40
45
A
2.3
18.5
45
50
A
3.0
低功耗休眠模式下的掉电基本电流 (IPD) (2)
—
0.1
D029A
D029B
—
D029C
—
D029D
—
D029E
—
*
†
条件
最大值
+85°C
最小值 典型值†
VDD
19
47
52
A
5.0
8.0
20
25
A
3.0
9.5
24
30
A
5.0
3.2
13
18
A
2.3
3.5
14
19
A
3.0
3.6
15
20
A
5.0
17.0
40
45
A
2.3
17.5
42
47
A
3.0
18.0
43
48
A
5.0
注
基本电流
使能 FVR
使能 BOR
使能比较器
(LP 模式)
使能比较器
(HP 模式)
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
图注:
TBD = 待定
注
1: 外设电流为基本 IDD 或 IPD 与该外设使能时所额外消耗的电流之和。可通过从该参数值中减去基本 IDD 或 IPD 电流,以
确定外设  电流。在计算总电流消耗时应使用最大值。
2: 在休眠模式下,掉电电流与振荡器类型无关。掉电电流是在器件处于休眠模式、所有 I/O 引脚处于高阻态并且连接到
VDD 时测得的。
3: A/D 振荡器源是 FRC。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 233 页
PIC12(L)F1501
27.4
直流特性:PIC12(L)F1501-I/E
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +85°C (工业级)
-40°C  TA  +125°C (扩展级)
直流特性
参数
编号
符号
VIL
特性
典型值 †
最小值
最大值
单位
条件
输入低电压
I/O 端口:
D030
带 TTL 缓冲器
D030A
D031
带施密特触发器缓冲器
MCLR
D032
VIH
—
—
0.8
V
4.5V  VDD  5.5V
—
—
0.15 VDD
V
1.8V  VDD  4.5V
—
—
0.2 VDD
V
2.0V  VDD  5.5V
—
—
0.2 VDD
V
—
—
2.0
—
—
V
4.5V  VDD 5.5V
0.25 VDD +
0.8
—
—
V
1.8V  VDD  4.5V
0.8 VDD
—
—
V
2.0V  VDD  5.5V
0.8 VDD
—
—
V
nA
输入高电压
I/O 端口:
D040
带 TTL 缓冲器
D040A
D041
带施密特触发器缓冲器
MCLR
D042
IIL
输入泄漏电流 (1)
D060
I/O 端口
—
±5
± 125
±5
± 1000
nA
VSS  VPIN  VDD,引脚处于高阻
态 (85°C 时)
125°C
D061
MCLR(2)
—
± 50
± 200
nA
VSS  VPIN  VDD (85°C 时)
25
25
100
140
200
300
A
VDD = 3.3V, VPIN = VSS
VDD = 5.0V, VPIN = VSS
—
—
0.6
V
IOL = 8 mA, VDD = 5V
IOL = 6 mA, VDD = 3.3V
IOL = 1.8 mA, VDD = 1.8V
VDD - 0.7
—
—
V
IOH = 3.5 mA, VDD = 5V
IOH = 3 mA, VDD = 3.3V
IOH = 1 mA, VDD = 1.8V
—
—
50
pF
IPUR
弱上拉电流
D070*
VOL
D080
输出低电压 (3)
I/O 端口
VOH
D090
输出高电压 (3)
I/O 端口
输出引脚上的容性负载规范
D101A* CIO
注
所有 I/O 引脚
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 负电流定义为引脚的拉电流。
2: MCLR 引脚上的泄漏电流主要取决于所施加的电压。规定电压为正常工作条件下的电压。在不同的输入电压下可能测得
更高的泄漏电流。
3: 在 CLKOUT 模式下包括 OSC2。
DS41615A_CN 第 234 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.5
存储器编程要求
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +125°C
直流特性
参数
编号
符号
特性
最小值
典型值†
最大值
单位
条件
程序存储器编程规范
D110
VIHH
MCLR/VPP 引脚上的电压
8.0
—
9.0
V
D111
IDDP
编程时的供电电流
—
—
10
mA
D112
VBE
批量擦除时的 VDD
2.7
—
V
D113
VPEW
写或行擦除时的 VDD
VDD
最小值
—
VDD
最大值
VDD
最大值
D114
—
1.0
—
mA
D115
IPPPGM 擦除 / 写操作时 MCLR/VPP 上的电流
IDDPGM 擦除 / 写操作时 VDD 上的电流
—
5.0
—
mA
D121
EP
单元耐擦写能力
10K
—
—
E/W
D122
VPR
读操作时的 VDD
—
TIW
自定时写周期时间
2
VDD
最大值
2.5
V
D123
VDD
最小值
—
D124
TRETD
特性保持时间
—
40
—
D125
EHEFC
高耐用闪存单元
100K
—
—
(注 2)
V
闪存程序存储器
注
-40°C 至 +85°C (注 1)
ms
年
E/W
假设没有违反其他规范
0°C 至 +60°C,
低字节,
闪存存储器中的最后 128 个
地址
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。 这些参数仅供设计参考,未经测试。
1: 自写和块擦除。
2: 仅当禁止单电源编程时才需要。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 235 页
PIC12(L)F1501
27.6
散热考虑
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +125°C
参数
编号
TH01
TH02
TH03
TH04
TH05
TH06
TH07
注
符号
JA
JC
TJMAX
特性
热阻 (结点到环境)
热阻 (结点到管壳)
最高结温
PD
功耗
PINTERNAL 内部功耗
P I /O
I/O 功耗
PDER
降额功耗
典型值
单位
条件
89.3
°C/W
149.5
°C/W
8 引脚 SOIC 封装
211
°C/W
8 引脚 MSOP 封装
8 引脚 PDIP 封装
56.7
°C/W
8 引脚 DFN 3X3 mm 封装
68
°C/W
8 引脚 DFN 2X3 mm 封装
43.1
°C/W
8 引脚 PDIP 封装
39.9
°C/W
8 引脚 SOIC 封装
39
°C/W
8 引脚 MSOP 封装
9
°C/W
8 引脚 DFN 3X3 mm 封装
12.7
°C/W
8 引脚 DFN 2X3 mm 封装
150
°C
—
W
PD = PINTERNAL + PI/O
—
W
PINTERNAL = IDD x VDD(1)
—
W
PI/O =  (IOL * VOL) +  (IOH * (VDD - VOH))
—
W
PDER = PDMAX (TJ - TA)/JA(2)
1: IDD 为不驱动输出引脚上任何负载时使芯片独立运行的电流。
2: TA = 环境温度。
3: TJ = 结点温度。
DS41615A_CN 第 236 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
27.7
时序参数符号体系
可根据以下一种格式来创建时序参数符号:
1.TppS2ppS
2.TppS
T
F
T
时间
osc
rd
CLKIN
RD
rw
sc
ss
t0
RD 或 WR
SCKx
SS
T0CKI
t1
T1CKI
wr
WR
频率
小写字母 (pp)及其含义:
pp
cc
CCP1
ck
CLKOUT
cs
CS
di
do
SDIx
SDO
dt
数据输入
io
mc
I/O 端口
MCLR
大写字母及其含义:
S
F
下降
P
周期
H
高
R
上升
I
无效 (高阻)
V
有效
L
低
Z
高阻
图 27-4:
负载条件
负载条件
引脚
CL
VSS
图注:
CL = 50 pF (对于所有引脚)
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 237 页
PIC12(L)F1501
27.8
交流特性:PIC12(L)F1501-I/E
图 27-5:
时钟时序
Q4
Q1
Q2
Q3
Q4
Q1
CLKIN
OS12
OS02
OS11
OS03
CLKOUT
(CLKOUT 模式)
1:
注
请参见表 27-3。
表 27-1:
时钟振荡器时序要求
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +125°C
参数
编号
OS01
符号
FOSC
特性
外部 CLKIN 频率 (1)
最小值 典型值 †
最大值
单位
DC
—
0.5
MHz
EC 振荡器模式 (低功耗)
DC
—
4
MHz
EC 振荡器模式 (中等功耗)
DC
—
20
MHz
EC 振荡器模式 (高功耗)
OS02
TOSC
外部 CLKIN 周期 (1)
50
—

ns
OS03
TCY
指令周期 (1)
200
—
DC
ns
注
条件
EC 模式
TCY = FOSC/4
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规定值均为基于针对特定振荡器类型,器件在标准工作条件下执
行代码时的特性数据。超出这些规定的限定值,可能导致振荡器运行不稳定和 / 或导致电流消耗超出预期值。所有器件在
测试 “最小”值时,都在 CLKIN 引脚连接了外部时钟。当使用了外部时钟输入时,所有器件的 “最大”周期时间限制为
“DC”(无时钟)。
表 27-2:
振荡器参数
标准工作条件 (除非另外声明)
工作温度
-40°C TA +125°C
参数
编号
符号
OS08
HFOSC
OS09
LFOSC
OS10*
TIOSC ST
注
特性
内部已校准的 HFINTOSC 频率 (1)
内部 LFINTOSC 频率
HFINTOSC
从休眠模式唤醒的启动时间
频率
容差
最小值 典型值 † 最大值
单位
条件
10%
—
16.0
—
MHz
0°C  TA  +85°C
—
—
31
—
kHz
-40°C  TA  +125°C
—
—
5
8
s
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 为了确保振荡器频率容差,必须尽可能靠近器件,在 VDD 和 VSS 之间接去耦电容。建议并联 0.1 F 和 0.01 F 的电容。
DS41615A_CN 第 238 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
图 27-6:
CLKOUT 和 I/O 时序
周期
写
取
读
执行
Q4
Q1
Q2
Q3
FOSC
OS12
OS11
OS20
OS21
CLKOUT
OS19
OS18
OS16
OS13
OS17
I/O 引脚
(输入)
OS14
OS15
I/O 引脚
(输出)
新值
旧值
OS18,OS19
表 27-3:
CLKOUT 和 I/O 时序参数
标准工作条件 (除非另外声明)
工作温度
-40°C TA +125°C
参数
编号
OS11
OS12
符号
TosH2ckL
特性
最小值
单位
条件
FOSC 到 CLKOUT 的时间 (1)
—
—
70
ns
VDD = 3.3-5.0V
的时间 (1)
—
—
72
ns
VDD = 3.3-5.0V
TosH2ckH FOSC 到 CLKOUT
OS13
TckL2ioV
CLKOUT
到端口输出有效的时间 (1)
OS14
TioV2ckH
CLKOUT
之前端口输入有效的时间 (1)
OS15
TosH2ioV
OS16
TosH2ioI
OS17
TioV2osH
OS18* TioR
Fosc (Q1 周期)到端口输出有效的
时间
Fosc (Q2 周期)到端口输入无效的
时间 (I/O 输入保持时间)
端口输入有效到 Fosc (Q2 周期)
的时间 (I/O 输入建立时间)
端口输出上升时间 (2)
OS19* TioF
端口输出下降时间 (2)
OS20* Tinp
OS21* Tioc
注
典型值 † 最大值
—
—
20
ns
TOSC + 200
ns
—
—
—
ns
50
70*
ns
VDD = 3.3-5.0V
50
—
—
ns
VDD = 3.3-5.0V
20
—
—
ns
—
—
—
—
25
25
15
40
28
15
—
—
32
72
55
30
—
—
ns
INT 引脚输入高电平或低电平时间
电平变化中断新输入电平时间
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。
1:测量是在 EC 模式下进行的,其中 CLKOUT 输出为 4 x TOSC。
 2012 Microchip Technology Inc.
初稿
ns
VDD = 2.0V
VDD = 5.0V
VDD = 2.0V
VDD = 5.0V
ns
ns
DS41615A_CN 第 239 页
PIC12(L)F1501
图 27-7:
复位、看门狗定时器、振荡器起振定时器和上电延时定时器时序
VDD
MCLR
30
内部
POR
33
PWRT
延时
内部复位 (1)
看门狗定时器
复位 (1)
31
34
34
I/O 引脚
1: 拉为低电平。
注
图 27-8:
欠压复位时序和特性
VDD
VBOR 和 VHYST
VBOR
(器件不处于欠压复位状态)
(器件处于欠压复位状态)
37
复位
33(1)
(由于 BOR)
注
1: 仅在配置字中 PWRTE 位编程为 0 时才有 64 ms 的延时。如果 PWRTE = 0 且 VREGEN = 1,
则为 2 ms 延时。
DS41615A_CN 第 240 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 27-4:
复位、看门狗定时器、振荡器起振定时器、上电延时定时器和欠压复位参数
标准工作条件 (除非另外声明)
工作温度
-40°C TA +125°C
参数
编号
符号
特性
最小值 典型值† 最大值 单位
条件
2
5
—
—
—
—
s
s
TWDTLP 低功耗看门狗定时器超时周期
10
16
27
33*
TPWRT
上电延时定时器周期, PWRTE = 0
40
65
140
ms VDD = 3.3V-5V,
使用 1:16 预分频比
ms
34*
TIOZ
自 MCLR 低电平或看门狗定时器复
位起 I/O 处于高阻态的时间
—
—
2.0
s
35
VBOR
欠压复位电压:
BORV = 0 2.55
2.70
2.85
V
PIC12(L)F1501
BORV = 1 2.30
1.80
2.40
1.90
2.55
2.05
V
V
PIC12F1501
PIC12LF1501
0
25
50
1
3
5
30
TMCL
31
36*
MCLR 脉冲宽度 (低电平)
VHYST
欠压复位滞后电压
TBORDC 欠压复位直流响应时间
37*
VDD = 3.3-5V,-40°C 至 +85°C
VDD = 3.3-5V
mV -40°C 至 +85°C
s VDD  VBOR
*
†
注
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测
试。
1: 为了确保这些电压容差,必须尽可能靠近器件,在 VDD 和 VSS 之间接去耦电容。建议并联 0.1 F 和
0.01 F 的电容。
图 27-9:
TIMER0 和 TIMER1 外部时钟时序
T0CKI
40
41
42
T1CKI
45
46
47
49
TMR0 或
TMR1
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 241 页
PIC12(L)F1501
表 27-5:
TIMER0 和 TIMER1 外部时钟要求
标准工作条件 (除非另外声明)
工作温度
-40°C TA +125°C
参数
编号
符号
40*
特性
TT0H
T0CKI 高电平脉冲宽度
典型值† 最大值
最小值
单位
无预分频器
0.5 TCY + 20
—
—
带预分频器
10
—
—
ns
无预分频器
0.5 TCY + 20
—
—
ns
ns
带预分频器
10
—
—
ns
取如下二者中
较大值:
20 或 TCY + 40
N
—
—
ns
41*
TT0L
42*
TT0P
T0CKI 周期
45*
TT1H
T1CKI 高电 同步,无预分频器
平时间
同步,带预分频器
0.5 TCY + 20
—
—
ns
15
—
—
ns
异步
30
—
—
ns
T1CKI 低电 同步,无预分频器
平时间
同步,带预分频器
0.5 TCY + 20
—
—
ns
15
—
—
ns
异步
30
—
—
ns
取如下二者中
较大值:
30 或 TCY + 40
N
—
—
ns
60
—
—
ns
2 TOSC
—
7 TOSC
—
T0CKI 低电平脉冲宽度
TT1L
46*
47*
TT1P
49*
异步
TCKEZTMR1 从外部时钟边沿到定时器递增的延时
*
†
注
T1CKI 输入 同步
周期
条件
N = 预分频值 (2,
4, ..., 256)
N = 预分频值 (1,
2, 4, 8)
同步模式下的定时
器
这些参数为特性值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 为确保正常工作, ADC 正参考电压的最小值必须大于等于 1.8V。当选择 FVR 或 VREF+ 引脚作为 ADC 正参考电压源
时,请注意电压必须大于等于 1.8V。
表 27-6:
PIC12(L)F1501A/D 转换器 (ADC)特性:
标准工作条件 (除非另外声明)
工作温度
在 25°C 下测得
参数
编号
符号
特性
最小值 典型值† 最大值 单位
条件
AD01
NR
分辨率
—
—
10
AD02
EIL
积分误差
—
—
±1.7
LSb VREF = 3.0V
AD03
EDL
微分误差
—
—
±1
LSb 无丢失编码
VREF = 3.0V
AD04
EOFF 失调误差
EGN 增益误差
—
—
±2.5
LSb VREF = 3.0V
—
—
±2.0
LSb VREF = 3.0V
AD05
AD06
AD07
VREF 参考电压
VAIN 满量程
AD08
ZAIN
注
(3)
模拟信号源的推荐阻抗
位
1.8
—
VDD
V
VSS
—
VREF
V
—
—
10
k
VREF = (VREF+ - VREF-) (注 5)
如果输入引脚上接有 0.01 F 的外部电容,则该
值可以更高。
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: 总的绝对误差包括积分误差、微分误差、失调误差和增益误差。
2: A/D 转换结果不会因输入电压的增加而减小,并且不会丢失编码。
3: ADC VREF 来自选择作为参考输入的外部 VREF+ 引脚或 VDD 引脚。
4: 当 ADC 关闭时,除了泄漏电流外, ADC 不消耗任何其他电流。掉电电流规范包括 ADC 模块消耗的任何泄漏电流。
5: 选定的 FVR 电压必须为 2.048V 或 4.096V。
DS41615A_CN 第 242 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 27-7:
PIC12(L)F1501 A/D 转换要求
标准工作条件 (除非另外声明)
工作温度
-40°C  TA  +125°C
参数
编号
符号
特性
AD130* TAD
AD131
TCNV
AD132* TACQ
注
最小值
典型值 †
最大值
单位
条件
A/D 时钟周期
1.0
—
9.0
s
基于 TOSC
A/D 内部 FRC 振荡器周期
1.0
1.6
6.0
s
ADCS<1:0> = 11 (ADFRC 模式)
转换时间 (不包括采集时间) (1)
—
11
—
TAD
将 GO/DONE 位置 1 以完成转换
采集时间
—
5.0
—
s
* 这些参数为特性值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 3.0V 和 25°C 条件下的值。这些参数仅供设计参考,未经测试。
1: ADRES 寄存器可在下一个 TCY 周期被读取。
图 27-10:
PIC12(L)F1501 A/D 转换时序 (正常模式)
BSF ADCON0, GO
AD134
1 TCY
(TOSC/2(1))
AD131
Q4
AD130
A/D 时钟
9
A/D 数据
8
7
6
GO
注
1
0
1 TCY
ADIF
采样
2
新数据
旧数据
ADRES
3
DONE
AD132
采样已停止
1: 如果选择 FRC 作为 A/D 转换的时钟源,在 A/D 时钟启动前要加上一个 TCY 时间, 用以执行 SLEEP 指令。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 243 页
PIC12(L)F1501
图 27-11:
PIC12(L)F1501 A/D 转换时序 (休眠模式)
BSF ADCON0, GO
AD134
(TOSC/2 + TCY(1))
1 TCY
AD131
Q4
AD130
A/D 时钟
9
A/D 数据
7
6
3
2
1
0
新数据
旧数据
ADRES
ADIF
1 TCY
GO
DONE
采样
注
8
AD132
采样已停止
1: 如果选择 FRC 作为 A/D 转换的时钟源,在 A/D 时钟启动前要加上一个 TCY 时间,用以执行 SLEEP 指令。
DS41615A_CN 第 244 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 27-8:
比较器规范
工作条件:1.8V < VDD < 5.5V, -40°C < TA < +125°C (除非另外声明)。
参数
编号
符号
特性
最小值 典型值 最大值
单位
CM01
Vioff
输入失调电压
—
±7.5
±60
mV
CM02
Vicm
输入共模电压
0
—
VDD
V
CM03*
CMRR
CM04A
CM04B
CM04C
Tresp
CM04D
共模抑制比
—
50
—
dB
响应时间上升沿
—
400
800
ns
高功耗模式,
Vicm = VDD/2
高功耗模式
响应时间下降沿
—
200
400
ns
高功耗模式
响应时间上升沿
—
1200
—
ns
低功耗模式
响应时间下降沿
—
550
—
ns
CM05*
Tmc2ov
比较器模式改变到输出有效
的时间
—
—
10
s
CM06
Chyster
比较器滞后
—
65
—
mV
*
备注
滞后开启
这些参数为特性值,未经测试。
表 27-9:
数模转换器 (DAC)规范
工作条件:2.5V < VDD < 5.5V, -40°C < TA < +125°C (除非另外声明)。
参数
编号
符号
特性
最小值
典型值
最大值
单位
DAC01*
CLSB
步长
—
VDD/32
—
V
DAC02*
CACC
绝对精度
—
—
±1/2
LSb
DAC03*
CR
单位电阻值 (R)
—
5000
—

DAC04*
CST
稳定时间 (1)
—
—
10
s
*
注
备注
这些参数为特性值,未经测试。
1: 稳定时间是在 DACR<4:0> 从 0000 跳变到 1111 时测得的。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 245 页
PIC12(L)F1501
注:
DS41615A_CN 第 246 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
28.0
直流和交流特性图表
当前没有可用图表。
© 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 247 页
PIC12(L)F1501
注:
DS41615A_CN 第 248 页
初稿
© 2012 Microchip Technology Inc.
PIC12(L)F1501
29.0
29.1
开发支持
MPLAB 集成开发环境软件
MPLAB IDE 软件为 8/16/32 位单片机市场提供了前所未
有的易于使用的软件开发平台。 MPLAB IDE 是基于
Windows® 操作系统的应用软件,包括:
一系列软件及硬件开发工具对 PIC® 单片机和 dsPIC® 数
字信号控制器提供支持:
• 集成开发环境
- MPLAB® IDE 软件
• 编译器 / 汇编器 / 链接器
- 适用于各种器件系列的 MPLAB C 编译器
- 适用于各种器件系列的 HI-TECH C® 编译器
- MPASM™ 汇编器
- MPLINK™ 目标链接器 /
MPLIB™ 目标库管理器
- 适用于各种器件系列的 MPLAB 汇编器 / 链接
器 / 库管理器
• 模拟器
- MPLAB SIM 软件模拟器
• 仿真器
- MPLAB REAL ICE™ 在线仿真器
• 在线调试器
- MPLAB ICD 3
- PICkit™ 3 Debug Express
• 一个包含所有调试工具的图形界面
- 模拟器
- 编程器 (单独销售)
- 在线仿真器 (单独销售)
- 在线调试器 (单独销售)
• 具有彩色上下文代码显示的全功能编辑器
• 多项目管理器
• 内容可直接编辑的可定制式数据窗口
• 高级源代码调试
• 鼠标停留在变量上进行查看的功能
• 将变量从源代码窗口拖放到 Watch (观察)窗口
• 丰富的在线帮助
• 集成了可选的第三方工具,如 IAR C 编译器
MPLAB IDE 可以让您:
• 编辑源文件 (C 语言或汇编语言)
• 点击一次即可完成编译或汇编,并将代码下载到仿
真器和模拟器工具中 (自动更新所有项目信息)
• 可使用如下各项进行调试:
- 源文件 (C 语言或汇编语言)
- 混合 C 语言和汇编语言
- 机器码
• 器件编程器
- PICkit™ 2 编程器
- MPLAB PM3 器件编程器
• 低成本演示 / 开发板、评估工具包及入门工具包
MPLAB IDE 在单个开发范例中支持使用多种调试工
具,包括从成本效益高的模拟器到低成本的在线调试
器,再到全功能的仿真器。这样缩短了用户升级到更加
灵活而功能强大的工具时的学习时间。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 249 页
PIC12(L)F1501
29.2
适用于各种器件系列的 MPLAB C
编译器
29.5
MPLAB C 编译器代码开发系统是完全的 ANSI C 编译
器,适用于 Microchip 的 PIC18、PIC24 和 PIC32 系列
单片机及 dsPIC30 和 dsPIC33 系列数字信号控制器。
这些编译器提供强大的集成功能和出众的代码优化能
力,且使用方便。
MPLINK 目标链接器包含了由 MPASM 汇编器、MPLAB
C18 C 编译器产生的可重定位目标。通过使用链接器脚
本中的指令,它还可链接预编译库中的可重定位目标。
MPLIB目标库管理器管理预编译代码库文件的创建和修
改。当从源文件调用库中的一段子程序时,只有包含此
子程序的模块被链接到应用程序。这样可使大型库在许
多不同应用中被高效地利用。
为便于源代码调试,编译器提供针对 MPLAB IDE 调试
器优化的符号信息。
29.3
目标链接器 / 库管理器具有如下特性:
适用于各种器件系列的 HI-TECH C
编译器
• 高效地连接单个的库而不是许多小文件
• 通过将相关的模块组合在一起来增强代码的可维护性
• 只要列出、替换、删除和抽取模块,便可灵活地创
建库
HI-TECH C 编译器代码开发系统是完全的 ANSI C 编译
器,适用于 Microchip 的 PIC 系列单片机及 dsPIC 系列
数字信号控制器。这些编译器提供强大的集成功能和全
知代码生成能力,且使用方便。
29.6
为便于源代码调试,编译器提供针对 MPLAB IDE 调试
器优化的符号信息。
MPASM 汇编器
MPASM 汇编器是全功能通用宏汇编器,适用于 PIC10/
12/16/18 MCU。
•
•
•
•
•
•
MPASM 汇编器可生成用于 MPLINK 目标链接器的可重
定位目标文件、Intel® 标准 HEX 文件、详细描述存储器
使用状况和符号参考的 MAP 文件、包含源代码行及生
成机器码的绝对 LST 文件以及用于调试的 COFF 文件。
MPASM 汇编器具有如下特性:
•
•
•
•
适用于各种器件系列的 MPLAB 汇编
器、链接器和库管理器
MPLAB 汇编器为 PIC24、PIC32 和 dsPIC 器件从符号
汇编语言生成可重定位机器码。 MPLAB C 编译器使用
该汇编器生成目标文件。汇编器产生可重定位目标文件
之后,可将这些目标文件存档,或与其他可重定位目标
文件和存档链接以生成可执行文件。该汇编器有如下显
著特性:
编译器包括一个宏汇编器、链接器、预处理程序和单步
驱动程序,可以在多种平台上运行。
29.4
MPLINK 目标链接器 /
MPLIB 目标库管理器
支持整个器件指令集
支持定点数据和浮点数据
命令行界面
丰富的指令集
灵活的宏语言
MPLAB IDE 兼容性
集成在 MPLAB IDE 项目中
用户定义的宏可简化汇编代码
对多用途源文件进行条件汇编
允许完全控制汇编过程的指令
DS41615A_CN 第 250 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
29.7
MPLAB SIM 软件模拟器
29.9
MPLAB SIM 软件模拟器通过在指令级对 PIC MCU 和
dsPIC® DSC 进行模拟,可在 PC 主机环境下进行代码
开发。对于任何给定的指令,都可以对数据区进行检查
或修改,并通过一个全面的激励控制器来施加激励。可
以将各寄存器记录在文件中,以便进行进一步的运行时
分析。跟踪缓冲区和逻辑分析器的显示使软件模拟器还
能记录和跟踪程序的执行、 I/O 的动作、大部分的外设
及内部寄存器。
MPLAB ICD 3 在线调试器系统是 Microchip 成本效益最
高的高速硬件调试器 / 编程器,适用于 Microchip 闪存
数字信号控制器 (DSC)和单片机 (MCU)器件。结
合 MPLAB 集成开发环境 (IDE)所具有的功能强大但
易于使用的图形用户界面,该调试器可对 PIC® 闪存单
片机和 dsPIC® DSC 进行调试和编程。
MPLAB ICD 3 在线调试器通过高速 USB 2.0 接口与设
计工程师的PC相连,并利用与MPLAB ICD 2或MPLAB
REAL ICE 系统兼容的连接器(RJ-11)与目标板相连。
MPLAB ICD 3 支持所有 MPLAB ICD 2 转接器。
MPLAB SIM 软件模拟器完全支持使用 MPLAB C 编译
器以及 MPASM 和 MPLAB 汇编器的符号调试。该软件
模拟器可用于在硬件实验室环境外灵活地开发和调试代
码,是一款完美且经济的软件开发工具。
29.8
MPLAB ICD 3 在线调试器系统
29.10 PICkit 3 在线调试器 / 编程器及
PICkit 3 Debug Express
MPLAB REAL ICE 在线仿真器系统
结合 MPLAB 集成开发环境 (IDE)所具有的功能强大
的图形用户界面,MPLAB PICkit 3 可对 PIC® 闪存单片
机和 dsPIC® 数字信号控制器进行调试和编程,且价位
较低。MPLAB PICkit 3 通过全速 USB 接口与设计工程
师的 PC 相连,并利用 Microchip 调试(RJ-11)连接器
(与 MPLAB ICD 3 和 MPLAB REAL ICE 兼容)与目标
板相连。连接器使用两个器件 I/O 引脚和复位线来实现
在线调试和在线串行编程。
MPLAB REAL ICE 在线仿真器系统是 Microchip 针对其
闪存 DSC 和 MCU 器件而推出的新一代高速仿真器。结
合 MPLAB 集成开发环境 (IDE)所具有的易于使用且
功能强大的图形用户界面,该仿真器可对 PIC® 闪存
MCU 和 dsPIC® 闪存 DSC 进行调试和编程。IDE 是随每
个工具包一起提供的。
该仿真器通过高速 USB 2.0 接口与设计工程师的 PC 相
连,并利用与在线调试器系统兼容的连接器 (RJ11)或
新型抗噪声、高 速低压差分信号 (LVDS)互连电缆
(CAT5)与目标板相连。
PICkit 3 Debug Express 包括 PICkit 3、演示板和单片
机、连接电缆和光盘 (内含用户指南、课程、教程、编
译器和 MPLAB IDE 软件)。
可通过 MPLAB IDE 下载将来版本的固件,对该仿真器
进行现场升级。在即将推出的 MPLAB IDE 版本中,会
支持许多新器件,还将增加一些新特性。在同类仿真器
中,MPLAB REAL ICE 的优势十分明显:低成本、全速
仿真、运行时变量查看、跟踪分析、复杂断点、耐用的
探针接口及较长 (长达 3 米)的互连电缆。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 251 页
PIC12(L)F1501
29.11 PICkit 2 开发编程器 / 调试器及
PICkit 2 Debug Express
29.13 演示 / 开发板、评估工具包及入门工
具包
PICkit™ 2 开发编程器 / 调试器是一款低成本开发工具,
具有易于使用的界面,适用于对 Microchip 的闪存系列
单片机进行编程和调试。这一全功能的 Windows® 编程
界面支持低档(PIC10F、PIC12F5xx 和 PIC16F5xx)、
中档 (PIC12F6xx 和 PIC16F)、 PIC18F、 PIC24、
dsPIC30、dsPIC33 和 PIC32 系列的 8 位、16 位及 32
位单片机,以及许多 Microchip 串行 EEPROM 产品。结
合 Microchip 功能强大的 MPLAB 集成开发环境(IDE),
PICkit 2 可对大多数 PIC® 单片机进行在线调试。即使
PIC 单片机已嵌入应用,在线调试功能仍可以运行、暂
停和单步执行程序。在断点处暂停时,可以检查和修改
文件寄存器。
有许多演示、开发和评估板可用于各种 PIC MCU 和
dsPIC DSC,实现对全功能系统的快速应用开发。大多
数的演示、开发和评估板都有实验布线区,供用户添加
定制电路;还有应用固件和源代码,用于检查和修改。
这些板支持多种功能部件,包括 LED、温度传感器、开
关、扬声器、 RS-232 接口、 LCD 显示器、电位计和附
加 EEPROM 存储器。
演示和开发板可用于教学环境,在实验布线区设计定制
电路,从而掌握各种单片机应用。
除了 PICDEM™ 和 dsPICDEM™ 演示 / 开发板系列电路
外,Microchip 还有一系列评估工具包和演示软件,适用
于模拟滤波器设计、KEELOQ® 数据安全产品 IC、CAN、
IrDA®、 PowerSmart 电池管理、 SEEVAL® 评估系统、
 ADC、流速传感器,等等。
PICkit 2 Debug Express 包括 PICkit 2、演示板和单片
机、连接电缆和光盘 (内含用户指南、课程、教程、编
译器和 MPLAB IDE 软件)。
同时还提供入门工具包,其中包含体验指定器件功能所
需的所有软硬件。通常提供单个应用以及调试功能,都
包含在一块电路板上。
29.12 MPLAB PM3 器件编程器
MPLAB PM3 器件编程器是一款符合 CE 规范的通用器
件编程器,在 VDDMIN 和 VDDMAX 点对其可编程电压进
行校验以确保可靠性最高。它有一个用来显示菜单和错
误消息的大 LCD 显示器(128 x 64),以及一个支持各
种封装类型的可拆卸模块化插槽装置。编程器标准配置
中带有一根 ICSP™ 电缆。在单机模式下,MPLAB PM3
器件编程器不必与 PC 相连即可对 PIC 器件进行读取、
校验和编程。在该模式下它还可设置代码保护。MPLAB
PM3 通过 RS-232 或 USB 电缆连接到 PC 主机上。
MPLAB PM3 具备高速通信能力以及优化算法,可对具
有大存储器的器件进行快速编程。它还包含了MMC卡,
用于文件存储及数据应用。
DS41615A_CN 第 252 页
有 关 演 示、开 发 和 评 估 工 具 包 的 完 整 列 表,请 访 问
Microchip 网站 (www.microchip.com)。
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
30.0
封装信息
30.1
封装标识信息
8 引脚 PDIP(300 mil)
示例
12F1501
I/P e3 017
1110
XXXXXXXX
XXXXXNNN
YYWW
8 引脚 SOIC(3.90 mm)
示例
12F1501
I/SN1110
017
NNN
图注:
XX...X
Y
YY
WW
NNN
e3
*
注:
*
客户指定信息
年份代码 (日历年的最后一位数字)
年份代码 (日历年的最后两位数字)
星期代码 (一月一日的星期代码为 “01”)
以字母数字排序的追踪代码
雾锡 (Matte Tin, Sn)的 JEDEC 无铅标志
表示无铅封装。JEDEC 无铅标志 ( e3 )
标示于此种封装的外包装上。
Microchip 元器件编号如果无法在同一行内完整标注,将换行标出,因此会限制
表示客户信息的字符数。
标准 PIC® 器件标识由 Microchip 元器件编号、年份代码、星期代码和追踪代码组成。若 PIC 器件标识超
出上述内容,需支付一定的附加费用。请向当地的 Microchip 销售办事处了解确认。对于 QTP 器件,任何
特殊标记的费用都已包含在 QTP 价格中。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 253 页
PIC12(L)F1501
封装标识信息 (续)
8 引脚 MSOP(3x3 mm)
示例
F1501I
110017
8 引脚 DFN(2x3x0.9 mm)
示例
BAK
110
10
引脚 1
引脚 1
8 引脚 DFN(3x3x0.9 mm)
示例
MFB1
1110
017
XXXX
YYWW
NNN
引脚
PIN 11
DS41615A_CN 第 254 页
引脚
PIN 11
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
表 30-1:
8 引脚 2x3 DFN (MC)顶部标识
部件编号
PIC12F1501-E/MC
标识
BAK
PIC12F1501-I/MC
BAL
PIC12LF1501-E/MC
BAM
PIC12LF1501-I/MC
BAP
表 30-2:
8 引脚 3x3 QFN (MF)顶部标识
部件编号
标识
PIC12F1501-E/MF
MFA1
PIC12F1501-I/MF
MFB1
PIC12LF1501-E/MF
MFC1
PIC12LF1501-I/MF
MFD1
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 255 页
PIC12(L)F1501
30.2
封装详细信息
以下部分将介绍各种封装的技术细节。
8 引脚塑封双列直插式封装 (P)——主体 300 mil [PDIP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
N
NOTE 1
E1
1
3
2
D
E
A2
A
L
A1
c
e
eB
b1
b
6&!
'!
9'&!
7"')
%!
7,8.
7
7
7:
;
<
&
&
&
=
=
##44!!
-
1!&
&
=
=
"#&
"#>#&
.
-
-
##4>#&
.
<
: 9&
-<
-?
&
&
9
-
9#4!!
<
)
?
)
<
1
=
=
69#>#&
9
*9#>#&
: *+
1,
-
!"#$%&"' ()"&'"!&)
&#*&&&#
+%&,&!&
- '!
!#.#
&"#'
#%!
&"!
!
#%!
&"!
!!
&$#/!#
'!
#&
.0
1,21!'!
&$& "!
**&
"&&
!
* ,<1
DS41615A_CN 第 256 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚塑封窄条小外形封装 (SN)——主体 3.90 mm [SOIC]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 257 页
PIC12(L)F1501
8 引脚塑封窄条小外形封装 (SN)——主体 3.90 mm [SOIC]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
DS41615A_CN 第 258 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚塑封窄条小外形封装 (SN)——主体 3.90 mm [SOIC]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 259 页
PIC12(L)F1501
8 引脚塑封微小外形封装 (MS)[MSOP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
D
N
E
E1
NOTE 1
1
2
e
b
A2
A
c
φ
L
L1
A1
6&!
'!
9'&!
7"')
%!
99..
7
7
7:
;
<
&
: 8&
=
?1,
=
##44!!
<
&#
%%
=
: >#&
.
##4>#&
.
-1,
: 9&
-1,
3
&9&
9
3
&&
9
1,
?
<
.3
3
&
I
R
=
<R
9#4!!
<
=
-
9#>#&
)
=
!"#$%&"' ()"&'"!&)
&#*&&&#
'!
!#.#
&"#'
#%!
&"!
!
#%!
&"!
!!
&$#''!#
- '!
#&
.0
1,2 1!'!
&$& "!
**&
"&&
!
.32 %'!
("!"*&
"&&
(%
%
'&
"
!!
* ,1
DS41615A_CN 第 260 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚塑封微小外形封装 (MS)[MSOP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 261 页
PIC12(L)F1501
8 引脚塑封双列扁平无脚封装 (MC)——主体 2x3x0.9 mm [DFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
D
e
b
N
N
L
K
E2
E
EXPOSED PAD
NOTE 1
2
1
NOTE 1
1
2
D2
BOTTOM VIEW
TOP VIEW
A
A3
A1
NOTE 2
6&!
'!
9'&!
7"')
%!
99..
7
7
7:
;
<
&
: 8&
<
&#
%%
,
&&4!!
-
.3
: 9&
1,
: >#&
.
.$
!##9&
-
=
.$
!##>#&
.
=
)
-
,
&&9&
9
-
,
&&&
.$
!##
U
=
=
,
&&>#&
1,
-1,
!"#$%&"' ()"&'"!&)
&#*&&&#
4' '
$
!#&)!&#!
- 4!!*!"&#
'!
#&
.0
1,2 1!'!
&$& "!
**&
"&&
!
.32 %'!
("!"*&
"&&
(%
%
'&
"
!!
* ,-,
DS41615A_CN 第 262 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚塑封双列扁平无脚封装 (MC)——主体 2x3x0.9 mm [DFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 263 页
PIC12(L)F1501
8 引脚塑封双列扁平无脚封装 (MF)——主体 3x3x0.9 mm [DFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
DS41615A_CN 第 264 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
8 引脚塑封双列扁平无脚封装 (MF)——主体 3x3x0.9 mm [DFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 265 页
PIC12(L)F1501
8 引脚塑封双列扁平无脚封装 (MF)——主体 3x3x0.9 mm [DFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
DS41615A_CN 第 266 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
附录 A:
版本历史
版本 A
初始版本 (2011 年 11 月)。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN第 267 页
PIC12(L)F1501
注:
DS41615A_CN第 268 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
索引
A
C
A/D
CALL................................................................................ 217
CALLW ............................................................................ 217
C 编译器
MPLAB C18............................................................. 250
CLCDATA 寄存器 ............................................................ 181
CLCxCON 寄存器 ............................................................ 173
CLCxGLS0 寄存器........................................................... 177
CLCxGLS1 寄存器........................................................... 178
CLCxGLS2 寄存器........................................................... 179
CLCxGLS3 寄存器........................................................... 180
CLCxPOL 寄存器............................................................. 174
CLCxSEL0 寄存器 ........................................................... 175
CMOUT 寄存器................................................................ 138
CMxCON0 寄存器............................................................ 137
CMxCON1 寄存器............................................................ 138
CONFIG1 寄存器 ............................................................... 40
CONFIG2 寄存器 ............................................................... 41
CWG
可选输入源............................................................... 196
时钟源...................................................................... 196
输出控制 .................................................................. 196
自动关断控制 ........................................................... 200
CWGxCON0 寄存器 ........................................................ 203
CWGxCON1 寄存器 ........................................................ 204
CWGxCON2 寄存器 ........................................................ 205
CWGxDBF 寄存器 ........................................................... 206
CWGxDBR 寄存器........................................................... 206
操作码字段说明 ............................................................... 211
程序存储器......................................................................... 15
映射和堆栈 (PIC12(L)F1501)................................. 16
存储器构成......................................................................... 15
程序 ........................................................................... 15
数据 ........................................................................... 17
规范.................................................................. 242, 243
ADC ................................................................................. 113
采集要求................................................................... 124
参考电压 (VREF)................................................... 114
端口配置................................................................... 114
工作原理................................................................... 117
计算采集时间 ........................................................... 124
框图.......................................................................... 113
内部采样开关阻抗 (RSS)....................................... 124
配置.......................................................................... 114
配置中断................................................................... 118
启动 A/D 转换........................................................... 116
通道选择................................................................... 114
相关的寄存器 ........................................................... 126
信号源阻抗 ............................................................... 124
休眠期间的操作........................................................ 117
中断.......................................................................... 116
转换步骤................................................................... 118
转换时钟................................................................... 114
ADCON0 寄存器 ........................................................ 25, 119
ADCON1 寄存器 ........................................................ 25, 120
ADCON2 寄存器 .............................................................. 121
ADDFSR .......................................................................... 215
ADDWFC ......................................................................... 215
ADRESH 寄存器 ................................................................ 25
ADRESH 寄存器 (ADFM = 0)....................................... 122
ADRESH 寄存器 (ADFM = 1)....................................... 123
ADRESL 寄存器 (ADFM = 0)....................................... 122
ADRESL 寄存器 (ADFM = 1)....................................... 123
ANSELA 寄存器 ............................................................... 103
APFCON 寄存器 .............................................................. 100
B
D
Bank 10.............................................................................. 28
Bank 11.............................................................................. 28
Bank 12.............................................................................. 28
Bank 13.............................................................................. 28
Bank 14-29......................................................................... 29
Bank 2................................................................................ 26
Bank 3................................................................................ 26
Bank 30.............................................................................. 29
Bank 4................................................................................ 27
Bank 5................................................................................ 27
Bank 6................................................................................ 27
Bank 7................................................................................ 27
Bank 8................................................................................ 27
Bank 9................................................................................ 27
BORCON 寄存器................................................................ 55
BRA.................................................................................. 216
版本历史........................................................................... 267
备用引脚功能 ................................................................... 100
比较器
C2OUT 作为 T1 门控 ............................................... 147
工作原理................................................................... 131
相关的寄存器 ........................................................... 139
比较器规范 ....................................................................... 245
比较器模块 ....................................................................... 131
Cx 输出状态与输入条件 ........................................... 133
编程,器件指令 ................................................................ 211
变更通知客户服务 ............................................................ 275
 2012 Microchip Technology Inc.
DACCON0 (数模转换器控制 0)寄存器 ........................ 130
DACCON1 (数模转换器控制 1)寄存器 ........................ 130
代码示例
A/D 转换 .................................................................. 118
初始化 PORTA........................................................... 99
写入闪存程序存储器 .................................................. 92
电平变化中断 ................................................................... 105
相关的寄存器 ........................................................... 108
电气规范 .......................................................................... 225
掉电模式 (休眠).............................................................. 75
相关的寄存器 ............................................................. 78
定时器
Timer2
T2CON ............................................................ 159
Timer1
T1CON ............................................................ 153
T1GCON.......................................................... 154
读 - 修改 - 写操作 ............................................................. 211
读者反馈表....................................................................... 276
堆栈 ................................................................................... 32
访问 ........................................................................... 32
复位 ........................................................................... 34
堆栈上溢 / 下溢 .................................................................. 56
初稿
DS41615A_CN 第 269 页
PIC12(L)F1501
F
IOCAP (电平变化中断 PORTA 正边沿)................ 107
LATA (数据锁存器 PORTA)................................. 103
NCOxACCH (NCOx 累加器高字节)..................... 190
NCOxACCL (NCOx 累加器低字节)...................... 190
NCOxACCU (NCOx 累加器最高字节).................. 190
NCOxCLK (NCOx 时钟控制)................................ 189
NCOxCON (NCOx 控制)...................................... 189
NCOxINCH (NCOx 递增高字节).......................... 191
NCOxINCL (NCOx 递增低字节)........................... 191
内核功能,汇总 ......................................................... 24
OPTION_REG (OPTION).................................... 143
OSCCON (振荡器控制).......................................... 51
OSCSTAT (振荡器状态)......................................... 52
PCON (电源控制)................................................... 59
PCON (电源控制寄存器)........................................ 59
PIE1 (外设中断允许 1)........................................... 67
PIE2 (外设中断允许 2)........................................... 68
PIE3 (外设中断允许 3)........................................... 69
PIR1 (外设中断寄存器 1)....................................... 70
PIR2 (外设中断请求 2)........................................... 71
PIR3 (外设中断请求 3)........................................... 72
PMADRL (程序存储器地址)................................... 96
PMCON1 (程序存储器控制 1)................................ 97
PMCON2 (程序存储器控制 2)................................ 98
PMDATH (程序存储器数据)................................... 96
PMDATL (程序存储器数据).................................... 96
PMDRH (程序存储器地址)..................................... 96
PORTA .................................................................... 102
PWMxCON (PWM 控制)...................................... 165
PWMxDCH (PWM 控制)...................................... 166
PWMxDCL (PWM 控制)....................................... 166
配置字 1 ..................................................................... 40
配置字 2 ..................................................................... 41
器件 ID ....................................................................... 43
STATUS .................................................................... 18
T1CON (Timer1 控制).......................................... 153
T1GCON (Timer1 门控控制)................................ 154
T2CON .................................................................... 159
TRISA (三态 PORTA).......................................... 102
特殊功能,汇总 ......................................................... 25
WDTCON (看门狗定时器控制)............................... 80
WPUA (弱上拉 PORTA)....................................... 104
VREGCON (稳压器控制)....................................... 78
间接寻址 ............................................................................ 34
交流特性
负载条件 .................................................................. 237
工业级和扩展级 ....................................................... 238
绝对最大值....................................................................... 225
FSR 寄存器 ........................................................................ 24
FVRCON (固定参考电压控制)寄存器 .......................... 110
封装 .................................................................................. 253
标识 .................................................................. 253, 254
PDIP 详细信息 ......................................................... 255
复位 .................................................................................... 53
相关的寄存器 ............................................................. 60
复位的影响
PWM 模式 ................................................................ 163
复位指令............................................................................. 56
负载条件........................................................................... 237
G
固定参考电压 (FVR)..................................................... 109
相关的寄存器 ........................................................... 110
固件指令........................................................................... 211
H
互补波形发生器 (CWG)........................................ 193, 194
汇编器
MPASM 汇编器 ........................................................ 250
I
INDF 寄存器 ....................................................................... 24
INTCON 寄存器.................................................................. 66
INTOSC 规范 ................................................................... 238
IOCAF 寄存器 .................................................................. 107
IOCAN 寄存器 .................................................................. 107
IOCAP 寄存器 .................................................................. 107
J
寄存器
ADCON0 (ADC 控制 0)........................................ 119
ADCON1 (ADC 控制 1)........................................ 120
ADCON2 (ADC 控制 2)........................................ 121
ADRESH (ADC 结果高字节, ADFM = 0)............ 122
ADRESH (ADC 结果高字节, ADFM = 1)............ 123
ADRESL (ADC 结果低字节, ADFM = 0)............ 122
ADRESL (ADC 结果低字节, ADFM = 1)............ 123
ANSELA (PORTA 模拟选择)................................ 103
APFCON (备用引脚功能控制).............................. 100
BORCON (欠压复位控制)...................................... 55
CLCDATA (数据输出)........................................... 181
CLCxCON (CLCx 控制)........................................ 173
CLCxGLS0 (门 1 逻辑选择).................................. 177
CLCxGLS1 (门 2 逻辑选择).................................. 178
CLCxGLS2 (门 3 逻辑选择).................................. 179
CLCxGLS3 (门 4 逻辑选择).................................. 180
CLCxPOL (信号极性控制).................................... 174
CLCxSEL0 (多路开关数据 1 和 2 选择)................ 175
CMOUT (比较器输出)........................................... 138
CMxCON0 (Cx 控制)............................................ 137
CMxCON1 (Cx 控制 1)......................................... 138
CWGxCON0 (CWG 控制 0)................................. 203
CWGxCON1 (CWG 控制 1)................................. 204
CWGxCON2 (CWG 控制 1)................................. 205
CWGxDBF (CWGx 死区下降沿计数)................... 206
CWGxDBR (CWGx 死区上升沿计数)................... 206
DACCON0 ............................................................... 130
DACCON1 ............................................................... 130
FVRCON .................................................................. 110
INTCON (中断控制)................................................ 66
IOCAF (电平变化中断 PORTA 标志).................... 107
IOCAN (电平变化中断 PORTA 负边沿)................ 107
DS41615A_CN 第 270 页
K
开发支持 .......................................................................... 249
看门狗定时器 (WDT)...................................................... 56
规范 ......................................................................... 241
模式 ........................................................................... 80
相关的寄存器 ............................................................. 82
勘误表 .................................................................................. 7
客户通知服务 ................................................................... 275
客户支持 .......................................................................... 275
框图
ADC ......................................................................... 113
ADC 传递函数.......................................................... 125
比较器 ...................................................................... 132
参考电压 .................................................................. 109
参考电压输出缓冲示例............................................. 128
模拟输入模型 ................................................... 125, 136
NCO......................................................................... 184
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
P
PIC12(L)F1501 ...................................................... 5, 10
PWM ........................................................................ 161
片上复位电路 ............................................................. 53
时钟源 ........................................................................ 45
数模转换器 (DAC)................................................ 128
Timer0...................................................................... 141
Timer2...................................................................... 157
Timer1...................................................................... 145
Timer1 门控.............................................. 150, 151, 152
通用 I/O 端口 .............................................................. 99
中断逻辑..................................................................... 61
扩展指令集
ADDFSR .................................................................. 215
PCLATH 寄存器................................................................. 24
PCL 和 PCLATH ................................................................ 14
PCL 寄存器 ........................................................................ 24
PCON 寄存器............................................................... 25, 59
PIE1 寄存器 ................................................................. 25, 67
PIE2 寄存器 ................................................................. 25, 68
PIE3 寄存器 ................................................................. 25, 69
PIR1 寄存器 ................................................................. 25, 70
PIR2 寄存器 ................................................................. 25, 71
PIR3 寄存器 ................................................................. 25, 72
PMADRH 寄存器 ............................................................... 83
PMADR 寄存器 .................................................................. 83
PMADRL 寄存器 .......................................................... 83, 96
PMCON1 寄存器.......................................................... 83, 97
PMCON2 寄存器.......................................................... 83, 98
PMDATH 寄存器................................................................ 96
PMDATL 寄存器 ................................................................ 96
PMDRH 寄存器.................................................................. 96
PORTA ............................................................................ 101
ANSELA 寄存器....................................................... 101
规范 ......................................................................... 239
LATA 寄存器 .............................................................. 26
PORTA 寄存器........................................................... 25
相关的寄存器 ........................................................... 104
PORTA 寄存器................................................................. 102
PR2 寄存器 ........................................................................ 25
PWMxCON 寄存器 .......................................................... 165
PWMxDCH 寄存器........................................................... 166
PWMxDCL 寄存器 ........................................................... 166
L
LATA 寄存器 .................................................................... 103
LSLF ................................................................................ 219
LSRF ................................................................................ 219
M
MCLR ................................................................................. 56
内部............................................................................ 56
MICROCHIP 网站 ............................................................ 275
MOVIW ............................................................................ 220
MOVLB ............................................................................ 220
MOVWI ............................................................................ .221
MPLAB 汇编器、链接器和库管理器................................. 250
MPLAB 集成开发环境软件 ............................................... 249
MPLAB PM3 器件编程器 .................................................. 252
MPLAB REAL ICE 在线仿真器系统 .................................. 251
MPLINK 目标链接器 /MPLIB 目标库管理器...................... 250
脉宽调制 (PWM)........................................................... 161
PWM 模式
复位的影响 ....................................................... 163
PWM 频率和分辨率示例, 20 MHz ................. 163
PWM 频率和分辨率示例, 8 MHz ................... 163
使用 PWMx 引脚设置操作................................ 164
系统时钟频率改变 ............................................ 163
休眠模式下的操作 ............................................ 163
占空比 .............................................................. 162
PWM 周期 ................................................................ 162
使用 PWMx 引脚设置 PWM 操作 ............................. 164
与 PWM 相关的寄存器 ............................................. 166
模数转换器。 请参见 ADC
Q
器件概述 ........................................................................ 9, 79
器件 ID 寄存器 ................................................................... 43
器件配置 ............................................................................ 39
代码保护 .................................................................... 42
配置字........................................................................ 39
用户 ID ................................................................. 42, 43
欠压复位 (BOR)............................................................. 55
规范 ......................................................................... 241
时序和特性............................................................... 240
R
N
RESET............................................................................. 221
软件模拟器 (MPLAB SIM)............................................ 251
NCO
S
相关的寄存器 ........................................................... 192
NCOxACCH 寄存器 ......................................................... 190
NCOxACCL 寄存器 .......................................................... 190
NCOxACCU 寄存器 ......................................................... 190
NCOxCLK 寄存器............................................................. 189
NCOxCON 寄存器............................................................ 189
NCOxINCH 寄存器........................................................... 191
NCOxINCL 寄存器 ........................................................... 191
内部采样开关阻抗 (RSS)............................................... 124
内部振荡器模块
INTOSC
规范.................................................................. 238
内核功能寄存器 .................................................................. 24
STATUS 寄存器................................................................. 18
SUBWFB ......................................................................... 223
散热考虑 .......................................................................... 236
闪存程序存储器 ................................................................. 83
擦除 ........................................................................... 87
相关的寄存器 ............................................................. 98
写入 ........................................................................... 89
写校验........................................................................ 95
修改 ........................................................................... 93
与闪存程序存储器相关的配置字 ................................ 98
闪存程序存储器控制 .......................................................... 83
上电复位 ............................................................................ 54
上电延时定时器 (PWRT)................................................ 54
规范 ......................................................................... 241
上电延时序列 ..................................................................... 56
时序参数符号体系 ............................................................ 237
时序图
A/D 转换 .................................................................. 243
O
OPTION ........................................................................... 221
OPTION 寄存器................................................................ 143
OSCCON 寄存器................................................................ 51
OSCSTAT 寄存器 .............................................................. 52
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 271 页
PIC12(L)F1501
W
A/D 转换 (休眠模式)............................................. 244
比较器输出 ............................................................... 131
CLKOUT 和 I/O ........................................................ 239
从中断唤醒 ................................................................. 76
复位、 WDT、 OST 和上电延时定时器.................... 240
复位启动序列 ............................................................. 57
INT 引脚中断 .............................................................. 64
内部振荡器切换时序................................................... 49
欠压复位 (BOR).................................................... 240
欠压复位情形 ............................................................. 55
时钟时序................................................................... 238
Timer0 和 Timer1 外部时钟 ...................................... 241
Timer1 递增边沿....................................................... 149
使用中断唤醒...................................................................... 75
时钟切换............................................................................. 50
时钟源
内部模式..................................................................... 47
HFINTOSC......................................................... 47
LFINTOSC ......................................................... 47
内部振荡器时钟切换时序 ................................... 48
外部模式..................................................................... 46
EC ...................................................................... 46
数据存储器 ......................................................................... 17
数控振荡器 (NCO)........................................................ 183
数模转换器 (DAC)........................................................ 127
复位的影响 ............................................................... 128
规范 .......................................................................... 245
相关的寄存器 ........................................................... 130
WDTCON 寄存器 ............................................................... 80
WPUA 寄存器 .................................................................. 104
WWW,在线支持................................................................. 7
WWW 地址....................................................................... 275
温度指示器
相关的寄存器 ........................................................... 112
温度指示器模块................................................................ 111
X
写保护 ................................................................................ 42
Z
增强型中档 CPU ................................................................ 13
振荡器
相关的寄存器 ..................................................... 52, 207
振荡器参数....................................................................... 238
振荡器规范....................................................................... 238
振荡器模块......................................................................... 45
ECH ........................................................................... 45
ECL............................................................................ 45
ECM........................................................................... 45
INTOSC ..................................................................... 45
振荡器起振定时器 (OST)
规范 ......................................................................... 241
指令格式 .......................................................................... 212
指令集 .............................................................................. 211
ADDLW.................................................................... 215
ADDWF.................................................................... 215
ADDWFC ................................................................. 215
ANDLW.................................................................... 215
ANDWF.................................................................... 215
BCF ......................................................................... 216
BRA ......................................................................... 216
BSF.......................................................................... 216
BTFSC ..................................................................... 216
BTFSS ..................................................................... 216
CALL........................................................................ 217
CALLW .................................................................... 217
CLRF ....................................................................... 217
CLRW ...................................................................... 217
CLRWDT ................................................................. 217
COMF ...................................................................... 217
DECF ....................................................................... 217
DECFSZ .................................................................. 218
GOTO ...................................................................... 218
INCF ........................................................................ 218
INCFSZ.................................................................... 218
IORLW ..................................................................... 218
IORWF..................................................................... 218
LSLF ........................................................................ 219
LSRF ....................................................................... 219
MOVF ...................................................................... 219
MOVIW .................................................................... 220
MOVLB .................................................................... 220
MOVLW ................................................................... 220
MOVWF ................................................................... 220
MOVWI .................................................................... 221
NOP ......................................................................... 221
OPTION ................................................................... 221
RESET..................................................................... 221
RETFIE .................................................................... 222
RETLW .................................................................... 222
RETURN.................................................................. 222
RLF .......................................................................... 222
T
T1CON 寄存器 ........................................................... 25, 153
T1GCON 寄存器 .............................................................. 154
T2CON (Timer2)寄存器 ............................................... 159
T2CON 寄存器 ................................................................... 25
Timer0 .............................................................................. 141
工作原理................................................................... 141
规范 .......................................................................... 242
相关的寄存器 ........................................................... 143
Timer2 .............................................................................. 157
相关的寄存器 ........................................................... 160
Timer1 .............................................................................. 145
工作原理................................................................... 146
规范 .......................................................................... 242
时钟源选择 ............................................................... 146
Timer1 门控
选择源 .............................................................. 147
TMR1H 寄存器 ......................................................... 145
TMR1L 寄存器.......................................................... 145
相关的寄存器 ................................................... 155, 207
休眠期间的操作 ........................................................ 149
异步计数器模式 ........................................................ 147
读写.................................................................. 147
预分频器................................................................... 147
中断 .......................................................................... 149
TMR0 寄存器...................................................................... 25
TMR1H 寄存器 ................................................................... 25
TMR1L 寄存器.................................................................... 25
TMR2 寄存器...................................................................... 25
TRIS ................................................................................. 224
TRISA 寄存器 ............................................................. 25, 102
特殊功能寄存器 (SFR).................................................... 25
V
VREF。 请参见 ADC 参考电压
VREGCON 寄存器 ............................................................. 78
DS41615A_CN 第 272 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
RRF.......................................................................... 223
SLEEP ..................................................................... 223
SWAPF .................................................................... 224
SUBLW .................................................................... 223
SUBWF .................................................................... 223
SUBWFB.................................................................. 223
TRIS......................................................................... 224
XORLW.................................................................... 224
XORWF.................................................................... 224
直流和交流特性 ................................................................ 247
直流特性
工业级和扩展级........................................................ 227
扩展级和工业级........................................................ 234
中断 .................................................................................... 61
ADC ......................................................................... 118
TMR1 ....................................................................... 149
与中断相关的寄存器................................................... 73
自动现场保护 ..................................................................... 65
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 273 页
PIC12(L)F1501
注:
DS41615A_CN 第 274 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
MICROCHIP 网站
客户支持
Microchip 网站 (www.microchip.com)为客户提供在
线支持。客户可通过该网站方便地获取文件和信息。只
要使用常用的互联网浏览器即可访问。网站提供以下信
息:
Microchip 产品的用户可通过以下渠道获得帮助:
•
•
•
•
• 产品支持——数据手册和勘误表、应用笔记和示例
程序、设计资源、用户指南以及硬件支持文档、最
新的软件版本以及归档软件
• 一般技术支持——常见问题解答 (FAQ)、技术支
持请求、在线讨论组以及 Microchip 顾问计划成员
名单
• Microchip 业务——产品选型和订购指南、最新
Microchip 新闻稿、研讨会和活动安排表、
Microchip 销售办事处、代理商以及工厂代表列表
代理商或代表
当地销售办事处
应用工程师 (FAE)
技术支持
客户应联系其代理商、代表或应用工程师 (FAE)寻求
支持。当地销售办事处也可为客户提供帮助。本文档后
附有销售办事处的联系方式。
也可通过 http://microchip.com/support 获得网上技
术支持。
变更通知客户服务
Microchip
的 变 更 通 知 客 户 服 务 有 助 于客户了解
Microchip 产品的最新信息。注册客户可在他们感兴趣
的某个产品系列或开发工具发生变更、更新、发布新版
本或勘误表时,收到电子邮件通知。
欲注册,请登录 Microchip 网站 www.microchip.com。
在 “支 持”(Support)下,点 击 “变 更 通 知 客 户
(Customer Change Notification)”服务后按照注册说
明完成注册。
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 275 页
PIC12(L)F1501
读者反馈表
我们努力为您提供最佳文档,以确保您能够成功使用 Microchip 产品。如果您对文档的组织、条理性、主题及其他有助
于提高文档质量的方面有任何意见或建议,请填写本反馈表并传真给我公司 TRC 经理,传真号码为 86-21-5407-5066。
请填写以下信息,并从下面各方面提出您对本文档的意见。
致:
TRC 经理
总页数 ________
关于: 读者反馈
发自: 姓名
公司
地址
国家 / 省份 / 城市 / 邮编
电话 :(______)__________________
传真:(______)__________________
应用(选填):
您希望收到回复吗?是
否
器件:PIC12(L)F1501
文献编号:DS41615A_CN
问题:
1. 本文档中哪些部分最有特色?
2. 本文档是否满足了您的软硬件开发要求?如何满足的?
3. 您认为本文档的组织结构便于理解吗?如果不便于理解,那么问题何在?
4. 您认为本文档应该添加哪些内容以改善其结构和主题?
5. 您认为本文档中可以删减哪些内容,而又不会影响整体使用效果?
6. 本文档中是否存在错误或误导信息?如果存在,请指出是什么信息及其具体页数。
7. 您认为本文档还有哪些方面有待改进?
DS41615A_CN 第 276 页
初稿
 2012 Microchip Technology Inc.
PIC12(L)F1501
产品标识体系
欲订货或获取价格、交货等信息,请与我公司生产厂或各销售办事处联系。
[X](1)
部件编号
器件
-
卷带式
选项
X
/XX
XXX
温度范围
封装
定制编号
示例:
a)
b)
器件:
PIC12F1501 和 PIC12LF1501
卷带式选项:
空白
T
=标准包装 (料管或托盘)
= 卷带式(1)
温度范围:
I
E
= -40C 至 +85C
= -40C 至 +125C
封装:
MC
MG
MS
P
SN
定制编号:
=
=
=
=
=
c)
PIC12LF1501T - I/SN
卷带式,
工业级温度,
SOIC 封装
PIC12F1501 - I/P
工业级温度,
PDIP 封装
PIC12F1501 - E/MF
扩展级温度,
DFN 封装
(工业级)
(扩展级)
微引线框架 (DFN) 2x3
微引线框架 (DFN) 3x3
MSOP
塑封 DIP
SOIC
注
1:
卷带式标识符仅出现在产品目录的部件编号
描述中。该标识符用于订货目的,不会印刷
在器件封装上。关于包装是否提供卷带式选
项的信息,请咨询当地的 Microchip 销售办事
处。
QTP、 SQTP、编码或特殊要求 (否则为空白)
 2012 Microchip Technology Inc.
初稿
DS41615A_CN 第 277 页
全球销售及服务网点
美洲
亚太地区
亚太地区
欧洲
公司总部 Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 1-480-792-7200
Fax: 1-480-792-7277
技术支持:
http://www.microchip.com/
support
网址:www.microchip.com
亚太总部 Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
台湾地区 - 高雄
Tel: 886-7-536-4818
Fax: 886-7-330-9305
奥地利 Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
台湾地区 - 台北
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
丹麦 Denmark-Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
台湾地区 - 新竹
Tel: 886-3-5778-366
Fax: 886-3-5770-955
法国 France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
澳大利亚 Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
德国 Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
印度 India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
意大利 Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
印度 India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
荷兰 Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
印度 India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
日本 Japan - Osaka
Tel: 81-66-152-7160
西班牙 Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
亚特兰大 Atlanta
Duluth, GA
Tel: 1-678-957-9614
Fax:1-678-957-1455
波士顿 Boston
Westborough, MA
Tel: 1-774-760-0087
Fax: 1-774-760-0088
芝加哥 Chicago
Itasca, IL
Tel: 1-630-285-0071
Fax: 1-630-285-0075
克里夫兰 Cleveland
Independence, OH
Tel: 1-216-447-0464
Fax: 1-216-447-0643
达拉斯 Dallas
Addison, TX
Tel: 1-972-818-7423
Fax: 1-972-818-2924
底特律 Detroit
Farmington Hills, MI
Tel: 1-248-538-2250
Fax: 1-248-538-2260
印第安纳波利斯
Indianapolis
Noblesville, IN
Tel: 1-317-773-8323
Fax: 1-317-773-5453
洛杉矶 Los Angeles
Mission Viejo, CA
Tel: 1-949-462-9523
Fax: 1-949-462-9608
圣克拉拉 Santa Clara
Santa Clara, CA
Tel: 1-408-961-6444
Fax: 1-408-961-6445
加拿大多伦多 Toronto
Mississauga, Ontario,
Canada
Tel: 1-905-673-0699
Fax: 1-905-673-6509
中国 - 北京
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104
中国 - 成都
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
中国 - 重庆
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
中国 - 杭州
Tel: 86-571-2819-3187
Fax: 86-571-2819-3189
中国 - 香港特别行政区
Tel: 852-2401-1200
Fax: 852-2401-3431
中国 - 南京
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
中国 - 青岛
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
中国 - 上海
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
中国 - 沈阳
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
中国 - 深圳
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
中国 - 武汉
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
中国 - 西安
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
中国 - 厦门
Tel: 86-592-238-8138
Fax: 86-592-238-8130
中国 - 珠海
Tel: 86-756-321-0040
Fax: 86-756-321-0049
Fax: 81-66-152-9310
英国 UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
日本 Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
韩国 Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
韩国 Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 或
82-2-558-5934
马 来西 亚 Malaysia - Kuala
Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
马来西亚 Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
菲律宾 Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
新加坡 Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
泰国 Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
11/29/11
DS41615A_CN 第 278 页
初稿
 2012 Microchip Technology Inc.