MICROCHIP PIC12F629, PIC12F675 User Manual

PIC12F629/675
深圳市粤原点科技有限公司 (Microchip Authorized Design Partner)指定授权 总部地址:深圳市福田区福虹路世贸广场C座1103座  Add: Room 1103,Block C,World Trade Plaza, 9Fuhong Road,Futian District Shen Zhen City  电话(tel) :86-755-83666321,83666320,83666325 传真(fax) :86-755-83666329 Web: WWW.ORIGIN-GD.COM  E-mail:01@LZmcu.com abc85185@163.com 联系人:马先生,王小姐,汤小姐  在线咨询:QQ:42513912 MSN:action_tech@hotmail.com 7x24小时在线产品咨询:13509674380 13798484366
数据手册
8 引脚闪存 8
CMOS 单片机
2004 Microchip Technology Inc. DS41190C_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•Microchip的产品均达到 Microchip 数据手册中所述的技术指标。
•Microchip确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的操 作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•Microchip愿与那些注重代码完整性的客户合作。
•Microchip或任何其它半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的软 件或其它受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。Microchip Technology Inc. 及其分公司和相关公司、各级主管与员工及 事务代理机构对译文中可能存在的任何差错不承担任何责任。 建议参考 Microchip Technology Inc. 的原版文档。
本出版物中所述的器件应用信息及其它类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范, 是您自身应负的责任。Microchip 对这些信息不作任何明示或 暗示、书面或口头的声明或担保,包括但不限于针对其使用情 况、质量、性能、适销性或特定用途的适用性的声明或担保。 Microchip 对因这些信息及使用这些信息而引起的后果不承担 任何责任。未经 Microchip 书面批准,不得将 Microchip 的产 品用作生命维持系统中的关键组件。在 Microchip 知识产权保 护下,不得暗中或以其它方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron dsPIC、 K
EELOQ、 microID、 MPLAB、 PIC、 PICmicro、
PICSTARTPRO MATEPowerSmartrfPIC SmartShunt均为Microchip Technology Inc.在美国和其它国家
或地区的注册商标。
AmpLabFilterLabMigratable MemoryMXDEV MXLABPICMASTERrfPICSEEVALSmartSensor The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标。
Analog-for-the-Digital AgeApplication Maestro dsPICDEMdsPICDEM.netdsPICworksECAN ECONOMONITORFanSenseFlexROMfuzzyLAB In-Circuit Serial Programming、 ICSP、 ICEPIC、 Migratable Memory、 MPASM、 MPLIB、 MPLINK、 MPSIMPICkitPICDEMPICDEM.netPICLAB PICtailPowerCalPowerInfoPowerMate PowerToolrfLABrfPICDEMSelect ModeSmart SerialSmartTel Total Endurance 均为 Microchip Technology Inc. 在美国和其它国家或地区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其它商标均为各持有公司所有。
© 2004, Microchip Technology Inc。版权所有。
Microchip Mountain View
过了 机、 器和模拟产品方面的质量体系流程均符合
Microchip 9001:2000
位于美国亚利桑那州
ISO/TS-16949:2002 KEELOQ
的全球总部、设计中心和晶圆生产厂均于
®
跳码器件、串行
在开发系统的设计和生产方面的质量体系也已通过了
认证。
Chandler和Tem pe
质量体系认证。公司在
EEPROM
、单片机外设、非易失性存储
ISO/TS-16949:2002
PICmicro
及位于加利福尼亚州
2003年10
®
8
位单片
。此外,
月通
ISO
DS41190C_CN 第 ii  2004 Microchip Technology Inc.
PIC12F629/675

8 引脚闪存 8 CMOS 单片机

高性能的 RISC CPU
仅需学习 35 条指令
- 除了跳转指令以外所有指令都是单周期的
工作速度:
- DC - 20 MHz 振荡器 / 时钟输入
- DC - 200 ns 指令周期
中断功能
• 8 级深度硬件堆栈
直接、间接和相对寻址方式
特殊单片机功能:
可选择内部和外部振荡器
- 高精度内部 4MHz振荡器,其出厂时精度已 校准为± 1%
- 可使用晶振和谐振器作为外部振荡器
- 电压典型值为 3.0V 时,将 CPU 从休眠模式 唤醒需 5 µs
省电休眠模式
宽工作电压范围,从 2.0V 到 5.5V
工业级和扩展级温度范围
低功耗上电复位 (POR)
上电延时定时器 (PWRT)和振荡器起振定时器 OST
欠压检测 (BOD)
带有独立振荡器的看门狗定时器,
可以保证可靠的运行
复用 MCLR
引脚电平变化可触发中断
独立的可编程弱上拉功能
可编程代码保护
高耐久性的闪存 /EEPROM 存储单元
- 闪存耐写次数达 100,000
- EEPROM 耐写次数达 1,000,000
- 闪存 / 数据 EEPROM 的数据保持期 >40
输入引脚
低功耗功能:
待机电流:
- 当电压为 2.0V 时,典型值为 1nA
工作电流:
- 当频率为 32 kHz 时,典型值为 8.5 µA
- 当频率为 1MHz时,典型值为 100 µA
看门狗定时器电流:
- 当电压为 2.0V 时,典型值为 300 nA
• Timer1 振荡器电流:
- 当频率为 32 kHz、电压为 2.0V 时,典型值为
4 µA
外设功能:
• 6 个具有独立方向控制功能的 I/O 引脚
高灌 / 拉电流能力,可直接驱动 LED
模拟比较器模块带有:
- 一个模拟比较器
- 片上可编程比较器参考电压 (CV
- 来自器件输入引脚的可编程输入复用
- 可外部访问比较器输出
模数转换器模块 (PIC12F675):
-10位分辨率
- 可编程的 4 通道输入
- 参考电压输入
• Timer0:带有 8 位可编程预分频器的 8 位定时器 /
计数器
增强的 Timer1:
- 带有预分频器的 16 位定时器 / 计数器
- 外部选通输入模式
- 如果已选用 INTOSC 模式的话,那么在 LP
式中可选择 OSC1 OSC2 作为 Timer1 的 振荡器
通过两个引脚可实现在线串行编程 (ICSP
REF)模块
TM
)
程序存储器 数据存储器
器件
PIC12F629 1024 64 128 6 - 1 1/1
PIC12F675 1024 64 128 6 4 1 1/1
*8位 8 引脚器件受 Microchip 的低引脚数专利(Low Pin Count Patent)保护: 美国专利号为 5847450。其它美国国内
或国外专利可能已获批准或正在申请之中。
2004 Microchip Technology Inc. DS41190C_CN 1
闪存
( )
SRAM ( 字节 )
EEPROM
( 字节 )
I/O
10 A/D
换器 ( 通道 )
比较器
8/16 位 定时器
PIC12F629/675
引脚示意图
8引脚 PDIPSOIC和 DFN-S封装形式
GP5/T1CKI/OSC1/CLKIN
GP4/T1G
/OSC2/CLKOUT
GP3/MCLR
GP5/T1CKI/OSC1/CLKIN
GP4/AN3/T1G
/OSC2/CLKOUT
GP3/MCLR
VDD
/VPP
VDD
/VPP
1
8
PIC12F629
2
7
3
6
45
1
8
PIC12F675
2
7
3
6
45
VSS
GP0/CIN+/ICSPDAT
GP1/CIN-/ICSPCLK
GP2/T0CKI/INT/COUT
VSS
GP0/AN0/CIN+/ICSPDAT
GP1/AN1/CIN-/V
GP2/AN2/T0CKI/INT/COUT
REF/ICSPCLK
DS41190C_CN 2  2004 Microchip Technology Inc.
PIC12F629/675
目录
1.0 器件概述 ...................................................................................................................................................................................... 5
2.0 存储器组织结构 ........................................................................................................................................................................... 7
3.0 GPIO 端口 .................................................................................................................................................................................. 19
4.0 Timer0 模块 ............................................................................................................................................................................... 27
5.0 带选通电路的 Timer1 模块......................................................................................................................................................... 30
6.0 比较器模块 ................................................................................................................................................................................ 35
7.0 模数转换器 (A/D)模块 (仅限 PIC12F675)........................................................................................................................... 41
8.0 数据 EEPROM 存储器 ................................................................................................................................................................ 47
9.0 CPU 的特殊功能......................................................................................................................................................................... 51
10.0 指令集概述 ................................................................................................................................................................................. 69
11.0 开发支持 ..................................................................................................................................................................................... 77
12.0 电气规范 ..................................................................................................................................................................................... 83
13.0 DC AC 特性图表 .................................................................................................................................................................. 105
14.0 封装信息 ................................................................................................................................................................................... 115
附录 A:数据表的版本历史 ................................................................................................................................................................ 121
附录 B:器件差异............................................................................................................................................................................... 121
附录 C:器件移植 .............................................................................................................................................................................. 122
附录 D:从其它 PICmicro
索引 ................................................................................................................................................................................................. 123
在线支持............................................................................................................................................................................................. 127
系统信息和升级热线 .......................................................................................................................................................................... 127
读者反馈表 ......................................................................................................................................................................................... 128
产品标识体系 .................................................................................................................................................................................... 129
®
器件移植................................................................................................................................................. 122
致 客 户
我司旨在提供最佳文档供客户正确使用 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. DS41190C_CN 3
PIC12F629/675
注:
DS41190C_CN 4 2004 Microchip Technology Inc.
PIC12F629/675

1.0 器件概述

本文档包含 PIC12F629/675 器件的具体信息。 其它信 息可参见 《PICmicro
DS33023A_CN),您可向当地Microchip 销售代表处
取或从 Microchip网站下载。此参考手册可视为是对数据手册的补充文档,我们极力推荐用户阅读该手册,

1-1 PIC12F629/675 框图

程序总线
内部
4 MHz
振荡器
OSC1/CLKIN
OSC2/CLKOUT
T1G
闪存
程序
存储器
1K x 14
14
指令寄存器
指令
译码与
控制
时序 发生
DD, VSS
V
®
中档单片机系列参考手册》
13
程序计数器
8 级堆栈
13 位)
直接寻址
7
8
上电延时
定时器
振荡器
起振定时器
上电 复位
看门狗 定时器
欠压 检测
3
8
W 寄存器
数据总线
RAM
文件
寄存器
64 x 8
9
地址 MUX
8
FSR 寄存器
状态寄存器
MUX
ALU
以更好地理解芯片结构和外围模块的操作。
本数据手册包括了PIC12F629 PIC12F675 器件。PIC12F675 具有 10 A/D 转换器以外,这两种器 件基本类似。它们均采用 8 引脚 PDIPSOIC MLF- S 封装形式。图 1-1 PIC12F629/675 器件的框图。 表 1-1 所示为引脚排列说明。
8
GP0/AN0/CIN+
RAM
地址
间接 寻址
GP1/AN1/CIN-/V GP2/AN2/T0CKI/INT/COUT GP3/MCLR GP4/AN3/T1G/OSC2/CLKOUT GP5/T1CKI/OSC1/CLKIN
(1)
REF
/VPP
T1CKI
T0CKI
VREF
Timer0 Timer1
模数转换器
(仅限 PIC12F675
AN0 AN1 AN2 AN3
1: 高位来自状态寄存器。
模拟比较器
和参考电压模块
CIN- CIN+ COUT
EEDATA
128 字节
8
EEPROM
EEADDR
数据
2004 Microchip Technology Inc. DS41190C_CN 5
PIC12F629/675

1-1 PIC12F629/675 引脚排列说明

名称 功能
GP0/AN0/CIN+/ICSPDAT GP0 TTL CMOS
AN0 AN
CIN+ AN
ICSPDAT TTL CMOS
GP1/AN1/CIN-/V ICSPCLK
GP2/AN2/T0CKI/INT/COUT GP2 ST CMOS
GP3/MCLR
GP4/AN3/T1G/OSC2/ CLKOUT
GP5/T1CKI/OSC1/CLKIN
V
SS VSS DD VDD
V 图注: 阴影部分仅适用于 PIC12F675
TTL=TTL 输入缓冲器, ST= 施密特触发输入缓冲器。
REF/
/VPP GP3 TTL
GP1 TTL CMOS AN1 AN CIN- AN
VREF AN
ICSPCLK ST
AN2 AN
T0CKI ST
INT ST
COUT CMOS
MCLR
PP HV
V
GP4 TTL CMOS AN3 AN
T1G ST
OSC2 XTAL
CLKOUT CMOS
GP5 TTL CMOS T1CKI ST OSC1 XTAL CLKIN ST
输入 类型
ST
电源 接地参考 电源 正向电源
输出 类型
说明
双向 I/O,带可编程上拉和电平变化触发中断功能 A/D 通道 0 输入 比较器输入 串行编程 I/O 双向 I/O,带可编程上拉和电平变化触发中断功能 A/D 通道 1 输入 比较器输入 外部参考电压 串行编程时钟 双向 I/O,带可编程上拉和电平变化触发中断功能
A/D 通道 2 输入 TMR0 时钟输入
外部中断 比较器输出
输入端口,带电平变化触发中断功能 主清零
编程电压 双向 I/O,带可编程上拉和电平变化触发中断功能
A/D 通道 3 输入 TMR1 门电路
晶振 / 谐振器 F
OSC/4 输出
双向 I/O,带可编程上拉和电平变化触发中断功能 TMR1 时钟
晶振 / 谐振器 外部时钟输入 /RC 振荡器连接
DS41190C_CN 6 2004 Microchip Technology Inc.
PIC12F629/675

2.0 存储器组织结构

2.1 程序存储器组织结构

PIC12F629/675 器件具备一个 13 位程序计数器,可用 来寻址 8K x 14 的程序存储器空间。对于 PIC12F629/ 675 器件来说,只有第一个 1K x 14 0000h - 03FFh) 存储单元是物理实现的。访问超出上述界限的存储单 元,将在第一个 1K x 14 空间内产生循环。复位矢量位 于 0000h,而中断矢量位于 0004h (参见图 2-1)。
2-1 PIC12F629/675 的程序存储
器映射和堆栈
PC<12:0>
CALL, RETURN RETFIE, RETLW
1 级堆栈 2 级堆栈
8 级堆栈
复位矢量
13
000h

2.2 数据存储器组织结构

数据存储器 (参见图 2-2)被分成两个存储区,这两个 存储区中包含通用寄存器和特殊功能寄存器。特殊功能 寄存器位于每个存储区的前 32 个单元中。寄存器中 20h5Fh 的存储单元是通用寄存器,它们以静态 RAM 的 形式实现并同时映射到两个存储区中。所有其它 RAM 均未用,且读取时返回值为 0RP0STATUS<5>)是 存储区选择位。
• RP0 = 0,选择存储区 0
• RP0 = 1,选择存储区 1
注: IRP 和 RP1 位 STATUS<7:6> 是保留位并
始终保持 0
2.2.1 通用寄存器数据
通用寄存器数据在PIC12F629/675器件中的组织结构为
64 x 8。每个寄存器均可通过选择寄存器 (File Select RegisterFSR)进行直接或者间接访问 (参见第 2.4
节)。
中断矢量
片上程序
存储器
0004 0005
03FFh
0400h
1FFFh
2004 Microchip Technology Inc. DS41190C_CN 第 7
PIC12F629/675
2.2.2 特殊功能寄存器
特殊功能寄存器是 CPU 和外设功能用于控制器件执行 期望操作的寄存器 (参见表 2-1)。这些寄存器是静态 RAM
特殊功能寄存器可以划分为两类,即:内核和外设。本 节介绍与 “内核”有关的特殊功能寄存器。与外设功能 操作有关的特殊功能寄存器将在相应的外设功能部件章 节中讲述。
2-2 PIC12F629/675 的数据存储
器映射
数据 地址
间接寻址
ADRESH ADCON0
(1)
00h
TMR0
PCL
STATUS
FSR
GPIO
PCLATH INTCON
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
TRISIO
PCLATH INTCON
PIE1
PCON
OSCCAL
WPU
IOC
EEDATA
EEADR
EECON1 EECON2 ADRESL
ANSEL
数据 地址
(1)
80h 81h 82h
83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch
(1)
9Dh
(2)
9Eh
(2)
9Fh A0h
通用
寄存器
64 Bytes
5Fh 60h
7Fh
存储区 0
未用的数据存储器单元,读做 0
1: 非实际存在的寄存器。 2: 仅限于 PIC12F675
DS41190C_CN 第 8 页  2004 Microchip Technology Inc.
访问
20h-5Fh
DFh E0h
FFh
存储区 1
PIC12F629/675

2-1 特殊功能寄存器汇总表

