PIC16F630/676
数据手册
14 引脚闪存 8 位
CMOS 单片机
2004 Microchip Technology Inc. DS40039C_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 对因这些信息及使用这些信息而引起的后果不承担
任何责任。未经 Microchip 书面批准,不得将 Microchip 的产
品用作生命维持系统中的关键组件。在 Microchip 知识产权保
护下,不得暗中或以其它方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 K
EEL OQ、 microID、 MPLAB、 PIC、 PICmicro、
PICSTART、 PRO MATE、 PowerSmart、 rfPIC 和
SmartShunt均为 Microchip Technology Inc.在美国和其它国家
或地区的注册商标。
AmpLab、 FilterLab、 MXDEV、 MXLAB、 PICMASTER、
rfPIC、 SEEVAL、 SmartSensor 和 The Embedded Control
Solutions Company 均为 Microchip Technology Inc. 在美国的
注册商标。
Analog-for-the-Digital Age、 Application Maestro、
dsPICDEM、 dsPICDEM.net、 dsPICworks、 ECAN、
ECONOMONITOR、 FanSense、 FlexROM、 fuzzyLAB、
In-Circuit Serial Programming、 ICSP、 ICEPIC、
Migratable Memory、 MPASM、 MPLIB、 MPLINK、
MPSIM、 PICkit、 PICDEM、 PICDEM.net、 PICLAB、
PICtail、 PowerCal、 PowerInfo、 PowerMate、
PowerTool、 rfLAB、 rfPICDEM、 Select Mode、 Smart
Serial、 SmartTel 和 Total Endurance 均为 Microchip
Technology Inc. 在美国和其它国家或地区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其它商标均为各持有公司所有。
© 2004, Microchip Technology Inc 。版权所有。
Microchip
Mountain View
过了
机、
器和模拟产品方面的质量体系流程均符合
Microchip
9001:2000
位于美国亚利桑那州
ISO/TS-16949:2002
KEE LOQ
的全球总部、设计中心和晶圆生产厂均于
®
跳码器件、串行
在开发系统的设计和生产方面的质量体系也已通过了
认证。
Chandler和Tem pe
质量体系认证。公司在
EEPROM
、单片机外设、非易失性存储
ISO/TS-16949:2002
PICmicro
及位于加利福尼亚州
2003年10
®
8
位单片
。此外,
月通
ISO
DS40039C_CN 第 ii 页 2004 Microchip Technology Inc.
PIC16F630/676
基于 FLASH 的 14 引脚 8 位 CMOS 单片机
高性能 RISC CPU :
• 只需学习 35 条指令
- 除程序分支指令外,其余所有指令均为单周期
指令。
• 工作速度:
- DC-20 MHz 振荡器 / 时钟输入
- DC-200 ns 指令周期
• 中断能力
•8级深硬件堆栈
• 直接寻址,间接寻址,相对寻址等寻址模式
单片机性能特性:
• 可选择内部和外部振荡器
- 内部高精度 4MHz振荡器,出厂时精度校准为
±1%
- 可使用晶振和谐振器作为外部振荡器
- 电压典型值为 3.0V 时,从休眠模式唤醒只需
5 µ s
• 省电休眠模式
• 宽工作电压范围: 2.0V 到 5.5V
• 工业级和扩展级温度范围
• 低功耗的上电复位 ( POR)
• 上电定时器 ( PWRT)和振荡器起振定时器
( OST)
• 欠压检测 ( BOD)
• 带有独立振荡器的看门狗定时器 ( WDT)以保证
可靠运行
• 复用 MCLR
• 引脚电平变化可触发中断
• 独立的可编程弱上拉功能
• 可编程代码保护
• 高持久性的 FLASH/EEPROM 单元
-FLASH可经受 100,000 次写操作
- EEPROM 可经受 1,000,000 次写操作
-FLASH/数据EEPROM的数据保存期超过40年
/ 输入引脚
低功耗特性:
• 待机电流:
-1nA@2.0V,典型值
• 运行电流:
-8.5µA@32 kHz, 2.0V,典型值
-100µA@1 MHz, 2.0V,典型值
• 看门狗定时器电流:
- 300 nA@2.0V,典型值
•Timer1振荡器电流:
-4µA@32 kHz, 2.0V,典型值
外设特性:
•12个具备独立方向控制功能的 I/O 引脚
• 高拉 / 灌电流能力,可直接驱动 LED
• 模拟比较器模块:
- 一个模拟比较器
- 可编程的片内比较器基准电压 ( CV
块
- 与器件输入引脚复用的可编程输入
- 可对比较器输出进行外部访问
• 模数转换器模块 ( PIC16F676):
-10位分辨率
- 可编程的 8 通道输入
- 基准电压输入
•Timer0:带 8 位可编程预分频器的 8 位定时器/ 计数
器
• 增强功能的 Timer1:
- 带预分频器的 16 位定时器 / 计数器
- 外部门控输入模式
- 如果选择 INTOSC方式,在LP模式中可以选择
OSC1 和 OSC2 作为 Timer1 的振荡器
• 通过两个引脚可进行在线串行编程 ( ICSP
REF)模
TM
)
程序存储区 数据存储区
器件
PIC16F630 1024 64 128 12 – 1 1/1
PIC16F676 1024 64 128 12 8 1 1/1
2004 Microchip Technology Inc. DS40039C_CN 第 1 页
FLASH
( 字 )
SRAM
( 字节 )
EEPROM
( 字节 )
I/O
10 位 A/D
( 通道 )
比较器 8/16 位定时器
PIC16F630/676
引脚示意图
14 引脚 PDIP ,SOIC,TSSOP 封装形式
RA5/T1CKI/OSC1/CLKIN
RA4/T1G
/OSC2/CLKOUT
RA3/MCLR
RA5/T1CKI/OSC1/CLKIN
RA4/T1G
/OSC2/AN3/CLKOUT
RA3/MCLR
VDD
/VPP
RC5
RC4
RC3
VDD
/VPP
RC5
RC4
RC3/AN7
1
14
PIC16F630
2
13
3
12
4
11
5
10
6
9
7
8
1
14
PIC16F676
2
13
3
12
4
11
5
10
6
9
7
8
VSS
RA0/CIN+/ICSPDAT
RA1/CIN-/ICSPCLK
RA2/COUT/T0CKI/INT
RC0
RC1
RC2
VSS
RA0/AN0/CIN+/ICSPDAT
RA1/AN1/CIN-/V
RA2/AN2/COUT/T0CKI/INT
RC0/AN4
RC1/AN5
RC2/AN6
REF/ICSPCLK
DS40039C_CN 第 2 页 2004 Microchip Technology Inc.
PIC16F630/676
目录
1.0 器件概述 .................................................................................................................................................................................... 5
2.0 存储区组织结构 ......................................................................................................................................................................... 7
3.0 端口 A 和 C ............................................................................................................................................................................. 19
4.0 Timer0 模块 ............................................................................................................................................................................. 29
5.0 具备门控功能的 Timer1 模块 ................................................................................................................................................... 32
6.0 比较器模块 .............................................................................................................................................................................. 37
7.0 模数转换器 ( A/D)模块 (仅限 PIC16F676 ) ...................................................................................................................... 43
8.0 数据 EEPROM 存储器 ............................................................................................................................................................. 49
9.0 CPU 的特殊功能 ..................................................................................................................................................................... 53
10.0 指令系统概述 .......................................................................................................................................................................... 71
11.0 开发系统 .................................................................................................................................................................................. 79
12.0 电气特性 .................................................................................................................................................................................. 85
13.0 DC 和 AC 特性图表 ............................................................................................................................................................... 107
14.0 封装信息 ................................................................................................................................................................................ 117
附录 A: 数据手册版本历史 ................................................................................................................................................................. 121
附录 B: 器件差异 ............................................................................................................................................................................... 121
附录 C: 器件移植 ............................................................................................................................................................................... 122
附录 D: 从其它 PICmicro® 器件的移植 ............................................................................................................................................. 122
在线支持 ............................................................................................................................................................................................ 127
系统信息与升级热线 .......................................................................................................................................................................... 127
读者反馈表 ........................................................................................................................................................................................ 128
产品识别系统 .................................................................................................................................................................................... 129
致 客 户
我司旨在提供最佳文档供客户正确使用 Microchip 产品。 为此,我们将持续改善公司出版物以更好地满足您的要求。出版物的质量
将随新手册及更新版本的推出而得到改善。
如果您对本出版物有任何问题和建议,请通过电子邮件或传真联系我司 TRC经理,电子邮件地址为CTRC@microchip.com,
传真号码为 (8621)5407 5066。我们欢迎您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
您可通过检查数据手册中任意一页外侧下角的文献编号来确定其版本。文献编号的最后一个字母是版本编号
DS30000 的 A 版本。
勘误表
现有器件可能带有一份勘误表,说明了 ( 与数据手册的 ) 小运行差异以及建议的工作条件。当器件 / 文档的差异为我们所知时,我
们将出版一份勘误表。 勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
•Microchip网站 http://www.microchip.com
• 当地 Microchip 销售办事处 ( 见尾页 )
•Microchip总部文献中心;美国传真号码:001 (480) 792-7277
当致电销售办事处或文献中心时,请说明您所使用的器件名称、芯片和数据手册版本 ( 包括文献编号 )。
客户通知系统
欲接收我司产品的最新信息,请到我公司网站 www.microchip.com/cn 上注册。
,例如:DS30000A 是
2004 Microchip Technology Inc. DS40039C_CN 第 3 页
PIC16F630/676
注:
DS40039C_CN 第 4 页 2004 Microchip Technology Inc.
PIC16F630/676
1.0 器件概述
本文档包括 PIC16F630/676 芯片的特定信息。其他信息
可参见 《PICmicro
(DS33023_CN )。该参考手册可视为本数据手册的补
充文档,并可向当地 Microchip 销售部门索取,或从
Microchip 网站下载。我们极力推荐用户阅读该手册,以
更好地理解芯片结构和外围模块的操作。
图 1-1: PIC16F630/676 结构框图
OSC1/CLKIN
OSC2/CLKOUT
®
中档单片机系列参考手册》
配置
FLASH
13
1K x 14
程序
存储器
程序
总线
内部
振荡器
14
指令寄存器
指令
解码 &
控制
定时
产生
8
INT
程序计数器
8 级堆栈
(13 位)
直接寻址
上电
定时器
振荡器
起振定时器
上电复位
看门狗
定时器
欠压
检测
RAM 地址
7
本数据手册针对 PIC16F630 以及 PIC16F676 器件进行
了介绍。除 PIC16F676 具有一个 10 位 A/D 转换器之
外,上述两款器件完全相同。PIC16F630/676 芯片采用
14 引脚 PDIP 、SOIC 和 TSSOP 封装形式。图 1-1 中显
示了它们的芯片结构框图。
表 1-1 则对芯片引脚进行了介绍。
3
8
数据总线
RAM
64
字节
文件
寄存器
地址 MUX
FSR 寄存器
状态寄存器
ALU
W 寄存器
9
8
MUX
间接
寻址
8
PORTA
RA0
RA1
RA2
RA3
RA4
RA5
PORTC
RC0
RC1
RC2
RC3
RC4
RC5
T1G
T1CKI
T0CKI
VREF
AN0 AN1 AN2 AN3
MCLR
Timer0 Timer1
模数转换器
(仅限 PIC16F676 )
AN4 AN5 AN6 AN7
DD
V
VSS
和电压基准
CIN- CIN+ COUT
模拟
比较器
EEDATA
128 字节
8
EEPROM
EEADDR
数据
2004 Microchip Technology Inc. DS40039C_CN 第 5 页
PIC16F630/676
表 1-1: PIC16F630/676 引脚说明
名称 功能
RA0/AN0/CIN+/ICSPDAT RA0 TTL CMOS 双向 I/O,带可编程上拉和电平变化中断功能
AN0 AN — A/D 通道 0 输入
CIN+ AN 比较器输入
ICSPDAT TTL CMOS 串行编程数据 I/O
RA1/AN1/CIN-/VREF /
ICSPCLK
RA2/AN2/COUT/T0CKI/INT RA2 ST CMOS 双向 I/O,带可编程上拉和电平变化中断功能
RA3/MCLR/VPP RA3 TTL — 变化中断的输入端口
RA4/T1G
CLKOUT
RA5/T1CKI/OSC1/CLKIN
RC0/AN4 RC0 TTL CMOS 双向 I/O
RC1/AN5 RC1 TTL CMOS 双向 I/O
RC2/AN6 RC2 TTL CMOS 双向 I/O
RC3/AN7 RC3 TTL CMOS 双向 I/O
RC4 RC4 TTL CMOS 双向 I/O
RC5 RC5 TTL CMOS 双向 I/O
SS V SS 电源 — 接地参考
V
V
DD V DD 电源 — 电源的正极
图注: 阴影部分 = 仅限 PIC16F676
/AN3/OSC2/
TTL = TTL 输入缓冲区
ST = 施密特触发器输入缓冲区
RA1 TTL CMOS 双向 I/O,带可编程上拉和电平变化中断功能
AN1 AN — A/D 通道 1 输入
CIN- AN — 比较器输入
VREF AN — 外部电压基准
ICSPCLK ST — 串行编程时钟
AN2 AN — A/D 通道 2 输入
COUT — CMOS 比较器输出
T0CKI ST — Timer0 时钟输入
INT ST — 外部中断
MCLR
PP HV — 编程电压
V
RA4 TTL CMOS 双向 I/O,带可编程上拉和电平变化中断功能
T1G
AN3 AN3 — A/D 通道 3 输入
OSC2 — XTAL 晶体 / 谐振器
CLKOUT — CMOS FOSC /4 输出
RA5 TTL CMOS 双向 I/O,带可编程上拉和电平变化中断功能
T1CKI ST — Timer1 时钟
OSC1 XTAL — 晶体 / 谐振器
CLKIN ST — 外部时钟输入 / RC 振荡器连接端
AN4 AN4 — A/D 通道 4 输入
AN5 AN5 — A/D 通道 5 输入
AN6 AN6 — A/D 通道 6 输入
AN7 AN7 — A/D 通道 7 输入
输入
类型
ST — 主清除
ST — Timer1 门控
输出类型 说明
DS40039C_CN 第 6 页 2004 Microchip Technology Inc.
PIC16F630/676
2.0 存储区组织结构
2.1 程序存储区组织结构
PIC16F630/676 有一个 13 位的程序计数器,最大可寻
址 8K x 14 的程序存储空间,而其中 PIC16F630/676 只
能物理实现 1K x 14 (地址为 0000h - 03FFh )的寻
址。对超越该区间的存储地址进行访问将导致在首个1K
x 14 空间内的循环。复位矢量地址为 0000h ,中断矢量
地址为 0004h (见表 2-1 )。
图 2-1: PIC16F630/676 的程序存储
区映射和堆栈
PC<12:0>
CALL, RETURN
RETFIE, RETLW
1 级堆栈
2 级堆栈
8 级堆栈
复位矢量
13
000h
2.2 数据存储区组织结构
数据存储区 (见表 2-2 )分区为两个存储区,存储区包
含有通用寄存器和特殊功能寄存器。特殊功能寄存器位
于每个存储区的最初32 个存储单元内。而地址单元20h-
5Fh 则为通用寄存器。通用寄存器全部采用静态 RAM 实
现,并可映射到两个存储体中。所有其它 RAM 地址单
元均未使用,对它们进行读操作将返回 ‘0 ’。 RP0 位
(STATUS<5 >)是存储区选择位。
•RP0 = 0时,则选择存储区 0
•RP0 = 1时, 则选择存储区 1
注: STATUS<7:6> 中的 IRP 和 RP1 位是保留
位,应始终保持为 ‘0 ’。
2.2.1 通用寄存器组
器件 PIC16F630/676 中寄存器组的组织结构为 64 x 8。
每个寄存器均可通过选择寄存器 FSR (见第 2.1 节)进
行直接或者间接访问。
中断矢量
片内程序存储区
0004
0005
03FFh
0400h
1FFFh
2004 Microchip Technology Inc. DS40039C_CN 第 7 页
PIC16F630/676
2.2.2 特殊功能寄存器
特殊功能寄存器为 CPU 和外围模块用于控制所需器件
操作的寄存器 (见表 2-1 )。这些寄存器皆为静态
RAM 。
特殊功能寄存器可分为两类,即:分别用于内核和外围
功能模块的寄存器。本节将介绍与“内核”相关联的特
殊功能寄存器。与外围功能模块相关的特殊功能寄存器
将在相应的功能模块章节中介绍。
图 2-2: PIC16F630/676 的数据存储
区映射
寄存器
地址
间接寻址 .
STATUS
PCLATH
INTCON
ADRESH
ADCON0
(1)
00h
TMR0
PCL
FSR
PORTA
PORTC
PIR1
TMR1L
TMR1H
T1CON
CMCON VRCON
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
(2)
1Eh
(2)
1Fh
20h
间接寻址
OPTION_REG
PCL
STATUS
FSR
TRISA
TRISC
PCLATH
INTCON
PIE1
PCON
OSCCAL
ANSEL
WPUA
IOCA
EEDAT
EEADR
EECON1
EECON2
ADRESL
ADCON1
寄存器
地址
(1)
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
(2)
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
(1)
9Dh
(2)
9Eh
(2)
9Fh
A0h
通用寄存器
64 字节
5Fh
60h
7Fh
存储体 0
未用的数据存储器单元,读作 ‘0 ’
1: 非实际存在的寄存器。
2: 仅限于 PIC16F676 。
DS40039C_CN 第 8 页 2004 Microchip Technology Inc.
访问
20h-5Fh
DFh
E0h
FFh
存储体 1
PIC16F630/676
表 2-1: PIC16F630/676 特殊功能寄存器汇总存储区 0
POR、
地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
存储体 0
00h INDF 用 FSR 的内容寻址数据存储器 ( 非实际存在的寄存器) xxxx xxxx 18,61
01h TMR0 Timer0 模块寄存器 xxxx xxxx 29
02h PCL 程序计数器 (PC) 低 8 位字节 0000 0000 17
03h STATUS
04h FSR 间接数据存储器地址指针 xxxx xxxx 18
05h PORTA
06h — 未用 — —
07h PORTC
08h — 未用 — —
09h — 未用 — —
0Ah PCLATH
0Bh INTCON GIE PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 13
0Ch PIR1
0Dh — 未用 — —
0Eh TMR1L 16 位 TMR1 寄存器低 8 位的保持寄存器 xxxx xxxx 32
0Fh TMR1H 16 位 TMR1 寄存器高 8 位的保持寄存器 xxxx xxxx 32
10h T1CON
11h — 未用 — —
12h — 未用 — —
13h — 未用 — —
14h — 未用 — —
15h — 未用 — —
16h — 未用 — —
17h — 未用 — —
18h — 未用 — —
19h CMCON
1Ah — 未用 — —
1Bh — 未用 — —
1Ch — 未用 — —
1Dh — 未用 — —
1Eh ADRESH
1Fh ADCON0
图注: - = 未用的存储单元,读作 0, u = 不变, x = 未知, q =数值取决于当时的条件,阴影 = 未用
注 1: 其它 (非上电复位) 复位包括在正常操作期间的 MCLR
2: IRP 和 RP1 位为保留位,应始终保持清零。
3: 仅限于 PIC16F676 。
(3)
(3)
(2)
IRP
— —
— —
— — — 程序计数器的高 5 位的写缓冲器 ---0 0000 17
EEIF ADIF — —C M I F— —T M R 1 I F00-- 0--0 15
— T1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
—C O U T— CINV CIS CM2 CM1 CM0 -0-0 0000 37
A/D 转换结果经过左移处理的高 8 位或右移处理的低 2 位 xxxx xxxx 44
ADFM VCFG — CHS2 CHS1 CHS0 GO/DONE ADON
RP1
(2)
RP0 TO PD ZD CC
I/O 控制寄存器 --xx xxxx 19
I/O 控制寄存器 --xx xxxx 26
复位、欠压检测和看门狗定时器复位。
BOD 的
页
复位值
0001 1xxx 11
-000 0000 34
00-0 0000 45,61
2004 Microchip Technology Inc. DS40039C_CN 第 9 页
PIC16F630/676
表 2-2: PIC16F630/676 专用寄存器汇总存储区 1
POR、
地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bank 1
80h INDF 用 FSR 的内容寻址数据存储器 ( 非物理寄存器) xxxx xxxx 18,61
81h OPTION_REG
82h PCL 程序计数器 (PC) 低 8 位字节 0000 0000 17
83h STATUS
84h FSR 间接数据存储器寻址指针 xxxx xxxx 18
85h TRISA
86h — 未用 — —
87h TRISC
88h — 未用 — —
89h — 未用 — —
8Ah PCLATH
8Bh INTCON GIE PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 13
8Ch PIE1 EEIE ADIE
8Dh — 未用 — —
8Eh PCON
8Fh — —
9 0 hO S C C A L C A L 5C A L 4C A L 3C A L 2C A L 1C A L 0
91h ANSEL
92h — 未用 — —
93h — 未用 — —
94h — 未用 — —
95h WPUA
96h IOCA
97h — 未用 — —
98h — 未用 — —
99h VRCON VREN
9Ah EEDAT EEPROM 数据寄存器 0000 0000 49
9Bh EEADR
9Ch EECON1
9Dh EECON2 EEPROM 控制寄存器 2 ( 非物理寄存器) ---- ---- 49
9Eh ADRESL
9Fh ADCON1
其中: - = 未用的存储单元,读作 0, u = 不变, x = 未知, q =数值 取决于当时的条件。阴影 = 未用
注 1: 其余 (非上电复位) 复位包括 在正常操作期间的 MCLR
2: IRP 和 RP1: 保留位,始终为 0
3: 仅限于 PIC16F676 。
(3)
(3)
RAPU
IRP
ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 46
A/D 转换结果经过左移处理的低 2 位或右移处理的高 8 位 xxxx xxxx 44
(3)
INTEDG T0CS T0SE PSA PS2 PS1 PS0
(2)
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 19
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 —
— — — 程序计数器的高 5 位的写缓冲区 ---0 0000 17
— — — — — —P O RBOD
— —
— — IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA0 --00 0000 21
— EEPROM 地址寄存器 0000 0000 49
— — — — WRERR WREN WR RD ---- x000 50
— ADCS2 ADCS1 ADCS0 — — — — -000 ---- 45,61
(2)
RP1
—V R R— VR3 VR2 VR1 VR0 0-0- 0000 42
RP0 TO PD ZD CC
— —C M I E— —T M R 1 I E00-- 0--0 14
— —
WPUA5 WPUA4
复位、掉电锁定检测 和 看门狗定时器复位。
—
WPUA2 WPUA1 WPUA0
BOD 复位 值页
1111 1111 12,30
0001 1xxx 11
---- --qq 16
1000 00-- 16
--11 -111 20
DS40039C_CN 第 10 页 2004 Microchip Technology Inc.
PIC16F630/676
2.2.2.1 STATUS 寄存器
如寄存器 2-1 所示, STATUS 寄存器包括:
•ALU的算术运算结果状态位
• 复位状态位
• 数据存储区 ( SRAM)的存储器体选择位
STATUS 寄存器与其它寄存器一样,可作为任何指令的
目的地。如果 STATUS 寄存器作为一条指令的目的地,
而这条指令又影响了 Z 、 DC 和 C 标志位,那么就不允
许对这三个标志位进行写操作。这些标志位根据器件逻
辑来置位或清零。而且, TO
因此当执行一条把 STATUS 寄存器作为目的地指令时,
运行结果可能会与预想的不同。例如,指令 CLRF
STATUS 将会清除状态寄存器中的高三位,并置 Z 标志
位为‘1 ’。此时,STATUS 寄存器的值将是 000u u1uu
( u = 不变)。
和 PD 标志位是不可写的。
鉴于此,如果想改变 STATUS 寄存器中的内容,建议使
用 BCF , BSF , SWAPF 和 MOVWF 指令,因为这些指令
将不会对状态寄存器中的任何标志位造成影响。关于其
它不会影响 STATUS 标志位的指令,参见 “指令集汇
总”。
注:1 PIC16F630/676 中未使用 IRP 和 RP1
(STATUS<7:6>)标志位,所以这些位应保
持清零。不推荐使用这些标志位,以避免影
响其与将来产品的向上兼容性。
2 在减法指令中,C 和 DC 标志位分别作为借
位和半借位,举例请参见 SUBLW 和 SUBWF
减法指令。
寄存器 2-1: STATUS — 状态寄存器 (地址: 03h 或 83h)
保留
IRP RP1 RP0 TO PD ZD CC
bit 7 bit 0
bit 7 IRP: 该位保留,应保持为 ‘0’
bit 6 RP1:该位保留,应保持为 ‘0’
bit 5 RP0: 寄存器存储体选择位 (用于进行直接寻址)
1 = 寄存器 1 (80h - FFh )
0 = 寄存器 0 (00h - 7Fh )
bit 4 TO
bit 3 PD:上电复位标志位
bit 2 Z:零标志位
bit 1
bit 0 C:进位 / 借位
: 超时标志位
1 = 在上电复位、 CLRWDT 指令或 SLEEP 指令执行之后
0 = WDT 超时被清零
1 = 上电复位或执行 CLRWDT 指令后
0 = 执行 SLEEP 指令后被清零
1 = 算术运算或者逻辑运算的运行结果是 0
0 = 算术运算或者逻辑运算的运行结果不是 0
DC :辅助进位 / 借位
对于借位,极性相反。
1 = 执行结果的第 4 位向高 4 位有进位发生
0 = 执行结果的第 4 位向高 4 位没有进位发生
1 = 执行结果向高位有进位时
0 = 执行结果向高位无进位时
注: 对于借位
保留 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
位(ADDWF、 ADDLW、 SUBLW、 SUBWF 指令)
位 (ADDWF 、 ADDLW、 SUBLW、 SUBWF 指令)
,极性相反。执行减法操作时,是通过加上第二个操作数的补码实现的。
对于移位指令 (RRF , RLF ),是把源寄存器的最高位或最低位放入 C 中。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 11 页
PIC16F630/676
2.2.2.2 OPTION 寄存器
OPTION 寄存器是一个可读写寄存器,它包含了不同的
控制位以配置:
•TMR0/WDT 预分频器
• 外部 RA2/INT 中断
•TMR0
•PORTA的弱上拉
寄存器 2-2: OPTION_REG — 选择寄存器 (地址: 81h)
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
INTEDG T0CS T0SE PSA PS2 PS1 PS0
注: 如果需要 TMR0 获得 1:1 的预分频值,可通
过将 PSA 位(OPTION<3>)设定为‘1 ’
以将预分频器分配给WDT 。参 见 第 4.4 节。
bit 7 RAPU
bit 6 INTEDG: 中断触发边沿选择位
bit 5 T0CS: TMR0 时钟源选择位
bit 4 T0SE: TMR0 计数脉冲信号边沿选择位
bit 3 PSA:预分频器分配控制位
bit 2-0 PS2:PS0: 预分频器倍率选择位
: PORTA 弱上拉使能位
1 = 禁止 PORTA 的弱上拉
0 = 通过单独的端口闭锁值使能 PORTA 弱上拉
1 = 引脚 RA2/INT 上升沿触发
0 = 引脚 RA2/INT 下降沿触发
1 = RA2/T0CKI 引脚上的电平跳变
0 = 内部指令周期时钟 (CLKOUT )
1 = 根据 RA2/T0CKI 引脚信号的下降沿跳变进行递增计数
0 = 根据 RA2/T0CKI 引脚信号的上升沿跳变进行递增计数
1 = 用于 WDT
0 = 用于 Timer0 模块
位值 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
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
DS40039C_CN 第 12 页 2004 Microchip Technology Inc.
PIC16F630/676
2.2.2.3 INTCON 寄存器
INTCON 寄存器是一个可读写的寄存器,它包含 TMR0
寄存器溢出、PORTA 电平变化和外部 RA2/INT 引脚中
断等各种使能控制位和标志位。
注: 当中断条件满足时,无论相应中断使能或
全局中断使能位 GIE (INTCON<7> )的状
态如何,中断标志位将被置 1 。用户程序应
确保在重新使能中断之前,相应的中断标
志位已被清除。
寄存器 2-3: INTCON — 中断控制寄存器 (地址:0Bh OR 8Bh)
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
bit 7 GIE: 全局中断使能位
1 = 使能所有非屏蔽中断
0 = 禁止所有中断
bit 6 PEIE:外设中断使能位
1 = 使能所有非屏蔽外设中断
0 = 禁止所有外设中断
bit 5 T0IE: TMR0 溢出中断使能位
1 = 使能 TMR0 中断
0 = 禁止 TMR0 中断
bit 4 INTE: RA2/INT 外部中断使能位
1 = 使能 RA2/INT 外部中断
0 = 禁止 RA2/INT 外部中断
bit 3 RAIE:端口电平变化中断使能位
1 = 使能 PORTA 电平变化中断
0 = 禁止 PORTA 电平变化中断
bit 2 T0IF: TMR0 溢出中断标志位
1 = TMR0 寄存器溢出 (必须在软件中清除)
0 = TMR0 寄存器没有溢出
bit 1 INTF: RA2/INT 外部中断标志
1 = RA2/INT 外部中断已经发生 (必须在软件中清除)
0 = RA2/INT 外部中断没有发生
bit 0 RAIF:端口电平变化中断标志位
1 = 至少有一个 PORTA <5:0> 引脚状态发生变化 (必须在软件中清除)
0 = 没有 PORTA <5:0> 引脚状态发生变化
注 1: IOCA 寄存器也必须被使能。
2:当 Timer0 计数出现计满返回时,T0IF位将被置 1 。Timer0计数值在复位时不会发生变化
且应在清除 T0IF 位之前对其进行初始化。
(1)
(2)
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 13 页
PIC16F630/676
2.2.2.4 PIE1 寄存器
如寄存器 2-4 所示, PIE1 寄存器包含了中断使能位。
寄存器 2-4: PIE1 — 外设中断使能寄存器 1 (地址: 8Ch)
R/W-0 R/W-0 U-0 U-0 R/W-0 U-0 U-0 R/W-0
EEIE ADIE
bit 7 bit 0
bit 7 EEIE: EE 写完成中断使能位
1 = 使能 EE 写完成中断
0 = 禁止 EE 写完成中断
bit 6 ADIE: A/D 转换器中断使能位 (仅限 PIC16F676 )
1 = 使能 A/D 转换器中断
0 = 禁止 A/D 转换器中断
bit 5-4 未用:读作 0
bit 3 CMIE:比较器中断使能位
1 = 使能比较器中断
0 = 禁止比较器中断
bit 2-1 未用:读作 0
bit 0 TMR1IE: TMR1 溢出中断使能位
1 = 使能 TMR1 溢出中断
0 = 禁止 TMR1 溢出中断
— — CMIE — — TMR1IE
注: PEIE (INTCON<6> )位应被置 1 以使能
外围接口中断。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
DS40039C_CN 第 14 页 2004 Microchip Technology Inc.
PIC16F630/676
2.2.2.5 PIR1 寄存器
如寄存器 2-5所示,PIR1寄存器包含了各个外围接口的
中断标志位。
寄存器 2-5: PIR1 — 外设中断标志寄存器 1 (地址: 0Ch)
R/W-0 R/W-0 U-0 U-0 R/W-0 U-0 U-0 R/W-0
EEIF ADIF — —C M I F— —T M R 1 I F
bit 7 bit 0
bit 7 EEIF: EEPROM 写操作中断标志位
1 = 写操作完成 (必须在软件中清除)
0 = 写操作还没有完成或者还没有开始
bit 6 ADIF: A/D 转换器中断标志位 (仅限 PIC16F676)
1 = A/D 转换完成 (必须在软件中清除)
0 = A/D 转换没有完成
bit 5-4 未用:读作 0
bit 3 CMIF:比较器中断标志位
1 = 比较器输入已经改变 (必须在软件中清除)
0 = 比较器输入还没有改变
bit 2-1 未用:读作 0
bit 0 TMR1IF:TMR1 溢出中断标志位
1 = TMR1 寄存器溢出 (必须在软件中清除)
0 = TMR1 寄存器没有溢出
注: 当中断条件满足时,无论相应中断使能或
全局中断使能位 GIE (INTCON<7> )的状
态如何,中断标志位将被置 1 。用户程序应
确保在重新使能中断之前相应的中断标志
位已被清除。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 15 页
PIC16F630/676
2.2.2.6 PCON 寄存器
电源控制 (PCON )寄存器包含区分以下各种复位的标
志位:
• 上电复位 ( POR)
• 欠压检测 ( BOD)
• 看门狗定时器复位 ( WDT)
• 外部 MCLR
PCON 中各寄存器位的介绍可参见寄存器 2-6。
寄存器 2-6: PCON — 电源控制寄存器 (地址: 8Eh)
复位
U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-x
— — — — — —P O RBOD
bit 7 bit 0
bit 7-2 未用:读作 0
bit 1 POR
bit 0 BOD:欠压检测状态位
:上电复位状态位
1 = 无上电复位发生
0 = 发生上电复位 (当上电复位结束后 , 应由软件置 1 )
1 = 无欠压检测发生
0 = 发生欠压检测 (当掉电锁定检测结束后 , 应由软件置 1 )
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
2.2.2.7 OSCCAL 寄存器
振荡器校准寄存器 (OSCCAL )用来校准内部 4 MHz
振荡器。该寄存器包含 6 位用于频率调节并使之达到
4MHz。
OSCCAL 中的各寄存器位如寄存器 2-7 所示。
寄存器 2-7: OSCCAL — 内部振荡器校准寄存器 (地址:90h)
R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0
CAL5 CAL4 CAL3 CAL2 CAL1 CAL0
bit 7 bit 0
bit 7-2 CAL5:CAL0: 6 位带符号的振荡器校准位
111111 = 最大频率
100000 = 中心频率
000000 = 最小频率
bit 1-0 未用:读作 0
— —
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
DS40039C_CN 第 16 页 2004 Microchip Technology Inc.
PIC16F630/676
2.3 PCL 和 PCLATH
PIC16F630/676 拥有一个 13 位宽度的程序计数器
(PC )。其中低 8 位字节来自 PCL 寄存器。该寄存器是
可读写的。高 5 位字节 (PC<12:8> )来自 PCLATH ,
不能直接读写。在任何复位情况下,PC将被清除。图 2-
3 显示了两种不同情况下 PC 值的装入情况。图 2-3 中
上方的例子显示了如何通过写入 PCL (PCLATH<4:0>
→ PCH)而装入PC。图 2-3中下方的例子显示了在执行
CALL 或 GOTO 指令期间(PCLATH<4:3> → PCH)装
入 PC 。
图 2-3: 不同情况下 PC 值的装载
PCH PCL
12 8 7 0
8
以 PCL 作为目的
操作数的指令
ALU 结果
GOTO
、CALL
操作码 <10:0>
PC
PCLATH<4:0>
5
PCLATH
PCH PCL
12 11 10 0
PC
2
87
PCLATH<4:3>
11
2.3.2 堆栈
PIC16F630/676 系列拥有 8 级 13 位宽的硬件堆栈(见
图 2-1 )。堆栈空间既不占用程序存储区空间也不占用
数据存储区空间,其堆栈指针是不可读写的。当执行
CALL 指令或中断响应导致程序跳转时,PC 值将被压入
(PUSH )堆栈。而当执行 RETURN 、RETLW 或 RETFIE
指令时,堆栈中的断点地址将从堆栈中弹出 (POP )到
PC 中。PCLATH 将不会受到PUSH 和POP 操作的影响。
堆栈的工作原理犹如循环缓冲区。这意味着当堆栈已经
被压栈了 8 次以后 , 第 9 次压栈的地址数据将会覆盖第
一次压栈时所保存的数据,而第十次压栈数据将覆盖第
二次压栈时保存的数据,以后依次类推。
注 1: 没有状态位来指示堆栈是否处于溢出或未满
状态。
2: 没有被称为PUSH 或 POP 的指令/助记符。而
引起这些操作是由于执行了 CALL 、RETURN、
RETLW 和 RETFIE 指令或是指向中断地址。
PCLATH
2.3.1 GOTO 指令
GOTO 指令的执行是通过向程序计数器 PC (ADDWF
PCL )加入一个偏移量来实现的。当使用GOTO 指令对表
进行读操作时,应注意表地址是否跨越了 PCL 寄存器的
存储器区间 (每个存储块为 256 个字节)。参见应用笔
记“Implementing a Table Read”( AN556 )。
2004 Microchip Technology Inc. DS40039C_CN 第 17 页
PIC16F630/676
2.4 间接寻址, INDF 和 FSR 寄存器
INDF 寄存器不是一个物理存在的寄存器,对 INDF 寄存
器进行寻址时即为间接寻址。 INDF 寄存器可进行间接
寻址。任何使用 INDF 寄存器的指令实际上是对由文件
选择寄存器 (FSR )所指向的地址单元的数据进行访
问。如果采用间接寻址对 INDF 寄存器进行读操作将返
回 00h ,间接对 INDF 进行写操作将导致空操作 (尽管
可能会影响状态寄存器中的状态位)。通过将 8 位 FSR
寄存器的内容与 IRP 位(STATUS<7>)进行组合可得
到一个有效的 9 位地址,如图 2-4 所示。
图 2-4: PIC16F630/676 的直接 / 间接寻址
(1)
RP0 6
RP1
存储区 选择位置选择
来自操作码
00h
0
00 01 10 11
例 2-1 显示了一个通过间接寻址方式将RAM 中20h-2Fh
寄存器单元清零的简单程序。
例 2-1: 间接寻址
movlw 0x20 ;initialize pointer
movwf FSR ;to RAM
NEXT clrf INDF ;clear INDF register
incf FSR ;inc pointer
btfss FSR,4 ;all done?
goto NEXT ;no clear next
CONTINUE ;yes continue
间接寻址 直接寻址
(1)
IRP
存储区 选择
7
180h
FSR 寄存器
位置选择
0
数据存储区
7Fh
存储体 0 存储区 1 存储区 2 存储区 3
详细存储区映射参见图 2-2
注 1: RP1 和 IRP 为保留位,应始终保持清零状态。
未使用
1FFh
DS40039C_CN 第 18 页 2004 Microchip Technology Inc.
PIC16F630/676
3.0 端口 A 和 C
该款芯片共有 12 个通用 I/O 引脚。根据外围模块的使能
情况,有些以至全部引脚可能不再作为通用 I/O 引脚。
通常情况下,如果外围功能模块被使能,相关引脚则不
能作为通用 I/O 使用。
注: 关于 I/O 端口的更多信息可参见
《PICmicro
(DS33023_CN )。
3.1 PORTA 和 TRISA 寄存器
PORTA 是一个 6 位宽的双向 I/O 端口。TRISA 是与其相
关的数据方向控制寄存器。当把 TRISA 的某位置 1 时,
相应的 PORTA 端口引脚将被定义为输入 (也就是使相
应输出驱动器呈高阻状态)。当 把 TRISA 的某位清0 时,
则相应 PORTA 端口引脚被定义为输出 (也就是将输出
锁存器的内容加载至选中的引脚上)。 RA3 与 PORTA
中其它引脚不同,仅可作为输入引脚,其 TRIS 位总是
读作 ‘1 ’。例 3-1 显示了如何对 PORTA 进行初始化。
对 PORTA 端口的寄存器进行读操作将返回相应 I/O 引
脚的电平状态,而对其进行写操作则是写入其数据锁存
器 。所有针对 I/O 的写操作都是“读-修改-写入”操
作。因此对端口的写操作意味着总是先读端口引脚电平
状态,然后修改这个值,最后再写入该端口的数据锁存
器。当 MCLREN = 1 时, RA3 将读作 ‘0’ 。
无论是作为数据输入还是作为模拟量输入引脚,TRISA
寄存器始终控制着 PORTA 引脚的方向。当 RA 引脚作
为模拟量输入引脚时,用户应确保 TRISA 中的各位保持
置 ‘1 ’状态。对配置成模拟输入的 I/O 引脚进行读操
作总是返回 ‘0 ’。
®
中档单片机系列参考手册》
注: 将一个模拟通道配置为数字输入时 , 应对
ANSEL (9Fh) 和 CMCON (19h) 寄存器进行
初始化 。对被配置成模拟输入的引脚进行
读操作将返回 ‘0 ’。 ANSEL 寄存器仅在
PIC16F676 中定义。
例 3-1: PORTA 的初始化
bcf STATUS,RP0 ;Bank 0
clrf PORTA ;Init PORTA
movlw 05h ;Set RA<2:0> to
movwf CMCON ;digital I/O
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>
bcf STATUS,RP0 ;Bank 0
;as outputs
3.2 引脚的其它功能
PIC16F630/676 中每一个 PORTA 引脚都具有电平变化
中断功能,并且除 RA3 之外的任何 PORTA 引脚都具有
弱上拉功能。以下两节内容将对这些功能进行介绍。
3.2.1 弱上拉
除 RA3 之外,每一个 PORTA 引脚都具有可独立配置的
内部弱上拉功能。控制位 WPUAx 对是否使能每个引脚
的弱上拉功能进行控制。参见寄存器 3-3 。当端口引脚
被配置为输出时,弱上拉电路会被自动关闭。上电复位
时, RAPU
禁止。
位 (OPTION<7> )被置 1 ,所有弱上拉被
寄存器 3-1: PORTA — PORTA 寄存器 (地址: 05h)
U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
— —
bit 7 bit 0
bit 7-6:
bit 5-0: PORTA<5:0>: PORTA I/O 引脚
未用:读作 0
1 = 端口引脚电平 >V
0 = 端口引脚电平 <VIL
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
RA5 RA4 RA3 RA2 RA1 RA0
IH
2004 Microchip Technology Inc. DS40039C_CN 第 19 页
PIC16F630/676
寄存器 3-2: TRISA — PORTA 三态控制寄存器 (地址: 85h)
U-0 U-0 R/W-x R/W-x R-1 R/W-x R/W-x R/W-x
— —
bit 7 bit 0
bit 7-6 未用:读作 0
bit 5-0 TRISA<5:0>: PORTA 三态控制位
1 = PORTA 引脚被设置为输入 ( 三态 )
0 = PORTA 引脚被设置为输出
注: TRISA<3> 总是读作 1 。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
寄存器 3-3: WPUA — 弱上拉寄存器 (地址: 95h)
U-0 U-0 R/W-1 R/W-1 U-0 R/W-1 R/W-1 R/W-1
— —W P U A 5 W P U A 4— WPUA2 WPUA1 WPUA0
bit 7 bit 0
TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
bit 7-6 未用:读作 0
bit 5-4 WPUA<5:4>: 弱上拉寄存器使能位
1 = 使能弱上拉
0 = 禁止弱上拉
bit 3 未用:读作 0
bit 2-0 WPUA<2:0>: 弱上拉寄存器使能位
1 = 使能上拉
0 = 禁止上拉
注 : 在使能各个引脚的弱上拉功能之前,应使能全局控制位 RAPU
1: 如果该引脚处于输出模式,则弱上拉电路将被自动禁止 (TRISA = 0) 。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
3.2.2 电平变化中断
任何一个 PORTA 引脚都可被单独配置为具有电平变化
中断功能的引脚。控制位 IOCAx 用于使能或禁止各引脚
的中断功能。参见寄存器 3-4 。电平变化中断功能在上
电复位时被禁止。
如果几个引脚的电平变化中断功能被使能,则各引脚上
的电平与上次读取的、旧的 PORTA 锁存值相比较。所
有与上次读取值不匹配的输出进行或运算,运算结果用
来设置 INTCON 寄存器中的 PORTA 电平变化中断标志
位(RAIF)。
。
该中断可唤醒处于休眠状态中的器件。用户在中断服务
程序中可以通过以下方式清除该中断:
a) 任何对 PORTA 的读或写都将终止不匹配条件。
b) 清除 RAIF 标志位。
不匹配条件仍会使得 RAIF 标志位置 1 。对 PORTA 进行
读操作将结束不匹配条件,并将 RAIF 标志位被清零。
注: 当读操作正在执行的时侯 , 如果 I/O 引脚电
平发生了变化 ( Q2 周期的起始时刻),则
RAIF 中断标志位可能不会被置 1。
DS40039C_CN 第 20 页 2004 Microchip Technology Inc.
PIC16F630/676
寄存器 3-4: IOCA — PORTA 电平变化中断控制寄存器 (地址: 96h)
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
bit 7-6 未用:读作 0
bit 5-0 IOCA<5:0>:PORTA 电平变化中断控制位
1 = 使能电平变化中断
0 = 禁止电平变化中断
注 : 为使每个引脚的电平跳变中断可被识别,全局中断使能控制位 (GIE) 必须被使能。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 21 页
PIC16F630/676
3.2.3 引脚说明和原理图
PORTA 的所有引脚都为复用功能引脚。以下对这些引
脚及其具有的功能进行简要介绍。欲了解各功能模块如
比较器或 A/D 的具体信息,请参见本数据手册中的相关
章节。
3.2.3.1 RA0/AN0/CIN+
图 3-1 显示了该引脚的原理图。RA0 引脚可被配置为以
下功能之一:
• 通用 I/O
•A/D(仅限 PIC16F676 )的模拟输入
• 比较器的模拟输入
•A/D(仅限 PIC16F676 )的基准电压输入
3.2.3.2 RA1/AN1/CIN-/VREF
图 3-1 显示了该引脚的原理图。 RA1 引脚可被配置成
以下功能之一:
• 通用 I/O
•A/D(仅限 PIC16F676 )的模拟输入
• 比较器的模拟输入
•A/D(仅限 PIC16F676 )的基准电压输入
图 3-1: RA0 以及 RA1 引脚原理图
模拟输入
数据总线
WR
WPUA
RD
WPUA
WR
PORTA
WR
TRISA
RD
TRISA
RD
PORTA
WR
IOCA
RD
IOCA
D
Q
CK
Q
D
Q
CK
Q
D
Q
CK
Q
D
Q
CK
Q
模式
RAPU
模拟输入模式
VDD
弱上拉
VDD
VSS
D
Q
EN
D
Q
I/O 引脚
电平变化中断
至比较器
至 A/D 转换器
EN
RD PORTA
DS40039C_CN 第 22 页 2004 Microchip Technology Inc.
PIC16F630/676
3.2.3.3 RA2/AN2/T0CKI/INT/COUT
图 3-2 显示了该引脚的原理图。RA2 引脚可被配置为以
下功能之一:
• 通用 I/O 引脚
•A/D(仅限 PIC16F676)的模拟输入引脚
• 比较器的数字输出引脚
• TMR0的时钟输入引脚
• 外部边沿触发中断
图 3-2: RA2 引脚原理图
数据总线
WR
WPUA
RD
WPUA
WR
PORTA
WR
TRISA
D
CK
D
CK
D
CK
Q
Q
Q
Q
Q
Q
模拟输入模式
RAPU
COUT
使能
COUT
1
0
模拟输入
模式
VDD
弱上拉
VDD
I/O 引
VSS
3.2.3.4 RA3/MCLR
/VPP
图 3-3 显示了该引脚的原理图。RA3 引脚可被配置为以
下功能之一:
• 通用输入引脚
• 作为主机清除复位引脚
图 3-3: RA3 引脚原理图
数据总线
RD
TRISA
RD
PORTA
WR
IOCA
RD
IOCA
电平变化中断
RESET
VSS
Q
D
CK
Q
MCLRE
MCLRE
Q
EN
Q
EN
RD PORTA
I/O 引
VSS
D
D
RD
TRISA
RD
PORTA
WR
IOCA
RD
IOCA
电平变化中断
Q
D
CK
Q
至 TMR0
至 INT
至 A/D 转换器
模拟输入
模式
Q
EN
Q
EN
RD PORTA
D
D
2004 Microchip Technology Inc. DS40039C_CN 第 23 页
PIC16F630/676
3.2.3.5 RA4/AN3/T1G/OSC2/CLKOUT
图 3-4 显示了该引脚的原理图。RA4 引脚可被配置为以
下功能之一:
• 通用 I/O 引脚
•A/D(仅限 PIC16F676)的模拟输入引脚
•TMR1选通控制输入引脚
• 晶振 / 谐振器连接端
• 时钟输出引脚
图 3-4: RA4 引脚原理图
数据总线
WR
WPUA
RD
WPUA
WR
PORTA
WR
TRISA
RD
TRISA
RD
PORTA
WR
IOCA
RD
IOCA
电平变化中断
模拟输入模式
Q
D
CK
Q
OSC1
F
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
OSC/4
CLKOUT
使能
INTOSC/
RC/EC
CLKOUT
模拟输入模式
CLK
模式
RAPU
振荡器
电路
CLKOUT
使能
1
0
(2)
使能
Q
Q
(1)
EN
EN
VDD
弱上拉
VDD
I/O 引
VSS
D
D
3.2.3.6 RA5/T1CKI/OSC1/CLKIN
图 3-5 显示了该引脚的原理图。RA5 引脚可被配置为以
下功能之一:
• 通用 I/O 引脚
•TMR1时钟输入引脚
• 晶振 / 谐振器连接端
• 时钟输入引脚
图 3-5: RA5 引脚原理图
INTOSC
数据总线
WR
WPUA
RD
WPUA
WR
PORTA
WR
TRISA
RD
TRISA
RD
PORTA
WR
IOCA
RD
IOCA
电平变化中断
模式
TMR1LPEN
Q
D
CK
Q
RAPU
振荡器电路
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
OSC2
INTOSC
RD PORTA
模式
Q
Q
(1)
VDD
弱上拉
VDD
I/O 引
VSS
(1)
D
EN
D
EN
至 TMR1 T1G
至 A/D 转换器
注 1: CLK 模式指的是 XT 、 HS、 LP、 LPTMR1 和
CLKOUT 使能。
2: 带 CLKOUT 选项。
RD PORTA
至 TMR1 或 CLKGEN
注 1: 使能 Timer1 的 LP 振荡器。
2: 当使用带 LP 振荡器的 Timer1 时 , 施密特触发器被
旁路。
DS40039C_CN 第 24 页 2004 Microchip Technology Inc.
表 3-1: 与 PORTA 相关的寄存器汇总
PIC16F630/676
POR,
地址 名称
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
BOD
复位值
05h PORTA — — RA5 RA4 RA3 RA2 RA1 RA0 --xx xxxx --uu uuuu
0Bh/8Bh INTCON GIE
19h CMCON
81h OPTION_REG RAPU
85h TRISA
91h ANSEL
95h WPUA
96h IOCA
注 1: 仅限 PIC16F676 .
图注: x = 未知, u = 不变, - = 未用,读作 0。阴影部分为 PORTA 未使用的寄存器位。
(1)
ANS7 ANS6 ANS5 ANS4
PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 000u
— COUT — CINV CIS CM2 CM1 CM0 -0-0 0000 -0-0 0000
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
ANS3 ANS2 ANS1 ANS0
— —W P U A 5W P U A 4— WPUA2 WPUA1 WPUA0 --11 -111 --11 -111
— — IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA0 --00 0000 --00 0000
1111 1111 1111 1111
所有其它
复位值
2004 Microchip Technology Inc. DS40039C_CN 第 25 页
PIC16F630/676
3.3 PORTC
PORTC 是一个包含 6 个双向引脚的通用 I/O 端口。这些
引脚可配置为数字 I/O 或者 A/D 转换器的模拟输入。欲
了解各功能模块如比较器或 A/D 的具体信息,请参见本
数据手册中的相关章节。
注: 将一个模拟通道配置为数字输入时 , 应将
ANSEL(9Fh) 和CMCON(19h) 寄存器清零。
被配置成模拟输入的引脚读作 ‘0’。
ANSEL 寄存器仅在 PIC16F676 中定义。
例 3-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
3.3.1 RC0/AN4、 RC1/AN5、 RC2/AN6、
RC3/AN7
3.3.2
RC4 和 RC5
RC4 和 RC5 引脚可被配置为通用 I/O 引脚。
图 3-7: RC4 和 RC5 引脚原理图
数据总线
VDD
VSS
WR
PORTC
WR
TRISC
RD
TRISC
RD
PORTC
D
Q
CK
Q
D
Q
CK
Q
I/O 引脚
RC0/RC1/RC2/RC3 引脚可被配置为以下功能之一:
• 通用 I/O 引脚
•A/D(仅限 PIC16F676)转换器的模拟输入引脚
图 3-6: RC0/RC1/RC2/RC3 引脚原理图
数据总线
VDD
I/O 引脚
VSS
WR
PORTC
WR
TRISC
RD
TRISC
RD
PORTC
D
Q
CK
Q
D
Q
CK
Q
至 A/D 转换器
模拟输入模式
DS40039C_CN 第 26 页 2004 Microchip Technology Inc.
PIC16F630/676
寄存器 3-5: PORTC— PORTC 寄存器 (地址: 07h )
U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
— —
bit 7 bit 0
bit 7-6 未用:读作 0
bit 5-0 PORTC<5:0>: 通用 I/O 引脚
1 = 端口引脚电压 >V
0 = 端口引脚电压 <VIL
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
寄存器 3-6: TRISC — PORTC TRISTATE 寄存器 ( 地址 : 87h)
U-0 U-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
— —
bit 7 bit 0
RC5 RC4 RC3 RC2 RC1 RC0
IH
TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0
bit 7-6: 未用:读作 0
bit 5-0: TRISC<5:0>: PORTC 三态控制位
1 = PORTC 引脚被配置为输入端口 (三态)
0 = PORTC 引脚被配置为输出端口
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位被置 1 ‘0’ = 该位被清零 x = 该位状态未知
表 3-2: 与 PORTC 相关的寄存器汇总
地址 名称
07h PORTC — — RC5 RC4 RC3 RC2 RC1 RC0 --xx xxxx --uu uuuu
87h TRISC
91h ANSEL
注 1: 仅适用于 PIC16F676 。
图注:
(1)
x = 未知, u = 不变, - = 未用,读作 0 。阴影部分为 PORTC 未使用的寄存器位。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0
POR, BOD
复位值
1111 1111 1111 1111
其它复位值
2004 Microchip Technology Inc. DS40039C_CN 第 27 页
PIC16F630/676
注:
DS40039C_CN 第 28 页 2004 Microchip Technology Inc.
PIC16F630/676
4.0 TIMER0 模块
通过将 T0CS 位(OPTION_REG<5)置 1 可选择计数
器模式。在该模式下, Timer0 模块在 RA2/T0CKI 引脚
Timer0 模块定时器 / 计数器具有以下特征:
•8位定时器 / 计数器
• 可读写
信号的每一次上升沿或下降沿递增计数。通过时钟信号
边沿选择位 T0SE (OPTION_REG<4> )可确定采用哪
一种边沿方式。将 T0SE 位清零将选择上升沿方式。
•8位软件可编程预分频器
• 可选择内部或外部时钟信号
• 当计数器从 FFh 到 00h 溢出时可触发中断
• 外部时钟边沿选择
图 4-1 显示了 Timer0 模块和预分频器的结构框图,其
中的预分频器为 Timer0 模块与 WDT 两者共用。
注: Timer0 模块的其它相关信息可参考
《PICmicro ® 中档单片机系列参考手册》
(DS33023_CN )。
4.2 Timer0 中断
当 TMR0 寄存器定时器 / 计数器从 FFh 至 00h 计数溢
出时,将产生 Timer0 中断。 该溢出将使 T0IF 中断标志
位置 1 。通过清零 T0IE 使能位 (INTCON<5> )可屏蔽
该中断。在重新使能该中断之前,必须由 Timer0 模块
中断服务程序将以软件方法将中断标志位 T0IF
4.1 Timer0 操作
通过将 T0CS 位(OPTION_REG<5>)清零可选择定
(INTCON<2> )清零。休眠模式时该定时器将被关闭,
因此 Timer0 中断将不具备唤醒功能。
时器模式。在定时器模式中, Timer0 模块将在每一指
令周期进行递增操作(不带预分频器)。如果 TMR0 被
写入,在接下来的两个指令周期内将禁止递增操作。用
户可通过将校正值写入 TMR0 寄存器以避开这种情况。
图 4-1: TIMER0/WDT 预分频器的结构框图
CLKOUT
(= FOSC/4)
0
1
T0CKI
引脚
T0SE
T0CS
0
8 位
预分频器
1
注: 计数器模式具有特定的外部时钟要求。 有
关该要求的其它信息可参见《PICmicro ®中
档单片机系列参考手册》
(DS33023_CN )。
数据总线
1
SYNC 2
周期
0
PSA
8
TMR0
溢出时标志位 T0IF
将置 1
PSA
看门狗
定时器
WDTE
注 1: T0SE
2004 Microchip Technology Inc. DS40039C_CN 第 29 页
、 T0CS 、 PSA 和 PS0-PS2 位于 Option 寄存器。
8
PS0 - PS2
1
WDT
超时
0
PSA
PIC16F630/676
4.3 Timer0 与外部时钟的使用
当不使用预分频器时,外部时钟输入等同于预分频器输
出。在内部相位时钟的 Q2 和 Q4 周期对预分频器的输
出进行采样可以实现 T0CKI 与内部相位时钟的同步。因
此, 要求T0CKI的高电平状态和低电平状态分别保持至
OSC 的时间 (以及最少 20 ns 的 RC 延迟时间)。
少 2T
具体器件请参考其相应的电气规范说明。
寄存器 4-1: OPTION_REG — 选择寄存器 (地址: 81h)
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 INTEDG T0CS T0SE PSA PS2 PS1 PS0
bit 7 bit 0
注: 必须对 ANSEL (9Fh) 和CMCON(19h) 寄存
器进行初始化以将模拟通道配置为数字输
入引脚。配置为模拟输入的引脚读作‘0 ’。
ANSEL 寄存器仅在 PIC16F676 中定义。
bit 7 RAPU
bit 6 INTEDG: 中断信号触发边沿选择位
bit 5 T0CS: TMR0 时钟源选择位
bit 4 T0SE: TMR0 信号源边沿选择位
bit 3 PSA: 预分频器分配控制位
bit 2-0 PS2:PS0: 预分频器倍率选择位
: PORTA 上拉功能使能位
1 = 禁止 PORTA 上拉功能
0 = 由单独的端口闭锁值使能 PORTA 引脚上拉功能
1 = RA2/INT 引脚信号的上升沿触发
0 = RA2/INT 引脚信号的下降沿触发
1 = RA2/T0CKI 引脚上的电平跳变
0 = 内部指令周期时钟 (CLKOUT)
1 = 根据 RA2/T0CKI 引脚信号的下降沿跳变进行递增计数
0 = 根据 RA2/T0CKI 引脚信号的上升沿跳变进行递增计数
1 = 分配给 WDT
0 = 分配给 Timer0 模块
位值 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
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
DS40039C_CN 第 30 页 2004 Microchip Technology Inc.
PIC16F630/676
4.4 预分频器
Timer0 模块使用一个 8 位计数器作为预分频器。该计数
器用于看门狗定时器时则为后分频器。为简化起见,该
计数器在本数据手册中被统称为 “预分频器”。通过程
序设定 PSA 位(OPTION_REG<3>)的状态可对预分
频器的分配进行控制。 PSA位清零可将预分频器分配给
Timer0 模块。通过设置 PS2:PS0 位
(OPTION_REG<2:0> )可选择预分频器的设定值。
预分频器是不可读写的。当预分频器用于 Timer0 模块
时,所有写入 TMR0 寄存器的指令 (例如, CLRF 1 、
MOVWF 1 、 BSF 1、 x.... 等等)都会将预分频器清
零。当预分频器用于 WDT 时, CLRWDT 指令会同时将
预分频器和看门狗定时器清零。
4.4.1 切换预分频器的分配
预分频器的分配完全由软件控制实现(即,可以在程序
执行过程中对预分频器的分配进行更改)。为避免意外
复位,当把预分频器从 Timer0 重新分配给 WDT 时,必
须执行以下指令序列 (例 4-1 )。
例 4-1: 改变预分频器的分配
(TIMER0→ WDT)
bcf STATUS,RP0 ;Bank 0
clrwdt ;Clear WDT
clrf TMR0 ;Clear TMR0 and
; prescaler
bsf STATUS,RP0 ;Bank 1
movlw b’00101111’ ;Required if desired
movwf OPTION_REG ; PS2:PS0 is
clrwdt ; 000 or 001
;
movlw b’00101xxx’ ;Set postscaler to
movwf OPTION_REG ; desired WDT rate
bcf STATUS,RP0 ;Bank 0
将预分频器从 WDT 分配给 Timer0模块时,须执行例 42 所示的指令序列。即使 WDT 没有使能,也应执行该
指令序列。
例 4-2: 改变预分频器的分配
(WDT→ Timer0)
clrwdt ;Clear WDT and
; postscaler
bsf STATUS,RP0 ;Bank 1
表 4-1: 与 TIMER0 相关的寄存器
地址
01h TMR0
0Bh/8Bh INTCON GIE PEIE T0IE
81h OPTION_REG
85h TRISA
图注: - = 未用,读作 0, u = 不变, x = 未知。
名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer0 模块寄存器
RAPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
Timer0 模块不使用表中阴影部分的寄存器位。
movlw b’xxxx0xxx’ ;Select TMR0,
; prescale, and
; clock source
movwf OPTION_REG ;
bcf STATUS,RP0 ;Bank 0
POR, BOD
时的复位值
xxxx xxxx uuuu uuuu
INTE RAIE T0IF INTF RAIF 0000 0000 0000 000u
其它复位值
2004 Microchip Technology Inc. DS40039C_CN 第 31 页
PIC16F630/676
5.0 具备门控功能的 TIMER1 模块
PIC16F630/676 器件具备一个16 位定时器。 图 5-1 显示
了 Timer1 模块的基本结构。 Timer1 具有以下特征:
•16位定时器 / 计数器 (TMR1H:TMR1L)
• 可读写
• 内部或外部时钟选择
• 可实现同步或异步操作
• 当从 FFFFh 至 0000h 发生溢出时触发中断
• 由溢出事件触发唤醒 (异步模式)
• 可选择外部使能控制输入 ( T1G
• 可选择 LP 振荡器
图 5-1: TIMER1 组成原理图
发生溢出时
将标志位 TMR1IF 置 1
)
TMR1H
TMR1
TMR1L
如寄存器 5-1 所示,Timer1 控制寄存器(T1CON)用
于使能 / 禁止 Timer1 以及选择 Timer1 模块的不同功能
特性 。
注: 关于定时器模块的其它信息可参见
《PICmicro
®
中档单片机系列参考手册》
( DS33023_CN)。
TMR1ON
TMR1GE
TMR1ON
TMR1GE
0
同步
时钟输入
T1G
不带 CLKOUT
的 INTOSC
T1OSCEN
LP
OSC1
OSC2
LP 振荡器
OSC/4
F
内部
时钟
1
0
TMR1CS
1
T1SYNC
预分频器
1, 2, 4, 8
2
T1CKPS<1:0>
同步
检测
休眠 输入
DS40039C_CN 第 32 页 2004 Microchip Technology Inc.
PIC16F630/676
5.1 Timer1 的 运行模式
Timer1 可选择工作在以下三种模式之一:
• 带预分频器的 16 位定时器
•16位同步计数器
•16位异步计数器
在定时器模式, Timer1 在每一个指令周期进行递增计
数。在计数器模式, Timer1 在每个外部时钟输入 T1CKI
的上升沿处进行递增计数。此外,计数器模式下的时钟
可与单片机的系统时钟同步或进行异步运行。
在计数器和定时器模块中,计数器 / 定时器时钟可通过
输入引脚进行选通控制。
T1G
如果需要使用外部时钟振荡器(以及单片机当前使用不
带 CLKOUT 的 INTOSC ), Timer1 可以采用 LP 振荡器
作为时钟源。
注: 在计数器模式下,计数器在时钟信号上升沿进行
递增计数前应先记录对齐一个下降沿。
图 5-2: Timer1 根据信号跳变沿进行递增
当 TMR1
被使能时
T1CKI = 1
5.2 Timer1 中断
Timer1 寄存器对 (TMR1H :TMR1L )递增到 FFFFh
时将返回到 0000h 。当 Timer1 计满返回时,Timer1 的
中断标志位 (PIR1<0> )将置 1 。为使能在溢出时产生
中断,用户应设置以下寄存器位:
•Timer1中断使能位 (PIE1<0>)
• PEIE 位(INTCON<6>)
•GIE位(INTCON<7>)。
在中断服务程序中将 TMR1IF 标志位清零将清除中断。
注: 在重新使能中断前,应对 TMR1H:TTMR1L
寄存器对以及 TMR1IF 位进行清零。
5.3 Timer1 预分频器
Timer1 具有四个预分频器选择项,允许对时钟输入进行
1、 2、 4、 或 8 倍分频。 T1CKPS 位 ( T1CON<5:4>)
对预分频计数器进行控制。对预分频计数器不能直接进
行读写操作;然而,通过写入 TMR1H 或 TMR1L 可使
预分频计数器清零。
当 TMR1
被使能时
T1CKI = 0
注 1: 箭头表明计数器递增。
2: 在计数器模式下,计数器在时钟信号上升沿递增计数前应先记录对齐一个下降沿。
2004 Microchip Technology Inc. DS40039C_CN 第 33 页
PIC16F630/676
寄存器 5-1: T1CON — Timer1 控制寄存器 (地址: 10h)
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
—
bit 7 bit 0
bit 7 未用:读作 0
bit 6 TMR1GE: Timer1 门控使能位
如果
则该位被忽略
如果 TMR1ON = 1 :
1 = 如果 T1G 引脚为低电平, 则启动 Timer1。
0 = 启动 Timer1
bit 5-4 T1CKPS1:T1CKPS0: Timer1 输入时钟预分频选择位
11 = 1:8 倍预分频比
10 = 1:4 倍预分频比
01 = 1:2 倍预分频比
00 = 1:1 倍预分频比
bit 3 T1OSCEN: LP 振荡器使能控制位
如果不带 CLKOUT 振荡器的 INTOSC 处于激活状态:
1 = LP 振荡器使能作为 Timer1 的时钟
0 = LP 振荡器关闭
否则:
该位被忽略
bit 2 T1SYNC
TMR1CS = 1:
1 = 不与外部时钟输入同步
0 = 与外部时钟输入同步
TMR1CS = 0 :
该位被忽略。 Timer1 使用内部时钟。
bit 1 TMR1CS: Timer1 时钟源选择位
1 = 使用来自 T1OSO/T1CKI 引脚 ( 在上升沿 ) 的外部时钟
0 = 内部时钟 (FOSC /4)
bit 0 TMR1ON: Timer1 启动控制位
1 = 使能 Timer1
0 = 停止 Timer1
TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
TMR1ON = 0:
: Timer1 外部时钟输入同步控制位
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
DS40039C_CN 第 34 页 2004 Microchip Technology Inc.
PIC16F630/676
5.4 Timer1 工作在异步计数器模式
如果控制位 T1SYNC (T1CON<2> )置 1 ,外部时钟输
入将不被同步。定时器继续根据内部相位时钟进行递增
计数。在休眠模式下,定时器将继续递增并在溢出时产
生中断以唤醒处理器。然而,在对定时器进行读 / 写操
作时应特别注意 (第 5.4.1 节)。
注: 应对 ANSEL (9Fh ) 和 CMCON (19h)
寄存器进行初始化以将模拟通道配置为数
字输入引脚。配置为模拟输入的引脚读作
‘0 ’。ANSEL 寄存器只在 PIC16F676 中定
义。
5.4.1 异步计数器模式下的 TIMER1 读写操作
当定时器采用外部异步时钟工作时,对 TMR1H 或
TMR1L 的读操作将实现有效读取 (由硬件实现)。然
而,用户应注意,用两个 8 位值来读取 16 位定时器本
身就会产生某些问题,这是因为定时器可能在读操作时
产生溢出。
对于写操作,建议用户在停止计数器计数操作之后再写
入所期望的数值。如果计数器正进行递增计数,此时向
其写入可能会导致写竞争的发生,从而在定时器寄存器
中产生不可预测的值。
对 16 位计数器进行读操作时,用户应谨慎对待。
《PICmicro
(DS33023_CN )中的例 12-2 和 12-3 显示了 Timer1 在
异步模式下时如何对其进行正确的读写操作。
®
中档单片机系列参考手册》
振荡电路采用低功耗振荡器,频率可达 32 kHz 。在休眠
模式中,它仍然 可继续工作。该振荡电路主要适用于 32
kHz 晶振。 图 9-2 显示了不同频率时 Timer1 振荡器所需
选择的电容器容量。
Timer1 的振荡器与系统 LP 的振荡器共用一个振荡器。
因此, 只有当系统时钟来自于内部时钟振荡器时,
Timer1 才能采用该方式。与系统 LP 振荡器相同,用户必
须提供软件延迟以保证振荡器能够正常起振。
当 Timer1 振荡器被使能时, TRISA5 和 TRISA4 中的
各寄存器位将被置 1 。RA5 和 RA4 读作‘0 ’而 TRISA5
和 TRISA4 中的各寄存器位读作 1 。
注: 在使用之前,振荡器需要一定的起振和稳
定时间。因此,T1OSCEN 应置 1 且在使能
Timer1 之前确保有一定的时间延迟。
5.6 Timer1 在休眠模式下的运行
只有设定在异步计数器模式时, Timer1 才能在休眠模
式下工作。在该模式下,可使用外部晶振或时钟源信号
使计数器递增。通过如下步骤设定定时器以唤醒器件:
• 应使能 Timer1 ( T1CON<0>)
• 将 TMR1IE 位(PIE1<0>)置 1
• 将 PEIE 位(INTCON<6>)置 1
器件将在溢出时被唤醒。如果 GIE 位(INTCON<7>)
置 1 ,器件将被唤醒并跳转至中断服务程序。
5.5 Timer1 振荡器
在 OSC1 (输入)和 OSC2 (放大器输出)引脚之间
接有一个内置晶体振荡器电路。通过将控制位
T1OSCEN (T1CON<3> )置 1 可使能该振荡电路。该
表 5-1: TIMER1 作为定时器 / 计数器时的相关寄存器
POR
地址 名称
0Bh/8Bh INTCON GIE PEIE
0Ch PIR1
0Eh TMR1L 16 位 TMR1 寄存器的低字节寄存器 xxxx xxxx uuuu uuuu
0Fh TMR1H 16 位 TMR1 寄存器的高字节寄存器 xxxx xxxx uuuu uuuu
10h T1CON
8Ch PIE1
图注: x = 未知
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 000u
EEIF ADIF — — CMIF — —T M R 1 I F00-- 0--0 00-- 0--0
— TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON -000 0000 -uuu uuuu
EEIE ADIE — — CMIE — —T M R 1 I E00-- 0--0 00-- 0--0
、 u = 不变、 - = 未用,读作 0。 Timer1 模块不使用表中阴影部分的寄存器位。
、
BOD 复位值
其它复位值
2004 Microchip Technology Inc. DS40039C_CN 第 35 页
PIC16F630/676
注:
DS40039C_CN 第 36 页 2004 Microchip Technology Inc.
PIC16F630/676
6.0 比较器模块
PIC16F630/676 器件具有一个模拟比较器。该比较器的
输入端为 RA0 和 RA1 。这两个引脚为复用引脚。器件
内部的比较器参考电压也可作为比较器的一个输入。此
外, RA2可配置为比较器输出。 寄存器 6-1所示的比较
器控制寄存器 (CMCON )中包含了比较器控制所需的
各寄存器位。
寄存器 6-1: CMCON — 比较器控制寄存器 (地址:19h )
U-0 R-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
—C O U T— CINV CIS CM2 CM1 CM0
bit 7 bit 0
bit 7 未用:读作 0
bit 6 COUT: 比较器输出位
CINV = 0 时:
当
1 = VIN + > V IN -
IN+ < V IN-
0 = V
当 CINV = 1 时:
1 = VIN + < V IN -
IN+ > V IN-
0 = V
bit 5 未用:读作 0
bit 4 CINV:比较器输出反向控制位
1 = 输出反向
0 = 输出不反向
bit 3 CIS:比较器输入开关控制位
当
CM2:CM0 = 110 或 101 :
1 = VIN- 连接至 CIN+
0 = VIN - 连接至 CIN-
bit 2-0 CM2:CM0:比较器模式位
图 6-2 显示了比较器各种工作模式以及 CM2:CM0 位的设定
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 37 页
PIC16F630/676
6.1 比较器操作
图 6-1 显示了单比较器以及模拟输入电压与数字输出之
间的关系。当 VIN + 处的模拟输入电压小于模拟输入端
IN- 的电压,则比较器输出为数字低电平。当 VIN + 处的
V
模拟输入电压高于模拟输入端 VIN - 的电压,则比较器输
出为数字高电平。 图 6-1中比较器输出波形的阴影区域
表示因输入失调以及响应时间所导致的不确定因素。
注: 欲将 CIN+ 和 CIN 引脚作为模拟输入使用时,应
通过设置 CINV 位(CMCON<4>)可使比较器的输出
极性反向。CINV 位清零将使比较器输出为非反向输出。
表 6-1 完整地显示了比较器输出状态与输入条件和极性
控制位的关系。
正确设定 CMCON (19h) 寄存器中相应的控制
位。
表 6-1: 输出状态对输入条件
输入条件 CINV COUT
VIN - > VIN + 00
V
IN- < V IN+ 01
V
IN- > V IN+ 11
VIN - < VIN + 10
图 6-1: 单比较器
IN+
V
IN-
V
IN-
V
VIN +
输出
注: CINV位 (CMCON<4>)被清零。
+
–
输出
DS40039C_CN 第 38 页 2004 Microchip Technology Inc.
PIC16F630/676
6.2 比较器配置
下比较器引脚的数据传输方向。如果比较器工作模式被
改变,比较器输出电平在规定的时间内可能处于无效状
比较器共有八种工作模式。寄存器 6-1 中所示的
CMCON 寄存器用来进行工作模式的选择。图 6-2 显示
了八种可能的工作模式。TRISA 寄存器控制每一种模式
态。请参见第 12.0 章中的技术规范说明。
注: 在改变比较器工作模式时应禁止比较器中
断,否 则可能会导致错误中断发生。
图 6-2: 比较器 I/O 工作模式
比较器复位 (POR 确省值-低功耗 ) 比较器关断 ( 功耗最低 )
CM2:CM0 = 000 CM2:CM0 = 111
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
A
关断 ( 读作 '0')
比较器不带输出 比较器不带输出而带内部参考
CM2:CM0 = 010 CM2:CM0 = 100
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
A
COUT
RA1/CIN-
RA0/CIN+
RA2/COUT D
RA1/CIN-
RA0/CIN+
RA2/COUT D
D
D
A
D
关断 ( 读作 '0')
COUT
来自 CVREF 模块
比较器带输出和内部参考 带内部参考和输出的复用输入
CM2:CM0 = 011 CM2:CM0 = 101
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
D
来自 CVREF 模块
COUT
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
CIS = 0
A
CIS = 1
比较器带输出 带内部参考的复用输入
CM2:CM0 = 001 CM2:CM0 = 110
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
A
COUT
RA1/CIN-
RA0/CIN+
RA2/COUT D
A
CIS = 0
A
CIS = 1
A = 模拟输入,该端口始终读作 ‘0’
D = 数字输入
CIS = 比较器输入开关 (CMCON<3>)
COUT
来自 CVREF 模块
COUT
来自 CVREF 模块
2004 Microchip Technology Inc. DS40039C_CN 第 39 页
PIC16F630/676
6.3 模拟输入连接的考虑事项
图 6-3 中显示了模拟输入的简化电路。 由于模拟引脚与
数字输出相连接,因此它们与 VDD 和 VSS 之间都接有
反向偏置二极管。这样,模拟输入电压应处于 V
V DD 之间。 如果输入电压偏离该范围且正负偏移值大于
图 6-3: 模拟输入模式
Rs < 10K
A
IN
VA
图注: CPIN = 输入容抗
CPIN
5 pF
VT = 电压阈值
ILEAKAGE = 在引脚处由各种半导体结导致的漏电流
IC = 互连电阻
R
RS = 电源阻抗
VA = 模拟电压
SS 和
V
DD
VT = 0.6V
T = 0.6V
V
0.6V,此时其中一个二极管将正向导通从而可能导致闭
锁发生。建议在模拟信号源处接入最大值为 10 k Ω 的阻
抗。 任何连接到模拟输入引脚的外部器件,如电容或稳
压二极管,都应只允许有极小的漏电流。
RIC
ILEAKAGE
±500 nA
Vss
6.4 比较器输出
通过读取 CMCON 寄存器中 COUT 位,可知比较器的
输出状态。该位为只读位。在八种可能的工作模式中的
三种模式下,比较器输出可直接输出到 RA2 引脚,如
图 6-2 所示。当器件工作在这三种模式之一时, RA2 引
脚上的输出不再与内部时钟同步。图 6-4 显示了比较器
输出结构框图。
图 6-4: 改进的比较器输出结构原理图
至 RA2/T0CKI 引脚
至数据总线
RD CMCON
CMIF 位置 1
Q
Q
EN
EN
当比较器工作在输出模式时,TRISA<2> 位可作为 RA2
引脚输出的使能 / 禁止控制位。
注 1: 当对 PORTA 寄存器进行读操作时 ,所有
配置为模拟输入的引脚都将返回 ‘0 。配置
为数字输入的引脚将根据 TTL 输入技术规
范对模拟输入电压进行转换。
2: 任何定义为数字输入的引脚上的模拟电压
可能导致输入缓冲器的电流消耗比规定的
更多。
RA0/CIN+
RA1/CIN-
D
CINV
D
RD CMCON
复位
CM2:CM0
CVREF
DS40039C_CN 第 40 页 2004 Microchip Technology Inc.
PIC16F630/676
6.5 比较器参考 电压
比较器模块亦允许为某一路比较器输入选择内部产生的
参考电压。内部参考电压主要用于八种比较器工作模式
中的四种。如图 6-5 所示,参考电压模块由 VRCON 寄
存器 (见寄存器 6-2 )进行控制。
6.5.1 参考电压模块的配置
参考电压模块可以输出 32 种不同等级的电压, 其中 16
种处于高量程范围,而其余 16 种处于低量程范围。
图 6-5: 比较器 参考电压模块结构原理图
8 RRR RR
VDD
16-1 模拟
MUX
VREN
CVREF 至
比较器
输入
以下公式可用来确定输出电压:
VRR = 1 (低量程): CV
VRR = 0 (高量程): CV
DD / 32)
V
REF = (VR3:VR0 / 24) x V DD
REF = (V DD / 4) + (VR3:VR0 x
6.5.2 参考电压模块的精确度 / 误差
根据该模块的电路结构可知,从 VSS 至 VDD 之间的满
量程电压将不能被完全利用。位于梯形电阻网络(图 6-
5 )顶端和底端的三极管将使 CV
达到 VSS 或 VDD。 由于参考电压由 VDD 产生,因此
CV REF 的输出也将随V DD 的波动而变化。有关比较器参
考电压的绝对精度可参见第 12.0 章。该参数经过实际
测试。
16 级
REF 的电压输出不可能
8R
VRR
VR3:VR0
6.6 比较器响应时间
响应时间参数为是从选择一个新的参考电压或输入电源
到比较器确定产生有效电平输出的最小时间。 如果内部
参考电压发生变化,在使用比较器输出时应考虑内部参
考电压的最大延迟时间。否则,应使用比较器的最大延
迟时间参数 (表 12-7 )。
6.7 休眠模式下的操作
如果比较器和参考电压模块在器件进入休眠模式之前已
被使能,则它们在休眠模式下仍将处于运行状态。与上
述模块关断时的技术参数相比,此时的休眠状态的电流
消耗较大。技术参数表中单独列出了比较器和参考电压
模块消耗的额外电流。欲使休眠模式下的功耗最小,应
通过设置 CM2:CM0 = 111 和 VRCON<7> = 0 分别关闭
比较器和参考电压模块。
如果休眠模式下比较器被使能,则器件可被中断唤醒。
当器件从休眠模式唤醒时, CMCON 和 VRCON 寄存器
中的内容将不会受到影响。
6.8 复位的影响
器件复位将强制 CMCON 和 VRCON 寄存器进入复位状
态。比较器模块将被强制处于比较器复位模式,即
CM2:CM0 = 000 且参考电压模块将被关闭。因此,当
前所有可能的输入皆为模拟输入,参考电压模块被禁
止,从而使电流消耗最小。
2004 Microchip Technology Inc. DS40039C_CN 第 41 页
PIC16F630/676
寄存器 6-2: VRCON — 参考电压控制寄存器 (地址 : 99h)
R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
VREN
bit 7 bit 0
—V R R— VR3 VR2 VR1 VR0
bit 7 VREN:CV
1 = CV
REF 使能位
REF 电路上电
0 = CVREF 电路断电, 无 I DD 漏电流
bit 6 未用:读作 0
bit 5 VRR: CV
REF 量程选择位
1 = 低量程
0 = 高量程
bit 4 未用:读作 0
bit 3-0 VR3:VR0: CV
REF 幅值选择 0 ≤ VR [3:0] ≤ 15
当 VRR = 1 时: CVREF = (VR3:VR0 / 24) * VDD
当 VRR = 0 时:CVREF = V DD/4 + (VR3:VR0 / 32) * V DD
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
6.9 比较器中断
当比较器输出值发生变化时,比较器中断标志位将置
1 。在程序中需保存从 CMCON<6> 中读取的输出状态
位的信息,以确定实际所发生的变化。 CMIF 位
(PIR1<3> )为比较器中断标志位。应在程序中将其清
零以进行复位。由于该寄存器也可写入 ‘1 ’ ,因此可
通过软件方式产生中断仿真。
CMIE 位(PIE1<3>)和 PEIE 位(INTCON<6>)应被
置 1 以使能比较器中断。此外, GIE 位也应被置 1 。即
使中断条件发生导致 CMIF 位置 1 ,如果上述使能控制
位中有任何一位被清零,则该中断将不被使能。
在中断服务程序中,用户可通过以下方法清除中断:
a) 对 CMCON 进行读或写操作。上述操作将终止不
匹配条件。
b) 清除标志位 CMIF 。
不匹配条件仍会将中断标志位 CMIF 置 1 。对 CMCON
进行读操作将终止该不匹配条件,并允许清除 CMIF 标
志位。
注: 若在读操作执行过程中( Q2 周期的起始时
刻) CMCON 寄存器值 (COUT ) 发生变
化,则此时中断标志位 CMIF (PIR1<3> )
可能将不会被置 1 。
表 6-2: 与比较器模块相关的寄存器
、
地址 名称
0Bh/8Bh INTCON GIE PEIE
0Ch PIR1
19h CMCON
8Ch PIE1
85h TRISA
99h VRCON VREN
图注: x = 未知, u = 不变, - = 未用,读作 0。 比较器模块未使用表中阴影部分的寄存器位。
DS40039C_CN 第 42 页 2004 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 000u
EEIF ADIF — —C M I F— — TMR1IF 00-- 0--0 00-- 0--0
—C O U T — CINV CIS CM2 CM1 CM0
EEIE ADIE — —C M I E— — TMR1IE 00-- 0--0 00-- 0--0
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
—V R R— VR3 VR2 VR1 VR0 0-0- 0000 0-0- 0000
POR
BOD复位值
-0-0 0000 -0-0 0000
其余复位值
PIC16F630/676
7.0 模数转换器 ( A/D)模块
(仅限 PIC16F676 )
模数转换器(A/D )可将模拟输入信号转换为相应的 10
位二进制表征值。PIC16F676 拥有 8 个模拟输入通道,
这些通道被多路转换到同一采样保持电路。采样保持电
图 7-1: A/D 结构框图
VDD
VREF
RA0/AN0
RA1/AN1/VREF
RA2/AN2
RA4/AN3
RC0/AN4
RC1/AN5
RC2/AN6
RC3/AN7
GO/DONE
路的输出与转换器的输入相连接。转换器通过逐次逼近
法将模拟输入信号转换为二进制值,并将转换结果存放
到 10 位寄存器中。可通过软件方式选择 V
V REF 引脚上的电压作为转换使用的参考电压。图 7-1 显
示了 PIC16F676 中 A/D 转换模块的结构框图。
VCFG = 0
VCFG = 1
ADC
10
ADFM
ADON
ADRESH ADRESL
VSS
10
DD 或施加在
CHS2:CHS0
7.1 A/D 配置和操作
共有三个寄存器用于 A/D 模块各项功能的控制:
1. ADCON0 (寄存器 7-1)
2. ADCON1 (寄存器 7-2)
3. ANSEL (寄存器 7-3)
7.1.1 模拟输入引脚
ANS7:ANS0 位(ANSEL<7:0>)以 及 TRISA 寄存器位
用于控制 A/D 转换模拟输入端口引脚。将 TRISA 中的
某一位置 1 将把相应引脚的输出驱动器设置为高阻状
态。同样地,将相应 ANS 位置 1 将禁止该引脚的数字
输入缓冲器。
注: 在被定义为数字输入的引脚上施加模拟电
压可导致输入缓冲器的电流增加。
7.1.2 通道选择
PIC16F676 共有 8 个模拟输入通道,即AN0 至 AN7。 通
过设定 CHS2:CHS0 位 (ADCON0<4:2>) 可选择与采样
保持电路连接的通道。
7.1.3 参考电压
A/D 转换器可以选择两种不同的参考电压: 使用 VDD 或
施加在 VREF 上的模拟电压。VCFG 位( ADCON0<6>)
用于控制参考电压的选择。如果 VCFG 置 1 ,则 V
REF
引脚上的电压即为参考电压; 否则, 使用 VDD 作为参
考电压。
7.1.4 转换时钟
完成一次 A/D 转换所需要的时间为 11 TAD。可通过软件
方式设置 ADCS 位(ADCON1<6:4> )以选择转换时钟
源。共有以下 7 种时钟选项:
OSC/2
•F
OSC/4
•F
OSC/8
•F
OSC/16
•F
•FOSC/32
OSC/64
•F
RC (专用内部振荡器)
•F
为保证 A/D 转换的正确进行,所选择的 A/D 转换时钟
AD)必须满足最小 1.6 µs 的 T AD 要求。表 7-1 显
(1/T
示了不同工作频率下的 T
AD 计算值。
2004 Microchip Technology Inc. DS40039C_CN 第 43 页
PIC16F630/676
表 7-1: T AD 与器件工作频率关系表
A/D 时钟源 (TAD ) 器件频率
选项 ADCS2:ADCS0 20 MHz 5 MHz 4 MHz 1.25 MHz
OSC 000 100 ns
2 T
4 TOSC 100 200 ns
OSC 001 400 ns
8 T
OSC 101 800 ns
16 T
32 TOSC 010 1.6 µs6 . 4 µs 8.0 µs
64 TOSC 110 3.2 µs 12.8 µs
A/D RC x11 2 - 6 µs
图注: 表中阴影部分超出了建议的取值范围。
注 1: V
DD > 3.0V 时的 A/D RC 振荡器典型 T AD 时间为 4µ s 。
2: 这些值小于所需的最小 T
AD 时间。
3: 对于要求更快转换速度的应用,建议选择其它时钟源。
4: 当器件工作频率高于 1 MHz 时,仅在需 A/D 转换在休眠模式下工作时才建议使用 A/D RC 时钟源。
(2)
(2)
(2)
(2)
(1,4)
400 ns
800 ns
(2)
(2)
500 ns
1.0 µs
(2)
(2)
1.6 µ s2 . 0 µs6 . 4 µs
3.2 µ s4 . 0 µs 12.8 µs
(3)
2 - 6 µs
(3)
(1,4)
2 - 6 µs
16.0 µs
(3)
(1,4)
1.6 µs
3.2 µs
25.6 µs
51.2 µs
2 - 6 µs
(3)
(3)
(3)
(1,4)
7.1.5 启动 A/D 转换
通过将 GO/DONE 位(ADCON0<1>)置 1 可以启动
A/D 转换 。当转换结束时, A/D 模块将:
• 清除 GO/DONE
位
至少等待 2T
集。在延时结束后,采样电路会自动进行选中通道的输
入采集。
注: 应避免在启动 A/D 转换的指令中将 GO/
• 将 ADIF 标志位 ( PIR1<6>)置 1
• 产生中断 (如果使能)
可以采取在程序中将 GO/DONE
位清零的方法中止当
前的转换操作。在 A/D 转换采样全部结束之前,
ADRESH:ADRESL 寄存器中的内容将不会被更新,而
是仍旧保留前一次的转换结果。 A/D 转换被中止后,需
7.1.6 转换输出
A/D 转换结果可选择两种不同的格式:左对齐或右对
齐。可通过 ADFM 位(ADCON0<7>)控制输出格式。
图 7-2 显示了转换结果的输出格式。
表 7-2: 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 结果
MSB LSB
AD 的延时时间后才能开始下一次数据采
DONE 位置 1。
DS40039C_CN 第 44 页 2004 Microchip Technology Inc.
寄存器 7-1: ADCON0 — A/D 控制寄存器 (地址:1Fh )
R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
ADFM VCFG
bit 7 bit 0
bit 7 ADFM: A/D 结果格式选择位
1 = 结果右对齐
0 = 结果左对齐
bit 6 VCFG:参考电压选择位
1 = V
REF 引脚
DD
0 = V
bit 5 未用:读作 0
bit 4-2 CHS2:CHS0: 模拟通道选择位
000 = 通道 00 (AN0)
001 = 通道 01 (AN1)
010 = 通道 02 (AN2)
011 = 通道 03 (AN3)
100 = 通道 04 (AN4)
101 = 通道 05 (AN5)
110 = 通道 06 (AN6)
111 = 通道 07 (AN7)
bit 1 GO/DONE
: A/D 转换状态位
1 = A/D 转换正在进行。该位置 1 将启动 A/D 转换。
在转换结束后该位将被硬件自动清零。
0 = A/D 转换结束 / 未进行
bit 0 ADON: A/D
转换状态位
1 = A/D 转换模块正在工作
0 = A/D 转换器关闭且不消耗工作电流
— CHS2 CHS1 CHS0 GO/DONE ADON
PIC16F630/676
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
寄存器 7-2: ADCON1 — A/D 控制寄存器 1 (地址:9Fh )
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
bit 7 未用:读作 0。
bit 6-4 ADCS<2:0>:A/D 转换时钟选择位
000 =FOSC/2
001 =F
010 =F
x11 =F
100 =F
101 =F
110 =F
bit 3-0: 未用:读作 0。
OSC/8
OSC/32
RC ( 时钟信号来自专用的内部振荡器 = 500 kHz 最大值 )
OSC/4
OSC/16
OSC/64
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 45 页
PIC16F630/676
寄存器 7-3: ANSEL — 模拟选择寄存器 (地址: 91h) (仅限 PIC16F676 )
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
bit 7-0 ANS<7:0>: 引脚 AN<7:0> 为别配置为模拟或数字功能引脚的选择控制位
1 = 模拟输入。配置为模拟输入引脚。
0 = 数字 I/O 。 配置为数字端口或特殊功能引脚。
注 1: 如果引脚被配置为模拟输入功能引脚,将自动禁止有效的数字输入电路、弱上拉以
及电平变化中断。 应将相应的 TRIS 位置 1 选择输入模式以允许引脚电压的外部控
制。
图注:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
(1)
DS40039C_CN 第 46 页 2004 Microchip Technology Inc.
PIC16F630/676
7.2 A/D 数据采集时间要求
为使 A/D 转换器满足规定的精度要求, 必须使充电保持
电容(CHOLD )满充至输入通道的电压值 。图 7-3 中显
示了该模拟输入电路模型。 模拟信号源阻抗 (R
及内部采样开关(RSS )阻抗将直接影响电容 CHOLD 所
需的充电时间 。从 图 7-3 可见采样开关阻抗(RSS )随
器件电源电压 (V
DD)而变化。 推荐的模拟信号源最大
S)以
阻抗为 10 kΩ. 。随着该阻抗的减小,采样时间也将缩
短。在模拟输入通道选择(改变)后,必须在转换启动
之前完成采集。
公式 7-1 可用来计算最小的采样时间。该公式假定使用
的误差为 1/2 LSb (A/D 的阶梯数为 1024 )。该误差为
A/D 满足规定精度要求的最大可允许误差。
有关最小采样时间 T
档单片机系列参考手册》(DS33023_CN )。
公式 7-1: 采样时间计算
TACQ
TC
TACQ
注 1: 参考电压 ( VREF ) 对该公式没有影响,这是由于它在计算时将自身消去。
=
放大器建立时间 +
保持电容充电时间 +
温度系数
AMP + TC + T COFF
=
T
2µ s + TC + [( 温度 -25° C)(0.05µ s/°C)]
=
CHOLD (RIC + RSS + RS ) In(1/2047)
=
120pF (1kΩ + 7kΩ + 10kΩ ) ln(0.0004885)
=
16.47µs
=
2µ s + 16.47µ s + [(50°C -25° C)(0.05µ s/° C)
=
19.72µs
=
2: 在每次转换结束之后,充电保持电容 (C
HOLD)并未放电。
3: 为满足引脚漏电流的要求,模拟信号源最大阻抗的推荐值为 10 kΩ 。
ACQ 的计算,参见 《PICmicro
®
中
表 7-3: 模拟输入模块
ANx
S
R
VT
I LEAKAGE
RIC
SS
C
HOLD
CPIN
5 pF
= 输入电容
= 电压阈值
= 引脚处由不同半导体结
引起的漏电流
= 互联电阻
= 采样开关
= 采样 / 保持电容(来自 DAC)
VA
其中 CPIN
VDD
VT = 0.6V
T = 0.6V
V
RIC ≤ 1K
LEAKAGE
I
± 500 nA
SS
V
采样
开关
DD
6V
5V
4V
3V
2V
R
SS
CHOLD
= DAC 电容
= 120 pF
V
SS
567891011
采样开关
(kΩ)
2004 Microchip Technology Inc. DS40039C_CN 第 47 页
PIC16F630/676
7.3 A/D 工作在休眠状态
如果 A/D 时钟源为非 RC 方式, SLEEP 指令将导致当
前转换操作中止,并使 A/D 模块关闭。 ADON 位保持
A/D 转换器模块可以在休眠状态下工作。这需要把 A/D
置 1 状态不变。
转换时钟源设定为内部振荡器。当选择了RC 时钟源时,
A/D 需等待一个指令周期后才能启动转换操作。 这就允
许执行一条SLEEP 休眠指令以消除转换过程中的切换噪
声。当转换结束后,GO/DONE
位将被清零,且转换结
果将被载入 ADRESH:ADRESL 寄存器。如果 A/D 中断
被使能,器件将从休眠状态唤醒。如果 A/D 中断被禁
7.4 复位的影响
器件复位将强制所有寄存器进入复位状态。因此, A/D
模块将被关闭,任何进行中的转换操作被中止。
ADRESH:ADRESL 寄存器中的值不变。
止,即使 ADON 位置 1 状态不变,A/D 转换模块也将被
关闭。
表 7-2: A/D 寄存器汇总
POR
地址 名称
05h PORTA — — PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0 --xx xxxx --uu uuuu
07h PORTC
0Bh, 8Bh INTCON GIE PEIE
0Ch PIR1
1Eh ADRESH A/D 转换结果左对齐后的高 8 位或右对齐后的高 2 位 xxxx xxxx uuuu uuuu
1Fh ADCON0 ADFM VCFG
85h TRISA
87h TRISC
8Ch PIE1
91h ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111
9Eh ADRESL
9Fh ADCON1
图注: x = 未知, u = 不变, - = 未用,读作 0 。 A/D 转换器模块未使用表中阴影表示的寄存器位。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
— — PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 --xx xxxx --uu uuuu
T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 000u
EEIF ADIF — — CMIF — — TMR1IF 00-- 0--0 00-- 0--0
— CHS2 CHS1 CHS0 GO ADON 00-0 0000 00-0 0000
— — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 --11 1111 --11 1111
— — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 --11 1111
EEIE ADIE — — CMIE — — TMR1IE 00-- 0--0 00-- 0--0
A/D 转换结果左对齐后的低 2 位或右对齐后的低 8 位
— ADCS2 ADCS1 ADCS0 — — — — -000 ---- -000 ----
、
BOD 复位值
xxxx xxxx uuuu uuuu
其它复位值
DS40039C_CN 第 48 页 2004 Microchip Technology Inc.
PIC16F630/676
8.0 数据 EEPROM 存储器
在正常操作期间 (整个 VDD 工作电压范围内),
EEPROM 数据存储器是可读写的。该存储器并非直接
映射在寄存器文件空间,而是通过特殊功能寄存器进行
间接寻址。共有四个 SFR 可用于对该存储器进行读写
操作:
• EECON1
• EECON2 (不是一个实际存在的寄存器)
• EEDATA
• EEADR
EEDATA 存放 8 位读 / 写数据,而 EEADR 存放指向
EEPROM单元的地址。PIC16F630/676器件共有 128个
字节的数据 EEPROM,其寻址范围可从 0h 至 7Fh。
EEPROM 数据存储器允许字节读写操作。字节写操作
将自动擦除地址单元并写入新的值 (即先擦除后写入)
EEPROM 数据存储器可用于高速擦 / 写周期的操作。 写
操作时间由一个片内定时器控制,并随电压、温度以及
芯片的差异而有所变化。具体的限定值可参见 AC 技术
规范说明。
当数据存储器处于代码保护状态时, CPU 仍可对
EEPROM 存储器进行读写操作,但器件编程器不能对
该存储器进行访问。
有关数据 EEPROM 的更多信息,请参见 《PICmicro
中档单片机系列参考手册》(DS33023_CN )。
寄存器 8-1: EEDAT — EEPROM 数据寄存器 (地址: 9Ah)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 EEDAT1 EEDAT0
bit 7 bit 0
bit 7-0 EEDATn:写入或读取数据 EEPROM 的字节值
图例:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
®
寄存器 8-2: EEADR — EEPROM 地址寄存器 (地址: 9Bh)
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— EADR6 EADR5 EADR4 EADR3 EADR2 EADR1 EADR0
bit 7 bit 0
bit 7 未用:应设置为 ‘0’
bit 6-0 EEADR:指定 EEPROM 读 / 写操作的 128 个地址单元之一
图例:
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
2004 Microchip Technology Inc. DS40039C_CN 第 49 页
PIC16F630/676
8.1 EEADR
通过 EEADR 寄存器可寻址最大为 128 字节的数据
EEPROM。 只需使用寄存器中 8 位中的 7 位
(EEADR<6:0> ),而其 MSb (第 7 位)被忽略。
该寄存器的最高位应总是为 ‘0 ’ ,以使其与具有更多
数据 EEPROM 存储器的器件向上兼容。
8.2 EECON1 和 EECON2 寄存器
EECON1 为控制寄存器,但实际只使用了其中的低四
位。该寄存器中高四位未使用,读作 ‘0 ’ .
控制位 RD 和 WR 分别用于读写操作的初始化。这两个
控制位不能清零,仅能通过软件置 1 。在读操作或写操
作完成时,它们将被硬件清零。WR 位不能通过软件清
零是为了防止写操作发生意外和非正常中止。
当 WREN 位置 1 时,写操作将被使能。在上电时,
WREN 位将被清零。正常工作其间,如果写操作被
复位或 WDT 超时复位中断,则 WRERR 位将被
MCLR
置 1 。上述情形下,用户可在复位结束后查询 WRERR
的状态。若 WRERR 位置 1 ,用户可将其清零并重新写
入地址单元。由于数据和地址被清除,因此需对
EEDATA 和 EEADR 寄存器进行重新初始化。
当写操作完成时,PIR1 寄存器中的中断标志位 EEIF 将
置 1 。该标志位应由软件清零。
EECON2 不是一个物理存在的寄存器。对 EECON2 进
行读操作将返回一连串的 ‘0 ’。EECON2 是数据
EEPROM 写操作序列的专用寄存器。
寄存器 8-3: EECON1 — EEPROM 控制寄存器 (地址: 9Ch)
U-0 U-0 U-0 U-0 R/W-x R/W-0 R/S-0 R/S-0
— — — — WRERR WREN WR RD
bit 7 bit 0
bit 7-4 未用:读作 0
bit 3 WRERR: EEPROM 出错标志位
1 = 写操作未完成 ( 由正常运行时任何 MCLR
0 = 写操作完成
bit 2 WREN: EEPROM 写操作使能位
1 = 允许写操作
0 = 禁止写入数据 EEPROM
bit 1 WR:写操作控制位
1 = 初始化写操作 ( 一旦写操作完成,该位由硬件清零。WR 位只能由软件置 1 ,而不能由软件
清零 )。
0 = 写 EEPROM 操作完成
bit 0 RD:读操作控制位
1 = 初始化EEPROM 读操作( 读操作为一个周期。 RD 位由硬件清零。 RD位只能由软件置 1 ,而
不能由软件清零 )。
0 = 不初始化 EEPROM 读操作
复位或 WDT 复位;或检测到 BOD 所致 )
图例:
S = 该位只能置 1
R = 可读位 W = 可写位 U = 未用,读作 0
- n = 上电复位值 ‘1’ = 该位置 1 ‘0’ = 该位清零 x = 该位状态未知
DS40039C_CN 第 50 页 2004 Microchip Technology Inc.
PIC16F630/676
8.3 从 EEPROM 数据存储器读数据如
如例 8-1 中所示,为了读取数据存储器的地址,用户必
须先把地址写到 EEADR 寄存器中,并将控制位 RD
(EECON1<0> )置 1 。在下一个指令周期, EEDATA 寄
存器中的数据即可使用,因此可以通过下一条指令来读
取。EEDATA 将保留该数据直至另一次读操作开始或用
户写入新值 (在写操作中)。
例 8-1: 读取数据 EEPROM
bsf STATUS,RP0 ;Bank 1
movlw CONFIG_ADDR ;
movwf EEADR ;Address to read
bsf EECON1,RD ;EE Read
movf EEDATA,W ;Move data to W
8.4 向 EEPROM 数据存储器写入数据
在向 EEPROM 数据存储器地址写入数据前,用户应首
先将地址写入 EEADR 寄存器并将数据写入 EEDATA 寄
存器。随后,用户应按照例 8-2 中所示的特定序列对每
一字节的写操作进行初始化。
例 8-2: 写入数据 EEPROM
bsf STATUS,RP0 ;Bank 1
bsf EECON1,WREN ;Enable write
bcf INTCON,GIE ;Disable INTs
movlw 55h ;Unlock write
movwf EECON2 ;
movlw AAh ;
movwf EECON2 ;
要求时序
bsf EECON1,WR ;Start the write
bsf INTCON,GIE ;Enable INTS
在写操作序列初始化后, WREN 位清零将不会对写操
作造成影响。除非 WREN 位置 1 ,否则 WR 位将被禁
止置 1 。
在写操作完成时, WR 位将被硬件清零而 EE 写操作结
束中断标志位 (EEIF )将被置 1 。用户可以使能该中
断,或轮询该标志位。EEIF 位(PIR<7>)寄存器必须
被软件清零。
8.5 写校验
取决于应用的需要,最好的编程方法是将写入到数据
EEPROM 中的值与期望写入值相校验 (见 例 8-3 )。
例 8-3: 写校验
bcf STATUS,RP0 ;Bank 0
: ;Any code
bsf STATUS,RP0 ;Bank 1 READ
movf EEDATA,W ;EEDATA not changed
;from previous write
bsf EECON1,RD ;YES, Read the
;value written
xorwf EEDATA,W
btfss STATUS,Z ;Is data the same
goto WRITE_ERR ;No, handle error
: ;Yes, continue
8.5.1 数据 EEPROM 的使用
数据 EEPROM 是高耐久性、针对频繁变动信息(例如,
程序变量或其它经常更新的数据)的存储而优化的字节
寻址存储器阵列。通常,频繁变动值的更新频率应超过
D120 或D120A 中规定的参数值。如果并非如此,则必须
进行存储阵列刷新。为此,不经常变动的变量 (如常
数、 ID 、校准值等)应存放在闪存程序存储器中。
如果没有执行上述各字节写操作所需的指令序列(即写
55h 入 EECON2,写 AAh入 EECON2,随后将 WR 为置
1),写操作将不会被初始化。我们强烈建议在上述代码
段的执行期间禁止所有中断。 在执行所需指令序列的同
时,也将执行一次周期计数操作。如果周期计数值与指
令序列执行所需周期数不符,则将禁止数据写入
EEPROM 。
此外,寄存器 EECON1 中的 WREN 位应被置 1 以使能
写操作。 该机制有助于防止由于执行错误 (非预期的)
程 序 代 码 (即,跑 失 的 程 序)而 导 致 意 外 的 数 据
EEPROM 误写入。除对 EEPROM 进行更新时,用户应
8.6 防止误写操作的保护措施
在有些情况下,用户并不希望写入数据 EEPROM 存储
器。为防止 EEPROM 误写操作,芯片内嵌了各种保护
机制。上电时, WREN 位被清零。 同时,上电复位定
时器 (持续 72 ms )可防止对 EEPROM 的误写操作。
写操作的初始化顺序以及 WREN 位将共同防止以下情
况下的意外误写操作发生:
• 欠压
• 电源毛刺
• 软件故障
在始终保持 WREN 位为清零状态。WREN 位将不会被
硬件清零。
2004 Microchip Technology Inc. DS40039C_CN 第 51 页
PIC16F630/676
8.7 代码保护条件下的数据 EEPROM操作
将 CPD 位设定为 ‘0 ’可对数据存储器进行代码保护。
当数据存储器处于代码保护状态时, CPU 仍可对
EEPROM 进行读写操作。对数据存储器进行代码保护
的同时,建议用户也对程序存储器采取代码保护。这将
防止有人通过在已有代码上写入零 (这将作为 NOP 执
行) ,进入在未使用的程序存储器中加出的程序代码
段,从而达到导出数据存储器内容的目的。 在未使用的
地址单元中写入 ‘0’ 的方法也可防止数据存储器的代
码保护被破坏。
表 8-1: 与数据 EEPROM 相关的寄存器 / 位
POR
、
地址 名称
0Ch PIR1 EEIF ADIF — — CMIF — — TMR1IF 00-- 0--0 00-- 0--0
9Ah EEDATA EEPROM 数据寄存器 0000 0000 0000 0000
9Bh EEADR
9Ch EECON1
9Dh EECON2
图注: x = 未知, u = 不变, - = 未用,读作 0 , q = 视当时情况而定。
数据 EEPROM 模块未使用阴影部分的寄存器位。
注 1: EECON2 不是实际存在的寄存器。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
—
EEPROM 地址寄存器
— — — — WRERR WREN WR RD ---- x000 ---- q000
(1)
EEPROM 控制寄存器 2 ---- ---- ---- ----
BOD复位值
-000 0000 -000 0000
其它复位值
DS40039C_CN 第 52 页 2004 Microchip Technology Inc.
PIC16F630/676
9.0 CPU 的特殊功能
单片机内部集成了用于处理实时应用需要的某些特殊电
路,使之与其它处理器区分开来。 PIC16F630/676 系
列单片机具备这些特征用以实现:
• 最大限度地增强系统可靠性
• 减少外部器件以最大限度地降低成本
• 提供省电工作模式和代码保护功能
这些特征包括:
• 可选择振荡器类型
• 复位
- 上电复位 ( POR)
- 上电延时定时器 ( PWRT)
- 振荡器起振定时器 ( OST)
- 欠压检测复位 ( BOD)
• 中断
• 看门狗定时器 ( WDT)
• 休眠模式
• 代码保护
•ID 地址单元
• 在线串行编程
PIC16F630/676 片内集成有一个看门狗定时器,可通过
配置寄存器中的控制位对其进行控制。 看门狗定时器采
用自带的 RC 振荡器进行工作,增强了系统可靠性。器
件内部有两个定时器可用来提供必要的上电延时。一个
是振荡器起振定时器 (OST ),用于确保器件在晶体振
荡器稳定之前处于复位状态。另一个是上电延时定时器
(PWRT ),仅在上电时提供 72 ms (标称值)的固定
延时,用来确保器件在电源电压稳定之前处于复位状
态。此外,在出现欠压情况时,器件内部专用电路将使
器件复位,并使器件处于 72 ms 的复位状态。由于片内
已具有这三种功能,对于大多数应用来说已不再需要外
加复位电路。
休眠模式的设计是用来提供一种极低电流消耗的断电工
作模式。用户可通过以下方法使器件唤醒:
• 外部复位
• 看门狗定时器唤醒
• 中断
器件还具有几种不同的振荡模式,使其满足不同应用场
合的需要。选择 INTOSC 模式可以节省系统成本,而选
择 LP 晶体模式则可以降低功耗。通过配置位的设定可
选择不同的振荡模式 (见寄存器 9-1 )。
2004 Microchip Technology Inc. DS40039C_CN 第 53 页
PIC16F630/676
9.1 配置位
通过对配置位进行编程 (读作 0 )或不编程 (读作 1 )
可为器件选择不同的配置,如寄存器 9-1 所示。这些寄
存器位在程序存储器中的映射地址为 2007h 。
寄存器 9-1: CONFIG — 配置字 (地址: 2007h)
R/P-1 R/P-1 U-0 U-0 U-0 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1
BG1 BG0
bit 13 bit 0
— — —C P DCP BODEN MCLRE PWRTE WDTE F0SC2 F0SC1 F0SC0
注: 地址2007h 在用户程序存储器空间以外,属
于特殊配置存储空间(2000h - 3FFFh ),仅
可在编程时对其进行访问。更多信息可参见
PIC16F630/676 的编程技术说明。
bit 13-12 BG1:BG0: 用于欠压检测 (BOD) 和上电复位 (POR) 电压的带隙较准位
00 = 最低带隙电压
11 = 最高带隙电压
bit 11-9 未用:读作 0
bit 8 CPD
bit 7 CP
bit 6 BODEN:欠压检测功能 (BOD) 使能位
bit 5 MCLRE: RA3/MCLR
bit 4 PWRTE:上电复位定时器 (PWRT) 使能位
bit 3 WDTE:看门狗定时器 (WDT) 使能位
bit 2-0 FOSC2:FOSC0:振荡器选择位
:数据代码保护使能位
1 = 禁止数据存储器代码保护
0 = 使能数据存储器代码保护
: 代码保护使能位
1 = 禁止程序存储器代码保护
0 = 使能程序存储器代码保护
1 = 使能 BOD
0 = 禁止 BOD
1 = RA3/MCLR 引脚功能为 MCLR
0 = RA3/MCLR
1 = 禁止 PWRT
0 = 使能 PWRT
1 = 使能 WDT
0 = 禁止 WDT
111 = RC 振荡器: RA4/OSC2/CLKOUT 作为 CLKOUT 引脚 , RA5/OSC1/CLKIN 作为 RC 输入引脚。
110 = RC 振荡器: RA4/OSC2/CLKOUT 作为 I/O 引脚, RA5/OSC1/CLKIN 作为 RC 输入引脚。
101 = INTOSC 振荡器: RA4/OSC2/CLKOUT 作为 CLKOUT 引脚 , RA5/OSC1/CLKIN 作为 I/O 引脚。
100 = INTOSC 振荡器: RA4/OSC2/CLKOUT 作为 I/O 引脚, RA5/OSC1/CLKIN 作为 I/O 引脚
011 = EC:RA4/OSC2/CLKOUT 作为 I/O 引脚, RA5/OSC1/CLKIN 作为 CLKIN 引脚
010 = HS 振荡器: 高速晶体 / 谐振器接到 RA4/OSC2/CLKOUT 和 RA5/OSC1/CLKIN
001 = XT 振荡器: 晶振 / 谐振器接到 RA4/OSC2/CLKOUT 和 RA5/OSC1/CLKIN
000 = LP 振荡器:低功耗晶振接到 RA4/OSC2/CLKOUT 和 RA5/OSC1/CLKIN
引脚功能为数字 I/O, MCLR 内部连接到 VDD
(2)
(3)
引脚功能选择
(4)
(5)
(1)
注 1: 带隙校准位在出厂前已设定。如 PIC16F630/676 编程技术说明中所规定,在器件被擦除之前,应
将带隙校准位的状态读出并保存。这些位的数值将反映在输出的控制字中。 Microchip 开发工具将
保持所有校准位为出厂设定状态。
2: 当代码保护功能被关闭时,所有数据 EEPROM 将被擦除。
3: 当代码保护功能被关闭时,包括 OSCCAL 值在内的所有程序存储器内容将被擦除。
4: 使能欠压检测将不会自动使能上电复位定时器。
5: 在 INTOSC 或 RC 模式中,如果 MCLR
图注:
P = 使用 ICSP 编程设定
R = 可读位 W = 可写位 U = 未用,读作 0
-n = 上电复位值 1 = 该位置 10 = 该位清零 x = 该位状态未知
DS40039C_CN 第 54 页 2004 Microchip Technology Inc.
被置为低电平, 则内部时钟振荡器将被关闭。
PIC16F630/676
9.2 振荡器配置
9.2.1 振荡器类型
PIC16F630/676 可工作在 8 种不同的振荡模式。用户通
过对三个配置位(FOSC2 至 FOSC0 )进行设定以选择
其中的一种:
•LP 低功耗晶体
•XT 晶体 / 谐振器
•HS 高速晶体 / 谐振器
•RC 外部电阻 / 电容 (2 种模式)
•INTOSCI内部振荡器 (2 种模式)
•EC 外部时钟输入
注: 有关振荡器配置的更多信息可从
《PICmicro ® 中档单片机系列参考手册》
(DS33023_CN )获得。
9.2.2 晶体振荡器 / 陶瓷谐振器
在 XT 、 LP 或 HS 模式中,采用将晶体或陶瓷谐振器连
接到 OSC1 和 OSC2 引脚的方法来建立振荡(见图 9-
1 )。 PIC16F630/676 振荡器的设计要求采用平行切割
的晶体,而采用串联切割的晶体产生的频率将不在晶体
制造商提供的技术特性范围之内。 在 XT、 LP 或 HS 模
式下,器件可采用外部时钟源来驱动 OSC1 引脚 (见
图 9-2 )。
图 9-2: 外部时钟输入操作 (HS 、
XT 、EC或LP 振荡器配置)
来自外埠系统
的时钟信号
开路
注 1: 在 EC 振荡模式时作为 RA4 引脚。
OSC1
PIC16F630/676
(1)
OSC2
表 9-1: 陶瓷谐振器的电容选择
特性范围:
模式
频率
XT 455 kHz
2.0 MHz
4.0 MHz
HS 8.0 MHz
16.0 MHz
注 1: 采用较大的电容值有利于提高振荡器的可靠
性,但同时将延长起振时间。表中列出的数
值仅供设计时参考。由于每一谐振器具有自
身的特性,用户应咨询谐振器厂商以正确选
择外部器件的取值。
OSC1(C1) OSC2(C2)
68 - 100 pF
15 - 68 pF
15 - 68 pF
10 - 68 pF
10 - 22 pF
68 - 100 pF
15 - 68 pF
15 - 68 pF
10 - 68 pF
10 - 22 pF
图 9-1: 晶体振荡器操作 (或陶瓷谐振
器) (HS 、 XT 或 LP 振荡器配
置)
OSC1
(1)
C1
XTAL
OSC2
(2)
RS
(1)
C2
注 1: 有关 C1 和 C2 的推荐值,参见 表 9-1 和 表 9-2 。
2: 对于 AT 条形切割的晶体需要串联一个电阻。
3: RF 随所选振荡模式的不同而有所变化。
(大约值 = 10 MΩ )。
RF
(3)
去外部逻辑
电路
休眠
PIC16F630/676
表 9-2: 晶体振荡器的电容选择
模式 频率 OSC1(C1) OSC2(C2)
LP 32 kHz 68 - 100 pF 68 - 100 pF
XT 100 kHz
2 MHz
4 MHz
HS 8 MHz
10 MHz
20 MHz
注 1: 采用较大的电容值有利于提高振荡器的可靠
性,但同时也将延长起振时间。表中列出的
数值仅供设计时参考。 在 HS 模式以及 XT
模式中可能需要接入串联电阻 Rs ,以避免
对低驱动参数特性的晶体产生过驱动。由于
每一种谐振器具有自身的特性,用户应咨询
谐振器厂商以正确选择外部器件的取值。
68 - 150 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
150 - 200 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
15 - 30 pF
2004 Microchip Technology Inc. DS40039C_CN 第 55 页
PIC16F630/676
9.2.3 外部时钟输入
对于已具有其它时钟源的应用场合,如果该时钟源符合
第 12.0 章中所列出的 AC/DC 时序要求,用户即可对
PIC16F630/676 进行直接驱动。图 9-2 显示了如何进
行外部时钟电路的配置。
9.2.4 RC 振荡器
对于不需要高精度定时的应用场合,可选择 RC 振荡模
式。 RC 振荡器的操作和功能取决于几个变量。 RC 振
荡器的频率是以下参数的函数:
• 电源电压
• 电阻 ( R
EXT)和电容 (C EXT)值
• 工作温度
由于正常制造工艺过程中存在的参数差异,不同振荡器
的频率也有所不同。不同封装类型之间的引线电容的差
异也会对振荡器频率造成影响,特别是当 C
EXT 取值较
小时。用户还应考虑外部 R 和 C 元件的容差。图 9-3 显
示了如何进行 R/C 的组合连接。
该振荡模式具有两种不同选项,即允许 RA4 用作通用 I/
O 或使其用作频率为 F
OSC/4 的脉冲输出引脚。
图 9-3: RC 振荡模式
REXT
CEXT
VSS
VDD
OSC/4
F
RA5/OSC1/
CLKIN
RA4/OSC2/CLKOUT
PIC16F630/676
内部
时钟
9.2.5 内部 4 MH
Z 振荡器
校准时,内部振荡器将提供一个固定的 4MHz(标称
值)系统时钟。有关电压和温度造成振荡器时钟频率变
化的信息可参见第 12.0 章中的电气技术参数说明。
该振荡模式具有两种不同选项,即允许 RA4 用作通用 I/
O 或使其用作频率为 F
OSC/4 的脉冲输出引脚。
9.2.5.1 内部振荡器校准
在程序存储器的最后一个存储单元烧写了一条校准指
令,为 RETLW XX ,其中立即数即为校准值。该立即数
置于 OSCCAL 寄存器中,以进行内部振荡器的校准设
定。例 9-1 显示了如何对内部振荡器进行校准。欲实现
最佳工作性能, V
DD 和 VSS 引脚上的去耦电容应尽可能
地靠近器件。
注: 在对器件进行擦除时,预先设定的用于内部
振荡器的校准值也将被擦除。如同
PIC16F630/676 编程技术说明中所规定,在
器件被擦除之前,应将带隙校准位的状态读
出并保存。 Microchip 开发工具将保持所有
校准位为出厂设定状态。
例 9-1: 内部振荡器校准
bsf STATUS, RP0 ;Bank 1
call 3FFh ;Get the cal value
movwf OSCCAL ;Calibrate
bcf STATUS, RP0 ;Bank 0
9.2.6 CLKOUT
在 INTOSC 和 RC 振荡模式中,对 PIC16F630/676 器
件进行配置可以输出时钟信号。经过配置设定后,振荡
器频率的 4 分频 (F
引脚上的输出。该 FOSC /4 脉冲信号可作测试用或用来
同步其它逻辑电路。
OSC/4)即为 RA4/OSC2/CLKOUT
DS40039C_CN 第 56 页 2004 Microchip Technology Inc.
PIC16F630/676
9.3 复位
PIC16F630/676 具有以下几种不同的复位方式:
a) 上电复位 ( POR)
b) 正常工作状态下的 WDT 复位
c) 休眠状态下的 WDT 复位
复位
WDT
超时
复位
BODEN
复位
外部
复位
休眠
上电复位
d) 正常工作状态下的 MCLR
e) 休眠状态下的 MCLR
f) 欠压检测复位 ( BOD)
有些寄存器的状态在任何复位条件下都不会受到影响;
上电复位时它们的状态是不确定的,而在其它复位发生
时其状态将保持不变。其他大多数寄存器在以下复位事
件发生时将被复位成 “复位状态”:
• 上电复位
•MCLR
复位
•WDT 复位
• 休眠状态下的 WDT 复位
• 欠压检测复位 ( BOD)
图 9-4: 片内复位电路简化框图
MCLR/
V
PP 引脚
WDT
模块
V
DD 上升
沿检测
DD
V
欠压锁定
复位
但在 WDT 唤醒发生时,它们的状态将不会受到影响,
这是因为这种情况被视为正常操作的重新开始。 如
表 9-4 所示,不同复位条件下 TO
和 PD 位是进行置 1
还是清零也有所不同。这些状态位供软件用以确定复位
的性质。有关复位条件下所有寄存器状态的具体说明可
参见表 9-7 。
图 9-4 给出了片内复位电路的简化结构方框图。
当器件发生 MCLR
复位时,有一个噪声滤波器可以检测
和滤除小脉冲。有关脉冲宽度的技术参数可参见电气技
术说明一章中的表 12-4 。
S
Q
OST/PWRT
OST
10 位纹波计数器
OSC1/
CLKIN
引脚
片内
RC 振荡器
注 1: 该振荡器独立于 INTOSC/EC 振荡器。
2004 Microchip Technology Inc. DS40039C_CN 第 57 页
PWRT
(1)
10 位纹波计数器
使能 PWRT
使能 OST
有关超时的情形请参见表 9-3 。
R
器件复位
Q
PIC16F630/676
9.3.1 MCLR
在 MCLR 复位时, PIC16F630/676 器件有一个噪声滤
波器用于检测和滤除小脉冲。
注意,WDT 复位发生时 MCLR
引脚将不会被驱动为低
电平。
该器件 MCLR
引脚的 ESD 保护特性与该系列中较早型
号器件相比,已有所改变。 当 MCLR 引脚上加载的电压
超出额定参数时,可导致 MCLR 复位以及在 ESD 发生
时产生超过规定技术参数的过电流。 因此, Microchip
建议用户不要直接将 MCLR
引脚连接至 V DD , 而采用
如图 9-5 所示的 RC 电路网络。
通过将配置字中的MCLRE 位置1 ,可使能内部的 MCLR
选项。在使能后, MCLR 被内部连接至 VDD 。 MCLR 引
脚不具备内部上拉功能。
图 9-5: 建议 MCLR 电路
VDD
R1
1 kΩ ( 或更大 )
C1
µf
0.1
( 可选 , 非关键元件 )
PIC16F630/676
MCLR
由于以下原因,不同器件的上电定时延时有所差异:
DD 变化
•V
• 温度变化
• 制造工艺的不同
详细情况可参见 DC 参数 (第 12.0 章)。
9.3.4 振荡器起振定时器 (OST )
在 PWRT 延迟结束之后,振荡器起振定时器 (OST )
将提供 1024 个振荡器周期 (来自 OSC1 输入)的延迟
时间,以确保晶体振荡器或谐振器有足够时间起振和建
立稳定的振荡。
只有在 XT 、 LP 以及 HS 模式中,以及上电复位或从休
眠模式唤醒时,才发生 OST 超时。
9.3.2 上电复位 (POR )
在 VDD 达到适合器件正常工作的电平之前,片内 POR
电路将使器件保持在复位状态。欲有效利用 POR ,可 通
过一个电阻将 MCLR
上电复位电路通常所需的外部 RC 元件。V
引脚连接到 VDD 。这样可省去建立
DD 的最大上
升时间必须得到满足,详细内容见电气技术说明 (见第
12.0 章)。 如果 BOD 被使能,最大上升时间参数将不再
适用。 BOD 电路将使器件保持在复位状态直至 V
到 V
BOD (见第 9.3.5 节)。
DD 达
注: 当 VDD 跌落时,POR 电路将不会产生内部
复位。
当器件开始正常工作时 (退出复位状态),器件工作参
数 (即电压、频率、温度等)必须满足技术要求以确保
正常运行。如果这些要求得不到满足,则器件必须保持
在复位状态,直到满足为止。
A
N607
更多信息可参见应用笔记
“上电故障排除”
。
9.3.3 上电延时定时器(PWRT )
上电延时定时器仅在器件上电产生上电复位或欠压检测
复位,并提供一个长度为 72 ms (标称值)的固定延
时。上电延时定时器采用一个内部 RC 振 荡器。只要
PWRT 工作,器件就将保持在复位状态。 PWRT 延迟允
许器件在 V
设定配置位 PWRTE
或编程) 上电延时定时器。 当欠压检测使能时,上电延
时定时器应始终被使能。
DD 上升到适当电平后才投入正常运行。通过
可禁止(被置 1)或使能(被清零
DS40039C_CN 第 58 页 2004 Microchip Technology Inc.
PIC16F630/676
9.3.5 欠压检测复位 ( BOD)
PIC16F630/676 系列中的单片机具有片内欠压检测复位
电路。通过设定配置位 BODEN 可以禁止 (如果清零 /
编程)或使能 (如果置 1 )欠压检测复位电路。如果
DD 跌落至 V BOD 以下且持续时间大于表 12-4中规定参
V
BOD) (见第 12.0 章),此时无论 VDD 转换率大
数(T
小,欠压情形将使器件复位。如果 VDD 跌落至 VBOD 以
下的时间小于规定参数 (TBOD ) ,将不保证可产生复
位。
图 9-6: 欠压锁定复位的情况
DD
V
内部
复位
DD
V
内部
复位
<72 ms
任何复位发生时(上电复位、欠压锁定复位、 看门狗定
时器复位等) , 器件将保持复位状态直至 V
DD 上升到
BVDD 以上 (见图 9-6)。 此时上电延时定时器启动(如
果已被使能),并将使器件在随后 72 ms 延时时间处于
延时复位状态。
注: 如果配置字中的 PWRTE 位置 1 ,欠压锁定
将复位将不会使能上电延时定时器。
如果在上电延时定时器运行过程中发生 VDD 跌落至
DD 以下的情况,器件将返回欠压锁定复位状态且上
BV
电延时定时器将被重新初始化。一旦 VDD 上升至 BVDD
以上时,上电延时定时器将启动一个 72 ms 的复位延时
定时。
VBOD
(1)
72 ms
VBOD
(1)
72 ms
DD
V
内部
复位
注 1: 如果 PWRTE 位设定为 ‘0 ’时,仅有 72 ms 延迟。
9.3.6 定时顺序
器件上电时,定时顺序如下所示:在 POR 结束后,首
先启动 PWRT 定时。随后, OST 将被激活。总定时时
间长度根据振荡器配置和 PWRTE
变化。 例如,在 EC 模式中,如果 PWRTE 位被擦除
(PWRT 被禁止),此时根本将不产生任何定时延迟。
图 9-7 、 图 9-8 和图 9-9 显示了定时延时的顺序。
由于延时的发生来自于 POR 脉冲,如果 MCLR
长时间内保持低电平,延迟将终止。将 MCLR
电平将使延时定时立即开始执行(见 图 9-8 )。这对于
测试或同时进行多个 PIC16F630/676 器件的同步是非
常有用的。
表 9-6 显示了一些特殊功能寄存器复位时的状态,而
表 9-7 给出了所有寄存器在复位时的状态值。
位的状态不同而有所
在足够
拉高至高
VBOD
(1)
72 ms
9.3.7 电源控制 (PCON)状态寄存器
电源控制 / 状态寄存器 PCON (地址为 8Eh )具有两个
寄存器位。
Bit0 为 BOD
时是不确定的。随后用户必须对其置 1 ,并检测随后的
复位中 BOD
欠压检测复位。 BOD
检测电路被关闭 (通过设定配置字中的 BODEN 位 =
0), BOD
Bit1 为 POR
在其他情况下不受影响。在上电复位后,用户必须把该
位置 1 。在随后的复位中,如果 POR = 0 ,则表示发生
过上电复位 (即, VDD 可能曾经处于过低的状态)。
(欠压锁定),该位状态在器件上电复位
是否为 0 ,如果 BOD = 0 ,则表示发生过
状态位是 “无关”位,如果欠压
状态位是不可预知的。
(上电复位),该位在上电复位时被清零,
2004 Microchip Technology Inc. DS40039C_CN 第 59 页
PIC16F630/676
表 9-3: 不同情况下的延时
振荡器配置
PWRTE
上电复位 欠压检测
= 0 PWRTE = 1 PWRTE = 0 PWRTE = 1
从休眠模式唤
醒
XT, HS, LP TPWRT +
OSC
1024•T
RC, EC, INTOSC TPWRT —TPWRT ——
1024•TOSC T PWRT +
OSC
1024•T
1024•TOSC 1024•TOSC
表 9-4: 状态 /PCON 位及其含意
POR BOD TO PD
0u11上电复位
1011欠压锁定检测
uu0uWDT 复位
uu00WDT 唤醒
uuuu正常操作中的 MCLR
uu10休眠模式中的 MCLR 复位
图注: u = 未发生变化, x = 未知值
复位
表 9-5: 与欠压锁定相关的寄存器汇总
地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
03h STATUS IRP RP1 RPO TO PD Z DC C 0001 1xxx 000q quuu
8Eh PCON — — — — — —P O RBOD ---- --0x ---- --uq
图注: u = 不变, x = 未知值, - = 未用,读作 0, q = 该位状态取决于当前条件。
注 1: 其它 (非上电复位)复位包括正常操作中的 MCLR
复位、欠压检测以及看门狗定时器复位。
POR、
BOD 复位值
其他所有复
(1)
位值
表 9-6: 特殊寄存器的初始化条件
条件 程序计数器 状态寄存器
上电复位 000h 0001 1xxx ---- --0x
正常操作中的 MCLR
休眠模式中的 MCLR
WDT 复位 000h 0000 uuuu ---- --uu
WDT 唤醒 PC + 1 uuu0 0uuu ---- --uu
欠压检测 000h 0001 1uuu ---- --10
从休眠模式中断唤醒 PC + 1
图注: u = 不变, x = 未知值, - = 未用,读作 0。
注 1: 当器件从休眠模式被中断唤醒且全局使能位 GIE 置 1 时, PC 指针在执行 PC+1 后指向中断矢量 (0004h )。
DS40039C_CN 第 60 页 2004 Microchip Technology Inc.
复位 000h 000u uuuu ---- --uu
复位 000h 0001 0uuu ---- --uu
(1)
uuu1 0uuu ---- --uu
PCON
寄存器
PIC16F630/676
表 9-7: 寄存器的初始化条件
•MCLR 复位
寄存器 地址 上电复位
•WDT复位
• 欠压检测
(1)
W—xxxx xxxx uuuu uuuu uuuu uuuu
INDF 00h/80h — — —
TMR0 01h xxxx xxxx uuuu uuuu uuuu uuuu
PCL 02h/82h 0000 0000 0000 0000 PC + 1
STATUS 03h/83h 0001 1xxx 000q quuu
(4)
FSR 04h/84h xxxx xxxx uuuu uuuu uuuu uuuu
PORTA 05h --xx xxxx --uu uuuu --uu uuuu
PORTC 07h --xx xxxx --uu uuuu --uu uuuu
PCLATH 0Ah/8Ah ---0 0000 ---0 0000 ---u uuuu
INTCON 0Bh/8Bh 0000 0000 0000 000u uuuu uuqq
PIR1 0Ch 00-- 0--0 00-- 0--0 qq-- q--q
T1CON 10h -000 0000 -uuu uuuu -uuu uuuu
CMCON 19h -0-0 0000 -0-0 0000 -u-u uuuu
ADRESH 1Eh xxxx xxxx uuuu uuuu uuuu uuuu
ADCON0 1Fh 00-0 0000 00-0 0000 uu-u uuuu
OPTION_REG 81h 1111 1111 1111 1111 uuuu uuuu
TRISA 85h --11 1111 --11 1111 --uu uuuu
TRISC 87h --11 1111 --11 1111 --uu uuuu
PIE1 8Ch 00-- 0--0 00-- 0--0 uu-- u--u
PCON 8Eh ---- --0x ---- --uu
(1,6)
OSCCAL 90h 1000 00-- 1000 00-- uuuu uu--
ANSEL 91h 1111 1111 1111 1111 uuuu uuuu
WPUA 95h --11 -111 --11 -111 uuuu uuuu
IOCA 96h --00 0000 --00 0000 --uu uuuu
VRCON 99h 0-0- 0000 0-0- 0000 u-u- uuuu
EEDATA 9Ah 0000 0000 0000 0000 uuuu uuuu
EEADR 9Bh -000 0000 -000 0000 -uuu uuuu
EECON1 9Ch ---- x000 ---- q000 ---- uuuu
EECON2 9Dh ---- ---- ---- ---- ---- ----
ADRESL 9Eh xxxx xxxx uuuu uuuu uuuu uuuu
ADCON1 9Fh -000 ---- -000 ---- -uuu ----
图注: u = 不变, x = 未知值, - = 未用,读作 0, q = 该位状态取决于当前条件。
注 1: 如果 V
DD 过低,将激活上电复位,且寄存器将受到不同的影响。
2: INTCON 和 / 或 PIR1 寄存器中的一个或多个位将受到影响 (以导致器件唤醒)。
3: 当器件从休眠模式被中断唤醒且全局使能位 GIE 置 1 时, PC 指针将指向中断矢量 ( 0004h)。
4: 有关特定条件下的复位值可参见表 9-6 。
5: 如果唤醒是由数据 EEPROM 写操作结束引起的,则 Bit 7 = 1 ;如果由 A/D 转换结束引起,则 Bit 6 = 1 ;
如果由比较器输入变化引起,则 Bit 3 = 1 ;或由 Timer1 计数溢出引起,则 Bit 0 = 1 。 如果唤醒由其它中断
产生,则这些位的状态为 = u 。
6: 如果复位由欠压锁定造成,则 Bit 0 = 0 ,其它所有复位将导致 Bit 0 = u 。
• 中断唤醒
•WDT超时唤醒
uuuq quuu
---- --uu
(3)
(4)
(2)
(2,5)
2004 Microchip Technology Inc. DS40039C_CN 第 61 页
PIC16F630/676
图 9-7: 上电复位时的定时顺序 ( MCLR 未接至 VDD ):情形 1
VDD
MCLR
内部上电复位
TPWRT
PWRT 超时
OST 超时
内部复位
图 9-8: 上电复位时的定时顺序 (MCLR
VDD
MCLR
内部上电复位
PWRT 定时延时
OST 定时延时
内部复位
未接至 V DD ):情形 2
PWRT
T
TOST
TOST
图 9-9: 上电复位时的定时顺序 (MCLR
VDD
MCLR
内部上电复位
PWRT 定时延时
OST 定时延时
内部复位
DS40039C_CN 第 62 页 2004 Microchip Technology Inc.
接至 V DD ):
TPWRT
TOST
PIC16F630/676
9.4 中断
PIC16F630/676 具有 7 个中断源:
• 外部 RA2/INT 中断
•TMR0溢出中断
•PORTA 电平变化中断
• 比较器中断
•A/D中断 (仅限 PIC16F676)
•TMR1 溢出中断
• EEPROM 数据写中断
中断控制寄存器 (INTCON) 以及外设中断寄存器 (PIR)
使用标志位记录各种中断请求。INTCON 寄存器还包括
各种中断的使能控制位以及全局中断使能位。
全局中断使能位 GIE (INTCON<7>)将 使 能 ( 置 1 时)
所有未被屏蔽的中断,或禁止 (清零时)所有中断。各
种中断可以通过设置 INTCON 和 PIE 寄存器中相应的使
能位来控制是否禁止该中断。 器件复位时, GIE 将被清
除。
RETFIE 将从中断服务程序返回,并使 GIE 位置
指令
1,以重新使能未被屏蔽的中断。
INTCON 寄存器中包含以下中断标志位:
•INT 引脚中断
•PORTA 电平变化中断
•TMR0 溢出中断
外设中断标志位位于特殊功能寄存器 PIR1 中。相应的
中断使能位位于特殊功能寄存器 PIE1 中。
PIR 寄存器包含了以下中断标志位:
• EEPROM 数据写中断
•A/D 中断
• 比较器中断
• 定时器 1 溢出中断
当中断被响应时:
•GIE位将被清零以禁止其它中断
• 返回地址被压入堆栈
• 中断矢量 0004h 将被载入 PC
一旦进入中断服务程序,即可通过查询中断标志位确定
中断源。在重新使能中断之前,应在软件中将中断标志
位清除以避免 RA2/INT 反复中断。
对于外部中断事件,例如 INT 引脚中断或 PORTA 电平
变化中断,中断响应延迟为 3 或 4 个指令周期。具体的
时间延迟取决于中断事件何时发生(见图 9-11)。无论
是单周期还是双周期指令,延迟时间都是一样的。 一旦
进入中断服务程序,即可通过查询中断标志位确定中断
源。在重新使能中断之前,应在软件中将中断标志位清
除以避免造成重复中断请求。
注 1: 无论相应的中断屏蔽位或 GIE 位的状态
为何,中断标志位都将被置 1 。
2: 当执行一条清除GIE 位的指令后,任何在
下一周期等待响应的中断都将被忽略。
当 GIE 位重新置 1 时,被忽略的中断请
求将继续等待被响应。
2004 Microchip Technology Inc. DS40039C_CN 第 63 页
PIC16F630/676
图 9-10: 中断逻辑
IOCA-RA0
IOCA0
IOCA-RA1
IOCA1
IOCA-RA2
IOCA2
IOCA-RA3
IOCA3
IOCA-RA4
IOCA4
IOCA-RA5
IOCA5
TMR1IF
TMR1IE
CMIF
CMIE
ADIF
ADIE
EEIF
EEIE
注 1: 仅限 PIC16F676.
(1)
T0IF
T0IE
INTF
INTE
RAIF
RAIE
PEIE
GIE
唤醒(如果处于休眠模式)
向 CPU 进行中断请求
DS40039C_CN 第 64 页 2004 Microchip Technology Inc.
PIC16F630/676
9.4.1 RA2/INT 中断
RA2/INT 引脚上的外部中断采用边沿触发方式; 如果
INTEDG 位( OPTION<6>)置 1,则采用上升沿触发。
如果 INTEDG 位被清零,则采用下降沿触发。当 RA2/
INT 引脚上检测到有效边沿时, INTF 位
(INTCON<1> )将被置 1 。通过将 INTE 控制位
(INTCON<4> )清零,可禁止该中断。在重新使能该中
断之前, 必须在中断服务程序中对 INTF 位进行软件清
零。如果 INTE 位在进入休眠模式之前被置 1 ,则可利
用 RA2/INT 中断将处理器从休眠状态唤醒。GIE 位的状
态决定了处理器在唤醒后是否转入中断矢量。休眠模式
的细节请参见第 9.7 节。有关 RA2/INT 中断唤醒的时序
请参见图 9-13 。
注: 若要将模拟通道配置为数字输入引脚,必须
对 ANSEL 9Fh) 和 CMCON (19h) 寄存器进
行初始化。对配置为模拟输入的引脚将读作
‘0 ’。ANSEL 寄存器仅在 PIC16F676 中定
义。
9.4.2 TMR0 中断
TMR0 寄存器发生溢出时 (FFhÆ00h),T0IF
(INTCON<2> )位将会被置 1 。通过将 T0IE
(INTCON<5> ) 位置 1/ 清零可使能 / 禁止该中断。有关
Timer0 模块的操作,请参见第 4.0章。
9.4.3 PORTA 中断
PORTA 输入电平变化将使 RAIF (INTCON<0>)位 置
1。通过设置/清除 RAIE ( INTCON<3>)位,可使能
/禁止该中断。且该端口各引脚可通过 IOCA 寄存器来
进行配置。
注: 如果在读操作执行过程中 I/O 引脚电平发生
变化 ( Q2 周期开始),则 RAIF 中断标志
位可能不会被置 1。
9.4.4 比较器中断
有关比较器中断的说明请参见第 6.9 节。
9.4.5 A/D 转换器中断
在转换结束之后, ADIF 标志位 (PIR<6> )将被置 1 。
通过将 ADIE (PIE<6> )位 置 1 或清零可以使能 / 禁止
该中断。有关 A/D 转换器中断操作的内容,请参见第7.0
章 。
图 9-11: INT 引脚中断时序
Q2 Q1 Q3 Q4 Q2 Q1 Q3 Q4 Q2 Q1 Q3 Q4 Q2 Q1 Q3 Q4 Q2 Q1 Q3 Q4
OSC1
CLKOUT
INT 引脚
INTF 标志
( INTCON<1>)
GIE 位
(INTCON<7> )
指令流
PC
取指令
执行指令
注 1: 在此处对 INTF 标志位进行采样 (每 个 Q1)。
3
2: 异步中断延迟 = 3-4 T
迟时间都是相同的。
3: CLKOUT 仅在 RC 振荡模式有效。
4: 有关 INT 脉冲的最小宽度,参见 AC 技术参数。
5: 在 Q4-Q1 周期中的任何时候, INTF 被使能置 1 。
4
1
PC
Inst (PC)
Inst (PC-1)
1
5
PC+1
Inst (PC+1)
Inst (PC)
CY。同步延迟 = 3 TCY ,其中 TCY = 指令周期时间。无论是 Inst (PC) 为单周期或 2 周期指令,延
中断延迟
PC+1
哑周期
2
0004h
—
Inst (0004h)
哑周期
0005h
Inst (0005h)
Inst (0004h)
2004 Microchip Technology Inc. DS40039C_CN 第 65 页
PIC16F630/676
表 9-8: 中断寄存器汇总
地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh, 8Bh INTCON GIE PEIE T0IE INTE RAIE T0IF INTF RAIF 0000 0000 0000 000u
0Ch PIR1
8Ch PIE1 EEIE ADIE
其中 :x = 未知值, u = 未发生变化, - = 未用,读作 '0', q = 该位状态取决于当前条件。
中断模块未使用阴影表示的寄存器位。
EEIF ADIF — —C M I F— —T M R 1 I F00-- 0--0 00-- 0--0
— —C M I E— —T M R 1 I E00-- 0--0 00-- 0--0
POR , BOD
复位值
所有其他复
位值
9.5 中断现场保护
在中断执行过程中,只有 PC 返回值被保存在堆栈中。
通常,用户可能希望在中断时对一些关键寄存器的内容
进行保存 (例如, W 寄存器和状态寄存器)。 这些都
需通过软件方式实现。
例 9-2 显示了状态寄存器和 W 寄存器的保存和恢复例
程。 用户寄存器 W_TEMP 必须在两个存储区都进行定
义,并且被定义在距每个存储区基准地址的偏移量都一
样的地址上 (即, W_TEMP 在存储区 0 中定义的地址
为 0x20 ,则它在存储区 1 的地址必须定义为 0xA0 )。
用户寄存器 STATUS_TEMP 必须定义在存储区 0 中。
例 9-2 执行了以下操作:
• 保存 W 寄存器
• 将状态寄存器内容保存在存储区 0 中
• 执行 ISR 程序
• 恢复状态寄存器的内容 (以及存储区选择位寄存
器)
• 恢复 W 寄存器的内容
例 9-2: 保存状态寄存器和 W 寄存器
MOVWF W_TEMP ;copy W to temp register,
SWAPF STATUS,W ;swap status to be saved into W
BCF STATUS,RP0 ;change to bank 0 regardless of
MOVWF STATUS_TEMP ;save status to bank 0 register
:
:(ISR)
:
SWAPF STATUS_TEMP,W;swap STATUS_TEMP register into
MOVWF STATUS ;move W into STATUS register
SWAPF W_TEMP,F ;swap W_TEMP
SWAPF W_TEMP,W ;swap W_TEMP into W
到 RAM
could be in either bank
current bank
W, sets bank to original state
9.6 看门狗定时器 (WDT )
看门狗定时器是一个片内独立运行的 RC 振荡器 ,因 此
它无需外接任何器件。该 RC 振荡器独立于接在 CLKIN
引脚上的外部 RC 振荡器。 这意味着,即使器件 OSC1
和 OSC2 引脚上的时钟停止 (例如,由于执行了
SLEEP 指令),WDT 仍将运行。在正常运行时,WDT
超时事件将产生一次器件复位。如果器件处于休眠模
式,WDT 超时事件将唤醒器件并使其继续正常操作。通
过将配置位WDTE 清零,可永久关闭WDT (第9.1 节)。
9.6.1 WDT 周期
WDT 标称的超时周期为 18 ms (不带预分频器)。由
于温度、 V
有所不同 (见 DC 特性参数)。通过软件控制方式写入
OPTION 寄存器,可选择预分频器的分频比。如果期望
较长的超时周期,分配给 WDT 的预分频器的分频比可
最高选择为 1:128 。这样,可实现最长达 2.3 秒的超时
周期。
如果预分频器被分配给 WDT ,
指令将对
现超时导致器件复位。
当看门狗定时器出现超时时,状态寄存器中的 TO
被清零。
9.6.2 WDT 编程时的注意事项
应考虑到在最恶劣的条件下(即 VDD = 最小值,温度 =
最大值,WDT 分频器的分频比最大), WDT 发生超时
的时间长达几秒。
DD 和工艺的变化,不同器件之间的超时周期
CLRWDT 和 SLEEP
WDT 和预分频器进行清零,并防止 WDT 出
位将
DS40039C_CN 第 66 页 2004 Microchip Technology Inc.
图 9-12: 看门狗定时器框图
CLKOUT
(= FOSC/4)
0
1
T0CKI
引脚
T0SE
T0CS
0
1
8 位
预分频器
PIC16F630/676
数据总线
1
SYNC 2
周期
0
PSA
8
TMR0
溢出时设置标志位 T0IF
PSA
看门狗定时器
WDTE
8
PS0 - PS2
1
0
PSA
WDT
超时
注 1: T0SE 、 T0CS、 PSA、 PS0-PS2 为选择寄存器中的寄存器位。
表 9-9: 看门狗定时器寄存器汇总
地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
81h OPTION_REG
2007h Config. bits CP BODEN MCLRE PWRTE WDTE F0SC2 F0SC1 F0SC0 uuuu uuuu uuuu uuuu
图注: u = 不变,看门狗定时器未使用阴影表示的寄存器位。
RAPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
POR 、 BOD
复位值
其他所有复
位值
2004 Microchip Technology Inc. DS40039C_CN 第 67 页
PIC16F630/676
9.7 休眠模式 ( SLEEP)
通过执行一条 SLEEP 指令即可进入休眠模式。
如果看门狗定时器被使能:
•WDT 将被清零,但仍将继续运行。
• 状态寄存器中的 PD
位将置 1
•TO
• 振荡器驱动器关闭
• I/O 端口仍将保持 SLEEP 执行前的状态 (驱动高、
低电平或高阻状态)。
为使这种方式下的电流消耗降至最低,应把所有 I/O 引
脚接至 V
DD 或 V SS,以确保没有外部电路从 I/O 引脚引
出电流,同时比较器和 CV
阻输入状态的 I/O 引脚外部拉至高电平或低电平以避免
悬空输入造成的开关电流消耗。 为使电流消耗降至最
低,T0CKI 输入引脚也应被接至 V
内 PORTA 上拉造成的消耗。
引脚必须处于逻辑高电平 (VIHMC )。
MCLR
注: 注意,由 WDT 超时产生的复位不会将
MCLR
9.7.1 从休眠模式唤醒
通过以下事件可使器件从休眠模式唤醒:
1. MCLR
2. 看门狗定时器唤醒 (如果 WDT 已被使能)
3. 来自 RA2/INT 引脚的中断, PORTA 电平变化中
引脚上输入的外部复位
断或外设中断。
位将清零
REF 也应被关闭。 应将处于高
DD 或 V SS。应考虑片
引脚驱动至低电平。
第一类事件将导致器件复位。后面两类事件可视为是程
序继续运行。可通过状态寄存器中的 TO
定器件复位的原因。上电时 PD
位将被置 1,而当器件
和 PD 位来确
从休眠模式唤醒时,该位将被清零。TO 位则在 WDT 唤
醒发生时被清零。
当 SLEEP 指令执行时,下一条指令 (PC + 1 )将被预
先取出。为使器件能通过某一中断事件而唤醒,必须设
置(使能)相应的中断使能位。唤醒与 GIE 位的状态无
关。如果 GIE 位被清零 (禁止) ,器件将继续执行
SLEEP 指令后面的指令。如果 GIE 位被置 1 (使能),
器件将执行 SLEEP 指令后面的指令,然后跳转到中断
地址(0004h )。如果不希望执行 SLEEP 指令后面的指
令,那么在 SLEEP 指令后必须有一条 NOP 指令。
注: 如果全局中断被禁止 (GIE 被清零),但任
一中断源的中断使能位和相应的中断标志
位都被置 1 时,器件仍将立即从休眠状态唤
醒。 SLEEP 指令将被完全执行。
当器件从休眠模式唤醒时,无论唤醒原因为何,WDT 都
将被清零。
图 9-13: 通过中断从休眠模式唤醒
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1
OSC1
(4)
CLKOUT
INT 引脚
INTF 标志
( INTCON<1>)
GIE 位
(INTCON<7> )
指令流
PC
取指令
执行指令
注 1: 假设在 XT 、 HS 或 LP 振荡模式。
2: T
3: 假设 GIE = ‘1 ’。这种情况下,处理器在唤醒后将跳转至中断服务程序。如果 GIE = ‘0 ’,将在这一行继续执行。
4: 在 XT、 HS、 LP 或 EC 振荡模式中, CLKOUT 无效。此处所示的 CLKOUT 仅作为定时参考。
PC PC+1 PC+2
Inst(PC) = SLEEP
Inst(PC - 1)
OST = 1024TOSC (图中未按比例画出)。 RC 振荡模式中的延迟时间约为 1 ms。 INTOSC 模式中从休眠状态唤醒的延迟情况请参见
第 12 章 。
Inst(PC + 1)
休眠
Processor in
SLEEP
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
(2)
OST
T
中断延迟
( 注 3)
PC+2
Inst(PC + 2)
Inst(PC + 1)
PC + 2 0004h 0005h
Inst(0004h)
伪周期
伪周期
Inst(0005h)
Inst(0004h)
DS40039C_CN 第 68 页 2004 Microchip Technology Inc.
PIC16F630/676
9.8 代码保护
如果没有设定代码保护位, 校验时可将片内程序存储器
中的内容读出。
注: 当代码保护功能关闭时,所有数据
EEPROM 和 FLASH 程序存储器都将被擦
除。 INTOSC 校验数据也将被擦除。更多信
息,参见 PIC16F630/676 编程技术说明 。
9.9 ID 地址单元
器件中有 4 个存储器单元(2000h - 2003h )被指定作
为 ID 地址单元,用户可在其中存放校验求和和或其他
代码识别数。正常运行时不能对这些地址单元进行访
问,但在编程 / 校验时这些地址单元是可读写的。 只可
使用 ID 地址单元中的低 7 位。
9.10 在线串行编程
在最终应用电路中可对PIC16F630/676 单片机进行串行
编程。实现上述功能仅需要一根时钟线、一根数据线以
及以下三根线:
• 电源线
• 接地线
• 编程电压线
这使得用户可以使用未编程的器件来制造电路板,并在
产品发货前才对单片机进行编程。这样还可使用最新固
件或用户定制的固件进行编程。
通过将 RA0 和 RA1 引脚保持为低电平,同时将 MCLR
(VPP )引脚电平从 VIL 提升为 VIHH ( 见 编程技术说
明),可以使器件进入编程 / 校验模式。此时 RA0 为编
程数据引脚而RA1 为编程时钟引脚。 在该模式下, RA0
和 RA1 皆为施密特触发器输入引脚。
复位后,将器件置于编程 / 校验模式,程序计数器(PC )
处于地址单元 00h 。随后向器件发出一条长度为 6 位的
命令。根据具体命令是装载或读取,可执行向器件提供
14 位程序数据,或是从器件取出 14 位程序数据。有关
串行编程的具体细节,请参见 PIC16F630/676 编程技
术说明。
图 9-14 给出了典型的在线串行编程连接图。
图 9-14: 典型在线串行编程连接示意图
至正常
至正常
连接
连接
PIC16F630/676
DD
V
VSS
RA3/MCLR/VPP
RA1
RA0
DD
V
外部
连接器
信号
数据 I/O
+5V
0V
V
CLK
PP
9.11 在线调试器
由于在线调试需要占用时钟、数据以及 MCLR 引脚, 实
际中不采用 MPLAB ® ICD 2 进行 14 引脚器件的开发。
一款特殊的 20 引脚 PIC16F676-ICD 器件可与 MPLAB
ICD 2 联用, 以提供单独的时钟、数据以及 MCLR
脚,从而使用户可以正常使用器件的引脚。
该特殊 ICD 器件安装在 ICD 主机的顶部,其信号通过导
线连接到 MPLAB ICD 2 连接器。 主机的底部是一个 14
引脚的插座,可以通过 14 引脚连接器插入用户目标板。
当 PIC16F676-ICD 器件的 ICD
引脚为低电平时,在线
调试器将被使能。该功能与 MPLAB ICD 2 联用时可使
用户方便地进行调试。 当单片机使能该特性时,器件某
些引脚将不能正常使用。 表 9-10 显示了后台在线调试
器所占用的资源。
表 9-10: 调试器占用资源
I/O 引脚 ICDCLK 、 ICDDATA
堆栈 1 级
程序存储器 地址 0h 的存储区必须存
放 NOP 指令
300h - 3FEh
欲获取更多信息,请参见 14 引脚 MPLAB ICD 2 主机信
息表 (DS51299 ) 。该资料可从 Microchip 网 站
(www.microchip.com )获得。
引
2004 Microchip Technology Inc. DS40039C_CN 第 69 页
PIC16F630/676
注 :
DS40039C_CN 第 70 页 2004 Microchip Technology Inc.
PIC16F630/676
10.0 指令系统概述
PIC16F630/676 指令集中的指令设置基本上是互不相
关的,指令集包括以下三种基本类型:
• 字节操作类指令
• 位操作类指令
• 立即数与控制操作类指令
每一条 PIC16 指令字长 14 位,由说明指令类型的操作
码和进一步说明指令操作的一个或多个操作数组成。
图 10-1 中显示了每种指令类型的指令格式,而表 10-1
则是对不同操作码字段的汇总。
TM
表 10-2 列出了所有可由MPASM
有关每一指令的完整说明还可参见《PICmicro ® 中档单
片机系列参考手册》(DS33023_CN )。
对于字节操作指令,‘f ’是文件寄存器的指定符,而
‘d ’是目的寄存器的指定符。文件寄存器指定符指定了
该指令使用的文件寄存器。
目的寄存器指定符指定了指令操作结果存放的地址。如
果‘d’为零,结果将存放在 W 寄存器中。如果 ‘d’
为 1,结果将存放在指令所指定的文件寄存器中。
对于位操作指令,‘b ’是位段指定符,它选择受到操作
影响的位,而 ‘f ’表示该位所处的文件寄存器地址。
对于立即数和控制操作指令, ‘k ’表示一个 8 位或 11
位常数或立即数。
每一指令由 4 个振荡器周期组成。振荡器频率为 4MHz
时,一条指令通常的执行时间为 1 µs 。 除条件测试为真
或执行结果将改变程序计数器值的指令以外,所有其它
指令均为单周期指令。对于条件测试为真或执行结果将
改变程序计数器值的指令,其执行时间为两个指令周
期,且在第二个指令周期内执行一条 NOP 指令。
注: 为保持与未来产品的向上兼容性, 不要使
用 OPTION 和 TRIS 指令。
所有的示例均使用‘0xhh ’的格式来表示十六进制数,
其中 ‘h ’表示一个十六进制数。
10.1 读 - 修改 - 写操作
任何将文件寄存器地址作为指令的一部分的指令均产生
一个读-修改-写 (R - M - W )操作。即对该寄存
器进行读操作,随后对数据进行修改,并根据该指令或
目的指示标号 ‘d ’的状态来存放结果。即使该指令对
寄存器进行写入操作,仍将执行对该寄存器的读操作。
例如, CLRF PORTA 指令将对 PORTA 进行读操作,并
清除所有数据位,随后将结果写回 PORTA。这个例子
将可能意外清除将 RAIF 标志位置 1 所产生的条件。
汇编器识别的指令。
表 10-1: 操作码字段说明
字段 说明
f
寄存器地址 (0x00 至 0x7F)
W
工作寄存器 ( 累加器 )
b
某 8 位寄存器 f 中的位地址
k
立即数、常量或标号
x
表示不必关心的位 (= 0 或 1) 。
汇编器生成代码时,将默认 x = 0 。建议使用
这种形式以与所有 Microchip 软件工具兼容。
d
目标寄存器选择; d = 0:结果存于 W,
d = 1:结果存于文件寄存器 f 中。
缺省值为 d = 1。
PC
程序计数器
TO
超时标志位
PD
掉电标志位
图 10-1: 指令的一般格式
字节操作类指令文件寄存器的操作
13 8 7 6 0
操作码 d f ( 文件寄存器 #)
d = 0,结果存于 W
d = 1,结果存于 f
f = 7 位文件寄存器地址
位操作指令文件寄存器的操作
13 10 9 7 6 0
操作码 b (BIT #) f ( 文件寄存器 #)
b = 3 位位地址
f = 7 位文件寄存器地址
立即数和控制类指令的操作
一般指令
13 8 7 0
操作码 k ( 立即数 )
k = 8 位立即数
仅限 CALL 和 GOTO 指令
13 11 10 0
操作码 k ( 立即数 )
k = 11 位立即数
2004 Microchip Technology Inc. DS40039C_CN 第 71 页
PIC16F630/676
表 10-2: PIC16F630/676 指令集
助记符,
操作数
将 W 和 f 相加
ADDWF
ANDWF
CLRF
CLRW
COMF
DECF
DECFSZ
INCF
INCFSZ
IORWF
MOVF
MOVWF
NOP
RLF
RRF
SUBWF
SWAPF
XORWF
BCF
BSF
BTFSC
BTFSS
ADDLW
ANDLW
CALL
CLRWDT
GOTO
IORLW
MOVLW
RETFIE
RETLW
RETURN
SLEEP
SUBLW
XORLW
注 1: 当 I/O 寄存器作为自身的函数被修改时 (例如, MOVF
f, d
W 和 f 与操作
f, d
对 f 清零
f
对 W 清零
-
求 f 的补码
f, d
f 减一操作
f, d
f 减一操作,若为 0,间跳
f, d
f 加一操作
f, d
f 加一操作,若为 0,间跳
f, d
W 与 f 同或
f, d
传送 f
f, d
传送 W 至 f
f
空操作
-
f 寄存器带进位位左循环
f, d
f 寄存器带进位位右循环
f, d
f 减 W
f, d
f 半字节交换
f, d
W 与 f 异或
f, d
将 f 中的位 b 清零
f, b
将 f 中的位 b 置 1
f, b
f, b
测试 f 中的位 b,为 0,间跳
f, b
测试 f 中的位 b ,为 1 ,间跳
立即数和 W 相加
k
立即数和 W 相与
k
调用子程序
k
看门狗定时器清零
-
跳转
k
立即数与 W 同或
k
将立即数传送至 W
k
中断返回
-
立即数送 W 子程序返回
k
子程序返回
-
进入休眠模式
-
立即数减 W
k
立即数与 W 异或
k
入的某引脚,其数据锁存器为 ‘ 1’,被外部器件驱动为低电平时,则写回的数据值将为 ‘ 0’。
2: 如果该指令的操作针对 TMR0 寄存器 (且,指令中 d = 1 ),当预分频器分配给 Timer0 模块时,则将使预分频器清零。
3: 如果程序计数器 (PC )被修改或条件测试结果为真,则该指令的执行需要两个周期。第二个周期将执行一条 NOP 指令。
说明 周期
字节操作类指令
1
1
1
1
1
1
1(2)
1
1(2)
1
1
1
1
1
1
1
1
1
位操作类指令
1
1
1 (2)
1 (2)
立即数和控制操作类指令
1
1
2
1
2
1
1
2
2
2
1
1
1
PORTA, 1),使用的值将是当前该引脚上的值。例如,配置为输
14 位操作码
MSb LSb
ffff
dfff
0111
00
ffff
dfff
0101
00
ffff
lfff
0001
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
01
01
01
01
11
11
10
00
10
11
11
00
11
00
00
11
11
0001
1001
0011
1011
1010
1111
0100
1000
0000
0000
1101
1100
0010
1110
0110
00bb
01bb
10bb
11bb
111x
1001
0kkk
0000
1kkk
1000
00xx
0000
01xx
0000
0000
110x
1010
0xxx
dfff
dfff
dfff
dfff
dfff
dfff
dfff
lfff
0xx0
dfff
dfff
dfff
dfff
dfff
bfff
bfff
bfff
bfff
kkkk
kkkk
kkkk
0110
kkkk
kkkk
kkkk
0000
kkkk
0000
0110
kkkk
kkkk
xxxx
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
0000
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
kkkk
kkkk
kkkk
0100
kkkk
kkkk
kkkk
1001
kkkk
1000
0011
kkkk
kkkk
影响的状
C,DC,Z
C,DC,Z
C,DC,Z
TO
TO
C,DC,Z
态位
Z
Z
Z
Z
Z
Z
Z
Z
C
C
Z
Z
,PD
Z
,PD
Z
注释
1,2
1,2
2
1,2
1,2
1,2,3
1,2
1,2,3
1,2
1,2
1,2
1,2
1,2
1,2
1,2
1,2
1,2
3
3
注: 有关中档单片机指令集的更多信息,可参见 《 PICmicro® 中档单片机系列参考手册》(DS33023_CN)。
DS40039C_CN 第 72 页 2004 Microchip Technology Inc.
10.2 指令说明
PIC16F630/676
ADDLW 立即数与 W相加
指定符
语法: [
操作数: 0 ≤ k ≤ 255
操作: (W) + k → (W)
影响的状态位: C , DC , Z
说明: W 寄存器中的内容与 8 位立即数
‘k ’相加,结果存入 W 寄存器。
ADDWF W 和 f 寄存器中的内容相加
语法: [
操作数: 0 ≤ f ≤ 127
操作: (W) + (f) → ( 目的寄存器 )
影响的状态位: C , DC , Z
说明: 将 W 寄存器的内容与 ‘f ’寄存器
指定符
d ∈ [0,1]
内容相加。如果 ‘d ’为 0 ,则结
果将存放在 W 寄存器。如果 ‘d ’
为 1 ,则结果将存回寄存器 ‘f ’。
] ADDLW k
] ADDWF f,d
BCF 将 f中的位 b 清零
指定符
指定符
] BCF f,b
] BSF f,b
语法: [
操作数: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
操作: 0 → (f<b>)
影响的状态位: 无
说明: ‘f ’寄存器中的位 ‘b ’将被清
零 。
BSF 将 f 中的位 b 置 1
语法: [
操作数: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
操作: 1 → (f<b>)
影响的状态位: 无
说明: 对 ‘f ’寄存器中的位 ‘b ’置
1 。
ANDLW 立即数与 W 相与
指定符
语法: [
操作数: 0 ≤ k ≤ 255
操作: (W) . 与 . (k) → (W)
影响的状态位: Z
说明: W 寄存器中的内容与 8 位立即数
‘k ’相与,结果存入 W 寄存器。
ANDWF W 与寄存器 f 内容相与
语法: [
操作数: 0 ≤ f ≤ 127
操作: (W) . 与 . (f) → ( 目的寄存器 )
影响的状态位: Z
说明: 将 W 寄存器的内容与 'f' 寄存器内
指定符
d ∈ [0,1]
容相与。如果 ‘d ’为 0 ,则结果
将存放在 W 寄存器。如果 ‘d ’
为 1 ,则结果将存回寄存器 ‘f ’。
] ANDLW k
] ANDWF f,d
BTFSS
语法: [
操作数: 0 ≤ f ≤ 127
操作: 如果 (f<b>) = 1 ,则间跳
影响的状态位: 无
说明: 如果寄存器 ‘f ’中的位 ‘b ’ 为
BTFSC
语法: [
操作数: 0 ≤ f ≤ 127
操作: 如果 (f<b>) = 0 ,则间跳
影响的状态位: 无
说明: 如果 'f' 寄存器中的位 ‘b ’为 1 ,
测试 f 中的位 b ,为 1 ,间跳
指定符
] BTFSS f,b
0 ≤ b < 7
0,则继续执行下一条指令;如果
位‘b’为 1,则将放弃下一条指
令,代之执行的是一条 NOP 指令。
因此该指令为双周期指令。
测试 f 中的位 b ,为 0 ,间跳
指定符
] BTFSC f,b
0 ≤ b ≤ 7
则继续执行下一条指令;如果 'f' 寄
存器中的位 ‘b ’为 0 ,则放弃下
一条指令,代之执行的是一条 NOP
指令。因此该指令为 2 周期指令。
2004 Microchip Technology Inc. DS40039C_CN 第 73 页
PIC16F630/676
CALL
语法: [
操作数: 0 ≤ k ≤ 2047
操作: (PC)+ 1 → TOS ,
影响的状态位: 无
说明: 调用子程序。首先,返回的地址
CLRF 对 f 清零
语法: [
操作数: 0 ≤ f ≤ 127
操作: 00h → (f)
影响的状态位: Z
说明: 寄存器 ‘f ’中的内容被清零,且
调用子程序
指定符
k → PC<10:0>,
(PCLATH<4:3>) → PC<12:11>
值 (PC+1) 被压入堆栈。 11 位直
接寻址地址被载入 PC 中的位
<10:0>。 PC 中的高位值从
PCLATH. 载入。 CALL 是一个双周
期指令。
1 → Z
标志位 Z 被置 1 。
指定符
] CALL k
] CLRF f
CLRWDT
语法: [
操作数: 无
操作: 00h → WDT
影响的状态位: TO, PD
说明: CLRWDT 指令对看门狗定时器进行
COMF 求 f 的补码
语法: [
操作数: 0 ≤ f ≤ 127
操作: (f
影响的状态位: Z
说明: 对 'f' 寄存器中的内容进行求补运
看门狗定时器清零
指定符
] CLRWDT
0 → WDT 预分频器,
1 → TO
1 → PD
复位,同时也对 WDT 的预分频器
进行复位。状态位 TO
1 。
指定符
] COMF f,d
d ∈ [0,1]
) → ( 目的寄存器 )
算。如果 ‘d ’为 0 ,则结果将存
放在 W 寄存器。如果 ‘d ’为 1 ,
则结果将存回寄存器 ‘f ’。
和 PD 被置
CLRW 对 W 清零
指定符
语法: [
操作数: 无
操作: 00h → (W)
1 → Z
影响的状态位: Z
说明: W 寄存器被清零,标志位 Z 被置
1 。
] CLRW
DECF f 减一操作
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f) - 1 → ( 目的寄存器 )
影响的状态位: Z
说明: 对寄存器 ‘f ’中的内容进行减一
操作。如果 ‘d ’为 0 ,则结果将
存放在 W 寄存器。如果 ‘d ’为
1,则结果将存回寄存器 ‘ f’。
] DECF f,d
DS40039C_CN 第 74 页 2004 Microchip Technology Inc.
PIC16F630/676
DECFSZ f 减一操作,若为 0,间跳
指定符
指定符
] DECFSZ f,d
] GOTO k
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f) - 1 → ( 目的寄存器 ) ;
如果结果 = 0 ,则间跳
影响的状态位: 无
说明: 对寄存器 ‘f ’的内容进行减一操
作。如果 ‘d’为 0,则结果将存
放在 W 寄存器。如果 ‘d’为 1,
则结果将存回寄存器 ‘f’。
如果 结果为 1,则继续执行下一条
指令;如果结果为 0,则放弃下一
条指令,代之执行的是一条 NOP
指令。因此该指令为双周期指令。
GOTO
语法: [
操作数: 0 ≤ k ≤ 2047
操作: k → PC<10:0>
影响的状态位: 无
说明: GOTO 指令是一条无条件转移指
无条件跳转
PCLATH<4:3> → PC<12:11>
令。 11 位立即数被载入 PC 的位
<10:0> 中。 PC 的高数据位从
PCLATH<4:3> 位载入。 GOTO为双
周期指令。
INCFSZ f 加一操作,若为 0 ,间跳
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f) + 1 → ( 目的寄存器 ) ;
如果结果 = 0,则间跳
影响的状态位: 无
说明: 将寄存器 ‘f ’中的内容加一。 如
果‘d’为 0,则结果将存放在 W
寄存器。如果 ‘d’为 1,则结果
将存回寄存器 ‘f’。
如果 结果为 1,则继续执行下一条
指令;如果结果为 0,则放弃下一
条指令,代之执行的是一条 NOP
指令。因此该指令为双周期指令。
IORLW 立即数与 W 同或
语法: [
操作数: 0 ≤ k ≤ 255
操作: (W) .OR. k → (W)
影响的状态位: Z
说明:
将寄存器 W 中的内容与 8 位立即
‘k ’进行同或运算。结果存放在
W 寄存器中。
] INCFSZ f,d
指定符
] IORLW k
INCF f 加一操作
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f) + 1 → ( 目的寄存器 )
影响的状态位: Z
说明: 对寄存器 ‘f ’中的内容进行加一
操作。 如果 ‘d’为 0,则结果将
存放在 W 寄存器。如果 ‘d ’为
1 ,则结果将存回寄存器 ‘f ’。
2004 Microchip Technology Inc. DS40039C_CN 第 75 页
] INCF f,d
IORWF W 与 f 同或
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (W) .OR. (f) → ( 目的寄存器 )
影响的状态位: Z
说明: 将 W 寄存器中的内容与寄存器
‘f ’中的内容进行同或运算。如果
‘d ’为 0 ,则结果将存放在 W 寄
存器。如果 ‘d ’为 1 ,则结果将
存回寄存器 ‘f ’。
] IORWF f,d
PIC16F630/676
MOVF 传送 f
语法: [
操作数: 0 ≤ f ≤ 127
操作: (f) → ( 目的寄存器 )
影响的状态位: Z
说明: 将 ‘f’寄存器中的内容传送至目
MOVLW 将立即数传送至 W
语法: [
操作数: 0 ≤ k ≤ 255
操作: k → (W)
影响的状态位: 无
说明: 将 8 位立即数 ‘k ’载入 W 寄存
指定符
] MOVF f,d
d ∈ [0,1]
的寄存器。目的寄存器的选择取决
于 d 的状态。如果 d = 0 ,目的寄
存器为 W 寄存器。如果 d = 1 ,目
的寄存器为文件寄存器 f 。由于该
指令会影响状态标志位 Z ,因此 d
= 1 可用于对文件寄存器进行测试。
指定符
] MOVLW k
器。其他无关的位都将作为 0。
NOP 空操作
语法: [
操作数: 无
操作: 无操作
影响的状态位: 无
说明: 无操作
RETFIE
语法: [
操作数: 无
操作: TOS → PC,
影响的状态位: 无
指定符
中断返回
指定符
1 → GIE
] NOP
] RETFIE
MOVWF 传送 W 至 f
指定符
语法: [
操作数: 0 ≤ f ≤ 127
操作: (W) → (f)
影响的状态位: 无
说明: 将 W 寄存器中的内容传送至 ‘f ’
寄存器。
] MOVWF f
RETLW 立即数送 W 子程序返回
指定符
语法: [
操作数: 0 ≤ k ≤ 255
操作: k → (W);
TOS → PC
影响的状态位: 无
说明: 将 8 位立即数 ‘k ’载入 W 寄存
器。将堆栈顶部的内容弹回程序计
数器 ( 返回地址 )。该指令为双周
期指令。
] RETLW k
DS40039C_CN 第 76 页 2004 Microchip Technology Inc.
PIC16F630/676
RLF f 寄存器带进位位左循环
语法: [
操作数: 0 ≤ f ≤ 127
操作: 参见以下说明
影响的状态位: C
说明: 将寄存器 ‘f’中的内容连同进位
RETURN
语法: [
操作数: 无
操作: TOS → PC
影响的状态位: 无
说明: 从子程序返回。堆栈弹出,将栈顶
指定符
]
d ∈ [0,1]
标志位向左移一位。如果 ‘ d’为
0,则结果将存放在 W 寄存器。如
果‘d’为 1,则结果将存回寄存
器 ‘f ’。
子程序返回
指定符
(TOS) 中的内容载入程序计数器
中。该指令为双周期指令。
RLF f,d
Register f C
] RETURN
SLEEP
语法: [
操作数: 无
操作: 00h → WDT ,
影响的状态位: TO, PD
说明: 掉电状态位 PD 被清零。超时状
SUBLW 立即数减 W
语法: [
操作数: 0 ≤ k ≤ 255
操作: k - (W) → ( W)
影响的状态位: C , DC , Z
说明: 8 位立即数 ‘k ’减去 W 寄存器中
指定符
]S L E E P
0 → WDT 预分频器,
1 → TO
0 → PD
态位 TO 被置 1。看门狗定时器
和它的预分频器被清零。
振荡器停止工作,处理器进入休
眠模式。
指定符
的内容 ( 二进制补码方式 )。结果存
放在 W 寄存器中。
,
] SUBLW k
RRF f 寄存器带进位位右循环
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: 参见以下说明
影响的状态位: C
说明: 将寄存器 ‘f ’中的内容连同进位
标志位向右移一位。如果 ‘d’ 为
0 ,则结果将存放在 W 寄存器。如
果 ‘d ’为 1 ,则结果将存回寄存
器‘f’。
] RRF f,d
Register f C
SUBWF f 减 W
语法: [
指定
符
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f) - (W) → ( 目的寄存器 )
影响的状态位: C, DC, Z
说明: 寄存器 ‘f ’中的内容减去 W 寄存
器中的内容 ( 二进制补码方式 )。如
果‘d’为 0,则结果将存放在 W
寄存器。如果 ‘d ’为 1 ,则结果将
存回寄存器 ‘f ’。
SUBWF f,d
]
2004 Microchip Technology Inc. DS40039C_CN 第 77 页
PIC16F630/676
SWAPF f 半字节交换
指定符
语法: [
操作数: 0 ≤ f ≤ 127
d ∈ [0,1]
操作: (f<3:0>) → ( 目的寄存器 <7:4>),
(f<7:4>) → ( 目的寄存器 <3:0>)
影响的状态位: 无
说明:
XORLW 立即数与 W 异或
语法: [
操作数: 0 ≤ k ≤ 255
操作: (W) .XOR. k → ( W)
影响的状态位: Z
说明: 将 W 寄存器中内容与 8 位立即
寄存器 ‘f ’的高四位和低四位相
互交换。如果 ‘d ’ 为 0,则结果
将存放在 W 寄存器。如果 ‘d ’
为 1 ,则结果将存回寄存器 ‘f ’。
] SWAPFf,d
指定符
] XORLW k
数‘k’进行异或运算。结果存
放在 W 寄存器中。
XORWF W 与 f 异或
语法: [
操作数: 0 ≤ f ≤ 127
操作: (W) .XOR. (f) → ( 目的寄存器 )
影响的状态位: Z
说明: 将 W 寄存器中内容与寄存器 ‘f ’
指定符
d ∈ [0,1]
进行异或运算。 如果 ‘d’ 为 0,
则结果将存放在 W 寄存器。如果
‘d’为 1,则结果将存回寄存器
‘f’。
XORWF f,d
DS40039C_CN 第 78 页 2004 Microchip Technology Inc.
PIC16F630/676
11.0 开发系统
以下软硬件开发工具可用来支持 PICmicro® 单片机:
• 集成开发环境
- MPLAB
• 汇编器 / 编译器 / 连接器
- MPASM
- MPLAB C17 和 MPLAB C18 C 编译器
-MPLINK
MPLIBTM 目标库管理程序
- MPLAB C30 C 编译器
- MPLAB ASM30 汇编器 / 连接器 / 库
• 软件模拟器
- MPLAB SIM 软件模拟器
- MPLAB dsPIC30 软件模拟器
• 仿真器
- MPLAB ICE 2000 在线仿真器
- MPLAB ICE 4000 在线仿真器
• 在线调试器
- MPLAB ICD 2
• 器件编程器
-PRO MATE
-PICSTART
• 低成本演示板
-PICDEM
-PICDEM.net
- PICDEM 2 Plus 演示板
-PICDEM 3 演示板
-PICDEM 17 演示板
- PICDEM 18R 演示板
- PICDEM LIN 演示板
- PICDEM USB 演示板
• 评估套件
-K
-PICDEM MSC
-microID
-CAN
- PowerSmart
- 模拟
EEL OQ
®
IDE 软件
TM
汇编器
TM
目标连接器 /
®
II 通用器件编程器
®
Plus 开发编程器
TM
1 演示板
TM
演示板
®
®
®
11.1 MPLAB 集成开发环境软件包
MPLAB IDE 软件为 8/16 位单片机市场提供了一种前所
未有的易用的软件集成开发平台。 MPLAB IDE 是基于
Winows
®
的应用软件,包括:
• 与调试工具的接口
- 软件模拟器
- 编程器 (单独出售)
- 仿真器 (单独出售)
- 在线调试器 (单独出售)
• 带彩色上下文代码显示的全功能编辑器
• 一个多项目管理器
• 内容可直接编辑的可定制式数据窗口
• 高级源代码调试
• 鼠标变量监视功能
• 丰富的在线帮助
MPLAB IDE 允许用户进行:
• 编辑源文件 (汇编或 C)
• 一触式汇编 (或编译)以及下载至 PICmicro 仿真
器和模拟器等工具 (自动更新所有项目信息)
• 调试用:
- 源文件 (汇编或 C)
- 绝对列表文件 (混合汇编和 C)
- 机器代码
MPLAB IDE 支持在单一的开发示例中使用多种调试工
具,包括高性价比的模拟器、低成本在线调试器以及全
功能仿真器。由于灵活性更高而功能更强,大大缩短了
用户在工具升级时的学习时间。
11.2 MPASM 汇编器
MPASM 汇编器是一种适用于所有 PICmicro 单片机的
全功能、通用的宏汇编器。
MPASM 汇编器可生成用于 MPLINK 目标文件连接器的
可重定位目标文件、Intel
详细使用和符号参考的映射文件、包含源程序行和生成
的机器代码的绝对列表文件和用于调试的 COFF 文件。
MPASM 汇编器的特征包括:
• 集成在 MPLAB IDE 项目中
• 用户定义的宏汇编可对汇编代码进行流水线处理
• 用于多用途源文件的条件汇编
• 允许完全控制汇编过程的指令
®
标准 HEX 文件、有关存储器
2004 Microchip Technology Inc. DS40039C_CN 第 79 页
PIC16F630/676
11.3 MPLAB C17 和 MPLAB C18
C 编译器
MPLAB C17 和 MPLAB C18 代码开发系统是用
于 Microchip 公司 PIC17CXXX 和 PIC18CXXX 系列单
片机的全 ANSI C 编译器。该编译器可提供其它编译器
中所不具有的强大的集成功能和卓越的代码优化能力,
使用方便。
对于更简单的源代码级调试,编译器可提供用于
MPLAB IDE 调试器优化的符号信息。
11.4 MPLINK 目标连接器 /
MPLIB 目标库管理程序
MPLINK 目标文件连接器可将由 MPASM 汇编器以及
MPLAB C17与 MPLAB C18 C 编译器产生的可重定位目
标进行组合。通过使用连接器脚本中的指令,它还可对
预编译库中的可重定位目标进行连接。
MPLIB 目标库对预编译代码的库文件的创建和修改进行
管理。当源文件调用库文件中的一段程序时,只有包含
此程序的模块与应用程序连接。这样可实现大型文件库
在许多不同应用中的高效使用。
目标连接器 / 库的特性包括:
• 高效连接单个目标文件库而非许多小文件
• 通过把相关的模块组合在一起从而提升代码的可维
护性
• 可灵活地创建库,方便地实现模块的列表、替换、
删除和提取。
11.5 MPLAB C30 C 编译器
MPLAB C30 C 编译器是一款全功能、符合 ANSI 标准 、
具有优化功能的编译器。它可将标准的 ANSI C 程序转
换到 dsPIC30F 汇编语言源程序。该编译器还支持许多
命令行选项和语言扩展功能,以充分利用 dsPIC30F 器
件的硬件功能,同时满足编译器代码发生器较高的控制
要求。
MPLAB C30 还带有一个完全的 ANSI C 标准文件库。所
有库函数都经过验证并符合 ANSI C 语言库标准。该文
件库包含字符串操作、动态存储区分配、数据转换和时
间保持函数以及数学函数 (三角函数、指数以及双曲
线)。该编译器提供 MPLAB IDE 进行高级源程序调试
所使用的符号信息。
11.6 MPLAB ASM30 汇编器、连接器以
及文件库
MPLAB ASM30 汇编器为 dsPIC30F 器件提供由符号汇
编语言生成的可重定位机器码。 MPLAB C30 编译器利
用汇编器产生其目标文件。汇编器产生可重定位目标文
件之后,可将这些目标文件存档,或与其它可重定位目
标文件和档案连接以生成可执行文件。该汇编器的重要
特征包括:
• 支持整个 dsPIC30F 指令集
• 支持定点和浮点数据
• 命令行界面
• 丰富的指令集
• 灵活的宏语言
• 与 MPLAB IDE 兼容
11.7 MPLAB SIM 软件模拟器
MPLAB SIM 软件模拟器在指令级的基础上对 PICmicro
系列单片机进行仿真,允许用户在 PC 为主机的环境下
进行代码的开发 。对于任何给定的指令, 用户可对数据
区进行检查或修改,并利用文件或用户定义的按键在任
何引脚上施加激励。指令的执行可采用单步、断点或跟
踪模式。
MPLAB SIM 模拟器完全支持采用 MPLAB C17 和
MPLAB C18 C编译器以及MPASM汇编器进行的符号调
试功能。软件模拟器为在实验室环境以外进行代码开发
和调试提供了灵活性,使之成为一款极其好用且较为经
济的软件开发工具。
11.8 MPLAB SIM30 软件模拟器
MPLAB SIM30 软件模拟器在指令级的基础上对
dsPIC30F 系列单片机进行仿真,允许用户在PC 为主机
的环境下进行代码的开发。对于任何给定的指令, 用户
可对数据区进行检查或修改,并利用文件或用户定义的
按键在任何引脚上施加激励。
MPLAB SIM30 模拟器完全支持采用 MPLAB C30 C 编
译器以及 MPLAB ASM30 汇编器进行的符号调试功能。
该仿真器以批处理任务的命令行模式或从 MPLAB IDE
运行。该高速仿真器设计用于对时间要求较高的 DSP
程序进行调试、分析以及优化。
DS40039C_CN 第 80 页 2004 Microchip Technology Inc.
PIC16F630/676
11.9 MPLAB ICE 2000
高性能通用在线仿真器
MPLAB ICE 2000 通用在线仿真器旨在为产品开发工程
师提供一整套用于 PICmicro 单片机的开发设计工具。
MPLAB ICE 2000 在线仿真器的软件控制由 MPLAB 集
成开发环境软件平台提供。该平台允许对单一环境进行
编辑、编译、下载以及源代码调试。
MPLAB ICE 2000 是一款全功能的仿真器系统,具有增
强的跟踪、触发以及数据监视功能。处理器模块可互
换,使系统可方便地进行重新配置以适用于不同单片机
的仿真需要。 MPLAB ICE 在线仿真器的通用结构允许
对其进行扩展以支持新的 PICmicro 单片机。
MPLAB ICE 2000 在线仿真器系统已设计为一款实时仿
真系统,该仿真系统具有通常只有昂贵的开发工具中才
具有的先进功能。选择 PC 平台以及 Microsoft Windows
32 位操作系统可使这些特性更好地适用于简单、统一化
的应用中。
11.10 MPLAB ICE 4000
高性能通用在线仿真器
MPLAB ICE 4000 通用在线仿真器旨在为产品开发工程
师提供一整套用于高端 PICmicro 单片机的开发设计工
具。 MPLAB ICE 在线仿真器的软件控制由 MPLAB 集
成开发环境软件平台提供。该平台允许对单一环境进行
编辑、编译、下载以及源代码调试。
MPLAB ICD 4000 是一款加强型硬件仿真器系统,不但
保留了 MPLAB ICE 2000 仿真器的所有特性,而且增加
仿真器的存储器容量以及适用于 dsPIC30F 和
PIC18XXXX 器件的高速性能。该仿真器的先进功能包
括复杂触发和定时功能,高达 2 Mb 的仿真器存储器以
及实时变量监视功能。
MPLAB ICE 4000 在线仿真器系统设计为一款实时仿真
系统,该仿真系统具有通常只有昂贵的开发工具中才具
有的先进功能。选择 PC 平台以及 Microsoft Windows
32 位操作系统可使这些特性更好的适用于简单、统一化
的应用中。
11.12 PRO MATE II 通用器件编程器
PRO MATE II 是一款符合 CE 规范的通用器件编程器。
可编程电压设置在 VDDMIN 和 VDDMAX ,可获得最高可
靠性。它具备一个用来显示指令和错误信息的 LCD 显示
器以及一个支持各种封装类型的可拆卸模块化插槽装
置。在单机模式,PRO MATE II 器件编程器无需 PC 即
可对器件进行读取、校验和编程操作。在该模式下,还
可设置代码保护功能。
11.13 PICSTART Plus 开发编程器
PICSTART Plus 开发编程器是一款易于使用、低格低廉
的原型编程器。它通过 COM (RS-232 )端口与 PC 相
连接。在 MPLAB 集成开发环境软件包的支持下,用户
可简便而高效地使用该编程器。PICSTART Plus 开发编
程器支持大多数不超过 40 引脚的 PICmicro 器件。通过
使用一个适配器插座,该编程器也可支持更多引脚数的
器件,比如 PIC16C92X 和 PIC17C76X 。 PICSTART
Plus 开发编程器符合 CE 规范。
11.11 MPLAB ICD 2 在线调试器
Microchip 在线调试器 MPLAB ICD 2 是一款功能强大、
价格低廉的运行时开发工具,可通过 RS-232 或高速
USB 接口与PC 主机相连接。该工具以FLASH PICmicro
单片机为基础,并可用来对 FLASH 和其它 PICmicro 单
片机进行开发。MPLAB ICD 2 使用了 FLASH 器件内嵌
的在线调试功能 。该功能结合 Microchip 在线串行编程
TM
(ICSP
户界面,可提供高性价比的在线 FLASH 调试功能。这
使设计人员可通过设置断点、单步运行以及对变量、
CPU 状态以及外设寄存器进行监视的方法实现源代码
的开发和调试。它全速运行时允许用户对硬件和应用程
序进行实时测试。 MPLAB ICD 2 还可用作某些
PICmicro 器件的开发编程器。
2004 Microchip Technology Inc. DS40039C_CN 第 81 页
)协议,通过 MPLAB 集成开发环境的图形用
PIC16F630/676
11.14 PICDEM 1 PICmicro 演示板
PICDEM 1 演示板用于演示以下型号器件的功能:
PIC16C5X (PIC16C54 至PIC16C58A)、 PIC16C61、
PIC16C62X、 PIC16C71、 PIC16C8X、 PIC17C42、
PIC17C43和 PIC17C44。该板包含了运行基本演示程序
所需的软硬件。借助于 PRO MATE II 器件编程器或
PICSTART Plus 开发编程器,用户可对随 PICDEM 1 演
示板供货的单片机样片编程。用户可将 PICDEM 1 演示
板连接到 MPLAB ICE 在线硬件仿真器进行测试。演示
板所提供的原型区可供用户扩展附加应用元件。其它特
征包括一个 RS-232 接口、一个用于仿真模拟输入的电
位器、按钮开关以及 8 个 LED 。
11.15 PICDEM.net 互联网 / 以太网演示板
PICDEM.net 演示板是一款使用 PIC18F452 单片机和
TCP/IP 固件的互联网 / 以太网演示板。该演示板支持所
有符合 PIC16F877 或 PIC18C452 标准引脚输出形式的
40 引脚 DIP 器件。该套件具备用户友好的 TCP/IP 堆
栈、 带 HTML 的网络服务器、一个供 Xmodem 下载至网
页的 24L256 串行 EEPROM 、ICSP/MPLAB ICD 2 接口
连接器、一个以太网接口、 RS-232 接口以及一个 16 x
2 LCD 显示器。此外该套件还提供 Jeremy Bentham 所
,
著的 “TCP/IP Lean
Systems”技术书籍以及该书的 CD-ROM 。
Web Servers for Embedded
11.16 PICDEM 2 Plus 演示板
PICDEM 2 Plus 演示板可以支持许多 18 、 28 以及 40 引
脚的单片机,包括 PIC16F87X 和 PIC18FXX2 器件。该
演示板包含了运行基本演示程序所需的软硬件。借助于
PRO MATE II 器件编程器、 PICSTART Plus 开发编程
器或带通用编程适配器的 MPLAB ICD 2 ,用户可对随
PICDEM 2 演示板供货的单片机样片进行编程。MPLAB
ICD 2 和 MPLAB ICE 在线硬件仿真器也可与 PICDEM 2
演示板一起使用,以便对固件进行测试。演示板所提供
的原型区可供用户扩展附加应用元件。演示板上还集成
有一个 RS-232 接口、2 x 16 LCD 显示器、一个压电扬
声器、一个板内温度传感器、4 个 LED 以及 PIC18F452
和 PIC16F877 FLASH 单片机样片。
11.17 PICDEM 3 PIC16C92X 演示板
PICDEM 3 演示板支持PLCC封装形式的 PIC16C923和
PIC16C924。该演示板包含了运行基本演示程序所需的
软硬件。
11.18 PICDEM 17 演示板
PICDEM 17 演示板是一块评估板,可以演示多种
Microchip 单片机的功能,包括 PIC17C752、
PIC17C756A、 PIC17C762 和PIC17C766。演示板内还
有编程好的样片。 用户可使用 PRO MATE II 器件编程
器或 PICSTART Plus 开发编程器对器件进行重编程以
满足用户的应用需要。 PICDEM 17 演示板支持下载并
执行来自于电路板上外部 FLASH 存储器的程序。该演
示板还配置有一个宽大的原型区可供用户进行硬件扩
展。
DS40039C_CN 第 82 页 2004 Microchip Technology Inc.
PIC16F630/676
11.19 PICDEM 18R PIC18C601/801 演示
板
PICDEM 18R 演示板用于协助用户进行 Microchip 的
PIC18C601/801 系列单片机的开发。 它用硬件实现了 8
位多路信号传输 / 信号分离和 16 位存储器模式。该演示
板包括 2Mb 外部 FLASH 存储器、128 Kb SRAM 存储
器以及串行 EEPROM ,允许对 PIC18C601/801 支持的
多种存储器类型进行访问。
11.20 PICDEM LIN PIC16C43X 演示板
功能强大的 LIN 软硬件套件包括一系列的电路板以及三
枚 PICmicro 单片机。外形小巧的 PIC16C432 和
PIC16C433 用作 LIN 通信中的从机,并作为板内的 LIN
收发器。一枚 PIC16F874 FLASH 单片机用作主机。所
有这三枚单片机均经过固件编程以实现 LIN 总线通信。
11.21 PICkit
PICkitTM 1 FLASH 初学者套件是一款齐全的 “盒装开
发系统”,包括一个使用方便的、由多部分组成的电路
板,可用于 8/14 引脚 FLASH PIC ® 单片机的编程、评
估以及开发。电路板通过 USB 供电, 可在简单的
Windows GUI 下工作。PICkit 1 初学者套件包括用户手
册(在 CD ROM 上)、PICkit
程序代码。该套件还包括 MPLAB
境)软件、软件和硬件“8 引脚 FLASH PIC ® 单片机窍
门和点子”手册和一根 USB 接口电缆。它支持所有当
前 8/14 引脚 FLASH PIC 单片机以及未来计划开发的器
件。
TM
1 FLASH 初学者套件
1 教程软件以及各种应用
®
IDE (集成开发环
11.22 PICDEM USB PIC16C7X5 演示板
PICDEM USB 演示板展示了 PIC16C745 和
PIC16C765 USB 单片机的功能。该演示板为未来 USB
产品奠定了基础。
11.23 评估和编程工具
除 PICDEM 系列演示板之外, Microchip 还提供与这些
产品配套的评估套件以及演示软件。
• 用于 Microchip HCS 安全数据产品的 K
和编程工具
• 用于汽车网络应用的 CAN 开发套件
• 模拟电路设计板以及滤波器设计软件
• PowerSmart 电池充电评估 / 校准套件
®
•IrDA
•microID 开发和 rfLab
• 用于存储器评估以及寿命计算的 SEEVAL® 设计套
• 用于开关模式电源供电、高功率 IR 驱动器、 ∆ -Σ
有关演示和评估套件的具体信息,请查阅 Microchip 公
司网页以及最新的产品目录。
开发套件
TM
开发软件
件
ADC 和流量传感器的 PICDEM MSC 演示板
EEL OQ 评估
2004 Microchip Technology Inc. DS40039C_CN 第 83 页
PIC16F630/676
注:
DS40039C_CN 第 84 页 2004 Microchip Technology Inc.
PIC16F630/676
12.0 电气特性
绝对极限参数值 †
极限工作环境温度 .................................................................................................................................-40 至 +125°C
储存温度............................................................................................................................................... -65 至 +150°C
相对于 V
相对于 V
相对于 V
总功耗
流出 V
流入 V
输入箝位电流, I
输出箝位电流, I
任一 I/O 引脚的最大输出灌电流 .......................................................................................................................25 mA
任一 I/O 引脚的最大输出拉电流 .......................................................................................................................25 mA
PORTA 和 PORTC (联合)最大灌电流 ........................................................................................................ 200 mA
PORTA 和 PORTC (联合)最大拉电流 ........................................................................................................ 200 mA
SS 的 V DD 引脚电压 ................................................................................................................ -0.3 至 +6.5V
SS 的 MCLR 引脚电压 ............................................................................................................ -0.3 至 +13.5V
SS 的所有其他引脚电压........................................................................................... -0.3V 至(VDD + 0.3V)
(1)
........................................................................................................................................................800 mW
SS 引脚的最大电流................................................................................................................................ 300 mA
DD 引脚的最大电流 ............................................................................................................................... 250 mA
IK ( VI < 0 或 VI > VDD).................................................................................................................± 20 mA
OK (Vo < 0 或 Vo >V DD)................................................................................................................± 20 mA
注 1: 功耗的计算公式为: P
DIS = V DD x {I DD - ∑ I OH} + ∑ {(V DD-V OH) x I OH} + ∑(VOl x I OL)。
† 注:如果运行条件超出了上面所列的绝对极限参数值,可能对器件造成永久性损坏。这仅是运行条件的极大值,而且
我们不建议使器件运行在超过或在技术规范以外的条件下。器件长时间工作在绝对最大极限条件下,其稳定性可能受
到影响。
注: MCLR 引脚上若出现低于 VSS 的尖峰电压,将导致超过 80 mA 的感应电流,从而可能引起锁存器闭锁。因
此,在 MCLR 引脚上施加低电平时,应使用一个 50-100 Ω 的串联电阻,而不要将该引脚直接与 VSS 连接。
2004 Microchip Technology Inc. DS40039C_CN 第 85 页
PIC16F630/676
图 12-1: PIC16F630/676 ( A/D 关闭时)的电压 - 频率曲线图,
A ≤ +125°C
V
DD
(伏)
-40°C ≤ T
5.5
5.0
4.5
4.0
3.5
3.0
2.5
2.0
0
注 1: 阴影区域表示允许的电压和频率组合。
4
10
81 6 12 20
频率 (MHz )
图 12-2: PIC16F676 (A/D 使能时)的电压 - 频率曲线图,
DD
V
(伏)
-40°C ≤ T
5.5
5.0
4.5
4.0
3.5
3.0
2.5
A ≤ +125°C
2.0
0
注 1: 阴影区域表示允许的电压和频率组合。
DS40039C_CN 第 86 页 2004 Microchip Technology Inc.
4
10
81 6 12 20
频率 (MHz )
图 12-3: PIC16F676 (A/D 使能时)的电压 - 频率曲线图
A ≤ +125°C
V
DD
(伏)
0°C ≤ T
5.5
5.0
4.5
4.0
3.5
3.0
2.5
2.2
2.0
PIC16F630/676
0
注 1: 阴影区域表示允许的电压和频率组合。
4
10
81 6 12 20
频率 (MHz )
2004 Microchip Technology Inc. DS40039C_CN 第 87 页
PIC16F630/676
12.1 DC 特性: PIC16F630/676-I (工业级), PIC16F630/676-E( 扩展级)
标准运行条件 (除非另外说明)
DC 特性
运行温度 工业级为 -40°C ≤ T
扩展级为 -40°C ≤ TA ≤ +125°C
参数
编号
符号 特性
DD 电源电压
V
D001
D001A
D001B
D001C
D001D
D002 VDR RAM 数据保持电压
D003 V
POR 确保内部上电复位信号的
DD 启动电压
V
D004 S VDD 确保内部上电复位信号的
最小值典型
值 † 最大值
2.0
—
2.2
—
2.5
—
3.0
—
4.5
—
(1)
1.5* — — V 器件处于休眠模式
—V
SS —V详见上电复位章节
单位 条件
OSC < = 4 MHz:
F
5.5
5.5
5.5
5.5
5.5
PIC16F630/676, A/D 关闭
V
PIC16F676 , A/D 使能, 0°C 至 +125°C
V
PIC16F676 , A/D 使能, -40°C 至 +125°C
V
4 MH
V
V
0.05* — — V/ms 详见上电复位章节
Z < F OSC < = 10 MHz
VDD 上升率
D005 VBOD —2 . 1— V
* 这些参数为特性值,但未经测试。
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参
考,未经测试。
注 1: 这是在不丢失 RAM 数据的前提下,休眠模式中 VDD 所能降到的最小电压值。
A ≤ +85°C
DS40039C_CN 第 88 页 2004 Microchip Technology Inc.
12.2 DC 特性: PIC16F630/676-I (工业级)
标准运行条件 (除非另外说明)
运行温度 工业级为 -40 °C ≤ TA ≤ +85° C
PIC16F630/676
参数
编号
器件特性
最小值典型
值 † 最大值
单位
V DD 注释
条件
D010 电源电流 (IDD) —91 6µ A2 . 0FOSC = 32 kHz
—1 82 8 µ A3 . 0
LP 振荡模式
—3 55 4 µ A5 . 0
D011 — 110 150 µ A2 . 0F
—1 9 02 8 0 µ A3 . 0
OSC = 1 MHz
XT 振荡模式
—3 3 04 5 0 µ A5 . 0
D012 — 220 280 µ A2 . 0F
—3 7 06 5 0 µ A3 . 0
OSC = 4 MHz
XT 振荡模式
— 0.6 1.4 mA 5.0
D013 — 70 110 µ A2 . 0F
—1 4 02 5 0 µ A3 . 0
OSC = 1 MHz
EC 振荡模式
—2 6 03 9 0 µ A5 . 0
D014 — 180 250 µ A2 . 0F
—3 2 04 7 0 µ A3 . 0
OSC = 4 MHz
EC 振荡模式
—5 8 08 5 0 µ A5 . 0
D015 — 340 450 µ A2 . 0F
—5 0 07 8 0 µ A3 . 0
OSC = 4 MHz
INTOSC 模式
— 0.8 1.1 mA 5.0
D016 — 180 250 µ A2 . 0F
—3 2 04 5 0 µ A3 . 0
OSC = 4 MHz
EXTRC 模式
—5 8 08 0 0 µ A5 . 0
D017 — 2.1 2.95 mA 4.5 F
— 2.4 3.0 mA 5.0
OSC = 20 MHz
HS 振荡模式
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参
考,未经测试。
注 1: 上电工作条件下所有 I
DD 测量的测试条件为: OSC1 = 外部方波, 轨到轨摆幅;所有 I/O 引脚为三态引脚并
拉高至 VDD ; MCLR = VDD ; WDT 被禁止。
2: 供电电流主要受工作电压和频率的影响。其它因素如 I/O 引脚负载和开关速率、振荡器类型、内部代码执行
模式以及温度等也会对电流消耗产生影响。
2004 Microchip Technology Inc. DS40039C_CN 第 89 页
PIC16F630/676
12.3 DC 特性: PIC16F630/676-I (工业级)
标准运行条件 (除非另外说明)
工作温度 工业级为 -40 °C ≤ TA ≤ +85° C
参数
编号
器件特性
D020 断电电流
(IPD )
最小值典型值†最大
值
单位
V DD 注释
— 0.99 700 nA 2.0 WDT、 BOD、比较器、 VREF 以及
— 1.2 770 nA 3.0
T1OSC 都被禁止
条件
— 2.9 995 nA 5.0
D021 — 0.3 1.5 µ A2 . 0W D T 电流
(1)
—1 . 83 . 5µ A3 . 0
—8 . 41 7 µ A5 . 0
D022 — 58 70 µ A3 . 0B O D 电流
(1)
— 109 130 µ A5 . 0
D023 — 3.3 6.5 µ A2 . 0比较器电流
(1)
—6 . 18 . 5µ A3 . 0
—1 1 . 51 6 µ A5 . 0
D024 — 58 70 µ A2 . 0C V
REF 电流
(1)
— 85 100 µ A3 . 0
— 138 160 µ A5 . 0
D025 — 4.0 6.5 µ A2 . 0T 1 O
SC 电流
(1)
—4 . 67 . 0µ A3 . 0
— 6.0 10.5 µ A5 . 0
D026 — 1.2 755 nA 3.0 A/D 电流
(1)
— 0.0022 1.0 µ A5 . 0
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参
考,未经测试。
注 1: 外设电流为基本 IDD 或 IPD 与该外设使能时所额外消耗的电流之和。可通过将该极限定值减去 IDD 或 IPD 以
确定外设 ∆ 电流。在计算总电流损耗时应使用最大值。
2: 在休眠模式下,关断电流并不取决于振荡器的类型。关断电流的测量条件为器件处于休眠模式,且所有 I/O
引脚处于高阻状态并接至 V
DD。
DS40039C_CN 第 90 页 2004 Microchip Technology Inc.
12.4 DC 特性: PIC16F630/676-E (扩展级)
标准运行条件 (除非另外说明)
工作温度 扩展级为 -40 °C ≤ TA ≤ +125° C
PIC16F630/676
参数
编号
器件特性
最小值典型
值 † 最大值
单位
V DD 注释
条件
D010E 电源输入电流 (IDD) —91 6µ A2 . 0FOSC = 32 kHz
—1 82 8 µ A3 . 0
LP 振荡模式
—3 55 4 µ A5 . 0
D0 11E — 110 1 50 µ A2 . 0F
—1 9 02 8 0 µ A3 . 0
OSC = 1 MHz
XT 振荡模式
—3 3 04 5 0 µ A5 . 0
D012E — 220 280 µ A2 . 0F
—3 7 06 5 0 µ A3 . 0
OSC = 4 MHz
XT 振荡模式
— 0.6 1.4 mA 5.0
D013E — 70 110 µ A2 . 0F
—1 4 02 5 0 µ A3 . 0
OSC = 1 MHz
EC 振荡模式
—2 6 03 9 0 µ A5 . 0
D014E — 180 250 µ A2 . 0F
—3 2 04 7 0 µ A3 . 0
OSC = 4 MHz
EC 振荡模式
—5 8 08 5 0 µ A5 . 0
D015E — 340 450 µ A2 . 0F
—5 0 07 8 0 µ A3 . 0
OSC = 4 MHz
INTOSC 模式
— 0.8 1.1 mA 5.0
D016E — 180 250 µ A2 . 0F
—3 2 04 5 0 µ A3 . 0
OSC = 4 MHz
EXTRC 模式
—5 8 08 0 0 µ A5 . 0
D017E — 2.1 2.95 mA 4.5 F
— 2.4 3.0 mA 5.0
OSC = 20 MHz
HS 振荡模式
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参
考,未经测试。
注 1: 上电工作条件下所有 I
DD 测量的测试条件为: OSC1 = 外部方波,轨到轨摆幅;所有 I/O 引脚为三态引脚并
拉高至 VDD ; MCLR = VDD ; WDT 被禁止。
2: 供电电流主要受工作电压和频率的影响。其它因素如 I/O 引脚负载和开关速率、振荡器类型、内部代码执行
模式以及温度等也会对电流消耗产生影响。
2004 Microchip Technology Inc. DS40039C_CN 第 91 页
PIC16F630/676
12.5 DC 特性: PIC16F630/676-E (扩展级)
标准运行条件 (除非另外说明)
工作温度 扩展级为 -40 °C ≤ T A ≤ +125 °C
参数
编号
器件特性
最小值典型值†最大
值
单位
V DD 注释
条件
D020E 断电电流 (IPD ) — 0.00099 3.5 µ A2 . 0W D T、 BOD、比较器、 VREF 以及
— 0.0012 4.0 µ A3 . 0
T1OSC 均被禁止
— 0.0029 8.0 µ A5 . 0
D021E — 0.3 6.0 µ A2 . 0W D T 电流
(1)
—1 . 89 . 0µA3 . 0
—8 . 42 0µA5 . 0
D022E — 58 70 µ A3 . 0B O D 电流
(1)
— 109 130 µ A5 . 0
D023E — 3.3 10 µ A2 . 0比较器电流
(1)
—6 . 11 3µA3 . 0
—1 1 . 52 4µ A5 . 0
D024E — 58 70 µ A2 . 0C V
REF 电流
(1)
—8 51 0 0µA3 . 0
— 138 165 µ A5 . 0
D025E — 4.0 10 µ A2 . 0T 1 O
SC 电流
(1)
—4 . 61 2µA3 . 0
—6 . 02 0µA5 . 0
D026E — 0.0012 6.0 µ A3 . 0A / D 电流 t
(1)
— 0.0022 8.5 µ A5 . 0
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参
考,未经测试。
注 1: 外设电流为基本 IDD 或 IPD 与该外设使能时所额外消耗的电流之和。 可通过将该极限值减去 IDD 或 IPD 以确
定外设 ∆ 电流。 在计算总电流损耗时应使用最大值。
2: 在休眠模式下,关断电流并不取决于振荡器的类型。关断电流的测量条件为器件处于休眠模式,且所有 I/O
引脚处于高阻状态并接至 V
DD。
DS40039C_CN 第 92 页 2004 Microchip Technology Inc.
PIC16F630/676
12.6 DC 特性: PIC16F630/676-I (工业级), PIC16F630/676-E (扩展级)
标准运行条件 (除非另外说明)
DC 特性
工作温度 工业级为 -40°C ≤ T
扩展级为 -40°C ≤ T
参数
编号
符号 特性 最小值
典型
最大值 单位 条件
值 †
输入低电压
IL I/O 端口
V
D030 带 TTL 缓冲区 V
SS
D030A VSS
D031 带施密特触发器缓冲区 V
D032 MCLR
、 OSC1 (RC 模式 )VSS
D033 OSC1 (XT 和 LP 模式 )V
D033A OSC1 (HS 模式 )V
SS
SS
SS
—
—
—
—
—
—
0.8 V 4.5V ≤ VDD ≤ 5.5V
0.15
DD
V
V 否则
0.2 VDD V 整个量程
0.2 VDD V
0.3 V ( 注 1)
0.3 VDD V ( 注 1)
输入高电压
IH I/O 端口
V
D040
D040A
D041 带施密特触发器缓冲区 0.8 V
D042 MCLR
带 TTL 缓冲区 2.0
DD+0.8)
(0.25V
0.8 VDD
DD
D043 OSC1 (XT 和 LP 模式 )1 . 6
D043A OSC1 (HS 模式 )0 . 7 VDD
D043B OSC1 (RC 模式 )0 . 9 V
D070 I
PUR PORTA 弱上拉电流 50* 250 400* µ AVDD = 5.0V, VPIN = VSS
输入漏电流
(3)
D060 IIL I/O 端口
D060A 模拟输入
D060B VREF
D061 MCLR
(2)
D063 OSC1
DD
—
—
—
—
—
—
—
VDD
—
VDD
—
VDD 整个量程
—
VDD V
—
VDD V ( 注 1)
—
VDD V ( 注 1)
—
VDD V
VV4.5V ≤ VDD ≤ 5.5V
± 0.1 ± 1 µAVSS ≤ V PIN ≤ V DD,
± 0.1 ± 1 µAVSS ≤ V PIN ≤ V DD
± 0.1 ± 1 µAVSS ≤ V PIN ≤ V DD
± 0.1 ± 5 µAVSS ≤ V PIN ≤ V DD
± 0.1 ± 5 µAVSS ≤ V PIN ≤ V DD、 XT、 HS 以及
输出低电压
D080 V
OL I/O 端口
D083 OSC2/CLKOUT (RC 模式 )
——
——
0.6 V
0.6 V
输出高电压
D090 V
D092 OSC2/CLKOUT (RC 模式 )V
OH I/O 端口 V DD - 0.7
DD - 0.7
* 这些参数为特性值,但未经测试。
——
——
VIOH = -3.0mA, V DD=4.5V( 工业级 )
VIOH = -1.3mA, V DD=4.5V( 工业级 )
† 除非另外说明,否则“典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参考,
未经测试。
注 1: 在 RC 振荡器设定中, OSC1/CLKIN 引脚为施密特触发器的一个输入端。不推荐在 RC 模式下采用外部时
钟。
2: MCLR
引脚上的漏电流与所施加的电压等级密切相关。规定的电压等级表示正常的运行条件。在不同的输入
电压条件下可测得更大的漏电流。
3: 负电流定义为引脚拉电流。
A ≤ +85°C
A ≤ +125°C
否则
引脚处于高阻状态
LP 振荡器配置
I
OL = 8.5mA,V DD=4.5V( 工业级 )
I
OL = 1.6mA,V DD=4.5V( 工业级 )
I
OL = 1.2mA,V DD=4.5V( 扩展级 )
IOH = -1.0mA, VDD =4.5V( 扩展级 )
2004 Microchip Technology Inc. DS40039C_CN 第 93 页
PIC16F630/676
12.7 DC 特性: PIC16F630/676-I (工业级), PIC16F630/676-E (扩展级)(续)
标准运行条件 (除非另外说明)
DC 特性
工作温度 工业级为 -40°C ≤ T
扩展级为 -40°C ≤ T
参数编号 符号 特性 最小值 典型值 † 最大值 单位 条件
输出引脚上的容性负载的规
范说明
D100 C
OSC2 OSC2 引脚 — — 15* pF 在使用外部时钟来驱动 OSC1
的 XT、 HS 和 LP 模式下
D101 C
IO 所有 I/O 引脚 — — 50* pF
数据 EEPROM 存储器
D120 E
D120A E
D121 V
D
字节擦写次数
D
字节擦写次数
DRW 用于读 / 写的 V DD V MIN —5 . 5V使用 EECON 进行读 / 写
100K 1M — E/W -40° C ≤ T
10K 100K — E/W +85°C ≤ T
V
D122 T
DEW 擦除 / 写周期 —5 6m s
D123 TRETD 特性保存期 40 — — Year 假定没有违反其他的规范
D124 T
REF 数据更新
(1)
前的总擦除 / 写
1M 10M — E/W -40° C ≤ TA ≤ +85°C
周期数
程序 FLASH 存储器
D130 E
D130A ED
D131 V
D132 V
P 单元擦写周期 10K 100K — E/W -40°C ≤ T A ≤ +85°C
单元擦写周期
PR 用于读操作的 V DD V MIN —5 . 5V VMIN = 最小工作电压
PEW 用于擦除 / 写操作的 V DD 4.5 — 5.5 V
1K 10K — E/W +85°C ≤ T
D133 TPEW 擦除 / 写周期 —22 . 5 m s
D134 T
RETD 特性保存期 40 — — Year 假定没有违反其他的规范
* 这些参数为特性值,但未经测试。
† 除非另外说明,否则“典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参考,
未经测试。
注 1: 更多信息参见第 8.5.1 节。
A ≤ +85°C
A ≤ +125°C
A ≤ +85°C
A ≤ +125°C
MIN = 最小工作电压
A ≤ +125°C
DS40039C_CN 第 94 页 2004 Microchip Technology Inc.
12.8 定时参数符号体系
定时参数符号采用以下格式之一进行创建。
1. TppS2ppS
2. TppS
T
F 频率 T 定时
小写字母 (pp) 及其含义
pp
cc CCP1 osc OSC1
ck CLKOUT rd RD
cs CS
di SDI sc SCK
do SDO ss SS
dt 数据输入
io I/O 端口
mc MCLR
大写字母及其含义:
S
F 下降 P 周期
H 高 R 上升
I 无效 (高阻) V 有效
L 低 Z 高阻
rw RD 或 WR
t0 T0CKI
t1 T1CKI
wr WR
PIC16F630/676
图 12-4: 负载条件
负载条件
引脚 引脚
RL =464Ω
L = 50 pF 用于所有引脚
C
15 pF 用于 OSC2 输出
1
负载条件
2
VDD/2
R
L
L
C
V
SS
C
L
V
SS
2004 Microchip Technology Inc. DS40039C_CN 第 95 页
PIC16F630/676
12.9 AC 特性: PIC16F630/676 (工业级,扩展级)
图 12-5: 外部时钟定时
Q4 Q1 Q2 Q3 Q4 Q1
OSC1
1
2
CLKOUT
表 12-1: 外部时钟定时要求
3
3
4
4
参数编号 符号 特性
F OSC 外部 CLKIN 频率
(1)
DC — 37 kHz LP 振荡模式
最小值典型值
†
最大值 单位 条件
DC — 4 MHz XT 模式
DC — 20 MHz HS 模式
DC — 20 MHz EC 模式
振荡器频率
(1)
5— 3 7k H z L P 振荡模式
—4 —M H z I N T振荡模式
DC — 4 MHz RC 振荡模式
0.1 — 4 MHz XT 振荡模式
1— 2 0M H z H S 振荡模式
1T
OSC 外部 CLKIN 周期
(1)
27 — ∞µ sL P 振荡模式
50 — ∞ ns HS 振荡模式
50 — ∞ ns EC 振荡模式
250 — ∞ ns XT 振荡模式
振荡器周期
(1)
27 200 µ sL P 振荡模式
—2 5 0 — n sI N T振荡模式
250 — — ns RC 振荡模式
250 — 10,000 ns XT 振荡模式
50 — 1,000 ns HS 振荡模式
2T
3T o s L ,
4T o s R ,
CY
To sH
To sF
指令周期时间
外部 CLKIN (OSC1) 高电平
外部 CLKIN 低电平
外部 CLKIN 上升时间
外部 CLKIN 下降时间
(1)
200 TCY DC ns T CY = 4/FOSC
2* — — µ sL P 振荡器, T
20* — — ns HS 振荡器, T
100 * — — ns XT 振荡器, T
OSC L/H 占空比
OSC L/H 占空比
OSC L/H 占空比
— — 50* ns LP 振荡器
— — 25* ns XT 振荡器
—— 1 5 *n sH S 振荡器
* 这些参数为特性值,但未经测试。
† 除非另外说明,否则“典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参考,
未经测试。
注 1: 指令循环周期 (T
CY)等于输入振荡器时基周期的四倍。所有规定值都是标准运行条件下器件代码执行过程
中特定振荡器类型所产生的特征数据。 超出这些规定的限定值可能导致振荡器运行不稳定和 / 或导致电流消
耗超出预期值。所有器件的测试都是在 “最小”值条件下进行的,其外部时钟加载在 OSC1 引脚。对于所有
器件,当采用外部时钟输入时,“最大”周期时间极限为 “DC ”(无时钟)。
DS40039C_CN 第 96 页 2004 Microchip Technology Inc.
PIC16F630/676
表 12-2: 内部高精度振荡器参数
参数编号 符号 特性 频率容差
F10
OSC
F
内部经过校准的
INTOSC 频率
±1 3.96 4.00 4.04 MHz
±2 3.92 4.00 4.08 MHz 2.5V ≤ V
±5 3.80 4.00 4.20 MHz 2.0V ≤ VDD ≤ 5.5V
F14
TIOSC
振荡器从休眠模式唤醒
ST
的启动时间 *
——6 8µs
——4 6µs
——3 5µs
* 这些参数为特性值,但未经测试。
† 除非另外说明,否则“典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。这些参数仅供设计参考,
未经测试。
最小值典型值
†
最大值 单位 条件
DD = 3.5V、 25°C
V
DD ≤ 5.5V
A ≤ +85° C
0° C ≤ T
-40° C ≤ T
A ≤ +85° C ( 工业级 )
-40° C ≤ TA ≤ +125° C (扩展级 )
DD = 2.0V、 -40°C 至
V
+85°C
VDD = 3.0V、 -40° C 至
+85°C
DD = 5.0V、 -40°C 至
V
+85°C
2004 Microchip Technology Inc. DS40039C_CN 第 97 页
PIC16F630/676
图 12-6: CLKOUT 和 I/O 时序
OSC1
CLKOUT
I/O 引脚
(输入)
I/O 引脚
(输出)
原有值
Q4
17
10
13
Q1
14
22
23
19
20, 21
Q2 Q3
11
18
15
表 12-3: CLKOUT 和 I/O 定时要求
参数编号 符号 特性 最小值
10 TosH2ckL OSC1↑ 到 CLOUT↓ — 75 200 ns ( 注 1)
11 TosH2ckH OSC1↑ 到 CLOUT↑ — 75 200 ns ( 注 1)
12 TckR CLKOUT 上升时间 — 35 100 ns ( 注 1)
13 TckF CLKOUT 下降时间 — 35 100 ns ( 注 1)
14 TckL2ioV CLKOUT↓ 到端口输出有效 — — 20 ns ( 注 1)
15 TioV2ckH 在 CLKOUT↑ 前端口输入有效 T
OSC + 200 ns — — ns ( 注 1)
16 TckH2ioI 在 CLKOUT↑ 后端口输入保持 0 — — ns ( 注 1)
17 TosH2ioV OSC1↑ (Q1 周期 ) 到端口输出有效 — 50 150 * ns
— — 300 ns
18 TosH2ioI OSC1↑ (Q2 周期 ) 到端口输入无效
100 — — ns
(I/O 输入保持时间 )
19 TioV2osH 端口输入有效到 OSC1↑
0— — n s
(I/O 输入建立时间 )
20 TioR 端口输出上升沿时间 —1 0 4 0 n s
21 TioF 端口输出下降沿时间 —1 0 4 0n s
22 Tinp INT 引脚高电平或低电平时间 25 — — ns
23 Trbp PORTA 电平变化中断 INT 高电平或
CY ——n s
T
低电平时间
* 这些参数为特性值,但未经测试。
† 除非另外说明,否则 “典型值”一栏中的数据都是在 5.0V、 25°C 的条件下给出的。
注 1: 测量在 RC 模式下进行, CLKOUT 输出为 4xT
OSC。
典型
值 †
最大值 单位 条件
12
16
新建值
DS40039C_CN 第 98 页 2004 Microchip Technology Inc.