电子工程世界电子工程世界电子工程世界

产品描述

搜索
 

PIC16LF724-MV/ML

器件型号:PIC16LF724-MV/ML
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:Microchip
厂商官网:https://www.microchip.com
下载文档

器件描述

8-BIT, FLASH, 20 MHz, MICROCONTROLLER, PDSO28

8位, FLASH, 20 MHz, 单片机, PDSO28

参数
PIC16LF724-MV/ML功能数量 1
PIC16LF724-MV/ML端子数量 28
PIC16LF724-MV/ML最大工作温度 125 Cel
PIC16LF724-MV/ML最小工作温度 -40 Cel
PIC16LF724-MV/ML最大供电/工作电压 5.5 V
PIC16LF724-MV/ML最小供电/工作电压 2.3 V
PIC16LF724-MV/ML额定供电电压 3.3 V
PIC16LF724-MV/ML外部数据总线宽度 0.0
PIC16LF724-MV/ML输入输出总线数量 25
PIC16LF724-MV/ML线速度 20 MHz
PIC16LF724-MV/ML加工封装描述 5.30 MM, ROHS COMPLIANT, PLASTIC, SSOP-28
PIC16LF724-MV/ML无铅 Yes
PIC16LF724-MV/ML欧盟RoHS规范 Yes
PIC16LF724-MV/ML中国RoHS规范 Yes
PIC16LF724-MV/ML状态 ACTIVE
PIC16LF724-MV/ML工艺 CMOS
PIC16LF724-MV/ML包装形状 RECTANGULAR
PIC16LF724-MV/ML包装尺寸 SMALL OUTLINE, SHRINK PITCH
PIC16LF724-MV/ML表面贴装 Yes
PIC16LF724-MV/ML端子形式 GULL WING
PIC16LF724-MV/ML端子间距 0.6500 mm
PIC16LF724-MV/ML端子涂层 MATTE TIN
PIC16LF724-MV/ML端子位置 DUAL
PIC16LF724-MV/ML包装材料 PLASTIC/EPOXY
PIC16LF724-MV/ML温度等级 AUTOMOTIVE
PIC16LF724-MV/MLADC通道 Yes
PIC16LF724-MV/ML地址总线宽度 0.0
PIC16LF724-MV/ML位数 8
PIC16LF724-MV/ML最大FCLK时钟频率 20 MHz
PIC16LF724-MV/ML微处理器类型 MICROCONTROLLER
PIC16LF724-MV/MLPWM通道 Yes
PIC16LF724-MV/MLROM编程 FLASH

PIC16LF724-MV/ML器件文档内容

PIC16F72X/PIC16LF72X
                     Data Sheet

28/40/44-Pin Flash Microcontrollers
     with nanoWatt XLP Technology

2009 Microchip Technology Inc.  DS41341E
Note the following details of the code protection feature on Microchip devices:
Microchip products meet the specification contained in their particular Microchip Data Sheet.

Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
      intended manner and under normal conditions.

There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
      knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip's Data
      Sheets. Most likely, the person doing so is engaged in theft of intellectual property.

Microchip is willing to work with the customer who is concerned about the integrity of their code.

Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
      mean that we are guaranteeing the product as "unbreakable."

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip's code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information contained in this publication regarding device         Trademarks
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to     The Microchip name and logo, the Microchip logo, dsPIC,
ensure that your application meets with your specifications.       KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,
MICROCHIP MAKES NO REPRESENTATIONS OR                              rfPIC and UNI/O are registered trademarks of Microchip
WARRANTIES OF ANY KIND WHETHER EXPRESS OR                          Technology Incorporated in the U.S.A. and other countries.
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,                             FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,                        MXDEV, MXLAB, SEEVAL and The Embedded Control
QUALITY, PERFORMANCE, MERCHANTABILITY OR                           Solutions Company are registered trademarks of Microchip
FITNESS FOR PURPOSE. Microchip disclaims all liability             Technology Incorporated in the U.S.A.
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at  Analog-for-the-Digital Age, Application Maestro, CodeGuard,
the buyer's risk, and the buyer agrees to defend, indemnify and    dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
hold harmless Microchip from any and all damages, claims,          ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
suits, or expenses resulting from such use. No licenses are        Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
conveyed, implicitly or otherwise, under any Microchip             logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code
intellectual property rights.                                      Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
                                                                   PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total
                                                                   Endurance, TSHARC, UniWinDriver, WiperLock and ZENA
                                                                   are trademarks of Microchip Technology Incorporated in the
                                                                   U.S.A. and other countries.

                                                                   SQTP is a service mark of Microchip Technology Incorporated
                                                                   in the U.S.A.

                                                                   All other trademarks mentioned herein are property of their
                                                                   respective companies.

                                                                   2009, Microchip Technology Incorporated, Printed in the
                                                                   U.S.A., All Rights Reserved.

                                                                        Printed on recycled paper.

DS41341E-page 2                                                    Microchip received ISO/TS-16949:2002 certification for its worldwide
                                                                   headquarters, design and wafer fabrication facilities in Chandler and
                                                                   Tempe, Arizona; Gresham, Oregon and design centers in California
                                                                   and India. The Company's quality system processes and procedures
                                                                   are for its PIC MCUs and dsPIC DSCs, KEELOQ code hopping
                                                                   devices, Serial EEPROMs, microperipherals, nonvolatile memory and
                                                                   analog products. In addition, Microchip's quality system for the design
                                                                   and manufacture of development systems is ISO 9001:2000 certified.

                                                                                                       2009 Microchip Technology Inc.
                     PIC16F72X/PIC16LF72X

28/40/44-Pin Flash Microcontrollers with nanoWatt XLP Technology

Devices Included In This Data Sheet:                Extreme Low-Power Management
                                                    PIC16LF72X with nanoWatt XLP:
PIC16F72X Devices:
                                                    Sleep Mode: 20 nA
PIC16F722          PIC16F726                     Watchdog Timer: 500 nA
PIC16F723          PIC16F727                     Timer1 Oscillator: 600 nA @ 32 kHz
PIC16F724
                                                    Analog Features:
PIC16LF72X Devices:
                                                    A/D Converter:
PIC16LF722          PIC16LF726                      - 8-bit resolution and up to 14 channels
PIC16LF723          PIC16LF727                      - Conversion available during Sleep
PIC16LF724                                           - Selectable 1.024/2.048/4.096V voltage
                                                          reference
High-Performance RISC CPU:
                                                    On-chip 3.2V Regulator (PIC16F72X devices only)
Only 35 Instructions to Learn:
   - All single-cycle instructions except branches  Peripheral Highlights:

Operating Speed:                                  Up to 35 I/O Pins and 1 Input-only Pin:
   - DC 20 MHz oscillator/clock input                - High-current source/sink for direct LED drive
   - DC 200 ns instruction cycle                     - Interrupt-on-pin change
                                                       - Individually programmable weak pull-ups
Up to 8K x 14 Words of Flash Program Memory
Up to 368 Bytes of Data Memory (RAM)               Timer0: 8-Bit Timer/Counter with 8-Bit Prescaler
Interrupt Capability                               Enhanced Timer1:
8-Level Deep Hardware Stack
Direct, Indirect and Relative Addressing modes       - Dedicated low-power 32 kHz oscillator
Processor Read Access to Program Memory              - 16-bit timer/counter with prescaler
Pinout Compatible to other 28/40-pin PIC16CXXX       - External Gate Input mode with toggle and

   and PIC16FXXX Microcontrollers                         single shot modes
                                                       - Interrupt-on-gate completion
Special Microcontroller Features:                   Timer2: 8-Bit Timer/Counter with 8-Bit Period
                                                       Register, Prescaler and Postscaler
Precision Internal Oscillator:                     Two Capture, Compare, PWM (CCP) Modules:
   - 16 MHz or 500 kHz operation                       - 16-bit Capture, max. resolution 12.5 ns
   - Factory calibrated to 1%, typical                - 16-bit Compare, max. resolution 200 ns
   - Software tunable                                  - 10-bit PWM, max. frequency 20 kHz
   - Software selectable 1, 2, 4 or 8 divider    Addressable Universal Synchronous
                                                       Asynchronous Receiver Transmitter (AUSART)
1.8V-5.5V Operation PIC16F72X                   Synchronous Serial Port (SSP):
1.8V-3.6V Operation PIC16LF72X                     - SPI (Master/Slave)
Power-on Reset (POR), Power-up Timer (PWRT)          - I2CTM (Slave) with Address Mask
                                                    mTouchTM Sensing Oscillator Module:
   and Oscillator Start-up Timer (OST)                 - Up to 16 input channels
Brown-out Reset (BOR):
                                                                                                             DS41341E-page 3
   - Selectable between two trip points
   - Disable in Sleep option
Programmable Code Protection
In-Circuit Serial ProgrammingTM (ICSPTM) via Two
   Pins
Multiplexed Master Clear with Pull-up/Input Pin
Industrial and Extended Temperature Range
High-Endurance Flash Cell:
   - 1,000 write Flash endurance (typical)
   - Flash retention: > 40 years
Power-Saving Sleep mode

2009 Microchip Technology Inc.
PIC16F72X/PIC16LF72X

     Device      Program  SRAM     I/Os  Interrupts  8-bit A/D  AUSART  CCP  Timers
                 Memory   (bytes)                       (ch)                 8/16-bit
PIC16F722/
PIC16LF722         Flash    128    25    12          11         Yes     2       2/1
PIC16F723/       (words)    192                                                 2/1
PIC16LF723                  192    25    12          11         Yes     2       2/1
PIC16F724/         2048     368                                                 2/1
PIC16LF724                  368    36    12          14         Yes     2       2/1
PIC16F726/         4096
PIC16LF726                         25    12          11         Yes     2
PIC16F727/         4096
PIC16LF727                         36    12          14         Yes     2
                   8192

                   8192

DS41341E-page 4                                                 2009 Microchip Technology Inc.
                                                               PIC16F72X/PIC16LF72X

Pin Diagrams 28-PIN PDIP/SOIC/SSOP/QFN/UQFN (PIC16F722/723/726/PIC16LF722/723/726)

PDIP, SOIC, SSOP

                  VPP/MCLR/RE3             1                                                                                                     28                 RB7/ICSPDAT

           VCAP(3)/SS(2)/AN0/RA0           2                                                                                                     27                 RB6/ICSPCLK

                  AN1/RA1                  3                                                                                                     26                 RB5/AN13/CPS5/T1G

                  AN2/RA2                  4                                                                                                     25                 RB4/AN11/CPS4

                  VREF/AN3/RA3             5                                          PIC16F722/723/726/                                         24                 RB3/AN9/CPS3/CCP2(1)
                                                                                         PIC16LF722/723/726
                  T0CKI/CPS6/RA4           6                                                                                                     23                 RB2/AN8/CPS2

VCAP(3)/SS(2)/CPS7/AN4/RA5                 7                                                                                                     22                 RB1/AN10/CPS1

                  VSS                      8                                                                                                     21                 RB0/AN12/CPS0/INT

                  CLKIN/OSC1/RA7           9                                                                                                     20                 VDD

           VCAP(3)/CLKOUT/OSC2/RA6         10                                                                                                    19                 VSS

                  T1CKI/T1OSO/RC0          11                                                                                                    18                 RC7/RX/DT

                  CCP2(1)/T1OSI/RC1        12                                                                                                    17                 RC6/TX/CK

                  CCP1/RC2                 13                                                                                                    16                 RC5/SDO

                  SCL/SCK/RC3              14                                                                                                    15                 RC4/SDI/SDA

QFN, UQFN                                                      RA0/AN0/SS(2)/VCAP(3)  RE3/MCLR/VPP  RB7/ICSPDAT  RB6/ICSPCLK  RB5/AN13/CPS5/T1G  RB4/AN11/CPS4

                                               RA1/AN1

                                               28              27                     26            25           24           23                 22

                           AN2/RA2      1                                                                                                                       21       RB3/AN9/CPS3/CCP2(1)
                    VREF/AN3/RA3                                                                                                                                         RB2/AN8/CPS2
                T0CKI/CPS6/RA4          2                                                                                                                       20       RB1/AN10/CPS1
VCAP(3)/SS(2)/CPS7/AN4/RA5                                                                                                                                               RB0/AN12/CPS0/INT
                                        3 PIC16F722/723/726/ 19                                                                                                          VDD
                                   VSS  4 PIC16LF722/723/726 18                                                                                                          VSS
               CLKIN/OSC1/RA7                                                                                                                                            RC7/RX/DT
VCAP(3)/CLKOUT/OSC2/RA6                5                                                                                                                       17

                                        6                                                                                                                       16

                                        7                                                                                                                       15

                                              8                9                      10            11           12           13                 14

                                              T1CKI/T1OSO/RC0  CCP2(1)/T1OSI/RC1      CCP1/RC2      SCL/SCK/RC3  SDA/SDI/RC4  SDO/RC5            CK/TX/RC6

            Note 1: CCP2 pin location may be selected as RB3 or RC1.                                                                                                                   DS41341E-page 5
                    2: SS pin location may be selected as RA5 or RA0.
                    3: PIC16F722/723/726 devices only.

2009 Microchip Technology Inc.
PIC16F72X/PIC16LF72X

TABLE 1:          28-PIN PDIP/SOIC/SSOP/QFN/UQFN SUMMARY
                  (PIC16F722/723/726/PIC16LF722/723/726)

I/O    28-Pin     28-Pin  A/D Cap Sensor  Timers  CCP AUSART SSP Interrupt Pull-Up                                                  Basic
       PDIP,      QFN,
       SOIC,      UQFN
       SSOP

RA0           2   27      AN0   --        --      --       --     SS(3)    --   --                                                  VCAP(4)

RA1           3   28      AN1   --        --      --       --     --       --   --                                                  --

RA2           4   1       AN2   --        --      --       --     --       --   --                                                  --

RA3           5   2 AN3/VREF    --        --      --       --     --       --   --                                                  --

RA4           6   3       --    CPS6      T0CKI   --       --     --       --   --                                                  --

RA5           7   4       AN4   CPS7      --      --       --     SS(3)    --   --                                                  VCAP(4)

RA6           10  7       --    --        --      --       --     --       --   -- OSC2/CLKOUT/VCAP(4)

RA7           9   6       --    --        --      --       --     --       --   --    OSC1/CLKIN

RB0           21  18      AN12  CPS0      --      --       --     --       IOC/INT Y                                                --

RB1           22  19      AN10  CPS1      --      --       --     --       IOC  Y                                                   --

RB2           23  20      AN8   CPS2      --      --       --     --       IOC  Y                                                   --

RB3           24  21      AN9   CPS3      --      CCP2(2)  --     --       IOC  Y                                                   --

RB4           25  22      AN11  CPS4      --      --       --     --       IOC  Y                                                   --

RB5           26  23      AN13  CPS5      T1G     --       --     --       IOC  Y                                                   --

RB6           27  24      --    --        --      --       --     --       IOC  Y     ICSPCLK/ICDCLK

RB7           28  25      --    --        --      --       --     --       IOC  Y     ICSPDAT/ICDDAT

RC0           11  8       --    --        T1OSO/T1CKI --   --     --       --   --                                                  --

RC1           12  9       --    --        T1OSI   CCP2(2)  --     --       --   --                                                  --

RC2           13  10      --    --        --      CCP1     --     --       --   --                                                  --

RC3           14  11      --    --        --      --       --     SCK/SCL  --   --                                                  --

RC4           15  12      --    --                --       --     SDI/SDA  --   --                                                  --

RC5           16  13      --    --        --      --       --     SDO      --   --                                                  --

RC6           17  14      --    --        --      --       TX/CK  --       --   --                                                  --

RC7           18  15      --    --        --      --       RX/DT  --       --   --                                                  --

RE3           1   26      --    --        --      --       --     --       --   Y(1)                                                MCLR/VPP

--            20  17      --    --        --      --       --     --       --   --                                                  VDD

--            8,19 5,16   --    --        --      --       --     --       --   --                                                  VSS

Note 1:          Pull-up enabled only with external MCLR configuration.
          2:     RC1 is the default pin location for CCP2. RB3 may be selected by changing the CCP2SEL bit in the APFCON register.
          3:     RA5 is the default pin location for SS. RA0 may be selected by changing the SSSEL bit in the APFCON register.
          4:     PIC16F72X devices only.

Note:            The PIC16F72X devices have an internal low dropout voltage regulator. An external capacitor must be
                 connected to one of the available VCAP pins to stabilize the regulator. For more information, see
                 Section 5.0 "Low Dropout (LDO) Voltage Regulator". The PIC16LF72X devices do not have the voltage
                 regulator and therefore no external capacitor is required.

DS41341E-page 6                                                                  2009 Microchip Technology Inc.
                              PIC16F72X/PIC16LF72X

Pin Diagrams 40-PIN PDIP (PIC16F724/727/PIC16LF724/727)

VPP/MCLR/RE3                           1                                      40  RB7/ICSPDAT

VCAP(3)/SS(2)/AN0/RA0                  2                                      39  RB6/ICSPCLK

AN1/RA1                                3                                      38  RB5/AN13/CPS5/T1G

AN2/RA2                                4                                      37  RB4/AN11/CPS4

VREF/AN3/RA3                           5                                      36  RB3/AN9/CPS3/CCP2(1)

T0CKI/CPS6/RA4                         6                                      35  RB2/AN8/CPS2

VCAP(3)/SS(2)/CPS7/AN4/RA5             7                                      34  RB1/AN10/CPS1

AN5/RE0                                8                   PIC16F724/727/     33  RB0/AN12/CPS0/INT
                                                              PIC16LF724/727
AN6/RE1                                9                                      32  VDD

AN7/RE2                                10                                     31  VSS

                                  VDD  11                                     30  RD7/CPS15

                                  VSS  12                                     29  RD6/CPS14

CLKIN/OSC1/RA7                         13                                     28  RD5/CPS13

VCAP(3)/CLKOUT/OSC2/RA6                14                                     27  RD4/CPS12

T1CKI/T1OSO/RC0                        15                                     26  RC7/RX/DT

CCP2(1)/T1OSI/RC1                      16                                     25  RC6/TX/CK

CCP1/RC2                               17                                     24  RC5/SDO

SCL/SCK/RC3                            18                                     23  RC4/SDI/SDA

CPS8/RD0                               19                                     22  RD3/CPS11

CPS9/RD1                               20                                     21  RD2/CPS10

Note 1: CCP2 pin location may be selected as RB3 or RC1.
        2: SS pin location may be selected as RA5 or RA0.
        3: PIC16F724/727 devices only.

2009 Microchip Technology Inc.                                                                 DS41341E-page 7
PIC16F72X/PIC16LF72X

Pin Diagrams 44-PIN TQFP (PIC16F724/727/PIC16LF724/727)

                                     RC6/TX/CK  RC5/SDO  RC4/SDI/SDA    RD3/CPS11          RD2/CPS10    RD1/CPS9     RD0/CPS8      RC3/SCK/SCL            RC2/CCP1  RC1/T1OSI/CCP2(1)  NC

                                     44         43       42             41                 40           39           38            37                     36        35                 34

                 DT/RX/RC7       1                                                                                                                                                         33        NC
                 CPS12/RD4                                                                                                                                                                           RC0/T1OSO/T1CKI
                 CPS13/RD5       2                                                                                                                                                         32        RA6/OSC2/CLKOUT/VCAP(3)
                 CPS14/RD6                                                                                                                                                                           RA7/OSC1/CLKIN
                                 3                                                                                                                                                         31        VSS
                 CPS15/RD7                                                                                                                                                                           VDD
                                 4                                                                                                                                                         30        RE2/AN7
                            VSS                                                                                                                                                                      RE1/AN6
                            VDD  5              PIC16F724/727/                                                                                                                             29        RE0/AN5
    INT/CPS0/AN12/RB0                                                                                                                                                                                RA5/AN4/CPS7/SS(2)/VCAP(3)
          CPS1/AN10/RB1          6              PIC16LF724/727                                                                                                                             28        RA4/CPS6/T0CKI
           CPS2/AN8/RB2
CCP2(1)/CPS3/AN9/RB3             7                                                                                                                                                         27

                                 8                                                                                                                                                         26

                                 9                                                                                                                                                         25

                                 10                                                                                                                                                        24

                                 11                                                                                                                                                        23

                                     12         13       14             15                 16           17           18            19                     20        21                 22

                                     NC         NC       CPS4/AN11/RB4  T1G/CPS5/AN13/RB5  ICSPCLK/RB6  ICSPDAT/RB7  VPP/MCLR/RE3  VCAP(3)/SS(2)/AN0/RA0  AN1/RA1   AN2/RA2            VREF/AN3/RA3

Note 1: CCP2 pin location may be selected as RB3 or RC1.
        2: SS pin location may be selected as RA5 or RA0.
        3: PIC16F724/727 devices only.

DS41341E-page 8                                                                                                                                                                                       2009 Microchip Technology Inc.
                              PIC16F72X/PIC16LF72X

Pin Diagrams 44-PIN QFN (PIC16F724/727/PIC16LF724/727)

                                      RC6/TX/CK            RC5/SDO  RC4/SDI/SDA    RD3/CPS11          RD2/CPS10    RD1/CPS9     RD0/CPS8      RC3/SCK/SCL          RC2/CCP1 RC1/T1OSI/CCP2(1)  RC0/T1OSO/T1CKI

            DT/RX/RC7             1   44                   43       42             41                 40           39           38            37                   36        35                34               RA6/OSC2/CLKOUT/VCAP(3)
            CPS12/RD4                                                                                                                                                                                           RA7/OSC1/CLKIN
            CPS13/RD5                                                                                                                                                                          33               VSS
            CPS14/RD6                                                                                                                                                                                           VSS
            CPS15/RD7             2                                                                                                                                                            32               NC
                                                                                                                                                                                                                VDD
                       VSS        3                                                                                                                                                            31               RE2/AN7
                       VDD                                                                                                                                                                                      RE1/AN6
                       VDD        4                                                                                                                                                            30               RE0/AN5
INT/CPS0/AN12/RB0                                                                                                                                                                                               RA5/AN4/CPS7/SS(2)/VCAP(3)
     CPS1/AN10/RB1                5                        PIC16F724/727/                                                                                                                      29               RA4/CPS6/T0CKI
       CPS2/AN8/RB2               6                                                                                                                                                            28
                                  7 PIC16LF724/727 27

                                  8                                                                                                                                                            26

                                  9                                                                                                                                                            25

                                  10                                                                                                                                                           24

                                  11                                                                                                                                                  22       23

                                     12                    13       14             15                 16           17           18            19                   20       21

                                     CCP2(1)/CPS3/AN9/RB3  NC       CPS4/AN11/RB4  T1G/CPS5/AN13/RB5  ICSPCLK/RB6  ICSPDAT/RB7  VPP/MCLR/RE3VCAP(3)/SS(2)/AN0/RA0  AN1/RA1   AN2/RA2           VREF/AN3/RA3

Note 1: CCP2 pin location may be selected as RB3 or RC1.
        2: SS pin location may be selected as RA5 or RA0.
        3: PIC16F724/727 devices only.

2009 Microchip Technology Inc.                                                                                                                                                                                DS41341E-page 9
PIC16F72X/PIC16LF72X

TABLE 2:            40/44-PIN PDIP/TQFP/QFN SUMMARY (PIC16F724/727/PIC16LF724/727)

I/O  40-Pin 44-Pin 44-Pin  A/D    Cap   Timers  CCP      AUSART  SSP      Interrupt Pull-Up                                         Basic
     PDIP TQFP QFN              Sensor

RA0           2  19  19    AN0  --      --      --       --      SS(3)    --       --                                               VCAP(4)
                                                                                                                                       --
RA1           3  20  20    AN1  --      --      --       --      --       --       --

RA2           4  21  21    AN2  --      --      --       --      --       --       --                                               --

RA3           5  22  22 AN3/VREF --     --      --       --      --       --       --                                               --

RA4           6  23  23    --   CPS6 T0CKI      --       --      --       --       --                                               --

RA5           7  24  24    AN4  CPS7    --      --       --      SS(3)    --       --                                               VCAP(4)

RA6 14           31  33    --   --      --      --       --      --       --       --        OSC2/CLKOUT/VCAP(4)

RA7 13           30  32    --   --      --      --       --      --       --       --        OSC1/CLKIN

RB0 33           8   9     AN12 CPS0    --      --       --      --       IOC/INT  Y                                                --

RB1 34           9   10    AN10 CPS1    --      --       --      --       IOC      Y                                                --

RB2 35           10  11    AN8  CPS2    --      --       --      --       IOC      Y                                                --

RB3 36           11  12    AN9  CPS3    --      CCP2(2)  --      --       IOC      Y                                                --

RB4 37           14  14    AN11 CPS4    --      --       --      --       IOC      Y                                                --

RB5 38           15  15    AN13 CPS5 T1G        --       --      --       IOC      Y                                                --

RB6 39           16  16    --   --      --      --       --      --       IOC      Y         ICSPCLK/ICDCLK

RB7 40           17  17    --   --      --      --       --      --       IOC      Y         ICSPDAT/ICDDAT

RC0 15           32  34    --   -- T1OSO/ --             --      --       --       --                                               --

                                        T1CKI

RC1 16           35  35    --   --      T1OSI CCP2(2)    --      --       --       --                                               --

RC2 17           36  36    --   --      --      CCP1     --      --       --       --                                               --

RC3 18           37  37    --   --      --      --       --      SCK/SCL  --       --                                               --

RC4 23           42  42    --   --              --       --      SDI/SDA  --       --                                               --

RC5 24           43  43    --   --              --       --      SDO      --       --                                               --

RC6 25           44  44    --   --      --      --       TX/CK   --       --       --                                               --

RC7 26           1   1     --   --      --      --       RX/DT   --       --       --                                               --

RD0 19           38  38    --   CPS8    --      --       --      --       --       --                                               --

RD1 20           39  39    --   CPS9    --      --       --      --       --       --                                               --

RD2 21           40  40    --   CPS10 --        --       --      --       --       --                                               --

RD3 22           41  41    --   CPS11 --        --       --      --       --       --             --
                                                                                                  --
RD4 27           2   2     --   CPS12 --        --       --      --       --       --             --
                                                                                                  --
RD5 28           3   3     --   CPS13 --        --       --      --       --       --             --
                                                                                                  --
RD6 29           4   4     --   CPS14 --        --       --      --       --       --             --
                                                                                                  --
RD7 30           5   5     --   CPS15 --        --       --      --       --       --        MCLR/VPP
                                                                                                 VDD
RE0           8  25  25    AN5  --      --      --       --      --       --       --            VSS

RE1           9  26  26    AN6  --      --      --       --      --       --       --

RE2 10           27  27    AN7  --      --      --       --      --       --       --

RE3           1  18  18    --   --      --      --       --      --       --       Y(1)

-- 11,32 7,20 7,8,28       --   --      --      --       --      --       --       --

-- 12,13 6,29 6,30,31 --        --      --      --       --      --       --       --

Note 1:          Pull-up enabled only with external MCLR configuration.
          2:     RC1 is the default pin location for CCP2. RB3 may be selected by changing the CCP2SEL bit in the APFCON register.
          3:     RA5 is the default pin location for SS. RA0 may be selected by changing the SSSEL bit in the APFCON register.
          4:     PIC16F72X devices only.

Note:            The PIC16F72X devices have an internal low dropout voltage regulator. An external capacitor must be
                 connected to one of the available VCAP pins to stabilize the regulator. For more information, see
                 Section 5.0 "Low Dropout (LDO) Voltage Regulator". The PIC16LF72X devices do not have the voltage
                 regulator and therefore no external capacitor is required.

DS41341E-page 10                                                                2009 Microchip Technology Inc.
                              PIC16F72X/PIC16LF72X

Table of Contents

1.0 Device Overview ....................................................................................................................................................................... 13
2.0 Memory Organization ................................................................................................................................................................ 19
3.0 Resets ....................................................................................................................................................................................... 33
4.0 Interrupts ................................................................................................................................................................................... 43
5.0 Low Dropout (LDO) Voltage Regulator ..................................................................................................................................... 51
6.0 I/O Ports .................................................................................................................................................................................... 53
7.0 Oscillator Module....................................................................................................................................................................... 89
8.0 Device Configuration ................................................................................................................................................................. 95
9.0 Analog-to-Digital Converter (ADC) Module ............................................................................................................................... 99
10.0 Fixed Voltage Reference......................................................................................................................................................... 109
11.0 Timer0 Module ........................................................................................................................................................................ 111
12.0 Timer1 Module with Gate Control............................................................................................................................................ 115
13.0 Timer2 Module ........................................................................................................................................................................ 127
14.0 Capacitive Sensing Module..................................................................................................................................................... 129
15.0 Capture/Compare/PWM (CCP) Module .................................................................................................................................. 135
16.0 Addressable Universal Synchronous Asynchronous Receiver Transmitter (AUSART) .......................................................... 145
17.0 SSP Module Overview ............................................................................................................................................................ 167
18.0 Program Memory Read ........................................................................................................................................................... 189
19.0 Power-Down Mode (Sleep) ..................................................................................................................................................... 193
20.0 In-Circuit Serial ProgrammingTM (ICSPTM) .............................................................................................................................. 195
21.0 Instruction Set Summary ......................................................................................................................................................... 197
22.0 Development Support.............................................................................................................................................................. 207
23.0 Electrical Specifications........................................................................................................................................................... 211
24.0 DC and AC Characteristics Graphs and Charts ...................................................................................................................... 241
25.0 Packaging Information............................................................................................................................................................. 277
Appendix A: Data Sheet Revision History......................................................................................................................................... 291
Appendix B: Migrating From Other PIC Devices............................................................................................................................. 291
The Microchip Web Site .................................................................................................................................................................... 299
Customer Change Notification Service ............................................................................................................................................. 299
Customer Support ............................................................................................................................................................................. 299
Reader Response ............................................................................................................................................................................. 300
Product Identification System ............................................................................................................................................................ 301

2009 Microchip Technology Inc.  DS41341E-page 11
PIC16F72X/PIC16LF72X

                                    TO OUR VALUED CUSTOMERS

  It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip
  products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and
  enhanced as new volumes and updates are introduced.
  If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via
  E-mail at docerrors@microchip.com or fax the Reader Response Form in the back of this data sheet to (480) 792-4150. We
  welcome your feedback.

Most Current Data Sheet

  To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
         http://www.microchip.com

  You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page.
  The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000).

Errata

  An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current
  devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision
  of silicon and revision of document to which it applies.
  To determine if an errata sheet exists for a particular device, please check with one of the following:
   Microchip's Worldwide Web site; http://www.microchip.com
   Your local Microchip sales office (see last page)
  When contacting a sales office, please specify which device, revision of silicon and data sheet (include literature number) you are
  using.

Customer Notification System

  Register on our web site at www.microchip.com to receive the most current information on all of our products.

DS41341E-page 12   2009 Microchip Technology Inc.
                              PIC16F72X/PIC16LF72X

1.0 DEVICE OVERVIEW

The PIC16F72X/PIC16LF72X devices are covered by
this data sheet. They are available in 28/40/44-pin
packages. Figure 1-1 shows a block diagram of the
PIC16F722/723/726/PIC16LF722/723/726 devices
and Figure 1-2 shows a block diagram of the
PIC16F724/727/PIC16LF724/727 devices. Table 1-1
shows the pinout descriptions.

2009 Microchip Technology Inc.  DS41341E-page 13
PIC16F72X/PIC16LF72X

FIGURE 1-1:           PIC16F722/723/726/PIC16LF722/723/726 BLOCK DIAGRAM

                  Configuration                  13                              Data Bus         8                      PORTA  RA0
                                                        Program Counter                                                  PORTB  RA1
                     Flash                                                         RAM                                   PORTC  RA2
                   Program                                8 Level Stack                                                  PORTE  RA3
                    Memory                                    (13-bit)                                                          RA4
                                                                                                                                RA5
      Program     14                                                     RAM Addr          9                                    RA6
         Bus                                                                                                                    RA7

                  IInnssttrruuccttiioonn Rreegg                                  Addr MUX                                       RB0
                                                                                                                                RB1
                                                 Direct Addr 7                                  Indirect                        RB2
                                                                                           8 Addr                               RB3
                                                                                                                                RB4
                                                                                   FFSSRR Rreegg                                RB5
                                                                                                                                RB6
                                                                                                    SSTTAATTUUSS Rreegg         RB7
                                                 8
                                                                                                                                RC0
                                                    Power-up             3                 MUX                                  RC1
                                                      Timer                                                                     RC2
OSC1/CLKIN        Instruction                                                    ALU                                           RC3
OSC2/CLKOUT       DDeeccooddeea&nd                  Oscillator           8                                                      RC4
                                                 Start-up Timer                                                                 RC5
                     Control                                                    WW Rreegg                                       RC6
                                                    Power-on                                                                    RC7
                     Timing                           Reset
                  Generation                                                                                                    RE3
                                                   Watchdog
       Internal                                       Timer
      Oscillator
                                                   Brown-out
        Block                                         Reset
                                                     LDO(1)

                                                   Regulator

                                                                         CCP1

                                                                                   CCP1

                      T1OSI                      MCLR VDD VSS CCP2                 CCP2                                                 SDI/ SCK/
                      T1OSO                                                        TX/CK RX/DT                                  SDO SDA SCL SS
                                                          Timer1
                                                           32 kHz
                                                         Oscillator

                      T0CKI                      T1G T1CKI

VREF                  Timer0                     Timer1                  Timer2            AAUUSSAARRTT                         Synchronous
                                                                                                                                 Serial Port

                         Analog-To-Digital Converter                                                                                      Capacitive Sensing Module
AN0 AN1 AN2 AN3 AN4 AN8 AN9 AN10 AN11 AN12 AN13                                                                          CPS0 CPS1 CPS2 CPS3 CPS4 CPS5 CPS6 CPS7

    Note 1: PIC16F722/723/726 only.

DS41341E-page 14                                                                                                          2009 Microchip Technology Inc.
                                                                      PIC16F72X/PIC16LF72X

FIGURE 1-2:       PIC16F724/727/PIC16LF724/727 BLOCK DIAGRAM

               Configuration                                                                                          PORTA

                   Flash                      13                              Data Bus  8                                       RA0
                Program                              Program Counter                                                            RA1
                 Memory                                                                                                         RA2
                                                       8 Level Stack                                                            RA3
                                                           (13-bit)             RAM                                             RA4
                                                                                                                                RA5
      Program     14                                                  RAM Addr       9                                PORTB     RA6
         Bus                                                                                                          PORTC     RA7

               IInnssttrruuccttiioonn Rreegg                                  Addr MUX                                          RB0
                                                                                                                                RB1
                                              Direct Addr 7                             Indirect                                RB2
                                                                                  8 Addr                                        RB3
                                                                                FFSSRRrRegeg                                    RB4
                                                                                                                                RB5
                                                                                                 SSTTAATTUUSS Rreegg            RB6
                                              8                                                                                 RB7

                                                 Power-up             3         MUX                                             RC0
                                                   Timer                                                                        RC1
OSC1/CLKIN     Instruction                                                    ALU                                    PORTD     RC2
OSC2/CLKOUT    DDeecocoddeea&nd                  Oscillator           8                                               PORTE     RC3
                                              Start-up Timer                                                                    RC4
                  Control                                                     W Reg                                             RC5
                                                 Power-on                                                                       RC6
                  Timing                           Reset                                                                        RC7
               Generation
                                                Watchdog                                                                        RD0
       Internal                                    Timer                                                                        RD1
      Oscillator                                                                                                                RD2
                                                Brown-out                                                                       RD3
        Block                                      Reset                                                                        RD4
                                                  LDO(1)                                                                        RD5
                                                                                                                                RD6
                                                Regulator                                                                       RD7

                                                                      CCP1                                                      RE0

                                                                                CCP1                                            RE1

                      T1OSI                   MCLR VDD VSS CCP2                    CCP2                                         RE2
                      T1OSO                                                     TX/CK RX/DT
                                                       Timer1                                                                   RE3
                                                        32 kHz
                                                      Oscillator                                                                     SDI/ SCK/
                                                                                                                             SDO SDA SCL SS

                      T0CKI                   T1G T1CKI

                      Timer0                  Timer1                  Timer2    AUSART                                       Synchronous
                                                                                                                              Serial Port