地址 名称
存储区 0
00h INDF
01h TMR0
02h PCL
03h STATUS
04h FSR
05h GPIO
06h
07h
08h
09h
0Ah PCLATH 0Bh INTCON GIE PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 0000 13
0Ch PIR1
0Dh
0Eh TMR1L
0Fh TMR1H
10h T1CON
11h
12h
13h
14h
15h
16h
17h
18h
19h CMCON
1Ah
1Bh
1Ch
1Dh
1Eh ADRESH
1Fh ADCON0
(1)
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
(3)
(3)
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
FSR 的内容寻址数据存储器来寻址该数据单元
Timer0 模块的寄存器
程序计数器 (PC)的低位字节
(2)
IRP
间接数据存储器地址指针
程序计数器的高 5 位的写缓冲器
EEIF ADIF
16 Tim er1 低位字节的保持寄存器
16 Tim er1 高位字节的保持寄存器
左对齐的 A/D 结果的高 8 位或右对齐的 A/D 结果的高 2 位
ADFM VCFG
(2)
RP1
TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
COUT
RP0 TO PD ZDCC
GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0 --xx xxxx 17
CINV CIS CM2 CM1 CM0
CMIF
CHS1 CHS0 GO/DONE
TMR1CS TMR1ON -000 0000 31
TMR1IF 00-- 0--0 15
ADON 00-- 0000 43,57
图注: - = 未用单元,读作 0, u = 未改变, x = 未知, q = 值根据条件而变。
阴影 = 未用
1: 非实际存在的寄存器。
2: 这些位是保留位且始终保持为 0 3: 仅限 PIC12F675
PORBOD
时的值
0000 0000 18,53 xxxx xxxx 25 0000 0000 17 0001 1xxx 11
xxxx xxxx 18
---0 0000 17
xxxx xxxx 28 xxxx xxxx 28
-0-0 0000 33
xxxx xxxx 40
2004 Microchip Technology Inc. DS41190C_CN 9
PIC12F629/675
2-1 特殊功能寄存器汇总表 (续)
地址 名称
存储区 1
80h INDF
81h OPTION_REG GPPU
82h PCL
83h STATUS
84h FSR
85h TRISIO
86h
87h
88h
89h
8Ah PCLATH 8Bh INTCON GIE PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 0000 13
8Ch PIE1 EEIE ADIE
8Dh
8Eh PCON
8Fh
90h OSCCAL CAL5CAL4CAL3CAL2CAL1CAL0
91h
92h
93h
94h
95h WPU
96h IOC
97h
98h
99h VRCON VREN
9Ah EEDATA
9Bh EEADR
9Ch EECON1
9Dh EECON2
9Eh ADRESL
9Fh ANSEL
(1)
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
未用
(1)
(3)
(3)
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
FSR 的内容寻址数据存储器来寻址该数据单元
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 12,26
程序计数器 (PC)的低位字节
(2)
IRP
间接数据存储器地址指针
程序计数器的高 5 位的写缓冲器
数据 EEPROM 数据寄存器
-数EEPROM 地址寄存器
EEPROM 控制寄存器 2
左对齐的 A/D 结果的低 2 位或右对齐的 A/D 结果的低 8 位
(2)
RP1
ADCS2 ADCS1 ADCS0 ANS3 ANS2 ANS1 ANS0 -000 1111 40,61
RP0 TO PD ZDCC0001 1xxx 11
TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0 --11 1111 17
WPU5 WPU4
IOC5 IOC4 IOC3 IOC2 IOC1 IOC0 --00 0000 19
VRR
CMIE
POR
WPU2 WPU1 WPU0 --11 -111 18
VR3 VR2 VR1 VR0
WRERR WREN WR RD ---- x000 46
TMR1IE 00-- 0--0 14
BOD ---- --0x 16
图注: - = 未用单元,读作 0, u = 未改变, x = 未知, q = 值根据条件而变。
阴影 = 未用
1: 非实际存在的寄存器。
2: 这些位是保留位且始终保持为 0 3: 仅限 PIC12F675
PORBOD
时的值
0000 0000 18,59
0000 0000 17
xxxx xxxx 18
---0 0000 17
1000 00-- 16
0-0- 0000 38 0000 0000 45
-000 0000 45
---- ---- 46 xxxx xxxx 40
DS41190C_CN 10 2004 Microchip Technology Inc.
PIC12F629/675
2.2.2.1 状态寄存器
如寄存器 2-1 所示,状态寄存器包含:
• ALU 的算术运算状态位
复位状态位
数据存储器 (SRAM)的存储区选择位
状态寄存器和其它寄存器一样,可以作为任何指令的目 标寄存器。如果状态寄存器作为一条指令的目标寄存 器,而影响了 ZDC C 位,将禁止对这三个位的写 操作。 根据器件逻辑对这些位置 1 或清零。 此外, TOPD 位不可写。 因此,执行将状态寄存器作为目标寄 存器的指令得出的结果会与预期的有所不同。
例如,执行 CLRF STATUS 会清零高三位并将 Z 位置 1。 这将使状态寄存器的值变为 000u u1uu (其中 u=
变)。 因此,若要改变状态寄存器的内容,建议仅使用 BCF
BSFSWAPF 或 MOVWF 指令,因为这些指令不影响任何 状态位。如需了解其它不影响状态位的指令,请参见
“指令集概述”。
1PIC12F629/675 不使用 IRP 和 RP1 位
STATUS<7:6>),应保持其为清零状
态。 建议不要使用这些位,因为这可能会 影响与未来产品的向上兼容性。
2:在减法操作中, C DC 位分别作为借位
和半借位位。示例见 SUBLW SUBWF 指 令。
寄存器 2-1: STATUS —状态寄存器 (地址:03h 或 83h)
保留 保留
IRP RP1 RP0 TO PD ZDCC
bit 7 bit 0
bit 7 IRP:这些位是保留位且应始终保持为 0
bit 6 RP1:这些位是保留位且应始终保持为 0
bit 5 RP0:寄存器存储区选择位 (用于直接寻址)
0 = 存储区 0 00h - 7Fh 1 = 存储区 1 80h - FFh
bit 4 TO
bit 3 PD:掉电标志位
bit 2 Z:全零位
bit 1 DC:半进位 / 借位标志位 (ADDWFADDLWSUBLWSUBWF 指令)
bit 0 C进位 / 借位标志位 (ADDWFADDLWSUBLWSUBWF 指令)
:超时位
1 = 上电、执行 CLRWDT SLEEP 指令后置位 0 = 发生了 WDT 超时
1 = 上电或执行 CLRWDT 指令之后置位 0 = 执行了 SLEEP 指令
1 = 算术或逻辑操作的结果为零 0 = 算数或逻辑操作的结果不为零
作为借位
1 = 结果的低 4 位向高位发生了进位 0 = 结果的低 4 位向高位没有进位
1 = 结果的最高位发生了进位 0 = 结果的最高位没有发生进位
位时极性相反。
注: 作为借位
于移位指令 (RRFRLF),此位的装载值为源寄存器的最高位或最低位。
R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
位时极性相反。减法指令通过加上第二个操作数的 2 的补码来实现的。对
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 11
PIC12F629/675
2.2.2.2 OPTION 寄存器
OPTION 寄存器是可读写寄存器,包含各种控制位以配
置:
• TMR0/WDT 预分频器
外部 GP2/INT 中断
• TMR0
• GPIO 上的弱上拉
寄存器 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
GPPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
bit 7 bit 0
bit 7 GPPU: GPIO 上拉使能位
1 = 禁止 GPIO 上拉 0 = 通过各个端口的锁存值使能 GPIO 上拉
bit 6 INTEDG:中断边沿选择位
1 = GP2/INT 引脚上电平的上升沿触发中断 0 = GP2/INT 引脚上电平的下降沿触发中断
bit 5 T0CS: TMR0 时钟源选择位
1 = 选择 GP2/T0CKI 引脚上的传输信号作为时钟源 0 = 选择内部指令周期时钟 (CLKOUT)
bit 4 T0SE: TMR0 时钟源边沿选择位
1 = GP2/T0CKI 引脚上电平的下降沿递增 0 = GP2/T0CKI 引脚上电平的上升沿递增
bit 3 PSA预分频器分配位
1 = 将预分频器分配给 WDT 0 = 将预分频器分配给 TIMER0 模块
bit 2-0 PS2:PS0:预分频器的分频比选择位
位值 WDT 分频比
000 001 010 011 100 101 110 111
TMR0 分频比
1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256
注: 若需 TMR0 获得 1:1 的预分频值,应将 PSA
位(OPTION<3>)置 1,以将预分频器分 配给 WDT 参见第 4.4 节。
1 : 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 12  2004 Microchip Technology Inc.
PIC12F629/675
2.2.2.3 INTCON 寄存器
INTCON 寄存器是可读写寄存器,包含对 TMR0 寄存器
溢出、GPIO 端口变化和外部 GP2/INT 引脚中断的各种 使能位和标志位。
注: 当有中断条件产生时,无论相应中断使能
位或全局使能位 GIE INTCON<7>)的状 态如何,中断标志位都将置位。用户软件应 确保在允许中断之前将相应的中断标志位 清零。
寄存器 2-3: INTCON—中断控制寄存器 (地址: 0Bh 或 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 GPIE T0IF INTF GPIF
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: GP2/INT 外部中断使能位
1 = 使能 GP2/INT 外部中断 0 = 禁止 GP2/INT 外部中断
bit 3 GPIE:端口电平变化时中断使能位
1 = 使能 GPIO 端口电平变化时中断 0 = 禁止 GPIO 端口电平变化时中断
bit 2 T0IF: TMR0 溢出中断标志位
1 = TMR0 寄存器已经溢出 (必须用软件清零) 0 = TMR0 寄存器没有溢出
bit 1 INTF: GP2/INT 外部中断标志位
1 = 发生 GP2/INT 外部中断 (必须用软件清零) 0 = 未发生 GP2/INT 外部中断
bit 0 GPIF:端口电平变化时中断标志位
1 = GP5:GP0 引脚中至少有一个引脚电平发生了变化 (必须用软件清零) 0 = GP5:GP0 引脚电平均未发生变化
1
2
1:必须使能 IOC 寄存器以允许电平变化中断。
2:当 TIMER0计满回零时, T0IF位被置位。 复位时 TIMER0的状态不变,应在清零
T0IF位前初始化。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 13
PIC12F629/675
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 转换器中断使能位 (仅限 PIC12F675)
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 溢出中断
注: 要使能任何一个外设中断,必须将 PEIE
INTCON<6>)位置 1
CMIE
TMR1IE
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 14  2004 Microchip Technology Inc.
2.2.2.5 PIR1 寄存器
如寄存器 2-5 所示, PIR1 寄存器包含中断标志位。
注: 当有中断条件产生时,无论相应中断使能
位或全局使能位 GIE INTCON<7>)的状 态如何,中断标志位都将置位。 用户软件 应确保在允许中断之前将相应的中断标志 位清零。
寄存器 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
bit 7 bit 0
bit 7 EEIF EEPROM 写操作中断标志位
1 = 写操作完成 (必须用软件清零) 0 = 写操作未完成或还没开始
bit 6 ADIF: A/D 转换器中断标志位 (仅限 PIC12F675)
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 寄存器没有溢出
CMIF
PIC12F629/675
TMR1IF
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 15
PIC12F629/675
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
bit 7 bit 0
ó
POR
BOD
bit 7-2
bit 1
bit 0
未用: 读作 0
POR
上电复位状态位
1 = 未发生上电复位 0 = 发生上电复位 (必须在上电复位发生后用软件置位)
BOD欠压检测状态位
1 = 没发生欠压检测 0 = 发生欠压检测 (必须在欠压检测发生后用软件置位)
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2.2.2.7 OSCCAL 寄存器
振荡器校准寄存器 (OSCCAL)用于校准内部 4 MHz 振荡器。它包含 6 个位,可用于将频率向上或向下调整 至 4 MHz
OSCCAL 寄存器位如寄存器 2-7 所示。
寄存器 2-7: OSCCA—振荡器校准寄存器 (地址: 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 = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 16  2004 Microchip Technology Inc.
PIC12F629/675

2.3 PCL PCLATH

程序计数器 (PC)宽度为 13 位。其低位字节来自可读 写的 PCL 寄存器。高位(PC<12:8>)字节来自
PCLATH,不可直接读写。任何复位都将清零 PC。图 2- 3 显示了装载 PC 的两种情况。图 2-3 中上方的示例显
示了在写 PCLPCLATH<4:0> PCH)时装载 PC 的 过程。图 2-3 中下方的示例显示了执行 CALL GOTO指 令(PCLATH<4:3> PCH)时装载 PC 的过程。
2-3 在不同情况下装载 PC
PCH PCL
12 8 7 0
PC
PCLATH<4:0>
5
PCLATH
PCH PCL
12 11 10 0
PC
2
87
PCLATH<4:3>
PCLATH
11
8
PCL
作为目标寄存器 指令
ALU 结果
GOTO, CALL
操作码 <10:0>
2.3.2 堆栈
PIC12F629/675 系列有一个 8 级深、 13 位宽的硬件堆
栈 (参见图 2-1)。该堆栈既不占用程序存储空间也不 占用数据存储空间,且栈指针不能读写。当执行 CALL 指令或中断引起程序跳转时,PC 值会被压入堆栈。执行 RETURNRETLW 或 RETFIE 指令时,PC 值会从堆栈弹 出。进 栈 (PUSH)或 出 栈 (POP)操作不会影响 PCLATH
此堆栈的工作原理犹如循环缓冲器。即当压栈 8 次之 后,第 9 次压栈时进栈的数据将覆盖第 1 次压栈存储的 数据,而第 10 次压栈时进栈的数据将覆盖第 2 次压栈 存储的数据 (依此类推)。
1:不存在显示堆栈上溢或堆栈下溢情形的状
态位。
2:不存在称为 PUSH POP 的指令或助记
符。PUSH或POP是执行CALLRETURN、 RETLWRETFIE 指令或指向中断向量地 址时发生的操作。
2.3.1 计算 GOTO 指令
计算 GOTO 指令是通过向程序计数器加一个偏移量
ADDWF PCL)来实现的。 当通过执行计算 GOTO 指令
进行读表操作时,要注意表地址是否超过了 PCL 存储器 的寻址范围 (每块 256 个字节)。参见应用笔记
Implementing a Table Read”(AN556)。
2004 Microchip Technology Inc. DS41190C_CN 17
PIC12F629/675

2.4 间接寻址、 INDF FSR 寄存器

INDF 寄存器不是实际存在的寄存器。寻址 INDF 寄存器 会导致间接寻址。
使用 INDF 寄存器可以实现间接寻址。任何使用 INDF 寄存器的指令实际上访问的是文件选择寄存器 (File Select registerFSR)指向的数据。间接读 INDF 本身 会产生 00h 而使用间接寻址对 INDF 寄存器进行写操 作将导致执行一个空操作 (虽然可能会影响状态位)。 通过将 8 FSR 寄存器和 IRP 位(STATUS<7>)进 行 组合可获得有效的 9 位地址,如图 2-4 所示。

2-4:直/ 间接寻址 PIC12F629/675

(1)
RP1
RP0 6
存储区选择 单元选择
来自操作码
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
存储区选择
180h
7
FSR 寄存器
单元选择
0
数据 存储器
7Fh
存储区 0 存储区 1 存储区 2 存储区 3
有关存储器映射的详细介绍,参见图 2-2。 注 1RP1 IRP 位是保留位,始终保持清零。
未使用
1FFh
DS41190C_CN 18  2004 Microchip Technology Inc.
PIC12F629/675

3.0 GPIO 端口

可用的通用 I/O 引脚多达 6 个。根据使能外设的不同, 部分或所有引脚不一定能用作通用I/O引脚。一般来说, 当使能某一外设时,与它相关的引脚可能不能用作通用 I/O 引脚。
注: 有关 I/O 端口的其他信息可参见
PICmicroDS33023A_CN)

3.1 GPIO TRISIO 寄存器

GPIO 是一个 6 位宽的双向端口。其相应数据方向寄存 器为 TRISIO。将 TRISIO 中的相应位置 1 可将相应的 GPIO 引脚设置为输入引脚 (即可将相应的输出驱动器 设为高阻模式)。将 TRISIO 中相应位清零可将相应的 GPIO 引脚设置为输出引脚 (即将输出锁存器中的数据 置于所选定的引脚上)。GP3 是个例外,它只能作为输 入引脚,其 TRISIO 位始终读作 1。例 3-1 显示了如何 初始化 GPIO
GPIO 寄存器将读取引脚的状态,而写该寄存器将会 写入端口锁存器。所有写操作都是读-修改-写操作。 因此,写一个端口就意味着读该端口引脚,修改读取 值,然后再写入端口数据锁存器。当 MCLREN 1 时,
GP3 读作 0。
TRISIO 寄存器控制 GP 引脚的方向,即便在它们作为
模拟输入引脚时也是如此。当将这些引脚作为模拟输入 引脚时,用户必须确保 TRISIO 寄存器中的位保持置位
®
中档单片机系列参考手册 》
状态。 配置为模拟输入引脚的 I/O 引脚始终读作 0。
注: 要将模拟通道配置为数字输入通道,必须
初始化 ANSEL9Fh)和 CMCON(19h) 寄存器。配置为模拟输入的引脚读作 0。 ANSEL 寄存器是为 PIC12F675 定义的。
3-1:初GPIO
bcf STATUS,RP0 ;Bank 0 clrf GPIO ;Init GPIO movlw 07h ;Set GP<2:0> to movwf CMCON ;digital IO bsf STATUS,RP0 ;Bank 1 clrf ANSEL ;Digital I/O movlw 0Ch ;Set GP<3:2> as inputs movwf TRISIO ;and set GP<5:4,1:0>
;as outputs

3.2 引脚的其它功能

PIC12F629/675 上的所有 GPIO 引脚都具有引脚上电平 变化触发中断的功能,且所有的 GPIO 引脚 (除 GP3 以外)都具备弱上拉功能。在接下来的两个小节中将对 这些功能作出描述。
3.2.1 弱上拉
GPIO 的每个引脚(除 GP3 以外)都带有独立且可配置
的内部弱上拉功能。控制位 WPUx 用以使能或禁止各个 上拉电路。参见寄存器 3-3 当将端口引脚配置为输出 引脚时,将自动关闭弱上拉。在上电复位时,弱上拉由
位(OPTION<7>)禁止。
GPPU
寄存器 3-1: GPIO-GPIO 寄存器 ( 地址: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: 未用位:读作 0
bit 5-0: GPIO<5:0>:通用 I/O 引脚。
1 = 端口引脚电平 >V 0 = 端口引脚电平 <VIL
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0
IH
2004 Microchip Technology Inc. DS41190C_CN 第 19
PIC12F629/675
寄存器 3-2 TRISO GPIO 三态寄存器 (地址: 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: TRISIO<5:0>:通用 I/O 三态控制位
1 = GPIO 引脚被配置为输入引脚 (三态) 0 = GPIO 引脚被配置为输出引脚。
注: TRISIO<3> 始终读做 1
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
寄存器 3-3 WPU -弱上拉寄存器 (地址 : 95h
U-0 U-0 R/W-1 R/W-1 U-0 R/W-1 R/W-1 R/W-1
WPU5 WPU4 WPU2 WPU1 WPU0
bit 7 bit 0
TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0
bit 7-6 未用位:读作 0
bit 5-4 WPU<5:4>:弱上拉寄存器位
1= 使能上拉 0 = 禁止上拉
bit 3 未用位:读作 0
bit 2-0
WPU<2:0>:弱上拉寄存器位
1 = 使能上拉 0 = 禁止上拉
1:为了使能单个上拉必须先使能全局 GPPU
2:如果引脚处于输出模式 (TRISIO = 0),则会自动禁止弱上拉器件。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 20 2004 Microchip Technology Inc.
PIC12F629/675
3.2.2 引脚电平变化中断
每个 GPIO 引脚都可单独配置为电平变化中断引脚。控 制位 IOC 用来使能或禁止各个引脚的中断功能。参见寄 存器 3-4。上电复位时引脚的电平变化中断被禁止。
对于已使能电平变化中断的引脚,引脚上的值与上次读 GPIO 的锁存值相比较。与上次读取值不匹配的输出将 执行 “或”运算,并根据运算结果设置 INTCON 寄存 器中的 GP 端口电平变化中断位 (GPIF)。
该中断可将器件从休眠模式唤醒。用户可用以下方式在 中断服务程序中清除该中断:
a) 任何对 GPIO 的读写操作。这将结束不匹配状况。 b) 将标志位 GPIF 清零。
不匹配状况将继续将标志位 GPIF 1。读 GPIO 将会 终止不匹配状况并将标志位 GPIF 清零。
注: 如果在执行一个读操作 (Q2 周期开始)时
发生了 I/O 引脚电平变化,那么 GPIF 中断 标志位可能不会被置 1
寄存器 3-4: IOC -电平变化中断 GPIO 寄存器 ( 地址 : 96h)
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IOC5 IOC4 IOC3 IOC2 IOC1 IOC0
bit 7 bit 0
bit 7-6 未用位:读作 0
bit 5-0 IOC<5:0>:GPIO 引脚电平变化触发中断控制位
1 = 使能引脚电平变化触发中断 0 = 禁止引脚电平变化触发中断
1:为了识别单个中断,必须置位全局中断使能位 (GIE)。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 21
PIC12F629/675

3.3 引脚描述及框图

每个 GPIO 引脚都与其它功能复用。我们在此简要介绍 这些引脚及其复用功能。有关比较器或 A/D 等独立功能 的具体信息,请参见数据手册中的相关章节。
3.3.1 GP0/AN0/CIN+
3-1是该引脚的示意图。GP0可配置为下列功能之一:
通用 I/O 引脚
• A/D 转换器的模拟输入引脚 (仅限 PIC12F675)
比较器的模拟输入引脚
3.3.2 GP1/AN1/CIN-/VREF
3-1是该引脚的示意图。GP1可配置为下列功能之一:
通用 I/O 引脚
• A/D 转换器的模拟输入引脚 (仅限 PIC12F675)
比较器的模拟输入引脚
• A/D 转换器的参考电压输入引脚 (仅限 PIC12F675

3-1 GPO GP1 引脚示意图

模拟
数据总线
WPU
WPU
端口
TRISIO
TRISIO
端口
IOC
IOC
D
Q
CK
Q
D
Q
CK
Q
D
Q
CK
Q
D
Q
CK
Q
输入模式
GPPU
模拟
输入模式
Q
Q
VDD
弱上拉
VDD
I/O 引脚
VSS
D
EN
D
电平变化中断
到比较器
A/D 转换器
EN
读端口
DS41190C_CN 22 2004 Microchip Technology Inc.
PIC12F629/675
3.3.3 GP2/AN2/T0CKI/INT/COUT
3-2是该引脚的示意图。GP2可配置为下列功能之一:
通用 I/O 引脚
• A/D 转换器的模拟输入引脚 (仅限 PIC12F675)
• TMR0 的时钟输入引脚
外部边沿触发中断
来自比较器的数字输出

3-2 GP2 示意图

模拟
数据总线
WPU
WPU
端口
TRISIO
TRISIO
D
Q
CK
Q
Q
D
CK
Q
D
Q
CK
Q
输入模式
COUT
使能
COUT
GPPU
1
0
模拟
输入模式
模拟
输入
模式
VDD
弱上拉
VDD
I/O
VSS
3.3.4 GP3/MCLR
/VPP
3-3是该引脚的示意图。GP3可配置为下列功能之一:
通用输入引脚
主清零复位引脚

3-3 GP3 示意图

数据总线
TRISIO
端口
IOC
IOC
电平变化中断
复位
VSS
Q
D
CK
Q
MCLRE
MCLRE
Q
EN
Q
EN
读端口
I/O
VSS
D
D
端口
IOC
IOC
电平变化中断
Q
D
CK
Q
TMRO
INT
A/D 转换器
Q
Q
读端口
D
EN
D
EN
2004 Microchip Technology Inc. DS41190C_CN 第 23
PIC12F629/675
3.3.5 GP4/AN3/T1G/OSC2/CLKOUT
3-4是该引脚的示意图。GP4可配置为下列功能之一:
通用 I/O 引脚
• A/D 转换器的模拟输入引脚 (仅限 PIC12F675)
• TMR1 选通输入引脚
连接晶振 / 谐振器
时钟输出引脚

3-4 GP4 示意图

模拟
数据总线
WPU
WPU
端口
TRISIO
TRISIO
端口
IOC
IOC
电平变化中断
输入模式
Q
D
CK
Q
OSC1
OSC/4
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
F
GPPU
CLKOUT
使能
CLKOUT
使能
INTOSC/ RC/EC
CLKOUT
使能
模拟
输入模式
CLK
模式
1
0
(2)
Q
Q
振荡 电路
(1)
EN
EN
VDD
弱上拉
VDD
I/O
VSS
D
D
3.3.6 GP5/T1CKI/OSC1/CLKIN
3-5是该引脚的示意图。GP5可配置为下列功能之一:
通用 I/O 引脚
• TMR1 的时钟输入引脚
连接晶振 / 谐振器
时钟输入引脚

3-5 GP5 示意图

INTOSC/
数据总线
WPU
WPU
端口
TRISIO
TRISIO
端口
IOC
IOC
电平变化中断
模式
TMR1LPEN
Q
D
CK
Q
GPPU
Q
D
CK
Q
D
Q
CK
Q
Q
D
CK
Q
OSC2
INTOSC/
模式
振荡 电路
Q
Q
读端口
(1)
VDD
弱上拉
VDD
I/O
VSS
(2)
D
EN
D
EN
TMR1 T1G
读端口
A/D 转换器
1: CLK 模式是 XTHSLPLPTMR1 和 CLKOUT 使能。
2: 带有 CLKOUT 选项。
TMR1 CLKGEN
1: 使能 Timer1 LP 振荡器
2: 当使用 LP 振荡器的 Timer1 时,施密特触发器被
旁路。
DS41190C_CN 24 2004 Microchip Technology Inc.

3-1:与GPIO 相关的寄存器汇总

PIC12F629/675
地址 名称
05h GPIO GP5 GP4 GP3 GP2 GP1 GP0 --xx xxxx --uu uuuu
0Bh/8Bh INTCON GIE
19h CMCON
81h OPTION_REG GPPU
85h TRISIO
95h WPU
96h IOC
9Fh ANSEL
图注: x= 未知、 u= 未改变、 -= 未用的单元,读作 0 阴影单元表示未被 GPIO 使用。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
PEIE T0IE INTE GPIE T0IF INTF GPIF 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 TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0 --11 1111 --11 1111 WPU5 WPU4 WPU2 WPU1 WPU0 --11 -111 --11 -111 — IOC5IOC4IOC3IOC2IOC1IOC0--00 0000 --00 0000 ADCS2 ADCS1 ADCS0 ANS3 ANS2 ANS1 ANS0 -000 1111 -000 1111
POR
BOD 时的值
所有其它复
位时的值
2004 Microchip Technology Inc. DS41190C_CN 25
PIC12F629/675
注:
DS41190C_CN 26 2004 Microchip Technology Inc.
PIC12F629/675

4.0 TIMER0 模块

Timer0 模块定时器 / 计数器有如下特点:
• 8 位定时器 / 计数器
可读写
• 8 位软件可编程预分频器
内部或外部时钟选择
• FFh 到 00h 的溢出中断
外部时钟的边沿选择
4-1 Timer0 模块和预分频器 (与 WDT 共用)的 框图。
注: 有关 Timer0 模块的更多信息可参考
PICmicroDS33023A_CN)。

4.1 Timer0 工作原理

通过清零 T0CS 位(OPTION_REG<5>)选择定时器 模式。在定时器模式下,Timer0 模块在每个指令周期递 增 (不带预分频器)。如果对 TMR0 执行写操作,在接 下来的两个指令周期 Timer0 禁止递增。用户可将一个 调整值写入 TMR0 寄存器来避开这一问题。

4-1 TIMER0/WDT 预分频器的框图

CLKOUT
(= FOSC/4)
T0CKI
引脚
T0SE
®
中档单片机系列参考手册》
0
1
T0CS
0
1
8-
预分频器
通过置位 T0CS 位(OPTION_REG<5>)选择计数器 模式。在计数器模式下, Timer0 模块可在 GP2/T0CKI 引脚的每个上升沿或下降沿加计数。具体是上升沿还是 下降沿取决于时钟源边沿选择(TOSE)控 制 位
OPTION_REG<4>)。清零 TOSE 位选择上升沿。
注: 计数器模式对外部时钟信号有一定的要
求。 有关这些要求的更多信息可参考
PICmicro
®
中档单片机系列参考手册》
DS33023A_CN)。

