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

型号

产品描述

搜索

PIC16LC710-04-SO

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

器件描述

8-bit Microcontrollers - MCU .875KB 36 RAM 13 I/O

参数

产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Microchip
产品种类:
Product Category:
8-bit Microcontrollers - MCU
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
SOIC-18
系列:
Series:
PIC16
Core:PIC16
Data Bus Width:8 bit
Maximum Clock Frequency:20 MHz
Program Memory Size:512 B
Data RAM Size:36 B
ADC Resolution:8 bit
Number of I/Os:13 I/O
工作电源电压:
Operating Supply Voltage:
2.5 V to 6 V
最大工作温度:
Maximum Operating Temperature:
+ 70 C
接口类型:
Interface Type:
RS-232
封装:
Packaging:
Tube
高度:
Height:
2.31 mm
长度:
Length:
11.53 mm
产品:
Product:
MCU
Program Memory Type:EPROM
宽度:
Width:
7.49 mm
商标:
Brand:
Microchip Technology
Data RAM Type:RAM
Data ROM Size:36 B
Data ROM Type:OTP EPROM
最小工作温度:
Minimum Operating Temperature:
0 C
Number of ADC Channels:4
Number of Timers/Counters:1 Timer
Processor Series:PIC16
工厂包装数量:
Factory Pack Quantity:
42
电源电压-最大:
Supply Voltage - Max:
6 V
电源电压-最小:
Supply Voltage - Min:
2.5 V
商标名:
Tradename:
PIC
单位重量:
Unit Weight:
0.007408 oz

PIC16LC710-04-SO器件文档内容

                                                                 PIC16C71X

           8-Bit CMOS Microcontrollers with A/D Converter

Devices included in this data sheet:                    PIC16C71X Peripheral Features:

•  PIC16C710                                            •  Timer0: 8-bit timer/counter with 8-bit prescaler

•  PIC16C71                                             •  8-bit multichannel analog-to-digital converter

•  PIC16C711                                            •  Brown-out detection circuitry for

•  PIC16C715                                               Brown-out Reset (BOR)

PIC16C71X Microcontroller Core Features:                •  13 I/O Pins with Individual Direction Control

•  High-performance RISC CPU                                     PIC16C7X Features                                                710  71   711     715

•  Only 35 single word instructions to learn               Program Memory (EPROM)                                                 512  1K   1K      2K

•  All single cycle instructions except for program        x 14

   branches which are two cycle                            Data Memory (Bytes) x 8                                                36   36   68      128

•  Operating speed: DC - 20 MHz clock input                I/O Pins                                                               13   13   13      13

                         DC - 200 ns instruction cycle

•  Up to 2K x 14 words of Program Memory,                  Timer Modules                                                          1    1        1   1

   up to 128 x 8 bytes of Data Memory (RAM)                A/D Channels                                                           4    4        4   4

•  Interrupt capability                                    In-Circuit Serial Programming                                          Yes  Yes  Yes     Yes

•  Eight level deep hardware stack                         Brown-out Reset                                                        Yes  —    Yes     Yes

•  Direct, indirect, and relative addressing modes

•  Power-on Reset (POR)                                    Interrupt Sources                                                      4    4        4   4

•  Power-up Timer (PWRT) and                            Pin Diagrams

   Oscillator Start-up Timer (OST)

•  Watchdog Timer (WDT) with its own on-chip RC                  PDIP, SOIC, Windowed CERDIP

   oscillator for reliable operation

•  Programmable code-protection                                      RA2/AN2   •1                                             18       RA1/AN1

•  Power saving SLEEP mode                                       RA3/AN3/VREF  2                                              17       RA0/AN0

•  Selectable oscillator options                                 RA4/T0CKI     3   PIC16C715  PIC16C711  PIC16C71  PIC16C710  16       OSC1/CLKIN

                                                                 MCLR/VPP      4                                              15       OSC2/CLKOUT

•  Low-power, high-speed CMOS EPROM                                  VSS       5                                              14       VDD

   technology                                                        RB0/INT   6                                              13       RB7

                                                                     RB1       7                                              12       RB6

•  Fully static design                                               RB2       8                                              11       RB5

                                                                     RB3       9                                              10       RB4

•  Wide operating voltage range:      2.5V to 6.0V

•  High Sink/Source Current 25/25 mA

•  Commercial, Industrial and Extended temperature               SSOP

   ranges

•  Program Memory Parity Error Checking Circuitry                    RA2/AN2   •1                                             20       RA1/AN1

   with Parity Error Reset (PER) (PIC16C715)                     RA3/AN3/VREF  2                                              19       RA0/AN0

•  Low-power consumption:                                        RA4/T0CKI     3   PIC16C715  PIC16C711  PIC16C710            18       OSC1/CLKIN

                                                                 MCLR/VPP      4                                              17       OSC2/CLKOUT

           - < 2 mA @ 5V, 4 MHz                                      VSS       5                                              16       VDD

           - 15 µA typical @ 3V, 32 kHz                              VSS       6                                              15       VDD

           - < 1 µA typical standby current                          RB0/INT   7                                              14       RB7

                                                                     RB1       8                                              13       RB6

                                                                     RB2       9                                              12       RB5

                                                                     RB3       10                                             11       RB4

© 1997 Microchip Technology Inc.                                                                                                       DS30272A-page 1
PIC16C71X

Table of Contents

1.0   General Description .................................................................................................................................................................... 3

2.0   PIC16C71X Device Varieties...................................................................................................................................................... 5

3.0   Architectural Overview................................................................................................................................................................ 7

4.0   Memory Organization ............................................................................................................................................................... 11

5.0   I/O Ports.................................................................................................................................................................................... 25

6.0   Timer0 Module.......................................................................................................................................................................... 31

7.0   Analog-to-Digital Converter (A/D) Module ................................................................................................................................ 37

8.0   Special Features of the CPU .................................................................................................................................................... 47

9.0   Instruction Set Summary .......................................................................................................................................................... 69

10.0  Development Support ............................................................................................................................................................... 85

11.0  Electrical Characteristics for PIC16C710 and PIC16C711 ....................................................................................................... 89

12.0  DC and AC Characteristics Graphs and Tables for PIC16C710 and PIC16C711.................................................................. 101

13.0  Electrical Characteristics for PIC16C715................................................................................................................................ 111

14.0  DC and AC Characteristics Graphs and Tables for PIC16C715 ............................................................................................ 125

15.0  Electrical Characteristics for PIC16C71.................................................................................................................................. 135

16.0  DC and AC Characteristics Graphs and Tables for PIC16C71 .............................................................................................. 147

17.0  Packaging Information ............................................................................................................................................................ 155

Appendix A:  ...................................................................................................................................................................................... 161

Appendix B:  Compatibility................................................................................................................................................................. 161

Appendix C:  What’s New .................................................................................................................................................................. 162

Appendix D:  What’s Changed .......................................................................................................................................................... 162

Index .................................................................................................................................................................................................. 163

PIC16C71X Product Identification System......................................................................................................................................... 173

                   To Our Valued Customers

We constantly strive to improve the quality of all our products and documentation. We have spent an exceptional

amount of time to ensure that these documents are correct. However, we realize that we may have missed a few

things. If you find any information that is missing or appears in error, please use the reader response form in the

back of this data sheet to inform us. We appreciate your assistance in making this a better document.

DS30272A-page 2                             © 1997 Microchip Technology Inc.
                                                                                             PIC16C71X

1.0         GENERAL DESCRIPTION                                  A highly reliable Watchdog Timer with its own on-chip

The PIC16C71X is a family of         low-cost, high-perfor-      RC oscillator provides protection against software lock-

mance, CMOS, fully-static, 8-bit microcontrollers with           up.

integrated  analog-to-digital   (A/D)     converters,   in  the  A UV erasable CERDIP packaged version is ideal for

PIC16CXX mid-range family.                                       code development while the cost-effective One-Time-

All   PIC16/17    microcontrollers   employ    an   advanced     Programmable (OTP) version is suitable for production

RISC architecture. The PIC16CXX microcontroller fam-             in any volume.

ily has enhanced core features, eight-level deep stack,          The  PIC16C71X      family     fits  perfectly  in  applications

and multiple internal and external interrupt sources.            ranging from security and remote sensors to appliance

The separate instruction and data buses of the Harvard           control  and    automotive.    The       EPROM     technology

architecture allow a 14-bit wide instruction word with           makes customization of application programs (trans-

the separate 8-bit wide data. The two stage instruction          mitter codes, motor speeds, receiver frequencies, etc.)

pipeline allows all instructions to execute in a single          extremely     fast  and  convenient.     The   small  footprint

cycle, except for program branches which require two             packages make this microcontroller series perfect for

cycles. A total of 35 instructions (reduced instruction          all applications with space limitations. Low cost, low

set) are available. Additionally, a large register set gives     power, high performance, ease of use and I/O flexibility

some of the architectural innovations used to achieve a          make     the  PIC16C71X     very    versatile  even   in  areas

very high performance.                                           where    no   microcontroller  use  has  been      considered

PIC16CXX    microcontrollers      typically    achieve  a   2:1  before (e.g. timer functions, serial communication, cap-

code compression and a 4:1 speed improvement over                ture and compare, PWM functions and coprocessor

other 8-bit microcontrollers in their class.                     applications).

The PIC16C710/71 devices have 36 bytes of RAM, the               1.1      Family and Upward Compatibility

PIC16C711 has 68 bytes of RAM and the PIC16C715                  Users familiar with the PIC16C5X microcontroller fam-

has 128 bytes of RAM. Each device has 13 I/O pins. In            ily will realize that this is an enhanced version of the

addition a timer/counter is available. Also a 4-channel          PIC16C5X architecture. Please refer to Appendix A for

high-speed 8-bit A/D is provided. The 8-bit resolution is        a detailed list of enhancements. Code written for the

ideally suited for applications requiring low-cost analog        PIC16C5X can be easily ported to the PIC16CXX fam-

interface,  e.g.  thermostat    control,  pressure  sensing,     ily of devices (Appendix B).

etc.

The PIC16C71X family has special features to reduce              1.2      Development Support

external components, thus reducing cost, enhancing               PIC16C71X devices are supported by             the complete

system   reliability  and  reducing  power     consumption.      line of Microchip Development tools.

There are four oscillator options, of which the single pin       Please   refer  to  Section 10.0    for  more  details    about

RC oscillator provides a low-cost solution, the LP oscil-        Microchip’s development tools.

lator minimizes power consumption, XT is a standard

crystal, and the HS is for High Speed crystals. The

SLEEP (power-down) feature provides a power saving

mode. The user can wake up the chip from SLEEP

through     several   external  and  internal  interrupts   and

resets.

© 1997 Microchip Technology Inc.                                                                                DS30272A-page 3
PIC16C71X

TABLE     1-1:   PIC16C71X FAMILY OF DEVICES

                                             PIC16C710     PIC16C71          PIC16C711        PIC16C715        PIC16C72     PIC16CR72(1)

Clock        Maximum Frequency               20            20             20                  20            20              20

             of Operation (MHz)

             EPROM Program Memory            512           1K             1K                  2K            2K              —

             (x14 words)

Memory       ROM Program Memory              —             —              —                   —             —               2K

             (14K words)

             Data Memory (bytes)             36            36             68                  128           128             128

             Timer Module(s)                 TMR0          TMR0           TMR0                TMR0          TMR0,           TMR0,

                                                                                                            TMR1,           TMR1,

                                                                                                            TMR2            TMR2

Peripherals  Capture/Compare/PWM             —             —              —                   —             1               1

             Module(s)

             Serial Port(s)                  —             —              —                   —             SPI/I2C         SPI/I2C

             (SPI/I2C, USART)

             Parallel Slave Port             —             —              —                   —             —               —

             A/D Converter (8-bit) Channels  4             4              4                   4             5               5

             Interrupt Sources               4             4              4                   4             8               8

             I/O Pins                        13            13             13                  13            22              22

             Voltage Range (Volts)           2.5-6.0       3.0-6.0        2.5-6.0             2.5-5.5       2.5-6.0         3.0-5.5

Features     In-Circuit Serial Programming   Yes           Yes            Yes                 Yes           Yes             Yes

             Brown-out Reset                 Yes           —              Yes                 Yes           Yes             Yes

             Packages                        18-pin DIP,   18-pin DIP,    18-pin DIP,         18-pin DIP,   28-pin SDIP,    28-pin SDIP,

                                             SOIC;         SOIC           SOIC;               SOIC;         SOIC, SSOP      SOIC, SSOP

                                             20-pin SSOP                  20-pin SSOP         20-pin SSOP

                                                  PIC16C73A              PIC16C74A                   PIC16C76             PIC16C77

Clock        Maximum Frequency               20                     20                        20                     20

             of Operation (MHz)

             EPROM Program Memory            4K                     4K                        8K                     8K

Memory       (x14 words)

             Data Memory (bytes)             192                    192                       376                    376

             Timer Module(s)                 TMR0,                  TMR0,                     TMR0,                  TMR0,

                                             TMR1,                  TMR1,                     TMR1,                  TMR1,

                                             TMR2                   TMR2                      TMR2                   TMR2

Peripherals  Capture/Compare/PWM             2                      2                         2                      2

             Module(s)

             Serial Port(s)                  SPI/I2C, USART         SPI/I2C, USART            SPI/I2C, USART         SPI/I2C, USART

             (SPI/I2C, USART)

             Parallel Slave Port             —                      Yes                       —                      Yes

             A/D Converter (8-bit) Channels  5                      8                         5                      8

             Interrupt Sources               11                     12                        11                     12

             I/O Pins                        22                     33                        22                     33

             Voltage Range (Volts)           2.5-6.0                2.5-6.0                   2.5-6.0                2.5-6.0

Features     In-Circuit Serial Programming   Yes                    Yes                       Yes                    Yes

             Brown-out Reset                 Yes                    Yes                       Yes                    Yes

             Packages                        28-pin SDIP,           40-pin DIP;               28-pin SDIP,           40-pin DIP;

                                             SOIC                   44-pin PLCC,              SOIC                   44-pin PLCC,

                                                                    MQFP, TQFP                                       MQFP, TQFP

All PIC16/17 Family devices have Power-on Reset, selectable Watchdog Timer, selectable code protect and          high I/O current capabil-

ity. All PIC16C7XX Family devices use serial programming with clock pin RB6 and data pin RB7.

Note   1: Please contact your local Microchip sales office for availability of these devices.

DS30272A-page 4                                                                                        © 1997 Microchip Technology Inc.
                                                                                          PIC16C71X

2.0       PIC16C71X DEVICE VARIETIES                             2.3     Quick-Turnaround-Production (QTP)

A variety of frequency ranges and packaging options                      Devices

are available. Depending on application and production           Microchip offers a QTP Programming Service for fac-

requirements, the proper device option can be selected           tory production orders. This service is made available

using the information in the PIC16C71X Product Iden-             for users who choose not to program a medium to high

tification System section at the end of this data sheet.          quantity of units and whose code patterns have stabi-

When placing orders, please use that page of the data            lized. The devices are identical to the OTP devices but

sheet to specify the correct part number.                        with all EPROM locations and configuration options

For the PIC16C71X family, there are two device “types”           already programmed by the factory. Certain code and

as indicated in the device number:                               prototype verification procedures apply before produc-

1.   C,   as  in    PIC16C71.     These     devices   have       tion shipments are available. Please contact your local

     EPROM    type  memory        and  operate  over  the        Microchip Technology sales office for more details.

     standard voltage range.                                     2.4     Serialized Quick-Turnaround

2.   LC,  as  in    PIC16LC71.    These      devices  have               Production (SQTPSM) Devices

     EPROM    type      memory    and  operate  over      an

     extended voltage range.                                     Microchip offers a unique programming service where

                                                                 a few user-defined locations in each device are pro-

2.1       UV Erasable Devices                                    grammed with different serial numbers. The serial num-

The UV erasable version, offered in CERDIP package               bers may be random, pseudo-random, or sequential.

is   optimal  for   prototype     development   and       pilot  Serial  programming  allows   each   device  to  have    a

programs.     This  version       can    be  erased       and    unique  number  which    can  serve  as  an  entry-code,

reprogrammed to any of the oscillator modes.                     password, or ID number.

Microchip's   PICSTART®        Plus    and   PRO MATE® II

programmers       both  support      programming      of  the

PIC16C71X.

2.2       One-Time-Programmable (OTP)

          Devices

The availability of OTP devices is especially useful for

customers who need the flexibility for frequent code

updates and small volume applications.

The OTP devices, packaged in plastic packages, per-

mit the user to program them once. In addition to the

program memory, the configuration bits must also be

programmed.

© 1997 Microchip Technology Inc.                                                                      DS30272A-page 5
PIC16C71X

NOTES:

DS30272A-page 6  © 1997 Microchip Technology Inc.
                                                                                           PIC16C71X

3.0      ARCHITECTURAL OVERVIEW                                PIC16CXX devices contain an 8-bit ALU and working

The high performance of the PIC16CXX family can be             register. The ALU is a general purpose arithmetic unit.

attributed to a number of architectural features com-          It performs arithmetic and Boolean functions between

monly found in RISC microprocessors. To begin with,            the data in the working register and any register file.

the PIC16CXX uses a Harvard architecture, in which,            The ALU is 8-bits wide and capable of addition, sub-

program and data are accessed from separate memo-              traction, shift and logical operations. Unless otherwise

ries using separate buses. This improves bandwidth             mentioned,  arithmetic  operations        are  two's  comple-

over traditional von Neumann architecture in which pro-        ment in nature. In two-operand instructions, typically

gram and data are fetched from the same memory                 one operand is the working register (W register). The

using  the  same  bus.    Separating  program    and   data    other operand is a file register or an immediate con-

buses further allows instructions to be sized differently      stant. In single operand instructions, the operand is

than the 8-bit wide data word. Instruction opcodes are         either the W register or a file register.

14-bits wide making it possible to have all single word        The W register is an 8-bit working register used for ALU

instructions.  A  14-bit  wide  program    memory    access    operations. It is not an addressable register.

bus fetches a 14-bit instruction in a single cycle. A two-     Depending on the instruction executed, the ALU may

stage pipeline overlaps fetch and execution of instruc-        affect the values of the Carry (C), Digit Carry (DC), and

tions (Example 3-1). Consequently, all instructions (35)       Zero (Z) bits in the STATUS register. The C and DC bits

execute in a single cycle (200 ns @ 20 MHz) except for         operate as a borrow bit and a digit borrow out bit,

program branches.                                              respectively, in subtraction. See the SUBLW and SUBWF

The table below lists program memory (EPROM) and               instructions for examples.

data memory (RAM) for each PIC16C71X device.

       Device             Program          Data Memory

                          Memory

     PIC16C710            512 x 14         36 x 8

     PIC16C71             1K x 14          36 x 8

     PIC16C711            1K x 14          68 x 8

     PIC16C715            2K x 14          128 x 8

The PIC16CXX can directly or indirectly address its

register files or data memory. All special function regis-

ters, including the program counter, are mapped in the

data memory. The PIC16CXX has an orthogonal (sym-

metrical) instruction set that makes it possible to carry

out any operation on any register using any addressing

mode.    This  symmetrical  nature    and  lack  of  ‘special

optimal  situations’      make    programming    with  the

PIC16CXX simple yet efficient. In addition, the learning

curve is reduced significantly.

© 1997 Microchip Technology Inc.                                                                         DS30272A-page 7
PIC16C71X

FIGURE 3-1:      PIC16C71X BLOCK DIAGRAM

Device           Program Memory        Data Memory (RAM)

PIC16C710             512 x 14             36 x 8

PIC16C71              1K x 14              36 x 8

PIC16C711             1K x 14              68 x 8

PIC16C715             2K x 14              128 x 8

                                       13                                Data Bus           8      PORTA

                                           Program Counter

                      EPROM                                                                                RA0/AN0

                                                                                                           RA1/AN1

                      Program              8 Level Stack                      RAM                          RA2/AN2

                      Memory                     (13-bit)                     File                         RA3/AN3/VREF

                                                                         Registers                         RA4/T0CKI

             Program  14                                                 (1)

                 Bus                                          RAM  Addr             9              PORTB

                      Instruction reg                                    Addr MUX

                                                           7                             Indirect          RB0/INT

                                           Direct Addr                              8    Addr

                                                                              FSR      reg                 RB7:RB1

                                                                              STATUS reg

                                       8

                                                                      3             MUX

                                           Power-up

                                                 Timer

                      Instruction          Oscillator

                      Decode &             Start-up Timer                ALU

                      Control

                                           Power-on                8

                      Timing                     Reset

                      Generation                                         W reg

OSC1/CLKIN                                 Watchdog

OSC2/CLKOUT                                      Timer

                                           Brown-out

                                           Reset(2)

                                                                              Timer0

                                           MCLR  VDD, VSS

                                                                                    A/D

Note  1:         Higher order bits are from the STATUS register.

      2:         Brown-out Reset is not available on the PIC16C71.

DS30272A-page 8                                                                                    © 1997  Microchip Technology  Inc.
                                                                                                        PIC16C71X

TABLE 3-1:           PIC16C710/71/711/715 PINOUT DESCRIPTION

Pin Name             DIP  SSOP        SOIC  I/O/P  Buffer      Description

               Pin#       Pin#(4)     Pin#  Type   Type

OSC1/CLKIN           16   18          16    I      ST/CMOS(3)  Oscillator crystal input/external clock source input.

OSC2/CLKOUT          15   17          15    O      —           Oscillator crystal output. Connects to crystal or resonator in crystal

                                                               oscillator mode. In RC mode, OSC2 pin outputs CLKOUT which has

                                                               1/4 the frequency of OSC1, and denotes the instruction cycle rate.

MCLR/VPP             4    4           4     I/P    ST          Master clear (reset) input or programming voltage input. This pin is

                                                               an active low reset to the device.

                                                               PORTA is a bi-directional I/O port.

RA0/AN0              17   19          17    I/O    TTL                 RA0 can also be analog input0

RA1/AN1              18   20          18    I/O    TTL                 RA1 can also be analog input1

RA2/AN2              1    1           1     I/O    TTL                 RA2 can also be analog input2

RA3/AN3/V REF        2    2           2     I/O    TTL                 RA3 can also be analog input3 or analog reference voltage

RA4/T0CKI            3    3           3     I/O    ST                  RA4 can also be the clock input to the Timer0 module. Output is

                                                                       open drain type.

                                                               PORTB is a bi-directional I/O port. PORTB can be software pro-

                                                               grammed for internal weak pull-up on all inputs.

RB0/INT              6    7           6     I/O    TTL/ST(1)           RB0 can also be the external interrupt pin.

RB1                  7    8           7     I/O    TTL

RB2                  8    9           8     I/O    TTL

RB3                  9    10          9     I/O    TTL

RB4                  10   11          10    I/O    TTL                 Interrupt on change pin.

RB5                  11   12          11    I/O    TTL                 Interrupt on change pin.

RB6                  12   13          12    I/O    TTL/ST(2)           Interrupt on change pin. Serial programming clock.

RB7                  13   14          13    I/O    TTL/ST(2)           Interrupt on change pin. Serial programming data.

VSS                  5    4, 6        5     P      —           Ground reference for logic and I/O pins.

VDD                  14   15, 16      14    P      —           Positive supply for logic and I/O pins.

Legend:   I = input       O = output               I/O = input/output  P = power

                          — = Not used             TTL = TTL input     ST = Schmitt Trigger input

Note  1:  This buffer is a Schmitt Trigger  input when configured as the external interrupt.

      2:  This buffer is a Schmitt Trigger  input when used in serial programming mode.

      3:  This buffer is a Schmitt Trigger  input when configured in RC oscillator mode and a CMOS input otherwise.

      4:  The PIC16C71 is not available     in SSOP package.

© 1997 Microchip Technology Inc.                                                                                      DS30272A-page 9
PIC16C71X

3.1        Clocking Scheme/Instruction Cycle                                 3.2       Instruction Flow/Pipelining

The clock input (from OSC1) is internally divided by                         An “Instruction Cycle” consists of four Q cycles (Q1,

four  to   generate     four    non-overlapping      quadrature              Q2, Q3 and Q4). The instruction fetch and execute are

clocks namely Q1, Q2, Q3 and Q4. Internally, the pro-                        pipelined such that fetch takes one instruction cycle

gram  counter     (PC)    is  incremented         every  Q1,   the           while decode and execute takes another instruction

instruction is fetched from the program memory and                           cycle. However, due to the pipelining, each instruction

latched into the instruction register in Q4. The instruc-                    effectively       executes  in   one   cycle.  If  an   instruction

tion is decoded and executed during the following Q1                         causes the program counter to change (e.g. GOTO) then

through Q4. The clocks and instruction execution flow                         two       cycles  are  required  to    complete    the  instruction

is shown in Figure 3-2.                                                      (Example 3-1).

                                                                             A fetch cycle begins with the program counter (PC)

                                                                             incrementing in Q1.

                                                                             In the execution cycle, the fetched instruction is latched

                                                                             into the “Instruction Register” (IR) in cycle Q1. This

                                                                             instruction is then decoded and executed during the

                                                                             Q2, Q3, and Q4 cycles. Data memory is read during Q2

                                                                             (operand      read)    and  written    during     Q4    (destination

                                                                             write).

FIGURE 3-2:          CLOCK/INSTRUCTION CYCLE

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

               OSC1

                    Q1

                  Q2                                                                                                               Internal

                  Q3                                                                                                               phase

                                                                                                                                   clock

                  Q4

                  PC                      PC                        PC+1                                     PC+2

      OSC2/CLKOUT

            (RC mode)

                                Fetch INST (PC)

                                Execute INST (PC-1)                 Fetch INST (PC+1)

                                                                    Execute INST (PC)                 Fetch INST (PC+2)

                                                                                                      Execute INST (PC+1)

EXAMPLE 3-1:            INSTRUCTION PIPELINE FLOW

                                          Tcy0           Tcy1       Tcy2                  Tcy3               Tcy4               Tcy5

1.    MOVLW  55h                      Fetch 1        Execute 1

2.    MOVWF  PORTB                                       Fetch 2    Execute 2

3.    CALL   SUB_1                                                  Fetch 3            Execute 3

4.    BSF   PORTA,   BIT3     (Forced     NOP)                                         Fetch 4               Flush

5.    Instruction      @  address     SUB_1                                                           Fetch SUB_1          Execute SUB_1

All   instructions     are    single  cycle,    except   for  any   program  branches.         These  take   two    cycles  since    the     fetch

instruction is “flushed” from the pipeline while the new instruction is being fetched and then executed.

DS30272A-page 10                                                                                             © 1997 Microchip Technology Inc.
                                                                                       PIC16C71X

4.0                 MEMORY ORGANIZATION                   FIGURE 4-2:           PIC16C71/711 PROGRAM

                                                                                MEMORY MAP AND STACK

4.1                 Program Memory Organization

The PIC16C71X family has a 13-bit program counter                                      PC<12:0>

capable of addressing an 8K x 14 program memory                        CALL,  RETURN           13

space. The amount of program memory available to                       RETFIE,  RETLW

each device is listed below:

                             Program                                                  Stack Level 1

             Device          Memory        Address Range

PIC16C710                    512 x 14      0000h-01FFh                                Stack Level 8

PIC16C71                     1K x 14       0000h-03FFh

PIC16C711                    1K x 14       0000h-03FFh                                Reset Vector      0000h

PIC16C715                    2K x 14       0000h-07FFh

For those devices with less than 8K program memory,       User Memory  Space

accessing a location above the physically implemented                                 Interrupt Vector  0004h

address will cause a wraparound.                                                                        0005h

The reset vector is at 0000h and the interrupt vector is                        On-chip Program

at 0004h.                                                                              Memory

                                                                                                        03FFh

FIGURE 4-1:           PIC16C710 PROGRAM                                                                 0400h

                      MEMORY MAP AND STACK

                             PC<12:0>                                                                   1FFFh

             CALL,  RETURN             13

             RETFIE,  RETLW                               FIGURE 4-3:           PIC16C715 PROGRAM

                                                                                MEMORY MAP AND STACK

                      Stack Level 1

                                                                                       PC<12:0>

                                                          CALL,               RETURN           13

                      Stack Level 8                       RETFIE,               RETLW

                      Reset Vector         0000h                                Stack Level 1

User Memory  Space                                                              Stack Level 8

                      Interrupt Vector     0004h

                      On-chip Program      0005h                                Reset Vector            0000h

                             Memory

                                           01FFh

                                           0200h

                                                                                Interrupt Vector        0004h

                                                                                                        0005h

                                           1FFFh

                                                                                On-chip Program

                                                                                       Memory

                                                                                                        07FFh

                                                                                                        0800h

                                                                                                        1FFFh

© 1997 Microchip Technology Inc.                                                                        DS30272A-page 11
PIC16C71X

4.2     Data Memory Organization                            FIGURE 4-4:        PIC16C710/71 REGISTER FILE

The data memory is partitioned into two Banks which                            MAP

contain the General Purpose Registers and the Special

Function Registers. Bit RP0 is the bank select bit.         File                                         File

RP0 (STATUS<5>) = 1 → Bank 1                                Address                                      Address

RP0 (STATUS<5>) = 0 → Bank 0                                00h       INDF(1)                   INDF(1)  80h

Each Bank extends up to 7Fh (128 bytes). The lower          01h       TMR0          OPTION               81h

locations of each Bank are reserved for the Special         02h          PCL                    PCL      82h

Function Registers. Above the Special Function Regis-       03h       STATUS        STATUS               83h

ters are General Purpose Registers implemented as           04h          FSR                    FSR      84h

static RAM. Both Bank 0 and Bank 1 contain special          05h       PORTA                     TRISA    85h

function registers. Some "high use" special function        06h       PORTB                     TRISB    86h

registers from Bank 0 are mirrored in Bank 1 for code       07h                     PCON(2)              87h

reduction and quicker access.                               08h       ADCON0        ADCON1               88h

4.2.1   GENERAL PURPOSE REGISTER FILE                       09h       ADRES                     ADRES    89h

The register file can be accessed either directly, or indi-  0Ah       PCLATH        PCLATH               8Ah

rectly  through   the  File    Select  Register      FSR    0Bh       INTCON        INTCON               8Bh

(Section 4.5).                                              0Ch                     General              8Ch

                                                                      General       Purpose

                                                                      Purpose       Register

                                                                      Register      Mapped

                                                                                    in Bank 0(3)

                                                            2Fh                                          AFh

                                                            30h                                          B0h

                                                            7Fh                                          FFh

                                                                      Bank 0                    Bank 1

                                                                      Unimplemented data memory locations, read

                                                                      as '0'.

                                                            Note  1:  Not a physical register.

                                                                  2:  The PCON register is not implemented on the

                                                                      PIC16C71.

                                                                  3:  These locations are unimplemented in Bank 1.

                                                                      Any access to these locations will access the

                                                                      corresponding Bank 0 register.

