MICROCHIP PIC16F716 Technical data

PIC16F716
数据手册
A/D 转换器和
增强型捕捉 / 比较 /PWM
8 位闪存单片机
2004 Microchip Technology Inc. 初稿 DS41206A_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
•Microchip的产品均达到 Microchip 数据手册中所述的技术指标。
•Microchip确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的操 作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•Microchip愿与那些注重代码完整性的客户合作。
•Microchip或任何其它半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的软 件或其它受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。Microchip Technology Inc. 及其分公司和相关公司、各级主管与员工及 事务代理机构对译文中可能存在的任何差错不承担任何责任。 建议参考 Microchip Technology Inc. 的原版文档。
本出版物中所述的器件应用信息及其它类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范, 是您自身应负的责任。Microchip 对这些信息不作任何明示或 暗示、书面或口头的声明或担保,包括但不限于针对其使用情 况、质量、性能、适销性或特定用途的适用性的声明或担保。 Microchip 对因这些信息及使用这些信息而引起的后果不承担 任何责任。未经 Microchip 书面批准,不得将 Microchip 的产 品用作生命维持系统中的关键组件。在 Microchip 知识产权保 护下,不得暗中或以其它方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron dsPIC、 K
EELOQ、 microID、 MPLAB、 PIC、 PICmicro、
PICSTARTPRO MATEPowerSmartrfPIC SmartShunt均为Microchip Technology Inc.在美国和其它国家
或地区的注册商标。
AmpLabFilterLabMigratable MemoryMXDEV MXLABPICMASTERrfPICSEEVALSmartSensor The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标。
Analog-for-the-Digital AgeApplication Maestro dsPICDEMdsPICDEM.netdsPICworksECAN ECONOMONITORFanSenseFlexROMfuzzyLAB In-Circuit Serial Programming、 ICSP、 ICEPIC、 MPASM、 MPLIBMPLINKMPSIMPICkitPICDEM PICDEM.netPICLABPICtailPowerCalPowerInfo PowerMatePowerToolrfLABrfPICDEMSelect ModeSmart SerialSmartTel Total Endurance 均为 Microchip Technology Inc. 在美国和其它国家或地区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其它商标均为各持有公司所有。
© 2004, Microchip Technology Inc。版权所有。
Microchip Mountain View
过了 机、 器和模拟产品方面的质量体系流程均符合
Microchip 9001:2000
位于美国亚利桑那州
ISO/TS-16949:2002 KEELOQ
的全球总部、设计中心和晶圆生产厂均于
®
跳码器件、串行
在开发系统的设计和生产方面的质量体系也已通过了
认证。
Chandler和Tem pe
质量体系认证。公司在
EEPROM
、单片机外设、非易失性存储
ISO/TS-16949:2002
PICmicro
及位于加利福尼亚州
2003年10
®
8
位单片
。此外,
月通
ISO
DS41206A_CNii 初稿  2004 Microchip Technology Inc.
PIC16F716
A/D 转换器和增强型捕捉 / 比较 /PWM
8 位闪存单片机
单片机内核特征:
高性能 RISC CPU
只有 35 条单字节指令
- 除了程序分支指令为双周期指令外,其它所有 指令均为单周期指令
工作速度:DC - 20 MHz 时钟输入 DC - 200 ns 指令周期
中断能力 (多达 7 个内部 / 外部中断源)
•8级深度硬件堆栈
直接、间接和相对寻址方式
特殊单片机特征:
上电复位 (POR
上电延时定时器 (PWRT)和振荡器起振定时器
OST
看门狗定时器 (WDT),带片内 RC 振荡器,确保
可靠工作
双阈值欠压复位电路
- 2.5 VBOR (典型值)
- 4.0 VBOR (典型值)
可编程代码保护
降低功耗的休眠模式
可选择不同的振荡器工作模式
全静态设计
在线串行编程 (In-Circuit Serial Programming
ICSP
CMOS 技术
宽工作电压范围:
- 工业级:2.0V 5.5V
- 扩展级:3.0V 5.5V
高灌 / 拉电流:25/25 mA
宽工作温度范围:
- 工业级:-40°C 85°C
- 扩展级:-40°C 125°C
低功耗特性:
待机电流:
-2.0V时典型值为 100 nA
工作电流:
-32kHz, 2.0V 时典型值为 14 µA
-1MHz, 2.0V 时典型值为 120 µA
看门狗定时器工作电流:
-2.0V时典型值为 1 µA
•Timer1振荡器工作电流:
-32kHz, 2.0V 时典型值为 3.0 µA
外设特性:
•Timer0:带 8 位预分频器的 8 位定时器 / 计数器
•Timer1:带预分频器的 16 位定时器 / 计数器,在休 眠状态下,可使用外部晶体 / 时钟信号继续工作
•Timer2:带 8 位周期寄存器、预分频器和后分频器 8 位定时器 / 计数器
增强型捕捉 / 比较 /PWM 模块:
- 捕捉为 16 位,最大分辨率为 12.5 ns
- 比较为 16 位,最大分辨率为 200 ns
-PWM最大分辨率为 10 位
- 增强型 PWM
- 单输出、半桥和全桥工作方式
- 数字可编程死区延时
- 自动关断 / 重启
•8位多通道模数转换器
•13个 I/O 引脚带有独立方向控制
•PORTB口可编程弱上拉
器件
PIC16F716 2048 x 14 128 x 8 13 4 2/1 1/2/4 2.0V - 5.5V
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 1
存储器
I/O
闪存 数据
8 A/D
(通道数)
定时器
8 /16
PWM
(输出)
VDD 范围
PIC16F716
引脚配置图
18 引脚 PDIPSOIC
RA2/AN2
RA3/AN3/VREF
RA4/T0CKI
MCLR/VPP
RB0/INT/ECCPAS2 RB1/T1OSO/T1CKI
RB3/CCP1/P1A
V
RB2/T1OSI
20 引脚 SSOP
RA2/AN2
RA3/AN3/VREF
RA4/T0CKI
MCLR/VPP
V
RB0/INT/ECCPAS2 RB1/T1OSO/T1CKI
RB3/CCP1/P1A
V
RB2/T1OSI
1
18
PIC16F716
2
17
3
16
4
15
5
SS
1 2 3 4
SS
SS
5 6 7 8 9 10
6 7 8 9
14 13 12
11 10
20
PIC16F716
19 18 17 16 15 14
13
12 11
RA1/AN1 RA0/AN0 OSC1/CLKIN OSC2/CLKOUT VDD RB7/P1D RB6/P1C RB5/P1B RB4/ECCPAS0
RA1/AN1 RA0/AN0 OSC1/CLKIN OSC2/CLKOUT VDD VDD RB7/P1D RB6/P1C RB5/P1B RB4/ECCPAS0
DS41206A_CN2 初稿 2004 Microchip Technology Inc.
PIC16F716
目录
1.0 器件概述 ....................................................................................................................................................................................... 5
2.0 存储器结构 ................................................................................................................................................................................... 7
3.0 I/O .......................................................................................................................................................................................... 19
4.0 Timer0 模块 ................................................................................................................................................................................ 27
5.0 Timer1 模块 ................................................................................................................................................................................ 29
6.0 Timer2 模块 ................................................................................................................................................................................ 31
7.0 增强型捕捉 / 比较 /PWM ECCP模块 .................................................................................................................................. 33
8.0 模数转换器 (A/D)模块 ............................................................................................................................................................ 49
9.0 CPU 的特色................................................................................................................................................................................ 55
10.0 指令集概述 ................................................................................................................................................................................. 71
11.0 开发工具支持.............................................................................................................................................................................. 85
12.0 电气特性 ..................................................................................................................................................................................... 91
13.0 直流和交流特性图表 ................................................................................................................................................................. 107
14.0 封装信息 ................................................................................................................................................................................... 109
附录 A:版本历史............................................................................................................................................................................ 113
附录 B: 移植注意事项 ..................................................................................................................................................................... 113
附录 C: 从低档器件移植到中档器件................................................................................................................................................ 114
在线支持............................................................................................................................................................................................. 115
系统信息与升级热线........................................................................................................................................................................... 115
读者反馈表 ......................................................................................................................................................................................... 116
索引.................................................................................................................................................................................................... 117
产品标识体系 ..................................................................................................................................................................................... 123
致 客 户
我司旨在提供最佳文档供客户正确使用 Microchip 产品。 为此,我们将持续改善公司出版物以更好地满足您的要求。出版物的质量 将随新手册及更新版本的推出而得到改善。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我司 TRC 经理,电子邮件地址为 CTRC@microchip.com,或将本数 据手册后附的 《读者反馈表》传真到 (8621)5407 5066。我们欢迎您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
您可通过检查数据手册中任意一页外侧下角的文献编号来确定其版本。文献编号的最后一个字母是版本编号 DS30000 A 版本。
勘误表
现有器件可能带有一份勘误表,说明了 ( 与数据手册的 ) 小运行差异以及建议的工作条件。当器件 / 文档的差异为我们所知时,我 们将出版一份勘误表。 勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
•Microchip网站 http://www.microchip.com
当地 Microchip 销售办事处 ( 见尾页 )
•Microchip总部文献中心;美国传真号码:001 (480) 792-7277
当致电销售办事处或文献中心时,请说明您所使用的器件名称、芯片和数据手册版本 ( 包括文献编号 )。
客户通知系统
欲接收我司产品的最新信息,请到我公司网站 www.microchip.com/cn 上注册。
例如:DS30000A
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 3
PIC16F716
注:
DS41206A_CN4 初稿 2004 Microchip Technology Inc.

1.0 器件概述

PIC16F716
本文档包含了 PIC16F716 的特定信息。其它信息请参 阅《PICmicro
®
中档单片机系列参考手册》
DS33023A_CN)。该手册可从您所在地的 Microchip
销售办事处获得,或者从 Microchip 网站下载。这个参 考手册可作为本数据手册的一个补充文档,强烈推荐您 阅读这个文档,以便更好地理解单片机的架构以及外设 的操作。
1-1 PIC16F716 的结构框图。引脚配置见表 1-1

1-1 PIC16F716 结构框图

13
8
程序计数器
8 级堆栈
13 位宽)
直接寻址
RAM 地址
7
程序总线
闪存
2K x 14
程序存储器
14
指令寄存器
数据总线
RAM
128 x 8
数据寄存器
1
地址开关
8
特殊功能寄存器
Status 寄存器
9
8
间接寻址
PORTA
RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI
PORTB
RB0/INT/ECCPAS2 RB1/T1OSO/T1CKI RB2/T1OSI RB3/CCP1/P1A RB4/ECCPAS0 RB5/P1B RB6/P1C RB7/P1D
指令
译码和
控制
OSC1/CLKIN
OSC2/CLKOUT
增强型 CCP
ECCP
1: 高位地址来自于 Status 寄存器。
Timer0
时钟 发生
上电延时
定时器
振荡器
起振定时器
上电 复位
看门狗 定时器
欠压 复位
MCLR
VDD, VSS
Timer1 Timer2
3
8
W 寄存器
A/D
MUX
ALU
2004 Microchip Technology Inc. 初稿 DS41206A_CN5
PIC16F716