4.2 Timer0 中断

TMR0 寄存器定时器 / 计数器产生从 FFh 00h 的溢 出时,产生 Timer0 中断。此溢出将 T0IF 位置位。可以 通过清零 T0IE 位(INTCON<5>)来屏蔽该中断。在重 新允许中断之前,必须在软件中用 Timer0 模块的中断 服务程序将 T0IF 位(INTCON<2>)清零。休眠状态 下,由于定时器被关闭,所以 Timer0 中断无法唤醒单 片机。
数据总线
1
SYNC 2
周期
0
PSA
8
TMR0
溢出时
置位标志位 T0IF
PSA
看门狗 定时器
WDTE
1T0SET0CSPSAPS0-PS2 Option 寄存器中的位。
2004 Microchip Technology Inc. DS41190C_CN 第 27
8
PS0 - PS2
1
0
PSA
WDT
超时
PIC12F629/675

4.3 Timer0 与外部时钟配合使用

当不使用预分频器时,外部时钟输入与预分频器输出相 同。在内部相位时钟的 Q2 Q4 周期对预分频器输出 进行采样可实现 T0CKI 与内部相位时钟的同步。 因此,
要求 T0CKI 引脚上的信号高、低电平分别至少保持
OSC(加上 20ns 的 RC 延时)。参阅所需器件的电气
2T
规范。
注: 要将模拟通道配置为数字输入通道,必须
ANSEL 9Fh)和 CMCON 19h)寄 存器进行初始化。配置为模拟输入的引脚 读作 0ANSEL 寄存器是为 PIC12F675 定 义的。
寄存器 4-1: OPTION_REG—OPTION 寄存器 (地址: 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
GPPU
bit 7 bit 0
bit 7 GPPU
1 = GPIO 上拉被禁止 0 = GPIO 上拉通过端口锁存值使能
bit 6 INTEDG:中断边沿选择位
1 = GP2/INT 引脚的上升沿发生中断 0 = GP2/INT 引脚的下降沿发生中断
bit 5 T0CS: TMR0 时钟源选择位
1 = GP2/T0CKI 引脚上的传输 0 = 内部指令周期时钟 (CLKOUT
bit 4 T0SE: TMR0 时钟源边沿选择位
1 = GP2/T0CKI 引脚的下降沿递增 0 = GP2/T0CKI 引脚的上升沿递增
bit 3 PSA预分频器分配位
1 = 将预分频器分配给 WDT 0 = 将预分频器分配给 TIMER0 模块
bit 2-0 PS2:PS0:预分频比率选择位
INTEDG T0CS T0SE PSA PS2 PS1 PS0
GPIO 上拉使能位
位值 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 = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 28  2004 Microchip Technology Inc.
PIC12F629/675

4.4 预分频器

器件具备一个 8 位计数器,可作为 Timer0 模块的预分 频器,或看门狗定时器的后分频器。为简化起见,在本 数据手册中通称该计数器为 “预分频器”。通过软件设 置 PSA 控制位 (OPTION_REG<3>)来控制预分频器 的分配。清零 PSA 将预分频器分配给 Timer0。预分频 值可通过 PS2:PS0 位(OPTION_REG<2:0>)选择。
该预分频器不可读写。当分配给 Timer0 模块时,所有 对 TMR0 寄存器执行写操作的指令 (例如 CLRF 1MOVWF 1BSF 1x 等)将清零预分频器。当分配给 WDT 时,执行 CLRWDT 指令将同时清零预分频器和看 门狗定时器。
4.4.1 预分频器分配的切换
预分频器分配是完全在软件控制下进行的(即它可以在 程序执行时进行实时修改)。为避免发生器件的意外复 位,在预分频器的分配从 Timer0 更改为 WDT 时,必须 执行以下指令序列 (例 4-1)。
4-1 更改预分频器
TIMER0WDT
bcf STATUS,RP0 ;Bank 0 clrwdt ;Clear WDT clrf TMR0 ;Clear TMR0 and
; prescaler
bsf STATUS,RP0 ;Bank 1
movlw bÕ0010 ;Required if desired movwf OPTION_REG ; PS2:PS0 is clrwdt ; 000 or 001
; movlw bÕ0010 ;Set postscaler to movwf OPTION_REG ; desired WDT rate bcf STATUS,RP0 ;Bank 0
要将预分频器从 WDT 更改为 TMR0 模块,使用例 4-2 中的序列。 即使 WDT 禁止也必须执行该指令序列。
4-2 更改预分频器
WDTTIMER0
clrwdt ;Clear WDT and
; postscaler bsf STATUS,RP0 ;Bank 1
movlw b’xxxx0xxx’ ;Select TMR0,
; prescale, and
; clock source movwf OPTION_REG ; bcf STATUS,RP0 ;Bank 0

4-1:与TIMER0 相关的寄存器

地址 名称
01h TMR0
0Bh/8Bh INTCON GIE PEIE T0IE
81h OPTION_REG GPPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
85h TRISIO
图注: - = 未实现位,读做 0u = 未改变、 x = 未知。
阴影单元表示未被 Timer0 模块使用。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Time r0 模块寄存器
INTE GPIE T0IF INTF GPIF 0000 0000 0000 000u
TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0 --11 1111 --11 1111
POR
BOD 时的值
xxxx xxxx uuuu uuuu
所有其它复
位时的值
2004 Microchip Technology Inc. DS41190C_CN 29
PIC12F629/675

5.0 带选通控制的 TIMER1 模块

PIC12F629/675 器件具备一个 16 位定时器。图 5-1 所 示为 Timer1 模块的基本框图。 Timer1 具有以下特点:
• 16 位定时器 / 计数器 (TMR1H:TMR1L)
可读写
内部或外部时钟选择
同步或异步操作
从 FFFFh 到 0000h 的溢出中断
溢出时唤醒 (异步模式)
可选择外部使能输入 (T1G
可选 LP 振荡器

5-1 TIMER1 框图

溢出时置位
TMR1IF 标志位
TMR1H
TMR1
TMR1L
如寄存器 5-1 所示,Timer1 控制寄存器(T1CON)用 于使能 / 禁止 Timer1 并选择 Timer1 模块的不同功能。
注: 有关 Timer0 模块的更多信息可参考
PICmicro®中档单片机系列参考手册》 (DS33023A_CN)。
TMR1ON TMR1GE
TMR1ON TMR1GE
0
同步
时钟输入
T1G
1
OSC1
OSC2
不带 CLKOUT
INTOSC
T1OSCEN
LP
LP 振荡器
OSC/4
F
内部
时钟
1
0
TMR1CS
T1SYNC
预分频器
1, 2, 4, 8
2
T1CKPS<1:0>
同步
检测
休眠输入
DS41190C_CN 30  2004 Microchip Technology Inc.
PIC12F629/675

5.1 Timer1 工作模式

Timer1 可以有三种工作模式:
带有预分频器的 16 位定时器
• 16 位同步计数器
• 16 位异步计数器
在定时器工作模式下, Timer1 在每个指令周期进行递 增计数。在计数器工作模式下, Timer1 在外部时钟输 入 T1CKI 的每个上升沿进行递增计数。此外,计数器 模式时钟可以与单片机系统时钟同步或异步运行。
在计数器和定时器模块中,计数器 / 定时器时钟可通过
输入引脚进行选通控制。
T1G
如果需要外部时钟振荡器 (且单片机正在使用不带 CLKOUT INTOSC),Timer1 可以使用 LP 振荡器作 为时钟源。
注: 在计数器模式下,计数器第一次上升沿递
增计数之前必须先记录一个下降沿。

5-2 TIMER1 加计数边沿

T1CKI = 1
TMR1 使能时

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 具有四个预分频器选项,允许对时钟输入进行 124、或 8 分频。T1CKPS 位(T1CON<5:4>)对
预分频计数器进行控制。对预分频计数器不能直接进行 读写操作;但是,通过写入 TMR1H TMR1L 可清零 预分频计数器。
T1CKI = 0
TMR1 使能时
1: 箭头表示计数器递增。
2: 在计数器模式下,计数器在第一次时钟信号上升沿进行递增计数前应记录一个下降沿。
2004 Microchip Technology Inc. DS41190C_CN 31
PIC12F629/675
寄存器 5-1 T1CONTIMER1 控制寄存器 (地址: 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 TMR1GETimer1 选通使能位
如果 此位被忽略 如果 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 Timer1 外部时钟输入同步控制位
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
TMR1ON = 0
TMR1CS TMR1ON
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 32  2004 Microchip Technology Inc.
PIC12F629/675

5.4 Timer1 工作在异步计数器模式

如果置位控制位 T1SYNCT1CON<2>),外部时钟输 入将不同步。定时器继续进行与内部相位时钟异步的加 计数。在休眠状态下,定时器将继续运行并在溢出时产 生中断,唤醒处理器。但是,在用软件对定时器进行读 / 写操作时应该特别小心 (第 5.4.1 节)。
注: 要将模拟通道配置为数字输入通道,必须
ANSEL 9Fh)和 CMCON 19h)寄 存器初始化。配置为模拟输入的引脚读作
0。ANSEL寄存器是为PIC12F675定义的。
5.4.1 在异步计数器模式下读写 TIMER1
当定时器采用外部异步时钟工作时,对 TMR1H TMR1L 的读操作将确保有效 (由硬件完成)。但是用
户应注意,通过两个 8 位值来读取 16 位定时器本身就 会产生某些问题,因为定时器可能在读操作之间产生溢 出。
对于写操作,建议用户先停止定时器再写入期望值。如 果计数器正进行递增计数,此时向其写入可能会导致写 冲突的发生,从而在定时器寄存器中产生不可预测的 值。
®
用户在读 16 位值时应当谨慎对待。《PICmicro 片机系列参考手册》(DS33023A_CN)中的例 12-212-3 显示了如何对工作在异步模式下的 Timer1 进行读 写操作。
中档单

5.5 Timer1 振荡器

OSC1 (输入)和 OSC2 (放大器输出)引脚之间内 置有一个晶体振荡器电路。通过将控制位 T1OSCEN
T1CON<3>)置 1 可使能该振荡电路。该振荡电路是
低功耗振荡电路,额定频率最高可达 37 kHz。在休眠模 式中,它仍可继续工作。该振荡电路主要适用于 32 kHz 晶振。表 9-2 显示了 Timer1 振荡器的可选电容。
Timer1 的振荡器与系统 LP 振荡器共用。因此,只有当 系统时钟来自于内部振荡器时, Timer1 才能采用该模 式。与系统 LP 振荡器相同,用户必须提供软件延时以 确保振荡器的正常起振。
Timer1 振荡器被使能时,TRISIO4 和 TRISIO5 置 1 GP4 GP5 读作 0,而 TRISIO4 TRISIO5 读作 1
注: 使用前,振荡器需要一定的起振和稳定时
间。因此,在 使 能 Timer1 之前应确保 T1OSCEN 1,并允许适当的延时。

5.6 Timer1 工作在休眠模式

只有设定为异步计数器模式时,Timer1 才可在休眠模式 下工作。在该模式下,可使用外部晶振或时钟源使计数 器进行加计数。必须将定时器设定如下以唤醒器件:
使能 Timer1 (T1CON<0>)
• TMR1IE 位(PIE1<0>)置 1
• PEIE 位(INTCON<6>)置 1
器件将在溢出时被唤醒。 如果 GIE 位(INTCON<7>)1,器件将在溢出时被唤醒并跳转至中断服务程序。

5-1 TIMER1 作为定时器 / 计数器时的相关寄存器

地址 名称
0Bh/8Bh INTCON GIE PEIE
0Ch PIR1
0Eh TMR1L
0Fh TMR1H
10h T1CON
8Ch PIE1 图注: x = 未知、 u= 未改变、 -= 未实现位,读作 0 阴影单元表示未被 Timer1 模块使用。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
T0IE INTE GPIE T0IF INTF GPIF 0000 0000 0000 000u
EEIF ADIF
16 TMR1 寄存器低有效字节的保持寄存器 16 TMR1 寄存器高有效字节的保持寄存器
TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC
EEIE ADIE
CMIF
CMIE
TMR1CS TMR1ON -000 0000 -uuu uuuu
POR
BOD 时的值
TMR1IF 00-- 0--0 00-- 0--0
xxxx xxxx uuuu uuuu xxxx xxxx uuuu uuuu
TMR1IE 00-- 0--0 00-- 0--0
所有其它复
位时的值
2004 Microchip Technology Inc. DS41190C_CN 33
PIC12F629/675
注:
DS41190C_CN 34 2004 Microchip Technology Inc.
PIC12F629/675

6.0 比较器模块

PIC12F629/675 器件有一个模拟比较器。比较器的输 入端与 GPO GP1 引脚复用。模块中带有片上比较 器参考电压,该电压也可作为比较器的输入电压。此
外,可以将 GP2 配置为比较器的输出引脚。如寄存 器 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
—COUT— CINV CIS CM2 CM1 CM0
bit 7 bit 0
bit 7 未用位:读作 0
bit 6 COUT:比较器输出位
CINV = 0 时:
1 = V
IN+ > VIN- IN+ < VIN-
0 = V
CINV = 1 时:
1 = V
IN+ < VIN- IN+ > VIN-
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 = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 35
PIC12F629/675

6.1 比较器工作原理

6-1所示为单比较器及模拟输入电平和数字输出之间 的关系。如果 VIN+ 上的模拟输入小于 VIN- 上的模拟输 入,那么比较器将输出数字低电平。如果 VIN+ 上的模 拟输入大于 V 高电平。图 6-1 中比较器输出的阴影部分表示由于输入 偏移和响应时间所造成的不确定区。
注: 要将 CIN+ CIN- 引脚用作模拟输入引脚,
通过置位 CINV 位(CMCON<4>)可以改变比较器输 出的极性。清零 CINV 将导致输出不翻转。表 6-1 所示 为不同输入条件和极性位的输出状态的完整信息。
IN- 上的模拟输入,那么比较器将输出数字
必须对 CMCON19h)寄存器中的适当位 进行编程。
6-1 不同输入条件的输出状态
输入条件
IN- > VIN+ 00
V
V
IN- < VIN+ 01
V
IN- > VIN+ 11
VIN- < VIN+ 10
CINV COUT

6-1 单比较器

V
IN+
IN-
V
IN-
V
+
输出
VIN+
输出
注: CINV 位(CMCON<4>)已被清零。
DS41190C_CN 36 2004 Microchip Technology Inc.
PIC12F629/675

6.2 比较器配置

据方向。如果改变比较器模式,在指定的时间段内,比 较器的输出电平可能无效。参见第 12.0 节中的电气规
比较器有 8 种工作模式。寄存器 6-1 所示的 CMCON 寄 存器可用于选择工作模式。图 6-2 给出了这 8 种可能的 模式。 TRISIO 寄存器控制每种模式下比较器引脚的数
范。
注: 改变比较器模式期间应禁止比较器的中
断。否则可能会产生错误的中断。

6-2:比I/O 工作模式

比较器复位 (POR 时的缺省值低功耗)
CM2:CM0 = 000 CM2:CM0 = 111
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
A
关闭(读作 0
不带输出的比较器 使用内部参考电压的比较器,不带输出
CM2:CM0 = 010 CM2:CM0 = 100
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
A
COUT
比较器关闭 (功耗最低)
GP1/CIN-
GP0/CIN+
GP2/COUT D
GP1/CIN-
GP0/CIN+
GP2/COUT D
D
D
A
D
来自 CVREF 模块
关闭(读作 0
COUT
使用内部参考电压且带有输出的比较器 输入端复用、使用内部参考电压并带有输出的比较器
CM2:CM0 =011 CM2:CM0 = 101
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
D
来自 CVREF 模快
COUT
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
CIS = 0
A
CIS = 1
来自 CVREF 模快
COUT
带有输出的比较器 输入端复用且使用内部参考电压
CM2:CM0 = 001 CM2:CM0 = 110
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
A
COUT
GP1/CIN-
GP0/CIN+
GP2/COUT D
A
CIS = 0
A
CIS = 1
来自 CVREF 模块
COUT
A= 模拟输入,端口始终读作 0
D = 数字输入
CIS = 比较器输入切换开关 (CMCON<3>)
2004 Microchip Technology Inc. DS41190C_CN 第 37
PIC12F629/675

6.3 模拟输入连接注意事项

6-3 所示为一个简化的模拟输入电路。由于模拟引脚 和数字输出端相连,因而它们与 VDD VSS 之间加有 反向偏置二极管。这样,模拟输入电压就必须限制在
SS 和 VDD 之间。如果输入电压超过 (或低于)这个
V

6-3 模拟输入模式

V
Rs < 10K
A
IN
VA
图注: CPIN = 输入电容
CPIN 5 pF
VT = 阈值电压
LEAKAGE = 由于不同的连接所引起的引脚上的泄漏电流
I RIC = 连线电阻 RS = 源阻抗 VA = 模拟电压
DD
VT = 0.6V
T = 0.6V
V
电压范围 0.6V 以上,其中一个二极管就正向偏置,并 可能发生闭锁。建议模拟输入信号源的最大源阻抗为 10 kΩ。任何连接到模拟输入引脚的外部元件 (如电容 器、齐纳二极管等),应保证其泄漏电流极小。
R
IC
ILEAKAGE ± 500 nA
Vss

6.4 比较器输出

通过读 CMCON 寄存器的相应位 (COUT),可以得到 比较器的输出。 该位是只读的。在 8 种可能模式中的 3 种模式下,比较器的输出可直接连接到 GP2 引脚,如 图 6-2所示。当比较器处于上述3种模式的任意一种时, GP2 上的输出信号与内部时钟都是异步的。图 6-4 所示 为比较器输出框图。

6-4 改进的比较器输出框图

GP2/T0CKI 引脚
到数据总线
CMCON
CMIF 置 1
Q
Q
EN
EN
当比较器处于输出模式时, TRISIO<2> 位可作为 GP2 引脚的输出使能 / 禁止位。
1:当读 GPIO 寄存器时,所有配置为模拟输
入的引脚都读作 0。 而配置为数字输入的 引脚将根据 TTL 输入规范对模拟输入信号 进行转换。
2: 在任何一个定义为数字输入的引脚上施加
模拟电平,可能导致输入缓冲器的电流消 耗超出规定值。
GP0/CIN+
GP1/CIN-
D
CINV
D
CMCON
复位
CM2:CM0
CVREF
DS41190C_CN 38  2004 Microchip Technology Inc.
PIC12F629/675

6.5 比较器参考电压

比较器模块还允许选择内部产生的参考电压作为比较器 的输入信号之一。内部参考电压信号可用于 8 种比较器 模式中的 4 种。VRCOM 寄存器(寄存器 6-2)可控制 参考电压模块,如图 6-5 所示。
6.5.1 配置参考电压模块
参考电压模块可以输出 32 种不同的电平,其中 16 个高 电平和 16 个低电平。

6-5 比较器参考电压模块框图

8RRR RR
VDD
16 选 1 模拟
多路选择器
VREN
CVREF
比较器的
输入
下面的式可用来计算输出电压:
VRR = 1 (低电平范围): CV
DD
x V
VRR = 0 (高电平范围) : CVREF = (VDD / 4) +
VR3:VR0 x VDD / 32
REF = (VR3:VR0 / 24)
6.5.2 参考电压精度 / 误差
由于模块构造的原因 ,并不能实现从 VSS 到 VDD 的整 个电压范围。梯形电阻网络(图 6-5)的顶端和底端晶 体管使 CVREF 的值无法达到 VSS VDD。由于参考电 压来源于 VDD,因此 CVREF 的输出随着 VDD 的波动而 变化。经过测试的比较器参考电压绝对精度参见 第 12.0 节。
16
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. DS41190C_CN 39
PIC12F629/675
寄存器 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
bit 7 VREN: CVREF 使能位
1 = CVREF 电路上电
REF 电路断电,无泄漏电流 IDD
0 = CV
bit 6 未用位:读作 0
bit 5 VRR: CV
1 = 低电平范围 0 = 高电平范围
bit 4 未用位:读作 0
bit 3-0 VR3:VR0:CV
VRR = 1 时:CVREF = VR3:VR0 / 24 * VDDVRR = 0 时:CVREF = VDD/4 + VR3:VR0 / 32 * VDD
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
—VRR— VR3 VR2 VR1 VR0
REF 范围选择位
REF 值选择 0 ≤ VR [3:0] ≤ 15

6.9 比较器中断

只要比较器的输出值发生变化,比较器的中断标志位就 会置 1。需要用软件来保持输出位的状态信息,即从
CMCON<6> 读取,以判断实际发生的变化。CMIF 位即 PIR1<3> 是比较器中断标志位。该位必须用软件清零来
将其复位。因为也可以把 “1”写入该寄存器,所以可 以启动模拟中断。
必须置位 CMIE 位(PIE1<3>)和 PEIE
INTCON<6>)以允许中断。此外,也必须置位 GIE
位。只要清零这些位中的任何一位,尽管当发生中断条
用户可用以下方式在中断服务程序中清除该中断:
a) CMCON 进行读或写。这将结束不匹配状况。 b) 将标志位 CMIF 清零。
不匹配的状况将持续将标志位 CMIF 1。读 CMCON 将会终止不匹配状况并允许将标志位 CMIF 清零。
注: 如果在执行读操作时 (Q2 周期的开始)
CMCON 寄存器(COUT)的值发生改变, 则 CMIF PIR1<3>)中断标志位可能不会 置位。
件时 CMIF 位仍会置位,却不会使能中断。

6-2 与比较器模块相关的寄存器