DS30272A-page 12                                                                    © 1997 Microchip Technology Inc.
                                                                                        PIC16C71X

FIGURE 4-5:        PIC16C711 REGISTER FILE               FIGURE 4-6:          PIC16C715        REGISTER FILE

                   MAP                                                        MAP

File                                         File              File                                      File

Address                                      Address     Address                                         Address

00h       INDF(1)                   INDF(1)  80h               00h    INDF(1)                  INDF(1)   80h

01h       TMR0                    OPTION     81h               01h            TMR0             OPTION    81h

02h          PCL                    PCL      82h               02h            PCL              PCL       82h

03h       STATUS                  STATUS     83h               03h    STATUS                   STATUS    83h

04h          FSR                    FSR      84h               04h            FSR              FSR       84h

05h       PORTA                     TRISA    85h               05h    PORTA                    TRISA     85h

06h       PORTB                     TRISB    86h               06h    PORTB                    TRISB     86h

07h                                 PCON     87h               07h                                       87h

08h       ADCON0                  ADCON1     88h               08h                                       88h

09h       ADRES                   ADRES      89h               09h                                       89h

0Ah       PCLATH                  PCLATH     8Ah               0Ah    PCLATH                   PCLATH    8Ah

0Bh       INTCON                  INTCON     8Bh               0Bh    INTCON                   INTCON    8Bh

0Ch                                          8Ch               0Ch            PIR1             PIE1      8Ch

                                  General                      0Dh                                       8Dh

          General                 Purpose                      0Eh                             PCON      8Eh

          Purpose                 Register

                                                               0Fh                                       8Fh

          Register                Mapped                       10h                                       90h

                        in Bank 0(2)                           11h                                       91h

4Fh                                          CFh               12h                                       92h

50h                                          D0h               13h                                       93h

                                                               14h                                       94h

                                                               15h                                       95h

                                                               16h                                       96h

                                                               17h                                       97h

                                                               18h                                       98h

                                                               19h                                       99h

                                                               1Ah                                       9Ah

7Fh                                          FFh               1Bh                                       9Bh

          Bank 0                    Bank 1                     1Ch                                       9Ch

                                                               1Dh                                       9Dh

          Unimplemented data memory locations, read            1Eh    ADRES                              9Eh

          as '0'.                                              1Fh    ADCON0                   ADCON1    9Fh

Note  1:  Not a physical register.                             20h                                       A0h

      2:  These locations are unimplemented in Bank 1.                        General          General

          Any access to these locations will access the                       Purpose          Purpose

          corresponding Bank 0 register.                                      Register         Register  BFh

                                                                                                         C0h

                                                               7Fh                                       FFh

                                                                      Bank 0                   Bank 1

                                                                     Unimplemented data memory locations, read

                                                                     as '0'.

                                                         Note  1:    Not a physical register.

© 1997 Microchip Technology Inc.                                                               DS30272A-page 13
PIC16C71X

4.2.2       SPECIAL FUNCTION REGISTERS                                         The special function registers can be classified into two

                                                                               sets (core and peripheral). Those registers associated

The Special Function Registers are registers used by                           with the “core” functions are described in this section,

the CPU and Peripheral Modules for controlling the                             and those related to the operation of the peripheral fea-

desired operation of the device. These registers are                           tures are described in the section of that peripheral

implemented as static RAM.                                                     feature.

TABLE       4-1:    PIC16C710/71/711 SPECIAL FUNCTION REGISTER SUMMARY

                                                                                                                                 Value on:   Value on all

Address     Name          Bit 7          Bit 6      Bit 5        Bit 4  Bit 3   Bit 2             Bit 1                   Bit 0  POR,        other resets

                                                                                                                                 BOR         (1)

Bank 0

00h(3)      INDF          Addressing this location uses contents of FSR to address data memory (not a physical register)         0000  0000  0000  0000

01h         TMR0          Timer0 module’s register                                                                               xxxx  xxxx  uuuu  uuuu

02h(3)      PCL           Program Counter's (PC) Least Significant Byte                                                           0000  0000  0000  0000

03h(3)      STATUS        IRP(5)  RP1(5)            RP0          TO     PD                     Z  DC                      C      0001  1xxx  000q  quuu

04h(3)      FSR           Indirect data memory address pointer                                                                   xxxx  xxxx  uuuu  uuuu

05h         PORTA         —              —          —           PORTA Data Latch when written: PORTA pins when read              ---x  0000  ---u  0000

06h         PORTB         PORTB Data Latch when written: PORTB pins when read                                                    xxxx  xxxx  uuuu  uuuu

07h              —        Unimplemented                                                                                          —           —

08h         ADCON0        ADCS1   ADCS0             (6)          CHS1   CHS0    GO/DONE           ADIF   ADON                    00-0  0000  00-0  0000

09h(3)      ADRES         A/D Result Register                                                                                    xxxx  xxxx  uuuu  uuuu

0Ah(2,3)    PCLATH        —              —          —           Write Buffer for the upper 5 bits of the Program Counter         ---0  0000  ---0  0000

0Bh(3)      INTCON        GIE            ADIE       T0IE         INTE   RBIE    T0IF              INTF                    RBIF   0000  000x  0000  000u

Bank 1

80h(3)      INDF          Addressing this location uses contents of FSR to address data memory (not a physical register)         0000  0000  0000  0000

81h         OPTION        RBPU    INTEDG            T0CS         T0SE   PSA     PS2               PS1                     PS0    1111  1111  1111  1111

82h(3)      PCL           Program Counter's (PC) Least Significant Byte                                                           0000  0000  0000  0000

83h(3)      STATUS        IRP(5)  RP1(5)            RP0          TO     PD                     Z  DC                      C      0001  1xxx  000q  quuu

84h(3)      FSR           Indirect data memory address pointer                                                                   xxxx  xxxx  uuuu  uuuu

85h         TRISA         —              —          —           PORTA Data Direction Register                                    ---1  1111  ---1  1111

86h         TRISB         PORTB Data Direction Control Register                                                                  1111  1111  1111  1111

87h(4)      PCON          —              —          —            —      —                —        POR                     BOR    ----  --qq  ----  --uu

88h         ADCON1        —              —          —            —      —                —        PCFG1  PCFG0                   ----  --00  ----  --00

89h(3)      ADRES         A/D Result Register                                                                                    xxxx  xxxx  uuuu  uuuu

8Ah(2,3)    PCLATH        —              —          —           Write Buffer for the upper 5 bits of the Program Counter         ---0  0000  ---0  0000

8Bh(3)      INTCON        GIE            ADIE       T0IE         INTE   RBIE    T0IF              INTF                    RBIF   0000 000x   0000  000u

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

            Shaded locations are unimplemented, read as ‘0’.

Note    1:  Other (non power-up) resets include external reset through MCLR and Watchdog Timer Reset.

        2:  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.

        3:  These registers can be addressed from either bank.

        4:  The PCON register is not physically implemented in the PIC16C71, read as ’0’.

        5:  The IRP and RP1 bits are reserved on the PIC16C710/71/711, always maintain these bits clear.

        6:  Bit5 of ADCON0 is a General Purpose R/W bit for the PIC16C710/711 only. For the PIC16C71, this bit is unimplemented,

            read as '0'.

DS30272A-page 14                                                                                         © 1997 Microchip Technology Inc.
                                                                                                   PIC16C71X

TABLE       4-2:    PIC16C715 SPECIAL FUNCTION REGISTER SUMMARY

                                                                                                                           Value on:   Value on all

Address     Name    Bit 7          Bit 6      Bit 5       Bit 4   Bit 3         Bit 2    Bit 1                      Bit 0  POR,        other resets

                                                                                                                           BOR, PER    (3)

Bank 0

00h(1)      INDF    Addressing this location uses contents of FSR to address data memory (not a physical register)         0000  0000  0000  0000

01h         TMR0    Timer0 module’s register                                                                               xxxx  xxxx  uuuu  uuuu

02h(1)      PCL     Program Counter's (PC) Least Significant Byte                                                           0000  0000  0000  0000

03h(1)      STATUS  IRP(4)        RP1(4)      RP0         TO      PD            Z        DC                         C      0001  1xxx  000q  quuu

04h(1)      FSR     Indirect data memory address pointer                                                                   xxxx  xxxx  uuuu  uuuu

05h         PORTA   —              —          —           PORTA Data Latch when written: PORTA pins when read              ---x  0000  ---u  0000

06h         PORTB   PORTB Data Latch when written: PORTB pins when read                                                    xxxx  xxxx  uuuu  uuuu

07h              —  Unimplemented                                                                                          —           —

08h              —  Unimplemented                                                                                          —           —

09h              —  Unimplemented                                                                                          —           —

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

0Bh(1)      INTCON  GIE            PEIE       T0IE        INTE    RBIE          T0IF     INTF                       RBIF   0000  000x  0000  000u

0Ch         PIR1    —              ADIF       —               —   —             —        —                          —      -0--  ----  -0--  ----

0Dh              —  Unimplemented                                                                                          —           —

0Eh              —  Unimplemented                                                                                          —           —

0Fh              —  Unimplemented                                                                                          —           —

10h              —  Unimplemented                                                                                          —           —

11h              —  Unimplemented                                                                                          —           —

12h              —  Unimplemented                                                                                          —           —

13h              —  Unimplemented                                                                                          —           —

14h              —  Unimplemented                                                                                          —           —

15h              —  Unimplemented                                                                                          —           —

16h              —  Unimplemented                                                                                          —           —

17h              —  Unimplemented                                                                                          —           —

18h              —  Unimplemented                                                                                          —           —

19h              —  Unimplemented                                                                                          —           —

1Ah              —  Unimplemented                                                                                          —           —

1Bh              —  Unimplemented                                                                                          —           —

1Ch              —  Unimplemented                                                                                          —           —

1Dh              —  Unimplemented                                                                                          —           —

1Eh         ADRES   A/D Result Register                                                                                    xxxx  xxxx  uuuu  uuuu

1Fh         ADCON0  ADCS1         ADCS0       CHS2        CHS1    CHS0          GO/DONE  —              ADON               0000  00-0  0000  00-0

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

            Shaded locations are unimplemented, read as ‘0’.

Note    1:  These registers can be addressed from either bank.

        2:  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.

        3:  Other (non power-up) resets include external reset through MCLR and Watchdog Timer Reset.

        4:  The IRP and RP1 bits are reserved on the PIC16C715, always maintain these bits clear.

© 1997 Microchip Technology Inc.                                                                                           DS30272A-page 15
PIC16C71X

TABLE       4-2:     PIC16C715 SPECIAL FUNCTION REGISTER SUMMARY (Cont.’d)

                                                                                                                            Value on:   Value on all

Address     Name     Bit 7          Bit 6  Bit 5           Bit 4   Bit 3        Bit 2                   Bit 1        Bit 0  POR,        other resets

                                                                                                                            BOR, PER    (3)

Bank 1

80h(1)      INDF     Addressing this location uses contents of FSR to address data memory (not a physical register)         0000  0000  0000  0000

81h         OPTION   RBPU    INTEDG        T0CS            T0SE    PSA          PS2                     PS1          PS0    1111  1111  1111  1111

82h(1)      PCL      Program Counter's (PC) Least Significant Byte                                                           0000  0000  0000  0000

83h(1)      STATUS   IRP(4)  RP1(4)        RP0             TO      PD           Z                       DC           C      0001  1xxx  000q  quuu

84h(1)      FSR      Indirect data memory address pointer                                                                   xxxx  xxxx  uuuu  uuuu

85h         TRISA    —              —      PORTA Data Direction Register                                                    --11  1111  --11  1111

86h         TRISB    PORTB Data Direction Register                                                                          1111  1111  1111  1111

87h               —  Unimplemented                                                                                          —           —

88h               —  Unimplemented                                                                                          —           —

89h               —  Unimplemented                                                                                          —           —

8Ah(1,2)    PCLATH   —              —      —               Write Buffer for the upper 5 bits of the PC                      ---0  0000  ---0  0000

8Bh(1)      INTCON   GIE            PEIE   T0IE            INTE    RBIE         T0IF                    INTF   RBIF         0000  000x  0000  000u

8Ch         PIE1     —              ADIE   —                  —    —            —                       —            —      -0--  ----  -0--  ----

8Dh               —  Unimplemented                                                                                          —           —

8Eh         PCON     MPEEN          —      —                  —    —            PER                     POR          BOR    u---  -1qq  u---  -1uu

8Fh               —  Unimplemented                                                                                          —           —

90h               —  Unimplemented                                                                                          —           —

91h               —  Unimplemented                                                                                          —           —

92h               —  Unimplemented                                                                                          —           —

93h               —  Unimplemented                                                                                          —           —

94h               —  Unimplemented                                                                                          —           —

95h               —  Unimplemented                                                                                          —           —

96h               —  Unimplemented                                                                                          —           —

97h               —  Unimplemented                                                                                          —           —

98h               —  Unimplemented                                                                                          —           —

99h               —  Unimplemented                                                                                          —           —

9Ah               —  Unimplemented                                                                                          —           —

9Bh               —  Unimplemented                                                                                          —           —

9Ch               —  Unimplemented                                                                                          —           —

9Dh               —  Unimplemented                                                                                          —           —

9Eh               —  Unimplemented                                                                                          —           —

9Fh         ADCON1   —              —      —                  —    —            —      PCFG1                   PCFG0        ---- --00   ----  --00

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

            Shaded locations are unimplemented, read as ‘0’.

Note    1:  These registers can be addressed from either bank.

        2:  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.

        3:  Other (non power-up) resets include external reset through MCLR and Watchdog Timer Reset.

        4:  The IRP and RP1 bits are reserved on the PIC16C715, always maintain these bits clear.

DS30272A-page 16                                                                                               © 1997 Microchip Technology Inc.
                                                                                             PIC16C71X

4.2.2.1     STATUS REGISTER                                         It is recommended, therefore, that only BCF,             BSF,

                                                                    SWAPF and MOVWF instructions are used to alter the

Applicable Devices       710 71 711 715                             STATUS     register  because  these        instructions  do  not

The STATUS register, shown in Figure 4-7, contains                  affect the Z, C or DC bits from the STATUS register. For

the arithmetic status of the ALU, the RESET status and              other instructions, not affecting any status bits, see the

the bank select bits for data memory.                               "Instruction Set Summary."

The STATUS register can be the destination for any                      Note 1:   For those devices that do not use bits IRP

instruction, as with any other register. If the STATUS                            and RP1 (STATUS<7:6>), maintain these

register is the destination for an instruction that affects                       bits clear to ensure   upward compatibility

the Z, DC or C bits, then the write to these three bits is                        with future products.

disabled. These bits are set or cleared according to the                Note 2:   The C and DC bits operate as a borrow

device logic. Furthermore, the TO and PD bits are not                             and digit borrow bit, respectively, in sub-

writable. Therefore, the result of an instruction with the                        traction.  See  the    SUBLW  and          SUBWF

STATUS register as destination may be different than                              instructions for examples.

intended.

For example, CLRF        STATUS will clear the upper-three

bits and set the Z bit.  This leaves the STATUS register

as 000u u1uu (where u = unchanged).

FIGURE 4-7:  STATUS REGISTER (ADDRESS                        03h,   83h)

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        C          R = Readable bit

bit7                                                                                 bit0    W = Writable bit

                                                                                             U = Unimplemented bit,

                                                                                                  read as ‘0’

                                                                                             - n = Value at POR reset

bit 7:      IRP: Register Bank Select bit (used for indirect addressing)

            1 = Bank 2, 3 (100h - 1FFh)

            0 = Bank 0, 1 (00h - FFh)

bit   6-5:  RP1:RP0: Register Bank Select bits (used for direct addressing)

            11 = Bank 3 (180h - 1FFh)

            10 = Bank 2 (100h - 17Fh)

            01 = Bank 1 (80h - FFh)

            00 = Bank 0 (00h - 7Fh)

            Each bank is 128 bytes

bit   4:    TO: Time-out bit

            1 = After power-up, CLRWDT instruction, or SLEEP instruction

            0 = A WDT time-out occurred

bit   3:    PD: Power-down bit

            1 = After power-up or by the CLRWDT instruction

            0 = By execution of the SLEEP instruction

bit   2:    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

bit   1:    DC: Digit carry/borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions)(for borrow the polarity is reversed)

            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

bit   0:    C: Carry/borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions)

            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: 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 or low order

            bit of the source register.

© 1997 Microchip Technology Inc.                                                                               DS30272A-page 17
PIC16C71X

4.2.2.2     OPTION REGISTER                                          Note:  To achieve a 1:1 prescaler assignment for

Applicable Devices      710 71 711 715                                      the TMR0 register, assign the prescaler to

                                                                            the  Watchdog  Timer  by       setting  bit  PSA

The OPTION register is a readable and writable regis-                       (OPTION<3>).

ter which contains various control bits to configure the

TMR0/WDT    prescaler,  the    External  INT      Interrupt,

TMR0, and the weak pull-ups on PORTB.

FIGURE 4-8:       OPTION REGISTER (ADDRESS 81h, 181h)

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        R   = Readable bit

bit7                                                                             bit0  W   = Writable bit

                                                                                       U   = Unimplemented bit,

                                                                                           read as ‘0’

                                                                                       -n  = Value at POR reset

bit   7:    RBPU: PORTB Pull-up Enable bit

            1 = PORTB pull-ups are disabled

            0 = PORTB pull-ups are enabled by individual port latch values

bit   6:    INTEDG: Interrupt Edge Select bit

            1 = Interrupt on rising edge of RB0/INT pin

            0 = Interrupt on falling edge of RB0/INT pin

bit   5:    T0CS: TMR0 Clock Source Select bit

            1 = Transition on RA4/T0CKI pin

            0 = Internal instruction cycle clock (CLKOUT)

bit   4:    T0SE: TMR0 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

bit   3:    PSA: Prescaler Assignment bit

            1 = Prescaler is assigned to the WDT

            0 = Prescaler is assigned to the Timer0 module

bit   2-0:  PS2:PS0: 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

DS30272A-page 18                                                                          © 1997 Microchip Technology Inc.
                                                                                         PIC16C71X

4.2.2.3   INTCON REGISTER                                      Note:     Interrupt flag bits get set when an interrupt

Applicable Devices            710 71 711 715                             condition occurs regardless of the state of

                                                                         its corresponding enable bit or the global

The INTCON Register is a readable and writable regis-                    enable bit, GIE (INTCON<7>).

ter which contains various enable and flag bits for the

TMR0 register overflow, RB Port change and External

RB0/INT pin interrupts.

FIGURE 4-9:  INTCON REGISTER (ADDRESS                   0Bh,   8Bh)

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

     GIE     ADIE             T0IE  INTE       RBIE     T0IF   INTF      RBIF        R   = Readable bit

bit7                                                                     bit0        W   = Writable bit

                                                                                     U   = Unimplemented bit,

                                                                                            read as ‘0’

                                                                                     -n  = Value at POR reset

bit 7:    GIE:(1) Global Interrupt Enable bit

          1 = Enables all un-masked interrupts

          0 = Disables all interrupts

bit   6:  ADIE: A/D Converter Interrupt Enable bit

          1 = Enables A/D interrupt

          0 = Disables A/D interrupt

bit   5:  T0IE: TMR0 Overflow Interrupt Enable bit

          1 = Enables the TMR0 interrupt

          0 = Disables the TMR0 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: RB Port Change Interrupt Enable bit

          1 = Enables the RB port change interrupt

          0 = Disables the RB port change interrupt

bit   2:  T0IF: TMR0 Overflow Interrupt Flag bit

          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: RB Port Change Interrupt Flag bit

          1 = At least one of the RB7:RB4 pins changed state (must be cleared in software)

          0 = None of the RB7:RB4 pins have changed state

Note 1:   For the PIC16C71, if an interrupt occurs while the GIE bit is being cleared, the GIE bit may be uninten-

          tionally re-enabled by the RETFIE instruction in the user’s Interrupt Service Routine. Refer to Section 8.5

          for a detailed description.

      Interrupt flag bits get set when an interrupt condition occurs regardless of the state of its corresponding enable bit or the

      global enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to

      enabling an interrupt.

© 1997 Microchip Technology Inc.                                                                         DS30272A-page 19
PIC16C71X

4.2.2.4     PIE1 REGISTER                                       Note:  Bit  PEIE  (INTCON<6>)         must  be  set  to

Applicable Devices      710 71 711 715                                 enable any peripheral interrupt.

This register contains the individual enable bits for the

Peripheral interrupts.

FIGURE 4-10:      PIE1 REGISTER (ADDRESS 8Ch)

     U-0    R/W-0       U-0  U-0            U-0            U-0  U-0    U-0

      —     ADIE        —    —              —              —    —      —          R   = Readable bit

bit7                                                                        bit0  W   = Writable bit

                                                                                  U   = Unimplemented bit,

                                                                                      read as ‘0’

                                                                                  -n  = Value at POR reset

bit 7:      Unimplemented: Read as '0'

bit   6:    ADIE: A/D Converter Interrupt Enable bit

            1 = Enables the A/D interrupt

            0 = Disables the A/D interrupt

bit   5-0:  Unimplemented: Read as '0'

DS30272A-page 20                                                                     © 1997 Microchip Technology     Inc.
                                                                                         PIC16C71X

4.2.2.5     PIR1 REGISTER                                         Note:  Interrupt flag bits get set when an interrupt

Applicable Devices      710 71 711 715                                   condition occurs regardless of the state of

                                                                         its corresponding enable bit or the global

This register contains the individual flag bits     for  the              enable bit, GIE (INTCON<7>). User soft-

Peripheral interrupts.                                                   ware should ensure the appropriate inter-

                                                                         rupt flag bits are clear prior to enabling an

                                                                         interrupt.

FIGURE 4-11:  PIR1 REGISTER (ADDRESS                    0Ch)

     U-0    R/W-0       U-0       U-0           U-0          U-0  U-0    U-0

      —     ADIF        —         —             —            —    —      —           R   = Readable bit

bit7                                                                          bit0   W   = Writable bit

                                                                                     U   = Unimplemented bit,

                                                                                         read as ‘0’

                                                                                     -n  = Value at POR reset

bit 7:      Unimplemented: Read as '0'

bit   6:    ADIF: A/D Converter Interrupt Flag bit

            1 = An A/D conversion completed

            0 = The A/D conversion is not complete

bit   5-0:  Unimplemented: Read as '0'

© 1997 Microchip Technology Inc.                                                                         DS30272A-page 21
PIC16C71X

4.2.2.6           PCON REGISTER                                          Note:  BOR is unknown on Power-on Reset. It

Applicable Devices                 710 71 711 715                               must then be set by the user and checked

                                                                                on  subsequent  resets     to  see     if  BOR  is

The Power Control (PCON) register contains a flag bit                            clear, indicating a brown-out has occurred.

to  allow         differentiation  between  a   Power-on  Reset                 The BOR status bit is a don't care and is

(POR)         to  an  external     MCLR  Reset   or  WDT  Reset.                not necessarily predictable if the brown-out

Those devices with brown-out detection circuitry con-                           circuit is disabled (by clearing the BODEN

tain an additional bit to differentiate a Brown-out Reset                       bit in the Configuration word).

(BOR) condition from a Power-on Reset condition. For

the PIC16C715 the PCON register also contains status

bits MPEEN and PER. MPEEN reflects the value of the

MPEEN bit in the configuration word. PER indicates a

parity error reset has occurred.

FIGURE 4-12:             PCON REGISTER (ADDRESS 8Eh), PIC16C710/711

         U-0          U-0          U-0      U-0      U-0          U-0    R/W-0  R/W-q

          —           —            —        —        —            —      POR    BOR       R   = Readable bit

    bit7                                                                            bit0  W   = Writable bit

                                                                                          U   = Unimplemented bit,

                                                                                                read as ‘0’

                                                                                          -n  = Value at POR reset

    bit 7-2:      Unimplemented: Read as '0'

    bit   1:      POR: Power-on Reset Status bit

                  1 = No Power-on Reset occurred

                  0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)

    bit   0:      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 Brown-out Reset occurs)

FIGURE 4-13:             PCON REGISTER (ADDRESS 8Eh), PIC16C715

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

    MPEEN             —            —        —        —            PER    POR    BOR(1)    R   = Readable bit

    bit7                                                                            bit0  W   = Writable bit

                                                                                          U   = Unimplemented bit,

                                                                                                read as ‘0’

                                                                                          -n  = Value at POR reset

    bit   7:      MPEEN: Memory Parity Error Circuitry Status bit

                  Reflects the value of configuration word bit, MPEEN

    bit   6-3:    Unimplemented: Read as '0'

    bit   2:      PER: Memory Parity Error Reset Status bit

                  1 = No Error occurred

                  0 = Program Memory Fetch Parity Error occurred (must be set in software after a Parity Error Reset)

    bit   1:      POR: Power-on Reset Status bit

                  1 = No Power-on Reset occurred

                  0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)

    bit   0:      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 Brown-out Reset occurs)

DS30272A-page 22                                                                             © 1997 Microchip Technology Inc.
                                                                                                PIC16C71X

4.3        PCL and PCLATH                                              4.3.2    STACK

The program counter (PC) is 13-bits wide. The low byte                 The PIC16CXX family has an 8 level deep x 13-bit wide

comes from the PCL register, which is a readable and                   hardware stack. The stack space is not part of either

writable register. The upper bits (PC<12:8>) are not                   program or data space and the stack pointer is not

readable,       but  are      indirectly  writable  through      the   readable or writable. The PC is PUSHed onto the stack

PCLATH register. On any reset, the upper bits of the                   when a CALL instruction is executed or an interrupt

PC will be cleared.           Figure 4-14 shows the two situa-         causes a branch. The stack is POPed in the event of a

tions for the loading of the PC. The upper example in                  RETURN,  RETLW or a RETFIE instruction execution.

the figure shows how the PC is loaded on a write to                     PCLATH is not affected by a PUSH or POP operation.

PCL (PCLATH<4:0> → PCH). The lower example in the                      The stack operates as a circular buffer. This means that

figure shows how the PC is loaded during a CALL or                      after the stack has been PUSHed eight times, the ninth

GOTO instruction (PCLATH<4:3> → PCH).                                  push overwrites the value that was stored from the first

FIGURE 4-14:            LOADING OF PC IN                               push. The tenth push overwrites the second push (and

                        DIFFERENT SITUATIONS                           so on).

           PCH                    PCL                                  Note 1:  There are no status bits to indicate stack

                                                                                overflow or stack underflow conditions.

       12               8     7                  0  Instruction with

PC                                                  PCL as             Note 2:  There    are    no   instructions/mnemonics

                                                    Destination                 called PUSH or POP. These are actions

                     PCLATH<4:0>              8                                 that occur from the execution of the CALL,

           5                                        ALU

                                                                                RETURN,         RETLW,  and      RETFIE   instruc-

                        PCLATH                                                  tions,   or  the     vectoring   to   an  interrupt

                                                                                address.

           PCH                   PCL                                   4.4      Program Memory Paging

       12  11   10   8     7                     0                     The    PIC16C71X  devices     ignore     both  paging  bits