1-1 PIC16F716 引脚描述

名称 功能 输入类型 输出类型 描述
MCLR
/VPP MCLR ST
PP P—编程电压输入
V
OSC1/CLKIN OSC1 XTAL 振荡器晶体输入
CLKIN CMOS 外部时钟源输入 CLKIN ST RC 振荡器方式
OSC2/CLKOUT OSC2 XTAL 振荡器晶体输出,在晶振方式下接晶体或谐振器。
CLKOUT CMOS RC 方式下, OSC2 引脚输出 CLKOUT,其频率为 OSC1
RA0/AN0 RA0 TTL CMOS 双向 I/O
AN0 AN 模拟输入通道 0
RA1/AN1 RA1 TTL CMOS 双向 I/O
AN1 AN 模拟输入通道 1
RA2/AN2 RA2 TTL CMOS 双向 I/O
AN2 AN 模拟输入通道 2
RA3/AN3/V
RA4/T0CKI RA4 ST OD 双向 I/O 口。配置为输出时为漏极开路。
RB0/INT/ECCPAS2
RB1/T1OSO/T1CKI RB1 TTL CMOS 双向 I/O 口。可编程弱上拉。
RB2/T1OSI RB2 TTL CMOS 双向 I/O 口。可编程弱上拉。
RB3/CCP1/P1A RB3 TTL CMOS 双向 I/O 口。 可编程弱上拉。
RB4/ECCPAS0
RB5/P1B RB5 TTL CMOS 双向 I/O 口。可编程弱上拉。电平变化产生中断。
RB6/P1C RB6 TTL CMOS 双向 I/O 口。 可编程弱上拉。电平变化产生中断。作为 ICSP
RB7/P1D RB7 TTL CMOS 双向 I/O 口。 可编程弱上拉。电平变化产生中断。作为 ICSP
SS VSS P—逻辑和 I/O 引脚的地。
V
DD VDD P—逻辑和 I/O 引脚的电源。
V
图注: I = 输入 AN = 模拟输入或输出 OD = 漏极开路
REF RA3 TTL CMOS 双向 I/O
AN3 AN 模拟输入通道 3
REF AN A/D 参考电压输入
V
T0CKI ST Timer0 外部时钟输入
RB0 TTL CMOS 双向 I/O 口。可编程弱上拉。
INT ST 外部中断
ECCPAS2
T1OSO XTAL Timer1 振荡器输出,在振荡器方式下连接到晶振。
T1CKI ST Timer1 外部时钟输入。
T1OSI XTAL Timer1 振荡器输入,在振荡器方式下连接到晶振。
CCP1 ST CMOS 捕捉 1 输入,比较 1 输出, PWM1 输出。
P1A CMOS PWM P1A 输出 RB4 TTL CMOS 双向 I/O 口。可编程弱上拉。电平变化产生中断。
ECCPAS0
P1B CMOS PWM P1B 输出
P1C CMOS PWM P1C 输出
P1D CMOS PWM P1D 输出。
O= 输出 TTL = TTL 兼容输入 ST = CMOS 电平施密特触发器输入 P= 电源 XTAL = 晶振 CMOS = CMOS 兼容输入或输出
ST ECCP 自动关闭引脚
ST ECCP 自动关闭引脚。
主复位输入,器件复位低电平有效。
频率的 1/4,即指令周期速度。
编程时钟时为 ST 输入。
编程数据时为 ST 输入。
DS41206A_CN6 初稿 2004 Microchip Technology Inc.
PIC16F716

2.0 存储器结构

PIC16F716 PICmicro 单片机有两个存储器模块,每个 存储器模块 (程序存储器和数据存储器)有各自的总
线,因此可同时对它们进行访问。
®
关于器件存储器的其它信息,请查阅 《PICmicro 单片机系列参考手册》(DS33023A_CN)。
2.1 程序存储器结构
PIC16F716 有一个 13 位宽的程序计数器,最大可寻址 8K x 14 的程序存储空间。 PIC16F716 具有 2K x14
程序存储器。访问超过这些物理地址的存储单元将导致 循环返回到有效的程序存储空间。
复位向量位于 0000h,中断向量位于 0004h