VREF

                                          Analog-To-Digital Converter

AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 AN12 AN13
                                                                                 Capacitive Sensing Module

               CPS0 CPS1 CPS2 CPS3 CPS4 CPS5 CPS6 CPS7 CPS8 CPS9 CPS10 CPS11 CPS12 CPS13 CPS14 CPS15
Note 1: PIC16F724/727 only.

2009 Microchip Technology Inc.                                                                                             DS41341E-page 15
PIC16F72X/PIC16LF72X

TABLE 1-1: PIC16F72X/PIC16LF72X PINOUT DESCRIPTION

         Name               Function  Input Output                          Description
                                      Type Type

RA0/AN0/SS/VCAP             RA0       TTL CMOS General purpose I/O.

                            AN0       AN  -- A/D Channel 0 input.

                            SS        ST  -- Slave Select input.

                            VCAP Power Power Filter capacitor for Voltage Regulator (PIC16F72X only).

RA1/AN1                     RA1       TTL CMOS General purpose I/O.

                            AN1       AN  -- A/D Channel 1 input.

RA2/AN2                     RA2       TTL CMOS General purpose I/O.

                            AN2       AN  -- A/D Channel 2 input.

RA3/AN3/VREF                RA3       TTL CMOS General purpose I/O.

                            AN3       AN  -- A/D Channel 3 input.

                            VREF      AN  -- A/D Voltage Reference input.

RA4/CPS6/T0CKI              RA4       TTL CMOS General purpose I/O.

                            CPS6      AN  -- Capacitive sensing input 6.

                            T0CKI     ST  -- Timer0 clock input.

RA5/AN4/CPS7/SS/VCAP        RA5       TTL CMOS General purpose I/O.

                            AN4       AN  -- A/D Channel 4 input.

                            CPS7      AN  -- Capacitive sensing input 7.

                            SS        ST  -- Slave Select input.

                            VCAP Power Power Filter capacitor for Voltage Regulator (PIC16F72X only).

RA6/OSC2/CLKOUT/VCAP        RA6       TTL CMOS General purpose I/O.

                            OSC2      -- XTAL Crystal/Resonator (LP, XT, HS modes).

                            CLKOUT -- CMOS FOSC/4 output.

                            VCAP Power Power Filter capacitor for Voltage Regulator (PIC16F72X only).

RA7/OSC1/CLKIN              RA7       TTL CMOS General purpose I/O.

                            OSC1 XTAL -- Crystal/Resonator (LP, XT, HS modes).

                            CLKIN CMOS -- External clock input (EC mode).

                            CLKIN     ST  -- RC oscillator connection (RC mode).

RB0/AN12/CPS0/INT           RB0       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                    Individually enabled pull-up.

                            AN12      AN  -- A/D Channel 12 input.

                            CPS0      AN  -- Capacitive sensing input 0.

                            INT       ST  -- External interrupt.

RB1/AN10/CPS1               RB1       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                    Individually enabled pull-up.

                            AN10      AN  -- A/D Channel 10 input.

                            CPS1      AN  -- Capacitive sensing input 1.

RB2/AN8/CPS2                RB2       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                    Individually enabled pull-up.

                            AN8       AN  -- A/D Channel 8 input.

                            CPS2      AN  -- Capacitive sensing input 2.

RB3/AN9/CPS3/CCP2           RB3       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                    Individually enabled pull-up.

                            AN9       AN  -- A/D Channel 9 input.

                            CPS3      AN  -- Capacitive sensing input 3.

                            CCP2      ST CMOS Capture/Compare/PWM2.

Legend: AN = Analog input or output CMOS = CMOS compatible input or output  OD = Open Drain

         TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2CTM = Schmitt Trigger input with I2C

         HV = High Voltage       XTAL = Crystal                                    levels

DS41341E-page 16                                                                   2009 Microchip Technology Inc.
                                                       PIC16F72X/PIC16LF72X

TABLE 1-1: PIC16F72X/PIC16LF72X PINOUT DESCRIPTION (CONTINUED)

           Name                   Function  Input Output                        Description
                                            Type Type

RB4/AN11/CPS4                     RB4       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                          Individually enabled pull-up.

                                  AN11      AN     -- A/D Channel 11 input.

                                  CPS4      AN     -- Capacitive sensing input 4.

RB5/AN13/CPS5/T1G                 RB5       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                          Individually enabled pull-up.

                                  AN13      AN     -- A/D Channel 13 input.

                                  CPS5      AN     -- Capacitive sensing input 5.

                                  T1G       ST     -- Timer1 Gate input.

RB6/ICSPCLK/ICDCLK                RB6       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                          Individually enabled pull-up.

                                  ICSPCLK ST       -- Serial Programming Clock.

                                  ICDCLK ST        -- In-Circuit Debug Clock.

RB7/ICSPDAT/ICDDAT                RB7       TTL CMOS General purpose I/O. Individually controlled interrupt-on-change.

                                                          Individually enabled pull-up.

                                  ICSPDAT ST CMOS ICSPTM Data I/O.

                                  ICDDAT ST        -- In-Circuit Data I/O.

RC0/T1OSO/T1CKI                   RC0       ST CMOS General purpose I/O.

                                  T1OSO XTAL XTAL Timer1 oscillator connection.

                                  T1CKI     ST     -- Timer1 clock input.

RC1/T1OSI/CCP2                    RC1       ST CMOS General purpose I/O.

                                  T1OSI XTAL XTAL Timer1 oscillator connection.

                                  CCP2      ST CMOS Capture/Compare/PWM2.

RC2/CCP1                          RC2       ST CMOS General purpose I/O.

                                  CCP1      ST CMOS Capture/Compare/PWM1.

RC3/SCK/SCL                       RC3       ST CMOS General purpose I/O.

                                  SCK        ST CMOS SPI clock.
                                  SCL       I2CTM OD I2CTM clock.

RC4/SDI/SDA                       RC4       ST CMOS General purpose I/O.

                                  SDI        ST    -- SPI data input.
                                  SDA       I2CTM  OD I2CTM data input/output.

RC5/SDO                           RC5       ST CMOS General purpose I/O.

                                  SDO       -- CMOS SPI data output.

RC6/TX/CK                         RC6       ST CMOS General purpose I/O.

                                  TX        -- CMOS USART asynchronous transmit.

                                  CK        ST CMOS USART synchronous clock.

RC7/RX/DT                         RC7       ST CMOS General purpose I/O.

                                  RX        ST     -- USART asynchronous input.

                                  DT        ST CMOS USART synchronous data.

RD0/CPS8                          RD0       ST CMOS General purpose I/O.

                                  CPS8      AN     -- Capacitive sensing input 8.

RD1/CPS9                          RD1       ST CMOS General purpose I/O.

                                  CPS9      AN     -- Capacitive sensing input 9.

RD2/CPS10                         RD2       ST CMOS General purpose I/O.

                                  CPS10 AN         -- Capacitive sensing input 10.

Legend: AN = Analog input or output CMOS = CMOS compatible input or output         OD = Open Drain

         TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2CTM = Schmitt Trigger input with I2C

         HV = High Voltage             XTAL = Crystal                                    levels

2009 Microchip Technology Inc.                                                                 DS41341E-page 17
PIC16F72X/PIC16LF72X

TABLE 1-1: PIC16F72X/PIC16LF72X PINOUT DESCRIPTION (CONTINUED)

           Name             Function  Input Output                          Description
                                      Type Type

RD3/CPS11                   RD3       ST CMOS General purpose I/O.

                            CPS11 AN       -- Capacitive sensing input 11.

RD4/CPS12                   RD4       ST CMOS General purpose I/O.

                            CPS12 AN       -- Capacitive sensing input 12.

RD5/CPS13                   RD5       ST CMOS General purpose I/O.

                            CPS13 AN       -- Capacitive sensing input 13.

RD6/CPS14                   RD6       ST CMOS General purpose I/O.

                            CPS14 AN       -- Capacitive sensing input 14.

RD7/CPS15                   RD7       ST CMOS General purpose I/O.

                            CPS15 AN       -- Capacitive sensing input 15.

RE0/AN5                     RE0       ST CMOS General purpose I/O.

                            AN5       AN   -- A/D Channel 5 input.

RE1/AN6                     RE1       ST CMOS General purpose I/O.

                            AN6       AN   -- A/D Channel 6 input.

RE2/AN7                     RE2       ST CMOS General purpose I/O.

                            AN7       AN   -- A/D Channel 7 input.

RE3/MCLR/VPP                RE3       TTL  -- General purpose input.

                            MCLR      ST   -- Master Clear with internal pull-up.

                            VPP       HV   -- Programming voltage.

VDD                         VDD Power -- Positive supply.

VSS                         VSS Power -- Ground reference.

Legend: AN = Analog input or output CMOS = CMOS compatible input or output  OD = Open Drain

         TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2CTM = Schmitt Trigger input with I2C

         HV = High Voltage       XTAL = Crystal                                    levels

Note:      The PIC16F72X devices have an internal low dropout voltage regulator. An external capacitor must be
           connected to one of the available VCAP pins to stabilize the regulator. For more information, see
           Section 5.0 "Low Dropout (LDO) Voltage Regulator". The PIC16LF72X devices do not have the voltage
           regulator and therefore no external capacitor is required.

DS41341E-page 18                                                             2009 Microchip Technology Inc.
                                                      PIC16F72X/PIC16LF72X

2.0 MEMORY ORGANIZATION                               FIGURE 2-2:  PROGRAM MEMORY MAP
                                                                   AND STACK FOR THE
2.1 Program Memory Organization                                    PIC16F723/LF723 AND
                                                                   PIC16F724/LF724
The PIC16F72X/PIC16LF72X has a 13-bit program
counter capable of addressing a 2K x 14 program                    PC<12:0>
memory space for the PIC16F722/LF722
(0000h-07FFh), a 4K x 14 program memory space for     CALL, RETURN           13
the PIC16F723/LF723 and PIC16F724/LF724
(0000h-0FFFh) and an 8K x 14 program memory space     RETFIE, RETLW
for the PIC16F726/LF726 and PIC16F727/LF727
(0000h-1FFFh). Accessing a location above the                      Stack Level 1
memory boundaries for the PIC16F722/LF722 will                     Stack Level 2
cause a wrap-around within the first 2K x 14 program
memory space. Accessing a location above the                       Stack Level 8      0000h
memory boundaries for the PIC16F723/LF723 and                      Reset Vector
PIC16F724/LF724 will cause a wrap-around within the
first 4K x 14 program memory space. The Reset vector                Interrupt Vector
is at 0000h and the interrupt vector is at 0004h.                         Page 0
                                                                          Page 1
FIGURE 2-1:  PROGRAM MEMORY MAP                                                       0004h
             AND STACK FOR THE                                     Wraps to Page 0    0005h
             PIC16F722/LF722                          On-chip      Wraps to Page 1
                                                      Program                         07FFh
                                                      Memory                          0800h

             PC<12:0>                                                                 0FFFh
                                                                                      1000h
CALL, RETURN                      13
                                                                                      17FFh
RETFIE, RETLW                                                                         1800h

             Stack Level 1                                                            1FFFh
             Stack Level 2

             Stack Level 8            0000h
             Reset Vector

On-chip       Interrupt Vector        0004h
Program             Page 0            0005h
Memory
             Wraps to Page 0          07FFh
             Wraps to Page 0          0800h
             Wraps to Page 0
                                      0FFFh
                                      1000h

                                      17FFh
                                      1800h

                                      1FFFh

2009 Microchip Technology Inc.                                                      DS41341E-page 19
PIC16F72X/PIC16LF72X

FIGURE 2-3:       PROGRAM MEMORY MAP       2.2 Data Memory Organization
                  AND STACK FOR THE
                  PIC16F726/LF726 AND      The data memory is partitioned into multiple banks
                  PIC16F727/LF727          which contain the General Purpose Registers (GPRs)
                                           and the Special Function Registers (SFRs). Bits RP0
                                           and RP1 are bank select bits.

                  PC<12:0>                 RP1 RP0

CALL, RETURN                13             0      0  Bank 0 is selected

RETFIE, RETLW

                                           0      1  Bank 1 is selected

                  Stack Level 1            1      0  Bank 2 is selected
                  Stack Level 2
                                           1      1  Bank 3 is selected

                  Stack Level 8     0000h  Each bank extends up to 7Fh (128 bytes). The lower
                  Reset Vector             locations of each bank are reserved for the Special
                                           Function Registers. Above the Special Function
                  Interrupt Vector  0004h  Registers are the General Purpose Registers,
                       Page 0       0005h  implemented as static RAM. All implemented banks
                       Page 1              contain Special Function Registers. Some frequently
                        Page 2      07FFh  used Special Function Registers from one bank are
                        Page 3      0800h  mirrored in another bank for code reduction and
                                           quicker access.
                                    0FFFh
                                    1000h  2.2.1  GENERAL PURPOSE REGISTER
                                                  FILE
On-chip                             17FFh
Program                             1800h  The register file is organized as 128 x 8 bits in the
Memory                                     PIC16F722/LF722, 192 x 8 bits in the PIC16F723/LF723
                                    1FFFh  and PIC16F724/LF724, and 368 x 8 bits in the
                                           PIC16F726/LF726 and PIC16F727/LF727. Each
                                           register is accessed either directly or indirectly through
                                           the File Select Register (FSR), (Refer to Section 2.5
                                           "Indirect Addressing, INDF and FSR Registers").

                                           2.2.2 SPECIAL FUNCTION REGISTERS

                                           The Special Function Registers are registers used by
                                           the CPU and peripheral functions for controlling the
                                           desired operation of the device (refer to Table 2-1).
                                           These registers are static RAM.

                                           The Special Function Registers can be classified into
                                           two sets: core and peripheral. The Special Function
                                           Registers associated with the "core" are described in
                                           this section. Those related to the operation of the
                                           peripheral features are described in the section of that
                                           peripheral feature.

DS41341E-page 20                                     2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

FIGURE 2-4:  PIC16F722/LF722 SPECIAL FUNCTION REGISTERS

Indirect addr.(*) 00h             Indirect addr.(*) 80h  Indirect addr.(*)  100h  Indirect addr.(*)  File Address
                                                              TMR0          101h      OPTION
TMR0         01h                  OPTION    81h                 PCL         102h         PCL         180h
                                                                            103h      STATUS         181h
PCL          02h                  PCL       82h              STATUS         104h         FSR         182h
                                                                FSR         105h      ANSELA         183h
STATUS 03h                        STATUS    83h                             106h      ANSELB         184h
                                                           CPSCON0          107h                     185h
FSR          04h                  FSR       84h            CPSCON1          108h      PCLATH         186h
                                                             PCLATH         109h      INTCON         187h
PORTA        05h                  TRISA     85h                             10Ah     PMCON1          188h
                                                             INTCON         10Bh     Reserved        189h
PORTB        06h                  TRISB     86h              PMDATL         10Ch     Reserved        18Ah
                                                            PMADRL          10Dh     Reserved        18Bh
PORTC        07h                  TRISC     87h             PMDATH          10Eh                     18Ch
                                                            PMADRH          10Fh                     18Dh
             08h                            88h                             110h                     18Eh
                                                                            111h                     18Fh
PORTE        09h                  TRISE     89h                             112h                     190h
                                                                            113h                     191h
PCLATH 0Ah                        PCLATH    8Ah                             114h                     192h
                                                                            115h                     193h
INTCON 0Bh                        INTCON    8Bh                             116h                     194h
                                                                            117h                     195h
PIR1         0Ch                  PIE1      8Ch                             118h                     196h
                                                                            119h                     197h
PIR2         0Dh                  PIE2      8Dh                             11Ah                     198h
                                                                            11Bh                     199h
TMR1L        0Eh                  PCON      8Eh                             11Ch                     19Ah
                                                                            11Dh                     19Bh
TMR1H        0Fh                  T1GCON 8Fh                                11Eh                     19Ch
                                                                            11Fh                     19Dh
T1CON        10h                  OSCCON 90h                                120h                     19Eh
                                                                                                     19Fh
TMR2         11h                  OSCTUNE 91h                                                        1A0h

T2CON        12h                  PR2       92h

SSPBUF 13h             SSPADD/SSPMSK 93h

SSPCON 14h                        SSPSTAT 94h

CCPR1L 15h                        WPUB      95h

CCPR1H 16h                        IOCB      96h

CCP1CON 17h                                 97h

RCSTA        18h                  TXSTA     98h

TXREG        19h                  SPBRG     99h

RCREG        1Ah                            9Ah

CCPR2L 1Bh                                  9Bh

CCPR2H 1Ch                        APFCON 9Ch

CCP2CON 1Dh                       FVRCON 9Dh

ADRES        1Eh                            9Eh

ADCON0 1Fh                        ADCON1 9Fh

             20h                            A0h

                                  General
                                  Purpose
                                  Register
                                  32 Bytes

General                                     BFh                             16Fh                     1EFh
Purpose                                     C0h                             170h                     1F0h
Register                                    EFh
96 Bytes                                    F0h                             17Fh                     1FFh

                                  Accesses               Accesses                 Accesses
                                  70h-7Fh                70h-7Fh                  70h-7Fh

                  7Fh                               FFh   Bank 2                   Bank 3
Bank 0                            Bank 1

Legend: = Unimplemented data memory locations, read as `0'.
             * = Not a physical register.

2009 Microchip Technology Inc.                                                                     DS41341E-page 21
PIC16F72X/PIC16LF72X

FIGURE 2-5:       PIC16F723/LF723 AND PIC16F724/LF724 SPECIAL FUNCTION REGISTERS

Indirect addr.(*) 00h  Indirect addr.(*) 80h    Indirect addr.(*) 100h  Indirect addr.(*)  File Address
                                                                            OPTION
TMR0              01h  OPTION    81h            TMR0             101h          PCL         180h
                                                                            STATUS         181h
PCL               02h  PCL       82h            PCL              102h          FSR         182h
                                                                            ANSELA         183h
STATUS 03h             STATUS    83h            STATUS           103h       ANSELB         184h
                                                                                           185h
FSR               04h  FSR       84h            FSR              104h     ANSELD(1)        186h
                                                                          ANSELE(1)        187h
PORTA             05h  TRISA     85h                             105h                      188h
                                                                            PCLATH         189h
PORTB             06h  TRISB     86h                             106h       INTCON         18Ah
                                                                           PMCON1          18Bh
PORTC             07h  TRISC     87h                             107h      Reserved        18Ch
                                                                           Reserved        18Dh
PORTD(1) 08h           TRISD(1)  88h            CPSCON0 108h               Reserved        18Eh
                                                                                           18Fh
PORTE             09h  TRISE     89h            CPSCON1 109h                               190h
                                                                                           191h
PCLATH 0Ah             PCLATH    8Ah            PCLATH           10Ah                      192h
                                                                                           193h
INTCON 0Bh             INTCON    8Bh            INTCON           10Bh                      194h
                                                                                           195h
PIR1              0Ch  PIE1      8Ch            PMDATL           10Ch                      196h
                                                                                           197h
PIR2              0Dh  PIE2      8Dh            PMADRL           10Dh                      198h
                                                                                           199h
TMR1L             0Eh  PCON      8Eh            PMDATH           10Eh                      19Ah
                                                                                           19Bh
TMR1H             0Fh  T1GCON 8Fh               PMADRH 10Fh                                19Ch
                                                                                           19Dh
T1CON             10h  OSCCON 90h                                110h                      19Eh
                                                                                           19Fh
TMR2              11h  OSCTUNE 91h                               111h                      1A0h

T2CON             12h  PR2       92h                             112h

SSPBUF 13h             SSPADD/SSPMSK 93h                         113h

SSPCON 14h             SSPSTAT 94h                               114h

CCPR1L 15h             WPUB      95h                             115h

CCPR1H 16h             IOCB      96h                             116h

CCP1CON 17h                      97h                             117h

RCSTA             18h  TXSTA     98h                             118h

TXREG             19h  SPBRG     99h                             119h

RCREG             1Ah            9Ah                             11Ah

CCPR2L 1Bh                       9Bh                             11Bh

CCPR2H 1Ch             APFCON 9Ch                                11Ch

CCP2CON 1Dh            FVRCON 9Dh                                11Dh

ADRES             1Eh            9Eh                             11Eh

ADCON0 1Fh             ADCON1 9Fh                                11Fh

                  20h            A0h            General Purpose  120h
                                                     Register
                       General                       16 Bytes    12Fh
                       Purpose                                   130h
General                Register
Purpose                80 Bytes
Register
96 Bytes                                   EFh                   16Fh                      1EFh
                                                                 170h                      1F0h
                  7Fh  Accesses F0h             Accesses                Accesses
Bank 0                 70h-7Fh                  70h-7Fh          17Fh   70h-7Fh            1FFh

                                           FFh   Bank 2                  Bank 3

                       Bank 1

Legend: = Unimplemented data memory locations, read as `0'.
             * = Not a physical register.

Note 1: PORTD, TRISD, ANSELD and ANSELE are not implemented on the PIC16F723/LF723, read as `0'

DS41341E-page 22                                                         2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

FIGURE 2-6:  PIC16F726/LF726 AND PIC16F727/LF727 SPECIAL FUNCTION REGISTERS

Indirect addr.(*) 00h             Indirect addr.(*) 80h    Indirect addr.(*)  100h  Indirect addr.(*)  File Address
                                                                 TMR0         101h      OPTION
TMR0         01h                  OPTION    81h                   PCL         102h         PCL         180h
                                                                              103h      STATUS         181h
PCL          02h                  PCL       82h                STATUS         104h         FSR         182h
                                                                  FSR         105h      ANSELA         183h
STATUS       03h                  STATUS    83h                               106h      ANSELB         184h
                                                             CPSCON0          107h                     185h
FSR          04h                  FSR       84h              CPSCON1          108h    ANSELD(1)        186h
                                                               PCLATH         109h    ANSELE(1)        187h
PORTA        05h                  TRISA     85h                INTCON         10Ah                     188h
                                                               PMDATL         10Bh      PCLATH         189h
PORTB        06h                  TRISB     86h               PMADRL          10Ch      INTCON         18Ah
                                                              PMDATH          10Dh     PMCON1          18Bh
PORTC        07h                  TRISC     87h               PMADRH          10Eh     Reserved        18Ch
                                                                              10Fh     Reserved        18Dh
PORTD(1)     08h                  TRISD(1)  88h                General        110h     Reserved        18Eh
                                                               Purpose        111h                     18Fh
PORTE        09h                  TRISE     89h                Register       112h      General        190h
                                                               16 Bytes       113h      Purpose        191h
PCLATH       0Ah                  PCLATH    8Ah                               114h      Register       192h
                                                                              115h      16 Bytes       193h
INTCON       0Bh                  INTCON    8Bh                               116h                     194h
                                                                              117h                     195h
PIR1         0Ch                  PIE1      8Ch                               118h                     196h
                                                                              119h                     197h
PIR2         0Dh                  PIE2      8Dh                               11Ah                     198h
                                                                              11Bh                     199h
TMR1L        0Eh                  PCON      8Eh                               11Ch                     19Ah
                                                                              11Dh                     19Bh
TMR1H        0Fh                  T1GCON    8Fh                               11Eh                     19Ch
                                                                              11Fh                     19Dh
T1CON        10h                  OSCCON 90h                                  120h                     19Eh
                                                                                                       19Fh
TMR2         11h                  OSCTUNE 91h                                                          1A0h

T2CON        12h                  PR2       92h

SSPBUF 13h              SSPADD/SSPMSK 93h

SSPCON 14h                        SSPSTAT 94h

CCPR1L 15h                        WPUB      95h

CCPR1H 16h                        IOCB      96h

CCP1CON 17h                                 97h

RCSTA        18h                  TXSTA     98h

TXREG        19h                  SPBRG     99h

RCREG        1Ah                            9Ah

CCPR2L 1Bh                                  9Bh

CCPR2H 1Ch                        APFCON    9Ch

CCP2CON 1Dh                       FVRCON 9Dh

ADRES        1Eh                            9Eh

ADCON0 1Fh                        ADCON1 9Fh

             20h                            A0h

General                            General                  General           16Fh   General           1EFh
Purpose                           Purpose                  Purpose            170h  Purpose            1F0h
Register                          Register                 Register                 Register
96 Bytes                          80 Bytes                 80 Bytes           17Fh  80 Bytes           1FFh

                   7Fh                                EFh  Accesses                 Accesses
Bank 0                                                    70h-7Fh                  70h-7Fh
                                  Accesses F0h
                                  70h-7Fh                   Bank 2                   Bank 3

                                                      FFh

                                   Bank 1

Legend: = Unimplemented data memory locations, read as `0',
             * = Not a physical register

Note 1: PORTD, TRISD, ANSELD and ANSELE are not implemented on the PIC16F726/LF726, read as `0'

2009 Microchip Technology Inc.                                                                       DS41341E-page 23
PIC16F72X/PIC16LF72X

TABLE 2-1: PIC16F72X/PIC16LF72X SPECIAL FUNCTION REGISTER SUMMARY

Address            Name  Bit 7  Bit 6            Bit 5         Bit 4  Bit 3        Bit 2              Bit 1   Bit 0      Value on:  Page
                                                                                                                         POR, BOR

Bank 0

00h(2)        INDF       Addressing this location uses contents of FSR to address data memory (not a physical register)  xxxx xxxx 31,40

01h           TMR0       Timer0 Module Register                                                                          xxxx xxxx 111,40

02h(2)        PCL        Program Counter (PC) Least Significant Byte                                                     0000 0000 30,40

03h(2)        STATUS     IRP    RP1              RP0           TO     PD           Z                  DC          C      0001 1xxx 27,40

04h(2)        FSR        Indirect Data Memory Address Pointer                                                            xxxx xxxx 31,40

05h           PORTA      RA7    RA6              RA5           RA4    RA3          RA2                RA1     RA0 xxxx xxxx 54,40

06h           PORTB      RB7    RB6              RB5           RB4    RB3          RB2                RB1     RB0 xxxx xxxx 63,40

07h           PORTC      RC7    RC6              RC5           RC4    RC3          RC2                RC1     RC0        xxxx xxxx  73,40
08h(3)        PORTD      RD7    RD6              RD5                                                                     xxxx xxxx  80,40
              PORTE                                            RD4    RD3           RD2                RD1     RD0       ---- xxxx  85,40
09h           PCLATH      --     --               --            --    RE3          RE2(3)             RE1(3)  RE0(3)     ---0 0000  30,40
0Ah(1, 2)     INTCON      --     --               --                                                                     0000 000x  46,40
0Bh(2)                   GIE    PEIE             T0IE   Write Buffer for the upper 5 bits of the Program Counter

                                                               INTE   RBIE         T0IF               INTF    RBIF

0Ch           PIR1       TMR1GIF ADIF            RCIF          TXIF   SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 49,40

0Dh           PIR2       --     --               --            --     --           --                 --      CCP2IF ---- ---0 50,40

0Eh           TMR1L      Holding Register for the Least Significant Byte of the 16-bit TMR1 Register                     xxxx xxxx 120,40

0Fh           TMR1H      Holding Register for the Most Significant Byte of the 16-bit TMR1 Register                      xxxx xxxx 120,40

10h           T1CON      TMR1CS1 TMR1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC                               --      TMR1ON 0000 00-0 124,40

11h           TMR2       Timer2 Module Register                                                                          0000 0000 127,40

12h           T2CON      --     TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 128,40

13h           SSPBUF     Synchronous Serial Port Receive Buffer/Transmit Register                                        xxxx xxxx 169,40

14h           SSPCON     WCOL SSPOV SSPEN                      CKP    SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 186,40

15h           CCPR1L     Capture/Compare/PWM Register (LSB)                                                              xxxx xxxx 137,40

16h           CCPR1H     Capture/Compare/PWM Register (MSB)                                                              xxxx xxxx 137,40

17h           CCP1CON    --     --               DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 136,40

18h           RCSTA      SPEN   RX9              SREN          CREN   ADDEN        FERR               OERR    RX9D 0000 000x 155,40

19h           TXREG      USART Transmit Data Register                                                                    0000 0000 154,40

1Ah           RCREG      USART Receive Data Register                                                                     0000 0000 152,40

1Bh           CCPR2L     Capture/Compare/PWM Register 2 (LSB)                                                            xxxx xxxx 137,40

1Ch           CCPR2H     Capture/Compare/PWM Register 2 (MSB)                                                            xxxx xxxx 137,40

1Dh           CCP2CON    --     --               DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 136,40

1Eh           ADRES      A/D Result Register                                                                             xxxx xxxx 105,41

1Fh           ADCON0     --     --               CHS3          CHS2   CHS1         CHS0 GO/DONE ADON --00 0000 104,41

Legend:       x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, read as `0', r = reserved.
              Shaded locations are unimplemented, read as `0'.
Note 1:       The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>, whose contents are
              transferred to the upper byte of the program counter.
          2:  These registers can be addressed from any bank.
          3:  These registers/bits are not implemented on PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.
          4:  Accessible only when SSPM<3:0> = 1001.
          5:  Accessible only when SSPM<3:0>  1001.
          6:  This bit is always `1' as RE3 is input only.

DS41341E-page 24                                                                                           2009 Microchip Technology Inc.
                                                               PIC16F72X/PIC16LF72X

TABLE 2-1: PIC16F72X/PIC16LF72X SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

Address            Name  Bit 7    Bit 6          Bit 5         Bit 4   Bit 3        Bit 2  Bit 1  Bit 0                  Value on:  Page
                                                                                                                         POR, BOR

Bank 1

80h(2)        INDF       Addressing this location uses contents of FSR to address data memory (not a physical register)  xxxx xxxx 31,40

81h           OPTION_REG RBPU INTEDG T0CS                      T0SE    PSA          PS2    PS1    PS0 1111 1111 28,41

82h(2)        PCL        Program Counter (PC) Least Significant Byte                                                     0000 0000 30,40

83h(2)        STATUS     IRP      RP1            RP0           TO      PD           Z      DC                      C     0001 1xxx 27,40

84h(2)        FSR        Indirect Data Memory Address Pointer                                                            xxxx xxxx 31,40

85h           TRISA      TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 54,41

86h           TRISB      TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 63,41

87h           TRISC      TRISC7   TRISC6         TRISC5        TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111                         73,41
88h(3)        TRISD      TRISD7   TRISD6         TRISD5                                                                             81,41
              TRISE                                            TRISD4   TRISD3 TRISD2 TRISD1 TRISD0 1111 1111                       85,41
89h           PCLATH        --       --             --            --   TRISE3(6) TRISE2(3) TRISE1(3) TRISE0(3) ---- 1111            30,40
8Ah(1, 2)     INTCON        --       --             --                                                                              46,40
8Bh(2)                     GIE     PEIE            T0IE  Write Buffer for the upper 5 bits of the Program Counter        ---0 0000

                                                               INTE    RBIE         T0IF   INTF   RBIF 0000 000x

8Ch           PIE1       TMR1GIE ADIE            RCIE          TXIE    SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 47,41

8Dh           PIE2       --             --       --            --      --           --     --     CCP2IE ---- ---0 48,41

8Eh           PCON       --             --       --            --      --           --     POR    BOR ---- --qq 29,41

8Fh           T1GCON     TMR1GE T1GPOL T1GTM T1GSPM T1GGO/ T1GVAL T1GSS1 T1GSS0 0000 0x00 125,41
                                                                                              DONE

90h           OSCCON     --             --       IRCF1         IRCF0   ICSL         ICSS   --                      --    --10 qq-- 91,41

91h           OSCTUNE    --             --       TUN5          TUN4    TUN3         TUN2   TUN1   TUN0 --00 0000 92,41

92h           PR2        Timer2 Period Register                                                                          1111 1111  127,41
                                                                                                                         0000 0000  177,41
93h           SSPADD(5) Synchronous Serial Port (I2CTM mode) Address Register                                            1111 1111  188,41

93h           SSPMSK(4) Synchronous Serial Port (I2CTM mode) Address Mask Register

94h           SSPSTAT    SMP      CKE            D/A           P       S            R/W    UA                      BF    0000 0000 187,41

95h           WPUB       WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 1111 1111 64,41

96h           IOCB       IOCB7 IOCB6 IOCB5                     IOCB4   IOCB3        IOCB2  IOCB1 IOCB0 0000 0000 64,41

97h                 --   Unimplemented                                                                                   --                        --

98h           TXSTA      CSRC           TX9      TXEN          SYNC    --           BRGH   TRMT   TX9D 0000 -010 154,41

99h           SPBRG      BRG7     BRG6           BRG5          BRG4    BRG3         BRG2   BRG1   BRG0 0000 0000 156,41

9Ah                 --   Unimplemented                                                                                   --                        --

9Bh                 --   Unimplemented                                                                                   --                        --

9Ch           APFCON     --             --       --            --      --           --     SSSEL CCP2SEL ---- --00 53,41

9Dh           FVRCON     FVRRDY FVREN            --            --      --           --     ADFVR1 ADFVR0 q0-- --00 109,41

9Eh                 --   Unimplemented                                                                                   --                        --

9Fh           ADCON1     --       ADCS2 ADCS1 ADCS0                    --           --     ADREF1 ADREF0 0000 --00 105,41

Legend:       x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, read as `0', r = reserved.
              Shaded locations are unimplemented, read as `0'.