PC                                                  GOTO,   CALL       (PCLATH<4:3>,     which  are  used    to  access   program

       2   PCLATH<4:3>                    11                           memory when more than one page is available. The

                                                    Opcode <10:0>      use of PCLATH<4:3> as general purpose read/write

                     PCLATH                                            bits for the PIC16C71X is not recommended since this

                                                                       may affect upward compatibility with future products.

4.3.1      COMPUTED GOTO

A computed GOTO is accomplished by adding an off-

set to the program counter (ADDWF PCL). When doing a

table     read  using      a  computed    GOTO      method,      care

should be exercised if the table location crosses a PCL

memory boundary (each 256 byte block). Refer to the

application note “Implementing a Table Read" (AN556).

© 1997 Microchip Technology Inc.                                                                                 DS30272A-page 23
PIC16C71X

Example 4-1    shows  the    calling    of  a  subroutine  in        4.5        Indirect Addressing, INDF and FSR

page 1 of the program memory. This example assumes                              Registers

that PCLATH is saved and restored by the interrupt ser-              The INDF register is not a physical register. Addressing

vice routine (if interrupts are used).                               the INDF register will cause indirect addressing.

EXAMPLE 4-1:          CALL OF A SUBROUTINE IN                        Indirect addressing is possible by using the INDF reg-

                      PAGE 1 FROM PAGE 0                             ister. Any instruction using the INDF register actually

ORG   0x500                                                          accesses the register pointed to by the File Select Reg-

BSF     PCLATH,3      ;Select    page   1     (800h-FFFh)            ister, FSR. Reading the INDF register itself indirectly

BCF     PCLATH,4      ;Only  on  >4K    devices                      (FSR = '0') will read 00h. Writing to the INDF register

CALL    SUB1_P1       ;Call  subroutine           in                 indirectly results in a no-operation (although status bits

        :             ;page  1   (800h-FFFh)                         may be affected). An effective 9-bit address is obtained

        :                                                            by concatenating the 8-bit FSR register and the IRP bit

        :                                                            (STATUS<7>), as shown in Figure 4-15. However, IRP

ORG   0x900                                                          is not used in the PIC16C71X devices.

SUB1_P1:              ;called    subroutine

        :             ;page  1   (800h-FFFh)                         A  simple  program    to   clear  RAM   locations    20h-2Fh

        :                                                            using indirect addressing is shown in Example 4-2.

RETURN                ;return    to     Call   subroutine

                      ;in  page  0      (000h-7FFh)                  EXAMPLE 4-2:          INDIRECT ADDRESSING

                                                                                movlw    0x20   ;initialize           pointer

                                                                                movwf    FSR    ;to    RAM

                                                                     NEXT       clrf     INDF   ;clear       INDF     register

                                                                                incf     FSR,F  ;inc         pointer

                                                                                btfss    FSR,4  ;all         done?

                                                                                goto     NEXT   ;no    clear        next

                                                                     CONTINUE

                                                                                :                      ;yes  continue

FIGURE 4-15:      DIRECT/INDIRECT ADDRESSING

               Direct Addressing                                                           Indirect Addressing

RP1:RP0        6      from opcode              0                                IRP(1)     7           FSR register       0

bank select    location select                                                     bank select               location select

                                               00     01       10          11

                                        00h           80h      100h       180h

                                                                     Not

                  Data                                               Used

                  Memory

                                        7Fh           FFh      17Fh       1FFh

                                            Bank 0    Bank 1   Bank 2      Bank 3

      For register file map detail see Figure 4-4.

      Note 1:     The RP1 and IRP bits are reserved, always maintain these bits clear.

DS30272A-page 24                                                                                © 1997 Microchip Technology Inc.
                                                                                                  PIC16C71X

5.0        I/O PORTS                                                   FIGURE      5-1:     BLOCK DIAGRAM OF

Applicable Devices               710 71 711 715                                             RA3:RA0 PINS

Some pins for these I/O ports are multiplexed with an                  Data

                                                                       bus         D         Q

alternate    function  for  the  peripheral    features       on  the

device. In general, when a peripheral is enabled, that                 WR                                              VDD

pin may not be used as a general purpose I/O pin.                      Port

                                                                                   CK        Q                         P

5.1        PORTA and TRISA Registers

PORTA is a 5-bit latch.                                                            Data Latch

                                                                                   D         Q                         N       I/O pin(1)

The RA4/T0CKI pin is a Schmitt Trigger input and an

open drain output. All other RA port pins have TTL                     WR

input levels and full CMOS output drivers. All pins have               TRIS        CK        Q                         VSS

data direction bits (TRIS registers) which can configure                                                      Analog

these pins as output or input.                                                     TRIS Latch                input

                                                                                                             mode

Setting a TRISA register bit puts the corresponding out-

put driver in a hi-impedance mode. Clearing a bit in the

TRISA register puts the contents of the output latch on                                        RD TRIS                         TTL

the selected pin(s).                                                                                                           input

                                                                                                                               buffer

Reading the PORTA register reads the status of the                                                   Q             D

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                                                   EN

read, this value is modified, and then written to the port

data latch.                                                            RD PORT

Pin RA4 is multiplexed with the Timer0 module clock

input to become the RA4/T0CKI pin.                                     To A/D Converter

Other PORTA pins are multiplexed with analog inputs

and analog VREF input. The operation of each pin is                    Note  1:    I/O pins have protection diodes to VDD and

selected   by    clearing/setting     the  control      bits  in  the              VSS.

ADCON1 register (A/D Control Register1).

Note:        On a Power-on Reset, these pins are con-                  FIGURE 5-2:          BLOCK DIAGRAM OF                   RA4/

             figured as analog inputs and read as '0'.                                       T0CKI PIN

The TRISA register controls the direction of the RA                          Data

pins, even when they are being used as analog inputs.                        bus         D     Q

The user must ensure the bits in the TRISA register are                      WR

maintained set when using them as analog inputs.                             PORT        CK    Q

                                                                                                                    N          I/O pin(1)

EXAMPLE 5-1:           INITIALIZING PORTA                                             Data Latch

                                                                                         D     Q                   VSS

BCF        STATUS,     RP0  ;                                                WR

CLRF       PORTA            ;    Initialize       PORTA       by             TRIS        CK    Q             Schmitt

                            ;    clearing      output                                                        Trigger

                            ;    data   latches                                       TRIS Latch             input

BSF        STATUS,     RP0  ;    Select     Bank     1                                                       buffer

MOVLW      0xCF             ;    Value     used   to

                            ;    initialize       data                                      RD TRIS

                            ;    direction

MOVWF      TRISA            ;    Set   RA<3:0>       as  inputs                                         Q    D

                            ;    RA<4>     as  outputs

                            ;    TRISA<7:5>       are    always                                              ENEN

                            ;    read   as     '0'.

                                                                             RD PORT

                                                                             TMR0 clock input

                                                                             Note 1: I/O pin has protection  diodes   to  VSS  only.

© 1997 Microchip Technology Inc.                                                                                   DS30272A-page 25
PIC16C71X

TABLE 5-1:        PORTA FUNCTIONS

Name              Bit#         Buffer  Function

RA0/AN0           bit0         TTL     Input/output or analog input

RA1/AN1           bit1         TTL     Input/output or analog input

RA2/AN2           bit2         TTL     Input/output or analog input

RA3/AN3/VREF      bit3         TTL     Input/output or analog input/VREF

RA4/T0CKI         bit4         ST      Input/output or external clock input for Timer0

                                       Output is open drain type

Legend: TTL = TTL input, ST = Schmitt Trigger input

TABLE 5-2:        SUMMARY OF REGISTERS ASSOCIATED WITH PORTA

                                                                                                    Value on:   Value     on all

Address  Name           Bit 7  Bit 6   Bit 5     Bit 4  Bit 3        Bit 2   Bit 1      Bit 0       POR,        other     resets

                                                                                                    BOR

05h      PORTA          —      —       —         RA4    RA3          RA2     RA1        RA0         ---x  0000      ---u  0000

85h      TRISA          —      —       —      PORTA Data Direction Register                         ---1  1111      ---1  1111

9Fh      ADCON1         —      —       —         —      —            —       PCFG1      PCFG0       ----  --00      ----  --00

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

DS30272A-page 26                                                                        © 1997 Microchip Technology Inc.
                                                                                                       PIC16C71X

5.2        PORTB and TRISB Registers                                          Four of PORTB’s pins, RB7:RB4, have an interrupt on

PORTB is an 8-bit wide bi-directional port. The corre-                        change feature. Only pins configured as inputs can

sponding data direction register is TRISB. Setting a bit                      cause this interrupt to occur (i.e. any RB7:RB4 pin con-

in the TRISB register puts the corresponding output                           figured as an output is excluded from the interrupt on

driver in a hi-impedance input mode. Clearing a bit in                        change comparison). The input pins (of RB7:RB4) are

the TRISB register puts the contents of the output latch                      compared with the old value latched on the last read of

on the selected pin(s).                                                       PORTB.     The  “mismatch”      outputs  of  RB7:RB4     are

                                                                              OR’ed together to generate the RB Port Change Inter-

EXAMPLE 5-2:        INITIALIZING PORTB                                        rupt with flag bit RBIF (INTCON<0>).

BCF        STATUS,  RP0  ;                                                    This interrupt can wake the device from SLEEP. The

CLRF       PORTB         ;   Initialize               PORTB       by          user, in the interrupt service routine, can clear the inter-

                         ;   clearing              output                     rupt in the following manner:

                         ;   data   latches                                   a)  Any read or write of PORTB. This will end the

BSF        STATUS,  RP0  ;   Select             Bank     1

MOVLW      0xCF          ;   Value   used             to                          mismatch condition.

                         ;   initialize               data                    b)  Clear flag bit RBIF.

                         ;   direction                                        A mismatch condition will continue to set flag bit RBIF.

MOVWF      TRISB         ;   Set    RB<3:0>              as  inputs           Reading PORTB will end the mismatch condition, and

                         ;   RB<5:4>            as    outputs

                         ;   RB<7:6>            as    inputs                  allow flag bit RBIF to be cleared.

Each of the PORTB pins has a weak internal pull-up. A                         This interrupt on mismatch feature, together with soft-

single control bit can turn on all the pull-ups. This is                      ware  configurable     pull-ups  on  these    four  pins  allow

performed by clearing bit RBPU (OPTION<7>). The                               easy interface to a keypad and make it possible for

weak pull-up is automatically turned off when the port                        wake-up on key-depression. Refer to the Embedded

pin is configured as an output. The pull-ups are dis-                          Control    Handbook,  "Implementing      Wake-Up   on    Key

abled on a Power-on Reset.                                                    Stroke" (AN552).

FIGURE 5-3:         BLOCK DIAGRAM                     OF                          Note:  For the PIC16C71

                    RB3:RB0 PINS                                                         if a change on the I/O pin should occur

                                                             VDD                         when the read operation is being executed

RBPU(2)                                                           weak                   (start of the Q2 cycle), then interrupt flag bit

                                                               P  pull-up                RBIF may not get set.

Data bus            Data Latch                                                The interrupt on change feature is recommended for

                    D        Q                                                wake-up on key depression operation and operations

WR Port                                                               I/O     where PORTB is only used for the interrupt on change

                    CK                                                pin(1)

                    TRIS Latch                                                feature. Polling of PORTB is not recommended while

                    D        Q                                                using the interrupt on change feature.

                                                    TTL

WR TRIS                                             Input

                    CK                              Buffer

                    RD TRIS

                                                Q     D

                    RD Port                         EN

RB0/INT

                         Schmitt Trigger                       RD  Port

                         Buffer

Note 1:    I/O pins have diode protection to VDD   and   VSS.

       2:  TRISB = ’1’ enables weak pull-up if

           RBPU = ’0’ (OPTION<7>).

© 1997 Microchip Technology Inc.                                                                                       DS30272A-page 27
PIC16C71X

FIGURE 5-4:           BLOCK DIAGRAM                   OF                  FIGURE    5-5:       BLOCK DIAGRAM OF

                      RB7:RB4 PINS                                                             RB7:RB4 PINS

                      (PIC16C71)                                                               (PIC16C710/711/715)

                                                             VDD                                                                     VDD

RBPU(2)                                                         weak      RBPU(2)                                                       weak

                                                             P  pull-up                                                              P  pull-up

Data bus              Data Latch                                          Data bus             Data Latch

                        D      Q                                                               D        Q

WR Port                                                           I/O     WR Port                                                         I/O

                        CK                                        pin(1)                       CK                                         pin(1)

                      TRIS Latch                                                               TRIS Latch

                        D      Q                                                               D        Q

WR TRIS                 CK                           TTL                  WR TRIS              CK                            TTL

                                                     Input                                                                   Input

                                                     Buffer       ST                                                         Buffer            ST

                                                                Buffer                                                                    Buffer

                      RD TRIS          Latch                                                   RD TRIS           Latch

                                    Q             D                                                           Q           D

                      RD Port                     EN                                           RD Port                    EN              Q1

Set RBIF                                                                  Set RBIF

          From other                Q             D                       From other                          Q           D

          RB7:RB4 pins                                                    RB7:RB4 pins                                                  RD Port

                                                  EN                                                                      EN              Q3

                                                             RD Port

RB7:RB6 in serial programming mode                                        RB7:RB6 in serial programming mode

Note 1:   I/O pins have diode protection to VDD and VSS.                  Note 1: I/O pins have diode protection to VDD and VSS.

          2: TRISB = ’1’ enables weak pull-up if                                  2: TRISB = ’1’ enables weak pull-up if

          RBPU = ’0’ (OPTION<7>).                                                   RBPU = ’0’ (OPTION<7>).

TABLE 5-3:            PORTB FUNCTIONS

Name                  Bit#        Buffer              Function

RB0/INT               bit0        TTL/ST(1)           Input/output pin or external interrupt input. Internal software

                                                      programmable weak pull-up.

RB1                   bit1         TTL                Input/output pin. Internal software programmable weak pull-up.

RB2                   bit2         TTL                Input/output pin. Internal software programmable weak pull-up.

RB3                   bit3         TTL                Input/output pin. Internal software programmable weak pull-up.

RB4                   bit4         TTL                Input/output pin (with interrupt on change). Internal software programmable

                                                      weak pull-up.

RB5                   bit5         TTL                Input/output pin (with interrupt on change). Internal software programmable

                                                      weak pull-up.

RB6                   bit6        TTL/ST(2)           Input/output pin (with interrupt on change). Internal software programmable

                                                      weak pull-up. Serial programming clock.

RB7                   bit7        TTL/ST(2)           Input/output pin (with interrupt on change). Internal software programmable

                                                      weak pull-up. Serial programming data.

Legend:   TTL = TTL input, ST = Schmitt Trigger input

Note 1:   This buffer is a Schmitt Trigger input when configured as the external interrupt.

     2:   This buffer is a Schmitt Trigger input when used in serial programming mode.

DS30272A-page 28                                                                                        © 1997 Microchip Technology Inc.
                                                                                          PIC16C71X

TABLE 5-4:  SUMMARY OF REGISTERS ASSOCIATED WITH PORTB

                                                                                          Value on:   Value on all

Address     Name    Bit 7         Bit 6   Bit 5    Bit 4  Bit 3  Bit 2      Bit 1  Bit 0  POR,        other resets

                                                                                          BOR

06h, 106h   PORTB   RB7           RB6     RB5      RB4    RB3    RB2        RB1    RB0    xxxx  xxxx  uuuu  uuuu

86h, 186h   TRISB   PORTB Data Direction Register                                         1111  1111  1111  1111

81h, 181h   OPTION  RBPU          INTEDG  T0CS     T0SE   PSA    PS2        PS1    PS0    1111  1111  1111  1111

Legend:    x = unknown, u = unchanged. Shaded cells are not used by PORTB.

© 1997 Microchip Technology Inc.                                                                      DS30272A-page 29
PIC16C71X

5.3         I/O Programming Considerations                                        EXAMPLE 5-3:                READ-MODIFY-WRITE

5.3.1       BI-DIRECTIONAL I/O PORTS                                                                          INSTRUCTIONS ON AN I/O

                                                                                                              PORT

Any instruction which writes, operates internally as a                            ;Initial     PORT      settings:      PORTB<7:4>          Inputs

read followed by a write operation. The BCF and BSF                               ;                                     PORTB<3:0>          Outputs

instructions,    for  example,        read  the  register     into  the           ;PORTB<7:6>       have      external      pull-ups        and     are

CPU, execute the bit operation and write the result                               ;not     connected     to   other     circuitry

                                                                                  ;

back to the register. Caution must be used when these                             ;                                  PORT   latch         PORT   pins

instructions are applied to a port with both inputs and                           ;                                  ----------           ---------

outputs defined. For example, a BSF operation on bit5                                  BCF  PORTB,     7         ;    01pp   pppp          11pp      pppp

of PORTB will cause all eight bits of PORTB to be read                                BCF  PORTB,     6         ;    10pp   pppp          11pp      pppp

into the CPU. Then the BSF operation takes place on                                   BSF  STATUS,       RP0    ;

bit5   and  PORTB         is  written  to   the  output   latches.  If                BCF  TRISB,     7         ;    10pp   pppp          11pp      pppp

another bit of PORTB is used as a bi-directional I/O pin                              BCF  TRISB,     6         ;    10pp   pppp          10pp      pppp

(e.g., bit0) and it is defined as an input at this time, the                       ;

input signal present on the pin itself would be read into                         ;Note    that     the  user      may  have      expected       the

the CPU and rewritten to the data latch of this particular                        ;pin     values   to   be   00pp      ppp.    The    2nd     BCF

                                                                                  ;caused      RB7  to   be   latched       as    the     pin   value

pin, overwriting the previous content. As long as the pin                         ;(high).

stays in the input mode, no problem occurs. However,                              A pin actively outputting a Low or High should not be

if bit0 is switched to an output, the content of the data                         driven from external devices at the same time in order

latch may now be unknown.                                                         to change the level on this pin (“wired-or”, “wired-and”).

Reading the port register, reads the values of the port                           The resulting high output currents may damage the

pins. Writing to the port register writes the value to the                        chip.

port latch. When using read-modify-write instructions

(ex. BCF, BSF, etc.) on a port, the value of the port pins                        5.3.2        SUCCESSIVE OPERATIONS ON I/O PORTS

is read, the desired operation is done to this value, and                         The actual write to an I/O port happens at the end of an

this value is then written to the port latch.                                     instruction cycle, whereas for reading, the data must be

Example 5-3 shows the effect of two sequential read-                              valid    at  the    beginning         of  the       instruction    cycle

modify-write instructions on an I/O port.                                         (Figure 5-6).     Therefore,       care   must      be  exercised      if  a

                                                                                  write followed by a read operation is carried out on the

                                                                                  same I/O port. The sequence of instructions should be

                                                                                  such to allow the pin voltage to stabilize (load depen-

                                                                                  dent) before the next instruction which causes that file

                                                                                  to be read into the CPU is executed. Otherwise, the

                                                                                  previous state of that pin may be read into the CPU

                                                                                  rather than the new state. When in doubt, it is better to

                                                                                  separate     these     instructions       with  a   NOP   or     another

                                                                                  instruction not accessing this I/O port.

FIGURE 5-6:             SUCCESSIVE I/O OPERATION

                      Q1  Q2      Q3  Q4    Q1   Q2  Q3   Q4  Q1    Q2   Q3   Q4  Q1  Q2   Q3  Q4        Note:

               PC             PC                 PC + 1             PC + 2            PC + 3             This example shows a write to PORTB

       Instruction    MOVWF PORTB         MOVF PORTB,W                                                   followed by a read from PORTB.

       fetched            write to                                  NOP                  NOP

                          PORTB                                                                          Note that:

       RB7:RB0                                                                                           data setup time = (0.25TCY - TPD)

                                                                    Port pin                             where       TCY = instruction cycle

                                                                    sampled here                                     TPD = propagation delay

       Instruction                                            TPD                                        Therefore, at higher clock frequencies,

       executed                                                                          NOP             a    write  followed     by  a   read  may   be

                                           MOVWF PORTB        MOVF PORTB,W                               problematic.

                                                write to

                                                PORTB

DS30272A-page       30                                                                                          © 1997 Microchip Technology Inc.
                                                                                                                            PIC16C71X

6.0         TIMER0 MODULE                                                               bit T0SE selects the rising edge. Restrictions on the

Applicable Devices               710 71 711 715                                         external      clock     input   are     discussed         in     detail  in

                                                                                        Section 6.2.

The Timer0 module timer/counter has the following fea-                                  The prescaler is mutually exclusively shared between

tures:                                                                                  the Timer0 module and the Watchdog Timer. The pres-

•  8-bit timer/counter                                                                  caler assignment is controlled in software by control bit

•  Readable and writable                                                                PSA (OPTION<3>). Clearing bit PSA will assign the

•  8-bit software programmable prescaler                                                prescaler to the Timer0 module. The prescaler is not

                                                                                        readable or writable. When the prescaler is assigned to

•  Internal or external clock select                                                    the Timer0 module, prescale values of 1:2, 1:4, ...,

•  Interrupt on overflow from FFh to 00h                                                 1:256 are selectable. Section 6.3 details the operation

•  Edge select for external clock                                                       of the prescaler.

Figure 6-1 is a simplified block diagram of the Timer0                                   6.1           Timer0 Interrupt

module.

Timer    mode      is      selected      by  clearing     bit     T0CS                  The TMR0 interrupt is generated when the TMR0 reg-

(OPTION<5>). In timer mode, the Timer0 module will                                      ister overflows from FFh to 00h. This overflow sets bit

increment every instruction cycle (without prescaler). If                               T0IF (INTCON<2>). The interrupt can be masked by

the TMR0 register is written, the increment is inhibited                                clearing      bit  T0IE     (INTCON<5>).        Bit   T0IF       must    be

for the following two instruction cycles (Figure 6-2 and                                cleared in software by the Timer0 module interrupt ser-

Figure 6-3). The user can work around this by writing                                   vice   routine     before       re-enabling     this      interrupt.     The

an adjusted value to the TMR0 register.                                                 TMR0      interrupt     cannot      awaken      the   processor       from

                                                                                        SLEEP since the timer is shut off during SLEEP. See

Counter     mode       is  selected      by      setting  bit     T0CS                  Figure 6-4 for Timer0 interrupt timing.

(OPTION<5>). In counter mode, Timer0 will increment

either on every rising or falling edge of pin RA4/T0CKI.

The incrementing edge is determined by the Timer0

Source Edge Select bit T0SE (OPTION<4>). Clearing

FIGURE 6-1:            TIMER0 BLOCK DIAGRAM

                                                                                                                                Data bus

                       FOSC/4                0                                          PSout

                                                                                                                                           8

                                                                                    1             Sync with

                                             1                                                        Internal                  TMR0

   RA4/T0CKI                                              Programmable              0                 clocks        PSout

   pin                                                        Prescaler                           (2 cycle delay)

                   T0SE

                                                                  3

                                                                                                                                              Set interrupt

                                                     PS2, PS1, PS0            PSA                                                             flag bit T0IF

                                         T0CS                                                                                                 on overflow

     Note 1:       T0CS, T0SE, PSA, PS2:PS0 (OPTION<5:0>).

               2:  The prescaler is shared with Watchdog Timer (refer to Figure 6-6 for detailed                                block diagram).

FIGURE 6-2:            TIMER0 TIMING: INTERNAL CLOCK/NO PRESCALE

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

     (Program

     Counter)              PC-1          PC               PC+1            PC+2                PC+3              PC+4            PC+5              PC+6

     Instruction                     MOVWF TMR0      MOVF TMR0,W      MOVF TMR0,W       MOVF TMR0,W        MOVF TMR0,W      MOVF TMR0,W

     Fetch

     TMR0          T0                T0+1            T0+2                NT0            NT0                  NT0                NT0+1             NT0+2          T0

     Instruction

     Executed                                        Write TMR0          Read TMR0      Read TMR0          Read TMR0        Read TMR0         Read TMR0

                                                     executed            reads NT0      reads NT0          reads NT0        reads NT0 + 1     reads NT0 + 2

© 1997 Microchip Technology Inc.                                                                                                            DS30272A-page 31
PIC16C71X

FIGURE       6-3:     TIMER0 TIMING:                 INTERNAL CLOCK/PRESCALE 1:2

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

(Program

Counter)              PC-1               PC               PC+1            PC+2             PC+3            PC+4              PC+5              PC+6

Instruction                       MOVWF TMR0         MOVF TMR0,W      MOVF TMR0,W      MOVF TMR0,W     MOVF TMR0,W      MOVF TMR0,W

Fetch

TMR0              T0                       T0+1                                                NT0                                            NT0+1            PC+6

Instruction                                          Write TMR0       Read TMR0        Read TMR0       Read TMR0           Read TMR0      Read TMR0

Execute                                              executed         reads NT0        reads NT0       reads NT0           reads NT0      reads NT0 + 1

FIGURE       6-4:     TIMER0 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)

    Timer0                  FEh                      FFh                          00h                          01h                        02h

                              1                           1

T0IF bit

(INTCON<2>)

GIE bit

(INTCON<7>)

INSTRUCTION

FLOW

              PC                 PC                       PC +1                        PC +1                        0004h                      0005h

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

    fetched

    Instruction             Inst (PC-1)                   Inst (PC)                Dummy cycle                 Dummy cycle                Inst (0004h)

    executed

                 Note 1: Interrupt flag bit T0IF is sampled here (every Q1).

                      2: Interrupt latency = 4Tcy where Tcy = instruction cycle time.

                      3: CLKOUT is available only in RC oscillator mode.

DS30272A-page 32                                                                                                        © 1997 Microchip Technology Inc.
                                                                                                      PIC16C71X

6.2     Using Timer0 with an External Clock                        caler so that the prescaler output is symmetrical. For

When an external clock input is used for Timer0, it must           the external clock to meet the sampling requirement,

meet certain requirements. The requirements ensure                 the ripple-counter must be taken into account. There-

the external clock can be synchronized with the internal           fore, it is necessary for T0CKI to have a period of at

phase clock (TOSC). Also, there is a delay in the actual           least 4Tosc (and a small RC delay of 40 ns) divided by

incrementing of Timer0 after synchronization.                      the prescaler value. The only requirement on T0CKI

                                                                   high and low time is that they do not violate the mini-

6.2.1   EXTERNAL CLOCK SYNCHRONIZATION                             mum pulse width requirement of 10 ns. Refer to param-

                                                                   eters 40, 41 and 42 in the electrical specification of the

When no prescaler is used, the external clock input is             desired device.

the same as the prescaler output. The synchronization

of  T0CKI    with  the  internal   phase  clocks  is  accom-       6.2.2                  TMR0 INCREMENT DELAY

plished by sampling the prescaler output on the Q2 and             Since the prescaler output is synchronized with the

Q4 cycles of the internal phase clocks (Figure 6-5).               internal clocks, there is a small delay from the time the

Therefore, it is necessary for T0CKI to be high for at             external clock edge occurs to the time the Timer0 mod-

least 2Tosc (and a small RC delay of 20 ns) and low for            ule is actually incremented. Figure 6-5 shows the delay

at least 2Tosc (and a small RC delay of 20 ns). Refer to           from the external clock edge to the timer incrementing.

the electrical specification of the desired device.

When a prescaler is used, the external clock input is

divided by the asynchronous ripple-counter type pres-

FIGURE       6-5:  TIMER0 TIMING          WITH EXTERNAL CLOCK

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

             External Clock Input or                                                                              Small pulse

             Prescaler output (2)                                                                                 misses sampling

                                                      (1)

                                          (3)

             External Clock/Prescaler

             Output after sampling

                   Increment Timer0 (Q4)

                                  Timer0                       T0                         T0 + 1                  T0 + 2

       Note  1: Delay from clock input change to Timer0 increment is 3Tosc to 7Tosc. (Duration of Q = Tosc).

             Therefore, the error in measuring the interval between two edges on Timer0 input = ±4Tosc max.

             2: External clock if no prescaler selected, Prescaler output otherwise.

             3: The arrows indicate the points in time where sampling occurs.

© 1997 Microchip Technology Inc.                                                                                      DS30272A-page 33
PIC16C71X

6.3         Prescaler                                                        When assigned to the Timer0 module, all instructions

An   8-bit  counter  is  available  as   a  prescaler     for  the           writing to the TMR0 register (e.g. CLRF       1,   MOVWF  1,

Timer0 module, or as a postscaler for the Watchdog                           BSF  1,x....etc.)  will  clear      the  prescaler.  When

Timer,  respectively     (Figure 6-6).   For   simplicity,     this          assigned to WDT, a CLRWDT instruction will clear the

counter is being referred to as “prescaler” throughout                       prescaler along with the Watchdog Timer. The pres-

this data sheet. Note that there is only one prescaler                       caler is not readable or writable.

available which is mutually exclusively shared between                       Note:  Writing     to   TMR0       when  the  prescaler   is

the Timer0 module and the Watchdog Timer. Thus, a                                   assigned to Timer0 will clear the prescaler

prescaler assignment for the Timer0 module means                                    count,      but  will  not   change    the  prescaler

that there is no prescaler for the Watchdog Timer, and                              assignment.

vice-versa.

The PSA and PS2:PS0 bits (OPTION<3:0>) determine

the prescaler assignment and prescale ratio.

FIGURE 6-6:          BLOCK      DIAGRAM OF           THE       TIMER0/WDT    PRESCALER

     CLKOUT (=Fosc/4)                                                                                      Data Bus

                                               M                                                                 8

                                            0                        1

RA4/T0CKI                                      U                        M           SYNC

     pin                                       X                        U           2                      TMR0 reg

                                            1                        0  X           Cycles

                         T0SE

                                               T0CS                     PSA                                              Set flag bit T0IF

                                                                                                                           on Overflow

                                0                      8-bit Prescaler

                                    M

                                    U

        Watchdog                1   X                       8

            Timer

                                                       8 - to - 1MUX              PS2:PS0

                                    PSA

     WDT Enable bit                                    0             1

                                                            MUX              PSA

                                                               WDT

                                                          Time-out

            Note: T0CS,  T0SE,  PSA, PS2:PS0   are   (OPTION<5:0>).

DS30272A-page 34                                                                                      © 1997 Microchip Technology Inc.
                                                                                                        PIC16C71X

6.3.1     SWITCHING PRESCALER ASSIGNMENT                                    Note:    To avoid an unintended device RESET, the

The prescaler assignment is fully under software con-                                following instruction sequence (shown in

trol, i.e., it can be changed “on the fly” during program                             Example 6-1)       must  be    executed  when

execution.                                                                           changing the prescaler assignment from

                                                                                     Timer0 to the WDT. This sequence must be

                                                                                     followed even if the WDT is disabled.

EXAMPLE 6-1:           CHANGING PRESCALER (TIMER0→WDT)

BCF         STATUS,    RP0   ;Bank    0

CLRF        TMR0             ;Clear TMR0 & Prescaler

BSF         STATUS,    RP0   ;Bank    1

CLRWDT                       ;Clears        WDT

MOVLW       b'xxxx1xxx'      ;Selects       new  prescale  value

MOVWF       OPTION_REG       ;and   assigns      the    prescaler    to  the  WDT

BCF         STATUS,    RP0   ;Bank    0

To change prescaler from the WDT to the Timer0

module use the sequence shown in Example 6-2.

EXAMPLE 6-2:           CHANGING PRESCALER (WDT→TIMER0)

CLRWDT                         ;Clear       WDT  and    prescaler

BSF            STATUS,  RP0    ;Bank     1

MOVLW          b'xxxx0xxx'     ;Select      TMR0,     new  prescale  value    and

MOVWF          OPTION_REG      ;clock       source

BCF            STATUS,  RP0    ;Bank     0

TABLE 6-1:           REGISTERS ASSOCIATED WITH TIMER0

                                                                                                        Value on:   Value on all

Address        Name     Bit 7     Bit 6          Bit 5     Bit 4     Bit 3    Bit 2       Bit 1  Bit 0        POR,  other resets

                                                                                                              BOR

01h            TMR0     Timer0 module’s register                                                        xxxx  xxxx  uuuu      uuuu

0Bh,8Bh,       INTCON   GIE       ADIE           T0IE      INTE      RBIE     T0IF        INTF   RBIF   0000  000x  0000      000u

81h            OPTION   RBPU      INTEDG         T0CS      T0SE      PSA      PS2         PS1    PS0    1111  1111  1111      1111

85h            TRISA     —         —             —         PORTA Data Direction Register                ---1  1111  ---1      1111

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

© 1997 Microchip Technology Inc.                                                                                   DS30272A-page 35
PIC16C71X

NOTES:

DS30272A-page 36  © 1997 Microchip Technology Inc.
                                                                                              PIC16C71X

7.0       ANALOG-TO-DIGITAL                                       The A/D converter has a unique feature of being able

          CONVERTER (A/D) MODULE                                  to operate while the device is in SLEEP mode. To oper-

                                                                  ate in sleep, the A/D conversion clock must be derived

Applicable Devices      710 71 711 715                            from the A/D’s internal RC oscillator.

The analog-to-digital (A/D) converter module has four             The A/D module has three registers. These registers

analog inputs.                                                    are:

The A/D allows conversion of an analog input signal to                  •  A/D Result Register (ADRES)

a corresponding 8-bit digital number (refer to Applica-                 •  A/D Control Register 0 (ADCON0)

tion Note AN546 for use of A/D Converter). The output                   •  A/D Control Register 1 (ADCON1)

of the sample and hold is the input into the converter,           The      ADCON0  register,  shown       in  Figure 7-1  and

which generates the result via successive approxima-              Figure 7-2, controls the operation of the A/D module.

tion. The analog reference voltage is software select-            The ADCON1 register, shown in Figure 7-3 configures

able to either the device’s positive supply voltage (VDD)         the functions of the port pins. The port pins can be con-

or the voltage level on the RA3/AN3/VREF pin.                     figured as analog inputs (RA3 can also be a voltage ref-

                                                                  erence) or as digital I/O.

FIGURE 7-1:     ADCON0 REGISTER (ADDRESS 08h), PIC16C710/71/711

R/W-0     R/W-0         U-0       R/W-0        R/W-0       R/W-0        R/W-0      R/W-0

ADCS1     ADCS0         — (1)     CHS1         CHS0        GO/DONE         ADIF    ADON       R  = Readable bit

bit7                                                                                   bit0   W = Writable bit

                                                                                              U  = Unimplemented

                                                                                                 bit, read as ‘0’

                                                                                              - n =Value at POR reset