2-1PIC16F716 程序存储器映射和堆栈

PC<12:0>
CALL, RETURN RETFIE, RETLW
堆栈级 1
堆栈级 8
13
中档
2.2 数据存储器结构
数据存储器分成多个存储区,每个存储区都包含通用寄 存器(GPR)和特殊功能寄存器(SFR)。 Status 寄存
器的 RP1 RP0 位为存储区选择位。
RP1:RP0
status<6:5>
1: 将 Status 寄存器的 bit 6 保持清零以便与将
2: 未使用。
每个存储区最大有 7Fh 128 字节)空间。特殊功能寄 存器安排在每个存储区的低地址,通用寄存器接着特殊
功能寄存器后面安排在高地址,通用寄存器实现为静态 RAM。所有存储区都包含特殊功能寄存器。通用寄存器
空间的高 16 字节和存储区 0 中一些使用率高的特殊功 能寄存器映射到存储区 1 中,以减小代码量并提高存取 速度。
(1)
00 0 01 1 10 2 11 3
来的产品向上兼容。
存储区
(2)
(2)
中断向量
用户存储空间
片内程序存储器
复位向量
0000h
0004h 0005h
07FFh
0800h
1FFFh
2004 Microchip Technology Inc. 初稿 DS41206A_CN7
PIC16F716
2.2.1 通用存储器
寄存器可以直接访问,或通过指针寄存器FSR 间接访问
(第 2.5 节 “间接寻址、 INDF FSR 寄存器”)。

2-2: 数据寄存器映射

寄存器 地址
00h INDF
01h TMR0 OPTION_REG 81h
02h PCL PCL 82h
03h STATUS STATUS 83h
04h FSR FSR 84h
05h PORTA TRISA 85h
06h PORTB TRISB 86h
07h
08h
09h
0Ah PCLATH PCLATH 8Ah
0Bh INTCON INTCON 8Bh
0Ch PIR1 PIE1 8Ch
0Dh
0Eh TMR1L PCON 8Eh
0Fh TMR1H
10h T1CON
11h TM R2
12h T2CON PR2 92h
13h
14h
15h CCPR1L
16h CCPR1H
17h CCP1CON
18h PWM1CON
19h ECCPAS
1Ah
1Bh
1Ch
1Dh
1Eh ADRES
1Fh ADCON0 ADCON1 9Fh
20h
6Fh EFh
70h
7Fh
未使用的数据存储单元,读为 “0”。
1: 非物理存在的寄存器。
(1)
通用
寄存器
80 字节
16 字节 访问
存储区 0 存储区 1
(1)
INDF
通用
寄存器
32 字节
70 7Fh
寄存器 地址
80h
87h
88h
89h
8Dh
8Fh
90h
91h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
A0h
BFh
C0h
F0h FFh
DS41206A_CN8 初稿 2004 Microchip Technology Inc.
PIC16F716
2.2.2 特殊功能寄存器
特殊功能寄存器是用于控制 CPU 和外设模块进行所需 操作的寄存器。这些寄存器实现为静态 RAM。表 2-1
出了这些寄存器。 特殊功能寄存器可以分为两类:一类是用于内核
CPU)操作,另一类是用于控制外设模块的操作。本
节详细介绍用于内核操作的特殊功能寄存器,另一类与 外设操作相关的特殊功能寄存器将在相应的功外设章节 中详细介绍。

2-1:存0 中的特殊功能寄存器汇总

地址 寄存器名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
00h INDF 01h TMR0 Timer0 模块的寄存器 xxxx xxxx 27
02h PCL
03h STATUS
04h FSR
05h PORTA
06h PORTB
07h-09h
0Ah PCLATH
0Bh INTCON
0Ch PIR1
0Dh — 0Eh TMR1L 16 TMR1 寄存器低字节的保持寄存器 xxxx xxxx 29 0Fh TMR1H 16 TMR1 寄存器高字节的保持寄存器 xxxx xxxx 29
10h T1CON 11h TM R2 Ti mer 2 模块寄存器 0000 0000 31
12h T2CON
13h-14h 15h CCPR1L 捕捉 / 比较 /PWM 寄存器 1 LSB xxxx xxxx 34 16h CCPR1H 捕捉 / 比较 /PWM 寄存器 1 MSB xxxx xxxx 34 17h CCP1CON P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 0000 0000 33 18h PWM1CON PRSEN PDC6 PDC5 PDC4 PDC3 PDC2 PDC1 PDC0 0000 0000 46
19h ECCPAS ECCPASE ECCPAS2
1Ah-1Dh — 1Eh ADRES A/D 转换结果寄存器 xxxx xxxx 49
1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE
图注: x = 未知 , u = 不变 , q = 其值取决于条件 , - = 未使用 , 读为 “0”,阴影部分未使用,读为 “0”。 1: 这些寄存器可以从任一存储区访问。
(1)
(1)
(1)
2: 程序计数器的高字节不可直接访问。 PCLATH PC<12:8> 的保持寄存器,其内容被传送到程序计数器的高字节。 3: 其它 (非上电)复位包括:通过 MCLR 4IRP RP1 位保留。总是保持这两位为零。 5: 无论何种器件复位,这些引脚都配置为输入。 6: 这是端口输出锁存器中的值。 7: 保留位,不要使用。 8ECCPAS1 位在 PIC16F716 中未使用。
通过用 FSR 的内容寻址该存储单元来寻址数据存储器 (非物理寄存器)
程序计数器 (PC)的低字节
(1)
(5,6)
(5,6)
(1,2)
(1)
(4)
IRP
间接数据存储器地址指针
——
写入时 PORTB 锁存数据,读出时为 PORTB 引脚电平 xxxx xxxx 21
未使用
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 13
—ADIF— CCP1IF TMR2IF TMR1IF -0-- 0000 15
未使用
T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 29
TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -0 00 0000 31
未使用
未使用
RP1
(4)
RP0 TO PD ZDCC0001 1xxx 11
(7)
写入时 PORTA 锁存数据,读出时为 PORTA 引脚电平 --xx 0000 19
程序计数器高 5 位的写缓冲器
(8)
ECCPAS0 PSSAC1 PSSAC0 PSSBD1 PSSBD0 00-0 0000 46
(7)
引脚的外部复位和看门狗定时器复位。
ADON 0000 0000 49
PORBOR
时的值
0000 0000 18
0000 0000 17
xxxx xxxx 18
---0 0000 17
所在 页面
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 9
PIC16F716

2-2:存1 中的特殊功能寄存器汇总