地址 名称
0Bh/8Bh INTCON GIE PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 0000 0000 000u 0Ch PIR1 EEIF ADIF —CMIF— TMR1IF 00-- 0--0 00-- 0--0
19h CMCON 8Ch PIE1 EEIE ADIE —CMIE— TMR1IE 00-- 0--0 00-- 0--0
85h TRISIO TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0 --11 1111 --11 1111 99h VRCON VREN —VRR— VR3 VR2 VR1 VR0 0-0- 0000 0-0- 0000 图注: x = 未知, u = 未改变, - = 未用, 读作 0阴影单元表示未被比较器模块使用。
bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0
—COUT— CINV CIS CM2 CM1 CM0
POR
BOD 时的值
-0-0 0000 -0-0 0000
所有其它复
位时的值
DS41190C_CN 40 2004 Microchip Technology Inc.
PIC12F629/675
7.0 模数转换器 (A/D)模块
(仅限 PIC12F675
模数转换器 (A/D)可以将模拟输入信号转换为表示该 信号的一个 10 2 进制数。PIC12F675 有四个模拟输 入通道,并复用到一个采样保持电路。采样保持电路的

7-1 A/D 框图

VDD
VCFG = 0
VREF
GP0/AN0
GP1/AN1/VREF
GP2/AN2 GP4/AN3
CHS1:CHS0
VCFG = 1
GO/DONE
ADON
输出与模数转换器的输入相连。模数转换器通过逐次逼 近比较产生二进制数,并将结果存入 10 位寄存器。可 用软件选择转换所使用的参考电压为 V 引脚提供的电压。图 7-1 给出了 PIC12F675 上的 A/D 框图。
DD 或者是 VREF
ADC
10
ADFM
10
VSS
ADRESH ADRESL

7.1 A/D 的配置及操作

有两个用于控制 A/D 模块功能的寄存器:
1. ADCON0 (寄存器 7-1
2. ANSEL (寄存器 7-2
7.1.1 模拟端口引脚
ANS3:ANS0 位(ANSEL<3:0>)和 TRISIO 位控制 A/ D 端口引脚的操作。置位相应的 TRISIO 位,可将引脚
输出驱动器置为高阻态。同样,置位相应的 ANS 位可 禁止数字输入缓冲器。
注: 在定义为数字输入的引脚上施加模拟电压
可能使输入缓冲器消耗过多电流。
7.1.2 通道选择
PIC12F675 上有 4 个模拟通道 (AN0 AN3)。 CHS1:CHS0 位(ADCON0<3:2>)控制哪条通道与采
样保持电路相连。
7.1.3 参考电压
A/D 转换器的参考电压有两种选择: 使用 VDD,或使用
施加在 V
ADCON0<6>)控制参考电压的选择。如果置位VCFG
位,将选择 VREF 引脚上的电压作为参考电压,否则将 选择 V
REF 引脚上的模拟电压。VCFG
DD 作为参考电压。
7.1.4 转换时钟
A/D 转化周期需要 11 个 TAD。可通过软件设置 ADCS 位
ANSEL<6:4>)来选择转换时钟源。有以下 7 种时钟
频率可供选择:
• F
OSC/2 OSC/4
• F
OSC/8
• F
• FOSC/16
OSC/32
• F
OSC/64
• F
• F
RC (专用内部 RC 振荡器)
为了保证转换结果正确,必须选择合适的 A/D 转换时钟 频率(1/T7-1 所示为选定频率下的几种 T
AD)以确保最小转换时钟周期 TAD 为 1.6 µs
AD 计算结果。
2004 Microchip Technology Inc. DS41190C_CN 第 41
PIC12F629/675
7-1 不同器件工作频率下的 TAD
A/D 时钟源 (TAD 器件频率
工作频率
OSC 000 100 ns
2 T
OSC 100 200 ns
4 T
OSC 001 400 ns
8 T
16 TOSC 101 800 ns
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
图注: 阴影单元表示超出了建议范围。 注 1V
2:这些值均违反了所需的最小 T 3:为了加快转换速度,建议选用其它时钟源。 4:当器件的频率高于 1 MHz 时,仅当在休眠期间进行转换时才推荐使用 A/D RC 时钟源。
ADCS2:ADCS0 20 MHz 5 MHz 4 MHz 1.25 MHz
(2)
(2)
(2)
(2)
(1.4)
DD > 3.0V 时, A/D RC 源产生 4 µs 的典型 TAD 时间。
AD 时间。
2 - 6 µs
(2)
400 ns
(2)
800 ns
1.6 µs2.0 µs6.4 µs
3.2 µs4.0 µs 12.8 µs
(3)
(1.4)
500 ns
1.0 µs
16.0 µs
2 - 6 µs
(2)
(2)
(3)
(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 启动转换
通过置位 GO/DONE 位(ADCON0<1>)启动 A/D 转 换。转换完成时, A/D 模块将:
清零 GO/DONE
置位 ADIF 标志位 (PIR1<6>)
产生中断 (如果使能的话)
如果必须要中止转换,则可用软件清零 GO/DONE
位。
如果 A/D 转换采样只进行了一部分,则
ADRESH:ADRESL 寄存器的内容不会更新。而 ADRESH:ADRESL 寄存器将保持上次转换所得到的

7-2 10 A/D 结果的格式

ADRESH ADRESL
ADFM = 0
ADFM = 1
MSB LSB
bit 7 bit 0 bit 7 bit 0
10 A/D 转换的结果 未用位: 读作 0
bit 7 bit 0 bit 7 bit 0
未用位: 读作 010A/D 转换的结果
值。如果转换发生异常中断,必须经过 2T
AD 的延时后
才可启动下一次采集。延时过后,将自动开始对选定通 道进行输入采集。
注: 不应在启动 A/D 转换的同一条指令中置位
GO/DONE 位。
7.1.6 转换输出
A/D 转换的结果可以如下两种格式提供:左对齐或右对
齐。ADFM 位(ADCON0<7>)控制输出格式。图 7-2 所示为输出的格式。
MSB LSB
DS41190C_CN 42  2004 Microchip Technology Inc.
寄存器 7-1 ADCON0A/D 控制寄存器 (地址:1Fh
R/W-0 R/W-0 U-0 U-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 = 选用 VREF 引脚上的电压 0 = 选用 V
bit 5-4 未用位: 读作 0
bit 3-2 CHS1:CHS0:模拟通道选择位
00 = 通道 00 AN0 01 = 通道 01 AN1 10 = 通道 02 AN2 11 = 通道 03 AN3
bit 1 GO/DONE
1 = A/D 转换正在进行。 将该位置 1 可启动 A/D 转换。 A/D 转换完成以后,该位由硬件自动清零。 0 = A/D 转换已完成 / 未进行。
bit 0 ADON:A/D 转换器状态位
1 = A/D 转换器模块正在运行 0 = A/D 转换器被关闭且不消耗工作电流
DD
A/D 转换状态位
CHS1 CHS0 GO/DONE ADON
PIC12F629/675
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 43
PIC12F629/675
寄存器 7-2 ANSEL 模拟选择寄存器 (地址9Fh
U-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1 R/W-1 R/W-1
ADCS2 ADCS1 ADCS0 ANS3 ANS2 ANS1 ANS0
bit 7 bit 0
bit 7 未用位: 读作 0。
bit 6-4 ADCS<2:0>A/D 转换时钟选择位
000 = FOSC/2 001 = FOSC/8 010 = F
x11 = F 100 = F
101 = F 110 = F
bit 3-0 ANS3:ANS0:模拟选择位
(可将 AN<3:0> 引脚的功能分别选为模拟或是数字)
1 = 模拟输入;分配引脚为模拟输入 0 = 数字 I/O ;分配引脚为端口引脚或特殊功能引脚
OSC/32 RC (由专用内部振荡器产生的时钟,其频率的最大值为 500 kHz
OSC/4 OSC/16 OSC/64
(1)
1: 将引脚设置为模拟输入端将自动禁止数字输入电路、弱上拉和引脚电平变化中断等
功能。相应的 TRISIO 位必须设置为输入模式以允许从外部控制引脚电压。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 44  2004 Microchip Technology Inc.
PIC12F629/675

7.2 A/D 采集要求

7-3 建议模拟信号源的最大阻抗为 10 kΩ。采集时 间随着阻抗的降低而缩短。在选择(改变)模拟输入通
为了使 A/D 转换器达到规定的精度,必须使充电保持电 容(CHOLD)充满至输入通道的电压电平。模拟输入模 型见图 7-3 源阻抗 (RS)和内部采样开关(RSS)阻 抗直接影响电容 C
HOLD 充电所需的时间。采样开关
RSS)阻抗随器件电压 (VDD)的变化而变化,参见
道以后,必须在开始转换之前完成采集。
可以使用等式 7-1来计算最小采集时间。该式假设误 差为 1/2 LSbA/D 转换需要 1024 步)。1/2 LSb 误差 是 A/D 达到规定精度所允许的最大误差。
要计算最短采集时间(T 档单片机系列参考手册》(DS33023A_CN)。
等式 7-1 采集时间
TACQ
TC
TACQ
1:因为参考电压(VREF)自行抵消,因此它对该式没有影响。
=
放大器稳定时间 + 保持电容充电时间 + 温度系数
AMP + TC + TCOFF
T
= =
2µs + TC + [ (温度 -25°C)( 0.05µs/°C]
=
C
HOLD RIC + RSS + RS)× (1/2047)
=
- 120pF (1k + 7k + 10k)× (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
V
T = 0.6V
RIC 1K
LEAKAGE
I ± 500 nA
V
采样 开关
SS
DD
6V 5V 4V 3V 2V
R
SS
CHOLD
= DAC 电容
= 120 pF
V
SS
567891011
采样开关
k
2004 Microchip Technology Inc. DS41190C_CN 45
PIC12F629/675

7.3 休眠期间的 A/D 转换

A/D 时钟源不是 RC 时,执行 SLEEP 指令将中止当 前的转换,同时关闭 A/D 模块。ADON 位仍保持置位。
A/D 转换器可在休眠模式下运行。此时要求将内部 RC 振荡器作为 A/D 转换的时钟源。当选用 RC 时钟源时,
7.4 复位的影响
A/D 转换器会等待一个指令再开始转换。这使 SLEEP 令得以执行,从而消除了转换中的大多数开关噪声。当 转换完成时, GO/DONE
被清零,同时转换结果存入
ADRESH:ADRESL 寄存器。此时如果允许 A/D 中断,
器件复位将迫使所有的寄存器恢复到其复位状态。 此,复位会关闭 A/D 模块并且中止任何当前待处理的转 换。 ADRESH:ADRESL 寄存器的内容不变。
则器件将会从休眠状态下唤醒。如果 A/D 中断未被使 能,即使 ADON 保持置位,也还是会关闭 A/D 模块。

7-2 A/D 寄存器汇总

地址 名称
05h GPIO GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0 --xx xxxx --uu uuuu 0Bh, 8Bh INTCON GIE PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 0000 0000 000u 0Ch PIR1 EEIF ADIF CMIF TMR1IF 00-- 0--0 00-- 0--0
1Eh ADRESH 1Fh ADCON0 ADFM VCFG CHS1 CHS0 GO ADON 00-- 0000 00-- 0000 85h TRISIO TRISIO5 TRISIO4 TRISIO3 TRISIO2 TRISIO1 TRISIO0 --11 1111 --11 1111 8Ch PIE1 EEIE ADIE CMIE TMR1IE 00-- 0--0 00-- 0--0
9Eh ADRESL 9Fh ANSEL ADCS2 ADCS1 ADCS0 ANS3 ANS2 ANS1 ANS0 -000 1111 -000 1111
图注: x = 未知 , u = 未改变 , - = 未实现读作 0 阴影单元表示未被 A/D 转换器模块使用。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
左对齐格式下 A/D 结果的高 8 位或右对齐格式下结果的高 2 位
左对齐格式下 A/D 结果的低 2 位或右对齐格式下结果的低 8 位
POR
BOD 时的值
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
所有其它复位
时的值
DS41190C_CN 46 2004 Microchip Technology Inc.
PIC12F629/675

8.0 数据 EEPROM 存储器

数据 EEPROM 存储器在整个 VDD 范围内正常运行时是 可读写的。 其存储器并不直接映射到寄存器文件空间, 而是通过特殊功能寄存器来间接寻址。有四个 SFR 用于 读写该存储器,它们是:
• EECON1
• EECON2 (非实际存在的寄存器)
• EEDATA
• EEADR
EEDATA 内存放 8 位读写数据,而 EEADR 寄存器存放
要访问的 EEPROM 地址。PIC12F629/675 器件有 128 字节的数据 EEPROM 存储器,寻址范围从 0h 7Fh
EEPROM 数据存储器允许字节读写。字节写操作将自 动擦除该地址单元并写入新的值 (即先擦后写)。 EEPROM 是一种具有高擦 / 写周期的数据存储器。写入 的时间由片上定时器控制,还会随着电压、温度以及芯 片的不同而有所差异。具体限制请参阅 AC 规范。
当器件处于代码保护下时,CPU 可以继续对 EEPROM 存储器进行读写操作,但 器件编程器则不再能访问此寄 存器。
有关数据 EEPROM 更多的信息可以参考 《PICmicro 中档单片机系列参考手册》(DS33023A_CN)。
寄存器 8-1 EEDATEEPROM 数据寄存器 (地址: 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 = POR 时的值 1= 置位 0= 清零 x= 未知位
®
寄存器 8-2 EEADREEPROM 地址寄存器 (地址: 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 未用位: 应该清零
bit 6-0 EEADR指定 128 个地址单元之一进行 EEPROM / 写操作
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
2004 Microchip Technology Inc. DS41190C_CN 第 47
PIC12F629/675

8.1 EEADR

EEADR 寄存器最多可寻址数据 EEPROM 128 字节。 仅使用了寄存器 8 位中的 7 位(EEADR<6:0>), 而 MSb bit 7)被忽略。
该寄存器的最高位应总是为 0,以向上兼容具有更大数 据 EEPROM 存储器的器件。

8.2 EECON1 EECON2 寄存器

EECON1 为控制寄存器,实际只使用了它的低四位。高 四位未被使用,并且读作 0
控制位 RD WR 分别用于启动读写操作。这些位不能 用软件清零,只能用软件置 1。它们在读写操作完成时 由硬件清零。WR 位不能用软件清零是为了防止写操作 的意外或过早中止。
WREN 位置 1 时,允许进行写操作。上电延时时, WREN 位被清零。 正常工作期间,如果写操作被 MCLR 复位或 WDT 超时复位中断,则 WRERR 位被置 1。上 述情形下,用户可在复位结束后检查 WRERR 的状态, 对其清零并重写该地址单元。数据和地址被清零,这样 EEDATA EEADR 寄存器需要进行重新初始化。
当写操作完成时,PIR1 寄存器上的中断标志位 EEIF 置
1。此位必须用软件清零。
EECON2 不是实际存在的寄存器。读 EECON2 将得到
全零。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
bit 7 bit 0
bit 7-4 未用位: 读作 0
bit 3 WRERR: EEPROM 错误标志位
1 =写操作被过早中止 (正常操作或 BOD 检测期间发生 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 读操作
WRERR WREN WR RD
复位、 WDT 复位)
图注:
S = 可以被置位 R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
DS41190C_CN 48  2004 Microchip Technology Inc.
PIC12F629/675

8.3 EEPROM 数据存储器

要读取数据存储器地址单元,用户必须先把该地址写 到 EEADR 寄存器中,并将控制位 RD(EECON1<0>1,如 例 8-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 置位,否则 WR 位不能被置位。
写周期完成时,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、校准值等)应存放在闪存程序存储器中。

8.6 防止误写操作的保护措施

若未严格正确执行上述指令序列 (即写 55h EECON2,写 AAh EECON2,然后将 WR 位置 1), 则写操作不会启动。我们强烈建议在上述代码段中禁止 中断。在执行要求的指令序列同时,也将执行一次周期 计数操作。如果周期计数值不等于执行必需的指令序列 所需的周期数,则将禁止数据写入 EEPROM
此外,寄存器 EECON1 中的 WREN 位应被置 1 以使能 写操作。该机制有助于防止由于执行错误(意外的)代 码 (即丢失程序)而导致意外写入数据 EEPROM。除 对 EEPROM 进行更新时,用户应始终保持 WREN 位为 清零状态。硬件不能清零 WREN 位。
在有些情况下,用户并不希望写入数据 EEPROM 存储 器。为防止 EEPROM 误写操作,芯片内嵌了各种保护 机制。上电时 WREN 位被清零。而且,上电延时定时 器 (延时 72ms)也会阻止对 EEPROM 进行写操作。
写操作的启动顺序以及 WREN 位将共同防止以下情况 下的意外误写操作发生:
欠压
电源毛刺
软件故障
2004 Microchip Technology Inc. DS41190C_CN 第 49
PIC12F629/675

8.7 代码保护期间数据 EEPROM 的操作

CPD 位编程为 “0”可对数据存储器进行代码保护。
数据存储器处于代码保护的情况下, CPU 可以对数据 EEPROM 进行读写操作。对数据存储器进行代码保护 的同时,建议用户也对程序存储器进行代码保护。这将 防止有人通过在已有代码上写入零 (作为 NOP 执行), 访问在未使用的程序存储器中编程的增加程序,从而达 到导出数据存储器内容的目的。将未使用的地址单元编 程为“0”有助于避免数据存储器的代码保护遭受破坏。

8-1:与EEPROM 相关的寄存器 / 位

地址 名称
0Ch PIR1 EEIF
9Ah EEDATA
9Bh EEADR
9Ch EECON1
9Dh EECON2
图注: x = 未知、 u = 未改变、 - = 未用,读作 0 q = 其值根据条件变化。
阴影单元表示未被数据 EEPROM 模块使用。
1EECON2 不是实际存在的寄存器。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
ADIF
EEPROM 数据寄存器
EEPROM 地址寄存器
(1)
EEPROM 控制寄存器 2
CMIF
WRERR WREN WR RD ---- x000 ---- q000
PORBOD
时的值
TMR1IF 00-- 0--0 00-- 0--0
0000 0000 0000 0000
-000 0000 -000 0000
---- ---- ---- ----
其它复位时
的值
DS41190C_CN 50 2004 Microchip Technology Inc.
PIC12F629/675

9.0 CPU 的特殊功能

单片机内部集成了某些处理实时应用所需的特殊电路, 使之区别于其他处理器。 PIC12F629/675系列具有许多 这样的功能部件,它们旨在:
最大限度地提高系统可靠性
通过减少外部元件将成本降到最低
提供节能运行模式和代码保护
这些功能部件是:
振荡器选择
复位
- 上电复位 (POR
- 上电延时定时器 (PWRT
- 振荡器起振定时器 (OST
- 欠压检测 (BOD
中断
看门狗定时器 (WDT)
休眠
代码保护
• ID 地址单元
在线串行编程
PIC12F629/675 配备了一个看门狗定时器,可由配置位
来控制。该定时器依靠自带的 RC 振荡器来运行,提高 了可靠性。有两个定时器提供必要的上电延时。一个是 振荡器起振定时器 (OST),旨在确保芯片在晶振达到 稳定之前始终处于复位状态。另一个是上电延时定时器
PWRT),仅在上电时提供 72 ms (标称值)的固定
延时,用来确保器件在供电电压稳定之前处于复位状 态。还有当器件发生欠压时使器件复位的电路,该电路 可提供至少 72 ms 的复位延时。片上具有了这三种功 能,使绝大多数应用无需再外接复位电路。
休眠模式的设计是为了提供电流极低的掉电模式。 用户 可通过以下方法将器件从休眠模式唤醒:
外部复位
看门狗定时器唤醒
中断
有几种振荡模式可供选择,以使器件适应各种应用。选 择 INTOSC 可节约系统成本,而选择 LP 晶振可以节能。 使用一组配置位可选择不同的晶振(参见寄存器 9-1)。
2004 Microchip Technology Inc. DS41190C_CN 51
PIC12F629/675

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
CPD
CP BODEN MCLRE PWRTE WDTE F0SC2 F0SC1 F0SC0
注: 地址2007h 超过了用户程序存储器空间。
属于特殊配置存储器空间(2000h - 3FFFh) ,只能在编程的时候对它进行访 问。 更多信息请参见 PIC12F629/675 编程规 范。
bit 13-12
bit 11-9 bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2-0
BG1:BG0 BOD 和 POR 电压的带隙校准位
00 = 最低带隙电压 11 = 最高带隙电压
未用位: 读作 0
CPD
数据代码保护位
1 = 禁止数据存储器代码保护 0 = 使能数据存储器代码保护。
CP
代码保护位
1 = 禁止程序存储器代码保护 0 = 使能程序存储器代码保护
BODEN欠压检测使能位
1 = 使能 BOD 0 = 禁止 BOD
MCLRE GP3/MCLR
1 = GP3/MCLR 引脚功能为 MCLR 0 = GP3/MCLR
PWRTE
1 = 禁止 PWRT 0 = 使能 PWRT
WDTE看门狗定时器使能位
1 = 使能 WDT 0 = 禁止 WDT
FOSC2:FOSC0振荡器选择位
111 = RC 振荡器: GP4/OSC2/CLKOUT 引脚为 CLKOUT 功能, GP5/OSC1/CLKIN 引脚上连接 RC 110 = RC 振荡器: GP4/OSC2/CLKOUT 引脚为 I/O 功能, GP5/OSC1/CLKIN 引脚连接 RC 101 = INTOSC 振荡器: GP4/OSC2/CLKOUT 引脚为 CLKOUT 功能, GP5/OSC1/CLKIN 引脚为 I/O 功能 100 = INTOSC 振荡器: GP4/OSC2/CLKOUT 引脚为 I/O 功能, GP5/OSC1/CLKIN 引脚为 I/O 功能 011 = EC GP4/OSC2/CLKOUT 引脚为 I/O 功能, GP5/OSC1/CLKIN 引脚上为 CLKIN 010 = HS 振荡器: GP4/OSC2/CLKOUT GP5/OSC1/CLKIN 引脚连接高速晶振 / 谐振器 001 = XT 振荡器: GP4/OSC2/CLKOUT GP5/OSC1/CLKIN 引脚连接晶振 / 谐振器 001 = LP 振荡器: GP4/OSC2/CLKOUT GP5/OSC1/CLKIN 引脚上连接低功耗晶振
1:带隙校准位在出厂时已被编程,必须按照 PIC12F629/675 编程规范中的规定,在擦除之前要先读
图注:
P = 使用 ICSP 编程 R = 可读位 W = 可写位 U = 未用位,读作 0
- n = POR 时的值 1= 置位 0= 清零 x= 未知位
上电延时定时器使能位
出并保存器件程序。在导出配置字寄存器的内容时可以反映出这些位。 Microchip 开发工具保持所 有的校准位为出厂设置。
2:当关闭代码保护时,将擦除整个数据 EEPROM 的内容。 3:如果关闭代码保护功能,还会擦除整个程序存储器的内容,包括 OSCCAL 值。 4:使能欠压检测并不能自动使能上电延时定时器。 5:当 MCLR
2
3
4
引脚功能选择
引脚功能为数字 I/OMCLR 内部连接到 VDD
INTOSC 或者 RC 模式下被拉为低电平时,将禁止内部时钟振荡器。
5
1
DS41190C_CN 52 2004 Microchip Technology Inc.
PIC12F629/675

9.2 振荡器配置

9.2.1 振荡器类型
PIC12F629/675 可选择在 8 种不同的振荡模式下运行。
用户可对以下 3 个配置位(FOSC2 FOSC0)编程来 选择这 8 种模式之一:
• LP 低功耗晶振
• XT 晶振 / 谐振器
• HS 高速晶振 / 谐振器
• RC 外部电阻 / 电容 (2 种模式)
• INTOSC 内部振荡器 (2 种模式)
• EC 外部时钟输入
注: 有关振荡器配置的其他信息可参见
PICmicro®中档单片机系列参考手册》 (DS33023A_CN)。
9.2.2 晶振 / 陶瓷谐振器
XTLP HS 模式下,晶振或陶瓷谐振器连接到
OSC1 OSC2 引脚以建立振荡 (参见图 9-14)。 PIC12F629/675 振荡器的设计要求使用平行切割的晶
体。 而采用顺序切割的晶体,可能使振荡器产生的频率 超出晶体制造厂商给出的范围。在 XTLP HS 模式 下,器件可用一个外部时钟源来驱动 OSC1 引脚(参见 图 9-14)。
9-1 晶振 (或陶瓷振荡器)的操作
HSXT LP 振荡器配置 )
OSC1
(1)
C1
XTAL
OSC2
(2)
RS
(1)
C2
1C1 C2 的建议值,参见表 9-1 和表 9-2
2: 对于 AT 条形切割的晶体可能需要串联一个电阻。 3RF 随振荡器模式的不同而变化 (大约值 10 M)。
RF
(3)
到内部
逻辑电路
休眠
PIC12F629/675
9-2 外部时钟输入的操作
HSXT、EC 或 LP 振荡器配置)
来自外部系统 的时钟信号
打开
1:EC 振荡器模式下,该引脚作为 GP4 使用。
OSC1
PIC12F629/675
(1)
OSC2

9-1 陶瓷谐振器的电容选择

特性范围:
模式 频率
XT 455 kHz
2.0 MHz
4.0 MHz
HS 8.0 MHz
16.0 MHz
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
1: 电容越大,振荡器的稳定性也越高,但同
时上电时间也会延长。这些值仅供设计参 考。由于每个谐振器的特性各不相同,因 此用户应向生产厂家咨询外部元件的正确 参数。

9-2 晶体振荡器的电容选择

模式 频率
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)。由于每个谐振器的特性各不相 同,因此用户应向生产厂家咨询外部元件 的正确参数。
OSC1(C1) OSC2(C2)
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. DS41190C_CN 第 53
PIC12F629/675
9.2.3 外部时钟输入
对于已具备外部时钟的应用场合,只要该外部时钟源符 合第 12.0 节列出的 AC/DC 时序要求,用户就可以直接 使用它所提供的时钟信号来驱动 PIC12F629/675。图 9-
14 显示了如何配置外部时钟电路。
9.2.4 RC 振荡器
如果对定时精度要求不高,可以选用 RC 振荡器。 RC 振荡器的工作和功能取决于许多变量。 RC 振荡器的频 率是以下参数的函数:
供电电压
电阻 (R
EXT)和电容 (CEXT)的值
工作温度。
由于正常的制造工艺参数存在差异,因此每个振荡器的 频率也会有所变化。 而不同封装类型的引线电容不同, 也会影响振荡频率,特别是当 C
EXT 值较小时。用户还
需要考虑外部元件 (电阻 R 和电容 C)的容差。图 9­14 显示了如何外接 R/C 组合电路。
在这种振荡模式下,GP4 有两种配置可供选择,可将其 作为通用 I/O 引脚或是输出 F
OSC/4。

9-3 RC 振荡模式

9.2.5 内部 4 MH
Z 振荡器
经过校准后,内部振荡器可提供固定的 4 MHz (标称 值)系统时钟。有关随电压和温度变化的信息,请参见 第 12.0 节中的电气规范。
在这种振荡模式下,GP4 有两种配置可供选择,可将其 作为通用 I/O 引脚或是输出 F
OSC/4
9.2.5.1 校准内部振荡器
校准指令被编程到程序存储器的最后一个地址单元中。 这条指令是 RETLW XX,其中立即数为校准值。将立即 数放在 OSCCAL 寄存器中用来校准内部振荡器。例 9- 1 演示了如何校准内部振荡器。为了使器件能够工作在 最佳状态,应对 V
DD 和 VSS 去耦 (电容)并使之尽量
靠近器件。
注: 擦除器件的同时也会擦除为内部振荡器预
编程的内部校正值。必须按照 PIC12F629/ 675 编程规范中的规定,在擦除部件之前保 存校准值。 Microchip 开发工具保持所有的 校准位为出厂设置。
9-1 校准内部振荡器
bsf STATUS, RP0 ;Bank 1 call 3FFh ;Get the cal value movwf OSCCAL ;Calibrate bcf STATUS, RP0 ;Bank 0
REXT
CEXT
VSS
VDD
OSC/4
F
PIC12F629/675
GP5/OSC1/ CLKIN
GP4/OSC2/CLKOUT
内部
时钟
9.2.6 CLKOUT
INTOSCRC振荡模式下,可配置 PIC12F629/675, 使之产生时钟输出信号。配置后,GP4/OSC2/CLKOUT 引脚上产生振荡器频率的 4 分频(F
4 可作测试用途或同步其它逻辑模块。
OSC/4)信号。FOSC/
DS41190C_CN 54  2004 Microchip Technology Inc.
9.3 复位
PIC12F629/675 可区分不同种类的复位:
a) 上电复位 (POR b) 正常工作中的 WDT 复位 c) 休眠期间的 WDT 复位 d) 正常工作中的 MCLR e) 休眠期间的 MCLR f) 欠压检测 (BOD
有些寄存器不受任何复位条件的影响;它们在 POR 时 状态未知,而在任何其它复位时状态不变。发生下列复 位时,大多数其它寄存器返回 “复位”状态:
上电复位
• MCLR
复位
• WDT 复位
休眠期间的 WDT 复位
欠压检测 (BOD)复位
9-4 片上复位电路的简化框图
复位
复位
外部 复位
PIC12F629/675
因为 WDT 唤醒被视为是回复正常工作的操作,因此不 会影响这些寄存器。如表 9-4 所示,TO 不同的复位中分别被置位或清零。软件利用这些位来确 定复位的性质。表 9-7 对所有寄存器的复位状态作了完 整的描述。
9-14 所示为片上复位电路的简化框图。
复位路径中有一个噪声滤波器,用于检测或滤除
MCLR
小脉冲信号。有关脉宽规范可参见电气规范一节中的 表 12-4
PD 状态位在
MCLR/
PP 引脚
V
WDT
模块
DD 上升沿
V
检测
DD
V
OSC1
CLKIN
引脚
1: 该振荡器独立于 INTOSC/RC 振荡器。
欠压 检测
OST/PWRT
1
片上
RC OSC
OST
PWRT
SLEEP
WDT
超时复位
上电复位
BODEN
10 位脉动计数器
10 位脉动计数器
使能 PWRT
使能 OST
S
R
有关超时的情况请参见表 9-3
Q
Chip_Reset
Q
2004 Microchip Technology Inc. DS41190C_CN 第 55
PIC12F629/675
9.3.1 MCLR
PIC12F629/675 器件在 MCLR 复位路径中有一个噪声
滤波器, 用于检测和滤除小脉冲信号。
应该注意WDT复位不会将MCLR
引脚上的 ESD 保护与该系列早先的器件有所不
MCLR
同。该引脚上电压超过规定值将导致 MCLR
引脚驱动输出低电平。
复位,并且
ESD 发生时产生超过器件规定值的电流。因此,
Microchip 建议不要把 V
DD 直接加在 MCLR 引脚上。建
议使用图 9-14 所示的 RC 网络。
通过置位配置字中 MCLRE 位可以使能内部 MCLR 项。使能时,MCLR
引脚内部连接到 VDDMCLR 引脚
没有内部上拉功能选项。

9-5 建议使用的 MCLR 电路

VDD
R1 1 k(或更大)
C1
µf
0.1
(可选,非关键元件)
PIC12F629/675
MCLR
其它信息请参见应用笔记 AN607 “Power-up Trouble Shooting”
9.3.3 上电延时定时器 (PWRT
上电延时定时器仅在上电时提供一个 72 ms (标称值) 的 POR 或欠压检测固定延时。上电延时定时器使用内 部 RC 振荡器。只要 PWRT 有效,芯片就处于复位状 态。PWRT 延时可以使 VDD 上升到适当的电平。配置位
PWRTE
可以使能(如果置位)或禁止(如果清零或被 编程)上电延时定时器。当欠压检测使能时应始终使能 上电延时定时器。
下列原因会造成各芯片之间上电延时的时间不同:
DD 不同
• V
温度变化
制造工艺的差异。
详情请参见 DC 参数 (第 12.0 节)。
9.3.4 振荡器起振定时器 (OST
PWRT延时结束以后,振荡器起振定时器将提供1024 个振荡周期(来自 OSC1 引脚)。这将确保晶振或谐振 器起振并达到稳定状态。
只有在 XTLP HS 模式下,且仅在上电复位或将器 件从休眠状态唤醒时,才会发生 OST 超时。
9.3.2 上电复位 (POR
VDD 值达到能让芯片正常工作的足够高的电平值以 前,片上 POR 电路使芯片处于复位状态。欲有效利用 POR,用户只须在 MCLR 引脚和 VDD 之间串联一个电 阻。这样就可无需使用通常产生上电复位所需的外接 RC 元件。 V 见电气规范(第 12.0 节)。如果 BOD 使能,则最大上 升时间规范不再适用。BOD电路将保持器件为复位状态 直到 V
注: VDD 降低时,POR 电路不会产生内部复
当器件开始正常工作 (退出复位状态)时,器件的工作 参数 (即电压、频率和温度等)必须得到满足,以确保 其正常工作。如果不满足这些条件,器件必须保持在复 位状态,直到满足工作条件为止。
DD 需要一个最大上升时间。详细信息请参
DD 的值达到 VBOD (参见第 9.3.5 节)。
位。
DS41190C_CN 56 2004 Microchip Technology Inc.
PIC12F629/675
9.3.5 欠压检测 (BOD
PIC12F629/675 系列单片机都带有片上欠压检测电路。
配置位 BODEN 可以禁止 (如果清零 / 编程)或使能
(如果置位)欠压检测电路。 如果 V
DD 下降到 VBOD
下,且持续时间超过表 12-4 中的参数值 (TBOD)(见 第 12.0 节),欠压状况将使器件复位。 无论 VDD 的转 换率大小如何,上述情况都会发生。 如果 VDD 低于
BOD 的时间少于参数值 (TBOD),则不保证会发生复
V
位。

9-6 欠压情况

VDD
内部 复位
VDD
内部 复位
<72 ms
任何复位 (上电复位、欠压复位、看门狗定时器复位 等)发生时,器件将保持复位状态直到V
DD上升到BVDD
以上 (参见图 9-14)。如果使能了上电延迟定时器,此 时它将启动,并将使器件保持复位状态的时间延长 72 ms
注: 如果置位配置字中的 PWRTE位,那么欠压
检测将不会使能上电延迟定时器。
如果上电延迟定时器运行时, VDD 下降到 BVDD 以下, 芯片将重新回到欠压检测状态,且上电延迟定时器将被 重新初始化。一旦 VDD 上升到 BVDD 以上,上电延迟定 时器将执行一个 72 ms 的复位延时。
VBOD
(1)
72 ms
VBOD
(1)
72 ms
VDD
内部 复位
1: 仅当配置字中的 PWRTE 位被编程为 0 时,才产生 72 ms 延迟。
9.3.6 延时序列
上电延时序列如下: 首先, POR 结束后启动 PWRT 延 时。 然后,OST 被激活。总延时时间取决于振荡器的配 置和 PWRTE 位的状态。例如,在 EC 模式且 PWRTE 位清零(PWRT 禁止)的情况下,不会出现延时。图 9- 14,图 9-14 和图 9-14 给出了延时序列。
由于延时是由 POR 脉冲引起的,因此若 MCLR 持低电平的时间足够长,延时将结束。拉高 MCLR 将立 即执行延时 (见图 9-14) 。这在测试时或同步多个 PIC12F629/675 并行使用的器件来说非常有用。
9-6 给出了一些特殊寄存器的复位条件,而表 9-7 给 出了所有寄存器的复位条件。
引脚保
VBOD
(1)
72 ms
9.3.7 电源控制 (PCON)状态寄存器
电源控制 / 状态寄存器PCON(地址 8Eh)包含两个位。
Bit0 BOD
状态未知。用户必须将该位置 1,并在随后的复位发生 时检查 BOD 是否为 0,如果是,则表示已经发生过欠压 复位。如果欠压电路(通过在配置字中设置 BODEN 位 为 0)被禁止,则 BOD 知其状态。
Bit1 POR 其它情况下该位不受影响。 用户必须在上电复位之后,1 写入该位。在随后的复位中,如果 POR 0,则 表示发生过上电复位 (即 V
位(欠压复位)。 BOD 在发生上电复位后
状态位是一个无关位,也无法预
位(上电复位位)。上电复位时该位为 0 ,
DD 曾处于过低状态)。
2004 Microchip Technology Inc. DS41190C_CN 第 57
PIC12F629/675
9-3 不同情况下的延时
振荡器配置
PWRTE = 0 PWRTE = 1 PWRTE = 0 PWRTE = 1
上电延时 欠压检测
从休眠中唤醒
XTHSLP
RCECINTOSC
TPWRT +
1024•TOSC
PWRT
T
1024•TOSC TPWRT +
1024•TOSC
PWRT
T
1024•TTOSC 1024•TOSC
--

9-4 STATUS/PCON 位及其含义

POR BOD TO PD
0u11 1011 uu0u uu00
uuuu uu10
图注: u = 未改变, x = 未知
上电复位
欠压检测
WDT 复位
WDT 唤醒
在正常工作中的 MCLR
休眠期间的 MCLR 复位
复位

9-5 与欠压相关的寄存器汇总

地址 名称
03h STATUS IRP RP1 RPO TO PD Z DC C 0001 1xxx 000q quuu
8Eh PCON
图注: u = 未改变、 x = 未知、 - = 未实现位,读作 0q = 值随条件而变。 1: 其它 (非上电)复位包括正常工作下的 MCLR
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
复位、欠压检测和看门狗定时器复位。
POR
PORBOD
时的值
BOD ---- --0x ---- --uq
其它复位时
1
的值

9-6 特殊寄存器的初始化条件

条件 程序计数器 状态寄存器
上电复位
在正常工作中的 MCLR
休眠模式中的 MCLR
WDT 复位
WDT 唤醒
欠压检测
中断将器件从休眠模式唤醒 图注: u = 未改变、 x = 未知、 - = 未实现位,读作 0
1: 如果器件是由中断唤醒且全局使能位 GIE 1,则执行 PC+1 后中断矢量 (0004h)被装入 PC
DS41190C_CN 58 2004 Microchip Technology Inc.
复位
复位
000h 0001 1xxx ---- --0x 000h 000u uuuu ---- --uu 000h 0001 0uuu ---- --uu
000h 0000 uuuu ---- --uu
PC + 1 uuu0 0uuu ---- --uu
000h 0001 1uuu ---- --10
PC + 1
(1)
uuu1 0uuu ---- --uu
PCON
寄存器
PIC12F629/675

9-7 寄存器的初始化条件

正常工作时的 MCLR
寄存器 地址 上电复位
W
xxxx xxxx uuuu uuuu uuuu uuuu
INDF 00h/80h
--
休眠期间的 MCLR
• WDT 复位
欠压检测
1
TMR0 01h xxxx xxxx uuuu uuuu uuuu uuuu PCL 02h/82h 0000 0000 0000 0000 PC + 1 STATUS 03h/83h 0001 1xxx 000q quuu FSR 04h/84h xxxx xxxx uuuu uuuu uuuu uuuu GPIO 05h --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-- 0000 00-- 0000 uu-- uuuu OPTION_REG 81h 1111 1111 1111 1111 uuuu uuuu TRISIO 85h --11 1111 --11 1111 --uu uuuu PIE1 8Ch 00-- 0--0 00-- 0--0 uu-- u--u PCON 8Eh ---- --0x ---- --uu OSCCAL 90h 1000 00-- 1000 00-- uuuu uu-- WPU 95h --11 -111 --11 -111 uuuu uuuu IOC 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 ANSEL 9Fh -000 1111 -000 1111 -uuu uuuu
图注 : u = 未改变, x = 未知, - = 未实现位,读作 0q = 值随条件而变。 1: 如果 V
DD 过低,上电复位将被激活,寄存器将受到不同的影响。
2INTCON / 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。所有其它中断引起的唤 醒将使这些位不变 。
6:如果复位是由于欠压造成的,则 bit 0 = 0。所有其它复位将使 bit 0 不变。
复位
复位
(4)
(1,6)
中断将器件从休眠状态唤醒
• WDT 超时溢出将器件从休眠
状态唤醒
uuuq quuu
---- --uu
(3)
(4)
(2)
(2,5)
2004 Microchip Technology Inc. DS41190C_CN 59
PIC12F629/675

9-7 上电时的延时序列 (MCLR 未连接到 VDD): 情形 1

VDD
MCLR
内部 POR
TPWRT
PWRT 延时
OST 延时
内部复位
9-8 上电时的延时序列 (MCLR
VDD
MCLR
内部 POR
PWRT 延时
OST 延时
内部复位
未连接到 VDD): 情形 2
PWRT
T
TOST
TOST
9-9 上电时的延时序列 (MCLR
VDD
MCLR
内部 POR
PWRT 延时
OST 延时
内部复位
DS41190C_CN 60 2004 Microchip Technology Inc.
连接到 VDD
TPWRT
TOST
PIC12F629/675

9.4 中断

PIC12F629/675 有 7 个中断源:
外部中断 GP2/INT
• TMR0 溢出中断
• GPIO 电平变化中断
比较器中断
• A/D 中断 (仅限 PIC12F675)
• TMR1 溢出中断
数据 EEPROM 写中断
中断控制寄存器(INTCON)和外设中断寄存器(PIR) 在标志位中记录各个中断请求。 INTCON 寄存器还包 括各个中断使能位和全局中断使能位。
全局中断使能位, GIE INTCON<7>)在置位时允许 所有未屏蔽的中断,在清零时,禁止所有中断。可以通 过各中断在 INTCON 寄存器和 PIE 寄存器中相应的使能 位来禁止单个中断。复位时将 GIE 清零。
执行 “中断返回”指令, RETFIE,将退出中断服务程 序,同时置位 GIE 位,即重新允许未屏蔽的中断。
INTCON 寄存器中包含下列中断标志位:
• INT 引脚中断
• GP 端口电平变化时中断
• TMR0 溢出中断
外设中断标志位包含在特殊寄存器 PTR1 中。 相应的中 断使能位包含在特殊寄存器 PTR1 中。
PIR 寄存器中包含下列中断标志位:
• EEPROM 数据写中断
• A/D 中断
比较器中断
• Timer1 溢出中断
当响应一个中断时:
将 GIE 位清零以禁止其它中断发生
将返回地址压入堆栈
• PC 中装入 0004h
一旦进入中断服务程序,就可以通过查询中断标志位来 判断中断源。在重新允许中断前,必须用软件将中断标 志位清零,以避免 GP2/INT 重复请求中断。
对于外部中断事件,如 INT 引脚中断或 GP 端口电平变 化中断,中断响应延时将会是 3 4 个指令周期。确切 的延时时间取决于中断事件何时发生(见图 9-14)。 对 于单周期或双周期指令,中断响应延时完全相同。一旦 进入中断服务程序,就可以通过查询中断标志位来判断 中断源。在重新允许中断前,必须用软件将中断标志位 清零,以避免出现多个中断请求。
1:各中断标志位置 1,且不受相应中断屏蔽
位和 GIE 位的状态影响。
2: 当执行一条清零 GIE 位的指令后,任何等
待在下一周期执行的中断均将被忽略。这 些被忽略的中断会在 GIE 位被再次置位时 继续等待响应。
2004 Microchip Technology Inc. DS41190C_CN 61
PIC12F629/675

9-10 中断逻辑电路

IOC-GP0
IOC0
IOC-GP1
IOC1
IOC-GP2
IOC2
IOC-GP3
IOC3
IOC-GP4
IOC4
IOC-GP5
IOC5
TMR1IF
TMR1IE
CMIF CMIE
ADIF ADIE
EEIF EEIE
1: 仅限 PIC12F675
(1)
T0IF T0IE
INTF
INTE GPIF
GPIE
PEIE
GIE
唤醒(如果处于休眠模式)
中断 CPU
DS41190C_CN 62 2004 Microchip Technology Inc.
PIC12F629/675
9.4.1 GP2/INT 中断
GP2/INT 引脚上的外部中断是边沿触发的;当 INTEDG 位(OPTION<6>)被置位时在上升沿触发,而当 INTEDG 位被清零时在下降沿触发。当 GP2/INT 引脚上
出现有效边沿时,INTF 位(INTCON<1>)置位。可以 通过清零 INTE 控制位(INTCON<4>)来禁止该中断。 在重新允许该中断前,必须在中断服务程序中先用软件 将 INTF 位清零。如果器件进入休眠状态前将 INTE 位置 位,则 GP2/INT 中断能把处理器从休眠状态唤醒。GIE 位的状态决定在唤醒处理器之后程序是否会跳转到中断 向量地址。有关休眠的详细信息,请参阅第 9.7 节,而 有关GP2/INT中断将处理器从休眠状态唤醒的时序请参 阅图 9-14
注: 必须对 ANSEL9Fh)和 CMCON19h
寄存器进行初始化以便将模拟通道配置为 数字输入端。配置为模拟输入端的引脚将 读为 0ANSEL 寄存器是为 PIC12F675 定 义的。

9-11 INT 引脚中断时序图

9.4.2 TMR0 中断
TMR0寄存器溢出(FFh→00h)将 T0IF(INTCON<2>)
置位。可以通过置位 / 清零 T0IE INTCON<5>)位来 允许 / 禁止该中断。有关 Timer0 模块的工作情况,请参 见第 4.0 节。
9.4.3 GPIO 中断
GPIO 输入电平的变化将置位 GPIF(INTCON<0>)位 。
可以通过置位 / 清零 GPIE INTCON<3>)位来允许 / 禁止该中断。而单个引脚可以通过 IOC 寄存器进行配 置。
注: 如果 I/O 引脚上的电平在执行一个读操作
Q2 周期开始)时发生了变化,那么 GPIF
中断标志位可能不会被置位。
9.4.4 比较器中断
有关比较器中断的描述,请参阅第 6.9 节。
9.4.5 A/D 转换器中断
转换完成后 ADIF 标志位(PIR<6>)被置位。可以通过 置位或清零 ADIE PIE<6>)位来允许 / 禁止该中断。
有关 A/D 转换器中断的操作,请参见第 7.0 节。
Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4
OSC1
CLKOUT
INT 引脚
INTF 标志 (INTCON<1>)
GIE (INTCON<7>)
指令流
PC
取指
执行 指令
1: 此时采样 INTF 标志 (每个 Q1 周期)
3
Inst (PC-1)
2: 异步中断响应延时为 3-4 T
期指令还是双周期指令,中断响应延时都是相同的。
3: 只有在 RC 振荡器模式下, CLKOUT 才有效。 4: 关于 INT 脉冲的最小宽度要求,请参考 AC 规范。 5: 允许在 Q4-Q1 周期内的任何时间置位 INTF
1
PC
Inst (PC)
4
1
5
Inst (PC+1)
Inst (PC)
CY同步中断响应延时为 3 TCY,其中 TCY 为指令周期时间。 不论 Inst PC)是单周
PC+1
中断响应延时
PC+1
无效周期
2
0004h
Inst (0004h)
无效周期
0005h
Inst (0005h)
Inst (0004h)
2004 Microchip Technology Inc. DS41190C_CN 第 63
PIC12F629/675

9-8 中断寄存器汇总

地址 名称
0Bh, 8Bh INTCON GIE PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 0000 0000 000u
0Ch PIR1
8Ch PIE1 EEIE ADIE
图注: x = 未知、 u = 未改变、 - = 未实现,读作 0q = 值随条件改变。
阴影单元表示未被中断模块使用。
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
EEIF ADIF
- -
CMIF
CMIE
- -
TMR1IF 00-- 0--0 00-- 0--0
TMR1IE 00-- 0--0 00-- 0--0
PORBOD
时的值
所有其它复
位时的值

9.5 中断过程中的现场保护

在中断期间,仅将返回的 PC 值压入堆栈。通常情况下, 用户会希望保存中断过程的关键寄存器,例如,W 寄存 器和状态寄存器。这必须由软件实现。
9-2 说明了如何保存和恢复状态寄存器和 W 寄存器。 在两个存储区中都必须定义用户寄存器 W_TEMP,且 它们相对于各自存储区基地址的偏移量必须相同。
(即,如果在存储区 0 中定义 W_TEMP 位于 0x20 地址
单元,那么在存储区 1 中必须定义 W_TEMP 位于 0xA0 地址单元)。用户寄存器 STATUS_TEMP,必须定义在 存储区 0 中。在例 9-2 中:
保存 W 寄存器的内容
将状态寄存器中的值保存到存储区 0 中
执行 ISR 代码
恢复状态寄存器 (和存储区选择位寄存器)内容
恢复 W 寄存器内容
9-2:在RAM 中保存状态和 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
存器的内容
could be in either bank
current bank
W, sets bank to original state

9.6 看门狗定时器 (WDT

看门狗定时器是可自行运行的片上 RC 振荡器,它无需 任何外接元件。该 RC 振荡器与 CLKIN 引脚上的 RC 振 荡器和 INTOSC 是相互独立的。这就意味着即使停止器 件 OSC1 OSC2 引脚上的时钟 (如执行 SLEEP 指 令), WDT 仍可工作。正常工作情况下,WDT 超时将 导致器件复位。如果器件处于休眠模式, WDT 超时将 唤醒器件并使其继续在正常状态下工作。通过将配置位
WDTE 编程为 0 可永久禁止 WDT (第 9.1 节)。
9.6.1 WDT 周期
WDT 的超时溢出周期标称值为 18 ms (不带预分频器
时)。每个器件的超时溢出周期随温度、 V 差异而各不相同 (参见 DC 规范)。如果希望得到更长 的超时溢出周期,可以在软件控制下通过写 OPTION 寄 存器,将分频比最高可达 1:128 的预分频器分配给 WDT。这样就可以实现长达 2.3 秒的超时周期。
如果将预分频器分配给 WDT,执行 CLRWDT SLEEP 指令将会清零WDT 和预分频器,并阻止预分频器超时, 或产生器件复位。
看们狗定时器超时溢出时,将清零 STATUS 寄存器中的
位。
TO
9.6.2 WDT 编程注意事项
在最恶劣的情况下(即 VDD 最小、温度最高、WDT 预 分频比最大),WDT 发生超时溢出的时间可长达几秒, 因此在编程时应加以考虑。
DD 和工艺的
DS41190C_CN 64  2004 Microchip Technology Inc.

9-12 看门狗定时器框图

CLKOUT
(= FOSC/4)
0
1
T0CKI
引脚
T0SE
T0CS
0
1
8
预分频器
PIC12F629/675
数据总线
1
同步 2
周期
0
PSA
8
TMR0
溢出时置位
标志位 T0IF
8
PS0 - PS2
看门狗 定时器
WDTE
PSA
1: T0SET0CSPSAPS0-PS2 Option 寄存器中的位。

9-9 看门狗定时器寄存器汇总

地址 名称
81h OPTION_REG
2007h
图注: u = 未改变,阴影单元表示未被看门狗定时器使用。
配置位
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
GPPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
CP BODEN MCLRE PWRTE WDTE F0SC2 F0SC1 F0SC0 uuuu uuuu uuuu uuuu
1
0
PSA
WDT
超时
PORBOD
时的值
所有其他复
位时的值
2004 Microchip Technology Inc. DS41190C_CN 65
PIC12F629/675

9.7 掉电模式 (休眠)

执行 SLEEP 指令将进入掉电模式。
如果看门狗定时器被使能:
• WDT 将被清零并保持继续工作
状态寄存器中的 PD 位置 1
• TO
关闭振荡器驱动器
• I/O 端口保持执行 SLEEP 指令之前的状态 (驱动
输出高电平、低电平或者呈现高阻态)。
为了使该模式下的电流消耗最小,所有的 I/O 引脚都应 该保持为 V
DD 或 VSS 电平,以确保外部电路的驱动电
流不从 I/O 引脚输出,同时比较器和 CV 为了避免悬空输入端引起开关电流,应从外部拉高或拉 低高阻输入的 I/O 引脚。为了将电流消耗降至最低, TOCKI 输入也应该保持为 VGPIO 片内上拉造成的电流消耗。
引脚必须处于逻辑高电平状态 (VIHMC)。
MCLR
注: 注意,WDT 超时产生的复位不会将 MCLR
引脚拉至低电平。
9.7.1 从休眠状态唤醒
可以通过下列任一事件将器件从休眠状态唤醒:
1. MCLR
2. 看门狗定时器唤醒 (如果 WDT 使能)
3. GP2/INT 引脚中断、GPIO 电平变化中断或外设
引脚上的外部复位输入
中断。
位被清零
REF 应被关闭。
DD 或 VSS 电平。还应考虑
第一种事件会导致器件复位。 后两种事件被认为是程序 执行的延续。可用状态寄存器中的 TO 件复位的原因。 PD
位在上电时置位,在进入休眠时清
PD 位判断器
零。如果发生了 WDT 唤醒将使 TO 位清零。 在执行 SLEEP 指令时,下一个指令 (PC+1)被预取。
要通过中断事件唤醒器件,必须将相应的中断使能位置 位 (即允许中断)。唤醒与 GIE 位的状态无关。如果 GIE 位清零(禁止),器件仍继续执行 SLEEP 指令以后 的指令。 如果 GIE 位被置位(使能),器件执行 SLEEP 指令之后的指令,然后跳转到中断地址 (0004h)。 果不想执行SLEEP指令以后的指令,用户应该在SLEEP 指令后面放置一条 NOP 指令。
注: 如果全局中断 (GIE 清零)被禁止,但所
有中断源都将其各自的中断使能位和相应 的中断标志位置位,器件将立即从休眠状 态唤醒。 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: 假定为 XTHS LP 振荡器模式。
2T 3: 假设 GIE=1。在这种情况下,处理器在被唤醒后将跳转至中断程序。如果 GIE=0,将按顺序继续执行。 4: 在 XTHSLP EC 振荡器模式下, CLKOUT 无效,此处仅作为时序参考。
PC PC+1 PC+2
Inst(PC) = SLEEP
Inst (PC-1)
OST = 1024TOSC (图形未按比例绘制)。 RC 振荡器模式的延迟时间约为 1µsINTCON 模式下从休眠模式唤醒的延时参见第 12 节。
Inst (PC+1)
休眠
处于休眠状态的
处理器
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
(2)
OST
T
中断响应延时
( 注 2)
PC+2
Inst (PC+2)
Inst (PC+1)
PC +2 0004h 0005h
Inst (0004h)
无效周期
无效周期
Inst (0005h)
Inst (0004h)
DS41190C_CN 66  2004 Microchip Technology Inc.
PIC12F629/675

9.8 代码保护

如果未编程代码保护位,可以通过读出片上程序存储器 进行验证。
注: 当代码保护被关闭时,整个数据 EEPROM
和闪存程序存储器的内容均将被擦除。同 时,INTOSC 校准数据也被擦除。更多信息 请参见 PIC12F629/675 编程规范。

9.9 ID 地址单元

4 个存储器单元 (2000h-2003h)指定为 ID 地址单 元,用户可在其中存放校验和或者其它识别代码。正常 执行时不能访问这些地址单元,但在编程 / 校验过程中 它们是可读写的。 ID 地址单元只有低 7 位被使用。

9.10 在线串行编程

在最终应用电路中可对PIC12F629/675单片机进行串行 编程。可通过一根时钟线、一根数据线和以下三种其它 连线即可完成编程:
电源线
接地线
编程电压线
这使用户在制造电路板时得以使用未编程器件,并在产 品装运前才对单片机进行编程。这样还可使用最新固件 或用户定制的固件进行编程。
当将 MCLR 时,保持 GP0 GP1 引脚为低电平,可使器件进入编 程 / 校验模式(参见编程规范)。此时 GP0 成为编程数 据引脚而 GP1 成为编程时钟引脚。在这种模式下,GP0GP1 均为施密特触发输入。
复位后,将器件置于编程 / 校验模式,程序计数器(PC) 处于地址单元 00h。然后向器件发送一条 6 位命令。根 据具体命令是执行装载还是读取操作,可向器件提供一 个 14 位的程序数据或是从器件发出一个 14 位的程序数 据。有关串行编程的具体细节,请参阅编程规范。
9-14 所示为典型的在线串行编程连接。
VPP)引脚电平从 VIL 提升到 VIHH 的同

9-14 典型在线串行编程连接

至正常
至正常 连接
连接
PIC12F629/675
DD
V
VSS
GP3/MCLR/VPP
GP1
GP0
DD
V
外部 连接器 信号
数据 I/O
+5V
0V
V
CLK
PP

9.11 在线调试器

由于在线调试需要占用时钟线、数据线和 MCLR 引脚, 因此实际应用中不采用 MPLAB® ICD 2 调试 8 引脚器 件。一款特殊的 14 引脚 PIC12F675-ICD 器件与 MPLAB 配合使用,可以提供独立的时钟线、数据线以及 MCLR 引脚,因此释放了所有通常可用的引脚供用户使用。
该特殊的 ICD 器件被固定在主机的顶部,其信号被路由 到 MPLAB ICD2 连接器。主机底部是一个 8 引脚的插 槽,可通过一个 8 引脚转接器插入用户的目标板。
PIC12F675-ICD 上的 ICD 能在线调试器功能。这一功能在与 MPLAB ICD2 配合使 用时,即可进行一些简单的调试。当单片机的这项功能 使能时,某些资源就不再是通用的了。表 9-10 给出了 后台调试器所占用的资源。

9-10 调试器资源

I/O 引脚 ICDCLKICDDATA
堆栈 1
程序存储器 地址 0h 必须为 NOP
引脚保持为低电平,将使
300h - 3FEh
更多信息,参见 Microchip 网站(www.microchip.com) 上的 8-Pin MPLAB ICD 2 Header Information Sheet
DS51292)。
2004 Microchip Technology Inc. DS41190C_CN 67
PIC12F629/675
注:
DS41190C_CN 68 2004 Microchip Technology Inc.
PIC12F629/675