bit 7-6:  ADCS1:ADCS0: A/D Conversion Clock Select bits

          00 = FOSC/2

          01 = FOSC/8

          10 = FOSC/32

          11 = FRC (clock derived from an RC oscillation)

bit   5:  Unimplemented: Read as '0'.

bit 4-3:  CHS1:CHS0: Analog Channel Select bits

          00 = channel 0, (RA0/AN0)

          01 = channel 1, (RA1/AN1)

          10 = channel 2, (RA2/AN2)

          11 = channel 3, (RA3/AN3)

bit 2:    GO/DONE: A/D Conversion Status bit

          If ADON = 1:

          1 = A/D conversion in progress (setting this bit starts the A/D conversion)

          0 = A/D conversion not in progress (This bit is automatically cleared by hardware when the A/D conver-

          sion is complete)

bit 1:    ADIF: A/D Conversion Complete Interrupt Flag bit

          1 = conversion is complete (must be cleared in software)

          0 = conversion is not complete

bit 0:    ADON: A/D On bit

          1 = A/D converter module is operating

          0 = A/D converter module is shutoff and consumes no operating current

Note 1:   Bit5 of ADCON0 is a General Purpose R/W bit for the PIC16C710/711 only. For the PIC16C71, this bit is

          unimplemented, read as '0'.

© 1997 Microchip Technology Inc.                                                                              DS30272A-page 37
PIC16C71X

FIGURE 7-2:       ADCON0 REGISTER (ADDRESS 1Fh), PIC16C715

R/W-0      R/W-0         R/W-0  R/W-0   R/W-0     R/W-0          U-0    R/W-0

ADCS1      ADCS0          —     CHS1    CHS0      GO/DONE        —      ADON                  R  = Readable bit

bit7                                                                                    bit0  W = Writable bit

                                                                                              U  = Unimplemented bit,

                                                                                                    read as ‘0’

                                                                                              - n = Value at POR reset

bit 7-6:   ADCS1:ADCS0: A/D Conversion Clock Select bits

           00 = FOSC/2

           01 = FOSC/8

           10 = FOSC/32

           11 = FRC (clock derived from an RC oscillation)

bit 5:     Unused

bit 6-3:   CHS1:CHS0: Analog Channel Select bits

           000 = channel 0, (RA0/AN0)

           001 = channel 1, (RA1/AN1)

           010 = channel 2, (RA2/AN2)

           011 = channel 3, (RA3/AN3)

           100 = channel 0, (RA0/AN0)

           101 = channel 1, (RA1/AN1)

           110 = channel 2, (RA2/AN2)

           111 = channel 3, (RA3/AN3)

bit 2:     GO/DONE: A/D Conversion Status bit

           If ADON = 1

           1 = A/D conversion in progress (setting this bit starts the A/D conversion)

           0 = A/D conversion not in progress (This bit is automatically cleared by hardware when the A/D conver-

           sion is complete)

bit 1:     Unimplemented: Read as '0'

bit 0:     ADON: A/D On bit

           1 = A/D converter module is operating

           0 = A/D converter module is shutoff and consumes no operating current

FIGURE 7-3:       ADCON1 REGISTER, PIC16C710/71/711 (ADDRESS 88h),

                  PIC16C715 (ADDRESS 9Fh)

U-0          U-0          U-0   U-0        U-0              U-0  R/W-0  R/W-0

     —       —            —     —          —                —    PCFG1  PCFG0                    R  = Readable bit

bit7                                                                                    bit0     W = Writable bit

                                                                                                 U  = Unimplemented

                                                                                                    bit, read as ‘0’

                                                                                                 - n =Value at POR reset

bit  7-2:  Unimplemented: Read as '0'

bit  1-0:  PCFG1:PCFG0: A/D Port Configuration     Control bits

          PCFG1:PCFG0        RA1 & RA0     RA2              RA3  VREF

             00           A             A         A              VDD

             01           A             A         VREF           RA3

             10           A             D         D              VDD

             11           D             D         D              VDD

        A = Analog input

        D = Digital I/O

DS30272A-page 38                                                                              © 1997 Microchip Technology Inc.
                                                                                                      PIC16C71X

The ADRES register contains the result of the A/D con-                  2.  Configure A/D interrupt (if desired):

version.  When  the      A/D  conversion    is  complete,     the           •  Clear ADIF bit

result is loaded into the ADRES register, the GO/DONE                       •  Set ADIE bit

bit (ADCON0<2>) is cleared, and A/D interrupt flag bit                       •  Set GIE bit

ADIF is set. The block diagram of the A/D module is

shown in Figure 7-4.                                                    3.  Wait the required acquisition time.

After the A/D module has been configured as desired,                     4.  Start conversion:

the selected channel must be acquired before the con-                       •  Set GO/DONE bit (ADCON0)

version   is  started.  The   analog  input     channels  must          5.  Wait for A/D conversion to complete, by either:

have   their  corresponding   TRIS    bits   selected     as  an            •  Polling for the GO/DONE bit to be cleared

input. To determine acquisition time, see Section 7.1.                      OR

After this acquisition time has elapsed the A/D conver-

sion can be started. The following steps should be fol-                     •  Waiting for the A/D interrupt

lowed for doing an A/D conversion:                                      6.  Read  A/D      Result  register  (ADRES),       clear  bit

1.  Configure the A/D module:                                                ADIF if required.

    •  Configure analog pins / voltage reference /                       7.  For next conversion, go to step 1 or step 2 as

       and digital I/O (ADCON1)                                             required.  The   A/D      conversion  time  per  bit   is

    •  Select A/D input channel (ADCON0)                                    defined     as  TAD.    A  minimum     wait  of  2TAD   is

                                                                            required before next acquisition starts.

    •  Select A/D conversion clock (ADCON0)

    •  Turn on A/D module (ADCON0)

FIGURE 7-4:          A/D BLOCK DIAGRAM

                                                                                  CHS1:CHS0

                                                                                             11

                                                  VIN                                                             RA3/AN3/VREF

                                                (Input voltage)                              10

                                                                                                                  RA2/AN2

                A/D                                                                          01

              Converter                                                                                           RA1/AN1

                                                                                             00

                                                                                                                  RA0/AN0

                                                                   VDD

                                                                   00   or

                                      VREF                         10   or

                                                                   11

                                      (Reference

                                      voltage)                     01

                                                  PCFG1:PCFG0

© 1997 Microchip Technology Inc.                                                                                  DS30272A-page 39
PIC16C71X

7.1       A/D Acquisition Requirements                                          Note 1:   The       reference       voltage       (VREF)   has   no

For the A/D converter to meet its specified accuracy,                                      effect     on    the   equation,       since it  cancels

the charge holding capacitor (CHOLD) must be allowed                                      itself out.

to fully charge to the input channel voltage level. The                         Note 2:   The charge holding capacitor (CHOLD) is

analog input model is shown in Figure 7-5. The source                                     not discharged after each conversion.

impedance (RS) and the internal sampling switch (RSS)

impedance directly affect the time required to charge                           Note 3:   The maximum recommended impedance

the  capacitor  CHOLD.       The     sampling     switch       (RSS)                      for      analog     sources        is  10  kΩ.   This  is

impedance      varies  over    the    device      voltage      (VDD),                     required to meet the pin leakage specifi-

Figure 7-5. The source impedance affects the offset                                       cation.

voltage at the analog input (due to pin leakage current).                       Note 4:   After      a   conversion          has  completed,     a

The maximum recommended impedance for ana-                                                2.0TAD delay must complete before acqui-

log sources is 10 kΩ. After the analog input channel is                                   sition can begin again. During this time the

selected  (changed)    this    acquisition        must  be     done                       holding capacitor is not connected to the

before the conversion can be started.                                                     selected A/D input channel.

To calculate the minimum acquisition time, Equation 7-

1 may be used. This equation calculates the acquisition                         EXAMPLE 7-1:            CALCULATING THE

time to within 1/2 LSb error is used (512 steps for the                                                 MINIMUM REQUIRED

A/D). The 1/2 LSb error is the maximum error allowed                                                    AQUISITION TIME

for the A/D to meet its specified accuracy.                                      TACQ =    Amplifier Settling Time +

EQUATION 7-1:          A/D MINIMUM CHARGING                                               Holding Capacitor Charging Time +

                       TIME                                                               Temperature Coefficient

VHOLD = (VREF - (VREF/512)) • (1 - e(-TCAP/CHOLD(RIC + RSS + RS)))              TACQ =    5 µs + TCAP + [(Temp - 25°C)(0.05 µs/°C)]

Given: VHOLD = (VREF/512), for 1/2 LSb resolution                               TCAP =    -CHOLD (RIC + RSS + RS) ln(1/511)

The above equation reduces to:                                                            -51.2 pF (1 kΩ + 7 kΩ + 10 kΩ) ln(0.0020)

TCAP =  -(51.2 pF)(1 kΩ + RSS + RS) ln(1/511)                                             -51.2 pF (18 kΩ) ln(0.0020)

Example 7-1     shows  the     calculation    of  the   minimum                           -0.921 µs (-6.2364)

required  acquisition  time        TACQ.    This  calculation        is                   5.747 µs

based on the following system assumptions.

CHOLD = 51.2 pF                                                                 TACQ =    5 µs + 5.747 µs + [(50°C - 25°C)(0.05 µs/°C)]

Rs = 10 kΩ                                                                                10.747 µs + 1.25 µs

1/2 LSb error                                                                             11.997 µs

VDD = 5V → Rss = 7 kΩ

Temp (application system max.) = 50°C

VHOLD = 0 @ t = 0

FIGURE 7-5:        ANALOG            INPUT    MODEL

                                                        VDD                               Sampling

                                                               VT =  0.6V                 Switch

                               Rs    ANx                                        RIC ≤ 1k  SS   RSS

                                                                                                              CHOLD

                       VA             CPIN                                     I leakage                      = DAC capacitance

                                      5 pF                     VT =  0.6V      ± 500 nA                       = 51.2 pF

                                                                                                           VSS

                       Legend  CPIN       = input capacitance                                  6V

                               VT         = threshold voltage                                  5V

                               I leakage  = leakage current at the pin due to             VDD  4V

                                            various junctions                                  3V

                               RIC        = interconnect resistance                            2V

                               SS         = sampling switch

                               CHOLD      = sample/hold capacitance (from DAC)                          5  6  7  8  9 10 11

                                                                                                        Sampling Switch

                                                                                                              ( kΩ )

DS30272A-page 40                                                                                              © 1997 Microchip Technology Inc.
                                                                                                  PIC16C71X

7.2         Selecting the A/D Conversion Clock                        7.3         Configuring Analog Port Pins

The A/D conversion time per bit is defined as TAD. The                 The ADCON1 and TRISA registers control the opera-

A/D conversion requires 9.5TAD per 8-bit conversion.                  tion of the A/D port pins. The port pins that are desired

The source of the A/D conversion clock is software                    as analog inputs must have their corresponding TRIS

selectable. The four possible options for TAD are:                    bits set (input). If the TRIS bit is cleared (output), the

     •  2TOSC                                                         digital output level (VOH or VOL) will be converted.

     •  8TOSC                                                         The A/D operation is independent of the state of the

     •  32TOSC                                                        CHS2:CHS0 bits and the TRIS bits.

     •  Internal RC oscillator                                            Note 1:  When reading the port register, all pins

For correct A/D conversions, the A/D conversion clock                              configured as analog input channels will

(TAD) must be selected to ensure a minimum TAD time                                read as cleared (a low level). Pins config-

of:                                                                                ured as digital inputs, will convert an ana-

2.0 µs for the PIC16C71                                                            log    input.  Analog  levels     on   a  digitally

                                                                                   configured input will not affect the conver-

1.6 µs for all other PIC16C71X devices                                             sion accuracy.

Table 7-1 and Table 7-2 and show the resultant TAD                        Note 2:  Analog levels on any pin that is defined as

times derived from the device operating frequencies                                a  digital     input  (including  the  AN7:AN0

and the A/D clock source selected.                                                 pins), may cause the input buffer to con-

                                                                                   sume current that is out of the devices

                                                                                   specification.

TABLE 7-1:      TAD vs. DEVICE OPERATING FREQUENCIES, PIC16C71

     AD Clock Source (TAD)                                                Device Frequency

Operation       ADCS1:ADCS0             20 MHz             16 MHz                 4 MHz            1 MHz             333.33 kHz

2TOSC           00                      100 ns(2)          125 ns(2)       500 ns(2)               2.0 µs                 6 µs

8TOSC           01                      400 ns(2)          500 ns(2)              2.0 µs           8.0 µs                24 µs(3)

32TOSC          10                      1.6 µs(2)          2.0 µs                 8.0 µs          32.0 µs(3)             96 µs(3)

RC(5)           11                  2 - 6 µs(1,4)          2 - 6 µs(1,4)   2 - 6 µs(1,4)          2 - 6 µs(1)        2 - 6 µs(1)

Legend:     Shaded cells are outside of recommended range.

Note 1:     The RC source has a typical TAD time of 4 µs.

        2:  These values violate the minimum required TAD time.

        3:  For faster conversion times, the selection of another clock source is recommended.

        4:  When device frequency is greater than 1 MHz, the RC A/D conversion clock source is recommended for

            sleep operation only.

        5:  For extended voltage devices (LC), please refer to Electrical Specifications section.

TABLE 7-2:      TAD vs. DEVICE OPERATING FREQUENCIES, PIC16C710/711, PIC16C715

        AD Clock Source (TAD)                                              Device Frequency

Operation       ADCS1:ADCS0             20 MHz                            5 MHz           1.25 MHz                   333.33 kHz

2TOSC                           00      100 ns(2)                     400 ns(2)                1.6 µs                    6 µs

8TOSC                           01      400 ns(2)                         1.6 µs               6.4 µs                24 µs(3)

32TOSC                          10              1.6 µs                    6.4 µs          25.6 µs(3)                 96 µs(3)

RC(5)                           11      2 - 6 µs(1,4)              2 - 6 µs(1,4)          2 - 6 µs(1,4)              2 - 6 µs(1)

Legend:     Shaded cells are outside of recommended range.

Note 1:     The RC source has a typical TAD time of 4 µs.

        2:  These values violate the minimum required TAD time.

        3:  For faster conversion times, the selection of another clock source is recommended.

        4:  When device frequency is greater than 1 MHz, the RC A/D conversion clock source is             recommended for

            sleep operation only.

        5:  For extended voltage devices (LC), please refer to Electrical Specifications section.

© 1997 Microchip Technology Inc.                                                                               DS30272A-page 41
PIC16C71X

7.4        A/D Conversions

Example 7-2 shows how to perform an A/D conversion.                      Note:       The GO/DONE bit should NOT be set in

The RA pins are configured as analog inputs. The ana-                                 the same instruction that turns on the A/D.

log reference (VREF) is the device VDD. The A/D inter-                   Clearing the GO/DONE bit during a conversion will

rupt is enabled, and the A/D conversion clock is FRC.                    abort the current conversion. The ADRES register will

The conversion is performed on the RA0 pin (channel                      NOT be updated with the partially completed A/D con-

0).                                                                      version sample. That is, the ADRES register will con-

                                                                         tinue  to  contain      the  value  of  the   last  completed

                                                                         conversion (or the last value written to the ADRES reg-

                                                                         ister). After the A/D conversion is aborted, a 2TAD wait

                                                                         is required before the next acquisition is started. After

                                                                         this 2TAD wait, an acquisition is automatically started

                                                                         on the selected channel.

EXAMPLE 7-2:             A/D CONVERSION

     BSF           STATUS,  RP0          ;  Select    Bank      1

     CLRF          ADCON1                ;  Configure      A/D     inputs

     BCF           STATUS,  RP0          ;  Select    Bank      0

     MOVLW         0xC1                  ;  RC     Clock,  A/D     is    on,  Channel     0  is   selected

     MOVWF         ADCON0                ;

     BSF           INTCON,  ADIE         ;  Enable    A/D   Interrupt

     BSF           INTCON,  GIE          ;  Enable    all   interrupts

;

;    Ensure   that  the    required  sampling   time  for   the    selected        input     channel   has   elapsed.

;    Then     the  conversion   may  be  started.

;

     BSF           ADCON0,  GO           ;  Start     A/D  Conversion

           :                             ;  The    ADIF    bit     will  be   set   and   the    GO/DONE    bit

           :                             ;     is  cleared      upon     completion      of  the  A/D  Conversion.

DS30272A-page 42                                                                                      © 1997 Microchip Technology Inc.
                                                                                     PIC16C71X

7.4.1     FASTER CONVERSION - LOWER                            Since the TAD is based from the device oscillator, the

          RESOLUTION TRADE-OFF                                 user must use some method (a timer, software loop,

                                                               etc.)  to  determine  when  the  A/D  oscillator      may  be

Not all applications require a result with 8-bits of reso-     changed. Example 7-3 shows a comparison of time

lution, but may instead require a faster conversion time.      required for a conversion with 4-bits of resolution, ver-

The A/D module allows users to make the trade-off of           sus the 8-bit resolution conversion. The example is for

conversion speed to resolution. Regardless of the res-         devices operating at 20 MHz and 16 MHz (The A/D

olution required, the acquisition time is the same. To         clock is programmed for 32TOSC), and assumes that

speed up the conversion, the clock source of the A/D           immediately after 6TAD, the A/D clock is programmed

module may be switched so that the TAD time violates           for 2TOSC.

the minimum specified time (see the applicable electri-         The 2TOSC violates the minimum TAD time since the

cal specification). Once the TAD time violates the mini-        last 4-bits will not be converted to correct values.

mum specified time, all the following A/D result bits are

not valid (see A/D Conversion Timing in the Electrical

Specifications section.) The clock sources may only be

switched between the three oscillator versions (cannot

be switched from/to RC). The equation to determine

the time before the oscillator can be switched is as

follows:

Conversion time =  2TAD + N • TAD + (8 - N)(2TOSC)

Where: N = number of bits of resolution required.

EXAMPLE 7-3:       4-BIT vs. 8-BIT CONVERSION TIMES

                                                               Freq. (MHz)(1)                   Resolution

                                                                                     4-bit                  8-bit

TAD                                                                   20             1.6 µs                 1.6 µs

                                                                      16             2.0 µs                 2.0 µs

TOSC                                                                  20             50 ns                  50 ns

                                                                      16             62.5 ns                62.5 ns

2TAD + N • TAD + (8 - N)(2TOSC)                                       20             10 µs                  16 µs

                                                                      16             12.5 µs                20 µs

Note 1:   The PIC16C71 has a minimum TAD time of 2.0 µs.

          All other PIC16C71X devices have a minimum TAD time  of 1.6 µs.

© 1997 Microchip Technology Inc.                                                                     DS30272A-page 43
PIC16C71X

7.5        A/D Operation During Sleep                              full scale error is that full scale does not take offset error

The A/D module can operate during SLEEP mode. This                 into account. Gain error can be calibrated out in soft-

requires    that  the  A/D  clock  source      be  set  to  RC     ware.

(ADCS1:ADCS0 = 11). When the RC clock source is                    Linearity   error  refers   to  the  uniformity  of   the  code

selected, the A/D module waits one instruction cycle               changes. Linearity errors cannot be calibrated out of

before starting the conversion. This allows the SLEEP              the system. Integral non-linearity error measures the

instruction to be executed, which eliminates all digital           actual code transition versus the ideal code transition

switching noise from the conversion. When the conver-              adjusted by the gain error for each code.

sion is completed the GO/DONE bit will be cleared, and             Differential  non-linearity      measures     the     maximum

the result loaded into the ADRES register. If the A/D              actual code width versus         the ideal code    width. This

interrupt   is  enabled,    the  device  will  wake-up      from   measure is unadjusted.

SLEEP. If the A/D interrupt is not enabled, the A/D mod-           In systems where the device frequency is low, use of

ule will then be turned off, although the ADON bit will            the A/D RC clock is preferred. At moderate to high fre-

remain set.                                                        quencies, TAD should be derived from the device oscil-

When the A/D clock source is another clock option (not             lator. TAD must not violate the minimum and should be

RC), a SLEEP instruction will cause the present conver-            ≤ 8 µs for preferred operation. This is because TAD,

sion to be aborted and the A/D module to be turned off,            when derived from TOSC, is kept away from on-chip

though the ADON bit will remain set.                               phase clock transitions. This reduces, to a large extent,

Turning off the A/D places the A/D module in its lowest            the effects of digital switching noise. This is not possible

current consumption state.                                         with the RC derived clock. The loss of accuracy due to

Note:           For the A/D module to operate in SLEEP,            digital switching noise can be significant if many I/O

                the A/D clock source must be set to RC             pins are active.

                (ADCS1:ADCS0 = 11). To perform an A/D              In systems where the device will enter SLEEP mode

                conversion  in   SLEEP,  ensure    the  SLEEP      after  the  start  of  the  A/D  conversion,     the  RC   clock

                instruction immediately follows the instruc-       source selection is required. In this mode, the digital

                tion that sets the GO/DONE bit.                    noise from the modules in SLEEP are stopped. This

                                                                   method gives high accuracy.

7.6        A/D Accuracy/Error                                      7.7         Effects of a RESET

The absolute accuracy specified for the A/D converter

includes the sum of all contributions for quantization             A device reset forces all registers to their reset state.

error, integral error, differential error, full scale error, off-  This forces the A/D module to be turned off, and any

set error, and monotonicity. It is defined as the maxi-             conversion is aborted.

mum deviation from an actual transition versus an ideal            The value that is in the ADRES register is not modified

transition for any code. The absolute error of the A/D             for a Power-on Reset. The ADRES register will contain

converter is specified at < ±1 LSb for VDD = VREF (over             unknown data after a Power-on Reset.

the device’s specified operating range). However, the

accuracy    of    the  A/D  converter  will  degrade    as  VDD    7.8         Connection Considerations

diverges from VREF.                                                If the input voltage exceeds the rail values (VSS or VDD)

For a given range of analog inputs, the output digital             by greater than 0.2V, then the accuracy of the conver-

code will be the same. This is due to the quantization of          sion is out of specification.

the analog input to a digital code. Quantization error is          Note:         Care must be taken when using the RA0

typically ± 1/2 LSb and is inherent in the analog to dig-                        pin in A/D conversions due to its proximity

ital conversion process. The only way to reduce quanti-                          to the OSC1 pin.

zation error is to increase the resolution of the A/D

converter.                                                         An external RC filter is sometimes added for anti-alias-

Offset error measures the first actual transition of a              ing of the input signal. The R component should be

code versus the first ideal transition of a code. Offset            selected to ensure that the total source impedance is

error shifts the entire transfer function. Offset error can        kept under the 10 kΩ recommended specification. Any

be calibrated out of a system or introduced into a sys-            external components connected (via hi-impedance) to

tem through the interaction of the total leakage current           an analog input pin (capacitor, zener diode, etc.) should

and source impedance at the analog input.                          have very little leakage current at the pin.

Gain error measures the maximum deviation of the last

actual transition and the last ideal transition adjusted

for offset error. This error appears as a change in slope

of the transfer function. The difference in gain error to

DS30272A-page 44                                                                               © 1997 Microchip Technology Inc.
                                                                                                                                                  PIC16C71X

7.9       Transfer Function                                                          FIGURE 7-6:                                    A/D TRANSFER FUNCTION

The ideal transfer function of the A/D converter is as fol-

lows: the first transition occurs when the analog input

voltage (VAIN) is Analog VREF/256 (Figure 7-6).

7.10      References                                                                      Digital code output  FFh

A very good reference for understanding A/D convert-                                                           FEh

ers is the "Analog-Digital Conversion Handbook" third

edition,  published  by       Prentice  Hall  (ISBN          0-13-03-

2848-0).

                                                                                                               04h

                                                                                                               03h

                                                                                                               02h

                                                                                                               01h

                                                                                                               00h

                                                                                                                    0.5 LSb  1 LSb  2 LSb  3 LSb  4 LSb                 255 LSb  256 LSb  (full scale)

                                                                                                                                           Analog        input voltage

FIGURE    7-7:       FLOWCHART          OF    A/D     OPERATION

                     ADON = 0

                                Yes

                ADON = 0?

                         No

                     Acquire

                Selected Channel

                                Yes

                     GO = 0?

                     No

                A/D Clock       Yes     Start of A/D                   SLEEP         Yes                       Finish Conversion

                     = RC?              Conversion Delayed             Instruction?                                 GO = 0

                                        1 Instruction Cycle                                                         ADIF = 1

                     No                                                No

                     Device in  Yes     Abort Conversion     Finish Conversion                                      Wake-up         Yes

                     SLEEP?                   GO = 0                   GO = 0                                  From Sleep?                               Wait 2 TAD

                                        ADIF = 0                       ADIF = 1

                         No                                                                                                  No

                Finish Conversion             SLEEP                    Wait 2 TAD                              Stay in Sleep

                     GO = 0             Power-down A/D                                                         Power-down A/D

                ADIF = 1

                Wait 2 TAD

© 1997 Microchip Technology Inc.                                                                                                                                     DS30272A-page 45
PIC16C71X

TABLE 7-3:        REGISTERS/BITS ASSOCIATED WITH A/D, PIC16C710/71/711

                                                                                                         Value on:        Value on

Address     Name           Bit 7     Bit 6  Bit 5  Bit 4   Bit 3         Bit 2    Bit 1        Bit 0     POR,             all other

                                                                                                         BOR              Resets

0Bh,8Bh     INTCON         GIE       ADIE   T0IE   INTE    RBIE          T0IF     INTF         RBIF      0000  000x       0000  000u

89h         ADRES       A/D Result Register                                                              xxxx  xxxx       uuuu  uuuu

08h         ADCON0      ADCS1     ADCS0        —   CHS1    CHS0   GO/DONE         ADIF         ADON      00-0  0000       00-0  0000

88h         ADCON1           —           —     —   —       —             —        PCFG1        PCFG0     ----  --00       ----  --00

05h         PORTA            —           —     —   RA4     RA3           RA2      RA1          RA0       ---x  0000       ---u  0000

85h         TRISA            —           —     —   PORTA Data Direction Register                         ---1  1111       ---1  1111

Legend:  x  = unknown,  u = unchanged, - = unimplemented read as '0'. Shaded cells are not used for      A/D conversion.

TABLE 7-4:        REGISTERS/BITS ASSOCIATED WITH A/D, PIC16C715

                                                                                                         Value on:        Value on

Address  Name       Bit 7         Bit 6     Bit 5  Bit 4   Bit 3         Bit 2    Bit 1        Bit 0     POR,             all other

                                                                                                         BOR              Resets

0Bh/8Bh  INTCON         GIE       PEIE      T0IE   INTE    RBIE          T0IF     INTF         RBIF      0000 000x        0000  000u

0Ch      PIR1           —         ADIF      —      —       —             —        —            —         -0-- ----        -0--  ----

8Ch      PIE1           —         ADIE      —      —       —             —        —            —         -0-- ----        -0--  ----

1Eh      ADRES      A/D Result Register                                                                  xxxx xxxx        uuuu  uuuu

1Fh      ADCON      ADCS          ADCS      CHS2   CHS1    CHS0          GO/      —            ADON      0000 00-0        0000  00-0

         0              1         0                                      DONE

9Fh      ADCON          —         —         —      —       —             —        PCFG1        PCFG0     ---- --00        ----  --00

         1

05h      PORTA          —         —         —      RA4     RA3           RA2      RA1          RA0       ---x  0000       ---u  0000

85h      TRISA          —         —         —      TRISA4  TRISA         TRISA2   TRISA1       TRISA0    ---1  1111       ---1  1111

                                                              3

Legend:  x = unknown, u = unchanged, - = unimplemented     read as '0'.  Shaded cells are not  used for  A/D conversion.

DS30272A-page 46                                                                               © 1997 Microchip Technology Inc.
                                                                                                           PIC16C71X

8.0            SPECIAL FEATURES OF THE                                      fixed   delay  of  72    ms  (nominal)  on     power-up    only,

               CPU                                                          designed to keep the part in reset while the power sup-

                                                                            ply  stabilizes.  With  these  two   timers     on-chip,  most

Applicable Devices           710 71 711 715                                 applications need no external reset circuitry.

What sets a microcontroller apart from other proces-                        SLEEP mode is designed to offer a very low current

sors are special circuits to deal with the needs of real-                   power-down mode. The user can wake-up from SLEEP

time applications. The PIC16CXX family has a host of                        through external reset, Watchdog Timer Wake-up, or

such features intended to maximize system reliability,                      through an interrupt. Several oscillator options are also

minimize cost through elimination of external compo-                        made available to allow the part to fit the application.

nents, provide power saving operating modes and offer                       The RC oscillator option saves system cost while the

code protection. These are:                                                 LP crystal option saves power. A set of configuration

•  Oscillator selection                                                     bits are used to select various options.

•  Reset                                                                    8.1         Configuration Bits

   -  Power-on Reset (POR)                                                  The configuration bits can be programmed (read as '0')

   -  Power-up Timer (PWRT)                                                 or left unprogrammed (read as '1') to select various

   -  Oscillator Start-up Timer (OST)                                       device configurations. These bits are mapped in pro-

   -  Brown-out Reset (BOR)                                                 gram memory location 2007h.

      (PIC16C710/711/715)                                                   The user will note that address 2007h is beyond the

   -  Parity Error Reset (PER) (PIC16C715)                                  user program memory space. In fact, it belongs to the

•  Interrupts                                                               special     test/configuration  memory     space  (2000h     -

•  Watchdog Timer (WDT)                                                     3FFFh), which can be accessed only during program-

•  SLEEP                                                                    ming.

•  Code protection

•  ID locations

•  In-circuit serial programming

The PIC16CXX has a Watchdog Timer which can be

shut off only through configuration bits. It runs off its

own RC oscillator for added reliability. There are two

timers that offer necessary delays on power-up. One is

the Oscillator Start-up Timer (OST), intended to keep

the chip in reset until the crystal oscillator is stable. The

other is the Power-up Timer (PWRT), which provides a

FIGURE 8-1:         CONFIGURATION WORD FOR PIC16C71

      —          —  —    —           —     —      —         —  —       CP0       PWRTE  WDTE  FOSC1  FOSC0       Register:  CONFIG

      bit13                                                                                                bit0  Address     2007h

      bit 13-5:  Unimplemented: Read as '1'

      bit 4:     CP0: Code protection bit

                 1 = Code protection off

                 0 = All memory is code protected, but 00h  -  3Fh is  writable

      bit  3:    PWRTE: Power-up Timer Enable bit

                 1 = Power-up Timer enabled

                 0 = Power-up Timer disabled

      bit  2:    WDTE: Watchdog Timer Enable bit

                 1 = WDT enabled

                 0 = WDT disabled

      bit  1-0:  FOSC1:FOSC0: Oscillator Selection bits

                 11 = RC oscillator

                 10 = HS oscillator

                 01 = XT oscillator

                 00 = LP oscillator