Note 1:       The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>, whose contents are
              transferred to the upper byte of the program counter.
          2:  These registers can be addressed from any bank.
          3:  These registers/bits are not implemented on PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.
          4:  Accessible only when SSPM<3:0> = 1001.
          5:  Accessible only when SSPM<3:0>  1001.
          6:  This bit is always `1' as RE3 is input only.

2009 Microchip Technology Inc.                                                                                         DS41341E-page 25
PIC16F72X/PIC16LF72X

TABLE 2-1: PIC16F72X/PIC16LF72X SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

Address       Name      Bit 7     Bit 6         Bit 5         Bit 4    Bit 3  Bit 2    Bit 1       Bit 0                Value on:  Page
                                                                                                                        POR, BOR

  Bank 2                Addressing this location uses contents of FSR to address data memory (not a physical register)  xxxx xxxx 31,40
100h(2) INDF

101h          TMR0      Timer0 Module Register                                                                          xxxx xxxx 111,40

102h(2) PCL             Program Counter's (PC) Least Significant Byte                                                   0000 0000 30,40

103h(2) STATUS          IRP       RP1           RP0           TO       PD     Z        DC                        C      0001 1xxx 27,40

104h(2) FSR             Indirect Data Memory Address Pointer                                                            xxxx xxxx 31,40

105h                --  Unimplemented                                                                                   --                         --

106h                --  Unimplemented                                                                                   --                         --

107h                --  Unimplemented                                                                                   --                         --

108h          CPSCON0   CPSON          --       --            --       CPSRNG1 CPSRNG0 CPSOUT T0XCS 0--- 0000 133,41

109h          CPSCON1   --             --       --            --       CPSCH3 CPSCH2 CPSCH1 CPSCH0 ---- 0000 134,41

10Ah(1, 2) PCLATH       --             --       -- Write Buffer for the upper 5 bits of the Program Counter             ---0 0000 30,40

10Bh(2) INTCON          GIE       PEIE          T0IE          INTE     RBIE   T0IF     INTF        RBIF 0000 000x 46,40

10Ch          PMDATL    Program Memory Read Data Register Low Byte                                                      xxxx xxxx 189,41

10Dh          PMADRL    Program Memory Read Address Register Low Byte                                                   xxxx xxxx 189,41

10Eh          PMDATH    --             -- Program Memory Read Data Register High Byte                                   --xx xxxx 189,41

10Fh          PMADRH    --             --       -- Program Memory Read Address Register High Byte                       ---x xxxx 189,41

  Bank 3                Addressing this location uses contents of FSR to address data memory (not a physical register)  xxxx xxxx 31,40
180h(2) INDF

181h          OPTION_REG RBPU INTEDG T0CS                     T0SE     PSA    PS2      PS1         PS0 1111 1111 28,41

182h(2) PCL             Program Counter (PC) Least Significant Byte                                                     0000 0000 30,40

183h(2) STATUS          IRP       RP1           RP0           TO       PD     Z        DC                        C      0001 1xxx 27,40

184h(2) FSR             Indirect Data Memory Address Pointer                                                            xxxx xxxx 31,40

185h          ANSELA    --             --       ANSA5 ANSA4 ANSA3 ANSA2 ANSA1 ANSA0 --11 1111 55,41

186h          ANSELB    --             --       ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 --11 1111 64,41

187h                --  Unimplemented                                                                                   --                         --

188h          ANSELD    ANSD7     ANSD6         ANSD5         ANSD4 ANSD3 ANSD2 ANSD1 ANSD0                             1111 1111  81,41
                           --        --            --                                                                   ---- -111  86,41
189h(3) ANSELE             --        --            --         --       --     ANSE2 ANSE1 ANSE0                         ---0 0000  30,40
                          GIE                                                                                           0000 000x  46,40
18Ah(1, 2) PCLATH                  PEIE          T0IE  Write Buffer for the upper 5 bits of the Program Counter

18Bh(2) INTCON                                                INTE     RBIE   T0IF     INTF        RBIF

18Ch          PMCON1    Reserved       --       --            --       --     --       --          RD 1--- ---0 190,41

18Dh                --  Unimplemented                                                                                   --                         --

18Eh                --  Unimplemented                                                                                   --                         --

18Fh                --  Unimplemented                                                                                   --                         --

Legend:       x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, read as `0', r = reserved.
              Shaded locations are unimplemented, read as `0'.
Note 1:       The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>, whose contents are
              transferred to the upper byte of the program counter.
          2:  These registers can be addressed from any bank.
          3:  These registers/bits are not implemented on PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.
          4:  Accessible only when SSPM<3:0> = 1001.
          5:  Accessible only when SSPM<3:0>  1001.
          6:  This bit is always `1' as RE3 is input only.

DS41341E-page 26                                                                            2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

2.2.2.1 STATUS Register                                      For example, CLRF STATUS will clear the upper three
                                                             bits and set the Z bit. This leaves the STATUS register
The STATUS register, shown in Register 2-1, contains:        as `000u u1uu' (where u = unchanged).

the arithmetic status of the ALU                           It is recommended, therefore, that only BCF, BSF,
the Reset status                                           SWAPF and MOVWF instructions are used to alter the
the bank select bits for data memory (SRAM)                STATUS register, because these instructions do not
                                                             affect any Status bits. For other instructions not
The STATUS register can be the destination for any           affecting any Status bits (Refer to Section 21.0
instruction, like any other register. If the STATUS          "Instruction Set Summary").
register is the destination for an instruction that affects
the Z, DC or C bits, then the write to these three bits is       Note 1: The C and DC bits operate as Borrow and
disabled. These bits are set or cleared according to the                     Digit Borrow out bits, respectively, in
device logic. Furthermore, the TO and PD bits are not                        subtraction.
writable. Therefore, the result of an instruction with the
STATUS register as destination may be different than
intended.

REGISTER 2-1: STATUS: STATUS REGISTER

R/W-0              R/W-0          R/W-0             R-1      R-1                   R/W-x  R/W-x  R/W-x

       IRP         RP1            RP0               TO       PD                    Z      DC(1)               C(1)

bit 7                                                                                                               bit 0

Legend:                           W = Writable bit           U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared         x = Bit is unknown

bit 7       IRP: Register Bank Select bit (used for indirect addressing)
bit 6-5     1 = Bank 2, 3 (100h-1FFh)
            0 = Bank 0, 1 (00h-FFh)
bit 4
bit 3       RP<1:0>: Register Bank Select bits (used for direct addressing)
bit 2       00 = Bank 0 (00h-7Fh)
bit 1       01 = Bank 1 (80h-FFh)
bit 0       10 = Bank 2 (100h-17Fh)
            11 = Bank 3 (180h-1FFh)

            TO: Time-out bit
            1 = After power-up, CLRWDT instruction or SLEEP instruction
            0 = A WDT time-out occurred

            PD: Power-down bit
            1 = After power-up or by the CLRWDT instruction
            0 = By execution of the SLEEP instruction

            Z: Zero bit
            1 = The result of an arithmetic or logic operation is zero
            0 = The result of an arithmetic or logic operation is not zero
            DC: Digit Carry/Digit Borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions)(1)
            1 = A carry-out from the 4th low-order bit of the result occurred
            0 = No carry-out from the 4th low-order bit of the result
            C: Carry/Borrow bit(1) (ADDWF, ADDLW, SUBLW, SUBWF instructions)(1)
            1 = A carry-out from the Most Significant bit of the result occurred
            0 = No carry-out from the Most Significant bit of the result occurred

Note 1: For Borrow, the polarity is reversed. A subtraction is executed by adding the two's complement of the
              second operand. For rotate (RRF, RLF) instructions, this bit is loaded with either the high-order or low-order
              bit of the source register.

2009 Microchip Technology Inc.                                                                 DS41341E-page 27
PIC16F72X/PIC16LF72X

2.2.2.2 OPTION register                                 Note:  To achieve a 1:1 prescaler assignment for
                                                               Timer0, assign the prescaler to the WDT by
The OPTION register, shown in Register 2-2, is a               setting PSA bit of the OPTION register to
readable and writable register, which contains various         `1'. Refer to Section 12.3 "Timer1
control bits to configure:                                     Prescaler".

Timer0/WDT prescaler
External RB0/INT interrupt
Timer0
Weak pull-ups on PORTB

REGISTER 2-2: OPTION_REG: OPTION REGISTER

     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         INTEDG       T0CS         T0SE         PSA                   PS2    PS1    PS0
bit 7
                                                                                                   bit 0

Legend:                   W = Writable bit              U = Unimplemented bit, read as `0'
R = Readable bit          `1' = Bit is set
-n = Value at POR                                       `0' = Bit is cleared         x = Bit is unknown

bit 7       RBPU: PORTB Pull-up Enable bit
bit 6       1 = PORTB pull-ups are disabled
bit 5       0 = PORTB pull-ups are enabled by individual bits in the WPUB register
bit 4
bit 3       INTEDG: Interrupt Edge Select bit
bit 2-0     1 = Interrupt on rising edge of RB0/INT pin
            0 = Interrupt on falling edge of RB0/INT pin

            T0CS: Timer0 Clock Source Select bit
            1 = Transition on RA4/T0CKI pin
            0 = Internal instruction cycle clock (FOSC/4)

            T0SE: Timer0 Source Edge Select bit
            1 = Increment on high-to-low transition on RA4/T0CKI pin
            0 = Increment on low-to-high transition on RA4/T0CKI pin

            PSA: Prescaler Assignment bit
            1 = Prescaler is assigned to the WDT
            0 = Prescaler is assigned to the Timer0 module

            PS<2:0>: Prescaler Rate Select bits

                   Bit Value Timer0 Rate WDT Rate

                          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

DS41341E-page 28                                                                      2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

2.2.2.3 PCON Register

The Power Control (PCON) register contains flag bits
(refer to Table 3-2) to differentiate between a:

Power-on Reset (POR)
Brown-out Reset (BOR)
Watchdog Timer Reset (WDT)
External MCLR Reset

The PCON register also controls the software enable of
the BOR.

The PCON register bits are shown in Register 2-3.

REGISTER 2-3: PCON: POWER CONTROL REGISTER

       U-0         U-0            U-0               U-0  U-0                   U-0  R/W-q        R/W-q
        --
bit 7              --             --                --   --                    --   POR                 BOR

                                                                                                        bit 0

Legend:

R = Readable bit                  W = Writable bit       U = Unimplemented bit, read as `0'

-n = Value at POR                 `1' = Bit is set       `0' = Bit is cleared       x = Bit is unknown

q = Value depends on condition

bit 7-2     Unimplemented: Read as `0'
bit 1
            POR: Power-on Reset Status bit
bit 0       1 = No Power-on Reset occurred
            0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)

            BOR: Brown-out Reset Status bit
            1 = No Brown-out Reset occurred
            0 = A Brown-out Reset occurred (must be set in software after a Power-on Reset or Brown-out Reset

                  occurs)

Note 1: Set BOREN<1:0> = 01 in the Configuration Word register for this bit to control the BOR.

2009 Microchip Technology Inc.                                                                 DS41341E-page 29
PIC16F72X/PIC16LF72X

2.3 PCL and PCLATH                                                 Note 1: There are no Status bits to indicate stack
                                                                               overflow or stack underflow conditions.
The Program Counter (PC) is 13 bits wide. The low
byte comes from the PCL register, which is a readable                     2: There are no instructions/mnemonics
and writable register. The high byte (PC<12:8>) is not                         called PUSH or POP. These are actions
directly readable or writable and comes from                                   that occur from the execution of the CALL,
PCLATH. On any Reset, the PC is cleared. Figure 2-7                            RETURN, RETLW and RETFIE instruc-
shows the two situations for the loading of the PC. The                        tions or the vectoring to an interrupt
upper example in Figure 2-7 shows how the PC is                                address.
loaded on a write to PCL (PCLATH<4:0>  PCH).
The lower example in Figure 2-7 shows how the PC is                2.4 Program Memory Paging
loaded during a CALL or GOTO instruction
(PCLATH<4:3>  PCH).

FIGURE 2-7:                LOADING OF PC IN                        All devices are capable of addressing a continuous 8K
                           DIFFERENT SITUATIONS                    word block of program memory. The CALL and GOTO
                                                                   instructions provide only 11 bits of address to allow
          PCH              PCL                                     branching within any 2K program memory page. When
                                                                   doing a CALL or GOTO instruction, the upper 2 bits of
      12           87               0   Instruction with           the address are provided by PCLATH<4:3>. When
PC                              8                 PCL as           doing a CALL or GOTO instruction, the user must ensure
                                                                   that the page select bits are programmed so that the
                  PCLATH<4:0>                Destination           desired program memory page is addressed. If a return
          5                                                        from a CALL instruction (or interrupt) is executed, the
                                       ALU Result                  entire 13-bit PC is POPed off the stack. Therefore,
                                                                   manipulation of the PCLATH<4:3> bits is not required
                   PCLATH                                          for the RETURN instructions (which POPs the address
                                                                   from the stack).
              PCH  87      PCL
      12 11 10                                 0
PC                                                    GOTO, CALL   Note:       The contents of the PCLATH register are
                                                                               unchanged after a RETURN or RETFIE
2 PCLATH<4:3>                         11                                       instruction is executed. The user must
                                                     OPCODE<10:0>              rewrite the contents of the PCLATH regis-
                                                                               ter for any subsequent subroutine calls or
                   PCLATH                                                      GOTO instructions.

2.3.1 COMPUTED GOTO                                                Example 2-1 shows the calling of a subroutine in
                                                                   page 1 of the program memory. This example assumes
A computed GOTO is accomplished by adding an offset                that PCLATH is saved and restored by the Interrupt
to the program counter (ADDWF PCL). When perform-                  Service Routine (if interrupts are used).
ing a table read using a computed GOTO method, care
should be exercised if the table location crosses a PCL            EXAMPLE 2-1:       CALL OF A SUBROUTINE
memory boundary (each 256-byte block). Refer to the                                   IN PAGE 1 FROM PAGE 0
Application Note AN556, "Implementing a Table Read"
(DS00556).                                                                  ORG 500h

2.3.2 STACK                                                                 PAGESEL SUB_P1 ;Select page 1

All devices have an 8-level x 13-bit wide hardware                                    ;(800h-FFFh)
stack (refer to Figures 2-1 and 2-3). The stack space is
not part of either program or data space and the Stack                      CALL SUB1_P1 ;Call subroutine in
Pointer is not readable or writable. The PC is PUSHed
onto the stack when a CALL instruction is executed or                       :         ;page 1 (800h-FFFh)
an interrupt causes a branch. The stack is POPed in
the event of a RETURN, RETLW or a RETFIE instruction                        :
execution. PCLATH is not affected by a PUSH or POP
operation.                                                                  ORG     900h ;page 1 (800h-FFFh)

The stack operates as a circular buffer. This means that           SUB1_P1
after the stack has been PUSHed eight times, the ninth
PUSH overwrites the value that was stored from the                          :         ;called subroutine
first PUSH. The tenth PUSH overwrites the second
PUSH (and so on).                                                                     ;page 1 (800h-FFFh)

                                                                            :

                                                                            RETURN    ;return to

                                                                                      ;Call subroutine

                                                                                      ;in page 0

                                                                                      ;(000h-7FFh)

DS41341E-page 30                                                                      2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

2.5 Indirect Addressing, INDF and                             EXAMPLE 2-2: INDIRECT ADDRESSING
         FSR Registers
                                                                      MOVLW     020h        ;initialize pointer
The INDF register is not a physical register. Addressing              MOVWF     FSR         ;to RAM
the INDF register will cause indirect addressing.                     BANKISEL  020h
                                                              NEXT CLRF         INDF        ;clear INDF register
Indirect addressing is possible by using the INDF                     INCF      FSR         ;inc pointer
register. Any instruction using the INDF register                     BTFSS     FSR,4       ;all done?
actually accesses data pointed to by the File Select                  GOTO      NEXT        ;no clear next
Register (FSR). Reading INDF itself indirectly will           CONTINUE                      ;yes continue
produce 00h. Writing to the INDF register indirectly
results in a no operation (although Status bits may be
affected). An effective 9-bit address is obtained by
concatenating the 8-bit FSR register and the IRP bit of
the STATUS register, as shown in Figure 2-8.

A simple program to clear RAM location 020h-02Fh
using indirect addressing is shown in Example 2-2.

FIGURE 2-8:  DIRECT/INDIRECT ADDRESSING

             Direct Addressing                                                           Indirect Addressing

RP1 RP0 6    From Opcode 0                                             IRP               7  File Select Register 0

Bank Select  Location Select                                           Bank Select          Location Select

                                  00  01                  10       11

                     00h                                               180h

             Data
             Memory

                                7Fh                                                1FFh
                                          Bank 0 Bank 1 Bank 2     Bank 3

Note:        For memory map detail, refer to Figures 2-4 and 2-5.

2009 Microchip Technology Inc.                                                            DS41341E-page 31
PIC16F72X/PIC16LF72X

NOTES:

DS41341E-page 32       2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

3.0 RESETS                                                Most registers are not affected by a WDT wake-up
                                                          since this is viewed as the resumption of normal
The PIC16F72X/PIC16LF72X differentiates between           operation. TO and PD bits are set or cleared differently
various kinds of Reset:                                   in different Reset situations, as indicated in Table 3-3.
                                                          These bits are used in software to determine the nature
a) Power-on Reset (POR)                                   of the Reset.
b) WDT Reset during normal operation
c) WDT Reset during Sleep                                 A simplified block diagram of the On-Chip Reset Circuit
d) MCLR Reset during normal operation                     is shown in Figure 3-1.
e) MCLR Reset during Sleep
f) Brown-out Reset (BOR)                                  The MCLR Reset path has a noise filter to detect and
                                                          ignore small pulses. See Section 23.0 "Electrical
Some registers are not affected in any Reset condition;   Specifications" for pulse width specifications.
their status is unknown on POR and unchanged in any
other Reset. Most other registers are reset to a "Reset
state" on:

Power-on Reset (POR)
MCLR Reset
MCLR Reset during Sleep
WDT Reset
Brown-out Reset (BOR)

FIGURE 3-1:  SIMPLIFIED BLOCK DIAGRAM OF ON-CHIP RESET CIRCUIT

             MCLRE

MCLR/VPP      WDT                          Sleep
    VDD      Module
                                  WDT
                                  Time-out
                                  Reset

                 POR                     Power-on Reset
                                        BOREN
             Brown-out(1)
                 Reset

             OST/PWRT                                                            Chip_Reset
                             OST
                                   10-bit Ripple Counter

OSC1/
CLKIN

                                  PWRT

             WDTOSC               11-bit Ripple Counter

                                                                    Enable PWRT
                                                                    Enable OST

Note 1: Refer to the Configuration Word Register 1 (Register 8-1).

2009 Microchip Technology Inc.                                    DS41341E-page 33
PIC16F72X/PIC16LF72X

TABLE 3-1: STATUS BITS AND THEIR SIGNIFICANCE

POR BOR TO PD                                      Condition

0          x      1 1 Power-on Reset or LDO Reset

0          x      0 x Illegal, TO is set on POR

0          x      x 0 Illegal, PD is set on POR

1          0      1 1 Brown-out Reset

1          1      0 1 WDT Reset

1          1      0 0 WDT Wake-up

1          1      u u MCLR Reset during normal operation

1          1      1 0 MCLR Reset during Sleep or interrupt wake-up from Sleep

TABLE 3-2: RESET CONDITION FOR SPECIAL REGISTERS(2)

                  Condition                      Program    STATUS              PCON
                                                 Counter    Register           Register

Power-on Reset                                     0000h    0001 1xxx          ---- --0x

MCLR Reset during normal operation                 0000h    000u uuuu          ---- --uu

MCLR Reset during Sleep                            0000h    0001 0uuu          ---- --uu

WDT Reset                                          0000h    0000 1uuu          ---- --uu

WDT Wake-up                                       PC + 1    uuu0 0uuu          ---- --uu
Brown-out Reset                                    0000h    0001 1uuu          ---- --u0
Interrupt Wake-up from Sleep                     PC + 1(1)  uuu1 0uuu          ---- --uu

Legend: u = unchanged, x = unknown, - = unimplemented bit, reads as `0'.
Note 1: When the wake-up is due to an interrupt and Global Enable bit (GIE) is set, the return address is pushed on

            the stack and PC is loaded with the interrupt vector (0004h) after execution of PC + 1.
       2: If a Status bit is not implemented, that bit will be read as `0'.

DS41341E-page 34                                              2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

3.1 MCLR                                                   3.3 Power-up Timer (PWRT)

The PIC16F72X/PIC16LF72X has a noise filter in the         The Power-up Timer provides a fixed 64 ms (nominal)
MCLR Reset path. The filter will detect and ignore         time-out on power-up only, from POR or Brown-out
small pulses.                                              Reset. The Power-up Timer operates from the WDT
                                                           oscillator. For more information, see Section 7.3
It should be noted that a Reset does not drive the         "Internal Clock Modes". The chip is kept in Reset as
MCLR pin low.                                              long as PWRT is active. The PWRT delay allows the
                                                           VDD to rise to an acceptable level. A Configuration bit,
Voltages applied to the pin that exceed its specification  PWRTE, can disable (if set) or enable (if cleared or pro-
can result in both MCLR Resets and excessive current       grammed) the Power-up Timer. The Power-up Timer
beyond the device specification during the ESD event.      should be enabled when Brown-out Reset is enabled,
For this reason, Microchip recommends that the MCLR        although it is not required.
pin no longer be tied directly to VDD. The use of an RC
network, as shown in Figure 3-2, is suggested.             The Power-up Timer delay will vary from chip-to-chip
                                                           and vary due to:
An internal MCLR option is enabled by clearing the
MCLRE bit in the Configuration Word register. When          VDD variation
MCLRE = 0, the Reset signal to the chip is generated       Temperature variation
internally. When the MCLRE = 1, the RE3/MCLR pin            Process variation
becomes an external Reset input. In this mode, the
RE3/MCLR pin has a weak pull-up to VDD. In-Circuit         See DC parameters for details (Section 23.0
Serial Programming is not affected by selecting the        "Electrical Specifications").
internal MCLR option.
                                                              Note: The Power-up Timer is enabled by the
FIGURE 3-2:              RECOMMENDED MCLR                                 PWRTE bit in the Configuration Word.
                         CIRCUIT
             VDD                                           3.4 Watchdog Timer (WDT)
                   R1                            PIC MCU
                   10 k                                    The WDT has the following features:

                                  MCLR                      Shares an 8-bit prescaler with Timer0
                                                            Time-out period is from 17 ms to 2.2 seconds,
C1
0.1 F                                                         nominal
                                                            Enabled by a Configuration bit

                                                           WDT is cleared under certain conditions described in
                                                           Table 3-1.

                                                           3.4.1 WDT OSCILLATOR

3.2 Power-on Reset (POR)                                   The WDT derives its time base from 31 kHz internal
                                                           oscillator.
The on-chip POR circuit holds the chip in Reset until VDD
has reached a high enough level for proper operation. A    Note:  When the Oscillator Start-up Timer (OST)
maximum rise time for VDD is required. See                        is invoked, the WDT is held in Reset,
Section 23.0 "Electrical Specifications" for details. If          because the WDT Ripple Counter is used
the BOR is enabled, the maximum rise time specification           by the OST to perform the oscillator delay
does not apply. The BOR circuitry will keep the device in         count. When the OST count has expired,
Reset until VDD reaches VBOR (see Section 3.5                     the WDT will begin counting (if enabled).
"Brown-Out Reset (BOR)").

When the device starts normal operation (exits the
Reset condition), device operating parameters (i.e.,
voltage, frequency, temperature, etc.) must be met to
ensure operation. If these conditions are not met, the
device must be held in Reset until the operating
conditions are met.

For additional information, refer to Application Note
AN607, "Power-up Trouble Shooting" (DS00607).

2009 Microchip Technology Inc.                                                 DS41341E-page 35
PIC16F72X/PIC16LF72X

3.4.2 WDT CONTROL
The WDTE bit is located in the Configuration Word
Register 1. When set, the WDT runs continuously.
The PSA and PS<2:0> bits of the OPTION register
control the WDT period. See Section 11.0 "Timer0
Module" for more information.

FIGURE 3-1: WATCHDOG TIMER BLOCK DIAGRAM

         T1GSS = 11
         TMR1GE

WDTE              From TMR0
                  Clock Source

                  Low-Power
                  WDT OSC

                                                                   0

                  Divide by                                              Postscaler
                      512
                                                           1

                                                                            8

                  PSA                                                 0  1           PS<2:0>
                                                                                     TO TMR0

                                                                                            WDT Reset

                                                                         To T1G
                                                                               WDTE

TABLE 3-1: WDT STATUS                                                                   WDT
                                              Conditions                              Cleared

WDTE = 0                                                                Cleared until the end of OST
CLRWDT Command
Exit Sleep + System Clock = T1OSC, EXTRC, INTOSC, EXTCLK
Exit Sleep + System Clock = XT, HS, LP

DS41341E-page 36                                                          2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

3.5 Brown-Out Reset (BOR)                                         If VDD falls below VBOR for greater than parameter
                                                                  (TBOR) (see Section 23.0 "Electrical Specifica-
Brown-out Reset is enabled by programming the                     tions"), the Brown-out situation will reset the device.
BOREN<1:0> bits in the Configuration register. The                This will occur regardless of VDD slew rate. A Reset is
brown-out trip point is selectable from two trip points           not ensured to occur if VDD falls below VBOR for more
via the BORV bit in the Configuration register.                   than parameter (TBOR).

Between the POR and BOR, complete voltage range                   If VDD drops below VBOR while the Power-up Timer is
coverage for execution protection can be imple-                   running, the chip will go back into a Brown-out Reset
mented.                                                           and the Power-up Timer will be re-initialized. Once VDD
                                                                  rises above VBOR, the Power-up Timer will execute a
Two bits are used to enable the BOR. When                         64 ms Reset.
BOREN = 11, the BOR is always enabled. When
BOREN = 10, the BOR is enabled, but disabled during               Note:     When erasing Flash program memory, the
Sleep. When BOREN = 0X, the BOR is disabled.                                BOR is forced to enabled at the minimum
                                                                            BOR setting to guarantee that any code
                                                                            protection circuitry is operating properly.

FIGURE 3-3:            BROWN-OUT SITUATIONS

             VDD                                                            VBOR

             Internal                                    64 ms(1)
               Reset

             VDD                                                            VBOR

             Internal                                    < 64 ms  64 ms(1)
               Reset

             VDD                                                            VBOR

             Internal                                             64 ms(1)
               Reset

Note 1: 64 ms delay only if PWRTE bit is programmed to `0'.

2009 Microchip Technology Inc.                                                  DS41341E-page 37
PIC16F72X/PIC16LF72X

3.6 Time-out Sequence                                      3.7 Power Control (PCON) Register

On power-up, the time-out sequence is as follows: first,   The Power Control (PCON) register has two Status bits
PWRT time-out is invoked after POR has expired, then       to indicate what type of Reset that last occurred.
OST is activated after the PWRT time-out has expired.
The total time-out will vary based on oscillator configu-  Bit 0 is BOR (Brown-out Reset). BOR is unknown on
ration and PWRTE bit status. For example, in EC mode       Power-on Reset. It must then be set by the user and
with PWRTE bit = 1 (PWRT disabled), there will be no       checked on subsequent Resets to see if BOR = 0,
time-out at all. Figure 3-4, Figure 3-5 and Figure 3-6     indicating that a Brown-out has occurred. The BOR
depict time-out sequences.                                 Status bit is a "don't care" and is not necessarily
                                                           predictable if the brown-out circuit is disabled
Since the time-outs occur from the POR pulse, if MCLR      (BOREN<1:0> = 00 in the Configuration Word register).
is kept low long enough, the time-outs will expire. Then,
bringing MCLR high will begin execution immediately        Bit 1 is POR (Power-on Reset). It is a `0' on Power-on
(see Figure 3-5). This is useful for testing purposes or   Reset and unaffected otherwise. The user must write a
to synchronize more than one PIC16F72X/                    `1' to this bit following a Power-on Reset. On a
PIC16LF72X device operating in parallel.                   subsequent Reset, if POR is `0', it will indicate that a
                                                           Power-on Reset has occurred (i.e., VDD may have
Table 3-3 shows the Reset conditions for some special      gone too low).
registers.
                                                           For more information, see Section 3.5 "Brown-Out
                                                           Reset (BOR)".

TABLE 3-2: TIME-OUT IN VARIOUS SITUATIONS

                                       Power-up            Brown-out Reset              Wake-up from
                          PWRTE = 0 PWRTE = 1                                                 Sleep
Oscillator Configuration
                                                                                         1024 TOSC
XT, HS, LP(1)             TPWRT + 1024   1024 TOSC        PWRTE = 0     PWRTE = 1
                                 TOSC           --                         1024 TOSC          --
                                                           TPWRT + 1024
RC, EC, INTOSC            TPWRT                                   TOSC           --
                                                                 TPWRT

Note 1: LP mode with T1OSC disabled.

TABLE 3-3: RESET BITS AND THEIR SIGNIFICANCE

POR            BOR  TO    PD                               Condition

0              u    1     1 Power-on Reset

1              0    1     1 Brown-out Reset

u              u    0     u WDT Reset

u              u    0     0 WDT Wake-up

u              u    u     u MCLR Reset during normal operation

u              u    1     0 MCLR Reset during Sleep

Legend: u = unchanged, x = unknown

DS41341E-page 38                                                            2009 Microchip Technology Inc.
                                  PIC16F72X/PIC16LF72X

FIGURE 3-4:          TIME-OUT SEQUENCE ON POWER-UP (DELAYED MCLR): CASE 1

                VDD                      TPWRT
             MCLR
    Internal POR                                TOST

PWRT Time-out
  OST Time-out
  Internal Reset

FIGURE 3-5:          TIME-OUT SEQUENCE ON POWER-UP (DELAYED MCLR): CASE 2

                VDD                      TPWRT
             MCLR
    Internal POR                                TOST

PWRT Time-out
  OST Time-out
  Internal Reset

FIGURE 3-6:          TIME-OUT SEQUENCE ON POWER-UP (MCLR WITH VDD): CASE 3

                VDD               TPWRT
             MCLR
    Internal POR                         TOST

PWRT Time-out
  OST Time-out
  Internal Reset

2009 Microchip Technology Inc.                      DS41341E-page 39
PIC16F72X/PIC16LF72X

TABLE 3-4: INITIALIZATION CONDITION FOR REGISTERS

   Register       Address     Power-on Reset/    MCLR Reset/                  Wake-up from Sleep through
                             Brown-out Reset(1)   WDT Reset                          Interrupt/Time-out

W                 --         xxxx xxxx                          uuuu uuuu                       uuuu uuuu

INDF               00h/80h/  xxxx xxxx                          xxxx xxxx                       uuuu uuuu
                  100h/180h

TMR0              01h/101h   xxxx xxxx                          uuuu uuuu                       uuuu uuuu

PCL               02h/82h/   0000 0000                          0000 0000                       PC + 1(3)

                  102h/182h

STATUS             03h/83h/  0001 1xxx                          000q quuu(4)                    uuuq quuu(4)
                  103h/183h

FSR                04h/84h/  xxxx xxxx                          uuuu uuuu                       uuuu uuuu
                  104h/184h

PORTA             05h        xxxx xxxx           xxxx xxxx                                      uuuu uuuu

PORTB             06h        xxxx xxxx           xxxx xxxx                                      uuuu uuuu

PORTC             07h        xxxx xxxx           xxxx xxxx                                      uuuu uuuu
PORTD(6)                                         xxxx xxxx                                      uuuu uuuu
                  08h        xxxx xxxx

PORTE             09h        ---- xxxx                          ---- xxxx                       ---- uuuu

PCLATH        0Ah/8Ah/       ---0 0000                          ---0 0000                       ---u uuuu
             10Ah/18Ah

INTCON        0Bh/8Bh/       0000 000x                          0000 000x                       uuuu uuuu(2)
             10Bh/18Bh

PIR1              0Ch        0000 0000                          0000 0000                       uuuu uuuu(2)

PIR2              0Dh        ---- ---0                          ---- ---0                       ---- ---u

TMR1L             0Eh        xxxx xxxx                          uuuu uuuu                       uuuu uuuu

TMR1H             0Fh        xxxx xxxx                          uuuu uuuu                       uuuu uuuu

T1CON             10h        0000 00-0                          uuuu uu-u                       uuuu uu-u

TMR2              11h        0000 0000                          0000 0000                       uuuu uuuu

T2CON             12h        -000 0000                          -000 0000                       -uuu uuuu

SSPBUF            13h        xxxx xxxx                          xxxx xxxx                       uuuu uuuu

SSPCON            14h        0000 0000                          0000 0000                       uuuu uuuu

CCPR1L            15h        xxxx xxxx                          xxxx xxxx                       uuuu uuuu

CCPR1H            16h        xxxx xxxx                          xxxx xxxx                       uuuu uuuu

CCP1CON           17h        --00 0000                          --00 0000                       --uu uuuu

RCSTA             18h        0000 000x                          0000 000x                       uuuu uuuu

TXREG             19h        0000 0000                          0000 0000                       uuuu uuuu

RCREG             1Ah        0000 0000                          0000 0000                       uuuu uuuu

CCPR2L            1Bh        xxxx xxxx                          xxxx xxxx                       uuuu uuuu

CCPR2H            1Ch        xxxx xxxx                          xxxx xxxx                       uuuu uuuu

CCP2CON           1Dh        --00 0000                          --00 0000                       --uu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, reads as `0', q = value depends on condition.

Note 1: If VDD goes too low, Power-on Reset will be activated and registers will be affected differently.

      2: One or more bits in INTCON and/or PIR1 and PIR2 will be affected (to cause wake-up).

      3: When the wake-up is due to an interrupt and the GIE bit is set, the PC is loaded with the interrupt
            vector (0004h).

      4: See Table 3-5 for Reset value for specific condition.

      5: If Reset was due to brown-out, then bit 0 = 0. All other Resets will cause bit 0 = u.

      6: PIC16F724/727/PIC16LF724/727 only.

DS41341E-page 40                                                               2009 Microchip Technology Inc.
                                                      PIC16F72X/PIC16LF72X

TABLE 3-4: INITIALIZATION CONDITION FOR REGISTERS (CONTINUED)

Register   Address                 Power-on Reset/    MCLR Reset/               Wake-up from Sleep through
                                  Brown-out Reset(1)   WDT Reset                       Interrupt/Time-out

ADRES      1Eh                    xxxx xxxx                     uuuu uuuu                       uuuu uuuu

ADCON0     1Fh                    --00 0000                     --00 0000                       --uu uuuu

OPTION_REG 81h/181h               1111 1111                     1111 1111                       uuuu uuuu

TRISA      85h                    1111 1111                     1111 1111                       uuuu uuuu

TRISB      86h                    1111 1111                     1111 1111                       uuuu uuuu

TRISC      87h                    1111 1111                     1111 1111                       uuuu uuuu
TRISD(6)                                                        1111 1111                       uuuu uuuu
           88h                    1111 1111

TRISE      89h                    ---- 1111                     ---- 1111                       ---- uuuu

PIE1       8Ch                    0000 0000                     0000 0000                       uuuu uuuu

PIE2       8Dh                    ---- ---0                     ---- ---0                       ---- ---u

PCON       8Eh                    ---- --qq                     ---- --uu(1,5)                  ---- --uu

T1GCON     8Fh                    0000 0x00                     uuuu uxuu                       uuuu uxuu

OSCCON     90h                    --10 qq--                     --10 qq--                       --uu qq--

OSCTUNE    91h                    --00 0000                     --uu uuuu                       --uu uuuu

PR2        92h                    1111 1111                     1111 1111                       uuuu uuuu

SSPADD     93h                    0000 0000                     0000 0000                       uuuu uuuu

SSPMSK     93h                    1111 1111                     1111 1111                       uuuu uuuu

SSPSTAT    94h                    0000 0000                     0000 0000                       uuuu uuuu

WPUB       95h                    1111 1111                     1111 1111                       uuuu uuuu

IOCB       96h                    0000 0000                     0000 0000                       uuuu uuuu

TXSTA      98h                    0000 -010                     0000 -010                       uuuu -uuu

SPBRG      99h                    0000 0000                     0000 0000                       uuuu uuuu

APFCON     9Ch                    ---- --00                     ---- --00                       ---- --uu

FVRCON     9Dh                    q000 --00                     q000 --00                       uuuu --uu

ADCON1     9Fh                    -000 --00                     -000 --00                       -uuu --uu

CPSCON0    108h                   0--- 0000                     0--- 0000                       u--- uuuu

CPSCON1    109h                   ---- 0000                     ---- 0000                       ---- uuuu

PMDATL     10Ch                   xxxx xxxx                     xxxx xxxx                       uuuu uuuu

PMADRL     10Dh                   xxxx xxxx                     xxxx xxxx                       uuuu uuuu

PMDATH     10Eh                   --xx xxxx                     --xx xxxx                       --uu uuuu

PMADRH     10Fh                   ---x xxxx                     ---x xxxx                       ---u uuuu

ANSELA     185h                   --11 1111                     --11 1111                       --uu uuuu

ANSELB     186h                   --11 1111                     --11 1111                       --uu uuuu
ANSELD(6)  188h                   1111 1111                     1111 1111                       uuuu uuuu

ANSELE     189h                   ---- -111                     ---- -111                       ---- -uuu

PMCON1     18Ch                   1--- ---0                     1--- ---0                       u--- ---u