10.0 指令集概述

PIC12F629/675 的指令集具有高度正交性,可分为以下 三种基本类型:
针对字节的操作
针对位的操作
立即数和控制操作
每个 PIC12F629/675 指令都是 14 位字,可以分为指明 指令类型的操作码和进一步指明指令操作的一个或多个 操作数。图 10-1中显示了每种指令类型的指令格式,而 表 10-1 则是不同操作码字段的汇总。
TM
10-2 列出了所有可被 MPASM 令。有关每条指令的完整说明还可参见《PICmicro®中 档单片机系列参考手册》(DS33023A_CN)。
对于字节操作指令, f 是文件寄存器的标识符,而 d 是 目标寄存器的标识符。文件寄存器标识符指定了指令将 会使用哪个数据寄存器。
目标寄存器标识符指定了指令操作结果存放的地址。 果“d”等于 0,结果就存放在 W 寄存器中。 如果“d” 等于 1,结果就存放在指令指定的文件寄存器中。
对于位操作类指令,“b”代表位字段标识符,用于选择 操作影响到的位,而 “f”代表相应位所在的数据寄存 器的地址。
对于立即数和控制操作,“k”代表一个 8 位或 11 位常 数,即立即数的值。
一个指令周期包含四个振荡器周期;对于频率为 4 MHz 的振荡器,其正常指令执行时间为 1 µs。所有指令都在 一个指令周期之内执行,除非条件测试为真或程序计数 器根据指令结果发生变化。当上述特殊情况发生时,指 令的执行就需要两个指令周期,第二个周期执行一条 NOP 指令。
注 : 为了保持与未来产品的向上兼容,请不要
使用 OPTION TRISIO 指令。
所有指令示例都使用“0xhh”的形式表示十六进制数, 其中 “h”代表一个十六进制数。