© 1997 Microchip Technology Inc.                                                                                      DS30272A-page 47
PIC16C71X

FIGURE 8-2:       CONFIGURATION WORD, PIC16C710/711

CP0        CP0  CP0  CP0         CP0   CP0  CP0    BODEN  CP0   CP0       PWRTE  WDTE  FOSC1  FOSC0            Register:  CONFIG

bit13                                                                                         bit0             Address    2007h

bit  13-7    CP0: Code protection bits (2)

       5-4:  1 = Code protection off

             0 = All memory is code protected, but 00h - 3Fh is writable

bit  6:      BODEN: Brown-out Reset Enable bit (1)

             1 = BOR enabled

             0 = BOR disabled

bit  3:      PWRTE: Power-up Timer Enable bit (1)

             1 = PWRT disabled

             0 = PWRT enabled

bit  2:      WDTE: Watchdog Timer Enable bit

             1 = WDT enabled

             0 = WDT disabled

bit  1-0:    FOSC1:FOSC0: Oscillator Selection bits

             11 = RC oscillator

             10 = HS oscillator

             01 = XT oscillator

             00 = LP oscillator

Note     1:  Enabling Brown-out Reset automatically enables Power-up Timer (PWRT) regardless of the value of bit          PWRTE.

             Ensure the Power-up Timer is enabled anytime Brown-out Reset is enabled.

         2:  All of the CP0 bits have to be given the same value to enable the code protection scheme listed.

FIGURE 8-3:       CONFIGURATION WORD, PIC16C715

CP1        CP0  CP1  CP0      CP1     CP0   MPEEN BODEN   CP1   CP0       PWRTE  WDTE  FOSC1  FOSC0            Register:  CONFIG

bit13                                                                                         bit0             Address    2007h

bit 13-8     CP1:CP0: Code Protection bits (2)

     5-4:    11 = Code protection off

             10 = Upper half of program memory code protected

             01 = Upper 3/4th of program memory code protected

             00 = All memory is code protected

bit  7:      MPEEN: Memory Parity Error Enable

             1 = Memory Parity Checking is enabled

             0 = Memory Parity Checking is disabled

bit  6:      BODEN: Brown-out Reset Enable bit (1)

             1 = BOR enabled

             0 = BOR disabled

bit  3:      PWRTE: Power-up Timer Enable bit (1)

             1 = PWRT disabled

             0 = PWRT enabled

bit  2:      WDTE: Watchdog Timer Enable bit

             1 = WDT enabled

             0 = WDT disabled

bit  1-0:    FOSC1:FOSC0: Oscillator Selection bits

             11 = RC oscillator

             10 = HS oscillator

             01 = XT oscillator

             00 = LP oscillator

Note     1:  Enabling Brown-out Reset automatically enables Power-up Timer (PWRT) regardless of the value of bit          PWRTE.

             Ensure the Power-up Timer is enabled anytime Brown-out Reset is enabled.

         2:  All of the CP1:CP0 pairs have to be given the same value to enable the code protection scheme listed.

DS30272A-page 48                                                                              © 1997 Microchip Technology         Inc.
                                                                                             PIC16C71X

8.2          Oscillator Configurations                                  TABLE 8-1:      CERAMIC RESONATORS,

8.2.1        OSCILLATOR TYPES                                                          PIC16C71

The PIC16CXX can be operated in four different oscil-                  Ranges Tested:

lator modes. The user can program two configuration                     Mode            Freq              OSC1  OSC2

bits (FOSC1 and FOSC0) to select one of these four                     XT        455 kHz     47 - 100 pF       47 - 100 pF

modes:                                                                           2.0 MHz     15 - 68 pF        15 - 68 pF

•  LP        Low Power Crystal                                                   4.0 MHz     15 - 68 pF        15 - 68 pF

•  XT        Crystal/Resonator                                         HS        8.0 MHz     15 - 68 pF        15 - 68 pF

•  HS        High Speed Crystal/Resonator                                        16.0 MHz    10 - 47 pF        10 - 47 pF

•  RC        Resistor/Capacitor                                                These values are for design guidance only. See

                                                                               notes at bottom of page.

8.2.2        CRYSTAL OSCILLATOR/CERAMIC                                Resonators Used:

             RESONATORS                                                                                        ± 0.3%

                                                                       455 kHz   Panasonic EFO-A455K04B

In XT, LP or HS modes a crystal or ceramic resonator                   2.0 MHz   Murata Erie CSA2.00MG         ± 0.5%

is connected to the OSC1/CLKIN and OSC2/CLKOUT                         4.0 MHz   Murata Erie CSA4.00MG         ± 0.5%

pins     to    establish    oscillation       (Figure 8-4).       The  8.0 MHz   Murata Erie CSA8.00MT         ± 0.5%

PIC16CXX Oscillator design requires the use of a par-                                                          ± 0.5%

allel cut crystal. Use of a series cut crystal may give a              16.0 MHz  Murata Erie CSA16.00MX

frequency out of the crystal manufacturers specifica-                       All resonators used did not have built-in capacitors.

tions. When in XT, LP or HS modes, the device can                      TABLE 8-2:      CAPACITOR SELECTION

have     an  external  clock      source  to  drive  the     OSC1/                     FOR CRYSTAL OSCILLATOR,

CLKIN pin (Figure 8-5).                                                                PIC16C71

FIGURE 8-4:            CRYSTAL/CERAMIC

                       RESONATOR OPERATION                             Mode        Freq      OSC1              OSC2

                       (HS, XT OR LP                                       LP      32 kHz    33 - 68 pF        33 - 68 pF

                       OSC CONFIGURATION)                                          200 kHz   15 - 47 pF        15 - 47 pF

                            OSC1                                           XT      100 kHz   47 - 100 pF       47 - 100 pF

                                                                                   500 kHz   20 - 68 pF        20 - 68 pF

             C1                                                                    1 MHz     15 - 68 pF        15 - 68 pF

                 XTAL                              SLEEP                           2 MHz     15 - 47 pF        15 - 47 pF

                                  RF               PIC16CXXX                       4 MHz     15 - 33 pF        15 - 33 pF

                            OSC2                                           HS      8 MHz     15 - 47 pF        15 - 47 pF

                       RS                     (2)    To internal                   20 MHz    15 - 47 pF        15 - 47 pF

             C2  Note1                               logic

                                                                               These values are for design guidance only. See

   See Table 8-1 and Table 8-1 for recommended values of                       notes at bottom of page.

   C1 and C2.

   Note  1:  A series resistor may be required for AT strip

             cut crystals.

         2:  The buffer is on the OSC2 pin.

FIGURE 8-5:            EXTERNAL CLOCK INPUT

                       OPERATION (HS, XT OR LP

                       OSC CONFIGURATION)

   Clock from                     OSC1

   ext. system                            PIC16CXXX

                 Open             OSC2

© 1997 Microchip Technology Inc.                                                                          DS30272A-page 49
PIC16C71X

TABLE 8-3:         CERAMIC RESONATORS,                             TABLE 8-4:  CAPACITOR SELECTION

                   PIC16C710/711/715                                           FOR CRYSTAL OSCILLATOR,

                                                                               PIC16C710/711/715

Ranges Tested:

Mode        Freq                   OSC1  OSC2                      Osc Type    Crystal  Cap. Range       Cap. Range

                                                                               Freq             C1       C2

XT        455 kHz   68 - 100 pF          68 - 100 pF               LP          32 kHz        33 pF       33 pF

          2.0 MHz   15 - 68 pF           15 - 68 pF                            200 kHz       15 pF       15 pF

          4.0 MHz   15 - 68 pF           15 - 68 pF

HS        8.0 MHz   10 - 68 pF           10 - 68 pF                XT          200 kHz       47-68 pF    47-68 pF

          16.0 MHz  10 - 22 pF           10 - 22 pF                            1 MHz         15 pF       15 pF

         These values are for design guidance only. See                        4 MHz         15 pF       15 pF

         notes at bottom of page.                                  HS          4 MHz         15 pF       15 pF

Resonators Used:                                                               8 MHz         15-33 pF    15-33 pF

455 kHz   Panasonic EFO-A455K04B         ± 0.3%                                20 MHz        15-33 pF    15-33 pF

2.0 MHz   Murata Erie CSA2.00MG          ± 0.5%                    These values are for design guidance only. See

4.0 MHz   Murata Erie CSA4.00MG          ± 0.5%                    notes at bottom of page.

8.0 MHz   Murata Erie CSA8.00MT          ± 0.5%                                     Crystals Used

16.0 MHz  Murata Erie CSA16.00MX         ± 0.5%                    32 kHz      Epson C-001R32.768K-A     ± 20 PPM

    All resonators used did not have built-in capacitors.          200 kHz     STD XTL 200.000KHz        ± 20 PPM

                                                                   1 MHz       ECS ECS-10-13-1           ± 50 PPM

                                                                   4 MHz       ECS ECS-40-20-1           ± 50 PPM

                                                                   8 MHz       EPSON CA-301 8.000M-C     ± 30 PPM

                                                                   20 MHz      EPSON CA-301 20.000M-C    ± 30 PPM

Note 1:  Recommended values of C1 and C2 are identical to the ranges tested table.

    2:   Higher capacitance increases the stability of oscillator but also increases the start-up time.

    3:   Since each resonator/crystal has its own characteristics, the user should consult the resonator/crystal man-

         ufacturer for appropriate values of external components.

    4:   Rs may be required in HS mode as well as XT mode to avoid overdriving crystals with low drive level speci-

         fication.

DS30272A-page 50                                                                        © 1997 Microchip Technology Inc.
                                                                                                  PIC16C71X

8.2.3     EXTERNAL CRYSTAL OSCILLATOR                                  8.2.4  RC OSCILLATOR

          CIRCUIT

                                                                       For  timing  insensitive   applications    the    “RC”  device

Either a prepackaged oscillator can be used or a simple                option offers additional cost savings. The RC oscillator

oscillator circuit with TTL gates can be built. Prepack-               frequency is a function of the supply voltage, the resis-

aged oscillators provide a wide operating range and                    tor (Rext) and capacitor (Cext) values, and the operat-

better stability. A well-designed crystal oscillator will              ing  temperature.  In     addition     to  this,  the  oscillator

provide good performance with TTL gates. Two types of                  frequency will vary from unit to unit due to normal pro-

crystal oscillator circuits can be used; one with series               cess parameter variation. Furthermore, the difference

resonance, or one with parallel resonance.                             in lead frame capacitance between package types will

Figure 8-6 shows implementation of a parallel resonant                 also affect the oscillation frequency, especially for low

oscillator circuit. The circuit is designed to use the fun-            Cext values. The user also needs to take into account

damental frequency of the crystal. The 74AS04 inverter                 variation due to tolerance of external R and C compo-

performs  the  180-degree          phase  shift  that     a  parallel  nents used. Figure 8-8 shows how the R/C combina-

oscillator requires. The 4.7 kΩ resistor provides the                  tion is connected to the PIC16CXX. For Rext values

negative feedback for stability. The 10 kΩ potentiome-                 below  2.2   kΩ,  the  oscillator   operation     may  become

ter biases the 74AS04 in the linear region. This could                 unstable, or stop completely. For very high Rext values

be used for external oscillator designs.                               (e.g. 1 MΩ), the oscillator becomes sensitive to noise,

                                                                       humidity and leakage. Thus, we recommend to keep

FIGURE 8-6:          EXTERNAL PARALLEL                                 Rext between 3 kΩ and 100 kΩ.

                     RESONANT CRYSTAL                                  Although the oscillator will operate with no external

                     OSCILLATOR CIRCUIT                                capacitor (Cext = 0 pF), we recommend using values

            +5V                                                        above 20 pF for noise and stability reasons. With no or

                                           To Other                    small external capacitance, the oscillation frequency

                                           Devices                     can    vary  dramatically  due     to  changes    in   external

               10k                                                     capacitances, such as PCB trace capacitance or pack-

                     4.7k          74AS04            PIC16CXXX

                                                     CLKIN             age lead frame capacitance.

                    74AS04

                                                                       See characterization data for desired device for RC fre-

                                                                       quency variation from part to part due to normal pro-

                                   10k                                 cess variation. The variation is larger for larger R (since

                     XTAL                                              leakage current variation will affect RC frequency more

                                                                       for large R) and for smaller C (since variation of input

       10k                                                             capacitance will affect RC frequency more).

                                                                       See characterization data for desired device for varia-

               20  pF      20  pF                                      tion of oscillator frequency due to VDD for given Rext/

                                                                       Cext values as well as frequency variation due to oper-

Figure 8-7 shows a series resonant oscillator circuit.                 ating temperature for given R, C, and VDD values.

This circuit is also designed to use the fundamental fre-              The oscillator frequency, divided by 4, is available on

quency of the crystal. The inverter performs a 180-                    the OSC2/CLKOUT pin, and can be used for test pur-

degree phase shift in a series resonant oscillator cir-                poses or to synchronize other logic (see Figure 3-2 for

cuit. The 330 kΩ resistors provide the negative feed-                  waveform).

back to bias the inverters in their linear region.                     FIGURE 8-8:        RC OSCILLATOR MODE

FIGURE 8-7:          EXTERNAL SERIES

                     RESONANT CRYSTAL                                         V DD

                     OSCILLATOR CIRCUIT

                                                                       Rext

                                                To Other                                          OSC1                   Internal

330 kΩ                 330 kΩ                   Devices                                                                       clock

74AS04                 74AS04           74AS04            PIC16CXXX    Cext                                              PIC16CXXX

                                                          CLKIN        VSS

            0.1 µF                                                                                OSC2/CLKOUT

                                                                                         Fosc/4

               XTAL

© 1997 Microchip Technology Inc.                                                                                  DS30272A-page 51
PIC16C71X

8.3       Reset                                                      WDT Reset, on MCLR reset during SLEEP, and Brown-

                                                                     out  Reset  (BOR).  They  are  not  affected  by  a  WDT

Applicable Devices           710 71 711 715                          Wake-up, which is viewed as the resumption of normal

                                                                     operation. The TO and PD bits are set or cleared differ-

The PIC16CXX differentiates between various kinds of                 ently in different reset situations as indicated in Table 8-

reset:                                                               7, Table 8-8 and Table 8-9. These bits are used in soft-

•  Power-on Reset (POR)                                              ware to determine the nature of the reset. See Table 8-

•  MCLR reset during normal operation                                10 and Table 8-11 for a full description of reset states

•  MCLR reset during SLEEP                                           of all registers.

•  WDT Reset (normal operation)                                      A simplified block diagram of the on-chip reset circuit is

•  Brown-out Reset (BOR) (PIC16C710/711/715)                         shown in Figure 8-9.

•  Parity Error Reset (PIC16C715)                                    The PIC16C710/711/715 have a MCLR noise filter in

Some registers are not affected in any reset condition;              the MCLR reset path. The filter will detect and ignore

their status is unknown on POR and unchanged in any                  small pulses.

other reset. Most other registers are reset to a “reset              It should be noted that a WDT Reset does not drive

state” on Power-on Reset (POR), on the MCLR and                      MCLR pin low.

FIGURE 8-9:       SIMPLIFIED BLOCK DIAGRAM               OF  ON-CHIP RESET CIRCUIT

                                External

                                Reset

   MCLR/VPP Pin

                 Program       MPEEN

                  Memory
                  Parity(3)

                  WDT        SLEEP

                  Module

                             WDT Time-out

                  VDD rise

                  detect       Power-on Reset

     VDD

                 Brown-out                                                                          S
                  Reset(2)
                               BODEN

              OST/PWRT

                          OST                                                                                      Chip_Reset

                             10-bit Ripple-counter                                                  R    Q

   OSC1/

   CLKIN

     Pin                  PWRT

              On-chip(1)     10-bit Ripple-counter

              RC OSC

                                                         Enable PWRT      See Table 8-6 for time-out situations.

                                                         Enable OST

   Note   1:  This is a separate oscillator from the RC oscillator of the CLKIN pin.

          2:  Brown-out Reset is implemented on the PIC16C710/711/715.

          3:  Parity Error Reset is implemented on the PIC16C715.

DS30272A-page 52                                                                           © 1997 Microchip Technology Inc.
                                                                                                         PIC16C71X

8.4    Power-on Reset (POR), Power-up                                    The power-up time delay will vary from chip to chip due

       Timer (PWRT) and Oscillator Start-up                              to VDD, temperature, and process variation. See DC

       Timer (OST), and Brown-out Reset                                  parameters for details.

       (BOR)                                                             8.4.3       OSCILLATOR START-UP TIMER (OST)

8.4.1  POWER-ON RESET (POR)                                              Applicable Devices              710 71 711 715

Applicable Devices             710 71 711 715                            The    Oscillator     Start-up  Timer  (OST)   provides  1024

A Power-on Reset pulse is generated on-chip when                         oscillator  cycle     (from     OSC1   input)  delay  after  the

VDD rise is detected (in the range of 1.5V - 2.1V). To                   PWRT delay is over. This ensures that the crystal oscil-

take   advantage  of  the      POR,  just   tie  the   MCLR    pin       lator or resonator has started and stabilized.

directly (or through a resistor) to VDD. This will eliminate             The OST time-out is invoked only for XT, LP and HS

external RC components usually needed to create a                        modes and only on Power-on Reset or wake-up from

Power-on Reset. A maximum rise time for VDD is spec-                     SLEEP.

ified. See Electrical Specifications for details.

When   the   device   starts   normal       operation  (exits  the       8.4.4       BROWN-OUT RESET (BOR)

reset condition), device operating parameters (voltage,                  Applicable Devices              710 71 711 715

frequency,   temperature,      ...)  must   be   met   to  ensure

operation. If these conditions are not met, the device                   A configuration bit, BODEN, can disable (if clear/pro-

must be held in reset until the operating conditions are                 grammed) or enable (if set) the Brown-out Reset cir-

met. Brown-out Reset may be used to meet the startup                     cuitry. If VDD falls below 4.0V (3.8V - 4.2V range) for

conditions.                                                              greater than parameter #35, the brown-out situation will

For   additional  information,       refer  to  Application  Note        reset the chip. A reset may not occur if VDD falls below

AN607, "Power-up Trouble Shooting."                                      4.0V for less than parameter #35. The chip will remain

                                                                         in Brown-out Reset until VDD rises above BVDD. The

8.4.2  POWER-UP TIMER (PWRT)                                             Power-up Timer will now be invoked and will keep the

                                                                         chip in RESET an additional 72 ms. If VDD drops below

Applicable Devices             710 71 711 715                            BVDD while the Power-up Timer is running, the chip will

                                                                         go  back    into   a  Brown-out  Reset  and    the    Power-up

The Power-up Timer provides a fixed 72 ms nominal                         Timer will be initialized. Once VDD rises above BVDD,

time-out on power-up only, from the POR. The Power-                      the Power-up Timer will execute a 72 ms time delay.

up Timer operates on an internal RC oscillator. The                      The Power-up Timer should always be enabled when

chip is kept in reset as long as the PWRT is active. The                 Brown-out Reset is enabled. Figure 8-10 shows typical

PWRT’s time delay allows VDD to rise to an acceptable                    brown-out situations.

level. A configuration bit is provided to enable/disable

the PWRT.

FIGURE 8-10:         BROWN-OUT SITUATIONS

                      VDD

                                                                                                                BVDD

                     Internal                                            72 ms

                      Reset

                      VDD

                                                                                                                BVDD

                     Internal                                       <72  ms     72 ms

                      Reset

                      VDD

                                                                                                                BVDD

                     Internal                                                   72 ms

                      Reset

© 1997 Microchip Technology Inc.                                                                                      DS30272A-page   53
PIC16C71X

8.4.5       TIME-OUT SEQUENCE                                          Bit1 is POR (Power-on Reset Status bit). It is cleared

                                                                       on a Power-on Reset and unaffected otherwise. The

Applicable Devices          710 71 711 715                             user must set this bit following a Power-on Reset.

On power-up the time-out sequence is as follows: First                 For the PIC16C715, bit2 is PER (Parity Error Reset). It

PWRT time-out is invoked after the POR time delay has                  is cleared on a Parity Error Reset and must be set by

expired. Then OST is activated. The total time-out will                user software. It will also be set on a Power-on Reset.

vary based on oscillator configuration and the status of                For the PIC16C715, bit7 is MPEEN (Memory Parity

the PWRT. For example, in RC mode with the PWRT                        Error Enable). This bit reflects the status of the MPEEN

disabled, there will be no time-out at all. Figure 8-11,               bit in configuration word. It is unaffected by any reset of

Figure 8-12,      and       Figure 8-13  depict       time-out         interrupt.

sequences on power-up.

Since the time-outs occur from the POR pulse, if MCLR                  8.4.7        PARITY ERROR RESET (PER)

is kept low long enough, the time-outs will expire. Then               Applicable Devices            710 71 711 715

bringing MCLR high will begin execution immediately

(Figure 8-12). This is useful for testing purposes or to               The PIC16C715 has on-chip parity bits that can be

synchronize more than one PIC16CXX device operat-                      used to verify the contents of program memory. Parity

ing in parallel.                                                       bits may be useful in applications in order to increase

Table 8-10 and Table 8-11 show the reset conditions for                overall reliability of a system.

some special function registers, while Table 8-12 and                  There are two parity bits for each word of Program

Table 8-13    show     the  reset  conditions    for  all  the         Memory. The parity bits are computed on alternating

registers.                                                             bits  of  the   program  word.    One   computation  is  per-

8.4.6       POWER CONTROL/STATUS REGISTER                              formed using even parity, the other using odd parity. As

            (PCON)                                                     a program executes, the parity is verified. The even par-

                                                                       ity bit is XOR’d with the even bits in the program mem-

Applicable Devices          710 71 711 715                             ory word. The odd parity bit is negated and XOR’d with

                                                                       the odd bits in the program memory word. When an

The Power Control/Status Register, PCON has up to                      error is detected, a reset is generated and the PER flag

two bits, depending upon the device.                                   bit 2 in the PCON register is cleared (logic ‘0’). This indi-

Bit0 is Brown-out Reset Status bit, BOR. Bit BOR is                    cation can allow software to act on a failure. However,

unknown on a Power-on Reset. It must then be set by                    there is no indication of the program memory location

the user and checked on subsequent resets to see if bit                of the failure in Program Memory. This flag can only be

BOR cleared, indicating a BOR occurred. The BOR bit                    set (logic ‘1’) by software.

is a "Don’t Care" bit and is not necessarily predictable               The parity array is user selectable during programming.

if the Brown-out Reset circuitry is disabled (by clearing              Bit   7  of  the  configuration    word  located  at  address

bit BODEN in the Configuration Word).                                   2007h can be programmed (read as ‘0’) to disable par-

                                                                       ity. If left unprogrammed (read as ‘1’), parity is enabled.

TABLE 8-5:          TIME-OUT IN VARIOUS SITUATIONS, PIC16C71

       Oscillator Configuration                                  Power-up                               Wake-up from SLEEP

                                                 PWRTE = 1                   PWRTE = 0

              XT, HS, LP                 72 ms + 1024TOSC                       1024TOSC                       1024 TOSC

                  RC                                  72 ms                         —                          —

TABLE 8-6:          TIME-OUT IN VARIOUS SITUATIONS, PIC16C710/711/715

Oscillator Configuration                          Power-up                             Brown-out          Wake-up from SLEEP

                                   PWRTE = 0                 PWRTE = 1

       XT, HS, LP                  72 ms + 1024TOSC          1024TOSC            72 ms + 1024TOSC              1024TOSC

              RC                         72 ms                  —                        72 ms                    —

DS30272A-page 54                                                                                 © 1997 Microchip Technology Inc.
                                                                                         PIC16C71X

TABLE 8-7:        STATUS BITS AND THEIR SIGNIFICANCE, PIC16C71

   TO                PD

     1                1           Power-on Reset

     0                x           Illegal, TO is set on POR

     x                0           Illegal, PD is set on POR

     0                1           WDT Reset

     0                0           WDT Wake-up

     u                u           MCLR Reset during normal operation

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

TABLE 8-8:        STATUS       BITS AND THEIR SIGNIFICANCE, PIC16C710/711

POR     BOR       TO        PD

0           x     1         1     Power-on Reset

0           x     0         x     Illegal, TO is set on POR

0           x     x         0     Illegal, PD is set on POR

1           0     x         x     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   8-9:      STATUS BITS AND THEIR SIGNIFICANCE, PIC16C715

PER         POR       BOR         TO  PD

1              0         x        1   1        Power-on Reset

x              0         x        0   x        Illegal, TO is set on POR

x              0         x        x   0        Illegal, PD is set on POR

1              1         0        x   x        Brown-out Reset

1              1         1        0   1        WDT Reset

1              1         1        0   0        WDT Wake-up

1              1         1        u   u        MCLR Reset during normal    operation

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

0              1         1        1   1        Parity Error Reset

0              0         x        x   x        Illegal, PER is set on POR

0              x         0        x   x        Illegal, PER is set on BOR

© 1997 Microchip Technology Inc.                                                                  DS30272A-page 55
PIC16C71X

TABLE 8-10:         RESET CONDITION FOR SPECIAL REGISTERS, PIC16C710/71/711

                                             Program                              STATUS               PCON

                    Condition                Counter                              Register             Register

                                                                                                       PIC16C710/711

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

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

MCLR Reset during SLEEP                      000h                                 0001     0uuu        ----  --uu

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

WDT Wake-up                                  PC + 1                               uuu0 0uuu            ----  --uu

Brown-out Reset (PIC16C710/711)              000h                                 0001     1uuu        ----  --u0

Interrupt wake-up from SLEEP                 PC + 1(1)                            uuu1     0uuu        ----  --uu

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

Note 1:  When the wake-up is due to an interrupt and the GIE bit is set, the PC is loaded

         with the interrupt vector (0004h).

TABLE 8-11:         RESET CONDITION FOR SPECIAL REGISTERS, PIC16C715

                    Condition                Program                              STATUS               PCON

                                             Counter                              Register             Register

Power-on Reset                               000h                                 0001 1xxx            u---  -10x

MCLR Reset during normal operation           000h                                 000u uuuu            u---  -uuu

MCLR Reset during SLEEP                      000h                                 0001 0uuu            u---  -uuu

WDT Reset                                    000h                                 0000 1uuu            u---  -uuu

WDT Wake-up                                  PC + 1                               uuu0 0uuu            u---  -uuu

Brown-out Reset                              000h                                 0001 1uuu            u---  -uu0

Parity Error Reset                           000h                                 uuu1     0uuu        u---  -0uu

Interrupt wake-up from SLEEP                 PC + 1(1)                            uuu1 0uuu            u---  -uuu

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

Note 1:  When the wake-up is due to an interrupt and the GIE bit is set, the  PC  is loaded with  the  interrupt vector

         (0004h).

DS30272A-page 56                                                                           © 1997 Microchip Technology Inc.
                                                                                PIC16C71X

TABLE 8-12:         INITIALIZATION CONDITIONS FOR ALL REGISTERS, PIC16C710/71/711

     Register              Power-on Reset,                       MCLR Resets                     Wake-up via

                    Brown-out Reset(5)                           WDT Reset                       WDT or

                                                                                                 Interrupt

W                                 xxxx xxxx                      uuuu uuuu                       uuuu  uuuu

INDF                                 N/A                         N/A                             N/A

TMR0                              xxxx xxxx                      uuuu uuuu                       uuuu  uuuu

PCL                                  0000h                       0000h                           PC    +  1(2)

STATUS                            0001  1xxx                     000q  quuu(3)                   uuuq  quuu(3)

FSR                               xxxx  xxxx                     uuuu uuuu                       uuuu  uuuu

PORTA                             ---x  0000                     ---u 0000                       ---u  uuuu

PORTB                             xxxx  xxxx                     uuuu uuuu                       uuuu  uuuu

PCLATH                            ---0  0000                     ---0 0000                       ---u  uuuu

INTCON                            0000  000x                     0000 000u                       uuuu  uuuu(1)

ADRES                             xxxx xxxx                      uuuu uuuu                       uuuu  uuuu

ADCON0                            00-0 0000                      00-0 0000                       uu-u  uuuu

OPTION                            1111 1111                      1111 1111                       uuuu  uuuu

TRISA                             ---1 1111                      ---1 1111                       ---u  uuuu

TRISB                             1111 1111                      1111 1111                       uuuu  uuuu

PCON(4)                           ---- --0u                      ---- --uu                       ----  --uu

ADCON1                            ---- --00                      ---- --00                       ----  --uu

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

Note 1:   One or more bits in INTCON will be affected (to cause wake-up).

      2:  When the wake-up is due to an interrupt and the GIE bit is set, the PC is loaded with  the interrupt vector

          (0004h).

      3:  See Table 8-10 for reset value for specific condition.

      4:  The PCON register is not implemented on the PIC16C71.

      5:  Brown-out reset is not implemented on the PIC16C71.

© 1997 Microchip Technology Inc.                                                                       DS30272A-page 57
PIC16C71X

TABLE 8-13:         INITIALIZATION CONDITIONS FOR ALL REGISTERS, PIC16C715

      Register           Power-on Reset,                         MCLR Resets                     Wake-up via

                    Brown-out Reset                              WDT Reset                       WDT or

                    Parity Error Reset                                                           Interrupt

W                        xxxx  xxxx                              uuuu  uuuu                      uuuu  uuuu

INDF                        N/A                                  N/A                             N/A

TMR0                     xxxx  xxxx                              uuuu  uuuu                      uuuu  uuuu

PCL                      0000  0000                              0000  0000                      PC    +  1(2)

STATUS                   0001  1xxx                              000q quuu(3)                    uuuq  quuu(3)

FSR                      xxxx  xxxx                              uuuu  uuuu                      uuuu  uuuu

PORTA                    ---x  0000                              ---u  0000                      ---u  uuuu

PORTB                    xxxx  xxxx                              uuuu  uuuu                      uuuu  uuuu

PCLATH                   ---0  0000                              ---0  0000                      ---u  uuuu

INTCON                   0000  000x                              0000  000u                      uuuu  uuuu(1)

PIR1                     -0--  ----                              -0--  ----                      -u--  ----(1)

ADCON0                   0000  00-0                              0000  00-0                      uuuu  uu-u

OPTION                   1111  1111                              1111  1111                      uuuu  uuuu

TRISA                    ---1  1111                              ---1  1111                      ---u  uuuu

TRISB                    1111  1111                              1111  1111                      uuuu  uuuu

PIE1                     -0--  ----                              -0--  ----                      -u--  ----

PCON                     ----  -qqq                              ----  -1uu                      ----  -1uu