地址 寄存器名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
80h INDF
81h OPTION_REG RBPU
82h PCL
83h STATUS
84h FSR
85h TRISA 86h TRISB PORTB 数据方向寄存器 1111 1111 21
87h-89h
8Ah PCLATH
8Bh INTCON
8Ch PIE1
8Dh — 8Eh PCON —PORBOR ---- --qq 16
8Fh-91h — 92h PR2 Timer2 周期寄存器 1111 1111 32, 36
93h-9Eh — 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 50
图注: x = 未知 , u = 不变 , q = 其值取决于条件 , - = 未使用 , 读为 “0”,阴影部分未使用,读为 “0”。 1: 这些寄存器可以从任一存储区访问。
(1)
(1)
(1)
2: 程序计数器的高字节不可直接访问。 PCLATH PC<12:8> 的保持寄存器,其内容被传送到程序计数器的高字节。 3: 其它 (非上电)复位包括:通过 MCLR 4IRP RP1 位保留。这些位保持为清零。 5: 无论何种器件复位,这些引脚都配置为输入。 6: 这是端口输出锁存器中的值。 7: 保留位,不要使用。
通过用 FSR 的内容寻址该存储单元来寻址数据存储器 (非物理寄存器)
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 12
程序计数器 (PC)的低字节
(1)
(1,2)
(1)
(4)
IRP
间接数据存储器地址指针
——
未使用
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 13
—ADIE — CCP1IE TMR2IE TMR1IE -0-- -000 14
未使用
未使用
未使用
RP1
(4)
RP0 TO PD ZDCC0001 1xxx 11
(7)
PORTA 数据方向寄存器 --11 1111 19
程序计数器高 5 位的写缓冲器
引脚的外部复位和看门狗定时器复位。
PORBOR
时的复位值
0000 0000 18
0000 0000 17
xxxx xxxx 18
---0 0000 17
所在 页面
DS41206A_CN10 初稿 2004 Microchip Technology Inc.
PIC16F716
2.2.2.1 Status 寄存器
Status 寄存器,如寄存器 2-1 所示,包含 ALU 算术运算
结果的状态位、复位状态位和数据存储区选择位。
Status 寄存器同其它寄存器一样,可以作为任何指令的 目的寄存器。如果 Status 寄存器作为一条影响 ZDCC 标志位的指令的目的寄存器,禁止对这三个标志位 进行写操作。这些位则要根据逻辑来置位或清零。此外
PD 位是不可写的。因此当执行一条把 Status
TO
存器作为目的寄存器的指令时,执行结果可能与预想的 不一样。
例如,CLRF STATUS 将清除 Status 寄存器的高 3 位并Z 位置位。结果是 Status 寄存器为 000u u1uu u 表示不变)。
如果想改变 Status 寄存器的内容,建议使用指令 BCFBSFSWAPF 和 MOVWF,因为这些指令不影响 Status 寄 存器的 ZC DC 位。其它不影响状态位的指令,详 见 第 10.0 节 “指令系统概述”。
寄存器 2-1 STATUS 寄存器 (地址:03h83h
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
(1)
IRP
bit 7 bit 0
bit 7 IRP:存储区选择位 (间接寻址使用)
1 = 存储区 2 3 100h 1FFh 0 = 存储区 0 1 00h FFh
bit 6-5 RP1
bit 4 TO
bit 3 PD:掉电标志位
bit 2 Z:零标志位
bit 1 DC:辅助进位 / 借位位 (ADDWFADDLWSUBLWSUBWF 指令)(对于借位极性相反)
bit 0 C:进位 / 借位位 (ADDWFADDLWSUBLWSUBWF 指令)
(1)
:RP0:存储区选择位 (直接寻址使用)
01 = 存储区 1 80h FFh 00 = 存储区 0 00h 7Fh
每个存储区为 128 字节。
:超时标志位
1 = 上电后,执行 CLRWDT 指令或 SLEEP 指令 0 = WDT 超时溢出
1 = 上电复位后或执行 CLRWDT 指令后 0 = 执行了 SLEEP 指令后
1 = 算术或逻辑运算结果为零 0 = 算术或逻辑运算结果不为零
1 = 结果的低 4 位向高 4 位有进位
0 = 结果的低 4 位向高 4 位无进位
1 = 结果的最高有效位有进位 0 = 结果的最高有效位无进位
1: 保留,保持清零。
2: 对于借位,极性相反。减法指令是通过加上第二个操作数的二进制补码实现的。对
图注:
R = 可读位 W = 可写位 U = 未使用,读为 0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
(1)
RP1
于移位 RRFRLF)指令,把源寄存器的最高位或最低位放入该位。
RP0 TO PD ZDC C
(1)
1PIC16F716 不使用 IRP RP1
STATUS<7:6>)。保持这些位清零以与
将来的产品向上兼容。
2: 在减法中, C DC 位分别作为借位和半
借位,请看 SUBLW SUBWF 指令的例子。
(2)
2004 Microchip Technology Inc. 初稿 DS41206A_CN11
PIC16F716
2.2.2.2 OPTION_REG 寄存器
OPTION_REG 寄存器是一个可读 / 写的寄存器,它包
含用于配置 TMR0 预分频器 /WDT 后分频器 (也可用 作预分频器的单个可分配寄存器) 、外部 INT 中断、 TMR0 PORTB 口弱上拉的各控制位。
寄存器 2-2 OPTION_REG 寄存器 (地址:81h
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
RBPU
bit 7 bit 0
INTEDG T0CS T0SE PSA PS2 PS1 PS0
注: 如果需要 TMR0 的预分频比为 1:1,可以把
预分频器分配给看门狗定时器。
bit 7 RBPU
PORTB 弱上拉使能位
1 = 禁止 PORTB 弱上拉 0 = PORTB 弱上拉由备用功能或 TRISBn 位的值确定
bit 6 INTEDG:中断触发边沿选择位
1 = RB0/INT 引脚上上升沿触发中断 0 = RB0/INT 引脚上下降沿触发中断
bit 5 T0CS:TMR0 时钟源选择位
1 = RA4/T0CKI 引脚上的外部时钟 0 = 内部指令周期时钟 (CLKOUT
bit 4 T0SE:TMR0 计数脉冲边沿选择位
1 = RA4/T0CKI 引脚上的下降沿递增 1 0 = RA4/T0CKI 引脚上的上升沿递增 1
bit 3 PSA:预分频器分配位
1 = 预分频器分配给 WDT 0 = 预分频器分配给 Timer0 模块
bit 2-0 PS2:PS0:预分频器分频比选择位
位值
000 1 : 2 1 : 1
001 1 : 4 1 : 2
010 1 : 8 1 : 4
011 1 : 16 1 : 8
100 1 : 32 1 : 16
101 1 : 64 1 : 32
110 1 : 128 1 : 64
111 1 : 256 1 : 128
TMR0 分频比 WDT 分频比
图注:
R = 可读位 W = 可写位 U = 未使用,读为 0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
DS41206A_CN12 初稿  2004 Microchip Technology Inc.
PIC16F716
2.2.2.3 INTCON 寄存器
中断控制寄存器 INTCON 是一个可读可写的寄存器,它 包含 TMR0 寄存器 溢出、 RB 口电平变化和外部 RB0/
INT 引脚中断等各种使能控制位和标志位。
寄存器 2-3 INTCON 寄存器 (地址:0Bh8Bh
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
bit 7 bit 0
bit 7 GIE:全局中断使能位
1 = 使能所有未被屏蔽的中断 0 = 禁止所有中断
bit 6 PEIE:外设中断使能位
1 = 开放所有未被屏蔽的外设中断 0 = 禁止所有的外设中断
bit 5 T0IE:TMR0 溢出中断使能位
1 = 允许 TMR0 中断 0 = 禁止 TMR0 中断
bit 4 INTE:RB0/INT 外部中断使能位
1 = 允许 RB0/INT 外部中断 0 = 禁止 RB0/INT 外部中断
bit 3 RBIE:RB 口电平变化中断使能位
1 = 允许 RB 口电平变化中断 0 = 禁止 RB 口电平变化中断
bit 2 T0IF:TMR0 溢出中断标志位
1 = TMR0 计数器溢出 (必须用软件清零) 0 = TMR0 计数器没有溢出
bit 1 INTF:RB0/INT 外部中断标志位
1 = RB0/INT 引脚上有外部中断发生 (必须用软件清零) 0 = RB0/INT 引脚上没有外部中断发生
bit 0 RBIF:RB 口电平变化中断标志位
1 = RB7:RB4 引脚中至少有一个引脚状态发生变化 (必须用软件清零) 0 = RB7:RB4 引脚状态无变化
注: 当中断条件发生时,中断标志位就会被置
1,而不管相应中断使能位或全局中断使能 位 GIE INTCON<7>)的状态。因此在
使能中断前,用户软件必须把相应的中断 标志位清零。
图注:
R = 可读位 W = 可写位 U = 未使用,读为 0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
2004 Microchip Technology Inc. 初稿 DS41206A_CN13
PIC16F716
2.2.2.4 PIE1 寄存器
PIE1 寄存器包含外设中断的各使能位。
寄存器 2-4 PIE1 寄存器 (地址:8Ch
U-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
—ADIE— CCP1IE TMR2IE TMR1IE
bit 7 bit 0
bit 7 未使用:读为 “0 bit 6 ADIE:A/D 转换器中断使能位
1 = 允许 A/D 转换器中断 0 = 禁止 A/D 转换器中断
bit 5-3 未使用:读出时为 “0”。 bit 2 CCP1IECCP1 中断使能位
1 = 允许 CCP1 中断 0 = 禁止 CCP1 中断
bit 1 TMR2IE:TMR2 和 PR2 匹配中断使能位
1 = 允许 TMR2 PR2 匹配中断 0 = 禁止 TMR2 PR2 匹配中断
bit 0 TMR1IE:TMR1 溢出中断使能位
1 = 允许 TMR1 溢出中断 0 = 禁止 TMR1 溢出中断
注: 要使能任何外设中断,必须置位 PEIE
INTCON<6>)。
图注:
R = 可读位 W = 可写位 U = 未使用,读为 0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
DS41206A_CN14 初稿  2004 Microchip Technology Inc.
PIC16F716
2.2.2.5 PIR1 寄存器
PIR1 寄存器包含各个外设的中断标志位。
寄存器 2-5 PIR1 寄存器 (地址:0Ch
U-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
—ADIF— CCP1IF TMR2IF TMR1IF
bit 7 bit 0
bit 7 未使用:读为 “0 bit 6 ADIF:A/D 转换器中断标志位
1 = A/D 转换已完成 (必须用软件清零) 0 = A/D 转换未完成
bit 5-3 未使用:读为 “0 bit 2 CCP1IF:CCP1 中断标志位
捕捉方式:
1 = TMR1 寄存器发生捕捉 (必须用软件清零) 0 = TMR1 寄存器未发生捕捉
比较方式:
1 = TMR1 寄存器发生比较匹配 (必须用软件清零) 0 = TMR1 寄存器未发生比较匹配
PWM
方式:
未使用
bit 1 TMR2IF:TMR2 PR2 匹配中断标志位
1 = TMR2 PR2 匹配发生 (必须用软件清零) 0 = TMR2 PR2 匹配未发生。
bit 0 TMR1IF:TMR1 溢出中断标志位
1 = TMR1 溢出 (必须用软件清零) 0 = TMR1 未溢出
注: 中断条件发生时,中断标志位就会被置 1,
而不管相应中断使能位或全局中断使能位 GIE INTCON<7>)的状态。 因此在使能 用中断前,用户软件必须把相应的中断标 志位清零。
图注:
R = 可读位 W = 可写位 U = 未使用,读为 “0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
2004 Microchip Technology Inc. 初稿 DS41206A_CN15
PIC16F716
2.2.2.6 PCON 寄存器
电源控制寄存器 (PCON)包含一个用以区分上电复位
POR)与外部 MCLR
些器件还包含另外一个用于区分上电复位和欠压复位的 标志位。
复位或 WDT 复位的标志位。这
寄存器 2-6 PCON 寄存器 (地址:8Eh
U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-q
—PORBOR
bit 7 bit 0
bit 7-2 未使用:读为 “0
bit 1 POR
bit 0 BOR:欠压复位状态位
:上电复位状态位
1 = 未发生上电复位 0 = 发生上电复位 (必须在上电复位后用软件置位)
1 = 未发生欠压复位 0 = 发生欠压复位 (必须在欠压复位后用软件置位)
图注: q = 其值取决于条件 R = 可读位 W = 可写位 U = 未使用,读为 “0
- n = 上电复位值 “1” = 该位被置位 “0” = 该位被清零 x = 未知
注: 如果 BOREN 配置位被置位,则 BOR 位在
上电复位时被置 “1”,在欠压复位条件发 生时被清零。 BOR 以后的复位中检测其是否被清零,如果是 则表示发生了欠压复位。
如果 BOREN 配置位被清零,上电复位时
位的状态不确定。
BOR
必须由用户置位,并在
DS41206A_CN16 初稿 2004 Microchip Technology Inc.
PIC16F716
2.3 PCL PCLATH
程序计数器 (PC)指向将要被执行的指令的地址。 PC13 位,其中的低字节是 PCL 寄存器。该寄存器可读 可写;高字节是 PCH 寄存器,它包含 PC<12:8> 位,不 可直接读写,但可以通过 PCLATH 寄存器间接写入。
2.3.1 修改 PCL
执行任何将PCL寄存器作为目的寄存器的指令将同时使 程序计数器 PC<12:8> 位(PCH)的值被 PCLATH 寄 存器的值替换。这将允许通过写 PCLATH 寄存器的高 5 位改变整个程序计数器的值。当低 8 位被写入 PCL 寄存 器时,所有程序计数器的 13 位都被修改为 PCLATH 寄 存器中的值和写到 PCL 寄存器的值。
通过修改 PCL 寄存器跳转到查找表或程序分支表 (执 行 GOTO 指令)时必须小心。PCLATH 被赋予表的起始 地址,如果表长度大于 255 条指令或者表中存储器地址 的低 8 位从 0xFF 循环返回到 0x00,在表的起始地址和 目标地址之间每次地址翻转时 PCLATH 必须递增 1
2.3.2 程序存储器分页
CALLGOTO指令提供 11 位地址,允许在 2K 程序存储 页面内跳转。指行 CALLGOTO 指令时,地址的高位 由 PCLATH<3> 提供。当执行 CALLGOTO 指令时, 用户必须事先设置了页面选择位,以便指向所需的程序 存储页面。如果执行 CALL 指令(或中断)的 RETURN, 整个 13 位的 PC 被全部压入堆栈。因此执行 RETURN指 令 (它将地址从堆栈中弹出)之前无需对 PCLATH<3> 位进行设置。

2-3: 不同情况下 PC 值装入情况

PCH
12 0
PCLATH<4:0>
5
PCLATH
PCH
12 1110
PCLATH<4:3>
2
PCLATH
87
8
PCL
目的寄存器
PCL
7
11
8
ALU
0
操作码 <10:0>
PCL 作为
的指令
GOTO, CALL
2.4 堆栈
堆栈允许最多 8 级程序调用和中断嵌套,堆栈包含从程 序分支返回的地址。
中档器件有一个 8 级深度 x13 位宽的硬件堆栈,堆栈空 间既不占用程序存储空间,也不占用数据存储空间,堆 栈指针不可读或写。当执行一条 CALL 指令或响应中断 发生程序跳转时, PC 被压入堆栈。当执行 RETURN、
RETLW RETFIE 指令时,堆栈中的地址就会被弹出到 PC 中。无论是 PUSH 或 POP操作都不会改变 PCLATH
寄存器的内容。
在堆栈压栈操作 8 次之后,进行第 9 次压栈时,进栈的 值将覆盖第一次压栈的数据,而第 10 次压栈的值将覆 盖第 2 次压栈的值,依此类推。
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 17
PIC16F716
2.5 间接寻址、 INDF FSR 寄存器
INDF 寄存器不是一个物理存在的寄存器. 对INDF 寄存 器寻址,实际上就是寻址地址包含在 FSR 寄存器(FSR
是一个指针)中的寄存器,这就是间接寻址。
2-1 间接寻址
寄存器 05 的值为 10h
寄存器 06 的值为 0Ah
将值 05 载入 FSR 寄存器
INDF 寄存器将返回值 10h
FSR 寄存器的值递增 1 FSR = 06
INDR 寄存器将返回值 0Ah 间接读 INDF 自身 (FSR = 0)将得到 00h。间接写
INDF 寄存器将导致空操作 (尽管 Status 寄存器可能会
受到影响)。
2-2 是一个使用间接寻址,将 RAM 地址 20h - 2Fh 的 内容清零的简单程序。

2-4:直接/ 间接寻址

RP1:
(2)
RP0 6
来自操作码
0
2-2 如何使用间接寻址将 RAM
MOVLW 0x20 ;initialize pointer
NEXT CLRF INDF ;clear RAM & FSR
CONTINUE
通过对 8 FSR 寄存器的内容与状态寄存器 Status IRP 位(Status<7>)组合可以得到一个 9 位的有效地
址,如 图 2-4 所示。但是,在 PIC16F716 IRP 位未 使用。
MOVWF FSR ;to RAM
INCF FSR ;inc pointer BTFSS FSR,4 ;all done? GOTO NEXT ;no, clear next
: ;yes, continue
间接寻址直接寻址
IRP FSR 寄存器
(2)
7
0
存储区选择 地址选择
00h
数据
(1)
存储器
7Fh
1: 数据寄存器映射详见见图 2-2
2: 保持清零以与将来的产品向上兼容。 3: 未使用。
00 01 10 11
80h
FFh
存储区 0 存储区 1 存储区 2 存储区 3
100h
(3) (3)
17Fh
180h
1FFh
存储区选择
地址选择
DS41206A_CN18 初稿 2004 Microchip Technology Inc.
PIC16F716

3.0 I/O

这些 I/O 口的某些引脚与器件外设功能复用。 一般来 讲,当某个外设使能时,相应的引脚不能作为一般的
I/O 引脚使用。
关于 I/O 口的其它信息,请参阅 《PICmicro 机系列参考手册》(DS33023A_CN)。
3.1 PORTA TRISA 寄存器
PORTA 是一个 5 位宽的双向端口,对应的数据方向控 制寄存器是 TRISATRISA 位置位 (=1)会将相应的 PORTA 引脚配置为输入 (也就是使得相应的输出驱动 器为高阻方式) 。 TRISA 位清零 (= 0)会将相应的 PORTA 引脚配置为输出 (也就是将输出锁存器的内容 输出到选定引脚)。
PORTA 寄存器即读相应引脚的状态,而写 PORTA 寄存器即写到端口锁存器。所有的写操作都是读-修改 -写操作。因此,写端口意味着先读此端口所有引脚, 修改其值,然后写到端口数据锁存器。
RA4 引脚与 Timer0 模块的时钟输入复用,成为 RA4/ T0CKI 引脚。RA4/T0CKI 引脚为施密特触发器输入,漏 极开路输出。所有其它 RA 端口引脚有 TTL 输入级和 CMOS 输出驱动器。
PORTA 引脚 RA3:0 复用为模拟输入和模拟 V
通过清零 / 置位 ADCON1 寄存器 (A/D 控制寄存器 1) 中的控制位来选择每个引脚的操作
注: 上电复位时,这些引脚被配置为模拟输
入,且读出时为 “0”。
TRISA 寄存器控制 RA 引脚的方向,即使当这些引脚用 作模拟输入时。当这些引脚用作模拟输入时,用户必须
确保 TRISA 寄存器中的位保持置位。
®
中档单片
REF 输入。
3-1:初PORTA
BCF STATUS, RP0 ; CLRFPORTA ;Initialize PORTA by
;clearing output
;data latches BSF STATUS, RP0 ;Select Bank 1 MOVLW0xEF ;Value used to
MOVWFTRISA ;Set RA<3:0> as inputs
BCF STATUS, RP0 ;Return to Bank 0
;initialize data
;direction
;RA<4> as outputs

3-1 RA3:RA0 引脚的结构框图

数据 总线
写 端口
TRIS
D
CK
数据锁存器
D
CK
TRIS 锁存器
Q
Q
Q
Q
TRIS
QD
VDD
P
N
V
模拟 输入 方式
VDD
SS
VSS
I/O 引脚
TTL
输入 缓冲器
注: 模拟方式下设置 RA3:0 为输出,将迫使引
脚输出数据锁存器的内容。
读端口
A/D 转换器
2004 Microchip Technology Inc. 初稿 DS41206A_CN19
EN
PIC16F716

3-2 RA4/T0CKI 引脚结构框图

数据 总线
写 端口
TRIS
读端口
TMR0 时钟输入
数据锁存器
Q
D
CK
Q
TRIS 锁存器
Q
D
CK
Q
TRIS
N
SS
V
VSS
施密特 触发器 输入 缓冲器
QD
EN
EN
RA4/T0CKI

3-1 PORTA 功能

名称 位编号
RA0/AN0 bit 0 TTL 输入 / 输出或模拟输入 RA1/AN1 bit 1 TTL 输入 / 输出或模拟输入 RA2/AN2 bit 2 TTL 输入 / 输出或模拟输入 RA3/AN3/V
REF bit 3 TTL 输入 / 输出或模拟输入或 VREF
RA4/T0CKI bit 4 ST 输入 / 输出或 Timer0 外部时钟输入
图注: TTL TTL 输入, ST =施密特触发器输入
缓冲器
输出是漏极开路类型
功能

3-2:与PORTA 相关的寄存器一览

地址 名称
05h PORTA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
85h TRISA
9Fh ADCON1
PCFG2 PCFG1 PCFG0 ---- -000 ---- -000
(1)
RA4 RA3 RA2 RA1 RA0 --xx 0000 --uu uuuu
(1)
PORTA 数据方向寄存器 --11 1111 --11 1111
PORBOR
时的值
图注: x =未知, u =未改变, - =未使用单元,读出时为 “0”。阴影部分未被 PORTA 使用。 1: 保留位,不要使用。
DS41206A_CN20 初稿 2004 Microchip Technology Inc.
其它复位
时的值
PIC16F716
3.2 PORTB TRISB 寄存器
PORTB 是一个 8 位宽的双向端口, 对应的数据方向寄 存器是 TRISB。把 TRISB 位置位 (= 1)会将相应的 PORTB 引脚配置为输入 (也就是使得相应的输出驱动 器呈高阻方式)。把 TRISB 位清零 (= 0)会将相应的 PORTB 引脚配置为输出 (也就是将输出锁存器的内容
输出到选定引脚)。
3-2:初PORTB
BCF STATUS, RP0 ;select Bank 0 CLRFPORTB ;Initialize PORTB by
;clearing output
;data latches BSF STATUS, RP0 ;Select Bank 1 MOVLW0xCF ;Value used to
;initialize data
;direction MOVWFTRISB ;Set RB<3:0> as inputs
;RB<5:4> as outputs
;RB<7:6> as inputs
每个 PORTB 引脚都有内部弱上拉电路,一个单独的控 制位可以打开所有的上拉,这通过清零 RBPU
OPTION_REG<7>)位完成。当端口配置为输出时,
弱上拉自动关闭。上电复位时上拉被禁止。
PORTB引脚 RB7:RB0与多个外设功能复用(表 3-3)。 当外设功能使能时,要谨慎定义每个 PORTB 引脚的
TRIS 位。有些外设改写 TRIS 位而使引脚为输出,而另 外一些外设改写 TRIS 位使引脚为输入。由于外设使能 时会改写 TRIS 位,应该避免使用以 TRISB 为目的寄存
器的读-修改-写指令(例如 BSF BCF 和 XORWF)。 用户可以参考相应的外设章节以便正确设置 TRIS 位。
PORTB 端口的 4 个引脚 RB7:RB4,有电平变化中断特 性。只有引脚配置为输入时才能产生中断 (即, RB7:RB4 中任一配置为输出的引脚都没有电平变化中 断比较功能)。输入引脚 RB7:RB4 的当前值与上次读 PORTB 时锁存的旧值比较,RB7:RB4 的“不匹配”输 出相或,产生 RB 端口电平变化中断,并将标志位 RBIF
INTCON<0>)置位。
这一中断可以把单片机从休眠状态唤醒。在中断服务程 序中,用户可以用下列方法清除中断:
1. PORTB 端口结束不匹配条件。
2. 清零标志位 RBIF
不匹配条件将继续置位标志位 RBIF。读 PORTB 将结束 不匹配条件并允许将标志位 RBIF 清零。
建议将电平变化中断功能用于按键唤醒操作和仅将 PORTB 用于电平变化中断功能的操作。使用电平变化 中断功能时,不需要查询 PORTB 的状态。