Legend: u = unchanged, x = unknown, - = unimplemented bit, reads as `0', q = value depends on condition.

Note 1: If VDD goes too low, Power-on Reset will be activated and registers will be affected differently.

      2: One or more bits in INTCON and/or PIR1 and PIR2 will be affected (to cause wake-up).

      3: When the wake-up is due to an interrupt and the GIE bit is set, the PC is loaded with the interrupt
            vector (0004h).

      4: See Table 3-5 for Reset value for specific condition.

      5: If Reset was due to brown-out, then bit 0 = 0. All other Resets will cause bit 0 = u.

      6: PIC16F724/727/PIC16LF724/727 only.

2009 Microchip Technology Inc.                                                                DS41341E-page 41
PIC16F72X/PIC16LF72X

TABLE 3-5: INITIALIZATION CONDITION FOR SPECIAL REGISTERS

                Condition                  Program               STATUS     PCON
                                           Counter               Register  Register

Power-on Reset                             0000h             0001 1xxx     ---- --0x

MCLR Reset during normal operation         0000h             000u uuuu     ---- --uu

MCLR Reset during Sleep                     0000h            0001 0uuu     ---- --uu
WDT Reset                                   0000h            0000 uuuu     ---- --uu
WDT Wake-up                                 PC + 1           uuu0 0uuu     ---- --uu
Brown-out Reset                             0000h            0001 1xxx     ---- --10
Interrupt Wake-up from Sleep               PC + 1(1)         uuu1 0uuu     ---- --uu

Legend: u = unchanged, x = unknown, - = unimplemented bit, reads as `0'.

Note 1: When the wake-up is due to an interrupt and Global Interrupt Enable bit, GIE, is set, the PC is loaded with
              the interrupt vector (0004h) after execution of PC + 1.

TABLE 3-6: SUMMARY OF REGISTERS ASSOCIATED WITH RESETS

Name     Bit 7 Bit 6 Bit 5          Bit 4  Bit 3      Bit 2  Bit 1  Bit 0   Value on  Value on
                                                                           POR, BOR
                                                                                      all other
                                                                                      Resets(1)

STATUS   IRP RP1 RP0                TO     PD         Z      DC     C 0001 1xxx 000q quuu

PCON            --  --        --    --     --         -- POR BOR ---- --qq ---- --uu

Legend:  u = unchanged, x = unknown, - = unimplemented bit, reads as `0', q = value depends on condition. Shaded cells are not
Note 1:  used by Resets.
         Other (non Power-up) Resets include MCLR Reset and Watchdog Timer Reset during normal operation.

DS41341E-page 42                                                            2009 Microchip Technology Inc.
                                                       PIC16F72X/PIC16LF72X

4.0 INTERRUPTS                                         The PIC16F72X/PIC16LF72X device family has 12
                                                       interrupt sources, differentiated by corresponding
The PIC16F72X/PIC16LF72X device family features        interrupt enable and flag bits:
an interruptible core, allowing certain events to
preempt normal program flow. An Interrupt Service       Timer0 Overflow Interrupt
Routine (ISR) is used to determine the source of the    External Edge Detect on INT Pin Interrupt
interrupt and act accordingly. Some interrupts can be   PORTB Change Interrupt
configured to wake the MCU from Sleep mode.             Timer1 Gate Interrupt
                                                       A/D Conversion Complete Interrupt
                                                       AUSART Receive Interrupt
                                                       AUSART Transmit Interrupt
                                                       SSP Event Interrupt
                                                       CCP1 Event Interrupt
                                                       Timer2 Match with PR2 Interrupt
                                                       Timer1 Overflow Interrupt
                                                       CCP2 Event Interrupt

                                                       A block diagram of the interrupt logic is shown in
                                                       Figure 4-1.

FIGURE 4-1:    INTERRUPT LOGIC                         T0IF     Wake-up (If in Sleep mode)(1)
                                                       T0IE                         Interrupt to CPU
     IOC-RB0                             SSPIF         INTF
        IOCB0                            SSPIE         INTE
                                                       RBIF
     IOC-RB1                                TXIF       RBIE
        IOCB1                               TXIE
                                                       PEIE
     IOC-RB2                               RCIF
        IOCB2                              RCIE         GIE

     IOC-RB3                           TMR2IF
        IOCB3                          TMR2IE

     IOC-RB4                           TMR1IF
        IOCB4                          TMR1IE

     IOC-RB5                               ADIF
        IOCB5                              ADIE
                                     TMR1GIF
     IOC-RB6                         TMR1GIE
        IOCB6
                                       CCP1IF
     IOC-RB7                           CCP1IE
        IOCB7
                                       CCP2IF
                                       CCP2IE          Note 1:  Some peripherals depend upon the
                                                                system clock for operation. Since the
                                                                system clock is suspended during
                                                                Sleep, these peripherals will not wake
                                                                the part from Sleep. See Section 19.1
                                                                "Wake-up from Sleep".

2009 Microchip Technology Inc.                                DS41341E-page 43
PIC16F72X/PIC16LF72X

4.1 Operation                                                  repeated interrupts. Because the GIE bit is cleared, any
                                                               interrupt that occurs while executing the ISR will be
Interrupts are disabled upon any device Reset. They            recorded through its Interrupt Flag, but will not cause
are enabled by setting the following bits:                     the processor to redirect to the interrupt vector.

GIE bit of the INTCON register                               The RETFIE instruction exits the ISR by popping the
Interrupt Enable bit(s) for the specific interrupt           previous address from the stack and setting the GIE bit.

   event(s)                                                    For additional information on a specific interrupt's
PEIE bit of the INTCON register (if the Interrupt            operation, refer to its peripheral chapter.

   Enable bit of the interrupt event is contained in the           Note 1: Individual Interrupt Flag bits are set,
   PIE1 and PIE2 registers)                                                    regardless of the state of any other
                                                                               enable bits.
The INTCON, PIR1 and PIR2 registers record individ-
ual interrupts via Interrupt Flag bits. Interrupt Flag bits               2: All interrupts will be ignored while the GIE
will be set, regardless of the status of the GIE, PEIE                         bit is cleared. Any interrupt occurring
and individual Interrupt Enable bits.                                          while the GIE bit is clear will be serviced
                                                                               when the GIE bit is set again.
The following events happen when an interrupt event
occurs while the GIE bit is set:                               4.2 Interrupt Latency

Current prefetched instruction is flushed                    Interrupt latency is defined as the time from when the
GIE bit is cleared                                           interrupt event occurs to the time code execution at the
Current Program Counter (PC) is pushed onto the              interrupt vector begins. The latency for synchronous
                                                               interrupts is 3 instruction cycles. For asynchronous
   stack                                                       interrupts, the latency is 3 to 4 instruction cycles,
PC is loaded with the interrupt vector 0004h                 depending on when the interrupt occurs. See Figure 4-2
                                                               for timing details.
The ISR determines the source of the interrupt by
polling the Interrupt Flag bits. The Interrupt Flag bits
must be cleared before exiting the ISR to avoid

FIGURE 4-2:       INT PIN INTERRUPT TIMING

                  Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

OSC1

CLKOUT (3)
                                      (4)

INT pin                                                   (1)  Interrupt Latency (2)
                                           (5)
                              (1)
INTF flag
(INTCON<1>)

GIE bit
(INTCON<7>)

INSTRUCTION FLOW

PC                PC                             PC + 1        PC + 1                      0004h        0005h
                                           Inst (PC + 1)        --                    Inst (0004h)  Inst (0005h)
Instruction       Inst (PC)
Fetched

Instruction       Inst (PC 1)            Inst (PC)           Dummy Cycle            Dummy Cycle   Inst (0004h)
Executed

Note 1: INTF flag is sampled here (every Q1).
        2: Asynchronous interrupt latency = 3-4 TCY. Synchronous latency = 3 TCY, where TCY = instruction cycle time. Latency
              is the same whether Inst (PC) is a single cycle or a 2-cycle instruction.
        3: CLKOUT is available only in INTOSC and RC Oscillator modes.
        4: For minimum width of INT pulse, refer to AC specifications in Section 23.0 "Electrical Specifications".
        5: INTF is enabled to be set any time during the Q4-Q1 cycles.

DS41341E-page 44                                                                      2009 Microchip Technology Inc.
                                                              PIC16F72X/PIC16LF72X

4.3 Interrupts During Sleep                                   following the ISR from using invalid data. Examples of
                                                              key registers include the W, STATUS, FSR and
Some interrupts can be used to wake from Sleep. To            PCLATH registers.
wake from Sleep, the peripheral must be able to
operate without the system clock. The interrupt source        Note:  The microcontroller does not normally
must have the appropriate Interrupt Enable bit(s) set                require saving the PCLATH register.
prior to entering Sleep.                                             However, if computed GOTO's are used,
                                                                     the PCLATH register must be saved at the
On waking from Sleep, if the GIE bit is also set, the                beginning of the ISR and restored when
processor will branch to the interrupt vector. Otherwise,            the ISR is complete to ensure correct
the processor will continue executing instructions after             program flow.
the SLEEP instruction. The instruction directly after the
SLEEP instruction will always be executed before              The code shown in Example 4-1 can be used to do the
branching to the ISR. Refer to the Section 19.0               following.
"Power-Down Mode (Sleep)" for more details.
                                                               Save the W register
4.4 INT Pin                                                    Save the STATUS register

The external interrupt, INT pin, causes an                     Save the PCLATH register
asynchronous, edge-triggered interrupt. The INTEDG bit         Execute the ISR program
of the OPTION register determines on which edge the            Restore the PCLATH register
interrupt will occur. When the INTEDG bit is set, the
rising edge will cause the interrupt. When the INTEDG          Restore the STATUS register
bit is clear, the falling edge will cause the interrupt. The   Restore the W register
INTF bit of the INTCON register will be set when a valid
edge appears on the INT pin. If the GIE and INTE bits         Since most instructions modify the W register, it must
are also set, the processor will redirect program             be saved immediately upon entering the ISR. The
execution to the interrupt vector. This interrupt is          SWAPF instruction is used when saving and restoring
disabled by clearing the INTE bit of the INTCON register.     the W and STATUS registers because it will not affect
                                                              any bits in the STATUS register. It is useful to place
4.5 Context Saving                                            W_TEMP in shared memory because the ISR cannot
                                                              predict which bank will be selected when the interrupt
When an interrupt occurs, only the return PC value is         occurs.
saved to the stack. If the ISR modifies or uses an
instruction that modifies key registers, their values         The processor will branch to the interrupt vector by
must be saved at the beginning of the ISR and restored        loading the PC with 0004h. The PCLATH register will
when the ISR completes. This prevents instructions            remain unchanged. This requires the ISR to ensure
                                                              that the PCLATH register is set properly before using
                                                              an instruction that causes PCLATH to be loaded into
                                                              the PC. See Section 2.3 "PCL and PCLATH" for
                                                              details on PC operation.

EXAMPLE 4-1: SAVING W, STATUS AND PCLATH REGISTERS IN RAM

MOVWF W_TEMP                      ;Copy W to W_TEMP register
SWAPF STATUS,W                    ;Swap status to be saved into W
                                  ;Swaps are used because they do not affect the status bits
BANKSEL STATUS_TEMP               ;Select regardless of current bank
MOVWF STATUS_TEMP                 ;Copy status to bank zero STATUS_TEMP register
MOVF PCLATH,W                     ;Copy PCLATH to W register
MOVWF PCLATH_TEMP                 ;Copy W register to PCLATH_TEMP
:
:(ISR)                            ;Insert user code here
:
BANKSEL STATUS_TEMP               ;Select regardless of current bank
MOVF PCLATH_TEMP,W                ;
MOVWF PCLATH                      ;Restore PCLATH
SWAPF STATUS_TEMP,W               ;Swap STATUS_TEMP register into W
                                  ;(sets bank to original state)
MOVWF  STATUS                     ;Move W into STATUS register
SWAPF  W_TEMP,F                   ;Swap W_TEMP
SWAPF  W_TEMP,W                   ;Swap W_TEMP into W

2009 Microchip Technology Inc.                                     DS41341E-page 45
PIC16F72X/PIC16LF72X

4.5.1 INTCON REGISTER                                         Note:  Interrupt flag bits are set when an interrupt
                                                                     condition occurs, regardless of the state of
The INTCON register is a readable and writable                       its corresponding enable bit or the global
register, which contains the various enable and flag bits            enable bit, GIE of the INTCON register.
for TMR0 register overflow, PORTB change and                         User software should ensure the appropri-
external RB0/INT/SEG0 pin interrupts.                                ate interrupt flag bits are clear prior to
                                                                     enabling an interrupt.

REGISTER 4-1: INTCON: INTERRUPT CONTROL REGISTER

     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(1)   T0IF(2)           INTF    RBIF

bit 7                                                                                                 bit 0

Legend:                   W = Writable bit                 U = Unimplemented bit, read as `0'
R = Readable bit          `1' = Bit is set
-n = Value at POR                                          `0' = Bit is cleared  x = Bit is unknown

bit 7       GIE: Global Interrupt Enable bit

            1 = Enables all unmasked interrupts
            0 = Disables all interrupts

bit 6       PEIE: Peripheral Interrupt Enable bit

            1 = Enables all unmasked peripheral interrupts

            0 = Disables all peripheral interrupts

bit 5       T0IE: Timer0 Overflow Interrupt Enable bit

            1 = Enables the Timer0 interrupt

            0 = Disables the Timer0 interrupt

bit 4       INTE: RB0/INT External Interrupt Enable bit

            1 = Enables the RB0/INT external interrupt

            0 = Disables the RB0/INT external interrupt

bit 3       RBIE: PORTB Change Interrupt Enable bit(1)

            1 = Enables the PORTB change interrupt

            0 = Disables the PORTB change interrupt

bit 2       T0IF: Timer0 Overflow Interrupt Flag bit(2)

            1 = TMR0 register has overflowed (must be cleared in software)

            0 = TMR0 register did not overflow

bit 1       INTF: RB0/INT External Interrupt Flag bit

            1 = The RB0/INT external interrupt occurred (must be cleared in software)

            0 = The RB0/INT external interrupt did not occur

bit 0       RBIF: PORTB Change Interrupt Flag bit

            1 = When at least one of the PORTB general purpose I/O pins changed state (must be cleared in soft-

                   ware)

            0 = None of the PORTB general purpose I/O pins have changed state

Note 1: The appropriate bits in the IOCB register must also be set.

        2: T0IF bit is set when Timer0 rolls over. Timer0 is unchanged on Reset and should be initialized before
              clearing T0IF bit.

DS41341E-page 46                                                                  2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

4.5.2 PIE1 REGISTER                                         Note: Bit PEIE of the INTCON register must be
                                                                        set to enable any peripheral interrupt.
The PIE1 register contains the interrupt enable bits, as
shown in Register 4-2.

REGISTER 4-2: PIE1: PERIPHERAL INTERRUPT ENABLE REGISTER 1

     R/W-0         R/W-0          R/W-0             R/W-0  R/W-0         R/W-0    R/W-0         R/W-0
  TMR1GIE          ADIE           RCIE              TXIE   SSPIE        CCP1IE   TMR2IE        TMR1IE
bit 7
                                                                                                       bit 0

Legend:                           W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                          `0' = Bit is cleared  x = Bit is unknown

bit 7       TMR1GIE: Timer1 Gate Interrupt Enable bit

            1 = Enable the Timer1 Gate Acquisition complete interrupt
            0 = Disable the Timer1 Gate Acquisition complete interrupt

bit 6       ADIE: A/D Converter (ADC) Interrupt Enable bit

            1 = Enables the ADC interrupt
            0 = Disables the ADC interrupt

bit 5       RCIE: USART Receive Interrupt Enable bit

            1 = Enables the USART receive interrupt
            0 = Disables the USART receive interrupt

bit 4       TXIE: USART Transmit Interrupt Enable bit

            1 = Enables the USART transmit interrupt
            0 = Disables the USART transmit interrupt

bit 3       SSPIE: Synchronous Serial Port (SSP) Interrupt Enable bit

            1 = Enables the SSP interrupt

            0 = Disables the SSP interrupt

bit 2       CCP1IE: CCP1 Interrupt Enable bit

            1 = Enables the CCP1 interrupt
            0 = Disables the CCP1 interrupt

bit 1       TMR2IE: TMR2 to PR2 Match Interrupt Enable bit

            1 = Enables the Timer2 to PR2 match interrupt
            0 = Disables the Timer2 to PR2 match interrupt

bit 0       TMR1IE: Timer1 Overflow Interrupt Enable bit

            1 = Enables the Timer1 overflow interrupt
            0 = Disables the Timer1 overflow interrupt

2009 Microchip Technology Inc.                                                               DS41341E-page 47
PIC16F72X/PIC16LF72X

4.5.3 PIE2 REGISTER                                       Note: Bit PEIE of the INTCON register must be
                                                                      set to enable any peripheral interrupt.
The PIE2 register contains the interrupt enable bits, as
shown in Register 4-3.

REGISTER 4-3: PIE2: PERIPHERAL INTERRUPT ENABLE REGISTER 2

       U-0         U-0  U-0               U-0             U-0                   U-0  U-0           R/W-0
                                                                                                  CCP2IE
       --          --   --                --              --                    --            --
                                                                                                          bit 0
bit 7

Legend:                 W = Writable bit                  U = Unimplemented bit, read as `0'
R = Readable bit        `1' = Bit is set
-n = Value at POR                                         `0' = Bit is cleared       x = Bit is unknown

bit 7-1     Unimplemented: Read as `0'
bit 0
            CCP2IE: CCP2 Interrupt Enable bit
            1 = Enables the CCP2 interrupt
            0 = Disables the CCP2 interrupt

DS41341E-page 48                                                                      2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

4.5.4 PIR1 REGISTER                                       Note:      Interrupt flag bits are set when an interrupt
                                                                     condition occurs, regardless of the state of
The PIR1 register contains the interrupt flag bits, as               its corresponding enable bit or the Global
shown in Register 4-4.                                               Enable bit, GIE of the INTCON register.
                                                                     User software should ensure the
                                                                     appropriate interrupt flag bits are clear prior
                                                                     to enabling an interrupt.

REGISTER 4-4: PIR1: PERIPHERAL INTERRUPT REQUEST REGISTER 1

     R/W-0         R/W-0           R-0              R-0   R/W-0         R/W-0          R/W-0   R/W-0
  TMR1GIF          ADIF           RCIF              TXIF  SSPIF        CCP1IF         TMR2IF  TMR1IF
bit 7
                                                                                                      bit 0

Legend:                           W = Writable bit        U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                         `0' = Bit is cleared        x = Bit is unknown

bit 7       TMR1GIF: Timer1 Gate Interrupt Flag bit

            1 = Timer1 Gate is inactive
            0 = Timer1 Gate is active

bit 6       ADIF: A/D Converter Interrupt Flag bit

            1 = A/D conversion complete (must be cleared in software)

            0 = A/D conversion has not completed or has not been started

bit 5       RCIF: USART Receive Interrupt Flag bit

            1 = The USART receive buffer is full (cleared by reading RCREG)
            0 = The USART receive buffer is not full

bit 4       TXIF: USART Transmit Interrupt Flag bit

            1 = The USART transmit buffer is empty (cleared by writing to TXREG)
            0 = The USART transmit buffer is full

bit 3       SSPIF: Synchronous Serial Port (SSP) Interrupt Flag bit

            1 = The Transmission/Reception is complete (must be cleared in software)
            0 = Waiting to Transmit/Receive

bit 2       CCP1IF: CCP1 Interrupt Flag bit

            Capture mode:

                  1 = A TMR1 register capture occurred (must be cleared in software)
                  0 = No TMR1 register capture occurred
            Compare mode:

                  1 = A TMR1 register compare match occurred (must be cleared in software)
                  0 = No TMR1 register compare match occurred
            PWM mode:
            Unused in this mode

bit 1       TMR2IF: Timer2 to PR2 Interrupt Flag bit

            1 = A Timer2 to PR2 match occurred (must be cleared in software)
            0 = No Timer2 to PR2 match occurred

bit 0       TMR1IF: Timer1 Overflow Interrupt Flag bit

            1 = The TMR1 register overflowed (must be cleared in software)
            0 = The TMR1 register did not overflow

2009 Microchip Technology Inc.                                                              DS41341E-page 49
PIC16F72X/PIC16LF72X

4.5.5 PIR2 REGISTER                                              Note:   Interrupt flag bits are set when an interrupt
                                                                         condition occurs, regardless of the state of
The PIR2 register contains the interrupt flag bits, as                   its corresponding enable bit or the Global
shown in Register 4-5.                                                   Enable bit, GIE of the INTCON register.
                                                                         User software should ensure the
                                                                         appropriate interrupt flag bits are clear prior
                                                                         to enabling an interrupt.

REGISTER 4-5: PIR2: PERIPHERAL INTERRUPT REQUEST REGISTER 2

       U-0         U-0         U-0                   U-0         U-0                U-0         U-0           R/W-0
                                                                                                             CCP2IF
       --          --          --                    --          --                 --            --
                                                                                                                     bit 0
bit 7

Legend:                        W = Writable bit               U = Unimplemented bit, read as `0'
R = Readable bit               `1' = Bit is set
-n = Value at POR                                             `0' = Bit is cleared       x = Bit is unknown

bit 7-1     Unimplemented: Read as `0'
bit 0
            CCP2IF: CCP2 Interrupt Flag bit
            Capture Mode:

                  1 = A TMR1 register capture occurred (must be cleared in software)
                  0 = No TMR1 register capture occurred
            Compare Mode:
                  1 = A TMR1 register compare match occurred (must be cleared in software)
                  0 = No TMR1 register compare match occurred
            PWM mode:
            Unused in this mode

TABLE 4-1: SUMMARY OF REGISTERS ASSOCIATED WITH INTERRUPTS

Name        Bit 7       Bit 6  Bit 5  Bit 4               Bit 3  Bit 2   Bit 1           Bit 0     Value on  Value on
                                                                                                  POR, BOR   all other
                                                                                                              Resets

INTCON      GIE         PEIE   T0IE   INTE                RBIE   T0IF    INTF            RBIF 0000 000x 0000 000x

OPTION_REG RBPU INTEDG         T0CS   T0SE                PSA    PS2     PS1             PS0      1111 1111 1111 1111

PIE1        TMR1GIE ADIE       RCIE   TXIE                SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

PIE2        --          --     --                --       --         --             --   CCP2IE ---- ---0 ---- ---0

PIR1        TMR1GIF ADIF       RCIF   TXIF                SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000

PIR2        --          --     --                --       --         --             --   CCP2IF ---- ---0 ---- ---0

Legend: - = Unimplemented locations, read as `0', u = unchanged, x = unknown. Shaded cells are not used by the Capture, Compare and PWM.

DS41341E-page 50                                                                         2009 Microchip Technology Inc.
                              PIC16F72X/PIC16LF72X

5.0 LOW DROPOUT (LDO)
         VOLTAGE REGULATOR

The PIC16F72X devices differ from the PIC16LF72X
devices due to an internal Low Dropout (LDO) voltage
regulator. The PIC16F72X contain an internal LDO,
while the PIC16LF72X do not.

The lithography of the die allows a maximum operating
voltage of 3.6V on the internal digital logic. In order to
continue to support 5.0V designs, a LDO voltage
regulator is integrated on the die. The LDO voltage
regulator allows for the internal digital logic to operate
at 3.2V, while I/O's operate at 5.0V (VDD).

The LDO voltage regulator requires an external bypass
capacitor for stability. One of three pins, denoted as
VCAP, can be configured for the external bypass
capacitor. It is recommended that the capacitor be a
ceramic cap between 0.1 to 1.0 F. The VCAP pin is not
intended to supply power to external loads. An external
voltage regulator should be used if this functionality is
required. In addition, external devices should not
supply power to the VCAP pin.

On power-up, the external capacitor will look like a
large load on the LDO voltage regulator. To prevent
erroneous operation, the device is held in Reset while
a constant current source charges the external
capacitor. After the cap is fully charged, the device is
released from Reset. For more information, refer to
Section 23.0 "Electrical Specifications".

See Configuration Word 2 register (Register 8-2) for
VCAP enable bits.

2009 Microchip Technology Inc.  DS41341E-page 51
PIC16F72X/PIC16LF72X

NOTES:

DS41341E-page 52       2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

6.0 I/O PORTS

There are as many as thirty-five general purpose I/O
pins available. Depending on which peripherals are
enabled, some or all of the pins may not be available as
general purpose I/O. In general, when a peripheral is
enabled, the associated pin may not be used as a
general purpose I/O pin.

6.1 Alternate Pin Function

The Alternate Pin Function Control (APFCON) register
is used to steer specific peripheral input and output
functions between different pins. The APFCON register
is shown in Register 6-1. For this device family, the
following functions can be moved between different
pins.

SS (Slave Select)
CCP2

REGISTER 6-1: APFCON: ALTERNATE PIN FUNCTION CONTROL REGISTER

       U-0         U-0            U-0               U-0   U-0                   U-0  R/W-0      R/W-0
        --                                                                                    CCP2SEL
bit 7              --             --                --    --                    --   SSSEL
                                                                                                       bit 0

Legend:                           W = Writable bit        U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                         `0' = Bit is cleared       x = Bit is unknown

bit 7-2     Unimplemented: Read as `0'.
bit 1
            SSSEL: SS Input Pin Selection bit
bit 0       0 = SS function is on RA5/AN4/CPS7/SS/VCAP
            1 = SS function is on RA0/AN0/SS/VCAP

            CCP2SEL: CCP2 Input/Output Pin Selection bit
            0 = CCP2 function is on RC1/T1OSI/CCP2
            1 = CCP2 function is on RB3/CCP2

2009 Microchip Technology Inc.                                                              DS41341E-page 53
PIC16F72X/PIC16LF72X

6.2 PORTA and the TRISA Registers                               The TRISA register (Register 6-3) controls the PORTA
                                                                pin output drivers, even when they are being used as
PORTA is a 8-bit wide, bidirectional port. The                  analog inputs. The user should ensure the bits in the
corresponding data direction register is TRISA                  TRISA register are maintained set when using them as
(Register 6-3). Setting a TRISA bit (= 1) will make the         analog inputs. I/O pins configured as analog input
corresponding PORTA pin an input (i.e., disable the             always read `0'.
output driver). Clearing a TRISA bit (= 0) will make the
corresponding PORTA pin an output (i.e., enables                Note:   The ANSELA register must be initialized to
output driver and puts the contents of the output latch                 configure an analog channel as a digital
on the selected pin). Example 6-1 shows how to                          input. Pins configured as analog inputs will
initialize PORTA.                                                       read `0'.

Reading the PORTA register (Register 6-2) reads the             EXAMPLE 6-1:               INITIALIZING PORTA
status of the pins, whereas writing to it will write to the
PORT latch. All write operations are read-modify-write           BANKSEL PORTA              ;
operations. Therefore, a write to a port implies that the        CLRF PORTA                 ;Init PORTA
port pins are read, this value is modified and then              BANKSEL ANSELA             ;
written to the PORT data latch.                                  CLRF ANSELA                ;digital I/O
                                                                 BANKSEL TRISA              ;
                                                                 MOVLW 0Ch                  ;Set RA<3:2> as inputs
                                                                 MOVWF TRISA                ;and set RA<7:4,1:0>
                                                                                            ;as outputs

REGISTER 6-2: PORTA: PORTA REGISTER

      R/W-x        R/W-x   R/W-x             R/W-x              R/W-x              R/W-x         R/W-x         R/W-x
       RA7          RA6     RA5               RA4                RA3                RA2           RA1           RA0
bit 7
                                                                                                                       bit 0

Legend:                    W = Writable bit                  U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared          x = Bit is unknown

bit 7-0      RA<7:0>: PORTA I/O Pin bit
             1 = Port pin is > VIH
             0 = Port pin is < VIL

REGISTER 6-3: TRISA: PORTA TRI-STATE REGISTER

      R/W-1         R/W-1   R/W-1             R/W-1              R/W-1              R/W-1         R/W-1         R/W-1
     TRISA7        TRISA6  TRISA5            TRISA4             TRISA3             TRISA2        TRISA1        TRISA0
bit 7
                                                                                                                        bit 0

Legend:                    W = Writable bit                  U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared          x = Bit is unknown

bit 7-0      TRISA<7:0>: PORTA Tri-State Control bit
             1 = PORTA pin configured as an input (tri-stated)
             0 = PORTA pin configured as an output

DS41341E-page 54                                                                            2009 Microchip Technology Inc.
                                                            PIC16F72X/PIC16LF72X

6.2.1 ANSELA REGISTER

The ANSELA register (Register 6-4) is used to
configure the Input mode of an I/O pin to analog.
Setting the appropriate ANSELA bit high will cause all
digital reads on the pin to be read as `0' and allow
analog functions on the pin to operate correctly.

The state of the ANSELA bits has no affect on digital
output functions. A pin with TRIS clear and ANSEL set
will still operate as a digital output, but the Input mode
will be analog. This can cause unexpected behavior
when executing read-modify-write instructions on the
affected port.

REGISTER 6-4: ANSELA: PORTA ANALOG SELECT REGISTER

      U-0          U-0            R/W-1             R/W-1   R/W-1  R/W-1          R/W-1         R/W-1
       --                                                                         ANSA1         ANSA0
bit 7              --             ANSA5             ANSA4   ANSA3  ANSA2
                                                                                                       bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared  x = Bit is unknown

bit 7-6    Unimplemented: Read as `0'
bit 5-0
           ANSA<5:0>: Analog Select between Analog or Digital Function on pins RA<5:0>, respectively

           0 = Digital I/O. Pin is assigned to port or Digital special function.
           1 = Analog input. Pin is assigned as analog input(1). Digital Input buffer disabled.

Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to
              allow external control of the voltage on the pin.

2009 Microchip Technology Inc.                                                                DS41341E-page 55
PIC16F72X/PIC16LF72X

6.2.2  PIN DESCRIPTIONS AND                                6.2.2.6 RA5/AN4/CPS7/SS/VCAP
       DIAGRAMS
                                                           Figure 6-4 shows the diagram for this pin. This pin is
Each PORTA pin is multiplexed with other functions. The    configurable to function as one of the following:
pins and their combined functions are briefly described
here. For specific information about individual functions   a general purpose I/O
such as the A/D Converter (ADC), refer to the               an analog input for the ADC
appropriate section in this data sheet.                     a capacitive sensing input
                                                            a slave select input for the SSP(1)
6.2.2.1 RA0/AN0/SS/VCAP                                     a Voltage Regulator Capacitor pin (PIC16F72X

Figure 6-1 shows the diagram for this pin. This pin is        only)
configurable to function as one of the following:
                                                               Note 1: SS pin location may be selected as RA5
a general purpose I/O                                                    or RA0.
an analog input for the ADC
a slave select input for the SSP(1)                      6.2.2.7 RA6/OSC2/CLKOUT/VCAP
a Voltage Regulator Capacitor pin (PIC16F72X
                                                           Figure 6-5 shows the diagram for this pin. This pin is
   only)                                                   configurable to function as one of the following:

    Note 1: SS pin location may be selected as RA5          a general purpose I/O
                or RA0.                                     a crystal/resonator connection
                                                            a clock output
6.2.2.2 RA1/AN1                                             a Voltage Regulator Capacitor pin (PIC16F72X

Figure 6-2 shows the diagram for this pin. This pin is        only)
configurable to function as one of the following:
                                                           6.2.2.8 RA7/OSC1/CLKIN
a general purpose I/O
an analog input for the ADC                              Figure 6-6 shows the diagram for this pin. This pin is
                                                           configurable to function as one of the following:
6.2.2.3 RA2/AN2
                                                            a general purpose I/O
Figure 6-2 shows the diagram for this pin. This pin is      a crystal/resonator connection
configurable to function as one of the following:          a clock input

a general purpose I/O
an analog input for the ADC

6.2.2.4 RA3/AN3/VREF

Figure 6-2 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC
a voltage reference input for the ADC

6.2.2.5 RA4/CPS6/T0CKI

Figure 6-3 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
a capacitive sensing input
a clock input for Timer0

The Timer0 clock input function works independently
of any TRIS register setting. Effectively, if TRISA4 = 0,
the PORTA4 register bit will output to the pad and
Clock Timer0 at the same time.

DS41341E-page 56                                           2009 Microchip Technology Inc.
                                                        PIC16F72X/PIC16LF72X

FIGURE 6-1:  BLOCK DIAGRAM OF RA0

PIC16F72X only                    To Voltage Regulator

     VCAPEN = 00

             Data Bus                                                     VDD
                                                                                 I/O Pin
                  WR              DQ
             PORTA                 CK Q                                   VSS

                WR                DQ
             TRISA                 CK Q

                 RD
             TRISA

             ANSA0

                  RD
             PORTA

                       To SSP SS Input

                                                        To A/D Converter

2009 Microchip Technology Inc.                                          DS41341E-page 57
PIC16F72X/PIC16LF72X

FIGURE 6-2:       RA<3:1> BLOCK DIAGRAM

Data Bus                                                         VDD
                                                                         I/O Pin
                  WR  DQ
             PORTA     CK Q                                      VSS

                WR    DQ                                   VDD
             TRISA     CK Q                                       I/O Pin

         RD                                                VSS
     TRISA
ANSAx

                  RD
             PORTA

                                         To A/D Converter

FIGURE 6-3:       BLOCK DIAGRAM OF RA4

Data Bus

     WR           DQ
PORTA              CK Q

   WR             DQ
TRISA              CK Q

          RD
      TRISA
ANSA4

     RD
PORTA

              To Timer0 Clock MUX
              To Cap Sensor

DS41341E-page 58                                           2009 Microchip Technology Inc.
                                          PIC16F72X/PIC16LF72X

FIGURE 6-4:         BLOCK DIAGRAM OF RA5

PIC16F72X only                          To Voltage Regulator

VCAPEN = 01

             Data Bus                                                           VDD
                                                                                       I/O Pin
                  WR   DQ
             PORTA      CK Q                                                    VSS

                WR     DQ
             TRISA      CK Q

                 RD
             TRISA

             ANSA5

                  RD
             PORTA

                       To SSP SS Input

                                                              To A/D Converter
                                                              To Cap Sensor

2009 Microchip Technology Inc.                                                DS41341E-page 59
PIC16F72X/PIC16LF72X

FIGURE 6-5:                BLOCK DIAGRAM OF RA6

PIC16F72X only

                                  To Voltage Regulator
                               VCAPEN = 10

                               CLKOUT(1)                                            Oscillator  VDD
                                 Enable                                               Circuit          I/O Pin

             Data Bus                                                  RA7/OSC1                 VSS

                     WR        FOSC/4 1
               PORTA
                               DQ     0

                               CK Q

                     WR        DQ
                  TRISA         CK Q

                           RD
                      TRISA

FOSC = LP or XT or HS
           (00X OR 010)

                        RD
                  PORTA

Note 1: CLKOUT Enable = 1 When FOSC = RC or INTOSC (No I/O Selected).

FIGURE 6-6:                BLOCK DIAGRAM OF RA7

Data Bus                                                                          Oscillator    VDD
                                                                                    Circuit           I/O Pin

                                                                       RA6/OSC2                 VSS

                  WR           DQ
             PORTA              CK Q

                WR             DQ
             TRISA              CK Q

                       RD
                  TRISA

OSC = INTOSC or
     INTOSCIO

                  RD
             PORTA

DS41341E-page 60                                                       2009 Microchip Technology Inc.
                                                   PIC16F72X/PIC16LF72X

TABLE 6-1: SUMMARY OF REGISTERS ASSOCIATED WITH PORTA

Name        Bit 7  Bit 6          Bit 5  Bit 4     Bit 3  Bit 2  Bit 1  Bit 0   Value on                               Value on
                                                                               POR, BOR                                 all other
                                                                                                                         Resets
ADCON0      --     --             CHS3   CHS2      CHS1   CHS0 GO/DONE ADON 0000 0000
                                                                                                                      0000 0000
ADCON1      --     ADCS2 ADCS1 ADCS0               --     --     ADREF1 ADREF0 -000 --00
                                                                                                                      -000 --00
ANSELA      --     --             ANSA5 ANSA4 ANSA3 ANSA2 ANSA1 ANSA0 --11 1111                                       --11 1111
                                                                                                                      ---- --00
APFCON      --     --             --     --        --     --     SSSEL CCP2SEL ---- --00                              0--- 0000
                                                                                                                      ---- 0000
CPSCON0     CPSON  --             --     --        CPSRNG1 CPSRNG0 CPSOUT T0XCS 0--- 0000
                                                                                                                            --
CPSCON1     --     --             --     --        CPSCH3 CPSCH2 CPSCH1 CPSCH0 ---- 0000                              1111 1111
                                                                                                                      xxxx xxxx
CONFIG2(1)  --     --             VCAPEN1 VCAPEN0  --     --     --     --                                        --  0000 0000
                                                                                                                      1111 1111
OPTION_REG RBPU INTEDG T0CS              T0SE      PSA    PS2    PS1    PS0    1111 1111

PORTA       RA7    RA6            RA5    RA4       RA3    RA2    RA1    RA0    xxxx xxxx

SSPCON      WCOL SSPOV SSPEN             CKP       SSPM3 SSPM2 SSPM1 SSPM0 0000 0000

TRISA       TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111

Legend: x = unknown, u = unchanged, = unimplemented locations read as `0'. Shaded cells are not used by PORTA.
Note 1: PIC16F72X only.

