pic16(l)f1703/7 - microchip · © 2014 microchip technology inc. 初稿 ds40001722a_cn 第1 页...

341
© 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 1 PIC16(L)F1703/7 内核特性: 优化的 C 编译器 RISC 架构 仅需学习 49 条指令 工作速度: - 0-32 MHz - 最小指令周期为 125 ns 中断能力 • 16 级深硬件堆栈 最多 4 8 位定时器 • 1 16 位定时器 上电复位 (Power-on Reset POR上电延时定时器 (Power-up TimerPWRT低功耗欠压复位 (Low-Power Brown-out Reset LPBOR可编程看门狗定时器(Watchdog TimerWDT), 最高 256s 可编程代码保护 存储器: • 2K 字的闪存程序存储器 • 256 字节的数据 SRAM 存储器 直接、间接和相对寻址模式 工作特性: 工作电压范围: - 1.8V 3.6V PIC16LF1703/7- 2.3V 5.5V PIC16F1703/7温度范围: - 工业级:-40°C 85°C - 扩展级:-40°C 125°C 超低功耗 (eXtreme Low-PowerXLP特性: 休眠模式:50 nA 1.8V 时,典型值) 看门狗定时器:500 nA 1.8V 时,典型值) 辅助振荡器:500 nA 32 kHz工作电流: -8 μA 32 kHz1.8V 时,典型值) - 32 μA/MHz 1.8V 时,典型值) 数字外设: 捕捉 / 比较 /PWM Capture/Compare/PWMCCP模块 串行通信: - SPI I 2 C™ 最多 18 I/O 引脚和 1 个输入引脚: - 可单独编程的弱上拉 - 压摆率控制 - 带边沿选择的电平变化中断 外设引脚选择 (Peripheral Pin Select PPS): - 支持数字 I/O 的引脚映射 智能模拟外设: 运算放大器: -2 个可配置轨到轨运放 - 可选的内部和外部通道 - 2 MHz 增益带宽积 • 10 位模数转换器 (Analog-to-Digital ConverterADC): - 最多 28 路外部通道 - 可在休眠模式下进行转换 - 温度指示器 过零检测器 (Zero-Cross DetectorZCD): - 检测引脚上的交流信号何时越过地电压 时钟结构: • 16 MHz 内部振荡器模块: - 校准至 ±1% - 可选频率范围:0 MHz 32 MHz • 31 kHz 低功耗内部振荡器 外部振荡器模块具有: -3 种晶振 / 谐振器模式,频率最高为 20 MHz -2 种外部时钟模式,频率最高为 32 MHz 故障保护时钟监视器 双速振荡器启动 振荡器起振定时器(Oscillator Start-up TimerOST编程 / 调试特性: 片上集成的在线调试功能 用于高级调试的仿真连接头: - 提供跟踪、后台调试和最多 32 个硬件断点 通过两个引脚进行在线串行编程 (In-Circuit Serial Programming™ICSP™14/20 引脚 8 位高级模拟闪存单片机

Upload: others

Post on 15-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • PIC16(L)F1703/714/20 引脚 8 位高级模拟闪存单片机

    内核特性:

    • 优化的 C 编译器 RISC 架构• 仅需学习 49 条指令• 工作速度:

    - 0-32 MHz- 最小指令周期为 125 ns

    • 中断能力 • 16 级深硬件堆栈• 最多 4 个 8 位定时器• 1 个 16 位定时器• 上电复位 (Power-on Reset ,POR)• 上电延时定时器 (Power-up Timer, PWRT)• 低功耗欠压复位 (Low-Power Brown-out Reset,

    LPBOR)• 可编程看门狗定时器(Watchdog Timer,WDT),最高 256s

    • 可编程代码保护

    存储器:

    • 2K 字的闪存程序存储器• 256 字节的数据 SRAM 存储器• 直接、间接和相对寻址模式

    工作特性:

    • 工作电压范围:- 1.8V 至 3.6V (PIC16LF1703/7)- 2.3V 至 5.5V (PIC16F1703/7)

    • 温度范围:- 工业级: -40°C 至 85°C- 扩展级:-40°C 至 125°C

    超低功耗 (eXtreme Low-Power, XLP)特性:

    • 休眠模式: 50 nA (1.8V 时,典型值)• 看门狗定时器:500 nA (1.8V 时,典型值)• 辅助振荡器: 500 nA (32 kHz)• 工作电流:

    - 8 μA (32 kHz, 1.8V 时,典型值)- 32 μA/MHz (1.8V 时,典型值)

    数字外设:

    • 捕捉 / 比较 /PWM(Capture/Compare/PWM,CCP)模块

    • 串行通信:- SPI 和 I2C™

    • 最多 18 个 I/O 引脚和 1 个输入引脚:- 可单独编程的弱上拉- 压摆率控制- 带边沿选择的电平变化中断

    • 外设引脚选择 (Peripheral Pin Select ,PPS):- 支持数字 I/O 的引脚映射

    智能模拟外设:

    • 运算放大器:- 2 个可配置轨到轨运放- 可选的内部和外部通道- 2 MHz 增益带宽积

    • 10 位模数转换器 (Analog-to-Digital Converter,ADC):- 最多 28 路外部通道- 可在休眠模式下进行转换- 温度指示器

    • 过零检测器 (Zero-Cross Detector, ZCD):- 检测引脚上的交流信号何时越过地电压

    时钟结构:

    • 16 MHz 内部振荡器模块:- 校准至 ±1%- 可选频率范围:0 MHz 至 32 MHz

    • 31 kHz 低功耗内部振荡器• 外部振荡器模块具有:

    - 3 种晶振 / 谐振器模式,频率最高为 20 MHz- 2 种外部时钟模式,频率最高为 32 MHz

    • 故障保护时钟监视器• 双速振荡器启动• 振荡器起振定时器(Oscillator Start-up Timer,OST)

    编程 / 调试特性:• 片上集成的在线调试功能• 用于高级调试的仿真连接头:

    - 提供跟踪、后台调试和最多 32 个硬件断点• 通过两个引脚进行在线串行编程(In-Circuit Serial

    Programming™, ICSP™)

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 1 页

  • PIC16(L)F1703/7

    PIC16(L)F170X 系列类型

    器件

    数据手册

    索引

    闪存程

    序存储

    (字)

    数据

    SRA

    M(字节

    I/O(2

    )

    10位

    AD

    C(通道

    8位

    DA

    C

    高速

    /比较

    运放

    过零

    定时器

    (8/

    16位)

    CC

    P

    PWM

    CO

    G

    EUSA

    RT

    MSS

    P(

    I2C

    ™/S

    PI)

    CLC

    PPS

    调试

    (1)

    XLP

    PIC16(L)F1703 (3) 2048 256 12 8 0 0 2 1 2/1 2 0 0 0 1 0 有 I/E 有

    PIC16(L)F1704 (1) 4096 512 12 8 1 2 2 1 4/1 2 2 1 1 1 3 有 I/E 有

    PIC16(L)F1705 (2) 8192 1024 12 8 1 2 2 1 4/1 2 2 1 1 1 3 有 I/E 有

    PIC16(L)F1707 (3) 2048 256 18 8 0 0 2 1 2/1 2 0 0 0 1 0 有 I/E 有

    PIC16(L)F1708 (1) 4096 512 18 12 1 2 2 1 4/1 2 2 1 1 1 3 有 I/E 有

    PIC16(L)F1709 (2) 8192 1024 18 12 1 2 2 1 4/1 2 2 1 1 1 3 有 I/E 有

    注 1: 调试方法: (I) —— 片上集成; (H) —— 使用调试连接头; E —— 使用仿真连接头。2: 其中一个引脚仅用作输入。

    数据手册索引:(本文档仅介绍未用阴影表示的器件。)

    1: DS40001715B PIC16(L)F1704/8 数据手册, 14/20 引脚 8 位闪存单片机。2: 未来版本 PIC16(L)F1705/9 数据手册, 14/20 引脚 8 位闪存单片机。3: 未来版本 PIC16(L)F1703/7 数据手册, 14/20 引脚 8 位闪存单片机。

    注: 关于其他小型封装的供货和标识信息,请访问 http://www.microchip.com/packaging 或联系当地的销售办事处。

    DS40001722A_CN 第 2 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    引脚图

    图 1: PIC16(L)F1703 的 14 引脚图

    图 2: PIC16(L)F1703 的 16 引脚封装图

    PDIP、SOIC 和 TSSOP

    PIC

    16(L

    )F17

    03

    1234567

    VDDRA5RA4

    VPP/MCLR/RA3RC5RC4RC3

    RA0/ICSPDATRA1/ICSPCLKRA2RC0RC1RC2

    1413121110

    98

    VSS

    23

    1

    9101112

    RC

    4

    4

    VS

    S

    RA0/ICSPDATRA1/ICSPCLKRA2RC0

    NCNC

    VD

    D

    RA5RA4

    RA3/MCLR/VPPRC5

    RC

    3R

    C2

    RC

    1

    6 75 8

    15 1416 13

    PIC16(L)F1703

    QFN

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 3 页

  • PIC16(L)F1703/7

    图 3: PIC16(L)F1707 的 20 引脚封装图

    图 4: PIC16(L)F1707 的 20 引脚封装图

    PDIP、SOIC 和 SSOP

    PIC

    16(L

    )F17

    07

    2

    3

    4

    5

    6

    7

    8

    9

    10

    VDD

    RA5

    RA4

    VPP/MCLR/RA3

    RC5

    RC4

    RC3RC6

    RC7

    RB7

    RA0/ICSPDAT

    RA1/ICSPCLK

    RA2

    RC0

    RC1

    RC2RB4

    RB5

    RB6

    20

    19

    18

    17

    16

    15

    1413

    12

    11

    VSS1

    QFN

    2345

    1

    6 7 8 9

    20 19 18 17 1610

    12131415

    11

    PIC16(L)F1707

    RB4

    RB5

    RB6

    RB7

    RC

    7

    VPP/MCLR/RA3RC5RC4RC3RC6

    RA

    4R

    A5

    VD

    DVS

    SR

    A0/

    ICSP

    DAT

    RA1/ICSPCLKRA2RC0RC1RC2

    DS40001722A_CN 第 4 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    表 1: 14/16 引脚分配表 (PIC16(L)F1703)

    I/O(2

    )

    PDIP

    /SO

    IC/T

    SSO

    P

    QFN

    AD

    C

    参考

    电压

    运放

    过零

    定时

    CC

    P

    MSS

    P

    中断

    上拉

    基本

    功能

    RA0 13 12 AN0 VREF- — — — — — IOC 有 ICSPDAT

    RA1 12 11 AN1 VREF+ — — — — — IOC 有 ICSPCLK

    RA2 11 10 AN2 — — ZCD T0CKI(1) — — INT(1)

    IOC 有 —

    RA3 4 3 — — — — — — — IOC 有MCLRVPP

    RA4 3 2 AN3 — — —T1G(1)

    SOSCO — — IOC 有CLKOUT

    OSC2

    RA5 2 1 — — — — T1CKI(1)

    SOSCI — — IOC 有CLKINOSC1

    RC0 10 9 AN4 — OPA1IN+ — — — SCK(1)

    SCL(3) IOC 有 —

    RC1 9 8 AN5 — OPA1IN- — — — SDI(1)

    SDA(3) IOC 有 —

    RC2 8 7 AN6 — OPA1OUT — — — — IOC 有 —

    RC3 7 6 AN7 — OPA2OUT — — CCP2(1) SS(1) IOC 有 —

    RC4 6 5 — — OPA2IN- — — — — IOC 有 —

    RC5 5 4 — — OPA2IN+ — — CCP1(1) — IOC 有 —

    VDD 1 16 — — — — — — — — — VDD

    VSS 14 13 — — — — — — — — — VSS

    OUT(2)

    — — — — — — — CPP1 SDA(3) — — —

    — — — — — — — CPP2 SCL(3)

    SCK — — —

    — — — — — — — — SDO — — —

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。 2: 所有引脚数字输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为外设数字输出。3: 这些外设功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 5 页

  • PIC16(L)F1703/7

    表 2: 20 引脚分配表 (PIC16(L)F1707)I/O

    (2)

    PDIP

    /SO

    IC/S

    SOP

    QFN

    AD

    C

    参考

    电压

    运放

    过零

    定时器

    CC

    P

    MSS

    P

    中断

    上拉

    基本

    功能

    RA0 19 16 AN0 VREF- — — — — — IOC 有 ICSPDAT

    RA1 18 15 AN1 VREF+ — — — — — IOC 有 ICSPCLK

    RA2 17 14 AN2 — — ZCD T0CKI(1) — — INT(1)

    IOC 有 —

    RA3 4 1 — — — — — — — IOC 有MCLRVPP

    RA4 3 20 AN3 — — —T1G(1)

    SOSCO — — IOC 有CLKOUT

    OSC2

    RA5 2 19 — — — — T1CKISOSCI — — IOC 有CLKINOSC1

    RB4 13 10 AN10 — OPA1IN- — — —SCK(1)

    SDA(3) IOC 有 —

    RB5 12 9 AN11 — OPA1IN+ — — — — IOC 有 —

    RB6 11 8 — — — — — —SDI(1)

    SCL(3) IOC 有 —

    RB7 10 7 — — — — — — — IOC 有 —

    RC0 16 13 AN4 — — — — — — IOC 有 —

    RC1 15 12 AN5 — — — — — — IOC 有 —

    RC2 14 11 AN6 — OPA1OUT — — — — IOC 有 —

    RC3 7 4 AN7 — OPA2OUT — — CCP2(1) — IOC 有 —

    RC4 6 3 — — — — — — — IOC 有 —

    RC5 5 2 — — — — — CCP1(1) — IOC 有 —

    RC6 8 5 AN8 — OPA2IN- — — — SS(1) IOC 有 —

    RC7 9 6 AN9 — OPA2IN+ — — — — IOC 有 —

    VDD 1 18 — — — — — — — — — VDD

    VSS 20 17 — — — — — — — — — VSS

    OUT(2)

    — — — — — — — CPP1 SDA(3) — — —

    — — — — — — — CPP2 SCL(3)

    SCK — — —

    — — — — — — — — SDO — — —

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。 2: 所有引脚数字输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为外设数字输出。3: 这些外设功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    DS40001722A_CN 第 6 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    目录

    1.0 器件概述 ...................................................................................................................................................................................... 92.0 增强型中档 CPU........................................................................................................................................................................ 153.0 存储器构成 ................................................................................................................................................................................ 174.0 器件配置 ................................................................................................................................................................................... 485.0 复位 .......................................................................................................................................................................................... 546.0 振荡器模块 (带故障保护时钟监视器) .................................................................................................................................... 627.0 中断 ........................................................................................................................................................................................... 808.0 掉电模式 (休眠) ..................................................................................................................................................................... 939.0 看门狗定时器(WDT) ............................................................................................................................................................ 9710.0 闪存程序存储器控制 ................................................................................................................................................................ 10211.0 I/O 端口 ................................................................................................................................................................................... 11812.0 外设引脚选择(PPS)模块 .................................................................................................................................................... 13613.0 电平变化中断 ........................................................................................................................................................................... 14314.0 固定参考电压(FVR) ............................................................................................................................................................ 14915.0 温度指示器模块 ....................................................................................................................................................................... 15116.0 模数转换器 (ADC)模块 ....................................................................................................................................................... 15317.0 运算放大器 (OPA)模块 ....................................................................................................................................................... 16718.0 过零检测 (ZCD)模块 ........................................................................................................................................................... 17019.0 Timer0 模块 ............................................................................................................................................................................. 17420.0 带门控控制的 Timer1 模块 ....................................................................................................................................................... 17721.0 Timer2 模块 ............................................................................................................................................................................. 18822.0 捕捉 / 比较 /PWM 模块 ............................................................................................................................................................ 19223.0 主同步串行端口 (MSSP)模块 .............................................................................................................................................. 20224.0 在线串行编程(ICSP™) ........................................................................................................................................................ 25425.0 指令集汇总 .............................................................................................................................................................................. 25626.0 电气规范 .................................................................................................................................................................................. 27027.0 直流和交流特性图表 ................................................................................................................................................................ 29928.0 开发支持 .................................................................................................................................................................................. 31329.0 封装信息 .................................................................................................................................................................................. 317Microchip 网站 ................................................................................................................................................................................... 338变更通知客户服务 ............................................................................................................................................................................. 338客户支持 ............................................................................................................................................................................................ 338产品标识体系 .................................................................................................................................................................................... 339

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 7 页

  • PIC16(L)F1703/7

    致 客 户我们旨在提供最佳文档供客户正确使用 Microchip 产品。 为此,我们将不断改进出版物的内容和质量,使之更好地满足您的需求。出版物的质量将随新文档及更新版本的推出而得到提升。

    如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 [email protected] 。我们期待您的反馈。

    最新数据手册

    欲获得本数据手册的最新版本,请访问我公司网站:

    http://www.microchip.com

    查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中紧跟数字串后的字母是版本号,例如:DS300000000A_CN是文档的 A 版本。

    勘误表

    现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。欲了解某一器件是否存在勘误表,请通过以下方式之一查询:

    • Microchip 网站 http://www.microchip.com• 当地 Microchip 销售办事处(见最后一页)

    在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。

    客户通知系统

    欲及时获知 Microchip 产品的最新信息,请到我公司网站 http://www.microchip.com 上注册。

    DS40001722A_CN 第 8 页 初稿 © 2014 Microchip Technology Inc.

    mailto:[email protected]://www.microchip.comhttp://www.microchip.comhttp://www.microchip.com

  • PIC16(L)F1703/7

    1.0 器件概述本数据手册介绍了 PIC16(L)F1703/7 器件。 提供 14 引脚和 20 引脚 DIP 封装,以及 16 引脚和 20 引脚 QFN 封装。图 1-1给出了PIC16(L)F1703/7 器件的框图。表 1-2给出了引脚说明。

    关于每款器件的可用外设,请参见表 1-1。

    表 1-1: 器件外设汇总

    外设

    PIC

    16(L

    )F17

    03

    PIC

    16(L

    )F17

    07

    模数转换器(ADC) ● ●

    固定参考电压(FVR) ● ●

    过零检测 (ZCD) ● ●

    温度指示器 ● ●

    捕捉 / 比较 /PWM (CCP/ECCP)模块CCP1 ● ●CCP2 ● ●

    主同步串行端口

    MSSP ● ●

    运放

    运放 1 ● ●

    运放 2 ● ●

    定时器

    Timer0 ● ●Timer1 ● ●Timer2 ● ●

    2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 9 页

  • PIC16(L)F1703/7

    图 1-1: PIC16(L)F1703/7 框图

    PORTA

    PORTB(1)

    PORTC

    注 1: 仅限 PIC16(L)F1707。2: 关于外设的更多信息,请参见适用章节。

    CPU

    闪存

    程序存储器RAM

    时序发生

    LFINTOSC振荡器

    MCLR

    图 1-1

    CLKIN

    CLKOUT

    10 位 FVR温度指示器

    MSSPTimer2Timer1Timer0

    CCP

    运放

    HFINTOSC/

    ZCD

    ADC

    DS40001722A_CN 第 10 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    表 1-2: PIC16(L)F1703 引脚说明

    名称 功能输入

    类型

    输出

    类型说明

    RA0/AN0/VREF-/ICSPDAT RA0 TTL/ST CMOS 通用 I/O。AN0 AN — ADC 通道 0 的输入。

    VREF- AN — ADC 负参考电压输入。ICSPDAT ST CMOS ICSP™ 数据 I/O。

    RA1/AN1/VREF+/ICSPCLK RA1 TTL/ST CMOS 通用 I/O。AN1 AN — ADC 通道 1 的输入。

    VREF+ AN — ADC 参考电压输入。ICSPCLK ST — 串行编程时钟。

    RA2/AN2/ZCD/T0CKI(1)/INT(1) RA2 TTL/ST CMOS 通用 I/O。AN2 AN — ADC 通道 2 的输入。ZCD — AN 过零检测拉电流 / 灌电流。

    T0CKI ST — Timer0 时钟输入。INT ST — 外部中断。

    RA3/MCLR/VPP RA3 TTL/ST CMOS 通用 I/O。MCLR ST — 带内部上拉的主复位。VPP HV — 编程电压。

    RA4/AN3/T1G(1)/SOSCO/OSC2/CLKOUT

    RA4 TTL/ST CMOS 通用 I/O。AN3 AN — ADC 通道 3 的输入。T1G ST — Timer1 门控输入。

    SOSCO XTAL XTAL 辅助振荡器连接。OSC2 — XTAL 晶振 / 谐振器(LP、 XT 和 HS 模式)。

    CLKOUT — CMOS FOSC/4 输出。RA5/T1CKI(1)/SOSCI/OSC1/CLKIN RA5 TTL/ST CMOS 通用 I/O。

    T1CKI ST — Timer1 时钟输入。SOSCI XTAL XTAL 辅助振荡器连接。OSC1 — XTAL 晶振 / 谐振器(LP、 XT 和 HS 模式)。CLKIN ST — 外部时钟输入 (EC 模式)。

    RC0/AN4/OPA1IN+/SCK(1)/SCL(3) RC0 TTL/ST CMOS 通用 I/O。AN4 AN — ADC 通道 4 的输入。

    OPA1IN+ AN — 运算放大器 1 的同相输入。SCK ST CMOS SPI 时钟。SCL I2C OD I2C™ 时钟。

    RC1/AN5/OPA1IN-/SDI(1)/SDA(3) RC1 TTL/ST CMOS 通用 I/O。AN5 AN — ADC 通道 5 的输入。

    OPA1IN- AN — 运算放大器 1 的反相输入。SDI CMOS — SPI 数据输入。SDA I2C OD I2C 数据输入 / 输出。

    RC2/AN6/OPA1OUT RC2 TTL/ST CMOS 通用 I/O。AN6 AN — ADC 通道 6 的输入。

    OPA1OUT — AN 运算放大器 1 的输出。图注: AN =模拟输入或输出 CMOS= CMOS 兼容输入或输出 OD = 漏极开路

    TTL = TTL 兼容输入 ST = 带 CMOS 电平的施密特触发器输入 I2C™ = 带 I2C电平的施密特触发器输入 HV =高电压 XTAL = 晶振

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。请参见寄存器 12-1。2: 所有引脚输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为数字外设输出。请参见

    寄存器 12-3。3: 这些 I2C 功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 11 页

  • PIC16(L)F1703/7

    RC3/AN7/OPA2OUT/CCP2(1)/SS(1) RC3 TTL/ST CMOS 通用 I/O。AN7 AN — ADC 通道 7 的输入。

    OPA2OUT — AN 运算放大器 2 的输出。CCP2 ST CMOS 捕捉 / 比较 /PWM2。

    SS ST — 从选择输入。RC4/OPA2IN- RC4 TTL/ST CMOS 通用 I/O。

    OPA2IN- AN — 运算放大器 2 的反相输入。RC5/OPA2IN+/CCP1(1) RC5 TTL/ST CMOS 通用 I/O。

    OPA2IN+ AN — 运算放大器 2 的同相输入。CCP1 ST CMOS 捕捉 / 比较 /PWM1。

    VDD VDD 电源 — 正电源。VSS VSS 电源 — 参考地。OUT(2) CCP1 — CMOS 捕捉 / 比较 /PWM1 输出。

    CCP2 — CMOS 捕捉 / 比较 /PWM2 输出。SDA(3) — OD I2C™ 数据输入 / 输出。SDO — CMOS SPI 数据输出。SCK — CMOS SPI 时钟输出。

    SCL(3) I2C OD I2C 时钟输出。

    表 1-2: PIC16(L)F1703 引脚说明 (续)

    名称 功能输入

    类型

    输出

    类型说明

    图注: AN =模拟输入或输出 CMOS= CMOS 兼容输入或输出 OD = 漏极开路TTL = TTL 兼容输入 ST = 带 CMOS 电平的施密特触发器输入 I2C™ = 带 I2C电平的施密特触发器输入 HV =高电压 XTAL = 晶振

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。请参见寄存器 12-1。2: 所有引脚输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为数字外设输出。请参见

    寄存器 12-3。3: 这些 I2C 功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    DS40001722A_CN 第 12 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    表 1-3: PIC16(L)F1707 引脚说明

    名称 功能输入

    类型

    输出

    类型说明

    RA0/AN0/VREF-/ICSPDAT RA0 TTL/ST CMOS 通用 I/O。AN0 AN — ADC 通道 0 的输入。

    VREF- AN — ADC 负参考电压输入。ICSPDAT ST CMOS ICSP™ 数据 I/O。

    RA1/AN1/VREF+/ICSPCLK RA1 TTL/ST CMOS 通用 I/O。AN1 AN — ADC 通道 1 的输入。

    VREF+ AN — ADC 参考电压输入。ICSPCLK ST — 串行编程时钟。

    RA2/AN2/ZCD/T0CKI(1)/INT(1)

    RA2 TTL/ST CMOS 通用 I/O。AN2 AN — ADC 通道 2 的输入。ZCD — AN 过零检测拉电流 / 灌电流。

    T0CKI ST — Timer0 时钟输入。INT ST — 外部中断。

    RA3/MCLR/VPP RA3 TTL/ST CMOS 通用 I/O。MCLR ST — 带内部上拉的主复位。VPP HV — 编程电压。

    RA4/AN3/T1G(1)/SOSCO/OSC2/CLKOUT

    RA4 TTL/ST CMOS 通用 I/O。AN3 AN — ADC 通道 3 的输入。T1G ST — Timer1 门控输入。

    SOSCO XTAL XTAL 辅助振荡器连接。OSC2 — XTAL 晶振 / 谐振器 (LP、 XT 和 HS 模式)。

    CLKOUT — CMOS FOSC/4 输出。RA5/T1CKI/SOSCI/OSC1/CLKIN RA5 TTL/ST CMOS 通用 I/O。

    T1CKI ST — Timer1 时钟输入。SOSCI XTAL XTAL 辅助振荡器连接。OSC1 — XTAL 晶振 / 谐振器 (LP、 XT 和 HS 模式)。CLKIN ST — 外部时钟输入 (EC 模式)。

    RB4/AN10/OPA1IN-/SCK(1)/SDA(3)

    RB4 TTL/ST CMOS 通用 I/O。AN10 AN — ADC 通道 10 的输入。

    OPA1IN- AN — 运算放大器 1 的反相输入。SCK ST CMOS SPI 时钟。SDA I2C OD I2C™ 数据输入 / 输出。

    RB5/AN11/OPA1IN+ RB5 TTL/ST CMOS 通用 I/O。AN11 AN — ADC 通道 11 的输入。

    OPA1IN+ AN — 运算放大器 1 的同相输入。RB6/SDI(1)/SCL(3) RB6 TTL/ST CMOS 通用 I/O。

    SDI CMOS — SPI 数据输入。SCL I2C OD I2C 时钟。

    RB7 RB7 TTL/ST CMOS 通用 I/O。图注: AN =模拟输入或输出 CMOS= CMOS 兼容输入或输出 OD = 漏极开路

    TTL = TTL 兼容输入 ST = 带 CMOS 电平的施密特触发器输入 I2C™ = 带 I2C电平的施密特触发器输入 HV =高电压 XTAL = 晶振

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。请参见寄存器 12-2。2: 所有引脚输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为数字外设输出。请参

    见寄存器 12-3。3: 这些 I2C 功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 13 页

  • PIC16(L)F1703/7

    RC0/AN4 RC0 TTL/ST CMOS 通用 I/O。AN4 AN — ADC 通道 4 的输入。

    RC1/AN5 RC1 TTL/ST CMOS 通用 I/O。AN5 AN — ADC 通道 5 的输入。

    RC2/AN6/OPA1OUT RC2 TTL/ST CMOS 通用 I/O。AN6 AN — ADC 通道 6 的输入。

    OPA1OUT — AN 运算放大器 1 的输出。RC3/AN7/OPA2OUT/CCP2(1) RC3 TTL/ST CMOS 通用 I/O。

    AN7 AN — ADC 通道 7 的输入。OPA2OUT — AN 运算放大器 2 的输出。

    CCP2 ST CMOS 捕捉 / 比较 /PWM2。RC4 RC4 TTL/ST CMOS 通用 I/O。RC5/CCP1(1) RC5 TTL/ST CMOS 通用 I/O。

    CCP1 ST CMOS 捕捉 / 比较 /PWM1。RC6/AN8/OPA2IN-/SS(1) RC6 TTL/ST CMOS 通用 I/O。

    AN8 AN — ADC 通道 8 的输入。OPA2IN- AN — 运算放大器 2 的反相输入。

    SS ST — 从选择输入。RC7/AN9/OPA2IN+ RC7 TTL/ST CMOS 通用 I/O。

    AN9 AN — ADC 通道 9 的输入。OPA2IN+ AN — 运算放大器 2 的同相输入。

    VDD VDD 电源 — 正电源。VSS VSS 电源 — 参考地。OUT(2) CCP1 — CMOS 捕捉 / 比较 /PWM1 输出。

    CCP2 — CMOS 捕捉 / 比较 /PWM2 输出。SDA(3) — OD I2C™ 数据输入 / 输出。SDO — CMOS SPI 数据输出。SCK — CMOS SPI 时钟输出。

    SCL(3) I2C OD I2C 时钟输出。

    表 1-3: PIC16(L)F1707 引脚说明 (续)

    名称 功能输入

    类型

    输出

    类型说明

    图注: AN =模拟输入或输出 CMOS= CMOS 兼容输入或输出 OD = 漏极开路TTL = TTL 兼容输入 ST = 带 CMOS 电平的施密特触发器输入 I2C™ = 带 I2C电平的施密特触发器输入 HV =高电压 XTAL = 晶振

    注 1: 默认外设输入。 通过 PPS 输入选择寄存器,可以将输入移至任何其他引脚。请参见寄存器 12-2。2: 所有引脚输出均默认设为 PORT 锁存器数据。 通过 PPS 输出选择寄存器,可以选择任意引脚作为数字外设输出。请参

    见寄存器 12-3。3: 这些 I2C 功能是双向的。 输出引脚选择必须与输入引脚选择相同。

    DS40001722A_CN 第 14 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    2.0 增强型中档 CPU本器件系列包含了增强型中档 8 位 CPU 内核。 CPU 具有 49 条指令。中断功能包含了自动现场保护功能。硬件堆栈为 16 级深,具有上溢和下溢复位功能。器件提供了

    直接寻址、间接寻址和相对寻址模式。用户可以通过两个文件选择寄存器(FSR)来读取程序和数据存储器。

    • 自动中断现场保护• 带有上溢和下溢的 16 级堆栈• 文件选择寄存器• 指令集

    图 2-1: 内核框图

    数据总线 8

    14

    指令寄存器

    程序计数器

    8 级堆栈(13 位)

    7

    12

    地址 MUX

    FSR 寄存器

    STATUS 寄存器

    MUX

    ALU

    上电延时定时器

    振荡器起振定时器

    上电复位

    看门狗定时器

    指令译码和控制

    时序发生

    OSC1/CLKIN

    OSC2/CLKOUT

    VDD

    8

    8

    欠压复位

    12

    3

    VSS

    内部振荡器模块

    数据总线 8

    14

    指令寄存器

    程序计数器

    8 级堆栈(13 位)

    7

    地址 MUX

    FSR 寄存器

    STATUS 寄存器

    MUX

    ALU

    W 寄存器

    指令译码和控制

    时序发生

    VDD

    8

    8

    3

    VSS

    内部振荡器模块

    15 数据总线 8

    14程序总线

    指令寄存器

    程序计数器

    16 级堆栈(15 位)

    直接地址 7

    RAM 地址

    地址 MUX

    间接地址

    FSR0 寄存器

    STATUS 寄存器

    MUX

    ALU指令译码和控制

    时序发生

    VDD

    8

    8

    3

    VSS

    内部振荡器模块

    RAM

    FSR 寄存器FSR 寄存器FSR1 寄存器15

    15

    MU

    X

    15

    程序存储器

    读(PMR)

    12

    FSR 寄存器FSR 寄存器BSR 寄存器

    5

    配置配置配置

    闪存

    程序

    存储器

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 15 页

  • PIC16(L)F1703/7

    2.1 自动中断现场保护在中断期间,器件会自动将一些寄存器保存到影子寄存器中,从中断返回时则会恢复这些寄存器。这可以节省堆栈空间和用户代码。更多信息,请参见第 7.5 节“自动现场保护”。

    2.2 带有上溢和下溢的 16 级堆栈这些器件具有 15 位宽、16 字深的硬件堆栈存储器。 在发生堆栈上溢或下溢时, PCON 寄存器中的相应位(STKOVF 或 STKUNF)会置 1,如果使能复位,则会导致软件复位。更多详细信息,请参见第 3.5 节“堆栈”。

    2.3 文件选择寄存器有两个 16 位文件选择寄存器(FSR)。 FSR 可以访问所有文件寄存器和程序存储器,支持对于所有存储器使用一个数据指针。当FSR指向程序存储器时,使用INDF的指令需要一个额外的指令周期,用于取数据。通用存储器现在可以进行线性寻址,支持访问大于 80 字节的连续数据。此外,还有一些支持 FSR 的新指令。更多详细信息,请参见第 3.6 节 “间接寻址”。

    2.4 指令集增强型中档 CPU 具有 49 条指令,用于支持 CPU 的特性。更多详细信息,请参见第 25.0 节“指令集汇总”。

    DS40001722A_CN 第 16 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    3.0 存储器构成这些器件包含以下类型的存储器:

    • 程序存储器- 配置字- 器件 ID- 用户 ID- 闪存程序存储器

    • 数据存储器- 内核寄存器- 特殊功能寄存器- 通用 RAM- 公共 RAM

    以下特性与程序存储器和数据存储器的访问和控制相关联:

    • PCL 和 PCLATH• 堆栈• 间接寻址

    3.1 程序存储器构成增强型中档内核具有一个 15 位程序计数器,能够寻址32K x 14的程序存储空间。表3-1列出了PIC16(L)F1703/7系列已实现的存储器大小。访问超出上述边界的存储单元,将返回到已实现的存储空间内。复位向量位于0000h,而中断向量位于 0004h (见图 3-1)。

    注 1:第 10.0 节“闪存程序存储器控制”介绍了通过PMCON寄存器访问闪存存储器的方法。

    表 3-1: 器件大小和地址器件 程序存储空间 (字) 最后的程序存储器地址

    PIC16(L)F1703/7 2,048 07FFh

    2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 17 页

  • PIC16(L)F1703/7

    图 3-1: PIC16(L)F1703/7 的程序存储器映射和堆栈

    3.1.1 将程序存储器作为数据进行读取有两种方法来访问程序存储器中的常量。第一种方法是使用 RETLW 指令表。第二种方法是设置某个 FSR,使之指向程序存储器。

    3.1.1.1 RETLW指令RETLW 指令可用于访问常量表。创建这种表的方法如例 3-1 所示。

    例 3-1: RETLW指令

    通过 BRW指令,可以非常简单地实现这种表。如果代码必须保持对于前几代单片机的移植性,则 BRW指令不可用,所以必须使用先前的表读方法。

    3.1.1.2 通过 FSR 间接读取通过将FSRxH寄存器的bit 7置1,并读取匹配的 INDFx寄存器,可以将程序存储器作为数据进行访问。MOVIW指令会将所寻址字的低 8位放入W寄存器。对程序存储器的写操作不能通过 INDF 寄存器执行。通过 FSR 访问程序存储器的指令需要一个额外的指令周期才能完成操作。例 3-2 给出了通过 FSR 访问程序存储器的代码。

    如果某个标号指向程序存储器中的存储单元, HIGH 伪指令会将 bit 置 1。

    PC

    15

    0000h

    0004h

    堆栈深度 0

    堆栈深度 15

    复位向量

    中断向量

    CALL, CALLW RETURN, RETLW

    堆栈深度 1

    0005h

    片上程序存储器

    Page 007FFh

    计满返回到 Page 0

    0800h

    0FFFh1000h

    7FFFh

    Page 1

    计满返回到 Page 1

    中断,RETFIE

    constantsBRW ;Add Index in W to

    ;program counter to;select data

    RETLW DATA0 ;Index0 dataRETLW DATA1 ;Index1 dataRETLW DATA2RETLW DATA3

    my_function;… LOTS OF CODE…MOVLW DATA_INDEXcall constants;… THE CONSTANT IS IN W

    DS40001722A_CN 第 18 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    例 3-2: 通过 FSR 访问程序存储器constants

    RETLW DATA0 ;Index0 dataRETLW DATA1 ;Index1 dataRETLW DATA2RETLW DATA3

    my_function;… LOTS OF CODE…MOVLW LOW constantsMOVWF FSR1LMOVLW HIGH constantsMOVWF FSR1HMOVIW 0[FSR1]

    ;THE PROGRAM MEMORY IS IN W

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 19 页

  • PIC16(L)F1703/7

    3.2 数据存储器构成数据存储器划分为 32 个存储区,每个存储区有 128 字节。每个存储区都包含 (图 3-2):• 12 个内核寄存器• 20个特殊功能寄存器(Special Function Register,

    SFR)• 最多80字节的通用RAM(General Purpose RAM,

    GPR) • 16 字节的公共 RAM

    工作存储区的选择通过向存储区选择寄存器 (BankSelect Register, BSR)写入存储区编号来进行。未实现的存储器将读为 0。所有数据存储器可以直接访问 (通过使用文件寄存器的指令),也可以通过两个文件选择寄存器 (FSR)间接访问。更多信息,请参见第 3.6 节 “间接寻址”。数据存储器使用一个 12 位地址。 地址的高 5 位用于定义存储区地址,低 7 位用于选择该存储区中的寄存器 /RAM。

    3.2.1 内核寄存器内核寄存器包含会直接影响基本操作的寄存器。内核寄存器占用每个数据存储区的前12个地址(地址x00h/x08h至 x0Bh/x8Bh)。表 3-2 列出了这些寄存器。详细信息,请参见表 3-9。

    表 3-2: 内核寄存器

    地址 BANKxx00h 或 x80h INDF0x01h 或 x81h INDF1x02h 或 x82h PCLx03h 或 x83h STATUSx04h 或 x84h FSR0Lx05h 或 x85h FSR0Hx06h 或 x86h FSR1Lx07h 或 x87h FSR1Hx08h 或 x88h BSRx09h 或 x89h WREGx0Ah 或 x8Ah PCLATHx0Bh 或 x8Bh INTCON

    DS40001722A_CN 第 20 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    3.2.1.1 STATUS 寄存器STATUS 寄存器如寄存器 3-1 所示,包括:

    • ALU 的算术运算状态• 复位状态

    与任何其他寄存器一样,STATUS 寄存器可作为任何指令的目标寄存器。如果一条影响 Z、 DC 或 C 位的指令以 STATUS 寄存器作为目标寄存器,那么对这三个位的写操作将被禁止。这些位根据器件逻辑被置 1 或清零。而且, TO 和 PD 位均为不可写位。因此,当执行一条将 STATUS 寄存器作为目标寄存器的指令时,运行结果可能会与预想的不同。

    例如,CLRF STATUS将会清零高 3 位,并将 Z 位置 1。这将使 STATUS 寄存器中的值成为 000u u1uu(其中u = 不变)。

    因此,建议仅使用 BCF、 BSF、 SWAPF和 MOVWF指令来改变 STATUS 寄存器的值,因为这些指令不会影响任何状态位。 关于其他不影响任何状态位的指令,请参见第 25.0 节“指令集汇总”。

    3.3 寄存器定义:状态

    注: 在减法运算中, C 和 DC 位分别作为借位位和半借位位。

    寄存器 3-1: STATUS:状态寄存器

    U-0 U-0 U-0 R-1/q R-1/q R/W-0/u R/W-0/u R/W-0/u

    — — — TO PD Z DC(1) C(1)

    bit 7 bit 0

    图注:

    R = 可读位 W = 可写位 U = 未实现位,读为 0u = 不变 x = 未知 -n/n = POR 和 BOR 时的值 / 所有其他复位时的值1 = 置 1 0 = 清零 q = 值取决于具体条件

    bit 7-5 未实现:读为 0bit 4 TO:超时位

    1 = 在上电或执行 CLRWDT指令或 SLEEP指令后0 = 发生了 WDT 超时

    bit 3 PD:掉电位1 = 在上电或执行 CLRWDT指令后0 = 执行 SLEEP指令

    bit 2 Z:全零标志位1 = 算术运算或逻辑运算的结果为零0 = 算术运算或逻辑运算的结果不为零

    bit 1 DC:半进位 / 半借位位 (ADDWF、 ADDLW、 SUBLW和 SUBWF指令) (1)

    1 = 结果的第 4 个低位发生了进位0 = 结果的第 4 个低位未发生进位

    bit 0 C:进位 / 借位位 (1) (ADDWF、 ADDLW、 SUBLW和 SUBWF指令) (1)

    1 = 结果的最高有效位发生了进位0 = 结果的最高有效位未发生进位

    注 1: 对于借位,极性是相反的。减法是通过加上第二个操作数的二进制补码来执行的。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 21 页

  • PIC16(L)F1703/7

    3.3.1 特殊功能寄存器特殊功能寄存器是由应用对器件中外设功能所需操作进行控制的寄存器。特殊功能寄存器占用每个数据存储区中内核寄存器之后的 20 字节(地址 x0Ch/x8Ch 至x1Fh/x9Fh)。本数据手册的相应外设章节中介绍了与外设操作相关的寄存器。

    3.3.2 通用 RAM每个数据存储区中有最大 80 字节的 GPR。特殊功能寄存器占用每个数据存储区中内核寄存器之后的 20 字节(地址 x0Ch/x8Ch 至 x1Fh/x9Fh)。

    3.3.2.1 线性访问 GPR通用RAM可以通过FSR以非存储区方式访问。这可以简化对大存储器结构的访问。更多信息,请参见第 3.6.2 节“线性数据存储器”。

    3.3.3 公共 RAM有 16 字节的公共 RAM 可以从所有存储区中进行访问。

    图 3-2: 存储区分区

    3.3.4 器件存储器映射表 3-3 至表 3-8 给出了器件系列的存储器映射。

    0Bh0Ch

    1Fh20h

    6Fh70h

    7Fh

    00h

    公共 RAM(16 字节)

    通用 RAM(最大 80 字节)

    内核寄存器

    (12 字节)

    特殊功能寄存器

    (最大 20 字节)

    存储器区域7 位存储区偏移

    DS40001722A_CN 第 22 页 初稿 © 2014 Microchip Technology Inc.

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    23页

    PIC16(L)F1703/7

    BANK 6 BANK 700 0h

    内核寄存器(表 3-2)

    380h内核寄存器(表 3-2)

    00 Bh 38Bh00 Ch SLRCONA 38Ch INLVLA00 Dh SLRCONB 38Dh INLVLB00 Eh SLRCONC 38Eh INLVLC00 Fh — 38Fh —01 0h — 390h —01 1h — 391h IOCAP01 2h — 392h IOCAN01 3h — 393h IOCAF01 4h — 394h IOCBP01 5h — 395h IOCBN01 6h — 396h IOCBF01 7h — 397h IOCCP01 8h — 398h IOCCN01 9h — 399h IOCCF01 Ah — 39Ah —01 Bh — 39Bh —01 Ch — 39Ch —01 Dh — 39Dh —01 Eh — 39Eh —01 Fh — 39Fh —02 0h

    未实现

    3A0h

    未实现

    06 3EFhFh07 0h

    快速操作存储区70h - 7Fh

    3F0h快速操作存储区

    70h - 7Fh07 Fh 3FFh

    3-3: PIC16(L)F1703/7 存储器映射 (BANK 0-7) BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5

    0h内核寄存器(表 3-2)

    080h内核寄存器(表 3-2)

    100h内核寄存器(表 3-2)

    180h内核寄存器(表 3-2)

    200h内核寄存器(表 3-2)

    280h内核寄存器(表 3-2)

    30

    Bh 08Bh 10Bh 18Bh 20Bh 28Bh 30Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch WPUA 28Ch ODCONA 30Dh PORTB 08Dh TRISB 10Dh LATB 18Dh ANSELB 20Dh WPUB 28Dh ODCONB 30Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh WPUC 28Eh ODCONC 30Fh — 08Fh — 10Fh — 18Fh — 20Fh — 28Fh — 300h — 090h — 110h — 190h — 210h — 290h — 311h PIR1 091h PIE1 111h — 191h PMADR 211h SSP1BUF 291h CCPR1L 312h PIR2 092h PIE2 112h — 191h PMADRL 212h SSP1ADD 292h CCPR1H 313h PIR3 093h PIE3 113h — 192h PMADRH 213h SSP1MSK 293h CCP1CON 314h — 094h — 114h — 193h PMDATL 214h SSP1STAT 294h — 315h TMR0 095h OPTION_REG 115h — 194h PMDATH 215h SSP1CON1 295h — 316h TMR1L 096h PCON 116h BORCON 195h PMCON1 216h SSP1CON1 296h — 317h TMR1H 097h WDTCON 117h FVRCON 196h PMCON2 217h SSP1CON2 297h — 318h T1CON 098h OSCTUNE 118h — 197h — 218h SSP1CON3 298h CCPR2 319h T1GCON 099h OSCCON 119h — 198h — 219h — 298h CCPR2L 31Ah TMR2 09Ah OSCSTAT 11Ah — 199h — 21Ah — 299h CCPR2H 31Bh PR2 09Bh ADRESL 11Bh — 19Ah — 21Bh — 29Ah CCP2CON 31Ch T2CON 09Ch ADRESH 11Ch ZCD1CON 19Bh — 21Ch — 29Bh — 31Dh — 09Dh ADCON0 11Dh — 19Ch — 21Dh — 29Ch — 31Eh — 09Eh ADCON1 11Eh — 19Dh — 21Eh — 29Dh — 31Fh — 09Fh ADCON2 11Fh — 19Eh — 21Fh — 29Eh — 310h

    通用寄存器80 字节

    0A0h

    通用寄存器80 字节

    120h

    通用寄存器80 字节

    19Fh — 220h

    未实现

    29Fh — 321A0h

    未实现

    2A0h

    未实现

    Fh 0EFh 16Fh 1EFh 26Fh 2EFh 360h

    公共 RAM70h - 7Fh

    0F0h快速操作存储区

    70h - 7Fh

    170h快速操作存储区

    70h - 7Fh

    1F0h快速操作存储区

    70h - 7Fh

    270h快速操作存储区

    70h - 7Fh快速操作存储区

    70h - 7Fh

    372F0h

    Fh 0FFh 17Fh 1FFh 27Fh 2FFh 37

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    24页

    初稿

    © 2014 M

    icrochip Technology Inc.

    BANK 14 BANK 1500h

    内核寄存器(表 3-2)

    780h内核寄存器(表 3-2)

    0Bh 78Bh0Ch — 78Ch —0Dh — 78Dh —0Eh — 78Eh —0Fh — 78Fh —10h — 790h —11h — 791h —12h — 792h —13h — 793h —14h — 794h —15h — 795h —16h — 796h —17h — 797h —18h — 798h —19h — 799h —1Ah — 79Ah —1Bh — 79Bh —1Ch — 79Ch —1Dh — 79Dh —1Eh — 79Eh —1Fh — 79Fh —20h

    未实现

    7A0h

    未实现

    6Fh 7EFh70h

    快速操作存储区70h - 7Fh

    7F0h

    快速操作存储区70h - 7Fh

    7Fh 7FFh

    表 3-4: PIC16(L)F1703/7 存储器映射 (BANK 8-15)BANK 8 BANK 9 BANK 10 BANK 11 BANK 12 BANK 13

    400h内核寄存器(表 3-2)

    480h内核寄存器(表 3-2)

    500h内核寄存器(表 3-2)

    580h内核寄存器(表 3-2)

    600h内核寄存器(表 3-2)

    680h内核寄存器(表 3-2)

    7

    40Bh 48Bh 50Bh 58Bh 60Bh 68Bh 740Ch — 48Ch — 50Ch — 58Ch — 60Ch — 68Ch — 740Dh — 48Dh — 50Dh — 58Dh — 60Dh — 68Dh — 740Eh — 48Eh — 50Eh — 58Eh — 60Eh — 68Eh — 740Fh — 48Fh — 50Fh — 58Fh — 60Fh — 68Fh — 7410h — 490h — 510h — 590h — 610h — 690h — 7411h — 491h — 511h OPA1CON 591h — 611h — 691h — 7412h — 492h — 512h — 592h — 612h — 692h — 7413h — 493h — 513h — 593h — 613h — 693h — 7414h — 494h — 514h — 594h — 614h — 694h — 7415h — 495h — 515h OPA2CON 595h — 615h — 695h — 7416h — 496h — 516h — 596h — 616h — 696h — 7417h — 497h — 517h — 597h — 617h — 697h — 7418h — 498h — 518h — 598h — 618h — 698h — 7419h — 499h — 519h — 599h — 619h — 699h — 741Ah — 49Ah — 51Ah — 59Ah — 61Ah — 69Ah — 741Bh — 49Bh — 51Bh — 59Bh — 61Bh — 69Bh — 741Ch — 49Ch — 51Ch — 59Ch — 61Ch — 69Ch — 741Dh — 49Dh — 51Dh — 59Dh — 61Dh — 69Dh — 741Eh — 49Eh — 51Eh — 59Eh 61Eh — 69Eh — 741Fh — 49Fh — 51Fh — 59Fh 61Fh — 69Fh — 7420h

    未实现

    4A0h

    未实现

    520h

    未实现

    5A0h

    未实现

    620h

    未实现

    6A0h

    未实现

    7

    46Fh 4EFh 56Fh 5EFh 66Fh 6EFh 7470h

    快速操作存储区70h - 7Fh

    4F0h

    快速操作存储区70h - 7Fh

    570h

    快速操作存储区70h - 7Fh

    5F0h

    快速操作存储区70h - 7Fh

    670h

    快速操作存储区70h - 7Fh

    6F0h

    快速操作存储区70h - 7Fh

    7

    47Fh 4FFh 57Fh 5FFh 67Fh 6FFh 7

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    25页

    PIC16(L)F1703/7

    BANK 22 BANK 23

    80内核寄存器(表 3-2)

    B80h

    内核寄存器(表 3-2)

    80 B8Bh80 — B8Ch —80 — B8Dh —80 — B8Eh —80 — B8Fh —81 — B90h —81 — B91h —81 — B92h —81 — B93h —81 — B94h —81 — B95h —81 — B96h —81 — B97h —81 — B98h —81 — B99h —81 — B9Ah —81 — B9Bh —81 — B9Ch —81 — B9Dh —81 — B9Eh —81 — B9Fh —82

    未实现

    BA0h

    未实现

    86 BEFh87

    快速操作存储区70h - 7Fh

    BF0h快速操作存储区

    70h - 7Fh87 BFFh

    3-5: PIC16(L)F1703/7 存储器映射 (BANK 16-23)BANK 16 BANK 17 BANK 18 BANK 19 BANK 20 BANK 21

    0h内核寄存器(表 3-2)

    880h内核寄存器(表 3-2)

    900h内核寄存器(表 3-2)

    980h

    内核寄存器(表 3-2)

    A00h

    内核寄存器(表 3-2)

    A80h

    内核寄存器(表 3-2)

    B00h

    Bh 88Bh 90Bh 98Bh A0Bh A8Bh B0BhCh — 88Ch — 90Ch — 98Ch — A0Ch — A8Ch — B0ChDh — 88Dh — 90Dh — 98Dh — A0Dh — A8Dh — B0DhEh — 88Eh — 90Eh — 98Eh — A0Eh — A8Eh — B0EhFh — 88Fh — 90Fh — 98Fh — A0Fh — A8Fh — B0Fh0h — 890h — 910h — 990h — A10h — A90h — B10h1h — 891h — 911h — 991h — A11h — A91h — B11h2h — 892h — 912h — 992h — A12h — A92h — B12h3h — 893h — 913h — 993h — A13h — A93h — B13h4h — 894h — 914h — 994h — A14h — A94h — B14h5h — 895h — 915h — 995h — A15h — A95h — B15h6h — 896h — 916h — 996h — A16h — A96h — B16h7h — 897h — 917h — 997h — A17h — A97h — B17h8h — 898h — 918h — 998h — A18h — A98h — B18h9h — 899h — 919h — 999h — A19h — A99h — B19hAh — 89Ah — 91Ah — 99Ah — A1Ah — A9Ah — B1AhBh — 89Bh — 91Bh — 99Bh — A1Bh — A9Bh — B1BhCh — 89Ch — 91Ch — 99Ch — A1Ch — A9Ch — B1ChDh — 89Dh — 91Dh — 99Dh — A1Dh — A9Dh — B1DhEh — 89Eh — 91Eh — 99Eh — A1Eh — A9Eh — B1EhFh — 89Fh — 91Fh — 99Fh — A1Fh — A9Fh — B1Fh0h

    未实现

    8A0h

    未实现

    920h

    未实现

    9A0h

    未实现

    A20h

    未实现

    AA0h

    未实现

    B20h

    Fh 8EFh 96Fh 9EFh A6Fh AEFh B6Fh0h

    快速操作存储区70h - 7Fh

    8F0h快速操作存储区

    70h - 7Fh

    970h快速操作存储区

    70h - 7Fh

    9F0h快速操作存储区

    70h - 7Fh

    A70h快速操作存储区

    70h - 7Fh

    AF0h快速操作存储区

    70h - 7Fh

    B70h

    Fh 8FFh 97Fh 9FFh A7Fh AFFh B7Fh

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    26页

    初稿

    © 2014 M

    icrochip Technology Inc.

    BANK 30 BANK 3100h

    内核寄存器(表 3-2)

    F80h内核寄存器(表 3-2)

    0Bh F8Bh0Ch

    请参见表 3-7了解寄存器

    映射详细信息

    F8Ch

    请参见表 3-8了解寄存器映射详细信息

    0Dh F8Dh0Eh F8Eh0Fh F8Fh10h F90h11h F91h12h F92h13h F93h14h F94h15h F95h16h F96h17h F97h18h F98h19h F99h1Ah F9Ah1Bh F9Bh1Ch F9Ch1Dh F9Dh1Eh F9Eh1Fh F9Fh20h FA0h

    6Fh FEFh70h

    快速操作存储区70h - 7Fh

    FF0h快速操作存储区

    70h - 7Fh

    7Fh FFFh

    表 3-6: PIC16(L)F1703/7 存储器映射 (BANK 24-31)

    BANK 24 BANK 25 BANK 26 BANK 27 BANK 28 BANK 29C00h

    内核寄存器(表 3-2)

    C80h内核寄存器(表 3-2)

    D00h内核寄存器(表 3-2)

    D80h内核寄存器(表 3-2)

    E00h内核寄存器(表 3-2)

    E80h内核寄存器(表 3-2)

    F

    C0Bh C8Bh D0Bh D8Bh E0Bh E8Bh FC0Ch — C8Ch — D0Ch — D8Ch — E0Ch

    请参见表 3-7了解寄存器

    映射详细信息

    E8Ch

    请参见表 3-7了解寄存器

    映射详细信息

    FC0Dh — C8Dh — D0Dh — D8Dh — E0Dh E8Dh FC0Eh — C8Eh — D0Eh — D8Eh — E0Eh E8Eh FC0Fh — C8Fh — D0Fh — D8Fh — E0Fh E8Fh FC10h — C90h — D10h — D90h — E10h E90h FC11h — C91h — D11h — D91h — E11h E91h FC12h — C92h — D12h — D92h — E12h E92h FC13h — C93h — D13h — D93h — E13h E93h FC14h — C94h — D14h — D94h — E14h E94h FC15h — C95h — D15h — D95h — E15h E95h FC16h — C96h — D16h — D96h — E16h E96h FC17h — C97h — D17h — D97h — E17h E97h FC18h — C98h — D18h — D98h — E18h E98h FC19h — C99h — D19h — D99h — E19h E99h FC1Ah — C9Ah — D1Ah — D9Ah — E1Ah E9Ah FC1Bh — C9Bh — D1Bh — D9Bh — E1Bh E9Bh FC1Ch — C9Ch — D1Ch — D9Ch — E1Ch E9Ch FC1Dh — C9Dh — D1Dh — D9Dh — E1Dh E9Dh FC1Eh — C9Eh — D1Eh — D9Eh — E1Eh E9Eh FC1Fh — C9Fh — D1Fh — D9Fh — E1Fh E9Fh FC20h

    未实现

    CA0h

    未实现

    D20h

    未实现

    DA0h

    未实现

    E20h EA0h F

    C6Fh CEFh D6Fh DEFh E6Fh EEFh FC70h

    快速操作存储区70h - 7Fh

    CF0h快速操作存储区

    70h - 7Fh

    D70h快速操作存储区

    70h - 7Fh

    DF0h快速操作存储区

    70h - 7Fh

    E70h快速操作存储区

    70h - 7Fh

    EF0h快速操作存储区

    70h - 7Fh

    F

    C7Fh CFFh D7Fh DFFh E7Fh EFFh F

  • PIC16(L)F1703/7

    表 3-7: PIC16(L)F1703/7 存储器映射 (BANK 28-31)

    图注: = 未实现的数据存储单元,读为 0。注 1: 仅在 PIC16(L)F1707 器件上可用。

    Bank 28 Bank 29 Bank 30E0Ch — E8Ch — F0Ch —E0Dh — E8Dh — F0Dh —E0Eh — E8Eh — F0Eh —E0Fh PPSLOCK E8Fh — F0Fh —E10h INTPPS E90h RA0PPS F10h —E11h T0CKIPPS E91h RA1PPS F11h —E12h T1CKIPPS E92h RA2PPS F12h —E13h T1GPPS E93h — F13h —E14h CCP1PPS E94h RA4PPS F14h —E15h CCP2PPS E95h RA5PPS F15h —E16h — E96h — F16h —E17h COGINPPS E97h — F17h —E18h — E98h — F18h —E19h — E99h — F19h —E1Ah — E9Ah — F1Ah —E1Bh — E9Bh — F1Bh —E1Ch — E9Ch RB4PPS(1) F1Ch —E1Dh — E9Dh RB5PPS(1) F1Dh —E1Eh — E9Eh RB6PPS(1) F1Eh —E1Fh — E9Fh RB7PPS(1) F1Fh —E20h SSPCLKPPS EA0h RC0PPS F20h —E21h SSPDATPPS EA1h RC1PPS F21h —E22h SSPSSPPS EA2h RC2PPS F22h —E23h — EA3h RC3PPS F23h —E24h RXPPS EA4h RC4PPS F24h —E25h CKPPS EA5h RC5PPS F25h —E26h — EA6h RC6PPS(1) F26h —E27h — EA7h RC7PPS(1) F27h —E28h — EA8h — F28h —E29h — EA9h — F29h —E2Ah — EAAh — F2Ah —E2Bh — EABh — F2Bh —E2Ch — EACh — F2Ch —E2Dh — EADh — F2Dh —E2Eh — EAEh — F2Eh —E2Fh — EAFh — F2Fh —E30h — EB0h — F30h —E31h — EB1h — F31h —E32h — EB2h — F32h —E33h — EB3h — F33h —E34h — EB4h — F34h —E35h — EB5h — F35h —E36h — EB6h — F36h —E37h — EB7h — F37h —E38h — EB8h — F38h —E39h — EB9h — F39h —E3Ah — EBAh — F3Ah —E3Bh — EBBh — F3Bh —E3Ch — EBCh — F3Ch —E3Dh — EBDh — F3Dh —E3Eh — EBEh — F3Eh —E3Fh — EBFh — F3Fh —E40h

    EC0h

    F40h—

    E6Fh EEFh F6Fh

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 27 页

  • PIC16(L)F1703/7

    表 3-8: PIC16(L)F1703/7 存储器映射,BANK 31

    图注: = 未实现的数据存储单元,读为 0。

    Bank 31F8Ch

    未实现读为 0

    FE3hFE4h STATUS_SHADFE5h WREG_SHADFE6h BSR_SHADFE7h PCLATH_SHADFE8h FSR0L_SHADFE9h FSR0H_SHADFEAh FSR1L_SHADFEBh FSR1H_SHADFECh —FEDh STKPTRFEEh TOSLFEFh TOSH

    DS40001722A_CN 第 28 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    3.3.5 内核功能寄存器汇总表 3-9 列出了内核功能寄存器,可从任何存储区访问这些寄存器。

    表 3-9: 内核功能寄存器汇总

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0POR/BOR时的值

    所有其他复位时的值

    Bank 0-31x00h 或x80h INDF0

    通过用 FSR0H/FSR0L 的内容寻址这个存储单元来寻址数据存储器 (不是物理寄存器)

    xxxx xxxx uuuu uuuu

    x01h 或x81h INDF1

    通过用 FSR1H/FSR1L 的内容寻址这个存储单元来寻址数据存储器 (不是物理寄存器)

    xxxx xxxx uuuu uuuu

    x02h 或x82h PCL 程序计数器 (Program Counter, PC)的最低有效字节 0000 0000 0000 0000

    x03h 或x83h STATUS — — — TO PD Z DC C ---1 1000 ---q quuu

    x04h 或x84h FSR0L 间接数据存储器地址 0 低字节指针 0000 0000 uuuu uuuu

    x05h 或x85h FSR0H 间接数据存储器地址 0 高字节指针 0000 0000 0000 0000

    x06h 或x86h FSR1L 间接数据存储器地址 1 低字节指针 0000 0000 uuuu uuuu

    x07h 或x87h FSR1H 间接数据存储器地址 1 高字节指针 0000 0000 0000 0000

    x08h 或x88h BSR — — — BSR4 BSR3 BSR2 BSR1 BSR0 ---0 0000 ---0 0000

    x09h 或x89h WREG 工作寄存器 0000 0000 uuuu uuuu

    x0Ah 或x8Ah PCLATH — 程序计数器高 7 位的写缓冲区 -000 0000 -000 0000

    x0Bh 或x8Bh INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 0000 000x 0000 000u

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。阴影单元未实现,读为 0。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 29 页

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    30页

    PIC16(L)F1703/7

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    B00 A0 --xx xxxx --uu uuuu00 xxxx ---- uuuu ----00 C0 xxxx xxxx uuuu uuuu00 — —01 — —01 R1IF 00-- 0000 00-- 000001 P2IF ---- 0--0 ---- 0--001 ---0 ---- ---0 ----01 — —01 xxxx xxxx uuuu uuuu01 xxxx xxxx uuuu uuuu01 xxxx xxxx uuuu uuuu01 1ON 0000 00-0 uuuu uu-u01 0000 0x00 uuuu uxuu

    01 0000 0000 0000 000001 1111 1111 1111 111101 -000 0000 -000 0000

    — —

    3-10: 特殊功能寄存器汇总

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    ank 0Ch PORTA — — RA5 RA4 RA3 RA2 RA1 RDh PORTB(3) RB7 RB6 RB5 RB4 — — — —Eh PORTC RC7(3) RC6(3) RC5 RC4 RC3 RC2 RC1 RFh — 未实现0h — 未实现1h PIR1 TMR1GIF ADIF — — SSP1IF CCP1IF TMR2IF TM2h PIR2 — — — — BCL1IF — — CC3h PIR3 — — — ZCDIF — — — —4h — 未实现5h TMR0 Timer0 模块寄存器6h TMR1L 16 位 TMR1 寄存器最低有效字节的保持寄存器7h TMR1H 16 位 TMR1 寄存器最高有效字节的保持寄存器8h T1CON TMR1CS T1CKPS T1OSCEN T1SYNC — TMR9h T1GCON TMR1GE T1GPOL T1GTM T1GSPM T1GGO/

    DONET1GVAL T1GSS

    Ah TMR2 16 位 TMR2 寄存器最低有效字节的保持寄存器Bh PR2 16 位 TMR2 寄存器最高有效字节的保持寄存器Ch T2CON — T2OUTPS TMR2ON T2CKPS01Dh

    —01Fh

    — 未实现

    注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    31页

    PIC16(L)F1703/7

    B08 ISA0 --11 1111 --11 111108 1111 ---- 1111 ----08 ISC0 1111 1111 1111 111108 — —09 — —09 R1IE 00-- 0000 0000 000009 P2IE ---- 0--0 000- 000009 ---0 ---- ---0 ----09 — —09 1111 1111 1111 111109 OR 00-1 11qq qq-q qquu09 TEN --01 0110 --01 011009 --00 0000 --00 000009 0011 1-00 0011 1-0009 OFS 0qq0 0q0q qqqq qq0q09 — —09 xxxx xxxx uuuu uuuu09 xxxx xxxx uuuu uuuu09 ON -000 0000 -000 000009 > 0000 -000 0000 -00009 0000 ---- 0000 ----

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    ank 1Ch TRISA — — TRISA5 TRISA4 —(1) TRISA2 TRISA1 TRDh TRISB(3) TRISB7 TRISB6 TRISB5 TRISB4 — — — —Eh TRISC TRISC7(3) TRISC6(3) TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRFh — 未实现0h — 未实现1h PIE1 TMR1GIE ADIE — — SSP1IE CCP1IE TMR2IE TM2h PIE2 — — — — BCL1IE — — CC3h PIE3 — — — ZCDIE — — — —4h — 未实现5h OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS6h PCON STKOVF STKUNF — RWDT RMCLR RI POR B7h WDTCON — — WDTPS SWD8h OSCTUNE — — TUN9h OSCCON SPLLEN IRCF — SCSAh OSCSTAT SOSCR PLLR OSTS HFIOFR HFIOFL MFIOFR LFIOFR HFIBh ADRES — — — — — — — —Bh ADRESL ADC 结果寄存器的低字节Ch ADRESH ADC 结果寄存器的高字节Dh ADCON0 — CHS GO/DONE ADEh ADCON1 ADFM ADCS — ADNREF ADPREF

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    32页

    初稿

    © 2014 M

    icrochip Technology Inc.

    TA0 --xx -xxx --uu -uuu— xxxx ---- uuuu ----TC0 xxxx xxxx uuuu uuuu

    — —— —— —— —— —— —— —

    RDY 10-- ---q uu-- ---u0q00 0000 0q00 0000

    — —— —— —— —

    1INTN 0-x0 --00 0-x0 --00— —— —— —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    Bank 210Ch LATA — — LATA5 LATA4 — LATA2 LATA1 LA10Dh LATB(3) LATB7 LATB6 LATB5 LATB4 — — —10Eh LATC LATC7(3) LATC6(3) LATC5 LATC4 LATC3 LATC2 LATC1 LA10Fh — 未实现110h — 未实现111h — 未实现112h — 未实现113h — 未实现114h — 未实现115h — 未实现116h BORCON SBOREN BORFS — — — — — BOR117h FVRCON FVREN FVRRDY TSEN TSRNG — — ADFVR118h — 未实现119h — 未实现11Ah — 未实现11Bh — 未实现11Ch ZCD1CON ZCD1EN — ZCD1OUT ZCD1POL — — ZCD1INTP ZCD11Dh — 未实现11Eh — 未实现11Fh — 未实现

    表 3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    注 1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    33页

    PIC16(L)F1703/7

    B18 SA0 ---1 -111 ---1 -11118 --11 ---- --11 ----18 SC0 11-- 1111 11-- 111118 — —19 — —19 0000 0000 0000 000019 1000 0000 1000 000019 xxxx xxxx uuuu uuuu19 --xx xxxx --uu uuuu19 D -000 x000 -000 q00019 0000 0000 0000 000019 留 ---- --01 ---- --0119 — —19 — —19 — —19 — —19 — —19 — —19 — —19 — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    ank 3Ch ANSELA — — — ANSA4 — ANSA2 ANSA1 ANDh ANSELB(3) — — ANSB5 ANSB4 — — — —Eh ANSELC ANSC7(3) ANSC6(3) ANSC5(2) ANSC4(2) ANSC3 ANSC2 ANSC1 ANFh — 未实现0h — 未实现1h PMADRL 程序存储器地址寄存器的低字节2h PMADRH —(1) 程序存储器地址寄存器的高字节3h PMDATL 程序存储器读数据寄存器的低字节4h PMDATH — — 程序存储器读数据寄存器的高字节5h PMCON1 — CFGS LWLO FREE WRERR WREN WR R6h PMCON2 程序存储器控制寄存器 27h VREGCON(4) — — — — — — VREGPM 保8h — 未实现9h — 未实现Ah — 未实现Bh — 未实现Ch — 未实现Dh — 未实现Eh — 未实现Fh — 未实现

    3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    34页

    初稿

    © 2014 M

    icrochip Technology Inc.

    UA0 --11 1111 --11 1111— 1111 ---- 1111 ----UC0 1111 1111 1111 1111

    — —— —

    xxxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    F 0000 0000 0000 00000000 0000 0000 0000

    EN 0000 0000 0000 0000EN 0000 0000 0000 0000

    — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    Bank 420Ch WPUA — — WPUA5 WPUA4 WPUA3 WPUA2 WPUA1 WP20Dh WPUB(3) WPUB7 WPUB6 WPUB5 WPUB4 — — —20Eh WPUC WPUC7(3) WPUC6(3) WPUC5 WPUC4 WPUC3 WPUC2 WPUC1 WP20Fh — 未实现210h — 未实现211h SSP1BUF 同步串行端口接收缓冲 / 发送寄存器212h SSP1ADD ADD213h SSP1MSK MSK214h SSP1STAT SMP CKE D/A P S R/W UA B215h SSP1CON1 WCOL SSPOV SSPEN CKP SSPM216h SSP1CON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN S217h SSP1CON3 ACKTIM PCIE SCIE BOEN SDAHT SBCDE AHEN DH

    218h—

    21Fh— 未实现

    表 3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    注 1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    35页

    PIC16(L)F1703/7

    B28 A0 --00 -000 --00 -00028 0000 ---- 0000 ----28 C0 0000 0000 0000 000028 — —29 — —29 xxxx xxxx uuuu uuuu29 xxxx xxxx uuuu uuuu29 --00 0000 --00 0000

    — —

    29 xxxx xxxx uuuu uuuu29 xxxx xxxx uuuu uuuu29 --00 0000 --00 0000

    — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    ank 5Ch ODCONA — — ODA5 ODA4 — ODA2 ODA1 ODDh ODCONB(3) ODB7 ODB6 ODB5 ODB4 — — — —Eh ODCONC ODC7(3) ODC6(3) ODC5 ODC4 ODC3 ODC2 ODC1 ODFh — 未实现0h — 未实现1h CCPR1L 捕捉 / 比较 /PWM 寄存器 1 (LSB)2h CCPR1H 捕捉 / 比较 /PWM 寄存器 1 (MSB)3h CCP1CON — — DC1B CCP1M294h

    —297h

    — 未实现

    8h CCPR2L 捕捉 / 比较 /PWM 寄存器 2 (LSB)9h CCPR2H 捕捉 / 比较 /PWM 寄存器 2 (MSB)Ah CCP2CON — — DC2B CCP2M29Bh

    —29Fh

    — 未实现

    3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    36页

    初稿

    © 2014 M

    icrochip Technology Inc.

    RA0 --11 -111 --11 -111— 1111 ---- 1111 ----RC0 1111 1111 1111 1111

    — —

    VLA0 --11 1111 --11 1111— 1111 ---- 1111 ----VLC0 1111 1111 1111 1111

    — —— —

    AP0 --00 0000 --00 0000AN0 --00 0000 --00 0000AF0 --00 0000 --00 0000

    — 0000 ---- 0000 ----— 0000 ---- 0000 ----— 0000 ---- 0000 ----CP0 0000 0000 0000 0000CN0 0000 0000 0000 0000CF0 0000 0000 0000 0000

    — —

    — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    Bank 630Ch SLRCONA — — SLRA5 SLRA4 — SLRA2 SLRA1 SL30Dh SLRCONB(3) SLRB7 SLRB6 SLRB5 SLRB4 — — —30Eh SLRCONC SLRC7(3) SLRC6(3) SLRC5 SLRC4 SLRC3 SLRC2 SLRC1 SL30Fh —31Fh

    — 未实现

    Bank 738Ch INLVLA — — INLVLA5 INLVLA4 INLVLA3 INLVLA2 INLVLA1 INL38Dh INLVLB(3) INLVLB7 INLVLB6 INLVLB5 INLVLB4 — — —38Eh INLVLC INLVLC7(3) INLVLC6(3) INLVLC5 INLVLC4 INLVLC3 INLVLC2 INLVLC1 INL38Fh — 未实现390h — 未实现391h IOCAP — — IOCAP5 IOCAP4 IOCAP3 IOCAP2 IOCAP1 IOC392h IOCAN — — IOCAN5 IOCAN4 IOCAN3 IOCAN2 IOCAN1 IOC393h IOCAF — — IOCAF5 IOCAF4 IOCAF3 IOCAF2 IOCAF1 IOC394h IOCBP(3) IOCBP7 IOCBP6 IOCBP5 IOCBP4 — — —395h IOCBN(3) IOCBN7 IOCBN6 IOCBN5 IOCBN4 — — —396h IOCBF(3) IOCBF7 IOCBF6 IOCBF5 IOCBF4 — — —397h IOCCP IOCCP7(3) IOCCP6(3) IOCCP5 IOCCP4 IOCCP3 IOCCP2 IOCCP1 IOC398h IOCCN IOCCN7(3) IOCCN6(3) IOCCN5 IOCCN4 IOCCN3 IOCCN2 IOCCN1 IOC399h IOCCF IOCCF7(3) IOCCF6(3) IOCCF5 IOCCF4 IOCCF3 IOCCF2 IOCCF1 IOC39Ah —39Fh

    — 未实现

    Bank 840Ch —41Fh

    — 未实现

    表 3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    注 1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    37页

    PIC16(L)F1703/7

    B

    — —

    B50 —51

    — —

    51 > 00-0 --00 00-0 --0051—51

    — —

    51 > 00-0 --00 00-0 --0051 —51

    — —

    B

    D— —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    ank 948Ch

    —49Fh

    — 未实现

    ank 10Ch

    0h— 未实现

    1h OPA1CON OPA1EN OPA1SP — OPA1UG — — OPA1PCH

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    38页

    初稿

    © 2014 M

    icrochip Technology Inc.

    — —

    OCKED ---- ---0 ---- ---0

    ---0 0010 ---u uuuu

    ---0 0010 ---u uuuu

    ---0 0101 ---u uuuu

    ---0 0100 ---u uuuu

    ---1 0101 ---u uuuu

    ---1 0011 ---u uuuu

    — —

    ---1 0000(3) ---u uuuu

    ---0 1110(4) ---u uuuu

    ---1 0001(3) ---u uuuu

    ---0 1100(4) ---u uuuu

    ---1 0011(3) ---u uuuu

    ---1 0110(4) ---u uuuu

    — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    Bank 28E0Ch —E0Eh

    — 未实现

    E0Fh PPSLOCK — — — — — — — PPSL

    E10h INTPPS — — — INTPPSE11h T0CKIPPS — — — T0CKIPPSE12h T1CKIPPS — — — T1CKIPPSE13h T1GPPS — — — T1GPPSE14h CCP1PPS — — — CCP1PPSE15h CCP2PPS — — — CCP2PPSE16h—E1Fh

    — 未实现

    E20h SSPCLKPPS— — — SSPCLKPPS— — — SSPCLKPPS

    E21h SSPDATPPS— — — SSPDATPPS— — — SSPDATPPS

    E22h SSPSSPPS— — — SSPSSPPS— — — SSPSSPPS

    E23h—E6Fh

    — 未实现

    表 3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    注 1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • © 2014 M

    icrochip Technology Inc.初稿

    DS

    40001722A_C

    N第

    39页

    PIC16(L)F1703/7

    BE8 —E8

    — —

    E9 ---0 0000 ---u uuuu

    E9 ---0 0000 ---u uuuu

    E9 ---0 0000 ---u uuuu

    E9 — —

    E9 ---0 0000 ---u uuuu

    E9 ---0 0000 ---u uuuuE9—E9

    — —

    EA ---0 0000 ---u uuuu

    EA ---0 0000 ---u uuuu

    EA ---0 0000 ---u uuuu

    EA ---0 0000 ---u uuuu

    EA ---0 0000 ---u uuuu

    EA ---0 0000 ---u uuuuEA —EE

    — —

    BF0 —F6

    — —

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    ank 29Ch

    Fh— 未实现

    0h RA0PPS — — — RA0PPS

    1h RA1PPS — — — RA1PPS

    2h RA2PPS — — — RA2PPS

    3h — 未实现

    4h RA4PPS — — — RA4PPS

    5h RA5PPS — — — RA5PPS6h

    Fh— 未实现

    0h RC0PPS — — — RC0PPS

    1h RC1PPS — — — RC1PPS

    2h RC2PPS — — — RC2PPS

    3h RC3PPS — — — RC3PPS

    4h RC4PPS — — — RC4PPS

    5h RC5PPS — — — RC5PPS6h

    Fh— 未实现

    ank 30Ch

    Fh— 未实现

    3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • PIC16(L)F1703/7

    DS

    40001722A_C

    N第

    40页

    初稿

    © 2014 M

    icrochip Technology Inc.

    — —

    C ---- -xxx ---- -xxx

    xxxx xxxx uuuu uuuu

    ---x xxxx ---u uuuu

    -xxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    xxxx xxxx uuuu uuuu

    — —---x xxxx ---x xxxx

    xxxx xxxx uuuu uuuu

    -xxx xxxx -uuu uuuu

    it 0 POR/BOR时的值

    所有其他

    复位时的值

    Bank 31 F8Eh

    —FE3h

    — 未实现

    FE4h STATUS_SHAD — — — — —

    Z DC

    FE5h WREG_SHAD

    工作寄存器的影子寄存器

    FE6h BSR_SHAD

    — — — 存储区选择寄存器的影子寄存器

    FE7h PCLATH_SHAD

    — 程序计数器锁存器高字节寄存器的影子寄存器

    FE8h FSR0L_SHAD

    间接数据存储器地址 0 低字节指针的影子寄存器

    FE9h FSR0H_SHAD

    间接数据存储器地址 0 高字节指针的影子寄存器

    FEAh FSR1L_SHAD

    间接数据存储器地址 1 低字节指针的影子寄存器

    FEBh FSR1H_SHAD

    间接数据存储器地址 1 高字节指针的影子寄存器

    FECh — 未实现FEDh STKPTR — — — 当前堆栈指针FEEh TOSL 栈顶低字节FEFh TOSH — 栈顶高字节

    表 3-10: 特殊功能寄存器汇总 (续)

    地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 B

    图注: x = 未知, u = 不变, q = 值取决于具体条件, - = 未实现,读为 0, r = 保留。 阴影单元未实现,读为 0。

    注 1: 未实现,读为 1。2: 仅限 PIC16(L)F1703。3: 仅限 PIC16(L)F1707。4: PIC16LF1703/7 上未实现。

  • PIC16(L)F1703/7

    3.4 PCL 和 PCLATH程序计数器(PC)为 15 位宽。其低字节来自可读写的PCL 寄存器,高字节(PC)来自 PCLATH,不能直接读写。任何复位都将清零PC。图 3-3显示了装载PC值的 5 种情形。

    图 3-3: 不同情形下 PC 的装载

    3.4.1 修改 PCL在执行以 PCL 寄存器作为目标寄存器的任何指令的同时,也会使程序计数器的 PC 位 (PCH)被PCLATH 寄存器的内容所代替。这使得可以通过将所需的高7位写入PCLATH寄存器来改变程序计数器的整个内容。 当将低 8 位写入 PCL 寄存器时,程序计数器的所有 15 位都将变为 PCLATH 寄存器中和那些被写入PCL 寄存器的值。

    3.4.2 计算 GOTO计算 GOTO是通过向程序计数器加一个 偏移量(ADDWFPCL)来实现的。当使用计算 GOTO 方法执行表读操作时,应注意表地址是否跨越了 PCL 存储器边界(每个存储块为 256 字节)。请参见应用笔记 AN556,“Implementing a Table Read”(DS00556)。

    3.4.3 计算函数调用利用计算函数 CALL,程序可以维护一些函数表,并提供另一种执行状态机或查找表的方式。当使用计算函数CALL 执行表读操作时,应注意表地址是否跨越了 PCL存储器边界 (每个存储块为 256 字节)。

    如果使用 CALL指令,PCH 和 PCL 寄存器中将装入CALL指令的操作数。PCH中将装入PCLATH。

    CALLW指令通过将 PCLATH 和 W 组合构成目标地址来支持计算调用。计算 CALLW通过向 W 寄存器中装入所需地址并执行 CALLW来实现。PCL 寄存器中装入 W 的值, PCH 中装入 PCLATH 的值。

    3.4.4 跳转跳转指令会将一个偏移量与 PC 相加。这使得可以实现可重定位代码和跨越页边界的代码。存在两种跳转形式:BRW 和 BRA。在两种形式中, PC 都会发生递增,以便取下一条指令。使用任一跳转指令时,都可以跨越PCL 存储器边界。

    如果使用 BRW,则向 W 寄存器中装入所需的无符号地址,然后执行BRW。整个PC中将装入地址PC + 1 + W。

    如果使用 BRA,整个 PC 中将装入 PC + 1 + BRA指令操作数的有符号值。

    PCLPCH 014PC

    06 7ALU

    8

    PCLATH

    PCLPCH 014PC

    06 4

    11PCLATH

    PCLPCH 014PC

    06 7W

    8

    PCLATH

    PCL

    GOTO, CALL

    CALLW

    PCLPCH 014PC

    PC + W15

    BRW

    PCLPCH 014PC

    PC + 15

    BRA

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 41 页

  • PIC16(L)F1703/7

    3.5 堆栈所有器件都有 16 级 x 15 位宽的硬件堆栈(见图 3-1)。堆栈既不占用程序存储空间,也不占用数据存储空间。当执行 CALL 或 CALLW 指令,或者中断导致程序跳转时, PC 值将被压入堆栈。而在执行 RETURN、 RETLW或 RETFIE指令时,将从堆栈中弹出 PC 值。PCLATH不受压栈或出栈操作的影响。

    如果 STVREN 位被设定为 0(配置字),堆栈将作为循环缓冲区工作。这意味着在压栈 16 次后,第 17 次压入堆栈的值将会覆盖第一次压栈时所保存的值,而第18次压入堆栈的值将覆盖第二次压栈时所保存的值,依此类推。无论是否使能了复位, STKOVF 和 STKUNF 标志位都将在上溢 / 下溢时置 1。

    3.5.1 访问堆栈通过 TOSH、TOSL 和 STKPTR 寄存器可以使用堆栈。STKPTR 是堆栈指针的当前值。TOSH:TOSL 寄存器对指向栈顶。两个寄存器都是可读写的。由于 PC 的大小为 15 位,所以 TOS 拆分为 TOSH 和 TOSL。要访问堆栈,可以调整 STKPTR 的值(它会决定 TOSH:TOSL位置),然后读 / 写 TOSH:TOSL。STKPTR 的宽度为 5位,以允许检测上溢和下溢。

    在正常程序操作期间, CALL、 CALLW 和中断会使STKPTR 递增,而 RETLW、 RETURN 和 RETFIE 会使STKPTR 递减。在任意时刻,都可以通过检查 STKPTR来确定所剩余的堆栈空间。 STKPTR 总是指向堆栈中当前使用的位置。因此,CALL或CALLW会先递增STKPTR,然后再写入 PC,而返回操作则会先取出 PC,然后再递减 STKPTR。关于访问堆栈的示例,请参见图 3-4 至图 3-7。

    图 3-4: 访问堆栈示例 1

    注: 不存在被称为 PUSH 或 POP 的指令 / 助记符。 堆栈的压入或弹出是源于执行了CALL、CALLW、RETURN、RETLW和 RETFIE指令,或源于跳转到中断向量地址。

    注: 在允许中断的情况下,在修改 STKPTR 时需要小心。

    0x0F

    0x0E

    0x0D

    0x0C

    0x0B

    0x0A

    0x09

    0x08

    0x07

    0x06

    0x05

    0x04

    0x03

    0x02

    0x01

    0x00

    0x0000

    STKPTR = 0x1F

    0x1F STKPTR = 0x1F

    STVREN = 0

    (STVREN = 1)

    TOSH:TOSL

    TOSH:TOSL

    0x1F/ TOSH/TOSL0 /TOSH/TOSL

    0x0F

    DS40001722A_CN 第 42 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    图 3-5: 访问堆栈示例 2

    图 3-6: 访问堆栈示例 3

    0x0F

    0x0E

    0x0D

    0x0C

    0x0B

    0x0A

    0x09

    0x08

    0x07

    0x06

    0x05

    0x04

    0x03

    0x02

    0x01

    0x00 STKPTR = 0x00TOSH:TOSL

    CALLRETURN

    0x1F

    0x0F

    0x0E

    0x0D

    0x0C

    0x0B

    0x0A

    0x09

    0x08

    0x07

    0x06

    0x05

    0x04

    0x03

    0x02

    0x01

    0x00

    STKPTR = 0x06TOSH:TOSL

    CALL CALLRETURN

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 43 页

  • PIC16(L)F1703/7

    图 3-7: 访问堆栈示例 4

    3.5.2 上溢 / 下溢复位如果配置字中的 STVREN 位被设定为 1,则在压栈操作超过堆栈第 16 级或出栈操作超过堆栈第 1 级时,器件会发生复位,并将 PCON 寄存器中的相应位(分别为STKOVF 或 STKUNF)置 1。

    3.6 间接寻址INDFn 寄存器不是物理寄存器。访问 INDFn 寄存器的所有指令实际上访问的是由文件选择寄存器(FSR)指定的地址处的寄存器。如果 FSRn 地址指定了两个INDFn 寄存器中的一个,则读操作将返回 0,写操作将不会发生(虽然状态位可能会受影响)。 FSRn 寄存器值由 FSRnH 和 FSRnL 对构成。FSR 寄存器构成一个 16 位地址,支持 65536 个存储单元的寻址空间。这些存储单元分为 3 个存储器区域:

    • 传统数据存储器• 线性数据存储器• 闪存程序存储器

    0x0F

    0x0E

    0x0D

    0x0C

    0x0B

    0x0A

    0x09

    0x08

    0x07

    0x06

    0x05

    0x04

    0x03

    0x02

    0x01

    0x00 STKPTR = 0x10TOSH:TOSL

    CALL0x10

    0x000x00

    /0x00

    DS40001722A_CN 第 44 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    图 3-8: 间接寻址

    0x0000

    0x0FFF

    传统

    FSR地址范围

    数据存储器

    0x1000保留

    线性数据存储器

    保留

    0x2000

    0x29AF

    0x29B0

    0x7FFF0x8000

    0xFFFF

    0x0000

    0x0FFF

    0x0000

    0x7FFF

    闪存程序存储器

    注: 不是所有存储器区域都能完全实现。关于存储器限制,请参见器件存储器表。

    0x1FFF

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 45 页

  • PIC16(L)F1703/7

    3.6.1 传统数据存储器传统数据存储器是从FSR地址0x000至FSR地址0xFFF的区域。这些地址对应于所有 SFR、 GPR 和公共寄存器的绝对地址。

    图 3-9: 传统数据存储器映射

    间接寻址直接寻址

    存储区选择 存储单元选择

    4 BSR 6 0来自操作码 FSRxL7 0

    存储区选择 存储单元选择

    00000 00001 00010 111110x00

    0x7F

    Bank 0 Bank 1 Bank 2 Bank 31

    0 FSRxH7 0

    0 0 0 0

    DS40001722A_CN 第 46 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    3.6.2 线性数据存储器线性数据存储器是从 FSR 地址 0x2000 至 FSR 地址0x29AF 的区域。该区域是一个虚拟区域,它指向所有存储区中 80 字节的 GPR 存储块。

    未实现的存储器将读为0x00。通过使用线性数据存储器区域,可以支持大于 80 字节的缓冲区,因为在 FSR 递增至超过一个存储区时,将会直接转至下一个存储区的GPR 存储器。16字节的公共存储器不包含在线性数据存储器区域中。

    图 3-10: 线性数据存储器映射

    3.6.3 闪存程序存储器为了更方便地访问常量数据,整个闪存程序存储器都映射到 FSR 地址空间的上半部分。当 FSRnH 的 MSB 置1 时,低 15 位为程序存储器中将通过 INDF 访问的地址。对于每个存储单元,只有低 8 位可通过 INDF 访问。对闪存程序存储器的写操作无法通过 FSR/INDF 接口实现。对于通过 FSR/INDF 接口访问闪存程序存储器的所有指令,都需要一个额外的指令周期才能完成操作。

    图 3-11: 闪存程序存储器映射

    70 1

    70 0

    存储单元选择 0x2000

    FSRnH FSRnL

    0x020

    Bank 00x06F0x0A0Bank 10x0EF0x120

    Bank 20x16F

    0xF20Bank 30

    0xF6F0x29AF

    0

    71

    70 0

    存储单元选择 0x8000

    FSRnH FSRnL

    0x0000

    0x7FFF0xFFFF

    闪存

    存储器(低 8 位)

    程序

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 47 页

  • PIC16(L)F1703/7

    4.0 器件配置器件配置功能由配置字、代码保护和器件 ID 组成。

    4.1 配置字有几个配置字位可用于选择不同的振荡器和存储器保护选项。这些位实现为位于8007h的配置字1和位于8008h的配置字 2。

    注: 配置字中的DEBUG位由器件开发工具(包括调试器和编程器)自动管理。对于正常器件工作,该位应保持为 1。

    DS40001722A_CN 第 48 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    4.2 寄存器定义:配置字 寄存器 4-1: CONFIG1:配置字 1

    R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-1FCMEN IESO CLKOUTEN BOREN —

    bit 13 bit 8

    R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1CP(1) MCLRE PWRTE WDTE — FOSC

    bit 7 bit 0

    图注:

    R = 可读位 P = 可编程位 U = 未实现位,读为 10 = 清零 1 = 置 1 -n = 空白时或批量擦除后的值

    bit 13 FCMEN:故障保护时钟监视器使能位1 = 同时使能故障保护时钟监视器和内 / 外部切换0 = 禁止故障保护时钟监视器

    bit 12 IESO:内 / 外部切换位1 = 使能内 / 外部切换模式0 = 禁止内 / 外部切换模式

    bit 11 CLKOUTEN:时钟输出使能位如果 FOSC 配置位被设置为 LP、 XT 或 HS 模式:

    该位被忽略;禁止 CLKOUT 功能。 CLKOUT 引脚为振荡器功能。所有其他 FOSC 模式:

    1 = 禁止 CLKOUT 功能。 CLKOUT 引脚为 I/O 功能。0 = 在 CLKOUT 引脚使能 CLKOUT 功能

    bit 10-9 BOREN:欠压复位使能位11 = 使能 BOR10 = 在工作期间使能 BOR,在休眠期间禁止 BOR01 = BOR 由 BORCON 寄存器的 SBOREN 位控制00 = 禁止 BOR

    bit 8 未实现:读为 1bit 7 CP:代码保护位 (1)

    1 = 禁止程序存储器代码保护0 = 使能程序存储器代码保护

    bit 6 MCLRE:MCLR/VPP 引脚功能选择位如果 LVP 位 = 1:

    该位被忽略。如果 LVP 位 = 0:

    1 = MCLR/VPP 引脚功能为 MCLR ;使能弱上拉。0 = MCLR/VPP 引脚功能为数字输入; MCLR 在内部被禁止;弱上拉由 WPUE3 位控制。

    bit 5 PWRTE:上电延时定时器使能位1 = 禁止 PWRT0 = 使能 PWRT

    bit 4-3 WDTE:看门狗定时器使能位11 = 使能 WDT10 = 在运行时使能 WDT,在休眠时禁止 WDT01 = WDT 由 WDTCON 寄存器的 SWDTEN 位控制00 = 禁止 WDT

    bit 2 未实现:读为 1

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 49 页

  • PIC16(L)F1703/7

    bit 1-0 FOSC:振荡器选择位11 = ECH:外部时钟,高功耗模式(4-20 MHz):器件时钟提供给 CLKIN 引脚10 = ECM:外部时钟,中等功耗模式 (0.5-4 MHz):器件时钟提供给 CLKIN 引脚01 = ECL:外部时钟,低功耗模式(0-0.5 MHz):器件时钟提供给 CLKIN 引脚00 = LP 振荡器:低功耗晶振连接在 OSC1 和 OSC2 引脚之间

    注 1: 在擦除期间关闭代码保护功能时,将擦除整个闪存程序存储器的内容。执行批量擦除程序存储器命令时,将擦除整个闪存程序存储器和配置存储器的内容。

    寄存器 4-1: CONFIG1:配置字 1 (续)

    DS40001722A_CN 第 50 页 初稿 © 2014 Microchip Technology Inc.

  • PIC16(L)F1703/7

    寄存器 4-2: CONFIG2:配置字 2

    R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1

    LVP(1) DEBUG(2) LPBOR BORV(3) STVREN PLLENbit 13 bit 8

    R/P-1 U-1 U-1 U-1 U-1 R/P-1 R/P-1 R/P-1ZCDDIS — — — — PPS1WAY WRT

    bit 7 bit 0

    图注:

    R = 可读位 P = 可编程位 U = 未实现位,读为 10 = 清零 1 = 置 1 -n = 空白时或批量擦除后的值

    bit 13 LVP:低电压编程使能位 (1)1 = 使能低电压编程0 = 必须使用 MCLR 上的高电压进行编程

    bit 12 DEBUG:在线调试器模式位 (2)1 = 禁止在线调试器, ICSPCLK 和 ICSPDAT 是通用 I/O 引脚0 = 使能在线调试器, ICSPCLK 和 ICSPDAT 专用于调试器

    bit 11 LPBOR:低功耗 BOR 使能位1 = 禁止低功耗欠压复位0 = 使能低功耗欠压复位

    bit 10 BORV:欠压复位电压选择位 (3)1 = 欠压复位电压 (VBOR),选择低跳变点0 = 欠压复位电压 (VBOR),选择高跳变点

    bit 9 STVREN:堆栈上溢 / 下溢复位使能位1 = 堆栈上溢或下溢将导致复位0 = 堆栈上溢或下溢不会导致复位

    bit 8 PLLEN:PLL 使能位1 = 使能 4xPLL0 = 禁止 4xPLL

    bit 7 ZCDDIS: ZCD 禁止位1 = 禁止 ZCD。通过将 ZCDCON 寄存器的 ZCDSEN 位置 1 可以使能 ZCD0 = 总是使能 ZCD

    bit 6-3 未实现:读为 1bit 2 PPS1WAY:PPSLOCK 位一次置 1 使能位

    1 = PPSLOCK位只能在执行解锁序列之后置1一次;当PPSLOCK置1之后,将阻止对PPS寄存器的所有未来更改0 = PPSLOCK 位可以根据需要置 1 和清零 (前提是已执行解锁序列)

    bit 1-0 WRT:闪存自写保护位4 kW 闪存

    11 = 写保护关闭10 = 000h 至 1FFh 被写保护, 200h 至 FFFh 可由 PMCON 控制修改01 = 000h 至 7FFh 被写保护, 800h 至 FFFh 可由 PMCON 控制修改00 = 000h 至 FFFh 被写保护,没有地址可被 PMCON 控制修改

    注 1: 当通过 LVP 进入编程模式时,不能将 LVP 位编程为 0。2: 配置字中的 DEBUG 位由器件开发工具 (包括调试器和编程器)自动管理。对于正常器件工作,该位应保持为 1。3: 关于具体跳变点电压,请参见 VBOR 参数。

    © 2014 Microchip Technology Inc. 初稿 DS40001722A_CN 第 51 页

  • PIC16(L)F1703/7

    4.3 代码保护通过代码保护,可以防止对器件的未授权访问。程序存储器保护独立进行控制。对程序存储器的内部访问不会受任何代码保护设置影响。

    4.3.1 程序存储器保护整个程序存储空间都通过配置字中的 CP 位来防止外部读写操作。当 CP = 0 时,将禁止对程序存储器的外部读写操作,读取时将返回全0。无论保护位的设置如何,CPU都可以继续读取程序存储器。对程序存储器的写操作则取决于写保护设置。更多信息,请参见第 4.4 节“写保护”。

    4.4 写保护通过写保护,可以防止器件发生意外的自写操作。在保护应用程序(如自