3-3 RB0/INT/ECCPAS2 引脚结构框图

VDD
DD
TTL
输入 缓冲器
EN
V
P
弱 上拉
VSS
读端口
RB0/ INT/ ECCPAS2
(1)
RBPU
数据 总线
写 端口
TRIS
RB0/INT
ECCPAS2: ECCP 自动关闭输入
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU
数据锁存器
QD
CK
TRIS 锁存器
QD
CK
TRIS
QD
读端口
施密特触发器 缓冲器
位(OPTION_REG<7>)清零。
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 21
PIC16F716

3-4 RB1/T1OSO/T1CKI 引脚结构框图

T1OSCEN
RBPU
DD
(1)
V
P
上拉
VDD
数据总线
PORTB
TRISB
TRISB
T1OSCEN
PORTB
T1OSI(接 RB2)
Timer1 时钟输入
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU 位(OPTION_REG<7>)清零。
数据锁存器
QD
Q
CK
TRIS 锁存器
QD
Q
CK
VSS
TTL 缓冲器
D
Q
EN
TMR1 振荡器
ST 缓冲器
RB1/T1OSO/T1CKI

3-5 RB2/T1OSI 引脚结构框图

DD
(1)
T1OSCEN
数据总线
PORTB
TRISB
TRIS
T1OSCEN
PORTB
T1OSO(至 RB1)
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU 位(OPTION_REG<7>)清零。
数据锁存器
QD
Q
CK
TRIS 锁存器
QD
Q
CK
RBPU
TTL 缓冲器
DQ
EN
V
P
上拉
VDD
RB2/T1OSI
VSS
TMR1
振荡器
DS41206A_CN22 初稿 2004 Microchip Technology Inc.