2009 Microchip Technology Inc.                                                                                      DS41341E-page 61
PIC16F72X/PIC16LF72X

6.3 PORTB and TRISB Registers                                6.3.1 ANSELB REGISTER

PORTB is an 8-bit wide, bidirectional port. The              The ANSELB register (Register 6-9) is used to
corresponding data direction register is TRISB               configure the Input mode of an I/O pin to analog.
(Register 6-6). Setting a TRISB bit (= 1) will make the      Setting the appropriate ANSELB bit high will cause all
corresponding PORTB pin an input (i.e., put the              digital reads on the pin to be read as `0' and allow
corresponding output driver in a High-Impedance mode).       analog functions on the pin to operate correctly.
Clearing a TRISB bit (= 0) will make the corresponding
PORTB pin an output (i.e., enable the output driver and      The state of the ANSELB bits has no affect on digital
put the contents of the output latch on the selected pin).   output functions. A pin with TRIS clear and ANSELB
Example 6-2 shows how to initialize PORTB.                   set will still operate as a digital output, but the Input
                                                             mode will be analog. This can cause unexpected
Reading the PORTB register (Register 6-5) reads the          behavior when executing read-modify-write
status of the pins, whereas writing to it will write to the  instructions on the affected port.
PORT latch. All write operations are read-modify-write
operations. Therefore, a write to a port implies that the    6.3.2 WEAK PULL-UPS
port pins are read, this value is modified and then written
to the PORT data latch.                                      Each of the PORTB pins has an individually configurable
                                                             internal weak pull-up. Control bits WPUB<7:0> enable or
The TRISB register (Register 6-6) controls the PORTB         disable each pull-up (see Register 6-7). Each weak
pin output drivers, even when they are being used as         pull-up is automatically turned off when the port pin is
analog inputs. The user should ensure the bits in the        configured as an output. All pull-ups are disabled on a
TRISB register are maintained set when using them as         Power-on Reset by the RBPU bit of the OPTION register.
analog inputs. I/O pins configured as analog input always
read `0'. Example 6-2 shows how to initialize PORTB.         6.3.3 INTERRUPT-ON-CHANGE

EXAMPLE 6-2: INITIALIZING PORTB                              All of the PORTB pins are individually configurable as an
                                                             interrupt-on-change pin. Control bits IOCB<7:0> enable
BANKSEL PORTB     ;                                          or disable the interrupt function for each pin. Refer to
                                                             Register 6-8. The interrupt-on-change feature is
CLRF PORTB        ;Init PORTB                                disabled on a Power-on Reset.

BANKSEL ANSELB                                               For enabled interrupt-on-change pins, the present value
                                                             is compared with the old value latched on the last read
CLRF ANSELB       ;Make RB<7:0> digital                      of PORTB to determine which bits have changed or
                                                             mismatched the old value. The `mismatch' outputs of
BANKSEL TRISB     ;                                          the last read are OR'd together to set the PORTB
                                                             Change Interrupt flag bit (RBIF) in the INTCON register.
MOVLW B'11110000' ;Set RB<7:4> as inputs
                                                             This interrupt can wake the device from Sleep. The user,
                  ;and RB<3:0> as outputs                    in the Interrupt Service Routine, clears the interrupt by:

MOVWF TRISB       ;

Note:  The ANSELB register must be initialized to
       configure an analog channel as a digital
       input. Pins configured as analog inputs will          a) Any read or write of PORTB. This will end the
       read `0'.                                                   mismatch condition.

                                                             b) Clear the flag bit RBIF.

                                                             A mismatch condition will continue to set flag bit RBIF.
                                                             Reading or writing PORTB will end the mismatch
                                                             condition and allow flag bit RBIF to be cleared. The latch
                                                             holding the last read value is not affected by a MCLR nor
                                                             Brown-out Reset. After these Resets, the RBIF flag will
                                                             continue to be set if a mismatch is present.

                                                             Note:  When a pin change occurs at the same
                                                                    time as a read operation on PORTB, the
                                                                    RBIF flag will always be set. If multiple
                                                                    PORTB pins are configured for the
                                                                    interrupt-on-change, the user may not be
                                                                    able to identify which pin changed state.

DS41341E-page 62                                                    2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

REGISTER 6-5: PORTB: PORTB REGISTER

     R/W-x         R/W-x          R/W-x             R/W-x   R/W-x                 R/W-x  R/W-x   R/W-x
      RB7           RB6            RB5               RB4     RB3                   RB2    RB1     RB0
bit 7
                                                                                                        bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared         x = Bit is unknown

bit 7-0     RB<7:0>: PORTB I/O Pin bit
            1 = Port pin is > VIH
            0 = Port pin is < VIL

REGISTER 6-6: TRISB: PORTB TRI-STATE REGISTER

     R/W-1          R/W-1          R/W-1             R/W-1   R/W-1   R/W-1                R/W-1   R/W-1
    TRISB7         TRISB6         TRISB5            TRISB4  TRISB3  TRISB2               TRISB1  TRISB0
bit 7
                                                                                                         bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared         x = Bit is unknown

bit 7-0     TRISB<7:0>: PORTB Tri-State Control bit
            1 = PORTB pin configured as an input (tri-stated)
            0 = PORTB pin configured as an output

2009 Microchip Technology Inc.                                                                DS41341E-page 63
PIC16F72X/PIC16LF72X

REGISTER 6-7: WPUB: WEAK PULL-UP PORTB REGISTER

     R/W-1          R/W-1   R/W-1             R/W-1   R/W-1     R/W-1              R/W-1                    R/W-1
    WPUB7          WPUB6   WPUB5             WPUB4   WPUB3     WPUB2              WPUB1                    WPUB0
bit 7
                                                                                                                   bit 0

Legend:                    W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                    `0' = Bit is cleared         x = Bit is unknown

bit 7-0           WPUB<7:0>: Weak Pull-up Register bits
                  1 = Pull-up enabled
Note 1:           0 = Pull-up disabled
        2:
            Global RBPU bit of the OPTION register must be cleared for individual pull-ups to be enabled.
            The weak pull-up device is automatically disabled if the pin is in configured as an output.

REGISTER 6-8: IOCB: INTERRUPT-ON-CHANGE PORTB REGISTER

     R/W-0         R/W-0   R/W-0             R/W-0   R/W-0     R/W-0              R/W-0                    R/W-0
     IOCB7         IOCB6   IOCB5             IOCB4   IOCB3     IOCB2              IOCB1                    IOCB0
bit 7
                                                                                                                  bit 0

Legend:                    W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                    `0' = Bit is cleared         x = Bit is unknown

bit 7-0     IOCB<7:0>: Interrupt-on-Change PORTB Control bits
            1 = Interrupt-on-change enabled
            0 = Interrupt-on-change disabled

REGISTER 6-9: ANSELB: PORTB ANALOG SELECT REGISTER

      U-0          U-0     R/W-1             R/W-1   R/W-1                 R/W-1  R/W-1                    R/W-1
       --                                                                         ANSB1                    ANSB0
bit 7              --      ANSB5             ANSB4   ANSB3     ANSB2
                                                                                                                  bit 0

Legend:                    W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                    `0' = Bit is cleared         x = Bit is unknown

bit 7-6     Unimplemented: Read as `0'
bit 5-0
            ANSB<5:0>: Analog Select between Analog or Digital Function on Pins RB<5:0>, respectively

            0 = Digital I/O. Pin is assigned to port or Digital special function.
            1 = Analog input. Pin is assigned as analog input(1). Digital Input buffer disabled.

Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to
              allow external control of the voltage on the pin.

DS41341E-page 64                                                                   2009 Microchip Technology Inc.
                                                              PIC16F72X/PIC16LF72X

6.3.4  PIN DESCRIPTIONS AND                                   6.3.4.6 RB5/AN13/CPS5/T1G
       DIAGRAMS                                               Figure 6-10 shows the diagram for this pin. This pin is
                                                              configurable to function as one of the following:
Each PORTB pin is multiplexed with other functions. The       a general purpose I/O
                                                               an analog input for the ADC
pins and their combined functions are briefly described       a capacitive sensing input
                                                               a Timer1 gate input
here. For specific information about individual functions
such as the SSP, I2C or interrupts, refer to the appropriate  6.3.4.7 RB6/ICSPCLK
                                                              Figure 6-11 shows the diagram for this pin. This pin is
section in this data sheet.                                   configurable to function as one of the following:
                                                               a general purpose I/O
6.3.4.1 RB0/AN12/CPS0/INT                                     In-Circuit Serial Programming clock

Figure 6-7 shows the diagram for this pin. This pin is        6.3.4.8 RB7/ICSPDAT
configurable to function as one of the following:             Figure 6-12 shows the diagram for this pin. This pin is
                                                              configurable to function as one of the following:
a general purpose I/O                                        a general purpose I/O
an analog input for the ADC                                  In-Circuit Serial Programming data
a capacitive sensing input
an external edge triggered interrupt

6.3.4.2 RB1/AN10/CPS1

Figure 6-8 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC
a capacitive sensing input

6.3.4.3 RB2/AN8/CPS2

Figure 6-8 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC
a capacitive sensing input

6.3.4.4 RB3/AN9/CPS3/CCP2

Figure 6-9 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC
a capacitive sensing input
a Capture 2 input, Compare 2 output, and PWM2

   output

   Note: CCP2 pin location may be selected as
               RB3 or RC1.

6.3.4.5 RB4/AN11/CPS4

Figure 6-8 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC
a capacitive sensing input

2009 Microchip Technology Inc.                              DS41341E-page 65
PIC16F72X/PIC16LF72X

FIGURE 6-7:            BLOCK DIAGRAM OF RB0

Data Bus

               WR      DQ                                                                  VDD
             WPUB       CK Q                                                                  Weak
                                                                                                      VDD
               RD             RBPU                                                                             I/O Pin
             WPUB                                                                                     VSS

                  WR   DQ                                              To A/D Converter
             PORTB      CK Q                                           To Cap Sensor

                WR     DQ
             TRISB      CK Q

          RD
      TRISB

ANSB0

                   RD  DQ                                QD
             PORTB      CK Q

                WR
               IOCB

                                                         EN        Q3

              RD                                         QD
             IOCB                                              EN

             Interrupt-on-
                Change

                                               RD PORTB
                  To External Interrupt Logic

DS41341E-page 66                                                       2009 Microchip Technology Inc.
                                            PIC16F72X/PIC16LF72X

FIGURE 6-8:  BLOCK DIAGRAM OF RB4, RB<2:1>

             Data Bus

               WR      DQ                                             VDD
             WPUB       CK Q                                             Weak
                                                                                 VDD
               RD                 RBPU
             WPUB                                                                         I/O Pin
                                                                                  VSS
                  WR   DQ
             PORTB      CK Q

                WR     DQ
             TRISB      CK Q

                  RD
             TRISB

ANSB<4,2,1>

                   RD  DQ         QD
             PORTB      CK Q

                WR
               IOCB

                                            EN  Q3  To A/D Converter
                                                    To Cap Sensor
              RD                  QD
             IOCB                       EN

             Interrupt-on-
                Change

                                  RD PORTB

2009 Microchip Technology Inc.                                      DS41341E-page 67
PIC16F72X/PIC16LF72X

FIGURE 6-9:       BLOCK DIAGRAM OF RB3

             Data Bus

                    WR      DQ                                       VDD
                  WPUB       CK Q                                       Weak
                                                                                VDD
                    RD             RBPU          CCP2OUT
                  WPUB                              Enable                               I/O Pin
                                                                                VSS
                                             CCP2OUT 1

                            DQ                             0
                             CK Q
                  WR
             PORTB

                     WR     DQ
                  TRISB      CK Q

               RD
          TRISB

ANSB<5,3>

                        RD  DQ               QD
                  PORTB      CK Q

                     WR
                    IOCB

                                             EN        Q3

                   RD                        QD
                  IOCB                             EN

                  Interrupt-on-
                     Change

                                   RD PORTB

                  To CCP2(1)

                                                                     To A/D Converter
                                                                     To Cap Sensor

Note 1: CCP2 input is controlled by CCP2SEL in the APFCON register.

DS41341E-page 68                                                      2009 Microchip Technology Inc.
                                                      PIC16F72X/PIC16LF72X

FIGURE 6-10:  BLOCK DIAGRAM OF RB5

              Data Bus

                WR      DQ                                   VDD
              WPUB       CK Q                                    Weak
                                                                         VDD
                RD                RBPU          CCP2OUT
              WPUB                                 Enable                         I/O Pin
                                                                         VSS
                                            CCP2OUT 1

                        DQ                                0
                         CK Q
                   WR
              PORTB

                 WR     DQ
              TRISB      CK Q

               RD
          TRISB

ANSB<5,3>

                    RD  DQ                  QD
              PORTB      CK Q

                 WR
                IOCB

                                            EN        Q3

               RD                           QD
              IOCB                                EN

              Interrupt-on-
                 Change

                                  RD PORTB

              To Timer1 Gate

                                                             To A/D Converter
                                                             To Cap Sensor

2009 Microchip Technology Inc.                                               DS41341E-page 69
PIC16F72X/PIC16LF72X

FIGURE 6-11:      BLOCK DIAGRAM OF RB6

           ICSPTM MODE
                   DEBUG

Data Bus

  WR              DQ                               VDD
WPUB               CK Q                               Weak
                                                              VDD
  RD                       RBPU
WPUB                       PORT_ICDCLK                                 I/O Pin
                                                              VSS
     WR           DQ              1
PORTB              CK Q
                                  0

   WR             DQ           0
TRISB              CK Q        1

     RD                    TRIS_ICDCLK
TRISB
                  DQ                 QD
      RD           CK Q
PORTB

   WR
  IOCB

                                        EN     Q3

RD                                  QD
IOCB                                       EN

Interrupt-on-
   Change

                           RD PORTB

                  ICSPCLK

DS41341E-page 70                                    2009 Microchip Technology Inc.
                                            PIC16F72X/PIC16LF72X

FIGURE 6-12:  BLOCK DIAGRAM OF RB7

       ICSPTM MODE
              DEBUG

Data Bus

  WR          DQ                                    VDD
WPUB           CK Q                                    Weak
                                                               VDD
  RD                              RBPU
WPUB                              PORT_ICDDAT                           I/O Pin
                                                                VSS
     WR       DQ                         1
PORTB          CK Q
                                         0

   WR         DQ                      0
TRISB          CK Q                   1

     RD                           TRIS_ICDDAT
TRISB
              DQ                  QD
      RD       CK Q
PORTB

   WR
  IOCB

                                            EN  Q3

RD                               QD
IOCB                                    EN

Interrupt-on-
   Change

                                  RD PORTB

              ICSPDAT_IN

2009 Microchip Technology Inc.                    DS41341E-page 71
PIC16F72X/PIC16LF72X

TABLE 6-2: SUMMARY OF REGISTERS ASSOCIATED WITH PORTB

Name     Bit 7    Bit 6  Bit 5  Bit 4  Bit 3             Bit 2   Bit 1  Bit 0   Value on                            Value on all
                                                                               POR, BOR                                 other
                                                                                                                       Resets

ADCON0      --       --  CHS3   CHS2   CHS1              CHS0 GO/DONE ADON --00 0000 --00 0000
ANSELB      --       --  ANSB5  ANSB4
APFCON      --       --                ANSB3 ANSB2 ANSB1 ANSB0 --11 1111 --11 1111
CCP2CON     --       --     --     --
CPSCON0  CPSON       --  DC2B1  DC2B0  --                --      SSSEL CCP2SEL ---- --00 ---- --00
CPSCON1     --       --
INTCON     GIE     PEIE     --     --  CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000
IOCB     IOCB7    IOCB6     --     --
                          T0IE   INTE  CPSRNG1 CPSRNG0 CPSOUT T0XCS 0--- 0000 0--- 0000
                         IOCB5  IOCB4
                                       CPSCH3 CPSCH2 CPSCH1 CPSCH0 ---- 0000 ---- 0000

                                       RBIE              T0IF    INTF   RBIF 0000 000x 0000 000X

                                       IOCB3             IOCB2   IOCB1  IOCB0 0000 0000 0000 0000

OPTION_REG RBPU INTEDG T0CS     T0SE   PSA               PS2     PS1    PS0 1111 1111 1111 1111

PORTB    RB7      RB6    RB5    RB4    RB3               RB2     RB1    RB0 xxxx xxxx xxxx xxxx

T1GCON   TMR1GE T1GPOL   T1GTM  T1GSPM T1GGO/            T1GVAL  T1GSS1 T1GSS0 0000 0x00 uuuu uxuu
                                                   DONE

TRISB    TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111

WPUB     WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 1111 1111 1111 1111

Legend:  x = unknown, u = unchanged, - = unimplemented locations read as `0'. Shaded cells are not used by Port B.

DS41341E-page 72                                                         2009 Microchip Technology Inc.
                                                             PIC16F72X/PIC16LF72X

6.4 PORTC and TRISC Registers                                The TRISC register (Register 6-11) controls the PORTC
                                                             pin output drivers, even when they are being used as
PORTC is a 8-bit wide, bidirectional port. The               analog inputs. The user should ensure the bits in the
corresponding data direction register is TRISC               TRISC register are maintained set when using them as
(Register 6-11). Setting a TRISC bit (= 1) will make the     analog inputs. I/O pins configured as analog input always
corresponding PORTC pin an input (i.e., put the              read `0'.
corresponding output driver in a High-Impedance mode).
Clearing a TRISC bit (= 0) will make the corresponding       EXAMPLE 6-3: INITIALIZING PORTC
PORTC pin an output (i.e., enable the output driver and
put the contents of the output latch on the selected pin).   BANKSEL PORTC                ;
Example 6-3 shows how to initialize PORTC.                   CLRF PORTC                   ;Init PORTC
                                                             BANKSEL TRISC                ;
Reading the PORTC register (Register 6-10) reads the         MOVLW B`00001100'            ;Set RC<3:2> as inputs
status of the pins, whereas writing to it will write to the  MOVWF TRISC                  ;and set RC<7:4,1:0>
PORT latch. All write operations are read-modify-write                                    ;as outputs
operations. Therefore, a write to a port implies that the
port pins are read, this value is modified and then written  The location of the CCP2 function is controlled by the
to the PORT data latch.                                      CCP2SEL bit in the APFCON register (refer to
                                                             Register 6-1)

REGISTER 6-10: PORTC: PORTC REGISTER

     R/W-x         R/W-x          R/W-x             R/W-x    R/W-x                 R/W-x  R/W-x   R/W-x
      RC7           RC6            RC5               RC4      RC3                   RC2    RC1     RC0
bit 7
                                                                                                         bit 0

Legend:                           W = Writable bit           U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared         x = Bit is unknown

bit 7-0     RC<7:0>: PORTC General Purpose I/O Pin bits
            1 = Port pin is > VIH
            0 = Port pin is < VIL

REGISTER 6-11: TRISC: PORTC TRI-STATE REGISTER

     R/W-1          R/W-1          R/W-1             R/W-1    R/W-1   R/W-1                R/W-1   R/W-1
    TRISC7         TRISC6         TRISC5            TRISC4   TRISC3  TRISC2               TRISC1  TRISC0
bit 7
                                                                                                          bit 0

Legend:                           W = Writable bit           U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared         x = Bit is unknown

bit 7-0     TRISC<7:0>: PORTC Tri-State Control bits
            1 = PORTC pin configured as an input (tri-stated)
            0 = PORTC pin configured as an output

2009 Microchip Technology Inc.                                                                 DS41341E-page 73
PIC16F72X/PIC16LF72X

6.4.1 RC0/T1OSO/T1CKI                                    6.4.8 RC7/RX/DT
Figure 6-13 shows the diagram for this pin. This pin is
configurable to function as one of the following:        Figure 6-20 shows the diagram for this pin. This pin is
a general purpose I/O                                  configurable to function as one of the following:
a Timer1 oscillator output
a Timer1 clock input                                    a general purpose I/O
                                                          an asynchronous serial input
6.4.2 RC1/T1OSI/CCP2                                     a synchronous serial data I/O
Figure 6-14 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
a Timer1 oscillator input
a Capture 2 input, Compare 2 output, and PWM2

   output
   Note: CCP2 pin location may be selected as

               RB3 or RC1.

6.4.3 RC2/CCP1
Figure 6-15 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
a Capture 1 input, Compare 1 output, and PWM1

   output

6.4.4 RC3/SCK/SCL
Figure 6-16 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
a SPI clock
an I2CTM clock

6.4.5 RC4/SDI/SDA
Figure 6-17 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
a SPI data input
an I2C data I/O

6.4.6 RC5/SDO
Figure 6-18 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
a SPI data output

6.4.7 RC6/TX/CK
Figure 6-19 shows the diagram for this pin. This pin is
configurable to function as one of the following:
a general purpose I/O
an asynchronous serial output
a synchronous clock I/O

DS41341E-page 74                                          2009 Microchip Technology Inc.
                                            PIC16F72X/PIC16LF72X

FIGURE 6-13:          BLOCK DIAGRAM OF RC0

Data Bus                                                                          Oscillator   VDD
                                                                                    Circuit           I/O Pin

                                                                     RC1/T1OSI                 VSS

     WR               DQ
PORTC                  CK Q

    WR                DQ
TRISC                  CK Q

             RD
        TRISC
T1OSCEN

      RD
PORTC

             To Timer1 CLK Input

FIGURE 6-14:          BLOCK DIAGRAM OF RC1

                      CCP2OUT                                                      Oscillator  VDD
                        Enable                                                       Circuit

Data Bus                                                             RC0/T1OSO

        WR            CCP2OUT 1
  PORTC
                      DQ          0

                      CK Q                                                                            I/O Pin
                                                                                               VSS
                      DQ
                  WR   CK Q
              TRISC

              RD
         TRISC
T1OSCEN

                         RD
                  PORTC

                         To CCP2(1) Input

Note 1: CCP2 input is controlled by CCP2SEL in the APFCON register.

2009 Microchip Technology Inc.                                                                    DS41341E-page 75
PIC16F72X/PIC16LF72X

FIGURE 6-15:            BLOCK DIAGRAM OF RC2

                        CCP1OUT                                                                VDD
                          Enable                                                                      I/O Pin

Data Bus                CCP1OUT 1                                                              VSS

        WR              DQ                 0
  PORTC
                        CK Q

                  WR    DQ
              TRISC      CK Q

                  RD
              TRISC

      RD
PORTC

To CCP1 Input

FIGURE 6-16:            BLOCK DIAGRAM OF RC3

SSPM = SPI MODE

        SCK_MASTER 1                       SSPEN                                               VDD
                                              1                                                         I/O Pin
Data Bus
                                0                                                              VSS

                        DQ                    0                                 (2)

                   WR    CK Q
              PORTC
                                      SCL
                        DQ

                  WR    CK Q
              TRISC

                  RD
              TRISC

To SSP SPI
Clock Input

                                                       01

                    RD                        10
              PORTC

         SSPEN
SSPM = I2CTM MODE

To SSP I2CTM
SCL Input

                                                                                     I2CTM(1)

Note 1: I2CTM Schmitt Trigger has special input levels.
        2: I2CTM Slew Rate limiting controlled by SMP bit of SSPSTAT register.

DS41341E-page 76                                                                      2009 Microchip Technology Inc.
                                                        PIC16F72X/PIC16LF72X

FIGURE 6-17:           BLOCK DIAGRAM OF RC4

           SSPEN                                                                     VDD
SSPM = I2CTM MODE                                                                             I/O Pin

  Data Bus                                                                           VSS

                                              1

                       DQ              0                                        (2)

                   WR  CK Q
              PORTC

                  WR   DQ
              TRISC     CK Q

                  RD
              TRISC

To SSP SPI
Data Input

                                                    01

              RD

              PORTC                    10

SDA FROM SSP

To SSP I2CTM
SDA Input

Note 1: I2CTM Schmitt Trigger has special input levels.                              I2CTM(1)
        2: I2CTM Slew Rate limiting controlled by SMP bit of SSPSTAT register.
                                                                                                            VDD
FIGURE 6-18:           BLOCK DIAGRAM OF RC5                                                                          I/O Pin

           SSPEN                                                                                            VSS
SSPM = SPI MODE

Data Bus

                                  SDO 1

                       DQ              0

     WR                CK Q
PORTC

                  WR   DQ         SDO
              TRISC     CK Q       EN

                  RD
              TRISC

      RD
PORTC

2009 Microchip Technology Inc.                                                     DS41341E-page 77
PIC16F72X/PIC16LF72X

FIGURE 6-19:           BLOCK DIAGRAM OF RC6

                           SYNC
                  USART_TX 0

                  USART_CK 1                            VDD
                                                                I/O Pin
Data Bus                                    1
                                                        VSS
                       DQ                   0
                                                         VDD
     WR                CK Q                                       I/O Pin
PORTC
                                                         VSS
                  WR   DQ
              TRISC     CK Q                   2009 Microchip Technology Inc.

                  RD
              TRISC

      RD
PORTC

   SPEN

   TXEN 0

   CSRC 1
     SYNC

                  To USART
                  Sync Clock Input

FIGURE 6-20:           BLOCK DIAGRAM OF RC7

Data Bus               SPEN
                       SYNC

                            USART_DT 1

                       DQ                   0

                   WR  CK Q
              PORTC

                  WR   DQ
              TRISC     CK Q

      RD
TRISC

      RD
PORTC

   SPEN
   SYNC
  TXEN
  SREN
  CREN

                       To USART Data Input

DS41341E-page 78
                                                PIC16F72X/PIC16LF72X

TABLE 6-3: SUMMARY OF REGISTERS ASSOCIATED WITH PORTC

Name     Bit 7  Bit 6             Bit 5  Bit 4  Bit 3   Bit 2   Bit 1   Bit 0     Value on                          Value on all
                                                                                 POR, BOR                               other
                                                                                                                       Resets

APFCON      --     --                --     --      --      --   SSSEL  CCP2SEL  ---- --00                          ---- --00
CCP1CON     --     --             DC1B1  DC1B0  CCP1M3  CCP1M2  CCP1M1  CCP1M0   --00 0000                          --00 0000
CCP2CON     --     --             DC2B1  DC2B0  CCP2M3  CCP2M2  CCP2M1  CCP2M0   --00 0000                          --00 0000
PORTC     RC7     RC6                                                            xxxx xxxx                          xxxx xxxx
RCSTA    SPEN     RX9               RC5   RC4      RC3     RC2     RC1     RC0   0000 000x                          0000 000x
SSPCON   WCOL   SSPOV             SREN   CREN   ADDEN     FERR   OERR     RX9D   0000 0000                          0000 0000
                                  SSPEN   CKP    SSPM3   SSPM2   SSPM1   SSPM0

SSPSTAT  SMP    CKE               D/A    P      S       R/W     UA      BF       0000 0000 0000 0000

T1CON    TMR1CS1 TMR1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC         --      TMR1ON 0000 00-0 uuuu uu-u
TXSTA
TRISC    CSRC   TX9               TXEN   SYNC   --      BRGH    TRMT    TX9D 0000 -010 0000 -010
Legend:
         TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111

         x = unknown, u = unchanged, - = unimplemented locations read as `0'. Shaded cells are not used by Port B.

2009 Microchip Technology Inc.                                                                                    DS41341E-page 79
PIC16F72X/PIC16LF72X

6.5 PORTD and TRISD Registers                                EXAMPLE 6-4: INITIALIZING PORTD

PORTD(1) is a 8-bit wide, bidirectional port. The            BANKSEL PORTD                ;
corresponding data direction register is TRISD               CLRF PORTD                   ;Init PORTD
(Register 6-13). Setting a TRISD bit (= 1) will make the     BANKSEL ANSELD
corresponding PORTD pin an input (i.e., put the              CLRF ANSELD                  ;Make PORTD digital
corresponding output driver in a High-Impedance mode).       BANKSEL TRISD                ;
Clearing a TRISD bit (= 0) will make the corresponding       MOVLW B`00001100'            ;Set RD<3:2> as inputs
PORTD pin an output (i.e., enable the output driver and      MOVWF TRISD                  ;and set RD<7:4,1:0>
put the contents of the output latch on the selected pin).                                ;as outputs
Example 6-4 shows how to initialize PORTD.
                                                             6.5.1 ANSELD REGISTER
Reading the PORTD register (Register 6-12) reads the
status of the pins, whereas writing to it will write to the  The ANSELD register (Register 6-9) is used to
PORT latch. All write operations are read-modify-write       configure the Input mode of an I/O pin to analog.
operations. Therefore, a write to a port implies that the    Setting the appropriate ANSELD bit high will cause all
port pins are read, this value is modified and then written  digital reads on the pin to be read as `0' and allow
to the PORT data latch.                                      analog functions on the pin to operate correctly.

    Note 1: PORTD is available on PIC16F724/LF724            The state of the ANSELD bits has no affect on digital
                and PIC16F727/LF727 only.                    output functions. A pin with TRIS clear and ANSEL set
                                                             will still operate as a digital output, but the Input mode
The TRISD register (Register 6-13) controls the              will be analog. This can cause unexpected behavior
PORTD pin output drivers, even when they are being           when executing read-modify-write instructions on the
used as analog inputs. The user should ensure the bits       affected port.
in the TRISD register are maintained set when using
them as analog inputs. I/O pins configured as analog         Note:  The ANSELD register must be initialized
input always read `0'.                                              to configure an analog channel as a digital
                                                                    input. Pins configured as analog inputs will
                                                                    read `0'.

REGISTER 6-12: PORTD: PORTD REGISTER(1)

     R/W-x         R/W-x  R/W-x             R/W-x            R/W-x                 R/W-x  R/W-x  R/W-x
      RD7           RD6    RD5               RD4              RD3                   RD2    RD1    RD0
bit 7
                                                                                                        bit 0

Legend:                   W = Writable bit                   U = Unimplemented bit, read as `0'
R = Readable bit          `1' = Bit is set
-n = Value at POR                                            `0' = Bit is cleared         x = Bit is unknown

bit 7-0     RD<7:0>: PORTD General Purpose I/O Pin bits
            1 = Port pin is > VIH
            0 = Port pin is < VIL

Note 1: PORTD is not implemented on PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.

DS41341E-page 80                                                                           2009 Microchip Technology Inc.
                                                    PIC16F72X/PIC16LF72X

REGISTER 6-13: TRISD: PORTD TRI-STATE REGISTER(1)

     R/W-1          R/W-1          R/W-1             R/W-1   R/W-1   R/W-1         R/W-1         R/W-1
    TRISD7         TRISD6         TRISD5            TRISD4  TRISD3  TRISD2        TRISD1        TRISD0
bit 7
                                                                                                        bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared  x = Bit is unknown

bit 7-0     TRISD<7:0>: PORTD Tri-State Control bits
            1 = PORTD pin configured as an input (tri-stated)
            0 = PORTD pin configured as an output

Note 1: TRISD is not implemented on PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.

REGISTER 6-14: ANSELD: PORTD ANALOG SELECT REGISTER(2)

     R/W-1         R/W-1          R/W-1             R/W-1   R/W-1   R/W-1         R/W-1         R/W-1
    ANSD7          ANSD6          ANSD5             ANSD4   ANSD3   ANSD2         ANSD1         ANSD0
bit 7
                                                                                                       bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared  x = Bit is unknown

bit 7-0     ANSD<7:0>: Analog Select between Analog or Digital Function on Pins RD<7:0>, respectively

            0 = Digital I/O. Pin is assigned to port or Digital special function.
            1 = Analog input. Pin is assigned as analog input(1). Digital Input buffer disabled.

Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to
              allow external control of the voltage on the pin.

        2: ANSELD register is not implemented on the PIC16F722/723/726/PIC16LF722/723/726. Read as `0'.

2009 Microchip Technology Inc.                                                                DS41341E-page 81
PIC16F72X/PIC16LF72X

   Note: PORTD is available on PIC16F724/LF724          6.5.6 RD4/CPS12
               and PIC16F727/LF727 only.                Figure 6-21 shows the diagram for these pins. They are
                                                        configurable to function as one of the following:
6.5.2 RD0/CPS8                                           a general purpose I/O
Figure 6-21 shows the diagram for these pins. They are   a capacitive sensing input
configurable to function as one of the following:
a general purpose I/O                                 6.5.7 RD5/CPS13
a capacitive sensing input                            Figure 6-21 shows the diagram for these pins. They are
                                                        configurable to function as one of the following:
6.5.3 RD1/CPS9                                           a general purpose I/O
Figure 6-21 shows the diagram for these pins. They are   a capacitive sensing input
configurable to function as one of the following:
a general purpose I/O                                 6.5.8 RD6/CPS14
a capacitive sensing input                            Figure 6-21 shows the diagram for these pins. They are
                                                        configurable to function as one of the following:
6.5.4 RD2/CPS10                                          a general purpose I/O
Figure 6-21 shows the diagram for these pins. They are   a capacitive sensing input
configurable to function as one of the following:
a general purpose I/O                                 6.5.9 RD7/CPS15
a capacitive sensing input                            Figure 6-21 shows the diagram for these pins. They are
                                                        configurable to function as one of the following:
6.5.5 RD3/CPS11                                          a general purpose I/O
Figure 6-21 shows the diagram for these pins. They are   a capacitive sensing input
configurable to function as one of the following:
a general purpose I/O
a capacitive sensing input

FIGURE 6-21:      BLOCK DIAGRAM OF RD<7:0>

Data Bus                                                                           VDD

     WR               DQ                                                                  I/O Pin
PORTD                  CK Q                                                        VSS

                  WR  DQ
              TRISD    CK Q

               RD
          TRISD
ANSD<7:0>

      RD
PORTD

                                                        To Cap Sensor

Note:             PORTD is available on PIC16F724/LF724 and PIC16F727/LF727 only.

DS41341E-page 82                                                                   2009 Microchip Technology Inc.
                                          PIC16F72X/PIC16LF72X

TABLE 6-4: SUMMARY OF REGISTERS ASSOCIATED WITH PORTD(1)

Name     Bit 7 Bit 6 Bit 5 Bit 4          Bit 3      Bit 2    Bit 1  Bit 0   Value on  Value on
                                                                            POR, BOR   all other
                                                                                        Resets

ANSELD   ANSD7  ANSD6             ANSD5 ANSD4 ANSD3    ANSD2   ANSD1 ANSD0 1111 1111 1111 1111
CPSCON0  CPSON     --                                CPSRNG0  CPSOUT T0XCS 0--- 0000 0--- 0000
CPSCON1            --             --  -- CPSRNG1      CPSCH2  CPSCH1 CPSCH0 ---- 0000 ---- 0000
            --
                                  --  --  CPSCH3