ADCON1                   ----  --00                              ----  --00                      ----  --uu

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

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

      2:  When the wake-up is due to an interrupt and the GIE bit is set, the PC is loaded with  the interrupt vector

          (0004h).

      3:  See Table 8-11 for reset value for specific condition.

DS30272A-page 58                                                                    © 1997 Microchip Technology Inc.
                                                                                PIC16C71X

FIGURE 8-11:  TIME-OUT            SEQUENCE  ON  POWER-UP (MCLR      NOT   TIED TO VDD): CASE 1

              VDD

MCLR

INTERNAL POR

                                                       TPWRT

PWRT TIME-OUT                                                             TOST

OST TIME-OUT

INTERNAL RESET

FIGURE 8-12:  TIME-OUT            SEQUENCE  ON  POWER-UP (MCLR      NOT   TIED TO VDD): CASE 2

              VDD

MCLR

INTERNAL POR

                                                       TPWRT

PWRT TIME-OUT                                                             TOST

OST TIME-OUT

INTERNAL RESET

FIGURE 8-13:  TIME-OUT            SEQUENCE  ON  POWER-UP (MCLR      TIED  TO VDD)

              VDD

              MCLR

INTERNAL POR

                                                TPWRT

PWRT TIME-OUT                                                 TOST

OST TIME-OUT

INTERNAL RESET

© 1997 Microchip Technology Inc.                                                   DS30272A-page 59
PIC16C71X

FIGURE   8-14:    EXTERNAL POWER-ON                   FIGURE 8-15:        EXTERNAL BROWN-OUT

                  RESET CIRCUIT (FOR SLOW                                 PROTECTION CIRCUIT 1

                  VDD POWER-UP)

                                                      VDD                                       VDD

                VDD                                             33k

         D        R                                                        10k            MCLR

                        R1                                                          40k

                            MCLR                                                                PIC16CXX

                     C      PIC16CXX

                                                      Note 1:   This circuit will activate reset when VDD

Note 1:  External Power-on Reset circuit is                     goes below (Vz + 0.7V) where Vz = Zener

         required only if VDD power-up slope is too             voltage.

         slow. The diode D helps discharge the        2:        Internal brown-out detection on the

         capacitor quickly when VDD powers down.                PIC16C710/711/715 should be disabled

2:       R < 40 kΩ is recommended to make sure                  when using this circuit.

         that voltage drop across R does not violate  3:        Resistors should be adjusted for the char-

         the device’s electrical specification.                  acteristics of the transistor.

3:       R1 = 100Ω to 1 kΩ will limit any current

         flowing into MCLR from external capacitor

         C in the event of MCLR/VPP pin break-        FIGURE    8-16:     EXTERNAL BROWN-OUT

         down due to Electrostatic Discharge                              PROTECTION CIRCUIT 2

         (ESD) or Electrical Overstress (EOS).

                                                      VDD                                 VDD

                                                                R1

                                                                                Q1

                                                                                          MCLR

                                                                R2                  40k

                                                                                          PIC16CXX

                                                      Note  1:  This brown-out circuit is less expensive,

                                                                albeit less accurate. Transistor Q1 turns

                                                                off when VDD is below a certain level

                                                                such that:

                                                                    VDD •       R1        = 0.7V

                                                                            R1 + R2

                                                            2:  Internal brown-out detection on the

                                                                PIC16C710/711/715 should be disabled

                                                                when using this circuit.

                                                            3:  Resistors should be adjusted for the

                                                                characteristics of the transistor.

DS30272A-page 60                                                            © 1997 Microchip Technology Inc.
                                                                                                         PIC16C71X

8.5          Interrupts                                                  For external interrupt events, such as the INT pin or

                                                                         PORTB change interrupt, the interrupt latency will be

Applicable Devices            710 71 711 715                             three  or   four   instruction   cycles.  The   exact    latency

                                                                         depends when the interrupt event occurs (Figure 8-19).

The PIC16C71X family has 4 sources of interrupt.                         The latency is the same for one or two cycle instruc-

                    Interrupt Sources                                    tions. Individual interrupt flag bits are set regardless of

                                                                         the status of their corresponding mask bit or the GIE

External interrupt RB0/INT                                               bit.

TMR0 overflow interrupt                                                   Note:          For the PIC16C71

PORTB change interrupts (pins RB7:RB4)                                                  If an interrupt occurs while the Global Inter-

A/D Interrupt                                                                           rupt Enable (GIE) bit is being cleared, the

The interrupt control register (INTCON) records indi-                                   GIE bit may unintentionally be re-enabled

vidual interrupt requests in flag bits. It also has individ-                             by the user’s Interrupt Service Routine (the

ual and global interrupt enable bits.                                                   RETFIE    instruction).    The   events    that

                                                                                        would cause this to occur are:

   Note:      Individual interrupt flag bits are set regard-                             1.  An instruction clears the GIE bit while

              less of the status of their corresponding                                     an interrupt is acknowledged.

              mask bit or the GIE bit.

A    global   interrupt  enable    bit,  GIE    (INTCON<7>)                             2.  The program branches to the Interrupt

enables (if set) all un-masked interrupts or disables (if                                   vector and executes the Interrupt Ser-

cleared) all interrupts. When bit GIE is enabled, and an                                    vice Routine.

interrupt’s flag bit and mask bit are set, the interrupt will                            3.  The   Interrupt   Service    Routine   com-

vector   immediately.    Individual     interrupts   can   be  dis-                         pletes with the execution of the RET-

abled through their corresponding enable bits in vari-                                      FIE instruction. This causes the GIE

ous     registers.  Individual     interrupt    bits      are       set                     bit to be set (enables interrupts), and

regardless of the status of the GIE bit. The GIE bit is                                     the program returns to the instruction

cleared on reset.                                                                           after the one which was meant to dis-

The “return from interrupt” instruction, RETFIE, exits                                      able interrupts.

the interrupt routine as well as sets the GIE bit, which                                Perform the following to ensure that inter-

re-enables interrupts.                                                                  rupts are globally disabled:

The RB0/INT pin interrupt, the RB port change inter-                     LOOP   BCF         INTCON,  GIE   ;  Disable    global

rupt and the TMR0 overflow interrupt flags are con-                                                          ;     interrupt    bit

tained in the INTCON register.                                                  BTFSC       INTCON,  GIE   ;  Global     interrupt

                                                                                                           ;       disabled?

The peripheral interrupt flags are contained in the spe-                         GOTO        LOOP           ;  NO,  try   again

cial function registers PIR1 and PIR2. The correspond-                               :                     ;       Yes,  continue

ing  interrupt  enable       bits  are  contained     in   special                                         ;       with  program

function registers PIE1 and PIE2, and the peripheral                                                       ;       flow

interrupt enable bit is contained in special function reg-

ister INTCON.

When     an   interrupt  is  responded   to,  the     GIE      bit  is

cleared   to  disable    any  further    interrupt,   the  return

address is pushed onto the stack and the PC is loaded

with 0004h. Once in the interrupt service routine the

source(s) of the interrupt can be determined by polling

the interrupt flag bits. The interrupt flag bit(s) must be

cleared   in  software   before    re-enabling      interrupts      to

avoid recursive interrupts.

© 1997 Microchip Technology Inc.                                                                                   DS30272A-page 61
PIC16C71X

FIGURE 8-17:      INTERRUPT  LOGIC,  PIC16C710,  71,  711

                             T0IF                          Wakeup

                             T0IE                          (If in SLEEP mode)

                             INTF

                             INTE                          Interrupt to CPU

                             RBIF

                             RBIE

                             ADIF

                             ADIE

                             GIE

FIGURE 8-18:      INTERRUPT  LOGIC, PIC16C715

                                     T0IF                          Wakeup

                                     T0IE                          (If in SLEEP mode)

                                     INTF

                                     INTE                          Interrupt to CPU

                                     RBIF

                                     RBIE

                  ADIF               ADIF

                  ADIE

                                     GIE

DS30272A-page 62                                                               © 1997  Microchip  Technology  Inc.
                                                                                                           PIC16C71X

8.5.1      INT INTERRUPT                                                       8.5.2       TMR0 INTERRUPT

External interrupt on RB0/INT pin is edge triggered:                           An overflow (FFh → 00h) in the TMR0 register will set

either rising if bit INTEDG (OPTION<6>) is set, or fall-                       flag    bit  T0IF    (INTCON<2>).         The  interrupt  can      be

ing,   if  the  INTEDG      bit  is  clear.  When    a  valid   edge           enabled/disabled        by  setting/clearing   enable    bit  T0IE

appears         on     the  RB0/INT      pin,    flag       bit  INTF           (INTCON<5>). (Section 6.0)

(INTCON<1>) is set. This interrupt can be disabled by

clearing enable bit INTE (INTCON<4>). Flag bit INTF                            8.5.3       PORTB INTCON CHANGE

must be cleared in software in the interrupt service rou-                      An input change on PORTB<7:4> sets flag bit RBIF

tine before re-enabling this interrupt. The INT interrupt                      (INTCON<0>). The interrupt can be enabled/disabled

can wake-up the processor from SLEEP, if bit INTE was                          by   setting/clearing       enable  bit  RBIE  (INTCON<4>).

set prior to going into SLEEP. The status of global inter-                     (Section 5.2)

rupt enable bit GIE decides whether or not the proces-

sor branches to the interrupt vector following wake-up.                            Note:     For the PIC16C71

See Section 8.8 for details on SLEEP mode.                                                   if a change on the I/O pin should occur

                                                                                             when the read operation is being executed

                                                                                             (start of the Q2 cycle), then the RBIF inter-

                                                                                             rupt flag may not get set.

FIGURE 8-19:           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                           1

INTF flag                                     5                          Interrupt Latency 2

(INTCON<1>)

GIE bit

(INTCON<7>)

INSTRUCTION FLOW

       PC                        PC                         PC+1               PC+1                    0004h                  0005h

       Instruction          Inst (PC)                Inst (PC+1)               —

       fetched                                                                                     Inst (0004h)               Inst (0005h)

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

      executed

Note       1: INTF flag is sampled here (every Q1).

           2: Interrupt latency = 3-4 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 RC oscillator mode.

           4: For minimum width of INT pulse, refer to AC specs.

           5: INTF is enabled to be set anytime during the Q4-Q1 cycles.

© 1997 Microchip Technology Inc.                                                                                             DS30272A-page 63
PIC16C71X

8.6         Context Saving During Interrupts

During an interrupt, only the return PC value is saved

on the stack. Typically, users may wish to save key reg-

isters during an interrupt i.e., W register and STATUS

register. This will have to be implemented in software.

Example 8-1 stores and restores the STATUS and W

registers. The user register, STATUS_TEMP, must be

defined in bank 0.

The example:

a)   Stores the W register.

b)   Stores the STATUS register in bank 0.

c)   Executes the ISR code.

d)   Restores the STATUS register (and bank select

     bit).

e)   Restores the W register.

EXAMPLE 8-1:       SAVING STATUS AND W REGISTERS IN RAM

     MOVWF         W_TEMP         ;Copy     W  to         TEMP  register,     could   be  bank  one  or  zero

     SWAPF         STATUS,W       ;Swap     status        to    be  saved    into  W

     MOVWF         STATUS_TEMP    ;Save     status        to    bank   zero   STATUS_TEMP  register

     :

     :(ISR)

     :

     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

DS30272A-page 64                                                                           © 1997 Microchip    Technology  Inc.
                                                                                                            PIC16C71X

8.7       Watchdog Timer (WDT)                                          assigned to the WDT under software control by writing

                                                                        to the OPTION register. Thus, time-out periods up to

Applicable Devices            710 71 711 715                            2.3 seconds can be realized.

The Watchdog Timer is as a free running on-chip RC                      The CLRWDT and SLEEP instructions clear the WDT and

oscillator which does not require any external compo-                   the postscaler, if assigned to the WDT, and prevent it

nents. This RC oscillator is separate from the RC oscil-                from timing out and generating a device RESET condi-

lator of the OSC1/CLKIN pin. That means that the WDT                    tion.

will run, even if the clock on the OSC1/CLKIN and                       The TO bit in the STATUS register will be cleared upon

OSC2/CLKOUT pins of the device has been stopped,                        a Watchdog Timer time-out.

for example, by execution of a SLEEP instruction. Dur-

ing  normal  operation,  a    WDT  time-out      generates    a         8.7.2  WDT PROGRAMMING CONSIDERATIONS

device RESET (Watchdog Timer Reset). If the device is                   It should also be taken into account that under worst

in SLEEP mode, a WDT time-out causes the device to                      case conditions (VDD = Min., Temperature = Max., and

wake-up and continue with normal operation (Watch-                      max.   WDT       prescaler)     it  may  take  several  seconds

dog Timer Wake-up). The WDT can be permanently                          before a WDT time-out occurs.

disabled     by  clearing     configuration       bit     WDTE

(Section 8.1).                                                          Note:       When        a  CLRWDT      instruction  is  executed

                                                                                    and the prescaler is assigned to the WDT,

8.7.1     WDT PERIOD                                                                the prescaler count will be cleared, but the

The WDT has a nominal time-out period of 18 ms, (with                               prescaler assignment is not changed.

no prescaler). The time-out periods vary with tempera-

ture, VDD and process variations from part to part (see

DC specs). If longer time-out periods are desired, a

prescaler with a division ratio of up to 1:128 can be

FIGURE 8-20:     WATCHDOG TIMER BLOCK DIAGRAM

                                   From TMR0 Clock Source

                                   (Figure 6-6)

                                                      0

                                                      1  M                     Postscaler

                           WDT Timer                     U

                                                         X                               8

                                                                               8 - to - 1 MUX               PS2:PS0

                              WDT                        PSA

                           Enable Bit

                                                                                                   To TMR0 (Figure 6-6)

                                                                        0           1

                                                                               MUX                 PSA

Note: PSA and PS2:PS0 are bits in the OPTION register.                         WDT

                                                                               Time-out

FIGURE 8-21:     SUMMARY OF WATCHDOG TIMER REGISTERS

Address          Name              Bit 7         Bit 6           Bit 5  Bit 4            Bit 3          Bit 2        Bit 1      Bit 0

2007h            Config. bits       (1)       BODEN(1)            CP1    CP0         PWRTE(1)         WDTE        FOSC1          FOSC0

81h,181h         OPTION           RBPU       INTEDG            T0CS     T0SE             PSA            PS2          PS1        PS0

Legend: Shaded cells are not used by the Watchdog Timer.

Note 1:   See Figure 8-1, Figure 8-2 and Figure 8-3 for operation of these bits.

© 1997 Microchip Technology Inc.                                                                                       DS30272A-page 65
PIC16C71X

8.8          Power-down Mode (SLEEP)                                Other peripherals cannot generate interrupts since dur-

Power-down mode is entered by executing a SLEEP                     ing SLEEP, no on-chip Q clocks are present.

instruction.                                                        When the SLEEP instruction is being executed, the next

If  enabled,  the    Watchdog    Timer   will  be  cleared     but  instruction (PC + 1) is pre-fetched. For the device to

keeps running, the PD bit (STATUS<3>) is cleared, the               wake-up through an interrupt event, the corresponding

TO (STATUS<4>) bit is set, and the oscillator driver is             interrupt enable bit must be set (enabled). Wake-up is

turned off. The I/O ports maintain the status they had,             regardless of the state of the GIE bit. If the GIE bit is

before   the  SLEEP     instruction  was  executed        (driving  clear (disabled), the device continues execution at the

high, low, or hi-impedance).                                        instruction after the SLEEP instruction. If the GIE bit is

                                                                    set (enabled), the device executes the instruction after

For lowest current consumption in this mode, place all              the SLEEP instruction and then branches to the inter-

I/O pins at either VDD, or VSS, ensure no external cir-             rupt address (0004h). In cases where the execution of

cuitry is drawing current from the I/O pin, power-down              the instruction following SLEEP  is not desirable, the

the A/D, disable external clocks. Pull all I/O pins, that           user should have a NOP after the SLEEP instruction.

are hi-impedance inputs, high or low externally to avoid

switching     currents  caused       by  floating   inputs.  The     8.8.2  WAKE-UP USING INTERRUPTS

T0CKI input should also be at VDD or VSS for lowest                 When global interrupts are disabled (GIE cleared) and

current  consumption.       The  contribution     from    on-chip   any interrupt source has both its interrupt enable bit

pull-ups on PORTB should be considered.                             and interrupt flag bit set, one of the following will occur:

The MCLR pin must be at a logic high level (VIHMC).                 •  If the interrupt occurs before the the execution of

8.8.1        WAKE-UP FROM SLEEP                                        a SLEEP instruction, the SLEEP instruction will

                                                                       complete as a NOP. Therefore, the WDT and WDT

The device can wake up from SLEEP through one of                       postscaler will not be cleared, the TO bit will not

the following events:                                                  be set and PD bits will not be cleared.

1.   External reset input on MCLR pin.                              •  If the interrupt occurs during or after the execu-

2.   Watchdog        Timer   Wake-up      (if     WDT     was          tion of a SLEEP instruction, the device will immedi-

     enabled).                                                         ately wake up from sleep . The SLEEP instruction

3.   Interrupt from INT pin, RB port change, or some                   will be completely executed before the wake-up.

     Peripheral Interrupts.                                            Therefore, the WDT and WDT postscaler will be

                                                                       cleared, the TO bit will be set and the PD bit will

External MCLR Reset will cause a device reset. All                     be cleared.

other events are considered a continuation of program               Even if the flag bits were checked before executing a

execution and cause a "wake-up". The TO and PD bits                 SLEEP instruction, it may be possible for flag bits to

in the STATUS register can be used to determine the                 become set before the SLEEP instruction completes. To

cause    of  device  reset.  The  PD     bit,  which  is  set  on   determine whether a SLEEP instruction executed, test

power-up, is cleared when SLEEP is invoked. The TO bit              the PD bit. If the PD bit is set, the SLEEP instruction was

is cleared if a WDT time-out occurred (and caused                   executed as a NOP.

wake-up).

The following peripheral interrupts can wake the device             To ensure that the WDT is cleared, a CLRWDT instruc-

from SLEEP:                                                         tion should be executed before a SLEEP instruction.

1.   TMR1 interrupt.    Timer1 must be operating as

     an asynchronous counter.

2.   A/D conversion (when A/D clock source is RC).

DS30272A-page 66                                                                        © 1997 Microchip Technology Inc.
                                                                                                                              PIC16C71X

FIGURE 8-22:              WAKE-UP FROM SLEEP THROUGH INTERRUPT

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

              OSC1

      CLKOUT(4)                                                              TOST(2)

             INT pin

    INTF flag                                                                                            Interrupt Latency

    (INTCON<1>)

                                                                                                             (Note 2)

    GIE bit                                                    Processor in

    (INTCON<7>)

                                                               SLEEP

    INSTRUCTION FLOW

               PC         PC                    PC+1                    PC+2              PC+2               PC + 2            0004h                 0005h

      Instruction     Inst(PC) = SLEEP      Inst(PC + 1)                              Inst(PC + 2)                             Inst(0004h)          Inst(0005h)

      fetched

      Instruction         Inst(PC - 1)          SLEEP                                 Inst(PC + 1)      Dummy cycle            Dummy cycle          Inst(0004h)

      executed

    Note  1:    XT, HS or LP oscillator mode assumed.

          2:    TOST = 1024TOSC (drawing not to scale) This delay will not be there for RC osc mode.

          3:    GIE = '1' assumed. In this case after wake- up, the processor jumps to the interrupt routine. If GIE       =  '0', execution  will  continue in-line.

          4:    CLKOUT is not available in these osc modes, but shown here for timing reference.

8.9           Program Verification/Code Protection                                         The device is placed into a program/verify mode by

If  the      code     protection        bit(s)  have      not  been     pro-              holding the RB6 and RB7 pins low while raising the

grammed, the on-chip program memory can be read                                           MCLR (VPP) pin from VIL to VIHH (see programming

out for verification purposes.                                                             specification). RB6 becomes the programming clock

                                                                                          and RB7 becomes the programming data. Both RB6

    Note:          Microchip does not recommend code pro-                                 and RB7 are Schmitt Trigger inputs in this mode.

                   tecting windowed devices.                                              After reset, to place the device into programming/verify

8.10          ID Locations                                                                mode, the program counter (PC) is at location 00h. A 6-

                                                                                          bit command is then supplied to the device. Depending

Four memory locations (2000h - 2003h) are designated                                      on the command, 14-bits of program data are then sup-

as ID locations where the user can store checksum or                                      plied to or from the device, depending if the command

other code-identification numbers. These locations are                                     was a load or a read. For complete details of serial pro-

not accessible during normal execution but are read-                                      gramming, please refer to the PIC16C6X/7X Program-