3-6 RB3/CCP1/P1A 引脚结构框图

[PWMA(P1A) / CCP1 比较 ] 输出使能
[PWMA(P1A) / CCP1 比较 ] 输出
PWMA(P1A)自动关闭三态
数据总线
PORTB
TRISB
数据锁存器
CK
TRIS 锁存器
CK
1
0
QD
Q
QD
Q
RBPU
PIC16F716
DD
(1)
V
P
上拉
VDD
RB3/CCP1/P1A
VSS
TRIS
Q
D
EN
PORTB
CCP -捕捉输入
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU 位(OPTION_REG<7>)清零。
3-7 RB4/ECCPAS0
(1)
RBPU
数据总线
PORTB
TRISB
施密特触发器缓冲器
引脚结构框图
数据锁存器
QD
CK
TRIS 锁存器
QD
CK
TTL 缓冲器
DD
V
P
TTL
缓冲器
弱 上拉
ST
缓冲器
VDD
RB4/ECCPAS0
VSS
TRIS
置位 RBIF
接其它
RB7:RB4 引脚
ECCPAS0::ECCP 自动关闭输入
PORT
锁存器
QD
EN
QD
EN
Q1
PORTB
Q3
1: 为使能弱上拉,需置位相应的
TRIS 位并将 RBPU
OPTION_REG<7>)清零。
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 23
PIC16F716