PORTD    RD7    RD6 RD5 RD4               RD3        RD2      RD1    RD0 xxxx xxxx xxxx xxxx

TRISD    TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 1111 1111

Legend: x = unknown, u = unchanged, = unimplemented locations read as `0'. Shaded cells are not used by PORTD.
Note 1: These registers are not implemented on the PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.

2009 Microchip Technology Inc.                                            DS41341E-page 83
PIC16F72X/PIC16LF72X

6.6 PORTE and TRISE Registers

PORTE(1) is a 4-bit wide, bidirectional port. The
corresponding data direction register is TRISE. Setting a
TRISE bit (= 1) will make the corresponding PORTE pin
an input (i.e., put the corresponding output driver in a
High-Impedance mode). Clearing a TRISE bit (= 0) will
make the corresponding PORTE pin an output (i.e.,
enable the output driver and put the contents of the
output latch on the selected pin). The exception is RE3,
which is input only and its TRIS bit will always read as
`1'. Example 6-5 shows how to initialize PORTE.

Reading the PORTE register (Register 6-15) reads the
status of the pins, whereas writing to it will write to the
PORT latch. All write operations are read-modify-write
operations. Therefore, a write to a port implies that the
port pins are read, this value is modified and then
written to the PORT data latch. RE3 reads `0' when
MCLRE = 1.

Note 1: RE<2:0> and TRISE<2:0> are not
            implemented on the PIC16F722/723/726/
            PIC16LF722/723/726. Read as `0'.

The TRISE register (Register 6-16) controls the PORTE
pin output drivers, even when they are being used as
analog inputs. The user should ensure the bits in the
TRISE register are maintained set when using them as
analog inputs. I/O pins configured as analog input always
read `0'.

Note:  The ANSELE register must be initialized to
       configure an analog channel as a digital
       input. Pins configured as analog inputs will
       read `0'.

EXAMPLE 6-5: INITIALIZING PORTE

BANKSEL PORTE      ;
CLRF PORTE         ;Init PORTE
BANKSEL ANSELE     ;
CLRF ANSELE        ;digital I/O
BANKSEL TRISE      ;
MOVLW B`00001100'  ;Set RE<2> as an input
MOVWF TRISE        ;and set RE<1:0>
                   ;as outputs

DS41341E-page 84                                              2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

REGISTER 6-15: PORTE: PORTE REGISTER

       U-0         U-0            U-0               U-0  R-x                   R/W-x   R/W-x      R/W-x
        --                                                                     RE2(1)  RE1(1)     RE0(1)
bit 7              --             --                --   RE3
                                                                                                         bit 0

Legend:                           W = Writable bit       U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                        `0' = Bit is cleared          x = Bit is unknown

bit 7-4     Unimplemented: Read as `0'
bit 3-0     RE<3:0>: PORTE I/O Pin bits(1)
            1 = Port pin is > VIH
            0 = Port pin is < VIL

Note 1: RE<2:0> are not implemented on the PIC16F722/723/726/PIC16LF722/723/726. Read as `0'.

REGISTER 6-16: TRISE: PORTE TRI-STATE REGISTER

       U-0         U-0            U-0               U-0  R-1       R/W-1                 R/W-1      R/W-1
        --                                                       TRISE2(1)             TRISE1(1)  TRISE0(1)
bit 7              --             --                --   TRISE3
                                                                                                           bit 0

Legend:                           W = Writable bit       U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                        `0' = Bit is cleared          x = Bit is unknown

bit 7-4     Unimplemented: Read as `0'
bit 3
            TRISE3: RE3 Port Tri-state Control bit
bit 2-0     This bit is always `1' as RE3 is an input only
            TRISE<2:0>: RE<2:0> Tri-State Control bits(1)
            1 = PORTE pin configured as an input (tri-stated)
            0 = PORTE pin configured as an output

Note 1: TRISE<2:0> are not implemented on the PIC16F722/723/726/PIC16LF722/723/726. Read as `0'.

2009 Microchip Technology Inc.                                                               DS41341E-page 85
PIC16F72X/PIC16LF72X

REGISTER 6-17: ANSELE: PORTE ANALOG SELECT REGISTER

      U-0          U-0      U-0           U-0    U-0             R/W-1          R/W-1      R/W-1
       --                                                                     ANSE1(2)   ANSE0(2)
bit 7              --       --            --          --  ANSE2(2)
                                                                                                  bit 0

Legend:                 W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit        `1' = Bit is set
-n = Value at POR                                `0' = Bit is cleared         x = Bit is unknown

bit 7-3      Unimplemented: Read as `0'
bit 2-0
             ANSE<2:0>: Analog Select between Analog or Digital Function on Pins RE<2:0>, respectively

             0 = Digital I/O. Pin is assigned to port or Digital special function.
             1 = Analog input. Pin is assigned as analog input(1). Digital Input buffer disabled.

Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to
              allow external control of the voltage on the pin.

        2: ANSELE register is not implemented on the PIC16F722/723/726/PIC16LF722/723/726. Read as `0'

TABLE 6-5: SUMMARY OF REGISTERS ASSOCIATED WITH PORTE

Name Bit 7 Bit 6 Bit 5 Bit 4              Bit 3  Bit 2    Bit 1        Bit 0   Value on  Value on
                                                                              POR, BOR   all other
                                                                                          Resets

ADCON0       --    --   CHS3 CHS2 CHS1           CHS0 GO/DONE ADON --00 0000 --00 0000
ANSELE
PORTE        --    --   --       --       --     ANSE2 ANSE1 ANSE0 ---- -111 ---- -111
TRISE
Legend:      --    --   --       --       RE3    RE2      RE1          RE0 ---- xxxx ---- xxxx
Note 1:
             --    --   --       -- TRISE3(2) TRISE2(1) TRISE1(1) TRISE0(1) ---- 1111 ---- 1111
         2:
             x = unknown, u = unchanged, = unimplemented locations read as `0'. Shaded cells are not used by PORTE
             These registers are not implemented on the PIC16F722/723/726/PIC16LF722/723/726 devices, read as `0'.
             This bit is always `1' as RE3 is input only.

DS41341E-page 86                                                         2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

6.6.1  RE0/AN5(1)

Figure 6-22 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC

Note 1: RE0/AN5    is             available  on

       PIC16F724/LF724 and PIC16F727/LF727

       only.

6.6.2  RE1/AN6(1)

Figure 6-22 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC

Note 1: RE1/AN6    is             available  on

       PIC16F724/LF724 and PIC16F727/LF727

       only.

6.6.3  RE2/AN7(1)

Figure 6-22 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose I/O
an analog input for the ADC

Note 1: RE2/AN7    is             available  on

       PIC16F724/LF724 and PIC16F727/LF727

       only.

6.6.4 RE3/MCLR/VPP

Figure 6-23 shows the diagram for this pin. This pin is
configurable to function as one of the following:

a general purpose input
as Master Clear Reset with weak pull-up
a programming voltage reference input

2009 Microchip Technology Inc.                         DS41341E-page 87
PIC16F72X/PIC16LF72X

FIGURE 6-22:      BLOCK DIAGRAM OF RE<2:0>

Data Bus                                                                    VDD
                                                                                   I/O Pin
     WR              DQ
PORTE                 CK Q                                                  VSS

                 WR  DQ
              TRISE   CK Q

               RD
          TRISE
ANSE<0:2>

      RD
PORTE

                                            To A/D Converter

Note: RE<2:0> are not implemented on PIC16F722/723/726/PIC16LF722/723/726.

FIGURE 6-23:      BLOCK DIAGRAM OF RE3

ICSPTM Mode Detect                                                          VDD
                                                                               Weak

In-Circuit Serial ProgrammingTM mode        High-Voltage
                                                Detect

MCLR Circuit                    MCLR                                                I/O Pin
                            Pulse Filter                                    VSS
Data Bus
                     VSS
         RD
    TRISE

        RD
  PORTE

                                            Power for Programming Flash

DS41341E-page 88                                                             2009 Microchip Technology Inc.
                                                            PIC16F72X/PIC16LF72X

7.0 OSCILLATOR MODULE                                       Clock source modes are configured by the FOSC bits
                                                            in Configuration Word 1 (CONFIG1). The oscillator
7.1 Overview                                                module can be configured for one of eight modes of
                                                            operation.
The oscillator module has a wide variety of clock sources
and selection features that allow it to be used in a wide   1. RC External Resistor-Capacitor (RC) with
range of applications while maximizing performance and            FOSC/4 output on OSC2/CLKOUT.
minimizing power consumption. Figure 7-1 illustrates a
block diagram of the oscillator module.                     2. RCIO External Resistor-Capacitor (RC) with
                                                                  I/O on OSC2/CLKOUT.
Clock sources can be configured from external
oscillators, quartz crystal resonators, ceramic resonators  3. INTOSC Internal oscillator with FOSC/4 output
and Resistor-Capacitor (RC) circuits. In addition, the            on OSC2 and I/O on OSC1/CLKIN.
system can be configured to use an internal calibrated
high-frequency oscillator as clock source, with a choice    4. INTOSCIO Internal oscillator with I/O on
of selectable speeds via software.                                OSC1/CLKIN and OSC2/CLKOUT.

                                                            5. EC External clock with I/O on OSC2/CLKOUT.
                                                            6. HS High Gain Crystal or Ceramic Resonator

                                                                  mode.
                                                            7. XT Medium Gain Crystal or Ceramic

                                                                  Resonator Oscillator mode.
                                                            8. LP Low-Power Crystal mode.

FIGURE 7-1:          SIMPLIFIED PIC MCU CLOCK SOURCE BLOCK DIAGRAM

OSC2         External Oscillator                                                      FOSC<2:0>
OSC1                                 Sleep                                     (Configuration Word 1)

                                                            LP, XT, HS, RC, EC

Internal Oscillator               MUX                               IRCF<1:0>                                                                         System Clock
                                                  Postscaler    (OSCCON Register)                                                               (CPU and Peripherals)

500 kHz                   0                                                                    MUX16 MHz/500 kHzINTOSC
                                                                                                                                           MUX11
                     32x  1
                                              8 MHz/250 kHz
                     PLL                                               10

                                              4 MHz/125 kHz 01
                                             2 MHz/62.5 kHz

                                                                       00

                               PLLEN
                     (Configuration Word 1)

2009 Microchip Technology Inc.                                                                                                                DS41341E-page 89
PIC16F72X/PIC16LF72X

7.2 Clock Source Modes                                   7.3.2 FREQUENCY SELECT BITS (IRCF)

Clock source modes can be classified as external or      The output of the 500 kHz INTOSC and 16 MHz
internal.                                                INTOSC, with Phase Locked Loop enabled, connect to
                                                         a postscaler and multiplexer (see Figure 7-1). The
Internal clock source (INTOSC) is contained            Internal Oscillator Frequency Select bits (IRCF) of the
   within the oscillator module and derived from a       OSCCON register select the frequency output of the
   500 kHz high precision oscillator. The oscillator     internal oscillator. Depending upon the PLLEN bit, one
   module has eight selectable output frequencies,       of four frequencies of two frequency sets can be
   with a maximum internal frequency of 16 MHz.          selected via software:

External clock modes rely on external circuitry for    If PLLEN = 1, frequency selection is as follows:
   the clock source. Examples are: oscillator mod-
   ules (EC mode), quartz crystal resonators or          16 MHz
   ceramic resonators (LP, XT and HS modes) and          8 MHz (Default after Reset)
   Resistor-Capacitor (RC) mode circuits.                4 MHz
                                                          2 MHz
The system clock can be selected between external or
internal clock sources via the FOSC bits of the          If PLLEN = 0, frequency selection is as follows:
Configuration Word 1.
                                                          500 kHz
7.3 Internal Clock Modes                                  250 kHz (Default after Reset)
                                                          125 kHz
The oscillator module has eight output frequencies       62.5 kHz
derived from a 500 kHz high precision oscillator. The
IRCF bits of the OSCCON register select the              Note:       Following any Reset, the IRCF<1:0> bits of
postscaler applied to the clock source dividing the                  the OSCCON register are set to `10' and
frequency by 1, 2, 4 or 8. Setting the PLLEN bit of the              the frequency selection is set to 8 MHz or
Configuration Word 1 locks the internal clock source to              250 kHz. The user can modify the IRCF
16 MHz before the postscaler is selected by the IRCF                 bits to select a different frequency.
bits. The PLLEN bit must be set or cleared at the time
of programming; therefore, only the upper or low four    There is no start-up delay before a new frequency
clock source frequencies are selectable in software.     selected in the IRCF bits takes effect. This is because
                                                         the old and new frequencies are derived from INTOSC
7.3.1 INTOSC AND INTOSCIO MODES                          via the postscaler and multiplexer.

The INTOSC and INTOSCIO modes configure the              Start-up delay specifications are located in the
internal oscillators as the system clock source when
the device is programmed using the oscillator selection  Table 23-2  in    Section 23.0   "Electrical
or the FOSC<2:0> bits in the CONFIG1 register. See
Section 8.0 "Device Configuration" for more              Specifications".
information.

In INTOSC mode, OSC1/CLKIN is available for general
purpose I/O. OSC2/CLKOUT outputs the selected
internal oscillator frequency divided by 4. The CLKOUT
signal may be used to provide a clock for external
circuitry, synchronization, calibration, test or other
application requirements.

In INTOSCIO mode, OSC1/CLKIN and
OSC2/CLKOUT are available for general purpose I/O.

DS41341E-page 90                                                            2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

7.4 Oscillator Control

The Oscillator Control (OSCCON) register (Figure 7-1)
displays the status and allows frequency selection of the
internal oscillator (INTOSC) system clock. The
OSCCON register contains the following bits:

Frequency selection bits (IRCF)
Status Locked bits (ICSL)
Status Stable bits (ICSS)

REGISTER 7-1: OSCCON: OSCILLATOR CONTROL REGISTER

      U-0          U-0            R/W-1             R/W-0  R-q                   R-q   U-0                 U-0
       --                                                                                                  --
bit 7              --             IRCF1             IRCF0  ICSL                  ICSS  --
                                                                                                                bit 0

Legend:

R = Readable bit                  W = Writable bit         U = Unimplemented bit, read as `0'

-n = Value at POR                 `1' = Bit is set         `0' = Bit is cleared        x = Bit is unknown

q = Value depends on condition

bit 7-6    Unimplemented: Read as `0'
bit 5-4
           IRCF<1:0>: Internal Oscillator Frequency Select bits
bit 3
bit 2      When PLLEN = 1 (16 MHz INTOSC)
bit 1-0    11 = 16 MHz
           10 = 8 MHz (POR value)
           01 = 4 MHz
           00 = 2 MHz
           When PLLEN = 0 (500 kHz INTOSC)
           11 = 500 kHz
           10 = 250 kHz (POR value)
           01 = 125 kHz
           00 = 62.5 kHz

           ICSL: Internal Clock Oscillator Status Locked bit (2% Stable)

           1 = 16 MHz/500 kHz Internal Oscillator (HFIOSC) is in lock.
           0 = 16 MHz/500 kHz Internal Oscillator (HFIOSC) has not yet locked.

           ICSS: Internal Clock Oscillator Status Stable bit (0.5% Stable)

           1 = 16 MHz/500 kHz Internal Oscillator (HFIOSC) has stabilized to its maximum accuracy
           0 = 16 MHz/500 kHz Internal Oscillator (HFIOSC) has not yet reached its maximum accuracy

           Unimplemented: Read as `0'

2009 Microchip Technology Inc.                                                               DS41341E-page 91
PIC16F72X/PIC16LF72X

7.5 Oscillator Tuning                                  When the OSCTUNE register is modified, the INTOSC
                                                       frequency will begin shifting to the new frequency. Code
The INTOSC is factory calibrated but can be adjusted   execution continues during this shift. There is no
in software by writing to the OSCTUNE register         indication that the shift has occurred.
(Register 7-2).

The default value of the OSCTUNE register is `0'. The
value is a 6-bit two's complement number.

REGISTER 7-2: OSCTUNE: OSCILLATOR TUNING REGISTER

      U-0          U-0  R/W-0             R/W-0        R/W-0  R/W-0                     R/W-0  R/W-0
       --                                                                               TUN1   TUN0
bit 7              --   TUN5              TUN4         TUN3                  TUN2
                                                                                                      bit 0

Legend:                 W = Writable bit               U = Unimplemented bit, read as `0'
R = Readable bit        `1' = Bit is set
-n = Value at POR                                      `0' = Bit is cleared        x = Bit is unknown

bit 7-6    Unimplemented: Read as `0'
bit 5-0
           TUN<5:0>: Frequency Tuning bits
           01 1111 = Maximum frequency
           01 1110 =
           
           
           
           00 0001 =
           00 0000 = Oscillator module is running at the factory-calibrated frequency.
           11 1111 =
           
           
           
           10 0000 = Minimum frequency

DS41341E-page 92                                                                   2009 Microchip Technology Inc.
                                                               PIC16F72X/PIC16LF72X

7.6 External Clock Modes                                       XT Oscillator mode selects the intermediate gain
                                                               setting of the internal inverter-amplifier. XT mode
7.6.1 OSCILLATOR START-UP TIMER                                current consumption is the medium of the three modes.
              (OST)                                            This mode is best suited to drive resonators with a
                                                               medium drive level specification.
If the oscillator module is configured for LP, XT or HS
modes, the Oscillator Start-up Timer (OST) counts              HS Oscillator mode selects the highest gain setting of the
1024 oscillations on the OSC1 pin before the device is         internal inverter-amplifier. HS mode current consumption
released from Reset. This occurs following a Power-on          is the highest of the three modes. This mode is best
Reset (POR) and when the Power-up Timer (PWRT)                 suited for resonators that require a high drive setting.
has expired (if configured), or a wake-up from Sleep.
During this time, the program counter does not                 Figure 7-3 and Figure 7-4 show typical circuits for
increment and program execution is suspended. The              quartz crystal and ceramic resonators, respectively.
OST ensures that the oscillator circuit, using a quartz
crystal resonator or ceramic resonator, has started and        FIGURE 7-3:          QUARTZ CRYSTAL
is providing a stable system clock to the oscillator                                OPERATION (LP, XT OR
module.                                                                             HS MODE)

7.6.2 EC MODE                                                                       PIC MCU

The External Clock (EC) mode allows an externally              C1                   OSC1/CLKIN   To Internal
generated logic level as the system clock source. When                                   RF(2)   Logic
operating in this mode, an external clock source is                        Quartz
connected to the OSC1 input and the OSC2 is available                      Crystal               Sleep
for general purpose I/O. Figure 7-2 shows the pin
connections for EC mode.                                       C2           RS(1)   OSC2/CLKOUT

The Oscillator Start-up Timer (OST) is disabled when           Note 1: A series resistor (RS) may be required for
EC mode is selected. Therefore, there is no delay in                         quartz crystals with low drive level.
operation after a Power-on Reset (POR) or wake-up
from Sleep. Because the PIC MCU design is fully                       2: The value of RF varies with the Oscillator mode
static, stopping the external clock input will have the                      selected.
effect of halting the device while leaving all data intact.
Upon restarting the external clock, the device will
resume operation as if no time had elapsed.

FIGURE 7-2:               EXTERNAL CLOCK (EC)                  Note 1: Quartz crystal characteristics vary according
                          MODE OPERATION                                   to type, package and manufacturer. The
                                                                           user should consult the manufacturer data
Clock from                OSC1/CLKIN                                       sheets for specifications and recommended
Ext. System                         PIC MCU                               application.

                     I/O  OSC2/CLKOUT(1)                              2: Always verify oscillator performance over
                                                                           the VDD and temperature range that is
  Note 1: Alternate pin functions are described in                         expected for the application.
                   Section 6.1 "Alternate Pin Function".
                                                                      3: For oscillator design assistance, reference
7.6.3 LP, XT, HS MODES                                                     the following Microchip Applications Notes:

The LP, XT and HS modes support the use of quartz                           AN826, "Crystal Oscillator Basics and
crystal resonators or ceramic resonators connected to                       Crystal Selection for rfPIC and PIC
OSC1 and OSC2 (Figure 7-3). The mode selects a low,                         Devices" (DS00826)
medium or high gain setting of the internal
inverter-amplifier to support various resonator types                      AN849, "Basic PIC Oscillator Design"
and speed.                                                                  (DS00849)

LP Oscillator mode selects the lowest gain setting of the                   AN943, "Practical PIC Oscillator
internal inverter-amplifier. LP mode current consumption                    Analysis and Design" (DS00943)
is the least of the three modes. This mode is best suited
to drive resonators with a low drive level specification, for               AN949, "Making Your Oscillator Work"
example, tuning fork type crystals.                                         (DS00949)

2009 Microchip Technology Inc.                                                                DS41341E-page 93
PIC16F72X/PIC16LF72X

FIGURE 7-4:              CERAMIC RESONATOR                          FIGURE 7-5:         EXTERNAL RC MODES
                         OPERATION
                         (XT OR HS MODE)                                  VDD                  PIC MCU
                                                                    REXT
                                       PIC MCU
                                                                    CEXT
                                                                     VSS                OSC1/CLKIN        Internal
                                                                                                           Clock
                         OSC1/CLKIN                                       FOSC/4 or
                                                                          I/O(2)
C1                                            To Internal

                                              Logic

                  RP(3)         RF(2)         Sleep                                     OSC2/CLKOUT(1)

C2 Ceramic RS(1)         OSC2/CLKOUT                                Recommended values: 10 k  REXT  100 k, <3V
      Resonator                                                                                     3 k  REXT  100 k, 3-5V
                                                                                                    CEXT > 20 pF, 2-5V
Note 1: A series resistor (RS) may be required for
              ceramic resonators with low drive level.              Note 1:      Alternate pin functions are described in
                                                                             2:  Section 6.1 "Alternate Pin Function".
         2: The value of RF varies with the Oscillator mode                      Output depends upon RC or RCIO clock mode.
              selected.
                                                                    In RCIO mode, the RC circuit is connected to OSC1.
         3: An additional parallel feedback resistor (RP)           OSC2 becomes an additional general purpose I/O pin.
              may be required for proper ceramic resonator
              operation.                                            The RC oscillator frequency is a function of the supply
                                                                    voltage, the resistor (REXT) and capacitor (CEXT) values
7.6.4 EXTERNAL RC MODES                                             and the operating temperature. Other factors affecting
                                                                    the oscillator frequency are:
The external Resistor-Capacitor (RC) modes support
the use of an external RC circuit. This allows the                   threshold voltage variation
designer maximum flexibility in frequency choice while               component tolerances
keeping costs to a minimum when clock accuracy is not                packaging variations in capacitance
required. There are two modes: RC and RCIO.
                                                                    The user also needs to take into account variation due
In RC mode, the RC circuit connects to OSC1.                        to tolerance of external RC components used.
OSC2/CLKOUT outputs the RC oscillator frequency
divided by 4. This signal may be used to provide a clock
for external circuitry, synchronization, calibration, test
or other application requirements. Figure 7-5 shows
the external RC mode connections.

TABLE 7-1: SUMMARY OF REGISTERS ASSOCIATED WITH CLOCK SOURCES

Name         Bit 7       Bit 6         Bit 5     Bit 4       Bit 3  Bit 2        Bit 1  Bit 0   Value on  Value on
                                                                                               POR, BOR
                                                                                                          all other
                                                                                                          Resets(1)

CONFIG1(1)   --          CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0                                      --    --

OSCCON       --          --     IRCF1 IRCF0 ICSL                    ICSS         --     --     --10 qq-- --10 qq--

OSCTUNE      --          --            TUN5 TUN4 TUN3 TUN2 TUN1 TUN0 --00 0000 --uu uuuu

Legend: x = unknown, u = unchanged, = unimplemented locations read as `0'. Shaded cells are not used by oscillators.
Note 1: See Configuration Word 1 (Register 8-1) for operation of all bits.

DS41341E-page 94                                                                            2009 Microchip Technology Inc.
                                                        PIC16F72X/PIC16LF72X

8.0 DEVICE CONFIGURATION                                8.1 Configuration Words

Device Configuration consists of Configuration Word 1   There are several Configuration Word bits that allow
and Configuration Word 2 registers, Code Protection     different oscillator and memory protection options.
and Device ID.                                          These are implemented as Configuration Word 1
                                                        register at 2007h and Configuration Word 2 register at
                                                        2008h. These registers are only accessible during
                                                        programming.

REGISTER 8-1:      CONFIG1: CONFIGURATION WORD REGISTER 1

          --                      R/P-1   R/P-1         U-1(4)                R/P-1                     R/P-1    R/P-1
bit 15                                                                                               BOREN1   BOREN0
                   --             DEBUG   PLLEN         --                    BORV
                                                                                                                         bit 8

      U-1(4)       R/P-1           R/P-1   R/P-1        R/P-1                  R/P-1                   R/P-1    R/P-1
         --         CP            MCLRE   PWRTE         WDTE                  FOSC2                   FOSC1    FOSC0

bit 7                                                                                                                   bit 0

Legend:                           P = Programmable bit  U = Unimplemented bit, read as `0'
R = Readable bit                  W = Writable bit
-n = Value at POR                 `1' = Bit is set      `0' = Bit is cleared          x = Bit is unknown

bit 13        DEBUG: In-Circuit Debugger Mode bit
bit 12        1 = In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins
bit 11        0 = In-Circuit Debugger enabled, RB6/ICSPCLK and RB7/ICSPDAT are dedicated to the debugger
bit 10
bit 9-8       PLLEN: INTOSC PLL Enable bit
              0 = INTOSC Frequency is 500 kHz
bit 7         1 = INTOSC Frequency is 16 MHz (32x)
bit 6
bit 5         Unimplemented: Read as `1'
bit 4
bit 3         BORV: Brown-out Reset Voltage selection bit
              0 = Brown-out Reset Voltage (VBOR) set to 2.5 V nominal
              1 = Brown-out Reset Voltage (VBOR) set to 1.9 V nominal
              BOREN<1:0>: Brown-out Reset Selection bits(1)
              0x = BOR disabled (Preconditioned State)
              10 = BOR enabled during operation and disabled in Sleep
              11 = BOR enabled

              Unimplemented: Read as `1'
              CP: Code Protection bit(2)
              1 = Program memory code protection is disabled
              0 = Program memory code protection is enabled
              MCLRE: RE3/MCLR pin function select bit(3)
              1 = RE3/MCLR pin function is MCLR
              0 = RE3/MCLR pin function is digital input, MCLR internally tied to VDD

              PWRTE: Power-up Timer Enable bit
              1 = PWRT disabled
              0 = PWRT enabled

              WDTE: Watchdog Timer Enable bit
              1 = WDT enabled
              0 = WDT disabled

Note 1:       Enabling Brown-out Reset does not automatically enable Power-up Timer.
         2:   The entire program memory will be erased when the code protection is turned off.
         3:   When MCLR is asserted in INTOSC or RC mode, the internal clock oscillator is disabled.
         4:   MPLAB IDE masks unimplemented Configuration bits to `0'.

2009 Microchip Technology Inc.                                                                              DS41341E-page 95
PIC16F72X/PIC16LF72X

REGISTER 8-1: CONFIG1: CONFIGURATION WORD REGISTER 1 (CONTINUED)

bit 2-0      FOSC<2:0>: Oscillator Selection bits
             111 = RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN
             110 = RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN
             101 = INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
             100 = INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
             011 = EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN
             010 = HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN
             001 = XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN
             000 = LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN

Note 1:      Enabling Brown-out Reset does not automatically enable Power-up Timer.
         2:  The entire program memory will be erased when the code protection is turned off.
         3:
         4:  When MCLR is asserted in INTOSC or RC mode, the internal clock oscillator is disabled.
             MPLAB IDE masks unimplemented Configuration bits to `0'.

REGISTER 8-2:      CONFIG2: CONFIGURATION WORD REGISTER 2

         --                U-1(1)  U-1(1)        U-1(1)                    U-1(1)                    U-1(1)  U-1(1)
bit 15                                                                                                --      --
                   --      --      --            --                        --                                      bit 8
                                                                                                     U-1(1)
     U-1(1)        U-1(1)  R/P-1   R/P-1         U-1(1)                    U-1(1)                      --    U-1(1)
        --           --                            --                        --                                --
                           VCAPEN1 VCAPEN0                                                                         bit 0
bit 7

Legend:                    P = Programmable bit  U = Unimplemented bit, read as `0'
R = Readable bit           W = Writable bit
-n = Value at POR          `1' = Bit is set      `0' = Bit is cleared              x = Bit is unknown

bit 13-6     Unimplemented: Read as `1'
bit 5-4
             VCAPEN<1:0>: Voltage Regulator Capacitor Enable bits
bit 3-0      For the PIC16LF72X:
             These bits are ignored. All VCAP pin functions are disabled.
             For the PIC16F72X:
             00 = VCAP functionality is enabled on RA0
             01 = VCAP functionality is enabled on RA5
             10 = VCAP functionality is enabled on RA6
             11 = All VCAP functions are disabled (not recommended)

             Unimplemented: Read as `1'

Note 1: MPLAB IDE masks unimplemented Configuration bits to `0'.

DS41341E-page 96                                                                   2009 Microchip Technology Inc.
                                                        PIC16F72X/PIC16LF72X

8.2 Code Protection

If the code protection bit(s) have not been
programmed, the on-chip program memory can be
read out using ICSPTM for verification purposes.

Note:  The entire Flash program memory will be
       erased when the code protection is turned
       off. See the "PIC16F72X/PIC16LF72X
       Memory Programming Specification"
       (DS41332) for more information.

8.3 User ID

Four memory locations (2000h-2003h) are designated
as ID locations where the user can store checksum or
other code identification numbers. These locations are
not accessible during normal execution, but are read-
able and writable during Program/Verify mode. Only
the Least Significant 7 bits of the ID locations are
reported when using MPLAB IDE. See the
"PIC16F72X/PIC16LF72X Memory Programming
Specification" (DS41332) for more information.

2009 Microchip Technology Inc.                        DS41341E-page 97
PIC16F72X/PIC16LF72X

NOTES:

DS41341E-page 98       2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

9.0 ANALOG-TO-DIGITAL
         CONVERTER (ADC) MODULE

The Analog-to-Digital Converter (ADC) allows
conversion of an analog input signal to a 8-bit binary
representation of that signal. This device uses analog
inputs, which are multiplexed into a single sample and
hold circuit. The output of the sample and hold is
connected to the input of the converter. The converter
generates a 8-bit binary result via successive
approximation and stores the conversion result into the
ADC result register (ADRES). Figure 9-1 shows the
block diagram of the ADC.

The ADC voltage reference is software selectable to be
either internally generated or externally supplied.

The ADC can generate an interrupt upon completion of
a conversion. This interrupt can be used to wake-up the
device from Sleep.

FIGURE 9-1:  ADC BLOCK DIAGRAM

                                         AVDD
                                                ADREF = 0x

                                  VREF+  ADREF = 11
                                            ADREF = 10

                    AN0            0000                     ADC
                    AN1            0001
                    AN2            0010  GO/DONE                                8
                    AN3            0011                                 ADRES
                    AN4            0100
                    AN5            0101                  ADON
                    AN6            0110                            VSS
                    AN7            0111
                    AN8            1000
                    AN9            1001
                  AN10             1010
                  AN11             1011
                  AN12             1100
                  AN13             1101
             Reserved              1110
                 FVREF             1111

                         CHS<3:0>

2009 Microchip Technology Inc.                                                   DS41341E-page 99
PIC16F72X/PIC16LF72X

9.1 ADC Configuration                                     For correct conversion, the appropriate TAD specifica-
                                                          tion must be met. Refer to the A/D conversion require-
When configuring and using the ADC the following          ments in Section 23.0 "Electrical Specifications" for
functions must be considered:                             more information. Table 9-1 gives examples of appro-
                                                          priate ADC clock selections.
Port configuration
Channel selection                                       Note:  Unless using the FRC, any changes in the
ADC voltage reference selection                                system clock frequency will change the
ADC conversion clock source                                    ADC clock frequency, which may
Interrupt control                                              adversely affect the ADC result.
Results formatting

9.1.1 PORT CONFIGURATION

The ADC can be used to convert both analog and
digital signals. When converting analog signals, the I/O
pin should be configured for analog by setting the
associated TRIS and ANSEL bits. Refer to Section 6.0
"I/O Ports" for more information.

Note:  Analog voltages on any pin that is defined
       as a digital input may cause the input
       buffer to conduct excess current.

9.1.2 CHANNEL SELECTION

The CHS bits of the ADCON0 register determine which
channel is connected to the sample and hold circuit.

When changing channels, a delay is required before
starting the next conversion. Refer to Section 9.2
"ADC Operation" for more information.

9.1.3 ADC VOLTAGE REFERENCE

The ADREF bits of the ADCON1 register provides
control of the positive voltage reference. The positive
voltage reference can be either VDD, an external
voltage source or the internal Fixed Voltage Reference.
The negative voltage reference is always connected to
the ground reference. See Section 10.0 "Fixed
Voltage Reference" for more details on the Fixed
Voltage Reference.

9.1.4  CONVERSION CLOCK

The source of the conversion clock is software select-
able via the ADCS bits of the ADCON1 register. There
are seven possible clock options:

FOSC/2
FOSC/4
FOSC/8
FOSC/16
FOSC/32
FOSC/64
FRC (dedicated internal oscillator)

The time to complete one bit conversion is defined as
TAD. One full 8-bit conversion requires 10 TAD periods
as shown in Figure 9-2.

DS41341E-page 100                                                 2009 Microchip Technology Inc.
                                                   PIC16F72X/PIC16LF72X

TABLE 9-1: ADC CLOCK PERIOD (TAD) VS. DEVICE OPERATING FREQUENCIES

ADC Clock Period (TAD)                                 Device Frequency (FOSC)

      ADC     ADCS<2:0>               20 MHz       16 MHz         8 MHz               4 MHz            1 MHz
Clock Source

Fosc/2                      000       100 ns(2)    125 ns(2)      250 ns(2)           500 ns(2)        2.0 s
Fosc/4
Fosc/8                      100       200 ns(2)    250 ns(2)      500 ns(2)           1.0 s            4.0 s
Fosc/16
Fosc/32                     001       400 ns(2)    0.5 s(2)       1.0 s               2.0 s            8.0 s(3)
Fosc/64
                            101       800 ns           1.0 s      2.0 s               4.0 s            16.0 s(3)
  FRC
                            010       1.6 s            2.0 s      4.0 s               8.0 s(3)         32.0 s(3)

                            110       3.2 s            4.0 s      8.0 s(3)            16.0 s(3)        64.0 s(3)

                            x11   1.0-6.0 s(1,4) 1.0-6.0 s(1,4) 1.0-6.0 s(1,4) 1.0-6.0 s(1,4) 1.0-6.0 s(1,4)

Legend:     Shaded cells are outside of recommended range.
Note 1:     The FRC source has a typical TAD time of 1.6 s for VDD.
            These values violate the minimum required TAD time.
        2:  For faster conversion times, the selection of another clock source is recommended.
        3:  When the device frequency is greater than 1 MHz, the FRC clock source is only recommended if the
        4:  conversion will be performed during Sleep.

FIGURE 9-2:                 ANALOG-TO-DIGITAL CONVERSION TAD CYCLES

            Tcy to TAD      TAD1 TAD2 TAD3 TAD4        TAD5 TAD6 TAD7                 TAD8       TAD9
                      TAD0

                                  b7           b6  b5         b4  b3         b2       b1         b0

                            Conversion Starts

              Holding Capacitor is Disconnected from Analog Input (typically 100 ns)

            Set GO/DONE bit                            ADRES register is loaded,
                                                       GO/DONE bit is cleared,
                                                       ADIF bit is set,
                                                       Holding capacitor is connected to analog input

2009 Microchip Technology Inc.                                                                 DS41341E-page 101
PIC16F72X/PIC16LF72X

9.1.5  INTERRUPTS                                            9.2.3 TERMINATING A CONVERSION

The ADC module allows for the ability to generate an         If a conversion must be terminated before completion,
interrupt upon completion of an Analog-to-Digital            the GO/DONE bit can be cleared in software. The
conversion. The ADC interrupt flag is the ADIF bit in the    ADRES register will be updated with the partially com-
PIR1 register. The ADC interrupt enable is the ADIE bit      plete Analog-to-Digital conversion sample. Incomplete
in the PIE1 register. The ADIF bit must be cleared in        bits will match the last bit converted.
software.
                                                             Note:  A device Reset forces all registers to their
                                                                    Reset state. Thus, the ADC module is
Note 1: The ADIF bit is set at the completion of                    turned off and any pending conversion is
            every conversion, regardless of whether                 terminated.
            or not the ADC interrupt is enabled.

       2: The ADC operates during Sleep only                 9.2.4 ADC OPERATION DURING SLEEP
            when the FRC oscillator is selected.
                                                             The ADC module can operate during Sleep. This
This interrupt can be generated while the device is          requires the ADC clock source to be set to the FRC
operating or while in Sleep. If the device is in Sleep, the  option. When the FRC clock source is selected, the
interrupt will wake-up the device. Upon waking from          ADC waits one additional instruction before starting the
Sleep, the next instruction following the SLEEP instruc-     conversion. This allows the SLEEP instruction to be
tion is always executed. If the user is attempting to        executed, which can reduce system noise during the
wake-up from Sleep and resume in-line code execu-            conversion. If the ADC interrupt is enabled, the device
tion, the GIE and PEIE bits of the INTCON register           will wake-up from Sleep when the conversion
must be disabled. If the GIE and PEIE bits of the INT-       completes. If the ADC interrupt is disabled, the ADC
CON register are enabled, execution will switch to the       module is turned off after the conversion completes,
Interrupt Service Routine.                                   although the ADON bit remains set.

Please refer to Section 9.1.5 "Interrupts" for more          When the ADC clock source is something other than
information.                                                 FRC, a SLEEP instruction causes the present conver-
                                                             sion to be aborted and the ADC module is turned off,
9.2 ADC Operation                                            although the ADON bit remains set.

9.2.1 STARTING A CONVERSION                                  9.2.5 SPECIAL EVENT TRIGGER

To enable the ADC module, the ADON bit of the                The Special Event Trigger of the CCP module allows
ADCON0 register must be set to a `1'. Setting the GO/        periodic ADC measurements without software inter-
DONE bit of the ADCON0 register to a `1' will start the      vention. When this trigger occurs, the GO/DONE bit is
Analog-to-Digital conversion.                                set by hardware and the Timer1 counter resets to zero.

Note:  The GO/DONE bit should not be set in the              Using the Special Event Trigger does not assure proper
       same instruction that turns on the ADC.               ADC timing. It is the user's responsibility to ensure that
       Refer to Section 9.2.6 "A/D Conversion                the ADC timing requirements are met.
       Procedure".
                                                             Refer to Section 15.0 "Capture/Compare/PWM
9.2.2 COMPLETION OF A CONVERSION                             (CCP) Module" for more information.

When the conversion is complete, the ADC module will:

Clear the GO/DONE bit
Set the ADIF Interrupt Flag bit
Update the ADRES register with new conversion

   result

DS41341E-page 102                                                    2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

9.2.6 A/D CONVERSION PROCEDURE                            EXAMPLE 9-1: A/D CONVERSION

This is an example procedure for using the ADC to         ;This code block configures the ADC
perform an Analog-to-Digital conversion:
                                                          ;for polling, Vdd reference, Frc clock
1. Configure Port:
       Disable pin output driver (Refer to the TRIS      ;and AN0 input.
         register)
       Configure pin as analog (Refer to the ANSEL       ;
         register)
                                                          ;Conversion start & polling for completion
2. Configure the ADC module:
       Select ADC conversion clock                       ; are included.
       Configure voltage reference
       Select ADC input channel                          ;
       Turn on ADC module
                                                          BANKSEL ADCON1   ;
3. Configure ADC interrupt (optional):
       Clear ADC interrupt flag                          MOVLW  B'01110000' ;ADC Frc clock,
       Enable ADC interrupt
       Enable peripheral interrupt                                        ;VDD reference
       Enable global interrupt(1)
                                                          MOVWF  ADCON1    ;
4. Wait the required acquisition time(2).
5. Start conversion by setting the GO/DONE bit.           BANKSEL TRISA    ;
6. Wait for ADC conversion to complete by one of
                                                          BSF    TRISA,0 ;Set RA0 to input
      the following:
       Polling the GO/DONE bit                           BANKSEL ANSELA   ;
       Waiting for the ADC interrupt (interrupts
                                                          BSF    ANSELA,0 ;Set RA0 to analog
         enabled)
7. Read ADC Result.                                       BANKSEL ADCON0   ;
8. Clear the ADC interrupt flag (required if interrupt
                                                          MOVLW  B'00000001';AN0, On
      is enabled).
                                                          MOVWF  ADCON0    ;
    Note 1: The global interrupt can be disabled if the
                user is attempting to wake-up from Sleep  CALL   SampleTime ;Acquisiton delay
                and resume in-line code execution.
                                                          BSF    ADCON0,GO ;Start conversion
           2: Refer to Section 9.3 "A/D Acquisition
                Requirements".                            BTFSC  ADCON0,GO ;Is conversion done?

                                                          GOTO   $-1       ;No, test again

                                                          BANKSEL ADRES    ;

                                                          MOVF   ADRES,W ;Read result

                                                          MOVWF  RESULT    ;store in GPR space

2009 Microchip Technology Inc.                                              DS41341E-page 103
PIC16F72X/PIC16LF72X

9.2.7 ADC REGISTER DEFINITIONS

The following registers are used to control the
operation of the ADC.

REGISTER 9-1: ADCON0: A/D CONTROL REGISTER 0

      U-0          U-0  R/W-0             R/W-0  R/W-0  R/W-0             R/W-0                       R/W-0
       --                                               CHS0           GO/DONE                        ADON
bit 7              --   CHS3              CHS2   CHS1
                                                                                                             bit 0

Legend:                 W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit        `1' = Bit is set
-n = Value at POR                                `0' = Bit is cleared  x = Bit is unknown

bit 7-6    Unimplemented: Read as `0'
bit 5-2
           CHS<3:0>: Analog Channel Select bits