10.1 读 - 修改 - 写操作

任何将文件寄存器作为指令的一部分的指令均执行读 ­修 - 写(R-M-W)操作。先读寄存器,然后修改数据, 再将结果存放到由指令或目标标识符 “d”指定的单元 中去。即使指令是写入某个寄存器,仍然会对此寄存器 执行读操作。
汇编器识别的指
例如,CLRF GPIO 指令会读 GPIO,清零所有数据位, 然后将结果写回到 GPIO 这个例子会产生意外结果, 清除将 GPIF 1 的条件。 .

10-1 操作码字段说明

字段 说明
f
寄存器地址 (0x00 0x7F
W
工作寄存器 (累加器)
b
8 位数据寄存器的位地址
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( 位地址 ) 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. DS41190C_CN 第 69
PIC12F629/675

10-2 PIC12F629/675 指令集

助记符,
操作数
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
休眠
SUBLW XORLW
1: I/O 寄存器作为自身的函数被修改时 (例如, MOVF
f, d
W f
f, d
W f 与运算
f
f 清零
-
W 清零
f, d
f 的补码
f, d
f 1
f, d
f 1,为 0 则跳过
f, d
f 1
f, d
f 1,为 0 则跳过
f, d
W f 同或运算
f, d
移动 f
f
W 的内容移动至 f
-
空操作
f, d
f 带进位左循环
f, d
f 带进位右循环
f, d
f 减去 W
f, d
f 半字节交换
f, d
W f 异或运算
f, b
f 位清零
f, b
f 位置 1
f, b
检测 f 的位,为 0 则跳过
f, b
检测 f 的位,为 1 则跳过
k
立即数加 W
k
立即数和 W 与运算
k
调用子程序
-
看门狗定时器清零
k
跳转
k
立即数和 W 同或运算
k
将立即数移动到 W 寄存器
-
从中断返回
k
返回时将立即数存入 W
-
从子程序返回
-
进入待机模式
k
立即数减去 W
k
立即数和 W 异或运算
脚配置为输入,其数据锁存器中的值为 “1”,被外部器件拉为低电平时,则写回的数据锁存值将是 “0”。
2: 当该指令的执行使用 TMR0 寄存器 (以及 d=1)时,如果将预分频器分配给 Timer 0 模块,则将其清零。 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
GPIO, 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
Z Z Z Z Z
Z
Z Z
C C
C,DC,Z
Z
C,DC,Z
Z
TO
,PD
Z
,PD
TO
C,DC,Z
Z
注释
1,2 1,2
2
1,2 1,2
1,2,3
1,2
1,2,3
1,2 1,2
1,2 1,2 1,2 1,2 1,2
1,2 1,2
3 3
注:有关中档单片机指令集的其信息请参阅《PICmicro®中档单片机系列参考手册》(DS33023A_CN)。
DS41190C_CN 70  2004 Microchip Technology Inc.

10.2 指令说明

PIC12F629/675
ADDLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态位:
说明: 8 位立即数 “k”与 W 寄存器的
ADDWF
语法: [
操作数: 0 f 127
工作原理: (W) + (f) (目标寄存器)
受影响的状态位:
说明: W 寄存器与 “f”寄存器的内容相
立即数加 W
标号
] ADDLW k
(W) + k (W)
C, DC, Z
内容相加,结果存入 W 寄存器。
W f
标号
] ADDWF f,d
d [0,1]
C, DC, Z
加。 如果 “d”为 0,结果存入 W 寄存器。 如果 “d”为 1,结果存 回到寄存器 “f”。
BCF
语法: [
操作数: 0 f 127
工作原理:
受影响的状态位: 无
说明: 寄存器 “f”中的 “b”位被清
BSF
语法: [
操作数: 0 f 127
工作原理:
受影响的状态位: 无
说明: 寄存器 “f”中的 “b”位被置
f 位清零
标号
] BCF f,b
0 b 7 0 (f<b>)
零。
f 位置 1
标号
] BSF f,b
0 b 7 1 (f<b>)
1
ANDLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态位:
说明: 寄存器 W 的内容与 8 位立即数
ANDWF
语法: [
操作数: 0 f 127
工作原理: (W) .AND. (f) (目标寄存器)
受影响的状态 位:
说明: W 寄存器和 f 寄存器进行与运算。
立即数和 W 与运算
标号
] ANDLW k
(W) .AND. (k) (W)
Z
k”进行与运算,结果存入 W
存器。
W f 与运算
标号
] ANDWF f,d
d [0,1]
Z
如果 “d”为 0,结果存入寄存器 W。如果 “d”为 1,结果存回到 寄存器 “f”。
BTFSS
语法: [
操作数: 0 f 127
工作原理: 如果 (f<b>= 1 则跳过
受影响的状态位:无
说明: 如果寄存器 “f”的位 “b”为
BTFSC
语法: [
操作数: 0 f 127
工作原理: 如果 (f<b>= 0 则跳过
受影响的状态位:无
说明: 如果寄存器 “f”的位 “b”为
检测 f 的位,为 1 跳过
标号
] BTFSS f,b
0 b < 7
0”,则执行下一条指令。
如果位 “b”为 “1”,则放弃执 行下一条指令而执行一条 NOP 指 令,使该指令成为 2T
检测位,为 0 则跳过
标号
] BTFSC f,b
0 b 7
1”,则执行下一条指令。
如果寄存器 “f”的位 “b”为
0”,则放弃执行下一条指令,而
执行一条 NOP 指令,使该指令变
CY 指令。
2T
CY 指令。
2004 Microchip Technology Inc. DS41190C_CN 第 71
PIC12F629/675
CALL
语法: [
操作数: 0 k 2047
工作原理:
受影响的状态 位:
说明: 调用子程序。 首先,将返回地址
CLRF
语法: [
操作数: 0 f 127
工作原理:
受影响的状态位:
说明: 寄存器 f 已清零, Z 位置 1
调用子程序
标号
] CALL k
(PC)+ 1 TOS, k PC<10:0>, (PCLATH<4:3>) PC<12:11>
PC+1)压入堆栈。 11 位立即数
地址被装入 PC <10:0> PC 高 位从 PCLATH 装入。 CALL 是双 周期指令。
f 清零
标号
] CLRF f
00h (f) 1 Z
Z
CLRWDT
语法: [ 标号] CLRWDT
操作数:
工作原理:
受影响的状态 位:
说明: CLRWDT 指令复位看门狗定时器。
COMF
语法: [
操作数: 0 f 127
工作原理: (f
受影响的状态 位:
说明: 取寄存器 “f”中内容的补码。
看门狗定时器清零
00h WDT 0 WDT 预分频器,
1 TO 1 PD
,PD
TO
而且还复位 WDT 预分频器。 状态位 TO
f 取反
标号
d [0,1]
) ( 目标寄存器 )
Z
果“d”为 0,结果存入 W。如果d”为 1,结果存回到寄存器 “f”。
PD 置位。
] COMF f,d
CLRW
语法: [
操作数:
工作原理:
受影响的状态 位:
说明: W 寄存器被清零。 全零位 (Z)
W 清零
标号
] CLRW
00h (W) 1 Z
Z
1
DECF
语法: [
操作数: 0 f 127
工作原理: (f) - 1 → ( 目标寄存器 )
受影响的状态 位:
说明: 寄存器 “f”减 1 如果 “d”为
f 1
标号
] DECF f,d
d [0,1]
Z
0,结果存入 W 寄存器。 如果
d”为 1,结果存回到寄存器 “f”。
DS41190C_CN 72 2004 Microchip Technology Inc.
PIC12F629/675
DECFSZ
语法: [ 标号] DECFSZ f,d
操作数: 0 f 127
工作原理: (f) - 1 → ( 目标寄存器 ) ;
受影响的状态位:无
说明: 寄存器 “f”的内容递减, 如果
GOTO
语法: [
操作数: 0 k 2047
工作原理:
受影响的状态位:无
说明: GOTO 是无条件转移指令。 11 位立
f 1,为 0 则跳过
d [0,1]
如果结果为 0 则跳过
d”为 0,结果存入 W 寄存器。
如果 “d”为 1,结果存回到 寄存器 “f”。 如果结果是 1,执行下一个指令。 如果结果为 0,则执行 NOP 指令, 使其成为 2T
无条件转移
标号
k PC<10:0> PCLATH<4:3> PC<12:11>
即数被装入 PC <10:0>PC 高 位从 PCLATH<4:3> 装入。 GOTO 是双周期指令。
CY 的指令。
] GOTO k
INCFSZ
语法: [
操作数: 0 f 127
工作原理: (f) +1 → ( 目标寄存器 ),
受影响的状态位:无
说明: 寄存器 “f”的内容递增。如果
IORLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态位:
说明: 寄存器 W 的内容与 8 位立即数
f 1,为 0 则跳过
标号
] INCFSZ f,d
d [0,1]
如果结果为 0 则跳过
d”为 0,结果存入 W 寄存器。
如果 “d”为 1,结果存回到寄存 器“f”。 如果结果是 1,执行下一个指令。 如果结果为 0,则执行 NOP 指令, 使其成为一条 2T
立即数和 W 或运算
标号
] IORLW k
(W).OR. k (W)
Z
k”进行或运算。结果存入 W
寄存器。
CY 的指令。
INCF
语法: [
操作数: 0 f 127
工作原理: (f) +1 → ( 目标寄存器 )
受影响的状态 位:
说明: 寄存器 “f”的内容递增。如果
2004 Microchip Technology Inc. DS41190C_CN 73
f 1
标号
] INCF f,d
d [0,1]
Z
d”为 0,结果存入 W 寄存器。
如果 “d”为 1,结果存回到 寄存器 “f”。
IORWF
语法: [
操作数: 0 f 127
工作原理: (W) .OR. (f) (目标寄存器)
受影响的状态 位:
说明: W 寄存器和 f 寄存器进行或运算。
W f 或运算
标号
] IORWF f,d
d [0,1]
Z
如果 “d”为 0,结果存入 W 寄 存器。 如果 “d”为 1,结果存回 到寄存器 “f”。
PIC12F629/675
MOVF
语法: [
操作数: 0 f 127
工作原理: (f) 目标寄存器)
受影响的状态 位:
说明: 根据 d 的状态,将寄存器 f 的内容
MOVLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态位: 无
说明: 8 位立即数 k 送入 W 寄存器。
移动 f
标号
] MOVF f,d
d [0,1]
Z
移入目标寄存器。如果 d 0, 目标寄存器是 W 寄存器。 如果 d=1,目标寄存器是 f寄存器本身。 由于该指令影响状态标志位 Z,可 用于在 d = 1 时检测数据寄存器的 内容是否为 0。
将立即数移动到 W 寄存器
标号
] MOVLW k
k (W)
关的位置为 0
NOP
语法: [
操作数:
工作原理: 空操作
受影响的状态 位:
说明: 空操作
RETFIE
语法: [
操作数:
工作原理:
受影响的状态 位:
空操作
标号
从中断返回
标号
TOS PC,
1 GIE
] NOP
] RETFIE
MOVWF
语法: [
操作数: 0 f 127
工作原理:
受影响的状态位: 无
说明: 将数据从 W 寄存器送入
W 的内容移动至 f
标号
] MOVWF f
(W) (f)
寄存器 f
RETLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态 位:
说明: 寄存器 W 的内容装入 8 位立即数
返回时将立即数送 W 寄存器
标号
] RETLW k
k (W);
TOS PC
k”。 将栈顶内容 (返回地址)
装入程序计数器。 这是双周期指
令。
DS41190C_CN 74 2004 Microchip Technology Inc.
PIC12F629/675
RLF
语法: [
操作数: 0 f 127
工作原理: 参见下面的描述
受影响的状态 位:
说明: 寄存器 f 的内容连同进位标志位循环
RETURN
语法: [
操作数:
工作原理:
受影响的状态 位:
说明: 从子程序返回。 执行出栈操作,将
f 带进位左循环
标号
d [0,1]
C
左移 1 位。 如果 “d”为 0,结果存W 寄存器。 如果 “d”为 1,结 果存回到寄存器 “f”。
从子程序返回
标号
TOS PC
栈顶 (TOS)单元内容装入程序 计数器。 这是双周期指令。
RLF f,d
]
] RETURN
寄存器 fC
SLEEP
语法: [
操作数:
工作原理:
受影响的状态位:
说明: 掉电状态位,PD 被清零。 超时状
SUBLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态 位:
说明: 8 位立即数 “k”减去 W 寄存器的
标号
00h WDT, 0 WDT 预分频器,
1 TO 0 PD
TO
态位 TO 器及其预分频器。振荡器停振, 单片机进入休眠模式。
立即数减去 W
标号
k - (W) → (W)
C, DC, Z
内容 (使用 2 进制补码的方法)。 结果存入 W 寄存器。
SLEEP
]
,
,PD
置位。 清零看门狗定时
SUBLW k
]
RRF
语法: [
操作数: 0 f 127
工作原理: 参见下面的描述
受影响的状态 位:
说明: 寄存器 f 的内容连同进位标志位循
f 带进位右循环
标号
] RRF f,d
d [0,1]
C
环右移 1 位。如果 “d”为 0,结 果存入 W 寄存器。 如果 “d”为 1,结果存回到寄存器 “f”。
寄存器 fC
SUBWF
语法: [
操作数: 0 f 127
工作原理: (f) - (W) → ( 目标寄存器 )
受影响的状态 位:
说明: f 寄存器内容减去 W 寄存器内容
f 减去 W
标号
d [0,1]
C, DC, Z
(使用 2 进制补码的方法)。 如果d”为 0,结果存入 W 寄存器。
果“d”为 1,结果存回到寄存器
f”。
SUBWF f,d
]
2004 Microchip Technology Inc. DS41190C_CN 第 75
PIC12F629/675
SWAPF
语法: [ 标号]
操作数: 0 f 127
工作原理: (f<3:0>) → ( 目标寄存器 <7:4>),
受影响的状态 位:
说明: 寄存器 “f”的高半字节和低半字
XORLW
语法: [
操作数: 0 k 255
工作原理:
受影响的状态位:
说明: 寄存器 W 的内容与 8 位立即数
f 半字节交换
SWAPF f,d
d [0,1]
(f<7:4>) ( 目标寄存器 <3:0>)
节交换。 如果 “d”为 0,结果存W 寄存器。 如果 “d”为 1, 结果存回到寄存器 “f”。
立即数和 W 异或运算
XORLW k
标号
]
(W) .XOR. k → (W)
Z
k”进行异或运算。 结果存入
W 寄存器。
XORWF
语法: [
操作数: 0 f 127
工作原理: (W) .XOR. (f) →( 目标寄存器 )
受影响的状态 位:
说明: W 寄存器与 “f”寄存器的内容进
W f 异或运算
标号
d [0,1]
Z
行异或运算。 如果 “d”为 0,结
果存入 W 如果 “d”为 1,结果
存回到寄存器 “f”。
XORWF f,d
]
DS41190C_CN 76  2004 Microchip Technology Inc.
PIC12F629/675