3-8 RB5/P1B 引脚结构框图

PWMB(P1B)使 能 PWMB(P1B)数据输出
PWMB(P1B) 自动关闭三态
数据总线
PORTB
TRISB
数据锁存器
QD
CK
TRIS 锁存器
QD
Q
CK
RBPU
DD
(1)
1
0
V
弱 上拉
TTL
缓冲器
VDD
RB5/P1B
VSS
P
TRISB
置位 RBIF
接其它 RB7:RB4 引脚
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU
PORTB

3-9 RB6/P1C 引脚结构框图

PWMC(P1C)使 能 PWMC(P1C)数据输出
PWMC(P1C) 自动关闭三态
数据总线
PORTB
TRISB
数据锁存器
QD
CK
TRIS 锁存器
QD
Q
CK
锁存器
QD
QD
EN
(1)
RBPU
1
0
EN
Q1
PORTB Q3
位(OPTION_REG<7>)清零。
DD
V
P
ST
缓冲器
弱 上拉
TTL
缓冲器
VDD
RB6/P1C
VSS
TRISB
置位 RBIF
接其它
RB7:RB4 引脚
ICSPC — 在线串行编程时钟输入
1: 为使能弱上拉,需置位相应的 TRIS 位并将 RBPU
PORTB
锁存器
QD
QD
EN
EN
位(OPTION_REG<7>)清零。
Q1
PORTB Q3
DS41206A_CN24 初稿  2004 Microchip Technology Inc.
PIC16F716

3-10 RB7/P1D 引脚结构框图

PWMD(P1D)使 能 PWMD(P1D)数据输出
PWMD(P1D)自动关闭三态
数据总线
PORTB
TRISB
置位 RBIF
接其它
RB7:RB4 引脚
ICSPD - 在线串行编程时钟输入
数据锁存器
QD
CK
TRIS 锁存器
QD
Q
CK
TRISB
PORTB
(1)
RBPU
1
0
QD
QD
EN
锁存器
EN
PORTB
Q3
Q1
ST
缓冲器
DD
V
P
VDD
上拉
RB7/P1D
VSS
TTL
缓冲器
1: 为使能弱上拉,需置位相应
TRIS 位并将 RBPU
OPTION_REG<7>)清
零。

3-3 PORTB 功能