bit 1
bit 0      0000 = AN0
           0001 = AN1
           0010 = AN2
           0011 = AN3
           0100 = AN4
           0101 = AN5
           0110 = AN6
           0111 = AN7
           1000 = AN8
           1001 = AN9
           1010 = AN10
           1011 = AN11
           1100 = AN12
           1101 = AN13
           1110 = Reserved
           1111 = Fixed Voltage Reference (FVREF)

           GO/DONE: A/D Conversion Status bit

           1 = A/D conversion cycle in progress. Setting this bit starts an A/D conversion cycle.
                This bit is automatically cleared by hardware when the A/D conversion has completed.

           0 = A/D conversion completed/not in progress

           ADON: ADC Enable bit
           1 = ADC is enabled
           0 = ADC is disabled and consumes no operating current

DS41341E-page 104                                                       2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

REGISTER 9-2: ADCON1: A/D CONTROL REGISTER 1

       U-0         R/W-0          R/W-0             R/W-0  U-0                   U-0  R/W-0    R/W-0

       --          ADCS2          ADCS1             ADCS0  --                    --   ADREF1   ADREF0

bit 7                                                                                                     bit 0

Legend:                           W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                          `0' = Bit is cleared       x = Bit is unknown

bit 7       Unimplemented: Read as `0'
bit 6-4
            ADCS<2:0>: A/D Conversion Clock Select bits
bit 3-2
bit 1-0     000 = FOSC/2
            001 = FOSC/8
            010 = FOSC/32
            011 = FRC (clock supplied from a dedicated RC oscillator)
            100 = FOSC/4
            101 = FOSC/16
            110 = FOSC/64
            111 = FRC (clock supplied from a dedicated RC oscillator)

            Unimplemented: Read as `0'

            ADREF<1:0>: Voltage Reference Configuration bits

            0x = VREF is connected to VDD
            10 = VREF is connected to external VREF (RA3/AN3)
            11 = VREF is connected to internal Fixed Voltage Reference

REGISTER 9-3: ADRES: ADC RESULT REGISTER

R/W-x              R/W-x          R/W-x             R/W-x  R/W-x         R/W-x         R/W-x    R/W-x
                                                                        ADRES2        ADRES1   ADRES0
ADRES7      ADRES6 ADRES5 ADRES4 ADRES3
                                                                                                       bit 0
bit 7

Legend:                           W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                          `0' = Bit is cleared       x = Bit is unknown

bit 7-0     ADRES<7:0>: ADC Result Register bits
            8-bit conversion result.

2009 Microchip Technology Inc.                                                               DS41341E-page 105
PIC16F72X/PIC16LF72X

9.3 A/D Acquisition Requirements                                                    impedance is decreased, the acquisition time may be
                                                                                    decreased. After the analog input channel is selected
For the ADC to meet its specified accuracy, the charge                              (or changed), an A/D acquisition must be done before
holding capacitor (CHOLD) must be allowed to fully                                  the conversion can be started. To calculate the mini-
charge to the input channel voltage level. The Analog                               mum acquisition time, Equation 9-1 may be used. This
Input model is shown in Figure 9-3. The source imped-                               equation assumes that 1/2 LSb error is used (256 steps
ance (RS) and the internal sampling switch (RSS)                                    for the ADC). The 1/2 LSb error is the maximum error
impedance directly affect the time required to charge                               allowed for the ADC to meet its specified resolution.
the capacitor CHOLD. The sampling switch (RSS)
impedance varies over the device voltage (VDD), refer
to Figure 9-3. The maximum recommended imped-
ance for analog sources is 10 k. As the source

EQUATION 9-1: ACQUISITION TIME EXAMPLE

Assumptions: Temperature = 50C and external impedance of 10k 5.0V VDD

      TACQ = Amplifier Settling Time + Hold Capacitor Charging Time + Temperature Coefficient
              = TAMP + TC + TCOFF
              = 2s + TC + [(Temperature - 25C)(0.05s/C)]

The value for TC can be approximated with the following equations:

VAPPLI  ED           1    (---2---n----+--1--1--)--------1--  =     VCHOLD                                             ;[1] VCHOLD charged to within 1/2 lsb
                                                                                                                         ;[2] VCHOLD charge response to VAPPLIED

VAPP  LIED                e-R---T--C-C--  =  VCHOLD
                   1
                           

VAPPLI               1    e-R---T-C--c-   =  VA  PP           L  I  E  D    1    (---2---n----+--1--1--)--------1--  ;combining [1] and [2]
        ED                                                                  
                           

Note: Where n = number of bits of the ADC.

Solving for TC:

             TC = CHOLD(RIC + RSS + RS) ln(1/511)
                 = 10pF(1k + 7k + 10k) ln(0.001957)
                 = 1.12s

Therefore:
           TACQ = 2S + 1.12S + [(50C- 25C)(0.05S/C)]
                    = 4.42S

Note 1: The reference voltage (VREF) has no effect on the equation, since it cancels itself out.

       2: The charge holding capacitor (CHOLD) is not discharged after each conversion.
       3: The maximum recommended impedance for analog sources is 10 k. This is required to meet the pin

            leakage specification.

DS41341E-page 106                                                                                                         2009 Microchip Technology Inc.
                                                                     PIC16F72X/PIC16LF72X

FIGURE 9-3:        ANALOG INPUT MODEL

                                    Rs ANx               VDD                   RIC  1k       Sampling
                                                              VT  0.6V                       Switch
                                                                                             SS Rss

                   VA               CPIN                       VT  0.6V        I LEAKAGE(1)            CHOLD = 10 pF
                                                                                                       VSS/VREF-
                                    5 pF

                                                                                             6V
                                                                                             5V        RSS
                                                                                             VDD 4V
Legend: CHOLD                       = Sample/Hold Capacitance
             CPIN                   = Input Capacitance                                      3V

                                                                                             2V

I LEAKAGE = Leakage current at the pin due to                                                          5 6 7 8 9 10 11
                 various junctions                                                                     Sampling Switch

RIC                                 = Interconnect Resistance                                                (k)

RSS                                 = Resistance of Sampling Switch

SS                                  = Sampling Switch

VT                                  = Threshold Voltage

Note 1: Refer to Section 23.0 "Electrical Specifications".

FIGURE 9-4:        ADC TRANSFER FUNCTION

                   ADC Output Code        FFh                Full-Scale Range             1 LSB ideal
                                          FEh                                            Full-Scale
                                          FDh          1 LSB ideal                       Transition
                                          FCh          Zero-Scale
                                          FBh          Transition                          Analog Input Voltage
                                                                               VREF
                                           04h
                                           03h
                                           02h
                                           01h
                                           00h

                                    VSS

2009 Microchip Technology Inc.                                                                                 DS41341E-page 107
PIC16F72X/PIC16LF72X

TABLE 9-2: SUMMARY OF ASSOCIATED ADC REGISTERS

Name     Bit 7     Bit 6  Bit 5  Bit 4  Bit 3              Bit 2  Bit 1  Bit 0   Value on  Value on
                                                                                POR, BOR   all other
                                                                                            Resets

ADCON0   --        --     CHS3   CHS2   CHS1               CHS0 GO/DONE ADON --00 0000 --00 0000
ADCON1
ANSELA   --        ADCS2 ADCS1 ADCS0    --                 --     ADREF1 ADREF0 -000 --00 -000 --00
ANSELB
ANSELE   --        --     ANSA5 ANSA4 ANSA3 ANSA2                 ANSA1  ANSA0 --11 1111 --11 1111
ADRES
CCP2CON  --        --     ANSB5 ANSB4 ANSB3 ANSB2                 ANSB1  ANSB0 --11 1111 --11 1111
FVRCON
INTCON   --        --     --     --     --                 ANSE2  ANSE1  ANSE0 ---- -111 ---- -111
PIE1
PIR1                             A/D Result Register Byte                       xxxx xxxx uuuu uuuu
TRISA
TRISB    --        --     DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000
TRISE
Legend:  FVRRDY FVREN     --     --     --                 --     ADFVR1 ADFVR0 q0-- --00 q0-- --00

         GIE       PEIE   T0IE   INTE   RBIE               T0IF   INTF   RBIF   0000 000x 0000 000x

         TMR1GIE ADIE     RCIE   TXIE   SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

         TMR1GIF ADIF     RCIF   TXIF   SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000

         TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111

         TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111

         --        --     --     --     TRISE3 TRISE2 TRISE1 TRISE0 ---- 1111 ---- 1111

         x = unknown, u = unchanged, -- = unimplemented read as `0', q = value depends on condition. Shaded cells are not used for ADC
         module.

DS41341E-page 108                                                         2009 Microchip Technology Inc.
                                                          PIC16F72X/PIC16LF72X

10.0 FIXED VOLTAGE REFERENCE

This device contains an internal voltage regulator. To
provide a reference for the regulator, a band gap refer-
ence is provided. This band gap is also user accessible
via an A/D converter channel.

User level band gap functions are controlled by the
FVRCON register, which is shown in Register 10-1.

REGISTER 10-1: FVRCON: FIXED VOLTAGE REFERENCE REGISTER

       R-q         R/W-0          U-0               U-0       U-0               U-0   R/W-0    R/W-0
                                                                                     ADFVR1   ADFVR0
FVRRDY             FVREN          --                --        --                --
                                                                                                      bit 0
bit 7

Legend:

R = Readable bit                  W = Writable bit        U = Unimplemented bit, read as `0'

-n = Value at POR                 `1' = Bit is set        `0' = Bit is cleared       x = Bit is unknown

q = Value depends on condition

bit 7       FVRRDY(1): Fixed Voltage Reference Ready Flag bit

bit 6       0 = Fixed Voltage Reference output is not active or stable
            1 = Fixed Voltage Reference output is ready for use
bit 5-2     FVREN(2): Fixed Voltage Reference Enable bit
bit 1-0
            0 = Fixed Voltage Reference is disabled
            1 = Fixed Voltage Reference is enabled

            Unimplemented: Read as `0'

            ADFVR<1:0>: A/D Converter Fixed Voltage Reference Selection bits

            00 = A/D Converter Fixed Voltage Reference Peripheral output is off.
            01 = A/D Converter Fixed Voltage Reference Peripheral output is 1x (1.024V)
            10 = A/D Converter Fixed Voltage Reference Peripheral output is 2x (2.048V)(2)
            11 = A/D Converter Fixed Voltage Reference Peripheral output is 4x (4.096V)(2)

Note 1: FVRRDY is always `1' for the PIC16F72X devices.
        2: Fixed Voltage Reference output cannot exceed VDD.

2009 Microchip Technology Inc.                                                              DS41341E-page 109
PIC16F72X/PIC16LF72X

NOTES:

DS41341E-page 110      2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

11.0 TIMER0 MODULE                                                  When TMR0 is written, the increment is inhibited for
                                                                    two instruction cycles immediately following the write.
The Timer0 module is an 8-bit timer/counter with the
following features:                                                 Note:    The value written to the TMR0 register can
8-bit timer/counter register (TMR0)                                        be adjusted, in order to account for the two
8-bit prescaler (shared with Watchdog Timer)                               instruction cycle delay when TMR0 is
Programmable internal or external clock source                             written.
Programmable external clock edge selection
Interrupt on overflow                                             11.1.2 8-BIT COUNTER MODE
TMR0 can be used to gate Timer1
Figure 11-1 is a block diagram of the Timer0 module.                In 8-Bit Counter mode, the Timer0 module will
                                                                    increment on every rising or falling edge of the T0CKI
11.1 Timer0 Operation                                               pin or the Capacitive Sensing Oscillator (CPSOSC)
                                                                    signal.
The Timer0 module can be used as either an 8-bit timer
or an 8-bit counter.                                                8-Bit Counter Mode using the T0CKI pin is selected by
                                                                    setting the T0CS bit in the OPTION register to `1' and
11.1.1 8-BIT TIMER MODE                                             resetting the T0XCS bit in the CPSCON0 register to `0'.
The Timer0 module will increment every instruction
cycle, if used without a prescaler. 8-Bit Timer mode is             8-Bit Counter Mode using the Capacitive Sensing
selected by clearing the T0CS bit of the OPTION                     Oscillator (CPSOSC) signal is selected by setting the
register.                                                           T0CS bit in the OPTION register to `1' and setting the
                                                                    T0XCS bit in the CPSCON0 register to `1'.

                                                                    The rising or falling transition of the incrementing edge
                                                                    for either input source is determined by the T0SE bit in
                                                                    the OPTION register.

FIGURE 11-1:       BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER

FOSC/4

T0CKI       T0XCS                   0                                          1                      Data Bus
               0                                                                            Sync       8
                                    1                                                      2 TCY
Cap. Sensing  1 T0SE                                0                                                   TMR0
                                                                               0                  Set Flag bit T0IF
Oscillator                        T0CS                    8-bit
                                                    1  Prescaler             PSA                     on Overflow
                                                                                                  Overflow to Timer1
                                                 PSA             8
T1GSS = 11
TMR1GE

WDTE

                      Low-Power                                     PS<2:0>  1
                      WDT OSC
                                                                                           WDT
                                       Divide by                                        Time-out
                                           512
                                                                             0

                                                                             PSA

2009 Microchip Technology Inc.                                                                  DS41341E-page 111
PIC16F72X/PIC16LF72X

11.1.3  SOFTWARE PROGRAMMABLE
        PRESCALER

A single software programmable prescaler is available
for use with either Timer0 or the Watchdog Timer
(WDT), but not both simultaneously. The prescaler
assignment is controlled by the PSA bit of the OPTION
register. To assign the prescaler to Timer0, the PSA bit
must be cleared to a `0'.

There are 8 prescaler options for the Timer0 module
ranging from 1:2 to 1:256. The prescale values are
selectable via the PS<2:0> bits of the OPTION register.
In order to have a 1:1 prescaler value for the Timer0
module, the prescaler must be assigned to the WDT
module.

The prescaler is not readable or writable. When
assigned to the Timer0 module, all instructions writing to
the TMR0 register will clear the prescaler.

Note:   When the prescaler is assigned to WDT, a
        CLRWDT instruction will clear the prescaler
        along with the WDT.

11.1.4 TIMER0 INTERRUPT

Timer0 will generate an interrupt when the TMR0
register overflows from FFh to 00h. The T0IF interrupt
flag bit of the INTCON register is set every time the
TMR0 register overflows, regardless of whether or not
the Timer0 interrupt is enabled. The T0IF bit can only
be cleared in software. The Timer0 interrupt enable is
the T0IE bit of the INTCON register.

Note:   The Timer0 interrupt cannot wake the
        processor from Sleep since the timer is
        frozen during Sleep.

11.1.5  8-BIT COUNTER MODE
        SYNCHRONIZATION

When in 8-Bit Counter Mode, the incrementing edge on
the T0CKI pin must be synchronized to the instruction
clock. Synchronization can be accomplished by
sampling the prescaler output on the Q2 and Q4 cycles
of the instruction clock. The high and low periods of the
external clocking source must meet the timing
requirements as shown in Section 23.0 "Electrical
Specifications".

DS41341E-page 112                                           2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

REGISTER 11-1: OPTION_REG: OPTION REGISTER

     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   INTEDG                  T0CS            T0SE            PSA                   PS2           PS1                     PS0
bit 7
                                                                                                                                      bit 0

Legend:                           W = Writable bit                 U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                                  `0' = Bit is cleared                x = Bit is unknown

bit 7       RBPU: PORTB Pull-up Enable bit
bit 6       1 = PORTB pull-ups are disabled
bit 5       0 = PORTB pull-ups are enabled by individual port latch values
bit 4
bit 3       INTEDG: Interrupt Edge Select bit
bit 2-0     1 = Interrupt on rising edge of INT pin
            0 = Interrupt on falling edge of INT pin

            T0CS: TMR0 Clock Source Select bit
            1 = Transition on T0CKI pin or CPSOSC signal
            0 = Internal instruction cycle clock (FOSC/4)

            T0SE: TMR0 Source Edge Select bit
            1 = Increment on high-to-low transition on T0CKI pin
            0 = Increment on low-to-high transition on T0CKI pin

            PSA: Prescaler Assignment bit
            1 = Prescaler is assigned to the WDT
            0 = Prescaler is assigned to the Timer0 module

            PS<2:0>: Prescaler Rate Select bits

                   BIT VALUE TMR0 RATE WDT RATE

                    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

TABLE 11-1: SUMMARY OF REGISTERS ASSOCIATED WITH TIMER0

Name        Bit 7  Bit 6            Bit 5          Bit 4  Bit 3    Bit 2  Bit 1                 Bit 0   Value on               Value on
                                                                                                       POR, BOR                all other
                                                                                                                                Resets

CPSCON0     CPSON   --               --             --    CPSRNG1 CPSRNG0 CPSOUT         T0XCS         0--- 0000               0--- 0000
INTCON        GIE  PEIE             T0IE           INTE                                   RBIF         0000 000x               0000 000x
                                                          RBIE     T0IF   INTF

OPTION_REG  RBPU INTEDG T0CS                       T0SE   PSA      PS2    PS1                   PS0    1111 1111 1111 1111

TMR0        Timer0 Module Register                                                                     xxxx xxxx uuuu uuuu

TRISA       TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111

Legend: = Unimplemented locations, read as `0', u = unchanged, x = unknown. Shaded cells are not used by the Timer0 module.

2009 Microchip Technology Inc.                                                                       DS41341E-page 113
PIC16F72X/PIC16LF72X

NOTES:

DS41341E-page 114      2009 Microchip Technology Inc.
                                                              PIC16F72X/PIC16LF72X

12.0 TIMER1 MODULE WITH GATE                                                 Selectable Gate Source Polarity
         CONTROL                                                             Gate Toggle Mode
                                                                            Gate Single-pulse Mode
The Timer1 module is a 16-bit timer/counter with the                         Gate Value Status
following features:                                                          Gate Event Interrupt

16-bit timer/counter register pair (TMR1H:TMR1L)                          Figure 12-1 is a block diagram of the Timer1 module.
Programmable internal or external clock source
3-bit prescaler
Dedicated LP oscillator circuit
Synchronous or asynchronous operation
Multiple Timer1 gate (count enable) sources
Interrupt on overflow
Wake-up on overflow (external clock,

   Asynchronous mode only)
Time base for the Capture/Compare function
Special Event Trigger (with CCP)

FIGURE 12-1:          TIMER1 BLOCK DIAGRAM

     T1GSS<1:0>

T1G                   00                                                    T1GSPM

From Timer0           01                 T1G_IN                                              0                                Data Bus
                                                                                                   T1GVAL
Overflow                                                   0                                                     DQ              RD
                                                                                                                             T1GCON
From Timer2           10                                                    Single Pulse     1
  Match PR2                                                                                                               Set
                                                                            Acq. Control                 Q1 EN            TMR1GIF
                                                    DQ     1

From WDT         11                                  CK Q
                                                    R
Overflow                                                      T1GGO/DONE                                  Interrupt
                                                                                                                  det
                              TMR1ON
              T1GPOL          T1GTM

                Set flag bit                                                                         TMR1GE
                TMR1IF on
                Overflow                                                                  TMR1ON

                                      TMR1(2)                       EN                                    Synchronized
                                                              QD                                           clock input
                                                                            T1CLK         0

                                  TMR1H             TMR1L

                                                          TMR1CS<1:0>                    1
                                                                                   T1SYNC
                                                          Cap. Sensing
     T1OSO/T1CKI                         OUT                    Oscillator  11                            Synchronize(3)
               T1OSI              T1OSC                                                  Prescaler                 det
                                                    1                                    1, 2, 4, 8
          T1OSCEN                     EN
               T1CKI                                0                       10
                                               (1)                   FOSC
                                                                                                  2
                                                                  Internal
                                                                     Clock            T1CKPS<1:0>
                                                                            01
                                                                   FOSC/4
                                                                  Internal                      FOSC/2          Sleep input
                                                                                                Internal
                                                                     Clock
                                                                            00                    Clock

     Note 1: ST Buffer is high speed type when using T1CKI.
             2: Timer1 register increments on rising edge.
             3: Synchronize does not operate while in Sleep.

2009 Microchip Technology Inc.                                                                                        DS41341E-page 115
PIC16F72X/PIC16LF72X

12.1 Timer1 Operation                                   12.2 Clock Source Selection

The Timer1 module is a 16-bit incrementing counter      The TMR1CS<1:0> and T1OSCEN bits of the T1CON
which is accessed through the TMR1H:TMR1L register      register are used to select the clock source for Timer1.
pair. Writes to TMR1H or TMR1L directly update the      Table 12-2 displays the clock source selections.
counter.
                                                        12.2.1 INTERNAL CLOCK SOURCE
When used with an internal clock source, the module is
a timer and increments on every instruction cycle.      When the internal clock source is selected the
When used with an external clock source, the module     TMR1H:TMR1L register pair will increment on multiples
can be used as either a timer or counter and incre-     of FOSC as determined by the Timer1 prescaler.
ments on every selected edge of the external source.
                                                        12.2.2 EXTERNAL CLOCK SOURCE
Timer1 is enabled by configuring the TMR1ON and
TMR1GE bits in the T1CON and T1GCON registers,          When the external clock source is selected, the Timer1
respectively. Table 12-1 displays the Timer1 enable     module may work as a timer or a counter.
selections.
                                                        When enabled to count, Timer1 is incremented on the
TABLE 12-1:   TIMER1 ENABLE                             rising edge of the external clock input T1CKI or the
              SELECTIONS                                capacitive sensing oscillator signal. Either of these
     TMR1ON                                             external clock sources can be synchronized to the
           0       TMR1GE      Timer1                   microcontroller system clock or they can run
           0                 Operation                  asynchronously.
           1
           1       0        Off                         When used as a timer with a clock oscillator, an
                                                        external 32.768 kHz crystal can be used in conjunction
                   1        Off                         with the dedicated internal oscillator circuit.

                   0        Always On                   Note:  In Counter mode, a falling edge must be
                                                               registered by the counter prior to the first
                   1        Count Enabled                      incrementing rising edge after any one or
                                                               more of the following conditions:

                                                                Timer1 enabled after POR reset

                                                                Write to TMR1H or TMR1L

                                                                Timer1 is disabled

                                                                Timer1 is disabled (TMR1ON = 0)
                                                                  when T1CKI is high then Timer1 is
                                                                  enabled (TMR1ON=1) when T1CKI is
                                                                  low.

TABLE 12-2:   CLOCK SOURCE SELECTIONS
     TMR1CS1
           0       TMR1CS0   T1OSCEN                                         Clock Source
           0
           1       1             x                      System Clock (FOSC)
           1
           1       0             x                      Instruction Clock (FOSC/4)

                   1             x                      Capacitive Sensing Oscillator

                   0             0                      External Clocking on T1CKI Pin

                   0             1                      Oscillator Circuit on T1OSI/T1OSO Pins

DS41341E-page 116                                                                        2009 Microchip Technology Inc.
                                                            PIC16F72X/PIC16LF72X

12.3 Timer1 Prescaler                                       12.5.1  READING AND WRITING TIMER1 IN
                                                                    ASYNCHRONOUS COUNTER
Timer1 has four prescaler options allowing 1, 2, 4 or 8             MODE
divisions of the clock input. The T1CKPS bits of the
T1CON register control the prescale counter. The            Reading TMR1H or TMR1L while the timer is running
prescale counter is not directly readable or writable;      from an external asynchronous clock will ensure a valid
however, the prescaler counter is cleared upon a write to   read (taken care of in hardware). However, the user
TMR1H or TMR1L.                                             should keep in mind that reading the 16-bit timer in two
                                                            8-bit values itself, poses certain problems, since the
12.4 Timer1 Oscillator                                      timer may overflow between the reads.

A dedicated low-power 32.768 kHz oscillator circuit is      For writes, it is recommended that the user simply stop
built-in between pins T1OSI (input) and T1OSO               the timer and write the desired values. A write
(amplifier output). This internal circuit is to be used in  contention may occur by writing to the timer registers,
conjunction with an external 32.768 kHz crystal.            while the register is incrementing. This may produce an
                                                            unpredictable value in the TMR1H:TMR1L register
The oscillator circuit is enabled by setting the            pair.
T1OSCEN bit of the T1CON register. The oscillator will
continue to run during Sleep.

Note:  The oscillator requires a start-up and
       stabilization time before use. Thus,
       T1OSCEN should be set and a suitable
       delay observed prior to enabling Timer1.

12.5 Timer1 Operation in
         Asynchronous Counter Mode

If control bit T1SYNC of the T1CON register is set, the
external clock input is not synchronized. The timer
increments asynchronously to the internal phase
clocks. If external clock source is selected then the
timer will continue to run during Sleep and can
generate an interrupt on overflow, which will wake-up
the processor. However, special precautions in
software are needed to read/write the timer (see
Section 12.5.1 "Reading and Writing Timer1 in
Asynchronous Counter Mode").

Note:  When switching from synchronous to
       asynchronous operation, it is possible to
       skip an increment. When switching from
       asynchronous to synchronous operation,
       it is possible to produce an additional
       increment.

2009 Microchip Technology Inc.                                    DS41341E-page 117
PIC16F72X/PIC16LF72X

12.6 Timer1 Gate                                           12.6.2.1 T1G Pin Gate Operation

Timer1 can be configured to count freely or the count      The T1G pin is one source for Timer1 Gate Control. It
can be enabled and disabled using Timer1 Gate              can be used to supply an external source to the Timer1
circuitry. This is also referred to as Timer1 Gate Count   Gate circuitry.
Enable.
                                                           12.6.2.2 Timer0 Overflow Gate Operation
Timer1 Gate can also be driven by multiple selectable
sources.                                                   When Timer0 increments from FFh to 00h, a
                                                           low-to-high pulse will automatically be generated and
12.6.1 TIMER1 GATE COUNT ENABLE                            internally supplied to the Timer1 Gate circuitry.

The Timer1 Gate is enabled by setting the TMR1GE bit       12.6.2.3 Timer2 Match Gate Operation
of the T1GCON register. The polarity of the Timer1
Gate is configured using the T1GPOL bit of the             The TMR2 register will increment until it matches the
T1GCON register.                                           value in the PR2 register. On the very next increment
                                                           cycle, TMR2 will be reset to 00h. When this Reset
When Timer1 Gate (T1G) input is active, Timer1 will        occurs, a low-to-high pulse will automatically be
increment on the rising edge of the Timer1 clock           generated and internally supplied to the Timer1 Gate
source. When Timer1 Gate input is inactive, no             circuitry.
incrementing will occur and Timer1 will hold the current
count. See Figure 12-3 for timing details.                 12.6.2.4 Watchdog Overflow Gate Operation

TABLE 12-3: TIMER1 GATE ENABLE                             The Watchdog Timer oscillator, prescaler and counter
                     SELECTIONS                            will be automatically turned on when TMR1GE = 1 and
                                                           T1GSS selects the WDT as a gate source for Timer1
T1CLK T1GPOL T1G Timer1 Operation                          (T1GSS = 11). TMR1ON does not factor into the oscil-
                                                           lator, prescaler and counter enable. See Table 12-5.
       0           0 Counts
                                                           The PSA and PS bits of the OPTION register still
       0           1 Holds Count                           control what time-out interval is selected. Changing the
                                                           prescaler during operation may result in a spurious
       1           0 Holds Count                           capture.

       1           1 Counts                                Enabling the Watchdog Timer oscillator does not
                                                           automatically enable a Watchdog Reset or Wake-up
12.6.2 TIMER1 GATE SOURCE                                  from Sleep upon counter overflow.
              SELECTION
                                                           Note:  When using the WDT as a gate source for
The Timer1 Gate source can be selected from one of                Timer1, operations that clear the Watchdog
four different sources. Source selection is controlled by         Timer (CLRWDT, SLEEP instructions) will
the T1GSS bits of the T1GCON register. The polarity               affect the time interval being measured for
for each available source is also selectable. Polarity            capacitive sensing. This includes waking
selection is controlled by the T1GPOL bit of the                  from Sleep. All other interrupts that might
T1GCON register.                                                  wake the device from Sleep should be
                                                                  disabled to prevent them from disturbing
TABLE 12-4: TIMER1 GATE SOURCES                                   the measurement period.

T1GSS              Timer1 Gate Source

00 Timer1 Gate Pin                                         As the gate signal coming from the WDT counter will
                                                           generate different pulse widths depending on if the
01 Overflow of Timer0                                      WDT is enabled, when the CLRWDT instruction is
         (TMR0 increments from FFh to 00h)                 executed, and so on, Toggle mode must be used. A
                                                           specific sequence is required to put the device into the
10 Timer2 match PR2                                        correct state to capture the next WDT counter interval.
         (TMR2 increments to match PR2)

11 Count Enabled by WDT Overflow
         (Watchdog Time-out interval expired)

DS41341E-page 118                                                 2009 Microchip Technology Inc.
                                                               PIC16F72X/PIC16LF72X

TABLE 12-5:  WDT/TIMER1 GATE INTERACTION

      WDTE   TMR1GE = 1           WDT Oscillator               WDT Reset  Wake-up  WDT Available for
                   and                 Enable                                          T1G Source
         1                                                           Y         Y
         1   T1GSS = 11                                              Y         Y              N
         0                                                           N         N              Y
         0   N                    Y                                  N         N              Y
                                                                                              N
             Y                    Y

             Y                    Y

             N                    N

12.6.3 TIMER1 GATE TOGGLE MODE                                 12.6.4 TIMER1 GATE SINGLE-PULSE
                                                                             MODE
When Timer1 Gate Toggle mode is enabled, it is pos-
sible to measure the full-cycle length of a Timer1 gate        When Timer1 Gate Single-Pulse mode is enabled, it is
signal, as opposed to the duration of a single level           possible to capture a single pulse gate event. Timer1
pulse.                                                         Gate Single-Pulse mode is first enabled by setting the
                                                               T1GSPM bit in the T1GCON register. Next, the
The Timer1 Gate source is routed through a flip-flop           T1GGO/DONE bit in the T1GCON register must be set.
that changes state on every incrementing edge of the           The Timer1 will be fully enabled on the next
signal. See Figure 12-4 for timing details.                    incrementing edge. On the next trailing edge of the
                                                               pulse, the T1GGO/DONE bit will automatically be
Timer1 Gate Toggle mode is enabled by setting the              cleared. No other gate events will be allowed to
T1GTM bit of the T1GCON register. When the T1GTM               increment Timer1 until the T1GGO/DONE bit is once
bit is cleared, the flip-flop is cleared and held clear. This  again set in software.
is necessary in order to control which edge is
measured.                                                      Clearing the T1GSPM bit of the T1GCON register will
                                                               also clear the T1GGO/DONE bit. See Figure 12-5 for
Note:  Enabling Toggle mode at the same time as                timing details.
       changing the gate polarity may result in
       indeterminate operation.                                Enabling the Toggle mode and the Single-Pulse mode
                                                               simultaneously will permit both sections to work
                                                               together. This allows the cycle times on the Timer1
                                                               Gate source to be measured. See Figure 12-6 for
                                                               timing details.

                                                               12.6.5 TIMER1 GATE VALUE STATUS

                                                               When Timer1 Gate Value Status is utilized, it is possi-
                                                               ble to read the most current level of the gate control
                                                               value. The value is stored in the T1GVAL bit in the
                                                               T1GCON register. The T1GVAL bit is valid even when
                                                               the Timer1 Gate is not enabled (TMR1GE bit is
                                                               cleared).

                                                               12.6.6 TIMER1 GATE EVENT INTERRUPT

                                                               When Timer1 Gate Event Interrupt is enabled, it is pos-
                                                               sible to generate an interrupt upon the completion of a
                                                               gate event. When the falling edge of T1GVAL occurs,
                                                               the TMR1GIF flag bit in the PIR1 register will be set. If
                                                               the TMR1GIE bit in the PIE1 register is set, then an
                                                               interrupt will be recognized.

                                                               The TMR1GIF flag bit operates even when the Timer1
                                                               Gate is not enabled (TMR1GE bit is cleared).

2009 Microchip Technology Inc.                                                   DS41341E-page 119
PIC16F72X/PIC16LF72X

12.7 Timer1 Interrupt                                        12.9 CCP Capture/Compare Time Base

The Timer1 register pair (TMR1H:TMR1L) increments            The CCP module uses the TMR1H:TMR1L register
to FFFFh and rolls over to 0000h. When Timer1 rolls          pair as the time base when operating in Capture or
over, the Timer1 interrupt flag bit of the PIR1 register is  Compare mode.
set. To enable the interrupt on rollover, you must set
these bits:                                                  In Capture mode, the value in the TMR1H:TMR1L
                                                             register pair is copied into the CCPR1H:CCPR1L
TMR1ON bit of the T1CON register                           register pair on a configured event.
TMR1IE bit of the PIE1 register
PEIE bit of the INTCON register                            In Compare mode, an event is triggered when the value
GIE bit of the INTCON register                             CCPR1H:CCPR1L register pair matches the value in
                                                             the TMR1H:TMR1L register pair. This event can be a
The interrupt is cleared by clearing the TMR1IF bit in       Special Event Trigger.
the Interrupt Service Routine.
                                                             For more information, see Section 15.0
Note:  The TMR1H:TMR1L register pair and the                 "Capture/Compare/PWM (CCP) Module".
       TMR1IF bit should be cleared before
       enabling interrupts.                                  12.10 CCP Special Event Trigger

12.8 Timer1 Operation During Sleep                           When the CCP is configured to trigger a special event,
                                                             the trigger will clear the TMR1H:TMR1L register pair.
Timer1 can only operate during Sleep when setup in           This special event does not cause a Timer1 interrupt.
Asynchronous Counter mode. In this mode, an external         The CCP module may still be configured to generate a
crystal or clock source can be used to increment the         CCP interrupt.
counter. To set up the timer to wake the device:
                                                             In this mode of operation, the CCPR1H:CCPR1L
TMR1ON bit of the T1CON register must be set               register pair becomes the period register for Timer1.
TMR1IE bit of the PIE1 register must be set
PEIE bit of the INTCON register must be set                Timer1 should be synchronized to the FOSC/4 to utilize
T1SYNC bit of the T1CON register must be set               the Special Event Trigger. Asynchronous operation of
TMR1CS bits of the T1CON register must be                  Timer1 can cause a Special Event Trigger to be
                                                             missed.
   configured
T1OSCEN bit of the T1CON register must be                  In the event that a write to TMR1H or TMR1L coincides
                                                             with a Special Event Trigger from the CCP, the write will
   configured                                                take precedence.
TMR1GIE bit of the T1GCON register must be
                                                             For more information, see Section 9.2.5 "Special
   configured                                                Event Trigger".

The device will wake-up on an overflow and execute
the next instructions. If the GIE bit of the INTCON
register is set, the device will call the Interrupt Service
Routine (0004h).

FIGURE 12-2:       TIMER1 INCREMENTING EDGE

T1CKI = 1
when TMR1
Enabled

   T1CKI = 0
   when TMR1
   Enabled

Note 1: Arrows indicate counter increments.
        2: In Counter mode, a falling edge must be registered by the counter prior to the first incrementing rising edge of the clock.

DS41341E-page 120                                             2009 Microchip Technology Inc.
                                  PIC16F72X/PIC16LF72X

FIGURE 12-3:     TIMER1 GATE COUNT ENABLE MODE

TMR1GE
T1GPOL
T1G_IN

    T1CKI

T1GVAL

TIMER1           N                N+1              N+2  N+3 N+4

FIGURE 12-4:     TIMER1 GATE TOGGLE MODE

TMR1GE
T1GPOL

  T1GTM
T1G_IN

   T1CKI

T1GVAL

TIMER1        N                   N+1 N+2 N+3 N+4       N+5 N+6 N+7 N+8

2009 Microchip Technology Inc.                        DS41341E-page 121
PIC16F72X/PIC16LF72X

FIGURE 12-5:       TIMER1 GATE SINGLE-PULSE MODE

TMR1GE               Set by software              Cleared by hardware on
T1GPOL                                            falling edge of T1GVAL
T1GSPM             Counting enabled on
T1GGO/             rising edge of T1G

   DONE

  T1G_IN

T1CKI

T1GVAL                N                N+1       N+2
  TIMER1           Cleared by software
TMR1GIF                                            Set by hardware on      Cleared by
                                                   falling edge of T1GVAL   software

DS41341E-page 122                                  2009 Microchip Technology Inc.
                                     PIC16F72X/PIC16LF72X

FIGURE 12-6:    TIMER1 GATE SINGLE-PULSE AND TOGGLE COMBINED MODE
      TMR1GE
      T1GPOL      Set by software                                 Cleared by hardware on
      T1GSPM                                                      falling edge of T1GVAL
        T1GTM   Counting enabled on
                 rising edge of T1G
       T1GGO/
          DONE

        T1G_IN

T1CKI

T1GVAL             N                N+1 N+2 N+3 N+4               Cleared by
  TIMER1        Cleared by software                                 software
TMR1GIF                                       Set by hardware on
                                         falling edge of T1GVAL

2009 Microchip Technology Inc.                                   DS41341E-page 123
PIC16F72X/PIC16LF72X

12.11 Timer1 Control Register

The Timer1 Control register (T1CON), shown in
Register 12-1, is used to control Timer1 and select the
various features of the Timer1 module.

REGISTER 12-1: T1CON: TIMER1 CONTROL REGISTER

     R/W-0    R/W-0    R/W-0             R/W-0             R/W-0   R/W-0                U-0  R/W-0
  TMR1CS1   TMR1CS0  T1CKPS1           T1CKPS0           T1OSCEN  T1SYNC
bit 7                                                                                   --   TMR1ON

                                                                                                   bit 0

Legend:              W = Writable bit                    U = Unimplemented bit, read as `0'
R = Readable bit     `1' = Bit is set
-n = Value at POR                                        `0' = Bit is cleared  x = Bit is unknown