11. 0 开发支持

一系列硬件及软件开发工具对 PICmicro®单片机提供支 持:
集成的开发环境
- MPLAB
汇编器 / 编译器 / 链接器
- MPASM
- MPLAB C17 MPLAB C18 C 编译器
-MPLINK MPLIB
- MPLAB C30 C 编译器
- MPLAB ASM30 汇编器 / 链接器 / 库
模拟器
- MPLAB SIM 软件模拟器
- MPLAB dsPIC30 软件模拟器
仿真器
- MPLAB ICE 2000 在线仿真器
- MPLAB ICE 4000 在线仿真器
在线调试器
- MPLAB ICD 2
器件编程器
-PRO MATE
-PICSTART
- MPLAB PM3 器件编程器
低成本演示板
-PICDEM
-PICDEM.net
- PICDEM 2 Plus 演示板
-PICDEM 3演示板
-PICDEM 4演示板
-PICDEM 17演示板
-PICDEM 18R演示板
-PICDEM LIN演示板
- PICDEM USB 演示板
评估工具包
-K
-PICDEM MSC
-microID
-CAN
- PowerSmart
- 模拟
EELOQ
®
IDE 软件
TM
汇编器
TM
目标链接器 /
TM
目标库管理器
®
II 通用器件编程器
®
Plus 开发编程器
TM
1 演示板
TM
演示板
®
®
®

11. 1 MP LAB 集成开发环境软件

MPLAB IDE 软件为 8/16 位单片机市场提供了前所未有 的软件开发平台。 MPLAB IDE 是基于 Windows®平台 的应用软件,包括:
调试工具接口
- 模拟器
- 编程器 (单独销售)
- 仿真器 (单独销售)
- 在线调试器 (单独销售)
具有彩色上下文代码显示的全功能编辑器
多项目管理器
内容可直接编辑的可定制式数据窗口
高级源代码调试
鼠标停留在变量上进行查看的功能
丰富的在线帮助
MPLAB IDE 可以让您:
编辑源文件 (用汇编语言或 C 语言)
点击一次即可完成汇编 (或编译)并将代码下载
PICmicro 仿真器和模拟器工具中 (自动更新所 有项目信息)
可使用如下各项进行调试:
- 源文件 (汇编语言或 C 语言)
- 混合汇编语言和 C 语言
- 机器码
MPLAB IDE 在单个开发范例中支持使用多种调试工
具,包括从节约成本的模拟器到低成本的在线调试器, 再到全功能的仿真器。这样缩短了用户升级到更加灵活 而功能更强大的工具时的学习时间。

11.2 MPASM 汇编器

MPASM 汇编器是全功能通用宏汇编器,适用于所有的 PICmicro MCU
MPASM 汇编器可生成用于 MPLINK 目标链接器的可重
定位目标文件、Intel 使用状况和符号参考的 MAP 文件、包含源代码行及生 成机器码的绝对 LST 文件以及用于调试的 COFF 文件。
MPASM 汇编器具有如下特征:
集成在 MPLAB IDE 项目中
用户定义的宏可对汇编代码进行流水线处理
对多用途源文件进行条件汇编
允许完全控制汇编过程的指令
®
标准 HEX 文件、有关存储器详细
2004 Microchip Technology Inc. DS41190C_CN 第 77
PIC12F629/675

11.3 MPLAB C17 MPLAB C18 C 编译器

MPLAB C17 MPLAB C18 代码开发系统是完全的 ANSI C 编译器,分别适用于 Microchip 的 PIC17CXXX
PIC18CXXX 系列单片机。这些编译器可提供其它编 译器所不具有的强大的集成功能和卓越的代码优化能 力,且使用方便。
为便于源代码调试,编译器提供了针对 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 程序而设计的。
DS41190C_CN 78 2004 Microchip Technology Inc.
PIC12F629/675
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 ICE 4000 是高级的仿真系统,除具备 MPLAB ICE 2000 的所有功能外,它还增加了仿真存储容量以及
适用于 dsPIC30F PIC18XXXX 器件的高速性能。该 仿真器的先进特性包括复杂触发和定时功能,高达2 Mb 的仿真存储容量以及实时变量监视功能。
MPLAB ICE 4000 在线仿真系统设计为一款实时仿真系 统,该仿真系统具备通常只有在更加昂贵的开发工具中 才有的高级功能。选择 PC 平台和 Microsoft Windows 32 位操作系统可使这些功能在一个简单而统一的应用 程序中得以很好的利用。
11.11 MPLAB ICD 2在线调试器.
Microchip 的在线调试器 MPLAB ICD 2 是一款功能强大 而成本低廉的运行时开发工具,通过 RS-232 或高速
USB 接口与 PC 主机相连。该工具基于闪存 PICmicro MCU,可用于开发本系列及其它 PICmicro 单片机。 MPLAB ICD 2 使用了闪存器件中内建的在线调试功能。
该功能结合 Microchip 的在线串行编程 (ICSP 议,可在 MPLAB 集成开发环境的图形用户界面上提供 成本效益很高的在线闪存调试。这使设计人员可通过设 置断点、单步运行以及对变量、CPU 状态以及外设寄存 器进行监视的方法实现源代码的开发和调试。其全速运 行特性可对硬件和应用进行实时测试。MPLAB ICD 2 还 可用作某些 PICmicro 器件的开发编程器。
TM
)协

11.12 PRO MATE II 通用器件编程器

PRO MATE II 是一款通用的、符合 CE 规范的器件编程 器,其可编程电压设置在 VDDMIN VDDMAX 之间时可 获得最高可靠性。它有一个 LCD 显示器用来显示指令和 错误信息,以及一个支持各种封装类型的可拆卸模块化 插槽装置。在单机模式下,PRO MATE II 器件编程器不 必与 PC 相连即可对 PICmicro 器件进行读取、校验和编 程。在该模式下它还可设置代码保护。

11.13 MPLAB PM3 器件编程器

MPLAB PM3 是一款通用的、符合 CE 规范的器件编程 器,其可编程电压设置在 VDDMIN VDDMAX 之间时可 获得最高可靠性。它有一个用来显示菜单和错误信息的 大 LCD 显示器(128 x 64),以及一个模块化可拆卸插 槽装置,用以支持各种封装类型。编程器标准配置中带 有一根 ICSP™ 电缆。在单机模式下, MPLAB PM3 器 件编程器不必与 PC 相连即可对 PICmicro 器件进行读 取、校验和编程。在该模式下它还可设置代码保护。 MPLAB PM3 通过 RS-232 USB 电缆连接到 PC 主机 上。MPLAB PM3 具备高速通信能力以及优化算法,可 对存储器很大的器件进行快速编程,它还采用 SD/MMC 卡用作文件存储及数据安全应用。
2004 Microchip Technology Inc. DS41190C_CN 79
PIC12F629/675

11.14 PICSTART Plus 开发编程器

PICSTART Plus开发编程器是一款易于使用而成本低廉 的原型编程器。它通过 COM (RS-232) 端口与PC 相连。 MPLAB 集成开发环境软件使得该编程器的使用简便、 高效。PICSTART Plus开发编程器支持大部分PICmicro 器件,其引脚数最多可达 40 个。引脚数较多的器件,如 PIC16C92X PIC17C76X,可通过连接一个适配器插 槽来获得支持。PICSTART Plus 开发编程器符合 CE 范。

11.15 PICDEM 1 PICmicro 演示板

ICDEM 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.16 PICDEM.net 因特网 / 以太网演示板

PICDEM.net 演示板是一块使用 PIC18F452 单片机和 TCP/IP 固件的因特网 / 以太网演示板。该演示板支持所
有符合 PIC16F877 PIC18C452 标准引脚排列的 40 引脚 DIP 器件。该工具包具备方便使用的 TCP/IP 堆栈、 带 HTML 的网络服务器、一个用于 Xmodem 下载至网 页的 24L256 串行 EEPROMICSP/MPLAB ICD 2 接口 连接器、一个以太网接口、 RS-232 接口以及一个 16 x
2 LCD 显示器。还包括 Jeremy Bentham 所著的
IP Lean, Web Servers for Embedded Systems”一书及
配套 CD-ROM
TCP/

11.17 PICDEM 2 Plus 演示板

PICDEM 2 Plus 演示板支持多种 1828 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 闪存单片机样片。

11.18 PICDEM 3 PIC16C92X 演示板

PICDEM 3 演示板支持 PLCC 封装形式的 PIC16C923PIC16C924。它包含运行基本演示程序所必需的软硬 件。

11.19 PICDEM 4 8/14/18 引脚演示板

PICDEM 4 可用于演示 8、14、18 引脚 PIC16XXXX PIC18XXXX MCU,包括 PIC16F818/819、PIC16F87/ 88、PIC16F62XAPIC18F1320单片机系列。PICDEM 4 旨在显示这些低引脚数器件的许多功能,包括 LIN
采用 ECCP 的电机控制功能。该演示板为低功耗操作特 别提供了一些装置,如超级电容电路以及跳线器,可禁 止电路板上的硬件以使低功耗模式下的电流减小。演示 板上包括晶振、 RC 或固定振荡器模式,以及用于连接 9 伏电源适配器或电池的 5 伏稳压器,DB-9 RS-232 接 口,用于通过 ICSP MPLAB ICD 2 进行开发编程的 ICD 连接器,2 x 16 液晶显示器,用于 H 桥电机驱动器PCB 引脚布局,以及 LIN 收发器和 EEPROM。该 演 示板还具备:扩展用主机,8 个 LED,4 个电位器,3 个 按钮开关以及样机制作区。工具包内还提供 PIC16F627A PIC18F1320 样片各一枚。教程软件以 及用户指南也含在演示板工具包中。
DS41190C_CN 80 2004 Microchip Technology Inc.
PIC12F629/675

11.20 PICDEM 17 演示板

PICDEM 17 演示板是一种评估板,可以演示几种 Microchip 单片机的功能,包括 PIC17C752、 PIC17C756APIC17C762 PIC17C766。它包含了
一枚已编程的样片。用户可使用 PRO MATE II 器件编程 器或 PICSTART Plus 开发编程器根据自己的应用对器 件进行再编程。 PICDEM 17 演示板支持从外部电路板 的闪存存储器下载或执行程序。板上还配置有宽大的实 验布线区供用户扩展硬件。

11.21 PICDEM 18R PIC18C601/801 演示 板

PICDEM 18R 演示板用于协助用户进行 Microchip PIC18C601/801 系列单片机的开发。它用硬件实现了 8
位多路信号复用 / 信号分离和 16 位存储器模式。这块板 包含 2 MB 外部闪存存储器、128 KB SRAM 存储器以及 串行 EEPROM,允许访问 PIC18C601/801 支持的各种 存储器类型。

11.22 PICDEM LIN PIC16C43X 演示板

功能强大的 LIN 软硬件工具包包括一系列电路板和 3
PICmicro 单片机。外形小巧的 PIC16C432 PIC16C433 用作 LIN 通信中的从机,具备板上 LIN
发器。PIC16F874 闪存单片机作为主机。所有这三枚单 片机均经过固件编程以实现 LIN 总线通信。

11.24 PICDEM USB PIC16C7X5 演示板

PICDEM USB 演示板展示了 PIC16C745 和 PIC16C765 USB 单片机的功能。该板为将来的 USB 产品打下了基
础。

11. 2 5 评估和编程工具

除了 PICDEM 系列电路之外, Microchip 还为这些产品 提供了一系列评估工具包和演示软件。
用于 Microchip HCS 数据安全产品的 K 评估和编程工具
用于汽车网络应用的 CAN 开发工具包
模拟电路设计板和滤波器设计软件
• PowerSmart 电池充电评估 / 校准工具包
®
• IrDA
• microID 开发和 rfLab
用于存储器评估和耐久性估算的 SEEVAL
用于开关模式电源供电、高功率 IR 驱动器、 Σ−∆
有关演示和评估工具包的完整列表,请查阅 Microchip 公司网页以及最新的产品选型指南。
开发工具包
TM
开发软件
具包
ADC 和流速传感器的 PICDEM MSC 演示板
EELOQ
®
设计工
11.23 PICkitTM1 闪存入门工具包
作为一套完整的 “盒装开发系统”, PICkit 闪存入门工 具包中包含由多个部分组成的使用方便的电路板,可用 于 8/14 引脚闪存 PIC 电路板通过 USB 供电,可在简单的 Windows GUI 下工 作。PICkit 1 入门工具包中包括用户指南(在 CD ROM 上)、PICkit 1 教程软件和各种应用程序代码。该工具包 还包括 MPLAB 件“8 引脚闪存 PICUSB 接口线缆。它支持目前所有的 8/14 引脚闪存 PIC 单片机,以及许多计划中将要推出的器件。
®
单片机的编程、评估以及开发。
®
IDE(集成开发环境)软件、软件和硬
®
单片机窍门和点子”小册子和一
2004 Microchip Technology Inc. DS41190C_CN 81
PIC12F629/675
注:
DS41190C_CN 82 2004 Microchip Technology Inc.
PIC12F629/675

12.0 电气规范