名称 位号
RB0/INT/
bit 0 TTL/ST
ECCPAS2 RB1/T1OS0/
bit 1 TTL/ST
T1CKI RB2/T1OSI bit 2 TTL/XTAL 输入 / 输出引脚或 Timer1 振荡器输入。内部软件可编程弱上拉。具体操作
RB3/CCP1/
bit 3 TTL/ST
P1A RB4/
bit 4 TTL 输入 / 输出引脚 (带电平变化中断)。内部软件可编程弱上拉。 ECCP 自
ECCPAS0 RB5/P1B bit 5 TTL 输入 / 输出引脚 (带电平变化中断)。内部软件可编程弱上拉。 PWM B
RB6/P1C bit 6 TTL/ST
RB7/P1D bit 7 TTL/ST
图注: TTL TTL 输入, ST =施密特触发器输入, XTAL =晶体振荡器输入。 注 1: 当配置为外部中断或外设输入时,该缓冲器为施密特触发器输入。
2: 当用于串行编程方式时,该缓冲器为施密特触发器输入。
缓冲器
功能
(1)
输入 / 输出引脚或外部中断输入。内部软件 可编程弱上拉。 ECCP 自动关闭输入。
(1)
输入 / 输出引脚或 Timer1 振荡器输出,或 Timer1 时钟输入。内部软件可编 程弱上拉。具体操作请参见第 5.0 节“Timer1 模块”
请参见第 5.0 节“Timer1 模块”
(1)
输入 / 输出引脚或捕捉 1 输入,或比较 1 输出,或 PWM A 输出。内部软件 可编程弱上拉。具体操作请参见 CCP1 章节。
动关闭输入。
出。
(2)
输入 / 输出引脚 (带电平变化中断)。内部软件可编程弱上拉。 PWM C 输 出。串行编程时钟。
(2)
输入 / 输出引脚 (带电平变化中断)。内部软件可编程弱上拉。 PWM D 输 出。串行编程数据。
2004 Microchip Technology Inc. 初稿 DS41206A_CN 第 25
PIC16F716

3-4:和PORTB 有关的寄存器一览

地址 名称
06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu 86h TRISB PORTB 数据方向寄存器。 1111 1111 1111 1111
81h OPTION_REG RBPU
图注: x =未知, u =未改变。阴影部分未被 PORTB 使用。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
POR BOR
时的值
其它复位
时的值
DS41206A_CN26 初稿 2004 Microchip Technology Inc.
PIC16F716

4.0 TIMER0 模块

Timer0 模块定时器 / 计数器有以下特性:
•8位定时器 / 计数器
可读可写
可选择内部或外部时钟信号
外部时钟边沿选择
软件可编程的 8 位预分频器
FFh 计数到 00h 时,发生溢出中断
4-1 Timer0 模块的简化原理图。
®
关于定时器模块的其它信息,请参阅 《PICmicro 单片机系列参考手册》(DS33023A_CN)。
4.1 Timer0 操作
Timer0 可以作为定时器或计数器。
通过清零 T0CSOPTION_REG<5>)位可以设置为定 时器方式。在定时器方式下,Timer0 模块在每个指令周 期递增 1 (不使用预分频器)。如果 TMR0 寄存器被写 入,则在随后的两个指令周期中禁止递增计数。用户可 以通过写一个调整值到 TMR0 寄存器来避开这一点。
通过对 T0CS OPTION_REG<5>)位置 1 可以设置为 计数器方式。在计数器方式下, Timer0 在引脚 RA4/ T0CKI/C1OUT 的每个上升沿或下降沿递增 1。在哪 个沿 递增由时钟源边沿选择位 T0SE OPTION_REG<4>) 位来确定。将 T0SE 清零选择为上升沿,将其置 1 则选 择下降沿。下面将讨论对外部时钟输入的限制。
如果外部时钟输入用于 Timer0,它必须满足一些要求。 这些要求确保外部时钟与内部相位时钟(T 此外,同步后 Timer0 的实际递增技术会有延时。
关于外部时钟要求的其它信息,请参阅 《PICmicro 档单片机系列参考手册》(DS33023A_CN)。
OSC)同步。
中档
®
4.2 预分频器
片内有一个 8 位计数器,可作为 Timer0 模块的预分频 器,或看门狗的后分频器,同一时刻只能用于其一
(图 4-2)。为方便起见,本数据手册称之为 “预分频
器”。
注: 片内只有一个预分频器,为 Timer0 模块和
看门狗共用。 如果把预分频器分配给 TMR0 模块,就意味着 WDT 无后分频器可 用,反之亦然。
该预分频器是不可读写的。
PSA PS2:PS0 位( OPTION_REG<3:0>)用于确定预 分频器的分配和预分频比。
PSA 位为 0 时将预分频器分配给 Timer0 模块。当预分 频器分配给 Timer0 模块时,可选的预分频比有 1:2
1:4,……, 1:256
PSA 位为 1 时将预分频器分配给看门狗 (WDT)。当
预分频器分配给 WDT 时,可选的预分频比有 1:11:2, ……, 1:128
当预分频器分配给 Timer0 模块时,所有写 TMR0 寄存 器的指令 (如 CLRF TMR0MOVWF TMR0BSF 1,x
等) 都将对预分频器清零。当预分频器分配给 WDT时, CLRWDT 指令将同时对预分频器和 WDT 清零。
注: 当预分频器用于 Timer0 时,写 TMR0 寄
存器会将预分频器计数值清零,但不影响 预分频器分配。
注: 对于 TMR0 寄存器,为得到 1:1 的预分频
比,可将预分频器分配给看门狗。

4-1 TIMER0 原理图

数据总线
T0CS
0
1
(1)
可编程
预分频器
3
PS2、PS1、PS0
OUT
PS
1
与片内时钟同步
PSA
0
(两周期的延迟)
(1)
(2)
(1)
PSOUT
TMR0
8
溢出时将
中断标志位
T0IF 置位
FOSC/4
RA4/T0CKI
引脚
1T0CST0SEPSA PS2:PS0 OPTION_REG<5:0>)。
2: 预分频器与看门狗共用 (详细原理图请参考图 4-2)。
2004 Microchip Technology Inc. 初稿 DS41206A_CN27
T0SE
(1)
PIC16F716
4.2.1 切换预分频器分配
预分频器的分配完全由软件控制(即可以在程序执行时 实时地改变分配)。
注: 为了避免意外的器件复位,当把预分频器
Timer0 重分配给 WDT 时,必须执行一 特定指令序列 (参见 《PICmicro
®
中档单
片机系列参考手册
DS33023A_CN))。即使禁止 WDT 时也
要执行这个指令序列。

4-2 TIMER0/WDT 预分频器原理图

CLKOUT(=F
RA4/T0CKI
引脚
看门狗 定时器
OSC/4
T0SE
M
0
U X
1
T0CS
0
M
U
1
X
PSA
8 位预分频器
8
8 1 MUX
4.3 Timer0 中断
TMR0 寄存器溢出( 从 FFh 00h)时 ,产 生 TMR0 中断,并置位 T0IF 位(INTCON<2>)。中断可通过清
T0IE INTCON<5>)来屏蔽。重新使能该中断前, 必须在中断服务程序中将 T0IF 位清零。由于休眠状态 下 TMR0 被关闭,所以 TMR0 中断不能唤醒单片机。
数据总线
1
M U
0
X
PSA
同步
2
周期
PS2:PS0
TMR0 寄存器
8
溢出时置位
标志位 T0IF
M U X
WDT
超时
1
PSA
WDT 使能位
注: T0CST0SEPSA PS2:PS0 为(OPTION_REG<5:0>)。
0

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

地址 名称
01h TMR0 Timer0 模块寄存器 xxxx xxxx uuuu uuuu
0Bh,8Bh INTCON GIE 81h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
85h TRISA
图注: x = 未知, u = 不变,- = 未使用,读出值为 “0”。 阴影部分 Timer0 未使用。 1: 保留位,不要使用。
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
(1)
Bit 4 PORTA 数据方向寄存器 --11 1111 --11 1111
POR
BOR 复位值
其它复位值
DS41206A_CN28 初稿 2004 Microchip Technology Inc.
Loading...
+ 96 hidden pages