PIC12F508/509/16F505
数据手册
8/14 引脚 8 位闪存单片机
*8 位 8 引脚器件受 Microchip 低引脚数专利保护: 美国专利号为 5,847,450 。其他美国或他国专利可能已经颁发,或正在
接受审查。
2006 Microchip Technology Inc. 初稿 DS41236B_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•M i c r o c h i p的产品均达到 Microchip 数据手册中所述的技术指标。
•M i c r o c h i p确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
• 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•M i c r o c h i p愿与那些注重代码完整性的客户合作。
•M i c r o c h i p或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act )》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 K
EEL OQ、 microID 、 MPLAB、 PIC、 PICmicro、
PICSTART、 PRO MATE、 PowerSmart、 rfPIC 和
SmartShunt 均为 Microchip Technology Inc. 在美国和其他国
家或地区的注册商标。
AmpLab、 FilterLab、 Migratable Memory、 MXDEV、
MXLAB、 SEEVAL、 SmartSensor 和 The Embedded Control
Solutions Company 均为 Microchip Technology Inc. 在美国的
注册商标。
Analog-for-the-Digital Age、 Application Maestro、
CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、
ECAN、 ECONOMONITOR、 FanSense、 FlexROM、
fuzzyLAB、 In-Circuit Serial Programming、 ICSP、 ICEPIC、
Linear Active Thermistor、 Mindi、 MiWi、 MPASM、
MPLIB、 MPLINK、 PICkit、 PICDEM、 PICDEM.net、
PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、
PowerTool、 REAL ICE、 rfLAB、 rfPICDEM、 Select Mode、
Smart Serial、 SmartTel、 Total Endurance、 UNI/O、
WiperLock和 ZENA均为 Microchip Technology Inc.在美国和其
他国家或地区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2006, Microchip Technology Inc . 版权所有。
Microchip
Gresham
晶圆生产厂均通过了
位单片机、
性存储器和模拟产品方面的质量体系流程均符合
此外,
ISO 9001:2000
位于美国亚利桑那州
及位于加利福尼亚州
Microchip
ISO/TS-16949:2002
®
KEE LOQ
跳码器件、串行
在开发系统的设计和生产方面的质量体系也已通过了
认证。
Chandler和Te mp e
Mountain View
的全球总部、设计中心和
认证。公司在
EEPROM
、位于俄勒冈州
®
PICmicro
、单片机外设、非易失
ISO/TS-16949:2002
8
DS41236B_CN 第 ii 页 初稿 2006 Microchip Technology Inc.
。
PIC12F508/509/16F505
8/14 引脚 8 位闪存单片机
此数据手册所包含的器件:
• PIC12F508
• PIC12F509
• PIC16F505
高性能 RISC CPU :
• 只需要学习 33 条单字指令
• 除程序跳转指令外的所有其他指令都是单周期指
令,程序跳转指令是双周期指令
• 12 位宽的指令
• 2 级深的硬件堆栈
• 数据和指令的直接、间接和相对寻址模式
• 8 位宽的数据路径
• 8 个特殊功能硬件寄存器
• 工作速度:
- DC – 20 MHz 时钟输入 (仅 PIC16F505)
- DC – 200 ns 指令周期 (仅 PIC16F505)
- DC – 4 MHz 时钟输入
- DC – 1000 ns 指令周期
单片机的特性:
• 4MHz高精度内部振荡器:
- 厂家校准为 ±1%
• 在线串行编程 (In-Circuit Serial Programming,
ICSP™)
• 支持在线调试 (In-Circuit Debugging, ICD)
• 上电复位 (Power-on Reset , POR)
• 器件复位定时器 (Device Reset Timer, DRT)
• 具有专用片内 RC 振荡器的看门狗定时器
( Watchdog Timer, WDT),能够可靠地工作
• 可编程代码保护
• 复用的 MCLR 输入引脚
• I/O 引脚上的内部弱上拉
• 节省功耗的休眠模式
• 在引脚电平发生变化时从休眠模式唤醒
• 可选的振荡器选项:
-INTRC:4MHz高精度内部振荡器
- EXTRC:外部低成本 RC 振荡器
-XT: 标准的晶振 / 谐振器
-HS: 高速晶振 / 谐振器(仅 PIC16F505)
-LP: 节省功耗的低频晶振
-EC: 高速外部时钟输入 (仅 PIC16F505)
低功耗特性 /CMOS 技术:
• 工作电流:
- 在 2V、 4MHz时 < 350 µA
• 待机电流:
- 2V时典型值为 100 nA
• 低功耗,高速闪存技术:
- 可经受 10 万次擦写操作的闪存
-> 40年数据保持时间
• 全静态设计
• 宽工作电压范围:2.0V 到 5.5V
• 宽温度范围:
- 工业级: -40°C 至 +85°C
- 扩展级: -40°C 至 +125°C
外设特性 (PIC12F508/509 ):
• 6 个 I/O 引脚:
-5个具有独立方向控制的 I/O 引脚
-1个仅输入的引脚
- 高灌 / 拉电流可直接驱动 LED
- 电平变化时唤醒
- 弱上拉
• 具有 8 位可编程预分频器的 8 位实时时钟 / 计数器
(TMR0 )
外设功能 (PIC16F505 ):
• 12 个 I/O 引脚:
-11个具有独立方向控制的 I/O 引脚
-1个仅输入的引脚
- 高灌 / 拉电流可直接驱动 LED
- 电平变化时唤醒
- 弱上拉
• 具有 8 位可编程预分频器的 8 位实时时钟 / 计数器
( TMR0)
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 1 页
PIC12F508/509/16F505
引脚图
PDIP 、SOIC 和 TSSOP
VDD
RB5/OSC1/CLKIN
RB4/OSC2/CLKOUT
RB3/MCLR
/VPP
RC5/T0CKI
RC4
RC3
1
2
3
4
5
6
7
14
13
12
11
10
PIC16F505
9
8
VSS
RB0/ICSPDAT
RB1/ICSPCLK
RB2
RC0
RC1
RC2
PDIP、SOIC 和 MSOP
VDD
GP5/OSC1/CLKIN
GP4/OSC2
GP3/MCLR
/VPP
1
2
3
4
8
7
6
5
PIC12F508/509
VSS
GP0/ICSPDAT
GP1/ICSPCLK
GP2/T0CKI
器件
程序存储器 数据存储器
闪存 (字) SRAM (字节)
I/O
定时器
PIC12F508 512 25 6 1
PIC12F509 1024 41 6 1
PIC16F505 1024 72 12 1
8 位
DS41236B_CN 第 2 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
目录
1.0 总体说明 ....................................................................................................................................................................................... 5
2.0 PIC12F508/509/16F505 系列器件 ................................................................................................................................................ 7
3.0 架构概述 ....................................................................................................................................................................................... 9
4.0 存储器构成 ................................................................................................................................................................................. 15
5.0 I/O 端口 ...................................................................................................................................................................................... 29
6.0 Timer0 模块和 TMR0 寄存器 ...................................................................................................................................................... 33
7.0 CPU 的特性 ................................................................................................................................................................................ 39
8.0 指令集综述 ................................................................................................................................................................................. 55
9.0 开发支持 ..................................................................................................................................................................................... 63
10.0 电气特性 ..................................................................................................................................................................................... 67
11.0 直流和交流特性图表 ................................................................................................................................................................... 79
12.0 封装信息 ..................................................................................................................................................................................... 81
索引 ...................................................................................................................................................................................................... 91
Microchip 网站 ...................................................................................................................................................................................... 93
变更通知客户服务 ................................................................................................................................................................................ 93
客户支持............................................................................................................................................................................................... 93
读者反馈表 ........................................................................................................................................................................................... 94
产品标识体系 ....................................................................................................................................................................................... 95
致 客 户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。 为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。
出版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 CTRC@microchip.com ,或将本
数据手册后附的 《读者反馈表》传真到 86-21-5407 5066 。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号
DS30000 的 A 版本。
,例如:DS30000A 是
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到
器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
•
Microchip 网站 http://www.microchip.com
• 当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 3 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 4 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
1.0 总体说明
PIC12F508/509/16F505 是 Microchip Technology 生产
的低成本、高性能、8 位、全静态的基于闪存的 CMOS
单片机。 它们采用 RISC 架构,仅有 33 条单字 / 单周期
指令。 除程序跳转指令(为两个周期)外的所有其他指
令都是单周期 (200 ns )的。 PIC12F508/509/16F505
器件的性能比同价位的同类产品要高出很多。12 位宽的
指令是高度对称的,这样它的代码密集程度是同类 8 位
单片机的两倍。 易于使用且便于记忆的指令集大大缩短
了开发时间。
PIC12F508/509/16F505 产品还配备了可以降低系统成
本和功耗的特殊功能。 上电复位(POR)和器件复位定
时器(DRT )使器件不再需要外部复位电路。 有四种振
荡器配置可选择 (PIC16F505 器件有六种) ,包括
INTRC 内部振荡模式和节省功耗的 LP (低功耗)振荡
模式。 节省功耗的休眠模式、看门狗定时器和代码保护
功能提高了系统的成本、功耗和可靠性。
PIC12F508/509/16F505 器件提供低成本的闪存可编程
版本,适用于任意数量的批量生产。 用户可以完全利用
Microchip 在闪存可编程单片机市场的价格领导地位,
同时得益于闪存可编程产品的灵活性。
支持 PIC12F508/509/16F505 产品的开发工具有:全功
能的宏汇编器、软件模拟器、在线仿真器、 C 编译器、
低成本的开发编程器和全功能编程器。 所有工具均可在
®
PC 和兼容机上运行。
IBM
1.1 应用
PIC12F508/509/16F505 器件适合的应用有:个人护理
设备,安全系统到低功耗远程发送器 / 接收器。闪存技
术可以非常快速和方便地定制应用程序 (发送器代码、
设备设置和接收器频率等)。 小型封装的器件可用于过
孔或表面封装,使这些单片机可以完全适应有空间限制
的应用。 低成本、低功耗、高性能、使用简便和 I/O 灵
活性使 PIC12F508/509/16F505 器件能够在您认为根本
不能使用单片机的场合也可以大显神通(如较大系统中
的定时器功能、逻辑电路和 PLD 以及协处理器应用)。
表 1-1 : PIC12F508/509/16F505 器件
PIC12F508 PIC12F509 PIC16F505
时钟 最大工作频率 (MHz )
存储器 闪存程序存储器
数据存储器 (字节)
外设 定时器模块
在引脚电平发生变化时从休眠模式唤醒 有 有 有
特性 I/O 引脚
输入引脚
内部上拉 有 有 有
在线串行编程 有 有 有
指令数量
封装 8 引脚 PDIP、 SOIC
PIC12F508/509/16F505 器件具有上电复位、可选的看门狗定时器、可选的代码保护、高 I/O 电流能力和高精度内部振荡器。
PIC12F508/509/16F505 器件通过数据引脚 RB0/GP0 和时钟引脚 RB1/GP1 进行串行编程。
442 0
512 1024 1024
25 41 72
TMR0 TMR0 TMR0
551 1
111
33 33 33
和 MSOP
8 引脚 PDIP、 SOIC
和 MSOP
14 引脚 PDIP、 SOIC
和 TSSOP
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 5 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 6 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
2.0 PIC12F508/509/16F505系列器件
器件提供不同的封装类型。 根据应用和产品要求,可以
使用本章中的信息选择正确的器件。在下订单时,请使
用本数据手册后面的 PIC12F508/509/16F505 产品标识
体系来指定正确的器件编号。
2.1 快速批量编程 (QTP )器件
Microchip 为工厂生产订单提供快速批量编程 ( Quick
Turn Programming,QTP)服务。 此服务适用于那些不
想为中到大批量器件进行编程并且自有的代码已稳定的
用户。 此器件与闪存器件相同,只是所有闪存单元和熔
丝选项已在出产前预先编程了。批量产品交付前经过了
某些代码和原型校验。欲知更多详情,请与当地
的 Microchip 售办事处联系。
2.2 带序列号的快速批量编程
(SQTP
Microchip 提供这种独特的编程服务,可通过编程为每
个器件中一些用户定义的单元指定不同的序列号。这些
序列号可以是随机的、伪随机或连续的。
串行编程使每个器件都具有一个唯一的编号,可作为登
录码、密码或 ID 编号。
SM
)器件
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 7 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 8 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
3.0 架构概述
PIC12F508/509/16F505 器件的高性能归功于 RISC 微处
理器所具备的一些架构特征。首先, PIC12F508/509/
16F505 器件采用通过不同总线访问程序和数据空间的
哈佛架构,它与传统的程序和数据总线合二为一的冯
诺依曼结构相比具有更宽的带宽。分离程序和数据存储
器,让指令的大小不仅仅是 8 位宽的数据字。 12 位宽
的指令操作码使其可带所有单字指令。 12 位宽的程序
存储器存取总线在一个周期内取 12 位指令。 两级流水
线在取指的同时执行指令。 因此,除程序跳转指令之外
的所有指令 (33 条)都在一个周期 ( 20 MHz 时为
200 ns , 4MHz 时为 1 µ s )内执行。
下面的表 3-1 列出了 PIC12F508/509/16F505 器件的程
序存储器 (闪存)和数据存储器 (RAM )。
表 3-1 : PIC12F508/509/16F505 存储器
存储器
器件
程序 数据
PIC12F508 512 x 12 25 x 8
PIC12F509 1024 x 12 41 x 8
PIC16F505 1024 x 12 72 x 8
PIC12F508/509/16F505 器件可以直接或间接的寻址其
文件寄存器和数据存储器。包括 PC 在内的所有特殊功
能寄存器(SFR)都被映射到数据存储器中。
PIC12F508/509/16F505 器件具有高度正交 (对称的)
指令集,使其可以使用任何寻址模式对任何寄存器执行
任何操作。 此对称特性以及没有 “最佳状态”让使用
PIC12F508/509/16F505 器件编程变得非常简单而高
效。 此外,学习时间也大大的缩短了。
•
PIC12F508/509/16F505 器件包含一个 8 位 ALU 和工作
寄存器。 ALU 是通用算术单元。 它对工作寄存器中的数
据和其他任何文件寄存器中的数据进行算术和布尔运
算。
ALU 为 8 位宽,并且能够执行加法、减法、移位和逻辑
运算。 除非另外声明,算术运算一般都是以 2 的补码
(Two’s Complement )方式进行的。 在具有两个操作数
的指令中,一个操作数通常是 W (工作)寄存器。 其他
操作数可以是文件寄存器或者立即数常数。 在只有一个
操作数的指令中,操作数可以是 W 寄存器,也可以是文
件寄存器。
W 寄存器是用于 ALU 运算的 8 位工作寄存器。 它是不
可寻址的寄存器。
根据所执行的指令,ALU 可能影响状态寄存器中的进位
(C )、半进位(DC )和全零位(Z )的值。 C 位和 DC
位在减法运算中可以分别作为借位
SUBWF 和 ADDWF 指令示例。
图 3-2 给出了简化框图,表 3-3 给出了相应器件的引脚
配置。
和半借位位。 请参见
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 9 页
PIC12F508/509/16F505
图 3-1: PIC12F508/509 框图
OSC1/CLKIN
OSC2
程序
总线
闪存
512 x 12 或
1024 x12
程序存储器
12
指令寄存器
指令
译码和
控制
时序
发生器
内部 RC
振荡器
12
8
MCLR
程序计数器
堆栈 1
堆栈 2
直接寻址
器件复位
定时器
上电
复位
看门狗
定时器
VDD ,VSS
5
数据总线
RAM 地址
地址 MUX
3
8
W 寄存器
RAM
25 x 8 或
41 x 8
文件
寄存器
9
5-7
FSR 寄存器
状态寄存器
MUX
ALU
Timer0
间接
寻址
8
GPIO
GP0/ISCPDAT
GP1/ISCPCLK
GP2/T0CKI
GP3/MCLR/VPP
GP4/OSC2
GP5/OSC1/CLKIN
DS41236B_CN 第 10 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 3-2 : PIC12F508/509 引脚配置说明
名称 功能
GP0/ICSPDAT GP0 TTL CMOS
ICSPDAT ST CMOS
GP1\ICSPCLK GP1 TTL CMOS
ICSPCLK ST CMOS
GP2/T0CKI GP2 TTL CMOS
T0CKI ST
GP3/MCLR
GP4/OSC2 GP4 TTL CMOS
GP5/OSC1/CLKIN GP5 TTL CMOS
V
DD V DD
VSS VSS
图注: I = 输入, O = 输出, I/O = 输入 / 输出, P = 功耗,- = 未用, TTL = TTL 输入,
/VPP GP3 TTL
MCLR
PP HV
V
OSC2
OSC1 XTAL
CLKIN ST
ST = 施密特触发器输入
输入类型输出
类型
-到TMR0 时钟输入引脚。
- 输入引脚。 可由软件编程为内部弱上拉并在该引脚电平改变时
ST
-
-
-
- 主复位 (复位)。 当被配置为 MCLR
- 编程电压输入。
XTAL
- 晶振输入。
- 外部时钟源输入。
P
P
说明
双向 I/O 引脚。 可由软件编程为内部弱上拉并在该引脚电平改
变时从休眠模式唤醒。
在线串行编程数据引脚。
双向 I/O 引脚。 可由软件编程为内部弱上拉并在该引脚电平改
变时从休眠模式唤醒。
在线串行编程时钟引脚。
双向 I/O 引脚。
从休眠模式唤醒。
平时复位器件 (低电平有效)。 MCLR
常工作过程时不得超过 V
为 MCLR 时总是使能弱上拉。
双向 I/O 引脚。
晶振输出。 在晶振模式下,该引脚与晶体或谐振器相连 (仅限
XT 和 LP 模式,其他模式下为 GPIO )。
双向 I/O 引脚。
逻辑电路和 I/O 引脚的正电源。
逻辑电路和 I/O 引脚的参考地。
DD ,否则器件将进入编程模式。 配置
时,当该引脚电平为低电
/V PP 上的电压在器件正
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 11 页
PIC12F508/509/16F505
图 3-2: PIC16F505 框图
OSC1/CLKIN
OSC2/CLKOUT
程序
总线
闪存
1K x 12
程序存储器
12
指令寄存器
指令
译码和
控制
时序
发生器
12
8
程序计数器
堆栈 1
堆栈 2
直接寻址
器件复位
定时器
上电
复位
看门狗
定时器
内部 RC
振荡器
5
数据总线
RAM 地址
地址 MUX
3
8
W 寄存器
RAM
节
字
2
7
文件
寄存器
9
5-7
FSR 寄存器
寄存器
MUX
ALU
Timer0
状态
间接
寻址
8
PORTB
RB0/ICSPCLK
RB1/ICSPDAT
RB2
RB3/MCLR/VPP
RB4/OSC2/CLKOUT
RB5/OSC1/CLKIN
PORTC
RC0
RC1
RC2
RC3
RC4
RC5/T0CKI
MCLR
VDD ,VSS
DS41236B_CN 第 12 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 3-3 : PIC16F505 引脚配置说明
名称 功能
RB0/ICSPDAT RB0 TTL CMOS
ICSPDAT ST CMOS
RB1/ICSPCLK RB1 TTL CMOS
ICSPCLK ST CMOS
RB2 RB2 TTL CMOS
RB3/MCLR
RB4/OSC2/CLKOUT RB4 TTL CMOS
RB5/OSC1/CLKIN RB5 TTL CMOS
RC0 RC0 TTL CMOS
RC1 RC1 TTL CMOS
RC2 RC2 TTL CMOS
RC3 RC3 TTL CMOS
RC4 RC4 TTL CMOS
RC5/T0CKI RC5 TTL CMOS
V
DD V DD
SS V SS
V
图注: I = 输入, O = 输出, I/O = 输入 / 输出, P = 功耗,- = 未用, TTL = TTL 输入,
/VPP RB3 TTL
MCLR
VPP
OSC2
CLKOUT
OSC1 XTAL
CLKIN ST
T0CKI ST
ST = 施密特触发器输入
输入类型输出
类型
-
ST
--
-
-
-
-
- 输入引脚。 可由软件编程为内部弱上拉并在该引脚电平改变时
XTAL
CMOS
- 晶振输入。
- 外部时钟源输入。
- 时钟输入到 TMR0 。
P
P
说明
双向 I/O 引脚。 可由软件编程为内部弱上拉并在该引脚电平改
变时从休眠模式唤醒。
在线串行编程数据引脚。
双向 I/O 引脚。 可由软件编程为内部弱上拉并在该引脚电平改
变时从休眠模式唤醒。
在线串行编程时钟引脚。
双向 I/O 引脚。
到 TMR0 时钟输入引脚。
从休眠模式唤醒。
主复位 (复位)。 当被配置为 MCLR
平时复位器件 (低电平有效)。 MCLR
常工作过程时不得超过 V
为 MCLR
双向 I/O 引脚。 可由软件编程为内部弱上拉并在该引脚电平改
变时从休眠模式唤醒。
晶振输出。 在晶振模式下,该引脚与晶体或谐振器相连 (仅
XT 、 HS 和 LP 模式)。
在 EXTRC 和 INTRC 模式中,该引脚可以被配置为 CLKOUT ,它的
频率是 OSC1 引脚信号频率的 1/4 并且表示指令周期速率。
双向 I/O 引脚。
双向 I/O 引脚。
双向 I/O 引脚。
双向 I/O 引脚。
双向 I/O 引脚。
双向 I/O 引脚。
双向 I/O 引脚。
逻辑电路和 I/O 引脚的正电源。
逻辑电路和 I/O 引脚的参考地。
时总是使能弱上拉。
DD ,否则器件将进入编程模式。 配置
时,当该引脚电平为低电
/V PP 上的电压在器件正
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 13 页
PIC12F508/509/16F505
3.1 时钟机制 / 指令周期
由OSC1/CLKIN 引脚输入的时钟信号在器件内部被四分
频后,产生四个不重叠的正交时钟节拍,名为 Q1 、Q2、
Q3 和 Q4 。 在每个 Q1 节拍, PC 加 1 ;在 Q4 节拍从
程序存储器取指并将指令锁存到指令寄存器。 指令的译
码和执行是在下一个 Q1 到 Q4 节拍中完成的。 图 3-3
和例 3-1 所示为时钟和指令执行流程。
图 3-3 :时 钟/ 指令周期
Q2 Q3 Q4
OSC1
Q1
Q2
Q3
Q4
PC
Q1
PC
Q1
3.2 指令流 / 流水线
一个指令周期由四个 Q 节拍组成 (Q1 、 Q2 、 Q3 和
Q4 )。 取指和执行指令是流水线操作的,因此取指需要
一个指令周期,而译码和执行指令则需要另一个指令周
期。但由于是流水线操作,所以每条指令的有效执行时
间都是一个指令周期。 如果一条指令导致 PC 改变(如
GOTO ),则执行该指令需要两个周期 (例 3-1 )。
取指周期由 Q1 节拍中 PC 加 1 开始。
在执行周期中,在 Q1 节拍将所取指令锁存到指令寄存
器(Instruction Register ,IR )。然后在 Q2 、Q3 和 Q4
节拍中对该指令译码并执行指令。其中读数据存储器
(读操作数)发生在 Q2 节拍,写操作发生在 Q4 节拍
(写目标单元)。
Q2 Q3 Q4
PC + 1 PC + 2
Q1
Q2 Q3 Q4
内部
相位
时钟
取指(PC )
执行指令(PC–1 )
取指(PC + 1 )
执行指令(PC )
取指(PC + 2 )
执行指令(PC + 1 )
例 3-1 : 指令流水线
1. MOVLW 03H
2. MOVWF PORTB
3. CALL SUB_1
4. BSF PORTB, BIT1
除程序转移指令外,所有指令都是单周期指令。由于程序转移指令将导致流水线中的一条已取指令作废,然后重新
取指和执行指令,所以程序转移指令需要两个周期。
取指 1 执行 1
取指 2 执行 2
取指 3 执行 3
取指 4 作废
取指 SUB_1 执行 SUB_1
DS41236B_CN 第 14 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
4.0 存储器构成
PIC12F508/509/16F505 系列器件的存储器被分为程序
存储器和数据存储器。 对于程序存储器大于 512 字节的
器件,使用分页机制。 使用状态寄存器中的一位来访问
程序存储器页。 对于数据存储器文件寄存器多于 32 的
PIC12F509 和 PIC16F505 器件,使用分区机制。 使用
文件选择寄存器 (File Select Register , FSR )访问数
据存储区。
4.1 PIC12F508/509 器件的程序存储器构
成
PIC12F508 器件具有一个 10 位程序计数器 ( Program
Counter, PC), PIC12F509 器件具有一个 11 位程序
计数器 ( PC),可以寻址 2K x 12 位的程序存储空间。
PIC12F508 器件只有前 512 x 12( 0000h-01FFh)单
元是物理实现的,而 PIC12F509 器件则是 1K x 12
(0000h-03FFh )(见图 4-1 )。 访问这些边界之上的
单元将导致返回到前 512 x 12 空间(PIC12F508 )或
1K x 12 空间 (PIC12F509)。 有效的复位向量为
0000h (见图 4-1)。 01FFh 单元 ( PIC12F508)和
03FFh 单元 ( PIC12F509)包含内部时钟校准值。 绝
不能改写该值。
图 4-1 : PIC12F508/509 器件的程序存储器
映射和堆栈
CALL, RETLW
空间
用户存储
PC<11:0>
堆栈深度 1
堆栈深度 2
复位向量
片内程序
存储器
512 字
片内程序
存储器
1024 字
12
(1)
0000h
01FFh
0200h
03FFh
0400h
7FFh
注 1 : 地址 0000h 变为有效的复位向量。
01FFh 单元 ( PIC12F508)和 03FFh
单元 (PIC12F509 )包含 MOVLW XX
内部振荡器校准值。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 15 页
PIC12F508/509/16F505
4.2 PIC16F505 器件的程序存储器构成
PIC16F505 器件具有 11 位程序计数器(PC ),可以寻
址 2K x 12 位的程序存储空间。
对于 PIC16F505 , 1K x 12 (0000h-03FFh )单元是物
理实现的。 请参见图 4-2。 访问该边界以外的单元将导
致返回到前 1K x 12 空间。 有效的复位向量为 0000h
(见图 4-2 )。 03FFh 单元包含内部振荡器校准值。 绝不
能改写该值。
图 4-2 : PIC16F505 器件的程序存储器映射和
堆栈
CALL, RETLW
空间
用户存储
PC<11:0>
堆栈深度 1
堆栈深度 2
复位向量
12
(1)
0000h
01FFh
0200h
4.3 数据存储器构成
数据存储器由寄存器或 RAM 字节组成。 因此,器件的
数据存储器是由其文件寄存器指定的。 文件寄存器被分
为两个功能组:特殊功能寄存器 (Special Function
Register, SFR)和通用寄存器 (General Purpose
Register, GPR)。
特殊功能寄存器包括 TMR0 寄存器、程序计数器
(PCL )、状态寄存器、I/O 寄存器(端口)和文件选择
寄存器 (FSR )。 此外,特殊功能寄存器还被用于控制
I/O 端口配置和预分频比选择。
通用寄存器被用于存储数据和对指令命令的控制信息。
对于 PIC12F508/509 器件,文件寄存器由 7 个特殊功
能寄存器、9 个通用寄存器和 16 或 32 个可通过分区寻
址的通用寄存器组成 (见图 4-3 和图 4-4 )。
对于 PIC16F505 器件,文件寄存器由 8 个特殊功能寄
存器、8 个通用寄存器和 64 个可通过分区寻址的通用寄
存器组成 (见图 4-5 )。
4.3.1 通用文件寄存器
通用文件寄存器可以被直接寻址也可以通过文件选择寄
存器(FSR )间接寻址。 请参见第 4.9 节“间接数据寻
址:INDF 和 FSR 寄存器”。
片内程序
存储器
1024 字
03FFh
0400h
7FFh
注 1 : 地址 0000h 变为有效的复位向
量。
03FFh 单元包含 MOVLW XX
内部振荡器校准值。
DS41236B_CN 第 16 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
图 4-3 : PIC12F508 文件寄存器映射 图 4-4 : PIC12F509 文件寄存器映射
寄存器地址
00h
01h
02h
03h
04h
05h
06h
07h
(1)
INDF
TMR0
PCL
STATUS
FSR
OSCCAL
GPIO
通用
寄存器
FSR<6:5> 00 01
寄存器地址
00h
01h
02h
03h
04h
05h
06h
07h
0Fh
10h
(1)
INDF
TMR0
PCL
STATUS
FSR
OSCCAL
GPIO
通用
寄存器
通用
寄存器
20h
地址映射返回到
Bank 0 中的地
址。
2Fh
30h
通用
寄存器
1Fh
注 1 : 不是物理寄存器。 请参见第 4.9 节“间接数
据寻址:INDF 和 FSR 寄存器”。
图 4-5 : PIC16F505 文件寄存器映射
FSR<6:5> 00 01
寄存器地址
00h
01h
02h
03h
04h
05h
06h
07h
08h
0Fh
10h
(1)
INDF
TMR0
PCL
STATUS
FSR
OSCCAL
PORTB
PORTC
通用
寄存器
通用
寄存器
20h
2Fh
30h
通用
寄存器
1Fh
Bank 0 Bank 1
注 1 : 不是物理寄存器。 请参见第 4.9 节“间接数据
寻址:INDF 和 FSR 寄存器”。
10
40h
地址映射返回到
Bank 0 中的地址。
4Fh
50h
通用
寄存器
70h
11
60h
6Fh
通用
寄存器
3Fh
1Fh
Bank 0
注 1 : 不是物理寄存器。 请参见第 4.9 节 “间接数据寻址: INDF 和 FSR 寄存器”。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 17 页
3Fh
Bank 1
5Fh
Bank 2
7Fh
Bank 3
PIC12F508/509/16F505
4.3.2 特殊功能寄存器
特殊功能寄存器 (SFR )由 CPU 和外设使用,用于控
制器件的操作 (见表 4-1 )。
特殊功能寄存器可分为两类。 与内核功能有关的特殊特
殊功能寄存器将在本节讲述,而另一类与外设功能操作
有关的特殊功能寄存器将在相应的外设功能模块章节中
讲述。
表 4-1: 特殊功能寄存器 (SFR)汇总 (PIC12F508/509)
地址 名称
00h INDF
01h TMR0
(1)
02h
03h STATUS GPWUF
PCL
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
使用 FSR 的内容寻址数据存储器 (非物理寄存器)
8 位实时时钟 / 计数器
PC 的低 8 位
(5)
-
PA0
TO PD ZD CC0-01 1xxx
上电复位
时的值
xxxx xxxx 26
xxxx xxxx 33
1111 1111 25
(2)
(3)
页码
20
04h FSR
(4)
04h
05h OSCCAL CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0
06h GPIO
N/A TRISGPIO
N/A OPTION GPWU
图注: - = 未实现,读为 0, x = 未知, u = 不变, q = 取值视情况而定。
注 1 : 程序计数器的最高字节是不可直接访问的。 欲知关于如何访问这些位的说明,请参见第 4.7 节 “程序计数
FSR
器”。
2: 其他 (非上电)复位包括通过 MCLR
3: 如果由于引脚电平变化唤醒而产生复位,则 bit 7 = 1 。 所有其他复位都将导致 bit 7 = 0。
4: 仅 PIC12F509 才具有该寄存器。
5: 该位用于 PIC12F509 器件。 为了代码的兼容性,请不要在 PIC12F508 器件上使用该位。
间接数据存储器地址指针
间接数据存储器地址指针
- -
- - I/O 控制寄存器
GPPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 22
GP5 GP4 GP3 GP2 GP1 GP0 --xx xxxx 29
-
引脚的外部复位、看门狗定时器复位和引脚电平变化唤醒复位。
111x xxxx 26
110x xxxx 26
1111 111- 24
--11 1111 29
DS41236B_CN 第 18 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 4-2 : 特殊功能寄存器 (SFR )汇总 (PIC16F505)
地址 名称
00h INDF
01h TMR0
(1)
02h
03h STATUS RBWUF
04h FSR
05h OSCCAL CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0
06h PORTB
07h PORTC
N/A TRISB
N/A TRISC
N/A OPTION RBWU
图注: - = 未实现,读为 0 , x = 未知, u = 不变, q = 取值视情况而定。
注 1 : 如果由于引脚电平变化唤醒而产生复位,则 bit 7 = 1 。 所有其他复位都将导致 bit 7 = 0。
PCL
2: 其他 (非上电)复位包括通过 MCLR
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
使用 FSR 的内容寻址数据存储器 (非物理寄存器)
8 位实时时钟 / 计数器
PC 的低 8 位
-
间接数据存储器地址指针
- -
- -
- - I/O 控制寄存器
- - I/O 控制寄存器
RBPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 23
PA0 TO
RB5 RB4 RB3 RB2 RB1 RB0 --xx xxxx 29
RC5 RC4 RC3 RC2 RC1 RC0 --xx xxxx 29
引脚的外部复位、看门狗定时器复位和引脚电平变化唤醒复位。
PD ZD CC0-01 1xxx 20
上电复位
时的值
xxxx xxxx 26
xxxx xxxx 33
1111 1111 25
110x xxxx 26
1111 111- 24
-
--11 1111 29
--11 1111 29
(2)
页码
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 19 页
PIC12F508/509/16F505
4.4 状态寄存器
例如,CLRF STATUS, 会将状态寄存器的高 3 位清零而
将 Z 位置 1 。 这会使状态寄存器的值为 000u u1uu(其
状态(STATUS)寄存器包含 ALU 的数学运算状态、复
位状态和页预选择位。
和任何其他寄存器一样,状态寄存器可作为任何指令的
目标寄存器。 如果将状态寄存器作为一条影响Z、DC 或
C 位的指令的目标寄存器,那么将禁止对这 3 位执行写
中 u = 不变)。
因此,建议只使用 BCF 、 BSF 和 MOVWF 指令来改变状
态寄存器的值。 这些指令不会影响状态寄存器的 Z、DC
或 C 位。 对于其他影响状态位的指令,请参见第 8.0 节
“指令集综述”。
操作。根据器件逻辑,这些位会被置 1 或清零。 此外,
和 PD 位也是不可写的。因此,当执行一条把状态
TO
寄存器作为目标寄存器的指令后,结果可能和预想的不
同。
寄存器 4-1 : 状态寄存器 (地址:03h )( PIC12F508/509 )
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
GPWUF
bit 7 bit 0
GPWUF : GPIO 复位位
1 = 由于引脚电平变化从休眠唤醒的复位
0 = 上电或其他复位之后
保留:不使用
PA0 :程序页预选择位
1 = 第 1 页(200h-3FFh)
0 = 第 0 页(000h-1FFh)
每页 512 个字节。
建议在不使用 PA0 位作为程序页预选择位的器件中也不要使用该位作为通用读 / 写位,因为这样可能会影
响对于未来产品的向上兼容性。
TO
:超时位
1 = 在上电或执行 CLRWDT 或 SLEEP 指令之后
0 = 发生了 WDT 超时
PD
:掉电位
1 = 上电或执行了 CLRWDT 指令之后
0 = 执行了 SLEEP 指令
Z:结果为 0 位
1 = 算术运算或逻辑运算结果为零
0 = 算术运算或逻辑运算结果不为零
DC :半进位 / 借位
ADDWF
:
1 = 发生了结果的第 4 个低位向高位的进位
0 = 未发生结果的第 4 个低位向高位的进位
SUBWF
:
1 = 未发生结果的第 4 个低位向高位的借位
0 = 发生了结果的第 4 个低位向高位的借位
C:进位 / 借位
ADDWF
: SUBWF: RRF 或 RLF:
1 = 发生了进位 1 = 未发生借位 分别装载最低位和最高位
0 = 未发生进位 0 = 发生了借位
-
位(对于ADDWF 和 SUBWF 指令)
位(对于ADDWF 、 SUBWF 和 RRF 、 RLF 指令)
PA0 TO
(1)
PD ZD CC
注 1 : 该位用于 PIC12F509 器件。 为了代码的兼容性,请不要在 PIC12F508 器件上使用该位。
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
DS41236B_CN 第 20 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
寄存器 4-2: 状态寄存器 (地址: 03h)( PIC16F505)
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
RBWUF
bit 7 bit 0
-
PA0 T O
PD ZD CC
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
RBWUF : PORTB 复位位
1 = 由于引脚电平变化从休眠唤醒的复位
0 = 上电或其他复位之后
保留:不使用
PA0 :程序页预选择位
1 = 第 1 页(200h-3FFh)
0 = 第 0 页(000h-1FFh)
每页 512 个字节。
建议在不使用 PA0 位作为程序页预选择位的器件中也不要使用该位作为通用读 / 写位,因为这
样可能会影响对于未来产品的向上兼容性。
:超时位
TO
1 = 在上电或执行 CLRWDT 或 SLEEP 指令之后
0 = 发生了 WDT 超时
PD
:掉电位
1 = 上电或执行了 CLRWDT 指令之后
0 = 执行了 SLEEP 指令
Z:结果为 0 位
1 = 算术运算或逻辑运算结果为零
0 = 算术运算或逻辑运算结果不为零
DC :半进位 / 借位位 (对于 ADDWF 和 SUBWF 指令)
:
ADDWF
1 = 发生了结果的第 4 个低位向高位的进位
0 = 未发生结果的第 4 个低位向高位的进位
SUBWF:
1 = 未发生结果的第 4 个低位向高位的借位
0 = 发生了结果的第 4 个低位向高位的借位
C :进位 / 借位
: SUBWF : RRF 或 RLF :
ADDWF
1 = 发生了进位 1 = 未发生借位 分别装载最低位和最高位
0 = 未发生进位 0 = 发生了借位
位 (对于 ADDWF 、 SUBWF 和 RRF 、 RLF 指令)
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 21 页
PIC12F508/509/16F505
4.5 选项寄存器
选项 (OPTION )寄存器是一个 8 位宽的只读寄存器,
它包含各种配置 Timer0/WDT 预分频器和 Timer0 的控
制位。
通过执行 OPTION 指令,可将 W 寄存器的内容传送到
选项寄存器。 复位会将 OPTION<7:0> 位置 1。
寄存器 4-3 : 选项寄存器 (PIC12F508/509 )
W-1 W-1 W-1 W-1 W-1 W-1 W-1 W-1
GPPU T0CS T0SE PSA PS2 PS1 PS0
:引脚电平变化唤醒使能位 (GP0 、 GP1 和 GP3 )
:弱上拉使能位 (GP0 、 GP1 和 GP3 )
OSC /4 的跳变沿
位值
Timer0 预分频比
000
001
010
011
100
101
110
111
WDT 预分频比
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2-0
GPWU
bit 7 bit 0
GPWU
1 = 禁止
0 = 使能
GPPU
1 = 禁止
0 = 使能
T0CS:Timer0 时钟源选择位
1 = T0CKI 引脚的跳变沿 (优先级高于 T0CKI 引脚上的 TRIS 功能)
0 = 内部指令周期时钟 F
T0SE:Timer0 时钟沿边沿选择位
1 = 在 T0CKI 引脚电平从高电平变化到低电平时递增
0 = 在 T0CKI 引脚电平从低电平变化到高电平时递增
PSA:预分频器分配位
1 = 将预分频器分配给 WDT
0 = 将预分频器分配给 Timer0
PS<2:0> :预分频比选择位
注: 当 TRIS 位清零 (= 0 )时,相应引脚的电
平变化唤醒和上拉功能都是被禁止的
(即,注意 TRIS 的优先级高于 GPPU
RBPU 和 GPWU/RBWU 选择控制位)。
注: 当 T0CS 位置 1 时,它将比 T0CKI 引脚的
TRIS 功能具有更高的优先级。
1 : 1
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
/
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
DS41236B_CN 第 22 页 初稿 2006 Microchip Technology Inc.
寄存器 4-4 : 选项寄存器 (PIC16F505 )
W-1 W-1 W-1 W-1 W-1 W-1 W-1 W-1
RBWU
bit 7 bit 0
RBPU T0CS T0SE PSA PS2 PS1 PS0
PIC12F508/509/16F505
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2-0
RBWU :引脚电平变化唤醒使能位 (RB0、 RB1、 RB3 和 RB4)
1 = 禁止
0 = 使能
:弱上拉使能位 (RB0 、 RB1 、 RB3 和 RB4 )
RBPU
1 = 禁止
0 = 使能
T0CS:Timer0 时钟源选择位
1 = T0CKI 引脚的跳变沿 (优先级高于 T0CKI 引脚上的 TRIS 功能)
0 = 内部指令周期时钟 F
T0SE:Timer0 时钟沿边沿选择位
1 = 在 T0CKI 引脚电平从高电平变化到低电平时递增
0 = 在 T0CKI 引脚电平从低电平变化到高电平时递增
PSA:预分频器分配位
1 = 将预分频器分配给 WDT
0 = 将预分频器分配给 Timer0
PS<2:0> :预分频比选择位
位值 Timer0 预分频比 WDT 预分频比
000
001
010
011
100
101
110
111
OSC/4 的跳变沿
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
1 : 1
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 23 页
PIC12F508/509/16F505
4.6 振荡器校准 ( OSCCAL)寄存器
振荡器校准( OSCCAL)寄存器被用来校准内部高精度
4MHz振荡器。 它包含用于校准的 7 位。
注: 擦除器件同时也会擦除预编程的内部振荡
器内部校准值。 必须在擦除该部分之前读
取校准值,这样以后才可以正确地重新编
程。
在您读取了校准常数以后,请不要更改该值。 请参见第
7.2.5 节“内部4 MHz RC 振荡器”。
寄存器 4-5 : 振荡器校准寄存器 (地址:05h )
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-0
CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0
bit 7 bit 0
-
bit 7-1
bit 0
CAL<6:0>:振荡器校准位
0111111 = 最大频率
•
•
•
0000001
0000000 = 中心频率
1111111
•
•
•
1000000 = 最小频率
未实现:读为 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
DS41236B_CN 第 24 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
4.7 程序计数器
当执行程序指令时,程序计数器 (PC )中将包含下一
条要被执行的程序指令的地址。 除更改 PC 的指令外,
每执行一条指令, PC 值都会增 1 。
对于 GOTO 指令,PC 的 bit 0 到 bit 8 由 GOTO 指令字提
供。 程序计数器(PCL)被映射到 PC<7:0> 。 状态寄存
器的 bit 5 将页信息提供给 PC 的 bit 9 (见图 4-6 )。
对于 CALL 指令或其他以 PCL 作为目标寄存器的指令,
PC 的 bit0 到 bit7 也是由指令字提供的。 但是,PC<8>
不由指令字提供,它始终保持清零 (见图 4-6 )。
以 PCL 作为目标寄存器或修改 PCL 的指令包括 MOVWF
PC 、 ADDWF PC 和 BSF PC,5 。
注: 由于 CALL 指令或任何修改 PCL 指令会将
PC<8> 清零,因此所有子程序调用或相对
跳转指令都被限制在任何程序存储器页
(512 字长)的前 256 个单元中。
图 4-6 : 执行跳转指令时装载 PC 的过程
GOTO 指令
11
9 10
87 0
PC
PA0
70
状态寄存器
PCL
指令字
4.7.1 复位的影响
复位时 PC 被置为全 1 ,这意味着 PC 指向最后一页中
的最后一个单元 (即振荡器校准指令) 。 执行 MOVLW
XX 指令后,PC 将计满返回到 00h 单元并开始执行用户
代码。
复位后状态寄存器页预选择位被清零,这意味着预选择
了第 0 页。
因此,复位时 GOTO 指令会自动使程序跳转到第 0 页直
到页预选择位的值被更改为止。
4.8 堆栈
PIC12F508/509/16F505 系列器件具有 2 级深、 12 位宽
的硬件 PUSH/POP 堆栈。
执行 CALL 指令会将堆栈第一级单元中的内容压入第二
级单元中,然后将 PC 的当前值加 1 压入堆栈的第一级。
如果连续执行了多于两条 CALL 指令,只会存储最近的
两个返回地址。
执行 RETLW 指令会将堆栈第一级单元中的内容弹出到
PC ,然后将堆栈第 2 级单元中的内容复制到第一级单元
中。如果连续执行了多于两条 RETLW 指令,将使用先前
存储在堆栈第二级单元中的地址填充堆栈。注意可以使
用在指令中指定的立即数装载W 寄存器。 这对于在程序
存储器中实现数据查找表尤其有用。
注 1 : 不存在指示堆栈上溢或下溢条件的状态
位。
2 : 不存在称为 PUSH 或 POP 的指令助记符。
这些是执行 CALL 和 RETLW 指令后出现的
情形。
CALL 或修改 PCL 的指令
9 10
11
PC
70
87 0
复位为 0
PA0
状态寄存器
PCL
指令字
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 25 页
PIC12F508/509/16F505
4.9 间接数据寻址: INDF 和 FSR 寄存器
INDF 寄存器不是物理寄存器。 寻址 INDF 实际寻址的
是地址包含在 FSR 寄存器中的寄存器(FSR 是一个
针
)。 这就是间接寻址。
4.9.1 间接寻址
• 地址为 07 的寄存器包含值 10h
• 地址为 08 的寄存器包含值 0Ah
• 将值 07 载入 FSR 寄存器
• 读 INDF 寄存器将返回值 10h
• 将 FSR 寄存器的值增 1 ( FSR = 08)
• 读 INDF 寄存器将返回值 0Ah。
直接读 INDF 本身 ( FSR = 0)将返回 00h。 直接写
INDF 寄存器将导致空操作 (虽然会影响状态位)。
例 4-1 给出了使用间接寻址将 RAM 单元 10h-1Fh 清零
的简单程序。
图 4-7 :直 接/ 间接寻址 (PIC12F508/509)
直接寻址
(FSR )
5
6
(操作码) 0 4
指
例 4-1 : 使用间接寻址清零 RAM 的方法
MOVLW 0x10 ;initialize pointer
NEXT CLRF INDF ;clear INDF
CONTINUE
FSR 是一个 5 位宽的寄存器。 它有 INDF 寄存器配合使
用来间接寻址数据存储区。
FSR<4:0> 位被用来选择数据存储器地址 00h 到 1Fh 。
PIC12F508 ——不使用分区。 FSR <7:5> 未实现,其
读取值为 1 。
PIC12F509 ——使用 FSR<5> 。 在 bank 0 和 bank 1
之间进行选择。 FSR<7:6> 未实现,其读取值为 1 。
PIC16F505 ——使用 FSR<6:5> 。 在 bank 0 到 bank 3
之间进行选择。 FSR<7:6> 未实现,其读取值为 1 。
MOVWF FSR ;to RAM
;register
INCF FSR,F ;inc pointer
BTFSC FSR,4 ;all done?
GOTO NEXT ;NO, clear next
: ;YES, continue
:
间接寻址
5
6
4
( FSR)
0
存储区选择
注 1 : 对于寄存器映射的细节,请参见第 4.3 节 “数据存储器构成”。
2 : PIC12F509。
单元选择
数据
(1)
存储器
00 01
00h
0Fh
10h
1Fh 3Fh
Bank 0 Bank 1
地址
映射返回到
Bank 0 中的
地址。
(2)
存储区
单元选择
DS41236B_CN 第 26 页 初稿 2006 Microchip Technology Inc.
图 4-8:直 接 / 间接寻址 ( PIC16F505 )
PIC12F508/509/16F505
直接寻址
( FSR)
6 5 4 (操作码) 0
存储区选择 单元选择
00h
数据
存储器
注 1 : 对于寄存器映射的细节,请参见第 4.3 节 “数据存储器构成”。
0Fh
(1)
10h
00 01 10 11
1Fh 3Fh 5Fh 7Fh
Bank 0 Bank 1 Bank 2 Bank 3
地址映射返
回到 Bank 0
中的地址。
间接寻址
6 5 4 (FSR ) 0
存储区
单元选择
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 27 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 28 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
5.0 I/O 端口
和任何其他寄存器一样, I/O 寄存器也可在程序控制下
进行读写。 但是,读指令 (如 MOVF PORTB,W )始终
读取I/O 引脚,而与引脚是处于输入还是输出模式无关。
复位时,由于 I/O 控制器被置为全 1 ,因此所有 I/O 端口
都被定义为输入 (输入为高阻态)。
注: 在 PIC12F508/509 器件中, I/O 端口 B 被
称为 GPIO 。 在 PIC16F505 器件中,I/O 端
口 B 被称为 PORTB 。
5.1 PORTB/GPIO
PORTB/GPIO 是一个 8 位 I/O 寄存器。 仅使用其低 6 位
(RB/GP<5:0> )。Bit 7 和 bit 6 未实现,其读取值为 0 。
请注意 RB3/GP3 为一个只能输入的引脚。 配置字寄存
器可以将某些 I/O 设置为备用功能。 当用作备用功能
时,在读取端口期间,引脚将读为 0 。 RB0/GP0、RB1/
GP1 、RB3/GP3 和 RB4 引脚可以被配置为带有内部弱
上拉,并且可在这些引脚的电平发生变化时唤醒器件。
电平变化时唤醒和弱上拉功能并不可通过引脚选择。 如
果 RB3/GP3/MCLR
使能的,但该引脚的电平变化时唤醒则是被禁止的。
5.2 PORTC (仅 PIC16F505 器件)
PORTC 是一个 8 位 I/O 寄存器。 仅使用其低 6 位
(RC<5:0> )。 Bit 7 和 bit 6 未实现,其读取值为 0 。
5.3 TRIS 寄存器
被配置为 MCLR ,其弱上拉是始终
5.4 I/O 接口
I/O 端口引脚的等效电路如图 5-2 所示。 除只能输入的
RB3/GP3引脚外,所有端口引脚都可用于输入和输出操
作。 对于输入操作,这些端口是不锁存的。 所有输入数
据都必须位于引脚上,直到被输入指令 (如 MOVF
PORTB, W )读取为止。 输出是锁存的并将保持不变,
直到输出锁存器被再次写入为止。 要将端口引脚用作输
出,必须将 TRIS 寄存器中相应的方向控制位清零(= 0)。
要将端口引脚用作输出,必须将相应的 TRIS 位置 1 。 可
分别将任何I/O 引脚(除 RB3/GP3 )编程为输入或输出。
图 5-1 : PIC12F508/509/16F505 单个 I/O 引
脚的等效电路
数据
总线
写端口
W 寄存器
TRIS ‘f ’
D
D
数据
锁存器
CK
TRIS
锁存器
CK
复位
Q
VDD
VDD
Q
Q
Q
P
N
V
SS
VSS
(1)
I/O
引脚
通过执行 TRIS f 指令,可使用 W 寄存器的内容装载输
出驱动器控制寄存器。 将 TRIS 寄存器的某位置 1 ,可
使相应的输出驱动器置于高阻模式。 而将 TRIS 寄存器
的某位清零,会将输出数据锁存器的内容送入选定的引
脚并使能输出缓冲器。 特殊的引脚为 RB3/GP3 引脚和
T0CKI 引脚,前者为只输入引脚,后者是由选项寄存器
控制的引脚。 请参见寄存器 4-3 和寄存器 4-4。
注: 读端口读的是引脚而非输出数据锁存器。
也就是说,如果使能了某个引脚的输出驱
动器,并驱动为高电平,但外部系统将该
引脚保持为低电平,那么读相应端口将表
明该引脚为低电平。
TRIS 寄存器是 “只写”的,并且在复位时被置为全 1
(禁止输出驱动器)。
读端口
注 1 : 缓冲器类型,请参见表 3-3 。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 29 页
PIC12F508/509/16F505
表 5-1 : 端口寄存器汇总
地址 名称
N/A TRISGPIO
N/A TRISB
N/A TRISC
(2)
(2)
N/A OPTION
N/A OPTION
03h STATUS
03h STATUS
06h GPIO
06h PORTB
07h PORTC
(1)
(2)
(2)
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(1)
- - I/O 控制寄存器
- - I/O 控制寄存器
- - I/O 控制寄存器
(1)
GPWU GPPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 1111 1111
(2)
RBWU RBPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 1111 1111
(1)
GPWUF
(2)
RBWUF
-
-
- -
- -
- -
PAO TO PD Z DC C 0-01 1xxx q00q quuu
PAO TO PD Z DC C 0-01 1xxx q00q quuu
GP5 GP4 GP3 GP2 GP1 GP0 --xx xxxx --uu uuuu
RB5 RB4 RB3 RB2 RB1 RB0 --xx xxxx --uu uuuu
RC5 RC4 RC3 RC2 RC1 RC0 --xx xxxx --uu uuuu
上电复位
时的值
--11 1111 --11 1111
--11 1111 --11 1111
--11 1111 --11 1111
图注: 端口寄存器不使用阴影单元,这些单元读为 0 。- = 未实现,读为 0 , x = 未知, u = 不变, q = 取值视情况而定。
注 1 : 仅 PIC12F508/509 器件才具有该寄存器。
2: 仅 PIC16F505 器件才具有该寄存器。
3: 如果由于引脚电平变化唤醒而产生复位,则 bit 7 = 1 。 所有其他复位都将导致 bit 7 = 0。
所有其他复位
时的值
(3)
(3)
DS41236B_CN 第 30 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
5.5 I/O 编程注意事项
5.5.1 双向 I/O 端口
某些指令在内部是先执行一个读操作,再执行一个写操
作。 例如 BCF 和 BSF 指令,这两个指令将整个端口的
数据读入 CPU ,执行位操作,然后重写结果。 当一个端
口既有输入引脚又有输出引脚时,对其执行指令必须加
倍小心。 例如,对 PORTB/GPIO 的 bit 5 执行 BSF 操作
时,先将 PORTB/GPIO 的全部 8 位数据读入 CPU ,然
后将 bit 5 置 1 ,最后将 PORTB/GPIO 的值写入输出锁
存器。 如果PORTB/GPIO的另一个位被用作双向 I/O 引
脚 (假设为 bit 0 ),并且该引脚被定义为输入,则该引
脚当前的输入信号被读入 CPU ,然后将值重新写入该特
定引脚的数据锁存器,覆盖先前的内容。 只要该引脚保
持输入模式,就毫无问题。 然而,如果 bit 0 随后变成了
输出模式,则输出锁存器的内容将无法得知。
例 5-1 给出了对一个 I/O 端口执行两条连续的读—修改
—写指令 (如 BCF 和 BSF 等)的效果。
当某引脚设置为输出时,不应通过外部器件来驱动该引
脚为高电平或低电平,以达到改变该引脚电平(“线或”
或 “线与”)的目的。 否则,出现的高输出电流可能会
损坏器件。
例 5-1 :对I/O 端口执行读—修改—写指令
(如 PIC16F505 )
;Initial PORTB Settings
;PORTB<5:3> Inputs
;PORTB<2:0> Outputs
;
; PORTB latch PORTB pins
; ---------- ----------
BCF PORTB, 5 ;--01 -ppp --11 pppp
BCF PORTB, 4 ;--10 -ppp --11 pppp
MOVLW 007h;
TRIS PORTB ;--10 -ppp --11 pppp
;
注 1 : 用户原本希望引脚值为 --00 pppp。第二条
BCF 指令将使 RB5 被锁存为该引脚的值 (高电
平)。
5.5.2 I/O 端口的连续操作 I/O 端口
对 I/O 端口的写操作实际发生在指令周期的末尾时刻,但
对于读操作,在指令周期的开始处所读的数据就必须有
效 (见图 5-2 )。 因此,如果对同一个 I/O 端口执行写操
作之后,接着执行读操作,就必须特别小心。 指令执行
的顺序应该是:等引脚电压达到稳定(与负载有关)后,
才执行下一条指令将端口值读入 CPU 。 否则,读入的可
能是引脚的前一个状态而不是新状态。 当状态不确定
时,最好用一条 NOP 指令或者其他不访问 I/O 端口的指
令隔开这些指令。
图 5-2 :连 续I/O 操作 (以 PIC16F505 器件为例)
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
取指令
RB<5:0>
执行指令
PC PC + 1 PC + 2
MOVWF PORTB
MOVF PORTB, W
此时写
端口引脚
MOVWF PORTB
(写入 PORTB )
NOP
此时,对端口引脚
进行采样
(读 PORTB )
PC + 3
NOP
NOP MOVF PORTB,W
此例为对 PORTB 执行写操作,接着读
PORTB。
数据建立时间 = (0.25 T
其中 T
因此,当时钟频率很高时,写端口后马上再读
端口可能会有问题。
CY = 指令周期
PD = 传播延时
T
CY – T PD)
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 31 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 32 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
6.0 TIMER0 模块和 TMR0 寄存器
Timer0 模块有以下特性:
• 8 位定时器 / 计数器 TMR0
• 可读写
• 软件可编程的 8 位预分频器
• 内部或外部时钟选择:
- 外部时钟边沿选择
图 6-1 是 Timer0 模块的简化框图。
将 T0CS 位(OPTION<5>)清零可选择定时器模式。
在定时器模式下,Timer0 模块在每个指令周期递增(不
使用预分频器)。 TMR0 寄存器被写入时,在接下来的
两个指令周期禁止递增 (见图 6-2 和图 6-3)。用户可
通过将校正值写入 TMR0 寄存器避开这一问题。
图 6-1 : TIMER0 框图
(GP2/RC5 )/T0CKI
引脚
T0SE
FOSC /4
T0CS
0
1
(1)
可编程
预分频器
PS2, PS1, PS0
将 T0CS 位(OPTION<5>)置 1 可选择计数器模式。
在此模式下, Timer0 可在 TOCKI 引脚的每个上升沿或
下降沿递增。 具体是上升沿还是下降沿由 T0SE 位
(OPTION<4> )决定。 将TOSE 位清零选择上升沿。 外
部时钟输入的限制在第 6.1 节 “Timer0 外部时钟的使用 ”
中详细讨论。
预分频器由 Timer0 模块或看门狗定时器使用,但它们
不可同时使用。预分频器的分配在软件中由 PSA 控制位
(OPTION<3> )控制。 将 PSA 位清零将预分频器分配
给Timer0 。 预分频器是不可读写的。 当预分频器分配给
Timer0 模块时,可选择的预分频比有 1:2, 1:4, ...,
1:256。预分频器的具体操作请参见第 6.2 节 “ 预分频
器 ”。
与 Timer0 模块相关的寄存器汇总请参见表 6-1 。
数据总线
OUT
PS
1
(2)
3
0
PSA
(1)
(1)
与内部时钟
同步
(延时两个 TCY)
TMR0 寄存器
PSOUT
同步
8
注 1: T0CS 、 T0SE 、 PSA 、 PS2 、 PS1 和 PS0 均位于选项寄存器中。
2: 该预分频器是与看门狗定时器共用的 (见图 6-5 )。
图 6-2: TIMER0 时序图:内部时钟 / 无预分频器
PC
(程序
计数器)
取指令
Timer0
执行
指令
Q1 Q2 Q3 Q4
PC - 1
T0
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
PC PC + 1 PC + 2 PC + 3 PC + 4 PC + 6
MOVWF TMR0 MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W
T0 + 1 T0 + 2 NT0
执行写
TMR0
读 TMR0
为 NT0
读 TMR0
为 NT0
读 TMR0
为 NT0
PC + 5
NT0 + 1
读 TMR0
为 NT0 + 1
NT0 + 2
读 TMR0
为 NT0 + 2
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 33 页
PIC12F508/509/16F505
图 6-3: TIMER0 时序图:内部时钟 / 预分频比 1:2
PC
(程序
计数器)
取指令
Timer0
执行指令
Q1 Q2 Q3 Q4
PC - 1
T0
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
PC PC + 1 PC + 2 PC + 3 PC + 4 PC + 6
MOVWF TMR0 MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W MOVF TMR0,W
T0 + 1 NT0
执行写
TMR0
读 TMR0
为 NT0
读 TMR0
为 NT0
表 6-1 :与TIMER0 相关的寄存器
地址 名称
01h TMR0
N/A OPTION
N/A OPTION
N/A TRISGPIO
N/A TRISC
(1)
(2)
(1), (3)
(2), (3)
图注: Time r0 模块不使用阴影单元。 - = 未实现, x = 未知, u = 不变。
注 1 : 仅 PIC12F508/509 器件才具有该寄存器。
2: 仅 PIC16F505 器件才具有该寄存器。
3: 当 T0CS = 1 时, TOCKI 引脚的 TRIS 被忽略。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer0 —— 8 位实时时钟 / 计数器
GPWU GPPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
RBWU RBPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
- - I/O 控制寄存器
- -
RC5
RC4 RC3 RC2 RC1 RC0 --11 1111 --11 1111
读 TMR0
为 NT0
PC + 5
NT0 + 1
读 TMR0
为 NT0 + 1
上电复位
时的值
读 TMR0
为 NT0 + 2
所有其他
复位时的值
xxxx xxxx uuuu uuuu
--11 1111 --11 1111
DS41236B_CN 第 34 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
6.1 Timer0 外部时钟的使用
当Timer0 使用外部时钟输入时,必须满足一定要求。 这
些要求确保外部时钟和内部相位时钟 (TOSC)保持同
步。 同步后, Timer0 的实际递增也将有一定延时。
6.1.1 外部时钟同步
当不使用预分频器时,外部时钟输入与预分频器输出相
同。 在内部相位时钟的 Q2 和 Q4 周期对预分频器输出
进行采样可实现 T0CKI 与内部相位时钟的同步 (见
图 6-4 )。 因此, T0CKI 的高电平必须至少保持 2 个
OSC (加上 2 Tt0H 的一小段 RC 延时),并且其低电
T
平也必须至少保持 2 个 TOSC (加上 2 Tt0H 的一小段
RC 延时)。 请参见所用器件的电气规范。
图 6-4 : TIMER0 与外部时钟时序图
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
外部时钟输入或
预分频器输出
采样后外部时钟
/ 预分频器的输出
Timer0 递增(Q4)
(2)
(1)
(3)
Timer0
当使用预分频器时,外部时钟输入被异步波纹计数器类
型的预分频器分频,故预分频器的输出是对称的。 为了
使外部时钟满足采样要求,必须考虑波纹计数器。 因
此,T0CKI 的周期必须至少保持 4 个 T
的一小段 RC 延时)除以分频值。 对 T0CKI 的高、低电
平时间的惟一要求是脉宽不得小于 Tt0H 。 请参见所用
器件的电气规范中的参数 40 、 41 和 42 。
6.1.2 TIMER0 的递增延时
由于预分频器的输出与内部时钟同步,因此从出现外部
时钟沿到 Timer0 模块实际递增有一小段延时。图 6-4 显
示了从外部时钟沿到定时器递增的延时。
窄脉冲
丢失采样
T0 T0 + 1 T0 + 2
OSC(加上 4 Tt0H
注 1 : 从时钟输入变化到 Timer0 递增有 3 到 7 个 T
边沿之间的间隔的最大误差为± 4 个 T
2: 如果未选择预分频器,则为外部时钟,否则为预分频器输出。
3: 箭头所指为采样时刻。
OSC 的延时 (持续时间 Q = TOSC)。 因此,测量 Tim er 0 输入脉冲相邻
OSC。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 35 页
PIC12F508/509/16F505
6.2 预分频器
一个 8 位的计数器可分别作为 Timer0 模块的预分频器
或看门狗定时器(WDT )的后分频器(见第 7.6 节 “ 看
门狗定时器 (WDT ) ”)。 为简化起见,在本数据手册
中称该计数器为 “预分频器”。
注: 预分频器由 Timer0 模块或 WDT 使用,但
它们不可同时使用。 因此,如果把预分频
器分配给 Timer0 模块就意味着 WDT 无分
频器可用,反之亦然。
PSA 和 PS<2:0> 位(OPTION<3:0> )决定预分频器的
分配和分频比。
当预分频器分配给 Timer0 模块时,对 TMR0 寄存器执
行的所有指令 (如 CLRF 1 、 MOVWF 1 和 BSF 1, x
等)都会将预分频器清零。 当预分频器分配给WDT 时,
执行 CLRWDT 指令会同时将预分频器和 WDT 清零。 预
分频器是不可读写的。 复位时,预分频器包含为全 0 的
值。
6.2.1 切换预分频器的分配
预分频器的分配完全由软件控制(即,它可在程序执行
期间被 “随时”改变)。 为避免器件意外复位,当把预
分频器从 Timer0 分配给 WDT 时,必须执行下列指令序
列 (见例 6-1 )。
例 6-1 : 改变预分频器 (TIMER0 → WDT )
CLRWDT ;Clear WDT
CLRF TMR0 ;Clear TMR0 & Prescaler
MOVLW ‘00xx1111’b ;These 3 lines (5, 6, 7)
OPTION ;are required only if
;desired
CLRWDT ;PS<2:0> are 000 or 001
MOVLW ‘00xx1xxx’b ;Set Postscaler to
OPTION ;desired WDT rate
要将预分频器从 WDT 分配给 Timer0 模块,使用例 6-2
所示的指令序列。 即使在 WDT 被禁止时,也必须使用
该序列。 应该在切换预分频器之前执行 CLRWDT 指令。
例 6-2 : 改变预分频器 (WDT → TIMER0 )
CLRWDT ;Clear WDT and
;prescaler
MOVLW ‘xxxx0xxx’ ;Select TMR0, new
;prescale value and
;clock source
OPTION
DS41236B_CN 第 36 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
图 6-5: TIMER0/WDT 预分频器框图
TCY (= FOSC/4)
M
U
X
PSA
0
1
T0CS
(GP2/RC5 )/T0CKI
引脚
T0SE
看门狗
定时器
WDT 使能位
0
1
(1), (2)
M
U
X
8 位预分频器
8 选 1 多路开关
0
8
MUX
数据总线
1
M
U
X
0
PSA
1
PSA
2 周期
同步电路
PS<2:0>
TMR0 寄存器
8
WDT
超时溢出
注 1 : T0CS 、 T0SE 、 PSA 和 PS<2:0> 均为 OPTION 寄存器中的位。
2 : 在 PIC16F505 器件中 T0CKI 与引脚 RC5 复用,而在 PIC12F508/509 器件中 T0CKI 与 GP2 复用。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 37 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 38 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
7.0 CPU 的特性
单片机与其他处理器的区别在于其具有处理实时应用需
要的特殊电路。PIC12F508/509/16F505 单片机具有许
多特性,旨在最大限度地提高系统的可靠性,通过减少
外部元件将成本降至最低,并且还提供了低功耗工作模
式和代码保护功能。 这些特性如下:
• 振荡器选择
• 复位:
- 上电复位 ( POR)
- 器件复位定时器 ( DRT)
- 引脚电平变化时从休眠模式唤醒
• 看门狗定时器 (WDT)
• 休眠
• 代码保护
• ID 单元
• 在线串行编程
• 时钟输出
寄存器 7-1: PIC12F508/509
(1)
的配置字
PIC12F508/509/16F505 器件具有一个看门狗定时器,
只可以通过配置位 WDTE 来关闭它。为了增强可靠性,
它依靠自己的 RC 振荡器运行。如果使用 HS
(PIC16F505 )、 XT 或 LP 可选振荡器,就总是会由器
件复位定时器 (DRT)提供 18 ms (标称值)的延时,
用于在晶振稳定之前使芯片保持为复位状态。 如果使用
INTRC或 EXTRC,那么将只在 V
DD上电时才具有18 ms
的延时。 有了此片上定时器,大部分应用都不再需要外
部复位电路。
休眠模式是为提供电流非常低的掉电模式而设计的。 用
户可以通过输入引脚上的电平变化或通过看门狗定时器
超时溢出使器件从休眠模式唤醒。 有几个振荡器供器件
选择以适应不同的应用,这些振荡器包括内部 4MHz振
荡器。 EXTRC 振荡器可以节省系统成本,而 LP 晶振可
以节省功耗。 可以使用一组配置位来选择不同的振荡
器。
7.1 配置位
PIC12F508/509/16F505 配置字由 12 位组成。 可以编程
配置位来选择不同的器件配置。 有三个位可用于选择振
荡器类型; (PIC12F508/509 器件为两个位),一个位
是看门狗定时器使能位,一个位是 MCLR 使能位,还有
一个位用于代码保护 (寄存器 7-1 和寄存器 7-2 )。
- - - - - - -
bit 11 bit 0
bit 11-5
bit 4
bit 3
bit 2
bit 1-0
未实现:读为 0
MCLRE : GP3/MCLR 引脚功能选择位
1 = GP3/MCLR
0 = GP3/MCLR 引脚功能为数字 I/O , MCLR 在内部与 VDD 相连
CP
:代码保护位
1 = 关闭代码保护
0 = 打开代码保护
WDTE:看门狗定时器使能位
1 = 使能 WDT
0 = 禁止 WDT
FOSC<1:0>:振荡器选择位
11 = EXTRC = 外部选择位
10 = INTRC = 内部 RC 振荡器
01 = XT 振荡器
00 = LP 振荡器
注 1 : 如需确定访问配置字的方法,请参见“PIC12F508/509 Memory Programming Specifications ”(DS41227 )。
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
引脚功能为 MCLR
在器件工作过程中用户不能寻址配置字寄存器。
MCLRE CP
WDTE FOSC1 FOSC0
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 39 页
PIC12F508/509/16F505
寄存器 7-2 : PIC16F505
- - - - - -
bit 11 bit 0
bit 11-6
bit 5
bit 4
bit 3
bit 2-0
未实现:读为 0
MCLRE : GP3/MCLR 引脚功能选择位
1 = RB3/MCLR
0 = RB3/MCLR 引脚功能为数字 I/O , MCLR 在内部与 VDD 相连
CP
:代码保护位
1 = 关闭代码保护
0 = 打开代码保护
WDTE:看门狗定时器使能位
1 = 使能 WDT
0 = 禁止 WDT
FOSC<1:0>:振荡器选择位
111 = RB4/OSC2/CLKOUT 引脚上的外部 RC 振荡器 /CLKOUT 功能
110 = RB4/OSC2/CLKOUT 引脚上的外部 RC 振荡器 /RB4 功能
101 = RB4/OSC2/CLKOUT 引脚上的内部 RC 振荡器 /CLKOUT 功能
100 = RB4/OSC2/CLKOUT 引脚上的内部 RC 振荡器 /RB4 功能
100 = RB4/OSC2/CLKOUT 引脚上的 EC 振荡器 /RB4 功能
010 = HS 振荡器
001 = XT 振荡器
000 = LP 振荡器
引脚功能为 MCLR
(1)
的配置字
MCLRE CP
WDTE FOSC2 FOSC1 FOSC0
注 1 : 如需确定访问配置字的方法,请参见“PIC16F505 Memory Programming Specifications ”(DS41226 )。 在
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = 上电复位时的值 1 = 置 10 = 清零 x = 未知
器件工作过程中用户不能寻址配置字寄存器。
DS41236B_CN 第 40 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
7.2 振荡器配置
7.2.1 振荡器类型
PIC12F508/509/16F505 器件最多可以在 6 种不同的振
荡模式下工作。用户可以对最多三个配置位
(FOSC<1:0>[PIC12F508/509] , FOSC<2:0>
[PIC16F505])进行编程。 要选择这些模式中的一个:
• LP: 低功耗晶振
• XT:晶 振 / 谐振器
• HS: 高速晶振 / 谐振器 (仅 PIC16F505)
• INTRC:内部 4MHz振荡器
• EXTRC:外部谐振器 / 电容
• EC: 外部高速时钟输入 (仅 PIC16F505)
7.2.2 晶振 / 陶瓷谐振器
在 HS (PIC16F505 )、 XT 或 LP 模式中,晶振或陶瓷
谐振器与(GP5/RB5 )/OSC1/(CLKIN )和( GP4/RB4)
/OSC2/ ( CLKOUT)引脚相连以产生振荡 (图 7-1)。
PIC12F508/509/16F505 振荡器设计要求使用平行切割的
晶体。 使用顺序切割的晶体,可能会使振荡器产生的频率超出
晶体制造厂商所规定的范围。当在 HS (PIC16F505 )、
XT 或 LP 模式中时,器件可以用一个外部时钟源驱
动(GP5/RB5) /OSC1/CLKIN 引脚 (图 7-2)。
注 1 : 此器件设计为按照其数据手册中的参数
运行。 器件经测试达到电气规范的要求,
而这套电气规范是用以确定器件是否符
合上述参数而设计的。 由于器件生产工艺
的差异,器件的性能特性可能与其早期的
版本有所不同。 这些差异可能导致此器件
在您的应用中所表现的性能与早期的版
本有所不同。
2 : 用户应该验证器件振荡器的起振和运行
与预期是否相同。 可能需要调整负载电容
值和 / 或振荡器模式。
图 7-1 : 晶振 (或陶瓷谐振器)工作原理
(HS 、 XT 或 LP 振荡器配置)
(1)
C1
(1)
C2
注 1: 推荐使用的 C1 和 C2 值请参见电容选择表。
2: 对于 AT 条形切割晶体可能需要串联一个电阻
(RS )。
3 : RF 近似值 = 10 MΩ 。
XTAL
RS
(2)
OSC1
OSC2
RF
(3)
PIC12F508/509
PIC16F505
休眠
到内部
逻辑电路
图 7-2 : 外部时钟输入工作原理(HS 、 XT 或
LP 振荡器配置)
来自外部系统
的时钟
开路
表 7-1 : 陶瓷谐振器的电容选择——
PIC12F508/509/16F505
振荡
类型
HS
注 1 : 这些值仅作为设计参考。 由于每个谐振器
谐振器频率
XT 4.0 MHz 30 pF 30 pF
(2)
16 MHz 10-47 pF 10-47 pF
都有自己的特性,用户应该向谐振器厂商
咨询外部元件的适当值。
2 : 仅 PIC16F505 器件才可使用的振荡模式。
OSC1
OSC2
电容范围
C1
PIC12F508/509
PIC16F505
(1)
电容范围
C2
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 41 页
PIC12F508/509/16F505
表 7-2: 晶振的电容选择—— PIC12F508/
509/16F505
振荡
类型
HS
注 1 : 当 V
谐振器频率
LP 32 kHz
XT 200 kHz
1 MHz
4 MHz
(3)
20 MHz 15-47 pF 15-47 pF
DD > 4.5V 时,建议 C1 = C2≈ 30 pF 。
(1)
(2)
电容范围
电容范围
C1
15 pF 15 pF
47-68 pF
15 pF
15 pF
47-68 pF
15 pF
15 pF
C2
2: 这些值仅供设计参考。 可能需要使用电阻
Rs 以避免对低驱动规格的晶体造成过驱
动。 由于每个晶振都有自己的特性,用户
应该向晶振厂商咨询外部元件的适当值。
3 : 仅 PIC16F505 器件才可使用的振荡模式。
7.2.3 外部晶振电路
具有TTL 门控的预封装振荡器或简单振荡电路可以被用
作外部晶振电路。预封装的振荡器提供了一个宽工作范
围和更好的稳定性。设计优良的晶振具有 TTL 门控电
路,可提供良好的性能。 可以使用两种类型的晶振电
路:并联谐振电路或串联谐振电路。
图 7-3 显示了并联谐振器振荡电路的实现方式。 此电路
设计为使用晶体的基频。 74AS04 反相器可以提供并联
振荡器所需要的 180 度相移。4.7 kΩ 的电阻提供负反馈
以增强稳定性。10 kΩ电位器将 74AS04 偏置到线性区。
此电路可用于外部振荡器设计。
图 7-3 : 外部并联谐振器的晶振电路
+5V
10k
4.7k
74AS04
10k
XTAL
10k
20 pF
20 pF
图 7-4 显示了串联谐振器振荡电路。 此电路也设计为使
用晶体的基频。 反相器在串联谐振器振荡电路中执行
180 度相移。 330 Ω 电阻提供的负反馈将反向器偏置到
线性区。
74AS04
到其他
器件
CLKIN
PIC16F505
PIC12F508
PIC12F509
图 7-4 : 外部串联谐振器的晶振电路
到其他
74AS04
器件
CLKIN
PIC16F505
PIC12F508
PIC12F509
330
74AS04
330
74AS04
0.1 mF
XTAL
7.2.4 外部 RC 振荡器
对于时序要求极高的应用, RC 器件选项可以进一步节
省成本。 RC 振荡频率随电源电压、电阻 (REXT )和电
容值 (CEXT )以及工作温度变化。 除此之外,由于正
常工艺参数不同,不同器件之间的振荡频率也各不相
同。 此外,不同封装类型的引线框的电容差异也会影响
振荡频率,尤其当 C
由于所使用的外部 R 和 C 元件的容差不同而造成的差
异。
图 7-5 显示了 RC 组合连接到 PIC12F508/509/16F505
器件的方式。如果 R
会变得不稳定,或者完全停止。 如果 REXT 值很高
(如 1MΩ),振荡器就会变得对噪声、湿度和泄漏电流
敏感。 因此,建议将R
EXT 值较小时。 用户还需要考虑到
EXT 值低于 3.0 kΩ ,振荡器工作就
EXT保持在5.0 kΩ 和100 kΩ 之间。
DS41236B_CN 第 42 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
虽然振荡器可以在没有外部电容的情况下 (CEXT = 0 pF)
工作,但是由于噪声和稳定性原因,还是建议使用大于
20 pF 的电容值。 如果没有外部电容或外部电容值很
小,振荡频率就会由于外部电容 (比如 PCB 布线电容
和封装引线框的电容)的改变而剧烈变化。
第 10.0 节 “ 电气特性 ” 显示了各器件由于正常制造工艺
的不同而产生的 RC 频率差异。 R 值越大差异越大(因
为 R 值越大,泄漏电流的差异对RC 频率的影响越大),
而 C 值越小差异越大(因为输入电容的差异对 RC 频率
影响更大)。
另外,欲知由于给定 R
EXT/C EXT 值的 V DD 而产生的振
荡频率差异,以及由于给定 R 、C 和 VDD 值的工作温度
而产生的频率差异,请参见电气规范部分。
图 7-5 :外 部RC 振荡器模式
VDD
REXT
CEXT
VSS
FOSC /4
OSC1
N
OSC2/CLKOUT
内部
时钟
PIC16F505
PIC12F508
PIC12F509
此外,校准指令被编写在存储器的最后一个地址,其中
包括内部 RC 振荡器的校准值。 不管是否设置了代码保
护,此单元总是没有代码保护的。 此值被编程为 MOVLW
XX 指令,其中XX 是校准值,并被放在复位向量处。 这将
在复位时把校准值载入 W 寄存器,然后 PC 将返回至地
址 0x000 处的用户程序。 然后用户可以选择是将此值写
入 OSCCAL 寄存器 (05h )还是忽略它。
当将校准值写入 OSCCAL 寄存器时,将 “调整”内部
振荡器以消除由于制造工艺引起的振荡频率差异。
注: 擦除器件同时也会擦除内部振荡器预编程
的内部校准值。 必须在擦除器件之前读取
校准值,从而以后可以正确地重新编程。
对于 PIC12F508/509/16F505 器件,仅实现了 OSCCAL
的 bit<7:1> 。 CAL6-CAL0 位用于校准。 将 CAL6-CAL0
从“0000000”调整到“1111111 ”会改变时钟速度。
欲知更多信息,请参见寄存器 4-5 。
注: 在修改 OSCCAL 以便与未来器件兼容时,
不使用 OSCCAL 的 0 位,并且此位应该写
为“0”。
7.2.5 内部 4MHz RC 振荡器
内部RC 振荡器在VDD = 5V 和25°C 时提供固定的 4MHz
(标称值)系统时钟 (有关随着电压和温度变化的信息
请参见第 10.0 节 “ 电气特性 ” )。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 43 页
PIC12F508/509/16F505
7.3 复位
器件因不同类型的复位而有所区别:
• 上电复位 (POR)
• 正常工作时的 MCLR
• 休眠时的 MCLR
• 正常工作时的 WDT 超时溢出复位
• 休眠时的 WDT 超时溢出复位
• 在引脚电平发生变化时从休眠模式唤醒
某些寄存器没有任何形式的复位,在上电复位时它们的
状态是未知的,在任何其他复位时它们不变。 大部分其
他寄存器都会在正常工作过程中发生上电复位
(POR )、MCLR
时复位到“复位状态”。 它们在休眠过程中不受到 WDT
复位或 MCLR
复位的影响,因为这些复位被视为恢复正
常运行。 TO、PD 和 RBWUF/GPWUF 位例外。 在不同
的复位情况下它们的置 1 和清零状况不同。 在软件中使
用这些位来确定复位的特性。 所有寄存器的复位状态的
完整说明请参见表 7-4 。
表 7-3 : 寄存器的复位条件——PIC12F508/509
复位
复位
、WDT 复位或引脚电平变化唤醒复位
7.3.1 外部时钟输入
对于已通过其他方式提供了时钟的应用程序,如果外部
时钟源符合第 7.6 节 “ 看门狗定时器(WDT )” 中所列
的 AC/DC 时序要求,则用户可以直接驱动 PIC12F508/
509/16F505 器件。下面的图 7-6 显示了应该如何配置
外部时钟电路。
图 7-6 : 外部时钟输入操作
PIC16F505 : EC、 HS 、 XT 和 LP
来自外部系统
的时钟
OSC2/CLKOUT/RB4
PIC12F508/509 : XT 和 LP
来自外部系统
的时钟
OSC2
注 1 : 仅在 EC 模式下才有 RB4。
RB5/OSC1/CLKIN
PIC16F505
OSC2/CLKOUT/RB4
GP5/OSC1/CLKIN
PIC12F508
PIC12F509
GP4/OSC2
(1)
复位、 WDT 超时溢出和
寄存器 地址 上电复位
W
-
qqqq qqqu
(1)
MCLR
在引脚电平变化时唤醒
qqqq qqqu
INDF 00h xxxx xxxx uuuu uuuu
TMR0 01h xxxx xxxx uuuu uuuu
PC 02h 1111 1111 1111 1111
STATUS 03h 0001 1xxx q00q quuu
(4)
FSR
FSR
(5)
04h 110x xxxx 11uu uuuu
04h 111x xxxx 111u uuuu
OSCCAL 05h 1111 111- uuuu uuu-
GPIO 06h --xx xxxx --uu uuuu
OPTION
TRIS
-
-
1111 1111 1111 1111
--11 1111 --11 1111
图注: u = 不变, x = 未知,- = 未实现位,读为 0, q = 取值根据条件而定。
注 1 : W 寄存器的 bit <7:2> 包含振荡器校准值,这是因为存储器顶部有一条 MOVLW XX 指令。
2: 特定条件下的复位值请参见表 7-8。
3: 如果由于引脚电平变化唤醒而产生复位,则 bit 7 = 1 。 所有其他复位都将导致 bit 7 = 0。
4: 仅 PIC12F509。
5: 仅 PIC12F508。
(1)
(2), (3)
DS41236B_CN 第 44 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 7-4 : 寄存器的复位条件—— PIC16F505
复位、 WDT 超时溢出和
寄存器 地址 上电复位
W
INDF 00h xxxx xxxx uuuu uuuu
TMR0 01h xxxx xxxx uuuu uuuu
PC 02h 1111 1111 1111 1111
STATUS 03h 0001 1xxx q00q quuu
FSR 04h 110x xxxx 11uu uuuu
OSCCAL 05h 1111 111- uuuu uuu-
PORTB 06h --xx xxxx --uu uuuu
PORTC 07h --xx xxxx --uu uuuu
OPTION
TRISB
TRISC
图注: u = 不变, x = 未知,- = 未实现位,读为 0, q = 取值根据条件而定。
注 1 : W 寄存器的 bit <7:2> 包含振荡器校准值,这是因为存储器顶部有一条 MOVLW XX 指令。
2: 特定条件下的复位值请参见表 7-8。
3: 如果由于引脚电平变化唤醒而产生复位,则 bit 7 = 1 。 所有其他复位都将导致 bit 7 = 0。
-
-
-
-
qqqq qqqu
1111 1111 1111 1111
--11 1111 --11 1111
--11 1111 --11 1111
(1)
MCLR
在引脚电平变化时唤醒
qqqq qqqu
(1)
(2), (3)
表 7-5 : 特殊寄存器的复位条件
上电复位
正常工作时的 MCLR
休眠时的 MCLR
休眠时的 WDT
正常工作时的 WDT 复位
在引脚电平发生变化时从休眠模式唤醒
图注: u = 不变, x = 未知,- = 未实现位,读为 0。
复位
复位
STATUS 地址:03h PCL 地址:02h
0001 1xxx 1111 1111
000u uuuu 1111 1111
0001 0uuu 1111 1111
0000 0uuu 1111 1111
0000 uuuu 1111 1111
1001 0uuu 1111 1111
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 45 页
PIC12F508/509/16F505
7.3.2 MCLR 使能
此配置位在未编程时 (保留为 “1 ”的状态)会使能外
部 MCLR 功能引脚。 在已编程时,MCLR 功能引脚将连
接到内部 VDD 并且分配该引脚为 I/O 引脚。参见图 7-7 。
图 7-7 : MCLR 选择
GPWU/RBWU
( GP3/RB3) /MCLR/VPP
MCLRE
内部 MCLR
7.4 上电复位 ( POR)
PIC12F508/509/16F505 器件采用了一个片上上电复位
(POR )电路,此电路为大部分上电情况提供内部芯片
复位。
片上上电复位电路将芯片保持在复位状态,直到 V
升到足以正常工作的电平。 要利用内部上电复位,可以
将(GP3/RB3) /MCLR/VPP 引脚编程为 MCLR 引脚,
并通过一个电阻将此引脚连接到 V
程为(GP3/RB3 )。 使用一个晶体管(上拉电阻范围见
表 10-2 )来实现内部弱上拉电阻。 这将省掉产生上电复
位通常所需要的外部 RC 组件。指定了 VDD 的最大上升
时间。 如需详细信息,请参见第 10.0 节 “ 电气特性 ” 。
当器件开始正常工作时 (退出复位条件),器件工作参
数 (电压、频率和温度)必须符合一定的条件以保证正
常工作。 如果不符合这些条件,器件必须被保持在复位
状态,直到符合工作参数为止。
图 7-8 所示为片上上电复位电路的简化框图。
DD,或者将此引脚编
DD 上
上电复位电路和器件复位定时器(见第 7.5 节 “ 器件复
位定时器 (DRT ) ”)电路是紧密相关的。 上电时,复
位锁存器置 1 且 DRT 被复位。 DRT 定时器一旦检测到
引脚为高电平就开始计数。 在延时周期(通常为
MCLR
18 ms)之后,它将使复位锁存器复位,从而结束片上
复位信号。
图 7-9 所示为一个 MCLR
例。 在 MCLR
保持稳定。 芯片实际上会在 MCLR
的 T
DRT ms 之后,退出复位状态。
在图 7-10 中,使用片上上电复位功能, MCLR
VDD 被连接在一起或者 MCLR 引脚被编程为 GP3/RB3。
DD 在起振定时器超时溢出前趋于稳定并且在正常复位
V
过程中不会有任何问题。 但是,图 7-11 描述了一个当
V
DD 上升太缓慢时出现的问题。 从 DRT 检测到 MCLR
引脚为高电平到 MCLR 和 VDD 实际上达到其最大值之
间的时间太长。在这种情况下,当起振定时器延时结束
DD 尚未达到 V DD 最小值,芯片可能无法正常运
时, V
行。 如果发生这种情况,建议使用外部 RC 电路以延长
上电复位延时 (图 7-10 )。
注: 当器件开始正常工作时(退出复位条件),
更多信息,请参见应用笔记 AN522
Considerations”(DS00522 )和 AN607 “Power-up
Trouble Shooting”(DS00607 )。
引脚变为高电平之前,允许 VDD 上升并
器件工作参数 (电压、频率和温度等)必
须符合一定的条件以保证正常工作。如果
不符合这些条件,那么器件必须保持在复
位状态,直到符合工作条件为止。
引脚保持为低电平的上电示
引脚变为高电平之后
引脚和
“
Power-Up
DS41236B_CN 第 46 页 初稿 2006 Microchip Technology Inc.
图 7-8 : 片上复位电路的简化框图
VDD
上电
检测
(GP3/RB3 )/MCLR/VPP
上电复位(POR )
MCLR
PIC12F508/509/16F505
复位
SQ
MCLRE
WDT 超时溢出
引脚电平变化
休眠模式
WDT 复位
在引脚电平变化复位时唤醒
图 7-9 : 上电时的延时序列 (MCLR 拉为低电平)
VDD
MCLR
内部上电复位
DRT 延时
内部复位
图 7-10 : 上电时的延时序列 (MCLR
连接到 VDD ): 快 速 VDD 上升时间
起振定时器
(10 µS 或
18 mS)
R
Q
CHIP_RESET
TDRT
VDD
MCLR
内部上电复位
DRT
延时
内部复位
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 47 页
TDRT
PIC12F508/509/16F505
图 7-11: 上电时的延时序列 ( MCLR 连接到 VDD ): 缓 慢 VDD 上升时间
V1
VDD
MCLR
内部上电复位
延时
DRT
内部复位
注: 当 VDD 上升缓慢时,在 VDD 达到其最终值前 TDRT 延时早就结束了。 在此示例中,当且仅
当 V1 ≥ V
DD min 时,芯片会正确复位。
TDRT
DS41236B_CN 第 48 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
7.5 器件复位定时器 ( DRT)
在 PIC12F508/509/16F505 器件上,每次当器件上电时
DRT 都会运行。 DRT 从复位开始运行并且随着振荡器
选择和复位类型的不同而有所不同 (见表 7-6)。
DRT 用内部 RC 振荡器作为时钟来工作。 只要 DRT 是
活动的,处理器就保持在复位状态。 DRT 延时使 V
上升到 VDD 最小值以上,并使振荡器达到稳定。
基于晶体振荡器或陶瓷谐振器的振荡电路在上电后需要
一段时间来建立稳定的振荡。 在 MCLR
(V
IH MCLR)之后,片上 DRT 会将器件保持在复位状态
大约 18 ms 。 在大多数情况下,不要求将 (GP3/RB3)
/VPP 编程为 MCLR 或使用外部 RC 网络连接到
/MCLR
MCLR
输入引脚。 这可以在对成本和 / 或空间控制严格
的应用中节省开支和空间,并且允许将 (GP3/RB3 ) /
MCLR/VPP 引脚用作通用输入引脚。
DD、温度和制造工艺的不同,芯片之间的器件复
由于 V
位延时也各不相同。 详情请参见 AC 参数。
看门狗定时器从休眠状态超时溢出也会触发DRT 。 这对
于使用 WDT 从休眠模式自动唤醒的应用特别重要。
复位源为上电复位、MCLR
平变化时唤醒。 请参见 第 7.9.2 节 “ 从休眠模式唤醒” 中
的注 1 、 2 和 3 。
、WDT 超时溢出和在引脚电
达到逻辑高电平
DD
7.6 看门狗定时器 (WDT )
看门狗定时器(WDT )是自由运行的片上 RC 振荡器,
它不需要任何外部组件。 此 RC 振荡器独立于 (GP5/
RB5) /OSC1/CLKIN 引脚外接的 RC 振荡器和内部
4MHz 振荡器。 这意味着即使主处理器时钟已经停止
(如通过执行 SLEEP 指令) WDT 将仍然运行。 在正常
工作或休眠过程中, WDT 复位或唤醒复位都会产生器
件复位。
位(STATUS<4>)将在看门狗定时器复位时清零。
TO
可以通过将配置位 WDTE 编程为“0 ”来永久禁止 WDT
(见第7.1 节 “ 配置位” )。 如需确定访问配置字的方法,
请参见 “PIC12F508/509/16F505 Programming
Specifications ”。
表 7-6 : DRT (器件复位定时器周期)
振荡器配置 上电复位 后续复位
INTOSC 和
EXTRC
(1)
HS
、 XT 和 LP 18 ms (典型) 18 ms (典型)
(1)
EC
注 1 : 仅 PIC16F505 器件。
18 ms (典型) 10 µs (典型)
18 ms (典型) 10 µs (典型)
7.6.1 WDT 周期
WDT 的正常超时溢出周期为 18 ms(没有预分频器)。
如果需要更长的超时溢出周期,可以通过写 OPTION 寄
存器为 WDT (在软件控制下)分配一个分频比最高为
1:128 的预分频器。 因此,可以实现一个正常的 2.3s 超
时溢出周期。 此周期根据温度、V
制造工艺而有所不同 (见直流规范)。
在最坏的情况下 (V
WDT 预分频比最大),在发生 WDT 超时溢出之前会有
几秒钟的延迟。
DD = 最小值且温度 = 最大值并且
DD 以及各器件的不同
7.6.2 WDT 编程注意事项
CLRWDT 指令将清零 WDT 和后分频器 (如果将后分频
器分配给 WDT ),并阻止它超时溢出和产生器件复位。
SLEEP 指令将复位 WDT 和后分频器(如果将后分频器
分配给 WDT)。 这将在 WDT 唤醒复位之前提供一个最
大休眠时间。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 49 页
PIC12F508/509/16F505
图 7-12: 看门狗定时器框图
从 Time r0 时钟源
(图 6-5 )
0
M
看门狗
时间
1
U
X
后 分频器
后分频器
8 选 1 多路开关
WDT 使能
配置位
注 1 : T0CS 、 T0SE 、 PSA 和 PS<2:0> 均为选项寄存器中的位。
PSA
0
MUX
WDT 超时
1
表 7-7 : 与看门狗定时器相关的寄存器汇总
地址 名称
N/A OPTION
N/A OPTION
图注: 看门狗定时器不使用阴影单元。 - = 未实现,读为 0 , u = 不变。
注 1 : 仅 PIC12F508/509 。
2: 仅 PIC16F505 。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
(1)
GPWU GPPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
(2)
RBWU RBPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
PS<2:0>
到 Timer0
PSA
(图 6-4 )
上电复位
时的值
所有其他复位
时的值
DS41236B_CN 第 50 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
7.7 超时序列、掉电和从休眠唤醒状态位
(TO
、 PD 和 GPWUF/RBWUF )
可以通过测试状态寄存器中的 TO 、 PD 和(GPWUF/
RBWUF )位来确定是否上电条件、 MCLR
或看门狗定
时器 (WDT )复位已经导致复位条件产生。
表 7-8 : 复位后的 TO/PD/ (GPWUF/
RBWUF)状态
GPWUF/
RBWUF
00 0
00 u
01 0
01 1
0u u
11 0
图注: u = 不变
注 1 : TO 、 PD 和 GPWUF/RBWUF 位将保持其
PD
TO
导致复位的原因
WDT 从休眠模式唤醒
WDT 超时溢出 (不从休眠
模式唤醒)
MCLR
从休眠模式唤醒
上电
MCLR
不从休眠模式复位
在引脚电平发生变化时从休
眠模式唤醒
状态 (u )直到发生复位。 MCLR 输入引
脚上的低脉冲不会改变 TO 、 PD 和
GPWUF/RBWUF 状态位。
7.8 欠压复位
欠压是这样一种情况,即器件电压 (VDD )下降到最小
值以下,但不降到零,然后恢复。 器件应该在发生欠压
事件时复位。
要在发生欠压时复位 PIC12F508/509/16F505 器件,可
以建立外部欠压保护电路,如图 7-13 和图 7-14 所示。
图 7-13 : 欠压保护电路 1
VDD
VDD
图 7-14 : 欠压保护电路 2
VDD
VDD
R1
Q1
MCLR
R2
注 1 : 此欠压电路虽然精度较低,但相对较便宜。
当 V
DD 低于以下公式计算出的电平时,晶体
管 Q1 关闭。
DD •
V
2 : 必须确认引脚为 MCLR
R1
R1 + R2
(1)
40k
= 0.7V
。
PIC16F505
PIC12F508
(2)
PIC12F509
图 7-15: 欠压保护电路 3
VDD
MCP809
VSS
RST
注: 欠压保护电路使用 Microchip Technology
旁路
电容
VDD
的 MCP809 单片机监控器。从 7 种不同的
跳变点中选择以适应 5V 到 3V 的系统。
VDD
MCLR
PIC16F505
PIC12F508
PIC12F509
33k
Q1
40k
MCLR
(1)
10k
注 1 : 当 VDD 低于 Vz + 0.7V (其中 Vz = 齐纳电压)
时,此电路将激活复位。
2 : 必须确认引脚为 MCLR
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 51 页
PIC16F505
PIC12F508
PIC12F509
(2)
。
PIC12F508/509/16F505
7.9 掉电模式 (休眠)
器件可以掉电(休眠)然后再上电(从休眠模式唤醒)。
7.9.1 休眠模式
可以通过执行 SLEEP 指令进入掉电模式。
使能时,看门狗定时器将被清零但仍然保持运行,TO
(STATUS<4>)被 置 1,PD 位(STATUS<3>)被清零
并且振荡器驱动器被关闭。 I/O 端口保持 SLEEP 指令执
行前的状态(驱动为高电平、驱动为低电平或高阻态)。
注: WDT 超时溢出所产生的复位不会将 MCLR
引脚驱动为低电平。
为了达到掉电时的最低电流消耗,T0CKI 输入电平应该
DD 或 V SS,而且 在 MCLR 使能时,(GP3/RB3)/
为 V
MCLR
/VPP 引脚电平必须为逻辑高电平。
7.9.2 从休眠模式唤醒
器件可以通过以下事件之一从休眠模式唤醒:
1. 当配置为 MCLR
脚上发生外部复位输入。
2. 看门狗定时器超时溢出复位(如果 WDT 使能)。
3. 当使能了电平变化唤醒时,输入引脚 GP0/RB0、
GP1/RB1、 GP3/RB3 或 RB4 上发生电平变化。
这些事件都将导致器件复位。 可以使用 TO
GPWUF/RBWUF 位来确定器件复位的原因。 如果发生
WDT 超时溢出 (并引起唤醒), TO
在上电时置1 ,在调用SLEEP 时清零。 GPWUF/RBWUF
位表示休眠时 GP0/RB0 、GP1/RB1、GP3/RB3 或 RB4
引脚状态的变化 (从 GP/RB 端口上最后一次寄存器或
位操作之后)。
注: 提醒:请在进入休眠模式之前,读取输入
引脚。 当器件处于休眠模式时,引脚上的
值不同于上次读该引脚时的状态时,就会
发生唤醒。 如果发生电平变化时唤醒,并
且没有在进入休眠模式前读引脚,即使在
休眠模式中没有引脚发生变化,也会立即
发生唤醒。
不管是什么引起唤醒,当器件从休眠模式唤醒时,WDT
都将被清零。
时,(GP3/RB3 )/MCLR/VPP 引
位被清零。 PD 位
位
、 PD 和
7.10 程序验证 / 代码保护
如果代码保护位未被编程,可以读片上程序存储器以进
行验证。
不管代码保护位的设置如何,都可以读前 64 个单元和
最后一个单元 (OSCCAL )。
不管是否在 PIC12F508/509/16F505 器件上设置了代码
保护位,都可以读最后一个存储器单元。
7.11 ID 单元
有四个存储单元指定为 ID 单元,用户可将校验和和其他
代码标识号存储其中。在正常执行过程中这些单元不可
访问,但是在编程 / 校验过程中这些单元可读写。
仅使用 ID 单元的低 4 位并总是将高 8 位编程为 0 。
7.12 在线串行编程
PIC12F508/509/16F505 单片机可在终端应用电路中被
串行编程。只需要 5 根线即可完成这一操作,其中时钟
线和数据线各一根,其余 3 根分别是电源线、接地线
和编程电压线。 这使用户可使用未编程的器件制造电路
板,而仅在产品交付前才对单片机进行编程。 这样还可
以将最新的固件或定制的固件编程到器件中。
通过将 MCLR
同时将 GP1/RB1 和GP0/RB0 引脚的电平保持为低电平
可将器件保持在编程 / 校验模式 (见编程规范)。此时
GP1/RB1 成为编程时钟而 GP0/RB0 成为编程数据。 在
此模式中 GP1/RB1 和 GP0/RB0 都是施密特触发器输
入。
复位之后,为器件提供一条 6 位的命令。 根据命令,可
以为器件提供 14 位程序数据或者由器件提供 14 位程序
数据,这取决于命令是一条载入命令还是一条读取命
令。欲知串行编程的完整细节,请参见 PIC12F508/509/
16F505 编程规范。
图 7-16 所示为典型的在线串行编程连接。
(VPP )引脚的电平从 VIL 拉升到 V IHH ,
DS41236B_CN 第 52 页 初稿 2006 Microchip Technology Inc.
图 7-16: 典型在线串行编程连接
PIC12F508/509/16F505
外部连接
器信号
+5V
0V
PP
V
CLK
数据 I/O
到正常连接
到正常连接
PIC16F505
PIC12F508
PIC12F509
V
DD
VSS
MCLR/VPP
GP1/RB1
GP0/RB0
DD
V
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 53 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 54 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
8.0 指令集综述
PIC16C505 指令集具有高度正交性,分为以下三种基本
类型:
• 字节操作类指令
• 位操作类指令
• 立即数和控制操作类指令
每条 PIC16 指令都是 12 位字的,由操作码(指定指令
类型)和一个或多个操作数 (指定指令操作)组成。图 8-1
中显示了每种指令类型的格式,而表 8-1 总结了各种操
作码字段。
对于字节操作指令,“f ”为代表文件寄存器的指示符,
而“d”为代表目标寄存器的指示符。文件寄存器指示
符指定指令将会使用哪一个文件寄存器。
目标寄存器指示符指定操作结果的存放位置。如果“d ”
为 0 ,结果存放在 W 寄存器中。如果 “d ”为 1 ,结果
存放在指令指定的文件寄存器中。
对于位操作类指令,“b ”为代表位域的指示符,用于选
择操作所影响的位,而 “f ”则代表相应位所在的寄存
器的地址。
对于立即数和控制操作类指令,“k ”代表一个 8 位或 9
位常数或立即数值。
表 8-1 : 操作码字段说明
字段 说明
f
文件寄存器地址 (0x00 到 0x7F )
W
工作寄存器 (累加器)
b
8 位文件寄存器内的位地址
k
立即数字段、常数或标号
x
与取值无关的单元 (= 0 或 1 )。
汇编器将生成 x = 0 的代码。 为了与所有的
Microchip 软件工具兼容,建议使用这种形式。
d
目标选择;
d = 0 (将结果保存在 W 寄存器中)
d = 1 (将结果保存在文件寄存器 f 中)
默认 d = 1
label
dest 目标寄存器,可以是 W 寄存器也可以是文件寄存
[ ]
( )
斜体
标号名
TOS
栈顶
PC
程序计数器
WDT
看门狗定时器计数器
TO
超时溢出位
PD
掉电位
器
选项
内容
→
赋值给
< >
寄存器位域
∈
属于指定的集合
用户定义项 (字体为 courier )
所有指令都在一个指令周期内执行,除非条件测试为真
或者指令执行改变了程序计数器的值。当上述特殊情况
发生时,指令的执行就需要两个指令周期。每个指令周
期由 4 个振荡周期组成。因此,对于频率为 4 MHz 的振
荡器,其正常的指令执行时间为 1 µ s 。 如果条件测试为
真或者指令执行改变了程序计数器的值,那么指令的执
行时间将为 2 µs 。
图 8-1 显示指令可具有的 3 种一般格式。图中的所有示
例都使用以下格式来表示一个 16 进制数:
0xhhh
其中 h 代表一个 16 进制数字。
图 8-1 : 指令的一般格式
针对字节的文件寄存器操作
11 6 5 4 0
操作码 d f (文件寄存器地址)
d = 0 表示结果存入 W 寄存器
d = 1 表示结果存入文件寄存器 f
f = 5 位文件寄存器地址
针对位的文件寄存器操作
11 8 7 5 4 0
操作码 b(位地址)f (文件寄存器地址)
b = 3 位位地址
f = 5 位文件寄存器地址
立即数和控制操作( GOTO 除外)
11 8 7 0
操作码 k(立即数)
k = 8 位立即数值
立即数和控制操作 —— GOTO 指令
11 9 8 0
操作码 k(立即数)
k = 9 位立即数值
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 55 页
PIC12F508/509/16F505
表 8-2 : 指令集综述
助记符,
操作数
ADDWF
ANDWF
CLRF
CLRW
COMF
DECF
DECFSZ
INCF
INCFSZ
IORWF
MOVF
MOVWF
NOP
RLF
RRF
SUBWF
SWAPF
XORWF
BCF
BSF
BTFSC
BTFSS
ANDLW
CALL
CLRWDT
GOTO
IORLW
MOVLW
OPTION
RETLW
SLEEP
TRIS
XORLW
注 1 : 除 GOTO 之外的任何写 PC 的指令都将把程序计数器的第 9 位强制为 0 。请参见第 4.7 节 “程序计数器”。
f, d
f, d
f
—
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f
—
f, d
f, d
f, d
f, d
f, d
f, b
f, b
f, b
f, b
k
k
—
k
k
k
—
k
—
f
k
2 : 当 I/O 寄存器用自身内容修改自身时 (例如: MOVF PORTB, 1 ),使用的值是出现在引脚上的值。例如,
如果将一引脚配置为输入,虽然其对应数据锁存器中的值为 1 ,但此时若有外部器件将该引脚驱动为低电
平,则被写回的数据值将是 0 。
3 : 指令 TRIS f (其中 f = 6 )会将 W 寄存器的内容写入 PORTB 的三态锁存器。 若写入的值为 1 ,将强制引
脚为高阻态,并且禁止输出缓冲器。
4 : 当对 TMR0 寄存器 (并且 d = 1 )执行这条指令时,如果将预分频器分配给 TMR0,则将其清零。
W 和 f相加
W 和 f作逻辑与运算
将 f 清零
将 W 寄存器清零
f 取反
f 减 1
f 减 1,为 0 则跳过
f 增 1
f 增 1,为 0 则跳过
W 和 f作逻辑或运算
将 f 的内容送到目标寄存器
将 W 的内容传送到 f
空操作
对 f 执行带进位的循环左移
对 f 执行带进位的循环右移
f 减去 W
将 f 中的两个半字节进行交换
W 和 f 作逻辑异或运算
将 f 中的某位清零
将 f 中的某位置 1
检测 f 中的某位,为 0 则跳过
检测 f 中的某位,为 1 则跳过
立即数与 W 作逻辑与运算
调用子程序
清零看门狗定时器
无条件跳转
立即数与 W 作逻辑或运算
将立即数传送到 W
装载 OPTION 寄存器
返回并将立即数传送到 W
进入待机模式
装载 TRIS 寄存器
立即数与 W 作逻辑异或运算
说明 周期数
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
1
2
1
1
1
12 位操作码
MSb LSb
0001
0001
0000
0000
0010
0000
0010
0010
0011
0001
0010
0000
0000
0011
0011
0000
0011
0001
0100
0101
0110
0111
1110
1001
0000
101k
1101
1100
0000
1000
0000
0000
1111
11df
01df
011f
0100
01df
11df
11df
10df
11df
00df
00df
001f
0000
01df
00df
10df
10df
10df
bbbf
bbbf
bbbf
bbbf
kkkk
kkkk
0000
kkkk
kkkk
kkkk
0000
kkkk
0000
0000
kkkk
ffff
ffff
ffff
0000
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
0000
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
ffff
kkkk
kkkk
0100
kkkk
kkkk
kkkk
0010
kkkk
0011
0fff
kkkk
受影响的
状态位
C、DC 和 Z
Z
Z
Z
Z
Z
无
Z
无
Z
Z
无
无
C
C
C、 DC 和 Z
无
Z
无
无
无
无
Z
无
和 PD
TO
无
Z
无
无
无
和 PD
TO
无
Z
注
1, 2, 4
2, 4
4
2, 4
2, 4
2, 4
2, 4
2, 4
2, 4
1, 4
2, 4
2, 4
1, 2, 4
2, 4
2, 4
2, 4
2, 4
1
3
DS41236B_CN 第 56 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
ADDWF
语法: [ 标号] ADDWF f,d
操作数:
操作: (W) + (f) →(目标寄存器 )
受影响的状态位: C、DC 和 Z
说明: 将 W 寄存器的内容与 f 寄存器的内容相
ANDLW
语法: [
操作数:
操作: (W) .AND. (k) → (W)
受影响的状态位:
说明: 将 W 寄存器的内容与 8 位立即数 k 作
ANDWF
语法: [
操作数:
操作: (W) .AND. (f) →(目标寄存器 )
受影响的状态位:
说明: W 寄存器与 f 寄存器作逻辑与运算。 如
W 和 f 相加
0 ≤ f ≤ 31
d ∈ [ 0,1]
加。 如果 d等于 0,结果存放在 W寄存
器中。如果 d 为 1,结果存回寄存器 f。
立即数与 W 作逻辑与运算
标号
] ANDLW k
0 ≤ k ≤ 255
Z
逻辑与运算。结果存入 W 寄存器。
W 和 f 作逻辑与运算
标号
] ANDWF f,d
0 ≤ f ≤ 31
d ∈ [ 0,1]
Z
果 d 等于 0,结果存放在 W 寄存器中。
如果 d 为 1,结果存回寄存器 f。
BCF
语法: [ 标号] BCF f,b
操作数:
操作: 0 → (f<b>)
受影响的状态位: 无
说明: 将寄存器 f 中的位 b 清零。
BSF
语法: [
操作数:
操作: 1 → (f<b>)
受影响的状态位: 无
说明: 将寄存器 f 的位 b 置 1 。
BTFSC
语法: [
操作数:
操作: 如果 (f<b>) = 0 则跳过
受影响的状态位: 无
说明: 如果 f 寄存器中的位 b 为 1 ,则执
将 f 中的某位清零
0 ≤ f ≤ 31
0 ≤ b ≤ 7
将 f 中的某位置 1
标号
] BSF f,b
0 ≤ f ≤ 31
0 ≤ b ≤ 7
检测位,为 0 则跳过
标号
] BTFSC f,b
0 ≤ f ≤ 31
0 ≤ b ≤ 7
行下一条指令。
如果 f 寄存器中的位 b 为 0 ,则丢
弃下一条指令,转而执行一条 NOP
指令,从而使该指令成为双周期指
令。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 57 页
PIC12F508/509/16F505
BTFSS
语法: [
操作数:
操作: 如果 (f<b>)= 1 则跳过
受影响的状态位: 无
说明: 如果 f 寄存器中的位 b 为 1 ,则跳
CALL
语法: [
操作数:
操作: (PC)+ 1 → 栈顶,
受影响的状态位: 无
说明: 调用子程序。首先,将返回地址
检测 f 中的某位,为 1 跳过
标号
] BTFSS f,b
0 ≤ f ≤ 31
0 ≤ b < 7
过下一条指令。如果位 b 为 1 ,则
丢弃在当前指令执行时所取的下一
条指令,转而执行一条 NOP 指令,
从而使该指令成为双周期指令。
调用子程序
标号
] CALL k
0 ≤ k ≤ 255
k → PC<7:0>,
(STATUS<6:5>) → PC<10:9>
(PC+1 )压入堆栈。 8 位立即数地
址被装入 PC<7:0> 。将 STATUS<6:5>
装入 PC<10:9> 。 CALL 是双周期指
令。
CLRW
语法: [
操作数: 无
操作: 00h → (W)
受影响的状态位:
说明: W 寄存器被清零。全零标志位
CLRWDT
语法: [
操作数: 无
操作: 00h → WDT
受影响的状态位: TO 和 PD
说明: CLRWDT 指令复位 WDT 。如果将预
将 W 寄存器清零
标号
] CLRW
1 → Z
Z
(Z )置 1 。
清零看门狗定时器
标号
] CLRWDT
0 → WDT 预分频器 (如果分配)
1 → TO
1 → PD
分频器分配给 WDT 而不是
Timer0,该指令还将复位该预分频
器。 状态位 TO
和 PD 置 1 。
CLRF
语法: [
操作数:
操作: 00h → (f)
受影响的状态位:
说明: 寄存器 f 的内容被清零,Z 位置 1 。
将 f 清零
标号
] CLRF f
0 ≤ f ≤ 31
1 → Z
Z
COMF
语法: [
操作数:
操作: (f
受影响的状态位:
说明: 将寄存器 f 的内容取反。 如果 d 为
f 取反
标号
] COMF f,d
0 ≤ f ≤ 31
d ∈ [0,1]
) → ( 目标寄存器 )
Z
0,结果存入 W 寄存器。如果 d 为
1,结果存回寄存器 f 。
DS41236B_CN 第 58 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
DECF
语法: [ 标号] DECF f,d
操作数:
操作: (f) - 1 → ( 目标寄存器 )
受影响的状态位:
说明: 将寄存器 f 的内容减 1 。如果 d 为
DECFSZ
语法: [
操作数:
操作: (f) - 1 → ( 目标寄存器 ) ;
受影响的状态位: 无
说明: 将寄存器 f 的内容减 1 。 如果 d 为
f 减 1
0 ≤ f ≤ 31
d ∈ [0,1]
Z
0 ,结果存储到 W 寄存器。如果 d
为 1 ,结果存回寄存器 f 。
f 减 1 ,为 0 则跳过
标号
] DECFSZ f,d
0 ≤ f ≤ 31
d ∈ [0,1]
结果为 0 时跳过
0,结果存放在 W 寄存器中。如果
d 为 1 ,结果存回寄存器 f 。
如果结果为 0 ,则丢弃已经取指的
指令而执行一条 NOP 指令,使该指
令成为双周期指令。
INCF
语法: [
操作数:
操作: (f)+1 → ( 目标寄存器 )
受影响的状态位:
说明: 将寄存器 f 的内容增 1 。 如果 d 为
INCFSZ
语法: [
操作数:
操作: (f) +1 → ( 目标寄存器 ),结果为 0
受影响的状态位: 无
说明: 将寄存器 f 的内容增 1 。 如果 d 为
f 增 1
标号
] INCF f,d
0 ≤ f ≤ 31
d ∈ [0,1]
Z
0 ,结果存放在 W 寄存器中。如果
d 为 1 ,结果存回寄存器 f。
f 增 1 ,为 0 则跳过
标号
] INCFSZ f,d
0 ≤ f ≤ 31
d ∈ [0,1]
时跳过
0 ,结果存放在 W 寄存器中。如果
d 为 1 ,结果存回寄存器 f。
如果结果为 0 ,则丢弃已经取指的
指令而执行一条 NOP 指令,使该指
令成为双周期指令。
GOTO
语法: [
操作数:
操作: k → PC<8:0>
受影响的状态位: 无
说明: GOTO 是无条件跳转指令。 9 位立
无条件跳转
标号
] GOTO k
0 ≤ k ≤ 511
STATUS<6:5> → PC<10:9>
即数地址被装入 PC<8:0> 。 PC 高
位从 STATUS<6:5> 装入。 GOTO
是双周期指令。
IORLW
语法: [
操作数:
操作: (W) .OR. k → (W)
受影响的状态
位:
说明: 将 W 寄存器的内容与 8 位立即数 k
立即数与 W 作逻辑或运算
标号
] IORLW k
0 ≤ k ≤ 255
Z
作逻辑或运算。结果存入 W
寄存器。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 59 页
PIC12F508/509/16F505
IORWF
语法: [ 标号] IORWF f,d
操作数:
操作: (W) .OR.(f) → ( 目标寄存器 )
受影响的状态位:
说明: W 寄存器与 f 寄存器作逻辑或运
MOVF
语法: [
操作数:
操作: (f) → ( 目标寄存器 )
受影响的状态位:
说明: 根据 d 的状态,将寄存器 f 的内容
将 W 和 f 作逻辑或运算
0 ≤ f ≤ 31
d ∈ [0,1]
Z
算。 如果 d 为 0 ,结果存放在 W
寄存器中。如果 d 为 1 ,结果存回
寄存器 f 。
将 f 的内容送到目标寄存器
标号
] MOVF f,d
0 ≤ f ≤ 31
d ∈ [0,1]
Z
送入目标寄存器。 如果 d 为 0 ,目
标寄存器为 W 寄存器。如果 d 为
1 ,目标寄存器为寄存器 f 。由于状
态标志位 Z 受到指令结果的影响,
d = 1 可用于检测文件寄存器。
MOVWF
语法: [
操作数:
操作: (W) → (f)
受影响的状态位: 无
说明: 将 W 寄存器中的数据传送到寄存
NOP
语法: [
操作数: 无
操作: 空操作
受影响的状态位: 无
说明: 不执行任何操作。
将 W 的内容传送到 f
标号
] MOVWF f
0 ≤ f ≤ 31
器 f 。
空操作
标号
] NOP
MOVLW
语法: [
操作数:
操作: k → (W)
受影响的状态位: 无
说明: 将 8 位立即数 k 装入 W 寄存器。
将立即数传送到 W
标号
] MOVLW k
0 ≤ k ≤ 255
“无关位”被汇编为 0
。
OPTION
语法: [
操作数: 无
操作:
受影响的状态位: 无
说明: 将 W 寄存器的内容装载到选项寄
装载选项寄存器
标号
] OPTION
(W) → OPTION
存器。
DS41236B_CN 第 60 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
RETLW
语法: [
操作数:
操作: k → (W)
受影响的状态位: 无
说明: 将 8 位立即数 k 装入 W 寄存器。栈
RLF
语法: [
操作数:
操作: 参见下面的说明
受影响的状态位:
说明: 将寄存器 f 的内容连同进位标志位
返回并将立即数传送到 W
标号
] RETLW k
0 ≤ k ≤ 255
TOS → PC
顶内容 (返回地址)被装入程序计
数器。这是一条双周期指令。
对 f 执行带进位的循环左移
标号
]
0 ≤ f ≤ 31
d ∈ [0,1]
C
一起左移 1 位。 如果 d 为 0 ,结果
存放在 W 寄存器中。如果 d 为 1 ,
结果存回寄存器 f 。
RLF f,d
寄存器 fC
SLEEP
语法: [ 标号 ]
操作数: 无
操作: 00h → WDT ,
受影响的状态位: TO 、 PD 和 RBWUF
说明: 超时状态位 (TO )位置 1 。掉电状
SUBWF
语法: [
操作数:
操作: (f) – (W) → ( 目标寄存器 )
受影响的状态位: C 、 DC 和 Z
说明: 从寄存器 f 中减去 W 寄存器的内容
进入休眠模式
SLEEP
0 → WDT 预分频器,
标号
,
)清零。
SUBWF f,d
]
1 → TO
0 → PD
态位 (PD
影响 RBWUF 。
WDT 及其预分频器被清零。
振荡器停振,处理器进入休眠模
式。欲知有关休眠的详细信息,请
参见 第 7.9 节 “掉电模式 (休
眠)”。
f 减去 W
0 ≤ f ≤ 31
d ∈ [0,1]
(采用 2 的补码方法进行运算)。
如果 d 为 0 ,结果存储到 W 寄存
器。如果 d 为 1 ,结果存回寄存器
f 。
RRF
语法: [
操作数:
操作: 参见下面的说明
受影响的状态位:
说明: 将寄存器 f 的内容连同进位标志位
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 61 页
对 f 执行带进位的循环右移
标号
] RRF f,d
0 ≤ f ≤ 31
d ∈ [0,1]
C
一起右移 1 位。 如果 d 为 0 ,结果
存放在 W 寄存器中。如果 d 为 1 ,
结果存回寄存器 f 。
寄存器 f C
SWAPF
语法: [
操作数:
操作: (f<3:0>) → ( 目标寄存器 <7:4>) ,
受影响的状态位: 无
说明: 将寄存器 f 的高半字节和低半字节
将 f 中的两个半字节交换
标号
0 ≤ f ≤ 31
d ∈ [0,1]
(f<7:4>) → ( 目标寄存器 <3:0>)
交换。 如果 d 为 0 ,结果存放在 W
寄存器中。如果 d 为 1 ,结果存回
寄存器 f 。
SWAPF f,d
]
PIC12F508/509/16F505
TRIS
语法: [
操作数:
操作: (W) → TRIS 寄存器 f
受影响的状态位: 无
说明: 使用 W 寄存器的内容装载 TRIS 寄
XORLW
语法: [
操作数:
操作: (W).XOR. k → (W)
受影响的状态位:
说明: 将 W 寄存器的内容与 8 位立即数
装载 TRIS 寄存器
]
6
]
TRIS f
XORLW k
标号
f =
存器 f (f = 6 或 7 )。
立即数与 W 作逻辑异或运算
标号
0 ≤ k ≤ 255
Z
k 作逻辑异或运算。结果存入 W
寄存器。
XORWF
语法: [
操作数:
操作: (W) .XOR.(f) → (目标寄存器)
受影响的状态位:
说明: 将 W 寄存器的内容与 f 寄存器的
W 和 f 作逻辑异或运算
标号
0 ≤ f ≤ 31
d ∈ [0,1]
Z
内容作逻辑异或运算。 如果 d 等
于 0 ,结果存放在 W 寄存器中。
如果 d 为 1 ,结果存回寄存器 f 。
XORWF f,d
]
DS41236B_CN 第 62 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
9.0 开发支持
一系列硬件及软件开发工具对 PICmicro ®单片机提供支
持:
• 集成开发环境
- MPLAB
• 汇编器 / 编译器 / 链接器
- MPASM
- MPLAB C18 和 MPLAB C30 C 编译器
-MPLINK
MPLIB
- MPLAB ASM30 汇编器 / 链接器 / 库
• 模拟器
- MPLAB SIM 软件模拟器
• 仿真器
- MPLAB ICE 2000 在线仿真器
- MPLAB ICE 4000 在线仿真器
• 在线调试器
- MPLAB ICD 2
• 器件编程器
-PICSTART
- MPLAB PM3 器件编程器
- PICkit™ 2 开发编程器
• 低成本演示和开发板及评估工具包
®
IDE 软件
TM
汇编器
TM
目标链接器 /
TM
目标库管理器
®
Plus 开发编程器
9.1 MPLAB 集成开发环境软件
MPLAB IDE 软件为 8/16 位单片机市场提供了前所未有
的易于使用的软件开发平台。 MPLAB IDE 是基于
Windows®操作系统的应用软件,包括:
• 一个包含所有调试工具的图形界面
- 模拟器
- 编程器 (单独销售)
- 仿真器 (单独销售)
- 在线调试器 (单独销售)
• 具有彩色上下文代码显示的全功能编辑器
• 多项目管理器
• 内容可直接编辑的可定制式数据窗口
• 高级源代码调试
• 可视化器件初始化程序,便于进行寄存器的初始化
• 鼠标停留在变量上进行查看的功能
• 通过拖放把变量从源代码窗口拉到观察窗口
• 丰富的在线帮助
• 集成了可选的第三方工具,如 HI-TECH 软件 C 编
译器和 IAR C 编译器
MPLAB IDE 可以让您:
• 编辑源文件 (汇编语言或 C 语言)
• 点击一次即可完成汇编 (或编译)并将代码下载
到 PICmicro MCU 仿真器和模拟器工具中 (自动
更新所有项目信息)
• 可使用如下各项进行调试:
- 源文件 (汇编语言或 C 语言)
- 混合汇编语言和 C 语言
- 机器码
MPLAB IDE 在单个开发范例中支持使用多种调试工
具,包括从成本效益高的模拟器到低成本的在线调试
器,再到全功能的仿真器。这样缩短了用户升级到更加
灵活而功能更强大的工具时的学习时间。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 63 页
PIC12F508/509/16F505
9.2 MPASM 汇编器
MPASM 汇编器是全功能通用宏汇编器,适用于所有的
PICmicro MCU。
MPASM 汇编器可生成用于 MPLINK 目标链接器的可重
定位目标文件、Intel
使用状况和符号参考的 MAP 文件、包含源代码行及生
成机器码的绝对 LST 文件以及用于调试的 COFF 文件。
MPASM 汇编器具有如下特征:
• 集成在 MPLAB IDE 项目中
• 用户定义的宏可简化汇编代码
• 对多用途源文件进行条件汇编
• 允许完全控制汇编过程的指令
®
标准 HEX 文件、详细描述存储器
9.3 MPLAB C18 和 MPLAB C30
C 编译器
MPLAB C18 和 MPLAB C30 代码开发系统是完全的
ANSI C 编译器,分别适用于 Microchip 的 PIC18 系列
单片机及 dsPIC30F 、dsPIC33 和 PIC24 系列数字信号
控制器。这些编译器可提供其他编译器并不具备的强大
的集成功能和出众的代码优化能力,且使用方便。
为便于源代码调试,编译器提供了针对 MPLAB IDE 调
试器的优化符号信息。
9.4 MPLINK 目标链接器 /
MPLIB 目标库管理器
MPLINK 目标链接器包含了由 MPASM 汇编器、MPLAB
C18 C 编译器产生的可重定位目标。通过使用链接器脚
本中的指令,它还可链接预编译库中的可重定位目标。
MPLIB 目标库管理器管理预编译代码库文件的创建和修
改。当从源文件调用库中的一段子程序时,只有包含此
子程序的模块被链接到应用中。这样可使大型库在许多
不同应用中被高效地利用。
目标链接器 / 库管理器具有如下特征:
• 高效地连接单个的库而不是许多小文件
• 通过将相关的模块组合在一起来增强代码的可维护
性
• 只要列出、替换、删除和抽取模块,便可灵活地创
建库
9.5 MPLAB ASM30 汇编器、
链接器和库管理器
MPLAB ASM30 汇编器为 dsPIC30F 器件提供转换自符
号汇编语言的可重定位机器码。 MPLAB C30 C 编译器
使用该汇编器生成目标文件。汇编器产生可重定位目标
文件之后,可将这些目标文件存档,或与其他可重定位
目标文件和存档链接以生成可执行文件。该汇编器有如
下显著特征:
• 支持整个 dsPIC30F 指令集
• 支持定点数据和浮点数据
• 命令行界面
• 丰富的指令集
• 灵活的宏语言
• MPLAB IDE 兼容性
9.6 MPLAB SIM 软件模拟器
MPLAB SIM 软件模拟器在指令级对 PICmicro MCU 和
®
DSC 进行模拟,使得用户可以在 PC 主机的环
dsPIC
境下进行代码开发。对于任何给定的指令,用户均可对
数据区进行检查或修改,并通过各种触发机制来产生激
励。可以将各寄存器的情况记录在文件中,以便进行进
一步地运行时分析。跟踪缓冲器和逻辑分析器的显示使
模拟器还能记录和跟踪程序的执行、 I/O 的动作、大部
分的外设及内部寄存器的状况。
MPLAB SIM 软件模拟器完全支持使用 MPLAB C18 和
MPLAB C30 C 编译器以及 MPASM和 MAPLAB ASM30
汇编器的符号调试。该软件模拟器可用于在硬件实验室
环境外灵活地开发和调试代码,是一款完美且经济的软
件开发工具。
DS41236B_CN 第 64 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
9.7 MPLAB ICE 2000 高性能在线仿真器
MPLAB ICE 2000 在线仿真器旨在为产品开发工程师提
供一整套用于 PICmicro 单片机的设计工具。 MPLAB
ICE 2000 在线仿真器的软件控制由 MPLAB 集成开发环
境平台提供,它允许在单一环境下进行编辑、编译、下
载以及源代码调试。
MPLAB ICE 2000 是全功能仿真器系统,它具有增强的
跟踪、触发和数据监控功能。处理器模块可插拔,使系
统可轻松进行重新配置以适应各种不同处理器的仿真需
要。MPLAB ICE 2000 在线仿真器的架构允许对其进行
扩展以支持新的 PICmicro 单片机。
MPLAB ICE 2000 在线仿真器系统设计为一款实时仿真
系统,该仿真系统具备通常只有昂贵的开发工具中才有
的高级功能。选择 PC 平台和 Microsoft
位操作系统可使这些功能在一个简单而统一的应用中得
到很好的利用。
®
Windows® 32
9.8 MPLAB ICE 4000 高性能在线仿真器
MPLAB ICE 4000 在线仿真器旨在为产品开发工程师提
供一整套用于高端 PICmicro MCU 和 dsPIC DSC 的设
计工具。 MPLAB ICE 4000 在线仿真器的软件控制由
MPLAB 集成开发环境平台提供,它允许在单一环境下
进行编辑、编译、下载以及源代码调试。
MPLAB ICE 4000 是高级的仿真系统,除具备 MPLAB
ICE 2000 的所有功能外,它还增加了适用于 dsPIC30F
和 PIC18XXXX 器件的仿真存储容量以及高速性能。该
仿真器的先进特性包括复杂触发和定时功能及高达 2 Mb
的仿真存储容量。
MPLAB ICE 4000 在线仿真系统设计为一款实时仿真系
统,该仿真系统具备通常只有在更加昂贵的开发工具中
才有的高级功能。选择 PC 平台和 Microsoft Windows
32 位操作系统可使这些功能在一个简单而统一的应用
程序中得以很好的利用。
9.9 MPLAB ICD 2 在线调试器
Microchip 的在线调试器 MPLAB ICD 2 是一款功能强大
而成本低廉的运行时开发工具,通过 RS-232 或高速
USB 接口与 PC 主机相连。该工具基于闪存 PICmicro
MCU,可用于开发本系列及其他 PICmicro MCU 和
dsPIC DSC。 MPLAB ICD 2 使用了闪存器件中内建的
在线调试功能。该功能结合 Microchip 的在线串行编程
(In-Circuit Serial Programming
在 MPLAB 集成开发环境的图形用户界面上提供成本效
益很高的在线闪存调试。这使设计人员可通过设置断
点、单步运行以及对变量、CPU 状态以及外设寄存器进
行监视的方法实现源代码的开发和调试。其全速运行特
性可对硬件和应用进行实时测试。MPLAB ICD 2还可用
作某些 PICmicro 器件的开发编程器。
TM
, ICSPTM)协议,可
9.10 MPLAB PM3 器件编程器
MPLAB PM3 器件编程器是一款通用的、符合 CE 规范
的器件编程器,其可编程电压设置在 VDDMIN 和 VDDMAX
之间时可靠性最高。它有一个用来显示菜单和错误信息
的大 LCD 显示器(128 x 64 ),以及一个支持各种封装
类型的可拆卸模块化插槽装置。编程器标准配置中带有
一根 ICSP
编程器不必与 PC 相连即可对 PICmicro 器件进行读取、
验证和编程。在该模式下它还可设置代码保护。MPLAB
PM3 通过 RS-232 或 USB 电缆连接到 PC 主机上。
MPLAB PM3 具备高速通信能力以及优化算法,可对存
储器很大的器件进行快速编程,它还采用 SD/MMC 卡
用作文件存储及数据安全应用。
TM
电缆。在单机模式下, MPLAB PM3 器件
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 65 页
PIC12F508/509/16F505
9.11 PICSTART Plus 开发编程器
PICSTART Plus 开发编程器是一款易于使用而成本低廉
的原型编程器。它通过 COM (RS-232 )端口与 PC 相
连。 MPLAB 集成开发环境软件使得该编程器的使用简
便、高效。PICSTART Plus 开发编程器支持采用 DIP 封
装的大部分 PICmicro 器件,其引脚数最多可达 40 个。
引脚数更多的器件,如 PIC16C92X 和 PIC17C76X ,可
通过连接一个转接插槽来获得支持。PICSTART Plus 开
发编程器符合 CE 规范。
9.12 PICkit 2 开发编程器
PICkit™ 2 开发编程器是一个低成本编程器,通过其易
于使用的接口可对众多 Microchip 的低档、中档和
PIC18F 系列闪存单片机进行编程。PICkit 2 入门工具包
中包含一个有实验布线区的开发板、十二堂系列课程、
软件和 HI-TECH 的 PICC™ Lite C 编译器,有助于用户
快速掌握PIC
chip 功能强大的中档闪存系列单片机进行编程、评估和
应用开发,提供了所需的一切。
®
单片机的使用。这一工具包为使用 Micro-
9.13 演示、开发和评估板
有许多演示、开发和评估板可用于各种 PICmicro MCU
和 dsPIC DSC ,实现对全功能系统的快速应用开发。大
多数的演示、开发和评估板都有实验布线区,供用户添
加定制电路;还有应用固件和源代码,用于测试和修
改。
这些板支持多种功能部件,包括 LED 、温度传感器、开
关、扬声器、 RS-232 接口、 LCD 显示器、电位计和附
加 EEPROM 存储器。
演示和开发板可用于教学环境,在实验布线区设计定制
电路,从而掌握各种单片机应用。
除了 PICDEM™ 和 dsPICDEM™ 演示/ 开发板系列电路
外, Microchip 还有一系列评估工具包和演示软件, 适
用于模拟滤波器设计、 K
CAN 、 IrDA®、 PowerSmart ®电池管理、 SEEVAL ®评
估系统、 Σ−∆ ADC 、流速传感器,等等。
有关演示、开发和评估工具包的完整列表,请查阅
Microchip 公司网页 (www.microchip.com )以及最新
“
Product Selector Guide
的
(DS00148 )。
®
EEL OQ
数据安全产品 IC 、
(产品选型指南) ”
DS41236B_CN 第 66 页 初稿 2006 Microchip Technology Inc.
10.0 电气特性
PIC12F508/509/16F505
绝对最大值
环境温度...............................................................................................................................................-40°C 至 +125°C
储存温度...............................................................................................................................................-65°C 至 +150°C
DD 相对于 VSS 的电压................................................................................................................................. 0 至 +6.5V
V
MCLR
其他引脚相对于 V
总功耗
SS 引脚的最大输出电流....................................................................................................................................200 mA
V
DD 引脚的最大输入电流 ...................................................................................................................................150 mA
V
输入钳位电流 IIK (VI < 0 或 VI > VDD ) ............................................................................................................ ±20 mA
输出钳位电流 I
任一 I/O 引脚的最大输出灌电流 ........................................................................................................................... 25 mA
任一 I/O 引脚的最大输出拉电流 ........................................................................................................................... 25 mA
I/O 端口的最大输出拉电流 ...................................................................................................................................75 mA
I/O 端口的最大输出灌电流 ...................................................................................................................................75 mA
注 1 : 功耗按如下公式计算: P
† 注意: 如果器件的工作条件超过 “绝对最大值”,就可能会对器件造成永久性损坏。上述值仅为运行条件极大
值,我们建议不要使器件在该规范规定的范围以外运行。器件长时间工作在最大值条件下,其稳定性会受到影响。
(†)
相对于 VSS 的电压 ........................................................................................................................... 0 至 +13.5V
SS 的电压 .........................................................................................................-0.3V 至 (VDD + 0.3V)
(1 )
........................................................................................................................................................ 800 mW
OK (VO < 0 或 VO > V DD ) ..................................................................................................... . ± 20 mA
DIS = V DD x {I DD – ∑ I OH} + ∑ {(V DD – V OH) x I OH} + ∑(VOL x I OL)
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 67 页
PIC12F508/509/16F505
图 10-1: PIC12F508/509/16F505 电压—频率关系图 ( -40° C ≤ T A ≤ +125 °C)
6.0
5.5
5.0
4.5
V
DD
( V)
4.0
3.5
3.0
2.5
2.0
0
41 0
频率(MHz )
20
25
图 10-2 : 最大振荡频率表
LP
XT
INTOSC
EXTRC
振荡模式
EC
HS
0
200 kHz
4 MHz 20 MHz
频率(MHz )
DS41236B_CN 第 68 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
10.1 直流特性: PIC12F508/509/16F505 (工业级)
直流特性
参数
编号
D001 V
符号 特性 最小值 典型值
DD
D002 VDR
D003 V
POR
D004 SVDD
D010 I
DD
电源电压
RAM 数据保持电压
VDD 起始电压确保能
够产生上电复位信号
V DD 上升速率确保能
够产生上电复位信号
供电电流
(3)
(2)
标准工作条件 (除非另外声明)
工作温度 -40 °C ≤ T
(1)
最大值 单位 条件
2.0 5.5 V
-
-
0.05*
-
-
-
-
1.5*
SS
V
-
-
--
170
0.4
1.7
15
TBD
TBD
TBD
TBD
V
V
V/ms
µ A
mA
mA
µ A
A ≤ +85° C (工业级)
请参见图 10-1 。
器件处于休眠模式
如需详细信息,请参见第 7.4 节
“直流特性” 。
如需详细信息,请参见第 7.4 节
“直流特性”。
OSC = 4 MHz, V DD = 2.0V
F
FOSC = 10 MHz, VDD = 3.0V
F
OSC = 20 MHz, V DD = 5.0V
FOSC = 32 kHz,VDD = 2.0V,禁 止
WDT
D020 I
D022 ∆I
PD
WDT
掉电电流
WDT 电流
(5)
(5)
-
-
0.1 TBD µ AV
1.0 TBD µ AV
DD = 2.0V
DD = 2.0V
图注: TBD = 待定。
* 这些参数仅为特征值,未经测试。
注 1: “典型值”栏中的数据均为 25 °C 条件下的值。这类数据仅供设计参考,未经测试。
2: 该电压是休眠模式下保证不丢失 RAM 数据的最小 VDD 。
3: 供电电流主要随工作电压和频率而变化。其他因素,如总线负载、振荡器类型、总线速率、内部代码执行模式和
温度也会影响电流消耗。
a) 在正常的工作模式下,所有 I
DD 测量的测试条件为:
OSC1 = 外部方波,满幅;所有 I/O 引脚均为三态,拉至 VSS , T0CKI = VDD, MCLR = VDD,根据要求使能
或禁止 WDT。
b) 除器件处于休眠模式外,待机电流测量的测试条件与上面相同。
4 : 该电流不包括流经 R
EXT 的电流 (仅在 EXTRC 模式中)。可以用以下公式来估算流经该电阻的电流:
I = VDD/2R EXT (mA),其中 REXT 的单位是 kΩ 。
5 : 休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚都处于高阻态并且连接到
DD 或 V SS 时测得的。
V
(4)
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 69 页
PIC12F508/509/16F505
10.2 直流特性: PIC12F508/509/16F505 (扩展级)
直流特性
参数
编号
D001 V
符号 特性 最小值 典型值
DD
D002 VDR
D003 V
POR
D004 SVDD
D010 I
DD
电源电压
RAM 数据保持电压
VDD 起始电压确保能
够产生上电复位信号
V DD 上升速率确保能
够产生上电复位信号
供电电流
(3)
(2)
标准工作条件 (除非另外声明)
工作温度 -40 °C ≤ T
(1)
最大值 单位 条件
2.0 5.5 V
-
-
0.05*
-
-
-
-
1.5*
SS
V
-
-
--
170
0.4
1.7
15
TBD
TBD
TBD
TBD
V/ms
µ A
mA
mA
µ A
A ≤ +125° C (扩展级)
请参见图 10-1 。
V
器件处于休眠模式
V
如需详细信息,请参见第 7.4 节
“直流特性”。
如需详细信息,请参见第 7.4 节
“直流特性”。
OSC = 4 MHz, V DD = 2.0V
F
FOSC = 10 MHz, VDD = 3.0V
F
OSC = 20 MHz, V DD = 5.0V
FOSC = 32 kHz, VDD = 2.0V, 禁
止 WDT
D020 I
D022 ∆I
PD
WDT
掉电电流
WDT 电流
(5)
(5)
-
-
0.1 TBD µ AV
1.0 TBD µ AV
DD = 2.0V
DD = 2.0V
图注: TBD = 待定。
* 这些参数仅为特征值,未经测试。
注 1: “典型值”栏中的数据均为 25 °C 条件下的值。这类数据仅供设计参考,未经测试。
2: 该电压是休眠模式下保证不丢失 RAM 数据的最小 VDD 。
3: 供电电流主要随工作电压和频率而变化。其他因素,如总线负载、振荡器类型、总线速率、内部代码执行模式和
温度也会影响电流消耗。
a) 在正常的工作模式下,所有 I
DD 测量的测试条件为:
OSC1 = 外部方波,满幅;所有 I/O 引脚均为三态,拉至 VSS , T0CKI = VDD, MCLR = V DD,根据要求使能
或禁止 WDT。
b) 除器件处于休眠模式外,待机电流测量的测试条件与上面相同。
4 : 该电流不包括流经 R
DD/2R EXT (mA),其中 R EXT 的单位是 kΩ 。
I = V
EXT 的电流 (仅在 EXTRC 模式中)。可以用以下公式来估算流经该电阻的电流:
5 : 休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚都处于高阻态并且连接到
DD 或 V SS 时测得的。
V
(4)
DS41236B_CN 第 70 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 10-1 : 直流特性:PIC12F508/509/16F505 (工业级和扩展级)
标准工作条件 (除非另外声明)
直流特性
工作温度 -40° C ≤ T
直流规范中说明了工作电压 V
参数
符号 特性 最小值 典型值 † 最大值 单位 条件
编号
IL
V
输入低电压
I/O 端口:
D030
带 TTL 缓冲器
D030A Vss
D031
D032
D033
D033
D033
V
IH
带施密特触发缓冲器
MCLR
, T0CKI
OSC1 (在 EXTRC 模式下)
OSC1 (在 HS 下)
OSC1 (在 XT 和 LP 模式下)
输入高电压
Vss
Vss
Vss
Vss
Vss
Vss
-
0.15 V
-
0.15 V
-
0.15 V
-
0.15 V
-
-
-
I/O 端口: -
D040
带 TTL 缓冲器
D040A 0.25 V
D041
D042
D043
D043
D043
D070 I
PUR
IIL
D060
D061 GP3/RB3/MCLR
D061A GP3/RB3/MCLRI
带施密特触发缓冲器
MCLR, T0CKI
OSC1 (在 EXTRC 模式下)
OSC1 (在 HS 下)
OSC1 (在 XT 和 LP 模式下)
GPIO 弱上拉电流
输入泄漏电流
(4)
(2), (3)
I/O 端口 - -
(5)
I
(6)
D063 OSC1
2.0
+ 0.8 VDD
0.85 V
0.85 V
0.85 V
0.7 V
1.6
DD
DD
DD
DD
DD
-
-
-
-
-
-
-
TBD 250 TBD µA
--
--
--
输出低电压
D080
D080A
D083 OSC2
D083A
I/O 端口 /CLKOUT --
--
--
--
输出高电压
D090
I/O 端口 /CLKOUT
D090A V
D092 OSC2 V
D092A V
(3)
VDD - 0.7
DD - 0.7
DD - 0.7
DD - 0.7
--VI
--VI
--VI
--VI
输出引脚上的容性负载规范
D100
D101
OSC2 引脚 - -
所有 I/O 引脚和 OSC2 引脚 - -
图注: TBD = 待定。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V 、 25°C 条件下的值。这些参数仅供设计参考,未经测试。
注 1 : 在 EXTRC 振荡器配置中, OSC1/CLKIN 引脚被配置为施密特触发器输入。在 RC 模式下,建议不要使用外部时钟驱动 PIC12F508/509/
16F505 系列器件。
2: MCLR
3: 不包括 GP3/RB3 。欲知有关 GP3/RB3 的信息,请参见参数 D061 和 D061A。
4: 此规范适用于 GP3/RB3/MCLR
5: 此规范适用于 GP3/RB3/MCLR
引脚上的泄漏电流主要取决于施加在该引脚上的电压值。规定电压值为正常工作条件下的电压值。在不同的输入电压下可能测得
更高的泄漏电流。
被配置为 MCLR 或被配置为使能内部上拉的输入引脚的情况。
被配置为禁止上拉的输入引脚的情况。 MCLR 电路的泄漏电流高于标准 I/O 逻辑。
A ≤ +85° C (工业级)
-40° C ≤ T
A ≤ +125° C (扩展级)
DD 的范围。
0.8V V 4.5 ≤ Vdd ≤ 5.5V
DD V
DD V
DD V
DD V
.3 V
DD V
0.3 V
V
DD V4 . 5 ≤ Vdd ≤ 5.5V
DD V
V
DD V
V
DD V
V
DD V
V
DD V
V
V
DD V
± 1 µA
± 30 µAV s s ≤ V
± 5 µAV s s ≤ V
± 5 µA
0.6 V
0.6 V
0.6 V
0.6 V
15 pF
其他情况
(注 1 )
(注 1 )
(注 1 )
其他情况
整个 V
DD 范围
(注 1 )
(注 1 )
V
DD = 5V, V PIN = V SS
Vss ≤ V
PIN ≤ V DD,引脚处于高阻态
PIN ≤ V DD
PIN ≤ V DD
Vss ≤ V
PIN ≤ V DD, XT、 HS 和 LP 振荡器配置
I
OL = 8.5 mA, V DD = 4.5V, -40°C 至 +85°C
I
OL = 7.0 mA, V DD = 4.5V, -40°C 至 +125°C
I
OL = 1.6 mA, V DD = 4.5V, -40°C 至 +85°C
I
OL = 1.2 mA, V DD = 4.5V, -40°C 至 +125°C
OH = -3.0 mA, V DD = 4.5V, -40°C 至 +85°C
OH = -2.5 mA, V DD = 4.5V, -40°C 至 +125°C
OH = -1.3 mA, V DD = 4.5V, -40°C 至 +85°C
OH = -1.0 mA, V DD = 4.5V, -40°C 至 +125°C
当外部时钟用于驱动 OSC1 时处于 XT、 HS 和
LP 模式
50 pF
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 71 页
PIC12F508/509/16F505
表 10-2: 上拉电阻范围—— PIC12F508/509/16F505
VDD ( V)温 度 (°C) 最小值 典型值 最大值 单位
RB0/RB1/RB4
2.0 -40 TBD TBD TBD Ω
25 TBD TBD TBD Ω
85 TBD TBD TBD Ω
125 TBD TBD TBD Ω
5.5 -40 TBD TBD TBD Ω
25 TBD TBD TBD Ω
85 TBD TBD TBD Ω
125 TBD TBD TBD Ω
RB3
2.0 -40 TBD TBD TBD Ω
25 TBD TBD TBD Ω
85 TBD TBD TBD Ω
125 TBD TBD TBD Ω
5.5 -40 TBD TBD TBD Ω
25 TBD TBD TBD Ω
85 TBD TBD TBD Ω
125 TBD TBD TBD Ω
图注: TBD = 待定。
* 这些参数仅为特征值,未经测试。
DS41236B_CN 第 72 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
10.3 时序参数符号和负载条件—— PIC12F508/509/16F505
可根据以下任一格式创建时序参数符号:
1. TppS2ppS
2. TppS
T
F 频率 T 时间
小写描述符 (pp )及其含义:
pp
2 到
ck CLKOUT
cy 周期时间
drt 器件复位定时器
io I/O 端口 wdt 看门狗定时器
大写字母及其意义:
S
F 下降 P 周期
H 高 R 上升
I 无效 (高阻态) V 有效
L 低 Z 高阻态
mc MCLR
osc 振荡器
os OSC1
t0 T0CKI
图 10-3 : 负载条件—— PIC12F508/509/16F505
图注:
VSS
CL
CL = 50 pF 适用于除 OSC2 外的所有引脚,
引脚
图 10-4 : 外部时钟时序—— PIC12F508/509/16F505
Q4
OSC1
Q1 Q2
13 3
15 pF 适用于当使用外部时钟驱动
OSC1 时, XT、 HS 或 LP 模
式下的 OSC2。
Q3 Q4 Q1
44
2
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 73 页
PIC12F508/509/16F505
表 10-3 : 外部时钟时序要求——PIC12F508/509/16F505
标准工作条件 (除非另外声明)
交流特性
工作温度 -40 °C ≤ T
-40° C ≤ T
第 10.1 节 “直流特性”说明了工作电压 VDD 范围。
参数
编号
1A F
1T
2T
3
符号 特性 最小值 典型值
OSC
OSC
CY
To sL ,
To sH
4
To sR ,
To sF
外部 CLKIN 频率
振荡频率
(2)
外部 CLKIN 周期
振荡周期
(2)
(2)
(2)
指令周期
时钟输入信号
(OSC1 )的低电平
或高电平时间
时钟输入信号
(OSC1 )的上升或
下降时间
DC
DC
DC
--
0.1
4
--
250
50
5
250
250
50
5
200 4/F
50*
2*
10*
--
--
--
(1)
最大值 单位 条件
-
-
-
4M H z
20 MHz
200 kHz
4M H z
-
-
4M H z
20 MHz
200 kHz
--
--
--
--
-
-
10,000 ns
250 ns
--
OSC
-
--
--
--
25* ns
50* ns
15* ns
* 这些参数仅为特性值,未经测试。
注 1 : 除非另外声明,否则 “典型值”栏中的数据均为 5.0V 、 25°C 条件下的值。这些参数仅供设计参考,未经
测试。
2 : 所有规范值均基于器件在标准工作条件下执行代码时对应特定振荡器类型的特征数据。超过这些规范值可
能导致振荡器运行不稳定和 / 或电流消耗超出预期。当使用了外部时钟输入时,所有器件的 “最大值”周
期时限为 “直流”(没有时钟)。
A ≤ +85° C (工业级),
A ≤ +125° C (扩展级)
XT 振荡模式
HS 振荡模式 (仅 PIC16F505)
LP 振荡模式
EXTRC 振荡模式
XT 振荡模式
HS 振荡模式 (仅 PIC16F505)
LP 振荡模式
ns
XT 振荡器模式
ns
HS 振荡器模式 (仅 PIC16F505)
µ s
LP 振荡器模式
ns
EXTRC 振荡模式
XT 振荡模式
HS 振荡模式 (仅 PIC16F505)
µ s
LP 振荡模式
ns
ns
XT 振荡器
µ s
LP 振荡器
ns
HS 振荡器 (仅 PIC16F505)
XT 振荡器
LP 振荡器
HS 振荡器 (仅 PIC16F505)
DS41236B_CN 第 74 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 10-4 : 经过校准的内部 RC 频率—— PIC12F508/509/16F505
标准工作条件 (除非另外声明)
交流特性
参数
编号
F10 F
图注: TBD = 待定
注 1 :为了确保振荡频率的容差,必须尽量靠近器件在 V
符号 特性
OSC
经过校准的内部 INTOSC
(1)
频率
* 这些参数仅为特征值,未经测试。
† 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅供设计参考,未经测
试。
0.01 µF 的电容。
图 10-5 : I/O 时序—— PIC12F508/509/16F505
工作温度 -40 °C ≤ T
-40 ° C ≤ T A ≤ +125 ° C (扩展级)
第 10.1 节 “直流特性”说明了工作电压 VDD 范围。
频率
容差
± 1% 7.92 4.00 8.08 MHz
± 2% 7.84 4.00 8.16 MHz 2.5V ≤ VDD ≤ 5.5V
± 5% 7.60 4.00 8.40 MHz 2.0V ≤ VDD ≤ 5.5V
最小值 典型值 最大值 单位 条件
DD 和 V SS 之间连接去耦电容。建议并联一个 0.1 µF 和
A ≤ +85° C (工业级),
V
DD 和温度待定
0° C ≤ TA ≤ +85° C
-40° C ≤ T
-40° C ≤ T
A ≤ +85°C (工业级)
A ≤ +125°C (扩展级)
17
Q1
20, 21
19
18
Q4
OSC1
I/O 引脚
(输入)
I/O 引脚
(输出)
注: 所有测试都必须在规定 I/O 引脚和 CLKOUT 上的电容负载为 50 pF 的条件下进行 (参见数据手册)。
旧值
Q2 Q3
新值
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 75 页
PIC12F508/509/16F505
表 10-5 : 时序要求——PIC12F508/509/16F505
标准工作条件 (除非另外声明)
交流特性
工作温度 -40 °C ≤ T
-40° C ≤ T
第 10.1 节 “直流特性”说明了工作电压 VDD 范围。
参数
编号
17 TOS H2IO V
18 TOS H2IO I
19 TIO V2OS H
20 T
21 T
符号 特性 最小值 典型值
OSC1 ↑(Q1 周期)到端口输出有效的时间
OSC1 ↑(Q2 周期)到端口输入无效的时间 ( I/O 输入
保持时间)
(2)
端口输入有效至 OSC1 ↑ 的时间 ( I/O 输入建立时间)
IOR
IOF
端口输出上升时间
端口输出下降时间
(3)
(3)
图注: TBD = 待定。
* 这些参数仅为特征值,未经测试。
** 这些参数为设计目标,未经测试。
注 1 : 除非另外声明,否则 “典型值”栏中的数据均为 5.0V 、 25°C 条件下的值。这些参数仅供设计参考,未经测
试。
2: 测量在 EXTRC 模式下进行。
3: 负载条件请参见图 10-3 。
A ≤ +85° C (工业级)
A ≤ +125° C (扩展级)
(2),(3)
(1)
--
TBD
TBD
-
-
--
--
10 25** ns
10 25** ns
最大值 单位
100* ns
ns
ns
图 10-6 : 复位、看门狗定时器和器件复位定时器时序—— PIC12F508/509/16F505
VDD
MCLR
30
内部
上电复位
DRT
(2)
延时
内部
复位
看门狗
定时器
复位
I/O 引脚
注 1 : 必须通过软件使能输出驱动器来使 I/O 引脚不处于高阻态。
(1)
2: 只能在 XT 、 LP 和 HS (PIC16F505 )模式下执行 MCLR
32
34
32
31
34
或 WDT 复位。
32
DS41236B_CN 第 76 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
表 10-6 : 复位、看门狗定时器和器件复位定时器时序—— PIC12F508/509/16F505
标准工作条件 (除非另外声明)
交流特性
工作温度 -40 °C ≤ T
-40° C ≤ T
第 10.1 节 “直流特性”说明了工作电压 VDD 范围。
参数
编号
符号 特性 最小值 典型值
30 TMC L
31 T
32 T
34 T
WDT
DRT
IOZ
MCLR
脉冲宽度 (低电平)
看门狗定时器超时周期
(无预分频器)
器件复位定时周期
MCLR
低电平引起的 I/O 高阻态
(2)
2000*
9*
9*
9*
9*
--
(1)
最大值 单位 条件
--
18*
18*
18*
18*
30*
40*
30*
40*
2000* ns
时间
* 这些参数仅为特征值,未经测试。
注 1 : 除非另行声明,否则 “典型值”栏中的数据均为 5.0V 、 25°C 条件下的值。这些参数仅供设计参考,未经测试。
A ≤ +85° C (工业级)
A ≤ +125° C (扩展级)
ns V
ms
ms
ms
ms
DD = 5.0V
VDD = 5.0V (工业级)
V
DD = 5.0V (扩展级)
V
DD = 5.0V (工业级)
DD = 5.0V (扩展级)
V
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 77 页
PIC12F508/509/16F505
图 10-7: TIMER0 时钟时序—— PIC12F508/509/16F505
T0CKI
40 41
42
表 10-7 : TIMER0 时钟要求—— PIC12F508/509/16F505
标准工作条件 (除非另外声明)
交流特性
参数
编号
40 Tt0H
41 Tt0L
42 Tt0P
注 1 : 除非另行声明,否则 “典型值”栏中的数据均为 5.0V 、 25°C 条件下的值。这些参数仅供设计参考,未经测试。
符号 特性 最小值
T0CKI 高电平脉冲宽 度无预分频器
T0CKI 低电平脉冲宽 度无预分频器
T0CKI 周期 20 或 T
* 这些参数仅为特征值,未经测试。
工作温度 -40°C ≤ T
-40° C ≤ T
第 10.1 节 “直流特性”说明了工作电压 VDD 范围。
0.5 T
CY + 20*
有预分频器
有预分频器
10*
0.5 T
CY + 20*
10*
CY + 40* N --
A ≤ +85° C (工业级)
A ≤ +125° C (扩展级)
典型值
最大值 单位 条件
(1)
--
--
--
--
ns
ns
ns
ns
ns
取较大的值。
N = 预分频值
(1 , 2, 4 , ..., 256)
DS41236B_CN 第 78 页 初稿 2006 Microchip Technology Inc.
11.0 直流和交流特性图表
当前没有图表。
PIC12F508/509/16F505
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 79 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 80 页 初稿 2006 Microchip Technology Inc.
12.0 封装信息
12.1 封装标识信息
PIC12F508/509/16F505
8 引脚 PDIP
XXXXXXXX
XXXXXNNN
YYWW
8 引脚 SOIC(0.150”)
XXXXXXXX
XXXXYYWW
NNN
8 引脚 MSOP
XXXXXX
YWWNNN
示例
12F508-I
/P017
0410
示例
12F509-I
/SN0410
017
示例
12F509
0431017
图注: XX...X 客户信息
Y 年份代码 (日历年的最后一位数字)
YY 年份代码 (日历年的最后两位数字)
WW 星期代码 (一月一日的星期代码为 “ 01”)
NNN 以字母数字排序的追踪代码
3
e
* 表示无铅封装。JEDEC无铅标志( )标示于此种封装 的外
注: Microchip 元器件编号如果无法在同一行内完整标注,将换行标出,因此会限制
表示客户信息的字符数。
* 标准 PICmicro 器件标识由 Microchip 元器件编号、年份代码、星期代码和追踪代码组成。若 PICmicro 器
件标识超出上述内容, 需支付一定的附加费用。请向当地的 Microchip 销售办事处了解确认。对于 QTP 器
件,任何特殊标记的费用都已包含在 QTP 价格中。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 81 页
雾锡 (Matte Tin , Sn )的 JEDEC 无铅标志
3
e
上。
3
e
PIC12F508/509/16F505
12.1 封装标识信息 (续)
14 引脚 PDIP(300mil)
XXXXXXXXXXXXXX
XXXXXXXXXXXXXX
YYWWNNN
14 引脚 SOIC(150mil)
XXXXXXXXXXX
XXXXXXXXXXX
YYWWNNN
14 引脚 TSSOP(150mil)
XXXXXXXX
YYWW
NNN
示例
PIC16F505-I/PG
0215
0410017
示例
PIC16F505-E
/SLG0125
0431017
示例
16F505-I
0431
017
DS41236B_CN 第 82 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
8 引脚塑封双列直插式封装 ( P)—— 300 mil ( PDIP)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
E1
D
2
n
E
β
eB
引脚数
引脚间距
顶端到固定面高度 A .140 .155 .170 3.56 3.94 4.32
塑模封装厚度 A2 .115 .130 .145 2.92 3.30 3.68
塑模底面到固定面高度 A1 .015 0.38
肩到肩宽度 E .300 .313 .325 7.62 7.94 8.26
塑模封装宽度
总长度 D .360 .373 .385 9.14 9.46 9.78
引脚尖到固定面高度 L .125 .130 .135 3.18 3.30 3.43
引脚厚度
引脚上部宽度 B1 .045 .058 .070 1.14 1.46 1.78
引脚下部宽度 B .014 .018 .022 0.36 0.46 0.56
总排列间距 §
塑模顶端锥度
塑模底端锥度
* 控制参数
§ 重要特性
注 :
尺寸 D 和 E1 不包括塑模毛边或凸起。塑模每侧的毛边或突起不得超过 0.010 英寸(0.254 毫米)。
等同于 JEDEC 号 :MS-001
图号 : C04-018
尺寸范围 最小 正常 最大 最小 正常 最大
1
A
c
单位 英寸 * 毫米
n
p
E1
c
eB
α
β
.240 .250 .260 6.10 6.35 6.60
.008 .012 .015 0.20 0.29 0.38
.310 .370 .430 7.87 9.40 10.92
A1
B1
B
88
.100 2.54
51 01 5 51 01 5
51 01 5 51 01 5
α
A2
L
p
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 83 页
PIC12F508/509/16F505
8 引脚窄条塑封小外形封装 ( SN)—— 150 mil ( SOIC)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
E
E1
p
D
2
B
引脚数
引脚间距
塑模封装厚度
底脚倾斜角度
引脚厚度
塑模顶端锥度
塑模底端锥度
* 控制参数
§ 重要特性
注 :
尺寸 D1 和 E1 不包括塑模毛边或突起。塑模每侧的毛边或突起不得超过 0.010 英寸(0.254 毫米)。
等同于 JEDEC 号 :MS-001
图号 : C04-057
n
45°
c
β
n
p
A2
φ
c
α
β
1
h
A
φ
L
048048
A1
毫米 英寸 *单位
α
A2
最大 正常 最小 最大 正常 最小 尺寸范围
8 8
1.27 .050
1.75 1.55 1.35 .069 .061 .053 A总高度
1.55 1.42 1.32 .061 .056 .052
0.25 0.18 0.10 .010 .007 .004 A1悬空间隙 §
6.20 6.02 5.79 .244 .237 .228 E总宽度
3.99 3.91 3.71 .157 .154 .146 E1塑模封装宽度
5.00 4.90 4.80 .197 .193 .189 D总长度
0.51 0.38 0.25 .020 .015 .010 h倒棱距离
0.76 0.62 0.48 .030 .025 .019 L底脚长度
0.25 0.23 0.20 .010 .009 .008
0.51 0.42 0.33 .020 .017 .013 B引脚宽度
15 12 0 15 12 0
15 12 0 15 12 0
DS41236B_CN 第 84 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
8 引脚塑封微型封装 ( MS)( MSOP)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
%
%
S
'
%
Q
A
$
F
)
B
ԡ
ሎᇌ㣗ೈ
ᓩ㛮᭄
ᓩ㛮䯈䎱
ᘏ催ᑺ
ลᇕ㺙ᑺ
ぎ䯈䱭
ᘏᆑᑺ
ลᇕ㺙ᆑᑺ
ᘏ䭓ᑺ
ᑩ䎇䭓ᑺ
ᑩ䎇ؒ᭰㾦
ᓩ㛮ᑺ
ᓩ㛮ᆑᑺ
ลϞ䚼䫹ᑺ
ลϟ䚼䫹ᑺ
ࠊখ᭄
⊼˖
ሎᇌ'( ϡࣙᣀลⱘ↯䖍さ䍋DŽลⱘ↯䖍さ䍋ϡᕫ䍙䖛↣ջ 㣅ᇌ˄ ↿㉇˅DŽ
$
$
(
᳔ᇣ
Q
S
$
(
'
/
F
F
%
A
B
/
㣅ᇌ
ℷᐌ
%6&
7<3
%6&
%6&
5())ᓩ㛮ԡ䭓ᑺ˄খ㗗˅
F
$
᳔ ℷᐌ
᳔ᇣ
↿㉇
᳔
%6&
%6&
%6&
%6&
5()
$
ㄝৠѢ-('(& ো˖02
ো&
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 85 页
PIC12F508/509/16F505
14 引脚塑封双列直插式封装 ( P)—— 300 mil ( PDIP)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
E1
D
2
n
E
β
eB
引脚数
引脚间距
顶端到固定面高度 A .140 .155 .170 3.56 3.94 4.32
塑模封装厚度 A2 .115 .130 .145 2.92 3.30 3.68
塑模底面到固定面高度离
肩到肩宽度 E .300 .313 .325 7.62 7.94 8.26
塑模封装宽度 E1 .240 .250 .260 6.10 6.35 6.60
总长度 D .740 .750 .760 18.80 19.05 19.30
引脚尖到固定面高度 L .125 .130 .135 3.18 3.30 3.43
引脚厚度
引脚上部宽度 B1 .045 .058 .070 1.14 1.46 1.78
引脚下部宽度 B .014 .018 .022 0.36 0.46 0.56
总排列间距 §
塑模顶端锥度
塑模底端锥度
* 控制参数
§ 重要特性
注 :
尺寸 D1 和 E1 不包括塑模毛边或突起。塑模每侧的毛边或突起不得超过 0.010 英寸(0.254 毫米)。
1
A
c
A1
尺寸范围 最小 正常 最大 最小 正常 最大
单位 英寸 * 毫米
n
p
A1
c
eB
α
β
.015 0.38
.008 .012 .015 0.20 0.29 0.38
.310 .370 .430 7.87 9.40 10.92
51 01 5 51 01 5
51 01 5 51 01 5
B1
B
14 14
.100 2.54
α
A2
L
p
等同于 JEDEC 号 :MS-001
图号 :C04-005
DS41236B_CN 第 86 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
14 引脚窄条塑封小外形封装 ( SL)—— 150 mil ( SOIC)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
E
E1
p
D
2
B
n
1
45°
c
β
引脚数
引脚间距
底脚倾斜角度
引脚厚度
塑模顶端锥度
塑模底端锥度
* 控制参数
§ 重要特性
注 :
尺寸 D1 和 E1 不包括塑模毛边或突起。塑模每侧的毛边或突起不得超过 0.010 英寸(0.254 毫米)。
等同于 JEDEC 号 :MS-001
图号 : C04-065
h
A
φ
L
n
p
φ
c
α
β
A1
毫米 英寸 *单位
048048
α
A2
最大 正常 最小 最大 正常 最小 尺寸范围
14 14
1.27 .050
1.75 1.55 1.35 .069 .061 .053 A总高度
1.55 1.42 1.32 .061 .056 .052 A2塑模封装厚度
0.25 0.18 0.10 .010 .007 .004 A1悬空间隙 §
6.20 5.99 5.79 .244 .236 .228 E总宽度
3.99 3.90 3.81 .157 .154 .150 E1塑模封装宽度
8.81 8.69 8.56 .347 .342 .337 D总长度
0.51 0.38 0.25 .020 .015 .010 h倒棱距离
1.27 0.84 0.41 .050 .033 .016 L底脚长度
0.25 0.23 0.20 .010 .009 .008
0.51 0.42 0.36 .020 .017 .014 B引脚宽度
15 12 0 15 12 0
15 12 0 15 12 0
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 87 页
PIC12F508/509/16F505
14 引脚塑封薄型小外形封装 ( ST)—— 4.4 mm ( TSSOP)
注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。
E
E1
p
D
2
n
B
1
A
c
φ
β
引脚数
引脚间距
底脚倾斜角度
引脚厚度
塑模顶端锥度
塑模底端锥度
* 控制参数
§ 重要特性
注 :
尺寸 D1 和 E1 不包括塑模毛边或突起。塑模每侧的毛边或突起不得超过 0.010 英寸(0.254 毫米)。
等同于 JEDEC 号 :MO-153
图号 : C04-087
n
p
φ
c
α
β
L
毫米 * 英寸 单位
α
A2 A1
最大 正常 最小 最大 正常 最小 尺寸范围
14 14
0.65 .026
1.10 .043 A总高度
0.95 0.90 0.85 .037 .035 .033 A2塑模封装厚度
0.15 0.10 0.05 .006 .004 .002 A1悬空间隙 §
6.50 6.38 6.25 .256 .251 .246 E总宽度
4.50 4.40 4.30 .177 .173 .169 E1塑模封装宽度
5.10 5.00 4.90 .201 .197 .193 D塑模封装长度
0.70 0.60 0.50 .028 .024 .020 L底脚长度
8 4 0 8 4 0
0.20 0.15 0.09 .008 .006 .004
0.30 0.25 0.19 .012 .010 .007 B引脚宽度
10 5 0 10 5 0
10 5 0 10 5 0
DS41236B_CN 第 88 页 初稿 2006 Microchip Technology Inc.
附录 A : 版本历史
版本 A (2004 年 4 月)
PIC12F508/509/16F505 系列器件的原始数据手册。
版本 B (2005 年 6 月)
更新封装。
PIC12F508/509/16F505
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 89 页
PIC12F508/509/16F505
注:
DS41236B_CN 第 90 页 初稿 2006 Microchip Technology Inc.
索引
PIC12F508/509/16F505
A
ALU ....................................................................................... 9
B
半进位 .................................................................................. 9
C
C 编译器
MPLAB C18 ................................................................ 64
MPLAB C30 ................................................................ 64
CPU 的特性 ........................................................................ 39
程序计数器 ......................................................................... 25
从休眠模式唤醒 .................................................................. 52
存储器构成 ......................................................................... 15
程序存储器 (PIC12F508/509 ) ................................. 15
程序存储器 (PIC16F505 ) ........................................ 16
数据存储器 ................................................................. 16
D
代码保护 ....................................................................... 39, 52
掉电模式 ............................................................................. 52
读者反馈表 ......................................................................... 94
读—修改—写 ..................................................................... 31
堆栈 .................................................................................... 25
F
FSR..................................................................................... 26
复位 .................................................................................... 39
H
汇编器
MPASM 汇编器 .......................................................... 64
I
I/O 编程注意事项 ................................................................ 31
I/O 端口 .............................................................................. 29
I/O 接口 .............................................................................. 29
ID 单元 ......................................................................... 39, 52
INDF.................................................................................... 26
J
寄存器
特殊功能 ..................................................................... 18
间接数据寻址 ..................................................................... 26
进位 ...................................................................................... 9
K
开发支持 ............................................................................. 63
看门狗定时器 (WDT ) ................................................ 39, 49
编程注意事项 ............................................................. 49
周期 ............................................................................ 49
勘误表 .................................................................................. 3
客户变更通知服务 .............................................................. 93
客户支持 ............................................................................. 93
框图
Timer0......................................................................... 33
TMR0/WDT 预分频器 ................................................. 37
看门狗定时器 ............................................................. 50
片上复位电路 ............................................................. 47
L
零位 ...................................................................................... 9
M
Microchip 因特网网站 ........................................................ 93
MPLAB ASM30 汇编器,链接器和库管理器 ...................... 64
MPLAB ICD 2 在线调试器 ................................................. 65
MPLAB ICE 2000 高性能通用在线仿真器 .......................... 65
MPLAB ICE 4000 高性能通用在线仿真器 .......................... 65
MPLAB PM3 器件编程器 ................................................... 65
MPLAB 集成开发环境软件 ................................................. 63
MPLINK 目标链接器 /MPLIB 目标库管理器 ....................... 64
O
选项寄存器 ......................................................................... 22
OSC 选择 ........................................................................... 39
OSCCAL 寄存器 ................................................................ 24
P
PIC12F508/509/16F505 系列器件 ....................................... 7
PICSTART Plus 开发编程器 .............................................. 66
POR
上电复位 ( POR) ..................................................... 39
PORTB ............................................................................... 29
配置位 ................................................................................ 39
配置字 ................................................................................ 40
Q
Q 周期 ................................................................................ 14
器件系列
PIC12F508/509/PIC16F505 ......................................... 5
欠压保护电路 ..................................................................... 51
欠压复位 ............................................................................ 51
R
RC 振荡器 .......................................................................... 42
软件模拟器 (MPLAB SIM ) .............................................. 64
S
状态寄存器 ......................................................................... 20
上电复位
PD............................................................................... 51
TO............................................................................... 51
器件复位定时器 (DRT ) ..................................... 39, 49
时序参数符号和负载条件 ................................................... 73
时序图和规范 ..................................................................... 73
时钟机制 ............................................................................ 14
T
Timer0
Timer0 ........................................................................ 33
Timer0 ( TMR0)模块 .............................................. 33
TMR0 外部时钟 .......................................................... 35
TRIS 寄存器 ....................................................................... 29
特殊功能寄存器 ................................................................. 18
W
WWW 地址 ........................................................................ 93
WWW 在线技术支持 ............................................................ 3
文件寄存器映射
PIC12F508 ................................................................. 17
PIC12F509 ................................................................. 17
PIC16F505 ................................................................. 17
X
休眠模式 ...................................................................... 39, 52
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 91 页
PIC12F508/509/16F505
Y
因特网地址 ......................................................................... 93
预分频器 ............................................................................. 36
Z
振荡类型
HS ............................................................................... 41
LP................................................................................ 41
RC............................................................................... 41
XT ............................................................................... 41
振荡器配置 ......................................................................... 41
直流和交流特性 .................................................................. 79
指令格式 ............................................................................. 55
指令流 / 流水线 ................................................................... 14
指令周期 ............................................................................. 14
指令集
ADDWF....................................................................... 57
ANDLW ....................................................................... 57
ANDWF....................................................................... 57
BCF............................................................................. 57
BSF ............................................................................. 57
BTFSC ........................................................................58
BTFSS ........................................................................ 57
CALL ........................................................................... 58
CLRF........................................................................... 58
CLRW ......................................................................... 58
CLRWDT..................................................................... 58
COMF ......................................................................... 58
DECF ..........................................................................59
DECFSZ...................................................................... 59
INCF............................................................................ 59
INCFSZ ....................................................................... 59
IORLW ........................................................................59
IORWF ........................................................................ 60
MOVF.......................................................................... 60
MOVLW ...................................................................... 60
MOVWF ......................................................................60
RETLW ....................................................................... 61
RLF .............................................................................61
RRF............................................................................. 61
SUBWF ....................................................................... 61
SWAPF .......................................................................61
XORLW....................................................................... 62
XORWF....................................................................... 62
指令集综述 ......................................................................... 56
装载 PC ............................................................................... 25
DS41236B_CN 第 92 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
MICROCHIP 网站
Microchip 网站 (www.microchip.com )为客户提供在
线支持。客户可通过该网站方便地获取文件和信息。只
要使用常用的因特网浏览器即可访问。网站提供以下信
息:
• 产品支持——数据手册和勘误表、应用笔记和样本
程序、设计资源、用户指南以及硬件支持文档、最
新的软件版本以及存档软件
• 一般技术支持——常见问题 (FAQ )、技术支持请
求、在线讨论组以及 Microchip 顾问计划成员名单
• Microchip 业务——产品选型和订购指南、最新
Microchip 新闻稿、研讨会和活动安排表、
Microchip 销售办事处、代理商以及工厂代表列表
变更通知客户服务
Microchip 的变更通知客户服务有助于客户了解
Microchip 产品的最新信息。注册客户可在他们感兴趣
的某个产品系列或开发工具发生变更、更新、发布新版
本或勘误表时,收到电子邮件通知。
欲注册,请登录 Microchip 网站 www.microchip.com,
点击 “变更通知客户 (Customer Change
Notification )”服务后按照注册说明完成注册。
客户支持
Microchip 产品的用户可通过以下渠道获得帮助:
• 代理商或代表
• 当地销售办事处
• 应用工程师 ( FAE )
• 技术支持
客户应联系其代理商、代表或应用工程师 (FA E )寻求
支持。当地销售办事处也可为客户提供帮助。本文档后
附有销售办事处的联系方式。
也可通过 http ://support.microchip.com 获得网上技
术支持。
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 93 页
PIC12F508/509/16F505
读者反馈表
我们努力为您提供最佳文档,以确保您能够成功使用 Microchip 产品。如果您对文档的组织、条理性、主题及其他有助
于提高文档质量的方面有任何意见或建议,请填写本反馈表并传真给我公司 TRC 经理,传真号码为 86-21-5407 -5066 。
请填写以下信息,并从下面各方面提出您对本文档的意见。
致:
关于: 读者反馈
发自:
应用(选填):
您希望收到回复吗?是 否
器件: 文献编号:
问题:
1.
2.
3.
TRC 经理
姓名
公司
地址
国家 / 省份 / 城市 / 邮编
电话: (______ ) __________________
本文档中哪些部分最有特色?
本文档是否满足了您的软硬件开发要求?如何满足的?
您认为本文档的组织结构便于理解吗?如果不便于理解,那么问题何在?
传真:(______ ) __________________
DS41236B_CN PIC12F508/509/16F505
总页数 ________
4.
您认为本文档应该添加哪些内容以改善其结构和主题?
5.
您认为本文档中可以删减哪些内容,而又不会影响整体使用效果?
6.
本文档中是否存在错误或误导信息?如果存在,请指出是什么信息及其具体页数。
7.
您认为本文档还有哪些方面有待改进?
DS41236B_CN 第 94 页 初稿 2006 Microchip Technology Inc.
PIC12F508/509/16F505
产品标识体系
欲订货或获取价格、交货等信息,请与我公司生产厂或销售办事处联系。
器件编号 X /XX XXX
器件
器件:
温度范围: I= - 4 0 °C 至+85 °C (工业级)
PIC16F505
PIC12F508
PIC12F509
PIC16F505T (卷带式)
PIC12F508T (卷带式)
PIC12F509T (卷带式)
E= - 4 0°C 至+125°C (扩展级)
模式 封装 温度范围
示例:
a) PIC16F505-I/P = 工业级温度, PDIP 无铅封装
b) PIC16F505T-I/SL = 工业级温度,SOIC 无铅卷
带式封装
c) PIC16F505T-I/SL = 工业级温度,SOIC 无铅卷
带式封装
d) PIC12F508T-I/SN = 工业级温度,150 mil SOIC
无铅卷带式封装
e) PIC12F508T-E/MS = 扩展级温度,MSOP 无铅
卷带式封装
f) PIC12F509-E/P = 扩展级温度,PDIP 无铅封装
g) PIC12F509-I/SM = 工业级温度, 208 mil SOIC
无铅封装
封装: P = 300 mil PDIP (无铅)
模式: 特殊要求
注: 仅以下封装具有卷带形式:SOIC 、 MSOP 和 TSSOP 。
SL = 150 mil SOIC, 14-LD (无铅)
SN = 150 mil SOIC, 8-LD (无铅)
MS = MSOP (无铅)
ST = TSSOP (无铅)
2006 Microchip Technology Inc. 初稿 DS41236B_CN 第 95 页
全球销售及服务网点
美洲
公司总部 Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 1-480-792-7200
Fax: 1-480-792-7277
技术支持:
http://support.microchip.com
网址:www.microchip.com
亚特兰大 Atlanta
Alpharetta, GA
Tel: 1-770-640-0034
Fax: 1-770-640-0307
波士顿 Boston
Westborough, MA
Tel: 1-774-760-0087
Fax: 1-774-760-0088
芝加哥 Chicago
Itasca, IL
Tel: 1-630-285-0071
Fax: 1-630-285-0075
达拉斯 Dallas
Addison, TX
Tel: 1-972-818-7423
Fax: 1-972-818-2924
底特律 Detroit
Farmington Hills, MI
Tel: 1-248-538-2250
Fax: 1-248-538-2260
科科莫 Kokomo
Kokomo, IN
Tel: 1-765-864-8360
Fax: 1-765-864-8387
洛杉矶 Los Angeles
Mission Viejo, CA
Tel: 1-949-462-9523
Fax: 1-949-462-9608
圣克拉拉 Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
加拿大多伦多 Toro nto
Mississauga, Ontario,
Canada
Tel: 1-905-673-0699
Fax: 1-905-673-6509
亚太地区
亚太总部 Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Habour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
中国 - 北京
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
中国 - 成都
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
中国 - 福州
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
中国 - 香港特别行政区
Tel: 852-2401-1200
Fax: 852-2401-3431
中国 - 青岛
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
中国 - 上海
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
中国 - 沈阳
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
中国 - 深圳
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
中国 - 顺德
Tel: 86-757-2839-5507
Fax: 86-757-2839-5571
中国 - 武汉
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
中国 - 西安
Tel: 86-29-8833-7250
Fax: 86-29-8833-7256
台湾地区 - 高雄
Tel: 886-7-536-4818
Fax: 886-7-536-4803
台湾地区 - 台北
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
台湾地区 - 新竹
Tel: 886-3-572-9526
Fax: 886-3-572-6459
亚太地区
澳大利亚 Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
印度 India - Bangalore
Tel: 91-80-4182-8400
Fax: 91-80-4182-8422
印度 India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
印度 India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
日本 Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
韩国 Korea - Gumi
Tel: 82-54-473-4301
Fax: 82-54-473-4302
韩国 Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 或
82-2-558-5934
马来西亚 Malaysia - Penang
Tel: 60-4-646-8870
Fax: 60-4-646-5086
菲律宾 Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
新加坡 Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
泰国 Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
欧洲
奥地利 Austria - Wels
Tel: 43-7242-2244-3910
Fax: 43-7242-2244-393
丹麦 Denmark-Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
法国 France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
德国 Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
意大利 Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
荷兰 Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
西班牙 Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
英国 UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
08/29/06
DS41236B_CN 第 96 页 初稿 2006 Microchip Technology Inc.