PIC16F610/16HV610
PIC16F616/16HV616
数据手册
14 引脚 8 位
CMOS 闪存单片机
2007 Microchip Technology Inc. 初稿 DS41288B_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•M i c r o c h i p的产品均达到 Microchip 数据手册中所述的技术指标。
•M i c r o c h i p确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
• 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•M i c r o c h i p愿与那些注重代码完整性的客户合作。
•M i c r o c h i p或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act )》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 K
EEL OQ、 K EEL OQ 徽标、 microID 、MPLAB、 PIC、
PICmicro、 PICSTART、 PRO MATE、 rfPIC 和 SmartShunt
均为 Microchip Technology Inc. 在美国和其他国家或地区的
注册商标。
AmpLab、 FilterLab、 Linear Active Thermistor、 Migratable
Memory、 MXDEV、 MXLAB、 SEEVAL、 SmartSensor 和
The Embedded Control Solutions Company 均为 Microchip
Technology Inc. 在美国的注册商标。
Analog-for-the-Digital Age、 Application Maestro、
CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、
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
Gresham
和晶圆生产厂均通过了
与
片机外设、非易失性存储器和模拟产品方面的质量体系流程均符合
ISO/TS-16949:2002
的质量体系也已通过了
位于美国亚利桑那州
及位于加利福尼亚州
®
dsPIC
数字信号控制器、
Chandler和Tem pe
Mountain View
ISO/TS-16949:2002
KEE LOQ
。此外,
Microchip
ISO 9001:2000
、位于俄勒冈州
的全球总部、设计中心
认证。公司在
®
跳码器件、串行
在开发系统的设计和生产方面
认证。
PIC
EEPROM
®
单片机
、单
DS41288B_CN 第 ii 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
14 引脚 8 位 CMOS 闪存单片机
高性能 RISC CPU :
• 仅需学习 35 条指令:
- 除了跳转指令以外,所有指令都是单周期的
• 工作速度:
-DC- 20 MHz 振荡器 / 时钟输入
-DC- 200 ns 指令周期
• 中断能力
•8层深硬件堆栈
• 直接、间接和相对寻址模式
单片机特性:
• 精确的内部振荡器:
- 出厂时精度已校准到 ±1%,典型值
- 用户可选择频率范围: 4MHz或 8 MHz
• 省电休眠模式
• 电压范围:
- PIC16F610/616: 2.0V 到 5.5V
- PIC16HV610/616: 2.0V 到用户定义的最大
值 (见 “注”)
• 工业级和扩展级温度范围
• 上电复位 ( Power-on Reset, POR)
• 上电延时定时器 ( Power-up Timer, PWRT)和
振荡器起振定时器 ( Oscillator Start-up Timer,
OST)
• 欠压复位 ( Brown-out Reset, BOR)
• 带独立振荡器的看门狗定时器 ( Watchdog
Timer, WDT)以保证可靠运行
• 带弱上拉的主复位引脚,可复用为输入引脚
• 可编程代码保护
• 高耐用性闪存:
- 闪存耐写次数达 100,000 次
- 闪存数据保存期: > 40 年
低功耗特性:
• 待机电流:
-2.0V时典型值为 50 nA
• 工作电流:
-32kHz、 2.0V 时典型值为 20 µA
-4MHz、 2.0V 时典型值为 220 µA
• 看门狗定时器电流:
-2.0V时典型值为 1 µ A
外设特性:
• 并联稳压器 (仅限 PIC16HV610/616):
-5伏稳压
-4mA到 50 mA 并联电流范围
•11个 I/O 引脚和 1 个只能用作输入的引脚
- 高灌 / 拉电流能力,可直接驱动 LED
- 电平变化中断引脚
- 可单独编程的弱上拉
• 模拟比较器模块,具有:
-2个模拟比较器
- 片上可编程参考电压 ( CV
的 %)
- 固定参考电压
- 可从外部访问比较器输入和输出
-SR锁存器
- 内建滞后 (用户可选择)
• Timer0 :带 有 8 位可编程预分频器的 8 位定时器 / 计
数器
• 增强型 Timer1:
- 带有预分频器的 16 位定时器 / 计数器
- 外部 Timer1 门控 (计数使能)
- 如果选用 INTOSC 模式,可选择 OSC1 和
OSC2 之间的振荡器 (工作在 LP 模式下)作
为 Timer1 的振荡器
-Timer1振荡器
• 通过两个引脚进行在线串行编程 ( In-Circuit
Serial Programming
仅限 PIC16F616/16HV616 :
•A/D转换器:
-10位精度
-8路外部输入通道
-2路内部参考通道
•Timer2:带有 8 位周期寄存器、预分频器和后分频
器的 8 位定时器 / 计数器
• 增强型捕捉、比较和 PWM 模块:
-16位捕捉,最大精度 12.5 ns
-16位比较,最大精度 200 ns
-10位 PWM,带有 1、 2 或 4 路输出通道及可
编程 “死区”,最高频率 20 kHz
TM
REF)模块 (V DD
, ICSP TM)
注: 通过内部并联稳压器的电压不能超过 5V 。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 1 页
PIC16F610/616/16HV610/616
器件
PIC16F610 1024 64 11 — 2 1/1 2.0-5.5V
PIC16HV610 1024 64 11 — 2 1/1
PIC16F616 2048 128 11 8 2 2/1 2.0-5.5V
PIC16HV616 2048 128 11 8 2 2/1
程序存储器 数据存储器
闪存 (字) SRAM (字节)
I/O
10 位 A/D
(通道)
比较器
8/16 位
定时器
电压范围
2.0- 用户定义
2.0- 用户定义
PIC16F610/16HV610 14 引脚示意图 ( PDIP、 SOIC 和 TSSOP)
VDD
RA5/T1CKI/OSC1/CLKIN
RA4/T1G
/OSC2/CLKOUT
RA3/MCLR/VPP
RC5
RC4/C2OUT
RC3/C12IN3-
1
2
3
4
5
6
7
14
13
12
11
10
9
PIC16F610/16HV610
8
表 1: PIC16F610/16HV610 14 引脚汇总
I/O
RA0 13 C1IN+ — IOC
RA1 12 C12IN0- — IOC
RA2 11 C1OUT T0CKI INT/IOC
RA3
RA4 3 — T1G IOC
RA5 2 — T1CKI IOC
RC0 10 C2IN+ — — — —
RC1 9 C12IN1- — — — —
RC2 8 C12IN2- — — — —
RC3 7 C12IN3- — — — —
RC4 6 C2OUT — — — —
RC5 5 — — — — —
— 1 — — — — VDD
—1 4 — — — — VSS
注 1 : 仅用作输入。
引脚 比较器 定时器 中断 上拉 基本
(1)
4— —I O C
2 : 仅当引脚被配置为外部 MCLR 时。
VSS
RA0/C1IN+/ICSPDAT
RA1/C12IN0-/ICSPCLK
RA2/T0CKI/INT/C1OUT
RC0/C2IN+
RC1/C12IN1-
RC2/C12IN2-
有
有
有
(2)
有
有
有
ICSPDAT
ICSPCLK
—
MCLR/VPP
OSC2/CLKOUT
OSC1/CLKIN
DS41288B_CN 第 2 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
PIC16F616/16HV616 14 引脚示意图 ( PDIP、 SOIC 和 TSSOP)
VDD
RA5/T1CKI/OSC1/CLKIN
RA4/AN3/T1G/OSC2/CLKOUT
RA3/MCLR
RC5/CCP1/P1A
RC4/C2OUT/P1B
RC3/AN7/C12IN3-/P1C
/VPP
1
2
3
4
5
6
7
14
13
12
11
10
9
PIC16F616/16HV616
8
VSS
RA0/AN0/C1IN+/ICSPDAT
RA1/AN1/C12IN0-/VREF /ICSPCLK
RA2/AN2/T0CKI/INT/C1OUT
RC0/AN4/C2IN+
RC1/AN5/C12IN1-
RC2/AN6/C12IN2-/P1D
表 2: PIC16F616/16HV616 14 引脚汇总
I/O
引脚 模拟 比较器 定时器
RA0 13 AN0 C1IN+ — — IOC
RA1 12 AN1/VREF C12IN0- — — IOC
RA2 11 AN2 C1OUT T0CKI — INT/IOC
(1)
RA3
RA4 3 AN3 — T1G — IOC
RA5 2 — — T1CKI — IOC
RC0 10 AN4 C2IN+ — — — — —
RC1 9 AN5 C12IN1- — — — — —
RC2 8 AN6 C12IN2- — P1D — — —
RC3 7 AN7 C12IN3- — P1C — — —
RC4 6 — C2OUT — P1B — — —
RC5 5 — — — CCP1/P1A — — —
— 1 — — — — — — VDD
—1 4 — — — — — — VSS
注 1 : 仅用作输入。
4— — — — I O C
2 : 仅当引脚被配置为外部 MCLR
时。
CCP
中断 上拉 基本
ICSPDAT
ICSPCLK
MCLR/VPP
OSC2/CLKOUT
OSC1/CLKIN
有
有
有
有
(2)
有
有
—
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 3 页
PIC16F610/616/16HV610/616
PIC16F610/16HV610 16 引脚示意图 ( QFN)
SS
NC
V
14
13
12
11
10
9
7
8
RC2/C12IN2-
RC1/C12IN1-
RA0/C1IN+/ICSPDAT
RA1/C12IN0-/ICSPCLK
RA2/T0CKI/INT/C1OUT
RC0/C2IN1+
RA5/T1CKI/OSC1/CLKIN
RA4/T1G
/OSC2/CLKOUT
RA3/MCLR
/VPP
RC5
VDD
16
1
2
PIC16F610/
PIC16HV610
3
4
5
RC4/C2OUT
NC
15
6
RC3/C12IN3-
表 3: PIC16F610/16HV610 16 引脚汇总
I/O
RA0 12 C1IN+ — IOC
RA1 11 C12IN0- — IOC
RA2 10 C1OUT T0CKI INT/IOC
RA3
RA4 2 — T1G IOC
RA5 1 — T1CKI IOC
RC0 9 C2IN+ — — — —
RC1 8 C12IN1- — — — —
RC2 7 C12IN2- — — — —
RC3 6 C12IN3- — — — —
RC4 5 C2OUT — — — —
RC5 4 — — — — —
— 16 — — — — VDD
—1 3 — — — — VSS
注 1 : 仅用作输入。
引脚 比较器 定时器 中断 上拉 基本
有
有
有
(1)
3— —I O C
有
(2)
有
有
2 : 仅当引脚被配置为外部 MCLR 时。
ICSPDAT
ICSPCLK
MCLR/VPP
OSC2/CLKOUT
OSC1/CLKIN
—
DS41288B_CN 第 4 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
PIC16F616/16HV616 16 引脚示意图 ( QFN)
SS
NC
V
14
13
12
11
10
9
7
8
RC1/AN5/C12IN1-
RC2/AN6/C12IN2-/P1D
RA0/AN0/C1IN+/ICSPDAT
RA1/AN1/C12IN0-/V
RA2/AN2/T0CKI/INT/C1OUT
RC0/AN4/C2IN1+
REF/ICSPCLK
RA5/T1CKI/OSC1/CLKIN
RA4/AN3/T1G
/OSC2/CLKOUT
RA3/MCLR
RC5/CCP/P1A
/VPP
VDD
16
1
2
PIC16HV616
3
4
5
RC4/C2OUT/P1B
NC
15
PIC16F616/
6
RC3/AN7/C12IN3-/P1C
表 4: PIC16F616/16HV616 16 引脚汇总
I/O
引脚 模拟 比较器 定时器
RA0 12 AN0 C1IN+ — — IOC
RA1 11 AN1/V
REF C12IN0- — — IOC
RA2 10 AN2 C1OUT T0CKI — INT/IOC
(1)
RA3
3— — — — I O C
RA4 2 AN3 — T1G — IOC
RA5 1 — — T1CKI — IOC
RC0 9 AN4 C2IN+ — — — — —
RC1 8 AN5 C12IN1- — — — — —
RC2 7 AN6 C12IN2- — P1D — — —
RC3 6 AN7 C12IN3- — P1C — — —
RC4 5 — C2OUT — P1B — — —
RC5 4 — — — CCP1/P1A — — —
— 16 — — — — — — VDD
—1 3 — — — — — — VSS
注 1: 仅用作输入。
2: 仅当引脚被配置为外部 MCLR 时。
CCP
中断 上拉 基本
有
有
ICSPDAT
ICSPCLK
有
有
(2)
有
有
MCLR/VPP
OSC2/CLKOUT
OSC1/CLKIN
—
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 5 页
PIC16F610/616/16HV610/616
目录
1.0 器件概述 ....................................................................................................................................................................................... 7
2.0 存储器构成 ................................................................................................................................................................................. 11
3.0 振荡器模块 ................................................................................................................................................................................. 25
4.0 I/O 端口 ....................................................................................................................................................................................... 31
5.0 Timer0 模块 ................................................................................................................................................................................ 43
6.0 带门控的 Timer1 模块 ................................................................................................................................................................. 47
7.0 Timer2 模块 ................................................................................................................................................................................ 53
8.0 比较器模块 ................................................................................................................................................................................. 55
9.0 模数转换器 ( A/D)模块 ............................................................................................................................................................ 71
10.0 增强型捕捉 / 比较 /PWM (带自动关闭和死区)模块 ................................................................................................................. 83
11.0 稳压器 ....................................................................................................................................................................................... 105
12.0 CPU 的特殊功能 ....................................................................................................................................................................... 106
13.0 指令集汇总 ............................................................................................................................................................................... 125
14.0 开发支持 ................................................................................................................................................................................... 135
15.0 电气规范 ................................................................................................................................................................................... 139
16.0 直流和交流特性图表 ................................................................................................................................................................. 161
17.0 封装信息 ................................................................................................................................................................................... 163
附录 A : 数据手册版本历史 .......................................................................................................................................................... 169
附录 B : 从其他 PIC
索引 ................................................................................................................................................................................................... 171
Microchip 网站.................................................................................................................................................................................... 175
变更通知客户服务 .............................................................................................................................................................................. 175
客户支持............................................................................................................................................................................................. 175
读者反馈表 ......................................................................................................................................................................................... 176
产品标识体系...................................................................................................................................................................................... 177
®
器件移植.................................................................................................................................................... 169
致客户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。出
版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为
docerrors@microchip.com ,或将本数据手册后附的 《读者反馈表》传真到 86-21-5407 5066 。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A 是 DS30000
的 A 版本。
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到器
件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
•Microchip网站 http://www.microchip.com
• 当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
DS41288B_CN 第 6 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
1.0 器件概述
本数据手册涵盖 PIC16F610/616/16HV610/616 器件。
这些器件采用 14 引脚 PDIP 、 SOIC 、TSSOP 和 16 引
脚 QFN 封装。
这些器件的框图和引脚说明如下所示:
• PIC16F610/16HV610 (图 1-1,表 1-1)
• PIC16F616/16HV616 (图 1-2,表 1-2)
图 1-1 : PIC16F610/16HV610 框图
OSC1/CLKIN
OSC2/CLKOUT
T1G
程序
总线
内部
振荡器
模块
配置
闪存
1K X 14
程序
存储器
14
指令寄存器
指令
译码与
控制
时序
发生
8
13
MCLR
INT
程序计数器
8 层堆栈
(13 位)
直接地址
上电延时
定时器
振荡器
起振定时器
上电
复位
看门狗
定时器
欠压
复位
VDD
V
7
SS
数据总线
RAM
64 字节
文件
寄存器
RAM 地址
地址 MUX
3
ALU
8
W 寄存器
并联稳压器
(仅限PIC16HV610 )
9
间接
8
地址
FSR 寄存器
STATUS 寄存器
MUX
8
PORTA
RA0
RA1
RA2
RA3
RA4
RA5
PORTC
RC0
RC1
RC2
RC3
RC4
RC5
T1CKI
T0CKI
Timer0
Timer1
比较器参考电压
固定参考电压
2 个模拟比较器
C12IN2-
C12IN3-
C1OUT
C2IN+
C2OUT
C1IN+
C12IN0-
C12IN1-
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 7 页
PIC16F610/616/16HV610/616
图 1-2: PIC16F616/16HV616 框图
OSC1/CLKIN
OSC2/CLKOUT
T1G
程序
总线
内部
振荡器
模块
配置
闪存
2K X 14
程序
存储器
14
指令寄存器
指令
译码与
控制
时序
发生
8
13
MCLR
INT
程序计数器
8 层堆栈
(13 位)
直接地址
上电延时
定时器
振荡器
起振定时器
上电
复位
看门狗
定时器
欠压
复位
VDD
V
7
SS
数据总线
RAM
128 字节
文件
寄存器
RAM 地址
地址 MUX
STATUS 寄存器
3
ALU
8
W 寄存器
并联稳压器
(仅限 PIC16HV616 )
9
间接
8
地址
FSR 寄存器
MUX
8
PORTA
RA0
RA1
RA2
RA3
RA4
RA5
PORTC
RC0
RC1
RC2
RC3
RC4
RC5
T1CKI
T0CKI
VREF
AN7
AN6
模数转换器
AN3
AN4
AN5
AN2
AN1
AN0
Timer0
Timer1
比较器参考电压
固定参考电压
Timer2
2 个模拟比较器
C12IN2-
C12IN3-
C1OUT
C2IN+
C2OUT
C12IN1-
C12IN0-
C1IN+
ECCP
P1C
P1D
CCP1/P1A
P1B
DS41288B_CN 第 8 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 1-1 : PIC16F610/16HV610 引脚说明
名称 功能 输入类型 输出类型 说明
RA0/C1IN+/ICSPDAT RA0 TTL CMOS
C1IN+ AN —
ICSPDAT ST CMOS
RA1/C12IN0-/ICSPCLK RA1 TTL CMOS
C12IN0- AN —
ICSPCLK ST —
RA2/T0CKI/INT/C1OUT RA2 ST CMOS
T0CKI ST —
INT ST —
C1OUT — CMOS
RA3/MCLR
RA4/T1G
RA5/T1CKI/OSC1/CLKIN RA5 TTL CMOS
RC0/C2IN+ RC0 TTL CMOS PORTC I/O
RC1/C12IN1- RC1 TTL CMOS PORTC I/O
RC2/C12IN2- RC2 TTL CMOS PORTC I/O
RC3/C12IN3- RC3 TTL CMOS PORTC I/O
RC4/C2OUT RC4 TTL CMOS PORTC I/O
RC5 RC5 TTL CMOS PORTC I/O
V
DD V DD
V
SS V SS
图注: AN = 模拟输入或输出 CMOS = CMOS 兼容输入或输出 HV = 高电压
/VPP RA3 TTL —
MCLR
V
PP HV —
/OSC2/CLKOUT RA4 TTL CMOS
T1G
OSC2 — XTAL
CLKOUT — CMOS
T1CKI ST —
OSC1 XTAL —
CLKIN ST —
C2IN+ AN —
C12IN1- AN —
C12IN2- AN —
C12IN3- AN —
C2OUT — CMOS
ST = CMOS 电平的施密特触发器输入 TTL = TTL 兼容输入 XTAL = 晶振
ST —
ST —
电源
电源
具有可编程上拉和电平变化中断功能的 PORTA I/O
比较器 C1 的同相输入
串行编程数据 I/O
具有可编程上拉和电平变化中断功能的 PORTA I/O
比较器 C1 和 C2 的反相输入
串行编程时钟
具有可编程上拉和电平变化中断功能的 PORTA I/O
Timer0 的时钟输入
外部中断
比较器 C1 的输出
具有电平变化中断功能的 PORTA 输入
带内部上拉的主复位
编程电压
具有可编程上拉和电平变化中断功能的 PORTA I/O
Timer1 门控 (计数使能)
晶振 / 谐振器
F
OSC/4 输出
具有可编程上拉和电平变化中断功能的 PORTA I/O
Timer1 的时钟输入
晶振 / 谐振器
外部时钟输入 /RC 振荡器连接
比较器 C2 的同相输入
比较器 C1 和 C2 的反相输入
比较器 C1 和 C2 的反相输入
比较器 C1 和 C2 的反相输入
比较器 C2 的输出
—
正电源
—
参考地
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 9 页
PIC16F610/616/16HV610/616
表 1-2 : PIC16F616/16HV616 引脚说明
名称 功能 输入类型 输出类型 说明
RA0/AN0/C1IN+/ICSPDAT RA0 TTL CMOS
AN0 AN —
C1IN+ AN —
ICSPDAT ST CMOS
RA1/AN1/C12IN0-/V
RA2/AN2/T0CKI/INT/C1OUT RA2 ST CMOS
RA3/MCLR
RA4/AN3/T1G
RA5/T1CKI/OSC1/CLKIN RA5 TTL CMOS
RC0/AN4/C2IN+ RC0 TTL CMOS PORTC I/O
RC1/AN5/C12IN1- RC1 TTL CMOS PORTC I/O
RC2/AN6/C12IN2-/P1D RC2 TTL CMOS PORTC I/O
RC3/AN7/C12IN3-/P1C RC3 TTL CMOS PORTC I/O
RC4/C2OUT/P1B RC4 TTL CMOS PORTC I/O
RC5/CCP1/P1A RC5 TTL CMOS PORTC I/O
V
DD V DD
V
SS V SS
图注: AN = 模拟输入或输出 CMOS = CMOS 兼容输入或输出 HV = 高电压
REF/ICSPCLK RA1 TTL CMOS
AN1 AN —
C12IN0- AN —
V
REF AN —
ICSPCLK ST —
AN2 AN —
T0CKI ST —
INT ST —
C1OUT — CMOS
/VPP RA3 TTL —
MCLR
V
PP HV —
/OSC2/CLKOUT RA4 TTL CMOS
AN3 AN —
T1G
OSC2 — XTAL
CLKOUT — CMOS
T1CKI ST —
OSC1 XTAL —
CLKIN ST —
AN4 AN —
C2IN+ AN —
AN5 AN —
C12IN1- AN —
AN6 AN —
C12IN2- AN —
P1D — CMOS
AN7 AN —
C12IN3- AN —
P1C — CMOS
C2OUT — CMOS
P1B — CMOS
CCP1 ST CMOS
P1A — CMOS
ST = CMOS 电平的施密特触发器输入 TTL = TTL 兼容输入 XTAL = 晶振
ST —
ST —
电源
电源
具有可编程上拉和电平变化中断功能的 PORTA I/O
A/D 通道 0 的输入
比较器 C1 的同相输入
串行编程数据 I/O
具有可编程上拉和电平变化中断功能的 PORTA I/O
A/D 通道 1 的输入
比较器 C1 和 C2 的反相输入
A/D 的外部参考电压
串行编程时钟
具有可编程上拉和电平变化中断功能的 PORTA I/O
A/D 通道 2 的输入
Timer0 的时钟输入
外部中断
比较器 C1 的输出
具有电平变化中断功能的 PORTA 输入
带内部上拉的主复位
编程电压
具有可编程上拉和电平变化中断功能的 PORTA I/O
A/D 通道 3 的输入
Timer1 门控 (计数使能)
晶振 / 谐振器
F
OSC/4 输出
具有可编程上拉和电平变化中断功能的 PORTA I/O
Timer1 的时钟输入
晶振 / 谐振器
外部时钟输入 /RC 振荡器连接
A/D 通道 4 的输入
比较器 C2 的同相输入
A/D 通道 5 的输入
比较器 C1 和 C2 的反相输入
A/D 通道 6 的输入
比较器 C1 和 C2 的反相输入
PWM 输出
A/D 通道 7 的输入
比较器 C1 和 C2 的反相输入
PWM 输出
比较器 C2 的输出
PWM 输出
捕捉输入 / 比较输出
PWM 输出
—
正电源
—
参考地
DS41288B_CN 第 10 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
2.0 存储器构成
2.1 程序存储器构成
PIC16F610/616/16HV610/616 器件具有一个 13 位程序计
数器,能够 寻 址 8k x 14 的程序存储空间。只有
PIC16F610/16HV610 中的前 1k x 14 (0000h-3FF )空间
和 PIC16F616/16HV616 中的前 2k x 14 (0000h-07FFh )
空间是物理实现的。访问超出上述范围的存储单元,将回
到前 1k x 14 空间内(PIC16F610/16HV610 )和前 2K x 14
空间内 (PIC16F616/16HV616 )。复位向量位于 0000h ,
而中断向量位于 0004h (见图 2-1 )。
图 2-1 : PIC16F610/16HV610 的程
序存储器映射和堆栈
PC<12:0>
CALL, RETURN
RETFIE, RETLW
第 1 层堆栈
第 2 层堆栈
第 8 层堆栈
复位向量
13
0000h
图 2-2 : PIC16F616/16HV616 的程
序存储器映射和堆栈
PC<12:0>
CALL, RETURN
RETFIE, RETLW
第 1 层堆栈
第 2 层堆栈
第 8 层堆栈
复位向量
中断向量
片上程序
存储器
13
0000h
0004h
0005h
07FFh
0800h
1FFFh
中断向量
片上程序
存储器
0004h
0005h
03FFh
0400h
1FFFh
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 11 页
PIC16F610/616/16HV610/616
2.2 数据存储器构成
数据存储器 (见图 2-4 )被划分为两个存储区,每个存
储区由通用寄存器(General Purpose Register ,GPR)
和特殊功能寄存器(Special Function Register,SFR )
组成。特殊功能寄存器位于每个存储区的前 32 个单元
中。 PIC16F610/16HV610 Bank 0 中的寄存器单元
40h-7Fh 是通用寄存器,以静态 RAM 的形式实现。
PIC16F616/16HV616 Bank 0 中的 20h-7Fh 和 Bank 1
中的 A0h-BFh 寄存器单元是通用寄存器,以静态 RAM
的形式实现。 Bank 1 中的寄存器单元 F0h-FFh 指向
Bank 0 中的地址 70h-7Fh 。所有其他 RAM 均未实现,
读取时返回 0 。STATUS 寄存器的 RP0 位是存储区选择
位。
RP0
0 → 选择 Bank 0
1 → 选择 Bank 1
注: STATUS 寄存器的 IRP 和 RP1 位保留,且
应始终保持为 0。
2.2.1 通用寄存器文件
PIC16F610/16HV610 的寄存器文件组织为 64 x 8,而
PIC16F616/16HV616 的寄存器文件则组织为 128 x 8。
通过文件选择寄存器 (File Select Register , FSR ),
可以直接或间接地访问每个寄存器(见第 2.4 节“间接
寻址、 INDF 和 FSR 寄存器”)。
2.2.2 特殊功能寄存器
特殊功能寄存器为 CPU 和外设模块用来对器件所需操
作进行控制的寄存器 (见表 2-1 )。这些寄存器皆为静
态 RAM 。
特殊功能寄存器可分为两类,即:内核和外设。本节将
介绍与 “内核”相关的特殊功能寄存器。与外设模块相
关的特殊功能寄存器将在相应的外设功能模块章节中介
绍。
DS41288B_CN 第 12 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
图 2-3 : PIC16F610/16HV610 的数
据存储器映射
间接地址
TMR0
PCL
STATUS
FSR
PORTA
PORTC
PCLATH
INTCON
PIR1
TMR1L
TMR1H
T1CON
VRCON
CM1CON0
CM2CON0
CM2CON1
文件
地址
(1)
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
3Fh
40h
间接地址
OPTION_REG
PCL
STATUS
FSR
TRISA
TRISC
PCLATH
INTCON
PIE1
PCON
OSCTUNE
ANSEL
WPUA
IOCA
SRCON0
SRCON1
文件
地址
(1)
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
A0h
图 2-4 : PIC16F616/16HV616 的数
据存储器映射
间接地址
TMR0
PCL
STATUS
FSR
PORTA
PORTC
PCLATH
INTCON
PIR1
TMR1L
TMR1H
T1CON
TMR2
T2CON
CCPR1L
CCPR1H
CCP1CON
PWM1CON
ECCPAS
VRCON
CM1CON0
CM2CON0
CM2CON1
ADRESH
ADCON0
通用
寄存器
96 字节
文件
地址
(1)
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
间接地址
OPTION_REG
PCL
STATUS
FSR
TRISA
TRISC
PCLATH
INTCON
PIE1
PCON
OSCTUNE
ANSEL
PR2
WPUA
IOCA
SRCON0
SRCON1
ADRESL
ADCON1
通用
寄存器
32 字节
文件
地址
(1)
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
A0h
BFh
C0h
通用
寄存器
64 字节
7Fh
Bank 0
未实现的数据存储单元,读为 0。
注 1 : 不是实际存在的寄存器。
访问 70h-7Fh
Bank 1
F0h
FFh
Bank 0
未实现的数据存储单元,读为 0。
注 1 : 不是实际存在的寄存器。
6Fh
70h
7Fh
访问 70h-7Fh
Bank 1
F0h
FFh
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 13 页
PIC16F610/616/16HV610/616
表 2-1 : PIC16F610/616/16HV610/616 特殊功能寄存器汇总, BANK 0
地址 名称
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bank 0
00h INDF
01h TMR0
02h PCL
03h STATUS IRP
04h FSR
05h PORTA
06h —
07h PORTC
08h —
09h —
0Ah PCLATH
通过用 FSR 的内容寻址这个存储单元来寻址数据存储器 (不是实际存在的寄存器)
Timer0 模块寄存器
程序计数器 ( PC)的低字节
(1)
RP1
(1)
RP0 TO PD ZD CC0001 1xxx 16, 114
间接数据存储器地址指针
— — RA5 RA4 RA3 RA2 RA1 RA0 --x0 x000 31, 114
未实现
— — RC5 RC4 RC3 RC2 RC1 RC0 --xx 00xx 40, 114
未实现
未实现
— — —
程序计数器高 5 位的写缓冲器
0Bh INTCON GIE PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 18, 114
0Ch PIR1
0Dh —
0Eh TMR1L
0Fh TMR1H
—A D I F
未实现
16 位 TMR1 寄存器低字节的保持寄存器
16 位 TMR1 寄存器高字节的保持寄存器
(2)
10h T1CON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
11h T MR2
12h T2CON
13h CCPR1L
14h CCPR1H
15h CCP1CON
16h PWM1CON
17h ECCPAS
18h —
(2)
Timer2 模块寄存器
(2)
(2)
(2)
(2)
— TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 54, 114
捕捉 / 比较 /PWM 寄存器 1 的低字节
捕捉 / 比较 /PWM 寄存器 1 的高字节
(2)
P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 83, 114
(2)
PRSEN PDC6 PDC5 PDC4 PDC3 PDC2 PDC1 PDC0 0000 0000 83, 114
ECCPASE ECCPAS2 ECCPAS1 ECCPAS0 PSSAC1 PSSAC0 PSSBD1 PSSBD0 0000 0000 100, 114
未实现
19h VRCON C1VREN C2VREN
1Ah CM1CON0 C1ON C1OUT
1Bh CM2CON0 C2ON C2OUT
1Ch CM2CON1 MC1OUT MC2OUT
1Dh —
1Eh ADRESH
1Fh ADCON0
图注: – = 未实现位 (读为 0 ), u = 不变, x = 未知, q = 值取决于具体条件,阴影 = 未实现
注 1 : IRP 和 RP1 位保留,始终保持这两位清零。
未实现
(2)
左对齐 A/D 结果的高 8 位或右对齐 A/D 结果的高 2 位
(2)
ADFM VCFG CHS3 CHS2 CHS1 CHS0 GO/DONE ADON 0000 0000 76, 114
CCP1IF
(2)
C2IF C1IF —T M R 2 I F
(2)
TMR1IF -000 0-00 20, 114
TMR1CS TMR1ON 0000 0000 50, 114
VRR FVREN VR3 VR2 VR1 VR0 0000 0000 70, 114
C1OE C1POL — C1R C1CH1 C1CH0 0000 -000 60, 114
C2OE C2POL — C2R C2CH1 C2CH0 0000 -000 61, 114
— T1ACS C1HYS C2HYS T1GSS C2SYNC 00-0 0010 63, 114
2: 仅限 PIC16F616/16HV616 。
POR/BOR
时的值
所在页
xxxx xxxx 22, 114
xxxx xxxx 43, 114
0000 0000 22, 114
xxxx xxxx 22, 114
— —
— —
— —
---0 0000 22, 114
— —
xxxx xxxx 47, 114
xxxx xxxx 47, 114
0000 0000 53, 114
XXXX XXXX 84, 114
XXXX XXXX 84, 114
— —
— —
xxxx xxxx 78, 114
DS41288B_CN 第 14 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 2-2 : PIC16F610/616/16HV610/616 特殊功能寄存器汇总, BANK 1
地址 名称
Bank 1
80h INDF
81h OPTION_REG RAPU
82h PCL
83h STATUS IRP
84h FSR
85h TRISA
86h —
87h TRISC
88h —
89h —
8Ah PCLATH
8Bh INTCON GIE PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 18, 114
8Ch PIE1
8Dh —
8Eh PCON
8Fh —
90h OSCTUNE
91h ANSEL ANS7 ANS6 ANS5 ANS4 ANS3
92h PR2
93h —
94h —
95h WPUA
96h IOCA
97h —
98h —
99h SRCON0 SR1 SR0 C1SEN C2REN PULSS PULSR
9Ah SRCON1 SRCS1 SRCS0
9Bh —
9Ch —
9Dh —
9Eh ADRESL
9Fh ADCON1
图注: – = 未实现位 (读为 0 ), u = 不变, x = 未知, q = 值取决于具体条件,阴影 = 未实现
注 1 : IRP 和 RP1 位保留,始终保持这两位清零。
(3)
(3)
(3)
2: 当在配置字寄存器中 MCLRE 为 1 时, RA3 上拉使能。
3: 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
通过用 FSR 的内容寻址这个存储单元来寻址数据存储器 (不是实际存在的寄存器)
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 17, 114
程序计数器 ( PC)的低字节
(1)
间接数据存储器地址指针
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 31, 114
未实现
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 40, 114
未实现
未实现
— — —
—A D I E
未实现
— — — — — —P O RBOR ---- --qq 21, 114
未实现
— — — TUN4 TUN3 TUN2 TUN1 TUN0 ---0 0000 29, 114
Timer2 模块周期寄存器
未实现
未实现
— — WPUA5 WPUA4 — WPUA2 WPUA1 WPUA0 --11 -111 33, 114
— — IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA0 --00 0000 33, 115
未实现
未实现
未实现
未实现
未实现
左对齐结果的低 2 位或右对齐结果的低 8 位
— ADCS2 ADCS1 ADCS0 — — — — -000 ---- 77, 115
RP1
(1)
RP0 TO PD ZD CC0001 1xxx 16, 114
程序计数器高 5 位的写缓冲器
(3)
(3)
CCP1IE
— — — — — — 00-- ---- 67, 115
C2IE C1IE —T M R 2 I E
(3)
ANS2
(3)
(3)
TMR1IE -000 0-00 19, 114
ANS1 ANS0 1111 1111 32, 114
— SRCLKEN 0000 00-0 67, 115
POR/BOR
时的值
xxxx xxxx 22, 114
0000 0000 22, 114
xxxx xxxx 22, 114
— —
— —
— —
---0 0000 22, 114
— —
— —
1111 1111 53, 114
— —
— —
— —
— —
— —
— —
— —
xxxx xxxx 78, 115
所在页
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 15 页
PIC16F610/616/16HV610/616
2.2.2.1 STATUS 寄存器
STATUS 寄存器如寄存器 2-1 所示,包括:
•ALU的算术运算状态
• 复位状态
• 数据存储器 ( RAM)的存储区选择位
STATUS 寄存器与任何其他寄存器一样,可作为任何指
令的目标寄存器。如果一条影响 Z 、 DC 或 C 位的指令
以 STATUS 寄存器作为目标寄存器,那么对这三个位的
写操作将被禁止。这些位根据器件逻辑被置 1 或清零。
而且, TO
将 STATUS 寄存器作为目标寄存器的指令时,运行结果
和 PD 位均为不可写位。因此,当执行一条
因此,建议仅使用 BCF 、 BSF 、 SWAPF 和 MOVWF 指令
来改变 STATUS 寄存器的值,因为这些指令不会影响任
何状态位。关于其他不会影响任何状态位的指令,请参
见第 13.0 节 “指令集汇总”。
注 1 : PIC16F610/616/16HV610/616 未使用
STATUS 寄存器的 IRP 和 RP1 位,它们
应保持清零。不建议使用这些位,因为这
可能会影响与未来产品的向上兼容性。
2 : 在减法运算中, C 和 DC 位分别作为借位
位和半借位位。请参见 SUBLW 和 SUBWF
指令中的示例。
可能会与预想的不同。
例如,指令 CLRF STATUS 将会清除 STATUS 寄存器中
的高三位,并将 Z 位置 1 。这将使 STATUS 寄存器中的
值成为 000u u1uu (其中 u = 不变)。
寄存器 2-1 : STATUS:状态寄存器
保留 保留
IRP RP1 RP0 TO PD ZD CC
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
注 1: 对于借位
IRP:该位保留且应保持为 0 。
RP1:该位保留且应保持为 0 。
RP0:寄存器存储区选择位 (用于直接寻址)
1 = Bank 1 (80h–FFh)
0 = Bank 0 (00h–7Fh)
TO
1 = 在上电、执行 CLRWDT 或 SLEEP 指令后
0 = 产生了 WDT 超时
PD
1 = 在上电或执行 CLRWDT 指令后
0 = 执行 SLEEP 指令
Z:全零标志位
1 = 算术运算或逻辑运算的结果为零
0 = 算术运算或逻辑运算的结果不为零
DC:半进位 / 借位
1 = 结果的第 4 个低位发生了进位
0 = 结果的第 4 个低位未发生进位
C:进位 / 借位
1 = 结果的最高位发生了进位
0 = 结果的最高位未发生进位
装入源寄存器的最高位或最低位。
:超时位
:掉电位
位(ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令),对于借位,极性是相反的。
(1)
位
(ADDWF 、 ADDLW 、 SUBLW 和 SUBWF 指令)
,极性是相反的。减法是通过加上第二个操作数的二进制补码来执行的。对于移位指令 (RRF 和 RLF ), 此 位
DS41288B_CN 第 16 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
2.2.2.2 OPTION 寄存器
OPTION 寄存器是可读写寄存器,有各种控制位,用来
配置以下各项:
• Timer0/WDT 预分频器
• 外部 RA2/INT 中断
•Timer0
•PORTA的弱上拉
寄存器 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
RAPU
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
INTEDG T0CS T0SE PSA PS2 PS1 PS0
注: 要使 Timer0 获得 1:1 的预分频比,可将
OPTION 寄存器的 PSA 位置为 1,以将预
分频器分配给 WDT 。请参见第 5.1.3 节“可
软件编程的预分频器”。
bit 7
RAPU
:PORTA 上拉使能位
1 = 禁止 PORTA 上拉
0 = 通过各端口锁存值使能 PORTA 上拉
bit 6
INTEDG:中断触发边沿选择位
1 = RA2/INT 引脚的上升沿触发中断
0 = RA2/INT 引脚的下降沿触发中断
bit 5
T0CS : Timer0 时钟源选择位
1 = RA2/T0CKI 引脚上的电平跳变
0 = 内部指令周期时钟 (F
bit 4
T0SE : Timer0 时钟源边沿选择位
1 = 在 RA2/T0CKI 引脚信号从高至低跳变时,递增计数
0 = 在 RA2/T0CKI 引脚信号从低至高跳变时,递增计数
bit 3
PSA:预分频器分配控制位
1 = 预分频器分配给 WDT
0 = 预分频器分配给 Timer0 模块
bit 2-0 PS<2:0>:预分频比选择位
位值 TIM ER0 预分频比 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
OSC/4)
1 : 1
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 17 页
PIC16F610/616/16HV610/616
2.2.2.3 INTCON 寄存器
INTCON 寄存器是可读写的寄存器,它包含 TMR0 寄存
器溢出、PORTA 电平变化和外部 RA2/INT 引脚中断等
各种使能控制位和标志位。
注: 当中断条件发生时,无论相应中断允许位
或全局中断允许位 GIE (在 INTCON 寄存
器中)的状态如何,中断标志位都将被置
1 。用户软件应在允许一个中断前,先将相
应的中断标志位清零。
寄存器 2-3 : INTCON :中断控制寄存器
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
GIE PEIE T0IE INTE RAIE T0IF INTF RAIF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
GIE:全局中断允许位
1 = 允许所有未被屏蔽的中断
0 = 禁止所有中断
PEIE:外设中断允许位
1 = 允许所有未被屏蔽的外设中断
0 = 禁止所有外设中断
T0IE: Timer0 溢出中断允许位
1 = 允许 Timer0 中断
0 = 禁止 Timer0 中断
INTE: RA2/INT 外部中断允许位
1 = 允许 RA2/INT 外部中断
0 = 禁止 RA2/INT 外部中断
RAIE: PORTA 电平变化中断允许位
1 = 允许 PORTA 电平变化中断
0 = 禁止 PORTA 电平变化中断
T0IF: Timer0 溢出中断标志位
1 = Timer0 寄存器溢出 (必须用软件清零)
0 = Timer0 寄存器未溢出
INTF: RA2/INT 外部中断标志
1 = RA2/INT 外部中断发生 (必须用软件清零)
0 = RA2/INT 外部中断没有发生
RAIF: PORTA 电平变化中断标志位
1 = 至少有一个 PORTA <5:0> 引脚状态发生变化时 (必须用软件清零)
0 = PORTA <5:0> 引脚状态均未发生变化
(1)
(2)
注 1: IOCA 寄存器也必须被使能。
2: 当 TMR0 计数出现计满返回时, T0IF 位将被置 1 。 TMR0 计数值在复位时不变,而且应在清除 T0IF 位之
前对其进行初始化。
DS41288B_CN 第 18 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
2.2.2.4 PIE1 寄存器
PIE1 寄存器包含外设中断允许位,如寄存器 2-4 所示。
寄存器 2-4 : PIE1 :外设中断允许寄存器 1
U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0
—A D I E
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
(1)
CCP1IE
(1)
C2IE C1IE —T M R 2 I E
注: 必须将 INTCON 寄存器的 PEIE 位置 1 ,以
允许外设中断。
(1)
TMR1IE
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
注 1 : 仅限 PIC16F616/16HV616 。 PIC16F610/16HV610 未实现,读为 0 。
未实现:读为 0
ADIE :A/D 转换器 (ADC )中断允许位
1 = 允许 ADC 中断
0 = 禁止 ADC 中断
CCP1IE: CCP1 中断允许位
1 = 允许 CCP1 中断
0 = 禁止 CCP1 中断
C2IE:比较器 C2 中断允许位
1 = 允许比较器 C2 中断
0 = 禁止比较器 C2 中断
C1IE:比较器 C1 中断允许位
1 = 允许比较器 C1 中断
0 = 禁止比较器 C1 中断
未实现:读为 0
TMR2IE: Timer2 与 PR2 匹配中断允许位
1 = 允许 Timer2 与 PR2 匹配中断
0 = 禁止 Timer2 与 PR2 匹配中断
TMR1IE: Timer1 溢出中断允许位
1 = 允许 Timer1 溢出中断
0 = 禁止 Timer1 溢出中断
(1)
(1)
(1)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 19 页
PIC16F610/616/16HV610/616
2.2.2.5 PIR1 寄存器
PIR1 寄存器包含外设中断标志位,如寄存器 2-5 所示。
寄存器 2-5 : PIR1 :外设中断请求寄存器 1
U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0
—A D I F
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
(1)
CCP1IF
(1)
C2IF C1IF —T M R 2 I F
注: 当中断条件发生时,无论相应中断允许位或
全局中断允许位 GIE (在 INTCON 寄存器
中)的状态如何,中断标志位都将被置 1。
用户软件应在允许一个中断前,先将相应的
中断标志位清零。
(1)
TMR1IF
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
未实现:读为 0
ADIF :A/D 中断标志位
1 = A/D 转换完成
0 = A/D 转换未完成或尚未开始
CCP1IF :CCP1 中断标志位
捕捉模式:
1= 发生了 TMR1 寄存器捕捉 (必须用软件清零)
0= 未发生 TMR1 寄存器捕捉
比较模式:
1= 发生了 TMR1 寄存器的比较匹配 (必须用软件清零)
0= 未发生 TMR1 寄存器的比较匹配
模式:
PWM
在此模式下不使用
C2IF : 比较器 C2 中断标志位
1 = 比较器 C2 输出已改变 (必须用软件清零)
0 = 比较器 C2 输出未改变
C1IF: 比较器 C1 中断标志位
1 = 比较器 C1 输出已改变 (必须用软件清零)
0 = 比较器 C1 输出未改变
未实现:读为 0
TMR2IF: Timer2 与 PR2 匹配中断标志位
1 = Timer2 与 PR2 发生匹配 (必须用软件清零)
0 = Timer2 与 PR2 未发生匹配
TMR1IF: Timer1 溢出中断标志位
1 = Timer1 寄存器溢出 (必须用软件清零)
0 = Timer1 寄存器未溢出
(1)
(1)
(1)
注 1 : 仅限 PIC16F616/16HV616。 PIC16F610/16HV610 未实现,读为 0 。
DS41288B_CN 第 20 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
2.2.2.6 PCON 寄存器
电源控制 (PCON )寄存器 (见表 12-2 )包含区分以
下各种复位的标志位:
• 上电复位 ( POR
• 欠压复位 ( BOR
• 看门狗定时器复位 ( WDT)
• 外部 MCLR
PCON 寄存器还控制 BOR
PCON 寄存器位如寄存器 2-6 所示。
寄存器 2-6 : PCON :电源控制寄存器
U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0
— — — — — —P O RBOR
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
)
)
复位
的软件使能。
(1)
bit 7-2
bit 1
bit 0
注 1 : 如果禁止欠压复位,则读为 0 。
未实现:读为 0
POR
:上电复位状态位
1 = 未发生上电复位
0 = 发生上电复位 (上电复位发生后,必须用软件置 1 )
BOR:欠压复位状态位
1 = 未发生欠压复位
0 = 发生欠压复位 (欠压复位发生后,必须用软件置 1 )
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 21 页
PIC16F610/616/16HV610/616
2.3 PCL 和 PCLATH
程序计数器 ( PC)为 13 位宽。其低 8 位来自可读写的
PCL 寄存器,高 5 位(PC<12:8>)来自 PCLATH,不
能直接读写。只要发生复位,PC 就将被清零。图 2-5 显
示了装入 PC 值的两种情形。图 2-5 上方的例子说明在写
PCL (PCLATH<4:0> → PCH )时是如何装入 PC 的。
图 2-5 下方的例子说明了在执行 CALL 或 GOTO 指令期间
(PCLATH<4:3> → PCH),是如何装入 PC 的。
图 2-5 : 不同情况下 PC 的装入
PCH PCL
12 8 7 0
PC
PCLATH<4:0>
5
PCLATH
PCH PCL
12 11 10 0
PC
2
87
PCLATH<4:3>
PCLATH
11
2.3.1 修改 PCL
在执行以 PCL 寄存器作为目标寄存器的任何指令的同
时,也会使程序计数器的 PC<12:8> 位(PCH)被
PCLATH 寄存器的内容所代替。这使得可以通过将所需
的高 5 位写入PCLATH 寄存器来改变程序计数器的整个
内容。当将低 8 位写入 PCL 寄存器时,程序计数器的所
有 13 位都将变为 PCLATH 寄存器中和那些被写入 PCL
寄存器的值。
计算 GOTO 指令是通过向程序计数器加一个偏移量
(ADDWF PCL )来实现的。当通过修改 PCL 寄存器跳
转到查找表或程序转移表 (计算 GOTO )时,应特别注
意。假设 PCLATH 被设置为表起始地址,如果表长度大
于 255 条指令,或如果在表中间存储器地址的低 8 位从
0xFF 计满返回到 0x00 ,那 么 PCLATH 必须为在表起始
和表中的目标存储单元之间发生计满返回的每个地址进
行递增。
更多信息,请参见应用笔记 AN556 ,“Implementing a
Table Read ”(DS00556 )。
以 PCL 为目标
寄存器的指令
8
ALU 运算结果
GOTO, CALL
操作码 <10:0>
2.3.2 堆栈
PIC16F610/616/16HV610/616 系列具有8 层 x13位宽
的硬件堆栈 (见图 2-1 )。堆栈空间既不占用程序存储
空间,也不占用数据存储空间,而且堆栈指针是不可读
写的。当执行 CALL 指令或当中断导致程序跳转时,PC
值将被压入堆栈。而在执行 RETURN 、RETLW或RETFIE
指令时,将从堆栈中弹出 PC 值。PCLATH 不受压栈或
出栈操作的影响。
堆栈的工作原理犹如循环缓冲区。这意味着当压栈 8 次
后,第 9 次压入堆栈的值将会覆盖第一次压栈时所保存
的值,而第 10 次压入堆栈的值将覆盖第二次压栈时保
存的值,依此类推。
注 1 : 不存在指明堆栈是否上溢或下溢的状态标
志位。
2 : 不存在被称为 PUSH 或 POP 的指令 / 助
记符。堆栈的压入或弹出是源于执行了
CALL 、RETURN、RETLW和 RETFIE 指令,
或源于跳转到中断向量地址。
2.4 间接寻址、 INDF 和 FSR 寄存器
INDF 寄存器不是实际存在的寄存器,对 INDF 寄存器进
行寻址将产生间接寻址。
使用 INDF 寄存器可进行间接寻址。任何使用 INDF 寄
存器的指令,实际上是对文件选择寄存器(FSR )所 指
向的数据进行存取。间接对 INDF 进行读操作将返回
00h 。间接对 INDF 寄存器进行写操作将导致空操作(尽
管可能会影响状态位)。通过将 8 位的 FSR 寄存器与
STATUS 寄存器的 IRP 位进行组合可得到一个有效的 9
位地址,如图 2-7 所示。
例 2-1 给出了一个使用间接寻址将 RAM 地址单元
40h-4Fh 清零的简单程序。
例 2-1 : 间接寻址
MOVLW 0x40 ;initialize pointer
MOVWF FSR ;to RAM
NEXT CLRF INDF ;clear INDF register
INCF FSR, F ;inc pointer
BTFSS FSR,4 ;all done?
GOTO NEXT ;no clear next
CONTINUE ;yes continue
DS41288B_CN 第 22 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
图 2-6 : PIC16F610/16HV610 的直接 / 间接寻址
直接寻址
RP1
(1)
RP0 6
来自操作码
0
IRP
间接寻址
(1)
7
文件选择寄存器
0
存储区选择
关于存储器映射的详细信息,请参见图 2-3 。
未实现的数据存储单元,读为 0 。
注 1 : RP1 和 IRP 位保留;始终保持这两位清零。
2 : 对 Bank 2 和 Bank 3 的访问会分别映射到 Bank 0 和 Bank 1 。
存储单元选择
数据存储器
00h
00 01 10 11
20h
40h
70h
7Fh
Bank 0 Bank 1 Bank 2 Bank 3
未使用
图 2-7 : PIC16F616/16HV616 的直接 / 间接寻址
RP1
(1)
RP0 6
来自操作码
0
存储区选择
180h
(2)
1FFh
间接寻址 直接寻址
(1)
7
IRP
文件选择寄存器
存储单元选择
0
存储区选择 存储单元选择
00h
数据存储器
40h
70h
7Fh
关于存储器映射的详细信息,请参见图 2-4 。
未实现的数据存储单元,读为 0 。
注 1 : RP1 和 IRP 位保留;始终保持这两位清零。
2 : 对 Bank 2 和 Bank 3 的访问会分别映射到 Bank 0 和 Bank 1 。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 23 页
00 01 10 11
(2)
未使用
Bank 0 Bank 1 Bank 2 Bank 3
存储区选择
180h
1FFh
存储单元选择
PIC16F610/616/16HV610/616
注:
DS41288B_CN 第 24 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
3.0 振荡器模块
3.1 概述
振荡器模块具有多种时钟源和选择特性,从而使之可广
泛使用于各种应用中,同时最大限度地发挥应用性能并
降低功耗。图 3-1 为振荡器模块的框图。
时钟源可配置为来自外部振荡器、石英晶体谐振器、陶
瓷谐振器以及阻容(Resistor-Capacitor ,RC )电路。此
外,系统时钟源还可配置为两种可选速度之一:内部或
外部系统时钟源。
图 3-1 : PIC ® MCU 时钟源框图
外部振荡器
OSC2
振荡器模块可配置为以下 8 种时钟模式之一。
1. EC——外部时钟, OSC2/CLKOUT 用作 I/O 引
脚。
2. LP—— 32 kHz 低功耗晶振模式。
3. XT——中等增益晶振或陶瓷谐振器模式。
4. HS——高增益晶振或陶瓷谐振器模式。
5. RC——外部阻容 ( RC), 通 过 OSC2/CLKOUT
引脚输出 F
OSC/4 信号。
6. RCIO——外部阻容(RC), OSC2/CLKOUT 用
作 I/O 引脚。
7. INTOSC——内部振荡器,通过 OSC2 引脚输出
OSC/4 信号, OSC1/CLKIN 用作 I/O 引脚。
F
8. INTOSCIO——内部振荡器, OSC1/CLKIN 和
OSC2/CLKOUT 用作 I/O 引脚。
通过配置字寄存器 (CONFIG )中的 FOSC<2:0> 位来
配置时钟源模式。内部振荡器模块提供一种可选的系统
时钟模式,4MHz(后分频器)或 8MHz(INTOSC )。
FOSC<2:0>
IOSCFS
(配置字寄存器)
OSC1
Sleep
INTOSC
8 MHz
内部振荡器
后分频器
4 MHz
LP, XT, HS, RC, RCIO, EC
INTOSC
MUX
系统时钟
(CPU 和外设)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 25 页
PIC16F610/616/16HV610/616
3.2 时钟源模式
时钟源模式可分为外部和内部模式。
• 外部时钟模式依靠外部电路提供时钟源。例如:振
荡器模块 (EC 模式)、石英晶体谐振器或陶瓷谐
振器 (LP 、 XT 和 HS 模式)以及阻容 (RC )模
式电路。
• 内部时钟源内置于振荡器模块中。振荡器模块有两
种时钟频率供选择:4MHz和 8MHz
通过配置字寄存器的 FOSC<2:0> 位在外部或内部时钟
源之间选择系统时钟。
3.3 外部时钟模式
3.3.1 EC 模式
外部时钟 (EC )模式允许外部产生的逻辑电平作为系
统时钟源。工作在此模式下时,外部时钟源连接到
OSC1 输入,OSC2 引脚可用作通用 I/O。图 3-2 给出了
EC 模式的引脚连接。
当选取 EC 模式时,振荡器起振定时器 (OST )被禁
止。因此,上电复位(POR )后或者从休眠中唤醒后的
操作不存在延时。因为 PIC
的,停止外部时钟输入将使器件暂停工作并保持所有数
据完整。当再次启动外部时钟时,器件恢复工作,就好
像没有停止过一样。
®
MCU 的设计是完全静态
3.3.2 振荡器起振定时器 ( OST)
如果振荡器模块被配置为 LP 、 XT 或 HS 模式,则振荡
器起振定时器 (OST )对来自 OSC1 的振荡计数 1024
次。这发生在上电复位(POR )和上电延时定时器
(PWRT )超时 (如果配置了) ,或从休眠中唤醒后。
在此期间,程序计数器不递增,程序执行暂停。OST 确
保使用石英晶体谐振器或陶瓷谐振器的振荡器电路已经
起振并为PIC16F610/16HV610 和PIC16F616/16HV616
器件提供稳定的系统时钟。当在时钟源之间切换时,需
要一定的延时以使新时钟稳定。表 3-1 给出了振荡器延
时的例子。
图 3-2 :外 部 时 钟 (EC)模式的工作原理
来自外部
系统的时钟
I/O
注 1 :第1.0 节 “器件概述”中列出了备用引脚功
能。
OSC1/CLKIN
®
MCU
PIC
OSC2/CLKOUT
(1)
表 3-1 : 振荡器延时示例
切换自 切换到 频率 振荡器延时
休眠 /POR
休眠 /POR EC 或 RC
休眠 /POR LP 、 XT 或 HS 32 kHz 到 20 MHz 1024 个时钟周期 (OST )
INTOSC
4MHz到 8MHz 振荡器预热延时 (T
DC – 20 MHz
2 个指令周期
WARM)
DS41288B_CN 第 26 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
3.3.3 LP、 XT 和 HS 模式
LP、 XT 和 HS 模式支持使用连接到 OSC1 和 OSC2 引
脚的石英晶体谐振器或陶瓷谐振器 (图 3-3 )。模式选
择内部反相放大器的低、中或高增益设定,以支持各种
谐振器类型及速度。
LP 振荡器模式选择内部反相放大器的最低增益设定。
LP 模式的电流消耗在三种模式中最小。该模式设计用来
驱动仅 32.768 kHz 的音叉(Tuning Fork )型晶振(钟
表晶振)。
XT 振荡器模式选择内部反相放大器的中等增益设定。
XT 模式的电流消耗在三种模式中居中。该模式最适合
驱动具备中等驱动级别规格要求的谐振器。
HS 振荡器模式选择内部反相放大器的最高增益设定。
HS 模式的电流消耗在三种模式中最大。该模式最适合
驱动需要高驱动设定的谐振器。
图 3-3 和图 3-4 分别给出了石英晶体谐振器和陶瓷谐振
器的典型电路。
图 3-3 : 石英晶振的工作原理 (LP 、
XT 或 HS 模式)
PIC® MCU
OSC1/CLKIN
C1
石英
晶振
RF
(2)
至内部
逻辑
Sleep
注 1 : 石英晶振的特性随类型、封装和制造商而
变化。要了解规格说明和推荐应用,应查阅
制造商提供的数据手册。
2 : 应始终验证振荡器在应用要求的 V
度范围内的性能。
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 )
图 3-4 : 陶瓷谐振器的工作原理
(XT 或 HS 模式)
PIC® MCU
OSC1/CLKIN
C1
RP
(3)
RF
(2)
至内部
逻辑
Sleep
DD 和温
OSC2/CLKOUT
C2
注 1: 对于低驱动级别的石英晶振,可能需要串联一
2: R
(1)
R
S
个电阻 ( R
F 的值随选取的振荡模式而变化 (典型值在
2MΩ 到 10 M Ω 之间)。
S)。
OSC2/CLKOUT
C2
陶瓷
谐振器
注 1 : 对于低驱动级别的陶瓷谐振器,可能需要串联
一个电阻 (R
F 的值随选取的振荡模式而变化 (典型值在
2 : R
2MΩ 到 10 M Ω 之间)。
3 :为使陶瓷谐振器正常工作,可能需要并联一个
反馈电阻 (R
(1)
S
R
S)。
P)。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 27 页
PIC16F610/616/16HV610/616
3.3.4 外部 RC 模式
外部阻容 (RC )模式支持使用外部 RC 电路。对时钟
精度要求不高时,这使设计人员有了很大的频率选择空
间,且保持成本最低。有以下两种模式:RC 和 RCIO。
在 RC 模式下, RC 电路连接到 OSC1 引脚。 OSC2/
CLKOUT 引脚输出为 RC 振荡器频率的 4 分频。该信号
可用来为外部电路、同步、校准、测试或其他应用需求
提供时钟。图 3-5 给出了外部 RC 模式的连接图。
图 3-5 :外 部RC 模式
VDD
REXT
OSC1/CLKIN
CEXT
VSS
F
OSC/4 或
(2)
I/O
推荐值: 10 k Ω ≤ REXT ≤ 100 k Ω , <3V
注 1 :第1.0 节 “器件概述”中列出了备用引脚功
能。
2 : 输出取决于 RC 或 RCIO 时钟模式。
OSC2/CLKOUT
PIC® MCU
(1)
3 kΩ ≤ R
C
EXT ≤ 100 kΩ, 3-5V
EXT > 20 pF, 2-5V
内部
时钟
3.4 内部时钟模式
振荡器模块提供一个可选的系统时钟源,4MHz 或
8MHz 。通过配置字的 IOSCFS 位来配置可选频率。
内部振荡器的频率可使用 OSCTUNE 寄存器通过软件由
用户来调节。
3.4.1 INTOSC 和 INTOSCIO 模式
当在配置字寄存器 (CONFIG )中使用振荡器选择或
FOSC<2:0> 位对器件进行编程时,在 INTOSC 和
INTOSCIO 模式下将内部振荡器配置为系统时钟源。更
多信息,请参见第 12.0 节“CPU 的特殊功能”。
在 INTOSC 模式下, OSC1/CLKIN 可用作通用 I/O 。
OSC2/CLKOUT 输出所选内部振荡器频率的 4 分频。
CLKOUT 信号可用来为外部电路、同步、校准、测试或
其他应用需求提供时钟。
在 INTOSCIO 模式下,OSC1/CLKIN 和 OSC2/CLKOUT
可用作通用 I/O 。
在 RCIO 模式下, RC 电路连接到 OSC1 。 OSC2 成为
额外的通用 I/O 引脚。
RC 振荡器频率与供电电压、电阻 (R
EXT)值以及工作温度有关。影响振荡器频率的其他
( C
EXT)和电容
因素有:
• 电压门限值变化
• 元件容差
• 不同封装的电容
用户还应考虑因所使用的外部 RC 元件的容差而导致的
差异。
DS41288B_CN 第 28 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
3.4.1.1 OSCTUNE 寄存器
该振荡器在出厂时已校准,但可通过在软件中写入
OSCTUNE 寄存器 (寄存器 3-1)来进行调节。
OSCTUNE 寄存器的默认值为 0 。该值是一个 5 位的二
进制补码。
当 OSCTUNE 寄存器被修改时,该频率将开始转变为新
频率。转变期间,代码将继续执行。是否已发生频率转
变并无明确的指示。
寄存器 3-1 : 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 = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-5
bit 4-0
未实现:读为 0
TUN<4:0> :频率调节位
01111 = 最高频率
01110 =
•
•
•
00001 =
00000 = 振荡器模块运行在出厂校准的频率上
11111 =
•
•
•
10000 = 最低频率
表 3-2 : 与时钟源相关的寄存器汇总
名称
CONFIG
OSCTUNE
图注: x = 未知, u = 不变, – = 未实现位 (读为 0)。振荡器不使用阴影单元。
注 1 : 其他 (非上电)复位包括在正常操作期间的 MCLR
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 29 页
(2)
2: 请参见配置字寄存器 (寄存器 12-1 )了解所有寄存器位的操作。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
IOSCFS CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0 — —
— — — TUN4 TUN3 TUN2 TUN1 TUN0 ---0 0000 ---u uuuu
复位和看门狗定时器复位。
POR/BOR 时的值所有其他复位
时的值
(1)
PIC16F610/616/16HV610/616
注:
DS41288B_CN 第 30 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
4.0 I/O 端口
写操作意味着总是先读端口引脚电平状态,然后修改这
个值,最后再写入该端口的数据锁存器。当 MCLRE = 1
器件具有多达 11 个通用 I/O 引脚和 1 个输入引脚。根据
外设的使能情况,部分甚至全部引脚可能不能用于通用
I/O 。通常而言,当某个外设使能时,其相关引脚可能不
能用作通用 I/O 引脚。
4.1 PORTA 和 TRISA 寄存器
PORTA 是一个 6 位宽的双向端口,对应的数据方向寄存
器是 TRISA (寄存器 4-2 )。将 TRISA 某位置 1 (= 1)
时,会将 PORTA 的相应引脚设为输入 (即,禁止输出
驱动器)。将 TRISA 某位清零 (= 0 )时,会将 PORTA
的相应引脚设为输出 (即,使能输出驱动器并将输出锁
存器中的内容输出到选中引脚)。 RA3 是个例外,仅可
作为输入引脚,其 TRIS 位总是读为 1 。例 4-1 显示了如
何初始化 PORTA。
读 PORTA 寄存器 (寄存器 4-1)将读出相应引脚的状
态,而对其进行写操作则是将数据写入端口锁存器。所
有写操作都是 “读-修改-写”操作。因此,对端口的
时, RA3 读为 0 。
TRISA 寄存器控制着 PORTA 引脚的方向,即使它们用
作模拟输入引脚。当引脚用于模拟输入时,用户必须确
保 TRISA 寄存器中的各位保持置 1 。配置为模拟输入的
I/O 引脚总是读为 0 。
注: 必须对 ANSEL 寄存器进行初始化,以将模
拟通道配置为数字输入。配置为模拟输入
的引脚将读为 0 ,且不能产生中断。
例 4-1 :初 始 化PORTA
BCF STATUS,RP0 ;Bank 0
CLRF PORTA ;Init PORTA
BSF STATUS,RP0 ;Bank 1
CLRF ANSEL ;digital I/O
MOVLW 0Ch ;Set RA<3:2> as inputs
MOVWF TRISA ;and set RA<5:4,1:0>
;as outputs
BCF STATUS,RP0 ;Bank 0
寄存器 4-1 : PORTA :PORTA 寄存器
U-0 U-0 R/W-x R/W-0 R-x R/W-0 R/W-0 R/W-0
— — RA5 RA4 RA3 RA2 RA1 RA0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6 未实现:读为 0
bit 5-0
RA<5:0> :PORTA I/O 引脚位
1 = PORTA 引脚 > V
0 = PORTA 引脚 < VIL
IH
寄存器 4-2 : TRISA :PORTA 三态寄存器
U-0 U-0 R/W-1 R/W-1 R-1 R/W-1 R/W-1 R/W-1
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6 未实现:读为 0
bit 5-0
注 1: TRISA<3> 总是读为 1 。
2: 在 XT 、 HS 和 LP 振荡器模式下, TRISA<5:4> 总是读为 1 。
TRISA<5:0>: PORTA 三态控制位
1 = PORTA 引脚配置为输入 (三态)
0 = PORTA 引脚配置为输出
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 31 页
PIC16F610/616/16HV610/616
4.2 引脚的其他功能
PIC16F610/616/16HV610/616 中每个 PORTA 引脚都具
有电平变化中断功能和弱上拉功能。以下三节将对这些
功能进行介绍。
4.2.1 ANSEL 寄存器
ANSEL 寄存器用于将 I/O 引脚的输入模式配置为模拟。
将相应的 ANSEL 位设置为高电平将使引脚上的所有数
字读数都读为 0 ,并允许引脚上的模拟功能正确操作。
ANSEL 位的状态不会影响数字输出功能。 TRIS 清零且
ANSEL 置 1 的引脚将仍作为数字输出工作,但输入模
式将变为模拟。当在受影响的端口上执行读-修改-写
指令时,这会引起意外操作。
4.2.2 弱上拉
除 RA3 外的每个 PORTA 引脚都具有可单独配置的内部
弱上拉功能。控制位 WPUAx 用于使能或禁止每个上拉
功能。请参见寄存器 4-4 。当端口引脚被配置为输出时,
这些弱上拉会自动关闭。上电复位时上拉功能被
OPTION 寄存器的 RAPU
RA3 上的弱上拉自动使能;当 RA3 配置为 I/O 时则被禁
止。没有对 MCLR
寄存器 4-3 : ANSEL :模拟选择寄存器
位禁止。当配置为 MCLR 时,
上拉的软件控制。
4.2.3 电平变化中断
每个 PORTA 引脚都可单独配置为电平变化中断引脚。
控制位 IOCAx 用于使能或禁止各引脚的中断功能。请参
见寄存器 4-5 。电平变化中断功能在上电复位时被禁止。
对于允许了电平变化中断功能的引脚,其值将与上次读
取的 PORTA 的旧锁存值相比较。所有与上次读取值不
匹配的输出进行或运算,运算结果用来设置 INTCON 寄
存器 (寄存器 2-3 )中的 PORTA 电平变化中断标志位
(RAIF )。
该中断可将器件从休眠状态唤醒。用户在中断服务程序
中可通过以下方式清除该中断:
a )对PORTA 的任何读或写操作。这将结束不匹配
条件,然后:
b ) 清零标志位 RAIF 。
不匹配条件将继续将标志位 RAIF 置 1 。读 PORTA 将结
束不匹配条件并将标志位 RAIF 清零。保持上一次读取
值的锁存器不受 MCLR
位之后,如果存在不匹配情况, RAIF 标志还将继续被
置 1 。
注: 当正在执行任何 PORTA 操作时发生了 I/O
引脚电平变化,则 RAIF 中断标志位可能不
会被置 1 。
或 BOR 复位的影响。在这些复
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 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-0
注 1: 将引脚设置为模拟输入将自动禁止数字输入电路、弱上拉和电平变化中断 (如果具有这些功能的话)。必
ANS<7:0>:模拟选择位
将 AN<7:0> 引脚的功能分别选为模拟或数字。
1 = 模拟输入。引脚被配置为模拟输入
0 = 数字 I/O 。分配引脚为端口或特殊功能。
须将相应的 TRIS 位设置为输入模式,以允许从外部控制引脚电压。
(1)
。
DS41288B_CN 第 32 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
寄存器 4-4: WPUA:弱上拉 PORTA 寄存器
U-0 U-0 R/W-1 R/W-1 U-0 R/W-1 R/W-1 R/W-1
— — WPUA5 WPUA4 — WPUA2 WPUA1 WPUA0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6 未实现:读为 0
bit 5-4
bit 3 未实现:读为 0
bit 2-0
WPUA<5:4>:弱上拉控制位
1 = 上拉使能
0 = 上拉禁止
WPUA<2:0>:弱上拉控制位
1 = 上拉使能
0 = 上拉禁止
注 1: 必须使能全局 RAPU
2: 如果引脚处于输出模式,则自动禁止弱上拉功能 (TRISA = 0 )。
3: 当在配置字中将 RA3 配置为 MCLR
4: 在 XT 、 HS 和 LP 振荡器模式下, WPUA<5:4> 总是读为 1 。
位才能使能单独的上拉功能。
时, RA3 上拉被使能,当 RA3 被配置为输入时上拉功能被禁止。
寄存器 4-5 : IOCA :电平变化中断 PORTA 寄存器
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6 未实现:读为 0
bit 5-0
注 1: 要使各中断能够被识别,必须使能全局中断允许控制位 ( GIE )。
2: 在 XT 、 HS 和 LP 振荡器模式下, IOCA<5:4> 总是读为 1 。
IOCA<5:0>:电平变化中断 PORTA 控制位
1 = 允许电平变化中断
0 = 禁止电平变化中断
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 33 页
PIC16F610/616/16HV610/616
4.2.4 引脚说明和引脚原理图
每个 PORTA 引脚都与其他功能复用。这里将简要说明
引脚及其复用功能。各功能的具体信息 (如比较器或
ADC),请参见本数据手册中的相关章节。
4.2.4.1 RA0/AN0
(1)
/C1IN+/ICSPDAT
图 4-1 给出了此引脚的原理图。RA0 引脚可配置为下列
功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
• 比较器的模拟同相输入
• 在线串行编程数据
图 4-1 : RA<1:0> 框图
数据总线
WPUA
WPUA
D
Q
写
读
CK
Q
4.2.4.2 RA1/AN1
(1)
/C12IN0-/VREF
(1)
/
ICSPCLK
图 4-1 给出了此引脚的原理图。RA1 引脚可配置为下列
功能之一:
• 通用 I/O
(1)
•ADC
• 比较器的模拟反相输入
•ADC
• 在线串行编程时钟
的模拟输入
(1)
的参考电压输入
注 1 : 仅限 PIC16F616/16HV616 。
(1)
模拟
输入模式
RAPU
VDD
弱上拉
VDD
电平变化
中断
Q
将 0 写入 RAIF
D
Q
写
PORTA
写
TRISA
读
TRISA
读
PORTA
写
IOCA
读
IOCA
(2)
S
R
来自其他
RA<5:1> 引脚(RA0)
RA<5:2, 0> 引脚(RA1)
CK
Q
D
Q
CK
Q
(1)
模拟
输入模式
D
Q
D
读 PORTA
(3)
Q
EN
D
Q
EN
Q1
CK
Q
至比较器
至 A/D 转换器
I/O 引脚
VSS
注 1: 比较器模式和 ANSEL 决定模拟输入模式。
2: 置 1 优先于复位。
3: 仅限 PIC16F616/16HV616 。
DS41288B_CN 第 34 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
4.2.4.3 RA2/AN2
(1)
/T0CKI/INT/C1OUT
图 4-2 给出了此引脚的原理图。RA2 引脚可配置为下列
功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
•TMR0的时钟输入
• 外部边沿触发中断
• 比较器 C1 的数字输出
注 1 : 仅限 PIC16F616/16HV616。
图 4-2 : RA2 框图
数据总线
WPUA
WPUA
PORTA
D
Q
写
读
CK
Q
D
Q
写
CK
Q
C1OE
使能
C1OE
(1)
模拟
输入模式
RAPU
1
0
VDD
弱上拉
VDD
I/O 引脚
VSS
电平变化
中断
D
Q
写
CK
TRISA
读
TRISA
读
PORTA
写
IOAC
读
IOAC
(2)
S
Q
R
将 0 写入 RAIF
注 1 : 比较器模式和 ANSEL 决定模拟输入模式。
2: 置 1 优先于复位。
3: 仅限 PIC16F616/16HV616 。
来自其他
RA<5:3, 1:0> 引脚
Q
D
Q
CK
Q
至 Timer0
至 INT
至 A/D 转换器
模拟
输入模式
读 PORTA
(3)
(1)
D
Q
EN
D
Q
EN
Q1
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 35 页
PIC16F610/616/16HV610/616
4.2.4.4 RA3/MCLR/VPP
图 4-3 给出了此引脚的原理图。RA3 引脚可配置为下列
功能之一:
• 通用输入
• 带弱上拉的主复位
图 4-3 : RA3 框图
VDD
电平变化
中断
Q
将 0 写入 RAIF
MCLRE
数据总线
读
TRISA
读
PORTA
D
Q
写
IOCA
读
IOCA
(1)
S
R
CK
Q
来自其他
RA<5:4, 2:0> 引脚
复位
VSS
MCLRE
Q
EN
Q
EN
读 PORTA
MCLRE
D
D
弱上拉
输入
引脚
VSS
Q1
注 1 : 置 1 优先于复位。
DS41288B_CN 第 36 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
4.2.4.5 RA4/AN3
(1)
/T1G/OSC2/CLKOUT
图 4-4 给出了此引脚的原理图。RA4 引脚可配置为下列
功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
图 4-4 : RA4 框图
数据总线
WPUA
WPUA
PORTA
TRISA
TRISA
PORTA
IOCA
IOCA
D
写
读
D
写
D
写
读
读
D
写
读
CK
CK
CK
CK
•Timer1门控 (计数使能)
• 晶振 / 谐振器连接
• 时钟输出
注 1: 仅限 PIC16F616/16HV616 。
(3)
模拟
输入模式
Q
Q
RAPU
OSC1
CLKOUT
F
Q
Q
Q
Q
Q
Q
OSC/4
CLKOUT
使能
INTOSC/
RC/EC
CLKOUT
使能
输入模式
CLK
模式
振荡器
电路
使能
1
0
(2)
模拟
Q
Q
(1)
EN
VDD
弱上拉
VDD
I/O 引脚
VSS
D
Q1
D
(4)
Q
电平变化
中断
将 0 写入 RAIF
注 1 :CLK 模式为 XT 、 HS 、 LP 、 TMR1 LP 以及 CLKOUT 使能。
2:具有 CLKOUT 选项。
3: ANSEL 决定模拟输入模式。
4:置 1 优先于复位。
5:仅限 PIC16F616/16HV616 。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 37 页
S
R
来自其他
RA<5, 3:0> 引脚
至 T1G
至 A/D 转换器
(5)
EN
读 PORTA
PIC16F610/616/16HV610/616
4.2.4.6 RA5/T1CKI/OSC1/CLKIN
图 4-5 给出了此引脚的原理图。RA5 引脚可配置为下列
功能之一:
图 4-5 : RA5 框图
数据总线
写
WPUA
读
WPUA
写
PORTA
写
TRISA
D
D
D
CK
CK
CK
• 通用 I/O
•Timer1的时钟输入
• 晶振 / 谐振器连接
• 时钟输入
INTOSC
模式
Q
Q
OSC2
Q
Q
Q
Q
TMR1LPEN
RAPU
振荡器
电路
(1)
VDD
弱上拉
VDD
I/O 引脚
VSS
(2)
S
电平变化
中断
注 1 : Timer1 LP 振荡器使能。
2 : 置 1 优先于复位。
Q
R
将 0 写入 RAIF
读
TRISA
读
PORTA
D
写
IOCA
读
IOCA
来自其他
RA<4:0> 引脚
Q
CK
Q
至 Ti mer1
INTOSC
模式
Q
Q
读 PORTA
EN
EN
D
Q1
D
DS41288B_CN 第 38 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 4-1 :与PORTA 相关的寄存器汇总
名称
ANSEL
CM1CON0 C1ON C1OUT C1OE C1POL
CM2CON0 C2ON C2OUT C2OE C2POL
INTCON GIE
IOCA
OPTION_REG RAPU
PORTA
TRISA
WPUA
图注: x = 未知, u = 不变, – = 未实现位 (读为 0 )。 PORTA 不使用阴影单元。
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
—
—
PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 0000
— — IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA0 --00 0000 --00 0000
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
— — RA5 RA4 RA3 RA2 RA1 RA0 --x0 x000 --u0 u000
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— — WPUA5 WPUA4 — WPUA2 WPUA1 WPUA0 --11 -111 --11 -111
C1R C1CH1 C1CH0 0000 -000 0000 -000
C2R C2CH1 C2CH0 0000 -000 0000 -000
POR/BOR 时的值所有其他复位
时的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 39 页
PIC16F610/616/16HV610/616
4.3 PORTC 和 TRISC 寄存器
PORTC 是通用 I/O 端口,由 6 个双向引脚组成。这些
引脚可以配置为数字 I/O 或 A/D 转换器 (ADC ) / 比较
器的模拟输入。各功能模块 (如增强型 CCP 或 ADC )
的具体信息,请参见本数据手册中的相关章节。
注: 必须对 ANSEL 寄存器进行初始化,以将模
拟通道配置为数字输入。配置为模拟输入
的引脚将读为 0 ,且不能产生中断。
例 4-2 :初 始 化PORTC
BCF STATUS,RP0 ;Bank 0
CLRF PORTC ;Init PORTC
BSF STATUS,RP0 ;Bank 1
CLRF ANSEL ;digital I/O
MOVLW 0Ch ;Set RC<3:2> as inputs
MOVWF TRISC ;and set RC<5:4,1:0>
;as outputs
BCF STATUS,RP0 ;Bank 0
寄存器 4-6 : PORTC :PORTC 寄存器
U-0 U-0 R/W-x R/W-x R/W-0 R/W-0 R/W-x R/W-x
— — RC5 RC4 RC3 RC2 RC1 RC0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6 未实现:读为 0
bit 5-0
RC<5:0> :PORTC I/O 引脚位
1 = PORTC 引脚 > V
0 = PORTC 引脚 < VIL
IH
寄存器 4-7 : TRISC :PORTC 三态寄存器
U-0 U-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6
bit 5-0
未实现:读为 0
TRISC<5:0> :PORTC 三态控制位
1 = PORTC 引脚配置为输入 (三态)
0 = PORTC 引脚配置为输出
DS41288B_CN 第 40 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
4.3.1 RC0/AN4
(1)
/C2IN+
RC0 引脚可配置为下列功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
• 比较器 C2 的模拟同相输入
4.3.2 RC1/AN5
(1)
/C12IN1-
RC1 引脚可配置为下列功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
• 比较器的模拟反相输入
注 1 : 仅限 PIC16F616/16HV616 。
图 4-6 : RC0 和 RC1 框图
数据总线
D
Q
写
PORTC
写
TRISC
读
TRISC
读
PORTC
CK
Q
D
Q
CK
Q
模拟输入
(1)
模式
至比较器
至 A/D 转换器
注 1 : ANSEL 或比较器模式决定模拟输入模式。
VDD
VSS
I/O 引脚
4.3.3 RC2/AN6
(1)
/C12IN2-/P1D
RC2 引脚可配置为下列功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
• 比较器 C1 和 C2 的模拟输入
(1)
• 增强型 CCP
4.3.4 RC3/AN7
的数字输出
(1)
/C12IN3-/P1C
RC3 引脚可配置为下列功能之一:
• 通用 I/O
(1)
•ADC
的模拟输入
• 比较器 C1 和 C2 的模拟反相输入
(1)
• 增强型 CCP
的数字输出
注 1 : 仅限 PIC16F616/16HV616 。
图 4-7 : RC2 和 RC3 框图
数据总线
D
Q
写
PORTC
写
TRISC
读
TRISC
读
PORTC
CK
Q
D
Q
CK
Q
至 A/D 转换器
注 1 : ANSEL 决定模拟输入模式。
2 : 仅限 PIC16F616/16HV616。
CCPOUT
使能
CCPOUT
(2)
1
0
模拟输入
模式
(1)
(1)
(1)
VDD
I/O 引脚
VSS
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 41 页
PIC16F610/616/16HV610/616
4.3.5 RC4/C2OUT/P1B
(1)
RC4 引脚可配置为下列功能之一:
• 通用 I/O
• 比较器 C2 的数字输出
(1)
• 增强型 CCP
的数字输出
注 1 : 仅限 PIC16F616/16HV616 。
2 : 同时使能 C2OUT 和 P1B 将在 RC4 上引起
冲突并产生不可预知的结果。因此,如果
C2OUT 被使能,则 ECCP 不能用于半桥
或全桥模式下,反之亦然。
图 4-8 : RC4 框图
C2OE
CCP1M<3:0>
C2OE
C2OUT
CCP1M<3:0>
CCPOUT/P1B
数据总线
写
PORTC
D
Q
CK
Q
1
0
VDD
VSS
I/O 引脚
4.3.6 RC5/CCP1
(1)
/P1A
(1)
RC5 引脚可配置为下列功能之一:
• 通用 I/O
• 增强型 CCP
(1)
的数字输入 / 输出
注 1 : 仅限 PIC16F616/16HV616 。
图 4-9 : RC5 引脚框图
数据总线
P1A
CCP1OUT
使能
(1)
/
1
0
写
PORTC
写
TRISC
读
TRISC
读
PORTC
D
Q
CK
Q
D
Q
CK
Q
至增强型 CCP
CCP1OUT
(1)
VDD
I/O 引脚
VSS
D
Q
写
TRISC
读
TRISC
读
PORTC
注 1 : 端口 / 外设选择信号在端口数据和外设输出之间
CK
进行选择。
Q
注 1 : 仅限 PIC16F616/16HV616 。
表 4-2 :与PORTC 相关的寄存器汇总
名称
ANSEL ANS7 ANS6 ANS5 ANS4
CCP1CON
CM1CON0 C1ON C1OUT
CM2CON0 C2ON C2OUT
PORTC
TRISC
图注: x = 未知, u = 不变, – = 未实现位 (读为 0 )。 PORTC 不使用阴影单元。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111
P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 0000 0000
C1OE C1POL — C1R C1CH1 C1CH0 0000 -000 0000 -000
C2OE C2POL — C2R C2CH1 C2CH0 0000 -000 0000 -000
— — RC5 RC4 RC3 RC2 RC1 RC0 --xx 00xx --uu 00uu
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
POR/BOR
时的值
所有其他复
位时的值
DS41288B_CN 第 42 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
5.0 TIMER0 模块
Timer0 模块是 8 位定时器 / 计数器,具有以下特性:
•8位定时器 / 计数器寄存器 (TMR0)
•8位预分频器 (与看门狗定时器共用)
• 可编程内部或外部时钟源
• 可编程外部时钟边沿选择
• 溢出时产生中断
图 5-1 给出了 Timer0 模块的框图。
图 5-1 : TIMER0/WDT 预分频器的框图
FOSC /4
0
1
T0CKI
引脚
T0SE
T0CS
0
8 位
预分频器
1
5.1 Timer0 工作原理
当用作定时器时,Timer0 模块可被用作 8 位定时器或 8
位计数器。
5.1.1 8 位定时器模式
当用作定时器时,Timer0 模块在每个指令周期递增(不
带预分频器)。通过清零 OPTION 寄存器的 T0CS 位选
择定时器模式。
如果对 TMR0 执行写操作,则紧跟写操作之后的两个指
令周期内 TMR0 禁止递增。
注: 当写 TMR0 时,考虑到存在两个指令周期
的延时,可以调整写入TMR0 寄存器的值。
5.1.2 8 位计数器模式
当用作计数器时,Timer0 模块将在 T0CKI 引脚的每个上
升或下降沿递增。递增边沿由 OPTION 寄存器的 T0SE
位决定。通过将 OPTION 寄存器的 T0CS 位设置为 1 选
择计数器模式。
数据总线
1
同步
2 个 Tc y
0
PSA
8
TMR0
溢出时
将标志位 T0IF 置 1
PSA
WDTE
注 1 : T0SE 、 T0CS 、 PSA 和 PS<2:0> 是 OPTION 寄存器中的位。
看门狗
定时器
2 : WDTE 位是配置字寄存器中的位。
8
PS<2:0>
3
1
WDT
0
PSA
超时
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 43 页
PIC16F610/616/16HV610/616
5.1.3 可软件编程的预分频器
有一个可软件编程的预分频器可供 Timer0 或看门狗定
时器 (WDT )使用,但不能同时使用。预分频器的分
配由 OPTION 寄存器的 PSA 位控制。要将预分频器分
配给 Timer0 ,必须将 PSA 位清零。
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 TMR0 ;
CLRWDT ;Clear WDT
CLRF TMR0 ;Clear TMR0 and
;prescaler
BANKSEL OPTION_REG ;
BSF OPTION_REG,PSA ;Select WDT
CLRWDT ;
;
MOVLW b’11111000’ ;Mask prescaler
ANDWF OPTION_REG,W ;bits
IORLW b’00000101’ ;Set WDT prescaler
MOVWF OPTION_REG ;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 寄存器溢出时都会将 INTCON 寄存器
的 T0IF 中断标志位置 1 ,与是否允许了 Timer0 中断无
关。 T0IF 位必须用软件清零。 Timer0 中断允许位是
INTCON 寄存器的 T0IE 位。
注: 由于定时器在休眠状态下是冻结的,所以
Timer0 中断无法将处理器从休眠状态唤
醒。
5.1.5 TIMER0 与外部时钟配合使用
当 Timer0 处于计数器模式下时,通过对内部相位时钟
Q2 和 Q4 周期的预分频输出进行采样,可实现 T0CKI
输入与 Timer0 寄存器的同步。因此,外部时钟源的高低
电平周期必须满足第 15.0 节 “电气规范”中所示的时
序要求。
DS41288B_CN 第 44 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
寄存器 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
RAPU
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
INTEDG T0CS T0SE PSA PS2 PS1 PS0
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2-0
RAPU
:PORTA 上拉使能位
1 = 禁止 PORTA 上拉
0 = 通过各端口锁存值使能 PORTA 上拉
INTEDG:中断触发边沿选择位
1 = INT 引脚的上升沿触发中断
0 = INT 引脚的下降沿触发中断
T0CS: TMR0 时钟源选择位
1 = T0CKI 引脚上的电平跳变
0 = 内部指令周期时钟 (F
OSC/4)
T0SE : TMR0 时钟源边沿选择位
1 = 在 T0CKI 引脚信号从高至低跳变时,递增计数
0 = 在 T0CKI 引脚信号从低至高跳变时,递增计数
PSA:预分频器分配控制位
1 = 预分频器分配给 WDT
0 = 预分频器分配给 Timer0 模块
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
表 5-1 :与TIMER0 相关的寄存器汇总
名称
TMR0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer0 模块寄存器
INTCON GIE
OPTION_REG
TRISA
RAPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 0000
POR/BOR
时的值
xxxx xxxx uuuu uuuu
图注: – = 未实现位 (读为 0), u = 不变, x = 未知。 Timer0 模块不使用阴影单元。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 45 页
所有其他复
位时的值
PIC16F610/616/16HV610/616
注:
DS41288B_CN 第 46 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
6.0 带门控的 TIMER1 模块
Timer1 模块是 16 位定时器 / 计数器,具有以下特性:
•16位定时器 / 计数器定时器对 (TMR1H:TMR1L)
• 可编程内部或外部时钟源
•3位预分频器
• 可选的 LP 振荡器
• 同步或异步工作
• 门控源来自比较器或 T1G
数使能)
• 溢出时产生中断
• 溢出触发唤醒 (仅限外部时钟,异步模式)
• 捕捉 / 比较功能的时基
• 特殊事件触发器 (带有 ECCP)
• 比较器输出与 Timer1 时钟同步
图 6-1 给出了 Timer1 模块的框图。
图 6-1 : TIMER1 框图
溢出时
将标志位 TMR1IF 置 1
引脚的 Timer1 门控(计
(2)
TMR1
TMR1H TMR1L
EN
6.1 Timer1 工作原理
Timer1 模块是16 位递增计数器,可通过TMR1H:TMR1L
寄存器对访问。写 TMR1H 或 TMR1L 会直接更新计数
器。
当使用内部时钟源时,模块为定时器;当使用外部时钟
源时,模块既可用作定时器,也可用作计数器。
6.2 时钟源选择
T1CON 寄存器的 TMR1CS 位用于选择时钟源。当
TMR1CS = 0 时,时钟源为 F
时,时钟源由外部提供。
时钟源
OSC/4 00
F
F
OSC 01
T1CKI 引脚
TMR1ON
至 C2 比较器模块
Timer1 时钟
0
OSC /4。当 TMR1CS = 1
TMR1CS T1ACS
1x
TMR1GE
同步
时钟输入
T1GINV
1
振荡器
OSC1/T1CKI
OSC2/T1G
不带 CLKOUT 的
INTOSC
T1OSCEN
注 1: 在使用 LP 振荡器时, ST 缓冲器是低功耗型;在使用 T1CKI 时, ST 缓冲器是高速型。
2: Timer1 寄存器在上升沿递增。
3: 处于休眠模式时同步不工作。
F
OSC/4
F
OSC
内部
时钟
(1)
1
0
T1ACS
1
0
TMR1CS
T1SYNC
预分频器
1, 2, 4, 8
2
T1CKPS<1:0>
C2OUT
同步
1
0
T1GSS
(3)
检测
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 47 页
PIC16F610/616/16HV610/616
6.2.1 内部时钟源
当选择内部时钟源时, TMR1H:TMR1L 寄存器对将在
TCY 的整数倍 (取决于 Timer1 预分频器)处递增。
6.2.2 外部时钟源
当选择外部时钟源时,Timer1 模块可以作为定时器或计
数器工作。
计数时,Timer1 在外部时钟输入 T1CKI 的上升沿递增。
此外,计数器模式时钟可以与单片机系统时钟同步,也
可以异步工作。
如果需要使用外部时钟振荡器(并且单片机正在使用不
带 CLKOUT 的 INTOSC ),Timer1 可以将 LP 振荡器用
作时钟源。
注: 在计数器模式下,在第一个要递增计数的
上升沿之前,计数器应先记录一个下降
沿。
6.3 Timer1 预分频器
Timer1 有 4 种预分频比选择,允许对时钟输入进行 1、
2、4 或 8 分频。T1CON 寄存器的 T1CKPS 位控制预分
频计数器。对预分频计数器不能直接进行读写操作;但
是,通过写入TMR1H 或TMR1L 可将预分频计数器清零。
6.4 Timer1 振荡器
在引脚 OSC1 (输入)和 OSC2 (输出)之间接有一个
内置低功耗 32.768 kHz 晶体振荡器。通过将 T1CON 寄
存器的 T1OSCEN 控制位置 1 可使能该振荡器。在休眠
期间,振荡器将继续工作。
Timer1 振荡器与系统 LP 振荡器共用。因此,只有当主
系统时钟来自于内部振荡器或振荡器在 LP 振荡器模式
下时,Timer1 才能采用该模式。用户必须提供软件延时
以确保振荡器的正常起振。
当 Timer1 振荡器被使能时,TRISA5 和 TRISA4 位被置
1 。RA5和RA4 位读为0 ,而 TRISA5 和TRISA4 位读为1 。
注: 振荡器在使用之前需要一定的起振和稳定
时间。因此,T1OSCEN 应置 1 ,且在使能
Timer1 之前确保有适当的延时。
6.5 Timer1 在异步计数器模式下的工作
原理
如果 T1CON 寄存器的控制位 T1SYNC 置 1 ,外部时钟
输入将不同步。定时器继续异步于内部相位时钟进行递
增计数。在休眠期间定时器将继续运行,并在溢出时产
生中断,溢出中断将唤醒处理器。但是,用软件对定时
器进行读 / 写操作时,要特别当心 (见第 6.5.1 节“在
异步计数器模式下读写 Timer1 ”)。
注: 当从同步切换到异步操作时,可能会跳过
一次递增。当从异步切换到同步操作时,
可能会产生一次额外递增。
6.5.1 在异步计数器模式下读写 TIMER1
当定时器采用外部异步时钟工作时,对 TMR1H 或
TMR1L 的读操作将确保有效(由硬件实现)。但是,应
该注意的是,用两个 8 位值来读取 16 位定时器本身就
会产生某些问题,这是因为定时器可能在两次读操作之
间产生溢出。
对于写操作,建议用户直接停止计数器,然后写入需要
的值。如果定时器寄存器正进行递增计数,对定时器寄
存器进行写操作,可能会导致写入竞争,从而可能在
TMR1H:TMR1L 寄存器对中产生不可预测的值。
6.6 Timer1 门控
Timer1 门控源可用软件配置为 T1G 引脚或比较器 C2 的
输出。这使得器件能够使用 T1G 直接对外部事件进行计
时,或者使用比较器 C2 直接对模拟事件进行计时。
Timer1 门控源的选择,请参见 CM2CON1 寄存器 (寄
存器 8-3 )。这个特性可以简化 ∆−Σ A/D 转换器和许多其
他应用的程序。 ∆−Σ A/D 转换器的更多信息,请参见
Microchip 网站 (www.microchip.com )。
注: 要将 T1G 或 C2OUT 用作 Timer1 门控源,
必须将 T1CON 寄存器的 TMR1GE 位置 1 。
选择 Timer1 门控源的更多信息,请参见
CM2CON1 寄存器 (寄存器 8-3 )。
可使用 T1CON 寄存器的 T1GINV 位将 Timer1 门控反
相,无论门控源来自 T1G 引脚还是比较器 C2 的输出。
这样可将 Timer1 配置为测量事件之间的有效高电平或
有效低电平时间。
DS41288B_CN 第 48 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
6.7 Timer1 中断
Timer1 寄存器对 (TMR1H:TMR1L )递增到 FFFFh ,
然后返回到 0000h 。当 Timer1 计满返回时,PIR1 寄存
器的 Timer1 中断标志位将置 1 。为允许计满返回时的中
断,必须将以下位置 1 :
•PIE1寄存器的 TMR1IE 位
•INTCON寄存器的 PEIE 位
•INTCON寄存器的 GIE 位
•T1CON寄存器的 T1SYNC
•T1CON寄存器的 TMR1CS 位
•T1CON寄存器的 T1OSCEN 位 (可以被置 1)
在中断服务程序中将 TMR1IF 位清零将清除中断。
注: 在重新允许中断前,应将 TMR1H:TTMR1L
寄存器对以及 TMR1IF 位清零。
位
6.8 Timer1 在休眠模式下的工作原理
只有在设置为异步计数器模式时,Timer1 才能在休眠模
式下工作。在该模式下,可使用外部晶振或时钟源使计
数器递增计数。要设置定时器以唤醒器件:
• 必须将 T1CON 寄存器的 TMR1ON 位置 1
• 必须将 PIE1 寄存器的 TMR1IE 位置 1
• 必须将 INTCON 寄存器的 PEIE 位置 1
器件将在溢出时被唤醒并执行下一条指令。如果将
INTCON 寄存器的 GIE 位置 1 ,器件将调用中断服务程
序(0004h)。
6.9 ECCP 捕捉 / 比较时基 (仅限
PIC16F616/16HV616)
当工作在捕捉或比较模式下时, ECCP 模块使用
TMR1H:TMR1L 寄存器对作为时基。
在捕捉模式下,当发生配置的事件时,TMR1H:TMR1L
寄存器对中的值被复制到 CCPR1H:CCPR1L 寄存器对
中。
在比较模式下,当 CCPR1H:CCPR1L 寄存器对中的值
与 TMR1H:TMR1L 寄存器对中的值相匹配时触发事件。
该事件可以是特殊事件触发信号。
更多信息,请参见第 10.0 节“增强型捕捉 / 比较 /PWM
(带自动关闭和死区)模块 (仅限 PIC16F616/
16HV616)”。
6.10 ECCP 特殊事件触发器 (仅限
PIC16F616/16HV616)
当将 ECCP 配置为触发特殊事件时,触发器将清零
TMR1H:TMR1L寄存器对。该特殊事件不会引起Timer1
中断。 ECCP 模块仍然可以配置为产生 ECCP 中断。
在该工作模式下,CCPR1H:CCPR1L 寄存器对有效地成
为 Timer1 的周期寄存器。
要利用特殊事件触发信号,应使 Timer1 与 F
Timer1 的异步操作会导致错过特殊事件触发信号。
如果对 TMR1H 或 TMR1L 的写操作和来自 ECCP 的特
殊事件触发信号同时发生,则写操作优先。
更多信息,请参见第 10.2.4 节 “特殊事件触发器”。
OSC 同步。
6.11 比较器同步
用于递增Timer1 的时钟也可以用于同步比较器输出。比
较器模块中使能了此功能。
当使用比较器作为 Timer1 门控时,应将比较器输出与
Timer1 保持同步。这可以确保 Timer1 在比较器发生变
化时不会错过递增。
更多信息,请参见第 8.8.2 节 “使比较器 C2 的输出与
Timer1 同步”。
图 6-2 : TIMER1 递增边沿
T1CKI = 1
当 TMR1
使能时
T1CKI = 0
当 TMR1
使能时
注 1 : 箭头表明计数器递增。
2 : 在计数器模式下,在时钟要进行递增的第一个上升沿之前,计数器应先记录一个下降沿。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 49 页
PIC16F610/616/16HV610/616
6.12 Timer1 控制寄存器
Timer1 控制寄存器 (T1CON )用于控制 Timer1 以及
选择 Timer1 模块的各种特性,如寄存器 6-1 中所示。
寄存器 6-1 : T1CON :TIMER1 控制寄存器
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
(1)
T1GINV
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
TMR1GE
(2)
T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
bit 7
bit 6
bit 5-4
bit 3
bit 2
bit 1
bit 0
T1GINV : Timer1 门控反相位
1 = Timer1 门控高电平有效 (当门控为高电平时 Timer1 计数)
0 = Timer1 门控低电平有效 (当门控为低电平时 Timer1 计数)
TMR1GE :Timer1 门控使能位
如果 TMR1ON = 0 :
该位为无关位
TMR1ON = 1:
如果
1 = Timer1 计数由 Timer1 门控功能控制
0 = Timer1 始终保持计数
T1CKPS<1:0>: Timer1 输入时钟预分频比选择位
11 = 1:8 预分频比
10 = 1:4 预分频比
01 = 1:2 预分频比
00 = 1:1 预分频比
T1OSCEN :LP 振荡器使能控制位
如果不带
1 = LP 振荡器使能作为 Timer1 的时钟
0 = LP 振荡器关闭
否则:
该位为无关位
T1SYNC
TMR1CS =
1 = 不同步外部时钟输入
0 = 同步外部时钟输入
TMR1CS =
该位为无关位。 Timer1 使用内部时钟
TMR1CS : Timer1 时钟源选择位
1 = 使用来自 T1CKI 引脚 (在上升沿)的外部时钟
0 = 内部时钟
如果 TMR1ACS = 0 :
FOSC/4
如果 TMR1ACS = 1 :
FOSC
TMR1ON : Timer1 使能位
1 = 使能 Timer1
0 = 停止 Timer1
CLKOUT 的 INTOSC 处于有效状态:
:Timer1 外部时钟输入同步控制位
1:
0:
(1)
(2)
注 1: T1GINV 位将 Timer1 门控逻辑反相,无论其来源为何。
2: 要将 T1G 引脚或 C2OUT (通过 CM2CON1 寄存器的 T1GSS 位在二者之间进行选择)用作 Timer1 门控
源,必须将 TMR1GE 位置 1。
DS41288B_CN 第 50 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 6-1 :与TIMER1 相关的寄存器汇总
名称
CM2CON0 C2ON C2OUT C2OE C2POL — C2R C2CH1 C2CH0 0000 -000 0000 -000
CM2CON1
INTCON GIE PEIE
PIE1
PIR1
TMR1H
TMR1L
T1CON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
图注: x = 未知, u = 不变, – = 未实现 (读为 0)。 Timer1 模块不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
MC1OUT MC2OUT —T 1 A C SC1HYS C2HYS T1GSS C2SYNC 00-0 0010 00-0 0010
T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 0000
— ADIE
— ADIF
16 位 TMR1 寄存器高字节的保持寄存器
16 位 TMR1 寄存器低字节的保持寄存器
(1)
(1)
CCP1IE
CCP1IF
(1)
C2IE C1IE — TMR2IE
(1)
C2IF C1IF — TMR2IF
(1)
TMR1IE -000 0-00 -000 0-00
(1)
TMR1IF -000 0-00 -000 0-00
TMR1CS TMR1ON 0000 0000 uuuu uuuu
POR/BOR 时 的值所有其他复位
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
时的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 51 页
PIC16F610/616/16HV610/616
注:
DS41288B_CN 第 52 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
7.0 TIMER2 模块
(仅限 PIC16F616/16HV616)
Timer2 模块是 8 位定时器,具有以下特性:
•8位定时器寄存器 (TMR2)
•8位周期寄存器 (PR2)
•TMR2与 PR2 匹配时产生中断
• 可软件编程的预分频器 (分频比为 1:1、 1:4 和
1:16)
• 可软件编程的后分频器 (分频比为 1:1 到 1:16)
Timer2 框图请参见图 7-1。
7.1 Timer2 工作原理
Timer2 模块的时钟输入是系统指令时钟(FOSC /4 )。时
钟送入 Timer2 预分频器, Timer2 预分频器提供 1:1、
1:4 或 1:16 三种预分频比选择。然后预分频器的输出用
于递增 TMR2 寄存器。
TMR2 的值与 PR2 的值不断进行比较以确定何时匹配。
TMR2 将从 00h 开始递增,直到与 PR2 中的值匹配。当
匹配发生时,会发生以下两件事:
•TMR2在下一个递增周期复位为 00h。
•Timer2后分频器递增。
Timer2/PR2 比较器的匹配输出被送入 Timer2 后分频
器。后分频器具有 1:1 到 1:16 的后分频比选择。Timer2
后分频器的输出用于将 PIR1 寄存器中的 TMR2IF 中断
标志位置 1 。
TMR2 和 PR2 寄存器均可完全读写。在任何复位时,
TMR2寄存器被设置为 00h,PR2寄存器被设置为 FFh。
通过将 T2CON 寄存器中 TMR2ON 位设置为 1 可使能
Timer2。通过将 TMR2ON 位设置为 0 可关闭 Timer2。
Timer2 预分频器由 T2CON 寄存器中的 T2CKPS 位控
制。 Timer2 后分频器由 T2CON 寄存器中的 TOUTPS
位控制。预分频和后分频计数器均会在发生以下事件时
清零:
• 对 TMR2 进行写操作。
• 对 T2CON 进行写操作。
• 发生任何器件复位 (上电复位、 MCLR
复位、看
门狗定时器复位或欠压复位)。
注: 写 T2CON 时 TMR2 不会清零。
图 7-1 : TIMER2 框图
OSC/4
F
预分频器
1:1, 1:4, 1:16
2
T2CKPS<1:0>
TMR2
比较器
PR2
复位
1:1 至 1:16
EQ
TOUTPS<3:0>
TMR2
输出
后分频器
4
将标志位
TMR2IF 置 1
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 53 页
PIC16F610/616/16HV610/616
寄存器 7-1: T2CON: TIMER2 控制寄存器
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 = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7 未实现:读为 0
bit 6-3
bit 2
bit 1-0
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 后分频比
TMR2ON: Timer2 使能位
1 = 使能 Timer2
0 = 关闭 Timer2
T2CKPS<1:0>: Timer2 时钟预分频比选择位
00 = 预分频比为 1
01 = 预分频比为 4
1x = 预分频比为 16
表 7-1 :与TIMER2 相关的寄存器汇总
名称
INTCON GIE PEIE
PIE1 — ADIE
PIR1 — ADIF
PR2
TMR2
T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
图注: x = 未知, u = 不变, – = 未实现 (读为 0)。 Timer2 模块不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
DS41288B_CN 第 54 页 初稿 2007 Microchip Technology Inc.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 0000
(1)
(1)
Time r2 模块周期寄存器
8 位 TMR2 寄存器的保持寄存器
CCP1IE
CCP1IF
(1)
C2IE C1IE —T M R 2 I E
(1)
C2IF C1IF —T M R 2 I F
(1)
TMR1IE -000 0-00 -000 0-00
(1)
TMR1IF -000 0-00 -000 0-00
POR/BOR 时的值所有其他复位
时的值
1111 1111 1111 1111
0000 0000 0000 0000
PIC16F610/616/16HV610/616
8.0 比较器模块
比较器模块通过比较两个模拟电压并提供其相对幅值的
数字表示,用于建立模拟电路与数字电路的接口。比较
器是非常有用的混合信号模块,因为它提供了与器件相
独立的模拟功能。模拟比较器模块包括以下特性:
• 独立的比较器控制
• 可编程输入选择
• 比较器输出内部 / 外部有效
• 可编程输出极性
• 电平变化中断
• 从休眠状态唤醒
•PWM关闭
•Timer1门控 (计数使能)
• 输出与 Timer1 时钟输入同步
•SR锁存器
• 可编程和固定参考电压
• 用户可使能的比较器滞后
注: 只有比较器 C2 可连接到 Timer1。
8.1 比较器概述
图 8-1 所示为单比较器以及模拟输入电平与数字输出之
间的关系。当 VIN + 上的模拟电压小于 VIN - 上的模拟电
压值时,比较器输出为数字低电平。当 V
电压大于 VIN - 上的模拟电压值时,比较器输出为数字高
电平。
IN + 上的模拟
图 8-1 : 单比较器
VIN +
VIN -
VIN -
VIN +
输出
注: 比较器输出的黑色区域表示因输入失调
电压和响应时间所造成的输出不确定区
域。
+
-
输出
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 55 页
PIC16F610/616/16HV610/616
图 8-2:比 较 器 C1 的简化框图
C1CH<1:0>
C12IN0-
C12IN1-
C12IN2-
C12IN3-
C1IN+
C1VREF
注 1 : 当 C1ON = 0 时, C1 比较器将输出 0 到异或门。
2
0
1
MUX
2
3
C1R
0
MUX
1
2 : 图中的输出仅供参考。更多详细信息,请参见 I/O 端口引脚框图。
C1VIN -
C1V
IN+
图 8-3 :比 较 器C2 的简化框图
C2CH<1:0>
C12IN0-
C12IN1-
C2IN2-
C2IN3-
2
0
1
MUX
2
3
C2V
C2V
IN-
IN+
C2
C1ON
C1
+
C2ON
Q3*RD_CM1CON0
(1)
C1POL
Q3*RD_CM2CON0
(1)
Q1
Q1
DQ
EN
复位
C1OUT
DQ
EN
复位
C2OUT
C2SYNC
C1POL
DQ
EN
CL
C2POL
DQ
EN
CL
数据总线
RD_CM1CON0
C1IF 置 1
至 PWM 逻辑
C1OE
C1OUT 引脚
数据总线
RD_CM2CON0
C2IF 置 1
至其他外设
C2OE
至
(2)
至
C2R
C2IN+
C2VREF
注 1: 当 C2ON = 0 时, C2 比较器将输出 0 到异或门。
2: 图中的输出仅供参考。更多详细信息,请参见 I/O 端口引脚框图。
DS41288B_CN 第 56 页 初稿 2007 Microchip Technology Inc.
0
MUX
1
C2POL
来自 Ti mer1
DQ
时钟
0
MUX
1
C2OUT 引脚
SYNCC2OUT
至 Ti mer1 门控
至 SR 锁存器
PIC16F610/616/16HV610/616
8.2 比较器控制
每个比较器都有独立的控制和配置寄存器:比较器 C1 为
CM1CON0,比较器 C2 为 CM2CON0。此外,比较器
C2 还有另外一个控制寄存器 CM2CON1,用于控制与
Timer1 的交互和两个比较器输出的同时读取。
CM1CON0 和 CM2CON0 寄存器(分别见寄存器 8-1 和
8-2)包含以下控制和状态位:
• 使能
• 输入选择
• 参考电压选择
• 输出选择
• 输出极性
8.2.1 比较器使能
将 CMxCON0 寄存器的 CxON 位置 1 可以使能比较器
操作。清零 CxON 位可以禁止比较器,以使电流消耗降
至最低。
8.2.2 比较器输入选择
CMxCON0 寄存器的 CxCH<1:0> 位指示将 4 个模拟输
入引脚之一连接到比较器的反相输入端。
注: 要将 CxIN+ 和 CxIN- 引脚用作模拟输入,
必须将 ANSEL 寄存器中相应的位置 1 ,同
时也必须置 1 相应的 TRIS 位来禁止输出驱
动器。
8.2.3 比较器参考电压选择
通过设置 CMxCON0 寄存器的 CxR 位,将内部参考电压
或模拟输入引脚连接到比较器的同相输入。关于内部参
考电压模块的更多信息,请参见第 8.11 节“比较器参考
电压”。
8.2.4 比较器输出选择
可以通过读 CMxCON0 寄存器的 CxOUT 位或
CM2CON1 寄存器的 MCxOUT 位监视比较器的输出。
为了使输出可用于外部连接,必须满足以下条件:
• 必须将 CMxCON0 寄存器的 CxOE 位置 1
• 必须清零相应的 TRIS 位
• 必须将 CMxCON0 寄存器的 CxON 位置 1
注 1 : CxOE 位改写端口数据锁存器。将 CxON
置 1 对端口改写没有影响。
2 : 比较器的内部输出在每个指令周期被锁
存。除非另外指定,否则不锁存外部输
出。
8.2.5 比较器输出极性
反相比较器的输出在功能上等同于交换比较器输入。可
以通过将 CMxCON0 寄存器的 CxPOL 位置 1 来使比较
器输出的极性反相。清零 CxPOL 位导致非反相输出。
表 8-1 给出了输出状态与输入条件的关系(包括极性控
制)。
表 8-1 : 比较器输出状态与输入条件
输入条件
IN- > CxV IN+ 00
CxV
CxV
IN- < CxV IN+ 01
CxVIN - > CxVIN + 11
CxV
IN- < CxV IN+ 10
CxPOL CxOUT
8.3 比较器响应时间
在改变输入源或选择新的参考电压后,比较器输出要经
过一段不确定状态的时间。这段时间被称为响应时间。
比较器的响应时间不同于参考电压的稳定时间。因此,
在确定比较器输入改变的总响应时间时,必须考虑这两
个时间。更多详细信息,请参见第 15.0 节“电气规范”
中的比较器和参考电压规范。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 57 页
PIC16F610/616/16HV610/616
8.4 比较器中断操作
只要比较器的输出值发生变化,相应的比较器中断标志
位就会置 1 。比较器输出值的变化由不匹配电路识别,
该电路由两个锁存器和一个异或门组成 (见图 8-2 和
图 8-3 )。 当 读 CMxCON0 寄存器时,一个锁存器更新
为比较器的输出电平。该锁存器将保持该值,直到下次
读 CMxCON0 寄存器,或者发生复位。不匹配电路的另
一个锁存器在每个 Q1 系统时钟更新。当比较器的输出
变化在 Q1 时钟周期输入到第二个锁存器时,即产生不
匹配条件。这时两个不匹配锁存器具有相反的输出电
平,由异或门检测并被送到中断电路。不匹配条件持续
直到读CMxCON0 寄存器或者比较器输出返回先前的状
态。
注 1 : 对 CMxCON0 寄存器的写操作也将清除不
匹配条件,因为所有写操作的写周期开始
都包含一个读操作。
2 : 比较器中断的正常工作与 CxOE 的状态无
关。
比较器中断是根据不匹配边沿而不是不匹配电平置 1
的。这意味着不需要额外的读取或写入 CMxCON0 寄存
器来将不匹配寄存器清零这一步骤,即可将中断标志复
位。当不匹配寄存器清零时,比较器输出返回前一个状
态将发生中断,否则不会发生中断。
需要用软件保存比较器输出状态的信息 (从 CMxCON0
寄存器或 CM2CON1 寄存器读取),以确定实际发生的
变化。
PIR1 寄存器的 CxIF 位是比较器中断标志。必须用软件
将该位清零以将其复位。由于可以对该寄存器写入 1,
因此可产生中断。
必须将 PIE1 寄存器的 CxIE 位以及 INTCON 寄存器的
PEIE 和 GIE 位都置 1 以允许比较器中断。如果上述位
中有任何一位被清零,则无法允许中断,尽管中断条件
发生时仍会将 PIR1 寄存器的 CxIF 位置 1 。
图 8-4 : 比较器中断时序 (不带
CMxCON0 读取)
Q1
Q3
CxIN+
CxOUT
CxIF 置 1(边沿)
CxIF
TRT
由软件复位
图 8-5 : 比较器中断时序 (带
CMxCON0 读取)
Q1
Q3
CxIN+
CxOUT
CxIF 置 1(边沿)
CxIF
由 CMxCON0 读操作清零
注 1 : 在读操作执行过程中 (Q2 周期的起始时
2 :当两个比较器之一先使能时,比较器模块
TRT
由软件复位
刻),如果 CMxCON0 寄存器(CxOUT )
发生变化,那么 PIR1 寄存器的 CxIF 中断
标志位可能不会被置 1 。
中的偏置电路在稳定前可能产生比较器的
无效输出。应允许偏置电路有 1 µs 的稳定
时间,然后在允许比较器中断前将不匹配
条件和中断标志清零。
DS41288B_CN 第 58 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
8.5 休眠模式下的工作原理
如果在进入休眠模式之前比较器使能,则它在休眠期间
仍将处于运行状态。第 15.0 节“电气规范”中单独给出
了比较器消耗的额外电流。如果不使用比较器来唤醒器
件,则在休眠模式下可通过关闭比较器使功耗降至最
低。可以通过清零 CMxCON0 寄存器的 CxON 位来关闭
每个比较器。
比较器输出变化可以将器件从休眠状态唤醒。要使比较
器能将器件从休眠状态唤醒,必须将 PIE1 寄存器的
CxIE 位和 INTCON 寄存器的 PEIE 位置 1 。紧 跟 Sleep
指令后的指令总是在从休眠状态唤醒之后执行。如果也
将 INTCON 寄存器的 GIE 位置 1 ,则器件将执行中断服
务程序。
8.6 复位的影响
器件复位强制 CMxCON0 和 CM2CON1 寄存器为复位
状态。这使比较器和参考电压被强制为 “关闭”状态。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 59 页
PIC16F610/616/16HV610/616
寄存器 8-1: CM1CON0:比较器 1 的控制寄存器 0
R/W-0 R-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0
C1ON C1OUT C1OE C1POL — C1R C1CH1 C1CH0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
C1ON :比较器 C1 使能位
1 = 比较器 C1 使能
0 = 比较器 C1 禁止
bit 6
C1OUT :比较器 C1 输出位
如果
C1POL = 1 (极性反相):
当 C1VIN + > C1VIN - 时, C1OUT = 0
IN + < C1V IN - 时, C1OUT = 1
当 C1V
如果
C1POL = 0 (极性非反相):
当 C1VIN + > C1VIN - 时, C1OUT = 1
IN + < C1V IN - 时, C1OUT = 0
当 C1V
bit 5
C1OE :比较器 C1 输出使能位
1 = C1OUT 出现在 C1OUT 引脚上
0 = C1OUT 仅在内部有效
bit 4
C1POL :比较器 C1 输出极性选择位
1 = C1OUT 逻辑反相
0 = C1OUT 逻辑不反相
bit 3 未实现:读为 0
bit 2
C1R :比较器 C1 参考电压选择位 (同相输入)
1 = C1VIN + 连接至 C1V REF 输出
IN+ 连接至 C1IN+ 引脚
bit 1-0
0 = C1V
C1CH<1:0> :比较器 C1 通道选择位
00 = C1 的 C12IN0- 引脚连接至 C1V
01 = C1 的 C12IN1- 引脚连接至 C1V
10 = C1 的 C12IN2- 引脚连接至 C1V
11 = C1 的 C12IN3- 引脚连接至 C1V
(1)
IN-
IN-
IN-
IN-
注 1 : 比较器输出需要以下 3 个条件: C1OE = 1 , C1ON = 1 且相应的端口 TRIS 位 = 0 。
DS41288B_CN 第 60 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
寄存器 8-2: CM2CON0:比较器 2 的控制寄存器 0
R/W-0 R-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0
C2ON C2OUT C2OE C2POL — C2R C2CH1 C2CH0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1-0
C2ON :比较器 C2 使能位
1 = 比较器 C2 使能
0 = 比较器 C2 禁止
C2OUT :比较器 C2 输出位
如果
C2POL = 1 (极性反相):
当 C2VIN + > C2VIN - 时, C2OUT = 0
IN + < C2V IN - 时, C2OUT = 1
当 C2V
如果
C2POL = 0 (极性非反相):
当 C2VIN + > C2VIN - 时, C2OUT = 1
IN + < C2V IN - 时, C2OUT = 0
当 C2V
C2OE :比较器 C2 输出使能位
1 = C2OUT 出现在 C2OUT 引脚上
0 = C2OUT 仅在内部有效
C2POL:比较器 C2 输出极性选择位
1 = C2OUT 逻辑反相
0 = C2OUT 逻辑不反相
未实现:读为 0
C2R:比较器 C2 参考电压选择位 (同相输入)
1 = C2V
0 = C2VIN + 连接至 C2IN+ 引脚
C2CH<1:0>:比较器 C2 通道选择位
00 = C2 的 C2VIN - 引脚连接至 C12IN0-
01 = C2 的 C2V
10 = C2 的 C2VIN - 引脚连接至 C12IN2-
11 = C2 的 C2VIN - 引脚连接至 C12IN3-
IN+ 连接至 C2V REF
IN- 引脚连接至 C12IN1-
(1)
注 1: 比较器输出需要以下 3 个条件: C2OE = 1 , C2ON = 1 且相应的端口 TRIS 位 = 0 。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 61 页
PIC16F610/616/16HV610/616
8.7 比较器模拟输入连接注意事项
模拟输入的简化电路如图 8-6 所示。由于模拟输入引脚
与数字输入共用连接,它们在 VDD 和 VSS 之间连有反
向偏置的 ESD 保护二极管。因此,模拟输入必须在 VSS
和 VDD 之间。如果输入电压与这一范围偏离的绝对值超
过 0.6V ,就可能发生一个二极管正向导通,从而可能导
致锁死发生。
模拟信号源的最大阻抗推荐值为 10 k Ω。任何连接到模拟
输入引脚的外部元件 (如电容或齐纳二极管) ,应保证
其泄漏电流极小以使引入的误差降至最低。
图 8-6 : 模拟输入模型
V
DD
注 1 : 读端口寄存器时,所有配置为模拟输入的
引脚均读为 0 。配置为数字输入的引脚将
根据输入规范转换为模拟输入。
2 : 定义为数字输入引脚上的模拟电平可能会
使输入缓冲器的电流消耗超过规定值。
Rs < 10K
AIN
VA
图注: CPIN = 输入电容
LEAKAGE = 各结点在引脚上产生的泄漏电流
I
RIC = 片内走线等效电阻
RS = 信号源阻抗
A = 模拟电压
V
VT = 门限电压
CPIN
5 pF
VT ≈ 0.6V
V
T ≈ 0.6V
ILEAKAGE
±500 nA
Vss
R
IC
至 ADC 输入
DS41288B_CN 第 62 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
8.8 其他比较器特性
共有 3 个额外的比较器特性:
•Timer1计数使能 (门控)
• 使输出与 Timer1 同步
• 比较器输出的同时读取
8.8.2 使比较器 C2 的输出与 TIMER1 同步
通过将 CM2CON1 寄存器的 C2SYNC 位置 1 ,可以使
比较器 C2 的输出与 Timer1 保持同步。使能 C2 的输出
时,C2 的输出在 Timer1 时钟源的下降沿被锁存。如果
Timer1 使用了预分频器,则比较器的输出在经过预分频
后被锁存。为了防止发生竞争,比较器的输出在 Timer1
时钟源的下降沿被锁存,而 Timer1 在其时钟源的上升沿
8.8.1 由比较器 C2 提供 TIMER1 的门控源
这个特性可用来对模拟事件的持续时间或时间间隔计
时。清零 CM2CON1 寄存器的 T1GSS 位将使 Timer1
根据比较器 C2 的输出递增。这需要已开启 Timer1 且已
使能门控。详见第 6.0 节 “带门控的 Timer1 模块”。
当比较器用作 Timer1 门控源时,建议通过将 C2SYNC
位置 1 使比较器与 Timer1 同步。这可以确保当比较器
输出在递增期间改变时, Timer1 不会错过递增。
递增。更多信息,请参见比较器框图(图 8-3 )和 Timer 1
框图 (图 6-1 )。
8.8.3 比较器输出的同时读取
CM2CON1 寄存器的 MC1OUT 和 MC2OUT 位是两个
比较器输出的镜像副本。从同一个寄存器中同时读取两
个输出的功能,可以消除从不同寄存器读取时存在的时
序差。
注 1 : 通过读CM2CON1 获取C1OUT 或 C2OUT
的状态并不影响比较器中断不匹配寄存
器。
寄存器 8-3 : CM2CON1 :比较器 2 的控制寄存器 1
R-0 R-0 U-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-0
MC1OUT MC2OUT — T1ACS C1HYS C2HYS T1GSS C2SYNC
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
MC1OUT: C1OUT 位的镜像副本
MC2OUT: C2OUT 位的镜像副本
未实现:读为 0
T1ACS :Timer1 备用时钟选择位
1 = Timer1 时钟源为系统时钟 (F
0 = Timer1 时钟源为内部时钟 (F
C1HYS:比较器 C1 滞后使能位
1 = 比较器 C1 滞后使能
0 = 比较器 C1 滞后禁止
C2HYS:比较器 C2 滞后使能位
1 = 比较器 C2 滞后使能
0 = 比较器 C2 滞后禁止
T1GSS: Timer1 门控源选择位
1 = Timer1 门控源为 T1G
0 = Timer1 门控源为 SYNCC2OUT
C2SYNC:比较器 C2 输出同步位
1 = C2 输出与 Timer1 时钟的下降沿同步
0 = C2 输出异步
OSC)
OSC/4)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 63 页
PIC16F610/616/16HV610/616
8.9 比较器滞后
每个比较器都具有内置的滞后功能,它可以由用户通过
将 CM2CON1 寄存器的 C1HYS 或 C2HYS 位置 1 来使
能。该滞后功能有助于滤除噪声,并在比较器输出改变
状态时减少多个比较器输出跳变。
图 8-7 : 比较器滞后
VIN +
IN-
V
V+
H+
V
IN-
V
VH -
IN+
V
图 8-9 显示了使用滞后和不使用滞后情况下模拟输入电
平和比较器数字输出之间的关系。只有当 V
拟电压上升到滞后电路上限阈值 (V
器输出才从低电平状态变化到高电平状态。只有当 VIN +
上的模拟电压下降到滞后电路下限阈值(VH - )以下时,
比较器输出才从高电平状态变化到低电平状态。
+
输出
IN+ 上的模
H+)以上时,比较
输出
(无滞后)
输出
(有滞后)
注: 比较器输出的黑色区域表示因输入失调电压和响应时间所造成的输出不确定区域。
DS41288B_CN 第 64 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 8-2 : 与比较器和参考电压模块相关的寄存器汇总
名称
ANSEL ANS7 ANS6 ANS5 ANS4
CM1CON0 C1ON C1OUT C1OE C1POL C1SP C1R C1CH1 C1CH0 0000 0000 0000 0000
CM2CON0 C2ON C2OUT C2OE C2POL C2SP C2R C2CH1 C2CH0 0000 0000 0000 0000
CM2CON1 MC1OUT MC2OUT — T1ACS C1HYS C2HYS T1GSS C2SYNC 00-0 0010 00-0 0010
INTCON GIE PEIE
PIE1
PIR1
PORTA
PORTC
SRCON0 SR1 SR0 C1SEN C2REN PULSS PULSR
SRCON1 SRCS1 SRCS0
TRISA
TRISC
VRCON C1VREN C2VREN VRR FVREN VR3 VR2 VR1 VR0 0000 0000 0000 0000
图注: x = 未知, u = 不变, – = 未实现 (读为 0 )。比较器不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111
T0IE INTE RAIE T0IF INTF RAIF 0000 000x 0000 000x
— ADIE
— ADIF
— — RA5 RA4 RA3 RA2 RA1 RA0 --x0 x000 --x0 x000
— — RC5 RC4 RC3 RC2 RC1 RC0 --xx 00xx --uu 00uu
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111
(1)
(1)
(1)
CCP1IE
CCP1IF
— — — — — — 00-- ---- 00-- ----
C2IE C1IE — TMR2IE
(1)
C2IF C1IF — TMR2IF
(1)
TMR1IE -000 0-00 -000 0-00
(1)
TMR1IF -000 0-00 -000 0-00
— SRCLKEN 0000 00-0 0000 00-0
POR/BOR 时的值所有其他复位时
的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 65 页
PIC16F610/616/16HV610/616
8.10 比较器 SR 锁存器
SR 锁存器模块为比较器输出提供了其他控制方法。该模
块由一个 SR 锁存器和输出多路开关组成。SR 锁存器可
以由比较器输出置 1 、复位或翻转。SR 锁存器也可以独
立于比较器输出,通过 SRCON0 控制寄存器中的控制位
置 1 或复位。SR 锁存器输出多路开关选择是将锁存器输
出还是比较器输出送到 I/O 端口逻辑作为引脚的最终输
出。
SR 锁存器也使用可变时钟,它连接到锁存器的置 1 输
入端。SRCON0 的 SRCLKEN 位使能 SR 锁存器置 1 时
钟。该时钟将定期为锁存器的置 1 输入提供脉冲。 SR
锁存器置 1 时钟的频率可以通过 SRCON1 寄存器的
SRCS<1:0> 位控制。
8.10.1 锁存器操作
锁存器是不依赖于时钟源的置 1- 复位锁存器。每个置 1
和复位输入均为高电平有效。每个锁存器输入都被连接
到比较器输出和软件控制的脉冲发生器。可以通过
C1OUT 或 SRCON0 寄存器的 PULSS 位将锁存器置 1 。
可以通过 C2OUT 或 SRCON0 寄存器的 PULSR 位将锁
存器复位。该锁存器是复位优先型的,因此,如果置 1
和复位输入同时为高电平,则锁存器将进入复位状态。
图 8-8 : SR 锁存器的简化框图
PULSS 和 PULSR 位都是自复位的,也就是说,对两个
位中的任一个位执行一次写操作是完成锁存器置 1 或复
位操作的必要条件。
8.10.2 锁存器输出
SRCON0 寄存器的 SR<1:0> 位控制锁存器输出多路开
关,并确定 4 种可能的输出配置。在这 4 种配置中,
CxOUT I/O 端口逻辑连接到:
•C1OUT和 C2OUT
•C1OUT和 SR 锁存器 Q
•C2OUT和 SR 锁存器 Q
•SR锁存器 Q 和 Q
发生任何复位之后,默认的输出配置是未锁存的C1OUT
和 C2OUT 模式。这维持了与不具有 SR 锁存器功能的
器件的兼容性。
必须清零相应端口对应的 TRIS 位以使能端口引脚输出
驱动器。此外,要使比较器或锁存器的输出出现在输出
引脚上,必须将 CMxCON0 寄存器的 CxOE 比较器输出
使能位置 1 。锁存器配置使能状态与比较器的使能状态
完全无关。
SRCLKEN
SRCLK
PULSS
C1OUT (来自比较器)
C1SEN
SYNCC2OUT(来自比较器)
C2REN
PULSR
注 1 : 如果 R=1 且 S=1,则 Q=0, Q = 1。
脉冲
(2 )
发生
SRQ
SR
(1)
锁存器
Q
脉冲
(2 )
发生
2: 脉冲发生器产生 1 个 T
3: 图中的输出仅供参考。更多详细信息,请参见 I/O 端口引脚框图。
OSC 脉冲宽度。
SR0
SR1
0
MUX
1
1
MUX
0
C1OE
C2OE
C1OUT 引脚
C2OUT 引脚
(3)
DS41288B_CN 第 66 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
寄存器 8-4: SRCON0: SR 锁存器的控制寄存器 0
R/W-0 R/W-0 R/W-0 R/W-0 R/S-0 R/S-0 U-0 R/W-0
(2)
SR1
bit 7 bit 0
SR0
(2)
C1SEN C2REN PULSS PULSR — SRCLKEN
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
SR1 : SR 锁存器配置位
1 =C2OUT引脚为锁存器 Q 输出
0 =C2OUT引脚为 C2 比较器输出
SR0: SR 锁存器配置位
1 =C1OUT引脚为锁存器 Q 输出
0 =C1OUT引脚为 C1 比较器输出
C1SEN: C1 置 1 使能位
1 =C1比较器输出将 SR 锁存器置 1
0 =C1比较器输出对 SR 锁存器没有影响
C2REN: C2 复位使能位
1 =C2比较器输出将 SR 锁存器复位
0 =C2比较器输出对 SR 锁存器没有影响
PULSS:为 SR 锁存器提供置 1 输入脉冲位
1 = 触发脉冲发生器将 SR 锁存器置 1 。该位立即由硬件复位。
0 = 不触发脉冲发生器。
PULSR:为 SR 锁存器提供复位输入脉冲位
1 = 触发脉冲发生器将 SR 锁存器复位。该位立即由硬件复位。
0 = 不触发脉冲发生器。
未实现:读为 0
SRCLKEN: SR 锁存器置 1 时钟使能位
1 =SRCLK为 SR 锁存器的置 1 输入提供脉冲
0 =SRCLK不为 SR 锁存器的置 1 输入提供脉冲
(2)
(2)
S = 只可置 1 位
注 1 : 不管 SR 锁存器的操作如何, CMxCON0 寄存器中的 C1OUT 和 C2OUT 位总是反映实际的比较器输出 (不是引脚上的
电平)。
2 : 要使 SR 锁存器输出出现在引脚上,相应的 CxOE 和 TRIS 位必须正确配置。
寄存器 8-5 : SRCON1 :SR 锁存器的控制寄存器 1
R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0 U-0
SRCS1 SRCS0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6
bit 5-0 未实现:读为 0
SRCS<1:0> : SR 锁存器预分频比位
OSC/16
00 = F
01 = F
OSC/32
10 = F
OSC/64
11 = F
OSC/128
— — — — — —
S = 只可置 1 位
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 67 页
PIC16F610/616/16HV610/616
8.11 比较器参考电压
比较器参考电压模块为比较器提供了内部产生的参考电
压。它具有以下特性:
• 与比较器操作独立
• 两个 16 级电压范围
• 输出箝位到 V
• 与 VDD 成比例
• 固定参考电压 ( 0.6V)
VRCON 寄存器 (寄存器 8-6)控制参考电压模块,如
图 8-9 所示。
8.11.1 独立操作
比较器参考电压独立于比较器配置。将 VRCON 寄存器
的 FVREN 位置 1 将使能参考电压。
8.11.2 输出电压选择
CV
REF 参考电压有 2 个范围,每个范围有 16 个电平。
范围的选择由 VRCON 寄存器的 VRR 位控制。16 个电
平通过 VRCON 寄存器的 VR<3:0> 位进行设置。
CVREF 输出电压由下面的公式确定:
公式 8-1 : CVREF 输出电压
VRR
1(低电平范围):
=
VRR
0(高电平范围):
=
SS
CV
REF
(VR<3:0>/24)
CV
REF
(VDD/4) +
=
VDD× =
(VR<3:0> VDD/32)
×
8.11.3 输出箝位到 V SS
可通过清零 VRCON 寄存器的 FVREN 位
(FVREN = 0 ),将固定参考电压输出电压设为 Vss 且
不产生功耗。这使得比较器可以检测到过零点,且不额
外消耗模块电流。
8.11.4 输出与 VDD 成比例
比较器参考电压来自 VDD ,因此, CVREF 输出会随着
DD 的变化而变化。经过测试的比较器参考电压的绝对
V
精度请参见第 15.0 节 “电气规范”。
此模块的结构可以实现 VSS 到 VDD 的满量程。请参见
图 8-9 。
DS41288B_CN 第 68 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
8.11.5 固定参考电压
固定参考电压独立于 VDD ,输出电压标称值为 0.6V 。可
通过将 VRCON 寄存器的 FVREN 位设为 1 使能该参考
电压。当 HFINTOSC 振荡器有效时,该参考电压始终
是使能的。
8.11.6 固定参考电压稳定周期
当固定参考电压模块使能时,需要一段时间使参考电压
及其放大器电路达到稳定。用户程序必须包含允许模块
稳定的延时子程序。关于最小延时要求,请参见电气规
范章节。
图 8-9 : 比较器参考电压框图
8R R R R R
VDD
模拟
MUX
REF
CV
至比较器
和 ADC 模块
C1VREN
C2VREN
15
0
VR<3:0>
4
(1)
8.11.7 参考电压选择
参考电压模块输出上的多路开关使比较器可以选择使用
CV REF 或固定参考电压。
将 VRCON 寄存器的 C1VREN 位置 1 使电流流入 CV
分压器,并使 C1 选择使用 CVREF 电压。清零 C1VREN
位使 C1 选择使用固定电压。
将 VRCON 寄存器的 C2VREN 位置 1 使电流流入 CV
分压器,并使 C2 选择使用 CVREF 电压。清零 C2VREN
位使 C2 选择使用固定电压。
当同时清零 C1VREN 和 C2VREN 位时,禁止电流流入
REF 分压器,从而将参考电压外设的功耗降至最低。
CV
16 级
8R
REF
REF
VRR
至 ADC 模块
固定参考电压
至比较器
和 ADC 模块
1.2V
0.6V
EN
固定参考
电压
注 1 : 应注意确保 V
内。更多详细信息,请参见第15.0 节“电气规范”。
FVREN
REF 维持在比较器共模输入范围之
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 69 页
PIC16F610/616/16HV610/616
寄存器 8-6: VRCON:参考电压控制寄存器
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
C1VREN C2VREN VRR FVREN VR3 VR2 VR1 VR0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7
bit 6
bit 5
bit 4
bit 3-0
C1VREN : 比较器 1 参考电压使能位
1 = CV
REF 电路上电并送到比较器 C1 的 C1V REF 输入
0 = 0.6 伏固定参考电压送到比较器 C1 的 C1V
C2VREN : 比较器 2 参考电压使能位
1 = CV
REF 电路上电并送到比较器 C2 的 C2V REF 输入
0 = 0.6 伏固定参考电压送到比较器 C2 的 C2V
VRR : CV
1 = 低电平范围
0 = 高电平范围
FVREN:固定参考电压 (0.6V )使能位
1 = 使能
0 = 禁止
VR<3:0> :比较器参考电压 CV
当
当 VRR = 0 时:CVREF = VDD /4 + (VR<3:0>/32) * VDD
REF 电压范围选择位
REF 值选择位 (0 ≤ VR<3:0> ≤ 15)
VRR = 1 时: CVREF = (VR<3:0>/24) * VDD
REF 输入
REF 输入
DS41288B_CN 第 70 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
9.0 模数转换器 ( ADC)模块
(仅限 PIC16F616/16HV616 )
模数转换器(Analog-to-digital Converter ,ADC )可 将
模拟输入信号转换为信号的 10 位二进制表示。该器件
使用模拟输入,这些输入被多路转换到同一个采样和保
持电路。采样保持电路的输出与转换器的输入相连接。
转换器通过逐次逼近法产生 10 位二进制结果,并将转
换结果存储在ADC 结果寄存器(ADRESL 和 ADRESH )
中。
可通过软件方式选择 V
压作为 ADC 参考电压。
ADC 可在转换完成时产生中断。该中断可用于将器件从
休眠状态唤醒。
图 9-1 给出了 ADC 的框图。
图 9-1 : ADC 框图
DD 或施加在外部参考引脚上的电
VDD
RA0/AN0
RA1/AN1/V
RA2/AN2
RA4/AN3
RC0/AN4
RC1/AN5
RC2/AN6
RC3/AN7
CVREF
0.6V 参考电压
1.2V 参考电压
REF
CHS <3:0>
VREF
GO/DONE
4
VCFG = 0
VCFG = 1
ADON
ADC
10
ADFM
V
SS
0 = 左对齐
1 = 右对齐
10
ADRESH ADRESL
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 71 页
PIC16F610/616/16HV610/616
9.1 ADC 配置
配置和使用 ADC 时必须考虑以下功能:
• 端口配置
• 通道选择
•ADC参考电压选择
•ADC转换时钟源
• 中断控制
• 结果格式
9.1.1 端口配置
ADC 可用于转换模拟和数字信号。转换模拟信号时,I/O
引脚应通过将相关的 TRIS 和 ANSEL 位置 1 配置为模
拟。更多信息,请参见有关相应端口的章节。
注: 在任何定义为数字输入的引脚上施加模拟
电压可能导致输入缓冲器消耗的电流增
加。
9.1.2 通道选择
ADCON0 寄存器的 CHS 位决定与采样和保持电路相连
接的通道。
改变通道时,在开始下一次转换前需要一段延时。更多
信息,请参见第 9.2 节“ADC 工作原理”。
9.1.3 ADC 参考电压
ADCON0 寄存器的 VCFG 位用于控制正参考电压。正
参考电压可以是 VDD 或外部电压源。负参考电压总是连
接到参考地。
9.1.4 转换时钟
可通过软件方式设置 ADCON1 寄存器的 ADCS 位来选
择转换时钟源。有以下 7 种时钟频率可供选择:
•F
OSC/2
OSC/4
•F
•FOSC/8
OSC/16
•F
OSC/32
•F
•FOSC/64
•FRC (专用内部振荡器)
完成一个位转换所需的时间定义为 T
位转换需要 11 个 T
AD 周期,如图 9-3 中所示。
为正确转换,必须满足适当的 T
参见第 15.0 节 “电气规范”中的 A/D 转换要求。表 9-1
给出了适当的 ADC 时钟选择的示例。
注: 除非使用 FRC ,否则系统时钟频率的任何
改变都会改变 ADC 时钟频率,从而对 ADC
结果产生不利影响。
AD。一次完整的 10
AD 规范。更多信息,请
表 9-1: ADC 时钟周期 ( TAD )与器件工作频率 ( VDD > 3.0V )关系表
ADC 时钟周期 ( TAD) 器件频率 (F OSC)
ADC 时钟源
OSC/2 000 100 ns
F
F
OSC/4 100 200 ns
OSC/8 001 400 ns
F
FOSC /16 101 800 ns
FOSC /32 010 1.6 µ s4 . 0 µs 8.0 µs
FOSC /64 110 3.2 µ s 8.0 µ s
FRC x11 2-6 µ s
图注: 阴影单元表示超出了建议范围。
注 1 : V
DD > 3.0V 时, F RC 时钟源具有 4 µs 的典型 TAD 时间。
2: 这些值均违反了所需的最小 T
3: 为了加快转换速度,建议选用其他时钟源。
4: 当器件频率高于 1 MHz 时,仅当在休眠状态下进行转换时才推荐使用 F
ADCS<2:0> 20 MHz 8 MHz 4 MHz 1 MHz
(2)
(2)
(2)
(2)
(1,4)
AD 时间。
(2)
250 ns
500 ns
1.0 µs
(2)
(2)
500 ns
2.0 µ s4 . 0 µs 16.0 µs
2-6 µs
(3)
(1,4)
16.0 µs
2-6 µs
RC 时钟源。
1.0 µs
(2)
(2)
2.0 µs
4.0 µs
2.0 µs 8.0 µs
(3)
(3)
(1,4)
32.0 µs
64.0 µs
2-6 µs
(3)
(3)
(3)
(3)
(1,4)
DS41288B_CN 第 72 页 初稿 2007 Microchip Technology Inc.
图 9-2 : 模数转换 TAD 周期
PIC16F610/616/16HV610/616
TCY 至 TAD
将 GO/DONE 位置 1
TAD1
TAD2
b9 b8 b7 b6 b5 b4 b3 b2
转换开始
保持电容从模拟输入断开连接(典型值为 100 ns )
TAD3
TAD4
TAD5
9.1.5 中断
ADC 模块可在模数转换完成时产生中断。 ADC 中断标
志位是 PIR1 寄存器中的 ADIF 位。 ADC 中断允许位是
PIE1 寄存器中的 ADIE 位。 ADIF 位必须用软件清零。
注: ADIF 位在每次转换完成时置 1 ,与是否允
许了 ADC 中断无关。
器件运行或休眠时都可产生该中断。如果器件处于休眠
状态,该中断会唤醒器件。从休眠状态唤醒时,总是执
行 SLEEP 指令后紧跟的下一条指令。如果用户试图从休
眠状态唤醒器件并恢复主代码执行,必须禁止全局中
断。如果允许了全局中断,执行将切换到中断服务程
序。
更多信息,请参见第 9.1.5 节 “中断”。
TAD6 TAD7
TAD8 TAD9
ADRESH 和 ADRESL 寄存器被装入值,
GO 位被清零,
ADIF 位被置 1,
保持电容与模拟输入相连接
TAD10 TAD11
b1 b0
9.1.6 结果格式
10 位 A/D 转换结果可以两种格式提供:左对齐或右对
齐。 ADCON0 寄存器的 ADFM 位控制输出格式。
图 9-4 给出了两种输出格式。
图 9-3 : 10 位 A/D 转换结果格式
ADRESH ADRESL
( ADFM = 0 ) MSB LSB
bit 7 bit 0 bit 7 bit 0
10 位 A/D 结果 未实现:读为 0
( ADFM = 1 )
bit 7 bit 0 bit 7 bit 0
未实现:读为 0 10 位 A/D 结果
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 73 页
MSB LSB
PIC16F610/616/16HV610/616
9.2 ADC 工作原理
9.2.1 启动转换
要使能 ADC 模块,ADCON0 寄存器的 ADON 位必须设
置为 1 。将 ADCON0 寄存器的 GO/DONE
将启动模数转换。
注: 不应在启动 ADC 的同一条指令中将 GO/
DONE
位置 1 。请参见第 9.2.6 节“A/D 转
换步骤”。
9.2.2 转换完成
转换完成时, ADC 模块将:
• 清零 GO/DONE
• 将 ADIF 标志位置 1
• 用新的转换结果更新 ADRESH:ADRESL 寄存器
位
9.2.3 终止转换
如果必须在转换完成前终止转换,可用软件将 GO/
DONE 位清零。不会用部分完成的模数转换结果更新
ADRESH 和 ADRESL 寄存器, ADRESH:ADRESL 寄
存器对仍然保留前一次转换的值。此外,必须经过2T
的延时后才能开始下一次采集。延时结束后,将自动开
始对选定通道的输入进行采集。
注: 器件复位将强制所有寄存器为复位状态。
因此, ADC 模块被关闭,任何进行中的转
换操作被终止。
9.2.4 休眠期间的 ADC 操作
ADC 模块可以在休眠模式下工作。这需要把 ADC 转换
时钟设置为 FRC 选项。选择 FRC 时钟源后, ADC 需等
待一个指令周期后才能启动转换操作。这使得可以执行
SLEEP 指令,以降低转换期间的系统噪声。如果允许了
ADC 中断,转换完成时器件将从休眠状态唤醒。如果禁
止了 ADC 中断,尽管 ADON 位仍保持置 1 ,转换完成
后 ADC 模块将关闭。
ADC 时钟源不是 F
SLEEP 指令会导致当前转换中止, ADC 模块关闭。
RC 时,尽管 ADON 位仍保持置 1,
位设置为 1
AD
9.2.5 特殊事件触发器
ECCP 特殊事件触发器允许定期测试 ADC 而无需软件
干预。当出现触发信号后, GO/DONE 位由硬件置 1,
Timer1 计数器复位为零。
使用特殊事件触发器不能确保正确的 ADC 时序。用户
需负责确保 ADC 时序要求得到满足。
更多信息,请参见第 10.0 节“增强型捕捉 / 比较 /PWM
(带自动关闭和死区)模块 (仅限 PIC16F616/
16HV616 )”。
9.2.6 A/D 转换步骤
以下是用 ADC 执行模数转换的示例步骤:
1. 配置端口:
• 禁止引脚输出驱动器 (见 TRIS 寄存器)
• 将引脚配置为模拟
2. 配置 ADC 模块:
• 选择 ADC 转换时钟
• 配置参考电压
• 选择 ADC 输入通道
• 选择结果格式
• 开启 ADC 模块
3. 配置 ADC 中断 (可选):
• 清零 ADC 中断标志
• 允许 ADC 中断
• 允许外设中断
• 允许全局中断
4. 等待所需采集时间
5. 通过将 GO/DONE
6. 通过以下方式之一等待 ADC 转换完成:
• 查询 GO/DONE
• 等待 ADC 中断 (已允许中断)
7. 读取 ADC 结果
8. 清零 ADC 中断标志(如果已允许中断则需要)。
注 1 : 如果用户试图从休眠状态唤醒器件并恢复
主代码执行,必须禁止全局中断。
2: 请参见第 9.3 节“A/D 采集要求”。
(1)
(2)
。
位置 1 启动转换。
位
DS41288B_CN 第 74 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
例 9-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
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 75 页
PIC16F610/616/16HV610/616
9.2.7 ADC 寄存器定义
以下寄存器用于控制 ADC 的操作。
寄存器 9-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 VCFG CHS3 CHS2 CHS1 CHS0 GO/DONE
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
ADON
bit 7
bit 6
bit 5-2
bit 1
bit 0
ADFM : A/D 转换结果格式选择位
1 = 右对齐
0 = 左对齐
VCFG:参考电压位
1 = V
REF 引脚
0 = VDD
CHS<3:0>:模拟通道选择位
0000 = 通道 00 ( AN0)
0001 = 通道 01 ( AN1)
0010 = 通道 02 ( AN2)
0011 = 通道 03 ( AN3)
0100 = 通道 04 ( AN4)
0101 = 通道 05 ( AN5)
0110 = 通道 06 ( AN6)
0111 = 通道 07 ( AN7)
1000 = 保留——未使用
1001 = 保留——未使用
1010 = 保留——未使用
1011 = 保留——未使用
1100 =CV
1101 = 0.6V 固定参考电压
1110 = 1.2V 固定参考电压
1111 = 保留——未使用
GO/DONE
1 = A/D 转换正在进行。将该位置 1 可启动 A/D 转换周期。
A/D 转换完成后,该位由硬件自动清零。
0 = A/D 转换已完成 / 未进行
ADON : ADC 使能位
1 = ADC 使能
0 = ADC 禁止,不消耗工作电流
REF
: A/D 转换状态位
(1)
(1)
注 1 : CHS<3:0> 位改为选择 1.2V 或 0.6V 固定参考电压时,参考输出电压将有一个瞬变。如果比较器模块使用该 VP6 参考
电压,比较器输出可能由于该瞬变而暂时改变状态。
DS41288B_CN 第 76 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
寄存器 9-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 = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7 未实现:读为 0
bit 6-4
bit 3-0 未实现:读为 0
ADCS<2:0> : A/D 转换时钟选择位
000 = F
OSC/2
001 = F
OSC/8
010 = F
OSC/32
x11 = F
RC (由专用内部振荡器产生的时钟,其频率的最大值为 500 kHz)
100 = F
OSC/4
101 = F
OSC/16
110 = F
OSC/64
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 77 页
PIC16F610/616/16HV610/616
寄存器 9-3: ADRESH: ADC 结果寄存器高字节 ( ADRESH) ADFM = 0 (只读)
R-x R-x R-x R-x R-x R-x R-x R-x
ADRES9 ADRES8 ADRES7 ADRES6 ADRES5 ADRES4 ADRES3 ADRES2
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-0
ADRES<9:2> :ADC 结果寄存器位
10 位转换结果的高 8 位
寄存器 9-4 : ADRESL :ADC 结果寄存器低字节 (ADRESL ) ADFM = 0 (只读)
R-x R-x U-0 U-0 U-0 U-0 U-0 U-0
ADRES1 ADRES0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6
bit 5-0
ADRES<1:0> :ADC 结果寄存器位
10 位转换结果的低 2 位
保留:不要使用。
— — — — — —
寄存器 9-5 : ADRESH :ADC 结果寄存器高字节 (ADRESH ) ADFM = 1 (只读)
U-0 U-0 U-0 U-0 U-0 U-0 R-x R-x
— — — — — — ADRES9 ADRES8
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-2
bit 1-0
保留:不要使用。
ADRES<9:8> :ADC 结果寄存器位
10 位转换结果的高 2 位
寄存器 9-6 : ADRESL :ADC 结果寄存器低字节 (ADRESL ) ADFM = 1 (只读)
R-x R-x R-x R-x R-x R-x R-x R-x
ADRES7 ADRES6 ADRES5 ADRES4 ADRES3 ADRES2 ADRES1 ADRES0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-0
DS41288B_CN 第 78 页 初稿 2007 Microchip Technology Inc.
ADRES<7:0> :ADC 结果寄存器位
10 位转换结果的低 8 位
PIC16F610/616/16HV610/616
9.3 A/D 采集要求
为了使 ADC 达到规定的精度,必须使充电保持电容
(CHOLD )充满至输入通道的电平。模拟输入模型见
图 9-4 。模拟信号源阻抗 (RS )和内部采样开关阻抗
SS)直接影响电容 C HOLD 的充电时间。采样开关阻
(R
抗(RSS )随器件电压 (VDD )的变化而变化,参见
图 9-4 。建议模拟信号源的最大阻抗为 10 k Ω 。采集时
间随着源阻抗的降低而缩短。在选择(或改变)模拟输
入通道后,必须在开始转换前完成 A/D 采集。可以使用
公式 9-1 来计算最小采集时间。该公式假设误差为 1/2
LSb (ADC 转换需要 1024 步)。 1/2 LSb 误差是 ADC
达到规定分辨率所允许的最大误差。
公式 9-1 : 采集时间示例
温度
假设
:
T
ACQ =
= 50°C
放大器稳定时间
,外部阻抗
+
保持电容充电时间
10
KΩ ,
5.0V V
DD
+
温度系数
= TAMP + TC + TCOFF
= 5µs + TC + [(
T
C
值可以用以下公式近似计算 :
VAPPLIED 1
VAPPLIED 1e
1
------------
–
2047
----------
RC
–
---------
VAPPLIED 1e
RC
–
TC
求解
因此
:
TC CHOLD R IC R SS R S++ ()
–=
10pF 1kΩ 7kΩ 10kΩ
=
= 1.37
µ
s
:
ACQ = 5
T
µ
s + 1.37µs + [(50° C - 25°C)(0.05 µs/° C)]
温度
- 25°C)(0.05 µs/° C)]
VCHOLD=
TC –
VCHOLD=
Tc –
VAPPLIED 1
=
++ () –
–
1
-----------2047
ln(1/2047)
ln(0.0004885)
;[1] VCHOLD
;[2] VCHOLD
;
结合
[1]和[2]
充电到
根据
1/2 LSb
VAPPLIED
误差范围
来充电
= 7.67
µ
s
注 1: 因为参考电压 ( VREF )自行抵消,因此它对该公式没有影响。
2: 充电保持电容 (CHOLD )在每次转换后不会放电。
3: 建议模拟信号源的最大阻抗为 10 k Ω 。此要求是为了符合引脚泄漏电流规范。
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 79 页
PIC16F610/616/16HV610/616
图 9-4: 模拟输入模型
DD
V
Rs
ANx
VT = 0.6V
RIC ≤ 1k
采样开关
SS
Rss
CPIN
5 pF
图注: CPIN
VT
I LEAKAGE
RIC
SS
C
HOLD
VA
= 输入电容
= 门限电压
= 由各连接点在引脚上产生的泄漏电流
= 片内走线等效电阻
= 采样开关
= 采样 / 保持电容
图 9-5 : ADC 传递函数
3FFh
3FEh
3FDh
3FCh
3FBh
V
T = 0.6V
满量程
I
LEAKAGE
± 500 nA
6V
5V
DD
4V
V
3V
2V
1 LSB 理想状况
HOLD = 10 pF
C
V
SS/V REF-
RSS
567891011
采样开关
(kΩ )
ADC 输出码
V
SS/V REF-
004h
003h
002h
001h
000h
1 LSB 理想状况
零量程
转换
DD/V REF+
V
满量程
转换
模拟输入电压
DS41288B_CN 第 80 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 9-2 :与ADC 相关的寄存器汇总
名称
ADCON0
ADCON1
ANSEL ANS ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111
ADRESH
ADRESL
INTCON GIE PEIE
PIE1
PIR1
PORTA
PORTC
TRISA
TRISC
图注: x = 未知, u = 不变, – = 未实现 (读为 0)。 ADC 模块不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(1)
ADFM VCFG CHS3 CHS2 CHS1 CHS0
(1)
— ADCS2 ADCS1 ADCS0 — — — — -000 ---- -000 ----
A/D 结果寄存器的高字节
A/D 结果寄存器的低字节
T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 0000
—A D I E
—A D I F
— — RA5 RA4 RA3 RA2 RA1 RA0 --x0 x000 --u0 u000
— — RC5 RC4 RC3 RC2 RC1 RC0 --xx 00xx --uu 00uu
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
(1)
(1)
CCP1IE
CCP1IF
(1)
C2IE C1IE — TMR2IE
(1)
C2IF C1IF — TMR2IF
GO/DONE
ADON 0000 0000 0000 0000
(1)
TMR1IE -000 0-00 -000 0-00
(1)
TMR1IF -000 0-00 -000 0-00
POR/BOR 时 的值所有其他复位
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
时的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 81 页
PIC16F610/616/16HV610/616
注:
DS41288B_CN 第 82 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
10.0 增强型捕捉 / 比较 /PWM (带自动
关闭和死区)模块
(仅限 PIC16F616/16HV616 )
增强型捕捉 / 比较 /PWM 模块是允许用户计时和控制不
同事件的外设。在捕捉模式下,外设允许对事件的持续
时间进行计时。当预先确定的时间超时后,比较模式允
许用户触发一个外部事件。 PWM 模式可以产生不同频
表 10-1 给出了 ECCP 模块所需的定时器资源。
表 10-1 : ECCP 模式——所需的定时器资源
ECCP 模式 定时器资源
捕捉
比较
PWM Timer2
Timer1
Timer1
率和占空比的脉宽调制(Pulse-Width Modulate )信号。
寄存器 10-1 : CCP1CON :增强型 CCP1 控制寄存器
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 7-6
bit 5-4
bit 3-0
P1M<1:0> :PWM 输出配置位
如果
CCP1M<3:2> = 00、 01 和 10 :
xx =P1A配置为捕捉 / 比较输入; P1B 、 P1C 和 P1D 配置为端口引脚
CCP1M<3:2> = 11:
如果
00 = 单输出; P1A 被调制; P1B 、 P1C 和 P1D 配置为端口引脚
01 = 全桥正向输出; P1D 被调制; P1A 有效; P1B 和 P1C 无效
10 = 半桥输出; P1A 和 P1B 被调制,带有死区控制; P1C 和 P1D 配置为端口引脚
11 = 全桥反向输出; P1B 被调制; P1C 有效; P1A 和 P1D 无效
DC1B<1:0> :PWM 占空比最低有效位
捕捉模式:
未使用。
比较模式:
未使用。
模式:
PWM
这些位是 PWM 占空比的低 2 位。高 8 位在 CCPR1L 中。
CCP1M<3:0> : ECCP 模式选择位
0000 = 捕捉 / 比较 /PWM 关闭 (复位 ECCP 模块)
0001 = 未使用 (保留)
0010 = 比较模式,匹配时翻转输出 ( CCP1IF 位置 1)
0011 = 未使用 (保留)
0100 = 捕捉模式,每个下降沿
0101 = 捕捉模式,每个上升沿
0110 = 捕捉模式,每 4 个上升沿
0111 = 捕捉模式,每 16 个上升沿
1000 = 比较模式,匹配时输出置 1 ( CCP1IF 位置 1)
1001 = 比较模式,匹配时输出清零 ( CCP1IF 位置 1)
1010 = 比较模式,匹配时产生软件中断 ( CCP1IF 位置 1 , CCP1 引脚不受影响)
1011 = 比较模式,触发特殊事件(CCP1IF 位置 1 ,CCP1 复位 TMR1,且 如 果 ADC 模块被使能,启动一次 A/D 转
换)
1100 =PWM模式; P1A 和 P1C 高电平有效; P1B 和 P1D 高电平有效
1101 =PWM模式; P1A 和 P1C 高电平有效; P1B 和 P1D 低电平有效
1110 =PWM模式; P1A 和 P1C 低电平有效; P1B 和 P1D 高电平有效
1111 =PWM模式; P1A 和 P1C 低电平有效; P1B 和 P1D 低电平有效
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 83 页
PIC16F610/616/16HV610/616
10.1 捕捉模式
在捕捉模式下,当在引脚 CCP1 上发生下列事件之一
时, CCPR1H:CCPR1L 捕捉 TMR1 寄存器中的 16 位
值。这些事件如下所示,可由 CCP1CON 寄存器的
CCP1M<3:0> 位进行配置:
• 每个下降沿
• 每个上升沿
• 每 4 个上升沿
• 每 16 个上升沿
进行捕捉后,PIR1 寄存器的中断请求标志位 CCP1IF 被
置 1 。该中断标志位必须用软件清零。如果在 CCPR1H
和CCPR1L 寄存器对中的值被读出之前又发生另一次捕
捉,那么原来的捕捉值会被新捕捉值覆盖(见图10-1 )。
10.1.1 CCP1 引脚配置
在捕捉模式下,应该通过把相关的 TRIS 控制位置 1 将
CCP1 引脚配置为输入。
注: 如果 CCP1 引脚被配置为输出,则写端口
将产生一次捕捉条件。
图 10-1 : 捕捉模式工作原理框图
将标志位 CCP1IF 置 1
(PIR1 寄存器)
和
CCP1CON<3:0>
CCPR1H CCPR1L
捕捉
使能
TMR1H TMR1L
CCP1
引脚
系统时钟(F
预分频器
÷ 1, 4, 16
边沿检测
OSC)
10.1.2 TIMER1 模式选择
为使 CCP 模块使用捕捉特性, Timer1 必须运行在定时
器模式或同步计数器模式。在异步计数器模式下,捕捉
操作可能无法进行。
10.1.3 软件中断
当捕捉模式改变时,可能会产生错误的捕捉中断。用户
应该保持 PIE1 寄存器的 CCP1IE 中断允许位清零以避
免错误中断。此外,用户应在工作模式的任何改变之后
清零 PIR1 寄存器的 CCP1IF 中断标志位。
10.1.4 CCP 预分频器
通过对CCP1CON 寄存器的CCP1M<3:0> 位进行设置,
可以指定 4 种不同的预分频比。每当关闭 CCP 模块,
或者 CCP 模块不在捕捉模式下时,预分频器计数器就
会被清零。任何复位都会将预分频器计数器清零。
从一个捕捉预分频比切换到另一个不会清零预分频器,
而且可能产生一次错误中断。为避免此意外操作,可在
改变预分频比前通过清零 CCP1CON 寄存器来关闭模块
(见例 10-1 )。
例 10-1 : 改变捕捉预分频比
BANKSEL CCP1CON ;Set Bank bits to point
;to CCP1CON
CLRF CCP1CON ;Turn CCP module off
MOVLW NEW_CAPT_PS ;Load the W reg with
; the new prescaler
; move value and CCP ON
MOVWF CCP1CON ;Load CCP1CON with this
; value
DS41288B_CN 第 84 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 10-2 : 与捕捉相关的寄存器汇总
名称
CCP1CON
(1)
CCPR1L
CCPR1H
INTCON GIE PEIE
PIE1
PIR1
T1CON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
TMR1L
TMR1H
TRISA
TRISC
图注: – = 未实现位 (读为 0 ), u = 不变, x = 未知。捕捉、比较和 PWM 不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(1)
P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 0000 0000
捕捉 / 比较 /PWM 寄存器 1 的低字节
(1)
捕捉 / 比较 /PWM 寄存器 1 的高字节
T0IE INTE RAIE T0IF INTF RAIF
— ADIE
— ADIF
16 位 TMR1 寄存器低字节的保持寄存器
16 位 TMR1 寄存器高字节的保持寄存器
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— —T R I S C 5TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
(1)
(1)
CCP1IE
CCP1IF
(1)
C2IE C1IE — TMR2IE
(1)
C2IF C1IF — TMR2IF
TMR1CS TMR1ON
POR/BOR 时 的值所有其他复位
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
(1)
TMR1IE -000 0-00 0000 0-00
(1)
TMR1IF -000 0-00 0000 0-00
0000 0000 0000 0000
0000 0000 uuuu uuuu
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
时的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 85 页
PIC16F610/616/16HV610/616
10.2 比较模式
在比较模式下,16位CCPR1寄存器的值不断地与TMR1
寄存器对的值作比较。如果二者匹配,CCP1 模块可能
会:
• 翻转 CCP1 输出
• 将 CCP1 输出置 1
• 将 CCP1 输出清零
• 产生特殊事件触发信号
• 产生软件中断
引脚的动作由 CCP1CON 寄存器的 CCP1M<3:0> 控制
位的值决定。
所有比较模式都能产生中断。
图 10-2 : 比较模式工作原理框图
CCP1CON<3:0>
模式选择
将 CCP1IF 中断标志位置 1
(PIR1 )
CCP1
引脚
QS
TRIS
输出使能
特殊事件触发信号
特殊事件触发信号将:
• 清零 TMR1H 和 TMR1L 寄存器。
• 不会将 PIR1 寄存器的中断标志位 TMR1IF 置 1。
• 将 GO/DONE 位置 1 以启动 ADC 转换。
4
输出
逻辑
R
CCPR1H CCPR1L
匹配
TMR1H TMR1L
比较器
10.2.2 TIMER1 模式选择
在比较模式下,Timer1 必须运行在定时器模式或同步计
数器模式。在异步计数器模式下,比较操作可能无法进
行。
10.2.3 软件中断模式
当选择“产生软件中断”模式(CCP1M<3:0> = 1010 )
时, CCP1 模块不会对 CCP1 引脚进行控制 (见
CCP1CON 寄存器)。
10.2.4 特殊事件触发器
当选择“特殊事件触发器”模式
(CCP1M<3:0> = 1011 )时 , CCP1 模块将进行以下操
作:
• 复位 Timer1
• 如果 ADC 被使能,则启动 ADC 转换
在此模式下, CCP1 模块不会对 CCP1 引脚进行控制
(见 CCP1CON 寄存器)。
一旦TMR1H 和TMR1L 寄存器对与CCPR1H 和CCPR1L
寄存器对之间发生匹配,便会发生 CCP 的特殊事件触
发输出。TMR1H 和 TMR1L 寄存器对在 Timer1 时钟的
下一个上升沿到来之前不会复位。这使 CCPR1H 和
CCPR1L 寄存器对可作为 Timer1 的 16 位可编程周期寄
存器。
注 1 : CCP 模块的特殊事件触发信号不会将
PIR1 寄存器的中断标志位 TMR1IF 置 1 。
2 : 通过在生成特殊事件触发信号的时钟边沿
和使 Timer1 复位的时钟边沿之间更改
CCPR1H 和 CCPR1L 寄存器对的内容来
移除匹配条件,可以避免复位发生。
10.2.1 CCP1 引脚配置
用户必须通过把相关的 TRIS 位清零将 CCP1 引脚配置
为输出。
注: 清零 CCP1CON 寄存器将把 CCP1 比较输
出锁存器强制设为默认的低电平。这不是
端口 I/O 数据锁存器。
DS41288B_CN 第 86 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
表 10-3 : 与比较相关的寄存器汇总
名称
CCP1CON
(1)
CCPR1L
CCPR1H
INTCON GIE PEIE
PIE1
PIR1
T1CON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
TMR1L
TMR1H
TRISA
TRISC
图注: – = 未实现位 (读为 0 ), u = 不变, x = 未知。捕捉、比较和 PWM 不使用阴影单元。
注 1 : 仅限 PIC16F616/16HV616 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(1)
P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 0000 0000
捕捉 / 比较 /PWM 寄存器 1 的低字节
(1)
捕捉 / 比较 /PWM 寄存器 1 的高字节
T0IE INTE RAIE T0IF INTF RAIF
— ADIE
— ADIF
16 位 TMR1 寄存器低字节的保持寄存器
16 位 TMR1 寄存器高字节的保持寄存器
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— —T R I S C 5TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
(1)
(1)
CCP1IE
CCP1IF
(1)
C2IE C1IE — TMR2IE
(1)
C2IF C1IF — TMR2IF
TMR1CS TMR1ON
POR/BOR 时 的值所有其他复位
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
(1)
TMR1IE -000 0-00 0000 0-00
(1)
TMR1IF -000 0-00 0000 0-00
0000 0000 0000 0000
0000 0000 uuuu uuuu
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
时的值
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 87 页
PIC16F610/616/16HV610/616
10.3 PWM 模式
PWM 模式在 CCP1 引脚上产生脉宽调制信号。占空比、
周期和分辨率由以下寄存器决定:
•PR2
•T2CON
• CCPR1L
• CCP1CON
在脉宽调制(PWM )模式下,CCP 模块会在 CCP1 引
脚上产生最大 10 位分辨率的 PWM 输出信号。由于
CCP1 引脚与端口数据锁存器复用,该引脚的 TRIS 必
须被清零以将 CCP1 引脚设置为输出。
注: 清零 CCP1CON 寄存器将放弃对 CCP1 引
脚的 CCP1 控制。
图 10-3 给出了 PWM 工作原理的简化框图。
图 10-4 给出了 PWM 信号的典型波形。
关于如何设置 CCP 模块使之工作于 PWM 模式的详细
步骤,请参见第 10.3.7 节“设置PWM 操作”。
图 10-3 :简 化 的PWM 框图
占空比寄存器
CCPR1L
CCP1CON<5:4>
PWM 输出 (图 10-4)有一个时基 (周期)和一段输
出保持为高电平的时间 (占空比)。
图 10-4 : CCP PWM 输出
周期
脉冲宽度
TMR2 = 0
TMR2 = PR2
TMR2 = CCPR1L:CCP1CON<5:4>
(2)
CCPR1H
注 1 : 8 位定时器 TMR2 寄存器与 2 位内部系统时钟
(从动)
比较器
TMR2
比较器
PR2
(F
基。
2: 在 PWM 模式下, CCPR1H 是只读寄存器。
(1)
清零 TIMER2 ,
翻转 CCP1 引脚并
锁存占空比
OSC)或预分频器的 2 位一起构成 10 位时
RQ
S
TRIS
CCP1
DS41288B_CN 第 88 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
10.3.1 PWM 周期
PWM周期可通过写 Timer2 的 PR2寄存器来指定。PWM
周期可由公式 10-1 计算。
公式 10-1 : PWM 周期
PWM周期
PR2()1 +[] 4TOSC • • • =
(TMR2预分频值)
当 TMR2 中的值与 PR2 中的值相等时,在下一个递增
周期将发生以下 3 个事件:
•TMR2被清零
• CCP1 引脚被置 1。(例外情况:如果 PWM 占空
比 =0%,引脚将不会被置 1。)
•PWM占空比从 CCPR1L 锁存到 CCPR1H。
注: 在确定 PWM 频率时不会用到 Timer2 后分
频比(见第 7.1 节“Timer2 工作原理”)。
10.3.2 PWM 占空比
通过将 10 位值写入多个寄存器来指定 PWM 占空比:
CCPR1L 寄存器和 CCP1CON 寄存器的 CCP1<1:0>
位。 CCPR1L 包含高 8 位而 CCP1CON 寄存器的
CCP1<1:0> 位包含低 2 位。可以在任何时候写入
CCPR1L 和 CCP1CON 寄存器的 CCP1<1:0> 位。在周
期结束 (即 PR2 和 TMR2 寄存器发生匹配)前占空比
值不会被锁存到 CCPR1H 中。当使 用 PWM 时,
CCPR1H 寄存器是只读的。
公式 10-2 用于计算 PWM 脉冲宽度。
公式 10-3 用于计算 PWM 占空比。
公式 10-2 : 脉冲宽度
脉冲宽度
CCPR1L:CCP1CON<5:4> ()
=
TOSC
• (TMR2预分频值)
•
公式 10-3 :占 空 比
Duty Cycle Ratio
CCPR1H 寄存器和一个 2 位的内部锁存器用于给 PWM
占空比提供双重缓冲。这种双重缓冲结构非常重要,它
可以避免在 PWM 操作中产生毛刺。
8 位定时器 TMR2 寄存器与 2 位内部系统时钟(F
或预分频器的 2 位一起构成 10 位时基。如果 Timer2 预
分频比设置为 1:1 ,则使用系统时钟。
当 10 位时基与 CCPR1H 和 2 位锁存值匹配时,CCP1
引脚被清零 (见图 10-3 )。
占空比
CCPR1L:CCP1CON<5:4> ()
----------------------------------------------------------------------- =
4PR2 1 + ()
OSC)
10.3.3 PWM 分辨率
分辨率决定给定周期的可用占空比数。例如,10 位分辨
率将可得到 1024 个不连续的占空比,而 8 位分辨率将可
得到 256 个不连续的占空比。
当 PR2 为 255 时, PWM 最大分辨率为 10 位。分辨率
是 PR2 寄存器值的函数,如公式 10-4 所示。
公式 10-4 : PWM 分辨率
Re sol u ti on
分辨率
4 PR2 1 + () [] log
------------------------------------------ b i t s =
2() log
位
注: 如果脉冲宽度值比周期长,则指定的 PWM
引脚将保持不变。
表 10-4 : PWM 频率和分辨率示例 (F
PWM 频率
定时器预分频值 (1、 4 和 16)
PR2 值
最大分辨率 (位)
1.22 kHz 4.88 kHz 19.53 kHz 78.12 kHz 156.3 kHz 208.3 kHz
16 4 1 1 1 1
0xFF 0xFF 0xFF 0x3F 0x1F 0x17
10 10 10 8 7 6.6
表 10-5: PWM 频率和分辨率示例 ( F
PWM 频率
定时器预分频值 ( 1、 4 和 16 )
PR2 值
最大分辨率 (位)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 89 页
1.22 kHz 4.90 kHz 19.61 kHz 76.92 kHz 153.85 kHz 200.0 kHz
16 4 1 1 1 1
0x65 0x65 0x65 0x19 0x0C 0x09
888655
OSC = 20 MHz)
OSC = 8 MHz)
PIC16F610/616/16HV610/616
10.3.4 休眠模式下的操作
在休眠模式下,TMR2 寄存器将不会递增,模块状态也
不会改变。如果 CCP1 引脚正在驱动一个值,则会继续
驱动该值。当器件被唤醒时,TMR2将从先前状态继续。
10.3.5 改变系统时钟频率
PWM 频率来自于系统时钟频率。系统时钟频率的任何
改变将导致 PWM 频率的改变。更多详细信息,请参见
第 3.0 节 “振荡器模块”。
10.3.6 复位的影响
任何复位都将强制所有端口为输入模式,并强制 CCP 寄
存器为其复位状态。
10.3.7 设置 PWM 操作
当配置 CCP 模块的 PWM 操作时,可采用以下步骤:
1. 通过将相关的 TRIS 位置 1 ,配置 PWM 引脚
(CCP1 )为输入。
2. 通过装入 PR2 寄存器设置 PWM 周期。
3. 通过装入恰当的值到 CCP1CON 寄存器将 CCP
模块配置为 PWM 模式。
4. 通过装入 CCPR1L 寄存器和 CCP1CON 寄存器
的 CCP1 位设置 PWM 占空比。
5. 配置和启动 Timer2:
•清零 PIR1 寄存器的 TMR2IF 中断标志位。
• 通过装入 T2CON 寄存器的 T2CKPS 位设置
Timer2 预分频值。
•通过将 T2CON 寄存器的 TMR2ON 位置 1 使能
Timer2。
6. 在新的 PWM 周期开始后使能 PWM 输出:
•等待直到 Timer2 溢出(PIR1 寄存器的 TMR2IF
位置 1)。
•通过清零相关的 TRIS 位使能 CCP1 引脚输出。
DS41288B_CN 第 90 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
10.4 PWM (增强型模式)
增强型 PWM 模式可以在最多 4 个输出引脚上产生 PWM
信号,最高可达 10 位分辨率。可通过 4 种 PWM 输出模
式实现:
• 单 PWM
• 半桥 PWM
• 全桥 PWM,正向模式
• 全桥 PWM,反向模式
要选择增强型 PWM 模式,CCP1CON 寄存器的 P1M 位
必须适当置 1。
图 10-5 :增 强 型PWM 模式的简化框图示例
占空比寄存器
CCPR1L
CCPR1H(从动)
比较器
TMR2
CCP1<1:0>
(1)
P1M<1:0>
RQ
S
2
CCP1/P1A
输出
控制器
PWM 输出与 I/O 引脚复用,指定为 P1A、P1B、P1C 和
P1D。PWM 引脚的极性是可配置的,通过将 CCP1CON
寄存器中的 CCP1M 位适当置 1 来选择。
表 10-6 给出了每种增强型 PWM 模式的引脚分配。
图 10-5 给出了增强型 PWM 模块的简化框图的示例。
注: 为防止在第一次使能PWM 时产生不完整的
波形,ECCP 模块在产生 PWM 信号前会等
待直到新的 PWM 周期开始。
CCP1M<3:0>
4
CCP1/P1A
TRISC<5>
P1B
TRISC<4>
P1C
TRISC<3>
P1B
P1C
比较器
PR2
注 1 : 8 位定时器 TMR2 寄存器与 2 位内部 Q 时钟或预分频器中的 2 位一起构成 10 位时基。
清零 Timer2 ,
翻转 PWM 引脚并
锁存占空比
PWM1CON
P1D
注 1: 每个 PWM 输出的 TRIS 寄存器值必须进行适当配置。
2: 清零 CCP1CON 寄存器将放弃对所有 PWM 输出引脚的 ECCP 控制。
3: 增强型 PWM 模式没有使用的任何引脚均可用于备用引脚功能。
表 10-6:各 种 PWM 增强型模式的引脚分配示例
ECCP 模式
单
半桥
全桥,正向
全桥,反向
P1M CCP1/P1A P1B P1C P1D
00
10
01
11
有
有有
有有有有
有有有有
P1D
TRISC<2>
无 无 无
无 无
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 91 页
PIC16F610/616/16HV610/616
图 10-6: PWM (增强型模式)输出关系示例 (高电平有效状态)
P1M<1:0>
信号
0
脉冲
宽度
周期
PR2+1
(单输出)
00
(半桥)
10
(全桥,
01
11
关系:
正向)
(全桥,
反向)
• 周期 = 4 * T
• 脉冲宽度 = T
• 延时 = 4 * T
注 1 : 使用 PWM1CON 寄存器对死区延时编程 (第 10.4.6 节 “可编程死区延时模式”)。
P1A 调制
P1A 调制
P1B 调制
P1A 有效
P1B 无效
P1C 无效
P1D 调制
P1A 无效
P1B 调制
P1C 有效
P1D 无效
OSC * (PR2 + 1) * (TMR2 预分频值 )
OSC * (CCPR1L<7:0>:CCP1CON<5:4>) * (TMR2 预分频值 )
OSC * (PWM1CON<6:0>)
延时
(1)
延时
(1)
DS41288B_CN 第 92 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
图 10-7:增 强 型 PWM 输出关系示例 (低电平有效状态)
P1M<1:0>
(单输出)
00
10
01
11
关系:
(半桥)
(全桥,
正向)
(全桥,
反向)
• 周期 = 4 * T
• 脉冲宽度 = T
• 延时 = 4 * T
注 1 : 使用 PWM1CON 寄存器对死区延时编程 (第 10.4.6 节 “可编程死区延时模式”)。
OSC * (PR2 + 1) * (TMR2 预分频值 )
OSC * (CCPR1L<7:0>:CCP1CON<5:4>) * (TMR2 预分频值 )
OSC * (PWM1CON<6:0>)
信号
P1A 调制
P1A 调制
P1B 调制
P1A 有效
P1B 无效
P1C 无效
P1D 调制
P1A 无效
P1B 调制
P1C 有效
P1D 无效
0
延时
脉冲
宽度
(1)
延时
PR2+1
周期
(1)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 93 页
PIC16F610/616/16HV610/616
10.4.1 半桥模式
在半桥模式下,有两个引脚用作输出驱动推挽式负载。
CCP1/P1A 引脚输出 PWM 输出信号,P1B 引脚输出互
补的 PWM 输出信号 (见图 10-8 )。这种模式可用于半
桥应用(如图 10-9 所示),或者用于全桥应用——这种
情况下使用两个 PWM 信号调制 4 个功率开关。
在半桥模式下,可编程死区延时可用来防止半桥功率器
件中流过直通(Shoot-through )电流。PWM1CON 寄存
器的 PDC<6:0> 位的值设置在输出被驱动为有效之前的
指令周期数。如果这个值比占空比大,则在整个周期中
相应的输出保持为无效。关于死区延时操作的详细信
息,请参见第 10.4.6 节 “可编程死区延时模式”。
图 10-9 : 半桥应用示例
标准半桥电路(“推挽式”)
FET
驱动器
P1A
由于 P1A 和 P1B 输出与端口数据锁存器是复用的,相
关的TRIS 位必须清零,从而将 P1A 和P1B 配置为输出。
图 10-8 :半 桥PWM 输出示例
周期
脉冲宽度
(2)
P1A
td
(2)
P1B
(1)
td = 死区延时
注 1 : 此时 TMR2 寄存器和 PR2 寄存器的值相等。
2 : 图中输出信号为高电平有效。
td
+
-
周期
(1) (1)
驱动全桥电路的半桥输出
P1A
P1B
P1B
FET
驱动器
FET
驱动器
FET
驱动器
V+
负载
负载
FET
驱动器
FET
驱动器
+
-
DS41288B_CN 第 94 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
10.4.2 全桥模式
在全桥模式下, 4 个引脚都用作输出。全桥应用的示例
如图 10-10 所示。
在正向模式下,引脚 CCP1/P1A 被驱动为有效状态,引
脚 P1D 被调制,而 P1B 和 P1C 将被驱动为无效状态,
如图 10-11 中所示。
在反向模式下,P1C 被驱动为有效状态,引脚 P1B 被调
制,而 P1A 和 P1D 将被驱动为无效状态,如图 10-11 中
所示。
P1A 、P1B 、P1C 和 P1D 输出与端口数据锁存器复用。
相关的 TRIS 位必须清零,从而将 P1A 、P1B 、 P1C 和
P1D 引脚配置为输出。
图 10-10 : 全桥应用示例
V+
P1A
P1B
P1C
P1D
FET
驱动器
FET
驱动器
QA
QB
负载
V-
QC
QD
FET
驱动器
FET
驱动器
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 95 页
PIC16F610/616/16HV610/616
图 10-11 :全 桥PWM 输出示例
正向模式
周期
(2)
P1A
脉冲宽度
(2)
P1B
(2)
P1C
(2)
P1D
(1)
反向模式
脉冲宽度
(2)
P1A
(2)
P1B
(2)
P1C
(2)
P1D
(1)
注 1: 此时 TMR2 寄存器和 PR2 寄存器的值相等。
2: 图中输出信号为高电平有效。
(1)
周期
(1)
DS41288B_CN 第 96 页 初稿 2007 Microchip Technology Inc.
PIC16F610/616/16HV610/616
10.4.2.1 全桥模式中的方向改变
在全桥模式下,CCP1CON 寄存器中的 P1M1 位允许用
户控制正 / 反方向。当应用软件改变这个方向控制位时,
模块将在下一个 PWM 周期改用新的方向。
通过改变 CCP1CON 寄存器的 P1M1 位,可以用软件启
动方向改变。以下序列在当前 PWM 周期结束前发生 4
个 Timer2 周期:
• 调制输出 ( P1B 和 P1D)进入无效状态。
• 相关的未调制输出 ( P1A 和 P1C)被切换到以相
反的方向驱动。
•PWM 调制在下一个周期开始继续。
关于该序列的说明,请参见图 10-12 。
图 10-12 : PWM 方向改变的示例
(1)
信号
周期
全桥模式不提供死区延时。因为始终只有一个输出被调
制,所以通常不需要死区延时。有一种情况需要死区延
时。这一情况发生在以下两个条件同时满足时:
1. 当输出的占空比达到或者接近 100% ,PWM 输出
方向改变。
2. 功率开关(包括功率器件和驱动电路)的关断时
间比导通时间要长。
在图 10-13 所示的例子中,在占空比接近 100% 时,
PWM 方向从正向改变到反向。在这个示例中,在时间
t1,输出 P1A 和 P1D 变为无效,而输出 P1C 变为有效。
因为功率器件的关断时间比导通时间要长,在“t ”时 间
内,功率器件 QC 和 QD 中可能流过直通电流 (见图
10-10)。当 PWM 方向从反向改变到正向时,功率器件
QA 和 QB 也将出现相同的现象。
如果应用中需要在高占空比时改变 PWM 方向,避免直
通电流的两种可能方法是:
1. 在改变方向之前的一个 PWM 周期降低 PWM 占
空比。
2. 使用开关驱动电路,使开关管的关断时间比导通
时间短。
也可能存在其他避免直通电流的方案。
周期
P1A(高电平有效)
P1B(高电平有效)
P1C(高电平有效)
P1D(高电平有效)
脉冲宽度
注 1 : 可在 PWM 周期的任意时刻,写 CCP1CON 寄存器的方向位 P1M1 。
2 : 当改变方向时, P1A 和 P1C 信号在当前 PWM 周期结束之前切换。此时被调制的 P1B 和 P1D 信号是无效
的。该时间长度为 4 个 Timer2 计数。
脉冲宽度
(2)
2007 Microchip Technology Inc. 初稿 DS41288B_CN 第 97 页
PIC16F610/616/16HV610/616
图 10-13 : 在占空比接近 100% 时改变 PWM 方向的示例
正向周期 反向周期
P1A
t1
P1B
P1C
P1D
外部开关 C
外部开关 D
潜在的
直通电流
注 1 : 图中所有信号均为高电平有效。
ON 是功率开关 QC 及其驱动电路的导通延时。
2 : T
OFF 是功率开关 QD 及其驱动电路的关断延时。
3 : T
DC
PW
TON
TOFF
T = TOFF – TON
DS41288B_CN 第 98 页 初稿 2007 Microchip Technology Inc.