绝对最大额定值
偏置电压下的环境温度 ......................................................................................................................-40°C 至 +125°C
储存温度............................................................................................................................................-65°C 至 +150°C
DD 相对于 VSS 的电压 ........................................................................................................................ -0.3 至 +6.5V
V
相对于 Vss 的电压..................................................................................................................... -0.3 +13.5V
MCLR
其他引脚相对于 V
(1)
总功耗
SS 引脚的最大输出电流................................................................................................................................. 300 mA
V
DD 引脚的最大输入电流 ................................................................................................................................250 mA
V
输入箝位电流, I
输出箝位电流, I
任一 I/O 引脚的最大输出灌电流 ........................................................................................................................25 mA
任一 I/O 引脚的最大输出拉电流 ........................................................................................................................25 mA
所有 GPIO 的最大灌电流 ................................................................................................................................ 125 mA
所有 GPIO 的最大拉电流 ................................................................................................................................ 125 mA
........................................................................................................................................................800 mW
SS 的电压.................................................................................................. -0.3V 至(VDD + 0.3V
IK (VI < 0 或 VI > VDD)................................................................................................... ± 20 mA
OK (Vo < 0 或 Vo >VDD)................................................................................................. ± 20 mA
1:功耗按如下公式计算: P
注: 如果工作条件超过上述 “绝对最大额定值”可能会对器件造成永久的损坏。 上述值仅为运行条件极大值,我们
建议器件不要在该极大值或该规范范围以外运行。 长时间在最大额定值条件下进行操作会影响器件的可靠性。
注: 如果 MCLR 引脚上的尖峰电压低于 VSS,感应电流大于 80 mA,可能引起死锁。 因此,当对 MCLR 施加低
电平时,应该使用一个 50-100 的串联电阻,而不是直接将引脚电平拉为 VSS
DIS = VDD x {IDD - ∑ IOH} + ∑ {(VDD-VOH) x IOH} + ∑ (VOl x IOL)
2004 Microchip Technology Inc. DS41190C_CN 83
PIC12F629/675
12-1: PIC12F629/675 A/D 禁止)电压—频率关系图
A +125°C
V
DD
V
-40°C T
5.5
5.0
4.5
4.0
3.5
3.0
2.5
2.0
0
1:阴影区域表示允许的电压 / 频率组合。
4
10
81612 20
频率(MHz
12-2: PIC12F675(A/D使能)电压—频率关系图
V
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:阴影区域表示允许的电压 / 频率组合。
DS41190C_CN 84  2004 Microchip Technology Inc.
4
10
81612 20
频率(MHz
12-3: PIC12F675 (A/D 使能)电压—频率关系图
0°C T
5.5
5.0
4.5
A +125°C
PIC12F629/675
DD
4.0
3.5
3.0
2.5
V
V
2.2
2.0
0
1:阴影区域表示允许的电压 / 频率组合。
4
81612 20
10
频率(MHz
2004 Microchip Technology Inc. DS41190C_CN 85
PIC12F629/675

12.1 DC 特性: PIC12F629/675-I (工业级), PIC12F629/675-E (扩展级)

标准工作条件 (除非另外说明)
DC 特性
工作温度 -40°C T
-40°C TA +125°C( 扩展级 )
参数编
D001 D001A D001B D001C D001D
符号 特性
DD
V
供电电压
最小值典型值最大
2.0
2.2
2.5
3.0
4.5
- - - - -
5.5
5.5
5.5
5.5
5.5
单位 条件
F
V
PIC12F629/675 A/D 模块关闭
V
PIC12F675 A/D 模块启动, 0°C 至
V
+125°C
V
PIC12F675 A/D 模块启动, -40°C 至
V
+125°C 4 MH
D002 V
DR
D003 VPOR
RAM 数据保持电压 VDD 启动电压确保能够产
(1)
1.5*
--
SS
V
V
器件处于休眠模式
V
详情请见上电复位的有关章节
生内部上电复位信号
D004 S
VDD
VDD 上升速率确保产生内
0.05*
--
V/ms
详情请见上电复位的有关章节
部上电复位信号
D005 V
BOD
2.1
V
* 这些参数仅为特征值,未经测试。除非另外说明,“典型值”栏中的数据是在 5.0V、25°C 的条件下测得的。 这些参数仅供设计参考,未经测试。
1: 这是在不丢失 RAM 数据的前提下,休眠模式中 V
DD 所能降到的最小电压值。
A +85°C( 工业级 )
OSC < = 4 MHz
Z < FOSC < = 10 MHz
DS41190C_CN 86  2004 Microchip Technology Inc.

12.2 DC 特性: PIC12F629/675-I (工业级)

标准工作条件 (除非另外说明) 工作温度 -40°C TA +85°C( 工业级 )
PIC12F629/675
参数 编号
D010
器件特性
供电电流 (IDD
D011
D012
D013
D014
D015
D016
D017
除非另外说明,“典型值”栏的数据是在 5.0V 、25°C 条件下测得的。 这些参数仅供设计参考,未经测试。
1:在有源工作模式下,所有 I
DD ; MCLR = VDD ; WDT 禁止;
V
2: 供电电流主要随工作电压和频率而变化。 其它因素,如 I/O 引脚负载和开关频率、振荡器类型、内部代码
执行模式和温度也会影响电流消耗。
最小值典型值最大
916µA2.0F
18 28 µA3.0
35 54 µA5.0
110 1 50 µA2.0F
190 280 µA3.0
330 450 µA5.0
220 280 µA2.0F
370 650 µA3.0
0.6 1.4 mA 5.0
70 110 µA2.0F
140 250 µA3.0
260 390 µA5.0
180 250 µA2.0F
320 470 µA3.0
580 850 µA5.0
340 450 µA2.0F
500 700 µA3.0
0.8 1.1 mA 5.0
180 250 µA2.0F
320 450 µA3.0
580 800 µA5.0
2.1 2.95 mA 4.5 F
2.4 3.0 mA 5.0
DD 测量值的测试条件为: OSC1 为外部方波,满幅;所有 I/O 引脚均为三态,拉
单位
DD
V
OSC = 32 kHz
LP 振荡模式
OSC = 1 MHz
XT 振荡模式
OSC = 4 MHz
XT 振荡模式
OSC = 1 MHz
EC 振荡模式
OSC = 4 MHz
EC 振荡模式
OSC = 4 MHz
INTOSC 模式
OSC = 4 MHz
EXTRC 模式
OSC = 20 MHz
HS 振荡模式
条件
备注
2004 Microchip Technology Inc. DS41190C_CN 87
PIC12F629/675

12.3 DC 特性: PIC12F629/675-I (工业级)

标准工作条件 (除非另外说明) 工作温度 -40°C TA +85°C( 工业级 )
参数 编号
D020
器件特性
掉电基线电流
PD)
(I
D021
D022
D023
D024
D025
D026
除非另外说明,“典型值”栏的数据是在 5.0V, 25°C 条件下测得的。 这些参数仅设计参考,未经测试。
1:外设电流是基本 I
IDD IPD 电流得出。计算总电流消耗时应该使用最大值。
2: 休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并且连接
DD 时测得的。
V
(1)
SC 电流
(1)
条件
REF
(1)
(1)
(1)
(1)
最小值典型值最大
0.99 700 nA 2.0
- - - - - - - - - - - - - - - - - - -
DD 或 IPD 电流与该外设时使能额外消耗的电流之和。外设 电流可以从该有限值中减去
1.2 770 nA 3.0
2.9 995 nA 5.0
0.3 1.5 µA2.0
1.8 3.5 µA3.0
8.4 17 µA5.0 58 70 µA3.0
109 130 µA5.0
3.3 6.5 µA2.0
6.1 8.5 µA3.0
11. 5 1 6 µA5.0 58 70 µA2.0 85 100 µA3.0
138 160 µA5.0
4.0 6.5 µA2.0
4.6 7.0 µA3.0
6.0 10.5 µA5.0
1.2 775 nA 3.0
0.0022 1.0 µA5.0
单位
DD
V
WDTBOD、比较器、 V T1OSC 禁止
WDT 电流
BOD 电流
比较器电流
REF 电流
CV
T1 O
A/D 电流
DS41190C_CN 88  2004 Microchip Technology Inc.

12.4 DC 特性: PIC12F629/675-E (扩展级)

标准工作条件 (除非另外说明) 工作温度 -40°C TA +125°C (扩展级)
PIC12F629/675
参数 编号
D010E
器件特性
供电电流 (IDD
D011E
D012E
D013E
D014E
D015E
D016E
D017E
除非另外说明,“典型值”栏的数据是在 5.0V、25°C 条件下测得的。这些参数仅供设计参考,未经测试。
1:在有源工作模式下,所有 I
DD ; MCLR = VDD ; WDT 禁止;
V
2: 供电电流主要随工作电压和频率而变化。 其它因素,如 I/O 引脚负载和开关频率、振荡器类型、内部代码
执行模式和温度也会影响电流消耗。
最小值典型值最大
916µA2.0F
18 28 µA3.0
35 54 µA5.0
110 1 50 µA2.0F
190 280 µA3.0
330 450 µA5.0
220 280 µA2.0F
370 650 µA3.0
0.6 1.4 mA 5.0
70 110 µA2.0F
140 250 µA3.0
260 390 µA5.0
180 250 µA2.0F
320 470 µA3.0
580 850 µA5.0
340 450 µA2.0F
500 780 µA3.0
0.8 1.1 mA 5.0
180 250 µA2.0F
320 450 µA3.0
580 800 µA5.0
2.1 2.95 mA 4.5 F
2.4 3.0 mA 5.0
DD 测量值的测试条件为: OSC1 为外部方波,满幅;所有 I/O 引脚均为三态,拉
单位
DD
V
OSC = 32 kHz
LP 振荡模式
OSC = 1 MHz
XT 振荡模式
OSC = 4 MHz
XT 振荡模式
OSC = 1 MHz
EC 振荡模式
OSC = 4 MHz
EC 振荡模式
OSC = 4 MHz
INTOSC 模式
OSC = 4 MHz
EXTRC 模式
OSC = 20 MHz
HS 振荡器模式
条件
备注
2004 Microchip Technology Inc. DS41190C_CN 89
PIC12F629/675

12.5 DC 特性: PIC12F629/675-E (扩展级)

标准工作条件 (除非另外说明) 工作温度 -40°C TA +125°C ( 扩展级 )
参数 编号
D020E
器件特性
基本断电电流 (IPD)
D021E
D022E
D023E
D024E
D025E
D026E
除非另外说明,“典型值”栏的数据是在 5.0V、25°C 条件下测得的。这些参数仅供设计参考,未经测试。
1:外设电流等于基本 I
减去基本 IDD IPD 电流得到。计算总电流消耗时应该使用最大值。
2: 休眠模式下的掉电电流与振荡器类型无关。 掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并且连接
DD 时测得的。
V
REF 电流
SC 电流
(1)
条件
(1)
(1)
(1)
(1)
(1)
最小值典型值最大
0.00099 3.5 µA2.0
0.0012 4.0 µA3.0
0.0029 8.0 µA5.0
- - - - - - - - - - - - - - - - -
DD 或 IPD 电流与该外设使能时所额外消耗的电流之和。外设 电流可以从此极限值中
0.3 6.0 µA2.0
1.8 9.0 µA3.0
8.4 20 µA5.0
58 70 µA3.0
109 130 µA5.0
3.3 10 µA2.0
6.1 13 µA3.0
11. 5 2 4 µA5.0 58 70 µA2.0 85 100 µA3.0
138 165 µA5.0
4.0 10 µA2.0
4.6 12 µA3.0
6.0 20 µA5.0
0.0012 6.0 µA3.0
0.0022 8.5 µA5.0
单位
DD
V
WDTBOD、比较器、 VREF T1OSC 禁止
WDT 电流
BOD 电流
比较器电流
CV
T1 O
A/D 电流
DS41190C_CN 90  2004 Microchip Technology Inc.
PIC12F629/675

12.6 DC 特性: PIC12F629/675-I (工业级), PIC12F629/675-E (扩展级)

标准工作条件 (除非另外说明)
DC 特性
工作温度 -40°C T
-40°C TA +125°C( 扩展级 )
参数 编号
符号 特性 最小值
典型
最大值 单位 条件
输入低电压
V
IL
I/O 端口
D030
TTL 缓冲器
D030A V D031
带施密特触发缓冲器
D032 MCLR, OSC1 (RC mode) VSS D033 D033A
OSC1 (XT 和 LP 模式 ) OSC1 (HS 模式 )
V
SS
SS
V
SS
SS
V V
SS
- - - - - -
0.8 V
0.15 VDD V
0.2 VDD V
0.2 VDD V
0.3 V
0.3 VDD V
输入高电压
IH
V
I/O 端口
D040
TTL 缓冲器
D040A D041
带施密特触发缓冲器
D042 MCLR D043 D043A D043B D070 I
OSC1 (XT 和 LP 模式 ) OSC1 (HS 模式 ) OSC1 (RC 模式 )
PUR
GPIO 弱上拉电流
输入泄漏电流
D060 IIL
D060A D060B V
I/O 端口
模拟输入
REF
D061 MCLR D063 OSC1
(2)
(3)
2.0
(0.25 VDD+0.8)
0.8 V
DD
0.8 VDD
1.6
0.7 V
DD
0.9 VDD
50* 250 400* µA
- - - -
- -
- - - - -
VDD VDD
VDD VDD V VDD V VDD V VDD V
± 0.1 ± 1 µA
± 0.1 ± 1 µA ± 0.1 ± 1 µA ± 0.1 ± 5 µA ± 0.1 ± 5 µA
输出低电压
D080 V
D083
OL
I/O 端口
OSC2/CLKOUT (RC 模式 )
--
--
0.6 V IOL = 8.5 mA, VDD = 4.5V
0.6 V IOL = 1.6 mA, VDD = 4.5V
输出高电压
D090 V
D092
OH
I/O 端口
OSC2/CLKOUT (RC 模式 )
* 这些参数仅为特征值,未经测试。
DD - 0.7
V
V
DD - 0.7
--
--
除非另外说明,“典型值”栏的数据是在 5.0V25°C 条件下测得的。这些参数仅供设计参考,未经测试。
1: RC 振荡器配置中, OSC1/CLKI 引脚是施密特触发器输入。在 RC 模式下,建议不要使用外部时钟。
2MCLR 引脚上的泄漏电流和所施加的电压密切相关。指定的电平表示正常工作条件。当输入电压不同时,测
得的泄漏电流可能较大。
3:负电流定义为引脚驱动电流。
A +85°C( 工业级 )
4.5V V
DD 5.5V
否则 整个范围
( 1) ( 1)
V V
4.5V V
否则
DD 5.5V
整个范围
( 1) ( 1)
VDD = 5.0VVPIN = VSS
V
SS VPIN VDD,
引脚处于高阻态
SS VPIN VDD
V V
SS VPIN VDD
V
SS VPIN VDD SS VPIN VDD、 XT、 HS
V LP 振荡器配置
(Ind.)
(Ind.)
OL = 1.2 mA, VDD = 4.5V
I (Ext.)
V
I
OH = -3.0 mA, VDD = 4.5V
(Ind.)
V
I
OH = -1.3 mA, VDD = 4.5V
(Ind.) I
OH = -1.0 mA, VDD = 4.5V
(Ext.)
2004 Microchip Technology Inc. DS41190C_CN 第 91
PIC12F629/675

12.7 DC 特性: PIC12F629/675-I ( 工业级 ), PIC12F629/675-E ( 扩展级 ) ( )

标准工作条件 (除非另外说明)
DC 特性
工作温度 -40°C T 工作温度 -40°C T
参数 编号
符号 特性 最小值 典型值 最大值 单位 条件
输出引脚上的容性负载要求
D100 C
D101 C
OSC2
OSC2 引脚
IO
所有 I/O 引脚
15* pF
50* pF
数据 EEPROM 存储器
D120 ED D120A E D121 V
D122 T D123 T D124 T
字节耐擦写次数
D
字节耐擦写次数
DRW
读写时的 VDD 电压
DEW
/ 写周期时间
RETD
特性保持 刷新
(1)
前的总擦 / 写周期数
REF
100K 1M
10K 100K
MIN
V
56ms
40
假定未违反其它规范
1M 10M
- -
5.5 V
程序闪存存储器
D130 EP D130A E D131 V D132 V D133 T D134 T
电池耐久性
D
电池耐久性
PR
读操作时的 VDD 电压
PEW
/ 写时的 VDD 电压
PEW
/ 写周期时间
RETD
特性保存期
10K 100K
1K 10K
MIN
V
4.5
- -
22.5ms
40
假如未违反其它规范
- -
5.5 V
5.5 V
* 这些参数仅为特征值,未经测试。除非另外说明,“典型值”栏的数据是在 5.0V、 25°C 条件下测得的。这些参数仅供设计参考,未经测试。
1:更多信息请参阅第 8.5.1 节。
A +85°C( 工业级 ) A +125°C( 扩展级 )
当使用外部时钟驱动 OSC1 时 处于 XTHS LP 模式
E/W
-40°C TA +85°C
E/W
+85°C TA +125°C 使用 EECON 进行读写
VMIN = 最小工作电压
E/W
-40°C TA +85°C
E/W
-40°C TA +85°C
E/W
+85°C TA +125°C VMIN = 最小工作电压
DS41190C_CN 92  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
PIC12F629/675

12-4: 负载条件

负载条件
引脚 引脚
RL =464
CL = 50 pF 适用于所有引脚
15 pF 适用于 OSC2 输出引脚
1
VDD/2
R
L
L
C
V
SS
负载条件
2
C
L
V
SS
2004 Microchip Technology Inc. DS41190C_CN 93
PIC12F629/675

12.9 AC 特性: PIC12F629/675 (工业级,扩展级)

12-5 外部时钟时序

Q4 Q1 Q2 Q3 Q4 Q1
OSC1
1
2
CLKOUT

12-1 外部时钟时序要求

3
3
4
4
参数 编号
1T
2T
3TosL,
4
符号 特性 最小值 典型值 最大值 单位 条件
(1)
(1)
(1)
(1)
(1)
DC DC DC DC
5
DC
0.1 1
27 50 50
250
- - - - -
4
- - -
- - - -
37 kHz
4MHz 20 MHz 20 MHz 37 kHz
4MHz
4MHz 20 MHz
∞µs
ns
ns
ns
27 200 µs
250 250
50
200 T
2*
20*
100 *
-- -- --
250
--nsRC 振荡模式
10,000 ns
1,000 ns
CY DC ns TCY = 4/FOSC
--µsLP 振荡器, T --nsHS 振荡器, T --nsXT 振荡器, T
50* ns 25* ns 15* ns
MHz
ns
LP 振荡模式 XT 模式 HS 模式 EC 模式 LP 振荡模式 INTOSC 模式 RC 振荡模式 XT 振荡模式 HS 振荡模式
LP 振荡模式 HS 振荡模式 EC 振荡模式 XT 振荡模式 LP 振荡模式 INTOSC 模式
XT 振荡模式 HS 振荡模式
OSC L/H 占空比
OSC L/H 占空比
OSC L/H 占空比
LP 振荡器 XT 振荡器 HS 振荡器
OSC
F
OSC
CY
To sH
To sR To sF
外部 CLKIN 频率
振荡器频率
外部 CLKIN 周期
振荡器周期
指令周期时间 外部 CLKIN (OSC1) 高电平
外部 CLKIN 低电平
外部 CLKIN 上升时间 外部 CLKIN 下降时间
* 这些参数仅为特征值,未经测试。除非另外说明,“典型值”栏的数据是在 5.0V、 25°C 条件下测得的。这些参数仅供设计参考,未经测试。
1 指令周期时间 (T
CY)等于输入振荡器时基周期的四倍。所有规定值都标准工作条件下代码执行过程中特定
振荡类型所产生的特征数据。超出这些规定的限定值可能导致振荡器工作不稳定和 / 或导致电流消耗超出预 期值。所有器件在 “最小值”条件下均经过测试,此时在 OSC1 引脚上施加外部时钟。 对于所有器件,当采 用外部时钟输入时,“最大”周期时间极限为 “DC”(无时钟)。
DS41190C_CN 94 2004 Microchip Technology Inc.

12-2 内部高精度振荡器参数

PIC12F629/675
参数编号 符号 特性
F10
FOSC
内部校准 INTOSC 频率
频率容差最小
典型值 最大值 单位 条件
±1 3.96 4.00 4.04 MHz ±2 3.92 4.00 4.08 MHz
±5 3.80 4.00 4.20 MHz
V
DD = 3.5V, 25°C
2.5V ≤ VDD 5.5V 0°C T
A +85°C
2.0V ≤ VDD 5.5V
-40°C T
A +85°C
(工业级)
-40°C TA +125°C
(扩展级)
F14
TIOSC
振荡器从休眠模式唤醒
ST
的起振时间 *
--
--
68µs
46µs
DD = 2.0V
V
-40°C 至 +85°C
V
DD = 3.0V
-40°C 至 +85°C
--
35µs
V
DD = 5.0V
-40°C 至 +85°C
* 这些参数仅为特征值,未经测试。除非另外说明,“典型值”栏的数据是在 5.0V、 25°C 条件下测得的。这些参数仅供设计参考,未经测试。
2004 Microchip Technology Inc. DS41190C_CN 第 95
PIC12F629/675

12-6 CLKOUT I/O 时序

17
10
13
Q1
14
19
20, 21
OSC1
CLKOUT
I/O 引脚
(输入)
I/O 引脚
(输出)
Q4
旧值

表 12-3: CLKOUT 和 I/O 时序要求

参数 编号
10 TosH2ckL
11 TosH2ckH
12 TckR
13 TckF
14 TckL2ioV
15 TioV2ckH
16 TckH2ioI
17 TosH2ioV
18 TosH2ioI
19 TioV2osH
20 TioR
21 TioF
22 Tinp
23 Trbp
* 这些参数仅为特征值,未经测试。 除非另外说明,“典型值”栏的数据是在 5.0V、 25°C 条件下测得的。
1:测量在 RC 模式下进行,其中 CLKOUT 输出为 4xT
符号 特性 最小值 典型值 最大值 单位 条件
OSC1 ↑至 CLKOUT
OSC1 ↑至 CLKOUT
CLKOUT 上升时间
CLKOUT 下降时间
CLKOUT ↓至端口输出有效 --
T
CLKOUT ↑前端口输入有效
OSC + 200
CLKOUT ↑后端口保持输入
OSC1 ↑(Q1 周期)至端口输出
有效
OSC1 ↑(Q2 周期)至端口输入 无效 (I/O 输入保持时间)
端口输入有效至 OSC1
I/O 启动时间)
端口输出上升时间
端口输出下降时间
INT 引脚高电平或低电平时间
GPIO 改变时 INT 引脚高电平或低
电平时间
OSC
Q2 Q3
22 23
18
15
75 200 ns
75 200 ns
35 100 ns
35 100 ns
--
ns
0
--
50 150 * ns
--
100
0
--
--
10 40 ns
10 40 ns
25
CY
T
--
--
11
12
新值
20 ns
ns
ns
300 ns
ns
ns
ns
ns
16
( 1)
( 1)
( 1)
( 1)
( 1)
( 1)
( 1)
DS41190C_CN 96  2004 Microchip Technology Inc.
PIC12F629/675
12-7 复位、看门狗定时器、振荡器起振定时器和上电延时定时器时序
VDD
MCLR
内部
POR
PWRT
超时
OSC
超时
内部 复位
看门狗
定时器
复位
I/O 引脚
33
32

12-8 欠压检测时序和特性

DD
V
34
30
31
34
BVDD
(器件处于欠压检测状态)
35
复位(由 BOD 造成)
1: 只在配置字中的 PWRTE 位设定为 0 时有 72 ms 延迟。
(器件不处于欠压检测状态)
72 ms 延时
(1)
2004 Microchip Technology Inc. DS41190C_CN 97
PIC12F629/675
12-4 复位、看门狗定时器、振荡器起振定时器、上电延时定时器以及欠压检测要求
参数 编号
30 T
31 TWDT
32 T
33* T
34 TIOZ
35 TBOD
* 这些参数仅为特征值,未经测试。除非另外说明,“典型值”栏的数据是在 5.0V、 25°C 条件下测得的。这些参数仅供设计参考,未经测试。
符号 特性
MCL
OST
PWRT
VDD
B
MCLR 脉宽 (低)
看门狗定时器超时溢出周期
(无预分频器)
振荡器起振定时器周期
上电延时定时器周期
MCLR
低电平或看门狗定时器
复位引起 I/O 高阻态
欠压检测电压
欠压滞后
欠压检测脉冲宽度
最小
2
TBD
10 10
28*
TBD
--
2.025
TBD
100*
典型
TBD
17 17
OSC
1024T
72
TBD
--
--µsVDD ≤ BVDD (D005)
最大
单位 条件
TBDµsms
2530ms
--TOSC = OSC1 周期
132* TBDmsms
2.0 µs
2.175 V
DD = 5V
V
-40°C 至 +85°C
扩展级温度
VDD = 5V
ms
-40°C 至 +85°C
扩展级温度
DD = 5V
V
-40°C 至 +85°C
扩展级温度
DS41190C_CN 98 2004 Microchip Technology Inc.
Loading...