bit 7-6     TMR1CS<1:0>: Timer1 Clock Source Select bits
            11 = Timer1 clock source is Capacitive Sensing Oscillator (CAPOSC)
bit 5-4     10 = Timer1 clock source is pin or oscillator:
bit 3
bit 2             If T1OSCEN = 0:
                  External clock from T1CKI pin (on the rising edge)
bit 1             If T1OSCEN = 1:
bit 0             Crystal oscillator on T1OSI/T1OSO pins
            01 = Timer1 clock source is system clock (FOSC)
            00 = Timer1 clock source is instruction clock (FOSC/4)

            T1CKPS<1:0>: Timer1 Input Clock Prescale Select bits
            11 = 1:8 Prescale value
            10 = 1:4 Prescale value
            01 = 1:2 Prescale value
            00 = 1:1 Prescale value

            T1OSCEN: LP Oscillator Enable Control bit
            1 = Dedicated Timer1 oscillator circuit enabled
            0 = Dedicated Timer1 oscillator circuit disabled

            T1SYNC: Timer1 External Clock Input Synchronization Control bit
            TMR1CS<1:0> = 1X
            1 = Do not synchronize external clock input
            0 = Synchronize external clock input with system clock (FOSC)

            TMR1CS<1:0> = 0X
            This bit is ignored. Timer1 uses the internal clock when TMR1CS<1:0> = 1X.

            Unimplemented: Read as `0'

            TMR1ON: Timer1 On bit
            1 = Enables Timer1
            0 = Stops Timer1
            Clears Timer1 Gate flip-flop

DS41341E-page 124                                                               2009 Microchip Technology Inc.
                                                     PIC16F72X/PIC16LF72X

12.12 Timer1 Gate Control Register

The Timer1 Gate Control register (T1GCON), shown in
Register 12-2, is used to control Timer1 Gate.

REGISTER 12-2: T1GCON: TIMER1 GATE CONTROL REGISTER

     R/W-0   R/W-0                R/W-0              R/W-0   R/W-0     R-x         R/W-0         R/W-0
   TMR1GE   T1GPOL                T1GTM             T1GSPM          T1GVAL        T1GSS1        T1GSS0
                                                            T1GGO/
bit 7                                                        DONE                                       bit 0

Legend:                           W = Writable bit          U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared  x = Bit is unknown

bit 7       TMR1GE: Timer1 Gate Enable bit
            If TMR1ON = 0:
bit 6       This bit is ignored
bit 5       If TMR1ON = 1:
bit 4       1 = Timer1 counting is controlled by the Timer1 gate function
bit 3       0 = Timer1 counts regardless of Timer1 gate function
bit 2
bit 1-0     T1GPOL: Timer1 Gate Polarity bit
            1 = Timer1 gate is active-high (Timer1 counts when gate is high)
            0 = Timer1 gate is active-low (Timer1 counts when gate is low)

            T1GTM: Timer1 Gate Toggle Mode bit
            1 = Timer1 Gate Toggle mode is enabled.
            0 = Timer1 Gate Toggle mode is disabled and toggle flip flop is cleared
            Timer1 gate flip flop toggles on every rising edge.

            T1GSPM: Timer1 Gate Single Pulse Mode bit
            1 = Timer1 gate Single-Pulse mode is enabled and is controlling Timer1 gate
            0 = Timer1 gate Single-Pulse mode is disabled

            T1GGO/DONE: Timer1 Gate Single-Pulse Acquisition Status bit
            1 = Timer1 gate single-pulse acquisition is ready, waiting for an edge
            0 = Timer1 gate single-pulse acquisition has completed or has not been started
            This bit is automatically cleared when T1GSPM is cleared.

            T1GVAL: Timer1 Gate Current State bit
            Indicates the current state of the Timer1 gate that could be provided to TMR1H:TMR1L.
            Unaffected by Timer1 Gate Enable (TMR1GE).

            T1GSS<1:0>: Timer1 Gate Source Select bits
            00 = Timer1 Gate pin
            01 = Timer0 Overflow output
            10 = TMR2 Match PR2 output
            11 = Watchdog Timer scaler overflow

                   Watchdog Timer oscillator is turned on if TMR1GE = 1, regardless of the state of TMR1ON

2009 Microchip Technology Inc.                                                                DS41341E-page 125
PIC16F72X/PIC16LF72X

TABLE 12-6: SUMMARY OF REGISTERS ASSOCIATED WITH TIMER1

Name     Bit 7     Bit 6  Bit 5  Bit 4  Bit 3  Bit 2                                  Bit 1   Bit 0    Value on        Value on
                                                                                                      POR, BOR          all other
                                                                                                                         Resets
ANSELB   --        --     ANSB5 ANSB4 ANSB3 ANSB2                                     ANSB1   ANSB0 --11 1111
                                                                                                                      --11 1111
CCP1CON  --        --     DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000                                           --00 0000
                                                                                                                      --00 0000
CCP2CON  --        --     DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000                                           0000 000x
                                                                                                                      0000 0000
INTCON   GIE       PEIE   T0IE   INTE   RBIE   T0IF                                   INTF    RBIF    0000 000x       0000 0000
                                                                                                                      xxxx xxxx
PIE1     TMR1GIE ADIE     RCIE   TXIE   SSPIE CCP1IE TMR2IE TMR1IE 0000 0000                                          uuuu uuuu
                                                                                                                      uuuu uuuu
PIR1     TMR1GIF ADIF     RCIF   TXIF   SSPIF CCP1IF TMR2IF TMR1IF 0000 0000                                          1111 1111
                                                                                                                      1111 1111
PORTB    RB7       RB6    RB5    RB4    RB3    RB2                                    RB1     RB0     xxxx xxxx       uuuu uu-u
                                                                                                                      uuuu uxuu
TMR1H Holding Register for the Most Significant Byte of the 16-bit TMR1 Register                      xxxx xxxx

TMR1L    Holding Register for the Least Significant Byte of the 16-bit TMR1 Register                  xxxx xxxx

TRISB    TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111

TRISC    TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111

T1CON    TMR1CS1 TMR1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC                               --      TMR1ON 0000 00-0

T1GCON   TMR1GE T1GPOL    T1GTM  T1GSPM T1GGO/ T1GVAL                                 T1GSS1  T1GSS0  0000 0x00
                                                   DONE

Legend: x = unknown, u = unchanged, -- = unimplemented, read as `0'. Shaded cells are not used by the Timer1 module.

DS41341E-page 126                                                                              2009 Microchip Technology Inc.
                                                           PIC16F72X/PIC16LF72X

13.0 TIMER2 MODULE                                         The TMR2 and PR2 registers are both fully readable
                                                           and writable. On any Reset, the TMR2 register is set to
The Timer2 module is an 8-bit timer with the following     00h and the PR2 register is set to FFh.
features:
                                                           Timer2 is turned on by setting the TMR2ON bit in the
8-bit timer register (TMR2)                              T2CON register to a `1'. Timer2 is turned off by clearing
8-bit period register (PR2)                              the TMR2ON bit to a `0'.
Interrupt on TMR2 match with PR2
Software programmable prescaler (1:1, 1:4, 1:16)         The Timer2 prescaler is controlled by the T2CKPS bits
Software programmable postscaler (1:1 to 1:16)           in the T2CON register. The Timer2 postscaler is
                                                           controlled by the TOUTPS bits in the T2CON register.
See Figure 13-1 for a block diagram of Timer2.             The prescaler and postscaler counters are cleared
                                                           when:
13.1 Timer2 Operation
                                                            A write to TMR2 occurs.
The clock input to the Timer2 module is the system          A write to T2CON occurs.
instruction clock (FOSC/4). The clock is fed into the       Any device Reset occurs (Power-on Reset, MCLR
Timer2 prescaler, which has prescale options of 1:1,
1:4 or 1:16. The output of the prescaler is then used to      Reset, Watchdog Timer Reset, or Brown-out
increment the TMR2 register.                                  Reset).

The values of TMR2 and PR2 are constantly compared            Note: TMR2 is not cleared when T2CON is
to determine when they match. TMR2 will increment                         written.
from 00h until it matches the value in PR2. When a
match occurs, two things happen:

TMR2 is reset to 00h on the next increment cycle.
The Timer2 postscaler is incremented.

The match output of the Timer2/PR2 comparator is
then fed into the Timer2 postscaler. The postscaler has
postscale options of 1:1 to 1:16 inclusive. The output of
the Timer2 postscaler is used to set the TMR2IF
interrupt flag bit in the PIR1 register.

FIGURE 13-1:  TIMER2 BLOCK DIAGRAM

                                                                  TMR2        Sets Flag
                                                                  Output      bit TMR2IF

FOSC/4            Prescaler       TMR2                     Reset
               1:1, 1:4, 1:16
                                  Comparator                      Postscaler
                          2
                                                           EQ 1:1 to 1:16
              T2CKPS<1:0>

                                  PR2                             4

                                                           TOUTPS<3:0>

2009 Microchip Technology Inc.                                              DS41341E-page 127
PIC16F72X/PIC16LF72X

REGISTER 13-1: T2CON: TIMER2 CONTROL REGISTER

      U-0           R/W-0    R/W-0                         R/W-0    R/W-0    R/W-0               R/W-0                R/W-0
       --         TOUTPS3  TOUTPS2                       TOUTPS1  TOUTPS0  TMR2ON              T2CKPS1              T2CKPS0
bit 7
                                                                                                                             bit 0

Legend:                    W = Writable bit                       U = Unimplemented bit, read as `0'
R = Readable bit           `1' = Bit is set
-n = Value at POR                                                 `0' = Bit is cleared  x = Bit is unknown

bit 7             Unimplemented: Read as `0'
bit 6-3
                  TOUTPS<3:0>: Timer2 Output Postscaler Select bits
bit 2
bit 1-0           0000 = 1:1 Postscaler
                  0001 = 1:2 Postscaler
                  0010 = 1:3 Postscaler
                  0011 = 1:4 Postscaler
                  0100 = 1:5 Postscaler
                  0101 = 1:6 Postscaler
                  0110 = 1:7 Postscaler
                  0111 = 1:8 Postscaler
                  1000 = 1:9 Postscaler
                  1001 = 1:10 Postscaler
                  1010 = 1:11 Postscaler
                  1011 = 1:12 Postscaler
                  1100 = 1:13 Postscaler
                  1101 = 1:14 Postscaler
                  1110 = 1:15 Postscaler
                  1111 = 1:16 Postscaler

                  TMR2ON: Timer2 On bit

                  1 = Timer2 is on
                  0 = Timer2 is off

                  T2CKPS<1:0>: Timer2 Clock Prescale Select bits

                  00 = Prescaler is 1
                  01 = Prescaler is 4
                  1x = Prescaler is 16

TABLE 13-1: SUMMARY OF REGISTERS ASSOCIATED WITH TIMER2

Name       Bit 7   Bit 6   Bit 5          Bit 4          Bit 3    Bit 2    Bit 1        Bit 0   Value on             Value on
                                                                                               POR, BOR               all other
                                                                                                                       Resets
INTCON     GIE     PEIE    T0IE           INTE           RBIE     T0IF     INTF         RBIF   0000 000x
PIE1                                                                                                                0000 000x
PIR1       TMR1GIE ADIE    RCIE           TXIE           SSPIE    CCP1IE TMR2IE TMR1IE 0000 0000                    0000 0000
PR2
TMR2       TMR1GIF ADIF    RCIF           TXIF           SSPIF    CCP1IF TMR2IF TMR1IF 0000 0000                    0000 0000
T2CON
Legend:    Timer2 Module Period Register                                                       1111 1111            1111 1111
                                                                                                                    0000 0000
           Holding Register for the 8-bit TMR2 Register                                        0000 0000            -000 0000

           --      TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000

           x = unknown, u = unchanged, - = unimplemented read as `0'. Shaded cells are not used for Timer2 module.

DS41341E-page 128                                                                        2009 Microchip Technology Inc.
                                                            PIC16F72X/PIC16LF72X

14.0 CAPACITIVE SENSING                                        sensing module. The capacitive sensing module
         MODULE                                                requires software and at least one timer resource to
                                                               determine the change in frequency. Key features of this
The capacitive sensing module allows for an interaction        module include:
with an end user without a mechanical interface. In a
typical application, the capacitive sensing module is          Analog MUX for monitoring multiple inputs
attached to a pad on a printed circuit board (PCB), which       Capacitive sensing oscillator
is electrically isolated from the end user. When the end       Multiple timer resources
user places their finger over the PCB pad, a capacitive         Software control
load is added, causing a frequency shift in the capacitive      Operation during Sleep

FIGURE 14-1:      CAPACITIVE SENSING BLOCK DIAGRAM

                                                                               Timer0 Module

                                               T0XCS                          T0CS                        Set
                                                                                                        T0IF
                                                                       0
                                                               FOSC/4                 TMR0  Overflow

                                              T0CKI         0          1

                                                            1

                   CPSCH<3:0>(2)
                  CPSON(3)

    CPS0                          CPSON                           T1CS<1:0>    Timer1 Module
                                                                      FOSC
    CPS1          Capacitive                      CPSCLK                                   TMR1H:TMR1L
    CPS2           Sensing                    CPSOUT               FOSC/4           EN
                  Oscillator
    CPS3                                                             T1OSC/         Timer1 Gate
                  CPSOSC                                                T1CKI       Control Logic
    CPS4
    CPS5                          CPSRNG<1:0>                  T1GSEL<1:0>
                                                                      T1G
    CPS6

    CPS7
CPS8(1)
CPS9(1)
CPS10(1)
CPS11(1)
CPS12(1)
CPS13(1)
CPS14(1)
CPS15(1)

              Watchdog Timer Module            WDT                                       Timer2 Module
                                               Event

                                                               TMR2            Overflow     Postscaler  Set
                                                                                                        TMR2IF
          LP WDT                WDT Overflow
          OSC                   Scaler

                  PS<2:0>

Note 1: Channels CPS<15:8> are implemented on PIC16F724/727/PIC16LF724/727 only.
        2: CPSCH3 is not implemented on PIC16F722/723/726/PIC16LF722/723/726.
        3: If CPSON = 0, disabling capacitive sensing, no channel is selected.

2009 Microchip Technology Inc.                                                                        41341E-page 129
PIC16F72X/PIC16LF72X

14.1 Analog MUX                                             14.4.1 TIMER0

The capacitive sensing module can monitor up to 16          To select Timer0 as the timer resource for the capacitive
inputs. The capacitive sensing inputs are defined as        sensing module:
CPS<15:0>. To determine if a frequency change has
occurred the user must:                                     Set the T0XCS bit of the CPSCON0 register
                                                             Clear the T0CS bit of the OPTION register
Select the appropriate CPS pin by setting the
   CPSCH<3:0> bits of the CPSCON1 register                  When Timer0 is chosen as the timer resource, the
                                                            capacitive sensing oscillator will be the clock source for
Set the corresponding ANSEL bit                           Timer0. Refer to Section 11.0 "Timer0 Module" for
Set the corresponding TRIS bit                            additional information.
Run the software algorithm
                                                            14.4.2 TIMER1
Selection of the CPSx pin while the module is enabled
will cause the capacitive sensing oscillator to be on the   To select Timer1 as the timer resource for the
CPSx pin. Failure to set the corresponding ANSEL and        capacitive sensing module, set the TMR1CS<1:0> of
TRIS bits can cause the capacitive sensing oscillator to    the T1CON register to `11'. When Timer1 is chosen as
stop, leading to false frequency readings.                  the timer resource, the capacitive sensing oscillator will
                                                            be the clock source for Timer1. Because the Timer1
14.2 Capacitive Sensing Oscillator                          module has a gate control, developing a time base for
                                                            the frequency measurement can be simplified using
The capacitive sensing oscillator consists of a constant    either:
current source and a constant current sink, to produce
a triangle waveform. The CPSOUT bit of the                   The Timer0 overflow flag
CPSCON0 register shows the status of the capacitive          The Timer2 overflow flag
sensing oscillator, whether it is a sinking or sourcing      The WDT overflow flag
current. The oscillator is designed to drive a capacitive
load (single PCB pad) and at the same time, be a clock      It is recommend that one of these flags, in conjunction
source to either Timer0 or Timer1. The oscillator has       with the toggle mode of the Timer1 Gate, is used to
three different current settings as defined by              develop the fixed time base required by the software
CPSRNG<1:0> of the CPSCON0 register. The different          portion of the capacitive sensing module. Refer to
current settings for the oscillator serve two purposes:     Section 12.0 "Timer1 Module with Gate Control" for
                                                            additional information.
Maximize the number of counts in a timer for a
   fixed time base                                          TABLE 14-1: TIMER1 ENABLE FUNCTION

Maximize the count differential in the timer during       TMR1ON TMR1GE Timer1 Operation
   a change in frequency
                                                            0  0  Off

14.3 Timer resources                                        0  1  Off

To measure the change in frequency of the capacitive        1  0  On
sensing oscillator, a fixed time base is required. For the
period of the fixed time base, the capacitive sensing       1  1  Count Enabled by input
oscillator is used to clock either Timer0 or Timer1. The
frequency of the capacitive sensing oscillator is equal
to the number of counts in the timer divided by the
period of the fixed time base.

14.4 Fixed Time Base

To measure the frequency of the capacitive sensing
oscillator, a fixed time base is required. Any timer
resource or software loop can be used to establish the
fixed time base. It is up to the end user to determine the
method in which the fixed time base is generated.

Note:  The fixed time base can not be generated
       by timer resource the capacitive sensing
       oscillator is clocking.

41341E-page 130                                                    2009 Microchip Technology Inc.
                                                            PIC16F72X/PIC16LF72X

14.5 Software Control                                       14.5.3 FREQUENCY THRESHOLD

The software portion of the capacitive sensing module       The frequency threshold should be placed midway
is required to determine the change in frequency of the     between the value of nominal frequency and the
capacitive sensing oscillator. This is accomplished by      reduced frequency of the capacitive sensing oscillator.
the following:                                              Refer to Application Note AN1103, "Software Handling
                                                            for Capacitive Sensing" (DS01103) for more detailed
Setting a fixed time base to acquire counts on            information the software required for capacitive
   Timer0 or Timer1                                         sensing module.

Establishing the nominal frequency for the                Note:  For more information on general Capacitive
   capacitive sensing oscillator                                   Sensing refer to Application Notes:

Establishing the reduced frequency for the                        AN1101, "Introduction to Capacitive
   capacitive sensing oscillator due to an additional                 Sensing" (DS01101)
   capacitive load
                                                                   AN1102, "Layout and Physical Design
Set the frequency threshold                                         Guidelines for Capacitive Sensing"
                                                                      (DS01102)
14.5.1 NOMINAL FREQUENCY
              (NO CAPACITIVE LOAD)

To determine the nominal frequency of the capacitive
sensing oscillator:

Remove any extra capacitive load on the selected
   CPSx pin

At the start of the fixed time base, clear the timer
   resource

At the end of the fixed time base save the value in
   the timer resource

The value of the timer resource is the number of
oscillations of the capacitive sensing oscillator for the
given time base. The frequency of the capacitive
sensing oscillator is equal to the number of counts on
in the timer divided by the period of the fixed time base.

14.5.2 REDUCED FREQUENCY
              (ADDITIONAL CAPACITIVE LOAD)

The extra capacitive load will cause the frequency of the
capacitive sensing oscillator to decrease. To determine
the reduced frequency of the capacitive sensing
oscillator:

Add a typical capacitive load on the selected
   CPSx pin

Use the same fixed time base as the nominal
   frequency measurement

At the start of the fixed time base, clear the timer
   resource

At the end of the fixed time base save the value in
   the timer resource

The value of the timer resource is the number of oscil-
lations of the capacitive sensing oscillator with an addi-
tional capacitive load. The frequency of the capacitive
sensing oscillator is equal to the number of counts on
in the timer divided by the period of the fixed time base.
This frequency should be less than the value obtained
during the nominal frequency measurement.

2009 Microchip Technology Inc.                                   41341E-page 131
PIC16F72X/PIC16LF72X

14.6 Operation during Sleep

The capacitive sensing oscillator will continue to run as
long as the module is enabled, independent of the part
being in Sleep. In order for the software to determine if
a frequency change has occurred, the part must be
awake. However, the part does not have to be awake
when the timer resource is acquiring counts. One way
to acquire the Timer1 counts while in Sleep is to have
Timer1 gated with the overflow of the Watchdog Timer.
This can be accomplished using the following steps:

1. Configure the Watchdog Time-out overflow as
      the Timer1's gate source T1GSS<1:0> = 11.

2. Set Timer1 Gate to toggle mode by setting the
      T1GTM bit of the T1GCON register.

3. Set the TMR1GE bit of the T1GCON register.
4. Set TMR1ON bit of the T1CON register.
5. Enable capacitive sensing module with the

      appropriate current settings and pin selection.
6. Clear Timer1.
7. Put the part to Sleep.
8. On the first WDT overflow, the capacitive sens-

      ing oscillator will begin to increment Timer1.
      Then put the part to Sleep.
9. On the second WDT overflow Timer1 will stop
      incrementing. Then run the software routine to
      determine if a frequency change has occurred.

Refer to Section 12.0 "Timer1 Module with Gate
Control" for additional information.

    Note 1: When using the WDT to set the interval
                on Timer1, any other source that wakes
                the part up early will cause the WDT over-
                flow to be delayed, affecting the value
                captured by Timer1.

           2: Timer0 does not operate when in Sleep,
                and therefore cannot be used for
                capacitive sense measurements in Sleep.

41341E-page 132                                              2009 Microchip Technology Inc.
                                                         PIC16F72X/PIC16LF72X

REGISTER 14-1: CPSCON0: CAPACITIVE SENSING CONTROL REGISTER 0

R/W-0              U-0            U-0               U-0  R/W-0                 R/W-0  R-0        R/W-0
                                                                                                 T0XCS
CPSON              --             --                --   CPSRNG1 CPSRNG0 CPSOUT
                                                                                                        bit 0
bit 7

Legend:                           W = Writable bit       U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                        `0' = Bit is cleared         x = Bit is unknown

bit 7    CPSON: Capacitive Sensing Module Enable bit
bit 6-4  1 = Capacitive sensing module is operating
bit 3-2  0 = Capacitive sensing module is shut off and consumes no operating current

bit 1    Unimplemented: Read as `0'
bit 0
         CPSRNG<1:0>: Capacitive Sensing Oscillator Range bits
         00 = Oscillator is off.
         01 = Oscillator is in low range. Charge/discharge current is nominally 0.1 A.
         10 = Oscillator is in medium range. Charge/discharge current is nominally 1.2 A.
         11 = Oscillator is in high range. Charge/discharge current is nominally 18 A.

         CPSOUT: Capacitive Sensing Oscillator Status bit
         1 = Oscillator is sourcing current (Current flowing out the pin)
         0 = Oscillator is sinking current (Current flowing into the pin)

         T0XCS: Timer0 External Clock Source Select bit
         If T0CS = 1
         The T0XCS bit controls which clock external to the core/Timer0 module supplies Timer0:
         1 = Timer0 Clock Source is the capacitive sensing oscillator
         0 = Timer0 Clock Source is the T0CKI pin
         If T0CS = 0
         Timer0 clock source is controlled by the core/Timer0 module and is FOSC/4.

2009 Microchip Technology Inc.                                                             41341E-page 133
PIC16F72X/PIC16LF72X

REGISTER 14-2: CPSCON1: CAPACITIVE SENSING CONTROL REGISTER 1

       U-0           U-0         U-0               U-0         R/W-0(2)       R/W-0         R/W-0       R/W-0
        --                                                                                             CPSCH0
bit 7                --          --                --          CPSCH3    CPSCH2             CPSCH1
                                                                                                                bit 0

Legend:                          W = Writable bit       U = Unimplemented bit, read as `0'
R = Readable bit                 `1' = Bit is set
-n = Value at POR                                       `0' = Bit is cleared         x = Bit is unknown

bit 7-4          Unimplemented: Read as `0'
bit 3-0
                 CPSCH<3:0>: Capacitive Sensing Channel Select bits

                 If CPSON = 0:

                       These bits are ignored. No channel is selected.

                 If CPSON = 1:

                       0000 = channel 0, (CPS0)

                       0001 = channel 1, (CPS1)

                       0010 = channel 2, (CPS2)

                       0011 = channel 3, (CPS3)

                       0100 = channel 4, (CPS4)

                       0101 = channel 5, (CPS5)

                       0110 = channel 6, (CPS6)

                       0111 = channel 7, (CPS7)
                       1000 = channel 8, (CPS8(1))
                       1001 = channel 9, (CPS9(1))
                       1010 = channel 10, (CPS10(1))
                       1011 = channel 11, (CPS11(1))
                       1100 = channel 12, (CPS12(1))
                       1101 = channel 13, (CPS13(1))
                       1110 = channel 14, (CPS14(1))
                       1111 = channel 15, (CPS15(1))

Note 1: These channels are not implemented on the PIC16F722/723/726/PIC16LF722/723/726.
        2: This bit is not implemented on PIC16F722/723/726/PIC16LF722/723/726, Read as `0'

TABLE 14-2: SUMMARY OF REGISTERS ASSOCIATED WITH CAPACITIVE SENSING

Name        Bit 7         Bit 6  Bit 5  Bit 4           Bit 3  Bit 2     Bit 1       Bit 0   Value on    Value on
                                                                                            POR, BOR     all other
                                                                                                          Resets

ANSELA           --       --     ANSA5 ANSA4 ANSA3 ANSA2 ANSA1 ANSA0 --11 1111 --11 1111

ANSELB           --       --     ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 --11 1111 --11 1111

ANSELD      ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0 1111 1111 1111 1111

OPTION_REG RBPU INTEDG           T0CS   T0SE            PSA    PS2       PS1         PS0    1111 1111 1111 1111

PIE1        TMR1GIE ADIE         RCIE   TXIE            SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

PIR1        TMR1GIF ADIF         RCIF   TXIF            SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000

T1CON       TMR1CS1 TMR1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC                    --     TMR1ON 0000 00-0 0000 00-0

T2CON            --  TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000

TRISA       TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111

TRISB       TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111

TRISD       TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 1111 1111

Legend: - = Unimplemented locations, read as `0', u = unchanged, x = unknown. Shaded cells are not used by the capacitive sensing module.

41341E-page 134                                                                      2009 Microchip Technology Inc.
                                                       PIC16F72X/PIC16LF72X

15.0 CAPTURE/COMPARE/PWM                               TABLE 15-1: CCP MODE TIMER
         (CCP) MODULE                                                       RESOURCES REQUIRED

The Capture/Compare/PWM module is a peripheral               CCP Mode     Timer Resource
which allows the user to time and control different
events. In Capture mode, the peripheral allows the     Capture            Timer1
timing of the duration of an event. The Compare mode   Compare            Timer1
allows the user to trigger an external event when a    PWM                Timer2
predetermined amount of time has expired. The PWM
mode can generate a Pulse-Width Modulated signal of
varying frequency and duty cycle.

The timer resources used by the module are shown in
Table 15-1.

Additional information on CCP modules is available in
the Application Note AN594, "Using the CCP Modules"
(DS00594).

TABLE 15-2: INTERACTION OF TWO CCP MODULES

CCP1 Mode CCP2 Mode                                          Interaction

Capture  Capture                  Same TMR1 time base
Capture  Compare                  Same TMR1 time base(1, 2)
Compare  Compare                  Same TMR1 time base(1, 2)

PWM      PWM                      The PWMs will have the same frequency and update rate (TMR2 interrupt).
                                  The rising edges will be aligned.

PWM      Capture                  None

PWM      Compare   &