ETC PIC16F914

PIC16F913/914/916/917/946
数据手册
带 LCD 驱动器、采用纳瓦技术的
28/40/44/64 引脚基于闪存的
8 位 CMOS 单片机
 2007 Microchip Technology Inc.
DS41250F_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•
Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
•
Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
•
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•
Microchip 愿与那些注重代码完整性的客户合作。
•
Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
商标
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
AmpLab、 FilterLab、 Linear Active Thermistor、 Migratable
Memory、 MXDEV、 MXLAB、 SEEVAL、 SmartSensor 和
The Embedded Control Solutions Company 均为 Microchip
Technology Inc. 在美国的注册商标。
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 KEELOQ、 KEELOQ 徽标、 microID、 MPLAB、 PIC、
PICmicro、 PICSTART、 PRO MATE、 rfPIC 和 SmartShunt
均为 Microchip Technology Inc. 在美国和其他国家或地区的
注册商标。
Analog-for-the-Digital Age、 Application Maestro、
CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、
dsSPEAK、 ECAN、 ECONOMONITOR、 FanSense、
FlexROM、 fuzzyLAB、 In-Circuit Serial Programming、
ICSP、 ICEPIC、 Mindi、 MiWi、 MPASM、 MPLAB Certified
徽标、 MPLIB、MPLINK、PICkit、PICDEM、 PICDEM.net、
PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、
PowerTool、 REAL ICE、 rfLAB、 Select Mode、 Smart
Serial、 SmartTel、 Total Endurance、 UNI/O、 WiperLock 和
ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地
区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2007, Microchip Technology Inc. 版权所有。
Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州
Gresham 的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
印度的设计中心均通过了 ISO/TS-16949:2002 认证。公司在 PIC®
MCU 与 dsPIC® DSC、 KEELOQ® 跳码器件、串行 EEPROM、单片机外
设、非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS16949:2002。此外, Microchip 在开发系统的设计和生产方面的质量体
系也已通过了 ISO 9001:2000 认证。
DS41250F_CN 第 ii 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
带 LCD 驱动器、采用纳瓦技术的
28/40/44/64 引脚 8 位 CMOS 闪存单片机
高性能的 RISC CPU:
低功耗特性:
• 仅需学习 35 条指令:
- 除跳转指令外的所有指令都是单周期的
• 工作速度:
- 振荡器 / 时钟的输入频率为 DC – 20 MHz
- 指令周期为 DC – 200 ns
• 程序存储器读取 (Program Memory Read,
PMR)功能
• 中断功能
• 8 级深硬件堆栈
• 直接、间接和相对寻址模式
• 待机电流:
- <100 nA (当电压为 2.0V 时),典型值
• 工作电流:
- 11 µA (当频率为 32 kHz,电压为 2.0V
时),典型值
- 220 µA (当频率为 4 MHz,电压为 2.0V
时),典型值
• 看门狗定时器电流:
- 1 µA (当电压为 2.0V 时),典型值
单片机的特点:
• 液晶显示模块:
- 28/40/64 引脚器件最大可分别驱动 60/96/168
像素
- 4 个公共端
• 最多 24/35/53 个 I/O 引脚和 1 个仅输入的引脚:
- 高灌 / 拉电流可直接驱动 LED
- 引脚电平变化中断
- 独立的可编程弱上拉
• 通过两个引脚进行的在线串行编程 (In-Circuit
Serial Programming™, ICSP™)
• 模拟比较器模块带有:
- 两个模拟比较器
- 可编程的片上参考电压 (CVREF)模块 (占
VDD 的百分比)
- 可从外部访问的比较器输入和输出
• A/D 转换器:
- 10 位分辨率并且最多 8 个通道
• Timer0:带 8 位可编程预分频器的 8 位定时器 / 计
数器
• 增强型 Timer1:
- 带有预分频器的 16 位定时器 / 计数器
- 外部 Timer1 门控信号 (使能计数)
- 如果选择了 INTOSCIO 或 LP 模式,可选择
使用 OSC1 和 OSC2 作为 Timer1 的振荡器
• Timer2:带 8 位周期寄存器、预分频器和后分频
器的 8 位定时器 / 计数器
• 可寻址通用同步 / 异步收发器 (Addressable
Universal Synchronous Asynchronous Receiver
Transmitter, AUSART)
• 最多 2 个捕捉 / 比较 /PWM 模块:
- 16 位捕捉,最大分辨率为 12.5 ns
- 16 位比较,最大分辨率为 200 ns
- 10 位 PWM,最大频率为 20 kHz
• 具有 I2C™ 工作模式的同步串行端口
(Synchronous Serial Port , SSP)
• 高精度内部振荡器:
- 出厂时精度校准为 ±1% (典型值)
- 可用软件选择的频率范围为 125 kHz 到
8 MHz
- 可用软件调节
- 双速启动模式
- 适用于关键应用的晶振故障检测
- 在节能模式下工作时可进行时钟模式切换
• 可用软件选择 31 kHz 内部振荡器
• 节能的休眠模式
• 宽工作电压范围 (2.0V 到 5.5V)
• 工业级和扩展级温度范围
• 上电复位 (Power-on Reset, POR)
• 上电延时定时器 (Power-up Timer, PWRT)和
振荡器起振定时器 (Oscillator Start-up Timer,
OST)
• 带软件控制选择的欠压复位 (Brown-out Reset,
BOR)
• 带片上振荡器 (可由软件选择预分频比,当预分
频比最大时其标称值为 268 秒)并且可软件使能
的增强型低电流看门狗定时器 (Watchdog
Timer , WDT)
• 与上拉 / 输入引脚复用的主复位
• 可编程代码保护
• 高耐用性闪存 /EEPROM 单元:
- 闪存可经受 10 万次写操作
- EEPROM 可经受 100 万次写操作
- 闪存 / 数据 EEPROM 保存时间:>40 年
 2007 Microchip Technology Inc.
外设特性:
DS41250F_CN 第 1 页
PIC16F913/914/916/917/946
程序存储器
数据存储器
10 位 A/D
LCD
转换器
(段驱动器)
(通道数)
闪存
(字 / 字节)
SRAM
(字节)
EEPROM
(字节)
I/O
PIC16F913
4K/7K
256
256
24
5
PIC16F914
4K/7K
256
256
35
8
器件
CCP
8/16位
定时器
16(1)
1
2/1
24
2
2/1
(1)
PIC16F916
8K/14K
352
256
24
5
1
2/1
PIC16F917
8K/14K
352
256
35
8
24
2
2/1
PIC16F946
8K/14K
336
256
53
8
42
2
2/1
注
16
1: PIC16F913/916 器件的 COM3 和 SEG15 共用同一物理引脚,因此使用 1/4 复用显示时 SEG15 不可用。
引脚框图 — PIC16F914/917, 40 引脚
RE3/MCLR/VPP
RA0/AN0/C1-/SEG12
RA1/AN1/C2-/SEG7
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/C1+/VREF+/SEG15
RA4/C1OUT/T0CKI/SEG4
RA5/AN4/C2OUT/SS/SEG5
RE0/AN5/SEG21
RE1/AN6/SEG22
RE2/AN7/SEG23
VDD
VSS
RA7/OSC1/CLKIN/T1OSI
RA6/OSC2/CLKOUT/T1OSO
RC0/VLCD1
RC1/VLCD2
RC2/VLCD3
RC3/SEG6
RD0/COM3
RD1
DS41250F_CN 第 2 页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PIC16F914/917
40 引脚 PDIP
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
RB7/ICSPDAT/ICDDAT/SEG13
RB6/ICSPCLK/ICDCK/SEG14
RB5/COM1
RB4/COM0
RB3/SEG3
RB2/SEG2
RB1/SEG1
RB0/INT/SEG0
VDD
VSS
RD7/SEG20
RD6/SEG19
RD5/SEG18
RD4/SEG17
RC7/RX/DT/SDI/SDA/SEG8
RC6/TX/CK/SCK/SCL/SEG9
RC5/T1CKI/CCP1/SEG10
RC4/T1G/SDO/SEG11
RD3/SEG16
RD2/CCP2
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
PIC16F914/917 40 引脚汇总
表 1:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
RA0
2
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
3
AN1
SEG7
C2-
—
—
—
—
—
—
—
基本功能
RA2
4
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
5
AN3/VREF+
SEG15
C1+
—
—
—
—
—
—
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
—
AN4
SEG5
C2OUT
—
—
—
SS
—
—
—
RA4
6
RA5
7
RA6
14
—
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
13
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
33
—
SEG0
—
—
—
—
—
INT
有
—
RB1
34
—
SEG1
—
—
—
—
—
—
有
—
RB2
35
—
SEG2
—
—
—
—
—
—
有
—
RB3
36
—
SEG3
—
—
—
—
—
—
有
—
RB4
37
—
COM0
—
—
—
—
—
IOC
有
—
RB5
38
—
COM1
—
—
—
—
—
IOC
有
—
RB6
39
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
ICSPDAT/ICD-DAT
RB7
40
—
SEG13
—
—
—
—
—
IOC
有
RC0
15
—
VLCD1
—
—
—
—
—
—
—
—
RC1
16
—
VLCD2
—
—
—
—
—
—
—
—
RC2
17
—
VLCD3
—
—
—
—
—
—
—
—
RC3
18
—
SEG6
—
—
—
—
—
—
—
—
—
RC4
23
—
SEG11
—
T1G
—
—
SDO
—
—
RC5
24
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
RC6
25
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
—
RC7
26
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RD0
19
—
COM3
—
—
—
—
—
—
—
—
RD1
20
—
—
—
—
—
—
—
—
—
—
RD2
21
—
—
—
—
CCP2
—
—
—
—
—
RD3
22
—
SEG16
—
—
—
—
—
—
—
—
RD4
27
—
SEG17
—
—
—
—
—
—
—
—
RD5
28
—
SEG18
—
—
—
—
—
—
—
—
RD6
29
—
SEG19
—
—
—
—
—
—
—
—
RD7
30
—
SEG20
—
—
—
—
—
—
—
—
RE0
8
AN5
SEG21
—
—
—
—
—
—
—
—
RE1
9
AN6
SEG22
—
—
—
—
—
—
—
—
RE2
10
AN7
SEG23
—
—
—
—
—
—
—
—
RE3
1
—
—
—
—
—
—
—
—
有 (1)
MCLR/VPP
—
11
—
—
—
—
—
—
—
—
—
VDD
—
32
—
—
—
—
—
—
—
—
—
VDD
注
—
12
—
—
—
—
—
—
—
—
—
VSS
—
31
—
—
—
—
—
—
—
—
—
VSS
1:
只有在采用外部 MCLR 配置时才能使能上拉。
 2007 Microchip Technology Inc.
DS41250F_CN 第 3 页
PIC16F913/914/916/917/946
引脚框图 — PIC16F913/916, 28 引脚
28 引脚 PDIP、SOIC 和 SSOP
DS41250F_CN 第 4 页
RB5/COM1
RB4/COM0
22
RB6/ICSPCLK/ICDCK/SEG14
RB7/ICSPDAT/ICDDAT/SEG13
RE3/MCLR/VPP
26
25
24
23
RA0/AN0/C1-/SEG12
12
13
14
RC4/T1G/SDO/SEG11
RC5/T1CKI/CCP1/SEG10
RC6/TX/CK/SCK/SCL/SEG9
7
RC3/SEG6
RA6/OSC2/CLKOUT/T1OSO
11
RA7/OSC1/CLKIN/T1OSI
5
6
VSS
PIC16F913/916
RC2/VLCD3
RA5/AN4/C2OUT/SS/SEG5
10
3
4
RC1/VLCD2
RA4/C1OUT/T0CKI/SEG4
9
2
8
1
RC0/VLCD1
RA2/AN2/C2+/VREF-/COM2
28
27
RA1/AN1/C2-/SEG7
28 引脚 QFN
RA3/AN3/C1+/VREF+/COM3/SEG15
28
27
26
25
24
23
22
21
20
19
18
17
16
15
PIC16F913/916
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RE3/MCLR/VPP
RA0/AN0/C1-/SEG12
RA1/AN1/C2-/SEG7
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/C1+/VREF+/COM3/SEG15
RA4/C1OUT/T0CKI/SEG4
RA5/AN4/C2OUT/SS/SEG5
VSS
RA7/OSC1/CLKIN/T1OSI
RA6/OSC2/CLKOUT/T1OSO
RC0/VLCD1
RC1/VLCD2
RC2/VLCD3
RC3/SEG6
RB7/ICSPDAT/ICDDAT/SEG13
RB6/ICSPCLK/ICDCK/SEG14
RB5/COM1
RB4/COM0
RB3/SEG3
RB2/SEG2
RB1/SEG1
RB0/INT/SEG0
VDD
VSS
RC7/RX/DT/SDI/SDA/SEG8
RC6/TX/CK/SCK/SCL/SEG9
RC5/T1CKI/CCP1/SEG10
RC4/T1G/SDO/SEG11
21
20
19
18
RB3/SEG3
17
16
15
VDD
RB2/SEG2
RB1/SEG1
RB0/INT/SEG0
VSS
RC7/RX/DT/SDI/SDA/SEG8
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
PIC16F913/916 28 引脚 (PDIP、 SOIC 和 SSOP)汇总
表 2:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
RA0
2
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
3
AN1
SEG7
C2-
—
—
—
—
—
—
—
RA2
4
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
5
AN3/VREF+
SEG15/
COM3
C1+
—
—
—
—
—
—
—
基本功能
RA4
6
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
—
RA5
7
—
SEG5
C2OUT
—
—
—
SS
—
—
—
RA6
10
—
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
9
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
21
—
SEG0
—
—
—
—
—
INT
有
—
RB1
22
—
SEG1
—
—
—
—
—
—
有
—
RB2
23
—
SEG2
—
—
—
—
—
—
有
—
RB3
24
—
SEG3
—
—
—
—
—
—
有
—
RB4
25
—
COM0
—
—
—
—
—
IOC
有
—
RB5
26
—
COM1
—
—
—
—
—
IOC
有
—
RB6
27
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
ICSPDAT/ICD-DAT
RB7
28
—
SEG13
—
—
—
—
—
IOC
有
RC0
11
—
VLCD1
—
—
—
—
—
—
—
—
RC1
12
—
VLCD2
—
—
—
—
—
—
—
—
RC2
13
—
VLCD3
—
—
—
—
—
—
—
—
RC3
14
—
SEG6
—
—
—
—
—
—
—
—
RC4
15
—
SEG11
—
T1G
—
—
SDO
—
—
—
RC5
16
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
RC6
17
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
—
RC7
18
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RE3
1
—
—
—
—
—
—
—
—
有 (1)
MCLR/VPP
—
20
—
—
—
—
—
—
—
—
—
VDD
—
8
—
—
—
—
—
—
—
—
—
VSS
—
19
—
—
—
—
—
—
—
—
—
VSS
注
1:
只有在采用外部 MCLR 配置时才能使能上拉。
 2007 Microchip Technology Inc.
DS41250F_CN 第 5 页
PIC16F913/914/916/917/946
PIC16F913/916 28 引脚 (QFN)汇总
表 3:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
RA0
27
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
28
AN1
SEG7
C2-
—
—
—
—
—
—
—
基本功能
RA2
1
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
2
AN3/VREF+
SEG15/
COM3
C1+
—
—
—
—
—
—
—
RA4
3
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
—
RA5
4
AN4
SEG5
C2OUT
—
—
—
SS
—
—
—
RA6
7
—
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
6
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
18
—
SEG0
—
—
—
—
—
INT
有
—
RB1
19
—
SEG1
—
—
—
—
—
—
有
—
RB2
20
—
SEG2
—
—
—
—
—
—
有
—
RB3
21
—
SEG3
—
—
—
—
—
—
有
—
RB4
22
—
COM0
—
—
—
—
—
IOC
有
—
RB5
23
—
COM1
—
—
—
—
—
IOC
有
—
RB6
24
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
ICSPDAT/ICD-DAT
RB7
25
—
SEG13
—
—
—
—
—
IOC
有
RC0
8
—
VLCD1
—
—
—
—
—
—
—
—
RC1
9
—
VLCD2
—
—
—
—
—
—
—
—
RC2
10
—
VLCD3
—
—
—
—
—
—
—
—
RC3
11
—
SEG6
—
—
—
—
—
—
—
—
RC4
12
—
SEG11
—
T1G
—
—
SDO
—
—
—
RC5
13
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
RC6
14
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
—
RC7
15
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RE3
26
—
—
—
—
—
—
—
—
有 (1)
MCLR/VPP
—
17
—
—
—
—
—
—
—
—
—
VDD
—
5
—
—
—
—
—
—
—
—
—
VSS
—
16
—
—
—
—
—
—
—
—
—
VSS
注
1:
只有在采用外部 MCLR 配置时才能使能上拉。
DS41250F_CN 第 6 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
44
43
42
41
40
39
38
37
36
35
34
1
2
3
4
5
6
7
8
9
10
11
PIC16F914/917
NC
RC0/VLCD1
RA6/OSC2/CLKOUT/T1OSO
RA7/OSC1/CLKIN/T1OSI
VSS
VDD
RE2/AN7/SEG23
RE1/AN6/SEG22
RE0/AN5/SEG21
RA5/AN4/C2OUT/SS/SEG5
RA4/C1OUT/T0CKI/SEG4
33
32
31
30
29
28
27
26
25
24
23
RC6/TX/CK/SCK/SCL/SEG9
RC5/T1CKI/CCP1/SEG10
RC4/T1G/SDO/SEG11
RD3/SEG16
RD2/CCP2
RD1
RD0/COM3
RC3/SEG6
RC2/VLCD3
RC1/VLCD2
RC0/VLDC1
1
2
3
4
5
6
7
8
9
10
11
PIC16F914/917
33
32
31
30
29
28
27
26
25
24
23
RA6/OSC2/CLKOUT/T1OSO
RA7/OSC1/CLKIN/T1OSI
VSS
VSS
NC
VDD
RE2/AN7/SEG23
RE1/AN6/SEG22
RE0/AN5/SEG21
RA5/AN4/C2OUT/SS/SEG5
RA4/C1OUT/T0CKI/SEG4
RB3/SEG3
NC
RB4/COM0
RB5/COM1
RB6/ICSPCLK/ICDCK/SEG14
RB7/ICSPDAT/ICDDAT/SEG13
RE3/MCLR/VPP
RA0/AN0/C1-/SEG12
RA1/AN1/C2-/SEG7
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/C1+/VREF+/SEG15
RC7/RX/DT/SDI/SDA/SEG8
RD4/SEG17
RD5/SEG18
RD6/SEG19
RD7/SEG20
VSS
VDD
VDD
RB0/INT/SEG0
RB1/SEG1
RB2/SEG2
44
43
42
41
40
39
38
37
36
35
34
44 引脚 QFN
12
13
14
15
16
17
18
19
20
21
22
NC
NC
RB4/COM0
RB5/COM1
RB6/ICSPCLK/ICDCK/SEG14
RB7/ICSPDAT/ICDDAT/SEG13
RE3/MCLR/VPP
RA0/C1-/AN0/SEG12
RA1/C2-/AN1/SEG7
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/VREF+/C1+/SEG15
RC7/RX/DT/SDI/SDA/SEG8
RD4/SEG17
RD5/SEG18
RD6/SEG19
RD7/SEG20
VSS
VDD
RB0/SEG0/INT
RB1/SEG1
RB2/SEG2
RB3/SEG3
12
13
14
15
16
17
18
19
20
21
22
44 引脚 TQFP
RC6/TX/CK/SCK/SCL/SEG9
RC5/T1CKI/CCP1/SEG10
RC4/T1G/SDO/SEG11
RD3/SEG16
RD2/CCP2
RD1
RD0/COM3
RC3/SEG6
RC2/VLCD3
RC1/VLCD2
NC
引脚框图 — PIC16F914/917, 44 引脚
 2007 Microchip Technology Inc.
DS41250F_CN 第 7 页
PIC16F913/914/916/917/946
PIC16F914/917 44 引脚 (TQFP)汇总
表 4:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
RA0
19
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
20
AN1
SEG7
C2-
—
—
—
—
—
—
—
基本功能
RA2
21
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
22
AN3/VREF+
SEG15
C1+
—
—
—
—
—
—
—
—
RA4
23
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
RA5
24
AN4
SEG5
C2OUT
—
—
—
SS
—
—
—
RA6
31
—
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
30
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
8
—
SEG0
—
—
—
—
—
INT
有
—
RB1
9
—
SEG1
—
—
—
—
—
—
有
—
RB2
10
—
SEG2
—
—
—
—
—
—
有
—
RB3
11
—
SEG3
—
—
—
—
—
—
有
—
RB4
14
—
COM0
—
—
—
—
—
IOC
有
—
RB5
15
—
COM1
—
—
—
—
—
IOC
有
—
RB6
16
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
ICSPDAT/ICD-DAT
RB7
17
—
SEG13
—
—
—
—
—
IOC
有
RC0
32
—
VLCD1
—
—
—
—
—
—
—
—
RC1
35
—
VLCD2
—
—
—
—
—
—
—
—
RC2
36
—
VLCD3
—
—
—
—
—
—
—
—
RC3
37
—
SEG6
—
—
—
—
—
—
—
—
RC4
42
—
SEG11
—
T1G
—
—
SDO
—
—
—
RC5
43
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
RC6
44
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
—
RC7
1
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RD0
38
—
COM3
—
—
—
—
—
—
—
—
—
RD1
39
—
—
—
—
—
—
—
—
—
RD2
40
—
—
—
—
CCP2
—
—
—
—
—
RD3
41
—
SEG16
—
—
—
—
—
—
—
—
RD4
2
—
SEG17
—
—
—
—
—
—
—
—
RD5
3
—
SEG18
—
—
—
—
—
—
—
—
RD6
4
—
SEG19
—
—
—
—
—
—
—
—
RD7
5
—
SEG20
—
—
—
—
—
—
—
—
RE0
25
AN5
SEG21
—
—
—
—
—
—
—
—
RE1
26
AN6
SEG22
—
—
—
—
—
—
—
—
RE2
27
AN7
SEG23
—
—
—
—
—
—
—
—
RE3
18
—
—
—
—
—
—
—
—
有 (1)
MCLR/VPP
—
7
—
—
—
—
—
—
—
—
—
VDD
—
28
—
—
—
—
—
—
—
—
—
VDD
—
6
—
—
—
—
—
—
—
—
—
VSS
—
29
—
—
—
—
—
—
—
—
—
VSS
—
12
—
—
—
—
—
—
—
—
—
NC
—
13
—
—
—
—
—
—
—
—
—
NC
注
—
33
—
—
—
—
—
—
—
—
—
NC
—
34
—
—
—
—
—
—
—
—
—
NC
1:
只有在采用外部 MCLR 配置时才能使能上拉。
DS41250F_CN 第 8 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
PIC16F914/917 44 引脚 (QFN)汇总
表 5:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
RA0
19
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
20
AN1
SEG7
C2-
—
—
—
—
—
—
—
基本功能
RA2
21
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
22
AN3/VREF+
SEG15
C1+
—
—
—
—
—
—
—
RA4
23
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
—
RA5
24
AN4
SEG5
C2OUT
—
—
—
SS
—
—
—
RA6
33
—
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
32
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
9
—
SEG0
—
—
—
—
—
INT
有
—
RB1
10
—
SEG1
—
—
—
—
—
—
有
—
RB2
11
—
SEG2
—
—
—
—
—
—
有
—
RB3
12
—
SEG3
—
—
—
—
—
—
有
—
RB4
14
—
COM0
—
—
—
—
—
IOC
有
—
RB5
15
—
COM1
—
—
—
—
—
IOC
有
—
RB6
16
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
ICSPDAT/ICD-DAT
RB7
17
—
SEG13
—
—
—
—
—
IOC
有
RC0
34
—
VLCD1
—
—
—
—
—
—
—
—
RC1
35
—
VLCD2
—
—
—
—
—
—
—
—
RC2
36
—
VLCD3
—
—
—
—
—
—
—
—
RC3
37
—
SEG6
—
—
—
—
—
—
—
—
RC4
42
—
SEG11
—
T1G
—
—
SDO
—
—
—
RC5
43
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
—
RC6
44
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
RC7
1
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RD0
38
—
COM3
—
—
—
—
—
—
—
—
RD1
39
—
—
—
—
—
—
—
—
—
—
RD2
40
—
—
—
—
CCP2
—
—
—
—
—
RD3
41
—
SEG16
—
—
—
—
—
—
—
—
RD4
2
—
SEG17
—
—
—
—
—
—
—
—
RD5
3
—
SEG18
—
—
—
—
—
—
—
—
RD6
4
—
SEG19
—
—
—
—
—
—
—
—
RD7
5
—
SEG20
—
—
—
—
—
—
—
—
RE0
25
AN5
SEG21
—
—
—
—
—
—
—
—
RE1
26
AN6
SEG22
—
—
—
—
—
—
—
—
RE2
27
AN7
SEG23
—
—
—
—
—
—
—
—
RE3
18
—
—
—
—
—
—
—
—
有 (1)
MCLR/VPP
—
7
—
—
—
—
—
—
—
—
—
VDD
—
8
—
—
—
—
—
—
—
—
—
VDD
—
28
—
—
—
—
—
—
—
—
—
VDD
—
6
—
—
—
—
—
—
—
—
—
VSS
—
30
—
—
—
—
—
—
—
—
—
VSS
—
13
—
—
—
—
—
—
—
—
—
NC
—
29
—
—
—
—
—
—
—
—
—
NC
注
1:
只有在采用外部 MCLR 配置时才能使能上拉。
 2007 Microchip Technology Inc.
DS41250F_CN 第 9 页
PIC16F913/914/916/917/946
RC1/VLCD2
RC0/VLCD1
RC2/VLCD3
RC3/SEG6
RD0/COM3
RD1
RD2/CCP2
VSS
RD3/SEG16
VDD
RC4/T1G/SDO/SEG11
RC5/T1CKI/CCP1/SEG10
RC6/TX/CK/SCK/SCL/SEG9
RD4/SEG17
RD5/SEG18
64 引脚 TQFP
RC7/RX/DT/SDI/SDA/SEG8
引脚框图 — PIC16F946
64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49
RD6/SEG19
RD7/SEG20
1
2
48
47
RG0/SEG36
RG1/SEG37
3
46
45
RG2/SEG38
RG3/SEG39
RG4/SEG40
RG5/SEG41
VSS
VDD
RF0/SEG32
RF1/SEG33
RF2/SEG34
RF3/SEG35
RB0/INT/SEG0
RB1/SEG1
4
5
6
7
8
9
10
11
12
13
14
44
43
42
41
40
PIC16F946
39
38
15
16
RF7/SEG31
RF6/SEG30
RF5/SEG29
RF4/SEG28
RE7/SEG27
RE6/SEG26
RE5/SEG25
VSS
RA6/OSC2/CLKOUT/T1OSO
RA7/OSC1/CLKIN/T1OSI
37
36
35
VDD
RE4/SEG24
RE3/MCLR/VPP
RE2/AN7/SEG23
34
33
RE1/AN6/SEG22
RE0/AN5/SEG21
RA5/AN4/C2OUT/SS/SEG5
RA4/C1OUT/T0CKI/SEG4
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/C1+/VREF+/SEG15
RA1/AN1/C2-/SEG7
RA0/AN0/C1-/SEG12
AVDD
RB7/ICSPDAT/ICDDAT/SEG13
AVSS
RB5/COM1
RB6/ICSPCLK/ICDCK/SEG14
RB4/COM0
VSS
RB2/SEG2
DS41250F_CN 第 10 页
RB3/SEG3
VDD
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
PIC16F946 64 引脚 (TQFP)汇总
表 6:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
基本功能
RA0
27
AN0
SEG12
C1-
—
—
—
—
—
—
—
RA1
28
AN1
SEG7
C2-
—
—
—
—
—
—
—
RA2
29
AN2/VREF-
COM2
C2+
—
—
—
—
—
—
—
RA3
30
AN3/VREF+
SEG15
C1+
—
—
—
—
—
—
—
RA4
31
—
SEG4
C1OUT
T0CKI
—
—
—
—
—
—
RA5
32
AN4
—
C2OUT
—
—
—
SS
—
—
—
RA6
40
SEG5
—
—
T1OSO
—
—
—
—
—
OSC2/CLKOUT
RA7
39
—
—
—
T1OSI
—
—
—
—
—
OSC1/CLKIN
RB0
15
—
SEG0
—
—
—
—
—
INT
有
—
RB1
16
—
SEG1
—
—
—
—
—
—
有
—
RB2
17
—
SEG2
—
—
—
—
—
—
有
—
RB3
18
—
SEG3
—
—
—
—
—
—
有
—
RB4
21
—
COM0
—
—
—
—
—
IOC
有
—
RB5
22
—
COM1
—
—
—
—
—
IOC
有
—
RB6
23
—
SEG14
—
—
—
—
—
IOC
有
ICSPCLK/ICDCK
RB7
24
—
SEG13
—
—
—
—
—
IOC
有
ICSPDAT/ICDDAT
RC0
49
—
VLCD1
—
—
—
—
—
—
—
—
RC1
50
—
VLCD2
—
—
—
—
—
—
—
—
RC2
51
—
VLCD3
—
—
—
—
—
—
—
—
RC3
52
—
SEG6
—
—
—
—
—
—
—
—
RC4
59
—
SEG11
—
T1G
—
—
SDO
—
—
—
RC5
60
—
SEG10
—
T1CKI
CCP1
—
—
—
—
—
RC6
61
—
SEG9
—
—
—
TX/CK
SCK/SCL
—
—
—
RC7
62
—
SEG8
—
—
—
RX/DT
SDI/SDA
—
—
—
RD0
53
—
COM3
—
—
—
—
—
—
—
—
RD1
54
—
—
—
—
—
—
—
—
—
—
RD2
55
—
—
—
—
CCP2
—
—
—
—
—
RD3
58
—
SEG16
—
—
—
—
—
—
—
—
RD4
63
—
SEG17
—
—
—
—
—
—
—
—
RD5
64
—
SEG18
—
—
—
—
—
—
—
—
RD6
1
—
SEG19
—
—
—
—
—
—
—
—
RD7
2
—
SEG20
—
—
—
—
—
—
—
—
RE0
33
AN5
SEG21
—
—
—
—
—
—
—
—
RE1
34
AN6
SEG22
—
—
—
—
—
—
—
—
RE2
35
AN7
SEG23
—
—
—
—
—
—
—
—
MCLR/VPP
RE3
36
—
—
—
—
—
—
—
—
有 (1)
RE4
37
—
SEG24
—
—
—
—
—
—
—
—
RE5
42
—
SEG25
—
—
—
—
—
—
—
—
RE6
43
—
SEG26
—
—
—
—
—
—
—
—
RE7
44
—
SEG27
—
—
—
—
—
—
—
—
RF0
11
—
SEG32
—
—
—
—
—
—
—
—
RF1
12
—
SEG33
—
—
—
—
—
—
—
—
RF2
13
—
SEG34
—
—
—
—
—
—
—
—
注
1:
只有在采用外部 MCLR 配置时才能使能上拉。
 2007 Microchip Technology Inc.
DS41250F_CN 第 11 页
PIC16F913/914/916/917/946
PIC16F946 64 引脚 (TQFP)汇总 (续)
表 6:
I/O
引脚
A/D
LCD
比较器
定时器
CCP
AUSART
SSP
中断
上拉
基本功能
RF3
14
—
SEG35
—
—
—
—
—
—
—
—
RF4
45
—
SEG28
—
—
—
—
—
—
—
—
RF5
46
—
SEG29
—
—
—
—
—
—
—
—
RF6
47
—
SEG30
—
—
—
—
—
—
—
—
RF7
48
—
SEG31
—
—
—
—
—
—
—
—
RG0
3
—
SEG36
—
—
—
—
—
—
—
—
RG1
4
—
SEG37
—
—
—
—
—
—
—
—
RG2
5
—
SEG38
—
—
—
—
—
—
—
—
RG3
6
—
SEG39
—
—
—
—
—
—
—
—
RG4
7
—
SEG40
—
—
—
—
—
—
—
—
RG5
8
—
SEG41
—
—
—
—
—
—
—
—
—
26
—
—
—
—
—
—
—
—
—
AVDD
—
25
—
—
—
—
—
—
—
—
—
AVSS
—
10
—
—
—
—
—
—
—
—
—
VDD
—
19
—
—
—
—
—
—
—
—
—
VDD
—
38
—
—
—
—
—
—
—
—
—
VDD
—
57
—
—
—
—
—
—
—
—
—
VDD
—
9
—
—
—
—
—
—
—
—
—
VSS
—
20
—
—
—
—
—
—
—
—
—
VSS
—
41
—
—
—
—
—
—
—
—
—
VSS
—
56
—
—
—
—
—
—
—
—
—
VSS
注
1:
只有在采用外部 MCLR 配置时才能使能上拉。
DS41250F_CN 第 12 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
目录
1.0 器件概述 .................................................................................................................................................................................... 15
2.0 存储器构成 ................................................................................................................................................................................ 23
3.0 I/O 端口 .................................................................................................................................................................................... 43
4.0 振荡器模块 (带故障保护时钟监视器) .................................................................................................................................... 87
5.0 Timer0 模块 ............................................................................................................................................................................... 99
6.0 带门控的 Timer1 模块 .............................................................................................................................................................. 102
7.0 Timer2 模块 ............................................................................................................................................................................. 107
8.0 比较器模块 .............................................................................................................................................................................. 109
9.0 可寻址通用同步 / 异步收发器 (AUSART) ............................................................................................................................ 121
10.0 液晶显示 (LCD)驱动模块 .................................................................................................................................................... 143
11.0 可编程低电压检测 (PLVD)模块 .......................................................................................................................................... 171
12.0 模数转换器 (ADC)模块 ....................................................................................................................................................... 175
13.0 数据 EEPROM 和闪存程序存储器控制 .................................................................................................................................... 187
14.0 SSP 模块概述 .......................................................................................................................................................................... 193
15.0 捕捉 / 比较 /PWM (CCP)模块 ............................................................................................................................................. 211
16.0 CPU 的特性 ............................................................................................................................................................................. 219
17.0 指令集综述 ............................................................................................................................................................................. 241
18.0 开发支持 .................................................................................................................................................................................. 251
19.0 电气规范 ................................................................................................................................................................................. 255
20.0 DC 和 AC 特性图表 ................................................................................................................................................................ 283
21.0 封装信息 .................................................................................................................................................................................. 305
附录 A:
数据手册版本历史 ......................................................................................................................................................... 315
附录 B:
从其他 PIC® 器件移植 ................................................................................................................................................. 315
附录 C:
转换注意事项 ................................................................................................................................................................ 316
Microchip 网站 ................................................................................................................................................................................... 325
变更通知客户服务 ............................................................................................................................................................................. 325
客户支持 ............................................................................................................................................................................................ 325
读者反馈表 ....................................................................................................................................................................................... 326
产品标识体系 .................................................................................................................................................................................... 327
全球销售及服务网点.......................................................................................................................................................................... 328
致客户
我们旨在提供最佳文档供客户正确使用 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 上注册。
 2007 Microchip Technology Inc.
DS41250F_CN 第 13 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 14 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
1.0
器件概述
本数据手册涉及 PIC16F91X/946 系列的所有器件。器件有
28/40/44/64
引脚三类封装形式。图
1-1
给出了
PIC16F913/916 器件的框图,图 1-2 给出了 PIC16F914/917
器件的框图。图 1-3 给出了 PIC16F946 器件的框图,表 1-1
给出了其引脚配置说明。
图 1-1:
PIC16F913/916 框图
INT
配置
13
8
数据总线
程序计数器
PORTA
RA0
RA1
RA2
RA3
RA4
RA5
RA7
闪存
4K/8K x 14
程序
程序
总线
RAM
256/352 字节
文件
寄存器
8 级堆栈(13 位)
存储器
14
读程序存储器
(PMR)
9
RAM 地址
PORTB
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
地址多路开关
指令寄存器
直接地址
7
8
间接
地址
FSR 寄存器
STATUS 寄存器
8
PORTC
3
指令
译码和
控制
振荡器
起振定时器
OSC1/CLKIN
OSC2/CLKOUT
ALU
上电
复位
时序
发生
RC0
RC1
RC2
RC3
RC4
RC5
RC6
RC7
MUX
上电延时
定时器
8
看门狗
定时器
W 寄存器
PORTE
欠压
复位
内部
振荡器
模块
RE3/MCLR
VDD
VSS
数据 EEPROM
256 字节
Timer0
Timer1
Timer2
10 位 A/D
比较器
CCP1
SSP
可寻址
USART
 2007 Microchip Technology Inc.
PLVD
LCD
DS41250F_CN 第 15 页
PIC16F913/914/916/917/946
图 1-2:
PIC16F914/917 框图
INT
配置
13
8
数据总线
程序计数器
PORTA
RA0
RA1
RA2
RA3
RA4
RA5
RA6
RA7
闪存
4K/8K x 14
程序
程序
总线
RAM
256/352 字节
文件
寄存器
8 级堆栈(13 位)
存储器
14
读程序存储器
(PMR)
9
RAM 地址
PORTB
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
地址多路开关
指令寄存器
直接地址
7
8
间接
地址
FSR 寄存器
STATUS 寄存器
8
PORTC
3
上电延时
定时器
指令
译码和
控制
振荡器
起振定时器
OSC1/CLKIN
OSC2/CLKOUT
ALU
上电
复位
时序
发生
RC0
RC1
RC2
RC3
RC4
RC5
RC6
RC7
MUX
8
PORTD
W 寄存器
看门狗
定时器
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
欠压
复位
内部
振荡器
模块
VDD
VSS
PORTE
RE0
RE1
RE2
RE3/MCLR
Timer0
比较器
DS41250F_CN 第 16 页
Timer1
CCP1
Timer2
CCP2
SSP
数据 EEPROM
256 字节
10 位 A/D
可寻址
USART
PLVD
LCD
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 1-3:
PIC16F946 框图
INT
PORTA
配置
13
程序计数器
RA0
RA1
RA2
RA3
RA4
RA5
RA6
RA7
8
数据总线
闪存
8K x 14
程序
程序
总线
RAM
336 x 8 字节
文件
寄存器
8 级堆栈(13 位)
存储器
14
读程序存储器
(PMR)
9
PORTB
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
RAM 地址
地址多路开关
指令寄存器
直接地址
7
8
间接
地址
FSR 寄存器
上电延时
定时器
MUX
PORTD
上电
复位
看门狗
定时器
时序
发生
内部
振荡器
模块
3
振荡器
起振定时器
OSC1/CLKIN
OSC2/CLKOUT
RC0
RC1
RC2
RC3
RC4
RC5
RC6
RC7
STATUS 寄存器
8
指令
译码和
控制
PORTC
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
ALU
8
W 寄存器
欠压
复位
PORTE
VDD
RE0
RE1
RE2
RE3/MCLR
RE4
RE5
RE6
RE7
VSS
PORTF
RF0
RF1
RF2
RF3
RF4
RF5
RF6
RF7
PORTG
RG0
RG1
RG2
RG3
RG4
RG5
AVDD AVSS
比较器
Timer0
Timer1
Timer2
10 位 A/D
CCP1
CCP2
SSP
可寻址
USART
 2007 Microchip Technology Inc.
数据 EEPROM
256 字节
PLVD
LCD
DS41250F_CN 第 17 页
PIC16F913/914/916/917/946
表 1-1:
PIC16F91X/946 引脚配置说明
名称
RA0/AN0/C1-/SEG12
RA1/AN1/C2-/SEG7
RA2/AN2/C2+/VREF-/COM2
RA3/AN3/C1+/VREF+/COM3(1)/
SEG15
功能
输入
类型
RA0
TTL
AN0
AN
C1-
AN
—
SEG12
—
AN
RA1
TTL
AN1
AN
C2-
AN
—
SEG7
—
AN
RA2
TTL
AN2
AN
C2+
AN
—
比较器 2 同相输入。
VREF-
AN
—
外部 A/D 参考电压 — 负电压。
COM2
—
AN
RA3
TTL
AN3
AN
C1+
AN
—
比较器 1 同相输入。
VREF+
AN
—
外部参考电压 — 正电压。
LCD 模拟输出。
RA5/AN4/C2OUT/SS/SEG5
AN
RA4
TTL
注
1:
2:
3:
4:
ST
—
SEG4
—
AN
RA5
TTL
AN4
AN
—
RA6
TTL
OSC2
—
CLKOUT
—
RB0/INT/SEG0
图注:
—
T0CKI
SEG5
RA7/OSC1/CLKIN/T1OSI
AN = 模拟输入或输出
TTL = TTL 兼容输入
HV = 高电压
LCD 模拟输出。
CMOS 通用 I/O。
CMOS 比较器 1 输出。
C1OUT
—
RA6/OSC2/CLKOUT/T1OSO
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 3。
AN
TTL
T1OSO
—
RA7
TTL
OSC1
XTAL
比较器 2 反相输入。
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 2
—
SS
比较器 1 反相输入。
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 1
—
C2OUT
说明
CMOS 通用 I/O。
—
模拟输入通道 0。
SEG15
COM3
RA4/C1OUT/T0CKI/SEG4
(1)
输出
类型
Timer0 时钟输入。
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 4。
CMOS 比较器 2 输出。
—
从模式选择输入。
AN
LCD 模拟输出。
CMOS 通用 I/O。
XTAL 晶振 / 谐振器。
CMOS TOSC/4 参考时钟。
XTAL Timer1 振荡器输出。
CMOS 通用 I/O。
—
晶振 / 谐振器。
CLKIN
ST
—
T1OSI
XTAL
—
RB0
TTL
INT
ST
SEG0
—
时钟输入。
Timer1 振荡器输入。
CMOS 通用 I/O。可单独使能其上拉功能。
—
外部中断引脚。
AN
LCD 模拟输出。
CMOS = CMOS 兼容输入或输出
ST
= CMOS 电平的施密特触发器输入
XTAL = 晶振
OD = 漏极开路
P = 电源
对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。
仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。
仅 PIC16F946 才有的引脚。
I2C 施密特触发器输入有特定的输入电平。
DS41250F_CN 第 18 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 1-1:
PIC16F91X/946 引脚配置说明
名称
RB1/SEG1
RB2/SEG2
RB3/SEG3
RB4/COM0
RB5/COM1
TTL
SEG1
—
RB2
TTL
SEG2
—
RB3
TTL
SEG3
—
RB4
TTL
COM0
—
RB5
TTL
—
TTL
ICSPCLK
ST
输出
类型
CMOS 通用 I/O。可单独使能其上拉功能。
AN
LCD 模拟输出。
CMOS 通用 I/O。可单独使能其上拉功能。
AN
LCD 模拟输出。
CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功
能。
AN
LCD 模拟输出。
CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功
能。
AN
LCD 模拟输出。
CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功
能。
—
ICSP™ 时钟。
ICDCK
ST
—
—
AN
RB7
TTL
ICSPDAT
ST
ICDDAT
ST
SEG13
—
RC0
ST
VLCD1
AN
RC1
ST
VLCD2
AN
RC1/VLCD2
RC2/VLCD3
RC3/SEG6
RC4/T1G/SDO/SEG11
RC5/T1CKI/CCP1/SEG10
AN = 模拟输入或输出
TTL = TTL 兼容输入
HV = 高电压
RC2
ST
VLCD3
AN
RC3
ST
SEG6
—
RC4
ST
T1G
ST
SDO
—
SEG11
—
RC5
ST
T1CKI
ST
CCP1
ST
SEG10
—
说明
CMOS 通用 I/O。可单独使能其上拉功能。
AN
LCD 模拟输出。
SEG14
RC0/VLCD1
1:
2:
3:
4:
RB1
RB6
RB7/ICSPDAT/ICDDAT/SEG13
注
输入
类型
COM1
RB6/ICSPCLK/ICDCK/SEG14
图注:
功能
(续)
ICD 时钟。
LCD 模拟输出。
CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功
能。
CMOS ICSP 数据 I/O。
CMOS ICD 数据 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
LCD 模拟输入。
CMOS 通用 I/O。
—
LCD 模拟输入。
CMOS 通用 I/O。
—
LCD 模拟输入。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
Timer1 门控信号输入。
CMOS 串行数据输出。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
Timer1 时钟输入。
CMOS 捕捉 1 输入 / 比较 1 输出 /PWM 1 输出。
AN
LCD 模拟输出。
CMOS = CMOS 兼容输入或输出
ST
= CMOS 电平的施密特触发器输入
XTAL = 晶振
OD = 漏极开路
P = 电源
对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。
仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。
仅 PIC16F946 才有的引脚。
I2C 施密特触发器输入有特定的输入电平。
 2007 Microchip Technology Inc.
DS41250F_CN 第 19 页
PIC16F913/914/916/917/946
表 1-1:
PIC16F91X/946 引脚配置说明
名称
RC6/TX/CK/SCK/SCL/SEG9
RC7/RX/DT/SDI/SDA/SEG8
RD0/COM3(1, 2)
RD1(2)
RD2/CCP2
(2)
RD3/SEG16
(2)
RD4/SEG17(2)
RD5/SEG18(2)
RD6/SEG19(2)
RD7/SEG20(2)
RE0/AN5/SEG21(2)
RE1/AN6/SEG22(2)
RE2/AN7/SEG23
(2)
RE3/MCLR/VPP
图注:
注
1:
2:
3:
4:
AN = 模拟输入或输出
TTL = TTL 兼容输入
HV = 高电压
功能
输入
类型
RC6
ST
TX
—
CK
ST
SCK
ST
SCL
ST(4)
SEG9
—
RC7
ST
RX
ST
DT
ST
(续)
输出
类型
CMOS 通用 I/O。
CMOS USART 异步串行发送。
CMOS USART 同步串行时钟。
CMOS SPI 时钟。
OD
I2C™ 时钟。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
USART 异步串行接收。
CMOS USART 同步串行数据。
CMOS SPI 数据输入。
SDI
ST
SDA
ST(4)
OD
SEG8
—
AN
RD0
ST
COM3
—
RD1
ST
RD2
ST
CCP2
ST
RD3
ST
SEG16
—
RD4
ST
SEG17
—
RD5
ST
SEG18
—
RD6
ST
SEG19
—
RD7
ST
SEG20
—
RE0
ST
AN5
AN
SEG21
—
RE1
ST
AN6
AN
SEG22
—
说明
I2C™ 数据。
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
CMOS 通用 I/O。
CMOS 捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 5。
AN
LCD 模拟输出。
CMOS 通用 I/O。
—
模拟输入通道 6。
AN
LCD 模拟输出。
RE2
ST
AN7
AN
CMOS 通用 I/O。
—
模拟输入通道 7。
SEG23
—
AN
LCD 模拟输出。
RE3
ST
—
仅数字输入。
MCLR
ST
—
带内部上拉的主复位。
VPP
HV
—
编程电压。
CMOS = CMOS 兼容输入或输出
ST
= CMOS 电平的施密特触发器输入
XTAL = 晶振
OD = 漏极开路
P = 电源
对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。
仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。
仅 PIC16F946 才有的引脚。
I2C 施密特触发器输入有特定的输入电平。
DS41250F_CN 第 20 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 1-1:
PIC16F91X/946 引脚配置说明
名称
RE4/SEG24(3)
RE5/SEG25(3)
RE6/SEG26(3)
RE7/SEG27(3)
RF0/SEG32(3)
RF1/SEG33(3)
RF2/SEG34(3)
RF3/SEG35(3)
RF4/SEG28(3)
RF5/SEG29(3)
RF6/SEG30(3)
RF7/SEG31(3)
RG0/SEG36(3)
RG1/SEG37(3)
RG2/SEG38(3)
RG3/SEG39(3)
RG4/SEG40(3)
功能
输入
类型
RE4
ST
SEG24
—
RE5
ST
SEG25
—
RE6
ST
SEG26
—
RE7
ST
SEG27
—
RF0
ST
SEG32
—
RF1
ST
SEG33
—
RF2
ST
SEG34
—
RF3
ST
SEG35
—
RF4
ST
SEG28
—
RF5
ST
SEG29
—
RF6
ST
SEG30
—
RF7
ST
SEG31
—
RG0
ST
SEG36
—
RG1
ST
SEG37
—
RG2
ST
SEG38
—
RG3
ST
SEG39
—
RG4
ST
(续)
输出
类型
说明
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS 通用 I/O。
AN
LCD 模拟输出。
SEG10
—
RG5
ST
SEG41
—
AVDD(3)
AVDD
P
—
单片机模拟电源。
AVSS(3)
AVSS
P
—
单片机模拟接地参考点。
VDD
VDD
P
—
单片机电源。
RG5/SEG41(3)
图注:
注
1:
2:
3:
4:
AN = 模拟输入或输出
TTL = TTL 兼容输入
HV = 高电压
CMOS 通用 I/O。
AN
LCD 模拟输出。
CMOS = CMOS 兼容输入或输出
ST
= CMOS 电平的施密特触发器输入
XTAL = 晶振
OD = 漏极开路
P = 电源
对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。
仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。
仅 PIC16F946 才有的引脚。
I2C 施密特触发器输入有特定的输入电平。
 2007 Microchip Technology Inc.
DS41250F_CN 第 21 页
PIC16F913/914/916/917/946
表 1-1:
PIC16F91X/946 引脚配置说明
名称
VSS
图注:
注
1:
2:
3:
4:
AN = 模拟输入或输出
TTL = TTL 兼容输入
HV = 高电压
(续)
功能
输入
类型
输出
类型
VSS
P
—
说明
单片机接地参考点。
CMOS = CMOS 兼容输入或输出
ST
= CMOS 电平的施密特触发器输入
XTAL = 晶振
OD = 漏极开路
P = 电源
对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。
仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。
仅 PIC16F946 才有的引脚。
I2C 施密特触发器输入有特定的输入电平。
DS41250F_CN 第 22 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 2-2:
2.0
存储器构成
2.1
程序存储器构成
pc<12:0>
PIC16F91X/946 系列单片机具有 13 位程序计数器,可以
对 PIC16F913/914 器件的 4K x 14 的程序存储器空间(地
址为 0000h-0FFFh)和 PIC16F916/917 和 PIC16F946 器
件的 8K x 14 的程序存储器空间(地址为 0000h-1FFFh)
进行寻址。访问 PIC16F913 和 PIC16F914 器件存储边界
外的单元将导致实际访问存储器的第一个4K x 14存储空
间。复位向量地址为 0000h,中断向量地址为 0004h。
图 2-1:
堆栈深度 1
堆栈深度 2
堆栈深度 8
pc<12:0>
复位向量
0000h
中断向量
0004h
0005h
13
Page 0
堆栈深度 1
堆栈深度 2
片上
程序
存储器
堆栈深度 8
复位向量
Page 1
Page 2
0000h
片上
程序
存储器
0004h
0005h
07FFh
0800h
0FFFh
1000h
Page 3
中断向量
13
CALL, RETURN
RETFIE, RETLW
PIC16F913/914 器件的程序
存储器映射和堆栈
CALL, RETURN
RETFIE, RETLW
PIC16F916/917/PIC16F946
的程序存储器映射和堆栈
17FFh
1800h
1FFFh
Page 0
Page 1
07FFh
0800h
0FFFh
1000h
1FFFh
 2007 Microchip Technology Inc.
DS41250F_CN 第 23 页
PIC16F913/914/916/917/946
2.2
数据存储器构成
数据存储器被分为若干存储区,其中包含通用寄存器
(General Purpose Register,GPR)和特殊功能寄存器
(Special Function Register,SFR)。RP0 和 RP1 位为
存储区选择位。
RP1
RP0
0
0
→
选择 Bank 0
0
1
→
选择 Bank 1
1
0
→
选择 Bank 2
1
1
→
选择 Bank 3
每个存储区扩展到地址 7Fh (128 字节)。 每个存储区
中地址较低的单元被保留给特殊功能寄存器。在特殊功
能寄存器上方是通用寄存器,它们以静态 RAM 的方式
实现。所有实现的存储区均包含特殊功能寄存器。某些
经常使用的特殊功能寄存器还会从一个存储区映射到另
一个存储区,从而可减少代码开销和加快访问速度。
2.2.1
通用文件寄存器
在 PIC16F913/914 中通用寄存器是按 256 x 8 的形式实现
的,在 PIC16F916/917 器件中是 352 x 8,而在 PIC16F946
中则是 336 x 8。可直接访问每个寄存器或通过指针寄存器
(File Select Register, FSR)间接访问每个存储器 (见第
2.5 节 “间接寻址、INDF 和 FSR 寄存器”)。
2.2.2
特殊功能寄存器
特殊功能寄存器是 CPU 和外设模块用来控制所需的器
件操作的寄存器 (见表 2-1、 2-2、 2-3 和 2-4)。 这些
寄存器都为静态 RAM。
它们可被分成两类: 内核与外设。 本章仅讲述与 “内
核”有关的特殊功能寄存器。那些与外设功能部件的操
作有关的特殊功能寄存器将在相应的外设功能部件章节
中讲述。
DS41250F_CN 第 24 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 2-3:
PIC16F913/916 特殊功能寄存器
间接地址 (1)
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PORTC
PORTE
PCLATH
INTCON
PIR1
PIR2
TMR1L
TMR1H
T1CON
TMR2
T2CON
SSPBUF
SSPCON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
ADRESH
ADCON0
文件
寄存器
地址
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
文件
寄存器
地址
80h
间接地址 (1)
OPTION_REG 81h
PCL
82h
STATUS
83h
FSR
84h
TRISA
85h
TRISB
86h
TRISC
87h
88h
TRISE
89h
PCLATH
8Ah
INTCON
8Bh
PIE1
8Ch
PIE2
8Dh
PCON
8Eh
OSCCON
8Fh
OSCTUNE
90h
ANSEL
91h
PR2
92h
SSPADD
93h
SSPSTAT
94h
WPUB
95h
IOCB
96h
CMCON1
97h
TXSTA
98h
SPBRG
99h
9Ah
9Bh
CMCON0
9Ch
VRCON
9Dh
ADRESL
9Eh
ADCON1
9Fh
A0h
通用
寄存器
96 字节
7Fh
Bank 0
间接地址 (1)
TMR0
PCL
STATUS
FSR
WDTCON
PORTB
LCDCON
LCDPS
LVDCON
PCLATH
INTCON
EEDATL
EEADRL
EEDATH
EEADRH
LCDDATA0
LCDDATA1
LCDDATA3
LCDDATA4
LCDDATA6
LCDDATA7
LCDDATA9
LCDDATA10
LCDSE0
LCDSE1
通用
寄存器
通用
寄存器
80 字节
80 字节
EFh
快速操作存储区 F0h
70h-7Fh
FFh
Bank 1
文件
寄存器
地址
100h
101h
102h
103h
104h
105h
106h
107h
108h
109h
10Ah
10Bh
10Ch
10Dh
10Eh
10Fh
110h
111h
112h
113h
114h
115h
116h
117h
118h
119h
11Ah
11Bh
11Ch
11Dh
11Eh
11Fh
120h
16Fh
快速操作存储区 170h
70h-7Fh
17Fh
Bank 2
间接地址 (1)
OPTION_REG
PCL
STATUS
FSR
TRISB
PCLATH
INTCON
EECON1
EECON2(1)
保留
保留
文件
寄存器
地址
180h
181h
182h
183h
184h
185h
186h
187h
188h
189h
18Ah
18Bh
18Ch
18Dh
18Eh
18Fh
190h
通用
寄存器 (2)
96 字节
1EFh
快速操作存储区 1F0h
70h-7Fh
1FFh
Bank 3
未实现的数据存储单元,读为 0。
注
1: 这不是物理寄存器。
2: 在 PIC16F913 器件上未实现的数据存储单元,读为 0。
 2007 Microchip Technology Inc.
DS41250F_CN 第 25 页
PIC16F913/914/916/917/946
图 2-4:
PIC16F914/917 特殊功能寄存器
间接地址 (1)
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PORTC
PORTD
PORTE
PCLATH
INTCON
PIR1
PIR2
TMR1L
TMR1H
T1CON
TMR2
T2CON
SSPBUF
SSPCON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
CCPR2L
CCPR2H
CCP2CON
ADRESH
ADCON0
文件
寄存器
地址
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
通用
寄存器
96 字节
7Fh
Bank 0
文件
寄存器
地址
80h
间接地址 (1)
OPTION_REG 81h
PCL
82h
STATUS
83h
FSR
84h
TRISA
85h
TRISB
86h
TRISC
87h
TRISD
88h
TRISE
89h
PCLATH
8Ah
INTCON
8Bh
PIE1
8Ch
PIE2
8Dh
PCON
8Eh
OSCCON
8Fh
OSCTUNE
90h
ANSEL
91h
PR2
92h
SSPADD
93h
SSPSTAT
94h
WPUB
95h
IOCB
96h
CMCON1
97h
TXSTA
98h
SPBRG
99h
9Ah
9Bh
CMCON0
9Ch
VRCON
9Dh
ADRESL
9Eh
ADCON1
9Fh
A0h
间接地址 (1)
TMR0
PCL
STATUS
FSR
WDTCON
PORTB
LCDCON
LCDPS
LVDCON
PCLATH
INTCON
EEDATL
EEADRL
EEDATH
EEADRH
LCDDATA0
LCDDATA1
LCDDATA2
LCDDATA3
LCDDATA4
LCDDATA5
LCDDATA6
LCDDATA7
LCDDATA8
LCDDATA9
LCDDATA10
LCDDATA11
LCDSE0
LCDSE1
LCDSE2
通用
寄存器
通用
寄存器
80 字节
80 字节
EFh
快速操作存储区 F0h
70h-7Fh
FFh
Bank 1
文件
寄存器
地址
100h
101h
102h
103h
104h
105h
106h
107h
108h
109h
10Ah
10Bh
10Ch
10Dh
10Eh
10Fh
110h
111h
112h
113h
114h
115h
116h
117h
118h
119h
11Ah
11Bh
11Ch
11Dh
11Eh
11Fh
120h
16Fh
快速操作存储区 170h
70h-7Fh
17Fh
Bank 2
文件
寄存器
地址
180h
间接地址 (1)
OPTION_REG 181h
PCL
182h
STATUS
183h
FSR
184h
185h
TRISB
186h
187h
188h
189h
PCLATH
18Ah
INTCON
18Bh
EECON1
18Ch
EECON2(1)
18Dh
18Eh
保留
18Fh
保留
190h
通用
寄存器 (2)
96 字节
1EFh
快速操作存储区 1F0h
70h-7Fh
1FFh
Bank 3
未实现的数据存储单元,读为 0。
注
1: 这不是物理寄存器。
2: 在 PIC16F914 器件上未实现的数据存储单元,读为 0。
DS41250F_CN 第 26 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 2-5:
PIC16F946 特殊功能寄存器
间接地址 (1)
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PORTC
PORTD
PORTE
PCLATH
INTCON
PIR1
PIR2
TMR1L
TMR1H
T1CON
TMR2
T2CON
SSPBUF
SSPCON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
CCPR2L
CCPR2H
CCP2CON
ADRESH
ADCON0
文件
寄存器
地址
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
文件
寄存器
地址
80h
间接地址 (1)
OPTION_REG 81h
PCL
82h
STATUS
83h
FSR
84h
TRISA
85h
TRISB
86h
TRISC
87h
TRISD
88h
TRISE
89h
PCLATH
8Ah
INTCON
8Bh
PIE1
8Ch
PIE2
8Dh
PCON
8Eh
OSCCON
8Fh
OSCTUNE
90h
ANSEL
91h
PR2
92h
SSPADD
93h
SSPSTAT
94h
WPUB
95h
IOCB
96h
CMCON1
97h
TXSTA
98h
SPBRG
99h
9Ah
9Bh
CMCON0
9Ch
VRCON
9Dh
ADRESL
9Eh
ADCON1
9Fh
A0h
通用
寄存器
96 字节
7Fh
Bank 0
间接地址 (1)
TMR0
PCL
STATUS
FSR
WDTCON
PORTB
LCDCON
LCDPS
LVDCON
PCLATH
INTCON
EEDATL
EEADRL
EEDATH
EEADRH
LCDDATA0
LCDDATA1
LCDDATA2
LCDDATA3
LCDDATA4
LCDDATA5
LCDDATA6
LCDDATA7
LCDDATA8
LCDDATA9
LCDDATA10
LCDDATA11
LCDSE0
LCDSE1
LCDSE2
文件
寄存器
地址
100h
101h
102h
103h
104h
105h
106h
107h
108h
109h
10Ah
10Bh
10Ch
10Dh
10Eh
10Fh
110h
111h
112h
113h
114h
115h
116h
117h
118h
119h
11Ah
11Bh
11Ch
11Dh
11Eh
11Fh
120h
文件
寄存器
地址
180h
间接地址 (1)
OPTION_REG 181h
PCL
182h
STATUS
183h
FSR
184h
TRISF
185h
TRISB
186h
TRISG
187h
PORTF
188h
PORTG
189h
PCLATH
18Ah
INTCON
18Bh
EECON1
18Ch
(1)
EECON2
18Dh
18Eh
保留
18Fh
保留
LCDDATA12 190h
LCDDATA13 191h
LCDDATA14 192h
LCDDATA15 193h
LCDDATA16 194h
LCDDATA17 195h
LCDDATA18 196h
LCDDATA19 197h
LCDDATA20 198h
LCDDATA21 199h
LCDDATA22 19Ah
LCDDATA23 19Bh
LCDSE3
19Ch
LCDSE4
19Dh
LCDSE5
19Eh
19Fh
1A0h
通用
寄存器
通用
寄存器
通用
寄存器
80 字节
80 字节
80 字节
EFh
快速操作存储区 F0h
70h-7Fh
FFh
Bank 1
16Fh
170h
快速操作存储区
70h-7Fh
17Fh
Bank 2
1EFh
快速操作存储区 1F0h
70h-7Fh
1FFh
Bank 3
未实现的数据存储单元,读为 0。
注
1: 这不是物理寄存器。
 2007 Microchip Technology Inc.
DS41250F_CN 第 27 页
PIC16F913/914/916/917/946
表 2-1:
地址
PIC16F91X/946 BANK 0 内的特殊功能寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所在页
Bank 0
00h
INDF
使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器)
xxxx xxxx
41,226
01h
TMR0
Timer0 模块寄存器
xxxx xxxx
99,226
02h
PCL
程序计数器 (PC)的低字节
0000 0000
40,226
03h
STATUS
04h
FSR
05h
PORTA
RA7
06h
PORTB
RB7
07h
PORTC
RC7
RC6
RC5
RC4
08h
PORTD(2)
RD7
RD6
RD5
RD4
RE4(3)
RE3
IRP
RP1
RP0
TO
PD
Z
DC
C
0001 1xxx
32,226
xxxx xxxx
41,226
RA6
RA5
RA4
RA3
RA2
RA1
RA0
xxxx xxxx
44,226
RB6
RB5
RB4
RB3
RB2
RB1
RB0
xxxx xxxx
54,226
RC3
RC2
RC1
RC0
xxxx xxxx
62,226
RD3
RD2
RD1
RD0
xxxx xxxx
71,226
RE2(2)
RE1(2)
RE0(2)
xxxx xxxx
76,226
间接数据存储器地址指针
09h
PORTE
RE7(3)
RE6(3)
RE5(3)
0Ah
PCLATH
—
—
—
0Bh
INTCON
GIE
PEIE
T0IE
程序计数器高 5 位的写缓冲器
INTE
RBIE
T0IF
INTF
RBIF
---0 0000
40,226
0000 000x
34,226
0Ch
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
37,226
0Dh
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—-
CCP2IF(2)
0000 -0-0
38,226
0Eh
TMR1L
16 位 TMR1 低字节的保持寄存器
xxxx xxxx
102,226
0Fh
TMR1H
16 位 TMR1 高字节的保持寄存器
xxxx xxxx
102,226
10h
T1CON
105,226
11h
TMR2
12h
T2CON
13h
SSPBUF
14h
SSPCON
15h
CCPR1L
16h
CCPR1H
17h
CCP1CON
18h
RCSTA
19h
TXREG
1Ah
RCREG
1Bh(2)
CCPR2L
1Ch(2)
CCPR2H
捕捉 / 比较 /PWM 寄存器 2 (MSB)
1Dh(2)
CCP2CON
1Eh
ADRESH
1Fh
ADCON0
图注:
注
1:
2:
3:
T1GINV
TMR1GE
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
0000 0000
0000 0000
107,226
TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CKPS1
T2CKPS0
-000 0000
108,226
xxxx xxxx
196,226
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
195,226
捕捉 / 比较 /PWM 寄存器 1 (LSB)
xxxx xxxx
213,226
捕捉 / 比较 /PWM 寄存器 1 (MSB)
xxxx xxxx
213,226
Timer2 模块寄存器
—
TOUTPS3
同步串行端口接收缓冲器 / 发送寄存器
WCOL
SSPOV
SSPEN
CKP
—
—
CCP1X
CCP1Y
CCP1M3
CCP1M2
CCP1M1
CCP1M0
--00 0000
212,226
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
131,226
USART 发送数据寄存器
0000 0000
130,226
USART 接收数据寄存器
0000 0000
128,227
捕捉 / 比较 /PWM 寄存器 2 (LSB)
xxxx xxxx
213,227
—
—
xxxx xxxx
213,227
CCP2X
CCP2Y
CCP2M3
CCP2M2
CCP2M1
CCP2M0
--00 0000
212,227
xxxx xxxx
182,227
VCFG0
CHS2
CHS1
CHS0
GO/DONE
ADON
0000 0000
180,227
A/D 结果寄存器高字节
ADFM
VCFG1
- = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现
其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
仅在 PIC16F914/917 和 PIC16F946 器件上可用,而在 PIC16F913/916 器件上强制为 0。
仅在 PIC16F946 器件上可用,而在 PIC16F91X 器件上强制为 0。
DS41250F_CN 第 28 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 2-2:
地址
PIC16F91X/946 BANK 1 内的特殊功能寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PS1
PS0
上电复位与欠
压复位时的值
所在页
xxxx xxxx
41,226
1111 1111
33,227
Bank 1
80h
INDF
81h
OPTION_REG
82h
PCL
83h
STATUS
使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器)
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
程序计数器 (PC)的低字节
84h
FSR
85h
TRISA
IRP
RP1
TRISA6
40,226
32,226
RP0
TO
PD
Z
DC
C
0001 1xxx
xxxx xxxx
41,226
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
1111 1111
44,227
间接数据存储器地址指针
TRISA7
0000 0000
86h
TRISB
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISB0
1111 1111
54,227
87h
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
62,227
88h
TRISD(3)
TRISD7
TRISD6
TRISD5
TRISD4
TRISD3
TRISD2
TRISD1
TRISD0
1111 1111
71,227
89h
TRISE
8Ah
PCLATH
TRISE7(2) TRISE6(2) TRISE5(2) TRISE4(2) TRISE3(5) TRISE2(3) TRISE1(3) TRISE0(3)
—
—
—
程序计数器高 5 位的写缓冲器
1111 1111
76,227
---0 0000
40,226
8Bh
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
34,226
8Ch
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
35,227
8Dh
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE(3)
0000 -0-0
36,227
8Eh
PCON
—
—
—
SBOREN
—
—
POR
BOR
---1 --qq
39,227
8Fh
OSCCON
—
IRCF2
IRCF1
IRCF0
OSTS(4)
HTS
LTS
SCS
-110 q000
88,227
90h
OSCTUNE
92,227
91h
ANSEL
92h
PR2
Timer2 周期寄存器
93h
SSPADD
同步串行端口 (I2C 模式)地址寄存器
94h
SSPSTAT
95h
96h
—
—
—
TUN4
TUN3
TUN2
TUN1
TUN0
---0 0000
ANS7(3)
ANS6(3)
ANS5(3)
ANS4
ANS3
ANS2
ANS1
ANS0
1111 1111
43,227
1111 1111
107,227
0000 0000
202,227
SMP
CKE
D/A
P
S
R/W
UA
BF
0000 0000
194,227
WPUB
WPUB7
WPUB6
WPUB5
WPUB4
WPUB3
WPUB2
WPUB1
WPUB0
1111 1111
55,227
IOCB
IOCB7
IOCB6
IOCB5
IOCB4
—
—
—
—
0000 ----
54,227
—
—
—
—
—
—
T1GSS
C2SYNC
---- --10
117,227
CSRC
TX9
TXEN
SYNC
—-
BRGH
TRMT
TX9D
0000 -010
130,227
SPBRG7
SPBRG6
SPBRG5
SPBRG4
SPBRG3
SPBRG2
SPBRG1
SPBRG0
0000 0000
132,227
—
—
97h
CMCON1
98h
TXSTA
99h
SPBRG
9Ah
—
未实现
9Bh
—
未实现
—
—
0000 0000
116,227
9Ch
CMCON0
9Dh
VRCON
9Eh
ADRESL
9Fh
ADCON1
图注:
注
1:
2:
3:
4:
5:
C2OUT
C1OUT
C2INV
C1INV
CIS
CM2
CM1
CM0
VREN
—
VRR
—
VR3
VR2
VR1
VR0
A/D 结果寄存器低字节
—
ADCS2
ADCS1
ADCS0
—
—
—
—
0-0- 0000
118,227
xxxx xxxx
182,227
-000 ----
181,227
- = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现
其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
仅在 PIC16F946 器件上可用,而在 PIC16F91X 器件上强制为 0。
仅在 PIC16F914/917 和 PIC16F946 器件上可用,而在 PIC16F913/916 器件上强制为 0。
OSTS 位的值取决于器件配置字 (CONFIG)的值。请参见第 4.2 节 “振荡器控制”。
只读位; TRISE3 始终为 1。
 2007 Microchip Technology Inc.
DS41250F_CN 第 29 页
PIC16F913/914/916/917/946
表 2-3:
地址
PIC16F91X/946 BANK 2 内的特殊功能寄存器汇总
Bit 7
名称
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所在页
Bank 2
100h
INDF
使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器)
xxxx xxxx
41,226
101h
TMR0
Timer0 模块寄存器
xxxx xxxx
99,226
102h
PCL
程序计数器 (PC)的低字节
0000 0000
40,226
103h
STATUS
32,226
104h
FSR
105h
WDTCON
106h
PORTB
107h
LCDCON
108h
LCDPS
109h
LVDCON
IRP
RP1
RP0
TO
PD
Z
DC
C
0001 1xxx
xxxx xxxx
41,226
—
WDTPS3
WDTPS2
WDTPS1
WDTPS0
SWDTEN
---0 1000
235,227
间接数据存储器地址指针
—
—
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
xxxx xxxx
54,226
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
145,227
WFT
BIASMD
LCDA
WA
LP3
LP2
LP1
LP0
0000 0000
146,227
—
—
IRVST
LVDEN
—
LVDL2
LVDL1
LVDL0
--00 -100
145,228
---0 0000
40,226
10Ah PCLATH
—
—
—
10Bh INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
34,226
10Ch EEDATL
EEDATL7
EEDATL6
EEDATL5
EEDATL4
EEDATL3
EEDATL2
EEDATL1
EEDATL0
0000 0000
188,228
10Dh EEADRL
EEADRL7 EEADRL6 EEADRL5 EEADRL4
EEADRL3
EEADRL2
EEADRL1
EEADRL0
0000 0000
188,228
EEDATH5 EEDATH4
EEDATH3
EEDATH2
EEDATH1
EEDATH0
--00 0000
188,228
10Eh EEDATH
—
10Fh EEADRH
—
程序计数器高 5 位的写缓冲器
EEADRH4 EEADRH3 EEADRH2 EEADRH1 EEADRH0
—
—
—
---0 0000
188,228
110h
LCDDATA0
SEG7
COM0
SEG6
COM0
SEG5
COM0
SEG4
COM0
SEG3
COM0
SEG2
COM0
SEG1
COM0
SEG0
COM0
xxxx xxxx
147,228
111h
LCDDATA1
SEG15
COM0
SEG14
COM0
SEG13
COM0
SEG12
COM0
SEG11
COM0
SEG10
COM0
SEG9
COM0
SEG8
COM0
xxxx xxxx
147,228
112h
LCDDATA2(2)
SEG23
COM0
SEG22
COM0
SEG21
COM0
SEG20
COM0
SEG19
COM0
SEG18
COM0
SEG17
COM0
SEG16
COM0
xxxx xxxx
147,228
113h
LCDDATA3
SEG7
COM1
SEG6
COM1
SEG5
COM1
SEG4
COM1
SEG3
COM1
SEG2
COM1
SEG1
COM1
SEG0
COM1
xxxx xxxx
147,228
114h
LCDDATA4
SEG15
COM1
SEG14
COM1
SEG13
COM1
SEG12
COM1
SEG11
COM1
SEG10
COM1
SEG9
COM1
SEG8
COM1
xxxx xxxx
147,228
115h
LCDDATA5(2)
SEG23
COM1
SEG22
COM1
SEG21
COM1
SEG20
COM1
SEG19
COM1
SEG18
COM1
SEG17
COM1
SEG16
COM1
xxxx xxxx
147,228
116h
LCDDATA6
SEG7
COM2
SEG6
COM2
SEG5
COM2
SEG4
COM2
SEG3
COM2
SEG2
COM2
SEG1
COM2
SEG0
COM2
xxxx xxxx
147,228
117h
LCDDATA7
SEG15
COM2
SEG14
COM2
SEG13
COM2
SEG12
COM2
SEG11
COM2
SEG10
COM2
SEG9
COM2
SEG8
COM2
xxxx xxxx
147,228
118h
LCDDATA8(2)
SEG23
COM2
SEG22
COM2
SEG21
COM2
SEG20
COM2
SEG19
COM2
SEG18
COM2
SEG17
COM2
SEG16
COM2
xxxx xxxx
147,228
119h
LCDDATA9
SEG7
COM3
SEG6
COM3
SEG5
COM3
SEG4
COM3
SEG3
COM3
SEG2
COM3
SEG1
COM3
SEG0
COM3
xxxx xxxx
147,228
11Ah
LCDDATA10
SEG15
COM3
SEG14
COM3
SEG13
COM3
SEG12
COM3
SEG11
COM3
SEG10
COM3
SEG9
COM3
SEG8
COM3
xxxx xxxx
147,228
11Bh
LCDDATA11(2)
SEG23
COM3
SEG22
COM3
SEG21
COM3
SEG20
COM3
SEG19
COM3
SEG18
COM3
SEG17
COM3
SEG16
COM3
xxxx xxxx
147,228
11Ch LCDSE0(3)
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
147,228
11Dh LCDSE1(3)
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
147,228
SE23
SE22
SE21
SE20
SE19
SE18
SE17
SE16
0000 0000
147,228
—
—
11Eh
LCDSE2(2,3)
11Fh
—-
图注:
注
1:
2:
3:
– = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现
其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
仅在 PIC16F914/917 和 PIC16F946 器件上可用。
此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。
未实现
DS41250F_CN 第 30 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 2-4:
PIC16F91X/946 BANK 3 内的特殊功能寄存器汇总
地址
Bit 7
名称
Bank 3
180h
INDF
181h
OPTION_REG
182h
PCL
183h
STATUS
184h
FSR
185h
TRISF(3)
TRISF7
186h
TRISB
187h
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PS1
PS0
使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器)
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
程序计数器 (PC)的低字节
IRP
RP1
上电复位与欠
压复位时的值
所在页
xxxx xxxx
41,226
1111 1111
33,227
0000 0000
40,226
0001 1xxx
32,226
RP0
TO
PD
Z
DC
C
xxxx xxxx
41,226
TRISF6
TRISF5
TRISF4
TRISF3
TRISF2
TRISF1
TRISF0
1111 1111
81,228
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISB0
1111 1111
54,227
TRISG(3)
—
—
TRISG5
TRISG4
TRISG3
TRISG2
TRISG1
TRISG0
--11 1111
84,228
188h
PORTF(3)
RF7
RF6
RF5
RF4
RF3
RF2
RF1
RF0
xxxx xxxx
81,228
189h
PORTG(3)
—
—
RG5
RG4
RG3
RG2
RG1
RG0
--xx xxxx
84,228
18Ah
PCLATH
—
—
—
---0 0000
40,226
18Bh
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
34,226
EEPGD
—
—
—
WRERR
WREN
WR
RD
0--- x000
189,229
---- ----
187
—
—
—
—
间接数据存储器地址指针
18Ch
EECON1
18Dh
EECON2
程序计数器高 5 位的写缓冲器
EEPROM 控制寄存器 2 (非物理寄存器)
18Eh
18Fh
—
—
190h
LCDDATA12(3)
191h
LCDDATA13(3)
192h
LCDDATA14(3)
193h
LCDDATA15(3)
194h
LCDDATA16(3)
195h
LCDDATA17
(3)
196h
保留
保留
SEG31
COM0
SEG30
COM0
SEG29
COM0
SEG28
COM0
SEG27
COM0
SEG26
COM0
SEG25
COM0
SEG24
COM0
xxxx xxxx
147,228
SEG39
COM0
—
SEG38
COM0
—
SEG37
COM0
—
SEG36
COM0
—
SEG35
COM0
—
SEG34
COM0
—
147,228
---- --xx
147,228
SEG30
COM1
SEG38
COM1
SEG29
COM1
SEG37
COM1
SEG28
COM1
SEG36
COM1
SEG27
COM1
SEG35
COM1
SEG26
COM1
SEG34
COM1
SEG32
COM0
SEG40
COM0
SEG24
COM1
SEG32
COM1
xxxx xxxx
SEG31
COM1
SEG39
COM1
SE33
COM0
SEG41
COM0
SEG25
COM1
SEG33
COM1
xxxx xxxx
147,228
xxxx xxxx
147,228
—
—
—
—
—
—
SEG41
COM1
SEG40
COM1
---- --xx
147,228
LCDDATA18(3)
SEG31
COM2
SEG30
COM2
SEG29
COM2
SEG28
COM2
SEG27
COM2
SEG26
COM2
SEG25
COM2
SEG24
COM2
xxxx xxxx
147,228
197h
LCDDATA19(3)
SEG37
COM2
—
SEG36
COM2
—
SEG35
COM2
—
SEG34
COM2
—
147,228
LCDDATA21(3)
LCDDATA22
SEG29
COM3
SEG37
COM3
SEG28
COM3
SEG36
COM3
SEG27
COM3
SEG35
COM3
SEG26
COM3
SEG34
COM3
147,228
19Ah
SEG30
COM3
SEG38
COM3
xxxx xxxx
(3)
SEG31
COM3
SEG39
COM3
SEG32
COM2
SEG40
COM2
SEG24
COM3
SEG32
COM3
---- --xx
199h
SEG33
COM2
SEG41
COM2
SEG25
COM3
SEG33
COM3
147,228
LCDDATA20(3)
SEG38
COM2
—
xxxx xxxx
198h
SEG39
COM2
—
xxxx xxxx
147,228
19Bh
LCDDATA23(3)
—
—
—
—
—
—
SEG41
COM3
SEG40
COM3
---- --xx
147,228
19Ch
LCDSE3(2, 3)
SE31
SE30
SE29
SE28
SE27
SE26
SE25
SE24
0000 0000
147,229
19Dh
LCDSE4(2, 3)
SE37
—
SE36
—
SE35
—
SE34
—
SE32
0000 0000
147,229
LCDSE5(2, 3)
—
SE38
—
SE33
19Eh
19Fh
SE39
—
SE41
SE40
---- --00
—
147,229
—
图注:
注
1:
2:
3:
未实现
– = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现
其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。
仅在 PIC16F946 器件上可用。
 2007 Microchip Technology Inc.
DS41250F_CN 第 31 页
PIC16F913/914/916/917/946
2.2.2.1
STATUS 寄存器
例如,执行 CLRF STATUS 会清零该寄存器的高三位并
将 Z 位置 1。从而使 STATUS 寄存器的值为 000u u1uu
(其中 u 表示未变化)。
如寄存器 2-1 所示, STATUS 寄存器包含:
• ALU 的算术运算状态
• 复位状态
• 数据存储器 (SRAM)的存储区选择位
因此,建议仅使用 BCF、BSF、SWAPF 和 MOVWF 指令来
改变STATUS寄存器,因为这些指令不影响任何状态位。
欲知其他不会影响状态位的指令,请参见第 17.0 节 “指
令集综述”。
和任何其他寄存器一样,STATUS 寄存器也可以作为任
何指令的目标寄存器。如果一条影响 Z、 DC 或 C 位的
指令以 STATUS 寄存器作为目标寄存器,将禁止写这三
位。根据器件逻辑,这些位会被置 1 或清零。此外,也
不能写 TO 和 PD 位。因此,当执行一条把 STATUS 寄
存器作为目标寄存器的指令后,STATUS 寄存器的结果
可能和预想的不一样。
寄存器 2-1:
R/W-0
IRP
注
1: 在减法运算中, C 和 DC 位分别作为借位
和半借位标志位。
STATUS:STATUS 寄存器
R/W-0
RP1
R/W-0
RP0
R-1
R-1
PD
TO
R/W-x
R/W-x
R/W-x
Z
DC(1)
C(1)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
IRP:寄存器存储区选择位 (用于间接寻址)
1 = Bank 2 和 Bank 3 (100h - 1FFh)
0 = Bank 0 和 Bank 1 (00h - FFh)
bit 6-5
RP<1:0>:寄存器存储区选择位 (用于直接寻址)
00 = Bank 0 (00h-7Fh)
01 = Bank 1 (80h - FFh)
10 = Bank 2 (100h - 17Fh)
11 = Bank 3 (180h - 1FFh)
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 = 结果的最高位未发生进位
注
x = 未知
1: 对于借位,极性是相反的。减法是通过加上第二个操作数的二进制补码来实现的。对于移位指令 (RRF 和
RLF),此位的值来自源寄存器的最高位或最低位。
DS41250F_CN 第 32 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
2.2.2.2
OPTION 寄存器
注:
如寄存器2-2所示,OPTION寄存器是可读写的寄存器,
包含可对以下各项进行配置的各个配置位:
• Timer0/WDT 预分频器
• 外部 RB0/INT 中断
• Timer0
要为 Timer0 寄存器指定 1:1 的预分频比,
应将 OPTION 寄存器的 PSA 位置 1,以将
预分频器分配给 WDT。请参见第 6.3 节
“Timer1 预分频器”。
• PORTB 上的弱上拉
寄存器 2-2:
OPTION_REG:OPTION 寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
RBPU:PORTB 上拉使能位
1 = 禁止 PORTB 上拉
0 = 由 WPUB 寄存器中的各个位使能 PORTB 上拉
bit 6
INTEDG:中断边沿选择位
1 = 在 RB0/INT 引脚的上升沿触发中断
0 = 在 RB0/INT 引脚的下降沿触发中断
bit 5
T0CS:Timer0 时钟源选择位
1 = RA4/T0CKI 引脚上信号的跳变
0 = 内部指令周期时钟 (FOSC/4)
bit 4
T0SE:Timer0 时钟源边沿选择位
1 = 在 RA4/T0CKI 引脚电平发生由高到低的跳变时递增
0 = 在 RA4/T0CKI 引脚电平发生由低到高的跳变时递增
bit 3
PSA:预分频器分配位
1 = 将预分频器分配给 WDT
0 = 将预分频器分配给 Timer0 模块
bit 2-0
PS<2:0>:预分频比选择位
位值
000
001
010
011
100
101
110
111
 2007 Microchip Technology Inc.
x = 未知
Timer0 分频比 WDT 分频比
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
1:1
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
DS41250F_CN 第 33 页
PIC16F913/914/916/917/946
2.2.2.3
INTCON 寄存器
注:
INTCON 寄存器是可读写的寄存器,包含 TMR0 寄存器
溢出、PORTB 电平变化和外部 RB0/INT/SEG0 引脚中
断的各种允许和标志位。
寄存器 2-3:
R/W-0
GIE
当有中断条件产生时,不管相应的中断允
许位或 INTCON 寄存器中的全局中断允许
位 GIE 的状态如何,中断标志位都将置 1。
用户软件应该在允许中断之前确保将相应
的中断标志位清零。
INTCON:中断控制寄存器
R/W-0
PEIE
R/W-0
R/W-0
R/W-0
R/W-0
INTE
RBIE(1)
(2)
T0IE
T0IF
R/W-0
R/W-x
INTF
RBIF
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
GIE:全局中断允许位
1 = 允许所有未屏蔽的中断
0 = 禁止所有中断
bit 6
PEIE:外设中断允许位
1 = 允许所有未屏蔽的外设中断
0 = 禁止所有外设中断
bit 5
T0IE:Timer0 溢出中断允许位
1 = 允许 Timer0 中断
0 = 禁止 Timer0 中断
bit 4
INTE:RB0/INT 外部中断允许位
1 = 允许 RB0/INT 外部中断
0 = 禁止 RB0/INT 外部中断
bit 3
RBIE:PORTB 电平变化中断允许位 (1)
1 = 允许 PORTB 电平变化中断
0 = 禁止 PORTB 电平变化中断
bit 2
T0IF:Timer0 溢出中断标志位 (2)
1 = TMR0 寄存器已溢出 (必须由软件清零)
0 = TMR0 寄存器未溢出
bit 1
INTF:RB0/INT 外部中断标志位
1 = 发生了 RB0/INT 外部中断 (必须由软件清零)
0 = 未发生 RB0/INT 外部中断
bit 0
RBIF:PORTB 电平变化中断标志位
1 = 至少一个 PORTB 通用 I/O 引脚的电平状态发生了改变 (必须由软件清零)
0 = 没有一个 PORTB 通用 I/O 引脚的电平状态发生改变
注
1: 必须同时将 IOCB 寄存器中的相应位置 1。
2: 当 Timer0 计满返回时, T0IF 位置 1。复位时 Timer0 的状态不会改变,它应该在清零 T0IF 位之前被初始
化。
DS41250F_CN 第 34 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
2.2.2.4
PIE1 寄存器
PIE1 寄存器包含中断允许位,如寄存器 2-4 所示。
寄存器 2-4:
注:
要允许任何一个外设中断,必须将 INTCON
寄存器中的 PEIE 位置 1。
PIE1:外设中断允许寄存器 1
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
EEIE:EE 写完成中断允许位
1 = 允许 EE 写完成中断
0 = 禁止 EE 写完成中断
bit 6
ADIE:A/D 转换器 (ADC)中断允许位
1 = 允许 ADC 中断
0 = 禁止 ADC 中断
bit 5
RCIE:USART 接收中断允许位
1 = 允许 USART 接收中断
0 = 禁止 USART 接收中断
bit 4
TXIE:USART 发送中断允许位
1 = 允许 USART 发送中断
0 = 禁止 USART 发送中断
bit 3
SSPIE:同步串行端口 (SSP)中断允许位
1 = 允许 SSP 中断
0 = 禁止 SSP 中断
bit 2
CCP1IE:CCP1 中断允许位
1 = 允许 CCP1 中断
0 = 禁止 CCP1 中断
bit 1
TMR2IE:TMR2 与 PR2 匹配中断允许位
1 = 允许 Timer2 与 PR2 匹配中断
0 = 禁止 Timer2 与 PR2 匹配中断
bit 0
TMR1IE:Timer1 溢出中断允许位
1 = 允许 Timer1 溢出中断
0 = 禁止 Timer1 溢出中断
 2007 Microchip Technology Inc.
x = 未知
DS41250F_CN 第 35 页
PIC16F913/914/916/917/946
2.2.2.5
PIE2 寄存器
PIE2 寄存器包含中断允许位,如寄存器 2-5 所示。
寄存器 2-5:
注:
要允许任何一个外设中断,必须将 INTCON
寄存器中的 PEIE 位置 1。
PIE2:外设中断允许寄存器 2
R/W-0
R/W-0
R/W-0
R/W-0
U-0
R/W-0
U-0
R/W-0
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE(1)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
OSFIE:振荡器故障中断允许位
1 = 允许振荡器故障中断
0 = 禁止振荡器故障中断
bit 6
C2IE:比较器 C2 中断允许位
1 = 允许比较器 C2 中断
0 = 禁止比较器 C2 中断
bit 5
C1IE:比较器 C1 中断允许位
1 = 允许比较器 C1 中断
0 = 禁止比较器 C1 中断
bit 4
LCDIE:LCD 模块中断允许位
1 = 允许 LCD 中断
0 = 禁止 LCD 中断
bit 3
未实现:读为 0
bit 2
LVDIE:低电压检测中断允许位
1 = 允许 LVD 中断
0 = 禁止 LVD 中断
bit 1
未实现:读为 0
bit 0
CCP2IE:CCP2 中断允许位 (1)
1 = 允许 CCP2 中断
0 = 禁止 CCP2 中断
注
x = 未知
1: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。
DS41250F_CN 第 36 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
2.2.2.6
PIR1 寄存器
PIR1 寄存器包含中断允许位,如寄存器 2-6 所示。
寄存器 2-6:
注:
当有中断条件产生时,不管相应的中断允
许位或 INTCON 寄存器中的全局中断允许
位 GIE 状态如何,中断标志位都将置 1。用
户软件应该在允许中断之前确保将相应的
中断标志位清零。
PIR1:外设中断请求寄存器 1
R/W-0
R/W-0
R-0
R-0
R/W-0
R/W-0
R/W-0
R/W-0
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
EEIF:EE 写操作中断标志位
1 = 写操作完成 (必须由软件清零)
0 = 写操作尚未完成或尚未启动
bit 6
ADIF:A/D 转换器中断标志位
1 = A/D 转换完成 (必须由软件清零)
0 = A/D 转换未完成或尚未启动
bit 5
RCIF:USART 接收中断标志位
1 = USART 接收缓冲器已满 (通过读 RCREG 清零)
0 = USART 接收缓冲器未满
bit 4
TXIF:USART 发送中断标志位
1 = USART 发送缓冲器为空 (通过写 TXREG 清零)
0 = USART 发送缓冲器已满
bit 3
SSPIF:同步串行端口 (SSP)中断标志位
1 = 发送 / 接收完成 (必须由软件清零)
0 = 等待发送 / 接收
bit 2
CCP1IF:CCP1 中断标志位
捕捉模式:
1 = 发生了 TMR1 寄存器捕捉 (必须由软件清零)
0 = 未发生 TMR1 寄存器捕捉
比较模式:
1 = 发生了 TMR1 寄存器比较匹配 (必须由软件清零)
0 = 未发生 TMR1 寄存器比较匹配
PWM 模式
在此模式下未使用
bit 1
TMR2IF:Timer2 与 PR2 匹配中断标志位
1 = 发生了 Timer2 与 PR2 的比较匹配 (必须由软件清零)
0 = 未发生 Timer2 与 PR2 的比较匹配
bit 0
TMR1IF:Timer1 溢出中断标志位
1 = TMR1 寄存器已溢出 (必须由软件清零)
0 = TMR1 寄存器未溢出
 2007 Microchip Technology Inc.
x = 未知
DS41250F_CN 第 37 页
PIC16F913/914/916/917/946
2.2.2.7
PIR2 寄存器
PIR2 寄存器包含中断标志位,如寄存器 2-7 所示。
寄存器 2-7:
注:
当有中断条件产生时,不管相应的中断允
许位或 INTCON 寄存器中的全局中断允许
位 GIE 的状态如何,中断标志位都将置 1。
用户软件应该在允许中断之前确保将相应
的中断标志位清零。
PIR2:外设中断请求寄存器 2
R/W-0
R/W-0
R/W-0
R/W-0
U-0
R/W-0
U-0
R/W-0
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF(1)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
OSFIF:振荡器故障中断标志位
1 = 系统振荡器发生故障,时钟输入切换为 INTOSC (必须由软件清零)
0 = 系统时钟正常运行
bit 6
C2IF:比较器 C2 中断标志位
1 = 比较器输出 (C2OUT 位)发生了改变 (必须由软件请零)
0 = 比较器输出 (C2OUT 位)未发生改变
bit 5
C1IF:比较器 C1 中断标志位
1 = 比较器输出 (C1OUT 位)发生了改变 (必须由软件请零)
0 = 比较器输出 (C1OUT 位)未发生改变
bit 4
LCDIF:LCD 模块中断标志位
1 = 产生了 LCD 中断
0 = 未产生 LCD 中断
bit 3
未实现:读为 0
bit 2
LVDIF:低电压检测中断标志位
1 = 产生了 LVD 中断
0 = 未产生 LVD 中断
bit 1
未实现:读为 0
bit 0
CCP2IF:CCP2 中断标志位 (1)
捕捉模式:
1 = 发生了 TMR1 寄存器捕捉 (必须由软件清零)
0 = 未发生 TMR1 寄存器捕捉
比较模式:
1 = 发生了 TMR1 寄存器比较匹配 (必须由软件清零)
0 = 未发生 TMR1 寄存器比较匹配
PWM 模式:
在此模式下未使用
注
1: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。
DS41250F_CN 第 38 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
2.2.2.8
PCON 寄存器
电源控制 (PCON)寄存器 (见表 16-2)包含区分以下
复位的标志位:
•
•
•
•
上电复位 (POR)
欠压复位 (BOR)
看门狗定时器复位 (WDT)
外部 MCLR 复位
PCON 寄存器也用于软件控制欠压复位的使能。
PCON 寄存器中的位如寄存器 2-8 所示。
寄存器 2-8:
PCON:电源控制寄存器
U-0
U-0
U-0
R/W-1
U-0
U-0
R/W-0
R/W-x
—
—
—
SBOREN
—
—
POR
BOR
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-5
未实现:读为 0
bit 4
SBOREN:软件欠压复位使能位 (1)
1 = 使能欠压复位
0 = 禁止欠压复位
bit 3-2
未实现:读为 0
bit 1
POR:上电复位状态位
1 = 未发生上电复位
0 = 发生了上电复位 (必须在发生上电复位后由软件清零)
bit 0
BOR:欠压复位状态位
1 = 未发生欠压复位
0 = 发生了欠压复位 (必须在发生上电复位或欠压复位后由软件清零)
注
x = 未知
1: 当配置字寄存器中的 BOREN<1:0> = 01 时,允许使用该位控制 BOR。
 2007 Microchip Technology Inc.
DS41250F_CN 第 39 页
PIC16F913/914/916/917/946
2.3
PCL 和 PCLATH
程序计数器(Program Counter,PC)为 13 位宽。它的
低字节来自可读写的 PCL 寄存器。高字节(PC<12:8>)
来自 PCLATH,不可直接读写。任何复位都将清零 PC。
图 2-6 给出了装载 PC 的两种情况。图 2-6 中上面的示例
给出了在写 PCL (PCLATH<4:0> → PCH)时,装载
PC 的过程。 图 2-6 中下面的示例给出了在执行 CALL 或
GOTO 指令(PCLATH<4:3> → PCH)时,装载 PC 的过
程。
图 2-6:
在不同情况下装载 PC
PCH
PCL
12
8
7
0
PC
8
PCLATH<4:0>
5
将 PCL 作为
目标寄存器
的指令
ALU 结果
PCLATH
PCH
12
11 10
PCL
8
PC
1: 没有用于表示堆栈上溢或堆栈下溢条件
的状态位。
2: 没有称为 PUSH 或 POP 的指令或助记符。
这是在执行 CALL、 RETURN、 RETLW 和
RETFIE 指令或跳转到中断向量地址时发
生的操作。
2.4
程序存储器分页
所有 PIC16F91X/946 器件都能够寻址一块连续的 8 K 字
的程序存储区。 而 CALL 和 GOTO 指令仅提供 11 位的地
址,允许在任一 2K 的程序存储器页内进行跳转。当执行
CALL 或 GOTO 指令时,地址的高两位由 PCLATH<4:3> 提
供。当执行 CALL 或 GOTO 指令时,用户必须确保已正确
设置了页选择位,从而可以对想访问的程序存储器页进
行寻址。若执行了一条从 CALL 指令 (或中断)返回的
指令,将从堆栈弹出整个 13 位 PC。因此,执行 RETURN
指 令 (该 指 令 会 使 地 址 从 堆 栈 弹 出)不 需 要 操 作
PCLATH<4:3> 位。
注:
0
7
注
GOTO, CALL
2
PCLATH<4:3>
11
操作码 <10:0>
PCLATH
2.3.1
相对跳转
相对跳转是通过向程序计数器加一个偏移量 (ADDWF
PCL)实现的。 当通过使用相对跳转方法进行表读操作
时,要注意表地址是否超过了 PCL 的存储边界 (每块
256 个字节)。请参见应用笔记 AN556 “Implementing
a Table Read”(DS00556)。
2.3.2
例 2-1 给出了调用程序存储器第 1 页中子程序的示例。
此例假设 PCLATH 寄存器由中断服务程序保存和恢复
(如果使用中断)。
例 2-1:
此堆栈作为循环缓冲器使用。 也就是说,压栈 8 次之
后,第 9 次压栈时进栈的数据将覆盖第 1 次压栈存储的
数据。而第 10 次压栈时进栈的数据将覆盖第 2 次压栈
存储的数据,依此类推。
DS41250F_CN 第 40 页
在 PAGE 0 中调用 PAGE 1
中的子程序
ORG 500h
BCF PCLATH,4
BSF PCLATH,3
CALL SUB1_P1
:
:
ORG 900h
堆栈
PIC16F91X/946 系列器件有一个 8 级深 x 13 位宽的硬
件堆栈(见图 2-1 和图 2-2)。该堆栈既不占用程序存储
空间也不占用数据存储空间,且栈指针不能读写。当执
行 CALL 指令或由于中断导致程序跳转时, PC 的值会
被压入堆栈。当执行 RETURN、RETLW 或 RETFIE 指令
时, PC 值从堆栈弹出。PCLATH 的值不受压栈或出栈
操作的影响。
执行RETURN或RETFIE指令之后,PCLATH
寄存器的内容不变。要执行后续的子程序调
用或 GOTO 指令,用户必须重写 PCLATH 寄
存器。
;Select page 1
;(800h-FFFh)
;Call subroutine in
;page 1 (800h-FFFh)
;page 1 (800h-FFFh)
SUB1_P1
:
:
RETURN
;called subroutine
;page 1 (800h-FFFh)
;return to
;Call subroutine
;in page 0
;(000h-7FFh)
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
2.5
间接寻址、 INDF 和 FSR 寄存器
例 2-2:
间接寻址
MOVLW
MOVWF
BANKISEL
NEXT CLRF
INCF
BTFSS
GOTO
CONTINUE
INDF 寄存器不是物理寄存器。对 INDF 寄存器进行寻址
将导致间接寻址。
使用INDF寄存器可以实现间接寻址。任何使用INDF寄
存器的指令实际上访问的是由指针寄存器(FSR)所指
向的数据。间接读 INDF 本身会返回 00h。 而使用间接
寻址对 INDF 寄存器进行写操作将导致执行一个空操作
(虽然可能会影响状态位)。 有效的 9 位地址是通过连
接 8 位 FSR 寄存器和 STATUS 寄存器中的 IRP 位获得
的,如图 2-7 所示。
020h
FSR
020h
INDF
FSR
FSR,4
NEXT
;initialize pointer
;to RAM
;clear INDF register
;inc pointer
;all done?
;no clear next
;yes continue
例 2-2 给出了使用间接寻址清零 RAM 单元 020h-02Fh
的简单程序。
图 2-7:
直接 / 间接寻址 PIC16F91X/946
直接寻址
RP1
RP0
6
来自操作码
存储区选择
间接寻址
0
7
IRP
存储区选择
单元选择
00
01
10
指针寄存器
0
单元选择
11
00h
180h
数据
存储器
7Fh
1FFh
Bank 0
注:
Bank 1
Bank 2
Bank 3
欲知详细的存储器映射信息,请参见图 2-3 和图 2-4。
 2007 Microchip Technology Inc.
DS41250F_CN 第 41 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 42 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.0
I/O 端口
3.1
PIC16F913/914/916/917/946 系列器件包括多个 8 位端
口寄存器及其相应的 TRIS 寄存器和一个 4 位端口:
•
•
•
•
•
•
•
PORTA 和 TRISA
PORTB 和 TRISB
PORTC 和 TRISC
PORTD 和 TRISD(1)
PORTE 和 TRISE
PORTF 和 TRISF(2)
PORTG 和 TRISG(2)
ANSEL 寄存器
ANSEL 寄存器 (寄存器 3-1)用于将 I/O 引脚的输入模
式配置为模拟模式。将相应的 ANSEL 位置 1 将导致 I/O
引脚上所有数字都被读为 0,且该引脚上的模拟功能可
以正常工作。
ANSEL 位的状态不会影响数字输出功能。TRIS 位清零
且 ANSEL 位置 1 的引脚仍将作为数字输出,但是输入
模式为模拟模式。这会导致在作用的端口上执行读-修
改-写指令时发生意外行为。
1: 仅适用于 PIC16F914/917 和 PIC16F946
器件。
注
2: 仅适用于 PIC16F946 器件。
所有 器件 均实 现了 PORTA、 PORTB、 PORTC 和
RE3/MCLR/VPP。仅 PIC16F914/917 和 PIC16F946 器
件实 现了 PORTD 和 RE<2:0> (PORTE) 。仅
PIC16F946 器件实现了 RE<7:4>(PORTE)、PORTF
和 PORTG。
寄存器 3-1:
ANSEL:模拟选择寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
ANS7(2)
ANS6(2)
ANS5(2)
ANS4
ANS3
ANS2
ANS1
ANS0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
注
x = 未知
ANS<7:0>:模拟选择位
用于将 AN<7:0> 引脚分别设置为模拟或数字功能。
1 = 模拟输入。引脚被分配为模拟输入 (1)。
0 = 数字 I/O。引脚被分配为端口或是特殊功能。
1: 将引脚设置为模拟输入将自动禁止数字输入电路、弱上拉和引脚电平变化中断功能 (如果可用)。相应的
TRIS 位必须设置为输入模式以允许对引脚电压进行外部控制。
2: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 43 页
PIC16F913/914/916/917/946
3.2
PORTA 和 TRISA 寄存器
即使在 PORTA 引脚用作模拟输入时,TRISA 寄存器仍
然控制 PORTA 引脚的方向。 当将 PORTA 引脚用作模
拟输入时,用户必须确保 TRISA 寄存器中的位保持为置
1 状态。配置为模拟输入的 I/O 引脚总是读为 0。
PORTA 是 8 位宽的双向端口。 它所对应的数据方向寄
存器是 TRISA(寄存器 3-3)。将 TRISA 的一个位置 1
(= 1)可以将相应的 PORTA 引脚配置为输入 (即,将
相应的输出驱动器置于高阻模式)。清零 TRISA 的一个
位 (= 0)可将相应的 PORTA 引脚配置为输出 (即,
将输出锁存器的内容输出到所选择的引脚)。例 3-1 说
明了如何初始化 PORTA。
注
可以将 PORTA 的五个引脚配置为模拟输入。 其中,在
器件上电时,RA5 和 RA<3:0> 被配置为模拟输入引脚,
用户必须对其进行重新配置才可将其用作普通 I/O 引
脚。这可以通过将相应的值写入 CMCON0 和 ANSEL 寄
存器来完成 (见例 3-1)。
例 3-1:
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
CLRF
MOVLW
MOVWF
读 PORTA 寄存器(寄存器 3-2)读的是引脚的状态而写
该寄存器将会写入端口锁存器。 所有写操作都是读-修
改-写操作。 因此,写一个端口就意味着先读该端口的
引脚电平,修改读到的值,然后再将改好的值写入端口
数据锁存器。
寄存器 3-2:
1: 必须对 CMCON0 和 ANSEL 寄存器进行初
始化来将模拟通道配置为数字输入。 配置
为模拟输入的引脚将读为 0。
初始化 PORTA
PORTA
PORTA
TRISA
07h
CMCON0
ANSEL
0F0h
TRISA
;
;Init PORTA
;
;Set RA<2:0> to
;digital I/O
;Make all PORTA digital I/O
;Set RA<7:4> as inputs
;and set RA<3:0> as outputs
PORTA:PORTA 寄存器
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
RA<7:0>:PORTA I/O 引脚位
1 = 端口引脚电平 >VIH 最小值。
0 = 端口引脚电平 <VIL 最大值。
寄存器 3-3:
TRISA:PORTA 三态寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISA7
TRISA6
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
注
x = 未知
TRISA<7:0>:PORTA 三态控制位
1 = PORTA 引脚被配置为输入 (三态)
0 = PORTA 引脚被配置为输出
1: TRISA<7:6> 在 XT、 HS 和 LP 振荡器模式下总是读为 1。
DS41250F_CN 第 44 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.2.1
引脚说明及框图
每个PORTA引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能的具
体信息,请参阅此数据手册中的相应章节。
3.2.1.1
RA0/AN0/C1-/SEG12
图 3-1 是该引脚的框图。 RA0 引脚可以被配置为以下功
能之一:
•
•
•
•
通用 I/O
ADC 转换器的模拟输入
比较器 C1 的模拟输入
LCD 的模拟输出
图 3-1:
RA0 的框图
数据总线
D
写 PORTA
Q
CK
VDD
Q
数据锁存器
D
写 TRISA
Q
CK
I/O 引脚
VSS
Q
TRIS 锁存器
模拟输入或
SE12 和 LCDEN
读 TRISA
SE12 和 LCDEN
TTL
输入缓冲器
读 PORTA
SEG12
SE12 和 LCDEN
到 A/D 转换器和比较器
 2007 Microchip Technology Inc.
DS41250F_CN 第 45 页
PIC16F913/914/916/917/946
3.2.1.2
RA1/AN1/C2-/SEG7
图 3-2 是该引脚的框图。RA1 引脚可以被配置为以下功
能之一:
•
•
•
•
通用 I/O
ADC 转换器的模拟输入
比较器 C2 的模拟输入
LCD 的模拟输出
图 3-2:
RA1 的框图
数据总线
写 PORTA
D
Q
CK
VDD
Q
数据锁存器
D
写 TRISA
Q
CK
I/O 引脚
VSS
Q
TRIS 锁存器
模拟输入或
SE7 和 LCDEN
读 TRISA
SE7 和 LCDEN
TTL
输入缓冲器
读 PORTA
SEG7
SE7 和 LCDEN
到 A/D 转换器和比较器
DS41250F_CN 第 46 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.2.1.3
RA2/AN2/C2+/VREF-/COM2
图 3-3 是该引脚的框图。RA2 引脚可以被配置为以下功
能之一:
•
•
•
•
•
通用 I/O
ADC 转换器的模拟输入
比较器 C2 的模拟输入
ADC 转换器的参考电压输入
LCD 的模拟输出
图 3-3:
RA2 的框图
数据总线
D
写 PORTA
Q
CK
VDD
Q
数据锁存器
D
写 TRISA
Q
CK
I/O 引脚
VSS
Q
TRIS 锁存器
读 TRISA
模拟输入或
LCDEN 和
LMUX<1:0> = 1X
LCDEN 和
LMUX<1:0> = 1X
TTL
输入缓冲器
读 PORTA
COM2
LCDEN 和
LMUX<1:0> = 1X
到 A/D 转换器和比较器
到 A/D 模块 VREF- 输入
 2007 Microchip Technology Inc.
DS41250F_CN 第 47 页
PIC16F913/914/916/917/946
3.2.1.4
RA3/AN3/C1+/VREF+/COM3/SEG15
图 3-4 是该引脚的框图。RA3 引脚可以被配置为以下功
能之一:
•
•
•
•
•
通用输入
ADC 转换器的模拟输入
比较器 C1 的模拟输入
ADC 转换器的参考电压输入
LCD 的模拟输出
图 3-4:
RA3 的框图
数据总线
写 PORTA
D
Q
CK
VDD
Q
数据锁存器
Q
D
写 TRISA
CK
I/O 引脚
VSS
Q
TRIS 锁存器
模拟输入或
LCDMODE_EN(2)
读 TRISA
LCDMODE_EN(2)
TTL
输入缓冲器
读 PORTA
COM3(1) 或 SEG15
LCDMODE_EN(2)
到 A/D 转换器和比较器
到 A/D 模块 VREF+ 输入
注
1: 仅适用于 PIC16F913/916 器件。
2: 对于 PIC16F913/916, LCDMODE_EN = LCDEN 和 (SE15 或 LMUX<1:0> = 11)。
对于 PIC16F914/917 和 PIC16F946, LCDMODE_EN = LCDEN 和 SE15。
DS41250F_CN 第 48 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.2.1.5
RA4/C1OUT/T0CKI/SEG4
图 3-5 是该引脚的框图。RA4 引脚可以被配置为以下功
能之一:
•
•
•
•
通用 I/O
比较器 C1 的数字输出
Timer0 的时钟输入
LCD 的模拟输出
图 3-5:
RA4 的框图
CM<2:0> = 110 或 101
C1OUT
数据总线
D
Q
1
0
VDD
写 PORTA
CK
Q
数据锁存器
D
I/O 引脚
Q
VSS
写 TRISA
CK
Q
TRIS 锁存器
SE4 和 LCDEN
读 TRISA
SE4 和 LCDEN
TTL
输入缓冲器
读 PORTA
施密特触发器
T0CKI
SEG4
 2007 Microchip Technology Inc.
SE4 和 LCDEN
SE4 和 LCDEN
DS41250F_CN 第 49 页
PIC16F913/914/916/917/946
3.2.1.6
RA5/AN4/C2OUT/SS/SEG5
图 3-6 是该引脚的框图。RA5 引脚可以被配置为以下功
能之一:
•
•
•
•
•
通用 I/O
比较器 C2 的数字输出
从选择输入
LCD 的模拟输出
ADC 转换器的模拟输入
图 3-6:
RA5 的框图
CM<2:0> = 110 或 101
C2OUT
数据总线
写 PORTA
D
Q
1
0
VDD
CK
Q
数据锁存器
D
写 TRISA
I/O 引脚
Q
VSS
CK
Q
TRIS 锁存器
读 TRISA
模拟输入或
SE5 和 LCDEN
SE5 和 LCDEN
TTL
输入缓冲器
读 PORTA
到 SS 输入
SE5 和 LCDEN
SEG5
到 A/D 转换器
DS41250F_CN 第 50 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.2.1.7
RA6/OSC2/CLKOUT/T1OSO
图 3-7 是该引脚的框图。RA6 引脚可以被配置为以下功
能之一:
•
•
•
•
通用 I/O
连接晶振 / 谐振器
时钟输出
连接 Timer1 振荡器
图 3-7:
RA6 的框图
FOSC = 1x1
CLKOUT(FOSC/4)
数据总线
D
Q
来自 OSC1
振荡
电路
1
0
VDD
写 PORTA
CK
Q
数据锁存器
D
写 TRISA
FOSC = 00x,010
或 T1OSCEN
I/O 引脚
Q
VSS
CK
Q
TRIS 锁存器
FOSC = 00x,010
或 T1OSCEN
TTL
输入缓冲器
读 TRISA
读 PORTA
 2007 Microchip Technology Inc.
DS41250F_CN 第 51 页
PIC16F913/914/916/917/946
3.2.1.8
RA7/OSC1/CLKIN/T1OSI
图 3-8 是该引脚的框图。RA7 引脚可以被配置为以下功
能之一:
•
•
•
•
通用 I/O
连接晶振 / 谐振器
时钟输入
连接 Timer1 振荡器
图 3-8:
RA7 的框图
到 OSC2
数据总线
写 PORTA
D
振荡
电路
FOSC = 011
Q
CK
Q
VDD
数据锁存器
D
写 TRISA
FOSC = 10x
Q
CK
I/O 引脚
VSS
Q
FOSC = 10x
TRIS 锁存器
TTL
输入缓冲器
读 TRISA
读 PORTA
表 3-1:
与 PORTA 相关的寄存器汇总
上电复位与欠
压复位时的值
所有其他
复位时的值
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ADCON0
ADFM
VCFG1
VCFG0
CHS2
CHS1
CHS0
GO/DONE
ADON
0000 0000
0000 0000
ANSEL
ANS7
ANS6
ANS5
ANS4
ANS3
ANS2
ANS1
ANS0
1111 1111
1111 1111
CMCON0
C2OUT
C1OUT
C2INV
C1INV
CIS
CM2
CM1
CM0
0000 0000
0000 0000
CONFIG(1)
CPD
CP
MCLRE
PWRTE
WDTE
FOSC2
FOSC1
FOSC0
—
—
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
1111 1111
1111 1111
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
名称
OPTION_REG
LCDCON
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
uuuu uuuu
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
uuuu uuuu
PORTA
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
xxxx xxxx
uuuu uuuu
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
T1GINV
TMR1GE
T1SYNC
TMR1CS
TMR1ON
0000 0000
uuuu uuuu
TRISA7
TRISA6
TRISA2
TRISA1
TRISA0
1111 1111
1111 1111
SSPCON
T1CON
TRISA
图注:
注
1:
T1CKPS1 T1CKPS0 T1OSCEN
TRISA5
TRISA4
TRISA3
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTA 不使用阴影单元。
所有寄存器位的操作请参见配置字寄存器 (CONFIG)。
DS41250F_CN 第 52 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.3
PORTB 和 TRISB 寄存器
PORTB 是 8 位双向 I/O 端口。 所有 PORTB 引脚都具有
弱上拉功能,其中 PORTB<7:4> 还具有在输入电平发生
改变时产生中断的功能。
PORTB 也用作串行闪存编程接口和 ICD 接口。
例 3-2:
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
初始化 PORTB
PORTB
PORTB
TRISB
0FFh
TRISB
;
;Init PORTB
;
;Set RB<7:0> as inputs
;
3.4
其他 PORTB 引脚功能
RB<7:6> 可分别用作器件在串行编程和在线调试时的数
据和时钟信号。并且可以将 RB0 配置为外部中断输入。
3.4.1
弱上拉
每个 PORTB 引脚都有各自的可配置内部弱上拉。 控制
位 WPUB<7:0> 使能或禁止每个弱上拉。 参见寄存器
3-7。 当将端口引脚配置为输出时,其弱上拉会自动切
断。在上电复位时,弱上拉由OPTION寄存器中的RBPU
位禁止。
3.4.2
电平变化中断
四个 PORTB 引脚可以被分别配置为电平变化中断引
脚。控制位 IOCB<7:4> 为每个引脚允许或禁止该中断功
能。 参见寄存器 3-6。 上电复位时禁止引脚上的电平变
化中断功能。
对于已允许电平变化中断的引脚,则将该引脚上的值与
上次读 PORTB 时锁存的旧值进行比较。 将与上次读操
作 “不 匹 配”的 输 出 一 起 进 行 逻 辑 或 运 算,以 便 将
INTCON 寄存器中的 PORTB 电平变化中断标志位
(RBIF)置 1 (寄存器 2-3)。
该中断可将器件从休眠中唤醒。 用户可在中断服务程序
中通过以下方式清除中断:
a)
b)
对 PORTB 进行读或写操作。 这将结束电平不匹
配条件。
将标志位 RBIF 清零。
电平不匹配条件会继续将 RBIF 标志位置 1。 读或写
PORTB将结束这种不匹配条件并允许将标志位 RBIF清
零。锁存器将保持最后一次读取的值而不受 MCLR 和欠
压复位的影响。在这些复位之后,如果出现电平不匹
配, RBIF 标志位将继续被置 1。
注:
 2007 Microchip Technology Inc.
如果在执行读操作时(Q2 周期的开始)I/O
引脚的电平发生变化,则 RBIF 中断标志位
不会被置 1。 此外,由于对端口的读或写影
响到该端口的所有位,所以在电平变化中
断模式下使用多个引脚的时候必须特别小
心。 在处理一个引脚电平变化的时候可能
不会注意到另一个引脚上的电平变化。
DS41250F_CN 第 53 页
PIC16F913/914/916/917/946
寄存器 3-4:
PORTB:PORTB 寄存器
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
RB<7:0>:PORTB I/O 引脚位
1 = 端口引脚电平 >VIH 最小值。
0 = 端口引脚电平 <VIL 最大值。
寄存器 3-5:
TRISB:PORTB 三态寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISB0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
TRISB<7:0>:PORTB 三态控制位
1 = PORTB 引脚被配置为输入 (三态)
0 = PORTB 引脚被配置为输出
寄存器 3-6:
IOCB:PORTB 电平变化中断寄存器
R/W-0
R/W-0
R/W-0
R/W-0
U-0
U-0
U-0
U-0
IOCB7
IOCB6
IOCB5
IOCB4
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-4
IOCB<7:4>:电平变化中断位
1 = 允许电平变化中断
0 = 禁止电平变化中断
bit 3-0
未实现:读为 0
DS41250F_CN 第 54 页
x = 未知
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 3-7:
WPUB:弱上拉寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
WPUB7
WPUB6
WPUB5
WPUB4
WPUB3
WPUB2
WPUB1
WPUB0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
注
x = 未知
WPUB<7:0>:弱上拉寄存器位
1 = 使能上拉
0 = 禁止上拉
1: 为了使能各个上拉必须使能全局 RBPU。
2: 如果引脚处于输出模式 (TRISx<7:0> = 0),将自动禁止弱上拉器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 55 页
PIC16F913/914/916/917/946
3.4.3
3.4.3.2
引脚说明及框图
图 3-9 是该引脚的框图。RB1 引脚可以被配置为以下功
能之一:
每个PORTB引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能 (例
如 LCD 或中断)的具体信息,请参阅此数据手册中的相
应章节。
3.4.3.1
RB1/SEG1
• 通用 I/O
• LCD 的模拟输出
RB0/INT/SEG0
3.4.3.3
图 3-9 是该引脚的框图。RB0 引脚可以被配置为以下功
能之一:
RB2/SEG2
图 3-9 是该引脚的框图。RB2 引脚可以被配置为以下功
能之一:
• 通用 I/O
• 外部边沿触发中断
• LCD 的模拟输出
• 通用 I/O
• LCD 的模拟输出
3.4.3.4
RB3/SEG3
图 3-9 是该引脚的框图。RB3 引脚可以被配置为以下功
能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-9:
RB<3:0> 的框图
WPUB<3:0>
SE<3:0>
VDD
VDD
P 弱上拉
RBPU
数据总线
写 PORTB
D
Q
I/O 引脚
CK
VSS
数据锁存器
D
写 TRISB
Q
CK
TRIS 锁存器
SE<3:0> 和 LCDEN
TTL
输入缓冲器
读 TRISB
读 PORTB
SEG<3:0>
SE<3:0> 和 LCDEN
施密特触发器
INT(1)
注
SE0 和 LCDEN
1: 仅适用于 RB0。
DS41250F_CN 第 56 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.4.3.5
RB4/COM0
图 3-10 是该引脚的框图。 RB4 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-10:
RB4 的框图
LCDEN
WPUB<4>
VDD
VDD
P 弱上拉
RBPU
数据总线
写 PORTB
D
Q
I/O 引脚
CK
VSS
数据锁存器
D
写 TRISB
Q
CK
TRIS 锁存器
LCDEN
读 TRISB
TTL
输入缓冲器
读 PORTB
D
写 IOC
CK
Q
Q
Q
读 IOC
电平变化
中断
D
EN
Q1
RBIF 置 1
Q
LCDEN
S
R
Q
来自其他
RB<7:4> 引脚
EN
将 0 写入 RBIF
COM0
 2007 Microchip Technology Inc.
D
读 PORTB
LCDEN
DS41250F_CN 第 57 页
PIC16F913/914/916/917/946
3.4.3.6
RB5/COM1
图 3-11 是该引脚的框图。 RB5 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-11:
RB5 的框图
WPUB<5>
LCDEN 和 LMUX<1:0>
≠ 00
VDD
VDD
P 弱上拉
RBPU
数据总线
写 PORTB
D
Q
I/O 引脚
CK
VSS
数据锁存器
D
写 TRISB
Q
CK
TRIS 锁存器
LCDEN 和 LMUX<1:0>
读 TRISB
≠ 00
TTL
输入缓冲器
读 PORTB
D
写 IOC
CK
Q
Q
读 IOC
电平变化
中断
LCDEN 和
LMUX<1:0>
RBIF 置 1
Q
Q
≠ 00
Q
来自其他
RB<7:4> 引脚
D
EN
将 0 写入 RBIF
DS41250F_CN 第 58 页
Q1
EN
S
R
COM1
D
LCDEN 和 LMUX<1:0>
读 PORTB
≠ 00
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.4.3.7
RB6/ICSPCLK/ICDCK/SEG14
图 3-12 是该引脚的框图。 RB6 引脚可以被配置为以下
功能之一:
•
•
•
•
通用 I/O
在线串行编程时钟
ICD 时钟输入
LCD 的模拟输出
图 3-12:
RB6 的框图
编程模式 /ICD
WPUB<6>
VDD
RBPU
SE14 和 LCDEN
P
数据总线
D
弱上拉
VDD
Q
I/O 引脚
写 PORTB
CK
VSS
数据锁存器
D
写 TRISB
Q
SE14 和 LCDEN
CK
TRIS 锁存器
TTL
输入缓冲器
读 TRISB
读 PORTB
D
写 IOC
CK
Q
Q
Q
读 IOC
D
EN
Q1
RBIF 置 1
电平变化
中断
Q
编程模式 /ICD
S
R
Q
来自其他
RB<7:4> 引脚
D
EN
将 0 写入 RBIF
读 PORTB
施密特触发器
ICSPCLK
SEG14
 2007 Microchip Technology Inc.
编程模式或 ICD 或(SE14 和 LCDEN)
SE14 和 LCDEN
DS41250F_CN 第 59 页
PIC16F913/914/916/917/946
3.4.3.8
RB7/ICSPDAT/ICDDAT/SEG13
图 3-13 是该引脚的框图。 RB7 引脚可以被配置为以下
功能之一:
•
•
•
•
通用 I/O
在线串行编程 I/O
ICD 数据 I/O
LCD 的模拟输出
图 3-13:
RB7 的框图
PORT/ 编程模式 /ICD
ICSPDAT
数据总线
写 PORTB
VDD
RBPU
SE13 和 LCDEN
D
P 弱上拉
1
Q
0
I/O 引脚
CK
VSS
数据锁存器
D
写 TRISB
VDD
Q
CK
TRIS 锁存器
PGD DRVEN
0
TTL
输入缓冲器
1
SE13 和 LCDEN
读 TRISB
读 PORTB
D
写 IOC
CK
Q
Q
D
Q1
EN
Q
读 IOC
RBIF 置 1
电平变化
中断
Q
编程
模式 /ICD
S
R
来自其他
RB<7:4> 引脚
Q
D
EN
读 PORTB
将 0 写入 RBIF
施密特触发器
ICSPDAT/ICDDAT
SEG13
DS41250F_CN 第 60 页
编程模式或 ICD 或(SE13 和 LCDEN)
SE13 和 LCDEN
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 3-2:
与 PORTB 相关的寄存器汇总
Bit 7
名称
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
IOCB
IOCB7
IOCB6
IOCB5
IOCB4
—
—
—
—
0000 ----
0000 ---0001 0011
INTCON
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
uuuu uuuu
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
uuuu uuuu
OPTION_REG
1111 1111
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
1111 1111
PORTB
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
xxxx xxxx
uuuu uuuu
TRISB
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISB0
1111 1111
1111 1111
WPUB7
WPUB6
WPUB5
WPUB4
WPUB3
WPUB2
WPUB1
WPUB0
1111 1111
1111 1111
WPUB
图注:
注
1:
2:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTB 不使用阴影单元。
此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。
配置字寄存器位 DEBUG <12> 还与 PORTB 相关。 详情请参见寄存器 16-1。
 2007 Microchip Technology Inc.
DS41250F_CN 第 61 页
PIC16F913/914/916/917/946
3.5
PORTC 和 TRISC 寄存器
例 3-3:
PORTC 是 8 位宽的双向端口。 PORTC 与几种外设功能
复用。PORTC 引脚都有施密特触发器输入缓冲器。
所有的 PORTC 引脚都有锁存位 (PORTC 寄存器)。
它们在写入的时候会修改 PORTC 锁存器的内容;因
此,如果相应的 TRISC 位被配置为输出,将修改在该引
脚上驱动输出的值。
寄存器 3-8:
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
初始化 PORTC
PORTC
PORTC
TRISC
0FFh
TRISC
LCDCON
LCDCON
;
;Init PORTC
;
;Set RC<7:0> as inputs
;
;
;Disable VLCD<3:1>
;inputs on RC<2:0>
PORTC:PORTC 寄存器
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RC0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
RC<7:0>:PORTC I/O 引脚位
1 = 端口引脚电平 >VIH 最小值
0 = 端口引脚电平 <VIL 最大值
寄存器 3-9:
TRISC:PORTC 三态寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
TRISC<7:0>:PORTC 三态控制位
1 = PORTC 引脚被配置为输入 (三态)
0 = PORTC 引脚被配置为输出
DS41250F_CN 第 62 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.5.1
3.5.1.3
引脚说明及框图
每个PORTC引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能 (例
如 LCD 或 SSP)的具体信息,请参阅此数据手册中的相
应章节。
3.5.1.1
RC2/VLCD3
图 3-16 是该引脚的框图。 RC2 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 偏置电压的模拟输入
RC0/VLCD1
图 3-14 是该引脚的框图。 RC0 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 偏置电压的模拟输入
3.5.1.2
RC1/VLCD2
图 3-15 是该引脚的框图。 RC1 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 偏置电压的模拟输入
图 3-14:
RC0 的框图
数据总线
写 PORTC
D
Q
CK
数据锁存器
D
写 TRISC
VDD
Q
CK
I/O 引脚
Q
VSS
Q
TRIS 锁存器
(VLCDEN 和 LMUX<1:0> ≠ 00)
读 TRISC
施密特
触发器
读 PORTC
VLCD1
 2007 Microchip Technology Inc.
(LCDEN 和 LMUX<1:0> ≠ 00)
DS41250F_CN 第 63 页
PIC16F913/914/916/917/946
图 3-15:
RC1 的框图
数据总线
写 PORTC
D
CK
VDD
Q
Q
I/O 引脚
数据锁存器
D
写 TRISC
Q
VSS
Q
CK
TRIS 锁存器
(VLCDEN 和 LMUX<1:0> ≠ 00)
读 TRISC
施密特
触发器
读 PORTC
(LCDEN 和 LMUX<1:0> ≠ 00)
VLCD2
图 3-16:
RC2 的框图
数据总线
写 PORTC
D
CK
VDD
Q
Q
I/O 引脚
数据锁存器
D
写 TRISC
Q
VSS
Q
CK
TRIS 锁存器
VLCDEN
读 TRISC
施密特
触发器
读 PORTC
VLCD3
DS41250F_CN 第 64 页
LCDEN
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.5.1.4
RC3/SEG6
图 3-17 是该引脚的框图。 RC3 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-17:
RC3 的框图
数据总线
写 PORTC
D
CK
VDD
Q
Q
I/O 引脚
数据锁存器
D
写 TRISC
CK
Q
VSS
Q
TRIS 锁存器
SE6 和 LCDEN
读 TRISC
施密特
触发器
读 PORTC
SEG6 和 LCDEN
 2007 Microchip Technology Inc.
SE6 和 LCDEN
DS41250F_CN 第 65 页
PIC16F913/914/916/917/946
3.5.1.5
RC4/T1G/SDO/SEG11
图 3-18 是该引脚的框图。 RC4 引脚可以被配置为以下
功能之一:
•
•
•
•
通用 I/O
Timer1 门控信号输入
串行数据输出
LCD 的模拟输出
图 3-18:
RC4 的框图
PORT/SDO 选择
SDO
数据总线
D
Q
0
1
VDD
写 PORTC
CK
Q
数据锁存器
D
写 TRISC
I/O 引脚
Q
VSS
CK
Q
TRIS 锁存器
读 TRISC
SE11 和 LCDEN
施密特
触发器
读 PORTC
Timer1 门控信号
SEG11
DS41250F_CN 第 66 页
SE11 和 LCDEN
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.5.1.6
RC5/T1CKI/CCP1/SEG10
图 3-19 是该引脚的框图。 RC5 引脚可以被配置为以下
功能之一:
•
•
•
•
通用 I/O
Timer1 时钟输入
捕捉输入、比较输出或 PWM 输出
LCD 的模拟输出
图 3-19:
RC5 的框图
(PORT/CCP1 选择)和 CCPMX
CCP1 数据输出
0
数据总线
D
Q
1
VDD
写 PORTC
CK
Q
数据锁存器
D
写 TRISC
I/O 引脚
Q
VSS
CK
Q
TRIS 锁存器
读 TRISC
SE10 和 LCDEN
施密特
触发器
读 PORTC
Timer1 时钟输入
SEG10
 2007 Microchip Technology Inc.
SE10 和 LCDEN
DS41250F_CN 第 67 页
PIC16F913/914/916/917/946
3.5.1.7
RC6/TX/CK/SCK/SCL/SEG9
图 3-20 是该引脚的框图。 RC6 引脚可以被配置为以下
功能之一:
•
•
•
•
•
•
通用 I/O
异步串行输出
同步时钟 I/O
SPI 时钟 I/O
I2C 数据 I/O
LCD 的模拟输出
图 3-20:
RC6 的框图
PORT/USART/SSP 模式选择 (1)
I2CTM 数据输出
TX/CK 数据输出
SCK 数据输出
数据总线
D
Q
VDD
写 PORTC
CK
Q
数据锁存器
D
写 TRISC
I/O 引脚
Q
VSS
CK
Q
TRIS 锁存器
读 TRISC
USART 或 I2C™ 驱动
SE9 和 LCDEN
施密特
触发器
读 PORTC
CK/SCL/SCK 输入
SEG9
注
SE9 和 LCDEN
1: 如果使能了全部的三个数据输出源,将采用以下优先级顺序:
• USART 数据 (最高优先级)
• SSP 数据
• 端口数据 (最低优先级)
DS41250F_CN 第 68 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.5.1.8
RC7/RX/DT/SDI/SDA/SEG8
图 3-21 是该引脚的框图。 RC7 引脚可以被配置为以下
功能之一:
•
•
•
•
•
•
通用 I/O
异步串行输入
同步串行数据 I/O
SPI 数据输入
I2C 数据 I/O
LCD 的模拟输出
图 3-21:
RC7 的框图
USART/I2C™ 模式选择 (1)
DT 数据输出
I2C™ 数据输出
PORT/(USART 或 I2C™)选择
VDD
0
1
数据总线
写 PORTC
D
Q
CK
Q
I/O 引脚
VSS
数据锁存器
D
Q
写 TRISC
CK
Q
TRIS 锁存器
SE8 和 LCDEN
I2C™ 驱动
或 SCEN 驱动
读 TRISC
施密特
触发器
读 PORTC
RX/SDI 输入
SE8 和 LCDEN
SEG8
注
1: 如果使能了全部的三个数据输出源,将采用以下优先级顺序:
• USART 数据 (最高优先级)
• SSP 数据
• 端口数据 (最低优先级)
 2007 Microchip Technology Inc.
DS41250F_CN 第 69 页
PIC16F913/914/916/917/946
表 3-3:
与 PORTC 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
—
—
CCP1X
CCP1Y
CCP1M3
CCP1M2
CCP1M1
CCP1M0
--00 0000
--00 0000
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
uuuu uuuu
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
uuuu uuuu
PORTC
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RC0
xxxx xxxx
uuuu uuuu
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
名称
CCP1CON
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
T1CON
T1GINV
TMR1GE
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
0000 0000
uuuu uuuu
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
图注:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTC 不使用阴影单元。
DS41250F_CN 第 70 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.6
PORTD 和 TRISD 寄存器
例 3-4:
PORTD是一个带有施密特触发器输入缓冲器的8位端口。
各 引 脚 都 可 以 被 分 别 配 置 为 输 入 或 输 出。仅
PIC16F914/917 和 PIC16F946 系列器件可使用 PORTD。
寄存器 3-10:
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
初始化 PORTD
PORTD
PORTD
TRISD
0FF
TRISD
;
;Init PORTD
;
;Set RD<7:0> as inputs
;
PORTD:PORTD 寄存器
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RD7
RD6
RD5
RD4
RD3
RD2
RD1
RD0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
RD<7:0>:PORTD I/O 引脚位
1 = 端口引脚电平 >VIH 最小值
0 = 端口引脚电平 <VIL 最大值
寄存器 3-11:
TRISD:PORTD 三态寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISD7
TRISD6
TRISD5
TRISD4
TRISD3
TRISD2
TRISD1
TRISD0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
TRISD<7:0>:PORTD 三态控制位
1 = PORTD 引脚被配置为输入 (三态)
0 = PORTD 引脚被配置为输出
 2007 Microchip Technology Inc.
DS41250F_CN 第 71 页
PIC16F913/914/916/917/946
3.6.1
引脚说明及框图
每个PORTD引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能 (例
如比较器或 ADC 转换器)的具体信息,请参阅此数据手
册中的相应章节。
3.6.1.1
RD0/COM3
图 3-22 是该引脚的框图。 RD0 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.6.1.2
3.6.1.7
RD6/SEG19
图 3-25 是该引脚的框图。 RD6 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.6.1.8
RD7/SEG20
图 3-25 是该引脚的框图。 RD7 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
RD1
图 3-23 是该引脚的框图。 RD1 引脚可以被配置为以下
功能之一:
• 通用 I/O
3.6.1.3
RD2/CCP2
图 3-24 是该引脚的框图。 RD2 引脚可以被配置为以下
功能之一:
• 通用 I/O
• 捕捉输入、比较输出或 PWM 输出
3.6.1.4
RD3/SEG16
图 3-25 是该引脚的框图。 RD3 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.6.1.5
RD4/SEG17
图 3-25 是该引脚的框图。 RD4 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.6.1.6
RD5/SEG18
图 3-25 是该引脚的框图。 RD5 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
DS41250F_CN 第 72 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 3-22:
RD0 的框图
VDD
数据总线
写 PORTD
D
Q
CK
I/O 引脚
Q
VSS
数据锁存器
写 TRISD
D
Q
CK
Q
TRIS 锁存器
读 TRISD
LCDEN 和 LMUX<1:0> = 11
施密特
触发器
读 PORTD
LCDEN 和
LMUX<1:0> = 11
COM3
图 3-23:
RD1 的框图
VDD
数据总线
写 PORTD
D
Q
CK
RD1 引脚
Q
VSS
数据锁存器
写 TRISD
D
Q
CK
Q
TRIS 锁存器
读 TRISD
施密特
触发器
读 PORTD
 2007 Microchip Technology Inc.
DS41250F_CN 第 73 页
PIC16F913/914/916/917/946
图 3-24:
RD2 的框图
(PORT/CCP2 选择)和 CCPMX
VDD
CCP2 数据输出
0
数据总线
写 PORTD
D
Q
CK
Q
1
I/O 引脚
VSS
数据锁存器
写 TRISD
D
Q
CK
Q
TRIS 锁存器
施密特
触发器
读 TRISD
读 PORTD
CCP2 输入
图 3-25:
RD<7:3> 的框图
VDD
数据总线
写 PORTD
D
Q
CK
I/O 引脚
Q
VSS
数据锁存器
写 TRISD
D
Q
CK
Q
TRIS 锁存器
SE<20:16> 和 LCDEN
读 TRISD
施密特
触发器
读 PORTD
SEG<20:16>
DS41250F_CN 第 74 页
SE<20:16> 和 LCDEN
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
与 PORTD 相关的寄存器汇总 (1)
表 3-4:
名称
CCP2CON(1)
LCDCON
LCDSE2(1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
—
—
CCP2X
CCP2Y
CCP2M3
CCP2M2
CCP2M1
CCP2M0
--00 0000
--00 0000
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
SE23
SE22
SE21
SE20
SE19
SE18
SE17
SE16
0000 0000
uuuu uuuu
PORTD(1)
RD7
RD6
RD5
RD4
RD3
RD2
RD1
RD0
xxxx xxxx
uuuu uuuu
TRISD(1)
TRISD7
TRISD6
TRISD5
TRISD4
TRISD3
TRISD2
TRISD1
TRISD0
1111 1111
1111 1111
图注:
注
1:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTD 不使用阴影单元。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 75 页
PIC16F913/914/916/917/946
3.7
例 3-5:
PORTE 和 TRISE 寄存器
PORTE 是一个带有施密特触发器输入缓冲器的 1 位、4
位或 8 位端口。RE<7:4> 和 RE<2:0> 可以被分别配置为
输入或输出,且如果配置字(寄存器 16-1)中的 MCLRE
位为 0,则 RE3 只能用作输入引脚。
仅PIC16F914/917和PIC16F946器件可使用RE<2:0> 。
仅 PIC16F946 器件可使用 RE<7:4>。
寄存器 3-12:
R/W-x
RE7
初始化 PORTE
PORTE
PORTE
TRISE
0Fh
TRISE
ANSEL
;
;Init PORTE
;
;Set RE<3:0> as inputs
;
;Make RE<2:0> as I/Os
PORTE:PORTE 寄存器
R/W-x
(1,3)
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
CLRF
(1,3)
RE6
R/W-x
RE5
R/W-x
(1,3)
(1,3)
RE4
R-x
RE3
R/W-x
RE2
(2,4)
R/W-x
RE1
(2,4)
bit 7
R/W-x
RE0(2,4)
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
RE<7:0>:PORTE I/O 引脚位
1 = 端口引脚电平 >VIH 最小值
0 = 端口引脚电平 <VIL 最大值
1:
2:
3:
4:
注
x = 未知
仅适用于 PIC16F946 器件。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
对于 PIC16F91X 器件,读为 0。
对于 PIC16F913/916 器件,读为 0。
寄存器 3-13:
TRISE:PORTE 三态寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R-1
R/W-1
R/W-1
R/W-1
TRISE7(1,3)
TRISE6(1,3)
TRISE5(1,3)
TRISE4(1,3)
TRISE3
TRISE2(2,4)
TRISE1(2,4)
TRISE0(2,4)
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
注
x = 未知
TRISE<7:0>:PORTE 三态控制位
1 = PORTE 引脚被配置为输入 (三态)
0 = PORTE 引脚被配置为输出
1:
2:
3:
4:
仅适用于 PIC16F946 器件。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
对于 PIC16F91X 器件,读为 0。
对于 PIC16F913/916 器件,读为 0。
DS41250F_CN 第 76 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.7.1
引脚说明及框图
每个PORTE引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能 (例
如比较器或 ADC 转换器)的具体信息,请参阅此数据手
册中的相应章节。
3.7.1.1
RE0/AN5/SEG21(1)
图 3-26 是该引脚的框图。 RE0 引脚可以被配置为以下
功能之一:
• 通用 I/O
• ADC 转换器的模拟输入
• LCD 的模拟输出
3.7.1.2
RE1/AN6/SEG22(1)
图 3-26 是该引脚的框图。 RE1 引脚可以被配置为以下
功能之一:
3.7.1.7
RE6/SEG26(2)
图 3-28 是该引脚的框图。RE6/SEG26 引脚可以被配置
为以下功能之一:
• 通用 I/O
• LCD 的模拟输出
3.7.1.8
RE7/SEG27(2)
图 3-28 是该引脚的框图。RE7/SEG27 引脚可以被配置
为以下功能之一:
• 通用 I/O
• LCD 的模拟输出
注
1: 仅 PIC16F914/917 和 PIC16F946 器件可
使用该引脚。
2: 仅 PIC16F946 器件可使用该引脚。
• 通用 I/O
• ADC 转换器的模拟输入
• LCD 的模拟输出
3.7.1.3
RE2/AN7/SEG23(1)
图 3-26 是该引脚的框图。 RE2 引脚可以被配置为以下
功能之一:
• 通用 I/O
• ADC 转换器的模拟输入
• LCD 的模拟输出
3.7.1.4
RE3/MCLR/VPP
图 3-27 是该引脚的框图。 RE3 引脚可以被配置为以下
功能之一:
• 仅数字输入
• 带弱上拉的主复位
• 编程参考电压输入
3.7.1.5
RE4/SEG24(2)
图 3-28 是该引脚的框图。RE4/SEG24 引脚可以被配置
为以下功能之一:
• 通用 I/O
• LCD 的模拟输出
3.7.1.6
RE5/SEG25(2)
图 3-28 是该引脚的框图。RE5/SEG25 引脚可以被配置
为以下功能之一:
• 通用 I/O
• LCD 的模拟输出
 2007 Microchip Technology Inc.
DS41250F_CN 第 77 页
PIC16F913/914/916/917/946
图 3-26:
RE<2:0> 的框图 (仅适用于 PIC16F914/917 和 PIC16F946)
VDD
数据总线
D
写 PORTE
Q
CK
I/O 引脚
Q
VSS
数据锁存器
D
Q
CK
Q
写 TRISE
TRIS 锁存器
模拟模式或
SEG<23:21> 和 LCDEN
读 TRISE
施密特
触发器
读 PORTE
SEG<23:21> 和 LCDEN
SEG<23:21>
AN<7:5>
图 3-27:
RE3 的框图
MCLR 电路
HV
施密特触发器
缓冲器
MCLR 滤波器
编程模式
HV 检测
输入引脚
MCLRE
VSS
数据总线
读 TRISE
VSS
HV
施密特触发器
缓冲器
读 PORTE
DS41250F_CN 第 78 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 3-28:
RE<7:4> 的框图 (仅适用于 PIC16F946)
VDD
数据总线
写 PORTE
D
Q
CK
I/O 引脚
Q
VSS
数据锁存器
写 TRISE
D
Q
CK
Q
TRIS 锁存器
模拟模式或
读 TRISE
SEG<27:24> 和 LCDEN
施密特
触发器
读 PORTE
SEG<27:24>
SEG<27:24> 和 LCDEN
AN<7:5>
 2007 Microchip Technology Inc.
DS41250F_CN 第 79 页
PIC16F913/914/916/917/946
表 3-5:
与 PORTE 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
ADCON0
ADFM
VCFG1
VCFG0
CHS2
CHS1
CHS0
GO/DONE
ADON
0000 0000
0000 0000
ANSEL
ANS7
ANS6
ANS5
ANS4
ANS3
ANS2
ANS1
ANS0
1111 1111
1111 1111
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE2(1,2)
SE23
SE22
SE21
SE20
SE19
SE18
SE17
SE16
0000 0000
uuuu uuuu
LCDSE3(1, 3)
SE31
SE30
SE29
SE28
SE27
SE26
SE25
SE24
0000 0000
uuuu uuuu
(3)
(3)
(3)
(3)
(2)
(2)
(2)
xxxx xxxx
uuuu uuuu
1111 1111
1111 1111
名称
LCDCON
PORTE
TRISE
图注:
注
1:
2:
3:
4:
RE7
TRISE7(3)
RE6
TRISE6(3)
RE5
TRISE5(3)
RE4
TRISE4(3)
RE3
TRISE3(4)
RE2
TRISE2(2)
RE1
TRISE1(2)
RE0
TRISE0(2)
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTE 不使用阴影单元。
此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件。
只读位; TRISE 始终为 1。
DS41250F_CN 第 80 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.8
例 3-6:
PORTF 和 TRISF 寄存器
PORTF 是一个带有施密特触发器输入缓冲器的 8 位端
口。RF<7:0> 可以被分别配置为输入或输出,具体取决
于端口方向的状态。 端口位也和 LCD 段功能复用。 仅
PIC16F946 器件可使用 PORTF。
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
初始化 PORTF
PORTF
PORTF
TRISF
0FFh
TRISF
;
;Init PORTF
;
;Set RF<7:0> as inputs
;
PORTF:PORTF 寄存器 (1)
寄存器 3-14:
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RF7
RF6
RF5
RF4
RF3
RF2
RF1
RF0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
RF<7:0>:PORTF I/O 引脚位
1 = 端口引脚电平 >VIH 最小值
0 = 端口引脚电平 <VIL 最大值
1: 仅适用于 PIC16F946 器件。
注
TRISF:PORTF 三态寄存器 (1)
寄存器 3-15:
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISF7
TRISF6
TRISF5
TRISF4
TRISF3
TRISF2
TRISF1
TRISF0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
注
x = 未知
TRISF<7:0>:PORTF 三态控制位
1 = PORTF 引脚被配置为输入 (三态)
0 = PORTF 引脚被配置为输出
1: 仅适用于 PIC16F946 器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 81 页
PIC16F913/914/916/917/946
3.8.1
引脚说明及框图
每个PORTF引脚都与其他功能复用。这里将简要地描述
这些引脚和与它们复用的功能。 欲知有关各个功能的具
体信息,请参阅此数据手册中的相应章节。
3.8.1.1
RF0/SEG32
图 3-29 是该引脚的框图。 RF0 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.2
RF1/SEG33
3.8.1.7
RF6/SEG30
图 3-29 是该引脚的框图。 RF6 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.8
RF7/SEG31
图 3-29 是该引脚的框图。 RF7 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-29 是该引脚的框图。 RF1 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.3
RF2/SEG34
图 3-29 是该引脚的框图。 RF2 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.4
RF3/SEG35
图 3-29 是该引脚的框图。 RF3 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.5
RF4/SEG28
图 3-29 是该引脚的框图。 RF4 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.8.1.6
RF5/SEG29
图 3-29 是该引脚的框图。 RF5 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
DS41250F_CN 第 82 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 3-29:
RF<7:0> 的框图
VDD
数据总线
D
写 PORTF
Q
CK
I/O 引脚
Q
VSS
数据锁存器
写 TRISF
D
Q
CK
Q
TRIS 锁存器
读 TRISF
SE<35:28> 和 LCDEN
施密特
触发器
读 PORTF
SE<35:28> 和 LCDEN
SEG<35:28>
表 3-6:
名称
LCDCON
与 PORTF 相关的寄存器汇总 (1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
(1)
SE31
SE30
SE29
SE28
SE27
SE26
SE25
SE24
0000 0000
uuuu uuuu
LCDSE4(1)
SE39
SE38
SE37
SE36
SE35
SE34
SE33
SE32
0000 0000
uuuu uuuu
PORTF(1)
RF7
RF6
RF5
RF4
RF3
RF2
RF1
RF0
xxxx xxxx
uuuu uuuu
TRISF(1)
TRISF7
TRISF6
TRISF5
TRISF4
TRISF3
TRISF2
TRISF1
TRISF0
1111 1111
1111 1111
LCDSE3
图注:
x = 未知, u = 不变, – = 未实现单元 (读为 0)。 PORTF 不使用阴影单元。
注
1: 仅适用于 PIC16F946 器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 83 页
PIC16F913/914/916/917/946
3.9
例 3-7:
PORTG 和 TRISG 寄存器
PORTG 是一个带有施密特触发器输入缓冲器的 8 位端
口。RG<5:0> 可以被分别配置为输入或输出,具体取决
于端口方向的状态。 端口位也和 LCD 段功能复用。 仅
PIC16F946 器件可使用 PORTG。
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
初始化 PORTG
PORTG
PORTG
TRISG
3Fh
TRISG
;
;Init PORTG
;
;Set RG<5:0> as inputs
;
PORTG:PORTG 寄存器 (1)
寄存器 3-16:
U-0
U-0
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
—
—
RG5
RG4
RG3
RG2
RG1
RG0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
RG<5:0>:PORTG I/O 引脚位
1 = 端口引脚电平 >VIH 最小值
0 = 端口引脚电平 <VIL 最大值
x = 未知
1: 仅适用于 PIC16F946 器件。
注
TRISG:PORTG 三态寄存器 (1)
寄存器 3-17:
U-0
U-0
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
—
—
TRISG5
TRISG4
TRISG3
TRISG2
TRISG1
TRISG0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
TRISF<5:0>:PORTG 三态控制位
1 = PORTG 引脚被配置为输入 (三态)
0 = PORTG 引脚被配置为输出
注
x = 未知
1: 仅适用于 PIC16F946 器件。
DS41250F_CN 第 84 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
3.9.1
3.9.1.4
引脚说明及框图
每个 PORTG 引脚都与其他功能复用。这里将简要地描
述这些引脚和与它们复用的功能。 欲知有关各个功能的
具体信息,请参阅此数据手册中的相应章节。
3.9.1.1
RG0/SEG36
图 3-30 是该引脚的框图。 RG0 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.9.1.2
图 3-30 是该引脚的框图。 RG3 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.9.1.5
RG4/SEG40
图 3-30 是该引脚的框图。 RG4 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
RG1/SEG37
图 3-30 是该引脚的框图。 RG1 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
3.9.1.3
RG3/SEG39
3.9.1.6
RG5/SEG41
图 3-30 是该引脚的框图。 RG5 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
RG2/SEG38
图 3-30 是该引脚的框图。 RG2 引脚可以被配置为以下
功能之一:
• 通用 I/O
• LCD 的模拟输出
图 3-30:
RG<5:0> 的框图
VDD
数据总线
写 PORTG
D
Q
CK
I/O 引脚
Q
VSS
数据锁存器
写 TRISG
D
Q
CK
Q
TRIS 锁存器
读 TRISG
SE<41:36> 和 LCDEN
施密特
触发器
读 PORTG
SEG<41:36>
 2007 Microchip Technology Inc.
SE<41:36> 和 LCDEN
DS41250F_CN 第 85 页
PIC16F913/914/916/917/946
与 PORTG 相关的寄存器汇总 (1)
表 3-7:
名称
LCDCON
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE4(1)
SE39
SE38
SE37
SE36
SE35
SE34
SE33
SE32
0000 0000
uuuu uuuu
LCDSE5(1)
—
—
—
—
—
—
SE41
SE40
---- --00
---- --uu
PORTG(1)
—
—
RG5
RG4
RG3
RG2
RG1
RG0
--xx xxxx
--uu uuuu
TRISG(1)
—
—
TRISG5
TRISG4
TRISG3
TRISG2
TRISG1
TRISG0
--11 1111
--11 1111
图注:
x = 未知, u = 不变, – = 未实现单元 (读为 0)。 PORTG 不使用阴影单元。
注
1: 仅适用于 PIC16F946 器件。
DS41250F_CN 第 86 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.0
4.1
振荡器模块 (带故障保护时钟监
视器)
振荡器模块可配置为以下八种时钟模式之一。
概述
2.
3.
4.
5.
1.
该振荡器模块具有很多种时钟源和选择功能,从而使其应
用非常广泛,并可最大限度地提高性能和降低功耗。图4-1
所示为振荡器模块的框图。
时钟源可以配置为由外部振荡器、石英晶体谐振器、陶
瓷谐振器以及阻容(RC)电路提供。此外,系统时钟源
可以配置为由两个内部振荡器之一提供,并可以通过软
件选择速度。其他的时钟功能包括:
6.
7.
• 通过软件可以选择外部或内部系统时钟源。
• 双速时钟启动模式,使外部振荡器起振到代码执行
之间的延时达到最小。
• 故障保护时钟监视器 (Fail-Safe Clock Monitor,
FSCM)旨在检测外部时钟源的故障 (LP、 XT、
HS、 EC 或 RC 模式),并自动切换到内部振荡
器。
图 4-1:
8.
EC — OSC2/CLKOUT 为 I/O 引脚的外部时钟模
式。
LP — 32 kHz 低功耗晶振模式。
XT — 中等增益晶体或陶瓷谐振器振荡模式。
HS — 高增益晶体或陶瓷谐振器模式。
RC — 外 部 阻 容 (RC)振 荡 模 式,且
OSC2/CLKOUT 为 FOSC/4 输出。
RCIO — OSC2/CLKOUT 为 I/O 引脚的外部阻容
(RC)振荡模式。
INTOSC — OSC2作为FOSC/4输出且OSC1/CLKIN
作为 I/O 引脚的内部振荡模式。
INTOSCIO — OSC1/CLKIN 和 OSC2/CLKOUT
作为 I/O 引脚的内部振荡模式。
时 钟 源 模 式 由 配 置 字 寄 存 器 (CONFIG)中 的
FOSC<2:0> 位配置。 内部时钟可以由两个内部振荡器
产生。 HFINTOSC
是高 频、已校 准的 振荡 器。
LFINTOSC 是低频、未校准的振荡器。
PIC® MCU 时钟源简化框图
FOSC<2:0>
(配置字寄存器)
SCS<0>
(OSCCON 寄存器)
外部振荡器
OSC2
Sleep
MUX
LP,XT,HS,RC,RCIO,EC
OSC1
IRCF<2:0>
(OSCCON 寄存器)
8 MHz
内部振荡器
4 MHz
系统时钟
(CPU 和外设)
INTOSC
111
110
1 MHz
500 kHz
250 kHz
125 kHz
LFINTOSC
31 kHz
31 kHz
101
100
011
MUX
HFINTOSC
8 MHz
后分频器
2 MHz
010
001
000
上电延时定时器(PWRT)
看门狗定时器(WDT)
故障保护时钟监视器(FSCM)
 2007 Microchip Technology Inc.
DS41250F_CN 第 87 页
PIC16F913/914/916/917/946
4.2
振荡器控制
振荡器控制 (OSCCON)寄存器 (图 4-1)控制系统时
钟和频率选择。OSCCON 寄存器包含以下位:
• 频率选择位 (IRCF)
• 频率状态位 (HTS 和 LTS)
• 系统时钟控制位 (OSTS 和 SCS)
寄存器 4-1:
U-0
—
OSCCON:振荡器控制寄存器
R/W-1
R/W-1
IRCF2
IRCF1
R/W-0
R-1
(1)
IRCF0
OSTS
R-0
R-0
R/W-0
HTS
LTS
SCS
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位 , 读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7
未实现:读为 0
bit 6-4
IRCF<2:0>:内部振荡器频率选择位
111 = 8 MHz
110 = 4 MHz (默认)
101 = 2 MHz
100 = 1 MHz
011 = 500 kHz
010 = 250 kHz
001 = 125 kHz
000 = 31 kHz (LFINTOSC)
bit 3
OSTS:振荡器起振延时状态位 (1)
1 = 器件使用由配置字寄存器中的 FOSC<2:0> 定义的外部时钟源
0 = 器件使用内部振荡器 (HFINTOSC 或 LFINTOSC)
bit 2
HTS:HFINTOSC 状态位 (高频 — 8 MHz 到 125 kHz)
1 = HFINTOSC 稳定
0 = HFINTOSC 不稳定
bit 1
LTS:LFINTOSC 稳定位 (低频 — 31 kHz)
1 = LFINTOSC 稳定
0 = LFINTOSC 不稳定
bit 0
SCS:系统时钟选择位
1 = 内部振荡器用作系统时钟
0 = 时钟源由配置字寄存器中的 FOSC<2:0> 定义
注
x = 未知
1: 双速启动时如果选择了 LP、 XT 或 HS 振荡器模式或使能了故障保护模式会使该位复位为 0。
DS41250F_CN 第 88 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.3
4.4
外部时钟模式
时钟源模式可以分为外部或内部两类。
4.4.1
振荡器起振定时器 (OST)
• 外部时钟模式依赖外部电路作为时钟源。示例有:
振荡器模块 (EC 模式)、石英晶体谐振器或陶瓷
谐振器 (LP、 XT 和 HS 模式)以及阻容 (RC)
模式电路。
• 振荡器模块内部包含了内部时钟源。该振荡器模块
有两个内部振荡器:8 MHz 高频内部振荡器
(High-Frequency Internal Oscillator , HFINTOSC)
和 31 kHz 低频内部振荡器 (Low-Frequency Internal
Oscillator, LFINTOSC)。
如果振荡器模块配置为 LP、 XT 或 HS 模式,当发生上
电复位 (POR)后且上电延时定时器 (PWRT)延时
已结束 (如果配置了此延时)时或从休眠状态唤醒时,
振荡器起振定时器 (Oscillator Start-up Timer, OST)
将对 OSC1 引脚上的 1024 次振荡进行计数 。在这段时
间内,程序计数器不进行递增计数,并且程序执行被暂
停。 OST 确保使用石英晶体谐振器或陶瓷谐振器的振
荡电路已起振并且为振荡器模块提供稳定的系统时钟。
在不同时钟源之间切换时需要一个延时以使新的时钟稳
定下来。表 4-1 中显示了这些振荡器延时。
时钟源模式
可以通过 OSCCON 寄存器中的系统时钟选择(System
Clock Select, SCS)位选择外部或内部时钟源。 更多
详细信息,请参见第 4.6 节 “时钟切换”。
表 4-1:
为了让外部振荡器起振和代码执行之间的延时缩到最
短,可以选择双速时钟启动模式(见第 4.7 节“双速时
钟启动模式”)。
振荡器延时示例
切换自
切换到
频率
休眠 / 上电复位
LFINTOSC
HFINTOSC
休眠 / 上电复位
EC 或 RC
31 kHz
125 kHz 至 8 MHz
DC – 20 MHz
LFINTOSC (31 kHz)
EC 或 RC
DC – 20 MHz
休眠 / 上电复位
LP、 XT 或 HS
HFINTOSC
32 kHz 至 20 MHz
1024 个时钟周期 (OST)
125 kHz 至 8 MHz
1 µs (近似值)
LFINTOSC (31 kHz)
4.4.2
EC 模式
外部时钟 (External Clock, EC)模式将外部产生的逻
辑电平作为系统时钟源。 当在此模式下工作时,外部时
钟源连接到 OSC1 输入引脚,而 OSC2 引脚用作通用
I/O 引脚。图 4-2 显示了 EC 模式的引脚连接。
当选择 EC 模式时,振荡器起振定时器 (OST)被禁
止。 因此,在上电复位 (POR)后或从休眠状态唤醒
后,不会有延时操作。由于 PIC® MCU 的设计是全静态
的,停止外部时钟输入可以在停止器件的同时使所有的
数据保持原样。外部时钟重新起振之后,器件将恢复工
作就像没有时间流逝一样。
 2007 Microchip Technology Inc.
振荡器延时
振荡器预热延时 (TWARM)
2 个指令周期
各 1 个周期
图 4-2:
外部时钟 (EC)模式的工
作原理
OSC1/CLKIN
来自外部系
统的时钟
PIC® MCU
I/O
注
OSC2/CLKOUT(1)
1: 第 1.0 节 “器件概述”中列出了备用引脚功
能。
DS41250F_CN 第 89 页
PIC16F913/914/916/917/946
4.4.3
LP、 XT 和 HS 模式
注
LP、 XT 和 HS 模式支持使用石英晶体谐振器或陶瓷谐
振器与 OSC1 和 OSC2 引脚连接(图 4-3)。该模式选
择内部反相放大器的低、中等或高增益设置以支持多种
谐振器类型和速度。
1: 石英晶振的特性取决于类型、封装以及制
造商。 用户应该查阅制造商的数据手册以
获知规范和推荐的应用场合。
2: 请总是在应用期望的 VDD 和温度范围下验
证振荡器的性能。
LP 振荡模式选择内部反相放大器的最低增益设置。 LP
模式的电流消耗是三种模式中最低的。 此模式只适合于
驱动 32.768 kHz 的调节音叉型晶振 (表面晶体)。
3: 要 获 取 振 荡 器 设 计 帮 助,请 参 见 以 下
Microchip 应用笔记:
• AN826“ Crystal Oscillator Basics and
Crystal Selection for rfPIC® and PIC®
Devices”(DS00826)
• AN849 “Basic PIC® Oscillator
Design”(DS00849)
• AN943 “Practical PIC® Oscillator
Analysis and Design”(DS00943)
• AN949 “Making Your Oscillator
Work”(DS00949)
XT 振荡模式选择内部反相放大器的中等增益设置。 XT
模式的电流消耗在三种模式中处于中等水平。此模式最
适合于驱动具有中等驱动电平规范的谐振器。
HS 振荡模式选择内部反相放大器的最高增益设置。 HS
模式的电流消耗是三种模式中最高的。 此模式最适合于
要求高电平驱动设置的谐振器。
图 4-3 和图 4-4 分别显示了典型的石英晶体谐振器和陶
瓷谐振器电路。
图 4-4:
陶瓷谐振器的工作原理
(XT 或 HS 模式)
PIC® MCU
图 4-3:
OSC1/CLKIN
石英晶振工作原理 (LP、
XT 或 HS 模式)
C1
PIC® MCU
到内部
逻辑电路
RP(3)
RF(2)
Sleep
OSC1/CLKIN
C1
到内部
逻辑电路
石英
晶振
C2
注
RS(1)
RF(2)
C2 陶瓷
谐振器
RS(1)
OSC2/CLKOUT
Sleep
注
OSC2/CLKOUT
1: 用低电平驱动的石英晶振可能需要一个串联电
阻 (RS)。
1:用低电平驱动的陶瓷谐振器可能需要一个串联
电阻 (RS)。
2:RF 的值随选定的振荡模式而变化 (通常介于
2 MΩ 和 10 MΩ 之间)。
3:要让陶瓷谐振器正常工作可能还需要一个并联
反馈电阻 (RP)。
2: RF 的值随选定的振荡模式而变化 (通常介于
2 MΩ 和 10 MΩ 之间)。
DS41250F_CN 第 90 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.4.4
4.5
外部 RC 模式
外部阻容 (RC)模式支持使用外部 RC 电路。 当对时
钟精度要求不高时,外部 RC 模式可以让设计人员在选
择频率上有最大的灵活性,同时将成本保持在最低。有
两种模式:RC 和 RCIO。
在 RC 模式下,RC 电路与 OSC1 引脚相连。OSC2/CLKOUT
引脚输出 RC 振荡器频率的四分频。此信号可以为外部电
路、同步、校准、测试或其他应用要求提供时钟源。图 4-5
显示了外部 RC 模式的连接。
图 4-5:
VDD
内部
时钟
CEXT
VSS
建议值:
注
1.
2.
HFINTOSC (高频内部振荡器)已经过厂家校
准,工作频率为 8 MHz。 用户可以通过软件使用
OSCTUNE 寄存器 (寄存器 4-2)对 HFINTOSC
的频率进行调节。
LFINTOSC(低频内部振荡器)未经过厂家校准,
工作频率大约为 31 kHz。
可以通过 OSCCON 寄存器的系统时钟选择 (SCS)位
选择外部或内部时钟源作为系统时钟。 更多详细信息,
请参见第 4.6 节 “时钟切换”。
PIC® MCU
REXT
FOSC/4 或
I/O(2)
该振荡器模块有两个独立的内部振荡器,可被配置或选
定为系统时钟源。
可以通过软件使用 OSCCON 寄存器的内部振荡器频率
选择位 IRCF<2:0> 选择系统时钟速度。
外部 RC 模式
OSC1/CLKIN
内部时钟模式
OSC2/CLKOUT(1)
10 kΩ ≤ REXT ≤ 100 kΩ(<3V)
3 kΩ ≤ REXT ≤ 100 kΩ (3-5V)
CEXT > 20 pF (2-5V)
1: 第 1.0 节 “器件概述”中列出了备用引脚功
能。
2: 引脚输出取决于 RC 或 RCIO 时钟模式。
在 RCIO 模式下, RC 电路与 OSC1 引脚相连。 OSC2
引脚变成了一个附加的通用 I/O 引脚。
RC 振荡器的频率是供电电压、电阻 (REXT) 、电容
(CEXT)值以及工作温度的函数。其他影响振荡器频率
的因素有:
• 门限电压差异
• 元件容差
• 电容封装差异
用户还需要考虑由于所使用的外部 RC 元件的容差所引
起的频率差异。
4.5.1
INTOSC 和 INTOSCIO 模式
当使用配置字寄存器 (CONFIG)中的振荡器选择位
(FOSC<2:0>)对器 件进 行编 程时, INTOSC
和
INTOSCIO 模式将内部振荡器配置为系统时钟源。更多
详细信息,请参见第 16.0 节 “CPU 的特性”。
在 INTOSC 模式下,OSC1/CLKIN 引脚可用作通用 I/O
引脚。OSC2/CLKOUT 引脚输出选定的内部振荡器频率
的四分频。 CLKOUT 信号可以为外部电路、同步、校
准、测试或其他应用需求提供时钟源。
在 INTOSCIO 模式下,OSC1/CLKIN 和 OSC2/CLKOUT
引脚可用作通用 I/O 引脚。
4.5.2
HFINTOSC
高频内部振荡器(HFINTOSC)是经过厂家校准、工作
频率 为 8 MHz 的内 部时 钟源。可 以通 过软 件使 用
OSCTUNE 寄存器 (寄存器 4-2)对 HFINTOSC 的频
率进行调节。
HFINTOSC 的输出连接到后分频器和多路开关 (见图
4-1)。可以通过软件使用OSCCON寄存器的IRCF<2:0>
位在七种频率中选择一种频率。 更多详细信息,请参见
第 4.5.4 节 “频率选择位 (IRCF)”。
通过选择 8 MHz 和 125 kHz 之间的任何频率 (通过将
OSCCON 寄存器的 IRCF<2:0> 位设置为≠ 000)作为
系统时钟源,然后将 OSCCON 寄存器中的系统时钟源
选择位 SCS 置 1 或使能双速启动 (通过将配置字寄存
器(CONFIG)中的 IESO 位置 1)来使能 HFINTOSC。
OSCCON 寄存器的 HF 内部振荡器 (HTS)位表示
HFINTOSC 是否稳定。
 2007 Microchip Technology Inc.
DS41250F_CN 第 91 页
PIC16F913/914/916/917/946
4.5.2.1
OSCTUNE 寄存器
HFINTOSC 已经过厂家的校准,但是可以用软件通过写
OSCTUNE 寄存器 (寄存器 4-2)对其进行调节。
OSCTUNE 寄存器的默认值是 0。该值是一个 5 位的二
进制补码。
寄存器 4-2:
当修改 OSCTUNE 寄存器时, HFINTOSC 将开始改变
到新的频率。 在此变动期间,代码会继续执行。 不会有
任何迹象表明发生了时钟变动。
OSCTUNE 不影响 LFINTOSC 的频率。依赖 LFINTOSC
时 钟 源 频 率 工 作 的 部 件,诸 如 上 电 延 时 定 时 器
(PWRT)、看门狗定时器(WDT)、故障保护时钟监视
器 (FSCM)以及外设,它们的工作不受频率更改的影
响。
OSCTUNE:振荡器调节寄存器
U-0
U-0
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
—
—
—
TUN4
TUN3
TUN2
TUN1
TUN0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位 , 读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7-5
未实现:读为 0
bit 4-0
TUN<4:0>:频率调节位
01111 = 最高频率
01110 =
•
•
•
00001 =
00000 = 振荡器模块以校准后的频率运行。
11111 =
•
•
•
10000 = 最低频率
DS41250F_CN 第 92 页
x = 未知
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.5.3
LFINTOSC
低频内部振荡器 (LFINTOSC)是未经过校准、工作频
率大约为 31 kHz 的内部时钟源。
LFINTOSC的输出连接到后分频器和多路开关(见图4-1)。
可以通过软件使用 OSCCON 寄存器中的 IRCF<2:0> 位选
择 31 kHz。更多详细信息,请参见第 4.5.4 节 “频率选择
位(IRCF)”。LFINTOSC 输出的频率也是上电延时定时器
(PWRT)、看门狗定时器(WDT)和故障保护时钟监视器
(FSCM)的时钟频率。
通过选择 31 kHz(OSCCON 寄存器中的 IRCF<2:0> 位
= 000)作为系统时钟源 (OSCCON 寄存器中的 SCS
位 = 1)或者使能以下任何一项可以使能 LFINTOSC:
• 双速启动 (配置字寄存器中的 IESO 位 = 1 且
OSCCON 寄存器中的 IRCF<2:0> 位 = 000)
• 上电延时定时器 (PWRT)
• 看门狗定时器 (WDT)
• 故障保护时钟监视器 (FSCM)
OSCCON 寄存器中的 LF 内部振荡器 (LTS)位表示
LFINTOSC 是否稳定。
4.5.4
频率选择位 (IRCF)
8 MHz HFINTOSC 的输出和 31 kHz LFINTOSC 的输出
连接到后分频器和多路开关(见图 4-1)。 OSCCON 寄
存器中的内部振荡器频率选择位 IRCF<2:0> 选择内部振
荡器的输出频率。通过软件可以选择八种频率中的一
种:
4.5.5
HF 和 LF INTOSC 时钟切换时序
当在 LFINTOSC 和 HFINTOSC 之间切换时,新的振荡
器可能已被关闭以节省功耗 (见图 4-6) 。 此时,在
OSCCON 寄存器中的 IRCF<2:0> 位被修改后到频率选
择生效之前将有一段延时。 OSCCON 寄存器的 LTS 和
HTS 位将反映 LFINTOSC 和 HFINTOSC 振荡器的当前
状态。频率选择的时序如下:
1.
2.
3.
4.
5.
6.
修改 OSCCON 寄存器中的 IRCF<2:0> 位。
如果新的时钟已关闭,将开始一段时钟起振延
时。
时钟切换电路等待当前时钟的下降沿。
CLKOUT 保持低电平,时钟切换电路等待新的时
钟的上升沿。
CLKOUT 现在与新的时钟连接。 按照要求更新
OSCCON 寄存器中的 LTS 和 HTS 位。
时钟切换完成。
详情请见图 4-1。
如果选定的内部振荡器频率介于 125 kHz 和 8 MHz 之
间,在选定新的频率之前将没有起振延时。这是因为旧
的和新的频率都是由 HFINTOSC 通过后分频器和多路
开关后得到的。
第 19.0 节 “电气规范”中的振荡器参数给出了起振延时
规范。
• 8 MHz
•
•
•
•
•
•
4 MHz (复位后的默认值)
2 MHz
1 MHz
500 kHz
250 kHz
125 kHz
• 31 kHz (LFINTOSC)
注:
发生任何复位后, OSCCON 寄存器中的
IRCF<2:0> 位被设置为 110 且频率选择被
设置为 4 MHz。 用户可以修改 IRCF 位以
选择不同的频率。
 2007 Microchip Technology Inc.
DS41250F_CN 第 93 页
PIC16F913/914/916/917/946
图 4-6:
内部振荡器切换时序
HFINTOSC
LFINTOSC(禁止 FSCM 和 WDT)
HFINTOSC
起振时间
2 周期同步
运行
2 周期同步
运行
LFINTOSC
≠0
IRCF<2:0>
=0
系统时钟
HFINTOSC
LFINTOSC(使能 FSCM 或 WDT)
HFINTOSC
LFINTOSC
≠0
IRCF<2:0>
=0
系统时钟
LFINTOSC
HFINTOSC
除非使能 WDT 或 FSCM,否则 LFINTOSC 振荡器关闭
LFINTOSC
起振时间
2 周期同步
运行
HFINTOSC
IRCF<2:0>
=0
≠0
系统时钟
DS41250F_CN 第 94 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.6
时钟切换
通过软件使用OSCCON寄存器的系统时钟选择(SCS)
位可以在外部和内部时钟源之间切换系统时钟源。
4.6.1
系统时钟选择 (SCS)位
OSCCON 寄存器的系统时钟选择 (SCS)位选择供
CPU 和外设使用的系统时钟源。
• 当 OSCCON 寄存器中的 SCS 位 = 0 时,系统时
钟源由配置字寄存器 (CONFIG)中的
FOSC<2:0> 位的配置决定。
• 当 OSCCON 寄存器中的 SCS 位 = 1 时,系统时
钟源由通过 OSCCON 寄存器中的 IRCF<2:0> 位
选定的内部振荡器频率决定。复位后, OSCCON
寄存器中的 SCS 位总是清零。
注:
4.6.2
可能由双速启动或故障保护时钟监视器引
起的任何自动时钟切换将不会更新
OSCCON 寄存器中的 SCS 位。 用户可以
监视 OSCCON 寄存器中的 OSTS 位来确定
当前的系统时钟源。
振荡器起振延时状态 (OSTS)位
OSCCON 寄存器中的振荡器起振延时状态(OSTS)位
表明系统时钟是来自于由配置字寄存器 (CONFIG)中
的 FOSC<2:0> 位定义的外部时钟源还是来自于内部时
钟源。特别地,当处于 LP、 XT 或 HS 模式时, OSTS
表示振荡器起振定时器 (OST)已经超时溢出。
4.7
双速时钟启动模式
双速时钟启动模式通过使外部振荡器起振到代码执行之
间的延时达到最小而进一步降低功耗。在大量利用休眠
模式的应用中,双速启动将使唤醒所花费的时间中不包
含振荡器的起振时间,并能降低器件的总功耗。
此模式允许应用从休眠状态唤醒,使用 INTOSC 作为时
钟源来执行一些指令,然后返回休眠状态,无需等待主
振荡器稳定后让其充当执行指令的时钟源。
注:
当振荡器模块被配置为 LP、 XT 或 HS 模式时,振荡器
起振定时器 (OST)被使能 (见第 4.4.1 节 “振荡器起
振定时器 (OST)”)。 OST 定时器将暂停程序执行直
到计数完 1024 次振荡为止。 双速启动模式通过在 OST
计数时使用内部振荡器作为时钟源,最大限度地缩短代
码执行的延时。当 OST 计数达到 1024 且 OSCCON 寄
存器中的 OSTS 位置 1 时,程序执行将切换到由外部振
荡器充当时钟源。
4.7.1
双速启动模式的配置
通过下列设置配置双速启动模式:
• IESO (配置字寄存器中) = 1 ;内部 / 外部切换
位 (使能双速启动模式)。
• SCS (OSCCON 寄存器中) = 0。
• 将配置字寄存器 (CONFIG)中的 FOSC<2:0> 位
配置为 LP、 XT 或 HS 模式。
发生下列事件后进入双速启动模式:
• 上电复位 (POR)后,上电延时定时器 (PWRT)
延时结束 (如果使能)后,或者
• 从休眠状态唤醒后。
如果外部时钟振荡器被配置为除 LP、 XT 或 HS 以外的
任何其他模式,那么双速启动将被禁止。 这是因为在上
电复位后或从休眠状态退出后,外部时钟振荡器将不需
要任何稳定时间。
4.7.2
1.
2.
3.
4.
5.
6.
7.
双速启动时序
发生上电复位或从休眠状态唤醒。
以内部振荡器作为时钟源 (以 OSCCON 寄存器
中的 IRCF<2:0> 位设置的频率)开始执行指令。
使能 OST 计数 1024 个时钟周期。
OST 超时,等待内部振荡器的下降沿。
OSTS 置 1。
系统时钟保持低电平直到新的时钟的下一个下降
沿 (LP、 XT 或 HS 模式)。
系统时钟切换到外部时钟源。
执行 SLEEP 指令将中止振荡器起振延时并
将使 OSCCON 寄存器中的 OSTS 位保持清
零。
 2007 Microchip Technology Inc.
DS41250F_CN 第 95 页
PIC16F913/914/916/917/946
4.7.3
检查双速时钟状态
检查 OSCCON 寄存器中的 OSTS 位的状态可确定单片
机 是 在 使 用 由 配 置 字 寄 存 器 (CONFIG)中 的
FOSC<2:0> 位定义的外部时钟源还是内部振荡器。
图 4-7:
双速启动
HFINTOSC
TOST
OSC1
0
1
1022 1023
OSC2
程序计数器
PC - N
PC
PC + 1
系统时钟
DS41250F_CN 第 96 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
4.8
4.8.3
故障保护时钟监视器
故障保护时钟监视器 (FSCM)旨在使器件能在外部振
荡器发生故障时继续运行。FSCM 可以检测当振荡器起
振定时器(OST)延时结束后的任何时刻发生的振荡器
故障。 通过将配置字寄存器 (CONFIG)中的 FCMEN
位置 1 使能 FSCM 功能。它适用于所有外部振荡器模式
(LP、 XT、 HS、 EC、 RC 和 RCIO 模式)。
图 4-8:
FSCM 框图
外部
时钟
LFINTOSC
振荡器
÷ 64
31 kHz
( 约 32 µs)
488 HZ
(约 2 ms)
采样时钟
4.8.1
在复位后、执行了 SLEEP 指令或者修改了 OSCCON 寄
存器中的 SCS 位后将清除故障保护条件。 如果修改
SCS 位, OST 将重新起振。OST 运行时,器件将继续
使用在 OSCCON 中选择的 INTOSC 作为系统时钟。
OST 超时后,故障保护条件会被清除,器件将使用外部
时钟源作为系统时钟。必须先清除故障保护条件才能清
零 OSFIF 标志位。
4.8.4
时钟监视
锁存器
S
Q
R
Q
清除故障保护条件
复位或从休眠状态唤醒
FSCM 设计为检测在振荡器起振定时器(OST)延时结
束后发生的振荡器故障。从休眠状态唤醒和任何类型的
复位之后使用 OST。OST 不与 EC 或 RC 时钟模式一起
使用,因此 FSCM 将在复位或唤醒后立即生效。 使能
FSCM 也将使能双速启动。 因此,在 OST 运行时,器
件将始终执行代码。
注:
检测到
时钟故障
由于振荡器的起振时间范围很广,故障保
护电路在振荡器起振期间 (即,从复位或
休眠状态退出后)不工作。 在一段适当的
时间后,用户应该检查 OSCCON 寄存器的
OSTS 位以验证振荡器起振和系统时钟切
换是否已经成功完成。
故障保护检测
FSCM 模块通过将外部振荡器和 FSCM 采样时钟进行比
较检测有故障的振荡器。通过对 LFINTOSC 时钟进行
64 分频得到 FSCM 采样时钟。参见图 4-8。故障检测电
路内部有一个锁存器。在外部时钟的每个下降沿上将锁
存器置 1。在采样时钟的每个上升沿将锁存器清零。如
果采样时钟的一个完整半周期在主时钟变为低电平之前
结束,则将检测到故障。
4.8.2
故障保护工作原理
当外部时钟发生故障时,FSCM 将器件时钟切换到内部
时钟源,并将 PIR2 寄存器中的 OSFIF 标志位置 1,且
如果 PIE2 寄存器的 OSFIE 位也置 1, 将产生振荡器故
障中断。器件固件可采取措施以减轻可能由故障时钟造
成的问题。系统时钟将继续采用内部时钟源,直到器件
固件成功地重启外部振荡器并使时钟重新切换到外部振
荡器为止。
FSCM 选择的内 部时钟 源由 OSCCON 寄 存器中 的
IRCF<2:0> 位决定,从而允许在故障发生之前配置内部
振荡器。
 2007 Microchip Technology Inc.
DS41250F_CN 第 97 页
PIC16F913/914/916/917/946
图 4-9:
FSCM 时序图
采样时钟
振荡器
故障
系统
时钟
输出
时钟监视器输出
(Q)
检测到
故障
OSCFIF
检测
注:
表 4-2:
名称
检测
检测
通常,系统时钟的频率比采样时钟高很多。 本例中选择的相对频率是为了明了起见。
与时钟源相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值 (1)
CONFIG(2)
CPD
CP
MCLRE
PWRTE
WDTE
FOSC2
FOSC1
FOSC0
—
—
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
OSCCON
—
IRCF2
IRCF1
IRCF0
OSTS
HTS
LTS
SCS
-110 x000
-110 x000
OSCTUNE
—
—
—
TUN4
TUN3
TUN2
TUN1
TUN0
---0 0000
---u uuuu
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE
0000 -0-0
0000 -0-0
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF
0000 -0-0
0000 -0-0
T1GINV
TMR1GE
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
0000 0000
0000 0000
T1CON
图注:
注
1:
2:
TMR1CS TMR1ON
x = 未知, u = 不变,- = 未实现单元 (读为 0)。振荡器不使用阴影单元。
其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
有关寄存器所有位的操作请参见配置字寄存器 (CONFIG)。
DS41250F_CN 第 98 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
5.0
TIMER0 模块
5.1
用作定时器时,Timer0 模块既可用作 8 位定时器也可用
作 8 位计数器。
Timer0 模块是具有以下特点的 8 位定时器 / 计数器:
•
•
•
•
•
Timer0 工作原理
8 位定时器 / 计数器寄存器 (TMR0)
8 位预分频器 (与看门狗定时器共享)
可编程的内部或外部时钟源
可编程的外部时钟边沿选择
溢出中断
5.1.1
8 位定时器模式
用作定时器时,Timer0 模块在每个指令周期均会递增 1
(不带预分频器)。 通过将 OPTION 寄存器中的 T0CS
位清零可选择定时器模式。
图 5-1 是 Timer0 模块的框图。
如果对 TMR0 执行写操作,则在接下来的两个指令周
期,它都不会递增 1。
注:
5.1.2
可调整写入 TMR0 寄存器的值,使得在写
入 TMR0 时计入两个指令周期的延时。
8 位计数器模式
用作计数器时,Timer0 模块将在 T0CKI 引脚信号的每个
上升沿或下降沿进行递增计数。具体是上升沿还是下降
沿由 OPTION 寄存器的 T0SE 位决定。通过将 T0CS 位
置 1 可选择计数器模式。
图 5-1:
TIMER0/WDT 预分频器框图
FOSC/4
数据总线
0
8
1
同步
2 个 Tcy
1
T0CKI
引脚
TMR0
0
T0SE
0
T0CS
8位
预分频器
溢出时将
标志位 T0IF 置 1
PSA
1
8
PSA
WDTE
SWDTEN
PS<2:0>
16 位
预分频器
31 kHz
INTOSC
1
WDT
超时
0
16
看门狗
定时器
PSA
WDTPS<3:0>
注
1: T0SE、 T0CS、 PSA 和 PS<2:0> 位在 OPTION 寄存器中。
2: SWDTEN 和 WDTPS<3:0> 位在 WDTCON 寄存器中。
3: WDTE 位在配置字寄存器中。
 2007 Microchip Technology Inc.
DS41250F_CN 第 99 页
PIC16F913/914/916/917/946
5.1.3
软件可编程预分频器
Timer0 和看门狗定时器 (WDT)共用一个软件可编程
预分频器,但不能同时使用。通过 OPTION 寄存器中的
PSA 控制位控制预分频器的分配。清零 PSA 位可将预
分频器分配给 Timer0。
Timer0 模块具有 8 种预分频比选择,范围为 1:2 至
1:256。可通过 OPTION 寄存器中的 PS<2:0> 位选择预
分频比。要使 Timer0 模块具有 1:1 的预分频比,必须将
预分频器分配给 WDT 模块。
该预分频器不可读写。当将其分配给 Timer0 模块时,所
有对 TMR0 寄存器执行写操作的指令都将清零预分频
器。
当将其分配给 WDT 时,执行 CLRWDT 指令将同时清零
预分频器和 WDT。
5.1.3.1
在 Timer0 模块和 WDT 模块之间切
换预分频器
将预分频器分配给 Timer0 或 WDT 后,在切换预分频比
时可能会产生意外的器件复位。 当将预分频器从分配给
Timer0 改为分配给 WDT 模块时,必须执行例 5-1 所示
的指令序列。
例 5-1:
更改预分频器
(TIMER0 → WDT)
BANKSEL
CLRWDT
CLRF
TMR0
BANKSEL
BSF
CLRWDT
OPTION_REG
OPTION_REG,PSA
MOVLW
ANDWF
IORLW
MOVWF
b’11111000’
OPTION_REG,W
b’00000101’
OPTION_REG
TMR0
DS41250F_CN 第 100 页
;
;Clear WDT
;Clear TMR0 and
;prescaler
;
;Select WDT
;
;
;Mask prescaler
;bits
;Set WDT prescaler
;to 1:32
要将预分频器从分配给 WDT 改为分配给 Timer0 模块,
必须执行以下指令序列 (见例 5-2)。
例 5-2:
更改预分频器
(WDT → TIMER0)
CLRWDT
;Clear WDT and
;prescaler
BANKSEL OPTION_REG
;
MOVLW
b’11110000’ ;Mask TMR0 select and
ANDWF
OPTION_REG,W ;prescaler bits
IORLW
b’00000011’ ;Set prescale to 1:16
MOVWF
OPTION_REG
;
5.1.4
TIMER0 中断
当 TMR0 寄存器从 FFh 溢出至 00h 时,会产生 Timer0
中断。每次 TMR0 寄存器溢出时,不论是否允许 Timer0
中断,INTCON 寄存器中的 T0IF 中断标志位都会置 1。
必须用软件将 T0IF 位清零。 Timer0 中断允许位是
INTCON 寄存器中的 T0IE 位。
注:
5.1.5
由于在休眠状态下定时器是关闭的,所以
Timer0 中断无法唤醒处理器。
将 TIMER0 与外部时钟一起使用
当 Timer0 工作在计数器模式下时,在内部相位时钟的
Q2 和 Q4 周期对预分频器输出进行采样,可实现 T0CKI
输入与 Timer0 寄存器的同步。因此,外部时钟源的高、
低电平时间必须符合第 19.0 节 “电气规范”给出的时
序要求。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 5-1:
OPTION_REG:OPTION 寄存器
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
RBPU:PORTB 上拉使能位
1 = 禁止 PORTB 上拉
0 = 按各个端口锁存值使能 PORTB 上拉
bit 6
INTEDG:中断边沿选择位
1 = 在 INT 引脚的上升沿触发中断
0 = 在 INT 引脚的下降沿触发中断
bit 5
T0CS:TMR0 时钟源选择位
1 = 在 T0CKI 引脚信号的跳变沿
0 = 内部指令周期时钟 (FOSC/4)
bit 4
T0SE:TMR0 时钟源边沿选择位
1 = 在 T0CKI 引脚信号的下降沿进行递增计数
0 = 在 T0CKI 引脚信号的上升沿进行递增计数
bit 3
PSA:预分频器分配位
1 = 将预分频器分配给 WDT
0 = 将预分频器分配给 Timer0 模块
bit 2-0
PS<2:0>:预分频比选择位
位值
TMR0 分频比
WDT 分频比
000
001
010
011
100
101
110
111
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
1:1
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
x = 未知
1: 可使用专用 16 位 WDT 后分频器。更多信息,请参见第 16.4 节 “看门狗定时器 (WDT)”。
注
表 5-1:
与 TIMER0 相关的寄存器汇总
Bit 7
名称
TMR0
OPTION_REG
图注:
Bit 5
Timer0 模块寄存器
GIE
PEIE
T0IE
INTCON
TRISA
Bit 6
RBPU INTEDG
T0CS
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠 所有其他
压复位时的值 复位时的值
xxxx xxxx
uuuu uuuu
INTE
RBIE
T0IF
INTF
RBIF
0000 000x 0000 000x
T0SE
PSA
PS2
PS1
PS0
1111 1111 1111 1111
TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111
- = 未实现单元 (读为 0), u = 不变,x = 未知。Timer0 模块不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 101 页
PIC16F913/914/916/917/946
6.0
带门控的 TIMER1 模块
6.1
Timer1 工作原理
Timer1 模块是一个通过 TMR1H:TMR1L 寄存器对访问
的 16 位递增计数器。写入 TMR1H 或 TMR1L 可直接更
新该计数器。
Timer1 模块是具有以下特点的 16 位定时器 / 计数器:
• 16 位定时器/计数器寄存器对
(TMR1H:TMR1L)
• 可编程的内部或外部时钟源
• 3 位预分频器
• 可选 LP 振荡器
• 同步或异步操作
• 通过比较器或 T1G 引脚提供 Timer1 门控信号
(使能计数)
• 溢出中断
• 溢出时唤醒 (仅外部时钟异步模式)
• LCD 模块的时钟源
当与内部时钟源一同使用时,该模块用作定时器。当与
外部时钟源一同使用时,该模块可用作定时器或计数
器。
6.2
时钟源选择
T1CON 寄存器中的 TMR1CS 位用于选择时钟源。 当
TMR1CS = 0 时,时钟源频率为 FOSC/4。当 TMR1CS = 1
时,时钟源由外部提供。
图 6-1 是 Timer1 模块的框图。
图 6-1:
TMR1CS
时钟源
FOSC/4
0
T1CKI 引脚
1
TIMER1 框图
TMR1GE
T1GINV
TMR1ON
溢出时
将标志位
TMR1IF 置 1
到 C2 比较器模块
Timer1 时钟
TMR1(2)
TMR1H
TMR1L
EN
(1)
OSC1/T1OSI
1
到 LCD 模块
LP OSC
同步
时钟输入
0
T1SYNC
1
1
0
OSC2/T1OSO
FOSC/4
内部
时钟
FOSC = 000
FOSC = x00
TMR1CS
T1OSCEN
同步 (3)
预分频器
1, 2, 4, 8
检测
0
2
T1CKPS<1:0>
T1G
1
SYNCC2OUT(4)
T1CKI
0
T1GSS
注
1:
2:
3:
4:
ST 缓冲器在使用 LP 振荡器时处于低功耗模式,而在使用 T1CKI 时处于高速模式。
Timer1 寄存器在上升沿递增 1。
休眠时不进行同步。
当 CMCON1 寄存器中的 C2SYNC 位置 1 时执行 SYNCC2OUT 同步。
DS41250F_CN 第 102 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
6.2.1
内部时钟源
如果选择使用内部时钟源,TMR1H:TMR1L 寄存器对将
以 TCY 的倍数为频率递增,具体倍数由 Timer1 预分频器
决定。
6.2.2
外部时钟源
如果选择使用外部时钟源,Timer1 模块可作为定时器或
计数器。
计数时,Timer1 在外部时钟输入 T1CKI 的上升沿递增。
此外,计数器模式下的时钟可以与单片机系统时钟同步
或异步运行。
6.5
如果 T1CON 寄存器的控制位 T1SYNC 被置 1,外部时
钟输入就不同步。定时器继续进行与内部相位时钟异步
的递增计数。 在休眠状态下定时器仍将继续运行,并在
溢出时产生中断,从而唤醒处理器。 但是,在用软件对
定时器进行读 / 写操作时应该特别小心 (见第 6.5.1 节
“异步计数器模式下对 Timer1 的读写操作”)。
注
在计数器模式下,必须先经过一个下降沿,计数器才可
以在发生下列一个或多个条件时进行第一次递增计数:
• 在上电复位或欠压复位后使能 Timer1
• 写入 TMR1H 或 TMR1L
• 当禁止 Timer1 时, T1CKI 为高电平;而重新使能
Timer1 时, T1CKI 为低电平。请参见图 6-2。
6.3
Timer1 预分频器
Timer1 具有四种预分频比选择,允许对时钟输入进行
1、2、4 或 8 分频。T1CON 寄存器的 T1CKPS 位控制
该预分频计数器。不能直接对预分频计数器进行读写操
作;但是,通过写入 TMR1H 或 TMR1L 可清零预分频计
数器。
6.4
Timer1 振荡器
在引脚 OSC1 (输入)和 OSC2 (放大器输出)之间连
接一个内置的低功耗 32.768 kHz 晶振。将 T1CON 寄存
器的 T1OSCEN 控制位置 1 可使能该振荡器。该振荡器
将在休眠期间继续工作。
Timer1 振荡器与系统 LP 振荡器共享。因此,Timer1 只
有在由内部振荡器提供主系统时钟或处于 LP 振荡器模
式时才可使用此模式。用户必须提供软件延时来确保振
荡器正确起振。
当使能 Timer1 振荡器时, TRISA7 和 TRISA6 位被置
1。RA7 和RA6 读为0,且 TRISA7 和TRISA6位读为 1。
注:
在使用振荡器之前需要一段起振和稳定时
间。因此,在使能Timer1前应将T1OSCEN
置 1 并经过适当的延时。
 2007 Microchip Technology Inc.
在异步计数器模式下的 Timer1 工作
原理
6.5.1
1: 当从同步操作切换到异步操作模式时,有
可能跳过一次递增。 当从异步操作切换到
同步操作模式时,有可能产生一次额外的
递增。
异步计数器模式下对 TIMER1 的读写
操作
当定 时器 采用 外部 异步 时钟 工作 时,对 TMR1H 或
TMR1L 的读操作将确保有效(硬件操作时应当注意)。
但是用户应注意,通过两个 8 位值本身来读取 16 位定
时器会产生某些问题,因为定时器可能在读操作之间产
生溢出。
对于写操作,建议用户停止定时器后再写入需要的数
值。当计数器正在递增计数时,向定时器的寄存器写入
数据可能会产生写争用, 从而在 TMR1H:TMR1L 寄存
器对中产生不可预测的值。
6.6
Timer1 门控
可用软件将Timer1 门控信号源配置为 T1G 引脚或比较器
C2的输出。这让器件可以直接使用T1G 为外部事件定时
或使用比较器C2为模拟事件定时。有关如何选择Timer1
门控信号源的更多信息,请参见 CMCON1 寄存器 (寄
存器 8-2)。此功能部件可以仅仅是 ∆-Σ A/D 转换器的软
件,也可以是很多其他应用。欲知有关 ∆-Σ A/D 转换器的
更多信息,请访问Microchip 网站(www.microchip.com)。
注:
必须将 T1CON 寄存器的 TMR1GE 位置 1
以使用 Timer1 门控。
可使用 T1CON 寄存器的 T1GINV 位来设置 Timer1 门
控信号的极性,门控信号可以来自 T1G 引脚也可以来自
比较器 C2 的输出。该位可将 Timer1 配置为对两个事件
之间的高电平时间或低电平时间进行计时。
DS41250F_CN 第 103 页
PIC16F913/914/916/917/946
6.7
Timer1 中断
6.8
休眠期间的 Timer1 工作原理
Timer1 寄存器对(TMR1H:TMR1L)递增计数到 FFFFh
后,计满返回到 0000h。当 Timer1 计满返回时, PIR1
寄存器的 Timer1 中断标志位置 1。要允许该溢出中断,
用户应将以下位置 1:
只有设置为异步计数器模式时,Timer1 才可在休眠模式
下工作。在该模式下,可使用外部晶振或时钟源使计数
器进行递增计数。 通过如下设置使定时器能够唤醒器
件:
• PIE1 寄存器的 Timer1 中断允许位
• INTCON 寄存器的 PEIE 位
• INTCON 寄存器的 GIE 位
• 必须将 T1CON 寄存器的 TMR1ON 位置 1
• 必须将 PIE1 寄存器的 TMR1IE 位置 1
• 必须将 INTCON 寄存器的 PEIE 位置 1
在中断服务程序中将 TMR1IF 位清零可以清除该中断。
器 件 将 在溢 出 时 被 唤 醒 并 执 行 下一 条 指 令。如 果 将
INTCON 寄存器的 GIE 位置 1,器件将调用中断服务程
序 (0004h)。
允许该中断前,应将 TMR1H:TMR1L 寄存
器对以及 TMR1IF 位清零。
注:
6.9
LCD 模块的时钟源
Timer1 振荡器可用于为 LCD 模块提供时钟。 可将该时
钟设置为在休眠期间继续运行。
更多详细信息,请参见第 10.0 节 “液晶显示 (LCD)
驱动模块”。
图 6-2:
TIMER1 递增边沿
T1CKI = 1
当 TMR1
使能时
T1CKI = 0
当 TMR1
使能时
注
1: 箭头表示计数器递增。
2: 在计数器模式下,必须先经过一个下降沿,计数器才可以在随后的上升沿进行第一次递增计数。
DS41250F_CN 第 104 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
6.10
Timer1 控制寄存器
Timer1 控制寄存器 (T1CON)如寄存器 6-1 所示,用
于控制 Timer1 并选择 Timer1 模块的各种功能。
寄存器 6-1:
T1CON:TIMER 1 控制寄存器
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
T1GINV(1)
TMR1GE(2)
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
T1GINV:Timer1 门控信号极性位 (1)
1 = Timer1 门控信号高电平有效 (门控信号为高电平时 Timer1 计数)
0 = Timer1 门控信号低电平有效 (门控信号为低电平时 Timer1 计数)
bit 6
TMR1GE:Timer1 门控使能位 (2)
如果 TMR1ON = 0:
此位被忽略。
如果 TMR1ON = 1:
1 = Timer1 计数由 Timer1 门控功能控制
0 = Timer1 总是计数
bit 5-4
T1CKPS<1:0>:Timer1 输入时钟预分频比选择位
11 = 1:8 预分频比
10 = 1:4 预分频比
01 = 1:2 预分频比
00 = 1:1 预分频比
bit 3
T1OSCEN:LP 振荡器使能控制位
如果单片机正在使用不带 CLKOUT 振荡器的 INTOSC:
1 = 使能 LP 振荡器作为 Timer1 的时钟源
0 = LP 振荡器关闭
否则:
此位被忽略。禁止 LP 振荡器。
bit 2
T1SYNC:Timer1 外部时钟输入同步控制位
TMR1CS = 1:
1 = 不与外部时钟输入同步
0 = 与外部时钟输入同步
TMR1CS = 0:
此位被忽略。Timer1 使用内部时钟。
bit 1
TMR1CS:Timer1 时钟源选择位
1 = 来自 T1CKI 引脚的外部时钟源 (在上升沿触发)
0 = 内部时钟源 (FOSC/4)
bit 0
TMR1ON:Timer1 使能位
1 = 使能 Timer1
0 = 禁止 Timer1
注
x = 未知
1: T1GINV 位可使 Timer1 门控信号的逻辑电平反相,而不管门控信号源如何。
2: TMR1GE 位必须置 1 以便使用由 CMCON1 寄存器的 T1GSS 位选择的 T1G 引脚或 C2OUT 作为 Timer1
的门控信号源。
 2007 Microchip Technology Inc.
DS41250F_CN 第 105 页
PIC16F913/914/916/917/946
表 6-1:
名称
与 TIMER1 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
CMCON1
—
—
—
—
—
—
T1GSS
C2SYNC
---- --10
---- --10
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
PIR1
0000 0000
0000 0000
TMR1H
16 位 TMR1 寄存器高字节的保持寄存器
xxxx xxxx
uuuu uuuu
TMR1L
16 位 TMR1 寄存器低字节的保持寄存器
xxxx xxxx
uuuu uuuu
0000 0000
uuuu uuuu
T1CON
图注:
T1GINV
TMR1GE
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 Timer1 模块不使用阴影单元。
DS41250F_CN 第 106 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
7.0
TIMER2 模块
TMR2 和 PR2 寄存器都是完全可读写的。任何复位时,
TMR2寄存器被设置为 00h,PR2寄存器被设置为 FFh。
Timer2 模块是具有以下特点的 8 位定时器:
•
•
•
•
•
通过将T2CON寄存器中的TMR2ON位置1使能Timer2。
通过将 TMR2ON 位清 0 禁止 Timer2。
8 位定时器寄存器 (TMR2 寄存器)
8 位周期寄存器 (PR2 寄存器)
TMR2 与 PR2 匹配时产生中断
可软件编程的预分频比 (1:1、 1:4 和 1:16)
可软件编程的后分频比 (1:1 到 1:16)
Timer2 预分频器由 T2CON 寄存器的 T2CKPS 位控制。
Timer2 后分频器由 T2CON 寄存器的 TOUTPS 位控制。
预分频器和后分频器计数器在以下情况下被清零:
• 对 TMR2 进行写操作。
• 对 T2CON 进行写操作。
• 发生任何器件复位 (上电复位、 MCLR 复位、看
门狗定时器复位或者欠压复位)。
Timer2 的框图请参见图 7-1。
7.1
Timer2 工作原理
注:
到 Timer2 模块的时钟输入是系统指令时钟(FOSC/4)。
时钟输入到 Timer2 预分频器,有如下几种分频比可供
选择:1:1、 1:4 或 1:16。预分频器的输出随后用于使
TMR2 寄存器递增。
写 T2CON 不会使 TMR2 清零。
不断将 TMR2 和 PR2 的值进行比较以确定它们何时匹
配。 TMR2 将从 00h 开始递增,直至与 PR2 中的值匹
配。发生匹配时,会发生以下两个事件:
• TMR2 在下一个递增周期被复位为 00h。
• Timer2 后分频器递增。
Timer2/PR2 比较器的匹配输出值随后输入到 Timer2 后
分频器。后分频器具有 1:1 至 1:16 的预分频比可供选
择。 Timer2 后分频器的输出用于将 PIR1 寄存器中的
TMR2IF 中断标志位置 1。
图 7-1:
TIMER2 框图
TMR2 输出
FOSC/4
预分频器
1:1, 1:4, 1:16
2
TMR2
将标志位
TMR2IF 置 1
复位
比较器
相等
后分频器
1:1 至 1:16
T2CKPS<1:0>
PR2
4
TOUTPS<3:0>
 2007 Microchip Technology Inc.
DS41250F_CN 第 107 页
PIC16F913/914/916/917/946
寄存器 7-1:
T2CON:TIMER 2 控制寄存器
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
—
TOUTPS3
TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CKPS1
T2CKPS0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
未实现:读为 0
bit 6-3
TOUTPS<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
1x = 预分频比为 16
表 7-1:
名称
x = 未知
与 TIMER2 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他复位
时的值
0000 000x
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
PR2
Timer2 模块周期寄存器
1111 1111
1111 1111
TMR2
8 位 TMR2 寄存器的保持寄存器
0000 0000
0000 0000
-000 0000
-000 0000
T2CON
—
图注:
x = 未知, u = 不变, — = 未实现单元 (读为 0)。 Timer2 模块不使用阴影单元。
TOUTPS3
DS41250F_CN 第 108 页
TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CKPS1
T2CKPS0
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
8.0
比较器模块
比较器用作模拟电路与数字电路的接口,通过比较两个
模拟电压的大小并输出一个数字量以指示输入量的相对
大小。它是非常有用的复合信号构建块,因为它可以提
供独立于程序执行的模拟功能。 模拟比较器模块包含如
下特性:
•
•
•
•
•
•
•
•
•
双比较器
多个比较器配置
可从外部或内部获取比较器输出
可编程输出极性
电平变化中断
从休眠唤醒
Timer1 门控 (使能计数)
输出与 Timer1 时钟输入同步
可编程参考电压
注:
8.1
比较器概述
图 8-1 给出了某个比较器及其模拟输入电压和数字输出
电平之间的关系。如果 VIN+ 上的模拟输入电压低于 VIN上的模拟电压,比较器输出数字低电平。 如果 VIN+ 上
的模拟电压高于 VIN- 上的模拟电压,比较器输出数字高
电平。
图 8-1:
单比较器
VIN+
+
VIN-
–
输出
VINVIN+
仅比较器 C2 与 Timer1 相关联。
输出
注:
比较器输出的阴影区表示因输入失调和
响应时间所造成的不确定区。
图 8-2 和图 8-3 给出了该器件包含的两个比较器。 这两
个比较器不可单独配置。
 2007 Microchip Technology Inc.
DS41250F_CN 第 109 页
PIC16F913/914/916/917/946
图 8-2:
比较器 C1 输出框图
多路开关
端口引脚
C1INV
至 C1OUT 引脚
C1
D
Q1
至数据总线
Q
EN
读 CMCON0
将 C1IF 位置 1
D
Q3* 读 CMCON0
Q
EN
CL
复位
注
1: Q1 和 Q3 为四相系统时钟 (FOSC)的相位。
2: 在休眠模式下, Q1 保持高电平。
图 8-3:
比较器 C2 输出框图
C2SYNC
至 SYNCC2OUT
多路开关
端口引脚
C2INV
0
C2
D
Q
D
Q
至 C2OUT 引脚
1
Timer1
时钟源 (1)
Q1
EN
至数据总线
读 CMCON0
将 C2IF 位置 1
D
Q3* 读 CMCON0
Q
EN
CL
复位
注
1: 比较器输出在 Timer1 时钟源的下降沿被锁存。
2: Q1 和 Q3 为四相系统时钟 (FOSC)的相位。
3: 在休眠模式下, Q1 保持高电平。
DS41250F_CN 第 110 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
8.1.1
模拟输入连接注意事项
图 8-4 是一个简化的模拟输入电路。 由于模拟输入引脚
与数字输入端相连,因而它们与 VDD 和 VSS 之间加有
反向偏置 ESD 保护二极管,从而将模拟输入电压限制
在 VSS 和 VDD。一旦输入电压在任一方向上超出该范围
0.6V,其中一个二极管就会发生正向偏置从而使输入电
压被钳位。
注
1: 读端口寄存器时,所有配置为模拟输入的
引脚都将读为 0。而配置为数字输入的引
脚将根据输入规范,对模拟输入信号进行
相应的转换。
2: 施加在数字输入引脚上的模拟电平会使其
输入缓冲器消耗的电流超过规定值。
模拟信号源的最大阻抗推荐值为10 kΩ。连接到模拟输入
引脚的任何外部元件 (如电容器或齐纳二极管) ,要保
证其泄漏电流极小,从而使引入的误差最小。
图 8-4:
模拟输入模型
VDD
VT ≈ 0.6V
Rs < 10K
RIC
至比较器
AIN
CPIN
5 pF
VA
VT ≈ 0.6V
ILEAKAGE
± 500 nA
Vss
图注:
CPIN
= 输入电容
ILEAKAGE = 各个连接点在引脚上产生的泄漏电流
RIC
= 内部走线等效电阻
= 源阻抗
RS
= 模拟电压
VA
VT
= 门限电压
 2007 Microchip Technology Inc.
DS41250F_CN 第 111 页
PIC16F913/914/916/917/946
8.2
比较器配置
比较器共有8种工作模式,CMCON0寄存器的CM<2:0>
位用于选择这些模式,如图 8-5 所示。 I/O 线根据模式
的不同而有所变化,且可被指定为:
• 模拟功能 (A):数字输入缓冲器被禁止
• 数字功能 (D):比较器数字输出,覆盖端口功能
• 普通端口功能 (I/O):与比较器无关
被指定为 “A”功能的端口引脚读为 0,与 I/O 引脚的
状态及 I/O 控制位 TRIS 无关。 引脚用作模拟输入引脚
时,还应将相应的 TRIS 位置 1 以禁止数字输出驱动器。
引脚被指定为 “D”功能时,应将相应的 TRIS 位置为
0 以使能数字输出驱动器。
注:
改变比较器模式的过程中应禁止比较器中
断,以免产生意外中断。
DS41250F_CN 第 112 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 8-5:
比较器 I/O 工作模式
比较器复位(上电复位默认值)
CM<2:0> = 000
A
VINC1INC1IN+
C2IN-
A
VIN+
A
VINVIN+
C2IN+ A
两个独立的比较器
CM<2:0> = 100
C1
关(读为 0)
C2
关(读为 0)
C1IN+
C2INC2IN+
A
A
C1IN+
VIN+
C1
C1OUT
C2INC2IN+
A
A
VIN+
C2
C2OUT
CIS = 0
CIS = 1
VINVIN+
C1
VIN+
两个具有公共参考端的比较器
CM<2:0> = 011
A
VINC1IN-
C2INC2IN+
图注:
VIN+
A
VIN-
A
VIN+
A
VIN-
A
VIN+
C2IN+
C1
C1OUT
C2
C2OUT
C2IN+
VIN+ C1
I/O
C1IN+
关(读为 0)
VIN-
A
A
C2OUT
CIS = 0 VIN+ C2
CIS = 1
内部
固定参考电压
VIN+
C1OUT
C2OUT(引脚)
C1
C1OUT
C2
C2OUT
C1OUT(引脚)D
VIN-
CIS = 0
CIS = 1
I/O
VIN+
两个具有公共参考端且带输出的比较器
CM<2:0> = 110
A
VINC1IN-
C2
C2OUT
来自 CVREF 模块
C1IN+
A
C2IN-
VIN-
A
A
C1IN+
C1IN-
VIN-
CIS = 0
CIS = 1
A
A
VIN-
一个带参考电压选择的独立比较器
CM<2:0> = 101
VINI/O
四路输入的双比较器
CM<2:0> = 010
C1IN-
A
C2IN-
三路输入的双比较器
CM<2:0> = 001
C1IN-
C1IN-
C1
C1OUT
C2
C2OUT
C2INC2IN+
A
VIN-
A
VIN+
C2OUT(引脚)D
比较器关闭(功耗最低)
CM<2:0> = 111
I/O
VINC1INC1IN+
C2INC2IN+
I/O
VIN+
I/O
VIN-
I/O
VIN+
C1
关(读为 0)
C2
关(读为 0)
A = 模拟输入,端口始终读为 0
CIS = 比较器输入开关 (CMCON0<3>)
I/O = 普通端口 I/O
D = 比较器数字输出
 2007 Microchip Technology Inc.
DS41250F_CN 第 113 页
PIC16F913/914/916/917/946
8.3
8.4
比较器控制
CMCON0 寄存器 (寄存器 8-1)可以控制以下比较器
功能:
•
•
•
•
模式选择
输出状态
输出极性
输入切换
8.3.1
比较器输出状态
比较器输出极性
将比较器输出反相与交换比较器的两个输入端功能相
同。将 CMCON0 寄存器的 CxINV 位置 1 可以将比较器
输出的极性反相。 清零 CxINV 将导致输出不反相。 表
8-1 给出了对应于不同输入条件和极性位设置情况下的
输出状态的完整信息。
表 8-1:
注:
8.3.3
在改变输入源或选择了新的参考电压后的一段时间内,
比较器的输出为不确定状态。 这段时间称为响应时间。
比较器的响应时间根据参考电压达到稳定值的时间不同
而不同。 因此,在确定比较器输入电压发生变化后的总
响应时间时,这些时间都要考虑在内。请参见第 19.0 节
“电气规范”的比较器和参考电压规范获得更多详细信
息。
8.5
可以通过 CMCON0 寄存器中相应的 CxOUT 位从内部
读取每个比较器的状态。当 CM<2:0> = 110 时,比较
器状态直接输出到 CxOUT 引脚。 如果选择该模式,必
须将相应 CxOUT 引脚的 TRIS 位清零以使能输出驱动。
8.3.2
比较器的响应时间
任何一个比较器的输出电平一旦发生了变化,就会将比
较器的中断标志位置 1。通过失配电路识别输出端变
化,该电路包含两个锁存器和一个异或门 (见图 8-2 和
图 8-3)。当读 CMCON0 寄存器时,使用比较器的输出
电平更新一个锁存器。此锁存器保留更新后的值,直到
下一次读取 CMCON0 寄存器或发生复位为止。失配电
路的另一个锁存器在每个 Q1 系统时钟更新。 如果比较
器的输出电平变化在Q1时钟周期内通过第二个锁存器锁
存,则将引发不匹配条件。 该不匹配条件持续存在,保
持 PIR2 寄存器的 CxIF 位为真,直到读 CMCON0 寄存
器或比较器输出返回先前状态为止。
注:
不同输入条件下的输出状态
输入条件
CxINV
CxOUT
VIN- > VIN+
0
0
VIN- < VIN+
0
1
VIN- > VIN+
1
1
VIN- < VIN+
1
0
CxOUT 指的是寄存器位和输出引脚。
比较器输入切换
在下列模式下,比较器的反相输入可在两个模拟引脚或
一个模拟输入引脚和一个固定的参考电压之间切换:
比较器中断工作原理
对CMCON0寄存器执行写操作也将清除不
匹配条件,因为在每个写周期开始会首先
执行读操作。
需要用软件来保持比较器输出的状态信息以判断实际发
生的变化。
PIR2 寄存器的 CxIF 位是比较器中断标志位。必须由软
件清零复位。因为可以人为向该寄存器写 1,所以也可
以模拟中断的产生。
PIE2 寄存器的 CxIE 位和 INTCON 寄存器的 PEIE 和
GIE 位必须置 1,以允许比较器中断。 只要清零这些位
中的任何一位,尽管当中断条件产生时 PIR2 寄存器的
CxIF 位仍会置 1,但中断却是被禁止的。
用户可用以下方式在中断服务程序中清除该中断:
• CM<2:0> = 001 (仅比较器 C1)
• CM<2:0> = 010 (比较器 C1 和 C2)
• CM<2:0> = 101 (仅比较器 C2)
b)
在上述模式中,无论选择哪个引脚作为输入引脚,比较
器的两个引脚都保持处于模拟模式。CMCON0 寄存器的
CIS 位控制比较器输入切换。
引脚上电平的不匹配条件会不断地将 CxIF 中断标志位
置 1。 读 CMCON0 寄存器将结束引脚上电平不匹配条
件,并允许 CxIF 标志位清零。
DS41250F_CN 第 114 页
a)
对 CMCON0 的任意读或写。 这将结束引脚电平
不匹配条件。请参见图 8-6 和 8-7。
清零 CxIF 中断标志位。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 8-6:
比较器中断时序 (不读
CMCON0 寄存器时)
Q1
Q3
CIN+
TRT
COUT
置 1 CxIF(电平)
CxIF
由软件复位
图 8-7:
比较器中断时序 (读
CMCON0 寄存器时)
8.6
如果在进入休眠模式以前已使能了比较器,那么它们将
在休眠期间继续保持工作。比较器额外消耗的电流由第
19.0 节“电气规范”单独给出。如果不使用比较器唤醒
器件的话,休眠模式下可以关掉比较器从而实现最小功
耗。通过选择 CMCON0 寄存器的 CM<2:0> = 000 或
CM<2:0> = 111 模式关闭比较器。
改变比较器的输出可将器件从休眠模式唤醒。将PIE2寄
存器的 CxIE 位和 INTCON 寄存器的 PEIE 位置 1 可使
比较器将器件从休眠模式唤醒。 跟随在唤醒指令之后的
指令总是在执行完休眠唤醒之后执行。如果将 INTCON
寄存器的 GIE 位也置 1,该器件将执行中断服务程序。
8.7
Q1
Q3
CIN+
休眠期间工作原理
复位的影响
器件复位强制 CMCON0 和 CMCON1 寄存器为各自的
复位状态。这将强制比较器模块处于比较器复位模式
(CM<2:0> = 000) 。 因此,比较器禁止,所有的比较
器输入都为模拟输入,以使电流消耗最小。
TRT
COUT
置 1 CxIF(电平)
CxIF
通过读 CMCON0
寄存器清零
注
由软件复位
1: 如果在执行一次读操作时 (Q2 周期的开
始) CMCON0 寄存器 (CxOUT)的值发
生了改变,那么 PIR2 寄存器的 CxIF 中断
标志位可能不会被置 1。
2:当先使能任一比较器时,比较器模块中的
偏置电路可能导致比较器产生无效输出,
直至偏置电路达到稳态。允许大约 1 µs 的
偏置稳定时间,然后在允许比较器中断之
前,清除不匹配条件和中断标志。
 2007 Microchip Technology Inc.
DS41250F_CN 第 115 页
PIC16F913/914/916/917/946
寄存器 8-1:
CMCON0:比较器配置寄存器
R-0
R-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
C2OUT
C1OUT
C2INV
C1INV
CIS
CM2
CM1
CM0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
x = 未知
C2OUT:比较器 2 输出位
当 C2INV = 0 时:
1 = C2 VIN+ > C2 VIN0 = C2 VIN+ < C2 VIN当 C2INV = 1 时:
1 = C2 VIN+ < C2 VIN0 = C2 VIN+ > C2 VIN-
bit 6
C1OUT:比较器 1 输出位
当 C1INV = 0 时:
1 = C1 VIN+ > C1 VIN0 = C1 VIN+ < C1 VIN当 C1INV = 1 时:
1 = C1 VIN+ < C1 VIN0 = C1 VIN+ > C1 VIN-
bit 5
C2INV:比较器 2 输出反相位
1 = C2 输出反相
0 = C2 输出不反相
bit 4
C1INV:比较器 1 输出反相位
1 = C1 输出反相
0 = C1 输出不反相
bit 3
CIS:比较器输入开关位
当 CM<2:0> = 010 时:
1 = C1IN+ 连接到 C1 VINC2IN+ 连接到 C2 VIN0 = C1IN- 连接到 C1 VINC2IN- 连接到 C2 VIN当 CM<2:0> = 001 时:
1 = C1IN+ 连接到 C1 VIN0 = C1IN- 连接到 C1 VIN当 CM<2:0> = 101 时: (16F91x/946)
1 = C2 VIN+ 连接到固定参考电压
0 = C2 VIN+ 连接到 C2IN+
bit 2-0
CM<2:0>:比较器模式位 (见图 8-5)
000 = 关闭比较器。CxIN 引脚被配置为模拟引脚
001 = 三路输入的双比较器
010 = 四路输入的双比较器
011 = 具有公共参考端的双比较器
100 = 两个独立的比较器
101 = 一个独立的比较器
110 = 两个具有公共参考端且带输出的比较器
111 = 关闭比较器。CxIN 引脚被配置为数字 I/O
DS41250F_CN 第 116 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
8.8
比较器 C2 为 Timer1 提供门控信号
该功能可以用来为模拟事件的持续时间或间隔时间定
时。清零 CMCON1 寄存器的 T1GSS 位将使能 Timer1
以比较器 C2 的输出为基准递增。此操作要求 Timer1 打
开并且已被选通。 请参见第 6.0 节 “带门控的 Timer1
模块”获得详细信息。
当将比较器 C2 用作 Timer1 门控源时,建议通过将
C2SYNC 位置 1 使比较器 C2 与 Timer1 同步。 这样可
以确保比较器在 Timer1 递增期间改变输出状态时,
Timer1 不会丢失计数。
寄存器 8-2:
8.9
比较器 C2 输出与 Timer1 同步
将 CMCON1 寄存器的 C2SYNC 位置 1 可使比较器 C2
输出与Timer1同步。使能时,比较器C2的输出在Timer1
时钟源的下降沿被锁存。如果 Timer1 使用预分频器,比
较器的输出将在被执行预分频后锁存。为防止出现争
用,比较器输出在 Timer1 时钟源的下降沿被锁存,而
Timer1 在其时钟源的上升沿递增。 请参见比较器框图
(图 8-2 和图 8-3)和 Timer1 框图 (图 6-1)获得更多
详细信息。
CMCON1:比较器配置寄存器
U-0
U-0
U-0
U-0
U-0
U-0
R/W-1
R/W-0
—
—
—
—
—
—
T1GSS
C2SYNC
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-2
未实现:读为 0
bit 1
T1GSS: Timer1 门控源选择位 (1)
1 = Timer1 门控源是 T1G 引脚 (引脚必须被配置为数字输入引脚)
0 = Timer1 门控源是比较器 C2 的输出
bit 0
C2SYNC:比较器 C2 输出同步位 (2)
1 = 输出与 Timer1 时钟源的下降沿同步
0 = 输出异步
注
x = 未知
1: 请参见第 6.6 节 “Timer1 门控”。
2: 请参见图 8-3。
 2007 Microchip Technology Inc.
DS41250F_CN 第 117 页
PIC16F913/914/916/917/946
8.10
比较器参考电压
比较器参考电压模块为比较器提供内部产生的参考电
压。它具有如下特性:
•
•
•
•
独立于比较器操作
两个具有 16 种电平的电压范围
输出电压箝位为 VSS
与 VDD 成比例
CV REF = (VDD/4) + (VR<3:0> × VDD/32)
VRCON 寄存器 (寄存器 8-3)控制参考电压模块,如
图 8-8 所示。
8.10.1
独立操作
比较器参考电压独立于比较器配置。将 VRCON 寄存器
的 VREN 位置 1 可使能参考电压。
8.10.2
公式 8-1:
CVREF 输出电压
V RR = 1(低电压):
CVREF = (VR<3:0>/24) × V DD
V RR = 0(高电压):
输出电压选择
CVREF 参考电压有 2 个范围,每个范围都有 16 种不同
的电平。 由 VRCON 寄存器的 VRR 位控制范围选择。
由 VRCON 寄存器的 VR<3:0> 位设置 16 种电平。
下面的公式可用来计算 CVREF 输出电压:
由于模块结构的限制,无法实现从 VSS 到 VDD 的满量
程输出。请参见图 8-8。
8.10.3
输出电压箝位为 VSS
按如下配置 VRCON ,将 CVREF 输出电压设置为 Vss
而无额外功耗。
• VREN = 0
• VRR = 1
• VR<3:0> = 0000
此操作允许比较器进行过零检测,而不会使 CVREF 模块
消耗额外的电流。
8.10.4
输出与 VDD 成比例
由于比较器参考电压是由 VDD 产生的,因此 CVREF 的
输出会随着 VDD 的波动而变化。可以在 第 19.0 节 “电
气规范”中找到测试所得的比较器参考电压的绝对精
度。
寄存器 8-3:
VRCON:参考电压控制寄存器
R/W-0
U-0
R/W-0
U-0
R/W-0
R/W-0
R/W-0
R/W-0
VREN
—
VRR
—
VR3
VR2
VR1
VR0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
VREN:CVREF 使能位
1 = CVREF 电路上电
0 = CVREF 电路掉电,无 IDD 漏电流且 CVREF = VSS。
bit 6
未实现:读为 0
bit 5
VRR:CVREF 量程范围选择位
1 = 低电压范围
0 = 高电压范围
bit 4
未实现:读为 0
bit 3-0
VR<3:0>: CVREF 值选择位 (0 ≤ VR<3:0> ≤ 15)
当 VRR = 1 时:CVREF = (VR<3:0>/24) * VDD
当 VRR = 0 时:CVREF = VDD/4 + (VR<3:0>/32) * VDD
DS41250F_CN 第 118 页
x = 未知
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 8-8:
比较器参考电压框图
16 级
8R
R
R
R
R
VDD
VRR
8R
16 选 1 模拟
MUX
VREN
15
14
CVREF 至
比较器
输入
2
1
0
VR<3:0>(1)
VREN
VR<3:0> = 0000
VRR
注
表 8-2:
1: 应格外小心,以确保 VREF 始终处于比较器共模输入
电压范围内。详情请参见第 19.0 节“电气规范”。
与比较器和参考电压模块相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
ANS7
ANS6
ANS5
ANS4
ANS3
ANS2
ANS1
ANS0
1111 1111
1111 1111
CMCON0
C2OUT
C1OUT
C2INV
C1INV
CIS
CM2
CM1
CM0
0000 0000
0000 0000
CMCON1
—
—
—
—
—
—
T1GSS
C2SYNC
---- --10
---- --10
INTCON
名称
ANSEL
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE
0000 -0-0
0000 -0-0
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF
0000 -0-0
0000 -0-0
PORTA
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
xxxx xxxx
uuuu uuuu
TRISA
TRISA7
TRISA6
TRISA1
TRISA0
1111 1111
1111 1111
VREN
—
VR1
VR0
0-0- 0000
0000 0000
VRCON
图注:
TRISA5 TRISA4 TRISA3 TRISA2
VRR
—
VR3
VR2
x = 未知,u = 不变, - = 未实现单元 (读为 0)。比较器不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 119 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 120 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.0
可寻址通用同步 / 异步收发器
(AUSART)
AUSART 模块包含如下功能:
•
•
•
•
•
•
•
•
•
•
可寻址通用同步 / 异步收发器 (AUSART)模块是一个
串行 I/O 通信外设。该模块包括所有执行与器件程序执
行无关的输入或输出串行数据传输所必需的时钟发生
器、移位寄存器和数据缓冲器。AUSART 也称为串行通
信接口 (Serial Communications Interface, SCI),它
可配置为全双工异步系统,与 CRT 终端和个人计算机
等外设系统进行通信;也可以配置为半双工同步系统,
与 A/D 或 D/A 集成电路、串行 EEPROM 或其他单片机
等外设进行通信。 与之通信的单片机通常不具有产生波
特率的内部时钟,需要由主同步器件提供外部时钟信
号。
图 9-1:
全双工异步发送和接收
双字符输入缓冲
单字符输出缓冲
可将字符长度设定为 8 位或 9 位
9 位模式下的地址检测
输入缓冲溢出错误检测
接收到字符的帧错误检测
半双工同步主模式
半双工同步从模式
在休眠模式下工作
图 9-1 和图 9-2 给出了 AUSART 收发器的框图。
AUSART 发送框图
数据总线
TXIE
中断
TXIF
TXREG 寄存器
8
MSb
LSb
(8)
0
• • •
TX/CK 引脚
引脚缓冲
和控制
发送移位寄存器(TSR)
TXEN
TRMT
波特率发生器
FOSC
÷n
TX9
n
+1
SPBRG
倍频器
x4
SYNC
1
0
0
BRGH
x
1
0
 2007 Microchip Technology Inc.
SPEN
x16 x64
TX9D
DS41250F_CN 第 121 页
PIC16F913/914/916/917/946
图 9-2:
AUSART 接收框图
SPEN
CREN
RX/DT 引脚
数据
恢复
波特率发生器
FOSC
+1
SPBRG
RSR 寄存器
MSb
引脚缓冲
和控制
倍频器
x4
x16 x64
SYNC
1
0
0
BRGH
x
1
0
OERR
停止位 (8)
•••
7
LSb
1
0 起始位
RX9
÷n
n
FERR
RX9D
RCREG 寄存器
8
FIFO
数据总线
RCIF
RCIE
中断
AUSART 模块的操作是通过以下两个寄存器控制的:
• 发送状态和控制寄存器 (TXSTA)
• 接收状态和控制寄存器 (RCSTA)
寄存器 9-1 和寄存器 9-2 分别详细介绍了这两个寄存器。
DS41250F_CN 第 122 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.1
AUSART 异步模式
AUSART 使用标准非归零码 (non-return-to-zero,
NRZ)格式发送和接收数据。 使用 2 种电平实现 NRZ:
由 VOH 标号状态代表数据位 1, VOL 空格状态代表数据
位 0。采用 NRZ 格式连续发送相同值的数据位时,输出
电平保持该位的电平,而不会在发送完每个位后返回中
间电平值。NRZ 发送端口在标号状态空闲。每个发送的
字符都包括一个起始位,后面跟有 8 位或 9 位数据位和
一个或多个终止字符发送的停止位。 起始位总是处于空
格状态,停止位总是处于标号状态。 最常用的数据格式
为 8 位。每个发送位存在时间为 1/( 波特率 )。片上专用
的 8 位波特率发生器可用于通过系统振荡器产生标准的
波特率频率。请参见表 9-5 了解波特率配置示例。
AUSART 首先发送和接收 LSb。 AUSART 的发送器和
接收器在功能上是独立的,但采用相同的数据格式和波
特率。AUSART 硬件不支持奇偶校验,但可以用软件实
现,奇偶校验位是第 9 个数据位。
9.1.1
AUSART 异步发送器
图 9-1 所示为 AUSART 发送器的框图。 发送器的核心
是串行发送移位寄存器 (TSR),该寄存器不能由软件
直接访问。 TSR 从发送缓冲器寄存器 TXREG 获取数
据。
9.1.1.1
使能发送器
通过配置如下三个控制位使能 AUSART 发送器,以用
于异步操作:
• TXEN = 1
• SYNC = 0
• SPEN = 1
假设所有其他 AUSART 控制位处于其默认状态。
将 TXSTA 寄存器的 TXEN 位置 1,使能 AUSART 发送
器电路。 将 TXSTA 寄存器的 SYNC 位清零,配置
AUSART 以用于异步操作。 将 RCSTA 寄存器的 SPEN
位置 1 使能 AUSART 并自动将 TX/CK I/O 引脚配置为输
出引脚。
注
1: 将 SPEN 位置 1 会自动将 RX/DT I/O 引脚
配置为输入引脚,无需考虑相应的 TRIS 位
的状态以及 AUSART 接收器使能与否。可
以通过普通端口读 RX/DT 引脚数据,但无
法使用端口锁存输出数据。
2: 将 TXEN 使能位置 1 时,TXIF 发送器中断
标志位会置 1。
9.1.1.2
发送数据
向 TXREG 寄存器写入一个字符,以开始发送。 如果这
是第一个字符,或者前一个字符已经完全从 TSR 中清
除,TXREG 中的数据会立即发送给 TSR 寄存器。如果
TSR 中仍保存前一字符的全部或一部分,新的字符数据
将保存在 TXREG 中,直到发送完前一字符的停止位为
止。然后,在停止位发送完毕后经过一个 TCY,TXREG
中待处理数据将被传输到 TSR。当数据从 TXREG 传输
至 TSR 后,立即开始进行起始位、数据位和停止位序列
的发送。
9.1.1.3
发送中断标志
只要使能 AUSART 发送器且 TXREG 中没有待发送数
据,就将 PIR1 寄存器的 TXIF 中断标志位置 1。也就是
说,当 TSR 忙于处理字符时和 TXREG 中有排队等待发
送的新字符时,才会清零 TXIF 位。写 TXREG 时,不立
即清零 TXIF 标志位。 TXIF 在写指令后的第 2 个指令周
期清零。 在写 TXREG 后立即查询 TXIF 会返回无效结
果。 TXIF 为只读位,不能由软件置 1 或清零。
通过将 PIE1 寄存器的 TXIE 中断允许位置 1 可允许 TXIF
中断。 然而,只要 TXREG 为空,不管 TXIE 允许位的
状态如何,都会将 TXIF 标志位置 1,
如果要在发送数据时使用中断,仅当有多个待发送数据
时,才将 TXIE 位置 1。 将待发送的最后一个字符写入
TXREG 后,清零 TXIE 中断允许位。
如果 TX/CK 引脚与 LCD 外设共用,则必须清零 LCDSE1
寄存器的 SE9 位以禁止 LCD SEG9 功能。
 2007 Microchip Technology Inc.
DS41250F_CN 第 123 页
PIC16F913/914/916/917/946
9.1.1.4
TSR 状态
9.1.1.6
TXSTA 寄存器的 TRMT 位指示 TSR 寄存器的状态。
TRMT 位为只读位。 当 TSR 寄存器为空时,将 TRMT
位置 1,当有字符从 TXREG 传送到 TSR 寄存器时,清
零 TRMT。TRMT 位保持清零状态,直到所有位从 TSR
寄存器移出为止。 TRMT 位与任何中断逻辑均无关联,
所以用户必须查询该位来确定 TSR 位的状态。
1.
2.
3.
TSR 寄存器并未映射到数据存储器中,因
此用户不能访问它。
注:
9.1.1.5
4.
发送 9 位字符
5.
AUSART 支持 9 位字符发送。当 TXSTA 寄存器的 TX9
位置 1 时, AUSART 将移出每个待发送字符的 9 位。
TXSTA 寄存器的 TX9D 位为第 9 位,即最高数据位。当
发送 9 位数据时,必须先写 TX9D 数据位,然后再将低
8 位写入 TXREG。在写入 TXREG 寄存器后会立即将所
有 9 个数据位传输到 TSR 移位寄存器。
6.
7.
使用多个接收器时可使用特殊的 9 位地址模式。请参见
第 9.1.2.7 节 “地址检测”获得有关地址模式的更多详
细信息。
图 9-3:
设置异步发送:
初始化 SPBRG 寄存器和 BRGH 位,以获得所需
的波特率 (见第 9.2 节 “AUSART 波特率发生
器 (BRG)”)。
通过将 SYNC 位清零并将 SPEN 位置 1 使能异
步串口。
如果需要发送 9 位数据,则应将 TX9 控制位置
1。 当接收器被设置为进行地址检测时,将数据
的第 9 位置 1,表示 8 个最低数据位为地址。
将 TXEN 控制位置 1,使能发送,这将导致 TXIF
中断位置 1。
如果需要中断,将 PIE1 寄存器的 TXIE 中断允许
位置 1。如果 INTCON 寄存器的 GIE 和 PEIE 位
也置 1,将立即产生中断。
如果选择发送 9 位数据,应将第 9 位装入 TX9D
数据位。
将 8 位数据装入 TXREG 寄存器,这将开始发送
数据。
异步发送
写 TXREG
BRG 输出
(移位时钟)
字1
TX/CK 引脚
起始位
图 9-4:
bit 1
bit 7/8
停止位
字1
TXIF 位
(发送缓冲器
空标志位)
TRMT 位
(发送移位
寄存器空标志位)
bit 0
1 TCY
字1
发送移位寄存器
异步发送 (背靠背模式)
写 TXREG
BRG 输出
(移位时钟)
字1
TX/CK 引脚
TXIF 位
(发送缓冲器
空标志位)
TRMT 位
(发送移位
寄存器空标志位)
注:
字2
起始位
bit 0
1 TCY
bit 1
字1
bit 7/8
停止位
起始位
bit 0
字2
1 TCY
字1
发送移位寄存器
字2
发送移位寄存器
本时序图显示了两次连续的发送。
DS41250F_CN 第 124 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 9-1:
名称
与异步发送相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
SPBRG
BRG7
BRG6
BRG5
BRG4
BRG3
BRG2
BRG1
BRG0
0000 0000
0000 0000
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
0000 0000
0000 0000
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
TXREG
TXSTA
AUSART 发送数据寄存器
CSRC
TX9
TXEN
图注:
x = 未知, - = 未实现单元 (读为 0)。异步发送不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 125 页
PIC16F913/914/916/917/946
9.1.2
AUSART 异步接收器
异步模式通常用于 RS-232 系统。 图 9-2 给出了接收器
的框图。在 RX/DT 引脚上接收数据,并驱动数据恢复电
路。数据恢复电路实际上是一个以 16 倍波特率为工作
频率的高速移位器,而串行接收移位寄存器 (Receive
Shift Register,RSR)则工作在比特率下。当字符的全
部 8 位或 9 位数据位被移入后,立即将它们传送到一个
2 字符的先进先出(First-In-First-Out,FIFO)存储器。
FIFO 缓冲器允许接收 2 个完整的字符和第 3 个字符的
起始位,然后必须由软件将收到的数据提供给 AUSART
接收器。FIFO 和 RSR 寄存器不能直接由软件访问。通
过 RCREG 寄存器访问接收到的数据。
9.1.2.1
使能接收器
通过配置如下三个控制位使能 AUSART 接收器,以用
于异步操作:
• CREN = 1
• SYNC = 0
• SPEN = 1
假设所有其他 AUSART 控制位处于其默认状态。
将 RCSTA 寄存器的 CREN 位置 1,使能 AUSART 接收
器电路。 将 TXSTA 寄存器的 SYNC 位清零,配置
AUSART 以用于异步操作。 将 RCSTA 寄存器的 SPEN
位置 1,使能 AUSART 并自动将 RX/DT I/O 引脚配置为
输入引脚。
如果 RX/DT引脚与 LCD 外设共用,则必须清零 LCDSE1
寄存器的 SE8 位以禁止 LCD SEG8 功能。
9.1.2.2
接收数据
接收器数据恢复电路在第一位的下降沿开始接收字符。
第一位,通常称为起始位,始终为 0。 由数据恢复电路
计数半个位时间,到达起始位的中心位置,校验该位是
否仍为零。如果该位不为零,数据恢复电路放弃接收该
字符,而不会产生错误,并且继续查找起始位的下降
沿。如果起始位零校验通过,则数据恢复电路计数一个
完整的位时间,到达下一位的中心位置。由择多检测电
路对该位进行采样,将相应的采样结果0或1移入RSR。
重复该过程,直到完成所有数据位的采样并将其全部移
入 RSR 寄存器。 测量最后一个位时间和采样电平。 此
位为停止位,始终为 1。如果数据恢复电路在停止位采
样到 0,则该字符的帧错误标志位将置 1,反之,该字
符帧错误标志位会清零。 请参见第 9.1.2.4 节 “接收帧
错误”获得有关帧错误的更多相关信息。
当收到所有数据位和停止位后,RSR 中的字符会被立即
传输到 AUSART 的接收 FIFO,并将 PIR1 寄存器的
RCIF 中断标志位置 1。通过读 RCREG 寄存器将 FIFO
最顶端的字符移出 FIFO。
注:
9.1.2.3
如果接收 FIFO 溢出,则不能再继续接收其
他字符,直到溢出条件被清除。请参见第
9.1.2.5 节 “接收溢出错误”获得有关溢出
错误的更多相关信息。
接收中断
只要使能 AUSART 接收器且在接收 FIFO 中没有待读字
符,PIR1 寄存器中的 RCIF 中断标志位就会置 1。RCIF
中断标志位为只读位,不能由软件置 1 或清零。
通过将下列位置 1 允许 RCIF 中断:
注:
将 SPEN 位置 1 会自动将 TX/CK I/O 引脚
配置为输出引脚,无需考虑相应的 TRIS 位
的状态以及 AUSART 发送器使能与否。端
口锁存器与输出驱动器是断开的,从而不
能将 TX/CK 引脚用作通用输出引脚。
DS41250F_CN 第 126 页
• PIE1 寄存器的 RCIE 中断允许位
• INTCON 寄存器的 PEIE 外设中断允许位
• INTCON 寄存器的 GIE 全局中断允许位
如果 FIFO 中有未读字符,无论中断允许位的状态如何,
都会将 PIR1 寄存器的 RCIF 中断标志位置 1。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.1.2.4
接收帧错误
接收 FIFO 缓冲器中的每个字符都有一个相应的帧错误
状态位。帧错误指示没有在预期的时间内接收到停止
位。 由 RCSTA 寄存器的 FERR 位获取帧错误状态。
FERR位代表接收 FIFO 最顶端未读字符的状态。因此,
必须在读 RCREG 寄存器之前读 FERR 位。
FERR 位为只读位,且只能用于表示接收 FIFO 的最顶
端未读字符。 帧错误 (FERR = 1)并不会阻止接收更
多的字符。无需清零 FERR 位。从 FIFO 缓冲器读下一
字符, FIFO 指针前进至下一字符和下一相应帧错误。
清零 RCSTA 寄存器的 SPEN 位会复位 AUSART,并强
制清零 FERR 位。清零 RCSTA 寄存器的 CREN 位不影
响 FERR 位。帧错误本身不会产生中断。
注:
9.1.2.5
9.1.2.7
地址检测
当多个接收器共享同一传输线时 (如在 RS-485 系统
中),可使用特殊地址检测模式。 将 RCSTA 寄存器的
ADDEN 位置 1,使能地址检测模式。
地址检测要求接收 9 位字符。使能地址检测后,只有第
9 位数据位被置 1 的字符可以被传输到接收 FIFO 缓冲
器,从而使 PIR1 寄存器的 RCIF 中断标志位置 1。忽略
所有其他字符。
由用户软件判断接收到的地址字符是否与其匹配。如果
匹配,用户软件必须在下一个停止位产生之前,清零
ADDEN 位以禁止地址检测。 当用户软件检测到信息的
末尾(由所使用的信息协议判断)时,由软件将 ADDEN
位置 1,从而使接收器返回地址检测模式。
如果接收FIFO 缓冲器中的所有收到的字符
都有帧错误,重复读 RCREG 不会清零
FERR 位。
接收溢出错误
接收 FIFO 缓冲器可以保存 2 个字符。 但如果在访问
FIFO 之前,接收到完整的第 3 个字符,则会产生溢出
错误。此时, RCSTA 寄存器的 OERR 位会置 1。可以
读取 FIFO 缓冲器内的字符,但是在错误清除之前,不
能再接收其他字符。 可以通过清零 RCSTA 寄存器的
CREN 位来清除错误。
9.1.2.6
接收 9 位字符
AUSART 支持 9 位字符接收。将 RCSTA 寄存器的 RX9
位置 1 时, AUSART 将接收到的每个字符的 9 位移入
RSR。 RCSTA 寄存器的 RX9D 位是接收 FIFO 顶端未
读字符的第 9 位,同时也是最高数据位。当从接收 FIFO
缓冲器读取 9 位数据时,必须在读 RCREG 的低 8 位之
前,读取 RX9D 数据位。
 2007 Microchip Technology Inc.
DS41250F_CN 第 127 页
PIC16F913/914/916/917/946
9.1.2.8
1.
2.
3.
4.
5.
6.
7.
8.
9.
9.1.2.9
异步接收设置:
初始化 SPBRG 寄存器和 BRGH 位,以获得所需
的波特率 (见第 9.2 节 “AUSART 波特率发生
器 (BRG)”)。
将SPEN位置1,使能串行端口。必须清零SYNC
位以执行异步操作。
如果需要中断,将 PIE1 寄存器的 RCIE 位和
INTCON 寄存器的 GIE 和 PEIE 位置 1。
如果需要接收 9 位数据,将 RX9 位置 1。
将 CREN 位置 1,使能接收。
当一个字符从 RSR 传输到接收缓冲器时,将
PIR1 寄存器的 RCIF 中断标志位置 1。如果 PIE1
寄存器的 RCIE 位也被置 1,还将产生中断。
读 RCSTA 寄存器获取错误标志位和第 9 位数据
位 (如果使能 9 位数据接收)。
读 RCREG 寄存器,从接收缓冲器获取接收到的
8 个低数据位。
如果产生溢出,通过清零 CREN 接收器使能位清
零 OERR 标志位。
图 9-5:
9 位地址检测模式设置
此模式通常用在 RS-485 系统中。 要设置使能地址检测
的异步接收:
1.
初始化 SPBRG 寄存器和 BRGH 位,以获得所需
的波特率 (见第 9.2 节 “AUSART 波特率发生
器 (BRG)”)。
2. 将SPEN位置1,使能串行端口。必须清零SYNC
位以执行异步操作。
3. 如果需要中断,将 PIE1 寄存器的 RCIE 位和
INTCON 寄存器的 GIE 和 PEIE 位置 1。
4. 将 RX9 位置 1,使能 9 位数据接收。
5. 将 ADDEN 位置 1,使能地址检测。
6. 将 CREN 位置 1,使能接收。
7. 当一个第 9 位置 1 的字符从 RSR 传输到接收缓
冲器时,将 PIE1 寄存器的 RCIF 中断标志位置
1。如果 PIE1 寄存器的 RCIE 中断允许位也被置
1,还将产生中断。
8. 读 RCSTA 寄存器获取错误标志位。 第 9 个数据
位始终置 1。
9. 读 RCREG 寄存器,从接收缓冲器获取接收到的
8 个低数据位。 由软件判断此地址是否为本器件
的地址。
10. 如果发生溢出,通过清零 CREN 接收器使能位清
零 OERR 标志位。
11. 如果已经对器件进行了寻址,将 ADDEN 位清零
以允许所有接收到的数据进入接收缓冲器并产生
中断。
异步接收
起始
位
bit 0
RX/DT 引脚
接收移位
寄存器
接收缓冲寄存器
bit 1
bit 7/8 停止
位
起始
位
字1
RCREG
bit 0
bit 7/8 停止
位
起始
位
bit 7/8
停止
位
字2
RCREG
读接收
缓冲寄存器
RCREG
RCIF
(中断标志位)
OERR 位
CREN
注:
此时序图显示了在 RX 输入引脚接收 3 个字的情况。在第 3 个字后读取 RCREG(接收缓存器),将导致 OERR(溢出)位置 1。
DS41250F_CN 第 128 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 9-2:
名称
与异步接收相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
RCREG
RCSTA
AUSART 接收数据寄存器
SPEN
RX9
SREN
0000 0000
0000 0000
0000 0000
0000 0000
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
SPBRG
BRG7
BRG6
BRG5
BRG4
BRG3
BRG2
BRG1
BRG0
0000 0000
0000 0000
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
TXSTA
CSRC
TX9
TXEN
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
图注:
x = 未知, - = 未实现单元 (读为 0)。异步接收不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 129 页
PIC16F913/914/916/917/946
寄存器 9-1:
R/W-0
CSRC
TXSTA:发送状态和控制寄存器
R/W-0
R/W-0
TX9
TXEN
(1)
R/W-0
U-0
R/W-0
R-1
R/W-0
SYNC
—
BRGH
TRMT
TX9D
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
CSRC:时钟源选择位
异步模式:
忽略
同步模式:
1 = 主模式 (时钟来自内部 BRG)
0 = 从模式 (时钟来自外部时钟源)
bit 6
TX9:9 位发送使能位
1 = 选择 9 位发送
0 = 选择 8 位发送
bit 5
TXEN:发送使能位 (1)
1 = 使能发送
0 = 禁止发送
bit 4
SYNC:AUSART 模式选择位
1 = 同步模式
0 = 异步模式
bit 3
未实现:读为 0
bit 2
BRGH:高波特率选择位
异步模式:
1 = 高速
0 = 低速
同步模式:
在此模式下未使用
bit 1
TRMT:发送移位寄存器状态位
1 = TSR 为空
0 = TSR 已满
bit 0
TX9D:发送数据的第 9 位
可以是地址 / 数据位或奇偶校验位。
注
x = 未知
1: 同步模式下, SREN/CREN 的优先级高于 TXEN。
DS41250F_CN 第 130 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
RCSTA:接收状态和控制寄存器 (1)
寄存器 9-2:
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R-0
R-0
R-x
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
SPEN:串行端口使能位
1 = 使能串行端口 (将 RX/DT 和 TX/CK 引脚配置为串行端口引脚)
0 = 禁止串行端口 (保持在复位状态)
bit 6
RX9:9 位接收使能位
1 = 选择 9 位接收
0 = 选择 8 位接收
bit 5
SREN:单字接收使能位
异步模式:
忽略
同步主模式:
1 = 使能单字接收
0 = 禁止单字接收
此位在接收完成后清零。
同步从模式:
忽略
bit 4
CREN:连续接收使能位
异步模式:
1 = 使能接收器
0 = 禁止接收器
同步模式:
1 = 使能连续接收,直到使能位 CREN 清零 (CREN 的优先级高于 SREN)
0 = 禁止连续接收
bit 3
ADDEN:地址检测使能位
9 位异步模式 (RX9 = 1 ):
1 = 当 RSR<8> 置 1 时,使能地址检测,允许中断并装载接收缓冲器
0 = 禁止地址检测,接收所有字节并且第 9 位可用作奇偶校验位
8 位异步模式 (RX9 = 0 ):
忽略
同步模式:
必须设置为 0
bit 2
FERR:帧错误标志位
1 = 帧错误 (读 RCREG 寄存器可更新该位,并接收下一个有效字节)
0 = 无帧错误
bit 1
OERR:溢出错误位
1 = 溢出错误 (清零 CREN 位可将该位清零)
0 = 无溢出错误
bit 0
RX9D:接收数据的第 9 位
此位可以是地址 / 数据位或奇偶校验位,但必须由用户固件计算得到。
 2007 Microchip Technology Inc.
DS41250F_CN 第 131 页
PIC16F913/914/916/917/946
9.2
AUSART 波特率发生器 (BRG)
例 9-1:
计算波特率误差
波特率发生器 (Baud Rate Generator, BRG)是一个
8 位定时器,专用于支持 AUSART 的异步和同步模式。
SPBRG寄存器控制着自由运行的波特率定时器的周期。
在异步模式下,由 TXSTA 寄存器的 BRGH 控制波特率
倍频器周期。在同步模式下, BRGH 位被忽略。
针对工作在异步模式下,工作频率 FOSC 为 16 MHz,
目标波特率为 9600 bps 的器件:
FOSC
目标波特率 = -------------------------------------64 ( SPBRG + 1 )
表 9-3 包含了计算波特率的公式。例 9-1 给出了一个计
算波特率和波特率误差的示例。
求解 SPBRG:
表 9-3 中给出了已经计算好的各种异步模式下的典型波
特率和波特率误差值,可便于您使用。 使用高波特率
(BRGH = 1)有利于减少波特率误差。
F OS C
-------------------------------------------------目标波特率
Desired
Baud Rate
X = --------------------------------------------------- – 1
64
向 SPBRG 寄存器写入新值,会导致 BRG 定时器复位
(或清零)。这可以确保 BRG 无需等待定时器溢出就可
以输出新的波特率。
16000000
-----------------------9600
= ------------------------ – 1
64
= [ 25.042 ] = 25
16000000
= --------------------------64 ( 25 + 1 )
计算波特率
Calculat ed
Baud Rate
= 9615
计算波特率
目标波特率
Calc.
Baud Rate – Desired
Baud Rate
Error
误差 = --------------------------------------------------------------------------------------------------------Desired
Baud Rate
目标波特率
( 9615 – 9600 )
= ---------------------------------- = 0.16%
9600
表 9-3:
波特率计算公式
配置位
AUSART 模式
波特率计算公式
0
异步
FOSC/[64 (n+1)]
0
1
异步
FOSC/[16 (n+1)]
1
x
同步
FOSC/[4 (n+1)]
SYNC
BRGH
0
图注:
表 9-4:
x = 忽略, n = SPBRG 寄存器的值
与波特率发生器相关的寄存器
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
SPBRG
BRG7
BRG6
BRG5
BRG4
BRG3
BRG2
BRG1
BRG0
0000 0000
0000 0000
TXSTA
CSRC
TX9
TXEN
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
图注:
x = 未知, - = 未实现单元 (读为 0)。波特率发生器不使用阴影单元。
DS41250F_CN 第 132 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 9-5:
目标
波特率
异步模式下的波特率
FOSC = 20.000 MHz
SYNC = 0, BRGH = 0
FOSC = 18.432 MHz
FOSC = 11.0592 MHz
SPBRG
实际
值
波特率
(十进制)
SPBRG
实际
值
波特率
(十进制)
SPBRG
实际
值
波特率
(十进制)
实际
波特率
误差
%
300
1200
—
1221
—
1.73
—
255
—
1200
—
0.00
—
239
—
1200
—
0.00
—
143
2400
2404
0.16
129
2400
0.00
119
2400
0.00
71
误差
%
误差
%
FOSC = 8.000 MHz
误差
%
SPBRG
值
(十进制)
—
1202
—
0.16
—
103
2404
0.16
51
9600
9470
-1.36
32
9600
0.00
29
9600
0.00
17
9615
0.16
12
10417
10417
0.00
29
10286
-1.26
27
10165
-2.42
16
10417
0.00
11
19.2k
19.53k
1.73
15
19.20k
0.00
14
19.20k
0.00
8
—
—
—
7
57.60k
0.00
2
—
—
—
—
—
—
—
—
—
—
57.6k
—
—
—
57.60k
0.00
115.2k
—
—
—
—
—
SYNC = 0, BRGH = 0
目标
波特率
FOSC = 3.6864 MHz
FOSC = 2.000 MHz
FOSC = 1.000 MHz
FOSC = 4.000 MHz
SPBRG
SPBRG
SPBRG
SPBRG
实际
误差
实际
误差
实际
误差
实际
误差
值
值
值
值
%
%
%
%
波特率
波特率
波特率
波特率
(十进制)
(十进制)
(十进制)
(十进制)
0.00
300
1200
300
1202
0.16
0.16
207
51
300
1200
0.00
191
47
300
1202
0.16
0.16
103
25
300
1202
0.16
0.16
51
12
2400
2404
0.16
25
2400
0.00
23
2404
0.16
12
—
—
—
9600
—
—
—
9600
0.00
5
—
—
—
—
—
—
10417
10417
0.00
5
—
—
—
10417
0.00
2
—
—
—
19.2k
—
—
—
19.20k
0.00
2
—
—
—
—
—
—
57.60k
—
0.00
0
—
—
—
—
—
—
—
—
—
—
—
—
—
—
57.6k
—
—
—
115.2k
—
—
—
SYNC = 0, BRGH = 1
目标
波特率
FOSC = 20.000 MHz
FOSC = 18.432 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
FOSC = 11.0592 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
FOSC = 8.000 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
SPBRG
值
(十进制)
—
—
实际
波特率
误差
%
300
—
—
—
—
—
—
—
—
—
1200
—
—
—
—
—
—
—
—
—
—
—
—
2400
—
—
—
—
—
—
—
—
—
2404
0.16
207
—
9600
9615
0.16
129
9600
0.00
119
9600
0.00
71
9615
0.16
51
10417
10417
0.00
119
10378
-0.37
110
10473
0.53
65
10417
0.00
47
19.2k
19.23k
0.16
64
19.20k
0.00
59
19.20k
0.00
35
19231
0.16
25
57.6k
56.82k
-1.36
21
57.60k
0.00
19
57.60k
0.00
11
55556
-3.55
8
115.2k
113.64k
-1.36
10
115.2k
0.00
9
115.2k
0.00
5
—
—
—
 2007 Microchip Technology Inc.
DS41250F_CN 第 133 页
PIC16F913/914/916/917/946
表 9-5:
异步模式下的波特率
SYNC = 0, BRGH = 1
目标
波特率
FOSC = 4.000 MHz
实际
波特率
误差
%
FOSC = 3.6864 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
FOSC = 2.000 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
FOSC = 1.000 MHz
SPBRG
实际
值
波特率
(十进制)
误差
%
SPBRG
值
(十进制)
300
—
—
—
—
—
—
—
—
—
300
0.16
207
1200
1202
0.16
207
1200
0.00
191
1202
0.16
103
1202
0.16
51
2400
2404
0.16
103
2400
0.00
95
2404
0.16
51
2404
0.16
25
9600
9615
0.16
25
9600
0.00
23
9615
0.16
12
—
—
—
10417
10417
0.00
23
10473
0.53
21
10417
0.00
11
10417
0.00
5
19.2k
19.23k
0.16
12
19.2k
0.00
11
—
—
—
—
—
—
57.6k
—
—
—
57.60k
0.00
3
—
—
—
—
—
—
115.2k
—
—
—
115.2k
0.00
1
—
—
—
—
—
—
DS41250F_CN 第 134 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.3
AUSART 同步模式
同步串行通信通常用于具有一个主器件和一个或多个从
器件的系统中。主器件包含产生波特率所必需的电路,
并为系统中所有器件提供时钟。从器件可以使用主器件
时钟,从而无需内部时钟生成电路。
在同步模式下,有 2 条信号线: 双向数据线和时钟线。
从器件使用主器件提供的外部时钟,将串行数据移入或
移出相应的接收和发送寄存器。 因为使用双向数据线,
所以同步操作只能采用半双工方式。 半双工方式是指:
主器件和从器件都可以接收和发送数据,但是不能同时
进行接收或发送。AUSART 既可以作为主器件,也可以
作为从器件。
9.3.1.2
由器件的 RX/DT 引脚输出数据。当 AUSART 配置为同
步主发送操作时,器件的 RX/DT 和 TX/CK 引脚输出驱
动器自动使能。
向 TXREG 寄存器写入一个字符开始发送。如果 TSR 中
仍 保 存 全 部 或 部 分 前 一 字 符,新 的 字 符 将 保 存 在
TXREG 中,直到发送完前一字符的停止位为止。 如果
这是第一个字符,或者前一个字符已经完全从 TSR 中清
除,则 TXREG 中的数据会被立即传输到 TSR 寄存器。
当数据从 TXREG 传输到 TSR 后会立即开始发送字符。
每个数据位在主时钟的上升沿发生改变,并保持有效,
直至下一个时钟上升沿为止。
同步发送时无需使用起始位和停止位。
9.3.1
注:
同步主模式
下列位用来将 EUSART 配置为同步主器件操作:
9.3.1.3
• SYNC = 1
• CSRC = 1
1.
• SREN = 0 (用于发送); SREN = 1 (用于接收)
• CREN = 0 (用于发送); CREN = 1 (用于接收)
• SPEN = 1
将 TXSTA 寄存器的 SYNC 位置 1,配置器件以用于同步
操作。将 TXSTA 寄存器的 CSRC 位置 1,将器件配置为
主器件。 将 RCSTA 寄存器的 SREN 和 CREN 位清零,
以确保器件处于发送模式,否则器件配置为接收模式。
将 RCSTA 寄存器的 SPEN 位置 1,使能 AUSART。
如果 TX/CK 和 RX/DT 引脚与 LCD 外设共用,必须清零
LCDSE1 寄存器的 SE8 和 SE9 位以禁止 LCD SEG8 和
SEG9 功能。
9.3.1.1
同步主发送
2.
3.
4.
5.
6.
7.
8.
TSR 寄存器并未映射到数据存储器中,因
此用户不能访问它。
同步主发送设置:
初始化 SPBRG 寄存器和 BRGH 位,以获得所需
的波特率 (见第 9.2 节 “AUSART 波特率发生
器 (BRG)”)。
通过将 SYNC、SPEN 和 CSRC 位置 1 可以使能
同步主串行端口。
将 SREN 和 CREN 位清零,禁止接收模式。
将 TXEN 位置 1 使能发送模式。
如果需要发送 9 位数据,则将 TX9 位置 1。
如果需要中断,将 PIE1 寄存器中的 TXIE 位和
INTCON 寄存器中的 GIE 和 PEIE 位置 1。
如果选择发送 9 位数据,应该将第 9 位数据装入
TX9D 位。
把数据装入 TXREG 寄存器启动发送。
主时钟
同步数据传输使用独立的时钟线同步数据传输。配置为
主器件的器件在TX/CK 引脚发送时钟信号。当AUSART
被配置为同步发送或接收操作时,TX/CK 引脚输出驱动
器自动使能。串行数据位在时钟上升沿发生改变,以确
保它们在每个时钟的下降沿有效。每个数据位的时间为
一个时钟周期,有多少数据位就有多少个时钟周期。
 2007 Microchip Technology Inc.
DS41250F_CN 第 135 页
PIC16F913/914/916/917/946
图 9-6:
同步发送
RX/DT
引脚
bit 0
bit 1
字1
bit 2
bit 7
bit 0
bit 1
bit 7
字2
TX/CK 引脚
写入
TXREG 寄存器
写字 1
写字 2
TXIF 位
(中断标志位)
TRMT 位
TXEN 位
注:
1
1
同步主模式 ( SPBRG = 0)连续发送 2 个 8 位字。
图 9-7:
同步发送 (通过 TXEN 位)
RX/DT 引脚
bit 0
bit 2
bit 1
bit 6
bit 7
TX/CK 引脚
写入
TXREG 寄存器
TXIF 位
TRMT 位
TXEN 位
表 9-6:
名称
与同步主发送相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
SPBRG
BRG7
BRG6
BRG5
BRG4
BRG3
BRG2
BRG1
BRG0
0000 0000
0000 0000
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
0000 0000
0000 0000
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
TXREG
TXSTA
图注:
AUSART 发送数据寄存器
CSRC
TX9
TXEN
x = 未知, - = 未实现单元 (读为 0)。同步主发送不使用阴影单元。
DS41250F_CN 第 136 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.3.1.4
同步主接收
RX/DT 引脚用作接收数据。 当 AUSART 配置为同步主
接收时,自动禁止器件的 RX/DT 引脚输出驱动器。
在同步模式下,将单字接收使能位 (RCSTA 寄存器的
SREN 位)或连续接收使能位(RCSTA 寄存器的 CREN
位)置 1 使能接收。
当将 SREN 置 1,CREN 位清零时,只产生与单字符的
数据位位数相同的时钟周期数量。 一个字符传输结束
后,自动清零 SREN 位。 将 CREN 置 1 时,将产生连
续时钟,直到清零 CREN 为止。如果在接收字符过程中
清零 CREN,则 CK 时钟将立即停止,并丢弃接收到的
部分字符。如果 SREN 和 CREN 都被置 1,则在第一个
字符传输完成时,清零SREN位,CREN的优先级更高。
将 SREN 或 CREN 位置 1,启动接收。 在 TX/CK 时钟
引脚下降沿采样 RX/DT 引脚上的数据,并将采样数据移
入接收移位寄存器 (RSR)。 当 RSR 接收到一个完整
字符时,将 PIR1 寄存器的 RCIF 位置 1,字符自动移入
2 字节接收 FIFO。接收 FIFO 中最顶端字符的低 8 位可
通过 RCREG 读取。 只要接收 FIFO 中仍有未读字符,
则 RCIF 位就保持置 1 状态。
9.3.1.5
从时钟
同步数据传输使用独立的时钟线同步传输数据。 配置为
从器件的器件在 TX/CK引脚接收时钟信号。当 AUSART
配置为同步从发送或接收操作时,TX/CK 引脚输出驱动
器自动禁止。 串行数据位在时钟上升沿发生改变,以确
保它们在每个时钟的下降沿有效。 每个数据位的时间为
一个时钟周期,有多少数据位就有多少个时钟周期。
9.3.1.6
接收溢出错误
接收 FIFO 缓冲器可以保存 2 个字符。 在读 RCREG 以
访问 FIFO 之前,若完整地收到第 3 个字符,则产生溢
出错误。此时,将 RCSTA 寄存器的 OERR 位置 1。
FIFO 中先前的数据不会被覆盖。可以读取 FIFO 缓冲器
内的 2 个字符,但是在错误清除之前,不能再接收其他
字符。只能通过清除溢出条件,将 OERR 位清零。如果
发生溢出错误时,SREN 位为置 1 状态,CREN 位为清
零状态,则通过读 RCREG 寄存器清除此错误。如果溢
出时, CREN 也为置 1 状态,则可以清零 RCSTA 寄存
器的 CREN 位,从而清除错误条件。
 2007 Microchip Technology Inc.
9.3.1.7
接收 9 位字符
AUSART 支持接收 9 位字符。将 RCSTA 寄存器的 RX9
位置 1 时,AUSART 将接收到的每个字符的 9 位数据移
入 RSR。 RCSTA 寄存器的 RX9D 位是接收 FIFO 顶端
未读字符的第九位数据位 (最高数据位) 。 当从接收
FIFO 缓冲器读取 9 位数据时,必须在读 RCREG 的低
8 位之前,读取 RX9D 数据位。
由于同步模式不支持地址检测,因此必须清零 RCSTA
寄存器的 ADDEN 位。
9.3.1.8
同步主接收设置:
1.
用正确的波特率初始化 SPBRG 寄存器。按需要
将 BRGH 位置 1 或清零,以获得所需的波特率。
2. 通过将 SYNC、SPEN 和 CSRC 位置 1 可以使能
同步主串行端口。
3. 确保 CREN 和 SREN 位清零。
4. 如果需要中断,将 PIE1 寄存器的 RCIE 位和
INTCON 寄存器的 GIE 和 PEIE 位置 1。
5. 如果需要接收 9 位字符,则将 RX9 位置 1。
6. 将 RCSTA 寄存器的 ADDEN 位清零,禁止校验
地址检测。
7. 将 SREN 位置 1,启动接收,或将 CREN 位置 1
使能连续接收。
8. 当字符接收完毕后,将 PIR1 寄存器的 RCIF 中
断标志位置 1。如果将 PIE1 寄存器的 RCIE 中断
允许位置 1,还会产生中断。
9. 读 RCSTA 寄存器以获取第 9 位数据位 (使能
时),并判断接收过程中是否产生错误。
10. 读 RCREG 寄存器来读取接收到的 8 位数据。
11. 如果产生溢出错误,清零RCSTA寄存器的CREN
位或清零 SPEN(复位 AUSART)以清除错误。
DS41250F_CN 第 137 页
PIC16F913/914/916/917/946
图 9-8:
同步接收 (主模式, SREN)
RX/DT
引脚
bit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 7
TX/CK 引脚
(SCKP = 0)
TX/CK 引脚
(SCKP = 1)
写入
SREN 位
SREN 位
CREN 位 0
0
RCIF 位
(中断)
读
RXREG
注:
时序图说明了 SREN = 1 和 BRGH = 0 时的同步主模式。
表 9-7:
名称
与同步主接收相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
PIR1
RCREG
RCSTA
AUSART 接收数据寄存器
SPEN
RX9
SREN
0000 0000
0000 0000
0000 0000
0000 0000
CREN
ADDEN
FERR
OERR
RX9D
0000 000X
0000 000X
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
TXSTA
CSRC
TX9
TXEN
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
图注:
x = 未知, - = 未实现单元 (读为 0)。同步主接收不使用阴影单元。
DS41250F_CN 第 138 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.3.2
如果向缓冲器 TXREG 写入 2 个字,然后执行 SLEEP 指
令,则会发生以下事件:
同步从模式
下列位用来将 AUSART 配置为同步从操作:
1.
2.
3.
4.
• SYNC = 1
• CSRC = 0
• SREN = 0 (用于发送); SREN = 1 (用于接收)
• CREN = 0 (用于发送); CREN = 1 (用于接收)
• SPEN = 1
将 TXSTA 寄存器的 SYNC 位置 1,配置器件以用于同步
操作。 将 TXSTA 寄存器的 CSRC 位清零,将器件配置
为从器件。将 RCSTA 寄存器的 SREN 和 CREN 位清零,
以确保器件处于发送模式,否则器件将被配置为接收模
式。将 RCSTA 寄存器的 SPEN 位置 1,使能 AUSART。
如果 TX/CK 和 RX/DT 引脚与 LCD 外设共用,必须清零
LCDSE1 寄存器的 SE8 和 SE9 位以禁止 LCD SEG8 和
SEG9 功能。
9.3.2.1
5.
9.3.2.2
1.
2.
3.
4.
5.
6.
AUSART 同步从发送
除了休眠模式以外,同步主模式、从模式的工作原理是
相同的 (见第 9.3.1.2 节 “同步主发送”)。
7.
8.
表 9-8:
第一个字立即传输到 TSR 寄存器并进行发送。
第二个字留在 TXREG 寄存器中。
TXIF 位不会置 1。
第一个字符移出 TSR 后,TXREG 寄存器将把第
二个字符传输到 TSR,然后标志位 TXIF 置 1。
如果 PEIE 和 TXIE 位都置 1,则由中断将器件从
休眠模式唤醒,然后执行下一条指令。如果 GIE
位也置 1,程序将调用中断服务程序。
同步从发送设置:
将 SYNC 和 SPEN 位置 1,并将 CSRC 位清零。
将 CREN 和 SREN 位清零。
如果使用中断,应确保将 INTCON 寄存器的 GIE
和 PEIE 位置 1,并将 TXIE 位置 1。
如果需要发送 9 位数据,则将 TX9 位置 1。
将 TXEN 位置 1 使能发送。
将 RCSTA 寄存器的 ADDEN 位清零,禁止校验
地址检测。
如果选择发送9位数据,将最高位写入TX9D 位。
将低 8 位数据写入 TXREG 寄存器启动发送。
与同步从发送相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
名称
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000X
0000 000X
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
0000 0000
0000 0000
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
TXREG
TXSTA
AUSART 发送数据寄存器
CSRC
TX9
TXEN
图注:
x = 未知, - = 未实现单元 (读为 0)。同步从发送不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 139 页
PIC16F913/914/916/917/946
9.3.2.3
AUSART 同步从接收
9.3.2.4
除了以下不同外,同步主、从模式的工作原理是相同的
(见第 9.3.1.4 节 “同步主接收”)。
1.
2.
• 休眠
• CREN 位总是置 1,因此接收器不能进入空闲状
态。
• SREN 位在从模式下被忽略。
3.
4.
5.
6.
如果在进入休眠模式之前,已经将 CREN 位置 1,则在
休眠模式仍可接收字符。接收完该字后,RSR 寄存器将
把接收到的数据传输到 RCREG 寄存器。如果将 PIE1
寄存器的 RCIE 中断允许位置 1,则将产生中断,并将
器件从休眠模式唤醒,然后执行下一条指令。如果 GIE
位也置 1,则程序将跳转到中断向量处执行。
7.
8.
9.
表 9-9:
名称
同步从接收设置:
将 SYNC 和 SPEN 位置 1,并将 CSRC 位清零。
如果需要中断,将 PIE1 寄存器的 RCIE 位和
INTCON 寄存器的 GIE 和 PEIE 位置 1。
如果需要接收 9 位数据,则将 RX9 位置 1。
将 RCSTA 寄存器的 ADDEN 位清零,禁止校验
地址检测。
将 CREN 位置 1,使能接收。
当接收完成后,将 PIR1 寄存器的 RCIF 位置 1。
如果 PIE1 寄存器的 RCIE 位也被置 1,还将产生
中断。
如果使能 9 位模式,则从 RCSTA 寄存器的 RX9D
位获取最高数据位。
通过读 RCREG 寄存器,可从接收 FIFO 缓冲器
获取接收到的 8 个低数据位。
如果产生溢出错误,清零RCSTA寄存器的CREN
位以清除错误。
与同步从接收相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
RCREG
RCSTA
AUSART 接收数据寄存器
SPEN
RX9
SREN
0000 0000
0000 0000
0000 0000
0000 0000
0000 000X
CREN
ADDEN
FERR
OERR
RX9D
0000 000X
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
CSRC
TX9
TXEN
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
TXSTA
图注:
x = 未知, - = 未实现单元 (读为 0)。同步从接收不使用阴影单元。
DS41250F_CN 第 140 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
9.4
AUSART 在休眠期间的工作
只有在同步从模式下,AUSART 在休眠期间才可继续工
作。所有其他模式都需要系统时钟,因此不能产生在休
眠模式下运行发送或接收移位寄存器所必需的信号。
同步从模式使用外部产生的时钟对发送和接收移位寄存
器进行操作。
9.4.1
休眠期间的同步接收
要在休眠期间执行接收操作,在进入休眠模式之前必须
满足下列所有条件:
• RCSTA 和 TXSTA 控制寄存器必须配置为同步从
接收 (见第 9.3.2.4 节 “同步从接收设置:”)。
• 如果需要中断,将 PIE1 寄存器的 RCIE 位和
INTCON 寄存器的 PEIE 位置 1。
• 必须通过读取 RCREG 寄存器将 RCIF 中断标志位
清零,以卸载接收缓冲器中所有待处理的字符。
进入休眠模式后,器件已准备好分别接受 RX/DT 和
TX/CK 引脚上的数据和时钟信号。当外部器件将数据字
完全移入后,将 PIR1 寄存器的 RCIF 中断标志位置 1。
从而,将处理器从休眠模式唤醒。
9.4.2
休眠期间的同步发送
要在休眠期间执行发送操作,在进入休眠模式之前必须
满足下列所有条件:
• RCSTA 和 TXSTA 控制寄存器必须配置为同步从
发送模式 (见第 9.3.2.2 节 “同步从发送设
置:”)。
• 将输出数据写入 TXREG 来清零 TXIF 中断标志
位,从而填充 TSR 和发送缓冲器。
• 如果需要中断,将 PIE1 寄存器的 TXIE 位和
INTCON 寄存器的 PEIE 位置 1。
进入休眠模式后,器件已准备好接受 TX/CK 上的时钟信
号和发送 RX/DT 引脚上的数据。当外部器件将 TSR 中
数据字全部移出后, TXREG 中的待处理字节将被发送
到 TSR,且 TXIF 标志位置 1。 从而将处理器从休眠模
式唤醒。 此时, TXREG 可用于接收其他发送字符,此
操作将清零 TXIF 标志位。
从休眠模式唤醒后,器件将执行 SLEEP 指令后面的指
令。如果GIE全局中断允许位也置1,则调用地址0004h
处的中断服务程序。
从休眠模式唤醒后,器件将执行 SLEEP 指令后面的指
令。如果 INTCON 寄存器的 GIE 全局中断允许位也置
1,则调用地址 004h 处的中断服务程序。
 2007 Microchip Technology Inc.
DS41250F_CN 第 141 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 142 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
10.0
液晶显示 (LCD)驱动模块
液晶显示 (Liquid Crystal Display, LCD)驱动模块产
生时 序控 制来 驱动 静态 或复 用的 LCD 面 板。在
PIC16F913/916 器件中,模块最多能驱动 4 个公共端和
16 段的面板。在 PIC16F914/917 器件中,模块最多能
驱动 4 个公共端和 24 段的面板。在 PIC16F946 器件
中,模块最多能驱动 4 个公共端和 42 段的面板。 LCD
模块同时可以控制 LCD 像素数据。
LCD 驱动模块支持:
• LCD 面板的直接驱动
• 3 个带有可选择预分频比的 LCD 时钟源
• 多达 4 个公共端:
- 静态 (1 个公共端)
- 1/2 复用 (2 个公共端)
- 1/3 复用 (3 个公共端)
- 1/4 复用 (4 个公共端)
• 段多达:
- 16 (PIC16F913/916 器件中)
- 24 (PIC16F914/917 器件中)
- 42 (PIC16F946 器件中)
• 静态、 1/2 或 1/3 LCD 偏置
10.1
下列 LCDSE 寄存器可用于控制相应端口引脚:
•
•
•
•
•
•
LCDSE0
LCDSE1
LCDSE2
LCDSE3
LCDSE4
LCDSE5
注
SE<7:0>
SE<15:8>
SE<23:16>(1)
SE<31:24>(2)
SE<39:32>(2)
SE<41:40>(2)
1: 仅 PIC16F914/917 和 PIC16F946 器件。
2: 仅 PIC16F946 器件。
一旦为 LCD 面板初始化了模块,LCDDATA<11:0> 寄存
器的各个位就被清零/置1以分别代表透明/不透明像素:
PIC16F913/916 器件的 COM3 和 SEG15
共用同一物理引脚,所以使用 1/4 复用显示
时 SEG15 不可用。
注:
LCDCON 寄存器(寄存器 10-1)控制 LCD 驱动模块的
操作。 LCDPS 寄存器 (寄存器 10-2)配置 LCD 时钟
源预分频器和波形类型:A 型或 B 型。 LCDSE 寄存器
(寄存器 10-3)配置以下端口引脚的功能。
LCD 寄存器
•
•
•
•
•
•
•
•
•
•
•
•
LCDDATA0
LCDDATA1
LCDDATA2
LCDDATA3
LCDDATA4
LCDDATA5
LCDDATA6
LCDDATA7
LCDDATA8
LCDDATA9
LCDDATA10
LCDDATA11
SEG<7:0>COM0
SEG<15:8>COM0
SEG<23:16>COM0
SEG<7:0>COM1
SEG<15:8>COM1
SEG<23:16>COM1
SEG<7:0>COM2
SEG<15:8>COM2
SEG<23:16>COM2
SEG<7:0>COM3
SEG<15:8>COM3
SEG<23:16>COM3
下列寄存器仅在 PIC16F946 器件上可用:
该模块包含下列寄存器:
PIC16F913/916
2
8
•
•
•
•
•
•
•
•
•
•
•
•
PIC16F914/917
3
12
作为示例,寄存器 10-4 详细说明了 LCDDATAx。
PIC16F946
6
24
一旦配置了模块后,LCDCON 寄存器的 LCDEN 位就可
用来使能或禁止 LCD 模块。通过清零 LCDCON 寄存器
的 SLPEN 位可使 LCD 面板在休眠模式下仍继续工作。
•
•
•
•
LCD 控制寄存器 (LCDCON)
LCD 相位寄存器 (LCDPS)
最多 6 个 LCD 段使能寄存器 (LCDSEn)
最多 24 个 LCD 数据寄存器 (LCDDATA)
表 10-1:
器件
LCD 段寄存器和数据寄存器
LCD 寄存器数
段使能
数据
LCDDATA12
LCDDATA13
LCDDATA14
LCDDATA15
LCDDATA16
LCDDATA17
LCDDATA18
LCDDATA19
LCDDATA20
LCDDATA21
LCDDATA22
LCDDATA23
注:
 2007 Microchip Technology Inc.
SEG<31:24>COM0
SEG<39:32>COM0
SEG<41:40>COM0
SEG<31:24>COM1
SEG<39:32>COM1
SEG<41:40>COM1
SEG<31:24>COM2
SEG<39:32>COM2
SEG<41:40>COM2
SEG<31:24>COM3
SEG<39:32>COM3
SEG<41:40>COM3
在PIC16F913/916器件中未实现LCDDATA2、
LCDDATA5、LCDDATA8 和 LCDDATA11 寄
存器。
DS41250F_CN 第 143 页
PIC16F913/914/916/917/946
图 10-1:
LCD 驱动模块框图
数据总线
LCDDATAx
寄存器
MUX
SEG<41:0>(1, 2, 3)
到 I/O 引脚 (1)
时序控制
LCDCON
LCDPS
COM<3:0>(3)
到 I/O 引脚 (1)
LCDSEn
FOSC/8192
T1OSC/32
LFINTOSC/32
注
时钟源
选择和
预分频器
1: 这些信号不直接与 I/O 引脚相连,根据于 LCD 模块的配置,它们可能处于三态。
2: 在 PIC16F914/917 器件上为 SEG<23:0>,在 PIC16F913/916 器件上为 SEG<15:0>。
3: PIC16F913/916 器件的 COM3 和 SEG15 共用同一物理引脚,所以使用 1/4 复用显示时
SEG15 不可用。
DS41250F_CN 第 144 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 10-1:
LCDCON:液晶显示控制寄存器
R/W-0
R/W-0
R/C-0
R/W-1
R/W-0
R/W-0
R/W-1
R/W-1
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
C = 只可清零位
1=置1
0 = 清零
x = 未知
- n = 上电复位时的值
bit 7
LCDEN:LCD 驱动使能位
1 = 使能 LCD 驱动模块
0 = 禁止 LCD 驱动模块
bit 6
SLPEN:休眠模式下 LCD 驱动使能位
1 = 休眠模式下禁止 LCD 驱动模块
0 = 休眠模式下使能 LCD 驱动模块
bit 5
WERR:LCD 写失败错误位
1 = 当 LCDPS 寄存器的 WA = 0 时,写 LCDDATAx 寄存器 (必须由软件清零)
0 = 无 LCD 写错误
bit 4
VLCDEN:LCD 偏置电压引脚使能位
1 = 使能 VLCD 引脚
0 = 禁止 VLCD 引脚
bit 3-2
CS<1:0>:时钟源选择位
00 = FOSC/8192
01 = T1OSC (Timer1) /32
1x = LFINTOSC (31 kHz) /32
bit 1-0
LMUX<1:0>:公共端选择位
最大像素数
LMUX<1:0>
复用
00
静态 (COM0)
16
24
42
静态
48
84
1/2 或 1/3
10
1/2 (COM<1:0>)
1/3 (COM<2:0>)
32
48
72
126
11
1/4 (COM<3:0>)
60(1)
96
168
1/2 或 1/3
1/3
01
注
PIC16F913/916
PIC16F914/917
PIC16F946
偏置
1: PIC16F913/916 器件的 COM3 和 SEG15 共用同一引脚,从而限制器件最多驱动 64 个像素。
 2007 Microchip Technology Inc.
DS41250F_CN 第 145 页
PIC16F913/914/916/917/946
寄存器 10-2:
LCDPS:LCD 预分频比选择寄存器
R/W-0
R/W-0
R-0
R-0
R/W-0
R/W-0
R/W-0
R/W-0
WFT
BIASMD
LCDA
WA
LP3
LP2
LP1
LP0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
WFT:波形类型选择位
1 = B 型波形 (在每一帧边界改变相位)
0 = A 型波形 (在每一公共端类型内改变相位)
bit 6
BIASMD:偏置模式选择位
当 LMUX<1:0> = 00 时:
0 = 静态偏置模式 (不要将该位置 1)
当 LMUX<1:0> = 01 时:
1 = 1/2 偏置模式
0 = 1/3 偏置模式
当 LMUX<1:0> = 10 时:
1 = 1/2 偏置模式
0 = 1/3 偏置模式
当 LMUX<1:0> = 11 时:
0 = 1/3 偏置模式 (不要将该位置 1)
bit 5
LCDA:LCD 工作状态位
1 = 使能 LCD 驱动模块
0 = 禁止 LCD 驱动模块
bit 4
WA:LCD 写允许状态位
1 = 允许写入 LCDDATAx 寄存器
0 = 不允许写入 LCDDATAx 寄存器
bit 3-0
LP<3:0>:LCD 预分频比选择位
1111 = 1:16
1110 = 1:15
1101 = 1:14
1100 = 1:13
1011 = 1:12
1010 = 1:11
1001 = 1:10
1000 = 1:9
0111 = 1:8
0110 = 1:7
0101 = 1:6
0100 = 1:5
0011 = 1:4
0010 = 1:3
0001 = 1:2
0000 = 1:1
DS41250F_CN 第 146 页
x = 未知
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 10-3:
LCDSEn:LCD 段使能寄存器
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
SEn
SEn
SEn
SEn
SEn
SEn
SEn
SEn
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
SEn:段使能位
1 = 使能引脚的段功能
0 = 使能引脚的 I/O 功能
寄存器 10-4:
R/W-x
x = 未知
LCDDATAx:LCD 数据寄存器
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
SEGx-COMy:像素点亮位
1 = 点亮像素 (不透明)
0 = 不点亮象素 (透明)
 2007 Microchip Technology Inc.
DS41250F_CN 第 147 页
PIC16F913/914/916/917/946
10.2
LCD 时钟源选择
10.2.1
LCD 预分频器
一个 4 位计数器可用作 LCD 时钟的预分频器。该预分频
器不可直接读写;它的值由 LCDPS 寄存器的 LP<3:0>
位设置,该值决定了预分频器的分配和预分频比。
LCD 驱动模块具有 3 个可用的时钟源:
• FOSC/8192
• T1OSC/32
• LFINTOSC/32
预分频比从 1:1 到 1:16。
第一 个时 钟源 是系 统时 钟的 8192 分 频时 钟信 号
(FOSC/8192)。 当系统时钟为 8 MHz 时,选择该分频
比将提供约 1 kHz 的输出。该分频比不可编程。 相反,
LCDPS 寄存器的 LCD 预分频比位 LP<3:0> 则用于设置
LCD 帧时钟速率。
第二个时钟源是 T1OSC/32。当 Timer1 振荡器使用
32.768 kHz 晶振时它同样提供约 1 kHz 的输出。 要把
Timer1 振荡器用作时钟源,需将 T1CON 寄存器的
T1OSCEN 位置 1。
第三个时钟源是 31 kHz 的 LFINTOSC/32,它提供大约
1 kHz 的输出。
当处理器休眠时,第二个和第三个时钟源用于维持 LCD
运行。
使用 LCDCON 寄存器的 CS<1:0> 位可选择其中一个时
钟源。
图 10-2:
10.3
LCD 偏置类型
LCD 驱动模块可被配置为 3 种偏置类型:
• 静态偏置 (2 种电压等级:VSS 和 VDD)
• 1/2 偏置 (3 种电压等级:VSS、 1/2 VDD 和 VDD)
• 1/3 偏置 (4 种电压等级:VSS、 1/3 VDD、 2/3 VDD
和 VDD)
模块使用外部梯形电阻产生 LCD 偏置电压。
外部梯形电阻应该连接到 VLCD1 引脚(偏置引脚 1)、
VLCD2 引脚 (偏置引脚 2)、 VLCD3 引脚 (偏置引脚
3)和 VSS。还应该把 VLCD3 引脚连接到 VDD。
图 10-2 给出了连接梯形电阻与偏置引脚的正确方法。
注:
上电复位 (POR)时,用于提供 LCD 偏置
电压的 VLCD 引脚会被使能,用户必须通过
清零 LCDCON 寄存器的 VLCDEN 位来禁
止 VLCD 引脚。
LCD 偏置梯形电阻连接框图
静态偏置
VLCD 3
至
VLCD 2
LCD
VLCD 1
驱动器
VLCD 0(1)
LCD 偏置 3
LCD 偏置 2
LCD 偏置 1
1/3 偏置
VLCD 0
VSS
VSS
VSS
VLCD 1
—
1/2 VDD
1/3 VDD
VLCD 2
—
1/2 VDD
2/3 VDD
VLCD 3
VDD
VDD
VDD
连接外部梯形电阻
静态偏置
VDD*
VDD*
1/2 偏置
10 kΩ*
1/2 偏置
10 kΩ*
VSS
VDD*
10 kΩ*
10 kΩ*
1/3 偏置
10 kΩ*
VSS
注
* 上述值仅供设计参考,设计人员在实际应用时应对其进行优化。
1: 内部连接。
DS41250F_CN 第 148 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
10.4
LCD 复用类型
10.7
LCD 驱动模块可以被配置为 4 种复用类型:
•
•
•
•
COM 和 SEG 输出改变的速率称为 LCD 帧频率。
静态 (只使用 COM0)
1/2 复用 (使用 COM<1:0>)
1/3 复用 (使用 COM<2:0>)
1/4 复用 (使用 COM<3:0>)
表 10-3:
LCDCON 寄存器的 LMUX<1:0> 位的设置决定 RB5、
RA2 和 RA3 或 RD0 引脚的功能 (详情见表 10-2)。
如果引脚为数字 I/O,相应的 TRIS 位控制数据方向。如
果引脚为 COM 驱动,那么该引脚的 TRIS 设置将不起
作用。
上电复位时,LCDCON寄存器的LMUX<1:0>
位为 11。
注:
表 10-2:
LMUX
<1:0>
RA3/RD0(1)
RA2
RB5
静态
00
数字 I/O
数字 I/O
数字 I/O
1/2
01
数字 I/O
数字 I/O
1/3
10
数字 I/O
1/4
11
COM3 驱动
10.5
1:
帧频率公式
复用
帧频率 =
静态
1/2
时钟源 /(4 x 1 x (LP<3:0> + 1))
1/3
时钟源 /(1 x 3 x (LP<3:0> + 1))
1/4
注:
表 10-4:
RA3/RD0、 RA2 和 RB5 的功能
复用
注
LCD 帧频率
时钟源 /(2 x 2 x (LP<3:0> + 1))
时钟源 /(1 x 4 x (LP<3:0> + 1))
时钟源是 FOSC/8192、 T1OSC/32
LFINTOSC/32。
或
使用 8 MHz 的 FOSC、工作在
32.768 kHz 的 TIMER1 或
LFINTOSC 振荡器时的近似帧频
率 (单位 Hz)
LP<3:0>
静态
1/2
1/3
1/4
COM1 驱动
2
85
85
114
85
COM2 驱动
COM1 驱动
3
64
64
85
64
COM2 驱动
COM1 驱动
4
51
51
68
51
5
43
43
57
43
6
37
37
49
37
7
32
32
43
32
PIC16F913/916 使用 RA3, PIC16F914/917 和
PIC16F946 使用 RD0
段使能
LCDSEn 寄存器用于选择每个段引脚的引脚功能。引脚
功能选择可使每个引脚工作为LCD段驱动或者负责提供
引脚的备用功能。要把引脚配置为段引脚,LCDSEn 寄
存器中的相应位必须置 1。
如果引脚为数字 I/O,相应的 TRIS 位控制数据方向。
LCDSEn 寄存器中的任何一位置 1 都会覆盖对应 TRIS
寄存器中相应位的设置。
注:
10.6
在 上 电复 位 时,这 些 引 脚 被配 置 为 数 字
I/O。
像素控制
LCDDATAx寄存器中的位用于定义像素状态。每一位只
定义一个像素。
寄存器 10-4 所示为 LCDDATAx 寄存器中的每一位同各
个公共端、段信号间的相互关系。
没有用于显示的 LCD 像素地址可被用作通用 RAM。
 2007 Microchip Technology Inc.
DS41250F_CN 第 149 页
PIC16F913/914/916/917/946
LCD 时钟产生
FOSC
COM0
COM1
COM2
COM3
图 10-3:
÷8192
T1OSC 32 kHz
晶振
LFINTOSC
标称频率 = 31 kHz
÷32
CS<1:0>
(LCDCON<3:2>)
DS41250F_CN 第 150 页
÷4
静态
÷2
1/2
÷32
4 位可编程预分频器
÷1, 2, 3, 4
环形计数器
1/3,
1/4
LP<3:0>
(LCDPS<3:0>)
LMUX<1:0>
(LCDCON<1:0>)
LMUX<1:0>
(LCDCON<1:0>)
 2007 Microchip Technology Inc.
COM0
 2007 Microchip Technology Inc.
LCDDATA2, 4
SEG20
COM1
LCDDATA5, 7
LCDDATA5, 6
LCDDATA5, 5
LCDDATA5, 4
LCDDATA5, 3
LCDDATA5, 2
LCDDATA5, 1
LCDDATA5, 0
LCDDATA4, 7
LCDDATA4, 6
LCDDATA4, 5
LCDDATA4, 4
LCDDATA4, 3
LCDDATA4, 2
LCDDATA4, 1
LCDDATA4, 0
LCDDATA3, 7
LCDDATA3, 6
LCDDATA3, 5
LCDDATA3, 4
LCDDATA3, 3
LCDDATA3, 2
LCDDATA3, 1
LCDDATA3, 0
LCDDATAx
地址
仅适用于PIC16F914/917 和 PIC16F946。
* = 仅适用于 PIC16F913/916。
LCDDATA2, 7
LCDDATA2, 3
SEG19
LCDDATA2, 6
LCDDATA2, 2
SEG18
SEG23
LCDDATA2, 1
SEG17
SEG22
LCDDATA2, 0
SEG16
LCDDATA2, 5
LCDDATA1, 7
SEG21
LCDDATA1, 6
SEG15
LCDDATA1, 1
SEG9
SEG14
LCDDATA1, 0
SEG8
LCDDATA1, 5
LCDDATA0, 7
SEG7
SEG13
LCDDATA0, 6
SEG6
LCDDATA1, 4
LCDDATA0, 5
SEG5
SEG12
LCDDATA0, 4
SEG4
LCDDATA1, 2
LCDDATA0, 3
SEG3
LCDDATA1, 3
LCDDATA0, 2
SEG2
SEG11
LCDDATA0, 1
SEG1
LCD
段
LCD
段
COM2
LCDDATA8, 7
LCDDATA8, 6
LCDDATA8, 5
LCDDATA8, 4
LCDDATA8, 3
LCDDATA8, 2
LCDDATA8, 1
LCDDATA8, 0
LCDDATA7, 7
LCDDATA7, 6
LCDDATA7, 5
LCDDATA7, 4
LCDDATA7, 3
LCDDATA7, 2
LCDDATA7, 1
LCDDATA7, 0
LCDDATA6, 7
LCDDATA6, 6
LCDDATA6, 5
LCDDATA6, 4
LCDDATA6, 3
LCDDATA6, 2
LCDDATA6, 1
LCDDATA6, 0
LCDDATAx
地址
LCD
段
COM3
LCDDATA11, 7
LCDDATA11, 6
LCDDATA11, 5
LCDDATA11, 4
LCDDATA11, 3
LCDDATA11, 2
LCDDATA11, 1
LCDDATA11, 0
LCDDATA10, 7
LCDDATA10, 6
LCDDATA10, 5
LCDDATA10, 4
LCDDATA10, 3
LCDDATA10, 2
LCDDATA10, 1
LCDDATA10, 0
LCDDATA9, 7
LCDDATA9, 6
LCDDATA9, 5
LCDDATA9, 4
LCDDATA9, 3
LCDDATA9, 2
LCDDATA9, 1
LCDDATA9, 0
LCDDATAx
地址
LCD
段
—
—
—
—
—
—
—
—
5
27
28
2
15
16
17
18
3
14
7
6
24
23
22
21
28 引脚
10
9
8
30
29
28
27
26
5
39
40
2
23
24
25
26
3
18
7
6
36
35
34
33
40 引脚
引脚号
35
34
33
2
1
64
63
58
30
23
24
27
59
60
61
62
28
52
32
31
18
17
16
15
64 引脚
RE2
RE1
RE0
RD7
RD6
RD5
RD4
RD3
RA3
RB6
RB7
RA0
RC4
RC5
RC6
RC7
RA1
RC3
RA5
RA4
RB3
RB2
RB1
RB0
端口
AN7
AN6
AN5
AN3/VREF+/COM3*
ICSPCLK/ICDCK
ICSPDAT/ICDDAT
AN0/C1-
T1G/SDO
T1CKI/CCP1
TX/CK/SCK/SCL
RX/DT/SDI/SDA
AN1/C2-
C2OUT/AN4/SS
C1OUT/T0CKI
INT
备用
功能
图 10-4:
SEG10
LCDDATA0, 0
LCDDATAx
地址
SEG0
LCD
功能
PIC16F913/914/916/917/946
LCD 段映射工作表 (第 1 部分,共 2 部分)
DS41250F_CN 第 151 页
LCDDATA12, 1
LCDDATA12, 2
LCDDATA12, 3
LCDDATA12, 4
LCDDATA12, 5
LCDDATA12, 6
LCDDATA12, 7
LCDDATA13, 0
LCDDATA13, 1
LCDDATA13, 2
LCDDATA13, 3
LCDDATA13, 4
LCDDATA13, 5
LCDDATA13, 6
LCDDATA13, 7
LCDDATA14, 0
LCDDATA14, 1
SEG25
SEG26
SEG27
SEG28
SEG29
SEG30
SEG31
SEG32
SEG33
SEG34
SEG35
SEG36
SEG37
SEG38
SEG39
SEG40
SEG41
LCD
段
DS41250F_CN 第 152 页
LCDDATA17, 1
LCDDATA17, 0
LCDDATA16, 7
LCDDATA16, 6
LCDDATA16, 5
LCDDATA16, 4
LCDDATA16, 3
LCDDATA16, 2
LCDDATA16, 1
LCDDATA16, 0
LCDDATA15, 7
LCDDATA15, 6
LCDDATA15, 5
LCDDATA15, 4
LCDDATA15, 3
LCDDATA15, 2
LCDDATA15, 1
LCDDATA15, 0
LCDDATAx
地址
COM1
LCD
段
LCDDATA20, 1
LCDDATA20, 0
LCDDATA19, 7
LCDDATA19, 6
LCDDATA19, 5
LCDDATA19, 4
LCDDATA19, 3
LCDDATA19, 2
LCDDATA19, 1
LCDDATA19, 0
LCDDATA18, 7
LCDDATA18, 6
LCDDATA18, 5
LCDDATA18, 4
LCDDATA18, 3
LCDDATA18, 2
LCDDATA18, 1
LCDDATA18, 0
LCDDATAx
地址
COM2
LCD
段
LCDDATA23, 1
LCDDATA23, 0
LCDDATA22, 7
LCDDATA22, 6
LCDDATA22, 5
LCDDATA22, 4
LCDDATA22, 3
LCDDATA22, 2
LCDDATA22, 1
LCDDATA22, 0
LCDDATA21, 7
LCDDATA21, 6
LCDDATA21, 5
LCDDATA21, 4
LCDDATA21, 3
LCDDATA21, 2
LCDDATA21, 1
LCDDATA21, 0
LCDDATAx
地址
COM3
LCD
段
引脚号
8
7
6
5
4
3
14
13
12
11
48
47
46
45
44
43
42
37
64 引脚
RG5
RG4
RG3
RG2
RG1
RG0
RF3
RF2
RF1
RF0
RF7
RF6
RF5
RF4
RE7
RE6
RE5
RE4
端口
备用
功能
图 10-5:
仅适用于 PIC16F946。
LCDDATA12, 0
LCDDATAx
地址
COM0
SEG24
LCD
功能
PIC16F913/914/916/917/946
LCD 段映射工作表 (第 2 部分,共 2 部分)
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
10.8
LCD 波形产生
因为要产生 LCD 波形,所以不透明像素上的净 AC 电压
应该是最大值,而透明像素上的净 AC 电压应该是最小
值。任何像素上的净 DC 电压应该为零。
COM 信号表示每个公共端的时间片,而 SEG 中包含像
素数据。
像素信号 (COM-SEG)中将不包含 DC 分量,并且只
可取两个 rms 值中的一个。 高 rms 值会产生不透明像
素,而低 rms 值会产生透明像素。
随着公共端数量的增加,两个 rms 值间的差值逐渐减
小。这个差值表示显示器可具有的最大对比度。
可以用两种波形驱动 LCD:A 型和 B 型。在 A 型波形
中,相位在每个公共端类型中改变,然而在 B 型波形
中,相位在每个帧边界上改变。这样, A 型波形在单帧
中维持 0 VDC,而 B 型波形则需要两个帧。
注
1: 如果器件休眠时必须使能
LCD
休眠
(LCDCON<SLPEN> = 1),则必须格外
小心,因为只有当所有像素上的 VDC 为 0
时才可执行 SLEEP 指令。
2: 当 LCD 时钟源为 FOSC/8192 时,不管
LCDCON<SLPEN> 设置如何,只要执行
SLEEP 指令,LCD 就会进入休眠状态。因
而当执行 SLEEP 指令时应注意查看所有像
素上的 VDC 是否为 0。
图 10-6 至图 10-16 所示为 A 型和 B 型波形在静态、1/2
复用、 1/3 复用和 1/4 复用驱动时的波形。
图 10-6:
在静态驱动时的 A/B 型波形
V1
COM0
V0
COM0
V1
SEG0
V0
V1
SEG1
V0
V1
V0
COM0-SEG0
-V1
COM0-SEG1
V0
SEG1
SEG0
SEG2
SEG7
SEG6
SEG5
SEG4
SEG3
1 个帧
 2007 Microchip Technology Inc.
DS41250F_CN 第 153 页
PIC16F913/914/916/917/946
图 10-7:
在 1/2 复用、 1/2 偏置驱动时的 A 型波形
V2
COM0
V1
V0
COM1
V2
COM1
COM0
V1
V0
V2
V1
SEG0
V0
V2
V1
SEG1
V2
SEG1
SEG0
SEG2
SEG3
V0
V1
V0
COM0-SEG0
-V1
-V2
V2
V1
V0
COM0-SEG1
-V1
1 个帧
DS41250F_CN 第 154 页
-V2
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 10-8:
在 1/2 复用、 1/2 偏置驱动时的 B 型波形
V2
V1
COM0
COM1
V0
COM0
V2
COM1
V1
V0
V2
SEG0
V1
SEG1
SEG0
SEG2
SEG3
V0
V2
SEG1
V1
V0
V2
V1
V0
COM0-SEG0
-V1
-V2
V2
V1
V0
COM0-SEG1
-V1
2 个帧
 2007 Microchip Technology Inc.
-V2
DS41250F_CN 第 155 页
PIC16F913/914/916/917/946
图 10-9:
在 1/2 复用、 1/3 偏置驱动时的 A 型波形
V3
V2
COM0
V1
COM1
V0
V3
COM0
V2
COM1
V1
V0
V3
V2
SEG0
V1
V0
SEG1
SEG0
SEG2
SEG3
V3
V2
SEG1
V1
V0
V3
V2
V1
V0
COM0-SEG0
-V1
-V2
-V3
V3
V2
V1
V0
COM0-SEG1
-V1
1 个帧
DS41250F_CN 第 156 页
-V2
-V3
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 10-10:
在 1/2 复用、 1/3 偏置驱动时的 B 型波形
V3
V2
COM0
V1
COM1
V0
V3
COM0
V2
COM1
V1
V0
V3
V2
SEG0
V1
V0
SEG1
SEG0
SEG2
SEG3
V3
V2
SEG1
V1
V0
V3
V2
V1
V0
COM0-SEG0
-V1
-V2
-V3
V3
V2
V1
V0
COM0-SEG1
-V1
2 个帧
 2007 Microchip Technology Inc.
-V2
-V3
DS41250F_CN 第 157 页
PIC16F913/914/916/917/946
图 10-11:
在 1/3 复用、 1/2 偏置驱动时的 A 型波形
V2
COM0
V1
V0
V2
COM2
COM1
V1
V0
COM1
V2
COM0
COM2
V1
V0
V2
SEG0
SEG2
V1
V0
V2
V1
V0
SEG0
SEG1
SEG2
SEG1
V2
V1
V0
COM0-SEG0
-V1
-V2
V2
V1
V0
COM0-SEG1
-V1
-V2
1 个帧
DS41250F_CN 第 158 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 10-12:
在 1/3 复用、 1/2 偏置驱动时的 B 型波形
V2
COM0
V1
V0
COM2
V2
COM1
V1
COM1
V0
COM0
V2
COM2
V1
V0
V2
V1
V0
SEG0
SEG1
SEG2
SEG0
V2
SEG1
V1
V0
V2
V1
V0
COM0-SEG0
-V1
-V2
V2
V1
V0
COM0-SEG1
-V1
-V2
2 个帧
 2007 Microchip Technology Inc.
DS41250F_CN 第 159 页
PIC16F913/914/916/917/946
图 10-13:
在 1/3 复用、 1/3 偏置驱动时的 A 型波形
V3
V2
COM0
V1
V0
V3
COM2
V2
COM1
V1
COM1
V0
COM0
V3
V2
COM2
V1
V0
V3
V2
V1
V0
SEG0
SEG1
SEG2
SEG0
SEG2
V3
V2
SEG1
V1
V0
V3
V2
V1
V0
COM0-SEG0
-V1
-V2
-V3
V3
V2
V1
V0
COM0-SEG1
-V1
-V2
-V3
1 个帧
DS41250F_CN 第 160 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 10-14:
在 1/3 复用、 1/3 偏置驱动时的 B 型波形
V3
V2
COM0
V1
V0
V3
COM2
V2
COM1
V1
COM1
V0
COM0
V3
V2
COM2
V1
V0
V3
V2
V1
V0
SEG0
SEG1
SEG2
SEG0
V3
V2
SEG1
V1
V0
V3
V2
V1
V0
COM0-SEG0
-V1
-V2
-V3
V3
V2
V1
V0
COM0-SEG1
-V1
-V2
-V3
2 个帧
 2007 Microchip Technology Inc.
DS41250F_CN 第 161 页
PIC16F913/914/916/917/946
图 10-15:
在 1/4 复用、 1/3 偏置驱动时的 A 型波形
COM3
COM2
COM1
COM0
V3
V2
V1
V0
COM1
V3
V2
V1
V0
COM2
V3
V2
V1
V0
COM3
V3
V2
V1
V0
SEG0
V3
V2
V1
V0
SEG1
V3
V2
V1
V0
COM0-SEG0
V3
V2
V1
V0
-V1
-V2
-V3
COM0-SEG1
V3
V2
V1
V0
-V1
-V2
-V3
SEG0
SEG1
COM0
1 个帧
DS41250F_CN 第 162 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 10-16:
在 1/4 复用、 1/3 偏置驱动时的 B 型波形
COM3
COM2
COM1
COM0
V3
V2
V1
V0
COM1
V3
V2
V1
V0
COM2
V3
V2
V1
V0
COM3
V3
V2
V1
V0
SEG0
V3
V2
V1
V0
SEG1
V3
V2
V1
V0
COM0-SEG0
V3
V2
V1
V0
-V1
-V2
-V3
COM0-SEG1
V3
V2
V1
V0
-V1
-V2
-V3
SEG0
SEG1
COM0
2 个帧
 2007 Microchip Technology Inc.
DS41250F_CN 第 163 页
PIC16F913/914/916/917/946
10.9
LCD 中断
形和偶数帧波形不再互补,在面板中会引入一个直流分
量。因此,当使用 B 型波形时,用户必须同步帧中断后
的下一帧中发生的 LCD 像素更新。
LCD 时序发生提供了一个中断,该中断定义 LCD 的帧
时序。
在 B 型波形时要使写入时序正确,中断将只能发生在完
整的相位间隔内。当禁止写入时,一旦用户试图进行写
操作, LCDCON 寄存器的 WERR 位将被置 1,且不会
发生写操作。
一个新帧开始于 COM0 公共端信号的前沿。在 LCD 控
制器完成对帧所需的所有像素数据的访问后将立即产生
中断。中断发生在帧边界前的某一固定时间 (TFINT),
如图 10-17 所示。在中断发生的 TFWR 时间后,LCD 控
制器将开始访问下一帧数据。 新数据必须在 TFWR 内写
入,因为在此间隔后 LCD 控制器将开始访问下一帧数
据。
注:
当选择 A 型波形和选择不复用 (静态)的
B 型波形时不产生中断。
当 LCD 驱动器由 B 型波形驱动且 LMUX<1:0> 位不等于
00(静态驱动)时,必须处理一些额外的问题。由于需
要两帧来维持像素上的 DC 电压为零,因此在此期间像
素数据要保持不变。一旦像素数据发生改变,奇数帧波
图 10-17:
1/4 占空比驱动时的波形和中断时序 (示例- B 型,非静态)
LCD
中断
发生
控制器访问
下一帧数据
COM0
V3
V2
V1
V0
COM1
V3
V2
V1
V0
COM2
V3
V2
V1
V0
V3
V2
V1
V0
COM3
2 个帧
TFINT
帧边界
帧边界
TFWR
帧边界
TFWR = TFRAME/2*(LMUX<1:0> + 1) + TCY/2
TFINT = (TFWR/2 – (2 TCY + 40 ns)) → 最小值 = 1.5(TFRAME/4) – (2 TCY + 40 ns)
(TFWR/2 – (1 TCY + 40 ns)) → 最大值 = 1.5(TFRAME/4) – (1 TCY + 40 ns)
DS41250F_CN 第 164 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
10.10 在休眠模式下工作
LCD模块可以工作在休眠模式下。模式选择由LCDCON
寄存器中的 SLPEN 位控制。将 SLPEN 位置 1 将允许
LCD 模块进入休眠模式。清零 SLPEN 位将使模块在休
眠模式下继续工作。
如果执行 SLEEP 指令并且 SLPEN = 1,LCD 模块将中
止所有的功能,进入极低的电流消耗模式。模块将立即
停止工作,并在段和公共端上输出最小 LCD 驱动电压。
图 10-18 所示为此操作过程。
要确保没有直流分量引入面板,应在 LCD 帧边界后立即
执行 SLEEP 指令。 对于 B 型 (非静态)复用,可用
LCD 中断判定帧边界。 参见第 10.9 节“LCD 中断”中
的公式来计算延时。在所有其他模式下,LCDA 位均可
用于确定显示的时间。要使用该方法,在进入休眠模式
时,应执行以下序列:
• 清零 LCDEN
• 等待 LCDA 清零
• 使用 PORT 和 TRIS 寄存器将所有 LCD 引脚驱动
为停止状态
• 执行 SLEEP 指令
注:
表 10-5 给出了 LCD 模块在休眠模式下使用三个可用时
钟源中每一个时钟源时的状态:
表 10-5:
休眠模式下 LCD 模块的状态
SLPEN
在休眠模式下是
否工作?
0
是
1
否
LFINTOSC
0
是
1
否
FOSC/4
0
否
1
否
时钟源
T1OSC
注:
要使 LCD 模块在休眠模式下工作,必须使
用 LFINTOSC 或外部 T1OSC 振荡器。
如果产生 LCD 中断 (非静态复用模式的 B 型波形)且
LCDIE = 1,则器件将会在下一个帧边界从休眠模式中
唤醒。
如果 LCDEN 位被清零, LCD 模块将在帧
完成时被禁止。此时,端口引脚将恢复数
字功能。 要最小化由于悬空数字输入而产
生的功耗,应该使用 PORT 和 TRIS 寄存
器将 LCD 引脚驱动为低电平。
如果执行 SLEEP 指令并且 SLPEN = 0,模块将继续显
示 LCDDATA 寄存器的当前内容。要使模块在休眠模式
下继续工作,时钟源必须为 LFINTOSC 或 T1OSC 外部
振荡器。在休眠模式下,LCD 数据不能改变。在此模式
下,LCD 模块电流消耗并未降低;然而,器件的整体功
耗将因内核和其他外设功能的关闭而降低。
 2007 Microchip Technology Inc.
DS41250F_CN 第 165 页
PIC16F913/914/916/917/946
图 10-18:
当 SLPEN = 1 时进入 / 退出休眠模式
V3
V2
V1
COM0
V0
V3
V2
V1
V0
COM1
V3
V2
V1
V0
COM2
V3
V2
V1
V0
SEG0
2 个帧
执行 SLEEP 指令
DS41250F_CN 第 166 页
唤醒
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
10.11 配置 LCD 模块
10.13 LCD 电流消耗
以下是配置 LCD 模块的步骤:
使用 LCD 模块时,电流消耗包含以下三方面:
1.
1.
2.
3.
2.
3.
4.
5.
6.
7.
使用 LCDPS 寄存器的 LP<3:0> 位选择帧时钟预
分频比。
使用LCDSEn寄存器把相应的引脚配置为段驱动
引脚。
使用 LCDCON 寄存器配置 LCD 模块:
- 使用 LMUX<1:0> 位配置复用和偏置模式
- 使用 CS<1:0> 位配置时钟源
- 使用 SLPEN 位配置休眠模式
把像素数据的初始值写入
LCDDATA0
到
LCDDATA11 (PIC16F946
器 件上 为
LCDDATA23)像素数据寄存器。
清零 PIR2 寄存器中的 LCD 中断标志位 LCDIF,
如果需要,将 PIE2 寄存器中的 LCDIE 位置 1 允
许中断。
通过将 LCDCON 寄存器的 VLCDEN 位置 1 使
能偏置电压引脚 (VLCD<3:1>)。
将 LCDCON 寄存器的 LCDEN 位置 1,使能 LCD
模块。
选择的振荡器
LCD 偏置源
给 LCD 段充电所需的电流
与其他因素相比,只有 LCD 模块上的电流消耗可以忽
略。
选择的振荡器:
对于休眠期间的 LCD 操作,T1oc 或 LFINTOSC 时钟源
需要作为主系统振荡器(在休眠期间被禁止)使用。休
眠期间, LFINTOSC 电流消耗由电气参数 D021 给出,
此时LFINTOSC与看门狗定时器使用同一个内部振荡器
电路。
LCD 偏置源:
LCD 偏置源通常是一个外部梯形电阻,该电阻本身消耗
电流。
给 LCD 段充电所需的电流:
可以把 LCD 段看作电容,该电容必须在每一帧进行充放
电。LCD 段的大小及其技术决定 LCD 段的电容。
10.12 禁止 LCD 模块
要禁止 LCD 模块,应向 LCDCON 寄存器写入全 0。
 2007 Microchip Technology Inc.
DS41250F_CN 第 167 页
PIC16F913/914/916/917/946
表 10-6:
与 LCD 操作相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
CMCON0
C2OUT
C1OUT
C2INV
INTCON
GIE
PEIE
T0IE
名称
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
Bit 3
Bit 2
C1INV
CIS
CM2
CM1
CM0
0000 0000
0000 0000
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDDATA0
SEG7
COM0
SEG6
COM0
SEG5
COM0
SEG4
COM0
SEG3
COM0
SEG2
COM0
SEG1
COM0
SEG0
COM0
xxxx xxxx
uuuu uuuu
LCDDATA1
SEG15
COM0
SEG14
COM0
SEG13
COM0
SEG12
COM0
SEG11
COM0
SEG10
COM0
SEG9
COM0
SEG8
COM0
xxxx xxxx
uuuu uuuu
LCDDATA2(2)
SEG23
COM0
SEG22
COM0
SEG21
COM0
SEG20
COM0
SEG19
COM0
SEG18
COM0
SEG17
COM0
SEG16
COM0
xxxx xxxx
uuuu uuuu
LCDDATA3
SEG7
COM1
SEG6
COM1
SEG5
COM1
SEG4
COM1
SEG3
COM1
SEG2
COM1
SEG1
COM1
SEG0
COM1
xxxx xxxx
uuuu uuuu
LCDDATA4
SEG15
COM1
SEG14
COM1
SEG13
COM1
SEG12
COM1
SEG11
COM1
SEG10
COM1
SEG9
COM1
SEG8
COM1
xxxx xxxx
uuuu uuuu
LCDDATA5(2)
SEG23
COM1
SEG22
COM1
SEG21
COM1
SEG20
COM1
SEG19
COM1
SEG18
COM1
SEG17
COM1
SEG16
COM1
xxxx xxxx
uuuu uuuu
LCDDATA6
SEG7
COM2
SEG6
COM2
SEG5
COM2
SEG4
COM2
SEG3
COM2
SEG2
COM2
SEG1
COM2
SEG0
COM2
xxxx xxxx
uuuu uuuu
LCDDATA7
SEG15
COM2
SEG14
COM2
SEG13
COM2
SEG12
COM2
SEG11
COM2
SEG10
COM2
SEG9
COM2
SEG8
COM2
xxxx xxxx
uuuu uuuu
LCDDATA8(2)
SEG23
COM2
SEG22
COM2
SEG21
COM2
SEG20
COM2
SEG19
COM2
SEG18
COM2
SEG17
COM2
SEG16
COM2
xxxx xxxx
uuuu uuuu
LCDDATA9
SEG7
COM3
SEG6
COM3
SEG5
COM3
SEG4
COM3
SEG3
COM3
SEG2
COM3
SEG1
COM3
SEG0
COM3
xxxx xxxx
uuuu uuuu
LCDDATA10
SEG15
COM3
SEG14
COM3
SEG13
COM3
SEG12
COM3
SEG11
COM3
SEG10
COM3
SEG9
COM3
SEG8
COM3
xxxx xxxx
uuuu uuuu
LCDDATA11(2)
SEG23
COM3
SEG22
COM3
SEG21
COM3
SEG20
COM3
SEG19
COM3
SEG18
COM3
SEG17
COM3
SEG16
COM3
xxxx xxxx
uuuu uuuu
LCDDATA12(3)
SEG31
COM0
SEG30
COM0
SEG29
COM0
SEG28
COM0
SEG27
COM0
SEG26
COM0
SEG25
COM0
SEG24
COM0
xxxx xxxx
uuuu uuuu
LCDDATA13(3)
SEG39
COM0
SEG38
COM0
SEG37
COM0
SEG36
COM0
SEG35
COM0
SEG34
COM0
SE33
COM0
SEG32
COM0
xxxx xxxx
uuuu uuuu
LCDDATA14(3)
—
—
—
—
—
—
SEG41
COM0
SEG40
COM0
---- --xx
---- --uu
LCDDATA15(3)
SEG31
COM1
SEG30
COM1
SEG29
COM1
SEG28
COM1
SEG27
COM1
SEG26
COM1
SEG25
COM1
SEG24
COM1
xxxx xxxx
uuuu uuuu
LCDDATA16(3)
SEG39
COM1
SEG38
COM1
SEG37
COM1
SEG36
COM1
SEG35
COM1
SEG34
COM1
SEG33
COM1
SEG32
COM1
xxxx xxxx
uuuu uuuu
LCDDATA17(3)
—
—
—
—
—
—
SEG41
COM1
SEG40
COM1
---- --xx
---- --uu
LCDDATA18(3)
SEG31
COM2
SEG30
COM2
SEG29
COM2
SEG28
COM2
SEG27
COM2
SEG26
COM2
SEG25
COM2
SEG24
COM2
xxxx xxxx
uuuu uuuu
LCDDATA19(3)
SEG39
COM2
SEG38
COM2
SEG37
COM2
SEG36
COM2
SEG35
COM2
SEG34
COM2
SEG33
COM2
SEG32
COM2
xxxx xxxx
uuuu uuuu
LCDDATA20(3)
—
—
—
—
—
—
SEG41
COM2
SEG40
COM2
---- --xx
---- --uu
LCDDATA21(3)
SEG31
COM3
SEG30
COM3
SEG29
COM3
SEG28
COM3
SEG27
COM3
SEG26
COM3
SEG25
COM3
SEG24
COM3
xxxx xxxx
uuuu uuuu
LCDDATA22(3)
SEG39
COM3
SEG38
COM3
SEG37
COM3
SEG36
COM3
SEG35
COM3
SEG34
COM3
SEG33
COM3
SEG32
COM3
xxxx xxxx
uuuu uuuu
LCDDATA23(3)
—
—
—
—
—
—
SEG41
COM3
SEG40
COM3
---- --xx
---- --uu
WFT
BIASMD
LCDA
WA
LP3
LP2
LP1
LP0
0000 0000
0000 0000
LCDPS
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
uuuu uuuu
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
uuuu uuuu
图注:
注
1:
2:
3:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。 LCD 模块不使用阴影单元。
可以根据所选择的振荡器模式将这些引脚配置为端口引脚。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件 。
DS41250F_CN 第 168 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 10-6:
与 LCD 操作相关的寄存器 (续)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
LCDSE2(2)
SE23
SE22
SE21
SE20
SE19
SE18
SE17
SE16
0000 0000
uuuu uuuu
LCDSE3(3)
SE31
SE30
SE29
SE28
SE27
SE26
SE25
SE24
0000 0000
0000 0000
LCDSE4(3)
SE39
SE38
SE37
SE36
SE35
SE34
SE33
SE32
0000 0000
0000 0000
名称
(3)
LCDSE5
—
—
—
—
—
—
SE41
SE40
---- --00
---- --00
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE
0000 -0-0
0000 -0-0
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF
0000 -0-0
0000 -0-0
T1GINV
TMR1GE
T1CKPS1
T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
0000 0000
uuuu uuuu
T1CON
图注:
注
1:
2:
3:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。LCD 模块不使用阴影单元。
可以根据所选择的振荡器模式将这些引脚配置为端口引脚。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件 。
 2007 Microchip Technology Inc.
DS41250F_CN 第 169 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 170 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
11.0
可编程低电压检测 (PLVD)模块
可编 程低 电压 检测 (Programmable
Low-Voltage
Detect,PLVD)模块是电源电压检测器,用于监视内部
电源电压。此模块通常用于密钥卡以及其他在电池电压
下降时需要采取某些措施的器件。
PLVD 模块有如下特性:
•
•
•
•
8 个可编程跳变点
在 VDD 下降沿触发中断
稳定参考电压指示
在休眠期间工作
图 11-1 所示为 PLVD 模块的框图。
图 11-1:
PLVD 框图
8级
VDD
8选1
模拟 MUX
LVDEN
0
1
2
+
6
7
-
检测
LVDIF
LVDL<2:0>
参考
电压
发生器
图 11-2:
PLVD 工作原理
VDD
PLVD 跳变点
LVDIF
由硬件
置1
 2007 Microchip Technology Inc.
由软件
清零
DS41250F_CN 第 171 页
PIC16F913/914/916/917/946
11.1
PLVD 工作原理
必须执行下列步骤以使 PLVD 工作:
• 通过将 LVDCON 寄存器的 LVDEN 位置 1 使能该
模块。
• 通过将 LVDCON 寄存器的 LVDL<2:0> 位置 1 配
置跳变点。
• 等待直到参考电压稳定。请参见第 11.4 节 “稳定
参考电压指示”。
• 将 PIR2 寄存器的 LVDIF 位清零。
如果 VDD 电压低于 PLVD 跳变点,则将 LVDIF 位置 1。
LVDIF 位保持置 1 状态,直到用软件清零。 请参见图
11-2。
11.2
11.4
稳定参考电压指示
使能 PLVD 模块时,在 PLVD 提供有效结果之前必须保证
参考电压稳定。关于稳定时间,请参考第 19.0 节 “电气
规范”中的表 19-13。
HFINTOSC 运行时,LVDCON 寄存器的 IRVST 位表示
参考电压的稳定性。IRVST 位置 1 时,参考电压稳定。
11.5
在休眠期间工作
要从休眠模式唤醒,应将 PIE2 寄存器的 LVDIE 位和
INTCON 寄存器的 PEIE 位置 1。如果 LVDIE 和 PEIE
位都置 1,器件将从休眠模式唤醒,并执行下一条指令。
如果 GIE 位也置 1,在从休眠模式唤醒后第一条指令执
行完成时,程序将调用中断服务程序。
可编程跳变点
可以选择 8 个电压值中的一个做为 PLVD 跳变点。
LVDCON 寄存器的 LVDL 位用于选择该跳变点。关于可
用 PLVD 跳变点的信息,请参见寄存器 11-1。
11.3
在 VDD 下降沿触发中断
如果 VDD 低于 PLVD 跳变点,下降沿检测器会将 LVDIF
位置 1。 请参见图 11-2。 如果下列位也被置 1,则将产
生中断:
• INTCON 寄存器的 GIE 和 PEIE 位
• PIE2 寄存器的 LVDIE 位
必须用软件将 LVDIF 位清零。 如果用软件将 LVDIF 位
置 1,即可通过模拟 PLVD 事件产生中断。
DS41250F_CN 第 172 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 11-1:
LVDCON:低电压检测控制寄存器
U-0
U-0
—
R-0
(1)
—
IRVST
R/W-0
U-0
R/W-1
R/W-0
R/W-0
LVDEN
—
LVDL2
LVDL1
LVDL0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5
IRVST:内部参考电压稳定状态标志位 (1)
1 = 表示 PLVD 稳定且 PLVD 中断可靠
0 = 表示 PLVD 不稳定,不应允许 PLVD 中断
bit 4
LVDEN:低电压检测模块使能位
1 = 使能 PLVD 模块,让 PLVD 电路及支持参考电路上电
0 = 禁止 PLVD 模块,让 PLVD 电路及支持参考电路掉电
bit 3
未实现:读为 0
bit 2-0
LVDL<2:0>:低电压检测级别位 (标称值) (3)
111 = 4.5V
110 = 4.2V
101 = 4.0V
100 = 2.3V (默认值)
011 = 2.2V
010 = 2.1V
001 = 2.0V(2)
000 = 保留
x = 未知
1: IRVST 位仅在 HFINTOSC 运行时可用。
2: 未经测试并低于最小工作条件。
3: 请参见第 19.0 节 “电气规范”。
注
表 11-1:
名称
INTCON
与可编程低电压检测寄存器相关的寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠 所有其他
压复位时的值 复位时的值
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x 0000 000x
LVDL0
--00 -100 --00 -100
—
—
IRVST
LVDEN
—
LVDL2
LVDL1
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE 0000 -0-0 0000 -0-0
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF 0000 -0-0 0000 -0-0
LVDCON
图注:
x = 未知, - = 未实现 (读为 0)。 PLVD 模块不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 173 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 174 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
12.0
用软件选择 ADC 参考电压来自内部还是外部。
模数转换器 (ADC)模块
模数转换器(Analog-to-Digital converter,ADC)可以
将模拟输入信号转换为表示该信号的一个 10 位二进制
表示。器件采用模拟输入通道,它们共用一个采样保持
电路。 采样保持电路的输出与模数转换器的输入相连。
转换器采用逐次逼近法产生一个 10 位二进制结果,并
将该转换结果存入 ADC 结果寄存器 (ADRESL 和
ADRESH)。
图 12-1:
ADC 在转换完成之后可产生中断。此中断可以将器件从
休眠状态唤醒。
图 12-1 为 ADC 的框图。
ADC 框图
VDD
VCFG0 = 0
VREF+
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3
RA5/AN4
000
RE0/AN5(1)
RE1/AN6(1)
RE2/AN7(1)
101
001
ADC
010
011
10
GO/DONE
100
110
111
ADFM
0 = 左对齐
1 = 右对齐
ADON
10
VSS
ADRESH
ADRESL
VCFG1 = 0
CHS
VREF-
注
VCFG0 = 1
VCFG1 = 1
1: 仅 PIC16F914/917 和 PIC16F946 器件上才有这些通道。
 2007 Microchip Technology Inc.
DS41250F_CN 第 175 页
PIC16F913/914/916/917/946
12.1
ADC 配置
配置和使用 ADC 时,必须考虑以下功能:
•
•
•
•
•
•
端口配置
通道选择
ADC 参考电压选择
ADC 转换时钟源
中断控制
结果格式化
12.1.1
端口配置
ADC 既可以转换模拟信号,又可以转换数字信号。当转
换模拟信号时,通过将相应的 TRIS 和 ANSEL 位置 1,
可将 I/O 引脚配置为模拟输入引脚。更多详细信息,请参
见相应的端口章节。
注:
12.1.2
对定义为数字输入的引脚施加模拟电压可
能导致输入缓冲器出现过电流。
通道选择
由 ADCON0 寄存器的 CHS 位决定将哪一路通道与采样
保持电路相连。
如果更改了通道,在下一个转换开始前需要一定的延
迟。更多详细信息请参见第 12.2 节“ADC 工作原理”。
DS41250F_CN 第 176 页
12.1.3
ADC 参考电压
由ADCON0寄存器的VCFG位单独控制正负参考电压。
正参考电压可以是 VDD 或外部电压源。同样,负参考电
压可以是 VSS 或外部电压源。
12.1.4
转换时钟
可通过 ADCON1 寄存器的 ADCS 位来用软件选择转换
的时钟源。有以下 7 种时钟频率可供选择:
•
•
•
•
•
•
FOSC/2
FOSC/4
FOSC/8
FOSC/16
FOSC/32
FOSC/64
• FRC (专用内部振荡器)
完成一位转换的时间定义为 TAD。一次完整的10 位转换
需要 11 个 TAD 周期,如图 12-2 所示 。
必须符合相应的 TAD 规范,才能获得正确的转换结果。
更多详细信息,请参见第 19.0 节 “电气规范”中的 A/D
转换要求。表 12-1 给出了正确选择 ADC 时钟的示例。
注:
除非使用 FRC,否则系统时钟频率的任何改
变都会改变 ADC 时钟频率,从而对 ADC
转换结果产生不利影响。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 12-1:
ADC 时钟周期 (TAD)与器件工作频率的关系 (VDD > 3.0V)
ADC 时钟周期 (TAD)
ADC 时钟源
器件频率 (FOSC)
ADCS<2:0>
20 MHz
8 MHz
(2)
250 ns
FOSC/2
000
100 ns
FOSC/4
100
200 ns(2)
500 ns(2)
FOSC/8
001
400 ns
(2)
(2)
FOSC/16
101
800 ns(2)
1.6 µs
4.0 µs
FOSC/64
110
3.2 µs
8.0 µs(3)
图注:
注
1:
2:
3:
4:
(1,4)
4.0 µs
2.0 µs
8.0 µs(3)
4.0 µs
16.0 µs(3)
(3)
(1,4)
2-6 µs
x11
2.0 µs
1.0 µs(2)
500 ns
2.0 µs
010
1 MHz
(2)
1.0 µs
FOSC/32
FRC
4 MHz
(2)
2-6 µs
8.0 µs
32.0 µs(3)
16.0 µs(3)
64.0 µs(3)
(1,4)
2-6 µs(1,4)
2-6 µs
建议不要使用阴影单元内的值。
对于 VDD > 3.0V 的情况, FRC 时钟源的典型 TAD 时间为 4 µs。
这些值均违反了最小 TAD 时间要求。
为了加快转换速度,建议选用别的时钟源。
当器件的工作频率高于 1 MHz 时,仅当在休眠期间进行转换时才推荐使用 FRC 时钟源。
图 12-2:
模数转换 TAD 周期
TCY 到 TAD TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11
b9
b8
b7
b6
b5
b4
b3
b2
b1
b0
转换开始
保持电容与模拟输入断开(通常为 100 ns)
将 GO/DONE 位置 1
12.1.5
装载 ADRESH 和 ADRESL 寄存器,
清零 GO 位,
将 ADIF 位置 1,
保持电容和模拟输入通道相连
中断
ADC 模块允许在完成模数转换后产生中断。 ADC 中断
标志位是 PIR1 寄存器中的 ADIF 位。 ADC 中断允许位
是 PIE1 寄存器中的 ADIE 位。ADIF 位必须用软件清零。
注:
每次转换结束后都会将 ADIF 位置 1,而与
是否允许 ADC 中断无关。
不管器件处于工作模式还是休眠模式都可以产生中断。
如果器件处于休眠模式,中断可将器件唤醒。当将器件
从休眠状态唤醒后,总是执行 SLEEP 指令后的下一条指
令。如果用户尝试使器件从休眠状态唤醒并继续执行主
程序代码,必须禁止全局中断。如果允许全局中断,将
跳转到中断服务程序。
更多详细信息,请参见第 12.1.5 节 “中断”。
 2007 Microchip Technology Inc.
DS41250F_CN 第 177 页
PIC16F913/914/916/917/946
12.1.6
结果格式化
10 位 A/D 转换结果可采用两种格式:左对齐或右对齐。
由 ADCON0 寄存器中的 ADFM 位控制输出格式。
图 12-3 给出了这两种输出格式。
图 12-3:
10 位 A/D 转换结果的格式
ADRESH
(ADFM = 0)
ADRESL
MSB
LSB
bit 7
bit 0
bit 7
10 位 A/D 转换结果
未实现: 读为 0
MSB
(ADFM = 1)
bit 7
LSB
bit 0
12.2.1
ADC 工作原理
启动转换
要使能 ADC 模块,必须将 ADCON0 寄存器中的 ADON
位置 1。将 ADCON0 寄存器的 GO/DONE 位置 1 启动
模数转换。
注:
12.2.2
不能用开启 ADC 的同一指令将 GO/DONE 位
置1。请参见第 12.2.6 节“A/D 转换过程”。
完成转换
bit 7
bit 0
10 位 A/D 转换结果
未实现: 读为 0
12.2
bit 0
12.2.4
ADC 在休眠模式下的工作原理
ADC 模块可以在休眠模式下运行。这就要求 ADC 时钟
源被设置为 FRC 项。若选择了 FRC 时钟源,ADC 在开
始 转 换 之前 要 多 等 待 一 个 指 令 周期,从 而 允 许 执 行
SLEEP指令,以减少转换时的系统噪声。如果允许ADC
中断,当转换结束时,将使器件从休眠模式唤醒。如果
禁止 ADC 中断,即使 ADON 位保持置 1,转换结束后
也还是会关闭 ADC 模块。
如果 ADC 时钟源不是 FRC,即使 ADON 位保持置 1,
SLEEP 指令还是会中止当前的转换,并关闭 ADC 模块。
当转换完成时, ADC 模块将:
12.2.5
• 清零 GO/DONE 位
• 将 ADIF 标志位置 1
• 用新的转换结果更新 ADRESH:ADRESL 寄存器
CCP 特殊事件触发器允许在没有软件介入的情况下,周
期性 地进 行 ADC 测量。引 发触 发时,由 硬件 将
GO/DONE 位置 1,并将 Timer1 计数器复位为 0。
12.2.3
使用特殊事件触发器不能确保正确的 ADC 时序。 由用
户来确保满足 ADC 的时序要求。
终止转换
如果必须要在转换完成前终止转换,则可用软件清零
GO/DONE 位。 不会用部分完成的模数转换结果更新
ADRESH:ADRESL 寄存器。因此, ADRESH:ADRESL
寄存器对将保持上次转换所得到的值。 此外,必须经过
2 个 TAD 的延时才能开始下一次采集。 延时过后,将自
动开始对选定通道的输入信号进行采集。
注:
特殊事件触发器
更多详细信息,请参见第 15.0 节 “捕捉 / 比较 /PWM
(CCP)模块”。
器件复位强制所有寄存器进入各自的复位
状态。因此,复位会关闭 ADC 模块并且终
止任何待处理的转换。
DS41250F_CN 第 178 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
12.2.6
A/D 转换过程
下列步骤给出了使用 ADC 进行模数转换的示例:
1.
2.
3.
4.
5.
6.
7.
8.
配置端口:
• 禁止引脚输出驱动器 (见 TRIS 寄存器)
• 将引脚配置为模拟输入引脚
配置 ADC 模块:
• 选择 ADC 转换时钟
• 配置参考电压
• 选择 ADC 输入通道
• 选择结果格式
• 启动 ADC 模块
配置 ADC 中断 (可选):
• 清零 ADC 中断标志位
• 允许 ADC 中断
• 允许外设中断
• 允许全局中断 (1)
等待所需的采集时间 (2)。
通过将 GO/DONE 位置 1 启动转换。
等待 ADC 转换完成,通过以下两种方法之一判
断转换是否完成:
• 查询 GO/DONE 位
• 等待 ADC 中断 (允许中断)
读 ADC 结果
将 ADC 中断标志位清零 (如果允许中断的话,
必须进行此操作)。
注
例 12-1:
A/D 转换
;This code block configures the ADC
;for polling, Vdd reference, Frc clock
;and AN0 input.
;
;Conversion start & polling for completion
; are included.
;
BANKSEL
ADCON1
;
MOVLW
B’01110000’ ;ADC Frc clock
MOVWF
ADCON1
;
BANKSEL
TRISA
;
BSF
TRISA,0
;Set RA0 to input
BANKSEL
ANSEL
;
BSF
ANSEL,0
;Set RA0 to analog
BANKSEL
ADCON0
;
MOVLW
B’10000001’ ;Right justify,
MOVWF
ADCON0
;Vdd Vref, AN0, On
CALL
SampleTime
;Acquisiton delay
BSF
ADCON0,GO
;Start conversion
BTFSC
ADCON0,GO
;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
12.2.7
ADC 寄存器定义
以下寄存器用于控制 ADC 的操作。
1: 如果用户尝试在使器件从休眠模式唤醒后
继续执行主程序代码,则必须禁止全局中
断。
2: 请参见第 12.3 节 “A/D 采集要求”。
 2007 Microchip Technology Inc.
DS41250F_CN 第 179 页
PIC16F913/914/916/917/946
寄存器 12-1:
ADCON0:A/D 控制寄存器 0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
ADFM
VCFG1
VCFG0
CHS2
CHS1
CHS0
GO/DONE
ADON
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7
ADFM:A/D 转换结果格式选择位
1 = 右对齐
0 = 左对齐
bit 6
VCFG1:参考电压选择位
1 = VREF- 引脚
0 = VSS
bit 5
VCFG0:参考电压选择位
1 = VREF+ 引脚
0 = VSS
bit 4-2
CHS<2:0>:模拟通道选择位
000 = AN0
001 = AN1
010 = AN2
011 = AN3
100 = AN4
101 = AN5(1)
110 = AN6(1)
111 = AN7(1)
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,且不消耗工作电流
注
x = 未知
1: 在 28 引脚器件上不可用。
DS41250F_CN 第 180 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 12-2:
ADCON1:A/D 控制寄存器 1
U-0
R/W-0
R/W-0
R/W-0
U-0
U-0
U-0
U-0
—
ADCS2
ADCS1
ADCS0
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
未实现:读为 0
bit 6-4
ADCS<2:0>:A/D 转换时钟选择位
000 = FOSC/2
001 = FOSC/8
010 = FOSC/32
x11 = FRC (时钟信号由专用的内部振荡器产生,最高频率可达 500 kHz)
100 = FOSC/4
101 = FOSC/16
110 = FOSC/64
bit 3-0
未实现:读为 0
 2007 Microchip Technology Inc.
DS41250F_CN 第 181 页
PIC16F913/914/916/917/946
寄存器 12-3:
ADRESH:ADC 结果寄存器的高字节 (ADRESH) ADFM = 0
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
ADRES9
ADRES8
ADRES7
ADRES6
ADRES5
ADRES4
ADRES3
ADRES2
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
ADRES<9:2>:ADC 结果寄存器位
10 位转换结果的高 8 位
寄存器 12-4:
ADRESL:ADC 结果寄存器的低字节 (ADRESL) ADFM = 0
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
ADRES1
ADRES0
—
—
—
—
—
—
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-6
ADRES<1:0>:ADC 结果寄存器位
10 位转换结果的低 2 位
bit 5-0
保留:未用。
寄存器 12-5:
x = 未知
ADRESH:ADC 结果寄存器的高字节 (ADRESH) ADFM = 1
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
—
—
—
—
—
—
ADRES9
ADRES8
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-2
保留:未用。
bit 1-0
ADRES<9:8>:ADC 结果寄存器位
10 位转换结果的高 2 位
寄存器 12-6:
x = 未知
ADRESL:ADC 结果寄存器的低字节 (ADRESL) ADFM = 1
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
ADRES7
ADRES6
ADRES5
ADRES4
ADRES3
ADRES2
ADRES1
ADRES0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
bit 7-0
x = 未知
ADRES<7:0>:ADC 结果寄存器位
10 位转换结果的低 8 位
DS41250F_CN 第 182 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
12.3
A/D 采集要求
为了使 ADC 转换达到规定精度,必须使充电保持电容
(CHOLD)充满至输入通道的电平。图 12-4 给出了模拟输
入电路模型。 信号源阻抗 (RS)和内部采样开关阻抗
(RSS)直接影响给电容 CHOLD 充电所需要的时间。采样
开关阻抗 (RSS)随器件电压 (VDD)不同而有所不同,
请参见图 12-4。模拟信号源的最大阻抗推荐值为 10 kΩ。
采集时间随着阻抗的降低而缩短。选择(或改变)模拟输
公式 12-1:
入通道后,在启动转换前必须对 A/D 进行采集。可以使
用公式12-1来计算最小采集时间。该公式假设误差为1/2
LSb (ADC 转换需要 1024 步)。 1/2 LSb 误差是 ADC
达到规定分辨率所允许的最大误差。
采集时间示例
50鸆 ,且外部阻抗为10kΩ( 5.0V V DD)
假设 :温度 = 50°C
+ 保持电容充电时间
T ACQ = 放大器稳定时间
Amplifier Settling
Time + Hold+ 温度系数
Capacitor Charging Time + Temper
= T AMP + T C + T COFF
= 2祍
[ ( Temperature
25鸆
) ( 0.05祍/鸆
)]
2µs + T C +[(温度-
25°C)(-0.05
µs/°C
)]
可以使用如下公式估算 TC 的值:
1
 = V CHOLD
V AP PLIE D  1 – -------------------------

n+1
(2
)–1
;[1] 在 1/2 lsb 误差范围内对 VCHOLD 进行充电
–T C
----------

RC
V AP P LIED  1 – e  = V CHOLD


;[2] 依照 VAPPLIED 对 VCHOLD 进行充电
– Tc
---------

RC
1

V A PP LIE D  1 – e  = V AP PLI ED  1 – -------------------------
 ; 结合 [1] 和 [2]
n+1


(2
)–1
注 :此处 n 为 ADC 的位数。
计算 TC:
– C HOLD ( R IC + R SS + R S ) ln(1/2047)
= – 10pF ( 1kΩ + 7kΩ + 10kΩ ) ln(0.0004885)
TC =
= 1.37µs
因此 :
T ACQ = 2μS + 1.37μS + [ ( 50℃- 25℃ ) ( 0.05μs/℃ ) ]
= 4.67µs
注
1: 由于可以将参考电压 (VREF)消掉,因此它对公式的结果不会产生影响。
2: 在每次转换后,充电保持电容 (CHOLD)并不放电。
3: 模拟信号源的最大阻抗推荐值为 10 kΩ。它必须符合引脚漏电流规范中的规定。
 2007 Microchip Technology Inc.
DS41250F_CN 第 183 页
PIC16F913/914/916/917/946
图 12-4:
模拟输入模型
VDD
Rs
VA
VT = 0.6V
ANx
CPIN
5 pF
VT = 0.6V
采样
开关
SS Rss
RIC ≤ 1k
I LEAKAGE(1)
CHOLD = 10 pF
VSS/VREF-
图注:
注
6V
5V
VDD 4V
3V
2V
CPIN
= 输入电容
VT
= 门限电压
I LEAKAGE = 各个连接点在引脚
产生的泄漏电流
RIC
= 内部走线等效电阻
SS
= 采样开关
CHOLD
= 采样 / 保持电容
RSS
5 6 7 8 9 10 11
采样开关
(kΩ)
1: 请参见第 19.0 节 “电气规范”。
图 12-5:
ADC 传递函数
满量程范围
3FFh
3FEh
3FDh
3FCh
理想的 1 LSB
ADC 输出码
3FBh
满量程转换
004h
003h
002h
001h
000h
模拟输入电压
理想的 1 LSB
VSS/VREF-
DS41250F_CN 第 184 页
0 刻度
转换
VDD/VREF+
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 12-2:
与 ADC 相关的寄存器汇总
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠压
复位时的值
所有其他
复位时的值
VCFG0
CHS2
CHS1
CHS0
GO/DONE
ADON
0000 0000
0000 0000
ADCS1
ADCS0
—
—
—
—
-000 ----
-000 ----
ANS5
ANS4
ANS3
ANS2
ANS1
ANS0
1111 1111
1111 1111
uuuu uuuu
Bit 7
Bit 6
Bit 5
ADCON0
ADFM
VCFG1
ADCON1
—
ADCS2
ANS7
ANS6
名称
ANSEL
ADRESH
A/D 结果寄存器的高字节
xxxx xxxx
ADRESL
A/D 结果寄存器的低字节
xxxx xxxx
uuuu uuuu
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
0000 0000
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
LCDSE2(1)
SE23
SE22
SE21
SE20
SE19
SE18
SE17
SE16
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
PORTA
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
xxxx xxxx
uuuu uuuu
PORTB
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
xxxx xxxx
uuuu uuuu
PORTE
RE7
RE6
RE5
RE4
RE3
RE2
RE1
RE0
xxxx xxxx
uuuu uuuu
TRISA
TRISA7
TRISA6
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
1111 1111
1111 1111
TRISB
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISB0
1111 ----
1111 ----
TRISE7
TRISE6
TRISE5
TRISE4
TRISE3
TRISE2
TRISE1
TRISE0
1111 1111
1111 1111
TRISE
图注:
x = 未知, u = 不变, — = 未实现 (读为 0)。 ADC 模块不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 185 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 186 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
13.0
数据 EEPROM 和闪存程序存储器
控制
数据 EEPROM 是可读写的存储器,而闪存程序存储器
在正常工作 (整个 VDD 范围)期间是可读的。 这两种
存储器没有直接映射到文件寄存器空间,而是通过特殊
功能寄存器间接寻址。 有 6 个 SFR 用于访问这两种存
储器 :
•
•
•
•
•
•
EECON1
EECON2
EEDATL
EEDATH
EEADRL
EEADRH
当与数据存储器模块接口时,EEDATL 寄存器存放要读
写的 8 位数据,而 EEADRL 寄存器存放被访问的 EE 数
据单元的地址。该系列中的器件具有 256 字节的数据
EEPROM,地址范围为 00h 到 FFh。
当与程序存储器模块接口时, EEDATL 和 EEDATH 寄
存器形成双字节字,存放要读的 14 位数据,而 EEADRL
和 EEADRH 寄 存器 形成 双字 节字,存 放被 访问 的
EEPROM 存储单元的 13 位地址。 本类器件具有 4K 和
8K 字 的程 序闪 存,地址 范围 分别 为 0h-0FFFh 和
0h-1FFFh。程序存储器允许以字为单位读取。
EEPROM 数据存储器允许以字节为单位读写。 字节写
操作会自动擦除目标存储单元并写入新数据(在写入前
擦除)。
写入时间由片上定时器控制。写入和擦除电压是由片上
充电泵产生的,此充电泵使得在器件电压范围内进行字
节或字操作成为可能。
13.1
EEADRL 和 EEADRH 寄存器
EEADRL 和 EEADRH 寄存器能寻址最大 256 字节的数
据 EEPROM 或最大 8K 字的程序闪存。
当选择程序地址值时,地址的高字节被写入 EEADRH
寄存器而低字节被写入 EEADRL 寄存器。 当选择数据
地址值时,只将地址的低字节写入 EEADRL 寄存器。
13.1.1
EECON1 和 EECON2 寄存器
EECON1 是访问 EE 存储器的控制寄存器。
控制位 EEPGD 决定访问的是程序存储器还是数据存储
器。 当被清零时,和在复位时一样,任何后续操作都将
针对数据存储器进行。 当置 1 时,任何后续操作都将针
对程序存储器进行。程序存储器是只读的。
控制位 RD 和 WR 分别启动读和写。用软件只能将这些
位置 1 而无法清零。在读或写操作完成后,由硬件将它
们清零。由于无法用软件将 WR 位清零,可避免因意外
而过早地终止写操作。
当 WREN 置 1 时,允许对数据 EEPROM 执行写操作。
上电时,WREN 位被清零。当正常的写入操作被 MCLR
复位或 WDT 超时复位中断时, WRERR 位会置 1。 在
这些情况下,复位后用户可以检查 WRERR 位。复位时
数据寄存器和地址寄存器将被清零。然后用户代码可以
运行适当的恢复程序。
当写操作完成时,PIR1 寄存器的中断标志位 EEIF 被置
1。此标志位必须用软件清零。
EECON2 不是物理寄存器。 读 EECON2 得到的全部是
0。EECON2寄存器仅在数据EEPROM写过程中使用。
当器件被代码保护时,CPU 仍可继续读写数据 EEPROM
存储器和读程序存储器。 当代码保护时,器件编程器将
不再能访问数据或程序存储器。
 2007 Microchip Technology Inc.
DS41250F_CN 第 187 页
PIC16F913/914/916/917/946
寄存器 13-1:
EEDATL:EEPROM/ 程序存储器数据低字节寄存器
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
EEDATL7
EEDATL6
EEDATL5
EEDATL4
EEDATL3
EEDATL2
EEDATL1
EEDATL0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7-0
x = 未知
EEDATL<7:0>:要从数据 EEPROM 中读取或向数据 EEPROM 写入的字节值,或者要从程序存储器中读取的字
节值
寄存器 13-2:
EEADRL:EEPROM/ 程序存储器地址低字节寄存器
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
EEADRL7
EEADRL6
EEADRL5
EEADRL4
EEADRL3
EEADRL2
EEADRL1
EEADRL0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7-0
x = 未知
EEADRL<7:0>:指定 EEPROM 读 / 写操作的 256 个存储单元中的一个或程序存储器读操作的低字节地址
寄存器 13-3:
EEDATH:程序存储器数据高字节寄存器
U-0
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
—
—
EEDATH5
EEDATH4
EEDATH3
EEDATH2
EEDATH1
EEDATH0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7-6
未实现:读为 0
bit 5-0
EEDATH<5:0>:从程序存储器中读取的字节值
寄存器 13-4:
x = 未知
EEADRH:程序存储器地址高字节寄存器
U-0
U-0
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
—
—
—
EEADRH4
EEADRH3
EEADRH2
EEADRH1
EEADRH0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
bit 7-5
未实现: 读为 0
bit 4-0
EEADRH<4:0>:指定程序存储器读取的高字节地址
DS41250F_CN 第 188 页
x = 未知
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 13-5:
EECON1:EEPROM 控制寄存器
R/W-x
U-0
U-0
U-0
R/W-x
R/W-0
R/S-0
R/S-0
EEPGD
—
—
—
WRERR
WREN
WR
RD
bit 7
bit 0
图注:
S = 只能被置 1 的位
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
x = 未知
bit 7
EEPGD:程序 / 数据 EEPROM 选择位
1 = 访问程序存储器
0 = 访问数据存储器
bit 6-4
未实现:读为 0
bit 3
WRERR:EEPROM 错误标志位
1 = 写操作过早终止 (正常工作期间的任何 MCLR 复位、 WDT 复位,或欠压复位)
0 = 写操作完成
bit 2
WREN:EEPROM 写使能位
1 = 允许写
0 = 禁止写入数据 EEPROM
bit 1
WR:写控制位
EEPGD = 1:
此位被忽略。
EEPGD = 0:
1 = 启动写周期 (写操作一旦完成,由硬件清零该位。用软件只能将 WR 位置 1,但不能清零。)
0 = 数据 EEPROM 写周期完成
bit 0
RD:读控制位
1 = 启动存储器读操作 ( 由硬件清零 RD,用软件只能将 RD 位置 1,而不能清零。)
0 = 不启动存储器读操作
 2007 Microchip Technology Inc.
DS41250F_CN 第 189 页
PIC16F913/914/916/917/946
13.1.2
读数据 EEPROM 存储器
要读取数据存储器单元,用户必须将地址写入 EEADRL
寄存器,清零 EEPGD 控制位,然后将 EECON1 寄存
器中 的控 制位 RD 置 1。 在 紧接 着的 下一 个周 期,
EEDATL 寄存器中就有数据了,因此该数据可由下一条
指令读取。EEDATL 将把此值保存至下一次用户向该单
元读取或写入数据时 (在写操作过程中)为止。
例 13-1:
读取数据 EEPROM
BANKSEL
MOVF
MOVWF
BANKSEL
BCF
EEADRL
DATA_EE_ADDR,W
EEADRL
EECON1
EECON1,EEPGD
BSF
EECON1,RD
BANKSEL EEDATL
MOVF
EEDATL,W
13.1.3
;
;Data Memory
;Address to read
;
;Point to Data
;memory
;EE Read
;
;W = EEPROM Data
写数据 EEPROM 存储器
要写 EEPROM 数据存储单元,用户应首先将该单元的
地址写入 EEADRL 寄存器并将数据写入 EEDATL 寄存
器。然后用户必须按特定顺序开始写入每个字节。
如果没有完全按照下面的指令顺序(即首先将 55h 写入
EECON2,随后将 AAh 写入 EECON2,最后将 WR 位
置 1)写每个字节,将不会启动写操作。 在该代码段中
应禁止中断。
下面是写 EEPROM 数据存储器的步骤:
1.
如果没有实现第 10 步,检查 WR 位以判断写操
作是否正在进行。
2. 将地址写入EEADRL。确保地址不大于器件存储
器大小。
3. 写 8 位数据值,将其编程到 EEDATL 寄存器。
4. 清零 EEPGD 位,以指向 EEPROM 数据存储器。
5. 将 WREN 置 1,使能编程操作。
6. 如果已经允许了中断,请将其禁止。
7. 执行 5 个特殊指令序列:
• 分两步将 55h 写入 EECON2 (首先写入 W,
然后写入 EECON2)
• 分两步将 AAh 写入 EECON2 (首先写入 W,
然后写入 EECON2)
• 将 WR 位置 1
8. 允许中断 (如果使用中断)。
9. 清零 WREN 位,禁止编程操作。
10. 当写周期完成时,WR 位被清零,EEIF 中断标志
位被置 1。(EEIF 必须用固件清零。)如果未实
现步骤 1,固件应检查 EEIF 是否置 1 或 WR 是
否清零,以判断编程周期是否结束。
例 13-2:
BANKSEL
BTFSC
GOTO
BANKSEL
MOVF
MOVWF
MOVF
MOVWF
BANKSEL
BCF
此外,必须将 EECON1 中的 WREN 位置 1 以使能写操
作。这种机制可防止由于代码执行错误 (异常)(即程
序跑飞)导致误写 EEPROM。除了更新 EEPROM 时以
外,用户应该始终保持 WREN 位清零。 WREN 位不能
由硬件清零。
一个写序列启动后,清零 WREN 位将不会影响此写周
期。除非 WREN 位置 1,否则 WR 位将无法置 1。
必需的
序列
写周期完成时, WR 位由硬件清零并且 EE 写完成中断
标志位 (EEIF)置 1。用户可以允许中断或查询此位。
EEIF 必须用软件清零。
DS41250F_CN 第 190 页
写入数据 EEPROM
BSF
EECON1
;
EECON1,WR
;Wait for write
$-1
;to complete
EEADRL
;
DATA_EE_ADDR,W ;Data Memory
EEADRL
;Address to write
DATA_EE_DATA,W ;Data Memory Value
EEDATL
;to write
EECON1
;
EECON1,EEPGD ;Point to DATA
;memory
EECON1,WREN
;Enable writes
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
INTCON,GIE
55h
EECON2
AAh
EECON2
EECON1,WR
BSF
BCF
INTCON,GIE
EECON1,WREN
;Disable INTs.
;
;Write 55h
;
;Write AAh
;Set WR bit to
;begin write
;Enable INTs.
;Disable writes
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
13.1.4
读闪存程序存储器
要读取程序存储器单元,用户必须将地址的两个字节分
别写入 EEADRL 和 EEADRH 寄存器,将 EEPGD 控制位
置 1,然后将 EECON1 寄存器中的控制位 RD 置 1。一旦
设置好读控制位,闪存程序存储器控制器将使用第二个
指令周期来读数据。这会导致紧随 “BSF EECON1,RD”
指 令 的 第 二 条 指 令 被 忽 略。在 紧 接 着 的 下 一 个 周 期
EEDATL 和 EEDATH 寄存器中就有数据了,因此在随后
的指令中将该数据读作两个字节。 EEDATL 和 EEDATH
寄存器将把此值保存至下一次用户向该单元读取或写入
数据时 (在写操作过程中)为止。
注
1: 程序存储器读操作后的两条指令必须为
NOP,从而阻止用户在RD位置1后的下一
条指令执行双周期指令。
2: 当 EEPGD = 1 时如果 WR 位置 1,它会
立即复位为 0,而不执行任何操作。
例 13-3:
读闪存存储器
必需的
序列
BANKSEL
MOVLW
MOVWF
MOVLW
MOVWF
BANKSEL
BSF
BSF
EEADRL
;
MS_PROG_EE_ADDR;
EEADRH
;MS Byte of Program Address to read
LS_PROG_EE_ADDR;
EEADRL
;LS Byte of Program Address to read
EECON1
;
EECON1, EEPGD ;Point to PROGRAM memory
EECON1, RD
;EE Read
;
NOP
NOP
;Any instructions here are ignored as program
;memory is read in second cycle after BSF
;
BANKSEL
MOVF
MOVWF
MOVF
MOVWF
EEDATL
EEDATL, W
DATAL
EEDATH, W
DATAH
 2007 Microchip Technology Inc.
;
;W = LS Byte of EEPROM Data program
;
;W = MS Byte of EEPROM Data program
;
DS41250F_CN 第 191 页
PIC16F913/914/916/917/946
图 13-1:
闪存程序存储器读周期执行时序
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)
EEADRH,EEADRL
INSTR (PC + 1)
在此执行
BSF EECON1,RD
PPC+3
C+3
EEDATH,EEDATL
在此执行
INSTR (PC + 1)
PC +5
PC +4
INSTR (PC +3)
在此强制
执行 NOP
INSTR (PC +4)
在此执行
INSTR (PC +3)
在此执行
INSTR (PC +4)
RD 位
EEDATH
EEDATL
寄存器
EERHLT
表 13-1:
名称
与数据 EEPROM 相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠压
复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
EEIF
ADIF
RCIF
EEADRH
—
—
—
EEADRL
EEADRL7
EEADRL6
EEADRL5
EEADRL4
EEADRL3
EEADRL2
EEADRL1
EEADRL0
0000 0000
0000 0000
EECON1
EEPGD
—
—
—
WRERR
WREN
WR
RD
0--- x000
---- q000
---- ----
---- ----
EEDATH4
EEDATH3
EEDATH2
EEDATH1
EEDATH0
--00 0000
--00 0000
EEDATL4
EEDATL3
EEDATL2
EEDATL1
EEDATL0
0000 0000
0000 0000
EECON2
EEPROM 控制寄存器 2 (非物理寄存器)
EEDATH
—
—
EEDATH5
EEDATL
EEDATL7
EEDATL6
EEDATL5
图注:
EEADRH4 EEADRH3 EEADRH2 EEADRH1 EEADRH0
0000 0000
0000 0000
---0 0000
---0 0000
x = 未知, u = 不变, - = 未实现 (读为 0), q = 具体值根据条件而定。
数据 EEPROM 模块不使用阴影单元。
DS41250F_CN 第 192 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
14.0
SSP 模块概述
图 14-1:
内部
数据总线
同步串行端口(SSP)模块是用于同其他外设或单片机
进行通信的串行接口。这些外设可能是串行EEPROM、
移位寄存器、显示驱动器以及 A/D 转换器等。 SSP 模
块有下列两种工作模式:
读
14.1
SPI 模式
SSPSR 寄存器
SDI/SDA
SDO
本节包含寄存器定义和 SPI 模块的可操作特性。
SPI 模式允许同时同步发送和接收 8 位数据。 通常使用
以下三个引脚来完成通信:
• 串行数据输出 (Serial Data Out , SDO)
• 串行数据输入 (Serial Data In , SDI)
• 串行时钟 (Serial Clock, SCK)
写
SSPBUF 寄存器
• 串行外设接口 (Serial Peripheral Interface,
SPI)
• 内部集成电路 (Inter-Integrated Circuit, I2C™)
请参考应用笔记 AN578 “Use of the SSP Module in
the Multi-Master Environment”(DS00578)。
SSP 框图 (SPI 模式)
移位
时钟
bit 0
外设 OE
SS 控制
使能
SS
边沿
选择
2
时钟选择
此外,当工作在从模式下时可以使用第 4 个引脚:
• 从选择 (SS)
注
SSPM<3:0>
1: 当 SPI 用于从模式且使能了 SS 引脚控制
(SSPCON 寄存 器中 的 SSPM<3:0> =
0100)时,如果 SS 引脚设置为 VDD,那么
SPI 模块将复位。
2: 当 SPI 工作在从模式下并且 CKE = 1,则
必须使能 SS 引脚控制。
4
边沿
选择
SCK/
SCL
TMR2 输出
2
预分频器
4, 16, 64
TCY
TRISC<6>
3: 当 SPI 用于从模式且使能了 SS 引脚控制
(SSPCON 寄存器中的 SSPM<3:0> =
0100)时, SS 引脚的状态会影响从
TRISC<4> 位读回的状态。从 SSP 模块
向 PORTC 发送的外设输出使能信号控制
从 TRISC<4> 位读回的状态 (如需了解
PORTC 的更多信息,请参见第 19.0 节
“电气规范”)。如果在 SS 引脚处于高电
平时,对 TRISC 寄存器执行读-修改-
写指令 (如 BSF),将使 TRISC<4> 位
置 1,从而禁止 SDO 输出。
 2007 Microchip Technology Inc.
DS41250F_CN 第 193 页
PIC16F913/914/916/917/946
寄存器 14-1:
SSPSTAT:同步串行端口状态寄存器
R/W-0
R/W-0
R-0
R-0
R-0
R-0
R-0
R-0
SMP
CKE
D/A
P
S
R/W
UA
BF
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位, 读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
SMP:SPI 数据输入采样阶段位
SPI 主模式:
1 = 在数据输出时间结束时采样输入数据
0 = 在数据输出时间中间采样输入数据 (Microwire)
SPI 从模式:
当 SPI 用于从模式时,必须将 SMP 清零
I2 C™ 模式:
此位必须保持清零
bit 6
CKE:SPI 时钟边沿选择位
SPI 模式, CKP = 0:
1 = 数据在 SCK 的上升沿稳定 (Microwire 备用方案)
0 = 数据在 SCK 的下降沿稳定
SPI 模式, CKP = 1:
1 = 数据在 SCK 的下降沿稳定 (Microwire 默认方案)
0 = 数据在 SCK 的上升沿稳定
I2 C 模式:
此位必须保持清零
bit 5
D/A:数据 / 地址位 (仅 I2C 模式)
1 = 表示上次接收或发送的字节是数据
0 = 表示上次接收或发送的字节是地址
bit 4
P:停止位 (仅 I2C 模式)
当禁止 SSP 模块或上次检测到起始位时,该位被清零。
SSPEN 被清零。
1 = 表示上次检测到了停止位 (此位在复位时为 0)
0 = 表示上次未检测到停止位
bit 3
S:启动位 (仅 I2C 模式)
当禁止 SSP 模块或上次检测到停止位时,该位被清零。
SSPEN 被清零。
1 = 表示上次检测到了起始位 (此位在复位时为 0)
0 = 表示上次未检测到起始位
bit 2
R/W:读 / 写信息位 (仅 I2C 模式)
该位用来保存在上次地址匹配后的 R/W 位信息。 此位仅在地址匹配与遇到下一个起始位、停止位或 ACK 位之间
有效。
1=读
0=写
bit 1
UA:更新地址位 (仅 10 位 I2C 模式)
1 = 表示用户需要更新 SSPADD 寄存器中的地址
0 = 不需要更新地址
bit 0
BF:缓冲器满状态位
接收 (SPI 和 I2 C 模式):
1 = 接收完成, SSPBUF 满
0 = 接收未完成, SSPBUF 空
发送 (仅 I2 C 模式):
1 = 正在发送, SSPBUF 满
0 = 发送完成, SSPBUF 空
DS41250F_CN 第 194 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 14-2:
SSPCON:同步串行端口控制寄存器
R/W-0
R/W-0
WCOL
SSPOV
R/W-0
SSPEN
R/W-0
CKP
R/W-0
SSPM3
(2)
R/W-0
SSPM2
(2)
R/W-0
SSPM1
bit 7
(2)
R/W-0
SSPM0(2)
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
bit 7
WCOL:写冲突检测位
1 = 正在发送前一个字时,又有数据写入 SSPBUF 寄存器 (必须由软件清零)
0 = 无冲突
bit 6
SSPOV:接收溢出指示位
在 SPI 模式下:
1 = SSPBUF 寄存器中仍保存前一数据时,又接收到一个新的字节。如果溢出,SSPSR 中的数据会丢失。溢出只
会在从模式下发生。 即使只是发送数据,用户也必须读 SSPBUF,以避免将溢出标志位置 1。 在主模式下,溢
出位不会被置 1,因为每次接收 (和发送)新数据都是通过写入 SSPBUF 寄存器启动。
0 = 无溢出
在 I2 C™ 模式下:
1 = SSPBUF 寄存器中仍保存前一数据时,又接收到一个新的字节。SSPOV 在发送模式下被忽略。两种模式下都
必须由软件将 SSPOV 清零。
0 = 无溢出
bit 5
SSPEN:同步串行端口使能位
在 SPI 模式下:
1 = 使能串行端口并将 SCK、 SDO 和 SDI 配置为串行端口引脚
0 = 禁止串行端口并将这些引脚配置为 I/O 端口引脚
在 I2 C 模式下:
1 = 使能串行端口并将 SDA 和 SCL 引脚配置为串行端口引脚
0 = 禁止串行端口并将这些引脚配置为 I/O 端口引脚
在两种模式下,当使能时,这些引脚必须被正确配置为输入或输出。
bit 4
CKP:时钟极性选择位
在 SPI 模式下:
1 = 空闲状态时,时钟为高电平 (Microwire 默认方案)
0 = 空闲状态时,时钟为低电平 (Microwire 备用方案)
在 I2 C 模式下:
SCK 释放控制
1 = 使能时钟
0 = 保持时钟为低电平 (时钟低电平时间延长)。(用于确保数据建立时间。)
bit 3-0
SSPM<3:0>:同步串行端口模式选择位
0000 = SPI 主模式,时钟 = FOSC/4
0001 = SPI 主模式,时钟 = FOSC/16
0010 = SPI 主模式,时钟 = FOSC/64
0011 = SPI 主模式,时钟 = TMR2 输出 /2
0100 = SPI 从模式,时钟 = SCK 引脚。 使能 SS 引脚控制
0101 = SPI 从模式,时钟 = SCK 引脚。 禁止 SS 引脚控制。 SS 可作为 I/O 引脚使用。
0110 = I2C 从模式, 7 位地址
0111 = I2C 从模式, 10 位地址
1000 = 保留
1001 = 保留
1010 = 保留
1011 = I2C 固件控制主模式 (从空闲模式)
1100 = 保留
1101 = 保留
1110 = I2C 从模式, 7 位地址,并允许起始位和停止位中断
1111 = I2C 从模式, 10 位地址,并允许起始位和停止位中断
 2007 Microchip Technology Inc.
DS41250F_CN 第 195 页
PIC16F913/914/916/917/946
14.2
工作原理
当初 始化
SPI
时,需要 通过 对相 应的 控制 位
(SSPCON<5:0> 和 SSPSTAT<7:6>)编程来指定几个
选项。这些控制位用于设置以下选项:
•
•
•
•
主模式 (SCK 作为时钟输出)
从模式 (SCK 作为时钟输入)
时钟极性 (SCK 的空闲状态)
输入数据的采样阶段 (数据输出时间的中间或末
端)
• 时钟边沿 (在 SCK 的上升沿 / 下降沿输出数据)
• 时钟速率 (仅用于主模式)
• 从选择模式 (仅用于从模式)
为确保应用软件能有效地接收数据,应该在要发送的下
一数据字节写入 SSPBUF 之前,读取 SSPBUF 中现有
的数据。SSPSTAT 寄存器中的缓冲器满标志位 BF 指出
将接收到的数据装入 SSPBUF(发送完成)的时间。当
SSPBUF 中的数据被读取后,BF 位即被清零。如果 SPI
仅仅作为一个发送器,则不必理会接收的数据。 通常,
可用 SSP 中断来判断发送和接收完成的时间。 必须读
取和 / 或写入 SSPBUF。如果不打算使用中断,用软件
查询的方法同样可确保不会发生写冲突。例 14-1 说明了
装载 SSPBUF (SSPSR)进行数据发送的过程。
不能直接读写 SSPSR 寄存器,只能通过寻址 SSPBUF
寄存器来访问。此外,SSP 状态寄存器(SSPSTAT)指
示各种状态条件。
SSP 模块由一个发送 / 接收移位寄存器 (SSPSR)和
一个缓冲寄存器 (SSPBUF)组成。 SSPSR 对进出器
件的数据进行移位,最高有效位在前。在新数据接收完
毕前,SSPBUF 保存上次写入 SSPSR 的数据。一旦 8
位数据接收完毕,该字节就被移入 SSPBUF 寄存器。然
后,SSPSTAT 寄存器中的缓冲器满状态位 BF 和中断标
志位 SSPIF 被置 1。 在数据发送 / 接收期间,任何试图
写SSPBUF寄存器中的操作都会被忽略,并且SSPCON
寄存器的写冲突检测位 WCOL 会置 1。此时用户必须用
软件将 WCOL 位清零,否则无法判别以后对 SSPBUF
的写操作是否成功。
例 14-1:
LOOP
BANKSEL
BTFSS
GOTO
BANKSEL
MOVF
MOVWF
MOVF
MOVWF
装载 SSPBUF (SSPSR)寄存器
SSPSTAT
SSPSTAT, BF
LOOP
SSPBUF
SSPBUF, W
RXDATA
TXDATA, W
SSPBUF
DS41250F_CN 第 196 页
;
;Has data been received(transmit complete)?
;No
;
;WREG reg = contents of SSPBUF
;Save in user RAM, if data is meaningful
;W reg = contents of TXDATA
;New data to xmit
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
14.3
使能 SPI I/O
14.4
典型连接
要使能串行端口, SSPCON 寄存器中的 SSP 使能位
SSPEN 必须置 1。 要复位或重新配置 SPI 模式,应先
将 SSPEN 位清零,重新初始化 SSPCON 寄存器,然后
将 SSPEN 位置 1。这将把 SDI、SDO、SCK 和 SS 引
脚配置为串行端口引脚。要让上述引脚用于串行端口功
能,应对它们的数据方向位 (在 TRISA 和 TRISC 寄存
器中)做如下设置:
图 14-2 给出了两个单片机之间的典型连接。主器件 (处
理器 1)通过发送 SCK 信号来启动数据传输。在两个处
理器的移位寄存器之间,数据在编程设定的时钟边沿被
传送,并在相反的时钟边沿被锁存。必须将两个处理器
的时钟极性(CKP)设置为相同,这样两个控制器就可
以同时收发数据。数据是否有效,取决于应用软件。这
就导致以下三种数据传输情形:
•
•
•
•
•
•
• 主器件发送数据 — 从器件发送无效 (Dummy)
数据
• 主器件发送数据 — 从器件发送数据
• 主器件发送无效数据 — 从器件发送数据
TRISC<7> 位必须置 1
SDI 由 SPI 模块自动控制
对于 SDO,必须将 TRISC<4> 位清零
对于 SCK (主模式),必须将 TRISC<6> 位清零
对于 SCK (从模式),必须将 TRISC<6> 位置 1
对于 SS (如果使能),必须将 TRISA<5> 位置 1
对于不需要的任何串行端口功能,可通过将对应的数据
方向(TRISA 和 TRISC)寄存器设置为相反值来屏蔽。
图 14-2:
SPI 主 / 从器件连接
SPI 主器件 SSPM<3:0> = 00xxb
SPI 从器件 SSPM<3:0> = 010xb
SDO
SDI
串行输入缓冲器
(SSPBUF)
串行输入缓冲器
(SSPBUF)
SDI
移位寄存器
(SSPSR)
SDO
LSb
MSb
MSb
SCK
处理器 1
 2007 Microchip Technology Inc.
移位寄存器
(SSPSR)
串行时钟
LSb
SCK
处理器 2
DS41250F_CN 第 197 页
PIC16F913/914/916/917/946
14.5
主模式
因为由主器件控制 SCK 信号,所以它可以在任意时刻
启动数据传输。 主器件根据软件协议确定从器件 (图
14-2 中的处理器 2)应在何时广播数据。
在主模式下,数据一旦写入 SSPBUF 寄存器就开始发送
或接收。如果只打算将 SPI 作为接收器,则可以禁止
SDO 输出 (将其设置为输入)。SSPSR 寄存器按设置
的时钟速率,对 SDI 引脚上的信号进行连续移位输入。
每收到一个字节,就将其装入 SSPBUF 寄存器,就像接
收到普通字节一样 (中断和状态位相应置 1)。 这在以
“线路操作监控”(Line Activity Monitor)方式工作的接
收器应用中很有用。
图 14-3:
可通过对 SSPCON 寄存器中的 CKP 位进行适当的编程
来选择时钟极性。图 14-3、图 14-5 和图 14-6 将给出 SPI
通信的波形图,其中首先发送的是最高有效位。 在主模
式下, SPI 时钟速率 (比特率)可由用户编程设定为下
面几种方式之一:
•
•
•
•
FOSC/4 (或 TCY)
FOSC/16 (或 4 • TCY)
FOSC/64 (或 16 • TCY)
Timer2 输出 /2
这样可使数据传输速率最高达到 5 Mbps (时钟频率为
20 MHz)。
图 14-3 给出了主模式的波形图。当 CKE 位置 1 时,SDO
数据在 SCK 出现时钟边沿前一直有效。 图中所示的输
入采样的变化由 SMP 状态位反映。 图中给出了将接收
到的数据装入 SSPBUF 的时间。
SPI 模式的波形图 (主模式)
写入
SSPBUF
SCK
(CKP = 0
CKE = 0)
SCK
(CKP = 1
CKE = 0)
4 个时钟
模式
SCK
(CKP = 0
CKE = 1)
SCK
(CKP = 1
CKE = 1)
SDO
(CKE = 0)
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
SDO
(CKE = 1)
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
SDI
(SMP = 0)
bit 0
bit 7
输入
采样
(SMP = 0)
SDI
(SMP = 1)
bit 7
bit 0
输入
采样
(SMP = 1)
SSPIF
SSPSR 到
SSPBUF
DS41250F_CN 第 198 页
在 Q2↓ 之后的
下一个 Q4 周期
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
14.6
从模式
在从模式下,当 SCK 引脚上出现外部时钟脉冲时发送
和接收数据。 当最后一位数据被锁存后,中断标志位
SSPIF 置 1。
在从模式下,外部时钟由 SCK 引脚上的外部时钟源提
供。外部时钟必须满足电气规范中规定的高电平和低电
平的最短时间要求。
在休眠模式下,从器件仍可发送 / 接收数据。 当接收到
一个字节时,器件从休眠状态唤醒。
14.7
从选择同步
SS 引脚允许器件工作于同步从模式。SPI 必须处于从模
式,并使能 SS 引脚控制 (SSPCON<3:0> = 0100)。
要让 SS 引脚充当输入端,则不能将此引脚驱动为低电
平。数据锁存器必须为高电平。当 SS 引脚为低电平时,
使能数据的发送和接收,同时驱动 SDO 引脚。当 SS 引
图 14-4:
脚变为高电平时,即使是在字节的发送过程中,SDO 引
脚也不再被驱动,而是变成悬空输出状态。 根据应用的
需要,可在 SDO 引脚上外接上拉 / 下拉电阻。
注
1: 当 SPI 处于从模式且使能了 SS 引脚控制
(SSPCON<3:0> = 0100)时,如果 SS 引
脚设置为 VDD,那么 SPI 模块将复位。
2: 如果 SPI 工作在从模式下并且 CKE 置 1,
则必须使能 SS 引脚控制。
当 SPI 模块复位时,位计数器被强制为 0。这可以通过
强制将 SS 引脚拉为高电平或将 SSPEN 位清零实现。
将 SDO 引脚和 SDI 引脚相连,可以仿真二线制通信。
当 SPI 需要作为接收器工作时, SDO 引脚可以被配置
为输入端。 这样就禁止了从 SDO 发送数据。 因为 SDI
不 会 引 起总 线 冲 突,因 而 总 是 可 以 将其 保 留 为 输 入
(SDI 功能)。
从同步波形图
SS
SCK
(CKP = 0
CKE = 0)
SCK
(CKP = 1
CKE = 0)
写入
SSPBUF
SDO
SDI
(SMP = 0)
bit 7
bit 6
bit 7
bit 0
bit 0
bit 7
bit 7
输入
采样
(SMP = 0)
SSPIF
中断
标志
SSPSR 到
SSPBUF
 2007 Microchip Technology Inc.
在 Q2↓ 之后的
下一个 Q4 周期
DS41250F_CN 第 199 页
PIC16F913/914/916/917/946
图 14-5:
SPI 模式的波形图 (从模式且 CKE = 0)
SS
可选
SCK
(CKP = 0
CKE = 0)
SCK
(CKP = 1
CKE = 0)
写入
SSPBUF
SDO
bit 7
SDI
(SMP = 0)
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bit 0
bit 7
输入
采样
(SMP = 0)
SSPIF
中断
标志
在 Q2↓ 之后的
下一个 Q4 周期
SSPSR 到
SSPBUF
图 14-6:
SPI 模式的波形图 (从模式且 CKE = 1)
SS
不可选
SCK
(CKP = 0
CKE = 1)
SCK
(CKP = 1
CKE = 1)
写入
SSPBUF
SDO
SDI
(SMP = 0)
bit 6
bit 7
bit 7
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bit 0
输入
采样
(SMP = 0)
SSPIF
中断
标志
SSPSR 到
SSPBUF
DS41250F_CN 第 200 页
在 Q2↓ 之后的
下一个 Q4 周期
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
14.8
14.10 总线模式兼容性
休眠模式下的工作
在主模式下,进入休眠模式后所有模块的时钟都停振,
在器件被唤醒前,发送 / 接收也将保持原先的状态。在器
件恢复正常工作模式后,模块将继续发送 / 接收数据。
表 14-1 所示是标准 SPI 模式与 CKP 和 CKE 控制位状态
的对应关系。
在从模式下, SPI 发送 / 接收移位寄存器与器件异步工
作。这可以使器件在休眠状态时,仍可使数据被移入
SPI 发送 / 接收移位寄存器。当接收完 8 位数据后,SSP
中断标志位将置 1,如果此时该中断是允许的,还将唤
醒器件。
表 14-1:
14.9
SPI 总线模式
控制位状态
标准 SPI 模式术语
复位的影响
复位会禁止 SSP 模块并终止当前的数据传输。
CKP
CKE
0, 0
0
1
0, 1
0
0
1, 0
1
1
1, 1
1
0
还有一个 SMP 位,该位控制数据采样的时间。
表 14-2:
名称
与 SPI 操作相关的寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE0
SE7
SE6
SE5
SE4
SE3
SE2
SE1
SE0
0000 0000
0000 0000
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
xxxx xxxx
uuuu uuuu
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
SSPBUF
SSPCON
同步串行端口接收缓冲器 / 发送寄存器
WCOL
SSPOV
SSPEN
CKP
SMP
CKE
D/A
P
S
R/W
UA
BF
0000 0000
0000 0000
TRISA
TRISA7
TRISA6
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
1111 1111
1111 1111
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
SSPSTAT
图注:
x = 未知, u = 不变, – = 未实现单元 (读为 0)。 SPI 模式下的 SSP 不使用阴影单元。
 2007 Microchip Technology Inc.
DS41250F_CN 第 201 页
PIC16F913/914/916/917/946
14.11 SSP I2C 工作原理
I2C 模式下的 SSP 模块能实现全部从动功能(除广播呼
叫支持外) ,且硬件支持起始位和停止位中断,以便于
固件实现主控功能。 SSP 模块实现标准模式规范以及 7
位和 10 位寻址。
有两个引脚用于数据传输:RC6/TX/CK/SCK/SCL/SEG9
引脚作为时钟线(SCL),而RC7/RX/DT/SDI/SDA/SEG8
引脚作为数据线 (SDA)。
通过将 SSP 使能位 SSPEN(SSPCON<5>)置 1 以使
能 SSP 模块的功能。
2
图 14-7:
SSP 框图 (I C™ 模式)
内部
数据总线
读
当地址匹配或在地址匹配后发送的数据被接收时,硬件
会自动产生一个应答 (ACK)脉冲,并把当时 SSPSR
寄存器中接收到的值装入 SSPBUF 寄存器。
SSPSR 寄存器
MSb
LSb
匹配检测
地址匹配
置 1 和复位
S 位和 P 位
(SSPSTAT
寄存器)
SSP 模块有 5 个寄存器用于 I2C 操作,这 5 个寄存器是 :
•
•
•
•
•
SSP 控制寄存器 (SSPCON)
SSP 状态寄存器 (SSPSTAT)
串行接收 / 发送缓冲器 (SSPBUF)
SSP 移位寄存器 (SSPSR)— 不可直接访问
SSP 地址寄存器 (SSPADD)
DS41250F_CN 第 202 页
某些条件会使 SSP 模块不发出此 ACK 脉冲。这些条件
包括 (之一或全部):
a)
b)
SSPADD 寄存器
起始位和
停止位检测
任何 I2C 模式的选择,在 SSPEN 置 1 后都会强制 SCL
和SDA引脚为漏极开路(假定通过编程将相应的TRISC
位置 1,使这些引脚成为输入引脚)。 必须在 SCL 和
SDA 引脚上外接上拉电阻,才能使 I2C 模块正常工作。
在从模式下, SCL 引脚和 SDA 引脚必须被配置为输入
(TRISC<7,6> 置 1)。 必要时 SSP 模块将用输出数据
改写输入状态 (从发送器)。
SSPBUF 寄存器
移位
时钟
SDI/
SDA
I2C 从模式 (7 位地址)
I2C 从模式 (10 位地址)
I2C 从模式 (7 位地址),允许起始位和停止位中
断以支持固件主模式
• I2C 从模式 (10 位地址),允许起始位和停止位
中断以支持固件主模式
• 允许 I2C 起始位和停止位中断以支持固件主模式,
而从模式空闲
•
•
•
14.12 从模式
写
SCK/
SCL
SSPCON寄存器用于控制I2C 的工作。可通过设置四个
模式选择位(SSPCON<3:0>)选择以下 I2C 模式之一:
在接收到数据前, SSPSTAT 寄存器中的缓冲器
满标志位 BF 置 1。
在接收到数据前,SSPCON寄存器中的溢出标志
位 SSPOV 置 1。
在这种情况下,SSPSR寄存器的值不会载入SSPBUF,
但是 PIR1 寄存器中的 SSPIF 位会置 1。表 14-3 显示了
当已知 BF 位和 SSPOV 位的状态时,接收到数据发送
字节时产生的结果。阴影单元显示了当用户软件没有正
确将溢出状态清零时的情况。 通过读 SSPBUF 寄存器
可以将标志位 BF 清零,而 SSPOV 位则由软件清零。
为确保正常工作,SCL 时钟输入必须满足最小高电平和
最小低电平时间要求。 要了解 I2C 规范的高低电平时间
和对 SSP 模块的具体要求,请参见第 19.0 节 “电气规
范”。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
14.12.1
寻址
一旦 SSP 模块被使能,它就会等待启动条件发生。 启
动条件发生后, 8 位数据被移入 SSPSR 寄存器。 在时
钟(SCL)线的上升沿采样所有的输入位。在第 8 个时
钟 (SCL)脉冲的下降沿寄存器 SSPSR<7:1> 的值会
和 SSPADD <7:1> 寄存器的值比较。如果地址匹配,并
且 BF 和 SSPOV 都被清零,会发生下列事件:
a)
b)
c)
d)
SSPSR 寄存器的值被装入 SSPBUF 寄存器。
缓冲器满标志位 BF 被置 1。
产生 ACK 脉冲。
在第 9 个 SCL 脉冲的下降沿, PIR1 寄存器的
SSP 中断标志位 SSPIF 被置 1(如果允许中断,
则产生中断)。
在 10 位地址模式下,从器件需要收到两个地址字节(图
14-8)。 第一个地址字节的高 5 位将指定这是否是一个
10 位地址。R/W 位(SSPSTAT<2>)必须指定写操作,
这样从器件才能接收到第二个地址字节。 对于 10 位地
址,第一个字节等于 “1111 0 A9 A8 0”,其中 A9
和 A8 是该地址的两个最高有效位。
表 14-3:
10 位地址的工作步骤如下,其中 7-9 步是针对从发送器
而言的:
1.
2.
3.
4.
5.
6.
7.
8.
9.
接收地址的第一个 (高)字节 (SSPIF 位、 BF
位和 UA 位 (SSPSTAT<1>)置 1)。
用地址的第二个 (低)字节更新 SSPADD 寄存
器 (UA 位清零并释放 SCL 线)。
读 SSPBUF 寄存器 (BF 位清零)并将标志位
SSPIF 清零。
接收地址的第二个 (低)字节 (SSPIF 位、 BF
位和 UA 位置 1)。
用地址的第一个 (高)字节更新 SSPADD 寄存
器;如果匹配,则释放 SCL 线,这将清零 UA 位。
读 SSPBUF 寄存器 (BF 位清零)并将标志位
SSPIF 清零。
接收重复启动条件。
接收地址的第一个 (高)字节 (SSPIF 位和 BF
位置 1)。
读 SSPBUF 寄存器 (BF 位清零)并将标志位
SSPIF 清零。
接收到传输数据后的动作
接收到传输数据时的
状态位
SSPSR → SSPBUF
产生 ACK
脉冲
SSPIF 位置 1
(如果允许 SSP 中断,
还将产生 SSP 中断)
BF
SSPOV
0
0
是
是
是
1
0
否
否
是
1
1
否
否
是
0
1
否
否
是
注:
阴影单元表示用户软件没有正确清除溢出条件时的情况。
 2007 Microchip Technology Inc.
DS41250F_CN 第 203 页
PIC16F913/914/916/917/946
14.12.2
接收
当地 址字 节的 R/W 位清 零并 发生 地址 匹配 时,
SSPSTAT 寄存器中的 R/W 位清零。接收到的地址被装
入 SSPBUF 寄存器。
当发生地址字节溢出时,则不会产生应答 (ACK)脉
冲。溢出条件是指 SSPSTAT 寄存器中的 BF 位置 1,或
者 SSPCON 寄存器的 SSPOV 位置 1。这是一个由于用
户固件导致的错误状态。
每个数据传输字节都会产生 SSP 中断。 PIR1 寄存器中
的标志位 SSPIF 必须用软件清零。通过 SSPSTAT 寄存
器可以确定该字节的状态。
I2C™ 接收波形 (7 位地址)
图 14-8:
R/W = 0
接收地址
SCL
S
1
2
3
SSPIF(PIR1<3>)
BF(SSPSTAT<0>)
4
接收数据
ACK
A7 A6 A5 A4 A3 A2 A1
SDA
5
6
7
ACK
D7 D6 D5 D4 D3 D2 D1 D0
8
9
1
2
3
4
5
6
7
8
9
接收数据
ACK
D7 D6 D5 D4 D3 D2 D1 D0
1
2
3
4
5
6
7
由软件清零
8
9
P
总线主器件
终止传输
读 SSPBUF 寄存器
SSPOV (SSPCON<6>)
因为 SSPBUF 寄存器仍然是满的,所以 SSPOV 位置 1。
不发送 ACK。
DS41250F_CN 第 204 页
 2007 Microchip Technology Inc.
 2007 Microchip Technology Inc.
3
1
6
7
UA 置 1 表示
SSPADD 需要更新
8
9
(当 SEN = 0,CKP 不会复位为 0)
UA(SSPSTAT<1>)
5
0
将 SSPSR 的内容
写入 SSPBUF
SSPOV(SSPCON<6>)
CKP
4
1
由软件清零
2
1
BF(SSPSTAT<0>)
(PIR1<3>)
SSPIF
1
SCL
S
1
SDA
A7
2
4
5
由软件清零
3
6
7
UA 置 1 表示
SSPADD 需要更新
当用地址的低字节
更新 SSPADD 时,
由硬件清零
假读 SSPBUF
使 BF 标志位清零
1
8
A6 A5 A4 A3 A2 A1 A0
接收地址的第二个字节
9
ACK
接收数据字节
1
4
5
由软件清零
3
6
在用地址的高字节
更新 SSPADD 时,
由硬件清零
2
7
8
D7 D6 D5 D4 D3 D2 D1 D0
时钟保持低电平直到
SSPADD 被更新
9
ACK
1
2
4
5
由软件清零
3
6
7
8
D7 D6 D5 D4 D3 D2 D1 D0
接收数据字节
P
总线主器件
终止传输
SSPOV 被置 1,
因为 SSPBUF 仍为
满。不发送 ACK。
9
ACK
图 14-9:
R/W = 0
ACK
A9 A8 0
接收地址的第一个字节
时钟保持低电平直到
SSPADD 被更新
PIC16F913/914/916/917/946
I2C™ 从模式接收时序 (10 位地址)
DS41250F_CN 第 205 页
PIC16F913/914/916/917/946
14.12.3
每个数据传输字节都会产生 SSP 中断。 标志位 SSPIF
必须用软件清零, SSPSTAT 寄存器用于确定字节的状
态。标志位 SSPIF 在第 9 个时钟脉冲的下降沿被置 1。
发送
当输 入地 址字 节的 R/W 位 置 1 并发 生地 址匹 配
时, SSPSTAT 寄存器中的 R/W 位被置 1。接收到的地
址被装入 SSPBUF 寄存器。ACK 脉冲在第 9 位上发送,
RC6/TX/CK/SCK/SCL/SEG9 引脚保持低电平。 发送数
据必须被装入 SSPBUF 寄存器,同时也装入 SSPSR 寄
存器。然后,应通过将 SSPCON 寄存器中的 CKP 位置
1 来使能 RC6/TX/CK/SCK/SCL/SEG9 引脚。主器件必
须在发出另一个时钟脉冲前监视SCL引脚。从器件可以
通过延长时钟低电平时间不与主器件同步。 8 个数据位
在 SCL 输入的下降沿被移出。这可以确保在 SCL 为高
电平期间 SDA 信号是有效的 (图 14-10)。
I2C™ 发送波形 (7 位地址)
图 14-10:
R/W = 1
接收地址
SDA
SCL
对于从发送器,来自主接收器的 ACK 脉冲将在第 9 个
SCL输入脉冲的上升沿被锁存。若SDA 线为高电平(无
ACK 应答信号),则表示数据传输已完成。在这种情况
下,如果从器件锁存了 ACK,将复位从逻辑 (复位
SSPSTAT 寄存器),同时从器件监视下一个起始位的出
现。 如果 SDA 线为低电平 (ACK),则必须将下一个
要发送的数据装入 SSPBUF 寄存器和 SSPSR 寄存器。
然后,通过将CKP位置1使能RC6/TX/CK/SCK/SCL/SEG9
引脚。
A7
S
A6
A5
1
2
3
采样数据输入
SSPIF(PIR1<3>)
A4
A3
A2
A1
4
5
6
7
8
9
ACK
发送数据
ACK
D7
1
当 CPU 响应
SSPIF 时,
SCL 保持低电平
D6
D5
D4
D3
D2
D1
D0
2
3
4
5
6
7
8
9
P
由软件清零
BF(SSPSTAT<0>)
用软件写 SSPBUF
通过 SSP 中断
服务程序
CKP (SSPCON<4>)
写 SPBUF 后置 1
(SSPBUF 的内容必须在
CKP 位置 1 前写入)
DS41250F_CN 第 206 页
 2007 Microchip Technology Inc.
 2007 Microchip Technology Inc.
3
1
6
7
UA 置 1 表示
SSPADD 需要更新
8
9
(当 SEN = 0,CKP 不会复位为 0)
UA(SSPSTAT<1>)
5
0
将 SSPSR 的内容
写入 SSPBUF
SSPOV(SSPCON<6>)
CKP
4
1
由软件清零
2
1
BF(SSPSTAT<0>)
(PIR1<3>)
SSPIF
1
SCL
S
1
R/W = 0
ACK
A9 A8 0
A7
2
4
5
由软件清零
3
6
7
UA 置 1 表示
SSPADD 需要更新
当用地址的低字节
更新 SSPADD 时,
由硬件清零
假读 SSPBUF
使 BF 标志位清零
1
8
A6 A5 A4 A3 A2 A1 A0
接收地址的第二个字节
9
ACK
接收数据字节
1
4
5
由软件清零
3
6
在用地址的高字节
更新 SSPADD 时,
由硬件清零
2
7
8
D7 D6 D5 D4 D3 D2 D1 D0
时钟保持低电平直到
SSPADD 被更新
9
ACK
1
2
4
5
由软件清零
3
6
7
8
D7 D6 D5 D4 D3 D2 D1 D0
接收数据字节
P
总线主器件
终止传输
SSPOV 被置 1,
因为 SSPBUF 仍为
满。不发送 ACK。
9
ACK
图 14-11:
SDA
接收地址的第一个字节
时钟保持低电平直到
SSPADD 被更新
PIC16F913/914/916/917/946
I2C™ 从模式发送时序 (10 位地址)
DS41250F_CN 第 207 页
PIC16F913/914/916/917/946
14.13 主模式
14.14 多主器件模式
主模式通过固件在检测到启动条件和停止条件时产生中
断来工作。 停止 (P)位和起始 (S)位在复位时或禁
止 SSP 模块时被清零。停止 (P)位和起始 (S)位会
根据启动和停止条件翻转。 当 P 位置 1 时,可以获得
I2C 总线的控制权;否则, P 位和 S 位都清零,总线处
于空闲状态。
在多主器件模式下,在检测到启动条件和停止条件时产
生的中断可用于判断总线是否空闲。 停止 (P)位和起
始 (S)位在复位时或禁止 SSP 模块时被清零。 停止
(P)位和起始(S)位会根据启动和停止条件翻转。当
P 位 (SSPSTAT<4>)置 1 时,可以获得 I2C 总线的控
制权;否则, P 位和 S 位都清零,总线处于空闲状态。
当总线处于忙状态且允许 SSP 中断时,一旦产生停止条
件就会产生中断。
在主 模式 下, SCL 和 SDA 线 通过 清零 相应 的
TRISC<7,6> 位来控制。 输出电平始终为低电平,而与
PORTC<7,6> 的值无关。因此当发送数据时,必须用数
据位 1 将 TRISC<6> 位置 1 (输入),并且用数据位 0
将 TRISC<7> 位清零 (输出)。 对于 SCL 线,也可使
用TRISC<6>位采用同样的方法进行控制。SCL和SDA
引脚上必须外接上拉电阻,才能使 I2C 模块正常工作。
在多主器件操作中,必须监视 SDA 线以确定信号电平
是否为所需的输出电平。此检查仅需在输出为高电平时
进行。如果期望输出高电平,但检测到的是低电平,器
件就需要释放 SDA 和 SCL 线(TRISC<7,6> 位置 1)。
此仲裁在以下两个阶段可能会失败:
下列事件会使 SSP 中断标志位 SSPIF 置 1 (如果允许
SSP 中断,则产生中断):
• 地址传输
• 数据传输
• 启动条件
• 停止条件
• 发送 / 接收到数据传输字节
当使能从逻辑电路时,从器件将继续接收数据。 如果在
地址传输阶段仲裁失败,可能表示与器件的通信正在进
行中。如果寻址到器件,则将会产生一个 ACK 脉冲。如
果在数据传输阶段仲裁失败,则器件需要在以后重新传
输数据。
可用从模式空闲 (SSPM<3:0> = 1011)或从模式活动
完成主模式操作。当同时使能主模式和从模式时,需要
使用软件区分中断源。
14.14.1
时钟同步与 CKP 位
当 CKP 位被清零时, SCL 输出被强制为 0。然而,将
CKP 位置 1 不会将 SCL 输出拉为低电平,除非已经采
样到 SCL 输出为低电平。因此,CKP 位不会将 SCL 线
拉为低电平,直到外部 I2C 主器件将 SCL 线拉低为止。
SCL 输出将保持低电平,直到 CKP 位置 1 且 I2C 总线
上的所有其他器件将SCL电平拉高为止。这可以确保对
CKP 位的写操作不会违反 SCL 的最小高电平时间要求
(见图 14-12)
DS41250F_CN 第 208 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 14-12:
时钟同步时序
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
SDA
DX
DX-1
SCL
主器件
拉低时钟
CKP
主器件
拉高时钟
写
SSPCON
与 I2C™ 操作相关的寄存器汇总
表 14-4:
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠压
复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IF
TMR1IF
0000 0000
0000 0000
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
xxxx xxxx
uuuu uuuu
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
SSPBUF
SSPCON
同步串行端口接收缓冲器 / 发送寄存器
WCOL
SSPOV SSPEN
CKP
(1)
(1)
SSPSTAT
SMP
CKE
TRISC
TRISC7
TRISC6
D/A
P
S
R/W
UA
BF
0000 0000
0000 0000
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
图注:
– = 未实现单元 (读为 0), u = 不变, x = 未知。 SSP 模块不使用阴影单元。
注
1: 保持这些位清零
 2007 Microchip Technology Inc.
DS41250F_CN 第 209 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 210 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
15.0
捕捉 / 比较 /PWM (CCP)模块
捕捉 / 比较 /PWM 模块是允许用户定时和控制不同事件
的外设。在捕捉模式下,该外设能对事件的持续时间计
时。比较模式允许用户在达到预先设定的定时时间后触
发一个外部事件。 PWM 模式可产生频率和占空比都可
变化的脉宽调制信号。
表 15-1:
CCP 模块 — 需要的定时器资源
CCP 模式
定时器资源
捕捉
Timer1
比较
PWM
Timer1
Timer2
表 15-1 所示为该模块所需的定时器资源。
可以在 应用笔 记 AN594 “Using the CCP Modules”
(DS00594)中找到有关 CCP 模块的更多信息。
表 15-2:
两个 CCP 模块的相互关系
CCPx 模式
CCPy 模式
捕捉
捕捉
使用相同的 TMR1 时基
捕捉
比较
使用相同的 TMR1 时基
比较
PWM
比较
PWM
使用相同的 TMR1 时基
PWM
捕捉
无
PWM
比较
无
注:
相互关系
所有的 PWM 将具有相同的频率和更新速率 (TMR2 中断)。
上升沿对齐。
本文档中的 CCPRx 和 CCPx 分别指代
CCPR1 或 CCPR2 和 CCP1 或 CCP2。
 2007 Microchip Technology Inc.
DS41250F_CN 第 211 页
PIC16F913/914/916/917/946
寄存器 15-1:
CCPxCON:CCPx 控制寄存器
U-0
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
—
—
CCPxX
CCPxY
CCP1M3
CCP1M2
CCP1M1
CCP1M0
bit 7
bit 0
图注:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1= 置1
0 = 清零
x = 未知
bit 7-6
未实现:读为 0
bit 5-4
CCPxX:CCPxY:PWM 最低有效位
捕捉模式:
未用
比较模式:
未用
PWM 模式:
这些位是 PWM 占空比的低 2 位。 高 8 位在 CCPRxL 中。
bit 3-0
CCPxM<3:0>:CCP 模式选择位
0000 = 关闭捕捉 / 比较 /PWM (复位 CCP 模块)
0001 = 未用 (保留)
0010 = 未用 (保留)
0011 = 未用 (保留)
0100 = 捕捉模式,在每个下降沿捕捉一次
0101 = 捕捉模式,在每个上升沿捕捉一次
0110 = 捕捉模式,每 4 个上升沿捕捉一次
0111 = 捕捉模式,每 16 个上升沿捕捉一次
1000 = 比较模式,匹配时将输出置为高电平 (CCPxIF 位置 1)
1001 = 比较模式,匹配时将输出置为低电平 (CCPxIF 位置 1)
1010 = 比较模式,匹配时产生软件中断 (CCPxIF 位置 1, CCPx 引脚不受影响)
1011 = 比较模式,触发特殊事件(CCPxIF 位置 1,TR1 复位,而且如果使能了 ADC 模块则启动 A/D
转换。CCPx 引脚不受影响)
11xx = PWM 模式。
DS41250F_CN 第 212 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
15.1
15.1.2
捕捉模式
在捕 捉模 式下,当 在引 脚 CCPx 上 发生 事件 时,
CCPRxH:CCPRxL 寄存器对将捕捉 TMR1 寄存器的 16
位值。触发捕捉的事件可被定义为以下四者之一,并由
CCPxCON 寄存器中的 CCPxM<3:0> 位配置:
•
•
•
•
每出现一个下降沿
每出现一个上升沿
每出现 4 个上升沿
每出现 16 个上升沿
CCPx 引脚配置
在捕捉模式下,应该通过将相应的 TRIS 控制位置 1 把
CCPx 引脚配置为输入引脚。
注:
如果将 CCPx 引脚配置为输出引脚,对该
端口的写操作可能引发一次捕捉事件。
图 15-1:
欲使 CCP 模块使用捕捉功能, Timer1 必须工作在定时
器或同步计数器模式下。在异步计数器模式下,可能无
法进行捕捉操作。
15.1.3
软件中断
当捕捉模式改变时,可能会产生误捕捉中断。用户应该
保持 PIEx 寄存器中的 CCPxIE 中断允许位为零以避免
产生误中断,而且应该在工作模式发生任何改变之后清
零 PIRx 寄存器中的 CCPxIF 中断标志位。
当捕捉发生时,PIRx 寄存器的中断请求标志位 CCPxIF
置 1,但必须用软件将其清零。如果在 CCPRxH 和
CCPRxL 寄存器对中的值被读取之前发生了另一次捕
捉,那么之前捕捉的值将会被新值覆盖 (见图 15-1)。
15.1.1
TIMER1 模式选择
捕捉模式工作原理框图
预分频器
÷ 1, 4, 16
有四 种预 分频 器设 置,由 CCPxCON 寄存 器中 的
CCPxM<3:0> 位指定。 每当 CCP 模块被关闭或者没有
处于捕捉模式时,预分频器计数器就会被清零。任何复
位都会清零预分频器计数器。
从一个捕捉预分频比切换到另一个捕捉预分频比不会将
预分频计数器清零但可能会产生误中断。要避免出现这
种 不 期 望 的 操 作,应 在 改 变 预 分 频 比 前 通 过 清 零
CCPxCON 寄存器关闭模块 (见例 15-1)。
例 15-1:
CLRF
MOVLW
CCPx
引脚
CCPRxH
CCPRxL
捕捉
使能
MOVWF
TMR1H
CCP 预分频器
切换捕捉预分频比
BANKSEL CCP1CON
将标志位 CCPxIF 置 1
(PIRx 寄存器)
和
边沿检测
15.1.4
;Set Bank bits to point
;to CCP1CON
CCP1CON
;Turn CCP module off
NEW_CAPT_PS ;Load the W reg with
; the new prescaler
; move value and CCP ON
CCP1CON
;Load CCP1CON with this
; value
TMR1L
CCPxCON<3:0>
系统时钟 (FOSC)
 2007 Microchip Technology Inc.
DS41250F_CN 第 213 页
PIC16F913/914/916/917/946
15.2
15.2.2
比较模式
TIMER1 模式选择
在比较模式下,始终用 16 位 CCPRx 寄存器值与 TMR1
寄存器对的值进行比较。当发生匹配时, CCPx 模块可
能会出现以下几种情况:
在比较模式下,Timer1 必须运行在定时器模式或同步计
数器模式下。在异步计数器模式下,可能无法进行比较
操作。
•
•
•
•
•
15.2.3
CCPx 的输出电平翻转。
CCPx 输出高电平。
CCPx 输出低电平。
产生特殊事件触发信号。
产生软件中断。
软件中断模式
当选择了产生软件中断模式时 (CCPxM<3:0> = 1010),
CCPx 模块不会控制 CCPx 引脚(见 CCPxCON 寄存器)。
15.2.4
特殊事件触发信号
引脚的动作由 CCPxCON 寄存器中的 CCPxM<3:0> 控
制位的值决定。
当选择了特殊事件触发模式时 (CCPxM<3:0> = 1011),
CCPx 模块将执行如下操作:
所有比较模式都可以产生中断。
• 复位 Timer1
• 如果使能了 ADC 还将启动 ADC 转换
图 15-2:
在该 模式 下, CCPx 模 块不 控制 CCPx 引脚 (见
CCPxCON 寄存器)。
比较模式工作原理框图
CCPxCON<3:0>
模式选择
将 CCPxIF 中断标志位置 1
(PIRx)
4
CCPRxH CCPRxL
CCPx
引脚
Q
S
R
输出
逻辑
匹配
比较器
TMR1H
TRIS
输出使能
TMR1L
特殊事件触发信号
特殊事件触发信号将:
当 TMR1H 和 TMR1L 寄存器对与 CCPRxH 和 CCPRxL
寄存器对匹配时,CCP 会立即产生特殊事件触发信号输
出。TMR1H 和 TMR1L 寄存器对将在 Timer1 时钟的下
一个上升沿复位。 这使 CCPRxH 和 CCPRxL 寄存器对
实际上成为 Timer1 的 16 位可编程周期寄存器。
注
1: 来自CCP模块的特殊事件触发信号不会将
PIR1 寄存器的 TMRxIF 中断标志位置 1。
2: 在产生特殊事件触发信号的边沿和产生
Timer1复位的时钟边沿之间改变CCPRxH
和 CCPRxL 寄存器对的内容可清除匹配条
件,从而阻止复位发生。
• 清零 TMR1H 和 TMR1L 寄存器。
• 不会使 PIR1 寄存器的中断标志位 TMR1IF 置 1。
• 将 GO/DONE 位置 1 来启动 ADC 转换。
15.2.1
CCPx 引脚配置
用户必须通过清零相关的 TRIS 位将 CCPx 引脚配置为
输出引脚。
注:
清零 CCPxCON 寄存器将 CCPx 比较输出
锁存器强制为默认的低电平状态。 这不是
PORT I/O 数据锁存器。
DS41250F_CN 第 214 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
15.3
PWM 模式
PWM 模式在 CCPx 引脚上产生脉宽调制信号。由下列
寄存器确定占空比、周期和分辨率:
•
•
•
•
PR2
T2CON
CCPRxL
CCPxCON
一个 PWM 输出 (图 15-2)包含一个时基 (周期)和
一段输出保持为高电平的时间 (占空比)。
图 15-4:
CCP PWM 输出
周期
脉宽
在脉宽调制(Pulse-Width Modulation,PWM)模式下,
CCP 模块会在 CCPx 引脚上产生高达 10 位分辨率的
PWM 输出。由于 CCPx 引脚与端口数据锁存器复用,
必须清零相应的 TRIS 位才能使能 CCPx 引脚的输出驱
动器。
TMR2 = PR2
TMR2 = CCPRxL:CCPxCON<5:4>
TMR2 = 0
清零 CCPxCON 寄存器将会放弃 CCPx 对
CCPx 引脚的控制权。
注:
图 15-3 给出了 PWM 操作的简化框图。
图 15-4 给出了 PWM 信号的典型波形。
欲知设置 CCP 模块进行 PWM 操作的详细步骤,请参
见第 15.3.7 节 “设置 PWM 工作模式”。
图 15-3:
简化的 PWM 框图
CCPxCON<5:4>
占空比寄存器
CCPRxL
CCPRxH(2)(从)
CCPx
R
比较器
TMR2
(1)
Q
S
TRIS
比较器
PR2
注
清零 Timer2,
翻转 CCPx 引脚
的电平并锁存占空比
1: 一个 8 位定时器 TMR2 寄存器与一个 2 位的内
部系统时钟 (FOSC)或预分频器的 2 位相组
合以产生 10 位时基。
2: 在 PWM 模式下,CCPRxH 为只读寄存器。
 2007 Microchip Technology Inc.
DS41250F_CN 第 215 页
PIC16F913/914/916/917/946
15.3.1
PWM 周期
公式 15-2:
PWM 周期由 Timer2 的 PR2 寄存器来指定。 可以使用
公式 15-1 计算 PWM 周期。
公式 15-1:
Pulse Width
脉宽 = ( CCPRxL:CCPxCON<5:4> ) •
)
T OSC • (TMR2 预分频值
Prescale Value)
PWM 周期
PWM 周期 = [ ( PR2 ) + 1 ] • 4 • T OSC •
脉宽
公式 15-3:
占空比
(TMR2预分频值 )
注:
TOSC = 1/FOSC
当 TMR2 等于 PR2 时,在下一个递增计数周期中将发
生以下三个事件:
• TMR2 被清零
• CCPx 引脚被置 1 (例外情况:如果 PWM 占空
比 = 0%, CCPx 引脚将不被置 1)。
• PWM 占空比从 CCPRxL 锁存到 CCPRxH。
注:
15.3.2
Timer2 后分频器(见第 7.1 节“Timer2 工
作原理”)不被用于确定 PWM 频率。
CCPRxL:CCPxCON<5:4> )Duty Cycle
Ratio = (---------------------------------------------------------------------占空比
4 ( PR2 + 1 )
CCPRxH 寄存器和一个 2 位的内部锁存器用于为 PWM
占空比提供双重缓冲。这种双重缓冲机制极其重要,可
以避免在 PWM 工作过程中产生毛刺。
一个 8 位定时器 TMR2 寄存器与一个 2 位的内部系统时
钟(FOSC)或预分频器的 2 位相组合以产生 10 位时基。
如果将 Timer2 预分频比设置为 1:1,则使用系统时钟。
当 10 位时基的值与 CCPRxH 和 2 位锁存器的值匹配时,
会使 CCPx 引脚输出低电平 (见图 15-3)。
PWM 占空比
可通过将一个 10 位值写入以下多个寄存器来指定 PWM
占空比:CCPRxL 寄存器和 CCPxCON 寄存器中的
CCPx<1:0> 位。 CCPRxL 保存占空比的高 8 位,而
CCPxCON 寄存器中的 CCPx<1:0> 位保存占空比的低 2
位。可以在任何时候写入 CCPRxL 和 CCPxCON 寄存器
的 CCPx<1:0> 位,但直到周期结束(即,PR2 和 TMR2
寄 存 器 之 间 发 生 匹 配)后,占 空 比 的 值 才 被 锁 存 到
CCPRxH中。在PWM模式下,CCPRxH是只读寄存器。
公式 15-2 用于计算 PWM 脉宽。
公式 15-3 用于计算 PWM 占空比。
DS41250F_CN 第 216 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
15.3.3
PWM 分辨率
公式 15-4:
分辨率决定在给定周期内的可用占空比数。例如,10 位
分辨率将产生 1024 个离散的占空比,而 8 位分辨率将产
生 256 个离散的占空比。
log [ 4 ( PR2 + 1 ) ]- bits
Resolution
位
分辨率 = ----------------------------------------log ( 2 )
当 PR2 为 255 时, PWM 的最大分辨率为 10 位。如公
式 15-4 所示,分辨率是 PR2 寄存器值的函数。
表 15-3:
PWM 分辨率
注:
如果脉宽值大于周期值,则指定的 PWM 引
脚电平将保持不变。
PWM 频率与分辨率示例 (FOSC = 20 MHz)
PWM 频率
1.22 kHz
4.88 kHz
19.53 kHz
78.12 kHz
定时器预分频值 (1、 4 或 16)
16
4
1
1
1
1
0xFF
0xFF
0xFF
0x3F
0x1F
0x17
10
10
10
8
7
6.6
19.61 kHz
76.92 kHz
PR2 值
最大分辨率 (位)
表 15-4:
156.3 kHz 208.3 kHz
PWM 频率与分辨率示例 (FOSC = 8 MHz)
PWM 频率
定时器预分频值 (1、 4 或 16)
PR2 值
最大分辨率 (位)
 2007 Microchip Technology Inc.
1.22 kHz
4.90 kHz
153.85 kHz 200.0 kHz
16
4
1
1
1
1
0x65
0x65
0x65
0x19
0x0C
0x09
8
8
8
6
5
5
DS41250F_CN 第 217 页
PIC16F913/914/916/917/946
15.3.4
15.3.7
休眠模式下的操作
设置 PWM 工作模式
在休眠模式下,TMR2 寄存器将不会递增,并且模块的
状态将保持不变。如果 CCPx 引脚有输出,它将继续保
持该输出值不变。当器件被唤醒时,TMR2 将从原先的
状态继续工作。
当配置 CCP 模块使之工作于 PWM 模式时应遵循以下
步骤:
15.3.5
2.
3.
1.
系统时钟频率的改变
PWM 频率是由系统时钟频率产生的。系统时钟频率发
生任何变化都会使PWM频率发生变化。更多详细信息,
请参见第 4.0 节 “振荡器模块 (带故障保护时钟监视
器)”。
15.3.6
4.
5.
复位的影响
• 通过装载 T2CON 寄存器中的 T2CKPS 位来
设置 Timer2 预分频值。
• 通过将T2CON寄存器中的TMR2ON位置1来
使能 Timer2。
任何复位都会将所有端口强制为输入模式,并强制 CCP
寄存器进入复位状态。
6.
表 15-5:
通过将相应的 TRIS 位置 1,禁止 PWM 引脚
(CCPx)的输出驱动器。
通过装载 PR2 寄存器来设置 PWM 周期。
通过用适当的值装载 CCPxCON 寄存器来配置
CCP 模块使之工作于 PWM 模式。
通过装载 CCPRxL 寄存器和 CCPxCON 寄存器中
的 CCPx 位来设置 PWM 占空比。
配置并启动 Timer2:
• 清零 PIR1 寄存器中的 TMR2IF 中断标志位。
在新的 PWM 周期开始后,使能 PWM 输出:
• 等待 Timer2 溢出 (将 PIR1 寄存器中的
TMR2IF 位置 1)。
• 通过清零相应的 TRIS 位使能 CCPx 引脚输出
驱动器。
与捕捉、比较和 PWM 相关的寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他复
位时的值
CCPxCON
—
—
CCPxX
CCPxY
CCPxM3
CCPxM2
CCPxM1
CCPxM0
--00 0000
--00 0000
CCPRxL
捕捉 / 比较 /PWM 寄存器 X 低字节
xxxx xxxx
uuuu uuuu
CCPRxH
捕捉 / 比较 /PWM 寄存器 X 高字节
xxxx xxxx
uuuu uuuu
CMCON1
—
—
—
—
—
—
T1GSS
C2SYNC
---- --10
---- --10
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
LCDCON
LCDEN
SLPEN
WERR
VLCDEN
CS1
CS0
LMUX1
LMUX0
0001 0011
0001 0011
LCDSE1
SE15
SE14
SE13
SE12
SE11
SE10
SE9
SE8
0000 0000
0000 0000
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE
0000 -0-0
0000 -0-0
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF
0000 -0-0
0000 -0-0
RCSTA
SPEN
RX9
SREN
CREN
ADDEN
FERR
OERR
RX9D
0000 000x
0000 000x
SSPCON
WCOL
SSPOV
SSPEN
CKP
SSPM3
SSPM2
SSPM1
SSPM0
0000 0000
0000 0000
T1CON
T1GINV
TMR1CS
TMR1ON
0000 0000
uuuu uuuu
T2CON
—
TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
-000 0000
-000 0000
TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
TMR1L
16 位 TMR1 寄存器低字节的保持寄存器
xxxx xxxx
uuuu uuuu
TMR1H
16 位 TMR1 寄存器高字节的保持寄存器
xxxx xxxx
uuuu uuuu
TMR2
Timer2 模块寄存器
0000 0000
0000 0000
TRISC
TRISC7
TRISC6
TRISC5
TRISC4
TRISC3
TRISC2
TRISC1
TRISC0
1111 1111
1111 1111
TRISD(1)
TRISD7
TRISD6
TRISD5
TRISD4
TRISD3
TRISD2
TRISD1
TRISD0
1111 1111
1111 1111
图注: - = 未实现单元 (读为 0), u = 不变, x = 未知。 捕捉 / 比较 /PWM 不使用阴影单元。
注
1: 仅 PIC16F914/917 和 PIC16F946。
DS41250F_CN 第 218 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.0
CPU 的特性
PIC16F91X/946 系列器件包含的许多特性旨在最大限度
地提高系统的可靠性,通过减少外部元件将成本降至最
低,并且还提供了低功耗和代码保护功能。
这些功能包括:
• 复位
- 上电复位 (POR)
- 上电延时定时器 (PWRT)
- 振荡器起振定时器 (OST)
- 欠压复位 (BOR)
• 中断
• 看门狗定时器 (WDT)
• 振荡器选择
• 休眠
• 代码保护
• ID 地址单元
• 在线串行编程
 2007 Microchip Technology Inc.
PIC16F91X/946 系列器件有两个用于提供必要的上电延时
的定时器。一个是振荡器起振定时器 (OST),旨在确保
芯片在晶振达到稳定前始终处于复位状态。另一个是上电
延时定时器(PWRT),仅在上电时提供 64 ms(标称值)
的固定延时,用来确保器件在供电电压稳定之前处于复位
状态。 如果出现欠压条件,同样有可使器件复位的电路,
该电路使用上电延时定时器提供至少 64 ms 的复位延时。
具有这三种片上功能,大多数应用将不需要外部复位电
路。
休眠模式是为提供一种电流消耗很低的掉电工作模式而
设计的。用户可通过以下方法将器件从休眠模式唤醒:
• 外部复位
• 看门狗定时器唤醒
• 中断
还有几种振荡器可供选择,以使器件适应各种应用。选
择 INTOSC 可节约系统的成本,而选择 LP 晶振可以节
能。可以使用一组配置位来选择各种时钟选项(见寄存
器 16-1)。
DS41250F_CN 第 219 页
PIC16F913/914/916/917/946
16.1
配置位
可以通过对配置位编程 (读为 0)或不编程 (读为 1)
来选择不同的器件配置,如寄存器 16-1 所示。这些配置
位被映射到程序存储器中地址为 2007h 的单元中。
寄存器 16-1:
—
注:
地址 2007h超出了用户程序存储空间,而
是属于特殊配置存储空间(2000h-3FFFh),
仅能在编程期间对它进行访问。更多详细信
息,请参见 “PIC16F91X/946
Memory
Programming Specification”(DS41244)。
CONFIG1:配置字寄存器 1
—
—
DEBUG
FCMEN
IESO
BOREN1
BOREN0
bit 15
bit 8
CPD
CP
MCLRE
PWRTE
WDTE
FOSC2
FOSC1
bit 7
bit 0
bit 15-13
未实现:读为 1
bit 12
DEBUG:在线调试器模式位
1 = 禁止在线调试器, RB6/ICSPCLK 和 RB7/ICSPDAT 为通用 I/O 引脚
0 = 使能在线调试器, RB6/ICSPCLK 和 RB7/ICSPDAT 专用于调试器
bit 11
FCMEN:故障保护时钟监视器使能位
1 = 使能故障保护时钟监视器
0 = 禁止故障保护时钟监视器
bit 10
IESO:内外时钟切换位
1 = 使能内外时钟切换模式
0 = 禁止内外时钟切换模式
bit 9-8
BOREN<1:0>:欠压复位选择位 (1)
11 = 使能欠压复位
10 = 使能正常工作期间的欠压复位而禁止休眠状态下的欠压复位
01 = 由 PCON 寄存器的 SBOREN 位控制欠压复位
00 = 禁止欠压复位
bit 7
CPD:数据代码保护位 (2)
1 = 禁止数据存储器代码保护
0 = 使能数据存储器代码保护
bit 6
CP:代码保护位 (3)
1 = 禁止程序存储器代码保护
0 = 使能程序存储器代码保护
bit 5
MCLRE:RE3/MCLR 引脚功能选择位 (4)
1 = RE3/MCLR 引脚功能为 MCLR
0 = RE3/MCLR 引脚功能为数字输入, MCLR 在内部被连接到 VDD
bit 4
PWRTE:上电延时定时器使能位
1 = 禁止 PWRT
0 = 使能 PWRT
bit 3
WDTE:看门狗定时器使能位
1 = 使能 WDT
0 = 禁止 WDT,但可通过 WDTCON 寄存器的 SWDTEN 位使能
bit 2-0
FOSC<2:0>: 振荡器选择位
111 = RC 振荡器:RA6/OSC2/CLKOUT/T1OSO 引脚功能为 CLKOUT, RA7/OSC1/CLKIN/T1OSI 引脚连接 RC
110 = RCIO 振荡器:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 引脚连接 RC
101 = INTOSC 振荡器:RA6/OSC2/CLKOUT/T1OSO 引脚功能为 CLKOUT, RA7/OSC1/CLKIN/T1OSI 为 I/O 引脚
100 = INTOSCIO 振荡器:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 也为 I/O 引脚
011 = EC:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 引脚功能为 CLKIN
010 = HS 振荡器:高速晶振 / 谐振器连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚
001 = XT 振荡器:晶振 / 谐振器连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚
000 = LP 振荡器:低功耗晶振连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚
注
FOSC0
1:
2:
3:
4:
使能欠压复位并不能自动使能上电延时定时器。
当禁止代码保护时,将擦除整个数据 EEPROM 的内容。
当禁止代码保护时,将擦除整个程序存储器的内容。
当 MCLR 在 INTOSC 或者 RC 模式下被拉为低电平时,将禁止内部时钟振荡器。
DS41250F_CN 第 220 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.2
复位
PIC16F91X/946器件有以下几种不同类型的复位方式:
a)
b)
c)
d)
e)
f)
上电复位 (POR)
正常工作期间的 WDT 复位
休眠期间的 WDT 复位
正常工作期间的 MCLR 复位
休眠期间的 MCLR 复位
欠压复位 (BOR)
它们不受 WDT 唤醒的影响,因为这被视为恢复正常工
作。 TO 和 PD 位在不同的复位情形下会分别被置 1 或
清零,如表 16-2 所示。这些状态位在软件中用于判断复
位的性质。表16-5对所有寄存器的复位状态做了完整的
说明。
图 16-1 给出了片上复位电路的简化框图。
MCLR 复位电路中有一个噪声滤波器,它可以检测并滤
除小脉冲干扰信号。 参见第 19.0 节 “电气规范”了解
脉宽规范。
有些寄存器不受任何复位的影响;在上电复位时它们的
状态未知,而在其他复位时状态不变。大多数寄存器在
以下复位时会复位到各自的 “复位”状态:
•
•
•
•
•
上电复位
MCLR 复位
休眠期间的 MCLR 复位
WDT 复位
欠压复位 (BOR)
图 16-1:
片上复位电路的简化框图
外部
复位
MCLR/VPP 引脚
Sleep
WDT
模块
WDT
超时
复位
VDD 上升沿
检测
上电复位
VDD
欠压 (1)
复位
BOREN
SBOREN
S
10 位异步计数器
R
OST/PWRT
OST
Chip_Reset
Q
OSC1/
CLKIN 引脚
PWRT
LFINTOSC
11 位异步计数器
使能 PWRT
使能 OST
注
1: 参见配置字寄存器 (寄存器 16-1)
 2007 Microchip Technology Inc.
DS41250F_CN 第 221 页
PIC16F913/914/916/917/946
16.2.1
上电复位 (POR)
图 16-2:
片上上电复位电路使器件保持复位状态,直到 VDD 达到
足以使器件正常工作的电平。 要利用上电复位电路,可
以简单地将 MCLR 引脚通过一个电阻连接到 VDD。这样
可以省去产生上电复位通常所需的外部 RC 元件。 需要
一个最大上升时间才能达到 VDD。详情请参见第 19.0 节
“电气规范”。如果使能了欠压复位,那么该最大上升时
间规范将不再适用。 欠压复位电路将保持器件为复位状
态,直到 VDD 达到 VBOR (见第 16.2.4 节 “欠压复位
(BOR)”)。
注:
VDD
PIC® MCU
R1
1 kΩ(或更大)
MCLR
C1
0.1 µF
(可选,无严格规定)
当 VDD 降低时,上电复位电路不会产生内
部复位。 要重新使能上电复位, VDD 必须
至少保持 100 µs 的 Vss 电压。
当器件开始正常工作 (退出复位状态)时,器件的工作
参数 (即电压、频率和温度等)必须得到满足,以确保
其正常工作。如果不满足这些条件,那么器件必须保持
在复位状态,直到满足工作条件为止。
更多信息,请参见应用笔记 AN607“Power-up Trouble
Shooting”(DS00607)。
16.2.2
推荐的 MCLR 电路
MCLR
PIC16F91X/946 器件在 MCLR 复位电路中有一个噪声
滤波器。该滤波器检测并滤除小的干扰脉冲。
应该注意 WDT 复位不会将 MCLR 引脚驱动为低电平。
该引脚上电压超过规范值将导致 MCLR 复位,并且在
ESD 事件中产生的电流也将超过器件的规范值。因此,
Microchip 建议不要把 MCLR 引脚直接连接到 VDD。 建
议使用图 16-2 给出的 RC 网络。
通过清零配置字寄存器中的 MCLRE 位可以使能内部
MCLR 选项。 当 MCLRE = 0 时,内部生成片上复位信
号。 当 MCLRE = 1 时, RE3/MCLR 引脚作为外部复位
输入引脚。在该模式中,RE3/MCLR 引脚通过一个弱上
拉电阻连接到 VDD。选择内部 MCLR 选项不会对在线串
行编程造成影响。
DS41250F_CN 第 222 页
16.2.3
上电延时定时器 (PWRT)
上电延时定时器仅在上电时(上电复位或欠压复位)提
供一个 64 ms (标称值)的固定延时。上电延时定时器
采用 LFINTOSC 振 荡器 作为 时钟 源,工作 频率 为
31 kHz。更多详细信息,请参见第 4.5 节“内部时钟模
式”。只要 PWRT 处于工作状态,器件就保持在复位状
态。 PWRT 延时使 VDD 有足够的时间上升到所需的电
平。配置位 PWRTE 可以禁止(如果置 1)或使能(如
果清零或被编程)上电延时定时器。 虽然不是必需的,
但是在使能欠压复位时也应使能上电延时定时器。
由于以下原因不同芯片的上电延时定时器的延迟时间也
互不相同:
• VDD 差异
• 温度差异
• 制造工艺差异
详情请参见直流参数 (第 19.0 节 “电气规范”)。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.2.4
如果在上电延时定时器运行过程中, VDD 电压降到了
VBOR 以下,芯片将重新回到欠压复位状态并且上电延
时定时器会恢复为初始状态。 一旦 VDD 电压上升到
VBOR 以上,上电延时定时器将执行一段 64 ms 的复位。
欠压复位 (BOR)
配置字寄存器中的 BOREN0 和 BOREN1 位用于选择四
种欠压复位模式中的一种。其中添加了两种允许使用软
件或硬件对欠压复位的使能与否进行控制的模式。当
BOREN<1:0> = 01 时,可由 PCON 寄存 器中 的
SBOREN位使能或禁止欠压复位,从而能用软件对其进
行控制。 通过选择合适的 BOREN<1:0> 值可使欠压复
位在休眠时被禁止,从而节约功耗;而在唤醒后被重新
使能。 在此模式下, SBOREN 位无效。 关于配置字的
定义,请参见寄存器 16-1。
16.2.5
BOR 校准
PIC16F91X/946系列器件将BOR校准值存储在校准字寄
存器(2008h)中的熔丝位中。使用在“PIC16F91X/946
Memory Programming Specification”(DS41244) 中指
定的批量擦除序列无法擦除校准字,因此无需对校准字
再编程。
如果 VDD 下降到 VBOR 以下,且持续时间超过参数值
(TBOR)(见第 19.0 节 “电气规范”),欠压状况将使
器件复位。不管 VDD 的变化速率如何,上述情况都会发
生。如果 VDD 低于 VBOR 的时间少于参数(TBOR),则
不一定会发生复位。
地址2008h 超出了用户程序存储空间,而是属于特殊
配置存储空间(2000h-3FFFh),仅能在编程期间对它
进行访问。更多详细信息,请参见 “PIC16F91X/946
Memory Programming Specification” (DS41244)。
任何复位 (上电复位、欠压复位和看门狗定时器等)都
会使器件保持复位状态,直到 VDD 上升到 VBOR 以上(见
图 16-3)。如果使能了上电延时定时器,此时它将启动,
并且会使器件保持复位状态的时间延长 64 ms。
配置字寄存器中的 PWRTE 位用于使能上
电延时定时器。
注:
图 16-3:
欠压情形
VDD
内部
复位
VBOR
64 ms(1)
VDD
内部
复位
VBOR
< 64 ms
64 ms(1)
VDD
内部
复位
注
VBOR
64 ms(1)
1: 仅在 PWRTE 位被设置为 0 时,才增加 64 ms 延时。
 2007 Microchip Technology Inc.
DS41250F_CN 第 223 页
PIC16F913/914/916/917/946
16.2.6
16.2.7
延时时序
电源控制 (PCON)寄存器
电源控制 (PCON)寄存器 (地址 8Eh)有两个用于指
示上次发生的复位类型的状态位。
上电时的延时时序如下:首先是上电复位延时,等它延
时结束后施加一段 PWRT 延时,随后振荡器起振。总延
时时间取决于振荡器的配置和 PWRTE 位的状态。 例
如,在 EC 模式且 PWRTE 位置 1 (PWRT 禁止)的情
况下,根本不会出现延时。图 16-4、图 16-5 和图 16-6
分别描述了各种情形下的延时时序。通过使能双速启动
或故障保护时钟监视器,当振荡器起振后,器件将以
INTOSC 作为时钟源来执行代码 (见第 4.7.2 节 “双速
启动时序”和第 4.8 节 “故障保护时钟监视器”)。
Bit 0 是 BOR(欠压复位)标志位。BOR 在上电复位时未
知。 然后,用户必须将该位置 1,并在随后的复位发生
时检查 BOR 是否为 0,如果是,则表示已经发生过欠压
复 位。当 禁 止 欠 压 复 位 电 路 (配 置 字 寄 存 器 中 的
BOREN<1:0> = 00)时, BOR 状态位被 “忽略”并且
不必对其进行预测。
Bit 1 是 POR(上电复位)标志位。在上电复位时,它的
值为 0,其他情况下它不受影响。上电复位后,用户必
须对该位写 1。发生后续复位后,如果 POR 为 0,则表
示发生了上电复位(即,VDD 可能已经变为了低电平)。
由于延时是由上电复位脉冲触发的,因此如果 MCLR 保
持足够长时间的低电平,所有延时都将结束。将 MCLR
电平拉高后器件将立即开始执行代码(见图 16-5)这对
于测试或同步多个并行工作的 PIC16F91X/946 器件来
说是非常有用的。
更多详细信息,请参见第16.2.4节“欠压复位(BOR)”。
表 16-5 给出了一些特殊寄存器的复位条件,而表 16-5 给
出了所有寄存器的复位条件。
表 16-1:
各种情形下的延时
上电延时
XT, HS, LP(1)
欠压复位延时
PWRTE = 0
PWRTE = 1
PWRTE = 0
PWRTE = 1
从休眠状态唤
醒的延时
TPWRT + 1024 •
TOSC
1024 • TOSC
TPWRT + 1024 •
TOSC
1024 • TOSC
1024 • TOSC
TPWRT
—
TPWRT
—
—
振荡器配置
RC, EC, INTOSC
1: 禁止 T1OSC 的 LP 模式。
注
表 16-2:
PCON 寄存器中的位及其含义
POR
BOR
TO
PD
0
u
1
1
上电复位
1
0
1
1
欠压复位
u
u
0
u
WDT 复位
u
u
0
0
WDT 唤醒
u
u
u
u
正常工作期间的 MCLR 复位
u
u
1
0
休眠期间的 MCLR 复位
图注:
表 16-3:
状态
u = 不变, x = 未知
与欠压有关的寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值 (1)
STATUS
IRP
RP1
RP0
TO
PD
Z
DC
C
0001 1xxx
000q quuu
—
—
—
SBOREN
—
—
POR
BOR
--01 --qq
--0u --uu
PCON
图注:
u = 不变, x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。欠压复位不使用阴影单元。
注
1: 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。
DS41250F_CN 第 224 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 16-4:
上电时的延时时序 (MCLR 延时):情形 1
VDD
MCLR
内部上电复位
TPWRT
PWRT 延时
TOST
OST 延时
内部复位
图 16-5:
上电时的延时时序 (MCLR 延时):情形 2
VDD
MCLR
内部上电复位
TPWRT
PWRT 延时
TOST
OST 延时
内部复位
上电时的延时时序 (MCLR 连接到 VDD):情形 3
图 16-6:
VDD
MCLR
内部上电复位
TPWRT
PWRT 延时
TOST
OST 延时
内部复位
 2007 Microchip Technology Inc.
DS41250F_CN 第 225 页
PIC16F913/914/916/917/946
表 16-4:
各个寄存器的初始状态
寄存器
• MCLR 复位
• WDT 复位
• 欠压复位 (1)
• 通过中断将器件从休眠模
式唤醒
• 通过 WDT 超时溢出将器
件从休眠模式唤醒
地址
上电复位
—
xxxx xxxx
uuuu uuuu
uuuu uuuu
INDF
00h/80h/
100h/180h
xxxx xxxx
xxxx xxxx
uuuu uuuu
TMR0
01h/101h
xxxx xxxx
uuuu uuuu
uuuu uuuu
PCL
02h/82h/
102h/182h
0000 0000
0000 0000
PC + 1(3)
STATUS
03h/83h/
103h/183h
0001 1xxx
000q quuu(4)
uuuq quuu(4)
FSR
04h/84h/
104h/184h
xxxx xxxx
uuuu uuuu
uuuu uuuu
PORTA
05h
xxxx xxxx
xxxx xxxx
uuuu uuuu
PORTB
06h/106h
xxxx xxxx
xxxx xxxx
uuuu uuuu
PORTC
07h
xxxx xxxx
xxxx xxxx
uuuu uuuu
PORTD(6)
08h
xxxx xxxx
xxxx xxxx
uuuu uuuu
PORTE
09h
---- xxxx
xxxx xxxx(7)
---- xxxx
xxxx xxxx(7)
---- uuuu
uuuu uuuu(7)
PCLATH
0Ah/8Ah/
10Ah/18Ah
---0 0000
---0 0000
---u uuuu
INTCON
0Bh/8Bh/
10Bh/18Bh
0000 000x
0000 000x
uuuu uuuu(2)
PIR1
0Ch
0000 0000
0000 0000
uuuu uuuu(2)
PIR2
0Dh
0000 -0-0
0000 -0-0
uuuu -u-u
TMR1L
0Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
TMR1H
0Fh
xxxx xxxx
uuuu uuuu
uuuu uuuu
T1CON
10h
0000 0000
uuuu uuuu
uuuu uuuu
TMR2
11h
0000 0000
0000 0000
uuuu uuuu
T2CON
12h
-000 0000
-000 0000
-uuu uuuu
SSPBUF
13h
xxxx xxxx
xxxx xxxx
uuuu uuuu
SSPCON
14h
0000 0000
0000 0000
uuuu uuuu
CCPR1L
15h
xxxx xxxx
xxxx xxxx
uuuu uuuu
CCPR1H
16h
xxxx xxxx
xxxx xxxx
uuuu uuuu
CCP1CON
17h
--00 0000
--00 0000
--uu uuuu
RCSTA
18h
---0 1000
---0 1000
---u uuuu
TXREG
19h
0000 0000
0000 0000
uuuu uuuu
W
图注:
注
1:
2:
3:
4:
5:
6:
7:
u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。
如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。
INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒)
当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。
关于特定条件下的复位值,请参见表 16-5。
如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件。
DS41250F_CN 第 226 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 16-4:
各个寄存器的初始状态 (续)
寄存器
• 通过中断将器件从休眠模
式唤醒
• 通过 WDT 超时溢出将器
件从休眠模式唤醒
• MCLR 复位
• WDT 复位
• 欠压复位 (1)
地址
上电复位
RCREG
1Ah
0000 0000
0000 0000
uuuu uuuu
CCPR2L(6)
1Bh
xxxx xxxx
xxxx xxxx
uuuu uuuu
CCPR2H(6)
1Ch
xxxx xxxx
xxxx xxxx
uuuu uuuu
CCP2CON
(6)
1Dh
--00 0000
--00 0000
--uu uuuu
ADRESH
1Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
ADCON0
1Fh
0000 0000
0000 0000
uuuu uuuu
81h/181h
1111 1111
1111 1111
uuuu uuuu
TRISA
85h
1111 1111
1111 1111
uuuu uuuu
TRISB
86h/186h
1111 1111
1111 1111
uuuu uuuu
TRISC
87h
1111 1111
1111 1111
uuuu uuuu
TRISD(6)
88h
1111 1111
1111 1111
uuuu uuuu
TRISE
89h
---- 1111
1111 1111(7)
---- 1111
1111 1111(7)
---- uuuu
uuuu uuuu(7)
PIE1
8Ch
0000 0000
0000 0000
uuuu uuuu
PIE2
8Dh
0000 -0-0
0000 -0-0
uuuu -u-u
PCON
8Eh
--01 --0x
--0u
OSCCON
8Fh
-110 q000
-110 x000
-uuu uuuu
OSCTUNE
90h
---0 0000
---u uuuu
---u uuuu
ANSEL
91h
1111 1111
1111 1111
uuuu uuuu
PR2
92h
1111 1111
1111 1111
1111 1111
SSPADD
93h
0000 0000
0000 0000
uuuu uuuu
SSPSTAT
94h
0000 0000
0000 0000
uuuu uuuu
WPUB
95h
1111 1111
1111 1111
uuuu uuuu
IOCB
96h
0000 ----
0000 ----
uuuu ----
CMCON1
97h
---- --10
---- --10
---- --uu
TXSTA
98h
0000 -010
0000 -010
uuuu -uuu
SPBRG
99h
0000 0000
0000 0000
uuuu uuuu
CMCON0
9Ch
0000 0000
0000 0000
uuuu uuuu
VRCON
9Dh
0-0- 0000
0-0- 0000
u-u- uuuu
ADRESL
9Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
ADCON1
9Fh
-000 ----
-000 ----
-uuu ----
WDTCON
105h
---0 1000
---0 1000
---u uuuu
LCDCON
107h
0001 0011
0001 0011
uuuu uuuu
LCDPS
108h
0000 0000
0000 0000
uuuu uuuu
OPTION_REG
图注:
注
1:
2:
3:
4:
5:
6:
7:
--uu(1,5)
--uu --uu
u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。
如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。
INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒)
当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。
关于特定条件下的复位值,请参见表 16-5。
如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件。
 2007 Microchip Technology Inc.
DS41250F_CN 第 227 页
PIC16F913/914/916/917/946
表 16-4:
各个寄存器的初始状态 (续)
寄存器
• MCLR 复位
• WDT 复位
• 欠压复位 (1)
• 通过中断将器件从休眠模
式唤醒
• 通过 WDT 超时溢出将器
件从休眠模式唤醒
地址
上电复位
LVDCON
109h
--00 -100
--00 -100
--uu -uuu
EEDATL
10Ch
0000 0000
0000 0000
uuuu uuuu
EEADRL
10Dh
0000 0000
0000 0000
uuuu uuuu
EEDATH
10Eh
--00 0000
0000 0000
uuuu uuuu
EEADRH
10Fh
---0 0000
0000 0000
uuuu uuuu
LCDDATA0
110h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA1
111h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA2(6)
112h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA3
113h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA4
114h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA5(6)
115h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA6
116h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA7
117h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA8(6)
118h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA9
119h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA10
11Ah
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA11(6)
11Bh
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDSE0
11Ch
0000 0000
uuuu uuuu
uuuu uuuu
LCDSE1
11Dh
0000 0000
uuuu uuuu
uuuu uuuu
LCDSE2(6)
11Eh
0000 0000
uuuu uuuu
uuuu uuuu
TRISF(7)
185h
1111 1111
1111 1111
uuuu uuuu
TRISG(7)
187h
--11 1111
--11 1111
--uu uuuu
PORTF(7)
188h
xxxx xxxx
0000 0000
uuuu uuuu
PORTG(7)
189h
--xx xxxx
--00 0000
--uu uuuu
LCDDATA12(7)
190h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA13(7)
191h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA14(7)
192h
---- --xx
---- --uu
---- --uu
LCDDATA15(7)
193h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA16(7)
194h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA17(7)
195h
---- --xx
---- --uu
---- --uu
LCDDATA18(7)
196h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA19(7)
197h
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA20(7)
198h
---- --xx
---- --uu
---- --uu
LCDDATA21(7)
199h
xxxx xxxx
uuuu uuuu
uuuu uuuu
图注:
注
1:
2:
3:
4:
5:
6:
7:
u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。
如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。
INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒)
当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。
关于特定条件下的复位值,请参见表 16-5。
如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件。
DS41250F_CN 第 228 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 16-4:
各个寄存器的初始状态 (续)
• 通过中断将器件从休眠模
式唤醒
• 通过 WDT 超时溢出将器
件从休眠模式唤醒
• MCLR 复位
• WDT 复位
• 欠压复位 (1)
寄存器
地址
上电复位
LCDDATA22(7)
19Ah
xxxx xxxx
uuuu uuuu
uuuu uuuu
LCDDATA23(7)
19Bh
---- --xx
---- --uu
---- --uu
LCDSE3(7)
19Ch
0000 0000
uuuu uuuu
uuuu uuuu
(7)
19Dh
0000 0000
uuuu uuuu
uuuu uuuu
LCDSE5(7)
19Eh
---- --00
---- --uu
---- --uu
EECON1
18Ch
x--- x000
u--- q000
u--- uuuu
LCDSE4
图注:
注
1:
2:
3:
4:
5:
6:
7:
表 16-5:
u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。
如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。
INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒)
当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。
关于特定条件下的复位值,请参见表 16-5。
如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。
仅适用于 PIC16F914/917 和 PIC16F946 器件。
仅适用于 PIC16F946 器件。
特殊寄存器的初始状态
程序
计数器
STATUS
寄存器
PCON
寄存器
上电复位
0000h
0001 1xxx
---1 --0x
正常工作期间的 MCLR 复位
0000h
000u uuuu
---u --uu
休眠期间的 MCLR 复位
0000h
0001 0uuu
---u --uu
WDT 复位
0000h
0000 uuuu
---u --uu
WDT 唤醒
PC + 1
uuu0 0uuu
---u --uu
0000h
0001 1uuu
---1 --10
PC + 1(1)
uuu1 0uuu
---u --uu
条件
欠压复位
通过中断从休眠模式唤醒
图注:
u = 不变,x = 未知, - = 未实现 (读为 0)。
注
1: 如果器件被中断唤醒且全局中断允许位 GIE 置 1,则执行 PC+1 后, PC 装入中断向量 (0004h)。
 2007 Microchip Technology Inc.
DS41250F_CN 第 229 页
PIC16F913/914/916/917/946
16.3
中断
PIC16F91X/946 器件具有以下多种中断源:
•
•
•
•
•
•
•
•
•
•
•
•
•
外部中断 RB0/INT/SEG0
TMR0 溢出中断
PORTB 电平变化中断
两个比较器中断
A/D 中断
Timer1 溢出中断
数据 EEPROM 写中断
故障保护时钟监视器中断
LCD 中断
PLVD 中断
USART 接收和发送中断
CCP1 中断和 CCP2 中断
Timer2 中断
中断控制 (INTCON)寄存器、外设中断请求寄存器 1
(PIR1)和外设中断请求寄存器 2 (PIR2)在各自的标
志位中记录各种中断请求。INTCON 寄存器还包括各个
中断允许位和全局中断允许位。
PIR2 寄存器包含下列中断标志位:
•
•
•
•
•
故障保护时钟监视器中断
比较器 1 和比较器 2 中断
LCD 中断
PLVD 中断
CCP2 中断
当响应一个中断时:
• 将 GIE 位清零以禁止其他中断。
• 将返回地址压入堆栈。
• PC 中装入 0004h。
对于外部中断事件,例如 INT 引脚中断或者 PORTB 电平
变化中断,中断响应延时将会是 3 到 4 个指令周期。 确
切的延时时间取决于发生中断事件的时间(见图 16-8)。
对于单周期或双周期指令,中断响应延时完全相同。 进
入中断服务程序之后,就可以通过查询中断标志位来确
定中断源。在重新允许中断前,必须用软件将中断标志
位清零,以避免重复响应该中断。
注
2: 当执行一条清零 GIE 位的指令后,任何一个
等待在下一周期执行的中断都将被忽略。
当 GIE 位被再次置 1 后,被忽略的中断仍
会继续等待处理。
INTCON 寄存器中的全局中断允许位 GIE 在置 1 时允许
所有未屏蔽的中断,而在清零时,禁止所有中断。可以
通过 INTCON、PIE1 和 PIE2 寄存器中相应的允许位来
禁止各个中断。复位时 GIE 被清零。
执行 “从中断返回”指令 RETFIE 退出中断服务程序,
并将 GIE 位置 1,从而重新允许未屏蔽的中断。
INTCON 寄存器包含下列中断标志位:
• INT 引脚中断
• PORTB 电平变化中断
• TMR0 溢出中断
1: 各中断标志位的置 1 不受对应的中断屏蔽
位或 GIE 位状态的影响。
欲知更多关于模块产生中断的信息,请参见相应的外设
章节。
注:
必须对 ANSEL 和 CMCON0 寄存器进行初
始化以将模拟通道配置为数字输入。 配置
为模拟输入的引脚将读为 0,并且如果某个
外部中断引脚的 LCD 输出功能处于有效状
态,将会禁止该引脚的中断功能。
外设中断标志位在特殊功能寄存器 PIR1 和 PIR2 中。相
应的中断允许位在特殊功能寄存器 PIE1 和 PIE2 中。
PIR1 寄存器包含下列中断标志位:
•
•
•
•
•
•
•
数据 EEPROM 写中断
A/D 中断
USART 接收和发送中断
Timer1 溢出中断
CCP1 中断
SSP 中断
Timer2 中断
DS41250F_CN 第 230 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.3.1
RB0/INT/SEG0 中断
16.3.2
RB0/INT/SEG0 引脚上的外部中断是边沿触发的;当
OPTION 寄存器中的 INTEDG 位被置 1 时在上升沿触
发,而当 INTEDG 位被 清零 时在 下降 沿触 发。当
RB0/INT/SEG0 引脚上出现有效边沿时,INTCON 寄存
器中的 INTF 位置 1。 可以通过清零 INTCON 寄存器中
的INTE控制位来禁止该中断。在重新允许此中断之前,
必须在中断服务程序中先用软件将 INTF 位清零。 如果
INTE 位在进入休眠状态前被置 1,则 RB0/INT/SEG0 中
断能将处理器从休眠状态唤醒。GIE 位的状态决定处理
器在被唤醒之后是否会跳转到中断向量 (0004h)处执
行代码。有关休眠的详细信息,请参见第 16.5 节“掉电
模式 (休眠)”;而有关 RB0/INT/SEG0 中断将处理器
从休眠状态唤醒的时序请参见图 16-10。
图 16-7:
TMR0 中断
TMR0 寄存器溢出 (FFh → 00h)会将 INTCON 寄存
器中的 T0IF 位置 1。可以通过置 1/ 清零 INTCON 寄存
器中的 T0IE 位来允许 / 禁止该中断。 欲知有关 Timer0
模块的操作,请参见第 5.0 节 “Timer0 模块”。
16.3.3
PORTB 中断
PORTB 输入电平的变化会使INTCON寄存器中的RBIF
位置 1。可以通过置 1/ 清零 INTCON 寄存器中的 RBIE
位来允许 / 禁止该中断。 此外,可通过 IOCB 寄存器对
该端口的各个引脚进行配置。
注:
如果在执行读操作时(Q2 周期的开始)I/O
引脚的电平发生了改变,那么 RBIF 中断标
志可能就不会置 1。
中断逻辑
IOC-RB4
IOCB4
IOC-RB5
IOCB5
IOC-RB6
IOCB6
IOC-RB7
IOCB7
TMR0IF
TMR0IE
TMR2IF
TMR2IE
TMR1IF
TMR1IE
C1IF
C1IE
C2IF
C2IE
ADIF
ADIE
OSFIF
OSFIE
EEIF
EEIE
CCP1IF
CCP1IE
CCP2IF
CCP2IE
RCIF
RCIE
TXIF
TXIE
SSPIF
SSPIE
LCDIF
LCDIE
LVDIF
LVDIE
INTF
INTE
RBIF
RBIE
唤醒 CPU(如果处于休眠状态)
到 CPU 的中断请求
PEIF
PEIE
GIE
*
 2007 Microchip Technology Inc.
* 仅 PIC16F914/917 器件才具有的中断功能。
DS41250F_CN 第 231 页
PIC16F913/914/916/917/946
图 16-8:
INT 引脚中断时序
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
Q1
Q2
Q3
Q4
OSC1
CLKOUT(3)
(4)
INT 引脚
(1)
INTF 标志位
(INTCON 寄存器)
(1)
(5)
中断响应延时
(2)
GIE 位
(INTCON 寄存器)
指令流
PC
取指
Inst (PC)
执行
指令
Inst (PC -1)
注
0005h
Inst (PC + 1)
—
Inst(0004h)
Inst(0005h)
Inst (PC)
空周期
空周期
Inst(0004h)
1: 在此采样 INTF 标志 (每个 Q1 周期)。
2: 异步中断响应延时为 3-4 个 TCY。 同步中断响应延时为 3 个 TCY,其中 TCY 为一个指令周期。 不管 Inst (PC)是单
周期还是双周期指令,中断响应延时都是一样的。
3: 只有在 INTOSC 和 RC 振荡模式下 CLKOUT 才有效。
4: 欲知 INT 脉冲的最小宽度,请参见第 19.0 节 “电气规范”中的交流规范。
5: 允许在 Q4-Q1 周期内的任何时间将 INTF 置 1。
表 16-6:
名称
0004h
PC + 1
PC + 1
PC
中断寄存器汇总
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
上电复位与欠
压复位时的值
所有其他
复位时的值
INTCON
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000x
PIR1
EEIF
ADIF
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
PIR2
OSFIF
C2IF
C1IF
LCDIF
—
LVDIF
—
CCP2IF
0000 -0-0
0000 -0-0
PIE1
EEIE
ADIE
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
PIE2
OSFIE
C2IE
C1IE
LCDIE
—
LVDIE
—
CCP2IE
0000 -0-0
0000 -0-0
图注:
x = 未知, u = 不变, - = 未实现单元 (读为 0)。中断模块不使用阴影单元。
DS41250F_CN 第 232 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.3.4
中断的现场保护
在中断期间,仅将返回的PC值压入堆栈。通常情况下,
用户可能希望在中断期间保存关键寄存器(例如,W 寄
存器和 STATUS 寄存器)。这必须用软件实现。
由于在 PIC16F91X/946 器件中每个存储区的低 16 个字
节都是公用的 (见图 2-3),临时保存寄存器 W_TEMP
和 STATUS_TEMP 都应该被放在这里。这 16 个存储单
元不需要分区,因此便于现场保护和恢复。与例 16-1 中
相同的代码可被用于:
•
•
•
•
•
存储 W 寄存器
存储 STATUS 寄存器
执行中断服务程序代码
恢复 STATUS 寄存器 (和存储区选择寄存器)
恢复 W 寄存器
注:
单片机通常不需要保存 PCLATH 寄存器,
除非直接或通过 pagesel 宏在代码中对其
进行修改,那么,就必须在中断服务程序
开始保存 PCLATH 寄存器,管理中断服务
程序中的 CALL 和 GOTO 指令,并在中断服
务程序完成时恢复 PCLATH 以确保正确的
程序流。
例 16-1:
将 STATUS 和 W 寄存器保存在 RAM 中
MOVWF
SWAPF
CLRF
MOVWF
:
:(ISR)
:
SWAPF
W_TEMP
STATUS,W
STATUS
STATUS_TEMP
MOVWF
SWAPF
SWAPF
STATUS
W_TEMP,F
W_TEMP,W
;Copy
;Swap
;bank
;Save
W to TEMP register
status to be saved into W
0, regardless of current bank, Clears IRP,RP1,RP0
status to bank zero STATUS_TEMP register
;Insert user code here
STATUS_TEMP,W
 2007 Microchip Technology Inc.
;Swap STATUS_TEMP register into W
;(sets bank to original state)
;Move W into STATUS register
;Swap W_TEMP
;Swap W_TEMP into W
DS41250F_CN 第 233 页
PIC16F913/914/916/917/946
16.4
看门狗定时器 (WDT)
PIC16F91X/946 系列器件的 WDT 与早期 PIC16F 器件
有所不同。这种新的 WDT 与早期 PIC16F WDT 模块的
编码和功能是兼容的,只是为它增加了一个 16 位的预
分频器。这样就可以在为 TMR0 设置分频比的同时,也
设置 WDT 的分频比。另外,该 WDT 的超时值可被扩
展至268秒。 在表16-7中说明的条件下WDT会被清零。
16.4.1
WDT 振荡器
WDT 以 31 kHz 的 LFINTOSC 作为其工作的时基。
LFINTOSC 使能与否不会在 LTS 位上有所反映。
在所有复位后, WDTCON 的值都为 “---0 1000”。
此时, WDT 将以标称的 16 ms 作为其工作的时基,这
是与早期的 PIC16F 单片机所产生的时基兼容。
注:
当振荡器起振延时定时器(OST)启动时,
由于 OST 需要使用 WDT 脉动计数器来对
振荡器延时进行计数,因此 WDT 仍将保持
复位状态。 当 OST 计数结束后, WDT 将
开始计数 (如果使能)。
图 16-9:
在 INTOSC 与多路开关(用于选择输入给 WDT 的时钟
路径)之间添加了一个新的预分频器。该预分频器为 16
位宽,并且可对其进行编程以对 INTOSC 进行 32 到
65536 的分频,从而为 WDT 提供从 1 ms 到 268s 的标
称周期范围。
16.4.2
WDT 控制
WDTE 位在配置字寄存器中。当该位置 1 时, WDT 持
续运行。
当配置字寄存器中的 WDTE 位置 1 时,WDTCON 寄存
器中的 SWDTEN 位无效。当 WDTE 清零时,则可使用
SWDTEN 位使能和禁止 WDT。 SWDTEN 位置 1 使能
WDT, SWDTEN 位清零则禁止 WDT。
OPTION 寄存器中的 PSA 和 PS<2:0> 位具有与早期
PIC16F 系列单片机中相应位同样的功能。 更多详细信
息,请参见第 5.0 节 “Timer0 模块”。
看门狗定时器框图
来自 TMR0 时钟源
0
预分频器 (1)
16 位 WDT 预分频器
1
8
PSA
31 kHz
LFINTOSC 时钟
PS<2:0>
WDTPS<3:0>
到 TMR0
0
1
PSA
配置字寄存器中的 WDTE
WDTCON 中的 SWDTEN
WDT 超时
注 1 :这是 Timer0 和 WDT 共用的预分频器。更多详细信息,请参见第 5.4 节“预分频器”。
表 16-7:
WDT 状态
条件
WDT
WDTE = 0
CLRWDT 指令
检测到振荡器故障
清零
退出休眠 + 系统时钟 = T1OSC、 EXTRC、 INTOSC 或 EXTCLK
退出休眠 + 系统时钟 = XT、 HS 或 LP
DS41250F_CN 第 234 页
清零直到 OST 延时结束
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
寄存器 16-2:
WDTCON——看门狗定时器控制寄存器 (地址:105h)
U-0
U-0
U-0
R/W-0
R/W-1
R/W-0
R/W-0
R/W-0
—
—
—
WDTPS3
WDTPS2
WDTPS1
WDTPS0
SWDTEN
bit 7
bit 0
bit 7-5
未实现:读为 0
bit 4-1
WDTPS<3:0>:看门狗定时器周期选择位
位值 = 预分频比
0000 = 1:32
0001 = 1:64
0010 = 1:128
0011 = 1:256
0100 = 1:512 (复位值)
0101 = 1:1024
0110 = 1:2048
0111 = 1:4096
1000 = 1:8192
1001 = 1:16384
1010 = 1:32768
1011 = 1:65536
1100 = 保留
1101 = 保留
1110 = 保留
1111 = 保留
bit 0
SWDTEN:软件使能或禁止看门狗定时器位 (1)
1 = 使能 WDT
0 = 禁止 WDT (复位值)
注
1: 如果 WDTE 配置位 = 1,则 WDT 始终被使能,而与该控制位的状态无关。 如果
WDTE 配置位 = 0,则可以使用该控制位使能或禁止 WDT。
图注:
表 16-8:
R = 可读位
W = 可写位
U = 未实现位,读为 0
- n = 上电复位时的值
1=置1
0 = 清零
x = 未知
看门狗定时器寄存器汇总
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CONFIG
CPD
CP
MCLRE
PWRTE
WDTE
FOSC2
FOSC1
FOSC0
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
—
—
—
WDTPS3
WDTPS2
WSTPS1
WDTPS0
SWDTEN
OPTION_REG
WDTCON
图注:
看门狗定时器不使用阴影单元。
注
1: 关于配置字寄存器中所有位的操作,请参见寄存器 16-1。
 2007 Microchip Technology Inc.
DS41250F_CN 第 235 页
PIC16F913/914/916/917/946
16.5
掉电模式 (休眠)
通过执行 SLEEP 指令可进入掉电模式。
如果使能看门狗定时器:
•
•
•
•
•
•
WDT 将被清零并保持运行。
STATUS 寄存器中的 PD 位被清零。
TO 位被置 1。
关闭振荡器驱动器。
Timer1 振荡器不受影响。
I/O 端口保持执行 SLEEP 指令之前的状态 (驱动
为高电平、低电平或高阻态)。
在休眠模式下,为了尽量降低电流消耗,所有 I/O 引脚
都应该保持为 VDD 或 VSS,没有外部电路从 I/O 引脚消
耗电流,同时应禁止比较器和 CVREF。为了避免输入引
脚悬空而引入开关电流,应在外部将高阻输入的 I/O 引
脚拉为高电平或低电平。 为了将电流消耗降至最低,
TOCKI输入也应该保持为VDD 或VSS。还应考虑PORTB
片内上拉的影响。
MCLR 引脚必须处于逻辑高电平。
注:
16.5.1
应该注意WDT超时溢出导致的复位不会将
MCLR 引脚驱动为低电平。
下列外设中断可以将器件从休眠状态唤醒:
1.
2.
3.
4.
5.
6.
7.
8.
9.
TMR1 中断。Timer1 必须用作异步计数器。
USART 接收中断 (仅同步从模式)
A/D 转换 (当 A/D 时钟源为 RC 振荡器时)
EEPROM 写操作完成
比较器输出状态变化
电平变化中断
来自 INT 引脚的外部中断
PLVD 中断
LCD 中断 (如果在休眠期间运行)
由于在休眠状态期间没有片内时钟处于工作状态,因此
其他外设不能产生中断。
当执行 SLEEP 指令时,下一条指令 (PC+1)被预先取
出。如果希望通过中断事件唤醒器件,则必须将相应的
中断允许位置 1 (允许)。 唤醒与 GIE 位的状态无关。
如果 GIE 位被清零 (禁止),器件将继续执行 SLEEP
指令之后的指令。如果 GIE 位被置 1 (允许),器件执
行 SLEEP 指令 之后 的指 令,然后 跳转 到中 断地 址
(0004h)处执行。如果不想执行 SLEEP 指令以后的指
令,用户应该在 SLEEP 指令后面放置一条 NOP 指令。
注:
从休眠状态唤醒
可以通过下列任一事件将器件从休眠状态唤醒:
1.
2.
3.
MCLR 引脚上的外部复位输入。
看门狗定时器唤醒 (如果 WDT 使能)
RB0/INT/SEG0 引脚中断、 PORTB 电平变化中
断或外设中断。
第一种事件会导致器件复位。 后两种事件被认为是程
序执行的延续。 STATUS 寄存器中的 TO 和 PD 位用于
确定器件复位的原因。PD 位在上电时被置 1,而在执行
SLEEP 指令时被清零。 TO 位在发生 WDT 唤醒时被清
零。
DS41250F_CN 第 236 页
如果禁止了全局中断 (GIE 被清零),但
有任一中断源将其中断允许位以及相应的
中断标志位置 1,器件将立即从休眠状态唤
醒。SLEEP 指令执行完成。
器件从休眠状态唤醒时, WDT 都将被清零,而与唤醒
的原因无关。
16.5.2
使用中断唤醒
当禁止全局中断 (GIE 被清零)时,并且有任一中断源
将其中断允许位和中断标志位置 1,将会发生下列某一
事件:
• 如果在执行 SLEEP 指令之前产生了中断,那么
SLEEP 指令将被作为一条 NOP 指令执行。因此,
WDT 及其预分频器和后分频器 (如果使能)将不
会被清零,并且 TO 位将不会被置 1,同时 PD 位
也不会被清零。
• 如果在执行 SLEEP 指令期间或之后产生了中断,
那么器件将被立即从休眠模式唤醒。 SLEEP 指令
将在唤醒之前执行完毕。因此, WDT 及其预分频
器和后分频器 (如果使能)将被清零,并且 TO
位将被置 1,同时 PD 也将被清零。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
即使在执行 SLEEP 指令之前,检查到标志位为 0,它也
可能在 SLEEP 指令执行完毕之前被置 1。要确定是否执
行了 SLEEP 指令,可以测试 PD 位。 如果 PD 位置 1,
则说明 SLEEP 指令被作为一条 NOP 指令执行了。
在执行 SLEEP 指令之前,必须先执行一条 CLRWDT 指
令,来确保将 WDT 清零。
图 16-10:
通过中断将器件从休眠模式唤醒
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
OSC1(1)
TOST(2)
CLKOUT(4)
INT 引脚
INTF 标志位
(INTCON 寄存器)
中断响应延时 (3)
GIE 位
(INTCON 寄存器)
处理器处于
休眠状态
指令流
PC
取指
执行
指令
注
1:
2:
3:
4:
PC
Inst(PC) = Sleep
Inst (PC -1)
PC + 1
PC +2
PC +2
Inst (PC + 1)
Inst (PC +2)
Sleep
Inst (PC + 1)
PC +2
空周期
0004h
0005h
Inst (0004h)
Inst (0005h)
空周期
Inst (0004h)
假定为 XT、 HS 或 LP 振荡模式。
TOST = 1024 TOSC (图形未按比例绘制)。 该延时不适用于 EC 和 RC 振荡模式。
假设 GIE = 1。 在这种情形下,器件被唤醒后,将跳转到 0004h 处执行代码。 如果 GIE = 0,程序将继续执行。
在 XT、 HS、 LP 或 EC 振荡模式下,不输出 CLKOUT 信号,在此处仅作为时序参考。
 2007 Microchip Technology Inc.
DS41250F_CN 第 237 页
PIC16F913/914/916/917/946
16.6
代码保护
图 16-11:
典型的在线串行编程连接方式
如果代码保护位未编程,可以通过使用 ICSP 读片上程
序存储器来进行校验。
注:
当 关 闭 代 码 保 护 时,将 擦 除 整 个 数 据
EEPROM 和闪存程序存储器的内容。请参
见 “PIC16F91X/946 Memory Programming
Specification” (DS41244)了解更多详细
信息。
至正常
连接
外部
连接器
信号
*
PIC® MCU
+5V
VDD
0V
VSS
RE3/MCLR/VPP
RB6/ICSPCLK/
ICDCK/SEG14
RB7/ICSPDATA/
ICDDAT/SEG13
VPP
16.7
ID 地址单元
有 4 个存储单元 (2000h-2003h)被指定为 ID 地址单
元,供用户存储校验和或其他代码标识号。在正常执行
过程中不能访问这些单元,但可在编程 / 校验模式中对
它们进行读写。只可使用 ID 地址单元的低 7 位。
16.8
在线串行编程
可在最终应用电路中对 PIC16F91X/946 单片机进行串
行编程。编程可以简单地通过一根时钟线、一根数据线
和以下三种其他的线完成:
• 电源线
• 接地线
• 编程电压线
CLK
数据 I/O
*
*
*
至正常
连接
* 电气隔离器件 (根据需要而定)
这允许用户使用未编程器件制造电路板,仅在产品交付
前才对单片机进行编程。从而可以将最新版本的固件或
者定制固件烧写到单片机中。
通过 将
RB7/ICSPDAT/ICDDAT/SEG13
和
RB6/ICSPCLK/ICDCK/SEG14 引脚保持为低电平,并
同时将 MCLR (VPP)引脚从 VIL 升到 VIHH,可将器件
置于编程/校验模式。请参见“PIC16F91X/946 Memory
Programming Specification”(DS41244)了解更多信
息。RB7 变为编程数据线,而 RB6 则变为编程时钟线。
在该模式下, RB7 和 RB6 均为施密特触发输入方式。
复位后,为将器件置于编程 / 校验模式,程序计数器
(PC)指向地址单元 0000h。 然后向器件发送一条 6 位
命令。 根据具体命令是执行装载还是读取操作,可向器
件提供一个 14 位的程序数据或是从器件读取一个 14 位
的 程 序 数 据。关 于 串 行 编 程 的 完 整 细 节,请 参 见
“PIC16F91X/946 Memory Programming Specification”
(DS41244)。
图 16-11 给出了典型的在线串行编程连接方式。
DS41250F_CN 第 238 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
16.9
16.9.1
在线调试器
当配置字寄存器中的调试位被编程为 0 时,将使能在线
调试功能。该功能允许使用 MPLAB® ICD 2 实现简单的
调试功能。当单片机使能了此功能后,某些资源将不再
具有常规功能。详情请见表 16-9。
用户应用必须具有支持 ICD 功能的必需的电
路。一 旦 使 能 了 I C D
电 路 ,
RB6/ICSPCLK/ICDCK/SEG14 和
RB7/ICSPDAT/ICDDAT/SEG13 引脚的常规器
件引脚功能将不能被使用。ICD 电路使用这些
引脚与 ICD2 外部调试器通信。
注:
ICD 引脚排列
PIC16F91X/946 系列器件具有片内在线调试器电路,
以及用于在线调试器的引脚。这样就不必对ICD器件采
用独立的管芯或封装。ICD 器件的引脚排列与器件相同
(见第 1.0 节 “器件概述”以获取完整的引脚及其排列
形式的说明)。表 16-9 给出了 28 和 40 引脚器件中与
ICD 相关的引脚的位置和功能。
更多信息可参见 Microchip 网站(www.microchip.com)
上的 “Using MPLAB® ICD 2”(DS51265)。
表 16-9:
PIC16F91X/946-ICD 引脚说明
引脚数
PDIP
TQFP
名称
类型
上拉
说明
PIC16F914/917
PIC16F913/916
PIC16F946
40
28
24
ICDDATA
TTL
—
在线调试器双向数据引脚
39
27
23
ICDCLK
ST
—
在线调试器双向时钟引脚
1
1
36
MCLR/VPP
HV
—
编程电压
11,32
20
10, 19, 38, 51
VDD
P
—
电源
12,31
8,19
9, 20, 41, 56
VSS
P
—
地
—
—
26
AVDD
P
—
模拟电源
—
—
25
AVSS
P
—
模拟地
图注:
TTL = TTL 输入缓冲器, ST = 施密特触发器输入缓冲器, P = 电源, HV = 高电压
 2007 Microchip Technology Inc.
DS41250F_CN 第 239 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 240 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
17.0
指令集综述
PIC16F913/914/916/917/946 指令集具有高度正交性,
分为以下三种基本类型:
表 17-1:
操作码字段说明
字段
f
说明
文件寄存器地址 (0x00 到 0x7F)
• 字节操作类指令
• 位操作类指令
• 立即数和控制操作类指令
W
工作寄存器 (累加器)
b
8 位文件寄存器内的位地址
k
立即数字段、常数或标号
每条 PIC16 指令都是 14 位字的,由操作码(指定指令类
型)和一个或多个操作数(指定指令操作)组成。图 17-1 中
显示了每种指令类型的格式,而表 17-1 总结了各种操作码
字段。
x
忽略 (= 0 或 1)。
汇编器将生成 x = 0 的代码。为了与所有的
Microchip 软件工具兼容,建议使用这种形式。
d
目标寄存器选择; d = 0:结果保存至 W,
d = 1:结果保存至文件寄存器 f。
默认值为 d = 1。
表 17-2列出了所有可被 MPASMTM 汇编器识别的指令。
对于字节操作类指令,“f”为代表文件寄存器的指示
符,而 “d”为代表目标寄存器的指示符。 文件寄存器
指示符指定指令将会使用哪一个文件寄存器。
目标寄存器指 示符指定操作结 果的存放位置。 如果
“d”为 0,结果存放在 W 寄存器中。 如果 “d”为 1,
结果存放在指令指定的文件寄存器中。
对于位操作类指令,“b”为代表位域的指示符,用于选
择操作所影响的位,而 “f”则代表相应位所在的文件
寄存器的地址。
对于立即数和控制操作类指令,
“k”代表一个 8 位或 11
位常数或立即数值。
每个指令周期由 4 个振荡周期组成。因此,对于频率为
4 MHz 的振荡器,其正常的指令执行时间为 1 µs。所有
指令都在一个指令周期内执行,除非条件测试为真或者
指令执行改变了程序计数器的值。当上述特殊情况发生
时,指令的执行就需要两个指令周期,第二个周期执行
一条 NOP 指令。
所有指令示例均使用 “0xhh”格式表示一个十六进制
数,其中 “h”表示一个十六进制数字。
17.1
PC
程序计数器
TO
超时溢出位
C
DC
Z
PD
半进位
零标志位
掉电位
图 17-1:
指令的一般格式
面向字节的文件寄存器操作类指令
13
8 7 6
0
操作码
d
f (文件寄存器地址)
d = 0 表示结果存入 W 寄存器
d = 1 表示结果存入文件寄存器 f
f = 7 位文件寄存器地址
面向位的文件寄存器操作类指令
13
10 9
7 6
0
操作码
b(位地址 )f(文件寄存器地址)
读 - 修改 - 写操作
所有需要使用文件寄存器的指令都会执行读-修改-写
(Read-Modify-Write,R-M-W)操作。根据指令或目标
寄存器指示符 “d”读寄存器、修改数据和保存结果。
即使是写一个寄存器的指令也将先对该寄存器进行读操
作。
进位
b = 3 位位地址
f = 7 位文件寄存器地址
立即数和控制操作类指令
通用
13
8
例如, CLRF PORTA 指令会读 PORTA,清零所有数据
位,然后将结果写回到 PORTA。该示例可能意外清除
将 RBIF 标志位置 1 的条件。
7
0
K(立即数)
操作码
K = 8 位立即数值
仅 CALL 和 GOTO 指令
13
11
0
10
操作码
K(立即数)
K = 11 位立即数值
 2007 Microchip Technology Inc.
DS41250F_CN 第 241 页
PIC16F913/914/916/917/946
表 17-2:
PIC16F913/914/916/917/946 指令集
14 位操作码
助记符,
操作数
说明
周期数
MSb
LSb
受影响的
状态位
注
面向字节的文件寄存器操作
ADDWF
ANDWF
CLRF
CLRW
COMF
DECF
DECFSZ
INCF
INCFSZ
IORWF
MOVF
MOVWF
NOP
RLF
RRF
SUBWF
SWAPF
XORWF
f, d
f, d
f
-
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f
-
f, d
f, d
f, d
f, d
f, d
BCF
BSF
BTFSC
BTFSS
f, b
f, b
f, b
f, b
ADDLW
ANDLW
CALL
CLRWDT
GOTO
IORLW
MOVLW
RETFIE
RETLW
RETURN
SLEEP
SUBLW
XORLW
k
k
k
-
k
k
k
-
k
-
-
k
k
W 和 f 相加
W 和 f 作逻辑与运算
将 f 清零
将 W 寄存器清零
f 取反
f 递减 1
f 递减 1,为 0 则跳过
f 递增 1
f 递增 1,为 0 则跳过
W 和 f 作逻辑或运算
将 f 的内容传送到目标寄存器
将 W 的内容传送到 f
空操作
对 f 执行带进位的左移
对 f 执行带进位的右移
f 减去 W
将 f 中的两个半字节进行交换
W 和 f 作逻辑异或运算
1
1
1
1
1
1
1(2)
1
1(2)
1
1
1
1
1
1
1
1
1
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
0111
0101
0001
0001
1001
0011
1011
1010
1111
0100
1000
0000
0000
1101
1100
0010
1110
0110
dfff
dfff
lfff
0xxx
dfff
dfff
dfff
dfff
dfff
dfff
dfff
lfff
0xx0
dfff
dfff
dfff
dfff
dfff
ffff
ffff
ffff
xxxx
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
0000
ffff
ffff
ffff
ffff
ffff
01
01
01
01
00bb
01bb
10bb
11bb
bfff
bfff
bfff
bfff
ffff
ffff
ffff
ffff
11
11
10
00
10
11
11
00
11
00
00
11
11
111x
1001
0kkk
0000
1kkk
1000
00xx
0000
01xx
0000
0000
110x
1010
kkkk
kkkk
kkkk
0110
kkkk
kkkk
kkkk
0000
kkkk
0000
0110
kkkk
kkkk
kkkk
kkkk
kkkk
0100
kkkk
kkkk
kkkk
1001
kkkk
1000
0011
kkkk
kkkk
C, DC, Z
Z
Z
Z
Z
Z
Z
Z
Z
C
C
C, DC, Z
Z
1, 2
1, 2
2
1, 2
1, 2
1, 2, 3
1, 2
1, 2, 3
1, 2
1, 2
1, 2
1, 2
1, 2
1, 2
1, 2
面向位的文件寄存器操作
将 f 中的某位清零
将 f 中的某位置 1
检测 f 中的某位,为 0 则跳过
检测 f 中的某位,为 1 则跳过
1
1
1 (2)
1 (2)
1, 2
1, 2
3
3
立即数和控制操作
注
立即数和 W 相加
立即数与 W 作逻辑与运算
调用子程序
清零看门狗定时器
跳转到地址
立即数与 W 作逻辑或运算
将立即数传送到 W
从中断返回
返回并将立即数传送到 W
从子程序返回
进入待机模式
从立即数中减去 W 的内容
立即数与 W 作逻辑异或运算
1
1
2
1
2
1
1
2
2
2
1
1
1
C, DC, Z
Z
TO, PD
Z
TO, PD
C, DC, Z
Z
1: 当 I/O 寄存器用自身内容修改自身时 (例如:MOVF GPIO, 1),使用的值是出现在引脚上的值。例如,如果将一引脚
配置为输入,虽然其对应数据锁存器中的值为 1,但此时若有外部器件将该引脚驱动为低电平,则被写回的数据值将是
0。
2: 当对 TMR0 寄存器 (并且 d = 1)执行这条指令时,如果将预分频器分配给 Timer0 模块,则将其清零。
3: 如果程序计数器 (PC)被修改或条件测试为真,则执行该指令需要两个周期。第二个周期执行一条 NOP 指令。
DS41250F_CN 第 242 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
17.2
指令说明
ADDLW
立即数和 W 相加
语法:
[ 标号 ] ADDLW
操作数:
0 ≤ k ≤ 255
操作:
(W) + k → (W)
k
受影响的状态位: C、 DC 和 Z
说明:
将 W 寄存器的内容与 8 位立即数
k 相加,结果存入 W 寄存器。
BCF
将 f 中的某位清零
语法:
[ 标号 ] BCF
操作数:
0 ≤ f ≤ 127
0≤b≤7
操作:
0 → (f<b>)
受影响的状态位: 无
说明:
将寄存器 f 中的位 b 清零
BSF
将 f 中的某位置 1
语法:
[ 标号 ] BSF
ADDWF
W 和 f 相加
语法:
[ 标号 ] ADDWF
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作数:
0 ≤ f ≤ 127
0≤b≤7
操作:
(W) + (f) → ( 目标寄存器 )
操作:
1 → (f<b>)
f,d
受影响的状态位: C、 DC 和 Z
f,b
f,b
受影响的状态位: 无
说明:
将 W 寄存器的内容与 f 寄存器的
内容相加。 如果 d 等于 0,结果
存放在 W 寄存器中。如果 d 为
1,结果存回寄存器 f。
说明:
将寄存器 f 的位 b 置 1。
ANDLW
立即数与 W 作逻辑与运算
BTFSC
检测 f 中的某位,为 0 则跳过
语法:
[ 标号 ] ANDLW
语法:
[ 标号 ] BTFSC f,b
操作数:
0 ≤ k ≤ 255
操作数:
操作:
(W) .AND. (k) → (W)
0 ≤ f ≤ 127
0≤b≤7
操作:
如果 (f<b>) = 0 则跳过
k
受影响的状态位: Z
说明:
ANDWF
将 W 寄存器的内容与 8 位立即数
k 作逻辑与运算。结果存入 W 寄
存器。
W 和 f 作逻辑与运算
语法:
[ 标号 ] ANDWF
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作:
(W) .AND. (f) → ( 目标寄存器 )
受影响的状态位: 无
说明:
如果 f 寄存器中的位 b 为 1,则执
行下一条指令。
如果 f 寄存器中的位 b 为 0,则丢
弃下一条指令,转而执行一条 NOP
指令,从而使该指令成为双周期指
令。
f,d
受影响的状态位: Z
说明:
W 寄存器与 f 寄存器作逻辑与运
算。如果 d 等于 0,结果存放在
W 寄存器中。如果 d 为 1,结果
存回寄存器 f。
 2007 Microchip Technology Inc.
DS41250F_CN 第 243 页
PIC16F913/914/916/917/946
BTFSS
检测 f 中的某位,为 1 则跳过
CLRWDT
清零看门狗定时器
语法:
[ 标号 ] BTFSS f,b
语法:
[ 标号 ] CLRWDT
操作数:
0 ≤ f ≤ 127
0≤b<7
操作数:
无
操作:
00h → WDT
0 → WDT 预分频器,
1 → TO
1 → PD
受影响的状态位:
TO 和 PD
说明:
CLRWDT指令复位看门狗定时器。
还将复位 WDT 的预分频器。状
态位 TO 和 PD 置 1。
操作:
如果 (f<b>) = 1 则跳过
受影响的状态位: 无
说明:
如果 f 寄存器中的位 b 为 0,则执
行下一条指令。
如果位 b 为 1,则丢弃下一条指
令,转而执行一条 NOP 指令,从
而使该指令成为双周期指令。
CALL
调用子程序
COMF
f 取反
语法:
[ 标号 ] CALL k
语法:
[ 标号 ] COMF
操作数:
0 ≤ k ≤ 2047
操作数:
操作:
(PC)+ 1→ TOS,
k → PC<10:0>,
(PCLATH<4:3>) → PC<12:11>
0 ≤ f ≤ 127
d ∈ [0,1]
操作:
(f) → ( 目标寄存器 )
受影响的状态位: 无
说明:
调用子程序。首先,将返回地址
(PC + 1)压入堆栈。11 位立即
数地址被装入 PC 位 <10:0>。将
PCLATH 装入 PC 的高位。CALL
是双周期指令
CLRF
将 f 清零
f,d
受影响的状态位: Z
说明:
将寄存器 f 的内容取反。如果 d 为
0,结果存入 W 寄存器。如果 d 为
1,结果存回寄存器 f。
DECF
f 递减 1
语法:
[ 标号 ] CLRF
语法:
[ 标号 ] DECF f,d
操作数:
0 ≤ f ≤ 127
操作数:
操作:
00h → (f)
1→Z
0 ≤ f ≤ 127
d ∈ [0,1]
操作:
(f) - 1 → ( 目标寄存器 )
f
受影响的状态位: Z
说明:
寄存器 f 的内容被清零, Z 位置
1。
CLRW
将 W 寄存器清零
语法:
[ 标号 ] CLRW
操作数:
无
操作:
00h → (W)
1→Z
受影响的状态位: Z
说明:
将 f 的内容递减 1。如果 d 为 0,
结果存入 W 寄存器。如果 d 为
1,结果存回寄存器 f。
受影响的状态位: Z
说明:
W 寄存器被清零,全零标志位
(Z)置 1。
DS41250F_CN 第 244 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
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 时跳过
受影响的状态位: 无
INCFSZ f,d
受影响的状态位: 无
说明:
将寄存器 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)
GOTO k
受影响的状态位: 无
受影响的状态位: Z
说明:
将 W 寄存器的内容与 8 位立即数
k 作逻辑或运算。结果存入 W 寄
存器。
IORWF
W 和 f 作逻辑或运算
语法:
[ 标号 ]
0 ≤ f ≤ 127
d ∈ [0,1]
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
(f) + 1 → ( 目标寄存器 )
操作:
(W) .OR. (f) → ( 目标寄存器 )
说明:
GOTO 是无条件跳转指令。11 位立
即数地址被装入 PC 位 <10:0>。
PC 高位从 PCLATH<4:3> 装入。
GOTO 是双周期指令。
INCF
f 递增 1
语法:
[ 标号 ]
操作数:
操作:
INCF f,d
受影响的状态位: Z
说明:
IORLW k
将寄存器 f 的内容递增 1。如果 d
为 0,结果存入 W 寄存器。如果
d 为 1,结果存回寄存器 f。
 2007 Microchip Technology Inc.
IORWF
f,d
受影响的状态位: Z
说明:
W 寄存器与 f 寄存器作逻辑或运
算。 如果 d 为 0,结果存入 W 寄
存器。如果 d 为 1,结果存回
寄存器 f。
DS41250F_CN 第 245 页
PIC16F913/914/916/917/946
MOVF
将 f 的内容传送到目标寄存器
MOVWF
将 W 的内容传送到 f
语法:
[ 标号 ]
语法:
[ 标号 ]
MOVF f,d
MOVWF
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作数:
0 ≤ f ≤ 127
操作:
(W) → (f)
操作:
(f) → ( 目标寄存器 )
受影响的状态位: 无
受影响的状态位: Z
说明:
根据 d 的状态,将寄存器 f 的内容
送入目标寄存器。如果 d 为 0,目
标寄存器为 W 寄存器。如果 d 为
1,目标寄存器为寄存器 f。由于状
态标志位 Z 受到指令结果的影响,
d = 1 可用于检测文件寄存器。
指令字数:
1
指令周期数:
1
示例:
MOVF
说明:
将 W 寄存器中的数据传送到寄存
器 f。
指令字数:
1
指令周期数:
1
示例:
MOVW
F
FSR 寄存器中
将立即数传送到 W
NOP
空操作
语法:
[ 标号 ]
语法:
[ 标号 ]
操作数:
0 ≤ k ≤ 255
操作数:
无
操作:
k → (W)
操作:
空操作
MOVLW k
受影响的状态位: 无
说明:
空操作。
指令字数:
1
指令字数:
1
指令周期数:
1
指令周期数:
1
示例:
MOVLW
执行指令后
W
DS41250F_CN 第 246 页
0x4F
0x4F
NOP
受影响的状态位: 无
将 8 位立即数 k 装入 W 寄存器。
“无关位”被汇编为 0。
示例:
0xFF
0x4F
1
MOVLW
说明:
OPTION
执行指令前
OPTION =
W
=
执行指令后
OPTION =
W
=
FSR, 0
执行指令后
W =
的值
Z =
f
NOP
0x5A
=
0x5A
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
RETFIE
从中断返回
RETLW
返回并将立即数传送到 W
语法:
[ 标号 ]
语法:
[ 标号 ]
RETFIE
RETLW k
操作数:
无
操作数:
0 ≤ k ≤ 255
操作:
TOS → PC,
1 → GIE
操作:
k → (W) ;
TOS → PC
受影响的状态位: 无
受影响的状态位: 无
说明:
从中断返回。执行出栈操作,将
栈顶 (TOS)单元内容装入 PC。
通过置 1 全局中断允许位 GIE
(INTCON<7>)允许中断。这是
一条双周期指令。
说明:
将 8 位立即数 k 装入 W 寄存器。
栈顶内容 (返回地址)被装入程
序计数器。这是一条双周期指
令。
指令字数:
1
指令字数:
1
指令周期数:
2
指令周期数:
2
示例:
示例:
RETFIE
中断后
PC =
GIE =
TOS
1
TABLE
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
RETURN
从子程序返回
语法:
[ 标号 ]
操作数:
无
操作:
TOS → PC
=
0x07
=
k8 的值
RETURN
受影响的状态位: 无
说明:
 2007 Microchip Technology Inc.
从子程序返回。执行出栈操作,将
栈顶 (TOS)单元内容装入程序
计数器。这是一条双周期指令。
DS41250F_CN 第 247 页
PIC16F913/914/916/917/946
RLF
对 f 执行带进位的左移
语法:
[ 标号 ]
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作:
参见下面的说明
受影响的状态位:
C
说明:
将寄存器 f 的内容连同进位标志位
一起左移 1 位。如果 d 为 0,结果
存入 W 寄存器。如果 d 为 1,结
果存回寄存器 f。
RLF
C
指令字数:
1
指令周期数:
1
示例:
f,d
SLEEP
进入休眠模式
语法:
[ 标号 ] SLEEP
操作数:
无
操作:
00h → WDT,
0 → WDT 预分频器,
1 → TO,
0 → PD
受影响的状态位: TO 和 PD
说明:
寄存器 f
RLF
掉电状态位 PD 清零。超时状态
位 TO 位置 1。看门狗定时器及
其预分频器被清零。
振荡器停振,处理器进入休眠模
式。
REG1,0
执行指令前
REG1
C
=
=
1110 0110
0
=
=
=
1110 0110
1100 1100
1
执行指令后
REG1
W
C
RRF
对 f 执行带进位的右移
SUBLW
从立即数中减去 W 的内容
语法:
[ 标号 ]
语法:
0 ≤ f ≤ 127
d ∈ [0,1]
[ 标号 ] SUBLW k
操作数:
操作数:
0 ≤ k ≤ 255
操作:
参见下面的说明
操作:
k - (W) → (W)
RRF f,d
受影响的状态位: C、 DC 和 Z
受影响的状态位: C
说明:
将寄存器 f 的内容连同进位标志位
一起右移 1 位。如果 d 为 0,结果
存入 W 寄存器。 如果 d 为 1,结
果存回寄存器 f。
C
DS41250F_CN 第 248 页
寄存器 f
说明:
从 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>
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
SUBWF
f 减去 W
XORLW
立即数与 W 作逻辑异或运算
语法:
[ 标号 ] SUBWF f,d
语法:
[ 标号 ] XORLW k
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作数:
0 ≤ k ≤ 255
(f) - (W) → ( 目标寄存器 )
操作:
(W) .XOR. k → (W)
操作:
受影响的状态位: Z
受影响的状态位: C、 DC 和 Z
说明:
说明:
将 W 寄存器的内容与 8 位立即数
k 作逻辑异或运算。结果存入 W
寄存器。
从寄存器 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>
SWAPF
将 f 中的两个半字节进行交换
XORWF
W 和 f 作逻辑异或运算
语法:
[ 标号 ] SWAPF f,d
语法:
[ 标号 ] XORWF
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作数:
0 ≤ f ≤ 127
d ∈ [0,1]
操作:
(f<3:0>) → ( 目标寄存器 <7:4>),
(f<7:4>) → ( 目标寄存器 <3:0>)
操作:
(W) .XOR. (f) → ( 目标寄存器 )
受影响的状态位: 无
说明:
将寄存器 f 的高半字节和低半字节
交换。如果 d 为 0,结果存入 W
寄存器。如果 d 为 1,结果存回寄
存器 f。
 2007 Microchip Technology Inc.
f,d
受影响的状态位: Z
说明:
将 W 寄存器的内容与 f 寄存器的
内容作逻辑异或运算。 如果 d 等
于 0,结果存放在 W 寄存器中。
如果 d 为 1,结果存回寄存器 f。
DS41250F_CN 第 249 页
PIC16F913/914/916/917/946
注:
DS41250F_CN 第 250 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
18.0
开发支持
一系列硬件及软件开发工具对 PIC® 单片机提供支持:
• 集成开发环境
- MPLAB® IDE 软件
• 汇编器 / 编译器 / 链接器
- MPASMTM 汇编器
- MPLAB C18 和 MPLAB C30 C 编译器
- MPLINKTM 目标链接器 /
MPLIBTM 目标库管理器
- MPLAB ASM30 汇编器 / 链接器 / 库
• 模拟器
- MPLAB SIM 软件模拟器
• 仿真器
- MPLAB ICE 2000 在线仿真器
- MPLAB REAL ICE™ 在线仿真器
• 在线调试器
- MPLAB ICD 2
• 器件编程器
- PICSTART® Plus 开发编程器
- MPLAB PM3 器件编程器
- PICkit™ 2 开发编程器
• 低成本演示和开发板及评估工具包
18.1
MPLAB 集成开发环境软件
MPLAB IDE 软件为 8/16 位单片机市场提供了前所未有
的易 于使 用的 软件 开发 平台。 MPLAB IDE 是基 于
Windows® 操作系统的应用软件,包括:
• 一个包含所有调试工具的图形界面
- 模拟器
- 编程器 (单独销售)
- 仿真器 (单独销售)
- 在线调试器 (单独销售)
• 具有彩色上下文代码显示的全功能编辑器
• 多项目管理器
• 内容可直接编辑的可定制式数据窗口
• 高级源代码调试
• 可视化器件初始化程序,便于进行寄存器的初始化
• 鼠标停留在变量上进行查看的功能
• 通过拖放把变量从源代码窗口拉到观察窗口
• 丰富的在线帮助
• 集成了可选的第三方工具,如 HI-TECH 软件 C 编
译器和 IAR C 编译器
MPLAB IDE 可以让您:
• 编辑源文件 (汇编语言或 C 语言)
• 点击一次即可完成汇编 (或编译)并将代码下载
到 PIC MCU 仿真器和模拟器工具中 (自动更新所
有项目信息)
• 可使用如下各项进行调试:
- 源文件 (汇编语言或 C 语言)
- 混合汇编语言和 C 语言
- 机器码
MPLAB IDE 在单个开发范例中支持使用多种调试工
具,包括从成本效益高的模拟器到低成本的在线调试
器,再到全功能的仿真器。这样缩短了用户升级到更加
灵活而功能更强大的工具时的学习时间。
 2007 Microchip Technology Inc.
DS41250F_CN 第 251 页
PIC16F913/914/916/917/946
18.2
MPASM 汇编器
MPASM 汇编器是全功能通用宏汇编器,适用于所有的
PIC MCU。
MPASM 汇编器可生成用于 MPLINK 目标链接器的可重
定位目标文件、Intel® 标准 HEX 文件、详细描述存储器
使用状况和符号参考的 MAP 文件、包含源代码行及生
成机器码的绝对 LST 文件以及用于调试的 COFF 文件。
MPASM 汇编器具有如下特征:
•
•
•
•
集成在 MPLAB IDE 项目中
用户定义的宏可简化汇编代码
对多用途源文件进行条件汇编
允许完全控制汇编过程的指令
18.3
MPLAB C18 和 MPLAB C30
C 编译器
MPLAB C18 和 MPLAB C30 代码开发系统是完全的
ANSI C 编译器,分别适用于 Microchip 的 PIC18 和
PIC24 系列单片机及 dsPIC30F 和 dsPIC33 系列数字信
号控制器。这些编译器可提供其他编译器并不具备的强
大的集成功能和出众的代码优化能力,且使用方便。
为便于源代码调试,编译器提供了针对 MPLAB IDE 调
试器的优化符号信息。
18.4
MPLINK 目标链接器 /
MPLIB 目标库管理器
MPLINK 目标链接器包含了由 MPASM 汇编器、MPLAB
C18 C 编译器产生的可重定位目标。通过使用链接器脚
本中的指令,它还可链接预编译库中的可重定位目标。
18.5
MPLAB ASM30 汇编器、
链接器和库管理器
MPLAB ASM30 汇编器为 dsPIC30F 器件提供转换自符
号汇编语言的可重定位机器码。 MPLAB C30 C 编译器
使用该汇编器生成目标文件。汇编器产生可重定位目标
文件之后,可将这些目标文件存档,或与其他可重定位
目标文件和存档链接以生成可执行文件。该汇编器有如
下显著特征:
•
•
•
•
•
•
支持整个 dsPIC30F 指令集
支持定点数据和浮点数据
命令行界面
丰富的指令集
灵活的宏语言
MPLAB IDE 兼容性
18.6
MPLAB SIM 软件模拟器
MPLAB SIM软件模拟器在指令级对PIC MCU和dsPIC®
DSC 进行模拟,使得用户可以在 PC 主机的环境下进行
代码开发。对于任何给定的指令,用户均可对数据区进
行检查或修改,并通过各种触发机制来产生激励。可以
将各寄存器的情况记录在文件中,以便进行进一步地运
行时分析。跟踪缓冲器和逻辑分析器的显示使模拟器还
能记录和跟踪程序的执行、 I/O 的动作、大部分的外设
及内部寄存器的状况。
MPLAB SIM 软件模拟器完全支持使用 MPLAB C18 和
MPLAB C30 C 编译器以及MPASM和MAPLAB ASM30
汇编器的符号调试。该软件模拟器可用于在硬件实验室
环境外灵活地开发和调试代码,是一款完美且经济的软
件开发工具。
MPLIB目标库管理器管理预编译代码库文件的创建和修
改。当从源文件调用库中的一段子程序时,只有包含此
子程序的模块被链接到应用中。这样可使大型库在许多
不同应用中被高效地利用。
目标链接器 / 库管理器具有如下特征:
• 高效地连接单个的库而不是许多小文件
• 通过将相关的模块组合在一起来增强代码的可维护
性
• 只要列出、替换、删除和抽取模块,便可灵活地创
建库
DS41250F_CN 第 252 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
18.7
MPLAB ICE 2000 高性能在线仿真器
MPLAB ICE 2000 在线仿真器旨在为产品开发工程师提
供一整套用于 PIC 单片机的设计工具。 MPLAB ICE
2000 在线仿真器的软件控制由 MPLAB 集成开发环境平
台提供,它允许在单一环境下进行编辑、编译、下载以
及源代码调试。
MPLAB ICE 2000 是全功能仿真器系统,它具有增强的
跟踪、触发和数据监控功能。处理器模块可插拔,使系
统可轻松进行重新配置以适应各种不同处理器的仿真需
要。MPLAB ICE 2000 在线仿真器的架构允许对其进行
扩展以支持新的 PIC 单片机。
MPLAB ICE 2000 在线仿真器系统设计为一款实时仿真
系统,该仿真系统具备通常只有昂贵的开发工具中才有
的高级功能。选择 PC 平台和 Microsoft® Windows® 32
位操作系统可使这些功能在一个简单而统一的应用中得
到很好的利用。
18.8
MPLAB REAL ICE 在线仿真器系统
MPLAB REAL ICE在线仿真器系统是Microchip针对其闪
存 DSC 和 MCU 器件而推出的新一代高速仿真器。结合
MPLAB 集成开发环境(IDE)所具有的易于使用且功能
强大的图形用户界面,该仿真器可对 PIC® 闪存 MCU 和
dsPIC® DSC进行调试和编程。IDE是随每个工具包一起
提供的。
MPLAB REAL ICE 探针通过高速 USB 2.0 接口与设计工
程师的 PC 相连,并利用与常用 MPLAB ICD 2 系统兼容
的连接器 (RJ11)或新型抗噪声、高速低压差分信号
(LVDS)互连电缆 (CAT5)与目标板相连。
18.9
MPLAB ICD 2 在线调试器
Microchip 的在线调试器 MPLAB ICD 2 是一款功能强大
而成本低廉的运行时开发工具,通过 RS-232 或高速
USB 接口与 PC 主机相连。该工具基于闪存 PIC MCU,
可用于开发本系列及其他 PIC MCU 和 dsPIC DSC。
MPLAB ICD 2 使用了闪存器件中内建的在线调试功能。
该功能结合 Microchip 的在线串行编程(In-Circuit Serial
ProgrammingTM, ICSPTM)协议,可在 MPLAB 集成开
发环境的图形用户界面上提供成本效益很高的在线闪存
调试。这使设计人员可通过设置断点、单步运行以及对
变量、CPU 状态以及外设寄存器进行监视的方法实现源
代码的开发和调试。其全速运行特性可对硬件和应用进
行实时测试。 MPLAB ICD 2 还可用作某些 PIC 器件的
开发编程器。
18.10 MPLAB PM3 器件编程器
MPLAB PM3 器件编程器是一款通用的、符合 CE 规范
的器件编程器,其可编程电压设置在 VDDMIN 和 VDDMAX
之间时可靠性最高。它有一个用来显示菜单和错误信息
的大 LCD 显示器(128 x 64),以及一个支持各种封装
类型的可拆卸模块化插槽装置。编程器标准配置中带有
一根 ICSPTM 电缆。在单机模式下, MPLAB PM3 器件
编程器不必与 PC 相连即可对 PIC 器件进行读取、验证
和编程。在该模式下它还可设置代码保护。 MPLAB
PM3 通过 RS-232 或 USB 电缆连接到 PC 主机上。
MPLAB PM3 具备高速通信能力以及优化算法,可对存
储器很大的器件进行快速编程,它还采用 SD/MMC 卡
用作文件存储及数据安全应用。
可通过 MPLAB IDE 下载将来版本的固件,对 MPLAB
REAL ICE 进行现场升级。在即将推出的 MPLAB IDE 版
本中,会支持许多新器件,还将增加一些新特性,如软
件断点和汇编代码跟踪等。在同类仿真器中, MPLAB
REAL ICE 的优势十分明显:低成本、高速仿真、实时变
量监视、跟踪分析、复杂断点、耐用的探针接口及较长
(长达 3 米)的互连电缆。
 2007 Microchip Technology Inc.
DS41250F_CN 第 253 页
PIC16F913/914/916/917/946
18.11 PICSTART Plus 开发编程器
18.13 演示、开发和评估板
PICSTART Plus开发编程器是一款易于使用而成本低廉
的原型编程器。它通过 COM (RS-232)端口与 PC 相
连。 MPLAB 集成开发环境软件使得该编程器的使用简
便、高效。PICSTART Plus 开发编程器支持采用 DIP 封
装的大部分 PIC 器件,其引脚数最多可达 40 个。引脚
数更多的器件,如 PIC16C92X 和 PIC17C76X,可通过
连接一个转接插槽来获得支持。PICSTART Plus 开发编
程器符合 CE 规范。
有许多演示、开发和评估板可用于各种 PIC MCU 和
dsPIC DSC,实现对全功能系统的快速应用开发。大多
数的演示、开发和评估板都有实验布线区,供用户添加
定制电路;还有应用固件和源代码,用于测试和修改。
18.12 PICkit 2 开发编程器
PICkit™ 2 开发编程器是一个低成本编程器;对于某些
选定闪存器件,它也是一个调试器,通过其易于使用的
接口可对众多 Microchip 的低档、中档和 PIC18F 系列
闪存单片机进行编程。 PICkit 2 入门工具包中包含一个
有实验布线区的开发板、十二堂系列课程、软件和 HITECH 的 PICC™ Lite C 编译器,有助于用户快速掌握
PIC® 单片机的使用。这一工具包为使用 Microchip 功能
强大的中档闪存系列单片机进行编程、评估和应用开
发,提供了所需的一切。
DS41250F_CN 第 254 页
这些板支持多种功能部件,包括 LED、温度传感器、开
关、扬声器、 RS-232 接口、 LCD 显示器、电位计和附
加 EEPROM 存储器。
演示和开发板可用于教学环境,在实验布线区设计定制
电路,从而掌握各种单片机应用。
除了 PICDEM™ 和 dsPICDEM™ 演示 / 开发板系列电路
外, Microchip 还有一系列评估工具包和演示软件, 适
用于模拟滤波器设计、 KEELOQ® 数据安全产品 IC、
CAN、IrDA®、PowerSmart 电池管理、SEEVAL® 评估
系统、 Σ−∆ ADC、流速传感器,等等。
有 关 演 示、开 发 和 评 估 工 具 包 的 完 整 列 表,请 查 阅
Microchip 公司网页 (www.microchip.com)。
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.0
电气规范
绝对最大值 (†)
环境温度.............................................................................................................................................. -40° 至 +125°C
储存温度........................................................................................................................................... -65°C 至 +150°C
VDD 相对于 VSS 的电压 ...................................................................................................................... -0.3V 至 +6.5V
MCLR 相对于 Vss 的电压 .................................................................................................................. -0.3V 至 +13.5V
其他引脚相对于 VSS 的电压 .................................................................................................. -0.3V 至 (VDD + 0.3V)
总功耗 (1) ........................................................................................................................................................ 800 mW
VSS 引脚的最大输出电流................................................................................................................................... 95 mA
VDD 引脚的最大输入电流 .................................................................................................................................. 95 mA
输入钳位电流 IIK (VI < 0 或 VI > VDD).......................................................................................................................±20 mA
输出钳位电流 IOK (Vo < 0 或 Vo >VDD)....................................................................................................................±20 mA
任一 I/O 引脚的最大输出灌电流 ........................................................................................................................ 25 mA
任一 I/O 引脚的最大输出拉电流 ........................................................................................................................ 25 mA
所有端口的最大拉电流 ...................................................................................................................................... 90 mA
所有端口的最大灌电流 ...................................................................................................................................... 90 mA
注
1:功耗按如下公式计算:PDIS = VDD x {IDD – ∑ IOH} + ∑ {(VDD – VOH) x IOH} + ∑(VOL x IOL)。
2: PIC16F913/916 器件未实现 PORTD 和 PORTE。
† 注:如果器件的工作条件超过 “绝对最大值”,就可能会对器件造成永久性损坏。上述值仅为运行条件极大值,我
们建议不要使器件在该规范规定的范围以外运行。器件长时间工作在最大值条件下,其稳定性会受到影响。
 2007 Microchip Technology Inc.
DS41250F_CN 第 255 页
PIC16F913/914/916/917/946
PIC16F913/914/916/917/946 电压—频率关系图, -40°C ≤ TA ≤ +125°C
图 19-1:
5.5
5.0
VDD(V)
4.5
4.0
3.5
3.0
2.5
2.0
0
8
10
20
频率(MHz)
注
1: 阴影区域表示允许的电压和频率的组合。
图 19-2:
HFINTOSC 的频率精度与器件 VDD 和温度之间的关系
125
± 5%
温度(°C)
85
± 2%
60
± 1%
25
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
DS41250F_CN 第 256 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.1
直流特性:PIC16F913/914/916/917/946-I (工业级)
PIC16F913/914/916/917/946-E (扩展级 )
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +85°C (工业级)
-40°C ≤ TA ≤ +125°C (扩展级)
直流特性
参数
编号
符号
特性
最小 典型 最大
值
值†
值
VDD
电源电压
2.0
2.0
3.0
4.5
D002*
VDR
RAM 数据保持电压 (1)
D003
VPOR
VDD 起始电压确保能够产
生内部上电复位信号
D004*
SVDD
VDD 上升速率确保能够
产生内部上电复位信号
D001
D001C
D001D
注
单位
条件
—
—
—
—
5.5
5.5
5.5
5.5
V
V
V
V
FOSC < = 8 MHz:HFINTOSC 和 EC 模式
FOSC < = 4 MHz
FOSC < = 10 MHz
FOSC < = 20 MHz
1.5
—
—
V
器件工作在休眠模式下
—
VSS
—
V
详情请见第 16.2.1 节 “上电复位
(POR)”。
0.05
—
—
V/ms 详情请见第 16.2.1 节 “上电复位
(POR)”。
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试。
1:该电压是休眠模式下保证不丢失 RAM 数据的最小 VDD。
 2007 Microchip Technology Inc.
DS41250F_CN 第 257 页
PIC16F913/914/916/917/946
19.2
直流特性:
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +85°C (工业级)
-40°C ≤ TA ≤ +125°C (扩展级)
直流特性
参数
编号
D010
器件特性
供电电流 (IDD) (1, 2)
D011*
D012
D013*
D014
D015
D016*
D017
D018
D019
注
PIC16F913/914/916/917/946-I (工业级)
PIC16F913/914/916/917/946-E (扩展级)
最小值
典型值
最大值
†
条件
单位
VDD
—
13
19
µA
2.0
—
22
30
µA
3.0
—
33
60
µA
5.0
—
180
250
µA
2.0
—
290
400
µA
3.0
—
490
650
µA
5.0
—
280
380
µA
2.0
—
480
670
µA
3.0
—
0.9
1.4
mA
5.0
—
170
295
µA
2.0
—
280
480
µA
3.0
—
470
690
µA
5.0
—
290
450
µA
2.0
—
490
720
µA
3.0
—
0.85
1.3
mA
5.0
—
8
20
µA
2.0
—
16
40
µA
3.0
—
31
65
µA
5.0
—
416
520
µA
2.0
—
640
840
µA
3.0
—
1.13
1.6
mA
5.0
—
0.65
0.9
mA
2.0
—
1.01
1.3
mA
3.0
—
1.86
2.3
mA
5.0
—
340
580
µA
2.0
—
550
900
µA
3.0
—
0.92
1.4
mA
5.0
—
3.8
4.7
mA
4.5
—
4.0
4.8
mA
5.0
注
FOSC = 32 kHz
LP 振荡模式
FOSC = 1 MHz
XT 振荡模式
FOSC = 4 MHz
XT 振荡模式
FOSC = 1 MHz
EC 振荡模式
FOSC = 4 MHz
EC 振荡模式
FOSC = 31 kHz
LFINTOSC 模式
FOSC = 4 MHz
HFINTOSC 模式
FOSC = 8 MHz
HFINTOSC 模式
FOSC = 4 MHz
EXTRC 模式 (3)
FOSC = 20 MHz
HS 振荡模式
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试。
1: 在正常的工作模式下,所有 IDD 测量的测试条件为:OSC1 = 外部方波,满幅;所有 I/O 引脚均为三态,
拉至 VDD ; MCLR = VDD ;禁止 WDT。
2: 供电电流主要随工作电压和频率而变化。其他因素,如 I/O 引脚负载和开关速率、振荡器类型、内部代码
执行模式和温度也会影响电流消耗。
3: 对于 RC 振荡器配置,不包括流经 REXT 的电流。流经该电阻的电流可以由公式 IR = VDD/2REXT (mA)
计算得出,其中 REXT 的单位为 kΩ。
DS41250F_CN 第 258 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.3
直流特性:PIC16F913/914/916/917/946-I (工业级)
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +85°C (工业级)
直流特性
参数
编号
器件特性
D020
掉电基本电流 (IPD)
D021
D022A
D022B
D023
D024
D025*
D026
D027
注
最小值
(2)
典型值
最大值
†
条件
单位
VDD
注
WDT、欠压复位、比较器、VREF 和
T1OSC 均被禁止
—
0.05
1.2
µA
2.0
—
0.15
1.5
µA
3.0
—
0.35
1.8
µA
5.0
—
150
500
nA
3.0
-40°C ≤ TA ≤ +25°C
—
1.0
2.2
µA
2.0
WDT 电流 (1)
—
2.0
4.0
µA
3.0
—
3.0
7.0
µA
5.0
—
42
60
µA
3.0
—
85
122
µA
5.0
—
22
28
µA
2.0
—
25
35
µA
3.0
—
33
45
µA
5.0
—
32
45
µA
2.0
—
60
78
µA
3.0
—
120
160
µA
5.0
—
30
36
µA
2.0
—
45
55
µA
3.0
—
75
95
µA
5.0
—
39
47
µA
2.0
—
59
72
µA
3.0
—
98
124
µA
5.0
—
2.0
5.0
µA
2.0
—
2.5
5.5
µA
3.0
—
3.0
7.0
µA
5.0
—
0.30
1.6
µA
3.0
—
0.36
1.9
µA
5.0
欠压复位电流 (1)
PLVD 电流
比较器电流 (1),使能两个比较器
CVREF 电流 (1) (高电压范围)
CVREF 电流 (1) (低电压范围)
T1OSC 电流 (1), 32.768 kHz
A/D 电流 (1),未转换
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试。
1:外设电流是基本 IDD 或 IPD 电流以及相应外设使能时消耗的额外电流的总和。外设 ∆ 电流可以从该电流中
减去基本 IDD 或 IPD 电流得到。在计算总电流消耗时应使用最大值。
2:休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并连接到
VDD 时测得的。
 2007 Microchip Technology Inc.
DS41250F_CN 第 259 页
PIC16F913/914/916/917/946
19.4
直流特性: PIC16F913/914/916/917/946-E (扩展级)
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C (扩展级)
直流特性
参数
编号
器件特性
D020E
掉电基本电流 (IPD)
D021E
D022E
D022B
D023E
D024E
D025E*
D026E
D027E
注
最小值
(2)
典型值
最大值
†
条件
单位
VDD
注
WDT、欠压复位、比较器、 VREF 和
T1OSC 均被禁止
—
0.05
9
µA
2.0
—
0.15
11
µA
3.0
—
0.35
15
µA
5.0
—
1
28
µA
2.0
—
2
30
µA
3.0
—
3
35
µA
5.0
—
42
65
µA
3.0
—
85
127
µA
5.0
—
22
48
µA
2.0
—
25
55
µA
3.0
—
33
65
µA
5.0
—
32
45
µA
2.0
—
60
78
µA
3.0
—
120
160
µA
5.0
—
30
70
µA
2.0
—
45
90
µA
3.0
—
75
120
µA
5.0
—
39
91
µA
2.0
—
59
117
µA
3.0
—
98
156
µA
5.0
—
3.5
18
µA
2.0
—
4
21
µA
3.0
—
5
24
µA
5.0
—
0.30
12
µA
3.0
—
0.36
16
µA
5.0
WDT 电流 (1)
欠压复位电流 (1)
PLVD 电流
比较器电流 (1),使能两个比较器
CVREF 电流 (1) (高电压范围)
CVREF 电流 (1) (低电压范围)
T1OSC 电流 (1), 32.768 kHz
A/D 电流 (1),未转换
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经
测试。
1: 外设电流是基本 IDD 或 IPD 电流以及相应外设使能时消耗的额外电流的总和。外设 ∆ 电流可以从该电流中减
去基本 IDD 或 IPD 电流得到。在计算总电流消耗时应使用最大值。
2: 休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并连接到
VDD 时测得的。
DS41250F_CN 第 260 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.5
PIC16F913/914/916/917/946-I (工业级)
PIC16F913/914/916/917/946-E (扩展级)
直流特性:
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +85°C (工业级)
-40°C ≤ TA ≤ +125°C (扩展级)
直流特性
参数
编号
符号
VIL
特性
最小值
典型值 † 最大值
单位
条件
输入低电压
I/O 端口:
D030
带 TTL 缓冲器
D030A
D031
0.8
V
4.5V ≤ VDD ≤ 5.5V
0.15 VDD
V
2.0V ≤ VDD ≤ 4.5V
2.0V ≤ VDD ≤ 5.5V
Vss
—
0.2 VDD
V
—
0.2 VDD
V
OSC1 (XT 模式)
VSS
—
0.3
V
OSC1 (HS 模式)
VSS
—
0.3 VDD
V
MCLR, OSC1 (RC 模式) (1)
D033
VIH
—
—
VSS
带施密特触发缓冲器
D032
D033A
Vss
Vss
输入高电压
—
I/O 端口:
D040
带 TTL 缓冲器
D040A
D041
V
4.5V ≤ VDD ≤ 5.5V
VDD
V
2.0V ≤ VDD ≤ 4.5V
2.0V ≤ VDD ≤ 5.5V
—
VDD
V
—
VDD
V
OSC1 (XT 模式)
1.6
—
VDD
V
OSC1 (HS 模式)
0.7 VDD
—
VDD
V
OSC1 (RC 模式)
0.9 VDD
—
VDD
V
—
± 0.1
±1
µA
D043
IIL
VDD
—
0.8 VDD
MCLR
D043B
—
0.25 VDD + 0.8
0.8 VDD
带施密特触发缓冲器
D042
D043A
2.0
(注 1)
输入泄漏电流 (2)
D060
I/O 端口
D061
MCLR(3)
—
± 0.1
±5
µA
VSS ≤ VPIN ≤ VDD
D063
OSC1
—
± 0.1
±5
µA
VSS ≤ VPIN ≤ VDD, XT、 HS 和
LP 振荡器配置
IPUR
PORTB 弱上拉电流
50
250
400
µA
VDD = 5.0V, VPIN = VSS
VOL
输出低电压 (5)
—
—
0.6
V
IOL = 8.5 mA, VDD = 4.5V (工
业级)
VDD – 0.7
—
—
V
IOH = -3.0 mA, VDD = 4.5V
(工业级)
D070*
D080
I/O 端口
VOH
D090
注
VSS ≤ VPIN ≤ VDD,
引脚处于高阻态
输出高电压 (5)
I/O 端口
*
†
1:
2:
3:
这些参数仅为特征值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。
在 RC 振荡器配置中, OSC1/CLKIN 引脚被配置为施密特触发器输入。在 RC 模式下,建议不要使用外部时钟。
负电流定义为引脚的拉电流。
MCLR 引脚上的泄漏电流主要取决于施加在该引脚上的电压值。规定电压值为正常工作条件下的电压值。在不同的输入
电压下可能测得更高的泄漏电流。
4: 更多信息,请参见第 13.0 节 “数据 EEPROM 和闪存程序存储器控制”。
5: 包括 CLKOUT 模式下的 OSC2。
 2007 Microchip Technology Inc.
DS41250F_CN 第 261 页
PIC16F913/914/916/917/946
19.5
PIC16F913/914/916/917/946-I (工业级)
PIC16F913/914/916/917/946-E (扩展级) (续)
直流特性:
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +85°C (工业级)
-40°C ≤ TA ≤ +125°C (扩展级)
直流特性
参数
编号
符号
特性
最小值
典型值 † 最大值
单位
条件
当外部时钟用于驱动 OSC1 时处
于 XT、 HS 和 LP 模式
输出引脚上的容性负载规范
D101*
COSC2
D101A* CIO
OSC2 引脚
—
—
15
pF
所有 I/O 引脚
—
—
50
pF
100K
1M
—
E/W
数据 EEPROM 存储器
D120
ED
字节耐久性
D120A
ED
字节耐久性
10K
100K
—
E/W
D121
VDRW
用于读 / 写操作的 VDD
VMIN
—
5.5
V
ms
-40°C ≤ TA ≤ +85°C
+85°C ≤ TA ≤ +125°C
使用 EECON1 进行读写
VMIN = 最小工作电压
D122
TDEW
擦 / 写周期
—
5
6
D123
TRETD
数据保存时间
40
—-
—
年
D124
TREF
刷新前的总擦 / 写次数 (4)
1M
10M
—
E/W
-40°C ≤ TA ≤ +85°C
D130
EP
电池耐久性
10K
100K
—
E/W
-40°C ≤ TA ≤ +85°C
D130A
ED
电池耐久性
1K
10K
—
E/W
+85°C ≤ TA ≤ +125°C
D131
VPR
用于读操作的 VDD
VMIN
—
5.5
V
VMIN = 最小工作电压
D132
VPEW
用于擦 / 写操作的 VDD
4.5
—
5.5
V
D133
TPEW
擦 / 写周期
—
—
3
ms
D134
TRETD
数据保存时间
40
—
—
年
假设没有违反其他规范
闪存程序存储器
注
假设没有违反其他规范
*
†
1:
2:
3:
这些参数仅为特征值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。
在 RC 振荡器配置中, OSC1/CLKIN 引脚被配置为施密特触发器输入。在 RC 模式下,建议不要使用外部时钟。
负电流定义为引脚的拉电流。
MCLR 引脚上的泄漏电流主要取决于施加在该引脚上的电压值。规定电压值为正常工作条件下的电压值。在不同的输入
电压下可能测得更高的泄漏电流。
4: 更多信息,请参见第 13.0 节 “数据 EEPROM 和闪存程序存储器控制”。
5: 包括 CLKOUT 模式下的 OSC2。
DS41250F_CN 第 262 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.6
散热考虑
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
特性
TH01
θJA
结点到环境的热阻
TH02
θJC
结点到外壳的热阻
TH03
TH04
TH05
TJ
结温
PD
功耗
PINTERNAL 内部功耗
TH06
TH07
PI/O
PDER
注
I/O 功耗
降额功耗
典型值
单位
条件
60.0
80.0
90.0
27.5
47.2
46.0
24.4
77.0
31.4
24.0
24.0
20.0
24.7
14.5
20.0
24.4
150
—
—
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C/W
°C
W
W
—
—
W
W
28 引脚 PDIP 封装
28 引脚 SOIC 封装
28 引脚 SSOP 封装
28 引脚 QFN 6x6 mm 封装
40 引脚 PDIP 封装
44 引脚 TQFP 封装
44 引脚 QFN 8x8mm 封装
64 引脚 TQFP 封装
28 引脚 PDIP 封装
28 引脚 SOIC 封装
28 引脚 SSOP 封装
28 引脚 QFN 6x6 mm 封装
40 引脚 PDIP 封装
44 引脚 TQFP 封装
44 引脚 QFN 8x8mm 封装
64 引脚 TQFP 封装
用于计算降额功耗
PD = PINTERNAL + PI/O
PINTERNAL = IDD x VDD
(注 1)
PI/O = S (IOL * VOL) + S (IOH * (VDD - VOH))
PDER = (TJ - TA)/qJA
(注 2 和 3)
1: IDD 为单独运行芯片而不驱动输出引脚上的任何负载的电流。
2: TA = 环境温度。
3: 最大允许功耗是绝对最大总功耗和降额功耗 (PDER)中较低的值。
 2007 Microchip Technology Inc.
DS41250F_CN 第 263 页
PIC16F913/914/916/917/946
19.7
时序参数符号
可根据以下任一格式创建时序参数符号:
1. TppS2ppS
2. TppS
T
F
T
时间
CCP1
osc
OSC1
ck
CLKOUT
rd
RD
cs
CS
rw
RD 或 WR
di
SDI
sc
SCK
do
SDO
ss
SS
dt
数据输入
t0
T0CKI
io
I/O 端口
t1
T1CKI
mc
MCLR
wr
WR
频率
小写字母 (pp)及其含意:
pp
cc
大写字母及其含意:
S
F
下降
P
周期
H
高
R
上升
I
无效 (高阻态)
V
有效
L
低
Z
高阻态
图 19-3:
负载条件
负载条件
引脚
CL
VSS
图注:
CL = 50 pF (适用于所有引脚)
15 pF (适用于 OSC2 输出引脚)
DS41250F_CN 第 264 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
19.8
交流特性:PIC16F913/914/916/917/946 (工业级,扩展级)
图 19-4:
时钟时序
Q4
Q1
Q2
Q3
Q4
Q1
OSC1/CLKIN
OS02
OS04
OS04
OS03
OSC2/CLKOUT
(LP、XT 和 HS 模式)
OSC2/CLKOUT
(CLKOUT 模式)
表 19-1:
时钟振荡器时序要求
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
OS01
符号
FOSC
特性
外部 CLKIN 频率 (1)
振荡器频率 (1)
OS02
TOSC
外部 CLKIN 周期 (1)
振荡器周期 (1)
OS03
OS04*
指令周期 (1)
TCY
TosH, 外部 CLKIN 高电平时间,
TosL
外部 CLKIN 低电平时间
OS05*
TosR, 外部 CLKIN 上升时间,
TosF
外部 CLKIN 下降时间
注
最小值 典型值 † 最大值
DC
DC
DC
DC
—
0.1
1
DC
27
250
50
50
—
250
50
250
200
2
100
20
0
0
0
—
—
—
—
32.768
—
—
—
—
—
—
—
30.5
—
—
—
TCY
—
—
—
—
—
—
37
4
20
20
—
4
20
4
∞
∞
∞
∞
—
10,000
1,000
—
DC
—
—
—
∞
∞
∞
单位
kHz
MHz
MHz
MHz
kHz
MHz
MHz
MHz
µs
ns
ns
ns
µs
ns
ns
ns
ns
µs
ns
ns
ns
ns
ns
条件
LP 振荡模式
XT 振荡模式
HS 振荡模式
EC 振荡模式
LP 振荡模式
XT 振荡模式
HS 振荡模式
RC 振荡器模式
LP 振荡模式
XT 振荡模式
HS 振荡模式
EC 振荡模式
LP 振荡模式
XT 振荡模式
HS 振荡模式
RC 振荡器模式
TCY = 4/FOSC
LP 振荡器
XT 振荡器
HS 振荡器
LP 振荡器
XT 振荡器
HS 振荡器
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。
1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时对应特定
振荡器类型的特征数据。 超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。所有器件在测试
“最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件的 “最大值”周期时限
为 “DC”(没有时钟)。
 2007 Microchip Technology Inc.
DS41250F_CN 第 265 页
PIC16F913/914/916/917/946
表 19-2:
振荡器参数
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
OS06
OS07
OS08
符号
特性
TWARM 运行时内部振荡器切换延时 (3)
故障保护采样时钟周期 (1)
TSC
HFOSC 经过校准的内部 HFINTOSC
频率 (2)
OS09* LFOSC
未经校准的内部 LFINTOSC
频率
OS10* TIOSC
HFINTOSC 振荡器从休眠模式
唤醒的起振时间
ST
注
频率
典型值
最小值
最大值
†
容差
单位
—
—
—
2
—
—
21
—
ms
条件
TOSC 最慢时钟
LFINTOSC/64
±1%
7.92
8.0
8.08
MHz
VDD = 3.5V, 25°C
±2%
7.84
8.0
8.16
MHz
2.5V ≤ VDD ≤ 5.5V,
0°C ≤ TA ≤ +85°C
±5%
7.60
8.0
8.40
MHz
2.0V ≤ VDD ≤ 5.5V,
-40°C ≤ TA ≤ +85°C (工业级),
-40°C ≤ TA ≤ +125°C (扩展级)
—
15
31
45
kHz
—
5.5
12
24
µs
VDD = 2.0V, -40°C 至 +85°C
—
3.5
7
14
µs
VDD = 3.0V, -40°C 至 +85°C
—
3
6
11
µs
VDD = 5.0V, -40°C 至 +85°C
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测
试。
1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时对应特
定振荡器类型的特征数据。 超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。 所有器件在
测试 “最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件的 “最大值”周
期时限为 “DC”(没有时钟)。
2: 为了确保振荡器频率的容差, 必须尽量靠近器件在 VDD 和 VSS 之间连接去耦电容。建议并联一个 0.1 µF 和
0.01 µF 的电容。
3: 仅供设计参考。
DS41250F_CN 第 266 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 19-5:
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
表 19-3:
CLKOUT 和 I/O 时序参数
标准工作条件 (除非另外声明)
工作温度 -40°C ≤ TA ≤ +125°C
参数
编号
OS11
OS12
符号
特性
最小值
典型
最大值 单位
值†
条件
TOSH2CKL
FOSC↑ 至 CLKOUT↓ 的时间 (1)
—
—
70
ns
VDD = 5.0V
TOSH2CKH
的时间 (1)
—
—
72
ns
VDD = 5.0V
FOSC↑ 至 CLKOUT↑
至端口输出有效的时间 (1)
OS13
TCKL2IOV
CLKOUT↓
OS14
TIOV2CKH
在 CLKOUT↑ 前端口输入有效的时间
—
—
20
ns
TOSC + 200 ns
—
—
ns
OS15*
TOSH2IOV
FOSC↑ (Q1 周期)至端口输出有效的
时间
—
50
70
ns
VDD = 5.0V
OS16
TOSH2IOI
FOSC↑ (Q2 周期)至端口输入无效的
时间 ( I/O 输入保持时间)
50
—
—
ns
VDD = 5.0V
OS17
TIOV2OSH
端口输入有效至 FOSC↑ (Q2 周期)
的时间 (I/O 输入建立时间)
20
—
—
ns
OS18
TIOR
端口输出上升时间 (2)
—
—
15
40
72
32
ns
VDD = 2.0V
VDD = 5.0V
OS19
TIOF
端口输出下降时间 (2)
—
—
28
15
55
30
ns
VDD = 2.0V
VDD = 5.0V
OS20*
TINP
INT 引脚输入高电平时间或低电平时间
25
—
—
ns
OS21*
TRAP
PORTA 电平变化中断信号的新输入电
平时间
TCY
—
—
ns
(1)
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。
注
1: 测量是在 RC 模式下进行的,其中 CLKOUT 输出为 4 x TOSC。
2: 包含 CLKOUT 模式下的 OSC2。
 2007 Microchip Technology Inc.
DS41250F_CN 第 267 页
PIC16F913/914/916/917/946
图 19-6:
复位、看门狗定时器、振荡器起振定时器和上电延时定时器时序
VDD
MCLR
30
内部
上电复位
33
PWRT
延时
32
OSC
起振时间
内部复位 (1)
看门狗定时器
复位 (1)
31
34
34
I/O 引脚
1: 低电平有效。
注
图 19-7:
欠压复位时序和特性
VDD
VBOR + VHYST
VBOR
(器件处于欠压复位状态)
37
(器件不处于欠压复位状态)
33*
欠压复位
(如果 PWRTE = 1)
欠压复位
(如果 PWRTE = 0)
DS41250F_CN 第 268 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 19-4:
复位、看门狗定时器、振荡器起振定时器、上电延时定时器以及欠压复位参数
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
特性
最小值 典型值 † 最大值 单位
条件
30
TMCL
MCLR 脉冲宽度 (低电平)
2
5
—
—
—
—
µs
µs
VDD = 5, -40°C 至 +85°C
VDD = 5V
31
TWDT
看门狗定时器超时周期 (无预
分频器)
10
10
16
16
29
31
ms
ms
VDD = 5V, -40°C 至 +85°C
VDD = 5V
32
TOST
振荡器起振定时器周期 (1, 2)
—
1024
—
TOSC (注 3)
ms
33*
TPWRT
上电延时定时器周期
40
65
140
34*
TIOZ
MCLR 低电平或看门狗定时器
复位引起的 I/O 高阻态时间
—
—
2.0
µs
35
VBOR
欠压复位电压
2.0
2.0
—
—
2.2
2.25
V
V
36*
VHYST
欠压复位迟滞
—
50
—
mV
37*
TBOR
100
—
—
µs
注
欠压复位最小检测周期
-40°C 至 +85°C (注 4)
-40°C 至 +125°C (注 4)
VDD ≤ VBOR
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经
测试。
1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时
对应特定振荡器类型的特征数据。超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。
所有器件在测试 “最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件
的 “最大值”周期时限为 “DC”(没有时钟)。
2: 仅供设计参考。
3: 慢时钟周期。
4: 为了确保振荡器频率的容差,必须尽量靠近器件在 VDD 和 VSS 之间连接去耦电容。建议并联一个 0.1 µF
和 0.01 µF 的电容。
 2007 Microchip Technology Inc.
DS41250F_CN 第 269 页
PIC16F913/914/916/917/946
图 19-8:
TIMER0 和 TIMER1 外部时钟时序
T0CKI
40
41
42
T1CKI
45
46
49
47
TMR0 或
TMR1
表 19-5:
TIMER0 和 TIMER1 外部时钟要求
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
TT0H
40*
41*
TT0L
特性
T0CKI 高电平脉冲宽度
T0CKI 低电平脉冲宽度
最小值
典型值
†
最大值
单位
ns
无预分频器
0.5 TCY + 20
—
—
有预分频器
10
—
—
ns
无预分频器
0.5 TCY + 20
—
—
ns
有预分频器
10
—
—
ns
取以下两者中
的较大值:
20 或 TCY + 40
N
—
—
ns
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
—
32.768
—
kHz
2 TOSC
—
7 TOSC
—
46*
TT1L
47*
TT1P
48
FT1
49*
TCKEZTMR1 从外部时钟边沿到定时器递增的延时
*
†
T1CKI 输入
周期
Timer1 振荡器输入频率范围
(通过将 T1OSCEN 位置 1,使能振荡器)
条件
N = 预分频比 (2,
4, ..., 256)
N = 预分频比 (1、
2、 4 和 8)
定时器处于同步工
作模式
这些参数仅为特征值,未经测试。
除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。
DS41250F_CN 第 270 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 19-6:
比较器规范
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
特性
最小值
典型值
†
最大值
单位
CM01
VOS
输入失调电压
—
± 5.0
± 10
mV
CM02
VCM
输入共模电压
0
—
VDD – 1.5
V
CM03* CMRR
共模抑制比
CM04* TRT
响应时间
下降
上升
CM05* TMC2COV 比较器模式改变到输出有效的时
间
注
+55
—
—
dB
—
150
600
ns
—
200
1000
ns
—
—
10
ms
备注
(VDD - 1.5)/2
(注 1)
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经
测试。
1:响应时间是在比较器一个输入端的电压从 (VDD - 1.5)/2 - 100 mV 变化到 (VDD - 1.5)/2 + 20 mV 的过程中测
得的。
表 19-7:
比较器参考电压 (CVREF)规范
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
特性
最小值
典型值
†
最大值
单位
备注
CV01*
CLSB
步长 (2)
—
—
VDD/24
VDD/32
—
—
V
V
低电压范围 (VRR = 1)
高电压范围 (VRR = 0)
CV02*
CACC
绝对精度
—
—
—
—
± 1/2
± 1/2
LSb
LSb
低电压范围 (VRR = 1)
高电压范围 (VRR = 0)
CV03*
CR
单位电阻值 (R)
—
2k
—
Ω
CST
稳定时间 (1)
—
—
10
ms
CV04*
注
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参
考,未经测试。
1:稳定时间是在 VRR = 1 且 VR<3:0> 从 0000 跳变到 1111 时测得的。
2: 更多信息,请参见第 8.10 节 “比较器参考电压”。
 2007 Microchip Technology Inc.
DS41250F_CN 第 271 页
PIC16F913/914/916/917/946
表 19-8:
PIC16F913/914/916/917/946 A/D 转换器 (ADC)特性
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
最小值 典型值 †
特性
最大值
单位
条件
AD01
NR
分辨率
—
—
AD02
EIL
积分误差
—
—
10 位
±1
AD03
EDL
微分误差
—
—
±1
LSb 不丢失编码至 10 位
VREF = 5.12V
AD04
EOFF
失调误差
—
—
±1
LSb VREF = 5.12V
AD07
EGN
增益误差
—
—
±1
LSb VREF = 5.12V
参考电压 (1)
2.2
2.7
—
VDD
VDD
V
VSS
—
VREF
V
—
—
10
kΩ
10
—
1000
µA
在 VAIN 采集期间。
基于 VHOLD 对 VAIN 的微分。
—
—
50
µA
在 A/D 转换期间。
AD06 VREF
AD06A
AD07
VAIN
满量程范围
AD08
ZAIN
模拟电压源推荐阻抗
AD09* IREF
注
VREF 输入电流
(1)
位
LSb VREF = 5.12V
绝对最小值以确保 1 LSb 精度
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试。
1:ADC VREF 来自选作参考输入引脚的外部 VREF 或 VDD 引脚。
DS41250F_CN 第 272 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 19-9:
PIC16F913/914/916/917/946 A/D 转换要求
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
AD130* TAD
特性
A/D 时钟周期
A/D 内部 RC 振荡器周期
AD131 TCNV
转换时间 (不包括采集
时间) (1)
最小
值
典型值 †
最大
值
单位
1.6
—
9.0
µs
基于 TOSC, VREF ≥ 3.0V
3.0
—
9.0
µs
基于 TOSC, VREF 满量程
3.0
6.0
9.0
µs
ADCS<1:0> = 11 (ADRC 模式)
当 VDD = 2.5V 时
1.6
4.0
6.0
µs
当 VDD = 5.0V 时
—
11
—
TAD
将 A/D 结果寄存器中的 GO/DONE 位
设置为新的数据
11.5
—
µs
AD132* TACQ 采集时间
AD133* TAMP 放大器稳定时间
—
—
5
µs
AD134 TGO
—
TOSC/2
—
—
—
TOSC/2 + TCY
—
—
注
Q4 至 A/D 时钟启动的时
间
条件
如果选择 RC 作为 A/D 时钟源,在
A/D 时钟开始前要加上一个 TCY 时
间,用于执行 SLEEP 指令。
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经
测试。
1:在下一个 TCY 周期读 ADRESH 和 ADRESL 寄存器。
2: 最小条件请参见第 12.3 节 “A/D 采集要求”。
 2007 Microchip Technology Inc.
DS41250F_CN 第 273 页
PIC16F913/914/916/917/946
图 19-9:
PIC16F913/914/916/917/946 A/D 转换时序 (正常模式下)
BSF ADCON0, GO
AD134
1 TCY
(TOSC/2(1))
AD131
Q4
AD130
A/D 时钟
9
A/D 数据
8
6
7
3
2
1
0
新数据
旧数据
ADRES
1 TCY
ADIF
GO
采样
DONE
停止采样
AD132
1: 如果选择 RC 作为 A/D 时钟源,在 A/D 时钟开始前要加上一个 TCY 时间,用于执行 SLEEP 指令。
注
图 19-10:
PIC16F913/914/916/917/946 A/D 转换时序 (休眠模式下)
BSF ADCON0,GO
AD134
(TOSC/2 + TCY(1))
1 TCY
AD131
Q4
AD130
A/D 时钟
9
A/D 数据
8
7
6
GO
注
1
0
1 TCY
ADIF
采样
2
新数据
旧数据
ADRES
3
DONE
AD132
停止采样
1: 如果选择 RC 作为 A/D 时钟源,在 A/D 时钟开始前要加上一个 TCY 时间,用于执行 SLEEP 指令。
DS41250F_CN 第 274 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 19-11:
USART 同步发送 (主 / 从模式)时序
RC6/TX/CK
SCK/SCL/SEG9
121
121
RC7/RX/DT/
SDI/SDA/SEG8
120
122
注:
负载条件请参见图 19-3。
表 19-10:
USART 同步发送要求
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
符号
120
121
122
特性
最小值
最大值
单位
TCKH2DTV 同步发送 (主和从模式)
时钟高电平到数据输出有效的时间
3.0-5.5V
—
80
ns
2.0-5.5V
—
100
ns
TCKRF
时钟输出上升和下降时间
(主模式)
3.0-5.5V
—
45
ns
2.0-5.5V
—
50
ns
数据输出上升和下降时间
3.0-5.5V
—
45
ns
2.0-5.5V
—
50
ns
最小值
最大值
单位
10
—
ns
15
—
ns
TDTRF
图 19-12:
条件
USART 同步接收 (主 / 从模式)时序
RC6/TX/CK
SCK/SCL/SEG9
125
RC7/RX/DT/
SDI/SDA/SEG8
126
注:负载条件请参见图 19-3。
表 19-11:
USART 同步接收要求
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
参数
编号
125
126
符号
特性
TDTV2CKL 同步接收 (主和从模式)
在 CK ↓ 之前的数据保持时间 ( 数据保持
时间)
TCKL2DTL 在 CK ↓ 之后的数据保持时间 ( 数据保持
时间)
 2007 Microchip Technology Inc.
条件
DS41250F_CN 第 275 页
PIC16F913/914/916/917/946
图 19-13:
捕捉 / 比较 /PWM 时序
CCP1/CCP2
(捕捉模式)
50
51
52
CCP1/CCP2
(比较模式)
53
54
注: 负载条件请参见图 19-3。
表 19-12:
捕捉 / 比较 /PWM 模块 (CCP)要求
参数
编号
符号
50*
TCCL CCPx
输入低电平时
间
无预分频器
TCCH CCPx
输入高电平时
间
无预分频器
51*
特性
最小值
有预分频器
3.0-5.5V
2.0-5.5V
有预分频器
典型 最大
值†
值
单位 条件
0.5Tcy + 5
—
—
ns
10
—
—
ns
20
—
—
ns
0.5TCY +5
—
—
ns
3.0-5.5V
10
—
—
ns
2.0-5.5V
20
—
—
ns
3TCY + 40
N
—
—
ns
—
10
25
ns
52*
TCCP CCPx 输入周期
53*
TCCR CCPx 输出上升时间
3.0-5.5V
2.0-5.5V
—
25
50
ns
54*
TCCF CCPx 输出下降时间
3.0-5.5V
—
10
25
ns
2.0-5.5V
—
25
45
ns
N = 预分频比
(1、 4 或 16)
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试
DS41250F_CN 第 276 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
表 19-13:
PIC16F913/914/916/917/946 PLVD 特性:
标准工作条件 (除非另外声明)
工作温度
-40°C ≤ TA ≤ +125°C
工作电压
VDD 范围 2.0V 到 5.5V
直流特性
符号
VPLVD
最小值
典型值
最大值
(85°C)
最大值
(125°C)
单位
LVDL<2:0> = 001
1.900
2.0
2.100
2.125
V
LVDL<2:0> = 010
2.000
2.1
2.200
2.225
V
LVDL<2:0> = 011
2.100
2.2
2.300
2.325
V
LVDL<2:0> = 100
2.200
2.3
2.400
2.425
V
LVDL<2:0> = 101
3.825
4.0
4.175
4.200
V
LVDL<2:0> = 110
4.025
4.2
4.375
4.400
V
LVDL<2:0> = 111
4.425
4.5
4.675
4.700
V
—
50
25
—
—
µs
特性
PLVD
电压
*TPLVDS PLVD 稳定时间
条件
VDD = 5.0V
VDD = 3.0V
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未
经测试。
 2007 Microchip Technology Inc.
DS41250F_CN 第 277 页
PIC16F913/914/916/917/946
图 19-14:
SPI 主模式时序 (CKE = 0, SMP = 0)
SS
70
SCK
(CKP = 0)
71
72
78
79
79
78
SCK
(CKP = 1)
80
bit 6 - - - - - -1
MSb
SDO
LSb
75,76
SDI
MSb 输入
bit 6 - - - -1
LSb 输入
74
73
注:负载条件请参见图 19-3。
图 19-15:
SPI 主模式时序 (CKE = 1, SMP = 1)
SS
81
SCK
(CKP = 0)
71
72
79
73
SCK
(CKP = 1)
80
78
SDO
bit 6 - - - - - -1
MSb
LSb
75,76
SDI
MSb 输入
bit 6 - - - - - -1
LSb 输入
74
注:负载条件请参见图 19-3。
DS41250F_CN 第 278 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 19-16:
SPI 从模式时序 (CKE = 0)
SS
70
SCK
(CKP = 0)
83
71
72
78
79
79
78
SCK
(CKP = 1)
80
MSb
SDO
LSb
bit 6 - - - - - -1
77
75,76
SDI
MSb 输入
bit 6 - - - -1
LSb 输入
74
73
注:负载条件请参见图 19-3。
图 19-17:
SPI 从模式时序 (CKE = 1)
82
SS
SCK
(CKP = 0)
70
83
71
72
SCK
(CKP = 1)
80
MSb
SDO
bit 6 - - - -1
LSb
75,76
SDI
MSb 输入
77
bit 6 - - - -1
LSb 输入
74
注:负载条件请参见图 19-3。
 2007 Microchip Technology Inc.
DS41250F_CN 第 279 页
PIC16F913/914/916/917/946
表 19-14:
参数
编号
SPI 模式要求
符号
特性
最小值
典型值
最大值 单位
†
TCY
—
—
ns
SCK 输入高电平时间 (从模式)
TCY + 20
—
—
ns
SCK 输入低电平时间 (从模式)
TCY + 20
—
—
ns
TDIV2SCH, SDI 数据输入到 SCK 边沿的建立时间
TDIV2SCL
100
—
—
ns
74*
TSCH2DIL, SDI 数据输入到 SCK 边沿的保持时间
TSCL2DIL
100
—
—
ns
75*
TDOR
—
10
25
ns
76*
TDOF
SDO 数据输出下降时间
77*
TSSH2DOZ
SS↑ 至 SDO 输出高阻态的时间
78*
TSCR
79*
TSCF
70*
TSSL2SCH, SS↓ 至 SCK↓ 或 SCK↑ 输入的时间
TSSL2SCL
71*
TSCH
72*
TSCL
73*
SDO 数据输出上升时间
3.0-5.5V
2.0-5.5V
SCK 输出上升时间 (主模式)
3.0-5.5V
2.0-5.5V
SCK 输出下降时间 (主模式)
TSCH2DOV SCK 边沿后 SDO 数据输出有
效的时间
,
TSCL2DOV
80*
—
25
50
ns
—
10
25
ns
10
—
50
ns
—
10
25
ns
—
25
50
ns
—
10
25
ns
3.0-5.5V
—
—
50
ns
2.0-5.5V
—
—
145
ns
81*
TDOV2SCH SDO 数据输出建立到 SCK 边沿的时间
,
TDOV2SCL
Tcy
—
—
ns
82*
TSSL2DOV
SS↓ 沿后 SDO 数据输出有效的时间
—
—-
50
ns
83*
TSCH2SSH
,
TSCL2SSH
在 SCK 边沿之后 SS ↑ 的时间
1.5TCY + 40
—
—
ns
条件
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经
测试。
I2C™ 总线起始位 / 停止位时序
图 19-18:
SCL
91
90
93
92
SDA
启动
状态
停止
状态
注:负载条件请参见图 19-3。
DS41250F_CN 第 280 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
I2C™ 总线起始位 / 停止位要求
表 19-15:
参数
编号
符号
90*
TSU:STA
启动条件建立时间 400 kHz 模式
600
—
91*
THD:STA
启动条件保持时间 400 kHz 模式
600
92*
TSU:STO
停止条件建立时间 400 kHz 模式
THD:STO 停止条件保持时间 400 kHz 模式
93
*
特性
最小值
典型值 最大值
单位
条件
—
ns
仅与重复启动条件相关
—
—
ns
这个周期之后,产生第
一个时钟脉冲
600
—
—
ns
600
—
—
ns
这些参数仅为特征值,未经测试。
图 19-19:
I2C™ 总线数据时序
103
102
100
101
SCL
90
106
107
91
92
SDA
输入
109
109
110
SDA
输出
注:负载条件请参见图 19-3。
 2007 Microchip Technology Inc.
DS41250F_CN 第 281 页
PIC16F913/914/916/917/946
I2C™ 总线数据要求
表 19-16:
参数
编号
100*
符号
THIGH
特性
时钟高电平时间
400 kHz 模式
SSP 模块
101*
TLOW
时钟低电平时间
400 kHz 模式
SSP 模块
注
最小值
最大值
单位
条件
0.6
—
µs
器件工作频率不得低于 10 MHz
1.5TCY
—
µs
器件工作频率不得低于 10 MHz
1.3
—
1.5TCY
—
102*
TR
SDA 和 SCL 上升时间 400 kHz 模式
20 + 0.1CB
250
ns
CB 值被指定为 10-400 pF
103*
TF
SDA 和 SCL 下降时间 400 kHz 模式
20 + 0.1CB
250
ns
CB 值被指定为 10-400 pF
90*
TSU:STA
启动条件建立时间
400 kHz 模式
1.3
—
µs
仅与重复启动条件相关
91*
THD:STA
启动条件保持时间
400 kHz 模式
0.6
—
µs
这个周期之后,产生第一个时
钟脉冲
106*
THD:DAT
数据输入保持时间
400 kHz 模式
0
0.9
µs
107*
TSU:DAT
数据输入建立时间
400 kHz 模式
100
—
ns
92*
TSU:STO
停止条件建立时间
400 kHz 模式
0.6
—
µs
109*
TAA
时钟输出有效时间
400 kHz 模式
—
—
ns
(注 1)
110*
TBUF
总线空闲时间
400 kHz 模式
1.3
—
µs
在新的传输开始前总线必须保
持空闲的时间
CB
总线容性负载
—
400
pF
(注 2)
* 这些参数仅为特征值,未经测试。
1: 为避免产生意外的启动或停止条件,作为发送器的器件必须提供这个内部最小延时以补偿 SCL 下降沿的未定义区域 (最
小值 300 ns)。
2: 快速模式 (400 kHz)的 I2C 总线器件也可在标准模式 (100 kHz)的 I2C 总线系统中使用,但必须满足 TSU:DAT ≥ 250 ns
的要求。如果快速模式器件没有延长 SCL 信号的低电平时间,则必然满足此条件。如果该器件延长了 SCL 信号的低电
平时间,其下一个数据位必须输出到 SDA 线, SCL 线被释放前, TR max. + TSU:DAT = 1000 + 250 = 1250 ns (根据标准
模式 I2C 总线规范)。
DS41250F_CN 第 282 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
20.0
DC 和 AC 特性图表
本节提供的图表仅供设计参考,未经测试。
某些图表中的数据超出了规定的工作范围(即超出了规定的 VDD 范围)。这些图表仅供参考,器件只有在规定的范围下
工作才可以确保正常运行。
注:
在本注释后面的图表是基于有限数量样本的统计结果,仅供参考。 此处列出的性能特性未经测试,不作任何
担保。有些图表中列出的数据超出了规定的工作范围(例如,超出了规定的电源范围),因此不在担保范围
内。
“典型值”表示 25°C 下的平均值,“最大值”和 “最小值”分别表示在整个温度范围内的 (平均值 + 3σ)
或 (平均值 - 3σ),其中 σ 表示标准偏差。
IDD(mA)
图 20-1:
不同 VDD 时典型
IDD 与
(EC
典型
2V
3V
4V FOSC 的关系曲线
5V
5.5V 模式)
EC 模式 0.277
1Mhz
0.086
0.153
0.220
0.310
2Mhz
0.150
0.2596
0.3718
0.4681
0.5236
4Mhz
0.279
0.472
0.675
0.850
0.951
4.0
6Mhz
0.382
0.635
0.903
1.135
1.269
8Mhz 典型值 : 统计平均值
0.486 (25°C0.798
1.132
1.420
1.587
时)
10Mhz 最大值 :平均值
0.589
0.961
1.360
1.706
1.905
(最差情况下的温度)
+
3σ
3.5
12Mhz
0.696
1.126
1.596
2.005
2.241
(-40°C 至 125°C)
14Mhz
0.802
1.291
1.832
2.304
2.577
16Mhz
0.908
1.457
2.068
2.603
2.913
3.0
18Mhz
1.017
1.602
2.268
2.848
3.185
20Mhz
1.126
1.748
2.469
3.093
3.458
2.5
最大值2.0
1Mhz
2Mhz
4Mhz
1.5
6Mhz
8Mhz
1.0
10Mhz
12Mhz
14Mhz
0.5
16Mhz
18Mhz
20Mhz
0.0
1 MHz
2V
0.168
0.261
0.449
0.577
0.705
0.833
0.956
1.078
1.201
1.305
1.409
2 MHz
3V
0.236
0.394
0.710
0.972
1.233
1.495
1.711
1.926
2.142
2.326
2.510
4 MHz
6 MHz
4V
0.315
0.537
0.981
1.331
1.682
2.032
2.372
2.713
3.054
3.295
3.536
8 MHz
5V
0.412
0.704
1.287
1.739
2.191
2.642
3.101
3.560
4.018
4.324
4.630
10 MHz
5.5V
5V
4V
5.5V
0.452
0.780
1.435
1.950
2.465
2.979
3.506
4.032
4.558
4.887
12 MHz
3V
2V
14 MHz
16 MHz
18 MHz
20 MHz
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 283 页
PIC16F913/914/916/917/946
图 20-2:
不同 VDD 时最大 IDD 与 FOSC 的关系曲线 (EC 模式)
6.0
5.0
5.5V
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
5V
IDD(mA)
4.0
4V
3.0
3V
2.0
2V
1.0
0.0
1 MHz
2 MHz
4 MHz
6 MHz
8 MHz
10 MHz
12 MHz
14 MHz
16 MHz
18 MHz
20 MHz
VDD(V)
不同 VDD 时典型 IDD 与 FOSC 的关系曲线 (HS 模式)
图 20-3:
HS 模式
5.0
4.5
4.0
典型值 : 统计平均值(25°C)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
5.5V
5V
4.5V
IDD(mA)
3.5
3.0
2.5
2.0
1.5
1.0
3V
3.5V
4V
4.5V
5V
5.5V
0.567660978 0.6909750.8211857610.9883470541.0462473761.119615457
1.1610564131.4069334781.6664380432.0030751092.1193190652.268818804
4V 2.883088587 3.03554863
3.23775
3.5V 3.74139 3.967407543
3V
0.5
0.0
4 MHz
10 MHz
16 MHz
20 Mhz
FOSC
DS41250F 第284 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-4:
不同 VDD 时最大 IDD 与 FOSC
的关系曲线 (HS 模式)
HS 模式
5.5
5.0
4.5
4.0
5.5V
5V
4.5V
典型值
: 统计平均值
(25°C 时)4V
3V
3.5V
4.5V
5V
5.5V
最大值0.8868608641.0693043161.2645617521.4868166111.5076394231.520959608
: 平均值(最差情况下的温度)+ 3σ
1.6176371031.9623642592.3355493582.7630868222.8139211682.849632041
(-40°C
至 125°C)
3.8375797553.9157601913.967889512
4.685048474 4.78069621
IDD(mA)
3.5
3.0
2.5
4V
2.0
3.5V
3V
1.5
1.0
0.5
0.0
4 MHz
10 MHz
16 MHz
20 MHz
FOSC
不同 FOSC 时典型 IDD 与 VDD 的关系曲线 (XT 模式)
图 20-5:
XT 模式
1,200
1,000
2
2.5
典型值:统计平均值 @25°C
180.1774
235.0683
最大值:意味
(最坏情况温度)
+3
382.484
(-40°C 283.7333
至 125°C)
3
3.5
4
4.5
5
5.5
典型值 : 统计平均值(25°C
时)
289.9592
337.753 385.547 436.866 488.184 554.8964
最大值 : 平均值(最差情况下的温度)
+ 3σ 674.6106 783.831 893.052 1033.15
481.2347 577.923
(-40°C 至 125°C)
Vdd
2
2.5
3
3.5
4
4.5
5
5.5
244.8837 320.7132 396.5426 461.707 526.8719 587.642 648.412 724.0755
375.529 522.3721 669.2152 822.619 976.0232 1163.67 1351.32
IDD(uA)
800
4 MHz
600
400
1 MHz
200
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 285 页
PIC16F913/914/916/917/946
图 20-6:
不同 FOSC 时最大 IDD 与 VDD 的关系曲线 (XT 模式)
XT 模式
1,800
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
1,600
1,400
IDD(uA)
1,200
1,000
4 MHz
800
600
1 MHz
400
200
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
5.0
5.5
VDD(V)
图 20-7:
不同 FOSC 时典型 IDD 与 VDD 的关系曲线 (EXTRC 模式)
(EXTRC 模式)
1,800
1,600
典型值 : 统计平均值(25°C)
最大值: 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
1,400
IDD(uA)
1,200
4 Mhz
1,000
800
1 Mhz
600
400
200
0
2.0
2.5
3.0
3.5
4.0
4.5
VDD(V)
DS41250F 第286 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-8:
最大 IDD 与 VDD 的关系曲线 (EXTRC 模式)
2,000
1,800
1,600
典型值
:
(25°C
时)
典型值
:统计平均值
统计平均值
@25°C
最大值
:平均值
意味(最坏情况温度)
+ 3 + 3σ
最大值
:
(最差情况下的温度)
(-40°C 至 125°C)
(-40°C 至 125°C)
IDD(uA)
1,400
4 Mhz
1,200
1,000
800
1 Mhz
600
400
200
0
2.0
2.5
3.0
4.0
3.5
4.5
5.0
5.5
VDD(V)
不同 FOSC 时 IDD 与 VDD 的关系曲线 (LFINTOSC 模式, 31 kHz)
图 20-9:
LFINTOSC 模式,31KHZ
80
70
典型值 : 统计平均值(25°C)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
IDD(µA)
60
50
最大值
40
30
典型值
20
10
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 287 页
PIC16F913/914/916/917/946
图 20-10:
IDD 与 VDD 的关系曲线 (LP 模式)
80
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
70
IDD(uA)
60
50
最大值 32 kHz
40
30
典型值 32 kHz
20
10
0
2.0
3.0
2.5
4.0
3.5
5.0
4.5
5.5
VDD(V)
不同 VDD 时典型 IDD 与 FOSC 的关系曲线 (HFINTOSC 模式)
图 20-11:
4V
2,500
IDD(uA)
2,000
HFINTOSC
5V
5.5V
197.9192604299.82617 395.019 496.999 574.901
210.9124688
典型值
:统计平均值
统计平均值
@25°C324.4079 431.721 544.182 620.66
典型值
:
(25°C)
最大值: 意味(最坏情况温度)
+3
239.9707708369.77809
491.538 623.314 717.723
最大值
: 平均值
(最差情况下的温度)
+ 3σ
(-40°C
至 125°C)
298.6634479460.30461 619.714 793.635 901.409
(-40°C 至 125°C)
414.3997292639.99889 878.13 1127.53 1275.6
649.86985881014.4002 1421.21 1858.97 2097.71
5.5V
5V
1,500
4V
3V
1,000
2V
500
2V
3V
4V
5V
5.5V
0
125 kHz
25 kHz
500 kHz
1 MHz
2 MHz
4 MHz
8 MHz
VDD(V)
DS41250F 第288 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-12:
不同 VDD 时最大 IDD 与 FOSC 的关系曲线 (HFINTOSC 模式)
HFINTOSC
3,000
2,500
5.5V
典型值 : 统计平均值(25°C)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
5V
IDD(uA)
2,000
4V
1,500
3V
1,000
2V
500
0
125 kHz
250 kHz
500 kHz
1 MHz
2 MHz
4 MHz
8 MHz
VDD(V)
图 20-13:
典型 IPD 与 VDD 的关系曲线 (休眠模式,禁止所有外设)
典型
(休眠模式下禁止所有外设)
0.45
0.40
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
0.35
IPD(uA)
0.30
0.25
0.20
0.15
0.10
0.05
0.00
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 289 页
PIC16F913/914/916/917/946
图 20-14:
最大 IPD 与 VDD 的关系曲线 (休眠模式,禁止所有外设)
最大值
(休眠模式下禁止所有外设)
18
16
典型值 : 统计平均值(25°C 时)
最大值
3s
最大值:
:Mean
平均值+(最差情况下的温度)
+ 3σ
(-40°C 至 125°C)
14
最大值 125°C
IPD(µA)
12
10
8
6
4
最大值 85°C
2
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
比较器使能的情况下 IPD 与 VDD 的关系曲线 (使能两个比较器)
图 20-15:
180
160
140
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
IPD(uA)
120
最大值
100
80
典型值
60
典型
最大值
31.9 40 43.9
45.6
60.8
59.3 20 77.7
73.0
95.8
86.7 113.8
0
100.4 131.8
114.1 149.9 2.0
127.7
DS41250F 第290 页
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-16:
欠压复位使能情况下不同温度时 IPD 与 VDD 的关系曲线
180
160
典型值: 统计平均值(25°C)
最大值 :平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
140
IPD(uA)
120
100
80
60
40
最大值
2.5
3
3.5
4
4.5
5
5.5
典型
35.0
44.4
56.2
68.1
79.9
91.7
104.1
最大值
51.1
65.0
82.5
100.0
117.5
135.1
典型值
20
0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-17:
WDT 使能的情况下典型 IPD 与 VDD 的关系曲线 (25°C)
3.0
2.5
IPD(uA)
2.0
1.5
典型值典型
: 统计平均值最大温度
(25°C 时)
85°C
最大温度 125°C
2 1.007
2.140
27.702
2.5 1.146
2.711
29.079
3 1.285
3.282
30.08
3.5 1.449
3.899
31.347
4 1.612
4.515
32.238
4.5 1.924
5.401
33.129
5 2.237
6.288
34.02
5.5 2.764
7.776
1.0
0.5
0.0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 291 页
PIC16F913/914/916/917/946
图 20-18:
WDT 使能的情况下不同温度时最大 IPD 与 VDD 的关系曲线
40.0
35.0
最大值
: 平均值
+3
最大值
:平均值
+ 3σ
最大值 125°C
30.0
IPD(uA)
25.0
20.0
15.0
10.0
最大值 85°C
5.0
0.0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-19:
不同温度时 WDT 周期与 VDD 的关系曲线
WDT 超时周期
32
30
最大值:平均值 + 3σ (-40°C 至 125°C)
28
最大值(125°C)
26
最大值(85°C)
时间(ms)
24
22
20
典型值
18
16
14
最小值
12
10
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
DS41250F 第292 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-20:
WDT 周期与温度的关系曲线 (VDD = 5.0V)
Vdd = 5V
30
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
28
26
最大值
时间(ms)
24
22
20
典型值
18
16
最小值
14
12
10
-40°C
25°C
85°C
125°C
温度(°C)
不同温度时 CVREF IPD 与 VDD 的关系曲线 (高电压范围)
图 20-21:
高量程
IPD(uA)
140 最大温度 85°C
最大温度 125°C
35.8 : 统计平均值
68.0
典型值
(25°C 时)
44.8 : 平均值
77.3(最差情况下的温度)+ 3σ
最大值
120
53.8
86.5
(-40°C 至 125°C)
62.8
94.3
71.8
102.1
81.0
109.8
100
最大值 125°C
90.1
117.6
99.2
125.1
80
最大值 85°C
60
典型值
40
20
最大温度 85°C
最大温度 125°C
46.5
86.4
58.3
98.1
70.0
109.9
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 293 页
PIC16F913/914/916/917/946
图 20-22:
不同温度时 CVREF IPD 与 V
DD 的关系曲线 (低电压范围)
低量程
180
160
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
140
最大值 125°C
IPD(uA)
120
100
最大值 85°C
80
典型值
60
40
20
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
4.5V
5V
5.5V
VDD(V)
不同温度时 LVD IPD 与 VDD 的关系曲线
图 20-23:
80
70
典型值 : 统计平均值(25°C 时)
最大值: 平均值 + 3σ
最大值 125°C
60
IPD(uA)
50
最大值 85°C
40
30
典型值
20
10
0
2.0V
2.5V
3.0V
3.5V
4.0V
VDD(V)
DS41250F 第294 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-24:
不同温度时 T1OSC IPD 与 VDD 的关系曲线 (32 kHz)
30
25
典型值 : 统计平均值(25°C 时)
最大值: 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
最大值 125°C
IPD(uA)
20
15
10
5
2
2.5
3
3.5
4
4.5
5
5.5
典型值 25°C最大温度 85°C
最大温度 125°C
2.022
4.98
17.54
2.247
5.23
19.02
2.472
5.49
20.29
2.453
5.79
21.50
最大值 85°C
2.433
6.08
22.45
2.711
6.54
23.30
2.989
7.00
24.00
3.112
7.34
典型值 25°C
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-25:
不同温度时 VOL 与 IOL 的关系曲线 (VDD = 3.0V)
(VDD = 3V,-40°C 至 125°C)
0.8
0.7
典型值 : 统计平均值(25°C 时)
最大值 : 平均值 + 3σ
最大值 125°C
0.6
VOL(V)
0.5
最大值 85°C
0.4
典型值 25°C
0.3
0.2
最小值 -40°C
0.1
0.0
5.0
5.5
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
IOL(mA)
2007 Microchip Technology Inc.
DS41250F 第 295 页
PIC16F913/914/916/917/946
图 20-26:
不同温度时 VOL 与 IOL 的关系曲线 (VDD = 5.0V)
0.45
典型值 : 统计平均值(25°C 时)
典型值
: 统计平均值
最大值
: 平均值
+ 3σ
最大值: 平均值 + 3
0.40
最大值 125°C
0.35
最大值 85°C
VOL(V)
0.30
0.25
典型值 25°C
0.20
0.15
最小值 -40°C
0.10
0.05
0.00
5.0
5.5
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
IOL(mA)
不同温度时 VOH 与 IOH 的关系曲线 (VDD = 3.0V)
图 20-27:
3.5
3.0
最大值 -40°C
典型值 25°C
2.5
VOH(V)
最小值 125°C
2.0
1.5
1.0
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
0.5
0.0
0.0
-0.5
-1.0
-1.5
-2.0
-2.5
-3.0
-3.5
-4.0
IOH(mA)
DS41250F 第296 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-28:
不同温度时 VOH 与 IOH 的关系曲线 (VDD = 5.0V)
5.5
5.0
最大值 -40°C
典型值 25°C
VOH(V)
4.5
最小值 125°C
4.0
3.5
典型值 : 统计平均值(25°C 时)
最大值: 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
3.0
0.0
-0.5
-1.0
-1.5
-2.0
-2.5
-3.0
-3.5
-4.0
-4.5
-5.0
IOH(mA)
图 20-29:
不同温度时 TTL 输入门限电压 VIN 与 VDD 的关系曲线
(TTL 输入, -40°C 至 125°C)
1.7
1.5
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
最大值 -40°C
VIN(V)
1.3
典型值 25°C
1.1
最小值 125°C
0.9
0.7
0.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 297 页
PIC16F913/914/916/917/946
图 20-30:
不同温度时施密特触发器输入门限电压 VIN 与 VDD 的关系曲线
(施密特输入,-40°C 至 125°C)
4.0
VIH 最大值 125°C
典型值: 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
3.5
VIH 最小值 -40°C
VIN(V)
3.0
2.5
2.0
VIL 最大值 -40°C
1.5
VIL 最小值 125°C
1.0
0.5
2.0
图 20-31:
4
5.5
1,000
2.5
3.0
3.5
4.0
VDD(V)
4.5
5.0
5.5
比较器响应时间
(上升沿)
200
278
639
846
V+ INPUT
140
202 = VCM
531
V- input = 从 VCM + 100MV 到 VCM - 20MV ²¢ÀÕ
900
800
最大值(125°C)
响应时间(nS)
700
600
注:
500
VCM = (VDD - 1.5V)/2
V+ 输入 = VCM
V- 输入 = 从 VCM + 100MV 跳变至 VCM - 20MV
最大值(85°C)
400
300
典型值 (25°C)
200
最小值(-40°C)
100
0
2.0
2.5
4.0
5.5
VDD(V)
DS41250F 第298 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-32:
Vdd
比较器响应时间 (下降沿)
-40°C 25°C 85°C 125°C
2
279
327
547
557
600
2.5
226
267
425
440
4
172
204
304
319
5.5
119
142
182
500
响应时间(nS)
400
300
最大值(125°C)
最大值(85°C)
200
注:
100
VCM = (VDD - 1.5V)/2
V+ 输入 = VCM
V- 输入 = 从 VCM -100MV 跳变至 VCM +20MV
典型值 (25°C)
最小值(-40°C)
0
2.0
2.5
4.0
5.5
VDD(V)
不同温度时 LFINTOSC 频率与 VDD 的关系曲线 ( 31 kHz)
图 20-33:
LFINTOSC 31Khz
45,000
40,000
最大值 -40°C
35,000
典型值 25°C
频率(Hz)
30,000
25,000
20,000
最小值 85°C
最小值 125°C
15,000
10,000
典型值 : 统计平均值(25°C 时)
最大值: 平均值(最差情况下的温度)+ 3σ
5,000
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 299 页
PIC16F913/914/916/917/946
图 20-34:
不同温度时 ADC 时钟周期与 VDD 的关系曲线
8
典型值 : 统计平均值(25°C 时)
最大值: 平均值(最差情况下的温度)+ 3σ
(-40°C 至 125°C)
125°C
时间(µs)
6
85°C
25°C
4
-40°C
2
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-35:
不同温度时典型 HFINTOSC 起振时间与 VDD 的关系曲线
16
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
14
85°C
12
25°C
时间(µs)
10
-40°C
8
6
4
2
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
DS41250F 第300 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-36:
不同温度时最大 HFINTOSC 起振时间与 VDD 的关系曲线
-40C 至 +85C
25
典型值 : 统计平均值(25°C 时)
最大值: 平均值(最差情况下的温度)+ 3σ
时间(µs)
20
15
85°C
25°C
10
-40°C
5
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-37:
不同温度时最小 HFINTOSC-40C
起振时间与
至 +85C VDD 的关系曲线
10
9
典型值 : 统计平均值(25°C 时)
最大值 : 平均值(最差情况下的温度)+ 3σ
8
时间(µs)
7
85°C
6
25°C
5
-40°C
4
3
2
1
0
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 301 页
PIC16F913/914/916/917/946
图 20-38:
典型 HFINTOSC 频率变化与 VDD 的关系曲线 (25°C)
频率相对于校准值的偏差(%)
5
4
3
2
1
0
-1
-2
-3
-4
-5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 20-39:
典型 HFINTOSC 频率变化与 VDD 的关系曲线 (85°C)
频率相对于校准值的偏差(%)
5
4
3
2
1
0
-1
-2
-3
-4
-5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
DS41250F 第302 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
图 20-40:
典型 HFINTOSC 频率变化与 VDD 的关系曲线 (125°C)
频率相对于校准值的偏差(%)
5
4
3
2
1
0
-1
-2
-3
-4
-5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
5.0
5.5
VDD(V)
图 20-41:
典型 HFINTOSC 频率变化与 VDD 的关系曲线 (-40°C)
频率相对于校准值的偏差(%)
5
4
3
2
1
0
-1
-2
-3
-4
-5
2.0
2.5
3.0
3.5
4.0
4.5
VDD(V)
2007 Microchip Technology Inc.
DS41250F 第 303 页
PIC16F913/914/916/917/946
注:
DS41250F 第304 页
2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
21.0
封装信息
21.1
封装标识信息
28 引脚 SPDIP
示例
PIC16F913
-I/SP e3
0710017
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
YYWWNNN
40 引脚 PDIP
示例
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
YYWWNNN
示例
28 引脚 QFN
16F916
-I/ML e3
0710017
XXXXXXXX
XXXXXXXX
YYWWNNN
图注:
XX...X
Y
YY
WW
NNN
e3
*
注:
*
PIC16F914
-I/P e3
0710017
客户信息
年份代码 (公历年的最后一位数字)
年份代码 (公历年的最后两位数字)
星期代码 (一月第一个星期的代码为 “01”)
以字母数字排序的追踪代码
雾锡 (Matte Tin, Sn)的 JEDEC 无铅标志
的外包装
表示无铅封装。JEDEC 无铅标志 ( e3 )标示于此种封装外包装上。
e3
上。
Microchip 元器件编号如果无法在同一行内完整标注,将换行标出,因此会限制表
示客户信息的字符数。
标准 PIC® 器件标识由 Microchip 元器件编号、年份代码、星期代码和追踪代码组成。 若 PIC® 器件标识超出
上述内容,需支付一定的附加费用。 请向当地的 Microchip 销售办事处了解确认。 对于 QTP 器件,任何特殊
标记的费用都已包含在 QTP 价格中。
 2007 Microchip Technology Inc.
DS41250F_CN 第 305 页
PIC16F913/914/916/917/946
封装标识信息 (续)
44 引脚 QFN
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
YYWWNNN
28 引脚 SOIC
示例
PIC16F914
-I/ML e3
0710017
示例
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
YYWWNNN
28 引脚 SSOP
XXXXXXXXXXXX
XXXXXXXXXXXX
YYWWNNN
44 引脚 TQFP
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
YYWWNNN
64 引脚 TQFP(10x10x1mm)
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
YYWWNNN
DS41250F_CN 第 306 页
PIC16F913
-I/SO e3
0710017
示例
PIC16F916
-I/SS e3
0710017
示例
PIC16F917
-I/PT e3
0710017
示例
PIC16F946
-I/PT e3
0710017
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
21.2
封装详细信息
以下部分将介绍各种封装的技术细节。
28 引脚窄条塑封双列直插式封装 (SP)——主体 300 mil [SPDIP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
N
⊼1
E1
1
2
3
D
E
A2
A
L
A1
c
b1
b
e
eB
ऩԡ
㣅ᇌ
ሎᇌ㣗ೈ
ᓩ㛮᭄
᳔ᇣℷᐌ
N
᳔໻
28
ᓩ㛮䯈䎱e
.100 BSC
乊ッ
ࠄ೎ᅮ䴶催ᑺ A
–
–
.200
ล ῵ᇕ㺙८ᑺ
A2
.120
.135
ᑩ䴶
ࠄ೎ᅮ䴶催ᑺ
A1
.015
–
–
E
.290
.310
.335
㙽ࠄ㙽ᆑᑺ
.150
ล ῵ᇕ㺙ᆑᑺE1
.240
ᘏ䭓ᑺD
1.345
ᓩ㛮
ᇪࠄ೎ᅮ䴶催ᑺL
.110
ᓩ㛮८ᑺc
.008
.010
.015
ᓩ㛮Ϟ䚼ᆑᑺb1
.040
.050
.070
ᓩ㛮ϟ䚼ᆑᑺ ¡¡b¡¡¡¡¡¡
ᘏᥦ䯈䎱 §
.285
1.365
.130
.295
1.400
.150
ǂ.
.014¡¡¡¡¡¡¡¡¡¡¡¡¡.018
¡¡¡¡¡¡¡.022
ˉǂǂǂǂǂˉ
¡¡¡¡¡¡¡¡¡¡.430
eB
⊼˖
1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
2. § 䞡㽕⡍ᗻDŽ
3. ሎᇌD੠E1ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.10㣅ᇌDŽ
4. ሎᇌ੠݀Ꮒ䙉ᕾASME Y14.5MDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
Microchip Technology ೒ ো C04-070B
¤ 2007 Microchip Technology Inc.
 2007 Microchip Technology Inc.
Preliminary
DS39689E-page 369
DS41250F_CN 第 307 页
PIC16F913/914/916/917/946
40 引脚塑封双列直插式封装 (P)——主体 600 mil [PDIP]
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
注:
N
N
⊼1
⊼1
E1
E1
1 2 3
1 2 3
D
D
E
A
A2
A2
A
b1
b1
b
b
A1
A1
e
L
c
L
c
eB
eB
e
ऩԡ
ऩԡ
ሎᇌ㣗ೈ
ሎᇌ㣗ೈ
ᓩ㛮᭄N
ᓩ㛮᭄N
ᓩ㛮䯈䎱e
ᓩ㛮䯈䎱e
乊ッࠄ೎ᅮ䴶催ᑺA
乊ッࠄ೎ᅮ䴶催ᑺA
ล῵ᇕ㺙८ᑺA2
ล῵ᇕ㺙८ᑺA2
ᑩ
䴶ࠄ೎ᅮ䴶催ᑺ
A1
ᑩ
䴶ࠄ೎ᅮ䴶催ᑺ
A1
㙽ࠄ㙽ᆑᑺ
E
㙽ࠄ㙽ᆑᑺ
E
ล῵ᇕ㺙ᆑᑺE 1
ล῵ᇕ㺙ᆑᑺE 1
ᘏ䭓ᑺD
ᘏ䭓ᑺD
ᓩ㛮
ᇪࠄ೎ᅮ䴶催ᑺL
ᓩ㛮
ᇪࠄ೎ᅮ䴶催ᑺL
ᓩ㛮८ᑺc
ᓩ㛮८ᑺc
ᓩ㛮Ϟ䚼ᆑᑺb1
ᓩ㛮Ϟ䚼ᆑᑺb1
ᓩ㛮ϟ䚼ᆑᑺb
ᓩ㛮ϟ䚼ᆑᑺb
ᘏᥦ䯈䎱 §
eB
ᘏᥦ䯈䎱 §
eB
E
㣅ᇌ
㣅ᇌ
᳔ᇣℷᐌ
᳔ᇣℷᐌ
40
40
.100 BSC
.100 BSC
–
–
–
–
.125
–
.125
–
.015
–
.015
–
.590
–
.590
–
.485
–
.485
–
1.980
–
1.980
–
.115
–
.115
–
.008
–
.008
–
.030
–
.030
–
.014
–
.014
–
–
–
–
–
注:
注:
1.ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
1.ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
2. § 䞡㽕⡍ᗻDŽ
2. § 䞡㽕⡍ᗻDŽ
3.ሎᇌD੠ E1 ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.010㣅ᇌDŽ
3.ሎᇌD੠ E1 ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.010㣅ᇌDŽ
4.ሎᇌ੠݀Ꮒ䙉ᕾASME Y14.5MDŽ
4.ሎᇌ੠݀Ꮒ䙉ᕾASME Y14.5MDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
᳔໻
᳔໻
250
.
250
.
.195
.195
–
–
.625
.625
.580
.580
2.095
2.095
.200
.200
.015
.015
.070
.070
.023
.023
.700
.700
Microchip Technolog೒ো C04-016B
Microchip Technolog೒ো C04-016B
¤ 2007 Microchip Technology Inc.
¤ 2007 Microchip Technology Inc.
DS41250F_CN 第 308 页
Preliminary
Preliminary
DS39689E-page 373
DS39689E-page 373
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
28 引脚塑封四方扁平无引线封装 (ML)——主体 6x6 mm [QFN],触点长度 0.55 mm
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
注:
D
D2
外露金属
EXPOSED
衬底 PAD
e
E
b
E2
2
2
1
1
N
K
N
注1 1
NOTE
俯视图
L
仰视图
BOTTOM VIEW
TOP VIEW
A
A3
A1
单位
Units
尺寸范围
Dimension
Limits
引脚数 of Pins
Number
毫米
MILLIMETERS
最小
MIN
N
正常
NOM
最大
MAX
28
Pitch
引脚间距
e
Overall
总高度 Height
A
0.80
0.90
1.00
悬空间隙
Standoff
A1
0.00
0.02
0.05
触点厚度Thickness
Contact
A3
总宽度 Width
Overall
外露金属衬底宽度
Exposed
Pad Width
总长度 Length
Overall
外露金属衬底长度
Exposed
Pad Length
0.65 BSC
0.20 REF
E
E2
6.00 BSC
3.65
D
3.70
4.20
6.00 BSC
D2
3.65
3.70
4.20
b
0.23
0.30
0.35
触点长度 Length
Contact
L
0.50
0.55
0.70
触点到外露衬底的距离 Pad
Contact-to-Exposed
K
0.20
–
–
触点宽度Width
Contact
注:
Notes:
1.
Pin 1
visual index feature may
vary, but must be located within the hatched area.
1. 引脚
1 定位标记可能会有变化,
但一定位于阴影区域内。
2.
Package is saw singulated.
2. 该封装是切割分离的。
3.
Dimensioning ASME
and tolerancing
Y14.5M。 per ASME Y14.5M.
3. 尺寸和公差遵循
BSC :基本尺寸。
理论精确值,
不含公差。 exact value shown without tolerances.
BSC:
Basic Dimension.
Theoretically
BEF :参考尺寸。
通常也不包含公差,
仅供参考。
REF:
Reference
Dimension, usually
without tolerance, for information purposes only.
Microchip Technology Drawing
C04-105B
图号C4-015B
 2007 Microchip Technology Inc.
DS41250F_CN 第 309 页
PIC16F913/914/916/917/946
44 引脚塑封四方扁平无引线封装 (ML)——主体 8x8 mm [QFN]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
''
'
'
໪䴆䞥ሲ
໪䴆䞥ሲ
㹀ᑩ
㹀ᑩ
HH
((
(
(
EE
11
⊼
⊼
11
‫׃‬㾚೒
‫׃‬㾚೒
..
//
ӄ㾚೒
ӄ㾚೒
$$
$
$
$
$
ऩԡ↿㉇
ऩԡ↿㉇
ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔໻
ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔໻
ᓩ㛮᭄1
ᓩ㛮᭄1
ᓩ㛮䯈䎱H
ᓩ㛮䯈䎱H
ᘏ催ᑺ$
ᘏ催ᑺ$
ぎ䯈䱭
$
ぎ䯈䱭
$
㾺⚍८ᑺ$
㾺⚍८ᑺ$
ᘏᆑᑺ(
ᘏᆑᑺ(
໪䴆䞥ሲ㹀ᑩᆑᑺ(
໪䴆䞥ሲ㹀ᑩᆑᑺ(
ᘏ䭓ᑺ'
ᘏ䭓ᑺ'
໪䴆䞥ሲ㹀ᑩ䭓ᑺ'
໪䴆䞥ሲ㹀ᑩ䭓ᑺ'
㾺⚍ᆑᑺE
㾺⚍ᆑᑺE
㾺⚍䭓ᑺ/
㾺⚍䭓ᑺ/
㾺⚍ࠄ໪䴆㹀ᑩⱘ䎱⾏.
㾺⚍ࠄ໪䴆㹀ᑩⱘ䎱⾏.
%6&
%6&
5()
5()
%6&
%6&
%6&
%6&
±±
±±
⊼˖
⊼˖
ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
䆹ᇕ㺙ᰃߛࡆߚ⾏ⱘDŽ
䆹ᇕ㺙ᰃߛࡆߚ⾏ⱘDŽ
ሎᇌ੠݀Ꮒ䙉ᕾ
ሎᇌ੠݀Ꮒ䙉ᕾ$60(<0DŽ
$60(<0DŽ
%6&˖
෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
%6&˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
5()˖
5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
0LFURFKLS
0LFURFKLS7HFKQRORJ\
7HFKQRORJ\೒ো&%
೒ো&%
0LFURFKLS7HFKQRORJ\,QF
0LFURFKLS7HFKQRORJ\,QF
DS41250F_CN 第 310 页
'6$3SDJH
'6$3SDJH
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
28 引脚塑封宽条小外形封装 (SO)——主体 7.50 mm [SOIC]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
D
N
D
N
E
E1
E
E1
⊼1
⊼1
1 2 3
1 2 3
b
e
b
e
α
A
A
A2
h
α
h
φ
A2
c
φ
L
A1
L1
A1
ऩԡ
ऩԡ
ǂǂǂǂሎᇌ㣗ೈ
ǂǂǂǂሎᇌ㣗ೈ
ᓩ㛮᭄
¡¡¡¡¡¡¡¡¡¡¡¡N
ᓩ㛮᭄
¡¡¡¡¡¡¡¡¡¡¡¡N
ᓩ㛮䯈䎱ǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂe
ᓩ㛮䯈䎱ǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂe
ᘏ催ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂA
ᘏ催ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂA
ล῵ᇕ㺙८ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂA2
ล῵ᇕ㺙८ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂA2
ぎ䯈䱭 §
A1
ぎ䯈䱭 §
A1
ᘏᆑᑺE
ᘏᆑᑺE
ล῵ᇕ㺙ᆑᑺE1
ล῵ᇕ㺙ᆑᑺE1
ᘏ䭓ᑺD
ᘏ䭓ᑺD
᭰䴶
ᡩᕅ䎱⾏˄ৃ䗝˅h
᭰䴶
ᡩᕅ䎱⾏˄ৃ䗝˅h
ᑩ㛮䭓ᑺL
ᑩ㛮䭓ᑺL
ᑩ㛮ऴԡ䭓ᑺL 1
ᑩ㛮ऴԡ䭓ᑺL 1
ᑩ㛮ؒ᭰㾦ᑺ
φ
ᑩ㛮ؒ᭰㾦ᑺ
φ
ᓩ㛮८ᑺc
ᓩ㛮८ᑺc
ᓩ㛮ᆑᑺb
ᓩ㛮ᆑᑺb
ล
῵乊䚼䫹ᑺα
ล
῵乊䚼䫹ᑺα
ล
῵ᑩ䚼䫹ᑺβ
ล
῵ᑩ䚼䫹ᑺβ
L
L1
 2007 Microchip Technology Inc.
β
c
β
ǂǂ↿㉇
ǂǂ↿㉇
᳔ᇣǂǂǂǂℷᐌ
᳔໻
᳔ᇣǂǂǂǂℷᐌ
᳔໻
28
28
1.27 BSC
1.27 BSC
–
–
2.65
–
–
2.65
2.05¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡–
–
2.05¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡–
–
0.10
–
0.30
0.10
–
0.30
10.30 BSC
10.30 BSC
7.50 BSC
7.50 BSC
17.90 BSC
17.90 BSC
0.25
–
0.75
0.25
–
0.75
0.40
–
1.27
0.40
–
1.27
1.40 REF
1.40 REF
0°
–
8°
0°
–
8°
0.18
–
0.33
0.18
–
0.33
0.31
–
0.51
0.31
–
0.51
5°
–
15°
5°
–
15°
5°
–
15°
5°
–
15°
⊼˖
⊼˖
1.ᓩ㛮1ⱘᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
1.ᓩ㛮1ⱘᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
2. § 䞡㽕⡍ᗻDŽ
2. § 䞡㽕⡍ᗻDŽ
3.ሎᇌD੠E1ϡࣙᣀล῵ⱘ↯䖍੠さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.15mm DŽ
3.ሎᇌD੠E1ϡࣙᣀล῵ⱘ↯䖍੠さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.15mm DŽ
4.ሎᇌ੠݀Ꮒ䙉ᕾASME?Y14.5MDŽ
4.ሎᇌ੠݀Ꮒ䙉ᕾASME?Y14.5MDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
REF˖খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
REF˖খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
DS39689E-page 370
DS39689E-page 370
h
h
Preliminary
Preliminary
Microchip Technology ೒োC04-052B
Microchip Technology ೒োC04-052B
¤ 2007 Microchip Technology Inc.
¤ 2007 Microchip Technology Inc.
DS41250F_CN 第 311 页
PIC16F913/914/916/917/946
28 引脚塑封缩小型封装 (SS)——主体 5.30 mm [SSOP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
''
11
((
(
(
⊼
⊼
EE
HH
FF
$
$
$$
FF
$
$
//
/
/
ऩԡ↿㉇
ऩԡ↿㉇
ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔໻
ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔໻
ᓩ㛮᭄1
ᓩ㛮᭄1
ᓩ㛮䯈䎱H
%6&
ᓩ㛮䯈䎱H
%6&
ᘏ催ᑺ$
±
±
ᘏ催ᑺ$
±
±
ล῵ᇕ㺙८ᑺ$
ล῵ᇕ㺙८ᑺ$
ぎ䯈䱭
$
±
±
ぎ䯈䱭
$
±
±
ᘏᆑᑺ(
ᘏᆑᑺ(
ล῵ᇕ㺙ᆑᑺ(
ล῵ᇕ㺙ᆑᑺ(
ᘏ䭓ᑺ'
ᘏ䭓ᑺ'
ᑩ㛮䭓ᑺ/
ᑩ㛮䭓ᑺ/
ᓩ㛮ᡩᕅ䭓ᑺ/
5()
ᓩ㛮ᡩᕅ䭓ᑺ/
5()
ᓩ㛮८ᑺF
±
ᓩ㛮८ᑺF
±
ᑩ㛮ؒ㾦
F
ƒ
ƒ
ƒ
ᑩ㛮ؒ㾦
F
ƒ
ƒ
ƒ
ᓩ㛮ᆑᑺE
±
ᓩ㛮ᆑᑺE
±
⊼˖
⊼˖
ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
ሎᇌ'੠(ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛
PPDŽ
ሎᇌ'੠(ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛
PPDŽ
ሎᇌ੠݀Ꮒ䙉ᕾ$60(<0DŽ
ሎᇌ੠݀Ꮒ䙉ᕾ$60(<0DŽ
%6&˖ ෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
%6&˖ ෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
0LFURFKLS 7HFKQRORJ\ ೒ো&%
0LFURFKLS 7HFKQRORJ\ ೒ো&%
'6$3SDJH
'6$3SDJH
DS41250F_CN 第 312 页
0LFURFKLS7HFKQRORJ\,Q
0LFURFKLS7HFKQRORJ\,QF
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
44 引脚塑封薄型四方扁平封装 (PT)——主体 10x10x1 mm,底脚占位长度 2.00 mm [TQFP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
D
D
D1 D1
E
e
e
b
b
E1 E1
N
N
⊼ 1⊼ 1
c
1 2 3
1 2 3
⊼2⊼2
A
c
β
E
φ
β
α
A
α
φ
L
L
A1 A1
L1
ऩԡ↿㉇
ऩԡ↿㉇
ሎᇌ
㣗ೈ 㣗ೈ ᳔ᇣ᳔ᇣ
ℷᐌℷᐌ
ሎᇌ
ᓩ㛮 ᓩ㛮
᭄N
44 44
᭄N
ᓩ㛮䯈䎱
e
ᓩ㛮
䯈䎱e
ᘏ
催ᑺ
A
ᘏ
催ᑺ
A
ล῵ᇕ㺙८ᑺ
ล῵ᇕ㺙८ᑺ
ぎ
䯈䱭
ぎ
䯈䱭
A2
A2
A1 A1
ᑩ㛮䭓ᑺ
L
ᑩ㛮䭓ᑺ
L
᳔໻ ᳔໻
0.80 0.80
BSCBSC
–
–
0.950.95
0.05 0.05
0.45 0.45
ᑩ㛮
ऴԡ䭓ᑺ
L1
ᑩ㛮
ऴԡ䭓ᑺ
L1
ᑩ㛮ؒ᭰㾦ᑺ
φ
ᑩ㛮ؒ᭰㾦ᑺ
φ
ᘏᆑᑺ
E
ᘏᆑᑺ
E
A2 A2
L1
0°
0°
ᘏ䭓ᑺ
D
ᘏ䭓ᑺ
D
–
–
1.001.00
–
–
1.20 1.20
1.051.05
0.15 0.15
0.60 0.60
0.75 0.75
1.00 1.00
REF REF
3.5° 3.5°
12.0012.00
BSCBSC
12.0012.00
BSCBSC
7°
7°
ล῵ᇕ㺙ᆑᑺ
E1 E 1
10.0010.00
BSCBSC
ล῵ᇕ㺙ᆑᑺ
ล῵ ล῵
ᇕ㺙䭓ᑺ
D1 D1
10.00
BSCBSC
ᇕ㺙䭓ᑺ
10.00
ᓩ㛮८ᑺ
c
0.09 0.09
–
0.20 0.20
ᓩ㛮८ᑺ
c
–
ᓩ㛮ᆑᑺ
b
ᓩ㛮ᆑᑺ
b
ล
῵乊䚼䫹ᑺ
α
ล
῵乊䚼䫹ᑺ
α
ล
῵ᑩ䚼䫹ᑺ
β
ล
῵ᑩ䚼䫹ᑺ
β
0.30 0.30
0.37 0.37
0.45 0.45
11° 11°
11° 11°
12° 12°
12° 12°
13° 13°
13° 13°
⊼˖ ⊼˖
1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
2. ᢤ㾦໘ৃ㛑ᄬ೼᭰䴶˗ሎᇌৃবDŽ
2. ᢤ㾦໘ৃ㛑ᄬ೼᭰䴶˗ሎᇌৃবDŽ
੠E1
ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.25
3. ሎᇌD
mm DŽ
੠E1
ϡࣙᣀล῵ⱘ↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᑨ䍙䖛0.25
3. ሎᇌD
mm DŽ
4. ሎᇌ੠݀Ꮒ䙉ᕾASME
Y14.5MDŽ
4. ሎᇌ੠݀Ꮒ䙉ᕾASME
Y14.5MDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
BSC˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
REF˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
REF˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
Microchip
Technology೒োC04-076B
Microchip
Technology೒োC04-076B
¤ 2007
Microchip
Technology
Inc. Inc.
¤ 2007
Microchip
Technology
 2007 Microchip Technology Inc.
Preliminary
Preliminary
DS39689E-page
375 375
DS39689E-page
DS41250F_CN 第 313 页
PIC16F913/914/916/917/946
64 引脚塑封薄型四方扁平封装 (PT)——主体 10x10x1 mm,底脚占位长度 2.00 mm [TQFP]
注:
最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
'
'
(
H
(
1
E
⊼
⊼
A
$
F
F
$
B
$
/
/
ऩԡ
ሎᇌ㣗ೈ
ᓩ㛮᭄
↿㉇
᳔ᇣ
1
ℷᐌ
᳔໻
ᓩ㛮䯈䎱
H
ᘏ催ᑺ
$
±
±
ล῵ᇕ㺙८ᑺ
$
ぎ䯈䱭
$
±
/
ᑩ㛮䭓ᑺ
%6&
ᑩ㛮ऴԡ䭓ᑺ/
5()
ᑩ㛮ؒ᭰㾦
F
ᘏᆑᑺ
(
ƒ
%6&
ƒ
ᘏ䭓ᑺ
'
%6&
ล῵ᇕ㺙ᆑᑺ
(
%6&
ล῵ᇕ㺙䭓ᑺ
'
%6&
ƒ
ᓩ㛮८ᑺ
F
±
ᓩ㛮ᆑᑺ
E
ล῵乊䚼䫹ᑺ
A
ƒ
ƒ
ƒ
ล῵ᑩ䚼䫹ᑺ
B
ƒ
ƒ
ƒ
⊼˖
ᓩ㛮ᅮԡ⡍ᗻৃ㛑᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳ‫ݙ‬DŽ
ᢤ㾦໘ৃ㛑ᄬ೼᭰䴶ˈሎᇌৃবDŽ
ሎᇌ'੠(ϡࣙᣀล῵↯䖍៪さ䍋DŽล῵↣ջⱘ↯䖍៪さ䍋ϡᕫ䍙䖛PPDŽ
ሎᇌ੠݀Ꮒ䙉ᕾ$60(<0DŽ
%6&˖෎ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ৿݀ᏂDŽ
5()˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ৿݀Ꮒˈҙկখ㗗DŽ
0LFURFKLS 7HFKQRORJ\ ೒ো&%
DS41250F_CN 第 314 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
附录 A:
数据手册版本历史
版本 A
这是新的数据手册。
版本 B
更新了外设功能。
第 2 页,表:更正了 I/O 引脚的数量。
图 8-3:修改了比较器的 I/O 工作模式。
寄存器 9-1,表:更正了最大像素数。
版本 C
更正了引脚说明表。
修改了 IPD 时基和 T1OSC。
版本 D
参考频率从 31.25 kHz 修改为 31 kHz。
待机电流修改为 100 nA。
修改 9.1:内部 RC 振荡器改为内部 LF 振荡器。
从其他 PIC® 器件移植
附录 B:
本节将讨论从其他 PIC® 器件移植到 PIC16F91X/946 系
列器件的一些问题。
B.1
PIC16F676 到 PIC16F91X/946
表 B-1:
功能比较
PIC16F676
PIC16F91X/
946
20 MHz
20 MHz
程序存储器最大容量
(字)
1K
8K
最大 SRAM (字节)
64
352
10 位
128
10 位
256
1/1
2/1
振荡模式
8
8
欠压复位
有
RB0/1/2/4/5
有
RB<7:0>
RB0/1/2/3
/4/5
RB<7:4>
功能
最大工作频率
A/D 转换的分辨率
数据 EEPROM
(字节)
定时器 (8/16 位)
内部上拉
版本 E
电平变化中断
将 “高级信息”从第 19.0 章 “电气规范”中删除。 删
除了
28
引脚 塑封 四方 扁平 无引 线封 装 (ML)
(QFN-S)。
比较器
USART
1
2
无
有
扩展的 WDT
无
有
WDT/BOR 的软件控制
选项
无
有
4 MHz
32 kHz-8 MHz
无
有
版本 F
更新了整个文档。将“初稿”从数据手册中删除。添加
了 特 征 数 据 章 节。更 新 了 电 气 规 范 章 节。添 加 了
PIC16F946 器件。
 2007 Microchip Technology Inc.
INTOSC 频率
时钟切换
DS41250F_CN 第 315 页
PIC16F913/914/916/917/946
附录 C:
转换注意事项
表 C-1 列出了从老版本的器件转换到本数据手册中所列
的版本时的注意事项。
表 C-1:
转换注意事项
特性
引脚数
PIC16F91X/946
PIC16F87X
PIC16F87XA
28/40/64
28/40
28/40
3
3
3
11 或 12
13 或 14
14 或 15
USART, SSP(1)
(SPI, I2C™ 从模式)
20 MHz
PSP, USART, SSP
(SPI,I2C 主 / 从模式)
20 MHz
PSP, USART, SSP
(SPI,I2C 主 / 从模式)
20 MHz
2.0V 至 5.5V
2.2V 至 5.5V
2.0V 至 5.5V
10 位
7 种转换时钟可供选择
2
10 位
4 种转换时钟可供选择
2
10 位
7 种转换时钟可供选择
2
比较器数
2
—
2
比较器参考电压
有
—
有
4K 和 8K 闪存
4K 和 8K 闪存
(单字擦 / 写)
4K 和 8K 闪存
(4 字块擦 / 写)
256/336/352 字节
192/368 字节
192/368 字节
256 字节
128/256 字节
128/256 字节
开/关
分段,从程序存储器末尾开
始
开/关
—
开/关
16 或 24 段驱动器,
4 个公共端
—
分段,从程序存储器
开头开始
—
在线调试器,
低电压编程
在线调试器,
低电压编程
在线调试器,
低电压编程
定时器数
中断数
通信方式
频率
电压
A/D
CCP
程序存储器
RAM
数据 EEPROM
代码保护
程序存储器写保护
LCD 模块
其他
注
1: PIC16F91X 器件的 SSP 和 USART 共用同一引脚。
DS41250F_CN 第 316 页
 2007 Microchip Technology Inc.
PIC16F917/916/914/913
索引
A
A/D
规范................................................................... 272, 273
ACK 脉冲........................................................................... 202
ADC .................................................................................. 175
采集要求.................................................................... 183
参考电压 (VREF).................................................... 176
端口配置.................................................................... 176
工作原理.................................................................... 178
计算采集时间 ............................................................ 183
结果格式化 ................................................................ 178
框图........................................................................... 175
内部采样开关阻抗 (RSS)........................................ 183
配置........................................................................... 176
配置中断.................................................................... 179
启动 A/D 转换............................................................ 178
特殊事件触发器......................................................... 178
通道选择.................................................................... 176
相关的寄存器 ............................................................ 185
休眠模式下的工作原理 .............................................. 178
源阻抗 ....................................................................... 183
中断........................................................................... 177
转换过程.................................................................... 179
转换时钟.................................................................... 176
ADCON0 寄存器 ............................................................... 180
ADCON1 寄存器 ............................................................... 181
ADRESH 寄存器 (ADFM = 0)........................................ 182
ADRESH 寄存器 (ADFM = 1)........................................ 182
ADRESL 寄存器 (ADFM = 0)........................................ 182
ADRESL 寄存器 (ADFM = 1)........................................ 182
ANSEL 寄存器 .................................................................... 43
AUSART ........................................................................... 121
波特率发生器 (BRG)
波特率误差,计算 ............................................. 132
波特率,异步模式 ............................................. 133
高波特率选择位 (BRGH 位)........................... 132
计算公式 ........................................................... 132
同步从模式
发送................................................................... 139
接收................................................................... 140
相关的寄存器
发送........................................................... 139
接收........................................................... 140
同步主模式 ........................................................ 135, 139
发送................................................................... 135
接收................................................................... 137
相关的寄存器
发送........................................................... 136
接收........................................................... 138
相关的寄存器
波特率发生器 .................................................... 132
异步模式.................................................................... 123
9 位地址检测模式设置....................................... 128
波特率发生器 (BRG)..................................... 132
发送器 ............................................................... 123
接收器 ............................................................... 126
相关的寄存器
发送........................................................... 125
接收........................................................... 129
B
BF 位 ................................................................................. 194
版本历史............................................................................ 315
 2007 Microchip Technology Inc.
比较器
复位的影响................................................................ 115
规范 .......................................................................... 271
将 C2OUT 作为 T1 的门控信号源 ............................. 103
比较器 .............................................................................. 109
工作原理 .......................................................... 109, 114
将 C2OUT 作为 T1 的门控信号源 ............................ 117
配置 ......................................................................... 112
同步 COUT w/Timer1 ............................................... 117
响应时间 .................................................................. 114
休眠期间工作原理 .................................................... 115
中断 ......................................................................... 114
比较器参考电压 (CVREF)
响应时间 .................................................................. 114
比较器参考电压 (CVREF) .............................................. 118
复位的影响 ............................................................... 115
规范 ......................................................................... 271
比较器模块
相关的寄存器 ........................................................... 119
比较模块。 参见捕捉 / 比较 /PWM 模块 (CCP)
编程,器件指令 ............................................................... 241
变更通知客户服务 ............................................................ 325
捕捉 / 比较 /PWM 模块 (CCP) ...................................... 211
比较模式 .................................................................. 214
CCPx 引脚配置 ................................................ 214
软件中断模式 ........................................... 213, 214
特殊事件触发信号 ............................................ 214
Timer1 模式选择 ...................................... 213, 214
捕捉模式 .................................................................. 213
CCPx 引脚配置 ........................................................ 213
定时器资源 ............................................................... 211
两个 CCP 模块的相互关系 (表) ............................ 211
PWM 周期 ................................................................ 216
PWM 模式................................................................. 215
20 MHz 时的 PWM 频率与分辨率示例 ............. 217
8 MHz 时的 PWM 频率与分辨率示例 ............... 217
复位的影响 ...................................................... 218
设置工作模式 ................................................... 218
系统时钟频率改变 ............................................ 218
休眠模式下的操作 ............................................ 218
占空比 .............................................................. 216
设置 PWM 工作模式 ................................................ 218
相关的 w/ 捕捉 / 比较 /PWM 寄存器 ......................... 218
预分频器 .................................................................. 213
捕捉模块。参见捕捉 / 比较 /PWM 模块 (CCP)
C
C 编译器
MPLAB C18.............................................................. 252
MPLAB C30.............................................................. 252
参考电压
相关的寄存器 ........................................................... 119
参考电压。 参见比较器参考电压 (CVREF)
操作码字段说明 ............................................................... 241
CCP。 参见捕捉 / 比较 /PWM 模块 (CCP)
CCPxCON 寄存器 ............................................................ 212
产品标识体系 ................................................................... 327
程序存储器 ......................................................................... 23
分页 ........................................................................... 40
映射和堆栈 (PIC16F913/914) ................................ 23
映射和堆栈 (PIC16F916/917/946) ......................... 23
CKE 位 ............................................................................. 194
CKP 位 ............................................................................. 195
CMCON0 寄存器 ............................................................. 116
DS41250F_CN 第 317 页
PIC16F917/916/914/913
CMCON1 寄存器 .............................................................. 117
CONFIG1 寄存器 ............................................................. 220
从选择同步 ....................................................................... 199
从其他 PIC 单片机中移植 ................................................. 315
CPU 的特性 ...................................................................... 219
存储器构成 ......................................................................... 23
程序 ............................................................................ 23
数据 ............................................................................ 24
D
D/A 位 ............................................................................... 194
DC 和 AC 特性
图表 .......................................................................... 283
代码保护 ........................................................................... 238
代码示例
A/D 转换 ................................................................... 179
初始化 PORTA ............................................................ 44
初始化 PORTB ............................................................ 53
初始化 PORTC............................................................ 62
初始化 PORTD............................................................ 71
初始化 PORTE ............................................................ 76
初始化 PORTF ............................................................ 81
初始化 PORTG............................................................ 84
间接寻址 ..................................................................... 41
将预分频器分配给 Timer0 ......................................... 100
将预分频器分配给 WDT ............................................ 100
将 Status 和 W 寄存器保存在 RAM 中 ...................... 233
切换捕捉预分频比 .................................................... 213
在 Page 0 中调用 Page 1 中的子程序 ........................ 40
装载 SSPBUF (SSPSR)寄存器 ........................... 196
电气规范 ........................................................................... 255
掉电模式 (休眠) ............................................................ 236
定时器
Timer1
T1CON.............................................................. 105
Timer2
T2CON.............................................................. 108
读 - 修改 - 写操作 .............................................................. 241
E
EEADRH 寄存器 ...................................................... 187, 188
EEADRL 寄存器 ............................................................... 188
EEADRL 寄存器 ............................................................... 187
EECON1 寄存器 ....................................................... 187, 189
EECON2 寄存器 ............................................................... 187
EEDATH 寄存器 ............................................................... 188
EEDATL 寄存器 ............................................................... 188
F
封装 .................................................................................. 305
标识 .................................................................. 305, 306
PDIP 详细信息 ......................................................... 307
Fuses. 见配置位
复位 .................................................................................. 221
复位的影响
PWM 模式 ................................................................ 218
负载条件 ........................................................................... 264
G
高精度内部振荡器参数 ...................................................... 267
更新地址位, UA............................................................... 194
故障保护时钟监视器 ........................................................... 97
复位或从休眠状态唤醒 ............................................... 97
故障保护工作原理 ...................................................... 97
DS41250F_CN 第 318 页
故障保护检测 ............................................................. 97
清除故障保护条件 ...................................................... 97
固件指令 .......................................................................... 241
H
汇编器
MPASM 汇编器 ........................................................ 252
I
I/O 端口 .............................................................................. 43
I2C 模式
选择模式 .................................................................. 202
寻址 ......................................................................... 203
从模式
SCL 和 SDA 引脚 ............................................. 202
多主器件模式 ........................................................... 208
发送 ......................................................................... 206
工作原理 .................................................................. 202
接收 ......................................................................... 204
主模式 ...................................................................... 208
相关的寄存器 ........................................................... 209
ID 地址单元 ...................................................................... 238
INTCON 寄存器 ................................................................. 34
INTOSC 规范 ............................................................ 266,267
IOCB 寄存器 ...................................................................... 54
J
寄存器
ADCON0 (ADC 控制寄存器 0) ............................. 180
ADCON1 (ADC 控制寄存器 1) ............................. 181
ADRESH (ADC 结果寄存器的高字节,
且 ADFM = 0)...................... 182
ADRESH (ADC 结果寄存器的高字节,
且 ADFM = 1)...................... 182
ADRESL (ADC 结果寄存器的低字节,
且 ADFM = 0)...................... 182
ADRESL (ADC 结果寄存器的低字节,
且 ADFM = 1)...................... 182
ANSEL (模拟选择寄存器) ....................................... 43
CCPxCON (CCP 操作) ........................................ 212
CMCON0 (比较器控制 0) ..................................... 116
CMCON1 (比较器控制 1) ..................................... 117
CONFIG1 (配置字寄存器 1) ................................. 220
EEADRH (EEPROM 地址高字节) ........................ 188
EEADRL (EEPROM 地址低字节) ......................... 188
EECON1 (EEPROM 控制 1) ................................ 189
EEDATH (EEPROM 数据高字节) ........................ 188
EEDATL (EEPROM 数据低字节) ......................... 188
复位值 ...................................................................... 226
复位值 (特殊寄存器) ............................................. 229
INTCON (中断控制寄存器) ..................................... 34
IOCB (PORTB 电平变化中断寄存器) ..................... 54
LCDCON (LCD 控制寄存器) ................................ 145
LCDDATAx (LCD 数据寄存器) ............................. 147
LCDPS (LCD 预分频比选择寄存器) ..................... 146
LCDSEn (LCD 段使能寄存器) .............................. 147
LVDCON (低电压检测控制寄存器) ....................... 173
OPTION_REG (OPTION) .............................. 33, 101
OSCCON (振荡器控制寄存器) ............................... 88
OSCTUNE (振荡器调节寄存器) ............................. 92
PCON (电源控制寄存器) ...................................... 224
PCON (电源控制寄存器) ........................................ 39
PIE1 (外设中断允许寄存器 1) ................................ 35
PIE2 (外设中断允许寄存器 2) ................................ 36
PIR1 (外设中断寄存器 1) ....................................... 37
PIR2 (外设中断请求寄存器 2) ................................ 38
 2007 Microchip Technology Inc.
PIC16F917/916/914/913
PORTA........................................................................ 44
PORTB........................................................................ 54
PORTC ....................................................................... 62
PORTD ....................................................................... 71
PORTE........................................................................ 76
PORTF........................................................................ 81
PORTG ....................................................................... 84
RCSTA (接收状态和控制寄存器) .......................... 131
SSPCON (同步串行端口控制)寄存器 .................. 195
SSPSTAT (同步串行端口状态)寄存器 ................. 194
STATUS...................................................................... 32
T1CON...................................................................... 105
T2CON...................................................................... 108
特殊功能寄存器映射
PIC16F913/916................................................... 25
PIC16F914/917................................................... 26
PIC16F946.......................................................... 27
特殊寄存器汇总
BANK 0 ............................................................... 28
BANK 1 ............................................................... 29
BANK 2 ............................................................... 30
BANK 3 ............................................................... 31
TRISA (PORTA 三态) ............................................ 44
TRISB (PORTB 三态) ............................................ 54
TRISC (PORTC 三态) ........................................... 62
TRISD (PORTD 三态) ........................................... 71
TRISE (PORTE 三态) ............................................ 76
TRISF (PORTF 三态) ............................................. 81
TRISG (三态 PORTG) ............................................ 84
TXST (发送状态和控制寄存器) ............................. 130
VRCON (参考电压控制) ....................................... 118
WDTCON (看门狗定时器控制 ) ........................... 235
WPUB (弱上拉 PORTB) ......................................... 55
间接寻址、 INDF 和 FSR 寄存器 ....................................... 41
接收溢出指示位 (SSPOV) ............................................ 195
交流特性
负载条件 ................................................................... 264
工业级和扩展级 ........................................................ 265
绝对最大值 ....................................................................... 255
看门狗定时器 (WDT) ............................................ 234
LCD 驱动模块 .......................................................... 144
LCD 时钟产生 .......................................................... 150
LCD 梯形电阻连接 ................................................... 148
MCLR 电路 .............................................................. 222
模拟输入模型 ................................................... 111, 184
片上复位电路 ........................................................... 221
PIC16F913/916 .......................................................... 15
PIC16F914/917 .......................................................... 16
PIC16F946 ................................................................. 17
RA0 引脚 ................................................................... 45
RA1 引脚 ................................................................... 46
RA2 引脚 ................................................................... 47
RA3 引脚 ................................................................... 48
RA4 引脚 ................................................................... 49
RA5 引脚 ................................................................... 50
RA6 引脚 ................................................................... 51
RA7 引脚 ................................................................... 52
RB 引脚 ..................................................................... 56
RB4 引脚 ................................................................... 57
RB5 引脚 ................................................................... 58
RB6 引脚 ................................................................... 59
RB7 引脚 ................................................................... 60
RC0 引脚 ................................................................... 63
RC1 引脚 ................................................................... 64
RC2 引脚 ................................................................... 64
RC3 引脚 ................................................................... 65
RC4 引脚 ................................................................... 66
RC5 引脚 ................................................................... 67
RC6 引脚 ................................................................... 68
RC7 引脚 ................................................................... 69
RD 引脚 ..................................................................... 74
RD0 引脚 ................................................................... 73
RD1 引脚 ................................................................... 73
RD2 引脚 ................................................................... 74
RE 引脚 ..................................................................... 78
RE 引脚 ..................................................................... 79
RE3 引脚 ................................................................... 78
RF 引脚 ...................................................................... 83
RG 引脚 ..................................................................... 85
时钟源 ........................................................................ 87
SSP (I2C 模式) ..................................................... 202
SSP (SPI 模式) .................................................... 193
Timer1 ...................................................................... 102
Timer2 ...................................................................... 107
TMR0/WDT 预分频器 ................................................ 99
外部 RC 模式 ............................................................. 91
谐振器的工作原理 ...................................................... 90
故障保护时钟监视器 (FSCM) ................................. 97
在线串行编程连接 .................................................... 238
中断逻辑 .................................................................. 231
K
开发支持 ........................................................................... 251
勘误表 ................................................................................ 13
看门狗定时器 (WDT) .................................................... 234
规范 .......................................................................... 269
模式 .......................................................................... 234
时钟源 ...................................................................... 234
相关的寄存器 ........................................................... 235
周期 ........................................................................... 234
客户支持 ........................................................................... 325
客户通知服务 ................................................................... 325
可寻址通用同步 / 异步收发器 (AUSART) ..................... 121
可编程低电压检测 (PLVD)模块 .................................... 171
PLVD 工作原理 ........................................................ 171
框图
(CCP)捕捉模式工作原理 ...................................... 213
ADC .......................................................................... 175
ADC 转换功能 .......................................................... 184
AUSART 发送 .......................................................... 121
AUSART 接收 .......................................................... 122
比较器 1 .................................................................... 110
比较器 2 .................................................................... 110
比较器模式 ............................................................... 113
比较模式工作原理 .................................................... 214
CCP PWM................................................................. 215
晶振工作原理 ............................................................. 90
 2007 Microchip Technology Inc.
L
LCD
波形产生 .................................................................. 153
段使能 ...................................................................... 149
复用类型 .................................................................. 149
禁止该模块 ............................................................... 167
LCDCON 寄存器 ...................................................... 143
LCDDATA 寄存器 .................................................... 143
LCDPS 寄存器 ......................................................... 143
配置该模块 ............................................................... 167
偏置类型 .................................................................. 148
时钟源选择 ............................................................... 148
相关的寄存器 ........................................................... 168
像素控制 .................................................................. 149
DS41250F_CN 第 319 页
PIC16F917/916/914/913
预分频器 ................................................................... 148
在休眠模式下工作 .................................................... 165
帧频率 ...................................................................... 149
中断 .......................................................................... 164
LCDCON 寄存器 ...................................................... 143, 145
LCDDATA 寄存器 ............................................................. 143
LCDDATAx 寄存器 ........................................................... 147
LCDPS 寄存器 ......................................................... 143, 146
LP 位 ........................................................................ 148
LCDSEn 寄存器 ............................................................... 147
M
MCLR ................................................................................ 222
内部 .......................................................................... 222
Microchip 因特网网站 ....................................................... 325
模数转换器。 参见 ADC
模拟输入连接注意事项 ..................................................... 111
MPLAB ASM30 汇编器、链接器和库管理器 .................... 252
MPLAB ICD 2 在线调试器 ................................................ 253
MPLAB ICE 2000 高性能通用在线仿真器 ........................ 253
MPLAB PM3 器件编程器 .................................................. 253
MPLAB REAL ICE 在线仿真器系统 ................................. 253
MPLAB 集成开发环境软件 ............................................... 251
MPLINK 目标链接器 /MPLIB 目标库管理器 ...................... 252
N
内部集成电路 (I2C)。 参见 I2C 模式
内部采样开关阻抗 (RSS) ............................................... 183
内部振荡器电路
INTOSC
规范 .......................................................... 266, 267
O
OPTION 寄存器 .................................................................. 33
OPTION_REG 寄存器 ...................................................... 101
OSCCON 寄存器 ................................................................ 88
OSCTUNE 寄存器 .............................................................. 92
P
P (停止)位 .................................................................... 194
PCL 和 PCLATH.................................................................. 40
堆栈 ............................................................................ 40
相对跳转 ..................................................................... 40
PCON 寄存器 ............................................................. 39, 224
配置位 .............................................................................. 220
PICSTART Plus 开发编程器 ............................................ 254
PIE1 寄存器 ........................................................................ 35
PIE2 寄存器 ........................................................................ 36
PIR1 寄存器 ....................................................................... 37
PIR2 寄存器 ....................................................................... 38
PLVD
相关的寄存器 ........................................................... 173
PORTA
规范 .......................................................................... 267
寄存器 ........................................................................ 44
其余的引脚功能
ANSEL 寄存器 ................................................... 43
RA0 ............................................................................. 45
RA1 ............................................................................. 46
RA2 ............................................................................. 47
RA3 ............................................................................. 48
RA4 ............................................................................. 49
RA5 ............................................................................. 50
RA6 ............................................................................. 51
RA7 ............................................................................. 52
DS41250F_CN 第 320 页
相关的寄存器 ............................................................. 52
引脚说明及框图 ......................................................... 45
PORTA 寄存器 ................................................................... 44
PORTB
电平变化中断 ............................................................. 53
寄存器 ........................................................................ 53
其余的引脚功能 ......................................................... 53
弱上拉 ................................................................ 53
RB0............................................................................. 56
RB1............................................................................. 56
RB2............................................................................. 56
RB3............................................................................. 56
RB4............................................................................. 57
RB5............................................................................. 58
RB6............................................................................. 59
RB7............................................................................. 60
相关的寄存器 ............................................................. 61
引脚说明及框图 ......................................................... 56
PORTB 寄存器 ................................................................... 54
PORTC
规范 ......................................................................... 267
RC0 ............................................................................ 63
RC1 ............................................................................ 63
RC2 ............................................................................ 63
RC3 ............................................................................ 65
RC4 ............................................................................ 66
RC5 ............................................................................ 67
RC6 ............................................................................ 68
RC7 ............................................................................ 69
寄存器 ........................................................................ 62
相关的寄存器 ............................................................. 70
引脚说明及框图 ......................................................... 63
PORTC 寄存器 .................................................................. 62
PORTD
RD0 ............................................................................ 72
RD1 ............................................................................ 72
RD2 ............................................................................ 72
RD3 ............................................................................ 72
RD4 ............................................................................ 72
RD5 ............................................................................ 72
RD6 ............................................................................ 72
RD7 ............................................................................ 72
寄存器 ........................................................................ 71
相关的寄存器 ............................................................. 75
引脚说明及框图 ......................................................... 72
PORTD 寄存器 .................................................................. 71
PORTE
RE0............................................................................. 77
RE1............................................................................. 77
RE2............................................................................. 77
RE3............................................................................. 77
RE4............................................................................. 77
RE5............................................................................. 77
RE6............................................................................. 77
RE7............................................................................. 77
寄存器 ........................................................................ 76
相关的寄存器 ............................................................. 80
引脚说明及框图 ......................................................... 77
PORTE 寄存器 ................................................................... 76
PORTF
RF0 ............................................................................. 82
RF1 ............................................................................. 82
RF2 ............................................................................. 82
RF3 ............................................................................. 82
RF4 ............................................................................. 82
 2007 Microchip Technology Inc.
PIC16F917/916/914/913
RF5 ............................................................................. 82
RF6 ............................................................................. 82
RF7 ............................................................................. 82
寄存器 ........................................................................ 81
相关的寄存器 ............................................................. 83
引脚说明及框图 .......................................................... 82
PORTF 寄存器 ................................................................... 81
PORTG
RG0............................................................................. 85
RG1............................................................................. 85
RG2............................................................................. 85
RG3............................................................................. 85
RG4............................................................................. 85
RG5............................................................................. 85
寄存器 ........................................................................ 84
相关的寄存器 ............................................................. 86
引脚说明及框图 .......................................................... 85
PORTG 寄存器 ................................................................... 84
Q
器件综述 ............................................................................. 15
欠压复位 (BOR) ............................................................ 223
校准 .......................................................................... 223
规范 .......................................................................... 269
时序和特性 ............................................................... 268
相关的寄存器 ........................................................... 224
R
R/W 位 .............................................................................. 194
RCREG ............................................................................. 128
RCSTA 寄存器 ................................................................. 131
RF 框图 ............................................................................... 83
软件模拟器 (MPLAB SIM) ............................................ 252
S
S (起始)位 .................................................................... 194
散热考虑 ........................................................................... 263
双速时钟启动模式 .............................................................. 95
闪存程序存储器 ................................................................ 187
上电复位 ........................................................................... 222
上电延时定时器 (PWRT) .............................................. 222
规范 .......................................................................... 269
时钟切换 ............................................................................. 95
时钟源
内部模式 ..................................................................... 91
HFINTOSC ......................................................... 91
INTOSC .............................................................. 91
INTOSCIO .......................................................... 91
LFINTOSC .......................................................... 93
频率选择 ............................................................ 93
外部模式 ..................................................................... 89
EC ....................................................................... 89
HS ....................................................................... 90
LP ....................................................................... 90
OST .................................................................... 89
RC....................................................................... 91
XT ....................................................................... 90
时序参数符号 ................................................................... 264
时序要求
I2C 总线起始位 / 停止位 ........................................... 281
I2C 总线数据 ............................................................ 282
SPI 模式 ................................................................... 280
时序图
1/4 占空比驱动中的 LCD 中断时序 .......................... 164
A/D 转换 (休眠模式) ............................................. 274
A/D 转换 ................................................................... 274
 2007 Microchip Technology Inc.
比较器输出 ............................................................... 109
捕捉 / 比较 /PWM...................................................... 276
CLKOUT 和 I/O ......................................................... 267
从中断唤醒 ............................................................... 237
从同步 ...................................................................... 199
当 SLPEN = 1 或 CS = 00 时进入 / 退出 LCD
休眠模式 ......................................... 166
复位、 WDT、 OST 和上电延时定时器 .................... 268
故障保护时钟监视器 (FSCM) ................................. 98
I2C 从模式 (发送, 10 位地址) ............................. 207
I2C 从模式,且 SEN = 0 (接收, 10 位地址) ........ 205
I2C 接收 (7 位地址) .............................................. 204
I2C 发送 (7 位地址) .............................................. 206
I2C 总线起始位 / 停止位 ........................................... 280
I2C 总线数据 ............................................................ 281
INT 引脚中断 ........................................................... 232
内部振荡器切换时序 .................................................. 94
欠压复位 (BOR) ................................................... 268
欠压复位情形 ........................................................... 223
时钟时序 .................................................................. 265
时钟同步 .................................................................. 209
双速启动 .................................................................... 96
SPI 从模式 (CKE = 0) .......................................... 279
SPI 从模式 (CKE = 1) .......................................... 279
SPI 主模式 (CKE = 1, SMP = 1) ........................ 278
SPI 模式 (从模式且 CKE = 0) ............................... 200
SPI 模式 (从模式且 CKE = 1) ............................... 200
SPI 模式 (主模式) ................................................. 198
Timer0 和 Timer1 外部时钟 ...................................... 270
TIMER1 递增边沿 .................................................... 104
同步发送 .................................................................. 136
同步发送 (通过 TXEN 位) ..................................... 136
同步接收 (主模式, SREN) .................................. 138
异步发送 .................................................................. 124
异步发送 (背靠背) ................................................ 124
异步接收 .................................................................. 128
USART 同步发送 (主 / 从) .................................... 275
USART 同步接收 (主 / 从模式) ............................. 275
延时时序
情形 1 ............................................................... 225
情形 2 ............................................................... 225
情形 3 ............................................................... 225
在 1/2 复用、 1/2 偏置驱动时的 A 型波形 ................ 154
在 1/2 复用、 1/2 偏置驱动时的 B 型波形 ................ 155
在 1/2 复用、 1/3 偏置驱动时的 A 型波形 ................ 156
在 1/2 复用、 1/3 偏置驱动时的 B 型波形 ................ 157
在 1/3 复用、 1/2 偏置驱动时的 A 型波形 ................ 158
在 1/3 复用、 1/2 偏置驱动时的 B 型波形 ................ 159
在 1/3 复用、 1/3 偏置驱动时的 A 型波形 ................ 160
在 1/3 复用、 1/3 偏置驱动时的 B 型波形 ................ 161
在 1/4 复用、 1/3 偏置驱动时的 A 型波形 ................ 162
在 1/4 复用、 1/3 偏置驱动时的 B 型波形 ................ 163
在静态驱动时的 A/B 型波形 ..................................... 153
使用中断唤醒 ................................................................... 236
数据 / 地址位 (D/A) ....................................................... 194
数据存储器 ......................................................................... 24
数据 EEPROM 存储器 ..................................................... 187
写 ............................................................................. 190
读 ............................................................................. 190
相关的寄存器 ........................................................... 192
SMP 位 ............................................................................ 194
SPBRG ............................................................................. 132
SPI 模式 ................................................................... 193, 199
从选择 ...................................................................... 193
从选择同步 ............................................................... 199
串行时钟 (SCK 引脚) ............................................ 193
DS41250F_CN 第 321 页
PIC16F917/916/914/913
串行数据输出 (SDO 引脚) .................................... 193
串行数据输入 (SDI 引脚) ...................................... 193
典型连接 ................................................................... 197
复位的影响 ............................................................... 201
使能 SPI I/O .............................................................. 197
SPI 时钟 ................................................................... 198
休眠模式下的工作 .................................................... 201
相关的寄存器 ........................................................... 201
主 / 从器件连接 ......................................................... 197
主模式 ...................................................................... 198
总线模式兼容性 ........................................................ 201
SSP
概述
SPI 主 / 从器件连接 .................................................. 197
SSP I2C 工作原理 ............................................................ 202
从模式 ...................................................................... 202
SSPCON 寄存器 .............................................................. 195
SSPEN 位 ........................................................................ 195
SSP 模块
时钟同步与 CKP 位 .................................................. 208
SPI 从模式 ................................................................ 199
SPI 主模式 ................................................................ 198
SSPBUF.................................................................... 198
SSPSR ...................................................................... 198
SSPM 位 .......................................................................... 195
SSPOV 位 ........................................................................ 195
SSPSTAT 寄存器 ............................................................. 194
STATUS 寄存器 ................................................................. 32
T
T1CON 寄存器 ................................................................. 105
T2CON 寄存器 ................................................................. 108
特殊功能寄存器 .................................................................. 24
特殊事件触发器 ................................................................ 178
Timer0 ................................................................................. 99
工作原理 ............................................................. 99, 102
规范 .......................................................................... 270
T0CKI ........................................................................ 100
外部时钟 ................................................................... 100
相关的寄存器 ........................................................... 101
中断 .......................................................................... 101
Timer1 ............................................................................... 102
工作模式 ................................................................... 102
规范 .......................................................................... 270
Timer1 门控
设置门控极性 ................................................... 103
同步 COUT w/Timer1........................................ 117
选择源 ...................................................... 103, 117
TMR1H 寄存器 ......................................................... 102
TMR1L 寄存器 .......................................................... 102
休眠期间工作原理 .................................................... 104
相关的寄存器 ........................................................... 106
异步计数器模式 ........................................................ 103
读写操作 ........................................................... 103
预分频器 ................................................................... 103
振荡器 ...................................................................... 103
中断 .......................................................................... 104
Timer2
相关的寄存器 ........................................................... 108
通用文件寄存器 .................................................................. 24
同步串行端口。参见 SSP
同步串行端口使能位 (SSPEN) ..................................... 195
同步串行端口模式选择位 (SSPM) ................................ 195
TRISA
寄存器 ........................................................................ 44
DS41250F_CN 第 322 页
TRISA 寄存器 .................................................................... 44
TRISB
寄存器 ........................................................................ 53
TRISB 寄存器 .................................................................... 54
TRISC
寄存器 ........................................................................ 62
TRISC 寄存器 .................................................................... 62
TRISD
寄存器 ........................................................................ 71
TRISD 寄存器 .................................................................... 71
TRISE
寄存器 ........................................................................ 76
TRISE 寄存器 .................................................................... 76
TRISF
寄存器 ........................................................................ 81
TRISF 寄存器 ..................................................................... 81
TRISG
寄存器 ........................................................................ 84
TRISG 寄存器 .................................................................... 84
TXREG ............................................................................. 123
TXSTA 寄存器 ................................................................. 130
BRGH 位 .................................................................. 132
U
UA..................................................................................... 194
USART
同步主模式
要求,同步发送 ............................................... 275
要求,同步接收 ............................................... 275
时序图,同步发送 ............................................ 275
时序图,同步接收 ............................................ 275
V
VREF。参见 ADC 参考电压
W
WCOL 位 ......................................................................... 195
WDTCON 寄存器 ............................................................. 235
WPUB 寄存器 .................................................................... 55
WWW 地址 ....................................................................... 325
WWW 在线支持 ................................................................. 13
X
写冲突检测位 (WCOL).................................................. 195
Y
延时时序 .......................................................................... 224
液晶显示 (LCD)驱动模块 ............................................. 143
引脚配置说明 ..................................................................... 18
引脚框图
PIC16F913/916, 28 引脚 ........................................... 4
PIC16F914/917, 40 引脚 ........................................... 2
PIC16F914/917, 44 引脚 ........................................... 7
PIC16F946, 64 引脚 ................................................ 10
因特网地址 ....................................................................... 325
预分频器
共享 WDT/Timer0 ..................................................... 100
切换预分频器的分配 ................................................ 100
Z
在线串行编程 (ICSP) .................................................... 238
在线调试器 ....................................................................... 239
直流特性
工业级和扩展级 ....................................................... 257
扩展级和工业级 ....................................................... 261
指令的格式 ....................................................................... 241
 2007 Microchip Technology Inc.
PIC16F917/916/914/913
指令集 .............................................................................. 241
ADDLW ..................................................................... 243
ADDWF..................................................................... 243
ANDLW ..................................................................... 243
ANDWF..................................................................... 243
BCF........................................................................... 243
BSF ........................................................................... 243
BTFSC ...................................................................... 243
BTFSS ...................................................................... 244
CALL ......................................................................... 244
CLRF......................................................................... 244
CLRW ....................................................................... 244
CLRWDT................................................................... 244
COMF ....................................................................... 244
DECF ........................................................................ 244
DECFSZ.................................................................... 245
GOTO ....................................................................... 245
INCF.......................................................................... 245
INCFSZ ..................................................................... 245
IORLW ...................................................................... 245
IORWF ...................................................................... 245
MOVF........................................................................ 246
MOVLW .................................................................... 246
MOVWF .................................................................... 246
NOP .......................................................................... 246
RETFIE ..................................................................... 247
RETLW ..................................................................... 247
RETURN ................................................................... 247
RLF ........................................................................... 248
RRF........................................................................... 248
SLEEP ...................................................................... 248
SUBLW ..................................................................... 248
SUBWF ..................................................................... 249
SWAPF ..................................................................... 249
XORLW..................................................................... 249
XORWF..................................................................... 249
综述表 ...................................................................... 242
振荡器
相关的寄存器 ..................................................... 98, 106
振荡器参数 ....................................................................... 266
振荡器规范 ....................................................................... 265
振荡器起振定时器 (OST)
规范 .......................................................................... 269
振荡器模块 ......................................................................... 87
EC ............................................................................... 87
HFINTOSC.................................................................. 87
HS ............................................................................... 87
INTOSC ...................................................................... 87
INTOSCIO................................................................... 87
LFINTOSC .................................................................. 87
LP................................................................................ 87
RC............................................................................... 87
RCIO ........................................................................... 87
XT ............................................................................... 87
振荡器开关
故障保护时钟监视器 ................................................... 97
双速时钟启动 ............................................................. 95
中断 .................................................................................. 230
ADC .......................................................................... 179
比较器 ...................................................................... 114
电平变化中断 ............................................................. 53
PORTB 电平变化中断寄存器 ................................... 231
RB0/INT/SEG0.......................................................... 231
TMR0 ........................................................................ 231
TMR1 ........................................................................ 104
现场保护 ................................................................... 233
 2007 Microchip Technology Inc.
相关的寄存器 ........................................................... 232
转换注意事项 .................................................................... 316
DS41250F_CN 第 323 页
PIC16F917/916/914/913
注:
DS41250F_CN 第 324 页
 2007 Microchip Technology Inc.
PIC16F913/914/916/917/946
MICROCHIP 网站
客户支持
Microchip 网站 (www.microchip.com)为客户提供在
线支持。客户可通过该网站方便地获取文件和信息。只
要使用常用的因特网浏览器即可访问。网站提供以下信
息:
Microchip 产品的用户可通过以下渠道获得帮助:
• 产品支持——数据手册和勘误表、应用笔记和样本
程序、设计资源、用户指南以及硬件支持文档、最
新的软件版本以及存档软件
• 一般技术支持——常见问题 (FAQ)、技术支持请
求、在线讨论组以及 Microchip 顾问计划成员名单
• Microchip 业务——产品选型和订购指南、最新
Microchip 新闻稿、研讨会和活动安排表、
Microchip 销售办事处、代理商以及工厂代表列表
•
•
•
•
•
代理商或代表
当地销售办事处
应用工程师 (FAE)
技术支持
开发系统信息热线
客户应联系其代理商、代表或应用工程师 (FAE)寻求
支持。当地销售办事处也可为客户提供帮助。本文档后
附有销售办事处的联系方式。
也可通过 http://support.microchip.com 获得网上技
术支持。
变更通知客户服务
Microchip
的 变更 通知 客户 服务 有助 于客 户了 解
Microchip 产品的最新信息。注册客户可在他们感兴趣
的某个产品系列或开发工具发生变更、更新、发布新版
本或勘误表时,收到电子邮件通知。
欲注册,请登录 Microchip 网站 www.microchip.com,
点击 “变 更通 知客 户 (Customer
Change
Notification)”服务后按照注册说明完成注册。
 2007 Microchip Technology Inc.
DS41250F_CN 第 325 页
PIC16F913/914/916/917/946
读者反馈表
我们努力为您提供最佳文档,以确保您能够成功使用 Microchip 产品。如果您对文档的组织、条理性、主题及其他有助
于提高文档质量的方面有任何意见或建议,请填写本反馈表并传真给我公司 TRC 经理,传真号码为 86-21-5407-5066。
请填写以下信息,并从下面各方面提出您对本文档的意见。
致:
TRC 经理
总页数 ________
关于: 读者反馈
发自: 姓名
公司
地址
国家 / 省份 / 城市 / 邮编
电话:(______) __________________
传真:(______)__________________
应用(选填)
:
您希望收到回复吗?是
器件:
否
PIC16F913/914/916/917/946
文献编号:
DS41250F_CN
问题:
1. 本文档中哪些部分最有特色?
2. 本文档是否满足了您的软硬件开发要求?如何满足的?
3. 您认为本文档的组织结构便于理解吗?如果不便于理解,那么问题何在?
4. 您认为本文档应该添加哪些内容以改善其结构和主题?
5. 您认为本文档中可以删减哪些内容,而又不会影响整体使用效果?
6. 本文档中是否存在错误或误导信息?如果存在,请指出是什么信息及其具体页数。
7. 您认为本文档还有哪些方面有待改进?
DS41250F_CN 第 326 页
 2007 Microchip Technology Inc.
PIC16F917/916/914/913
产品标识体系
欲订货或获取价格、交货等信息,请与我公司生产厂或销售办事处联系。
X
/XX
XXX
温度范围
封装
模式
器件编号
器件
示例:
a)
b)
器件:
PIC16F913, PIC16F913T(1)
PIC16F914, PIC16F914T(1)
PIC16F916, PIC16F916T(1)
PIC16F917, PIC16F917T(1)
PIC16F946, PIC16F946T(1)
温度范围:
I
E
=
=
-40°C 至 +85°C
-40°C 至 +125°C
封装:
ML
P
PT
SO
SP
SS
=
=
=
=
=
=
微型引线框 (QFN)
塑封 DIP
TQFP (薄型四方扁平封装)
SOIC
小型塑封 DIP
SSOP
模式:
注
PIC16F913-E/SP 301 = 扩展级温度,小型
PDIP 封装, 20 MHz, QTP 模式 #301
PIC16F913-I/SO = 工业级温度, SOIC 封装,
20 MHz
1:
T
= 卷带式封装。
3 位数字能表示 QTP 模式 (空白为其他情况)
* JW 器件可用紫外线擦除,能编程为任何的器件配置。 JW 器件符合每一类振荡器的电气要求。
 2007 Microchip Technology Inc.
DS41250F_CN 第 327 页
全球销售及服务网点
美洲
亚太地区
亚太地区
欧洲
公司总部 Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 1-480-792-7200
Fax: 1-480-792-7277
技术支持:
http://support.microchip.com
网址: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
澳大利亚 Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
奥地利 Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
印度 India - Bangalore
Tel: 91-80-4182-8400
Fax: 91-80-4182-8422
丹麦 Denmark-Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
印度 India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
法国 France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
印度 India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
德国 Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
日本 Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
意大利 Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
亚特兰大 Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 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
达拉斯 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
科科莫 Kokomo
Kokomo, IN
Tel: 1-765-864-8360
Fax: 1-765-864-8387
洛杉矶 Los Angeles
Mission Viejo, CA
Tel: 1-949-462-9523
Fax: 1-949-462-9608
圣克拉拉 Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
加拿大多伦多 Toronto
Mississauga, Ontario,
Canada
Tel: 1-905-673-0699
Fax: 1-905-673-6509
中国 - 北京
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
中国 - 成都
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
中国 - 福州
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
中国 - 香港特别行政区
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-757-2839-5507
Fax: 86-757-2839-5571
中国 - 武汉
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
韩国 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
荷兰 Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
西班牙 Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
英国 UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
马来西亚 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
中国 - 西安
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
台湾地区 - 高雄
Tel: 886-7-536-4818
Fax: 886-7-536-4803
台湾地区 - 台北
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
台湾地区 - 新竹
Tel: 886-3-572-9526
Fax: 886-3-572-6459
DS41250F_CN 第 328 页
10/05/07
 2007 Microchip Technology Inc.