able and writable during program/verify. It is recom-                                     ming Specifications (Literature #DS30228).

mended that only the 4 least significant bits of the ID

location are used.                                                                        FIGURE 8-23:           TYPICAL IN-CIRCUIT SERIAL

                                                                                                                 PROGRAMMING

8.11          In-Circuit Serial Programming                                                                      CONNECTION

PIC16CXX              microcontrollers          can    be     serially  pro-

grammed while in the end application circuit. This is                                                                      To Normal

simply done with two lines for clock and data, and three                                      External                     Connections

other lines for power, ground, and the programming                                            Connector                                             PIC16CXX

voltage. This allows customers to manufacture boards                                          Signals

with  unprogrammed            devices,          and    then   program        the                    +5V                                         VDD

microcontroller just before shipping the product. This                                                  0V                                      VSS

also allows the most recent firmware or a custom firm-                                                    VPP                                     MCLR/VPP

ware to be programmed.

                                                                                                    CLK                                         RB6

                                                                                              Data I/O                                          RB7

                                                                                                                                                         VDD

                                                                                                                           To Normal

                                                                                                                           Connections

© 1997 Microchip Technology Inc.                                                                                                                DS30272A-page 67
PIC16C71X

NOTES:

DS30272A-page 68  © 1997 Microchip Technology Inc.
                                                                                                PIC16C71X

9.0      INSTRUCTION SET SUMMARY                                 •  Byte-oriented operations

Each PIC16CXX instruction is a 14-bit word divided               •  Bit-oriented operations

into an OPCODE which specifies the instruction type               •  Literal and control operations

and one or more operands which further specify the               All instructions are executed within one single instruc-

operation of the instruction. The PIC16CXX instruction           tion cycle, unless a conditional test is true or the pro-

set summary in Table 9-2 lists byte-oriented, bit-ori-           gram counter is changed as a result of an instruction.

ented, and literal and control operations. Table 9-1             In this case, the execution takes two instruction cycles

shows the opcode field descriptions.                              with the second cycle executed as a NOP. One instruc-

For byte-oriented instructions, 'f' represents a file reg-        tion cycle consists of four oscillator periods. Thus, for

ister designator and 'd' represents a destination desig-         an oscillator frequency of 4 MHz, the normal instruction

nator. The file register designator specifies which file            execution time is 1 µs. If a conditional test is true or the

register is to be used by the instruction.                       program counter is changed as a result of an instruc-

The destination designator specifies where the result of          tion, the instruction execution time is 2 µs.

the operation is to be placed. If 'd' is zero, the result is     Table 9-2     lists  the  instructions       recognized      by  the

placed in the W register. If 'd' is one, the result is placed    MPASM assembler.

in the file register specified in the instruction.                 Figure 9-1 shows the general formats that the instruc-

For bit-oriented instructions, 'b' represents a bit field         tions can have.

designator which selects the number of the bit affected             Note:      To     maintain  upward        compatibility       with

by the operation, while 'f' represents the number of the                       future PIC16CXX products, do not use the

file in which the bit is located.                                               OPTION and TRIS instructions.

For literal and control operations, 'k' represents an            All examples use the following format to represent a

eight or eleven bit constant or literal value.                   hexadecimal number:

TABLE 9-1:              OPCODE FIELD                                0xhh

                        DESCRIPTIONS                             where h signifies a hexadecimal digit.

Field                           Description                      FIGURE 9-1:          GENERAL FORMAT FOR

   f     Register file address (0x00 to 0x7F)                                          INSTRUCTIONS

   W     Working register (accumulator)                             Byte-oriented file register operations

   b     Bit address within an 8-bit file register                   13                     8       7    6                     0

   k     Literal field, constant data or label                                  OPCODE              d             f (FILE #)

   x     Don't care location (= 0 or 1)                                     d = 0 for destination W

         The assembler will generate code with x = 0. It is the             d = 1 for destination f

         recommended form of use for compatibility with all                 f  = 7-bit file register address

         Microchip software tools.

   d     Destination select; d = 0: store result in W,              Bit-oriented file register operations

         d = 1: store result in file register f.                     13                     10   9          7  6               0

         Default is d = 1                                                      OPCODE           b (BIT #)        f (FILE #)

label    Label name

TOS      Top of Stack                                                       b = 3-bit bit address

PC       Program Counter                                                    f  = 7-bit file register address

PCLATH   Program Counter High Latch

GIE      Global Interrupt Enable bit                                Literal and control operations

WDT      Watchdog Timer/Counter                                     General

TO       Time-out bit                                               13                               8  7                     0

PD       Power-down bit                                                        OPCODE                            k (literal)

dest     Destination either the W register or the specified

         register file location                                              k  = 8-bit immediate value

[     ]  Options

(     )  Contents                                                   CALL and GOTO instructions only

→        Assigned to                                                13                11   10                                 0

<>       Register bit field                                                  OPCODE                         k (literal)

∈        In the set of                                                      k  = 11-bit immediate value

italics  User defined term (font is courier)

The instruction set is highly orthogonal and is grouped

into three basic categories:

© 1997 Microchip Technology Inc.                                                                                 DS30272A-page 69
PIC16C71X

TABLE 9-2:        PIC16CXX INSTRUCTION SET

Mnemonic,         Description                                Cycles                         14-Bit Opcode        Status                Notes

Operands                                                                               MSb                 LSb   Affected

BYTE-ORIENTED FILE REGISTER OPERATIONS

ADDWF       f, d  Add W and f                                                   1      00   0111  dfff     ffff  C,DC,Z                   1,2

ANDWF       f, d  AND W with f                                                  1      00   0101  dfff     ffff  Z                        1,2

CLRF        f     Clear f                                                       1      00   0001  lfff     ffff  Z                        2

CLRW        -     Clear W                                                       1      00   0001  0xxx     xxxx  Z

COMF        f, d  Complement f                                                  1      00   1001  dfff     ffff  Z                        1,2

DECF        f, d  Decrement f                                                   1      00   0011  dfff     ffff  Z                        1,2

DECFSZ      f, d  Decrement f, Skip if 0                                        1(2)   00   1011  dfff     ffff                           1,2,3

INCF        f, d  Increment f                                                   1      00   1010  dfff     ffff  Z                        1,2

INCFSZ      f, d  Increment f, Skip if 0                                        1(2)   00   1111  dfff     ffff                           1,2,3

IORWF       f, d  Inclusive OR W with f                                         1      00   0100  dfff     ffff  Z                        1,2

MOVF        f, d  Move f                                                        1      00   1000  dfff     ffff  Z                        1,2

MOVWF       f     Move W to f                                                   1      00   0000  lfff     ffff

NOP         -     No Operation                                                  1      00   0000  0xx0     0000

RLF         f, d  Rotate Left f through Carry                                   1      00   1101  dfff     ffff  C                        1,2

RRF         f, d  Rotate Right f through Carry                                  1      00   1100  dfff     ffff  C                        1,2

SUBWF       f, d  Subtract W from f                                             1      00   0010  dfff     ffff  C,DC,Z                   1,2

SWAPF       f, d  Swap nibbles in f                                             1      00   1110  dfff     ffff                           1,2

XORWF       f, d  Exclusive OR W with f                                         1      00   0110  dfff     ffff  Z                        1,2

BIT-ORIENTED FILE REGISTER OPERATIONS

BCF         f, b  Bit Clear f                                                   1      01   00bb  bfff     ffff                        1,2

BSF         f, b  Bit Set f                                                     1      01   01bb  bfff     ffff                        1,2

BTFSC       f, b  Bit Test f, Skip if Clear                                     1 (2)  01   10bb  bfff     ffff                        3

BTFSS       f, b  Bit Test f, Skip if Set                                       1 (2)  01   11bb  bfff     ffff                        3

LITERAL AND CONTROL OPERATIONS

ADDLW       k     Add literal and W                                             1      11   111x  kkkk     kkkk  C,DC,Z

ANDLW       k     AND literal with W                                            1      11   1001  kkkk     kkkk  Z

CALL        k     Call subroutine                                               2      10   0kkk  kkkk     kkkk

CLRWDT      -     Clear Watchdog Timer                                          1      00   0000  0110     0100  TO,PD

GOTO        k     Go to address                                                 2      10   1kkk  kkkk     kkkk

IORLW       k     Inclusive OR literal with W                                   1      11   1000  kkkk     kkkk  Z

MOVLW       k     Move literal to W                                             1      11   00xx  kkkk     kkkk

RETFIE      -     Return from interrupt                                         2      00   0000  0000     1001

RETLW       k     Return with literal in W                                      2      11   01xx  kkkk     kkkk

RETURN      -     Return from Subroutine                                        2      00   0000  0000     1000

SLEEP       -     Go into standby mode                                          1      00   0000  0110     0011  TO,PD

SUBLW       k     Subtract W from literal                                       1      11   110x  kkkk     kkkk  C,DC,Z

XORLW       k     Exclusive OR literal with W                                   1      11   1010  kkkk     kkkk  Z

Note  1:  When an I/O register is modified as a function of itself ( e.g., MOVF     PORTB,   1), the value used will be that value present

          on the pins themselves. For example, if the data latch is '1' for a pin configured as input and is driven low by an external

          device, the data will be written back with a '0'.

      2:  If this instruction is executed on the TMR0 register (and, where applicable, d = 1), the prescaler will be cleared if assigned

          to the Timer0 Module.

      3:  If Program Counter (PC) is modified or a conditional test is true, the instruction requires two cycles. The second cycle is

          executed as a NOP.

DS30272A-page 70                                                                                  © 1997 Microchip Technology Inc.
                                                                                           PIC16C71X

9.1       Instruction Descriptions

ADDLW              Add Literal and W                                 ANDLW              AND Literal with W

Syntax:            [label]   ADDLW             k                     Syntax:            [label]   ANDLW         k

Operands:          0 ≤ k ≤ 255                                       Operands:          0 ≤ k ≤ 255

Operation:         (W) + k → (W)                                     Operation:         (W) .AND. (k) → (W)

Status Affected:   C, DC, Z                                          Status Affected:   Z

Encoding:             11          111x            kkkk     kkkk      Encoding:             11        1001          kkkk      kkkk

Description:       The contents of the W register are                Description:       The contents of W register are

                   added to the eight bit literal 'k' and the                           AND’ed with the eight bit literal 'k'. The

                   result is placed in the W register.                                  result is placed in the W register.

Words:             1                                                 Words:             1

Cycles:            1                                                 Cycles:            1

Q Cycle Activity:     Q1          Q2              Q3       Q4        Q Cycle Activity:     Q1         Q2           Q3           Q4

                      Decode      Read            Process  Write to                        Decode     Read         Process   Write to

                                  literal 'k'     data     W                                       literal "k"     data         W

Example:              ADDLW       0x15                               Example               ANDLW      0x5F

                   Before Instruction                                                   Before Instruction

                              W   =            0x10                                                W  =         0xA3

                   After Instruction                                                    After Instruction

                              W   =            0x25                                                W  =         0x03

ADDWF              Add W and f                                       ANDWF              AND W with f

Syntax:            [label]   ADDWF             f,d                   Syntax:            [label]   ANDWF         f,d

Operands:          0 ≤ f ≤ 127                                       Operands:          0 ≤ f ≤ 127

                   d ∈ [0,1]                                                            d ∈ [0,1]

Operation:         (W) + (f) → (dest)                                Operation:         (W) .AND. (f) → (dest)

Status Affected:   C, DC, Z                                          Status Affected:   Z

Encoding:             00          0111            dfff     ffff      Encoding:             00        0101          dfff      ffff

Description:       Add the contents of the W register                Description:       AND the W register with register 'f'. If

                   with register 'f'. If 'd' is 0 the result is                         'd' is 0 the result is stored in the W

                   stored in the W register. If 'd' is 1 the                            register. If 'd' is 1 the result is stored

                   result is stored back in register 'f'.                               back in register 'f'.

Words:             1                                                 Words:             1

Cycles:            1                                                 Cycles:            1

Q Cycle Activity:     Q1          Q2              Q3       Q4        Q Cycle Activity:     Q1         Q2           Q3           Q4

                      Decode      Read            Process  Write to                        Decode     Read         Process   Write to

                                  register        data     Dest                                      register      data         Dest

                                  'f'                                                                 'f'

Example               ADDWF       FSR,         0                     Example               ANDWF      FSR,      1

                   Before Instruction                                                   Before Instruction

                              W   =            0x17                                                W  =         0x17

                              FSR =            0xC2                                                FSR =        0xC2

                   After Instruction                                                    After Instruction

                              W   =            0xD9                                                W  =         0x17

                              FSR =            0xC2                                                FSR =        0x02

© 1997 Microchip Technology Inc.                                                                                DS30272A-page 71
PIC16C71X

BCF                Bit Clear f                                             BTFSC              Bit Test, Skip if Clear

Syntax:            [label] BCF       f,b                                   Syntax:            [label] BTFSC        f,b

Operands:          0 ≤ f ≤ 127                                             Operands:          0 ≤ f ≤ 127

                   0≤b≤7                                                                      0≤b≤7

Operation:         0 → (f)                                              Operation:         skip if (f) = 0

Status Affected:   None                                                    Status Affected:   None

Encoding:             01        00bb            bfff        ffff           Encoding:             01         10bb          bfff     ffff

Description:       Bit 'b' in register 'f' is   cleared.                   Description:       If bit 'b' in register 'f' is '1' then the next

Words:             1                                                                          instruction is executed.

                                                                                              If bit 'b', in register 'f', is '0' then the next

Cycles:            1                                                                          instruction is discarded, and a NOP is

Q Cycle Activity:     Q1        Q2              Q3          Q4                                executed instead, making this a 2TCY

                                                                                              instruction.

                      Decode    Read            Process     Write          Words:             1

                                register        data        register  'f'

                                'f'                                        Cycles:            1(2)

Example               BCF       FLAG_REG,             7                    Q Cycle Activity:     Q1            Q2         Q3       Q4

                   Before Instruction                                                            Decode        Read       Process  NOP

                                                                                                            register 'f'  data

                              FLAG_REG = 0xC7

                   After Instruction                                                If Skip:  (2nd Cycle)

                              FLAG_REG = 0x47                                                    Q1            Q2         Q3       Q4

                                                                                                 NOP           NOP        NOP      NOP

                                                                           Example               HERE       BTFSC         FLAG,1

                                                                                                 FALSE      GOTO          PROCESS_CODE

                                                                                                 TRUE       •

                                                                                                            •

                                                                                                            •

                                                                                              Before Instruction

                                                                                                         PC    =          address  HERE

                                                                                              After Instruction

                                                                                                         if FLAG<1> = 0,

BSF                Bit Set f                                                                             PC =             address  TRUE

                                                                                                         if FLAG<1>=1,

Syntax:            [label] BSF  f,b                                                                      PC =             address FALSE

Operands:          0 ≤ f ≤ 127

                   0≤b≤7

Operation:         1 → (f)

Status Affected:   None

Encoding:             01        01bb            bfff        ffff

Description:       Bit 'b' in register 'f'  is  set.

Words:             1

Cycles:            1

Q Cycle Activity:     Q1        Q2              Q3          Q4

                      Decode    Read            Process     Write

                                register        data        register 'f'

                                'f'

Example               BSF       FLAG_REG,                7

                   Before Instruction

                              FLAG_REG =              0x0A

                   After Instruction

                              FLAG_REG =              0x8A

DS30272A-page 72                                                                                    © 1997 Microchip Technology Inc.
                                                                                              PIC16C71X

BTFSS              Bit Test f, Skip if Set                          CALL                Call Subroutine

Syntax:            [label] BTFSS         f,b                        Syntax:             [ label ]  CALL          k

Operands:          0 ≤ f ≤ 127                                      Operands:           0 ≤ k ≤ 2047

                   0≤b<7                                            Operation:          (PC)+ 1→ TOS,

Operation:         skip if (f) = 1                                                   k → PC<10:0>,

Status Affected:   None                                                                 (PCLATH<4:3>) → PC<12:11>

Encoding:             01          11bb          bfff     ffff       Status Affected:    None

Description:       If bit 'b' in register 'f' is '0' then the next  Encoding:              10      0kkk             kkkk     kkkk

                   instruction is executed.                         Description:        Call Subroutine. First, return address

                   If bit 'b' is '1', then the next instruction is                      (PC+1) is pushed onto the stack. The

                   discarded and a NOP is executed                                      eleven bit immediate address is loaded

                   instead, making this a 2TCY instruction.                             into PC bits <10:0>. The upper bits of

Words:             1                                                                    the PC are loaded from PCLATH.

                                                                                        CALL is a two cycle instruction.

Cycles:            1(2)                                             Words:              1

Q Cycle Activity:     Q1             Q2         Q3            Q4    Cycles:             2

                      Decode         Read       Process       NOP   Q Cycle Activity:      Q1          Q2           Q3         Q4

                                  register 'f'  data

         If Skip:  (2nd Cycle)                                               1st Cycle     Decode  Read             Process  Write to

                                                                                                   literal 'k',     data        PC

                      Q1             Q2         Q3            Q4                                   Push PC

                                                                                                   to Stack

                      NOP            NOP        NOP           NOP            2nd Cycle     NOP     NOP              NOP        NOP

Example               HERE        BTFSC         FLAG,1              Example                HERE    CALL             THERE

                      FALSE       GOTO          PROCESS_CODE

                      TRUE        •                                                     Before Instruction

                                  •                                                                PC  =         Address HERE

                                  •                                                     After Instruction

                   Before Instruction                                                              PC  =         Address THERE

                              PC     =          address  HERE                                      TOS =         Address HERE+1

                   After Instruction

                              if FLAG<1> = 0,

                              PC =              address FALSE

                              if FLAG<1> = 1,

                              PC =              address TRUE

© 1997 Microchip Technology Inc.                                                                                 DS30272A-page 73
PIC16C71X

CLRF               Clear f                                        CLRW               Clear W

Syntax:            [label]  CLRF       f                          Syntax:            [ label ]  CLRW

Operands:          0 ≤ f ≤ 127                                    Operands:          None

Operation:         00h → (f)                                      Operation:         00h → (W)

                   1→Z                                                               1→Z

Status Affected:   Z                                              Status Affected:   Z

Encoding:             00         0001      1fff     ffff          Encoding:                00      0001  0xxx         xxxx

Description:       The contents of register 'f' are cleared       Description:       W register is cleared. Zero bit  (Z) is

                   and the Z bit is set.                                             set.

Words:             1                                              Words:             1

Cycles:            1                                              Cycles:            1

Q Cycle Activity:     Q1         Q2        Q3          Q4         Q Cycle Activity:        Q1      Q2        Q3          Q4

                      Decode     Read      Process     Write                            Decode     NOP   Process      Write to

                                 register  data     register 'f'                                             data        W

                                 'f'

Example               CLRF        FLAG_REG                        Example               CLRW

                   Before Instruction                                                Before Instruction

                              FLAG_REG      =       0x5A                                        W   =    0x5A

                   After Instruction                                                 After Instruction

                              FLAG_REG      =       0x00                                        W   =    0x00

                              Z             =       1                                           Z   =    1

                                                                  CLRWDT             Clear Watchdog Timer

                                                                  Syntax:            [ label ]  CLRWDT

                                                                  Operands:          None

                                                                  Operation:         00h → WDT

                                                                                     0 → WDT prescaler,

                                                                                     1 → TO

                                                                                     1 → PD

                                                                  Status Affected:   TO, PD

                                                                  Encoding:                00      0000  0110         0100

                                                                  Description:       CLRWDT instruction resets the Watch-

                                                                                     dog Timer. It also resets the prescaler

                                                                                     of the WDT. Status bits TO and PD

                                                                                     are set.

                                                                  Words:             1

                                                                  Cycles:            1

                                                                  Q Cycle Activity:        Q1      Q2        Q3          Q4

                                                                                        Decode     NOP   Process         Clear

                                                                                                             data        WDT

                                                                                                                      Counter

                                                                  Example               CLRWDT

                                                                                     Before Instruction

                                                                                                WDT counter    =      ?

                                                                                     After Instruction

                                                                                                WDT counter    =      0x00

                                                                                                WDT prescaler=        0

                                                                                                TO             =      1

                                                                                                PD             =      1

DS30272A-page 74                                                                           © 1997 Microchip Technology Inc.
                                                                                              PIC16C71X

COMF               Complement f                                      DECFSZ             Decrement f, Skip if 0

Syntax:            [ label ]      COMF         f,d                   Syntax:            [ label ]     DECFSZ          f,d

Operands:          0 ≤ f ≤ 127                                       Operands:          0 ≤ f ≤ 127

                   d ∈ [0,1]                                                            d ∈ [0,1]

Operation:         (f) → (dest)                                      Operation:         (f) - 1 → (dest);         skip if result = 0

Status Affected:   Z                                                 Status Affected:   None

Encoding:                00          1001         dfff     ffff      Encoding:             00         1011        dfff             ffff

Description:       The contents of register 'f' are comple-          Description:       The contents of register 'f' are decre-

                   mented. If 'd' is 0 the result is stored in                          mented. If 'd' is 0 the result is placed in

                   W. If 'd' is 1 the result is stored back in                          the W register. If 'd' is 1 the result is

                   register 'f'.                                                        placed back in register 'f'.

Words:             1                                                                    If the result is 1, the next instruction,     is

                                                                                        executed. If the result is 0, then a NOP is

Cycles:            1                                                                    executed instead making it a 2TCY

                                                                                        instruction.

Q Cycle Activity:        Q1          Q2           Q3        Q4       Words:             1

                      Decode         Read         Process  Write to  Cycles:            1(2)

                                     register     data      dest

                                     'f'                             Q Cycle Activity:     Q1            Q2           Q3           Q4

                                                                                           Decode        Read     Process          Write to

Example               COMF                REG1,0                                                      register        data         dest

                   Before Instruction                                                                    'f'

                                  REG1         =    0x13                      If Skip:  (2nd Cycle)

                   After Instruction                                                       Q1            Q2           Q3           Q4

                                  REG1         =    0x13

                                  W            =    0xEC                                   NOP           NOP          NOP          NOP

DECF               Decrement f                                       Example               HERE          DECFSZ            CNT,    1

Syntax:            [label]    DECF f,d                                                                   GOTO              LOOP

                                                                                           CONTINUE      •

Operands:          0 ≤ f ≤ 127                                                                           •

                   d ∈ [0,1]                                                                             •

Operation:         (f) - 1 → (dest)                                                     Before Instruction

                                                                                           PC         =       address HERE

Status Affected:   Z                                                                    After Instruction

Encoding:                00          0011         dfff     ffff                            CNT        =       CNT - 1

                                                                                           if CNT =           0,

Description:       Decrement register 'f'. If 'd' is 0 the                                 PC         =       address CONTINUE
                   result is stored in the W register. If 'd'
                   is 1 the result is stored back in register                              if CNT ≠           0,

                   'f'.                                                                    PC         =       address HERE+1

Words:             1

Cycles:            1

Q Cycle Activity:        Q1          Q2           Q3        Q4

                      Decode         Read         Process  Write to

                                     register     data      dest

                                     'f'

Example               DECF           CNT,      1

                   Before Instruction

                                  CNT          =    0x01

                                  Z            =    0

                   After Instruction

                                  CNT          =    0x00

                                  Z            =    1

© 1997 Microchip Technology Inc.                                                                                  DS30272A-page 75
PIC16C71X

GOTO                Unconditional Branch                        INCF               Increment f

Syntax:             [ label ]  GOTO         k                   Syntax:            [ label ]  INCF         f,d

Operands:           0 ≤ k ≤ 2047                                Operands:          0 ≤ f ≤ 127

Operation:          k → PC<10:0>                                                   d ∈ [0,1]

                    PCLATH<4:3> → PC<12:11>                     Operation:         (f) + 1 → (dest)

Status Affected:    None                                        Status Affected:   Z

Encoding:              10      1kkk         kkkk      kkkk      Encoding:             00         1010         dfff     ffff

Description:        GOTO is an unconditional branch. The        Description:       The contents of register 'f' are incre-

                    eleven bit immediate value is loaded                           mented. If 'd' is 0 the result is placed

                    into PC bits <10:0>. The upper bits of                         in the W register. If 'd' is 1 the result is

                    PC are loaded from PCLATH<4:3>.                                placed back in register 'f'.

                    GOTO is a two cycle instruction.

Words:              1                                           Words:             1

Cycles:             2                                           Cycles:            1

Q Cycle Activity:      Q1          Q2          Q3     Q4        Q Cycle Activity:     Q1         Q2             Q3     Q4

         1st Cycle     Decode  Read         Process   Write to                        Decode     Read         Process  Write to

                               literal 'k'     data   PC                                         register       data   dest

                                                                                                 'f'

         2nd Cycle     NOP     NOP             NOP    NOP

                                                                Example               INCF       CNT,      1

Example                GOTO    THERE                                               Before Instruction

                    After Instruction                                                         CNT          =     0xFF

                               PC     =     Address   THERE                                   Z            =     0

                                                                                   After Instruction

                                                                                              CNT          =     0x00

                                                                                              Z            =     1

DS30272A-page 76                                                                      © 1997 Microchip Technology Inc.
                                                                                        PIC16C71X

INCFSZ             Increment f, Skip if 0                         IORLW              Inclusive OR Literal with W

Syntax:            [ label ]      INCFSZ      f,d                 Syntax:            [ label ]  IORLW           k

Operands:          0 ≤ f ≤ 127                                    Operands:          0 ≤ k ≤ 255

                   d ∈ [0,1]                                      Operation:         (W) .OR. k → (W)

Operation:         (f) + 1 → (dest), skip if result = 0           Status Affected:   Z

Status Affected:   None                                           Encoding:             11         1000         kkkk      kkkk

Encoding:             00          1111        dfff      ffff      Description:       The contents of the W register is

Description:       The contents of register 'f' are incre-                           OR’ed with the eight bit literal 'k'. The

                   mented. If 'd' is 0 the result is placed                          result is placed in the W register.

                   in the W register. If 'd' is 1 the result is

                   placed back in register 'f'.                   Words:             1

                   If the result is 1, the next instruction is    Cycles:            1
                   executed. If the result is 0, a NOP is
                   executed instead making it a 2TCY
                   instruction.
                                                                  Q Cycle Activity:     Q1         Q2              Q3     Q4

Words:             1                                                                    Decode     Read         Process   Write to

Cycles:            1(2)                                                                            literal 'k'     data   W

Q Cycle Activity:     Q1             Q2       Q3          Q4      Example               IORLW      0x35

                      Decode         Read     Process   Write to                     Before Instruction

                                  register    data        dest                                  W  =            0x9A

                                     'f'

                                                                                     After Instruction

         If Skip:  (2nd Cycle)                                                                  W  =            0xBF

                      Q1             Q2       Q3          Q4                                    Z  =            1

                      NOP            NOP      NOP         NOP

Example               HERE           INCFSZ            CNT,  1

                                     GOTO           LOOP

                      CONTINUE       •

                                     •

                                     •

                   Before Instruction

                      PC          =       address HERE

                   After Instruction

                      CNT         =       CNT + 1

                      if CNT=             0,

                      PC          =       address CONTINUE

                      if CNT≠             0,

                      PC          =       address HERE  +1

© 1997 Microchip Technology Inc.                                                                                DS30272A-page 77
PIC16C71X

IORWF              Inclusive OR W with f                           MOVLW              Move Literal to W

Syntax:            [ label ]  IORWF           f,d                  Syntax:            [ label ]  MOVLW             k

Operands:          0 ≤ f ≤ 127                                     Operands:          0 ≤ k ≤ 255

                   d ∈ [0,1]                                       Operation:         k → (W)

Operation:         (W) .OR. (f) → (dest)

Status Affected:   Z                                               Status Affected:   None

                                                                   Encoding:                11     00xx         kkkk           kkkk

Encoding:             00         0100         dfff       ffff

Description:       Inclusive OR the W register with regis-         Description:       The eight bit literal 'k' is loaded into W

                   ter 'f'. If 'd' is 0 the result is placed in                       register. The don’t cares will assemble

                   the W register. If 'd' is 1 the result is                          as 0’s.

                   placed back in register 'f'.                    Words:             1

Words:             1                                               Cycles:            1

Cycles:            1                                               Q Cycle Activity:        Q1      Q2             Q3          Q4

Q Cycle Activity:     Q1         Q2             Q3          Q4                           Decode     Read        Process        Write to

                      Decode     Read         Process    Write to                                  literal 'k'     data        W

                                 register     data          dest

                                 'f'                               Example               MOVLW      0x5A

Example               IORWF                RESULT,       0                            After Instruction

                                                                                                 W  =           0x5A

                   Before Instruction

                              RESULT       =       0x13

                              W            =       0x91

                   After Instruction

                              RESULT       =       0x13

                              W            =       0x93

                              Z            =       1

MOVF               Move f                                          MOVWF              Move W to f

Syntax:            [ label ]  MOVF         f,d                     Syntax:            [ label ]  MOVWF                f

Operands:          0 ≤ f ≤ 127                                     Operands:          0 ≤ f ≤ 127

                   d ∈ [0,1]                                       Operation:         (W) → (f)

Operation:         (f) → (dest)                                    Status Affected:   None

Status Affected:   Z                                               Encoding:                00     0000         1fff           ffff

Encoding:             00         1000         dfff       ffff      Description:       Move data from W register to       register

Description:       The contents of register f is moved to                             'f'.

                   a destination dependant upon the sta-           Words:             1

                   tus of d. If d = 0, destination is W reg-       Cycles:            1

                   ister. If d = 1, the destination is file

                   register f itself. d = 1 is useful to test a    Q Cycle Activity:        Q1      Q2             Q3          Q4

                   file register since status flag Z is                                    Decode     Read        Process        Write

                   affected.                                                                       register        data        register  'f'

Words:             1                                                                                'f'

Cycles:            1                                               Example               MOVWF      OPTION_REG

Q Cycle Activity:     Q1         Q2             Q3          Q4                        Before Instruction

                      Decode     Read         Process    Write to                                OPTION         =        0xFF

                                 register     data          dest                                 W              =        0x4F

                                 'f'                                                  After Instruction

                                                                                                 OPTION         =        0x4F

Example               MOVF       FSR,      0                                                     W              =        0x4F

                   After Instruction

                              W  = value in FSR register

                              Z  =1

DS30272A-page 78                                                                            © 1997 Microchip Technology Inc.
                                                                                      PIC16C71X

NOP                No Operation                             RETFIE              Return from Interrupt

Syntax:            [ label ]      NOP                       Syntax:             [ label ]     RETFIE

Operands:          None                                     Operands:           None

Operation:         No operation                             Operation:          TOS → PC,

Status Affected:   None                                                         1 → GIE

Encoding:               00        0000    0xx0  0000        Status Affected:    None

Description:       No operation.                            Encoding:              00         0000    0000        1001

Words:             1                                        Description:        Return from Interrupt. Stack is POPed

                                                                                and Top of Stack (TOS) is loaded in

Cycles:            1                                                            the PC. Interrupts are enabled by set-

Q Cycle Activity:       Q1        Q2      Q3           Q4                       ting Global Interrupt Enable bit, GIE

                                                                                (INTCON<7>). This is a two cycle

                        Decode    NOP     NOP          NOP                      instruction.

                                                            Words:              1

Example                 NOP                                 Cycles:             2

                                                            Q Cycle Activity:      Q1          Q2        Q3       Q4

                                                                     1st Cycle     Decode     NOP        Set the  Pop from

                                                                                                         GIE bit  the Stack

                                                                     2nd Cycle     NOP        NOP        NOP      NOP

                                                            Example                RETFIE

                                                                                After Interrupt

                                                                                           PC    =    TOS

                                                                                           GIE   =    1

OPTION             Load Option Register

Syntax:            [ label ]      OPTION

Operands:          None

Operation:         (W) → OPTION

Status Affected:   None

Encoding:               00        0000    0110  0010

Description:       The contents of the W register are

                   loaded in the OPTION register. This

                   instruction is supported for code com-

                   patibility with PIC16C5X products.

                   Since OPTION is a readable/writable

                   register, the user can directly address

                   it.

Words:             1

Cycles:            1

Example

                   To maintain upward compatibility

                   with future PIC16CXX products, do

                   not use this instruction.

© 1997 Microchip Technology Inc.                                                                    DS30272A-page 79
PIC16C71X

RETLW                Return with Literal in W                          RETURN              Return from Subroutine

Syntax:              [ label ]     RETLW        k                      Syntax:             [ label ]  RETURN

Operands:            0 ≤ k ≤ 255                                       Operands:           None

Operation:           k → (W);                                          Operation:          TOS → PC

                     TOS → PC                                          Status Affected:    None

Status Affected:     None                                              Encoding:              00      0000     0000          1000

Encoding:               11         01xx         kkkk         kkkk      Description:        Return from subroutine. The stack is

Description:         The W register is loaded with the eight                               POPed and the top of the stack (TOS)

                     bit literal 'k'. The program counter is                               is loaded into the program counter.

                     loaded from the top of the stack (the                                 This is a two cycle instruction.

                     return address). This is a two cycle              Words:              1

                     instruction.

Words:               1                                                 Cycles:             2

Cycles:              2                                                 Q Cycle Activity:      Q1          Q2   Q3               Q4

Q Cycle Activity:       Q1            Q2           Q3        Q4                 1st Cycle     Decode  NOP      NOP           Pop from

                                                                                                                             the Stack

         1st Cycle      Decode     Read         NOP          Write to           2nd Cycle     NOP     NOP      NOP           NOP

                                   literal 'k'               W, Pop

                                                             from the

                                                             Stack     Example                RETURN

         2nd Cycle      NOP        NOP          NOP          NOP                           After Interrupt

                                                                                                      PC    =  TOS

Example              CALL TABLE    ;W contains table

                                   ;offset value

                     •                ;W now has table       value

                     •

                     •

              TABLE  ADDWF  PC     ;W = offset

                     RETLW  k1     ;Begin table

                     RETLW  k2     ;

                     •

                     •

                     •

                     RETLW  kn     ; End of table

                     Before Instruction

                                W     =         0x07

                     After Instruction

                                W     =         value of k8

DS30272A-page 80                                                                              © 1997 Microchip Technology Inc.
                                                                                                PIC16C71X

RLF                Rotate Left f through Carry                       RRF                Rotate Right f through Carry

Syntax:            [ label ]         RLF       f,d                   Syntax:            [ label ]     RRF       f,d

Operands:          0 ≤ f ≤ 127                                       Operands:          0 ≤ f ≤ 127

                   d ∈ [0,1]                                                            d ∈ [0,1]

Operation:         See description below                             Operation:         See description below

Status Affected:   C                                                 Status Affected:   C

Encoding:             00             1101      dfff        ffff      Encoding:             00         1100           dfff     ffff

Description:       The contents of register 'f' are rotated          Description:       The contents of register 'f' are rotated

                   one bit to the left through the Carry                                one bit to the right through the Carry

                   Flag. If 'd' is 0 the result is placed in                            Flag. If 'd' is 0 the result is placed in

                   the W register. If 'd' is 1 the result is                            the W register. If 'd' is 1 the result is

                   stored back in register 'f'.                                         placed back in register 'f'.

                              C                Register f                                          C            Register f

Words:             1                                                 Words:             1

Cycles:            1                                                 Cycles:            1

Q Cycle Activity:     Q1             Q2             Q3     Q4        Q Cycle Activity:     Q1         Q2             Q3       Q4

                      Decode         Read      Process     Write to                        Decode     Read           Process  Write to

                                     register       data   dest                                       register       data     dest

                                     'f'                                                              'f'

Example               RLF                 REG1,0                     Example               RRF                  REG1,0

                   Before Instruction                                                   Before Instruction

                                  REG1         =    1110   0110                                    REG1         =     1110    0110

                                  C            =    0                                              C            =     0

                   After Instruction                                                    After Instruction

                                  REG1         =    1110   0110                                    REG1         =     1110    0110

                                  W            =    1100   1100                                    W            =     0111    0011

                                  C            =    1                                              C            =     0

© 1997 Microchip Technology Inc.                                                                                DS30272A-page 81
PIC16C71X

SLEEP                                                     SUBLW              Subtract W from Literal

Syntax:            [ label ]  SLEEP                       Syntax:            [ label ]    SUBLW           k

Operands:          None                                   Operands:          0 ≤ k ≤ 255

Operation:         00h → WDT,                             Operation:         k - (W) → (W)

                   0 → WDT prescaler,                     Status Affected:   C, DC, Z

                   1 → TO,                                Encoding:             11           110x          kkkk    kkkk

                   0 → PD

Status Affected:   TO, PD                                 Description:       The W register is subtracted (2’s comple-

                                                                             ment method) from the eight bit literal 'k'.

Encoding:             00      0000     0110  0011                            The result is placed in the W register.

Description:       The power-down status bit, PD is       Words:             1

                   cleared. Time-out status bit, TO is    Cycles:            1

                   set. Watchdog Timer and its pres-

                   caler are cleared.                     Q Cycle Activity:     Q1           Q2              Q3       Q4

                   The processor is put into SLEEP                              Decode       Read         Process  Write to W

                   mode with the oscillator stopped.                                      literal 'k'        data

                   See Section 8.8 for more details.

Words:             1                                      Example 1:         SUBLW        0x02

Cycles:            1                                                         Before Instruction

Q Cycle Activity:     Q1      Q2       Q3             Q4                                  W     =      1

                      Decode  NOP      NOP   Go to                                        C     =      ?

                                             Sleep                                        Z     =      ?

                                                                             After Instruction

Example:           SLEEP                                                                  W     =      1

                                                                                          C     =      1; result is positive

                                                                                          Z     =      0

                                                          Example 2:         Before Instruction

                                                                                          W     =      2

                                                                                          C     =      ?

                                                                                          Z     =      ?

                                                                             After Instruction

                                                                                          W     =      0

                                                                                          C     =      1;    result is zero

                                                                                          Z     =      1

                                                          Example 3:         Before Instruction

                                                                                          W     =      3

                                                                                          C     =      ?

                                                                                          Z     =      ?

                                                                             After Instruction

                                                                                          W     =      0xFF

                                                                                          C     =      0; result is nega-

                                                                                          tive

                                                                                          Z     =      0

DS30272A-page 82                                                                © 1997 Microchip Technology Inc.
                                                                                                  PIC16C71X

SUBWF              Subtract W from f                                    SWAPF              Swap Nibbles in f

Syntax:            [ label ]      SUBWF          f,d                    Syntax:            [ label ]  SWAPF f,d

Operands:          0 ≤ f ≤ 127                                          Operands:          0 ≤ f ≤ 127

                   d ∈ [0,1]                                                               d ∈ [0,1]

Operation:         (f) - (W) → (dest)                                   Operation:         (f<3:0>) → (dest<7:4>),

Status Affected:   C, DC, Z                                                                (f<7:4>) → (dest<3:0>)

Encoding:             00          0010           dfff         ffff      Status Affected:   None

Description:       Subtract (2’s complement method) W reg-              Encoding:             00        1110           dfff           ffff

                   ister from register 'f'. If 'd' is 0 the result is   Description:       The upper and lower nibbles of regis-

                   stored in the W register. If 'd' is 1 the                               ter 'f' are exchanged. If 'd' is 0 the

                   result is stored back in register 'f'.                                  result is placed in W register. If 'd' is 1

Words:             1                                                                       the result is placed in register 'f'.

Cycles:            1                                                    Words:             1

Q Cycle Activity:     Q1          Q2             Q3           Q4        Cycles:            1

                      Decode      Read           Process      Write to  Q Cycle Activity:     Q1          Q2              Q3          Q4

                                register 'f'     data         dest                            Decode    Read           Process    Write to

                                                                                                      register 'f'        data        dest

Example 1:         SUBWF          REG1,1

                   Before Instruction                                   Example               SWAPF   REG,          0

                      REG1        =           3                                            Before Instruction

                      W           =           2                                                         REG1           =        0xA5

                      C           =           ?                                            After Instruction

                      Z           =           ?

                   After Instruction                                                                    REG1           =        0xA5

                                                                                                        W              =        0x5A

                      REG1        =           1

                      W           =           2

                      C           =           1; result   is  positive

                      Z           =           0

Example  2:        Before Instruction                                   TRIS               Load TRIS Register

                      REG1        =           2                         Syntax:            [label]    TRIS          f

                      W           =           2                         Operands:          5≤f≤7

                      C           =           ?

                      Z           =           ?                         Operation:         (W) → TRIS register f;

                   After Instruction                                    Status Affected:   None

                      REG1        =           0                         Encoding:             00      0000             0110       0fff

                      W           =           2                         Description:       The instruction is supported for code

                      C           =           1; result   is  zero                         compatibility with the PIC16C5X prod-

                      Z           =           1                                            ucts. Since TRIS registers are read-

Example  3:        Before Instruction                                                      able and writable, the user can directly

                                                                                           address them.

                      REG1        =           1                         Words:             1

                      W           =           2

                      C           =           ?                         Cycles:            1

                      Z           =           ?                         Example

                   After Instruction                                                       To maintain upward compatibility

                      REG1        =           0xFF                                         with future PIC16CXX products, do

                      W           =           2                                            not use this instruction.

                      C           =           0; result   is  negative

                      Z           =           0

© 1997 Microchip Technology Inc.                                                                                    DS30272A-page 83
PIC16C71X

XORLW              Exclusive OR Literal with W                XORWF              Exclusive OR W with f

Syntax:            [label]    XORLW        k                  Syntax:            [label]    XORWF          f,d

Operands:          0 ≤ k ≤ 255                                Operands:          0 ≤ f ≤ 127

Operation:         (W) .XOR. k → (W)                                             d ∈ [0,1]

Status Affected:   Z                                          Operation:         (W) .XOR. (f) → (dest)

Encoding:                11   1010         kkkk     kkkk      Status Affected:   Z

                                                              Encoding:                00     0110         dfff     ffff

Description:       The contents of the W register are

                   XOR’ed with the eight bit literal 'k'.     Description:       Exclusive OR the contents of the W

                   The result is placed in the W regis-                          register with register 'f'. If 'd' is 0 the

                   ter.                                                          result is stored in the W register. If 'd'

Words:             1                                                             is 1 the result is stored back in register

                                                                                 'f'.

Cycles:            1                                          Words:             1

Q Cycle Activity:        Q1     Q2         Q3       Q4        Cycles:            1

                      Decode    Read       Process  Write to  Q Cycle Activity:        Q1     Q2           Q3          Q4

                              literal 'k'  data            W

                                                                                    Decode    Read         Process  Write to

Example:                                                                                      register     data        dest

                   XORLW      0xAF                                                               'f'

                   Before Instruction

                                W     =    0xB5               Example            XORWF        REG       1

                   After Instruction                                             Before Instruction

                                W     =    0x1A                                               REG          =     0xAF

                                                                                              W            =     0xB5

                                                                                 After Instruction

                                                                                              REG          =     0x1A

                                                                                              W            =     0xB5

DS30272A-page 84                                                                       © 1997 Microchip Technology Inc.
                                                                                             PIC16C71X

10.0      DEVELOPMENT SUPPORT                                  10.3    ICEPIC: Low-Cost PIC16CXXX

                                                                       In-Circuit Emulator

10.1      Development Tools

                                                               ICEPIC is a low-cost in-circuit emulator solution for the

The PICmicrο™ microcontrollers are supported with a            Microchip PIC16C5X and PIC16CXXX families of 8-bit

full range of hardware and software development tools:         OTP microcontrollers.

•  PICMASTER/PICMASTER CE Real-Time                            ICEPIC  is  designed      to  operate  on  PC-compatible

   In-Circuit Emulator                                         machines    ranging  from     286-AT®  through  Pentium™

•  ICEPIC Low-Cost PIC16C5X and PIC16CXXX                      based   machines     under    Windows  3.x  environment.

   In-Circuit Emulator                                         ICEPIC features real time, non-intrusive emulation.

•  PRO MATE® II Universal Programmer                           10.4    PRO MATE II: Universal Programmer

•  PICSTART® Plus Entry-Level Prototype

   Programmer                                                  The PRO MATE II Universal Programmer is a full-fea-

•  PICDEM-1 Low-Cost Demonstration Board                       tured programmer capable of operating in stand-alone

•  PICDEM-2 Low-Cost Demonstration Board                       mode as well as PC-hosted mode.

•  PICDEM-3 Low-Cost Demonstration Board                       The PRO MATE II has programmable VDD and VPP

•  MPASM Assembler                                             supplies which allows it to verify programmed memory

•  MPLAB™ SIM Software Simulator                               at VDD min and VDD max for maximum reliability. It has

•  MPLAB-C (C Compiler)                                        an LCD display for displaying error messages, keys to

                                                               enter  commands      and  a   modular  detachable  socket

•  Fuzzy Logic Development System                              assembly to support various package types. In stand-

   (fuzzyTECH®−MP)                                             alone mode the PRO MATE II can read, verify or pro-

10.2      PICMASTER: High Performance                          gram      PIC12CXXX,          PIC14C000,        PIC16C5X,

          Universal In-Circuit Emulator with                   PIC16CXXX and PIC17CXX devices. It can also set

                                                               configuration and code-protect bits in this mode.

          MPLAB IDE

                                                               10.5    PICSTART Plus Entry Level

The   PICMASTER          Universal   In-Circuit  Emulator  is          Development System

intended to provide the product development engineer

with a complete microcontroller design tool set for all        The PICSTART programmer is an easy-to-use, low-

microcontrollers     in  the  PIC12CXXX,         PIC14C000,    cost prototype programmer. It connects to the PC via

PIC16C5X,     PIC16CXXX         and  PIC17CXX    families.     one of the COM (RS-232) ports. MPLAB Integrated

PICMASTER is supplied with the MPLAB™ Integrated               Development Environment software makes using the

Development Environment (IDE), which allows editing,           programmer simple and efficient. PICSTART Plus is

“make” and download, and source debugging from a               not recommended for production programming.

single environment.                                            PICSTART Plus supports all PIC12CXXX, PIC14C000,

Interchangeable target probes allow the system to be           PIC16C5X, PIC16CXXX and PIC17CXX devices with

easily reconfigured for emulation of different proces-          up to 40 pins. Larger pin count devices such as the

sors. The universal architecture of the PICMASTER              PIC16C923 and PIC16C924 may be supported with an

allows expansion to support all new Microchip micro-           adapter socket.

controllers.

The   PICMASTER          Emulator    System      has     been

designed      as  a  real-time      emulation    system  with

advanced features that are generally found on more

expensive development tools. The PC compatible 386

(and higher) machine platform and Microsoft Windows®

3.x environment were chosen to best make these fea-

tures available to you, the end user.

A CE compliant version of PICMASTER is available for

European Union (EU) countries.

© 1997 Microchip Technology Inc.                                                                      DS30272A-page       85
PIC16C71X

10.6       PICDEM-1 Low-Cost PIC16/17                               an RS-232 interface, push-button switches, a potenti-

           Demonstration Board                                      ometer for simulated analog input, a thermistor and

                                                                    separate headers for connection to an external LCD

The PICDEM-1 is a simple board which demonstrates                   module and a keypad. Also provided on the PICDEM-3

the capabilities of several of Microchip’s microcontrol-            board is an LCD panel, with 4 commons and 12 seg-

lers. The microcontrollers supported are: PIC16C5X                  ments, that is capable of displaying time, temperature

(PIC16C54 to PIC16C58A), PIC16C61, PIC16C62X,                       and day of the week. The PICDEM-3 provides an addi-

PIC16C71,        PIC16C8X,       PIC17C42,     PIC17C43        and  tional RS-232 interface and Windows 3.1 software for

PIC17C44.       All  necessary     hardware    and  software   is   showing the demultiplexed LCD signals on a PC. A sim-

included to run basic demo programs. The users can                  ple serial interface allows the user to construct a hard-

program     the  sample      microcontrollers    provided     with  ware demultiplexer for the LCD signals.

the   PICDEM-1           board,   on  a    PRO MATE        II  or

PICSTART-Plus programmer, and easily test firm-                      10.9      MPLAB Integrated Development

ware.  The      user   can   also  connect     the  PICDEM-1                  Environment Software

board to the PICMASTER emulator and download

the firmware to the emulator for testing. Additional pro-            The MPLAB IDE Software brings an ease of software

totype area is available for the user to build some addi-           development previously unseen in the 8-bit microcon-

tional hardware and connect it to the microcontroller               troller market. MPLAB is a windows based application

socket(s).  Some       of  the   features  include  an   RS-232     which contains:

interface, a potentiometer for simulated analog input,              •  A full featured editor

push-button      switches    and   eight   LEDs    connected   to   •  Three operating modes

PORTB.                                                                 -  editor

10.7       PICDEM-2 Low-Cost PIC16CXX                                  -  emulator

                                                                       -  simulator

           Demonstration Board                                      •  A project manager

The PICDEM-2 is a simple demonstration board that                   •  Customizable tool bar and key mapping

supports    the        PIC16C62,      PIC16C64,     PIC16C65,       •  A status bar with project information

PIC16C73        and    PIC16C74    microcontrollers.     All   the  •  Extensive on-line help

necessary       hardware     and   software    is   included   to   MPLAB allows you to:

run   the  basic     demonstration    programs.     The       user  •  Edit your source files (either assembly or ‘C’)

can program the sample microcontrollers provided                    •  One touch assemble (or compile) and download

with the PICDEM-2 board, on a PRO MATE II pro-                         to PIC16/17 tools (automatically updates all

grammer or PICSTART-Plus, and easily test firmware.                     project information)

The PICMASTER emulator may also be used with the                    •  Debug using:

PICDEM-2 board to test firmware. Additional prototype                   -  source files

area has been provided to the user for adding addi-                    -  absolute listing file

tional hardware and connecting it to the microcontroller            •  Transfer data dynamically via DDE (soon to be

socket(s). Some of the features include a RS-232 inter-                replaced by OLE)

face, push-button switches, a potentiometer for simu-               •  Run up to four emulators on the same PC

lated analog input, a Serial EEPROM to demonstrate                  The ability to use MPLAB with Microchip’s simulator

usage of the I2C bus and separate headers for connec-               allows a consistent platform and the ability to easily

tion to an LCD module and a keypad.                                 switch from the low cost simulator to the full featured

10.8       PICDEM-3 Low-Cost PIC16CXXX                              emulator with minimal retraining due to development

           Demonstration Board                                      tools.

The PICDEM-3 is a simple demonstration board that                   10.10     Assembler (MPASM)

supports the PIC16C923 and PIC16C924 in the PLCC                    The     MPASM    Universal  Macro  Assembler       is  a  PC-

package.    It   will  also  support  future     44-pin  PLCC       hosted symbolic assembler. It supports all microcon-

microcontrollers with a LCD Module. All the neces-                  troller  series  including  the  PIC12C5XX,      PIC14000,

sary hardware and software is included to run the                   PIC16C5X, PIC16CXXX, and PIC17CXX families.

basic demonstration programs. The user can pro-

gram   the   sample        microcontrollers    provided       with  MPASM offers full featured Macro capabilities, condi-

the PICDEM-3 board, on a PRO MATE II program-                       tional assembly, and several source and listing formats.

mer or PICSTART Plus with an adapter socket, and                    It generates various object code formats to support

easily test firmware. The PICMASTER emulator may                     Microchip's development tools as well as third party

also be used with the PICDEM-3 board to test firm-                   programmers.

ware. Additional prototype area has been provided to                M PA S M      allows  full  symbolic  debugging           from

the user for adding hardware and connecting it to the               PICMASTER,         Microchip’s     Universal     Emulator

microcontroller socket(s). Some of the features include             System.

DS30272A-page        86                                                                         © 1997 Microchip Technology Inc.
                                                                                           PIC16C71X

MPASM has the following features to assist in develop-        10.14     MP-DriveWay™ – Application Code

ing software for specific use applications.                              Generator

•  Provides translation of Assembler source code to           MP-DriveWay is an easy-to-use Windows-based Appli-

   object code for all Microchip microcontrollers.            cation    Code  Generator.   With  MP-DriveWay      you      can

•  Macro assembly capability.                                 visually  configure    all  the  peripherals  in  a  PIC16/17

•  Produces all the files (Object, Listing, Symbol,            device and, with a click of the mouse, generate all the

   and special) required for symbolic debug with              initialization and many functional code modules in C

   Microchip’s emulator systems.                              language. The output is fully compatible with Micro-

•  Supports Hex (default), Decimal and Octal source           chip’s  MPLAB-C     C   compiler.  The  code     produced     is

   and listing formats.                                       highly modular and allows easy integration of your own

MPASM provides a rich directive language to support           code. MP-DriveWay is intelligent enough to maintain

programming of the PIC16/17. Directives are helpful in        your code through subsequent code generation.

making the development of your assemble source code           10.15     SEEVAL® Evaluation and

shorter and more maintainable.                                          Programming System

10.11     Software Simulator (MPLAB-SIM)                      The SEEVAL SEEPROM Designer’s Kit supports all

The  MPLAB-SIM     Software       Simulator   allows  code    Microchip 2-wire and 3-wire Serial EEPROMs. The kit

development in a PC host environment. It allows the           includes everything necessary to read, write, erase or

user to simulate the PIC16/17 series microcontrollers         program special features of any Microchip SEEPROM

on an instruction level. On any given instruction, the        product including Smart Serials™ and secure serials.

user may examine or modify any of the data areas or           The Total Endurance™ Disk is included to aid in trade-

provide external stimulus to any of the pins. The input/      off analysis and reliability calculations. The total kit can

output radix can be set by the user and the execution         significantly    reduce  time-to-market  and      result  in   an

can be performed in; single step, execute until break, or     optimized system.

in a trace mode.                                              10.16     KEELOQ® Evaluation and

MPLAB-SIM fully supports symbolic debugging using                       Programming Tools

MPLAB-C and MPASM. The Software Simulator offers

the low cost flexibility to develop and debug code out-        KEELOQ    evaluation    and     programming  tools  support

side of the laboratory environment making it an excel-        Microchips HCS Secure Data Products. The HCS eval-

lent multi-project software development tool.                 uation kit includes an LCD display to show changing

                                                              codes, a decoder to decode transmissions, and a pro-

10.12     C Compiler (MPLAB-C)                                gramming interface to program test transmitters.

The  MPLAB-C       Code    Development        System  is   a

complete    ‘C’  compiler  and    integrated  development

environment for Microchip’s PIC16/17 family of micro-

controllers. The compiler provides powerful integration

capabilities  and  ease    of  use  not  found  with  other

compilers.

For easier source level debugging, the compiler pro-

vides symbol information that is compatible with the

MPLAB IDE memory display.

10.13     Fuzzy Logic Development System

          (fuzzyTECH-MP)

fuzzyTECH-MP fuzzy logic development tool is avail-

able in two versions - a low cost introductory version,

MP Explorer, for designers to gain a comprehensive

working knowledge of fuzzy logic system design; and a

full-featured version, fuzzyTECH-MP, edition for imple-

menting more complex systems.

Both versions include Microchip’s fuzzyLAB™ demon-

stration board for hands-on experience with fuzzy logic

systems implementation.

© 1997 Microchip Technology Inc.                                                                      DS30272A-page         87
DS30272A-page                                                                                                                                                                       24CXX  HCS200  TABLE 10-1:  PIC16C71X

                                                                           PIC12C5XX  PIC14000  PIC16C5X  PIC16CXXX  PIC16C6X  PIC16C7XX  PIC16C8X  PIC16C9XX  PIC17C4X  PIC17C75X  25CXX  HCS300

                                                                                                                                                                                    93CXX  HCS301

                                  Emulator Products  PICMASTER®/

                                                     PICMASTER-CE                                                                                                        Available

                                                     In-Circuit Emulator                                                                                                 3Q97

88                                                                                                                                                                                                 DEVELOPMENT

                                                     ICEPIC Low-Cost

                                                     In-Circuit Emulator

                                                     MPLAB™

                                                     Integrated

                                                     Development

                                                     Environment

                                                     MPLAB™ C                                                                                                                                      TOOLS

                                  Software Tools     Compiler

                                                     fuzzyTECH®-MP

                                                     Explorer/Edition                                                                                                                              FROM

                                                     Fuzzy Logic

                                                     Dev. Tool

                                                     MP-DriveWay™                                                                                                                                  MICROCHIP

                                                     Applications

                                                     Code Generator

                                                     Total Endurance™

                                                     Software Model

                                                     PICSTART®

                                                     Lite Ultra Low-Cost

                                                     Dev. Kit

                                  Programmers        PICSTART®

                                                     Plus Low-Cost

                                                     Universal   Dev. Kit

                                                     PRO MATE® II

                                                     Universal

© 1997 Microchip Technology Inc.                     Programmer

                                                     KEELOQ®

                                                     Programmer

                                                     SEEVAL®

                                                     Designers Kit

                                  Demo Boards        PICDEM-1

                                                     PICDEM-2

                                                     PICDEM-3

                                                     KEELOQ®

                                                     Evaluation Kit
                                                                                              PIC16C71X

                                                                                        Applicable Devices         710 71 711 715

11.0  ELECTRICAL CHARACTERISTICS FOR PIC16C710 AND PIC16C711

Absolute Maximum Ratings †

Ambient temperature under bias................................................................................................................. -55 to +125˚C

Storage temperature .............................................................................................................................. -65˚C to +150˚C

Voltage on any pin with respect to VSS (except VDD, MCLR, and RA4).......................................... -0.3V to (VDD + 0.3V)

Voltage on VDD with respect to VSS      ...........................................................................................................  -0.3 to +7.5V

Voltage on MCLR with respect to VSS................................................................................................................0 to +14V

Voltage on RA4 with respect to Vss ...................................................................................................................0 to +14V

Total power dissipation (Note 1)................................................................................................................................1.0W

Maximum current out of VSS pin ...........................................................................................................................300 mA

Maximum current into VDD pin ..............................................................................................................................250 mA

Input clamp current, IIK (VI < 0 or VI > VDD).....................................................................................................................± 20 mA

Output clamp current, IOK (VO < 0 or VO > VDD) .............................................................................................................± 20 mA

Maximum output current sunk by any I/O pin..........................................................................................................25 mA

Maximum output current sourced by any I/O pin ....................................................................................................25 mA

Maximum current sunk by PORTA ........................................................................................................................200 mA

Maximum current sourced by PORTA ...................................................................................................................200 mA

Maximum current sunk by PORTB........................................................................................................................200 mA

Maximum current sourced by PORTB...................................................................................................................200 mA

Note 1:     Power dissipation is calculated as follows: Pdis = VDD x {IDD - ∑ IOH} + ∑ {(VDD - VOH) x IOH} + ∑(VOl x IOL)

† NOTICE: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the

device. This is a stress rating only and functional operation of the device at those or any other conditions above those

indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for

extended periods may affect device reliability.

TABLE 11-1:       CROSS REFERENCE OF DEVICE SPECS FOR OSCILLATOR CONFIGURATIONS

                  AND FREQUENCIES OF OPERATION (COMMERCIAL DEVICES)

OSC         PIC16C710-04                PIC16C710-10               PIC16C710-20               PIC16LC710-04                                          PIC16C710/JW

            PIC16C711-04                PIC16C711-10               PIC16C711-20               PIC16LC711-04                                          PIC16C711/JW

      VDD: 4.0V to 6.0V           VDD: 4.5V to 5.5V          VDD: 4.5V to 5.5V          VDD: 2.5V to 6.0V          VDD: 4.0V to 6.0V

RC    IDD:  5 mA max. at 5.5V     IDD:  2.7 mA typ. at 5.5V  IDD:  2.7 mA typ. at 5.5V  IDD:  3.8 mA typ. at 3.0V  IDD:                              5 mA max. at 5.5V

      IPD:  21 µA max. at 4V      IPD:  1.5 µA typ. at 4V    IPD:  1.5 µA typ. at 4V    IPD:  5.0 µA typ. at 3V    IPD:                              21 µA max. at 4V

      Freq:4 MHz max.             Freq: 4 MHz max.           Freq: 4 MHz max.           Freq: 4 MHz max.           Freq:4 MHz max.

      VDD: 4.0V to 6.0V           VDD: 4.5V to 5.5V          VDD: 4.5V to 5.5V          VDD: 2.5V to 6.0V          VDD: 4.0V to 6.0V

XT    IDD:  5 mA max. at 5.5V     IDD:  2.7 mA typ. at 5.5V  IDD:  2.7 mA typ. at 5.5V  IDD:  3.8 mA typ. at 3.0V  IDD:                              5 mA max. at 5.5V

      IPD:  21 µA max. at 4V      IPD:  1.5 µA typ. at 4V    IPD:  1.5 µA typ. at 4V    IPD:  5.0 µA typ. at 3V    IPD:                              21 µA max. at 4V

      Freq: 4 MHz max.            Freq: 4 MHz max.           Freq: 4 MHz max.           Freq: 4 MHz max.           Freq: 4 MHz max.

      VDD: 4.5V to 5.5V           VDD: 4.5V to 5.5V          VDD: 4.5V to 5.5V                                     VDD: 4.5V to 5.5V

      IDD:  13.5 mA typ. at       IDD:  30 mA max. at        IDD:  30 mA max. at        Not recommended for        IDD:                              30 mA max. at

HS          5.5V                        5.5V                       5.5V                       use in HS mode                                         5.5V

      IPD:  1.5 µA typ. at 4.5V   IPD:  1.5 µA typ. at 4.5V  IPD:  1.5 µA typ. at 4.5V                             IPD:                              1.5 µA typ. at 4.5V

      Freq: 4 MHz max.            Freq: 10 MHz max.          Freq:20 MHz max.                                      Freq: 10 MHz max.

      VDD: 4.0V to 6.0V                                                                 VDD: 2.5V to 6.0V          VDD: 2.5V to 6.0V

      IDD:  52.5 µA typ. at                                                             IDD:  48 µA max. at        IDD:                              48 µA max. at

LP          32 kHz, 4.0V          Not recommended for        Not recommended for              32 kHz, 3.0V                                           32 kHz, 3.0V

      IPD:  0.9 µA typ. at 4.0V         use in LP mode             use in LP mode       IPD:  5.0 µA max. at 3.0V  IPD:                              5.0 µA max. at

      Freq: 200 kHz max.                                                                Freq: 200 kHz max.                                           3.0V

                                                                                                                   Freq: 200 kHz max.

© 1997 Microchip Technology Inc.                                                                                   DS30272A-page 89
PIC16C71X

Applicable Devices         710 71 711 715

11.1      DC Characteristics:      PIC16C710-04 (Commercial, Industrial, Extended)

                                   PIC16C711-04 (Commercial, Industrial, Extended)

                                   PIC16C710-10 (Commercial, Industrial, Extended)

                                   PIC16C711-10 (Commercial, Industrial, Extended)

                                   PIC16C710-20 (Commercial, Industrial, Extended)

                                   PIC16C711-20      (Commercial, Industrial, Extended)

                                              Standard Operating Conditions (unless otherwise stated)

DC CHARACTERISTICS                            Operating temperature       0˚C     ≤ TA ≤ +70˚C (commercial)

                                                                          -40˚C   ≤ TA ≤ +85˚C (industrial)

                                                                          -40˚C   ≤ TA ≤ +125˚C (extended)

Param.    Characteristic           Sym        Min    Typ†  Max     Units                         Conditions

No.

D001      Supply Voltage           VDD        4.0    -        6.0    V    XT, RC and LP osc configuration

D001A                                         4.5    -        5.5    V    HS osc configuration

D002*     RAM Data Retention       VDR        -      1.5      -      V

          Voltage (Note 1)

D003      VDD start voltage to     VPOR       -      VSS      -      V    See section on Power-on Reset for  details

          ensure internal Power-

          on Reset signal

D004*     VDD rise rate to ensure  SVDD       0.05   -        -    V/ms   See section on Power-on Reset for details

          internal Power-on Reset

          signal

D005      Brown-out Reset Voltage  BVDD       3.7    4.0      4.3    V    BODEN configuration bit is enabled

                                              3.7    4.0      4.4    V    Extended Range Only

D010      Supply Current (Note 2)  IDD        -      2.7      5    mA     XT, RC osc configuration

                                                                          FOSC = 4 MHz, VDD = 5.5V (Note 4)

D013                                          -      13.5     30   mA     HS osc configuration

                                                                          FOSC = 20 MHz, VDD = 5.5V

D015      Brown-out Reset Current  ∆IBOR      -      300*     500  µA     BOR enabled VDD = 5.0V

          (Note 5)

D020      Power-down Current       IPD        -      10.5     42   µA     VDD = 4.0V, WDT enabled, -40°C to +85°C

D021      (Note 3)                            -      1.5      21   µA     VDD = 4.0V, WDT disabled, -0°C to +70°C

D021A                                         -      1.5      24   µA     VDD = 4.0V, WDT disabled, -40°C to +85°C

D021B                                         -      1.5      30   µA     VDD = 4.0V, WDT disabled, -40°C to +125°C

D023      Brown-out Reset Current  ∆IBOR      -      300*     500  µA     BOR enabled VDD = 5.0V

          (Note 5)

      *   These parameters are characterized but not tested.

      †   Data in "Typ" column is at 5V, 25˚C unless otherwise stated. These parameters are for design guidance only

          and are not tested.

Note 1:   This is the limit to which VDD can be lowered without losing RAM data.

      2:  The supply current is mainly a function of the operating voltage and frequency. Other factors such as I/O pin

          loading and switching rate, oscillator type, internal code execution pattern, and temperature also have an

          impact on the current consumption.

          The test conditions for all IDD measurements in active operation mode are:

          OSC1 = external square wave, from rail to rail; all I/O pins tristated, pulled to VDD

          MCLR = VDD; WDT enabled/disabled as specified.

      3:  The power-down current in SLEEP mode does not depend on the oscillator type. Power-down current is

          measured with the part in SLEEP mode, with all I/O pins in hi-impedance state and tied to VDD and VSS.

      4:  For RC osc configuration, current through Rext is not included. The current through the resistor can be esti-

          mated by the formula Ir = VDD/2Rext (mA) with Rext in kOhm.

      5:  The ∆ current is the additional current consumed when this peripheral is enabled. This current should be

          added to the base IDD or IPD measurement.

DS30272A-page 90                                                                                 © 1997 Microchip Technology Inc.
                                                                                                 PIC16C71X

                                                                           Applicable Devices       710 71 711 715

11.2      DC Characteristics:      PIC16LC710-04 (Commercial, Industrial, Extended)

                                   PIC16LC711-04 (Commercial, Industrial, Extended)

                                              Standard Operating Conditions (unless otherwise stated)

DC CHARACTERISTICS                            Operating temperature      0˚C      ≤ TA ≤ +70˚C (commercial)

                                                                         -40˚C    ≤ TA ≤ +85˚C (industrial)

                                                                         -40˚C    ≤ TA ≤ +125˚C (extended)

Param     Characteristic           Sym        Min    Typ†     Max  Units                         Conditions

No.

D001      Supply Voltage

          Commercial/Industrial    VDD        2.5    -        6.0    V     LP, XT, RC osc configuration (DC - 4 MHz)

          Extended                 VDD        3.0    -        6.0    V     LP, XT, RC osc configuration (DC - 4 MHz)

D002*     RAM Data Retention       VDR        -      1.5      -      V

          Voltage (Note 1)

D003      VDD start voltage to     VPOR       -      VSS      -      V     See section on Power-on Reset for details

          ensure internal Power-

          on Reset signal

D004*     VDD rise rate to ensure  SVDD       0.05   -        -      V/ms  See section on Power-on Reset for details

          internal Power-on

          Reset

          signal

D005      Brown-out Reset          BVDD       3.7    4.0      4.3    V     BODEN configuration bit is enabled

          Voltage

D010      Supply Current           IDD        -      2.0      3.8    mA    XT, RC osc configuration

          (Note 2)                                                         FOSC = 4 MHz, VDD = 3.0V (Note 4)

D010A                                         -      22.5     48     µA    LP osc configuration

                                                                           FOSC = 32 kHz, VDD = 3.0V, WDT disabled

D015      Brown-out Reset          ∆IBOR      -      300*     500    µA    BOR enabled VDD = 5.0V

          Current (Note 5)

D020      Power-down Current       IPD        -      7.5      30     µA    VDD = 3.0V, WDT enabled, -40°C to +85°C

D021      (Note 3)                            -      0.9      5      µA    VDD = 3.0V, WDT disabled, 0°C to +70°C

D021A                                         -      0.9      5      µA    VDD = 3.0V, WDT disabled, -40°C to +85°C

D021B                                         -      0.9      10     µA    VDD = 3.0V, WDT disabled, -40°C to +125°C

D023      Brown-out Reset          ∆IBOR      -      300*     500    µA    BOR enabled VDD = 5.0V

          Current (Note 5)

      *   These parameters are characterized but not tested.

      †   Data in "Typ" column is at 5V, 25˚C unless otherwise stated. These parameters are for design guidance only

          and are not tested.

Note 1:   This is the limit to which VDD can be lowered without losing RAM data.

      2:  The supply current is mainly a function of the operating voltage and frequency. Other factors such as I/O pin

          loading and switching rate, oscillator type, internal code execution pattern, and temperature also have an

          impact on the current consumption.

          The test conditions for all IDD measurements in active operation mode are:

          OSC1 = external square wave, from rail to rail; all I/O pins tristated, pulled to VDD

          MCLR = VDD; WDT enabled/disabled as specified.

      3:  The power-down current in SLEEP mode does not depend on the oscillator type. Power-down current is

          measured with the part in SLEEP mode, with all I/O pins in hi-impedance state and tied to VDD and VSS.

      4:  For RC osc configuration, current through Rext is not included. The current through the resistor can be esti-

          mated by the formula Ir = VDD/2Rext (mA) with Rext in kOhm.

      5:  The ∆ current is the additional current consumed when this peripheral is enabled. This current should be

          added to the base IDD or IPD measurement.

© 1997 Microchip Technology Inc.                                                                    DS30272A-page 91
PIC16C71X

Applicable Devices       710 71 711 715

11.3      DC Characteristics:        PIC16C710-04    (Commercial, Industrial, Extended)

                                     PIC16C711-04    (Commercial, Industrial, Extended)

                                     PIC16C710-10    (Commercial, Industrial, Extended)

                                     PIC16C711-10    (Commercial, Industrial, Extended)

                                     PIC16C710-20    (Commercial, Industrial, Extended)

                                     PIC16C711-20    (Commercial, Industrial, Extended)

                                     PIC16LC710-04 (Commercial, Industrial, Extended)

                                     PIC16LC711-04 (Commercial, Industrial, Extended)

                                              Standard Operating Conditions (unless otherwise stated)

                                              Operating temperature       0˚C      ≤ TA ≤ +70˚C (commercial)

DC CHARACTERISTICS                                                        -40˚C    ≤ TA ≤ +85˚C (industrial)

                                                                          -40˚C    ≤ TA ≤ +125˚C (extended)

                                              Operating voltage VDD range as described in DC spec Section 11.1 and

                                              Section 11.2.

Param                Characteristic           Sym    Min             Typ  Max      Units             Conditions

No.                                                                  †

          Input Low Voltage

          I/O ports                           VIL

D030      with TTL buffer                            VSS             -    0.15VDD  V      For entire VDD range

D030A                                                VSS             -    0.8V     V      4.5 ≤ VDD ≤ 5.5V

D031      with Schmitt Trigger buffer                VSS             -    0.2VDD   V

D032      MCLR, OSC1                                 VSS             -    0.2VDD   V

          (in RC mode)

D033      OSC1 (in XT, HS and LP)                    VSS             -    0.3VDD   V      Note1

          Input High Voltage

        &n