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.