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

产品描述

搜索
 

PIC16C558A-20I/SS

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

器件描述

IC,MICROCONTROLLER,8-BIT,PIC CPU,CMOS,SOP,18PIN,PLASTIC

IC,单片机,8位,PIC CPU,CMOS,SOP,18PIN,塑料

参数
PIC16C558A-20I/SS状态 CONSULT MFR

文档预览

PIC16C558A-20I/SS器件文档内容

                                                      PIC16C55X(A)

             EPROM-Based 8-Bit CMOS Microcontroller

Devices included in this data sheet:                  Pin Diagram
                                                       PDIP, SOIC, Windowed CERDIP
Referred to collectively as PIC16C55X(A).

PIC16C554  PIC16C554A
             PIC16C556A
                                                                            RA2   1  PIC16C55X(A)  18  RA1
                                                                            RA3                         RA0
PIC16C558  PIC16C558A                                            RA4/T0CKI      2                 17  OSC1/CLKIN
                                                                                                    16
                                                                         MCLR     3                     OSC2/CLKOUT
                                                                             VSS                        VDD
High Performance RISC CPU:                                                        4                 15  RB7
                                                                      RB0/INT                           RB6
                                                                            RB1   5                 14  RB5
                                                                            RB2
                                                                                  6                 13  RB4
                                                                            RB3
Only 35 instructions to learn                                                   7                 12
All single-cycle instructions (200 ns), except for
                                                                                  8                 11
   program branches which are two-cycle
Operating speed:                                                                9                 10

   - DC - 20 MHz clock input                          SSOP

   - DC - 200 ns instruction cycle                                   RA2
                                                                     RA3
Device                Program                Data          RA4/T0CKI              1                20  RA1
                      Memory               Memory                 MCLR                                  RA0
                                                                     VSS          2   PIC16C55X(A)  19  OSC1/CLKIN
                                                                     VSS          3                 18  OSC2/CLKOUT
PIC16C554             512                  80                  RB0/INT                                  VDD
                                                                     RB1          4                 17  VDD
                                                                     RB2
PIC16C554A            512                  80                        RB3          5                 16  RB7
                                                                                                        RB6
                                                                                  6                 15  RB5

                                                                                  7                 14  RB4

PIC16C556A            1K                   80                                     8                 13
PIC16C558
PIC16C558A                                                                        9                 12

                      2K                   128                                    10                11

                      2K                   128

Interrupt capability                                Special Microcontroller Features (cont'd)
16 special function hardware registers
8-level deep hardware stack                         Programmable code protection
Direct, Indirect and Relative addressing modes       Power saving SLEEP mode
                                                       Selectable oscillator options
Peripheral Features:                                  Serial in-circuit programming (via two pins)
                                                       Four user programmable ID locations
13 I/O pins with individual direction control
High current sink/source for direct LED drive       CMOS Technology:
Timer0: 8-bit timer/counter with 8-bit
                                                       Low-power, high-speed CMOS EPROM technology
   programmable prescaler                              Fully static design
                                                       Wide operating voltage range
Special Microcontroller Features:
                                                         - 2.5V to 5.5V PIC16C55X
Power-on Reset (POR)
Power-up Timer (PWRT) and Oscillator Start-up          - 3.0 to 5.5V PIC16C55XA

   Timer (OST)                                        Commercial, industrial and extended tempera-
Watchdog Timer (WDT) with its own on-chip RC           ture range

   oscillator for reliable operation                   Low power consumption
                                                         - < 2.0 mA @ 5.0V, 4.0 MHz
                                                         - 15 A typical @ 3.0V, 32 kHz
                                                         - < 1.0 A typical standby current @ 3.0V

1997 Microchip Technology Inc.                      Preliminary                                       DS40143B-page 1
PIC16C55X(A)

Device Differences

Device              Voltage    Oscillator     Process
                     Range                  Technology

                                             (Microns)

PIC16C554           2.5 - 5.5  See Note 1   0.9

PIC16C554A          3.0 - 5.5  See Note 1   0.7

PIC16C556A          3.0 - 5.5  See Note 1   0.7

PIC16C558           2.5 - 5.5  See Note 1   0.9

PIC16C558A          3.0 - 5.5  See Note 1   0.7

Note 1: If you change from this device to another device, please verify oscillator characteristics in your application.

DS40143B-page 2                Preliminary   1997 Microchip Technology Inc.
                                            PIC16C55X(A)

Table of Contents
1.0 General Description......................................................................................................................................................................5
2.0 PIC16C55X(A) Device Varieties...................................................................................................................................................7
3.0 Architectural Overview .................................................................................................................................................................9
4.0 Memory Organization ................................................................................................................................................................ 13
5.0 I/O Ports .................................................................................................................................................................................... 23
6.0 Timer0 Module .......................................................................................................................................................................... 29
7.0 Special Features of the CPU..................................................................................................................................................... 35
8.0 Instruction Set Summary ........................................................................................................................................................... 51
9.0 Development Support................................................................................................................................................................ 63
10.0 Electrical Specifications............................................................................................................................................................. 67
11.0 Packaging Information............................................................................................................................................................... 79
Appendix A: Enhancements............................................................................................................................................................ 87
Appendix B: Compatibility ............................................................................................................................................................... 87
INDEX .................................................................................................................................................................................................. 89
PIC16C55X(A) Product Identification System...................................................................................................................................... 95

                              To Our Valued Customers

  We constantly strive to improve the quality of all our products and documentation. To this end, we recently con-
  verted to a new publishing software package which we believe will enhance our entire documentation process and
  product. As in any conversion process, information may have accidently been altered or deleted. 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 from the previous version of this
  data sheet (PIC16C55X(A) Data Sheet, Literature Number DS40143B), 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.

1997 Microchip Technology Inc.  Preliminary  DS40143B-page 3
PIC16C55X(A)

NOTES:

DS40143B-page 4  Preliminary   1997 Microchip Technology Inc.
1.0 GENERAL DESCRIPTION                                                PIC16C55X(A)

The PIC16C55X(A) are 18 and 20-Pin EPROM-based                A highly reliable Watchdog Timer with its own on-chip
members of the versatile PIC16CXX family of low-cost,         RC oscillator provides protection against software
high-performance, CMOS, fully-static, 8-bit                   lock- up.
microcontrollers.
                                                              A UV-erasable CERDIP-packaged version is ideal for
All PICmicroTM microcontrollers employ an advanced            code development while the cost-effective One-Time
RISC architecture. The PIC16C55X(A) have enhanced             Programmable (OTP) version is suitable for production
core features, eight-level deep stack, and multiple inter-    in any volume.
nal and external interrupt sources. The separate
instruction and data buses of the Harvard architecture        Table 1-1 shows the features of the PIC16C55X(A)
allow a 14-bit wide instruction word with the separate        mid-range microcontroller families.
8-bit wide data. The two-stage instruction pipeline
allows all instructions to execute in a single-cycle,         A simplified block diagram of the PIC16C55X(A) is
except for program branches (which require two                shown in Figure 3-1.
cycles). A total of 35 instructions (reduced instruction
set) are available. Additionally, a large register set gives  The PIC16C55X(A) series fit perfectly in applications
some of the architectural innovations used to achieve a       ranging from motor control to low-power remote sen-
very high performance.                                        sors. The EPROM technology makes customization of
                                                              application programs (detection levels, pulse genera-
PIC16C55X(A) microcontrollers typically achieve a 2:1         tion, timers, etc.) extremely fast and convenient. The
code compression and a 4:1 speed improvement over             small footprint packages make this microcontroller
other 8-bit microcontrollers in their class.                  series perfect for all applications with space limitations.
                                                              Low-cost, low-power, high-performance, ease of use
The PIC16C554(A) and PIC16C556A have 80 bytes of              and I/O flexibility make the PIC16C55X(A) very versa-
RAM. The PIC16C558(A) has 128 bytes of RAM. Each              tile.
device has 13 I/O pins and an 8-bit timer/counter with
an 8-bit programmable prescaler.                              1.1 Family and Upward Compatibility

PIC16C55X(A) devices have special features to reduce          Those users familiar with the PIC16C5X family of
external components, thus reducing cost, enhancing            microcontrollers will realize that this is an enhanced
system reliability and reducing power consumption.            version of the PIC16C5X architecture. Please refer to
There are four oscillator options, of which the single pin    Appendix A for a detailed list of enhancements. Code
RC oscillator provides a low-cost solution, the LP            written for PIC16C5X can be easily ported to
oscillator minimizes power consumption, XT is a               PIC16C55X(A) family of devices (Appendix B).
standard crystal, and the HS is for High Speed crystals.
The SLEEP (power-down) mode offers power saving.              The PIC16C55X(A) family fills the niche for users want-
The user can wake up the chip from SLEEP through              ing to migrate up from the PIC16C5X family and not
several external and internal interrupts and reset.           needing various peripheral features of other members
                                                              of the PIC16XX mid-range microcontroller family.

                                                              1.2 Development Support

                                                              The PIC16C55X(A) family is supported by a full-fea-
                                                              tured macro assembler, a software simulator, an in-cir-
                                                              cuit emulator, a low-cost development programmer and
                                                              a full-featured programmer. A "C" compiler and fuzzy
                                                              logic support tools are also available.

1997 Microchip Technology Inc.  Preliminary                 DS40143B-page 5
PIC16C55X(A)

TABLE 1-1: PIC16C55X(A) FAMILY OF DEVICES

                                       PIC16C554 PIC16C554A PIC16C556A PIC16C558 PIC16C558A

Clock        Maximum Frequency of Oper- 20   20           20       20       20
Memory
Peripherals  ation (MHz)

Features     EPROM Program Memory 512        512          1K       2K       2K

             (x14 words)

             Data Memory (bytes)    80       80           80       128      128

             Timer Module(s)        TMR0     TMR0         TMR0     TMR0     TMR0

             Interrupt Sources      3        3            3        3        3

             I/O Pins               13       13           13       13       13

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

             Brown-out Reset        --       --           --       --       --

             Packages               18-pin DIP, 18-pin DIP, 18-pin DIP, 18-pin DIP, 18-pin DIP,

                                    SOIC;    SOIC;        SOIC;    SOIC;    SOIC;

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

All PICmicroTM Family devices have Power-on Reset, selectable Watchdog Timer, selectable code protect and high
I/O current capability. All PIC16C55X(A)Family devices use serial programming with clock pin RB6 and data pin RB7.

DS40143B-page 6                              Preliminary                1997 Microchip Technology Inc.
2.0 PIC16C55X(A) DEVICE                                            PIC16C55X(A)
         VARIETIES
                                                          2.3 Quick-Turnaround-Production (QTP)
A variety of frequency ranges and packaging options are             Devices
available. Depending on application and production
requirements the proper device option can be selected     Microchip offers a QTP Programming Service for
using the information in the PIC16C55X(A) Product         factory production orders. This service is made
Identification System section at the end of this data     available for users who choose not to program a
sheet. When placing orders, please use this page of the   medium to high quantity of units and whose code pat-
data sheet to specify the correct part number.            terns have stabilized. The devices are identical to the
                                                          OTP devices but with all EPROM locations and config-
2.1 UV Erasable Devices                                   uration options already programmed by the factory.
                                                          Certain code and prototype verification procedures
The UV erasable version, offered in CERDIP package        apply before production shipments are available.
is optimal for prototype development and pilot            Please contact your Microchip Technology sales office
programs. This version can be erased and                  for more details.
reprogrammed to any of the oscillator modes.
Microchip's PICSTART and PROMATE                        2.4 Serialized
programmers both support programming of the                         Quick-Turnaround-Production
PIC16C55X(A).                                                       (SQTPSM) Devices

2.2 One-Time-Programmable (OTP)                           Microchip offers a unique programming service where
          Devices                                         a few user-defined locations in each device are
                                                          programmed with different serial numbers. The serial
The availability of OTP devices is especially useful for  numbers may be random, pseudo-random or
customers who need the flexibility for frequent code      sequential.
updates and small volume applications. In addition to
the program memory, the configuration bits must also      Serial programming allows each device to have a
be programmed.                                            unique number which can serve as an entry-code,
                                                          password or ID number.

1997 Microchip Technology Inc.  Preliminary             DS40143B-page 7
PIC16C55X(A)

NOTES:

DS40143B-page 8  Preliminary   1997 Microchip Technology Inc.
3.0 ARCHITECTURAL OVERVIEW                                           PIC16C55X(A)

The high performance of the PIC16C55X(A) family can         The PIC16C55X(A) devices contain an 8-bit ALU and
be attributed to a number of architectural features         working register. The ALU is a general purpose
commonly found in RISC microprocessors. To begin            arithmetic unit. It performs arithmetic and Boolean
with, the PIC16C55X(A) uses a Harvard architecture,         functions between data in the working register and any
in which, program and data are accessed from sepa-          register file.
rate memories using separate busses. This improves
bandwidth over traditional von Neumann architecture         The ALU is 8-bits wide and capable of addition,
where program and data are fetched from the same            subtraction, shift and logical operations. Unless
memory. Separating program and data memory further          otherwise mentioned, arithmetic operations are two's
allows instructions to be sized differently than 8-bit      complement in nature. In two-operand instructions,
wide data words. Instruction opcodes are 14-bits wide       typically one operand is the working register
making it possible to have all single word instructions.    (W register). The other operand is a file register or an
A 14-bit wide program memory access bus fetches a           immediate constant. In single operand instructions, the
14-bit instruction in a single cycle. A two-stage pipeline  operand is either the W register or a file register.
overlaps fetch and execution of instructions.
Consequently, all instructions (35) execute in a sin-       The W register is an 8-bit working register used for ALU
gle-cycle (200 ns @ 20 MHz) except for program              operations. It is not an addressable register.
branches.
                                                            Depending on the instruction executed, the ALU may
The PIC16C554(A) addresses 512 x 14 on-chip pro-            affect the values of the Carry (C), Digit Carry (DC), and
gram memory. The PIC16C556A addresses 1K x 14               Zero (Z) bits in the STATUS register. The C and DC bits
program memory. The PIC16C558(A) addresses 2K x             operate as a Borrow and Digit Borrow out bit,
14 program memory. All program memory is internal.          respectively, in subtraction. See the SUBLW and
                                                            SUBWF instructions for examples.
The PIC16C55X(A) can directly or indirectly address its
register files or data memory. All special function         A simplified block diagram is shown in Figure 3-1, with
registers including the program counter are mapped          a description of the device pins in Table 3-1.
into the data memory. The PIC16C55X(A) have an
orthogonal (symmetrical) 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 program-
ming with the PIC16C55X(A) simple yet efficient. In
addition, the learning curve is reduced significantly.

1997 Microchip Technology Inc.  Preliminary               DS40143B-page 9
PIC16C55X(A)

FIGURE 3-1: BLOCK DIAGRAM

       Device      Program             Data Memory
                   Memory                   (RAM)
PIC16C554
PIC16C554A     512 x 14              80 x 8
PIC16C556A     512 x 14              80 x 8
PIC16C558      1K x 14               80 x 8
PIC16C558A     2K x 14               128 x 8
               2K x 14               128 x 8

                        EPROM            13                         Data Bus         8                   PORTA
                                                Program Counter                                          PORTB
                        Program
                        Memory           8 Level Stack                RAM                                       RA0
                                            (13-bit)                                                            RA1
                        512 x 14                                       File                                     RA2
                            to                                      Registers                                   RA3
                                                                                                                RA4/T0CKI
                        2K x 14                                     80 x 8 to
                                                                     128 x 8                                    RB0/INT

               Program  14                               RAM Addr(1)            8                               RB7:RB1
                  Bus

                        Instruction reg                             Addr MUX

                                         Direct Addr 7                                Indirect
                                                                                8 Addr

                                                                      FSR reg

                                                                                             STATUS reg
                                         8

                                            Power-up             3              MUX
                                              Timer
                        Instruction                                       ALU
                        Decode &            Oscillator           8
                                         Start-up Timer
                          Control                                        W reg
                                            Power-on
                          Timing              Reset
                        Generation
                                           Watchdog
                                              Timer

OSC1/CLKIN
OSC2/CLKOUT

                                                                      Timer0

                                         MCLR VDD, VSS

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

DS40143B-page 10                                         Preliminary                                     1997 Microchip Technology Inc.
                                                                          PIC16C55X(A)

TABLE 3-1: PIC16C55X(A) PINOUT DESCRIPTION

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

OSC1/CLKIN   16     18               I      ST/CMOS Oscillator crystal input/external clock source input.
OSC2/CLKOUT
             15     17               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  I/P    ST Master clear (reset) input/programming voltage input.
RA0                                                   This pin is an active low reset to the device.
             17     19               I/O              PORTA is a bi-directional I/O port.

                                            ST

RA1          18     20               I/O    ST

RA2          1                    1  I/O    ST

RA3          2                    2  I/O    ST

RA4/T0CKI    3                    3  I/O    ST Can be selected to be the clock input to the Timer0

RB0/INT                                                timer/counter. Output is open drain type.
RB1
                                                       PORTB is a bi-directional I/O port. PORTB can be
                                                       software programmed for internal weak pull-up on all
                                                       inputs.

             6                    7  I/O TTL/ST(1)     RB0/INT can also be selected as an external

                                                       interrupt pin.

             7                    8  I/O    TTL

RB2          8                    9  I/O    TTL

RB3          9      10               I/O    TTL

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

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

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

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

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

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

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

             -- = Not used                  I = Input  ST = Schmitt Trigger input

             TTL = TTL input

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

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

1997 Microchip Technology Inc.            Preliminary                                           DS40143B-page 11
PIC16C55X(A)

3.1 Clocking Scheme/Instruction Cycle                   3.2 Instruction Flow/Pipelining
The clock input (OSC1/CLKIN pin) is internally divided
by four to generate four non-overlapping quadrature     An "Instruction Cycle" consists of four Q cycles (Q1,
clocks namely Q1, Q2, Q3 and Q4. Internally, the        Q2, Q3 and Q4). The instruction fetch and execute are
program counter (PC) is incremented every Q1, the       pipelined such that fetch takes one instruction cycle
instruction is fetched from the program memory and      while decode and execute takes another instruction
latched into the instruction register in Q4. The        cycle. However, due to the pipelining, each instruction
instruction is decoded and executed during the          effectively executes in one cycle. If an instruction
following Q1 through Q4. The clocks and instruction     causes the program counter to change (e.g., GOTO)
execution flow are shown in Figure 3-2.                 then two cycles are required to complete the instruction
                                                        (Example 3-1).
FIGURE 3-2: CLOCK/INSTRUCTION CYCLE
                                                        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).

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

OSC1                                                         PC+1                              PC+2
                                                      Fetch INST (PC+1)              Fetch INST (PC+2)
                  Q1                                Execute INST (PC)               Execute INST (PC+1)

                  Q2                                                                                     Internal
                                                                                                         phase
                  Q3                                                                                     clock

Q4

PC                    PC

OSC2/CLKOUT               Fetch INST (PC)
      (RC mode)       Execute INST (PC-1)

EXAMPLE 3-1: INSTRUCTION PIPELINE FLOW

1. MOVLW 55h          Fetch 1              Execute 1
2. MOVWF PORTB                              Fetch 2
3. CALL SUB_1                                           Execute 2
4. BSF PORTA, BIT3                                       Fetch 3   Execute 3

                                                                   Fetch 4    Flush

                                                                              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.

DS40143B-page 12                           Preliminary                         1997 Microchip Technology Inc.
                                                                  PIC16C55X(A)

4.0 MEMORY ORGANIZATION                              FIGURE 4-2:  PROGRAM MEMORY MAP
                                                                  AND STACK FOR THE
4.1 Program Memory Organization                                   PIC16C556A

The PIC16C55X(A) has a 13-bit program counter capa-                  PC<12:0>
ble of addressing an 8K x 14 program memory space.
Only the first 512 x 14 (0000h - 01FFh) for the       CALL, RETURN   13
PIC16C554(A), 1K x 14 (0000h - 03FFh) for the
PIC16C556A and 2K x 14 (0000h - 07FFh) for the        RETFIE, RETLW
PIC16C558(A) are physically implemented. Accessing
a location above these boundaries will cause a                    Stack Level 1
wrap-around within the first 512 x 14 space                       Stack Level 2
PIC16C554(A) or 1K x 14 space PIC16C556A or 2K x
14 space PIC16C558(A). The reset vector is at 0000h               Stack Level 8      000h
and the interrupt vector is at 0004h (Figure 4-1,                 Reset Vector
Figure 4-2, Figure 4-3).

FIGURE 4-1:  PROGRAM MEMORY MAP
             AND STACK FOR THE
             PIC16C554/PIC6C554A                                   Interrupt Vector  0004
                                                                                     0005
               PC<12:0>                                           On-chip Program
                                                                       Memory        03FFh
CALL, RETURN   13                                                                    0400h
RETFIE, RETLW

             Stack Level 1
             Stack Level 2

                                                                                     1FFFh

             Stack Level 8                           FIGURE 4-3:  PROGRAM MEMORY MAP
             Reset Vector                                         AND STACK FOR THE
                                  000h                            PIC16C558/PIC16C558A

                                                                     PC<12:0>

                                                      CALL, RETURN   13

                                                      RETFIE, RETLW

              Interrupt Vector    0004                            Stack Level 1
                                  0005                            Stack Level 2
             On-chip Program
                  Memory          01FFh                           Stack Level 8
                                  0200h                           Reset Vector
                                                                                     000h

                                  1FFFh

                                                                   Interrupt Vector  0004
                                                                                     0005
                                                                  On-chip Program
                                                                       Memory        07FFh
                                                                                     0800h

                                                                                     1FFFh

1997 Microchip Technology Inc.         Preliminary                                 DS40143B-page 13
PIC16C55X(A)                                            4.2.1 GENERAL PURPOSE REGISTER FILE

4.2 Data Memory Organization                            The register file is organized as 80 x 8 in the
                                                        PIC16C554(A)/556A and 128 x 8 in the PIC16C558(A).
The data memory (Figure 4-4 and Figure 4-5) is          Each is accessed either directly or indirectly through
partitioned into two Banks which contain the general    the File Select Register, FSR (Section 4.4).
purpose registers and the special function registers.
Bank 0 is selected when the RP0 bit is cleared. Bank 1
is selected when the RP0 bit (STATUS <5>) is set. The
Special Function Registers are located in the first 32
locations of each Bank. Register locations 20-6Fh
(Bank0) on the PIC16C554(A)/556A and 20-7Fh
(Bank0) and A0-BFh (Bank1) on the PIC16C558(A) are
general purpose registers implemented as static RAM.
Some special purpose registers are mapped in Bank 1.

DS40143B-page 14  Preliminary                            1997 Microchip Technology Inc.
                                                                  PIC16C55X(A)

FIGURE 4-4: DATA MEMORY MAP FOR                          FIGURE 4-5: DATA MEMORY MAP FOR
                     THE PIC16C554(A)/556A                                    THE PIC16C558(A)

   File                                       File          File                           File
Address                                    Address       Address                        Address

00h INDF(1)                       INDF(1)    80h         00h INDF(1)          INDF(1)     80h
                                  OPTION     81h                              OPTION      81h
01h TMR0                                     82h         01h TMR0                         82h
                                    PCL      83h                                PCL       83h
02h      PCL                      STATUS     84h         02h      PCL         STATUS      84h
                                             85h                                          85h
03h STATUS                          FSR      86h         03h STATUS             FSR       86h
                                   TRISA     87h                               TRISA      87h
04h      FSR                       TRISB     88h         04h      FSR          TRISB      88h
                                             89h                                          89h
05h PORTA                         PCLATH     8Ah         05h PORTA            PCLATH      8Ah
                                  INTCON     8Bh                              INTCON      8Bh
06h PORTB                                    8Ch         06h PORTB             PCON       8Ch
                                   PCON      8Dh                                          8Dh
07h                                          8Eh         07h                  General     8Eh
                                             8Fh                              Purpose     8Fh
08h                                          90h         08h                  Register    90h
                                             91h                                          91h
09h                                          92h         09h                              92h
                                             93h                                          93h
0Ah PCLATH                                   94h         0Ah PCLATH                       94h
                                             95h                                          95h
0Bh INTCON                                   96h         0Bh INTCON                       96h
                                             97h                                          97h
0Ch                                          98h         0Ch                              98h
                                             99h                                          99h
0Dh                                          9Ah         0Dh                              9Ah
                                             9Bh                                          9Bh
0Eh                                          9Ch         0Eh                              9Ch
                                             9Dh                                          9Dh
0Fh                                          9Eh         0Fh                              9Eh
                                             9Fh                                          9Fh
10h                                                      10h
                                             A0h                                          A0h
11h                                                      11h
                                                                                          BFh
12h                                                      12h                              C0h

13h                                                      13h

14h                                                      14h

15h                                                      15h

16h                                                      16h

17h                                                      17h

18h                                                      18h

19h                                                      19h

1Ah                                                      1Ah

1Bh                                                      1Bh

1Ch                                                      1Ch

1Dh                                                      1Dh

1Eh                                                      1Eh

1Fh                                                      1Fh

20h                                                      20h

            General                                                  General
            Purpose                                                 Purpose
            Register                                                Register
6Fh

70h

7Fh                                                FFh   7Fh                                   FFh
           Bank 0                 Bank 1                            Bank 0    Bank 1

      Unimplemented data memory locations, read as '0'.        Unimplemented data memory locations, read as '0'.
Note 1: Not a physical register.                         Note 1: Not a physical register.

1997 Microchip Technology Inc.            Preliminary                       DS40143B-page 15
PIC16C55X(A)

4.2.2 SPECIAL FUNCTION REGISTERS                                          The special function registers can be classified into two
                                                                          sets (core and peripheral). The special function regis-
The special function registers are registers used by the                  ters associated with the "core" functions are described
CPU and Peripheral functions for controlling the                          in this section. Those related to the operation of the
desired operation of the device (Table 4-1). These                        peripheral features are described in the section of that
registers are static RAM.                                                 peripheral feature.

TABLE 4-1: SPECIAL REGISTERS FOR THE PIC16C55X(A)

Address Name           Bit 7   Bit 6   Bit 5         Bit 4            Bit 3  Bit 2  Bit 1  Bit 0              Value on  Value on
                                                                                                             POR Reset  all other
                                                                                                                        resets(1)

Bank 0

00h     INDF           Addressing this location uses contents of FSR to address data memory (not a physical  xxxx xxxx  xxxx xxxx
                       register)
                                                                                                             xxxx xxxx  uuuu uuuu
01h     TMR0           Timer0 Module's Register                                                              0000 0000  0000 0000
                                                                                                             0001 1xxx  000q quuu
02h     PCL            Program Counter's (PC) Least Significant Byte                                         xxxx xxxx  uuuu uuuu
                                                                                                             ---x xxxx  ---u uuuu
03h     STATUS         IRP(2)  RP1(2)  RP0           TO               PD     Z      DC                C      xxxx xxxx  uuuu uuuu

04h     FSR            Indirect data memory address pointer                                                         --         --
                                                                                                                    --         --
05h     PORTA          --      --                --  RA4              RA3    RA2    RA1               RA0           --         --
                                                                                                             ---0 0000  ---0 0000
06h     PORTB          RB7     RB6     RB5           RB4              RB3    RB2    RB1               RB0    0000 000x  0000 000x
                                                                                                                    --         --
07h     Unimplemented                                                                                               --         --
                                                                                                                    --         --
08h     Unimplemented

09h     Unimplemented

0Ah     PCLATH         --      --                -- Write buffer for upper 5 bits of program counter

0Bh     INTCON         GIE     (3)     T0IE          INTE             RBIE   T0IF   INTF   RBIF

0Ch     Unimplemented

0Dh-1Eh Unimplemented

1Fh     Unimplemented

Bank 1

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

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

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

83h     STATUS         --      --      RP0           TO               PD     Z      DC                C      0001 1xxx 000q quuu

84h     FSR            Indirect data memory address pointer                                                  xxxx xxxx uuuu uuuu

85h     TRISA          --      --                --  TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 ---1 1111 ---1 1111

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

87h     Unimplemented                                                                                        --         --

88h     Unimplemented                                                                                        --         --

89h     Unimplemented                                                                                        --         --

8Ah     PCLATH         --      --                -- Write buffer for upper 5 bits of program counter         ---0 0000 ---0 0000

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

8Ch     Unimplemented                                                                                        --         --

8Dh     Unimplemented                                                                                        --         --

8Eh     PCON           --      --                --  --               --     --     POR               --     ---- --0- ---- --u-

8Fh-9Eh Unimplemented                                                                                        --         --

9Fh     Unimplemented                                                                                        --         --

     Legend: -- = Unimplemented locations read as `0', u = unchanged, x = unknown, q = value depends on condition,
                     shaded = unimplemented

Note 1: Other (non power-up) resets include MCLR reset and Watchdog Timer reset during normal operation.

Note 2: IRP & RPI bits are reserved, always maintain these bits clear.

Note 3: Bit 6 of INTCON register is reserved for future use. Always maintain this bit as clear.

DS40143B-page 16                                     Preliminary                                       1997 Microchip Technology Inc.
                                                                                PIC16C55X(A)

4.2.2.1 STATUS REGISTER                                             It is recommended, therefore, that only BCF, BSF,
                                                                    SWAPF and MOVWF instructions be used to alter the STA-
The STATUS register, shown in Figure 4-6, contains                  TUS register because these instructions do not affect
the arithmetic status of the ALU, the RESET status and              any status bits. For other instructions, not affecting any
the bank select bits for data memory.                               status bits, see the "Instruction Set Summary".

The STATUS register can be the destination for any                  Note 1:  The IRP and RP1 bits (STATUS<7:6>)
instruction, like any other register. If the STATUS                 Note 2:  are not used by the PIC16C55X(A) and
register is the destination for an instruction that affects                  should be programmed as '0'. Use of
the Z, DC or C bits, then the write to these three bits is                   these bits as general purpose R/W bits is
disabled. These bits are set or cleared according to the                     NOT recommended, since this may
device logic. Furthermore, the TO and PD bits are not                        affect upward compatibility with future
writable. Therefore, the result of an instruction with the                   products.
STATUS register as the destination may be different
than intended.                                                               The C and DC bits operate as a Borrow
                                                                             and Digit Borrow out bit, respectively, in
For example, CLRF STATUS will clear the upper-three                          subtraction. See the SUBLW and SUBWF
bits and set the Z bit. This leaves the status register as                   instructions for examples.
000uu1uu (where u = unchanged).

FIGURE 4-6: STATUS REGISTER (ADDRESS 03H OR 83H)

Reserved Reserved 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

                                                                                 - n = Value at POR reset

                                                                                 - x = Unknown 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)

        The IRP bit is reserved on the PIC16C55X(A), always maintain this bit clear.

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. The RP1 bit is reserved on the PIC16C55X(A), always maintain this bit clear.

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.            Preliminary                               DS40143B-page 17
PIC16C55X(A)                                               Note: To achieve a 1:1 prescaler assignment for
                                                                     TMR0, assign the prescaler to the WDT
4.2.2.2 OPTION REGISTER                                              (PSA = 1).
The OPTION register is a readable and writable
register which contains various control bits to configure
the TMR0/WDT prescaler, the external RB0/INT
interrupt, TMR0 and the weak pull-ups on PORTB.

FIGURE 4-7: OPTION REGISTER (ADDRESS 81H)

  R/W-1   R/W-1 R/W-1      R/W-1  R/W-1       R/W-1        R/W-1         R/W-1       R = Readable bit
  RBPU   INTEDG T0CS       T0SE    PSA         PS2          PS1           PS0        W = Writable bit
bit7                                                                                 - n = Value at POR reset
                                                                               bit0
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

DS40143B-page 18                              Preliminary                            1997 Microchip Technology Inc.
                                                                         PIC16C55X(A)

4.2.2.3 INTCON REGISTER                                   Note:       Interrupt flag bits get set when an interrupt
                                                                      condition occurs regardless of the state of
The INTCON register is a readable and writable                        its corresponding enable bit or the global
register which contains the various enable and flag bits              enable bit, GIE (INTCON<7>).
for all interrupt sources.

FIGURE 4-8: INTCON REGISTER (ADDRESS 0BH OR 8BH)

  R/W-0  Reserved  R/W-0          R/W-0  R/W-0     R/W-0  R/W-0       R/W-x       R = Readable bit
    GIE      --     T0IE          INTE   RBIE       T0IF  INTF        RBIF        W = Writable bit
                                                                                  - n = Value at POR reset
bit7                                                                        bit0  - x = Unknown at POR reset

bit 7:   GIE: Global Interrupt Enable bit
         1 = Enables all un-masked interrupts
         0 = Disables all interrupts

bit 6: -- = Reserved for future use. Always maintain this bit clear.

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 = When 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

1997 Microchip Technology Inc.                Preliminary                         DS40143B-page 19
PIC16C55X(A)

4.2.2.4 PCON REGISTER

The PCON register contains flag bits to differentiate
between a Power-on Reset, an external MCLR reset or
WDT reset. See Section 7.3 and Section 7.4 for
detailed reset operation.

FIGURE 4-9: PCON REGISTER (ADDRESS 8Eh)

U-0       U-0     U-0  U-0           U-0               U-0  R/W-0  U-0
                                                            POR    --
      --  --      --   --                 --           --                    R = Readable bit
                                                                       bit0  W = Writable bit
bit7                                                                         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 = Power-on Reset occurred

bit 0: Unimplemented: Read as '0'

DS40143B-page 20                              Preliminary                     1997 Microchip Technology Inc.
                                                                                  PIC16C55X(A)

4.3 PCL and PCLATH                                                   4.3.2 STACK

The program counter (PC) is 13-bits wide. The low byte               The PIC16C55X(A) family has an 8 level deep x 13-bit
comes from the PCL register, which is a readable and                 wide hardware stack (Figure 4-1, Figure 4-2 and
writable register. The high bits (PC<12:8>) are not directly         Figure 4-3). The stack space is not part of either pro-
readable or writable and come from PCLATH. On any                    gram or data space and the stack pointer is not read-
reset, the PC is cleared. Figure 4-10 shows the two                  able or writable. The PC is PUSHed onto the stack
situations for the loading of the PC. The upper example in           when a CALL instruction is executed or an interrupt
the figure shows how the PC is loaded on a write to PCL              causes a branch. The stack is POPed in the event of a
(PCLATH<4:0>  PCH). The lower example in the figure                  RETURN, RETLW or a RETFIE instruction execution.
shows how the PC is loaded during a CALL or GOTO                     PCLATH is not affected by a PUSH or POP operation.
instruction (PCLATH<4:3>  PCH).
                                                                     The stack operates as a circular buffer. This means that
FIGURE 4-10: LOADING OF PC IN                                        after the stack has been PUSHed eight times, the ninth
                     DIFFERENT SITUATIONS                            push overwrites the value that was stored from the first
                                                                     push. The tenth push overwrites the second push (and
                                                                     so on).

          PCH              PCL

      12           87                 0  Instruction with            Note 1: There are no STATUS bits to indicate
PC                                8      PCL as                                  stack overflow or stack underflow
                                         Destination                             conditions.

                  PCLATH<4:0>            ALU result                  Note 2:  There are no instructions mnemonics
          5                                                                   called PUSH or POP. These are actions
                                                                              that occur from the execution of the
                   PCLATH                                                     CALL, RETURN, RETLW and RETFIE
                                                                              instructions, or vectoring to an interrupt
              PCH  87      PCL                                                address.
      12 11 10                                 0
PC                                                    GOTO, CALL

2 PCLATH<4:3>                         11
                                                      Opcode <10:0>

                   PCLATH

4.3.1 COMPUTED GOTO

A computed GOTO is accomplished by adding an
offset 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.         Preliminary                              DS40143B-page 21
PIC16C55X(A)                                                  A simple program to clear RAM locations 20h-2Fh
                                                              using indirect addressing is shown in Example 4-1.
4.4 Indirect Addressing, INDF and FSR
          Registers                                           EXAMPLE 4-1: INDIRECT ADDRESSING

The INDF register is not a physical register. Addressing      NEXT       movlw         0x20   ;initialize pointer
the INDF register will cause indirect addressing.                        movwf         FSR    ;to RAM
                                                                         clrf          INDF   ;clear INDF register
Indirect addressing is possible by using the INDF reg-                   incf          FSR    ;inc pointer
ister. Any instruction using the INDF register actually                  btfss         FSR,4  ;all done?
accesses data pointed to by the file select register                     goto          NEXT   ;no clear next
(FSR). Reading INDF itself indirectly will produce 00h.                                       ;yes continue
Writing to the INDF register indirectly results in a
no-operation (although status bits may be affected). An       CONTINUE:
effective 9-bit address is obtained by concatenating the
8-bit FSR register and the IRP bit (STATUS<7>), as
shown in Figure 4-11. However, IRP is not used in the
PIC16C55X(A).

FIGURE 4-11: DIRECT/INDIRECT ADDRESSING PIC16C55X(A)

            Direct Addressing                                                          Indirect Addressing

(1)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                                         00h

                                                          not used

                  Data
                  Memory

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

For memory map detail see Figure 4-4 and Figure 4-5.
Note 1: The RP1 and IRP bits are reserved, always maintain these bits clear.

DS40143B-page 22                             Preliminary                               1997 Microchip Technology Inc.
                                                                               PIC16C55X(A)

5.0 I/O PORTS                                                       FIGURE 5-2: BLOCK DIAGRAM OF RA4 PIN

The PIC16C55X(A) have two ports, PORTA and PORTB.                       Data   DQ
                                                                        bus    CK Q
5.1 PORTA and TRISA Registers
                                                                        WR
PORTA is a 5-bit wide latch. RA4 is a Schmitt Trigger input             PORTA
and an open drain output. Port RA4 is multiplexed with the
T0CKI clock input. All other RA port pins have Schmitt                                                                 N  I/O pin(1)
Trigger input levels and full CMOS output drivers. All pins
have data direction bits (TRIS registers) which can config-             WR     Data Latch            VSS
ure these pins as input or output.                                      TRISA    DQ
                                                                                               Schmitt
A '1' in the TRISA register puts the corresponding output                         CK Q         Trigger
driver in a hi- impedance mode. A '0' in the TRISA register                                    input
puts the contents of the output latch on the selected pin(s).                  TRISA Latch     buffer

Reading the PORTA register reads the status of the pins,                       RD TRISA
whereas writing to it will write to the port latch. All write
operations are read-modify-write operations. So a write                                     Q  D
to a port implies that the port pins are first read, then this
value is modified and written to the port data latch.                                                            EENN
                                                                        RD PORTA
  Note: On reset, the TRISA register is set to all inputs.
                                                                         TMR0 clock input
FIGURE 5-1: BLOCK DIAGRAM OF                                            Note 1: I/O pin has protection diodes to VSS only.
                     PORT PINS RA<3:0>

Data   D  Q
bus
WR                                                    VDD
PortA
       CK Q
WR                                             P
TRISA
       Data Latch

       D  Q                                           N    I/O pin

       CK Q                             VSS
       TRIS Latch
                                  Schmitt
                    RD TRISA      Trigger
                                  input
                                  buffer

                   Q              D

                                                  EN
RD PORTA

1997 Microchip Technology Inc.                           Preliminary                                                 DS40143B-page 23
PIC16C55X(A)

TABLE 5-1: PORTA FUNCTIONS

     Name         Bit #      Buffer                  Function
                             Type

RA0               bit0              ST  Input/output
                                        Input/output
RA1               bit1              ST  Input/output
                                        Input/output
RA2               bit2              ST  Input/output or external clock input for TMR0. Output is open drain type.

RA3               bit3              ST

RA4/T0CKI         bit4              ST

Legend: ST = Schmitt Trigger input

TABLE 5-2: SUMMARY OF REGISTERS ASSOCIATED WITH PORTA

Address Name      Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0             Value on       Value on
                                                                                 POR    All Other Resets
05h PORTA --             --         --  RA4 RA3 RA2 RA1 RA0
                                                                           ---x xxxx      ---u uuuu
85h TRISA --             --         -- TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
                                                                           ---1 1111      ---1 1111

Legend: -- = Unimplemented locations, read as `0'
   Note: Note: Shaded bits are not used by PORTA.

DS40143B-page 24                        Preliminary                         1997 Microchip Technology Inc.
                                                                              PIC16C55X(A)

5.2 PORTB and TRISB Registers                                    This interrupt can wake the device from SLEEP. The
                                                                 user, in the interrupt service routine, can clear the
PORTB is an 8-bit wide bi-directional port. The                  interrupt in the following manner:
corresponding data direction register is TRISB. A '1' in
the TRISB register puts the corresponding output driver          a) Any read or write of PORTB. This will end the
in a high impedance mode. A '0' in the TRISB register                  mismatch condition.
puts the contents of the output latch on the selected
pin(s).                                                          b) Clear flag bit RBIF.

Reading PORTB register reads the status of the pins,             A mismatch condition will continue to set flag bit RBIF.
whereas writing to it will write to the port latch. All write    Reading PORTB will end the mismatch condition, and
operations are read-modify-write operations. So a write          allow flag bit RBIF to be cleared.
to a port implies that the port pins are first read, then
this value is modified and written to the port data latch.       This interrupt on mismatch feature, together with
                                                                 software configurable pull-ups on these four pins allow
Each of the PORTB pins has a weak internal pull-up               easy interface to a key pad and make it possible for
(200 A typical). A single control bit can turn on all the       wake-up on key-depression. (See AN552 in the
pull-ups. This is done by clearing the RBPU                      Microchip Embedded Control Handbook.)
(OPTION<7>) bit. The weak pull-up is automatically
turned off when the port pin is configured as an output.         Note:    If a change on the I/O pin should occur when the
The pull-ups are disabled on Power-on Reset.                              read operation is being executed (start of the Q2
                                                                          cycle), then the RBIF interrupt flag may not
Four of PORTB's pins, RB7:RB4, have an interrupt on                       get set.
change feature. Only pins configured as inputs can
cause this interrupt to occur (i.e., any RB7:RB4 pin             The interrupt on change feature is recommended for
configured as an output is excluded from the interrupt           wake-up on key depression operation and operations
on change comparison). The input pins (of RB7:RB4)               where PORTB is only used for the interrupt on change
are compared with the old value latched on the last              feature. Polling of PORTB is not recommended while
read of PORTB. The "mismatch" outputs of RB7:RB4                 using the interrupt on change feature.
are OR'ed together to generate the RBIF interrupt (flag
latched in INTCON<0>).                                           FIGURE 5-4: BLOCK DIAGRAM OF
                                                                                      RB3:RB0 PINS

                                                                                                    VDD

FIGURE 5-3: BLOCK DIAGRAM OF                                     RBPU(2)                                                 P  weak
                     RB7:RB4 PINS                                Data bus                                                   pull-up

                                            VDD                     WR PortB  Data Latch
                                                                               DQ
RBPU(2)                                             P   weak                                                                I/O
Data bus                                                pull-up                    CK                                       pin(1)
WR PortB
          Data Latch                                    I/O      WR TRISB     DQ          TTL
           DQ                                           pin(1)                    CK      Input
                                                                                          Buffer
               CK
          TRIS Latch
           DQ

WR TRISB                CK                  TTL                               RD TRISB
                                            Input                             RD PortB
                                            Buffer      ST                                QD
                                                        Buffer                               EN

          RD TRISB                   Latch
                                  QD
                                                                 RB0/INT

          RD PortB                  EN                                        ST                                         RD Port
                                                                              Buffer
Set RBIF

          From other              QD                             Note 1: I/O pins have diode protection to VDD and VSS.
          RB7:RB4 pins               EN
                                                                 Note 2: TRISB = 1 enables weak pull-up if RBPU = '0'
                                            RD Port                        (OPTION<7>).

RB7:RB6 in serial programming mode

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

Note 2: TRISB = 1 enables weak pull-up if RBPU = '0'
           (OPTION<7>).

1997 Microchip Technology Inc.                        Preliminary                       DS40143B-page 25
PIC16C55X(A)

TABLE 5-3: PORTB FUNCTIONS

     Name     Bit # Buffer Type                              Function

RB0/INT       bit0  TTL/ST(1) Input/output 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 pin.

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

                                 programmable weak pull-up. Serial programming data pin.

Legend: ST = Schmitt Trigger, TTL = TTL input
Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt.
Note 2: This buffer is a Schmitt Trigger input when used in serial programming mode.

TABLE 5-4: SUMMARY OF REGISTERS ASSOCIATED WITH PORTB

Address Name      Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0        Value on                    Value on
                                                                            POR                  All Other Rests
06h  PORTB RB7      RB6  RB5 RB4 RB3 RB2 RB1 RB0
                                                                       uuuu uuuu                   xxxx xxxx
86h  TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0     1111 1111                   1111 1111
                                                                       1111 1111                   1111 1111
81h  OPTION RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

Note: Shaded bits are not used by PORTB.

DS40143B-page 26                          Preliminary                   1997 Microchip Technology Inc.
                                                                          PIC16C55X(A)

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

5.3.1 BI-DIRECTIONAL I/O PORTS                                                 INSTRUCTIONS ON AN

Any instruction which writes, operates internally as a                         I/O PORT
read followed by a write operation. The BCF and BSF
instructions, for example, read the register into the         ; Initial PORT settings: PORTB<7:4> Inputs
CPU, execute the bit operation and write the result back
to the register. Caution must be used when these              ;
instructions are applied to a port with both inputs and
outputs defined. For example, a BSF operation on bit5         ;                     PORTB<3:0> Outputs
of PORTB will cause all eight bits of PORTB to be read
into the CPU. Then the BSF operation takes place on           ; PORTB<7:6> have external pull-up and are not
bit5 and PORTB is written to the output latches. If
another bit of PORTB is used as a bidirectional I/O pin       ; connected to other circuitry
(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     ;
the CPU and re-written to the data latch of this
particular pin, overwriting the previous content. As long     ;                     PORT latch PORT pins
as the pin stays in the input mode, no problem occurs.
However, if bit0 is switched into output mode later on,       ;                     ---------- ----------
the content of the data latch may now be unknown.
                                                                 BCF PORTB, 7    ; 01pp pppp 11pp pppp
Reading the port register, reads the values of the port
pins. Writing to the port register writes the value to the       BCF PORTB, 6    ; 10pp pppp 11pp pppp
port latch. When using read modify write instructions
(ex. BCF, BSF, etc.) on a port, the value of the port pins       BSF STATUS,RP0  ;
is read, the desired operation is done to this value, and
this value is then written to the port latch.                    BCF TRISB, 7    ; 10pp pppp 11pp pppp

Example 5-1 shows the effect of two sequential                   BCF TRISB, 6    ; 10pp pppp 10pp pppp
read-modify-write instructions (ex., BCF, BSF, etc.) on
an I/O port.                                                  ;

A pin actively outputting a Low or High should not be         ; Note that the user may have expected the pin
driven from external devices at the same time in order
to change the level on this pin ("wired-or", "wired-and").    ; values to be 00pp pppp. The 2nd BCF caused
The resulting high output currents may damage
the chip.                                                     ; RB7 to be latched as the pin value (High).

                                                              5.3.2 SUCCESSIVE OPERATIONS ON I/O PORTS

                                                              The actual write to an I/O port happens at the end of an
                                                              instruction cycle, whereas for reading, the data must be
                                                              valid at the beginning of the instruction cycle
                                                              (Figure 5-5). 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
                                                              dependent) 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 an NOP or another
                                                              instruction not accessing this I/O port.

FIGURE 5-5: 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 write to PORTB
Instruction                                       NOP             NOP          followed by a read from PORTB.
                MOVWF PORTB       MOVF PORTB, W
   fetched            Write to       Read PORTB                                Note that:
                      PORTB
RRBB7:R<7B:00>                                                                   data setup time = (0.25 TCY - TPD)
                                                                                 where TCY = instruction cycle and
                                         TPD     Port pin                        TPD = propagation delay of Q1 cycle
                                                 sampled here                    to output valid.
                                  Execute
                                  MOVWF             Execute                    Therefore, at higher clock frequencies,
                                  PORTB             MOVF                       a write followed by a read may be
                                                 PORTB, W                      problematic.

                                                                 Execute
                                                                  NOP

1997 Microchip Technology Inc.                 Preliminary                                  DS40143B-page 27
PIC16C55X(A)

NOTES:

DS40143B-page 28  Preliminary   1997 Microchip Technology Inc.
                                                                                            PIC16C55X(A)

6.0 TIMER0 MODULE                                                    bit (OPTION<4>). Clearing the T0SE bit selects the
                                                                     rising edge. Restrictions on the external clock input are
The Timer0 module timer/counter has the following                    discussed in detail in Section 6.2.
features:
                                                                     The prescaler is shared between the Timer0 module
8-bit timer/counter                                                and the WatchdogTimer. The prescaler assignment is
Readable and writable                                              controlled in software by the control bit PSA
8-bit software programmable prescaler                              (OPTION<3>). Clearing the PSA bit will assign the
Internal or external clock select                                  prescaler to Timer0. The prescaler is not readable or
Interrupt on overflow from FFh to 00h                              writable. When the prescaler is assigned to the Timer0
Edge select for external clock                                     module, prescale value of 1:2, 1:4, ..., 1:256 are
                                                                     selectable. Section 6.3 details the operation of the
Figure 6-1 is a simplified block diagram of the Timer0               prescaler.
module.
                                                                     6.1 TIMER0 Interrupt
Timer mode is selected by clearing the T0CS bit
(OPTION<5>). In timer mode, the TMR0 will increment                  Timer0 interrupt is generated when the TMR0 register
every instruction cycle (without prescaler). If Timer0 is            timer/counter overflows from FFh to 00h. This overflow
written, the increment is inhibited for the following two            sets the T0IF bit. The interrupt can be masked by
cycles (Figure 6-2 and Figure 6-3). The user can work                clearing the T0IE bit (INTCON<5>). The T0IF bit
around this by writing an adjusted value to TMR0.                    (INTCON<2>) must be cleared in software by the
                                                                     Timer0 module interrupt service routine before
Counter mode is selected by setting the T0CS bit. In                 re-enabling this interrupt. The Timer0 interrupt cannot
this mode Timer0 will increment either on every rising               wake the processor from SLEEP since the timer is shut
or falling edge of pin RA4/T0CKI. The incrementing                   off during SLEEP. See Figure 6-4 for Timer0 interrupt
edge is determined by the source edge (T0SE) control                 timing.

FIGURE 6-1: TIMER0 BLOCK DIAGRAM

                                                                                                    Data bus

RA4/T0CKI    FOSC/4               0                                  PSout                                     8
    pin

                                                                 1
                                                                                 Sync with

                                      1                                     Internal                TMR0

                                         Programmable            0          clocks           PSout

                                               Prescaler                    (2 cycle delay)

             T0SE

                                         PS2:PS0           PSA                                                    Set Flag bit T0IF
                                                                                                                     on Overflow

                                  T0CS

Note 1: Bits, T0SE, T0CS, PS2, PS1, PS0 and PSA are located in the OPTION register.
      2: The prescaler is shared with Watchdog Timer (Figure 6-6)

FIGURE 6-2: TIMER0 (TMR0) TIMING: INTERNAL CLOCK/NO PRESCALER

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                              Write TMR0       Read TMR0  Read TMR0  Read TMR0           Read TMR0     Read TMR0
Executed                                 executed         reads NT0  reads NT0  reads NT0

                                                                                                    reads NT0 + 1 reads NT0 + 2

1997 Microchip Technology Inc.                     Preliminary                                               DS40143B-page 29
PIC16C55X(A)

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
                 T0                     T0+1                                              NT0                        NT0+1
TMR0

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)

TMR0 timer                 FEh                FFh                00h                           01h                   02h

                                1             1

T0IF bit

(INTCON<2>)

GIE bit                                                    Interrupt Latency Time
(INTCON<7>)

INSTRUCTION FLOW

             PC            PC                  PC +1                    PC +1                       0004h               0005h
                                              Inst (PC+1)             Dummy cycle               Inst (0004h)         Inst (0005h)
Instruction                Inst (PC)           Inst (PC)                                       Dummy cycle           Inst (0004h)
fetched

Instruction                Inst (PC-1)
executed

                 Note 1: T0IF interrupt flag is sampled here (every Q1).
                        2: Interrupt latency = 4Tcy, where Tcy = instruction cycle time.
                        3: CLKOUT is available only in RC oscillator mode.

DS40143B-page 30                                           Preliminary                                     1997 Microchip Technology Inc.
6.2 Using Timer0 with External Clock                                   PIC16C55X(A)

When an external clock input is used for Timer0, it must      When a prescaler is used, the external clock input is
meet certain requirements. The external clock                 divided by the asynchronous ripple-counter type
requirement is due to internal phase clock (TOSC)             prescaler so that the prescaler output is symmetrical.
synchronization. Also, there is a delay in the actual         For the external clock to meet the sampling
incrementing of Timer0 after synchronization.                 requirement, the ripple-counter must be taken into
                                                              account. Therefore, it is necessary for T0CKI to have a
6.2.1 EXTERNAL CLOCK SYNCHRONIZATION                          period of at least 4TOSC (and a small RC delay of
                                                              40 ns) divided by the prescaler value. The only
When no prescaler is used, the external clock input is        requirement on T0CKI high and low time is that they do
the same as the prescaler output. The synchronization         not violate the minimum pulse width requirement of
of T0CKI with the internal phase clocks is                    10 ns. Refer to parameters 40, 41 and 42 in the
accomplished by sampling the prescaler output on the          electrical specification of the desired device.
Q2 and Q4 cycles of the internal phase clocks
(Figure 6-5). Therefore, it is necessary for T0CKI to be      6.2.2 TIMER0 INCREMENT DELAY
high for at least 2TOSC (and a small RC delay of 20 ns)
and low for at least 2TOSC (and a small RC delay of           Since the prescaler output is synchronized with the
20 ns). Refer to the electrical specification of the          internal clocks, there is a small delay from the time the
desired device.                                               external clock edge occurs to the time the TMR0 is
                                                              actually incremented. Figure 6-5 shows the delay from
                                                              the external clock edge to the timer incrementing.

FIGURE 6-5: TIMER0 TIMING WITH EXTERNAL CLOCK

External Clock Input or           Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Prescaler output (2)                                                                                                          Small pulse
                                                                                                                              misses sampling
External Clock/Prescaler
Output after sampling                                 (1)
                                  (3)
   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.  Preliminary                                                             DS40143B-page 31
PIC16C55X(A)

6.3 Prescaler                                                    The PSA and PS2:PS0 bits (OPTION<3:0>) determine
                                                                 the prescaler assignment and prescale ratio.
An 8-bit counter is available as a prescaler for the
Timer0 module, or as a postscaler for the Watchdog               When assigned to the Timer0 module, all instructions
Timer, respectively (Figure 6-6). For simplicity, this           writing to the TMR0 register (e.g., CLRF 1, MOVWF 1,
counter is being referred to as "prescaler" throughout           BSF 1,x....etc.) will clear the prescaler. When
this data sheet. Note that there is only one prescaler           assigned to WDT, a CLRWDT instruction will clear the
available which is mutually exclusive between the                prescaler along with the Watchdog Timer. The
Timer0 module and the Watchdog Timer. Thus, a                    prescaler is not readable or writable.
prescaler assignment for the Timer0 module means
that there is no prescaler for the Watchdog Timer, and
vice-versa.

FIGURE 6-6: BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER                                     Data Bus
                                                                                                  8
      CLKOUT (=Fosc/4)
                                                                                         TMR0 reg
T0CKI                           0M                      1                        SYNC
  pin                                U                        M                     2                     Set flag bit T0IF
                                     X                                                                       on Overflow
                                                        0  U                     Cycles
                                1                          X

                  T0SE            T0CS

                                                           PSA

  Watchdog              0               8-bit Prescaler                     PS0 - PS2
     Timer                   M              8
                             U
WDT Enable bit                            8-to-1MUX
                        1X

                           PSA

                                        0               1

                                           MUX                              PSA

                                                                    WDT
                                                                  Time-out

Note: T0SE, T0CS, PSA, PS0-PS2 are bits in the OPTION register.

DS40143B-page 32                           Preliminary                                    1997 Microchip Technology Inc.
                                                                 PIC16C55X(A)

6.3.1 SWITCHING PRESCALER ASSIGNMENT                     To change prescaler from the WDT to the TMR0
                                                         module use the sequence shown in Example 6-2. This
The prescaler assignment is fully under software         precaution must be taken even if the WDT is disabled.
control (i.e., it can be changed "on the fly" during
program execution). To avoid an unintended device        EXAMPLE 6-2: CHANGING PRESCALER
RESET, the following instruction sequence                                        (WDTTIMER0)
(Example 6-1) must be executed when changing the
prescaler assignment from Timer0 to WDT. Lines 5-7       CLRWDT  STATUS, RP0  ;Clear WDT and
are required only if the desired postscaler rate is 1:1  BSF     b'xxxx0xxx'  ;prescaler
(PS<2:0> = 000) or 1:2 (PS<2:0> = 001).                  MOVLW
                                                                 OPTION       ;Select TMR0, new
EXAMPLE 6-1: CHANGING PRESCALER                          MOVWF   STATUS, RP0  ;prescale value and
                        (TIMER0WDT)                      BCF                  ;clock source

1.BCF STATUS, RP0 ;Skip if already in

                    ; Bank 0

2.CLRWDT            ;Clear WDT

3.CLRF TMR0         ;Clear TMR0 & Prescaler

4.BSF STATUS, RP0 ;Bank 1

5.MOVLW '00101111'b; ;These 3 lines (5, 6, 7)

6.MOVWF OPTION      ; are required only if

                    ; desired PS<2:0> are

7.CLRWDT            ; 000 or 001

8.MOVLW '00101xxx'b ;Set Postscaler to

9.MOVWF OPTION      ; desired WDT rate

10.BCF STATUS, RP0 ;Return to Bank 0

TABLE 6-1: REGISTERS ASSOCIATED WITH TIMER0

Address Name    Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0           Value on       Value on
                                                                             POR    All Other Resets
01h  TMR0 Timer0 module's register
                                                                         uuuu uuuu     xxxx xxxx
0Bh/8Bh INTCON GIE  +             T0IE INTE RBIE T0IF INTF RBIF          0000 000x     0000 000x
                                                                         1111 1111     1111 1111
81h  OPTION RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0                        ---1 1111     ---1 1111

85h  TRISA      --  --            -- TRISA4 TRISA3 TRISA2 TRISA1 TRISA0

Legend: -- = Unimplemented locations, read as `0'.

          + = Reserved for future use.

Note: Shaded bits are not used by TMR0 module.

1997 Microchip Technology Inc.        Preliminary                                 DS40143B-page 33
PIC16C55X(A)

NOTES:

DS40143B-page 34  Preliminary   1997 Microchip Technology Inc.
7.0 SPECIAL FEATURES OF THE                                          PIC16C55X(A)
         CPU
                                                            The PIC16C55X(A) has a Watchdog Timer which is
What sets a microcontroller apart from other                controlled by configuration bits. It runs off its own RC
processors are special circuits to deal with the needs of   oscillator for added reliability. There are two timers that
real time applications. The PIC16C55X(A) family has a       offer necessary delays on power-up. One is the
host of such features intended to maximize system           Oscillator Start-up Timer (OST), intended to keep the
reliability, minimize cost through elimination of external  chip in reset until the crystal oscillator is stable. The
components, provide power saving operating modes            other is the Power-up Timer (PWRT), which provides a
and offer code protection.                                  fixed delay of 72 ms (nominal) on power-up only,
                                                            designed to keep the part in reset while the power
These are:                                                  supply stabilizes. With these two functions on-chip,
                                                            most applications need no external reset circuitry.
1. OSC selection
2. Reset                                                    The SLEEP mode is designed to offer a very low
                                                            current power-down mode. The user can wake-up from
      Power-on Reset (POR)                                  SLEEP through external reset, Watchdog Timer
      Power-up Timer (PWRT)                                 wake-up or through an interrupt. Several oscillator
      Oscillator Start-Up Timer (OST)                       options are also made available to allow the part to fit
3. Interrupts                                               the application. The RC oscillator option saves system
4. Watchdog Timer (WDT)                                     cost while the LP crystal option saves power. A set of
5. SLEEP                                                    configuration bits are used to select various options.
6. Code protection
7. ID Locations
8. In-circuit serial programmingTM

1997 Microchip Technology Inc.  Preliminary               DS40143B-page 35
PIC16C55X(A)

7.1 Configuration Bits                                        The user will note that address 2007h is beyond
                                                              the user program memory space. In fact, it belongs
The configuration bits can be programmed (read as '0')        to the special test/configuration memory space
or left unprogrammed (read as '1') to select various          (2000h 3FFFh), which can be accessed only during
device configurations. These bits are mapped in               programming.
program memory location 2007h.

FIGURE 7-1: CONFIGURATION WORD

CP1 CP01 CP1 CP01 CP1 CP01 -- Reserved CP1                    CP01 PWRTE WDTE F0SC1 F0SC0                          CONFIG Address
                                                                                                             bit0  REGISTER: 2007h
bit13

bit 13-8   CP<1:0>: Code protection bits(1)
     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: Unimplemented: Read as '1'

bit 6: Reserved: Do not use

bit 3:     PWRTE: Power-up Timer Enable bit
           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: All of the CP1:CP0 pairs have to be given the same value to enable the code protection scheme listed.

DS40143B-page 36                                   Preliminary   1997 Microchip Technology Inc.
                                                                        PIC16C55X(A)

7.2 Oscillator Configurations                              TABLE 7-1:         CAPACITOR SELECTION
                                                                              FOR CERAMIC RESONATORS
7.2.1 OSCILLATOR TYPES                                                        (PRELIMINARY)

The PIC16C55X(A) can be operated in four different         Ranges Characterized:
oscillator options. The user can program two
configuration bits (FOSC1 and FOSC0) to select one of      Mode         Freq      OSC1(C1)     OSC2(C2)
these four modes:

LP  Low Power Crystal                                    XT           455 kHz   22 - 100 pF  22 - 100 pF
XT  Crystal/Resonator
HS  High Speed Crystal/Resonator                                      2.0 MHz   15 - 68 pF   15 - 68 pF
RC  Resistor/Capacitor
                                                                        4.0 MHz   15 - 68 pF   15 - 68 pF

                                                           HS           8.0 MHz   10 - 68 pF   10 - 68 pF
                                                                                               10 - 22 pF
                                                                        16.0 MHz  10 - 22 pF

7.2.2 CRYSTAL OSCILLATOR / CERAMIC                         Higher capacitance increases the stability of the oscillator
            RESONATORS                                     but also increases the start-up time. These values are for
                                                           design guidance only. Since each resonator has its own
In XT, LP or HS modes a crystal or ceramic resonator       characteristics, the user should consult the resonator man-
is connected to the OSC1 and OSC2 pins to establish        ufacturer for appropriate values of external components.
oscillation (Figure 7-2). The PIC16C55X(A) oscillator
design requires the use of a parallel cut crystal. Use of  Resonators to be Characterized:
a series cut crystal may give a frequency out of the
crystal manufacturers specifications. When in XT, LP or    455 kHz Panasonic EFO-A455K04B      0.3%
HS modes, the device can have an external clock
source to drive the OSC1 pin (Figure 7-3).                 2.0 MHz Murata Erie CSA2.00MG       0.5%

                                                           4.0 MHz Murata Erie CSA4.00MG       0.5%

                                                           8.0 MHz Murata Erie CSA8.00MT       0.5%

                                                           16.0 MHz Murata Erie CSA16.00MX     0.5%

FIGURE 7-2:  CRYSTAL OPERATION                                      All resonators used did not have built-in capacitors.
             (OR CERAMIC RESONATOR)
             (HS, XT OR LP OSC                             TABLE 7-2:         CAPACITOR SELECTION
             CONFIGURATION)                                                   FOR CRYSTAL OSCILLATOR
                                                                              (PRELIMINARY)

                           OSC1                            Mode         Freq      OSC1(C1)     OSC2(C2)

      C1                             To internal logic

                   XTAL                                             LP  32 kHz    68 - 100 pF  68 - 100 pF
                                                                        200 kHz   15 - 30 pF   15 - 30 pF
                           OSC2  RF  SLEEP
                    RS
      C2 see Note                                                       100 kHz   68 - 150 pF 150 - 200 pF

                                                                    XT  2 MHz     15 - 30 pF   15 - 30 pF

                                     PIC16C55X(A)                       4 MHz     15 - 30 pF   15 - 30 pF

                                                                        8 MHz     15 - 30 pF   15 - 30 pF

See Table 7-1 and Table 7-2 for recommended                         HS  10 MHz    15 - 30 pF   15 - 30 pF
values of C1 and C2.
                                                                        20 MHz    15 - 30 pF   15 - 30 pF
   Note: A series resistor may be required for
               AT strip cut crystals.                      Higher capacitance increases the stability of the oscillator
                                                           but also increases the start-up time. These values are for
FIGURE 7-3:  EXTERNAL CLOCK INPUT                          design guidance only. Rs may be required in HS mode as
             OPERATION (HS, XT OR LP                       well as XT mode to avoid overdriving crystals with low drive
             OSC CONFIGURATION)                            level specification. Since each crystal has its own
                                                           characteristics, the user should consult the crystal manu-
                                                           facturer for appropriate values of external components.

                                                           Crystals to be Characterized:

Clock from                       OSC1                      32.768 kHz   Epson C-001R32.768K-A   20 PPM
ext. system                              PIC16C55X(A)      100 kHz      Epson C-2 100.00 KC-P   20 PPM
                                                           200 kHz      STD XTL 200.000 kHz    20 PPM
       Open                      OSC2                      2.0 MHz      ECS ECS-20-S-2          50 PPM
                                                           4.0 MHz      ECS ECS-40-S-4          50 PPM
                                                           10.0 MHz     ECS ECS-100-S-4         50 PPM
                                                           20.0 MHz     ECS ECS-200-S-4         50 PPM

1997 Microchip Technology Inc.                       Preliminary                             DS40143B-page 37
PIC16C55X(A)

7.2.3 EXTERNAL CRYSTAL OSCILLATOR                                           7.2.4 RC OSCILLATOR
            CIRCUIT
                                                                            For timing insensitive applications the "RC" device
Either a pre-packaged oscillator can be used or a sim-                      option offers additional cost savings. The RC oscillator
ple oscillator circuit with TTL gates can be built.                         frequency is a function of the supply voltage, the
Prepackaged oscillators provide a wide operating                            resistor (Rext) and capacitor (Cext) values, and the
range and better stability. A well-designed crystal                         operating temperature. In addition to this, the oscillator
oscillator will provide good performance with TTL                           frequency will vary from unit to unit due to normal
gates. Two types of crystal oscillator circuits can be                      process parameter variation. Furthermore, the
used; one with series resonance, or one with parallel                       difference in lead frame capacitance between package
resonance.                                                                  types will also affect the oscillation frequency,
                                                                            especially for low Cext values. The user also needs to
Figure 7-4 shows implementation of a parallel resonant                      take into account variation due to tolerance of external
oscillator circuit. The circuit is designed to use the                      R and C components used. Figure 7-6 shows how the
fundamental frequency of the crystal. The 74AS04                            R/C combination is connected to the PIC16C55X. For
inverter performs the 180 phase shift that a parallel                      Rext values below 2.2 k, the oscillator operation may
oscillator requires. The 4.7 k resistor provides the                        become unstable, or stop completely. For very high
negative feedback for stability. The 10 k                                   Rext values (e.g., 1 M), the oscillator becomes
potentiometers bias the 74AS04 in the linear region.                        sensitive to noise, humidity and leakage. Thus, we
This could be used for external oscillator designs.                         recommend to keep Rext between 3 k and 100 k.

FIGURE 7-4:   EXTERNAL PARALLEL                                             Although the oscillator will operate with no external
              RESONANT CRYSTAL                                              capacitor (Cext = 0 pF), we recommend using values
              OSCILLATOR CIRCUIT                                            above 20 pF for noise and stability reasons. With no or
                                                                            small external capacitance, the oscillation frequency
+5V                                  To other  PIC16C55X(A)                 can vary dramatically due to changes in external
                                     Devices                                capacitances, such as PCB trace capacitance or
    10k                                                                     package lead frame capacitance.
           4.7k           74AS04
                                                                            The oscillator frequency, divided by 4, is available on
         74AS04                                CLKIN                        the OSC2/CLKOUT pin, and can be used for test
                                                                            purposes or to synchronize other logic (Figure 3-2 for
                                  10k                                       waveform).
                 XTAL
10k                                                                         FIGURE 7-6: RC OSCILLATOR MODE

          20 pF 20 pF                                                             VDD        PIC16C55X(A)
                                                                             Rext
Figure 7-5 shows a series resonant oscillator circuit.                                 OSC1
This circuit is also designed to use the fundamental                        Cext
frequency of the crystal. The inverter performs a 180                       VDD                           Internal Clock
phase shift in a series resonant oscillator circuit. The
330  resistors provide the negative feedback to bias                                   Fosc/4 OSC2/CLKOUT
the inverters in their linear region.

FIGURE 7-5:   EXTERNAL SERIES
              RESONANT CRYSTAL
              OSCILLATOR CIRCUIT

330               330                            To other
74AS04            74AS04                          Devices

                                                              PIC16C55X(A)
                                       74AS04

                                                                CLKIN

        0.1 F

        XTAL

DS40143B-page 38                                      Preliminary                      1997 Microchip Technology Inc.
7.3 Reset                                                         PIC16C55X(A)

The PIC16C55X(A) differentiates between various          on MCLR reset during SLEEP. They are not affected by
kinds of reset:                                          a WDT wake-up, since this is viewed as the resumption
                                                         of normal operation. TO and PD bits are set or cleared
a) Power-on reset (POR)                                  differently in different reset situations as indicated in
b) MCLR reset during normal operation                    Table 7-4. These bits are used in software to determine
c) MCLR reset during SLEEP                               the nature of the reset. See Table 7-6 for a full descrip-
d) WDT reset (normal operation)                          tion of reset states of all registers.
e) WDT wake-up (SLEEP)
                                                         A simplified block diagram of the on-chip reset circuit is
Some registers are not affected in any reset condition;  shown in Figure 7-7.
their status is unknown on POR and unchanged in any
other reset. Most other registers are reset to a "reset  The MCLR reset path has a noise filter to detect and
state" on Power-on reset, on MCLR or WDT reset and       ignore small pulses. See Table 10-4 for pulse width
                                                         specification.

FIGURE 7-7:  SIMPLIFIED BLOCK DIAGRAM OF ON-CHIP RESET CIRCUIT

                              External
                                Reset

MCLR/         WDT             SLEEP
VPP Pin      Module    WDT

  VDD                  Time-out
                       Reset

             VDD rise
              detect

                             Power-on Reset

                                                                                S

         OST/PWRT                                                                       Chip_Reset
                        OST                                                        Q

                       10-bit Ripple-counter                                    R

OSC1/                PWRT
CLKIN                     10-bit Ripple-counter

  Pin

         On-chip(1)
          RC OSC

                                                 Enable PWRT                    See Table 7-3 for time-out situations.
                                                 Enable OST

Note 1: This is a separate oscillator from the RC oscillator of the CLKIN pin.

1997 Microchip Technology Inc.                 Preliminary                       DS40143B-page 39
PIC16C55X(A)                                                  7.4.3 OSCILLATOR START-UP TIMER (OST)

7.4 Power-on Reset (POR), Power-up                            The Oscillator Start-Up Timer (OST) provides a 1024
          Timer (PWRT), Oscillator Start-up                   oscillator cycle (from OSC1 input) delay after the
          Timer (OST)                                         PWRT delay is over. This ensures that the crystal
                                                              oscillator or resonator has started and stabilized.
7.4.1 POWER-ON RESET (POR)
                                                              The OST time-out is invoked only for XT, LP and HS
A Power-on Reset pulse is generated on-chip when              modes and only on power-on reset or wake-up from
VDD rise is detected (in the range of 1.6 V 1.8 V). To      SLEEP.
take advantage of the POR, just tie the MCLR pin
directly (or through a resistor) to VDD. This will eliminate  7.4.4 TIME-OUT SEQUENCE
external RC components usually needed to create
Power-on Reset. A maximum rise time for VDD is                On power-up, the time-out sequence is as follows: First
required. See Electrical Specifications for details.          PWRT time-out is invoked after POR has expired, then
                                                              OST is activated. The total time-out will vary based on
The POR circuit does not produce internal reset when          oscillator configuration and PWRTE bit status. For
VDD declines.                                                 example, in RC mode with PWRTE bit erased (PWRT
                                                              disabled), there will be no time-out at all. Figure 7-8,
When the device starts normal operation (exits the            Figure 7-9 and Figure 7-10 depict time-out sequences.
reset condition), device operating parameters (voltage,
frequency, temperature, etc.) must be met to ensure           Since the time-outs occur from the POR pulse, if MCLR
operation. If these conditions are not met, the device        is kept low long enough, the time-outs will expire. Then
must be held in reset until the operating conditions are      bringing MCLR high will begin execution immediately
met.                                                          (see Figure 7-9). This is useful for testing purposes or
                                                              to synchronize more than one PIC16C55X device oper-
For additional information, refer to Application Note         ating in parallel.
AN607 "Power-up Trouble Shooting".
                                                              Table 7-5 shows the reset conditions for some special
7.4.2 POWER-UP TIMER (PWRT)                                   registers, while Table 7-6 shows the reset conditions for
                                                              all the registers.
The Power-up Timer provides a fixed 72 ms (nominal)
time-out on power-up only, from POR. The Power-up
Timer operates on an internal RC oscillator. The chip is
kept in reset as long as PWRT is active. The PWRT
delay allows the VDD to rise to an acceptable level. A
configuration bit, PWRTE can disable (if set) or enable
(if cleared or programmed) the Power-up Timer. The
Power-Up Time delay will vary from chip to chip and
due to VDD, temperature and process variation. See
DC parameters for details.

DS40143B-page 40  Preliminary                                  1997 Microchip Technology Inc.
                                                                       PIC16C55X(A)

7.4.5 POWER CONTROL/STATUS REGISTER
            (PCON)

Bit1 is POR (Power-on-reset). It is a `0' on
power-on-reset and unaffected otherwise. The user
must write a `1' to this bit following a power-on-reset.
On a subsequent reset if POR is `0', it will indicate that
a power-on-reset must have occurred (VDD may have
gone too low).

TABLE 7-3: TIME-OUT IN VARIOUS SITUATIONS

                                                             Power-up             Wake-up from
                                                                                       SLEEP
Oscillator Configuration               PWRTE = 0                       PWRTE = 1
                                  72 ms + 1024 TOSC                    1024 TOSC    1024 TOSC
         XT, HS, LP                                                                       --
               RC                         72 ms                              --

TABLE 7-4: STATUS BITS AND THEIR SIGNIFICANCE

POR  TO  PD

0    1   1                        Power-on-reset

0    0   X                        Illegal, TO is set on POR

0    X   0                        Illegal, PD is set on POR

1    0   1                        WDT Reset

1    0   0                        WDT Wake-up

1    1   1                        MCLR reset during normal operation

1    1   0                        MCLR reset during SLEEP

1997 Microchip Technology Inc.             Preliminary                          DS40143B-page 41
PIC16C55X(A)

TABLE 7-5: INITIALIZATION CONDITION FOR SPECIAL REGISTERS

Condition                                Program         STATUS         PCON
                                         Counter         Register      Register

Power-on Reset                                000h       0001 1xxx     ---- --0-

MCLR reset during normal operation            000h       0001 1uuu     ---- --u-

MCLR reset during SLEEP                       000h       0001 0uuu     ---- --u-

WDT reset                                     000h       0000 1uuu     ---- --u-

WDT Wake-up                                   PC + 1     uuu0 0uuu     ---- --u-

Interrupt Wake-up from SLEEP             PC + 1(1)       uuu1 0uuu     ---- --u-

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

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

TABLE 7-6: INITIALIZATION CONDITION FOR REGISTERS

Register          Address     Power-on Reset   MCLR Reset during    Wake up from SLEEP
                                                 normal operation      through interrupt

                                              MCLR Reset during    Wake up from SLEEP
                                                 SLEEP                 through WDT time-out

                                              WDT Reset

W                 -           xxxx xxxx               uuuu uuuu     uuuu uuuu

INDF              00h               -                 -             -

TMR0              01h         xxxx xxxx               uuuu uuuu     uuuu uuuu

PCL               02h         0000 0000               0000 0000     PC + 1(2)

STATUS            03h         0001 1xxx               000q quuu(3)  uuuq quuu(3)

FSR               04h         xxxx xxxx               uuuu uuuu     uuuu uuuu

PORTA             05h         ---x xxxx               ---u uuuu     ---u uuuu

PORTB             06h         xxxx xxxx               uuuu uuuu     uuuu uuuu

PCLATH            0Ah         ---0 0000               ---0 0000     ---u uuuu

INTCON            0Bh         0000 000x               0000 000x     uuuu uuuu(1)

OPTION            81h         1111 1111               1111 1111     uuuu uuuu

TRISA             85h         ---1 1111               ---1 1111     ---u uuuu

TRISB             86h         1111 1111               1111 1111     uuuu uuuu

PCON              8Eh         ---- --0-               ---- --u-     ---- --u-

Legend: u = unchanged, x = unknown, - = unimplemented bit, reads 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 7-5 for reset value for specific condition.

DS40143B-page 42                       Preliminary                   1997 Microchip Technology Inc.
                                                      PIC16C55X(A)

FIGURE 7-8: 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 7-9: TIME-OUT SEQUENCE ON POWER-UP (MCLR NOT TIED TO VDD): CASE 2

VDD

               MCLR                      TPWRT
INTERNAL POR
                                                      TOST
PWRT TIME-OUT
  OST TIME-OUT

     INTERNAL RESET

FIGURE 7-10: TIME-OUT SEQUENCE ON POWER-UP (MCLR TIED TO VDD): CASE 3

                    VDD           TPWRT
                 MCLR
   INTERNAL POR                                 TOST

PWRT TIME-OUT
    OST TIME-OUT

INTERNAL RESET

1997 Microchip Technology Inc.  Preliminary               DS40143B-page 43
PIC16C55X(A)

FIGURE 7-11: EXTERNAL POWER-ON
                     RESET CIRCUIT (FOR SLOW
                     VDD POWER-UP)

VDD     VDD

     D       R

                     R1
                                  MCLR

                  C  PIC16C55X(A)

Note 1: External power-on reset circuit is required
            only if VDD power-up slope is too slow.
            The diode D helps discharge the capaci-
            tor quickly when VDD powers down.

       2: < 40 k is recommended to make sure
            that voltage drop across R does not vio-
            late the device's electrical specification.

       3: R1 = 100 to 1 k will limit any current
            flowing into MCLR from external capaci-
            tor C in the event of MCLR/VPP pin break-
            down due to Electrostatic Discharge
            (ESD) or Electrical Overstress (EOS).

DS40143B-page 44                        Preliminary       1997 Microchip Technology Inc.
7.5 Interrupts                                                          PIC16C55X(A)

The PIC16C55X(A) has 3 sources of interrupt:                   For external interrupt events, such as the INT pin or
External interrupt RB0/INT                                   PORTB change interrupt, the interrupt latency will be
TMR0 overflow interrupt                                      three or four instruction cycles. The exact latency
PortB change interrupts (pins RB7:RB4)                       depends when the interrupt event occurs (Figure 7-13).
The interrupt control register (INTCON) records                The latency is the same for one or two cycle
individual interrupt requests in flag bits. It also has        instructions. Once in the interrupt service routine the
individual and global interrupt enable bits.                   source(s) of the interrupt can be determined by polling
A global interrupt enable bit, GIE (INTCON<7>)                 the interrupt flag bits. The interrupt flag bit(s) must be
enables (if set) all un-masked interrupts or disables (if      cleared in software before re-enabling interrupts to
cleared) all interrupts. Individual interrupts can be          avoid multiple interrupt requests. Individual interrupt
disabled through their corresponding enable bits in            flag bits are set regardless of the status of their
INTCON register. GIE is cleared on reset.                      corresponding mask bit or the GIE bit.
The "return from interrupt" instruction, RETFIE, exits
the interrupt routine as well as sets the GIE bit, which         Note 1: Individual interrupt flag bits are set
re-enables RB0/INT interrupts.                                                regardless of the status of their
The INT pin interrupt, the RB port change interrupt and                       corresponding mask bit or the GIE bit.
the TMR0 overflow interrupt flags are contained in the
INTCON register.                                                        2: When an instruction that clears the GIE
When an interrupt is responded to, the GIE is cleared                         bit is executed, any interrupts that were
to disable any further interrupt, the return address is                       pending for execution in the next cycle
pushed into the stack and the PC is loaded with 0004h.                        are ignored. The CPU will execute a
Once in the interrupt service routine the source(s) of                        NOP in the cycle immediately following
the interrupt can be determined by polling the interrupt                      the instruction which clears the GIE bit.
flag bits. The interrupt flag bit(s) must be cleared in soft-                 The interrupts which were ignored are
ware before re-enabling interrupts to avoid RB0/INT                           still pending to be serviced when the GIE
recursive interrupts.                                                         bit is set again.

FIGURE 7-12: INTERRUPT LOGIC                                                    Wake-up
                                                                                (If in SLEEP mode)
                                T0IF
                                T0IE                                                     Interrupt
                                                                                         to CPU
                               INTF
                               INTE

                               RBIF
                               RBIE

                                 GIE

1997 Microchip Technology Inc.  Preliminary                  DS40143B-page 45
PIC16C55X(A)                                              7.5.2 TMR0 INTERRUPT

7.5.1 RB0/INT INTERRUPT                                   An overflow (FFh  00h) in the TMR0 register will
                                                          set the T0IF (INTCON<2>) bit. The interrupt can
An external interrupt on RB0/INT pin is edge triggered:   be enabled/disabled by setting/clearing T0IE
either rising if INTEDG bit (OPTION<6>) is set, or fall-  (INTCON<5>) bit. For operation of the Timer0 module,
ing if INTEDG bit is clear. When a valid edge appears     see Section 6.0.
on the RB0/INT pin, the INTF bit (INTCON<1>) is set.
This interrupt can be disabled by clearing the INTE       7.5.3 PORTB INTERRUPT
control bit (INTCON<4>). The INTF bit must be cleared
in software in the interrupt service routine before       An input change on PORTB <7:4> sets the RBIF
re-enabling this interrupt. The RB0/INT interrupt can     (INTCON<0>) bit. The interrupt can be enabled/dis-
wake-up the processor from SLEEP, if the INTE bit was     abled by setting/clearing the RBIE (INTCON<4>) bit.
set prior to going into SLEEP. The status of the GIE bit  For operation of PORTB (Section 5.2).
decides whether or not the processor branches to the
interrupt vector following wake-up. See Section 7.8 for    Note: If a change on the I/O pin should occur
details on SLEEP and Figure 7-16 for timing of                        when the read operation is being executed
wake-up from SLEEP through RB0/INT interrupt.                         (start of the Q2 cycle), then the RBIF inter-
                                                                      rupt flag may get set.

FIGURE 7-13: 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         1
                                        5                      Interrupt Latency 2
  INT pin
                              1

INTF flag
(INTCON<1>)
GIE bit
(INTCON<7>)
INSTRUCTION FLOW

PC                    PC                       PC+1           PC+1                        0004h     0005h
                  Inst (PC)                Inst (PC+1)         --                    Inst (0004h)  Inst (0005h)
Instruction                                Inst (PC)      Dummy Cycle               Dummy Cycle    Inst (0004h)
fetched

Instruction       Inst (PC-1)
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.

DS40143B-page 46                           Preliminary                                          1997 Microchip Technology Inc.
                                                                  PIC16C55X(A)

7.6 Context Saving During Interrupts                              7.7 Watchdog Timer (WDT)

During an interrupt, only the return PC value is saved            The watchdog timer is a free running on-chip RC oscil-
on the stack. Typically, users may wish to save key reg-          lator which does not require any external components.
isters during an interrupt, e.g. W register and STATUS            This RC oscillator is separate from the RC oscillator of
register. This will have to be implemented in software.           the CLKIN pin. That means that the WDT will run, even
                                                                  if the clock on the OSC1 and OSC2 pins of the device
Example 7-1 stores and restores the STATUS and W                  has been stopped, for example, by execution of a
registers. The user register, W_TEMP, must be defined             SLEEP instruction. During normal operation, a WDT
in both banks and must be defined at the same offset              time-out generates a device RESET. If the device is in
from the bank base address (i.e., W_TEMP is defined               SLEEP mode, a WDT time-out causes the device to
at 0x20 in Bank 0 and it must also be defined at 0xA0             wake-up and continue with normal operation. The WDT
in Bank 1). The user register, STATUS_TEMP, must be               can be permanently disabled by programming the con-
defined in Bank 0. The Example 7-1:                               figuration bit WDTE as clear (Section 7.1).

Stores the W register                                           7.7.1 WDT PERIOD
Stores the STATUS register in Bank 0
Executes the ISR code                                           The WDT has a nominal time-out period of 18 ms, (with
Restores the STATUS (and bank select bit                        no prescaler). The time-out periods vary with tempera-
                                                                  ture, VDD and process variations from part to part (see
   register)                                                      DC specs). If longer time-out periods are desired, a
Restores the W register                                         prescaler with a division ratio of up to 1:128 can be
                                                                  assigned to the WDT under software control by writing
EXAMPLE 7-1: SAVING THE STATUS AND                                to the OPTION register. Thus, time-out periods up to
                        W REGISTERS IN RAM                        2.3 seconds can be realized.

MOVWF W_TEMP        ;copy W to temp register,                     The CLRWDT and SLEEP instructions clear the WDT
                    ;could be in either bank                      and the postscaler, if assigned to the WDT, and prevent
                                                                  it from timing out and generating a device RESET.
SWAPF STATUS,W      ;swap status to be saved into W
                                                                  The TO bit in the STATUS register will be cleared upon
BCF     STATUS,RP0  ;change to bank 0 regardless                  a Watchdog Timer time-out.

                    ;of current bank                              7.7.2 WDT PROGRAMMING CONSIDERATIONS

MOVWF STATUS_TEMP   ;save status to bank 0                        It should also be taken in account that under worst case
                    ;register                                     conditions (VDD = Min., Temperature = Max., max.
                                                                  WDT prescaler) it may take several seconds before a
     :                                                            WDT time-out occurs.

     : (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

1997 Microchip Technology Inc.               Preliminary        DS40143B-page 47
PIC16C55X(A)

FIGURE 7-14: WATCHDOG TIMER BLOCK DIAGRAM

                                                         From TMR0 Clock Source
                                                         (Figure 6-6)

                                        0

                                           M                                                 Postscaler
                                        1U                                                            8
                     Watchdog               X
                       Timer                                                               8 - to -1 MUX

                                                                                                                           PS<2:0>

                        WDT                PSA
                     Enable Bit

                                                                                                                  To TMR0 (Figure 6-6)
                                                                                                                   PSA
                                                                                        0                       1

                                                                                           MUX

                                                                                                        WDT
                                                                                                      Time-out

Note: T0SE, T0CS, PSA, PS0-PS2 are bits in the OPTION register.

FIGURE 7-15: SUMMARY OF WATCHDOG TIMER REGISTERS

Address Name         Bit 7       Bit 6     Bit 5                                 Bit 4       Bit 3                  Bit 2   Bit 1         Bit 0
                                                                                 CP0       PWRTE                   WDTE    FOSC1         FOSC0
2007h  Config. bits  --          +         CP1                                   T0SE
81h    OPTION                                                                                PSA                    PS2      PS1           PS0
                     RBPU INTEDG T0CS

Legend: Shaded cells are not used by the Watchdog Timer.
            -- = Unimplemented location, read as `0'.
            + = Reserved for future use.

DS40143B-page 48                        Preliminary                                                                1997 Microchip Technology Inc.
                                                                              PIC16C55X(A)

7.8 Power-Down Mode (SLEEP)                                     The first event will cause a device reset. The two latter
                                                                events are considered a continuation of program exe-
The Power-down mode is entered by executing a                   cution. The TO and PD bits in the STATUS register can
SLEEP instruction.                                              be used to determine the cause of device reset. PD
                                                                bit, which is set on power-up is cleared when SLEEP is
If enabled, the Watchdog Timer will be cleared but              invoked. TO bit is cleared if WDT Wake-up occurred.
keeps running, the PD bit in the STATUS register is
cleared, the TO bit is set, and the oscillator driver is        When the SLEEP instruction is being executed, the
turned off. The I/O ports maintain the status they had,         next instruction (PC + 1) is pre-fetched. For the device
before SLEEP was executed (driving high, low, or                to wake-up through an interrupt event, the correspond-
hi-impedance).                                                  ing interrupt enable bit must be set (enabled). Wake-up
                                                                is regardless of the state of the GIE bit. If the GIE bit is
For lowest current consumption in this mode, all I/O            clear (disabled), the device continues execution at the
pins should be either at VDD, or VSS, with no external          instruction after the SLEEP instruction. If the GIE bit is
circuitry drawing current from the I/O pin. I/O pins that       set (enabled), the device executes the instruction after
are hi-impedance inputs should be pulled high or low            the SLEEP instruction and then branches to the inter-
externally to avoid switching currents caused by float-         rupt address (0004h). In cases where the execution of
ing inputs. The T0CKI input should also be at VDD or            the instruction following SLEEP is not desirable, the
VSS for lowest current consumption. The contribution            user should have an NOP after the SLEEP instruction.
from on chip pull-ups on PORTB should be considered.

The MCLR pin must be at a logic high level (VIHMC).             Note:         If the global interrupts are disabled (GIE is
                                                                              cleared), but any interrupt source has both
Note:            It should be noted that a RESET generated                    its interrupt enable bit and the correspond-
                 by a WDT time-out does not drive MCLR                        ing interrupt flag bits set, the device will
                 pin low.                                                     immediately wakeup from sleep. The sleep
                                                                              instruction is completely executed.

7.8.1 WAKE-UP FROM SLEEP                                        The WDT is cleared when the device wakes-up from
                                                                sleep, regardless of the source of wake-up.
The device can wake-up from SLEEP through one of
the following events:
1. External reset input on MCLR pin
2. Watchdog Timer Wake-up (if WDT was enabled)
3. Interrupt from RB0/INT pin or RB Port change

FIGURE 7-16: 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                                                    TOST(2)
CLKOUT(4)

         INT pin                                                              Interrupt Latency
                                                                                    (Note 2)
INTF flag
(INTCON<1>)                                       Processor in
                                                     SLEEP
GIE bit
(INTCON<7>)

INSTRUCTION FLOW

             PC   PC                  PC+1        PC+2               PC+2           PC + 2          0004h        0005h
                                    Inst(PC + 1)                Inst(PC + 2)  Dummy cycle        Inst(0004h)  Inst(0005h)
Instruction       Inst(PC) = SLEEP  SLEEP                       Inst(PC + 1)                     Dummy cycle  Inst(0004h)
fetched               Inst(PC - 1)

Instruction
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.

1997 Microchip Technology Inc.                                Preliminary                                   DS40143B-page 49
PIC16C55X(A)                                            7.11 In-Circuit Serial ProgrammingTM

7.9 Code Protection                                     The PIC16C55X(A) microcontrollers can be serially
                                                        programmed while in the end application circuit. This is
If the code protection bit(s) have not been             simply done with two lines for clock and data, and three
programmed, the on-chip program memory can be           other lines for power, ground, and the programming
read out for verification purposes.                     voltage. This allows customers to manufacture boards
                                                        with unprogrammed devices, and then program the
   Note: Microchip does not recommend code              microcontroller just before shipping the product. This
               protecting windowed devices.             also allows the most recent firmware or a custom
                                                        firmware to be programmed.
7.10 ID Locations
                                                        The device is placed into a program/verify mode by
Four memory locations (2000h-2003h) are designated      holding the RB6 and RB7 pins low while raising the
as ID locations where the user can store checksum or    MCLR (VPP) pin from VIL to VIHH (see programming
other code-identification numbers. These locations are  specification). RB6 becomes the programming clock
not accessible during normal execution but are          and RB7 becomes the programming data. Both RB6
readable and writable during program/verify. Only the   and RB7 are Schmitt Trigger inputs in this mode.
least significant 4 bits of the ID locations are used.
                                                        After reset, to place the device into programming/verify
                                                        mode, the program counter (PC) is at location 00h. A
                                                        6-bit command is then supplied to the device.
                                                        Depending on the command, 14-bits of program data
                                                        are then supplied to or from the device, depending if the
                                                        command was a load or a read. For complete details of
                                                        serial programming, please refer to the PIC16C6X/7X
                                                        Programming Specifications (Literature #DS30228).

                                                        A typical in-circuit serial programming connection is
                                                        shown in Figure 7-17.

                                                        FIGURE 7-17: TYPICAL IN-CIRCUIT SERIAL
                                                                             PROGRAMMING
                                                                             CONNECTION

                                                        External   To Normal
                                                        Connector  Connections
                                                        Signals
                                                                                PIC16C55X(A)
                                                              +5V
                                                               0V               VDD
                                                                                VSS
                                                              VPP               MCLR/VPP

                                                             CLK                RB6

                                                        Data I/O                RB7

                                                                                             VDD

                                                                   To Normal
                                                                   Connections

DS40143B-page 50  Preliminary                                       1997 Microchip Technology Inc.
                                                                         PIC16C55X(A)

8.0 INSTRUCTION SET SUMMARY                                       The instruction set is highly orthogonal and is grouped
                                                                  into three basic categories:
Each PIC16C55X(A) instruction is a 14-bit word
divided into an OPCODE which specifies the instruc-                Byte-oriented operations
tion type and one or more operands which further spec-
ify the operation of the instruction. The PIC16C55X(A)             Bit-oriented operations
instruction set summary in Table 8-2 lists byte-ori-
ented, bit-oriented, and literal and control opera-                Literal and control operations
tions. Table 8-1 shows the opcode field descriptions.
                                                                  All instructions are executed within one single
For byte-oriented instructions, 'f' represents a file             instruction cycle, unless a conditional test is true or the
register designator and 'd' represents a destination              program counter is changed as a result of an
designator. The file register designator specifies which          instruction. In this case, the execution takes two
file register is to be used by the instruction.                   instruction cycles with the second cycle executed as a
                                                                  NOP. One instruction cycle consists of four oscillator
The destination designator specifies where the result of          periods. Thus, for an oscillator frequency of 4 MHz, the
the operation is to be placed. If 'd' is zero, the result is      normal instruction execution time is 1 s. If a
placed in the W register. If 'd' is one, the result is placed     conditional test is true or the program counter is
in the file register specified in the instruction.                changed as a result of an instruction, the instruction
                                                                  execution time is 2 s.
For bit-oriented instructions, 'b' represents a bit field
designator which selects the number of the bit affected           Table 8-1 lists the instructions recognized by the
by the operation, while 'f' represents the number of the          MPASM assembler.
file in which the bit is located.
                                                                  Figure 8-1 shows the three general formats that the
For literal and control operations, 'k' represents an             instructions can have.
eight or eleven bit constant or literal value.
                                                                  Note:  To maintain upward compatibility with
TABLE 8-1: OPCODE FIELD                                                  future PICmicroTM products, do not use the
                     DESCRIPTIONS                                        OPTION and TRIS instructions.

                                                                  All examples use the following format to represent a
                                                                  hexadecimal number:

Field  Description                                                0xhh

   f Register file address (0x00 to 0x7F)                         where h signifies a hexadecimal digit.
   W Working register (accumulator)
   b Bit address within an 8-bit file register                    FIGURE 8-1: GENERAL FORMAT FOR
   k Literal field, constant data or label                                             INSTRUCTIONS
   x Don't care location (= 0 or 1)
                                                                  Byte-oriented file register operations
          The assembler will generate code with x = 0. It is the
          recommended form of use for compatibility with all      13                8 76                              0
          Microchip software tools.
   d Destination select; d = 0: store result in W,                       OPCODE     d                     f (FILE #)
          d = 1: store result in file register f.
          Default is d = 1                                               d = 0 for destination W
label Label name                                                         d = 1 for destination f
TOS Top of Stack                                                        f = 7-bit file register address
  PC Program Counter
PCLATH Program Counter High Latch                                 Bit-oriented file register operations
GIE Global Interrupt Enable bit
WDT Watchdog Timer/Counter                                       13                10 9 7 6                          0
  TO Time-out bit
  PD Power-down bit                                                      OPCODE     b (BIT #) f (FILE #)
dest Destination either the W register or the specified
          register file location                                         b = 3-bit bit address
  [ ] Options                                                            f = 7-bit file register address
  ( ) Contents
   Assigned to                                                    Literal and control operations
< > Register bit field
   In the set of                                                  General           87                                     0
                                                                     13                                   k (literal)
italics User defined term (font is courier)                                 OPCODE

                                                                         k = 8-bit immediate value

                                                                  CALL and GOTO instructions only

                                                                  13     11 10                                        0

                                                                         OPCODE           k (literal)

                                                                         k = 11-bit immediate value

1997 Microchip Technology Inc.  Preliminary                                                             DS40143B-page 51
PIC16C55X(A)

TABLE 8-2: PIC16C55X(A) 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                                                        1 00    0101  dfff     ffff  Z       1,2
CLRF        f, d AND W with f                                1 00    0001  lfff     ffff  Z       2
CLRW                                                         1 00    0001  0xxx     xxxx  Z
COMF        f     Clear f                                    1 00    1001  dfff     ffff  Z       1,2
DECF                                                         1 00    0011  dfff     ffff  Z       1,2
DECFSZ      -     Clear W                                   1(2) 00  1011  dfff     ffff          1,2,3
INCF                                                         1 00    1010  dfff     ffff  Z       1,2
INCFSZ      f, d Complement f                               1(2) 00  1111  dfff     ffff          1,2,3
IORWF                                                        1 00    0100  dfff     ffff  Z       1,2
MOVF        f, d Decrement f                                 1 00    1000  dfff     ffff  Z       1,2
MOVWF                                                        1 00    0000  lfff     ffff
NOP         f, d Decrement f, Skip if 0                      1 00    0000  0xx0     0000  C       1,2
RLF                                                          1 00    1101  dfff     ffff  C       1,2
RRF         f, d Increment f                                 1 00    1100  dfff     ffff  C,DC,Z  1,2
SUBWF                                                        1 00    0010  dfff     ffff          1,2
SWAPF       f, d Increment f, Skip if 0                      1 00    1110  dfff     ffff  Z       1,2
XORWF                                                        1 00    0110  dfff     ffff
            f, d Inclusive OR W with f

            f, d Move f

            f     Move W to f

            -     No Operation

            f, d Rotate Left f through Carry

            f, d Rotate Right f through Carry

            f, d Subtract W from f

            f, d Swap nibbles in f

            f, d Exclusive OR W with f

BIT-ORIENTED FILE REGISTER OPERATIONS

BCF         f, b Bit Clear f                                1 01 00bb bfff ffff                   1,2
BSF         f, b Bit Set f
BTFSC       f, b Bit Test f, Skip if Clear                  1 01 01bb bfff ffff                   1,2
BTFSS       f, b Bit Test f, Skip if Set
                                               1 (2) 01 10bb bfff ffff                            3

                                               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
                  AND literal with W                        1 11 1001 kkkk kkkk Z
ANDLW       k     Call subroutine                           2 10 0kkk kkkk kkkk
                  Clear Watchdog Timer                      1 00 0000 0110 0100 TO,PD
CALL        k     Go to address                             2 10 1kkk kkkk kkkk
                  Inclusive OR literal with W               1 11 1000 kkkk kkkk Z
CLRWDT -          Move literal to W                         1 11 00xx kkkk kkkk
                  Return from interrupt                     2 00 0000 0000 1001
GOTO        k     Return with literal in W                  2 11 01xx kkkk kkkk
                  Return from Subroutine                    2 00 0000 0000 1000
IORLW       k     Go into standby mode                      1 00 0000 0110 0011 TO,PD
                  Subtract W from literal                   1 11 110x kkkk kkkk C,DC,Z
MOVLW k           Exclusive OR literal with W               1 11 1010 kkkk kkkk Z

RETFIE      -

RETLW       k

RETURN -

SLEEP       -

SUBLW       k

XORLW       k

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
        2:  device, the data will be written back with a '0'.
        3:  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.
            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.

DS40143B-page 52                               Preliminary                  1997 Microchip Technology Inc.
                                                                                  PIC16C55X(A)

8.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:                                                       Encoding:
Description:           11 111x kkkk kkkk                        Description:           11 1001 kkkk kkkk

Words:            The contents of the W register are            Words:            The contents of W register are
Cycles:           added to the eight bit literal 'k' and the    Cycles:           AND'ed with the eight bit literal 'k'. The
Example           result is placed in the W register.           Example           result is placed in the W register.
                  1                                                               1
                  1                                                               1

                    ADDLW 0x15                                                      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:                                                         Syntax:
Operands:         [ label ] ADDWF f,d                           Operands:         [ label ] ANDWF f,d

Operation:        0  f  127                                     Operation:        0  f  127
Status Affected:  d  [0,1]                                      Status Affected:  d  [0,1]
Encoding:         (W) + (f)  (dest)                             Encoding:         (W) .AND. (f)  (dest)
Description:      C, DC, Z                                      Description:      Z

Words:                 00 0111 dfff ffff                        Words:                 00 0101 dfff ffff
Cycles:                                                         Cycles:
Example           Add the contents of the W register            Example           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'.

                  1                                                               1

                  1                                                               1

                    ADDWF FSR, 0                                                    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.  Preliminary                                     DS40143B-page 53
PIC16C55X(A)

BCF               Bit Clear f                          BTFSC             Bit Test, Skip if Clear
Syntax:                                                Syntax:
Operands:         [ label ] BCF f,b                    Operands:         [ label ] BTFSC f,b
                                                       Operation:
Operation:        0  f  127                            Status Affected:  0  f  127
Status Affected:  0b7                                  Encoding:         0b7
Encoding:                                              Description:
Description:      0  (f)                                              skip if (f) = 0
Words:                                                 Words:
Cycles:           None                                 Cycles:           None
Example                                                Example
                     01 00bb bfff ffff                                      01      10bb      bfff ffff

                  Bit 'b' in register 'f' is cleared.                    If bit 'b' in register 'f' is '0' then the next
                                                                         instruction is skipped.
                  1                                                      If bit 'b' is '0' then the next instruction
                                                                         fetched during the current instruction
                  1                                                      execution is discarded, and a NOP is
                                                                         executed instead, making this a
                     BCF       FLAG_REG, 7                               two-cycle instruction.

                  Before Instruction                                     1
                               FLAG_REG = 0xC7
                                                                         1(2)
                  After Instruction
                               FLAG_REG = 0x47

                                                                            HERE    BTFSC    FLAG,1
                                                                            FALSE            PROCESS_CODE
                                                                            TRUE    GOTO

                                                                                    
                                                                                    
                                                                                    

                                                                         Before Instruction
                                                                                      PC = address HERE

                                                                         After Instruction
                                                                                      if FLAG<1> = 0,
                                                                                      PC = address TRUE
                                                                                      if FLAG<1>=1,
                                                                                      PC = address FALSE

BSF               Bit Set f
Syntax:
Operands:         [ label ] BSF f,b

Operation:        0  f  127
Status Affected:  0b7
Encoding:
Description:      1  (f)
Words:
Cycles:           None
Example
                     01 01bb bfff ffff

                  Bit 'b' in register 'f' is set.

                  1

                  1

                     BSF       FLAG_REG, 7

                  Before Instruction
                               FLAG_REG = 0x0A

                  After Instruction
                               FLAG_REG = 0x8A

DS40143B-page 54                                       Preliminary             1997 Microchip Technology Inc.
                                                                                     PIC16C55X(A)

BTFSS             Bit Test f, Skip if Set                          CLRF              Clear f
Syntax:                                                            Syntax:
Operands:         [ label ] BTFSS f,b                              Operands:         [ label ] CLRF f
                                                                   Operation:
Operation:        0  f  127                                                          0  f  127
Status Affected:  0b<7                                             Status Affected:
Encoding:                                                          Encoding:         00h  (f)
Description:      skip if (f) = 1                               Description:      1Z

Words:            None                                             Words:            Z
Cycles:                                                            Cycles:
Example              01 11bb bfff ffff                             Example              00 0001 1fff ffff

                  If bit 'b' in register 'f' is '1' then the next                    The contents of register 'f' are cleared
                  instruction is skipped.                                            and the Z bit is set.
                  If bit 'b' is '1', then the next instruction
                  fetched during the current instruction                             1
                  execution, is discarded and a NOP is
                  executed instead, making this a                                    1
                  two-cycle instruction.
                                                                                        CLRF     FLAG_REG

                  1                                                                  Before Instruction

                  1(2)                                                                        FLAG_REG = 0x5A

                     HERE    BTFSC    FLAG,1                                         After Instruction
                     FALSE   GOTO     PROCESS_CODE
                     TRUE                                                                    FLAG_REG = 0x00
                             
                                                                                             Z          =1

                  Before Instruction
                               PC = address HERE

                  After Instruction
                               if FLAG<1> = 0,
                               PC = address FALSE
                               if FLAG<1> = 1,
                               PC = address TRUE

CALL              Call Subroutine                                  CLRW              Clear W
Syntax:                                                            Syntax:           [ label ] CLRW
Operands:         [ label ] CALL k                                 Operands:
Operation:                                                         Operation:        None
                  0  k  2047                                                         00h  (W)
Status Affected:                                                   Status Affected:  1Z
Encoding:         (PC)+ 1 TOS,                                     Encoding:         Z
Description:      k  PC<10:0>,                                     Description:
                  (PCLATH<4:3>)  PC<12:11>                                                00 0001 0xxx xxxx
Words:                                                             Words:
Cycles:           None                                             Cycles:           W register is cleared. Zero bit (Z) is
Example                                                            Example           set.
                       10 0kkk kkkk kkkk                                             1

                  Call Subroutine. First, return address                             1
                  (PC+1) is pushed onto the stack. The
                  eleven bit immediate address is loaded                               CLRW
                  into PC bits <10:0>. The upper bits of
                  the PC are loaded from PCLATH.                                     Before Instruction
                  CALL is a two-cycle instruction.                                                W = 0x5A

                  1                                                                  After Instruction
                                                                                                  W = 0x00
                  2                                                                               Z=1

                    HERE CALL THERE

                  Before Instruction
                               PC = Address HERE

                  After Instruction
                               PC = Address THERE
                               TOS = Address HERE+1

1997 Microchip Technology Inc.           Preliminary                                                  DS40143B-page 55
PIC16C55X(A)

CLRWDT            Clear Watchdog Timer                     DECF              Decrement f
Syntax:                                                    Syntax:
Operands:         [ label ] CLRWDT                         Operands:         [ label ] DECF f,d
Operation:
                  None                                     Operation:        0  f  127
Status Affected:                                           Status Affected:  d  [0,1]
Encoding:         00h  WDT                                 Encoding:
Description:      0  WDT prescaler,                        Description:      (f) - 1  (dest)
                  1  TO
Words:            1  PD                                    Words:            Z
Cycles:                                                    Cycles:
Example           TO, PD                                   Example              00 0011 dfff ffff

                     00 0000 0110 0100                                       Decrement register 'f'. If 'd' is 0 the
                                                                             result is stored in the W register. If 'd'
                  CLRWDT instruction resets the                              is 1 the result is stored back in register
                  Watchdog Timer. It also resets the                         'f'.
                  prescaler of the WDT. Status bits TO
                  and PD are set.                                            1

                                                                             1

                  1                                                             DECF CNT, 1

                  1                                                          Before Instruction

                     CLRWDT                                                           CNT =           0x01
                                                                                                      0
                  Before Instruction                                                  Z            =
                                                                                                      0x00
                             WDT counter =   ?                               After Instruction        1

                  After Instruction          0x00                                     CNT =
                                             0
                             WDT counter =   1                                        Z            =
                                             1
                             WDT prescaler=

                             TO          =

                             PD          =

COMF              Complement f                             DECFSZ            Decrement f, Skip if 0
Syntax:                                                    Syntax:
Operands:         [ label ] COMF f,d                       Operands:         [ label ] DECFSZ f,d

Operation:        0  f  127                                Operation:        0  f  127
Status Affected:  d  [0,1]                                 Status Affected:  d  [0,1]
Encoding:                                                  Encoding:
Description:      (f)  (dest)                              Description:      (f) - 1  (dest);      skip if result = 0

Words:            Z                                        Words:            None
Cycles:                                                    Cycles:
Example              00 1001 dfff ffff                     Example              00 1011 dfff ffff

                  The contents of register 'f' are                           The contents of register 'f' are
                  complemented. If 'd' is 0 the result is                    decremented. If 'd' is 0 the result is
                  stored in W. If 'd' is 1 the result is                     placed in the W register. If 'd' is 1 the
                  stored back in register 'f'.                               result is placed back in register 'f'.
                                                                             If the result is 0, the next instruction,
                  1                                                          which is already fetched, is discarded. A
                                                                             NOP is executed instead making it a
                  1                                                          two-cycle instruction.

                     COMF        REG1,0                                      1

                  Before Instruction                                         1(2)

                             REG1 =      0x13                                   HERE     DECFSZ       CNT, 1
                                                                                                      LOOP
                  After Instruction      0x13                                            GOTO
                                         0xEC
                             REG1 =                                             CONTINUE
                                                                                                
                             W        =                                                         

                                                                             Before Instruction
                                                                                  PC = address HERE

                                                                             After Instruction
                                                                                  CNT = CNT - 1
                                                                                  if CNT = 0,
                                                                                  PC = address CONTINUE
                                                                                  if CNT  0,
                                                                                  PC = address HERE+1

DS40143B-page 56                               Preliminary                         1997 Microchip Technology Inc.
                                                                               PIC16C55X(A)

GOTO              Unconditional Branch                       INCFSZ            Increment f, Skip if 0
Syntax:                                                      Syntax:
Operands:         [ label ] GOTO k                           Operands:         [ label ] INCFSZ f,d
Operation:
                  0  k  2047                                 Operation:        0  f  127
Status Affected:  k  PC<10:0>                                Status Affected:  d  [0,1]
Encoding:         PCLATH<4:3>  PC<12:11>                     Encoding:
Description:                                                 Description:      (f) + 1  (dest), skip if result = 0
                  None
Words:                                                       Words:            None
Cycles:                10 1kkk kkkk kkkk                     Cycles:
Example                                                      Example              00 1111 dfff ffff
                  GOTO is an unconditional branch. The
                  eleven bit immediate value is loaded                         The contents of register 'f' are
                  into PC bits <10:0>. The upper bits of                       incremented. If 'd' is 0 the result is
                  PC are loaded from PCLATH<4:3>.                              placed in the W register. If 'd' is 1 the
                  GOTO is a two-cycle instruction.                             result is placed back in register 'f'.
                                                                               If the result is 0, the next instruction,
                  1                                                            which is already fetched, is discarded.
                                                                               A NOP is executed instead making it
                  2                                                            a two-cycle instruction.

                    GOTO THERE                                                 1

                  After Instruction                                            1(2)
                               PC = Address THERE
                                                                                  HERE    INCFSZ        CNT, 1
                                                                                                       LOOP
                                                                                          GOTO

                                                                                  CONTINUE

                                                                                          

                                                                                          

                                                                               Before Instruction
                                                                                    PC = address HERE

                                                                               After Instruction
                                                                                    CNT = CNT + 1
                                                                                    if CNT= 0,
                                                                                    PC = address CONTINUE
                                                                                    if CNT 0,
                                                                                    PC = address HERE +1

INCF              Increment f                                IORLW             Inclusive OR Literal with W
Syntax:                                                      Syntax:           [ label ] IORLW k
Operands:         [ label ] INCF f,d                         Operands:         0  k  255
                                                             Operation:        (W) .OR. k  (W)
Operation:        0  f  127                                  Status Affected:  Z
Status Affected:  d  [0,1]                                   Encoding:
Encoding:                                                    Description:           11 1000 kkkk kkkk
Description:      (f) + 1  (dest)
                                                             Words:            The contents of the W register is
Words:            Z                                          Cycles:           OR'ed with the eight bit literal 'k'. The
Cycles:                                                      Example           result is placed in the W register.
Example              00 1010 dfff ffff
                                                                               1
                  The contents of register 'f' are
                  incremented. If 'd' is 0 the result is                       1
                  placed in the W register. If 'd' is 1 the
                  result is placed back in register 'f'.                         IORLW 0x35

                  1                                                            Before Instruction
                                                                                            W = 0x9A
                  1
                                                                               After Instruction
                     INCF CNT, 1                                                            W = 0xBF
                                                                                            Z=1
                  Before Instruction

                     CNT =               0xFF
                                         0
                     Z                =
                                         0x00
                  After Instruction      1

                     CNT =

                     Z                =

1997 Microchip Technology Inc.               Preliminary                                    DS40143B-page 57
PIC16C55X(A)

IORWF             Inclusive OR W with f                           MOVF              Move f
Syntax:                                                           Syntax:
Operands:         [ label ] IORWF f,d                             Operands:         [ label ] MOVF f,d
                                                                  Operation:
Operation:        0  f  127                                       Status Affected:  0  f  127
Status Affected:  d  [0,1]                                        Encoding:         d  [0,1]
Encoding:                                                         Description:      (f)  (dest)
Description:      (W) .OR. (f)  (dest)                                              Z
                                                                  Words:
Words:            Z                                               Cycles:                00 1000 dfff ffff
Cycles:                                                           Example
Example              00 0100 dfff ffff                                              The contents of register f is moved to
                                                                                    a destination dependant upon the
                  Inclusive OR the W register with                                  status of d. If d = 0, destination is W
                  register 'f'. If 'd' is 0 the result is placed                    register. If d = 1, the destination is file
                  in the W register. If 'd' is 1 the result is                      register f itself. d = 1 is useful to test a
                  placed back in register 'f'.                                      file register since status flag Z is
                                                                                    affected.
                  1
                                                                                    1
                  1
                                                                                    1
                     IORWF           RESULT, 0
                                                                                      MOVF FSR, 0
                  Before Instruction
                                                                                    After Instruction
                            RESULT =     0x13                                                    W = value in FSR register
                                         0x91                                                    Z =1
                            W         =
                                         0x13
                  After Instruction      0x93
                                         1
                            RESULT =

                            W         =

                            Z         =

MOVLW             Move Literal to W                               MOVWF             Move W to f
Syntax:           [ label ] MOVLW k                               Syntax:
Operands:         0  k  255                                       Operands:         [ label ] MOVWF f
Operation:        k  (W)                                          Operation:
Status Affected:  None                                            Status Affected:  0  f  127
Encoding:                                                         Encoding:
Description:           11 00xx kkkk kkkk                          Description:      (W)  (f)

Words:            The eight bit literal 'k' is loaded into W      Words:            None
Cycles:           register. The don't cares will assemble         Cycles:
Example           as 0's.                                         Example              00 0000 1fff ffff
                  1
                  1                                                                 Move data from W register to register
                                                                                    'f'.
                    MOVLW 0x5A
                                                                                    1
                  After Instruction
                               W = 0x5A                                             1

                                                                                       MOVWF     OPTION

                                                                                    Before Instruction

                                                                                              OPTION =     0xFF
                                                                                                           0x4F
                                                                                              W         =
                                                                                                           0x4F
                                                                                    After Instruction      0x4F

                                                                                              OPTION =

                                                                                              W         =

DS40143B-page 58                                Preliminary                            1997 Microchip Technology Inc.
                                                                           PIC16C55X(A)

NOP               No Operation      0xx0  0000           RETFIE            Return from Interrupt
Syntax:           [ label ] NOP                          Syntax:
Operands:         None                                   Operands:         [ label ] RETFIE
Operation:        No operation                           Operation:
Status Affected:  None                                                     None
Encoding:                                                Status Affected:
Description:           00 0000                           Encoding:         TOS  PC,
Words:            No operation.                          Description:      1  GIE
Cycles:           1                                                        None
Example           1                                      Words:
                                                         Cycles:                00 0000 0000 1001
                    NOP                                  Example
                                                                           Return from Interrupt. Stack is POPed
                                                                           and Top of Stack (TOS) is loaded in
                                                                           the PC. Interrupts are enabled by
                                                                           setting Global Interrupt Enable bit,
                                                                           GIE (INTCON<7>). This is a two-cycle
                                                                           instruction.

                                                                           1

                                                                           2

                                                                             RETFIE

                                                                           After Interrupt
                                                                                        PC = TOS
                                                                                        GIE = 1

OPTION            Load Option Register                   RETLW             Return with Literal in W

Syntax:           [ label ] OPTION                       Syntax:           [ label ] RETLW k

Operands:         None                                   Operands:         0  k  255

Operation:        (W)  OPTION                            Operation:        k  (W);
                                                                           TOS  PC
Status Affected: None

Encoding:            00 0000 0110 0010                   Status Affected: None

Description:      The contents of the W register are     Encoding:            11 01xx kkkk kkkk
                  loaded in the OPTION register. This
                  instruction is supported for code      Description:      The W register is loaded with the eight
                  compatibility with PIC16C5X products.                    bit literal 'k'. The program counter is
                  Since OPTION is a readable/writable                      loaded from the top of the stack (the
                  register, the user can directly                          return address). This is a two-cycle
                  address it.                                              instruction.

Words:            1                                      Words:            1

Cycles:           1                                      Cycles:           2

Example                                                  Example                  CALL TABLE  ;W contains table
                                                                                              ;offset value
                  To maintain upward compatibility                                           ;W now has table
                  with future PICmicroTM products,                                value
                  do not use this instruction.                                               ;W = offset
                                                                       TABLE                 ;Begin table
                                                                                  ADDWF PC    ;
                                                                                  RETLW k1
                                                                                  RETLW k2    ; End of table
                                                                                 
                                                                                 
                                                                                 
                                                                                  RETLW kn

                                                                           Before Instruction
                                                                                        W = 0x07

                                                                           After Instruction
                                                                                        W = value of k8

1997 Microchip Technology Inc.          Preliminary                                         DS40143B-page 59
PIC16C55X(A)

RETURN            Return from Subroutine                     RRF               Rotate Right f through Carry
Syntax:           [ label ] RETURN                           Syntax:
Operands:         None                                       Operands:         [ label ] RRF f,d
Operation:        TOS  PC
Status Affected:  None                                       Operation:        0  f  127
Encoding:                                                    Status Affected:  d  [0,1]
Description:           00 0000 0000 1000                     Encoding:
                                                             Description:      See description below
Words:            Return from subroutine. The stack is
Cycles:           POPed and the top of the stack (TOS)                         C
Example           is loaded into the program counter.
                  This is a two cycle instruction.                                00 1100 dfff ffff
                  1
                  2                                                            The contents of register 'f' are rotated
                                                                               one bit to the right through the Carry
                    RETURN                                                     Flag. If 'd' is 0 the result is placed in
                                                                               the W register. If 'd' is 1 the result is
                  After Interrupt                                              placed back in register 'f'.
                               PC = TOS
                                                                                       C          Register f

                                                             Words:            1
                                                             Cycles:
                                                             Example           1

                                                                                  RRF             REG1,0

                                                                               Before Instruction

                                                                                       REG1 =         1110 0110
                                                                                                      0
                                                                                       C           =
                                                                                                      1110 0110
                                                                               After Instruction      0111 0011
                                                                                                      0
                                                                                       REG1 =

                                                                                       W           =

                                                                                       C           =

RLF               Rotate Left f through Carry                SLEEP
Syntax:                                                      Syntax:
Operands:         [ label ] RLF f,d                          Operands:         [ label ] SLEEP
                                                             Operation:
Operation:        0  f  127                                                    None
Status Affected:  d  [0,1]                                   Status Affected:
Encoding:                                                    Encoding:         00h  WDT,
Description:      See description below                      Description:      0  WDT prescaler,
                                                                               1  TO,
                  C                                          Words:            0  PD
                                                             Cycles:
                     00 1101 dfff ffff                       Example:          TO, PD

                  The contents of register 'f' are rotated                         00 0000 0110 0011
                  one bit to the left through the Carry
                  Flag. If 'd' is 0 the result is placed in                    The power-down status bit, PD is
                  the W register. If 'd' is 1 the result is                    cleared. Time-out status bit, TO is
                  stored back in register 'f'.                                 set. Watchdog Timer and its
                                                                               prescaler are cleared.
                          C          Register f                                The processor is put into SLEEP
                                                                               mode with the oscillator stopped.
Words:            1                                                            See Section 7.8 for more details.
Cycles:
Example           1                                                            1

                     RLF        REG1,0                                         1

                  Before Instruction                                           SLEEP

                             REG1 =      1110 0110
                                         0
                             C        =
                                         1110 0110
                  After Instruction      1100 1100
                                         1
                             REG1 =

                             W        =

                             C        =

DS40143B-page 60                                 Preliminary                      1997 Microchip Technology Inc.
                                                                          PIC16C55X(A)

SUBLW         Subtract W from Literal                       SUBWF         Subtract W from f
Syntax:       [ label ] SUBLW k                             Syntax:
Operands:     0  k  255                                     Operands:     [ label ] SUBWF f,d
Operation:    k - (W)  (W)                                  Operation:    0  f  127
Status        C, DC, Z                                      Status        d  [0,1]
Affected:                                                   Affected:     (f) - (W)  (dest)
Encoding:                                                   Encoding:     C, DC, Z
Description:                                                Description:
Words:           11 110x kkkk kkkk
Cycles:                                                     Words:
Example 1:    The W register is subtracted (2's com-        Cycles:          00 0010 dfff ffff
              plement method) from the eight bit literal    Example 1:
Example 2:    'k'. The result is placed in the W register.                Subtract (2's complement method)
                                                            Example 2:    W register from register 'f'. If 'd' is 0 the
Example 3:    1                                                           result is stored in the W register. If 'd' is 1
                                                            Example 3:    the result is stored back in register 'f'.

              1                                                           1

              SUBLW 0x02                                                  1

              Before Instruction                                          SUBWF REG1,1

                 W= 1                                                     Before Instruction
                 C= ?

              After Instruction                                              REG1  =3
                                                                             W     =2
                 W=               1                                          C     =?
                 C=               1; result is posi-
                 tive                                                     After Instruction

              Before Instruction                                             REG1  =1
                                                                             W     =2
                 W= 2                                                        C     = 1; result is positive
                 C= ?
                                                                          Before Instruction
              After Instruction
                                                                             REG1  =2
                 W= 0                                                        W     =2
                 C = 1; result is zero                                       C     =?

              Before Instruction                                          After Instruction

                 W= 3                                                        REG1  =0
                 C= ?                                                        W     =2
                                                                             C     = 1; result is zero
              After Instruction

                 W=               0xFF                                    Before Instruction
                 C=               0; result is nega-
                 tive                                                        REG1  =1
                                                                             W     =2
                                                                             C     =?

                                                                          After Instruction

                                                                             REG1  = 0xFF
                                                                             W     =2
                                                                             C     = 0; result is negative

1997 Microchip Technology Inc.       Preliminary                                            DS40143B-page 61
PIC16C55X(A)

SWAPF             Swap Nibbles in f                           XORLW             Exclusive OR Literal with W
Syntax:                                                       Syntax:
Operands:         [ label ] SWAPF f,d                         Operands:         [ label ] XORLW k
                                                              Operation:        0  k  255
Operation:        0  f  127                                   Status Affected:  (W) .XOR. k  (W)
                  d  [0,1]                                    Encoding:         Z
Status Affected:                                              Description:
Encoding:         (f<3:0>)  (dest<7:4>),                                            11 1010 kkkk kkkk
Description:      (f<7:4>)  (dest<3:0>)                       Words:            The contents of the W register are
                                                              Cycles:           XOR'ed with the eight bit literal 'k'.
Words:            None                                        Example:          The result is placed in the
Cycles:                                                                         W register.
Example              00 1110 dfff ffff                                          1
                                                                                1
                  The upper and lower nibbles of                                XORLW 0xAF
                  register 'f' are exchanged. If 'd' is 0                       Before Instruction
                  the result is placed in W register. If 'd'
                  is 1 the result is placed in register 'f'.                                   W = 0xB5
                                                                                After Instruction
                  1
                                                                                               W = 0x1A
                  1

                     SWAPF REG, 0

                  Before Instruction

                        REG1 = 0xA5

                  After Instruction

                        REG1 = 0xA5

                        W             = 0x5A

TRIS              Load TRIS Register                          XORWF             Exclusive OR W with f
                                                              Syntax:
Syntax:           [ label ] TRIS f                            Operands:         [ label ] XORWF f,d

Operands:         5f7                                         Operation:        0  f  127
                                                              Status Affected:  d  [0,1]
Operation:        (W)  TRIS register f;                       Encoding:
                                                              Description:
Status Affected: None                                                           (W) .XOR. (f)  (dest)
                                                              Words:
Encoding:            00 0000 0110 0fff                        Cycles:           Z
                                                              Example
Description:      The instruction is supported for code                            00 0110 dfff ffff
                  compatibility with the PIC16C5X
                  products. Since TRIS registers are                            Exclusive OR the contents of the
                  readable and writable, the user can                           W register with register 'f'. If 'd' is 0 the
                  directly address them.                                        result is stored in the W register. If 'd'
                                                                                is 1 the result is stored back in register
Words:            1                                                             'f'.

Cycles:           1                                                             1

Example                                                                         1

                  To maintain upward compatibility                              XORWF REG 1
                  with future PICmicroTM products,
                  do not use this instruction.                                  Before Instruction

                                                                                   REG              = 0xAF
                                                                                   W                = 0xB5

                                                                                After Instruction

                                                                                   REG              = 0x1A
                                                                                   W                = 0xB5

DS40143B-page 62                              Preliminary                           1997 Microchip Technology Inc.
9.0 DEVELOPMENT SUPPORT                                           PIC16C55X(A)

9.1 Development Tools                                    9.3 ICEPIC: Low-Cost PICmicroTM
                                                                   In-Circuit Emulator
The PICmicrTM microcontrollers are supported with a
full range of hardware and software development tools:   ICEPIC is a low-cost in-circuit emulator solution for the
                                                         Microchip PIC12CXXX, PIC16C5X and PIC16CXXX
PICMASTER/DS40143BICMASTER CE Real-Time                families of 8-bit OTP microcontrollers.
   In-Circuit Emulator
                                                         ICEPIC is designed to operate on PC-compatible
ICEPIC Low-Cost PIC16C5X and PIC16CXXX                 machines ranging from 286-AT through PentiumTM
   In-Circuit Emulator                                   based machines under Windows 3.x environment.
                                                         ICEPIC features real time, non-intrusive emulation.
PRO MATE II Universal Programmer
PICSTART Plus Entry-Level Prototype                   9.4 PRO MATE II: Universal Programmer

   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
MPASM Assembler                                        The PRO MATE II has programmable VDD and VPP
MPLABTM SIM Software Simulator                         supplies which allows it to verify programmed memory
MPLAB-C (C Compiler)                                   at VDD min and VDD max for maximum reliability. It has
Fuzzy Logic Development System                         an LCD display for displaying error messages, keys to
                                                         enter commands and a modular detachable socket
  (fuzzyTECH-MP)                                        assembly to support various package types. In stand-
                                                         alone mode the PRO MATE II can read, verify or pro-
9.2 PICMASTER: High Performance                          gram PIC12CXXX, PIC14C000, PIC16C5X,
          Universal In-Circuit Emulator with             PIC16CXXX and PIC17CXX devices. It can also set
          MPLAB IDE                                      configuration and code-protect bits in this mode.

The PICMASTER Universal In-Circuit Emulator is           9.5 PICSTART Plus Entry Level
intended to provide the product development engineer               Development System
with a complete microcontroller design tool set for all
microcontrollers in the SX, PIC14C000, PIC16C5X,         The PICSTART programmer is an easy-to-use, low-
PIC16CXXX and PIC17CXX families. PICMASTER is            cost prototype programmer. It connects to the PC via
supplied with the MPLABTM Integrated Development         one of the COM (RS-232) ports. MPLAB Integrated
Environment (IDE), which allows editing, "make" and      Development Environment software makes using the
download, and source debugging from a single envi-       programmer simple and efficient. PICSTART Plus is
ronment.                                                 not recommended for production programming.

Interchangeable target probes allow the system to be     PICSTART Plus supports all PIC12CXXX, PIC14C000,
easily reconfigured for emulation of different proces-   PIC16C5X, PIC16CXXX and PIC17CXX devices with
sors. The universal architecture of the PICMASTER        up to 40 pins. Larger pin count devices such as the
allows expansion to support all new Microchip micro-     PIC16C923 and PIC16C924 may be supported with an
controllers.                                             adapter socket.

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.                         DS40143B - page 63
PIC16C55X(A)                                               an RS-232 interface, push-button switches, a potenti-
                                                           ometer for simulated analog input, a thermistor and
9.6 PICDEM-1 Low-Cost PICmicro                             separate headers for connection to an external LCD
          Demonstration Board                              module and a keypad. Also provided on the PICDEM-3
                                                           board is an LCD panel, with 4 commons and 12 seg-
The PICDEM-1 is a simple board which demonstrates          ments, that is capable of displaying time, temperature
the capabilities of several of Microchip's microcontrol-   and day of the week. The PICDEM-3 provides an addi-
lers. The microcontrollers supported are: PIC16C5X         tional RS-232 interface and Windows 3.1 software for
(PIC16C54 to PIC16C58A), PIC16C61, PIC16C62X,              showing the demultiplexed LCD signals on a PC. A sim-
PIC16C71, PIC16C8X, PIC17C42, PIC17C43 and                 ple serial interface allows the user to construct a hard-
PIC17C44. All necessary hardware and software is           ware demultiplexer for the LCD signals.
included to run basic demo programs. The users can
program the sample microcontrollers provided with          9.9 MPLABTM Integrated Development
the PICDEM-1 board, on a PRO MATE II or                              Environment Software
PICSTART-Plus programmer, and easily test firm-
ware. The user can also connect the PICDEM-1               The MPLAB IDE Software brings an ease of software
board to the PICMASTER emulator and download               development previously unseen in the 8-bit microcon-
the firmware to the emulator for testing. Additional pro-  troller market. MPLAB is a windows based application
totype area is available for the user to build some addi-  which contains:
tional hardware and connect it to the microcontroller
socket(s). Some of the features include an RS-232          A full featured editor
interface, a potentiometer for simulated analog input,      Three operating modes
push-button switches and eight LEDs connected to
PORTB.                                                        - editor
                                                              - emulator
9.7 PICDEM-2 Low-Cost PIC16CXX                                - simulator
          Demonstration Board                               A project manager
                                                            Customizable tool bar and key mapping
The PICDEM-2 is a simple demonstration board that          A status bar with project information
supports the PIC16C62, PIC16C64, PIC16C65,                  Extensive on-line help
PIC16C73 and PIC16C74 microcontrollers. All the
necessary hardware and software is included to             MPLAB allows you to:
run the basic demonstration programs. The user
can program the sample microcontrollers provided            Edit your source files (either assembly or `C')
with the PICDEM-2 board, on a PRO MATE II pro-             One touch assemble (or compile) and download
grammer or PICSTART-Plus, and easily test firmware.
The PICMASTER emulator may also be used with the              to PICmicro tools (automatically updates all
PICDEM-2 board to test firmware. Additional prototype         project information)
area has been provided to the user for adding addi-         Debug using:
tional hardware and connecting it to the microcontroller      - source files
socket(s). Some of the features include a RS-232 inter-       - absolute listing file
face, push-button switches, a potentiometer for simu-       Transfer data dynamically via DDE (soon to be
lated analog input, a Serial EEPROM to demonstrate            replaced by OLE)
usage of the I2C bus and separate headers for connec-       Run up to four emulators on the same PC
tion to an LCD module and a keypad.
                                                           The ability to use MPLAB with Microchip's simulator
9.8 PICDEM-3 Low-Cost PIC16CXXX                            allows a consistent platform and the ability to easily
          Demonstration Board                              switch from the low cost simulator to the full featured
                                                           emulator with minimal retraining due to development
The PICDEM-3 is a simple demonstration board that          tools.
supports the PIC16C923 and PIC16C924 in the PLCC
package. It will also support future 44-pin PLCC           9.10 Assembler (MPASM)
microcontrollers with a LCD Module. All the neces-
sary hardware and software is included to run the          The MPASM Universal Macro Assembler is a PC-
basic demonstration programs. The user can pro-            hosted symbolic assembler. It supports all microcon-
gram the sample microcontrollers provided with             troller series including the PIC12C5XX, PIC14000,
the PICDEM-3 board, on a PRO MATE II program-              PIC16C5X, PIC16CXXX, and PIC17CXX families.
mer or PICSTART Plus with an adapter socket, and
easily test firmware. The PICMASTER emulator may           MPASM offers full featured Macro capabilities, condi-
also be used with the PICDEM-3 board to test firm-         tional assembly, and several source and listing formats.
ware. Additional prototype area has been provided to       It generates various object code formats to support
the user for adding hardware and connecting it to the      Microchip's development tools as well as third party
microcontroller socket(s). Some of the features include    programmers.

DS40143B - page 64                                         MPASM allows full symbolic debugging from
                                                           PICMASTER, Microchip's Universal Emulator System.

                                                                                              1997 Microchip Technology Inc.
MPASM has the following features to assist in develop-              PIC16C55X(A)
ing software for specific use applications.
                                                           9.14 MP-DriveWayTM Application Code
Provides translation of Assembler source code to                   Generator
   object code for all Microchip microcontrollers.
                                                           MP-DriveWay is an easy-to-use Windows-based Appli-
Macro assembly capability.                               cation Code Generator. With MP-DriveWay you can
Produces all the files (Object, Listing, Symbol,         visually configure all the peripherals in a PICmicro
                                                           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
                                                           code. MP-DriveWay is intelligent enough to maintain
MPASM provides a rich directive language to support        your code through subsequent code generation.
programming of the PICmicro. Directives are helpful in
making the development of your assemble source code        9.15 SEEVAL Evaluation and
shorter and more maintainable.                                       Programming System

9.11 Software Simulator (MPLAB-SIM)                        The SEEVAL SEEPROM Designer's Kit supports all
                                                           Microchip 2-wire and 3-wire Serial EEPROMs. The kit
The MPLAB-SIM Software Simulator allows code               includes everything necessary to read, write, erase or
development in a PC host environment. It allows the        program special features of any Microchip SEEPROM
user to simulate the PICmicro series microcontrollers      product including Smart SerialsTM and secure serials.
on an instruction level. On any given instruction, the     The Total EnduranceTM Disk is included to aid in trade-
user may examine or modify any of the data areas or        off analysis and reliability calculations. The total kit can
provide external stimulus to any of the pins. The input/   significantly reduce time-to-market and result in an
output radix can be set by the user and the execution      optimized system.
can be performed in; single step, execute until break, or
in a trace mode.                                           9.16 KEELOQ Evaluation and
                                                                     Programming Tools
MPLAB-SIM fully supports symbolic debugging using
MPLAB-C and MPASM. The Software Simulator offers           KEELOQ evaluation and programming tools support
the low cost flexibility to develop and debug code out-    Microchips HCS Secure Data Products. The HCS eval-
side of the laboratory environment making it an excel-     uation kit includes an LCD display to show changing
lent multi-project software development tool.              codes, a decoder to decode transmissions, and a pro-
                                                           gramming interface to program test transmitters.
9.12 C Compiler (MPLAB-C)

The MPLAB-C Code Development System is a
complete `C' compiler and integrated development
environment for Microchip's PICmicroTM family of
microcontrollers. The compiler provides powerful inte-
gration 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.

9.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 fuzzyLABTM demon-
stration board for hands-on experience with fuzzy logic
systems implementation.

1997 Microchip Technology Inc.                           DS40143B - page 65
DS40143B - page 66                                                        PIC12C5XX  PIC14000  PIC16C5X  PIC16CXXX                                                                                                               24CXX HCS200     PIC16C55X(A)
                                                                                                                    PIC16C6X PIC16C7XX PIC16C8X PIC16C9XX PIC17C4X PIC17C75X 25CXX HCS300
                                                                                                                                                                                                                                               TABLE 9-1: DEVELOPMENT TOOLS FROM MICROCHIP
                                                                                                                                                                                                                                 93CXX HCS301

                                  Emulator Products  PICMASTER/                                                    Available
                                                     PICMASTER-CE                                                     3Q97
                                                     In-Circuit Emulator
                                  Software Tools
                                                     ICEPIC Low-Cost
                                  Programmers        In-Circuit Emulator

1997 Microchip Technology Inc.  Demo Boards        MPLABTM
                                                     Integrated
                                                     Development
                                                     Environment
                                                     MPLABTM C
                                                     Compiler
                                                     fuzzyTECH-MP
                                                     Explorer/Edition
                                                     Fuzzy Logic
                                                     Dev. Tool
                                                     MP-DriveWayTM
                                                     Applications
                                                     Code Generator
                                                     Total EnduranceTM
                                                     Software Model
                                                     PICSTART
                                                     Lite Ultra Low-Cost
                                                     Dev. Kit
                                                     PICSTART
                                                     Plus Low-Cost
                                                     Universal Dev. Kit
                                                     PRO MATE II
                                                     Universal
                                                     Programmer
                                                     KEELOQ
                                                     Programmer
                                                     SEEVAL
                                                     Designers Kit

                                                     PICDEM-1

                                                     PICDEM-2

                                                     PICDEM-3

                                                     KEELOQ
                                                     Evaluation Kit
                                            PIC16C55X(A)

10.0 ELECTRICAL SPECIFICATIONS

Absolute Maximum Ratings
Ambient Temperature under bias ............................................................................................................. 40 to +125C
Storage Temperature................................................................................................................................ 65 to +150C
Voltage on any pin with respect to VSS (except VDD and MCLR)...................................................... 0.6V to VDD +0.6V
Voltage on VDD with respect to VSS ............................................................................................................... 0 to +7.5V
Voltage on MCLR with respect to VSS (Note 2)................................................................................................. 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 (V0 <0 or V0>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 and PORTB ...................................................................................................200 mA
Maximum Current sourced by PORTA and 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.

1997 Microchip Technology Inc.  Preliminary  DS40143B-page 67
PIC16C55X(A)

TABLE 10-1: CROSS REFERENCE OF DEVICE SPECS FOR OSCILLATOR CONFIGURATIONS
                     AND FREQUENCIES OF OPERATION (COMMERCIAL DEVICES)

OSC PIC16C55X-04           PIC16C55XA-04 PIC16C55X-20 PIC16C55XA-20 PIC16LC55X-04                     PIC16C55X                        PIC16C55XA
                                                                                                      JW Devices                       JW Devices
RC VDD: 3.0V to
                5.5V       VDD: 3.0V to      VDD: 4.5V to 5.5V  VDD: 4.5V to 5.5V  VDD: 2.5V to 5.5V  VDD: 3.0V to 5.5V                VDD: 3.0V to 5.5V
                                 5.5V        IDD: 1.8 mA typ.   IDD: 1.8 mA typ.   IDD: 1.4 mA typ.   IDD: 3.3 mA max.                 IDD: 3.3 mA max.
          IDD: 3.3 mA
                max.@5.5V  IDD: 3.3 mA            @5.5V              @5.5V              @3.0V              @5.5V                            @5.5V
                                max.@5.5V    IPD: 1.0 A typ.   IPD: 1.0 A typ.   IPD: 0.7 A typ.   IPD: 20 A max.                  IPD: 20 A max.
          IPD: 20 A max.
               @4.0V       IPD: 20 A max.        @4.5V              @4.5V              @3.0V              @4.0V                            @4.0V
                                @4.0V        Freq: 4.0 MHz      Freq: 4.0 MHz      Freq: 4.0 MHz      Freq: 4.0 MHz                    Freq: 4.0 MHz
          Freq: 4.0 MHz
               max.        Freq: 4.0 MHz          max.               max.               max.               max.                             max.
                                max.

XT VDD: 3.0V to            VDD: 3.0V to      VDD: 4.5V to 5.5V  VDD: 4.5V to 5.5V  VDD: 2.5V to 5.5V  VDD: 3.0V to 5.5V                VDD: 3.0V to 5.5V
               5.5V              5.5V        IDD: 1.8 mA typ.   IDD: 1.8 mA typ.   IDD: 1.4 mA typ.   IDD: 3.3 mA max.                 IDD: 3.3 mA max.

        IDD: 3.3 mA        IDD: 3.3 mA            @5.5V              @5.5V              @3.0V              @5.5V                            @5.5V
              max.@5.5V         max.@5.5V    IPD: 1.0 A typ.   IPD: 1.0 A typ.   IPD: 0.7 A typ.   IPD: 20 A max.                  IPD: 20 A max.

        IPD: 20 A max.    IPD: 20 A max.        @4.5V              @4.5V              @3.0V              @4.0V                            @4.0V
             @4.0V              @4.0V        Freq: 4.0 MHz      Freq: 4.0 MHz      Freq: 4.0 MHz      Freq: 4.0 MHz                    Freq: 4.0 MHz

        Freq: 4.0 MHz      Freq: 4.0 MHz          max.               max.               max.               max.                             max.
             max.               max.

HS VDD: 4.5V to            VDD: 4.5V to      VDD: 4.5V to       VDD: 4.5V to       Do not use in      VDD: 4.5V to                     VDD: 4.5V to
              5.5V              5.5V              5.5V               5.5V            HS mode               5.5V                              5.5V

        IDD: 9.0 mA typ.   IDD: 9.0 mA typ.  IDD: 20 mA         IDD: 20 mA                            IDD: 20 mA                       IDD: 20 mA
              @5.5V             @5.5V             max. @5.5V         max. @5.5V                            max.@5.5V                        max.@5.5V

        IPD: 1.0 A typ.   IPD: 1.0 A typ.  IPD: 1.0 A typ.   IPD: 1.0 A typ.                      IPD: 1.0 A typ.                 IPD: 1.0 A typ.
              @4.0V             @4.0V             @4.5V              @4.5V                                 @4.5V                            @4.5V

        Freq: 4.0 MHz      Freq: 4.0 MHz     Freq: 20 MHz       Freq: 20 MHz                          Freq: 20 MHz                     Freq: 20 MHz
              max.              max.              max.               max.                                  max.                             max.

LP VDD: 3.0V to            VDD: 3.0V to      Do not use in LP   Do not use in LP   VDD: 2.5V to       VDD: 2.5V to                     VDD: 3.0V to
              5.5V              5.5V                mode               mode             5.5V               5.5V                             5.5V

        IDD: 35 A typ.    IDD: 35 A typ.                                         IDD: 32 A max.    IDD: 32 A max.                  IDD: 32 A max.
             @32 kHz,           @32 kHz,                                               @32 kHz,           @32 kHz,                         @32 kHz,
              3.0V              3.0V                                                    3.0V               3.0V                            3.0V

        IPD: 1.0 A typ.   IPD: 1.0 A typ.                                        IPD: 9.0 A        IPD: 9.0 A                      IPD: 9.0 A
             @4.0 V             @4.0 V                                                 max. @3.0V         max. @3.0V                       max.@3.0V

        Freq: 200 kHz      Freq: 200 kHz                                           Freq: 200 kHz      Freq: 200 kHz                    Freq: 200 kHz
              maxi.             maxi.                                                  max.               max.                             max.

The shaded sections indicate oscillator selections which are tested for functionality, but not for MIN/MAX specifications. It is rec-
ommended that the user select the device type that guarantees the specifications required.

DS40143B-page 68                             Preliminary                                              1997 Microchip Technology Inc.
                                                                     PIC16C55X(A)

(A)                                   PIC16C55X(A)-04 (Commercial, Industrial, Extended)
                                      PIC16C55X(A)-20 (Commercial, Industrial, Extended)
10.1 DC CHARACTERISTICS:

             Standard Operating Conditions (unless otherwise stated)

             Operating temperature 40C  TA  +85C for industrial and
                                                 0C  TA  +70C for commercial and

                                              40C  TA  +125C for extended

Param  Sym   Characteristic                       Min Typ Max Units                 Conditions
  No.

D001 VDD     Supply Voltage                       3.0 - 5.5          V XT, RC and LP osc configuration
D001A                                             4.5 - 5.5          V HS osc configuration
             RAM Data Retention
D002 VDR     Voltage (Note 1)                      1.5*           V Device in SLEEP mode

D003 VPOR    VDD start voltage to                  VSS             V See section on power-on reset for
             ensure Power-on Reset                                         details

D004 SVDD    VDD rise rate to ensure              0.05*    V/ms See section on power-on reset for
             Power-on Reset                                               details

D010 IDD     Supply Current (Note 2)               1.8 3.3 mA XT and RC osc configuration
D010A                                                                               FOSC = 4 MHz, VDD = 5.5V, WDT
                                                                                    disabled (Note 4)
D013
                                                   35 70 A LP osc configuration,
                                                                                    PIC16C55X-04 only
                                                                                    FOSC = 32 kHz, VDD = 4.0V, WDT
                                                                                    disabled

                                                   9.0 20 mA HS osc configuration
                                                                                    FOSC = 20 MHz, VDD = 5.5V, WDT
                                                                                    disabled

       IWDT  WDT Current (Note 5)                  6.0 20 A VDD = 4.0V
                                                                   25 A (+85C to +125C)

D020 IPD     Power Down Current (Note 3) 1.0 2.5 A VDD=4.0V, WDT disabled
                                                                             15 A (+85C to +125C)

       IWDT  WDT Current (Note 5)                  6.0 20 A VDD=4.0V
                                                                                    (+85C to +125C)

*      These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C, 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 in SLEEP mode 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 configured as input, 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 configured as input and tied to VDD or VSS.

      4: For RC osc configuration, current through Rext is not included. The current through the resistor can be

       estimated by the formula Ir = VDD/2Rext (mA) with Rext in k.

      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.           Preliminary                                        DS40143B-page 69
PIC16C55X(A)

10.2 DC CHARACTERISTICS:                   PIC16LC55X-04 (Commercial, Industrial, Extended)

                  Standard Operating Conditions (unless otherwise stated)

                  Operating temperature 40C  TA  +85C for industrial and
                                                      0C  TA  +70C for commercial and

                                                   40C  TA  +125C for extended

Param  Sym        Characteristic                  Min Typ Max Units                      Conditions
  No.

D001 VDD          Supply Voltage                  3.0 - 5.5 V XT and RC osc configuration

                                                  2.5      5.5       LP osc configuration

D002 VDR          RAM Data Retention               1.5* V Device in SLEEP mode
                  Voltage (Note 1)

D003 VPOR         VDD start voltage to             VSS             V See section on Power-on Reset for
                  ensure Power-on Reset                                    details

D004 SVDD         VDD rise rate to ensure         0.05*    V/ms See section on Power-on Reset for
                  Power-on Reset                                          details

D010 IDD          Supply Current (Note 2)          1.4 2.5 mA XT and RC osc configuration
D010A                                                                               FOSC = 2.0 MHz, VDD = 3.0V, WDT
                                                                                    disabled (Note 4)

                                                   26 53 A LP osc configuration
                                                                                    FOSC = 32 kHz, VDD = 3.0V, WDT
                                                                                    disabled

       IWDT       WDT Current (Note 5)             6.0 15 A VDD = 3.0V

D020 IPD          Power Down Current (Note 3) 0.7 2 A VDD=3.0V, WDT disabled

       IWDT       WDT Current (Note 5)             6.0 15 A VDD=3.0V

*      These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C, 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 in SLEEP mode 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 configured as input, 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 configured as input and tied to VDD or VSS.

   4: For RC osc configuration, current through Rext is not included. The current through the resistor can be

       estimated by the formula Ir = VDD/2Rext (mA) with Rext in k.

   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.

DS40143B-page 70                           Preliminary                                    1997 Microchip Technology Inc.
                                                                            PIC16C55X(A)

10.3 DC CHARACTERISTICS:              PIC16C55X(A) (Commercial, Industrial, Extended)
                                      PIC16LC55X (Commercial, Industrial, Extended)

            Standard Operating Conditions (unless otherwise stated)

            Operating temperature 40C  TA  +85C for industrial and
                                                0C  TA  +70C for commercial and

                                             40C  TA  +125C for automotive
            Operating voltage VDD range as described in DC spec Table 10-1

Param. Sym         Characteristic        Min Typ Max Unit                                  Conditions
  No.

       VIL Input Low Voltage

            I/O ports

D030        with TTL buffer              VSS -                  0.8V V VDD = 4.5V to 5.5V

                                                                0.15VDD     otherwise

D031        with Schmitt Trigger input VSS                      0.2VDD V

D032        MCLR, RA4/T0CKI,OSC1 (in Vss - 0.2VDD V Note1

            RC mode)

D033        OSC1 (in XT* and HS)         Vss - 0.3VDD V

            OSC1 (in LP*)                Vss - 0.6VDD-1.0 V

       VIH Input High Voltage

            I/O ports                            -

D040        with TTL buffer              2.0V -                 VDD      V

D041        with Schmitt Trigger input 0.8VDD                   VDD

D042        MCLR RA4/T0CKI               0.8VDD -               VDD      V

D043        OSC1 (XT*, HS and LP*)       0.7VDD -               VDD      V

D043A       OSC1 (in RC mode)            0.9VDD                             Note1

D070 IPURB PORTB weak pull-up current 50 200 400 A VDD = 5.0V, VPIN = VSS

            Input Leakage Current

       IIL (Notes 2, 3)

            I/O ports (Except PORTA)                            1.0 A VSS  VPIN  VDD, pin at hi-impedance

D060        PORTA                        -       -              0.5 A Vss  VPIN  VDD, pin at hi-impedance

D061        RA4/T0CKI                    -       -              1.0 A Vss  VPIN  VDD

D063        OSC1, MCLR                   -       -              5.0 A Vss  VPIN  VDD, XT, HS and LP osc

                                                                            configuration

       VOL Output Low Voltage

D080        I/O ports                    -       -              0.6      V IOL=8.5 mA, VDD=4.5V, -40 to +85C

                                         -       -              0.6      V IOL=7.0 mA, VDD=4.5V, +125C

D083        OSC2/CLKOUT                  -       -              0.6      V IOL=1.6 mA, VDD=4.5V, -40 to +85C

            (RC only)                    -       -              0.6      V IOL=1.2 mA, VDD=4.5V, +125C

       VOH Output High Voltage (Note 3)

D090        I/O ports (Except RA4)       VDD-0.7 -              -        V IOH=-3.0 mA, VDD=4.5V, -40 to +85C

                                         VDD-0.7 -              -        V IOH=-2.5 mA,

                                                                            VDD=4.5V, +125C

D092        OSC2/CLKOUT                  VDD-0.7 -              -        V IOH=-1.3 mA, VDD=4.5V, -40 to +85C

                                         VDD-0.7 -              -        V IOH=-1.0 mA,

            (RC only)                                                       VDD=4.5V, +125C

*      VOD Open-Drain High Voltage                              14*      V RA4 pin

   *   These parameters are characterized but not tested.

    Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance

       only and are not tested.

Note 1: In RC oscillator configuration, the OSC1 pin is a Schmitt Trigger input. It is not recommended that the

       PIC16C55X(A) be driven with external clock in RC mode.

      2: The leakage current on the MCLR pin is strongly dependent on applied voltage level. The specified levels

       represent normal operating conditions. Higher leakage current may be measured at different input voltages.

      3: Negative current is defined as coming out of the pin.

1997 Microchip Technology Inc.         Preliminary                                          DS40143B-page 71
PIC16C55X(A)

10.3 DC CHARACTERISTICS:              PIC16C55X(A) (Commercial, Industrial, Extended)
                                      PIC16LC55X (Commercial, Industrial, Extended) (Cont.)

            Standard Operating Conditions (unless otherwise stated)

            Operating temperature 40C  TA  +85C for industrial and
                                                0C  TA  +70C for commercial and

                                             40C  TA  +125C for automotive
            Operating voltage VDD range as described in DC spec Table 10-1

Param. Sym         Characteristic     Min Typ Max Unit                             Conditions
  No.

            Capacitive Loading Specs

            on Output Pins

D100 COSC2 OSC2 pin                                          15 pF In XT, HS and LP modes when external

                                                                    clock used to drive OSC1.

D101 Cio All I/O pins/OSC2 (in RC                            50 pF

            mode)

*  These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance

   only and are not tested.

Note 1: In RC oscillator configuration, the OSC1 pin is a Schmitt Trigger input. It is not recommended that the

   PIC16C55X(A) be driven with external clock in RC mode.

   2: The leakage current on the MCLR pin is strongly dependent on applied voltage level. The specified levels

   represent normal operating conditions. Higher leakage current may be measured at different input voltages.

   3: Negative current is defined as coming out of the pin.

DS40143B-page 72                      Preliminary                                  1997 Microchip Technology Inc.
                                                                        PIC16C55X(A)

10.4 Timing Parameter Symbology

The timing parameter symbols have been created with one of the following formats:

1. TppS2ppS

2. TppS

T

   F         Frequency                                      T   Time

   Lowercase subscripts (pp) and their meanings:

pp

   ck        CLKOUT                                         os  OSC1

   io        I/O port                                       t0  T0CKI

   mc        MCLR

   Uppercase letters and their meanings:

S

   F         Fall                                           P   Period

   H         High                                           R   Rise

   I         Invalid (Hi-impedance)                         V   Valid

   L         Low                                            Z   Hi-Impedance

FIGURE 10-1: LOAD CONDITIONS

                        Load condition 1                             Load condition 2

                                     VDD/2

                                          RL

                       Pin                  CL                  Pin                      CL
                                                                                   VSS
                                     VSS

                   RL = 464       for all pins except OSC2
                   CL = 50 pF     for OSC2 output

                           15 pF

1997 Microchip Technology Inc.                  Preliminary                                DS40143B-page 73
PIC16C55X(A)

10.5 Timing Diagrams and Specifications
FIGURE 10-2: EXTERNAL CLOCK TIMING

                            Q4       Q1        Q2                    Q3        Q4            Q1
   OSC1
                                        1                     3          3     4   4
   CLKOUT
                                                           2

TABLE 10-2: EXTERNAL CLOCK TIMING REQUIREMENTS

Parameter Sym Characteristic                   Min Typ Max Units Conditions
    No.

       Fos External CLKIN Frequency            DC             --            4  MHz XT and RC osc mode, VDD=5.0V
                (Note 1)
                                               DC             --         20 MHz HS osc mode

                                               DC             --         200 kHz LP osc mode

                  Oscillator Frequency         DC             --            4  MHz RC osc mode, VDD=5.0V
                  (Note 1)
                                               0.1            --            4  MHz XT osc mode

                                                   1          --         20 MHz HS osc mode

                                               DC                       200 kHz LP osc mode

   1   Tosc External CLKIN Period              250            --         --    ns XT and RC osc mode

                  (Note 1)                     50             --         --    ns HS osc mode

                                                   5          --         --    s LP osc mode

                  Oscillator Period            250            --         --    ns RC osc mode
                  (Note 1)
                                               250            -- 10,000 ns XT osc mode

                                               50             --         1,000 ns HS osc mode

                                                   5          --         --    s LP osc mode

   2   TCY Instruction Cycle Time (Note 1)     1.0            Fos/4      DC    s TCY=FOS/4

   3*  TosL, External Clock in (OSC1) High or 100*            --         --    ns XT osc mode

       TosH Low Time                           2*             --         --    s LP osc mode

                                               20*            --         --    ns HS osc mode

   4*  TosR, External Clock in (OSC1) Rise or  25*            --         --    ns XT osc mode

       TosF Fall Time                          50*            --         --    ns LP osc mode

                                               15*            --         --    ns HS osc mode

*      These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance

       only and are not tested.

Note 1: Instruction cycle period (TCY) equals four times the input oscillator time-base period. All specified values are

       based on characterization data for that particular oscillator type under standard operating conditions with the

       device executing code. Exceeding these specified limits may result in an unstable oscillator operation

       and/or higher than expected current consumption. All devices are tested to operate at "min." values with an
       external clock applied to the OSC1 pin.

       When an external clock input is used, the "Max." cycle time limit is "DC" (no clock) for all devices.

DS40143B-page 74                               Preliminary                         1997 Microchip Technology Inc.
                                                                                          PIC16C55X(A)

FIGURE 10-3: CLKOUT AND I/O TIMING

                              Q4                         Q1                  Q2                           Q3
   OSC1                                                                                        11
                                         10                        22
CLKOUT                                                             23                           12
                                          13                                                            16
                                               14            19 18
                                                                                                       new value
I/O Pin                                 17                                           15
(input)
I/O Pin   old value
(output)

                                                         20, 21
Note: All tests must be do with specified capacitance loads (Figure 10-1) 50 pF on I/O pins and CLKOUT

TABLE 10-3: CLKOUT AND I/O TIMING REQUIREMENTS

Parameter # Sym                   Characteristic                                          Min  Typ Max Units

10*       TosH2ckL                OSC1 to CLKOUT (Note1)                                  --   75          200    ns

                                                                                          --   --          400    ns

11*       TosH2ckH OSC1 to CLKOUT (Note1)                                                 --   75          200    ns

                                                                                          --   --          400    ns

12*       TckR                    CLKOUT rise time (Note1)                                --   35          100    ns

                                                                                          --   --          200    ns

13*       TckF                    CLKOUT fall time (Note1)                                --   35          100    ns

                                                                                          --   --          200    ns

14*       TckL2ioV                CLKOUT  to Port out valid (Note1)                       --   --          20     ns

15*       TioV2ckH                Port in valid before CLKOUT  (Note1)                    Tosc +200 ns --  --     ns

                                                                                          Tosc +400 ns --  --     ns

16*       TckH2ioI                Port in hold after CLKOUT  (Note1)                      0    --          --     ns

17*       TosH2ioV                OSC1 (Q1 cycle) to Port out valid                       --   50          150    ns

                                                                                          --               300    ns

18*       TosH2ioI                OSC1 (Q2 cycle) to Port input invalid (I/O in hold      100  --          --     ns

                                  time)                                                   200  --          --     ns

19*       TioV2osH Port input valid to OSC1 (I/O in setup time)                           0    --          --     ns

20*       TioR                    Port output rise time                                   --   10          40     ns

                                                                                          --   --          80     ns

21*       TioF                    Port output fall time                                   --   10          40     ns

                                                                                          --   --          80     ns

22*       Tinp                    RB0/INT pin high or low time                            25   --          --     ns
                                  RB<7:4> change interrupt high or low time
                                                                                          40   --          --     ns

23        Trbp                                                                            Tcy  --          --     ns

* These parameters are characterized but not tested
Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance only and are not tested.
Note 1: Measurements are taken in RC Mode where CLKOUT output is 4 x TOSC

1997 Microchip Technology Inc.                         Preliminary                                       DS40143B-page 75
PIC16C55X(A)

FIGURE 10-4: RESET, WATCHDOG TIMER, OSCILLATOR START-UP TIMER AND POWER-UP
                     TIMER TIMING

       VDD

       MCLR                                                   30

      Internal    33
         POR                     32

       PWRT                                             34               31
     Timeout
                                                                              34
         OSC
     Timeout

      Internal
      RESET
   Watchdog

        Timer
      RESET

     I/O Pins

TABLE 10-4: RESET, WATCHDOG TIMER, OSCILLATOR START-UP TIMER AND POWER-UP
                     TIMER REQUIREMENTS

Parameter       Sym Characteristic                      Min   Typ  Max Units      Conditions
    No.

   30           TmcL MCLR Pulse Width (low)             2000  --   --    ns -40 to +85C

   31           Twdt Watchdog Timer Time-out Period     7*    18   33* ms VDD = 5.0V, -40 to +85C

                  (No Prescaler)

   32           Tost Oscillation Start-up Timer Period  -- 1024 TOSC --  -- TOSC = OSC1 period

   33           Tpwrt Power-up Timer Period             28*   72   132* ms VDD = 5.0V, -40 to +85C

   34           TIOZ I/O hi-impedance from MCLR low           --   2.0 s

*      These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance

       only and are not tested.

DS40143B-page 76                             Preliminary                  1997 Microchip Technology Inc.
                                                                        PIC16C55X(A)

FIGURE 10-5: TIMER0 CLOCK TIMING
              RA4/T0CKI

                                             40              41

                                                 42

       TMR0

TABLE 10-5: TIMER0 CLOCK REQUIREMENTS

Parameter Sym Characteristic                                 Min        Typ Max Units Conditions
    No.

   40  Tt0H T0CKI High Pulse Width           No Prescaler 0.5 TCY + 20* -- -- ns

                                             With Prescaler  10*        -- -- ns

   41  Tt0L T0CKI Low Pulse Width            No Prescaler 0.5 TCY + 20* -- -- ns

                                             With Prescaler  10*        -- -- ns

   42  Tt0P T0CKI Period                                     TCY + 40*  -- -- ns N = prescale value
                                                                  N                                 (1, 2, 4, ..., 256)

*      These parameters are characterized but not tested.

Data in "Typ" column is at 5.0V, 25C unless otherwise stated. These parameters are for design guidance

       only and are not tested.

FIGURE 10-6: LOAD CONDITIONS

             Load condition 1                                     Load condition 2

                                  VDD/2

                                       RL

             Pin                         CL                  Pin              CL
                                                                        VSS
                                  VSS

             RL = 464             for all pins except OSC2
             CL = 50 pF           for OSC2 output

                     15 pF

1997 Microchip Technology Inc.             Preliminary                            DS40143B-page 77
PIC16C55X(A)

NOTES:

DS40143B-page 78  Preliminary   1997 Microchip Technology Inc.
                                                            PIC16C55X(A)

11.0 PACKAGING INFORMATION

Ceramic CERDIP Dual In-Line Family

Symbol         Symbol List for Ceramic CERDIP Dual In-Line Package Parameters
                                                       Description of Parameters
    A
   A1   Angular spacing between min. and max. lead positions measured at the gauge plane
   A2   Distance between seating plane to highest point of body (lid)
   A3   Distance between seating plane and base plane
    B   Distance from base plane to highest point of body (lid)
   B1   Base body thickness
    C   Width of terminal leads
    D   Width of terminal lead shoulder which locate seating plane (standoff geometry optional)
   D1   Thickness of terminal leads
    E   Largest overall package parameter of length
   E1   Body width parameters not including leads
   eA   Largest overall package width parameter outside of lead
   eB   Body width parameter - end lead center to end lead center
   e1   Linear spacing of true minimum lead position center line to center line
    L   Linear spacing between true lead position outside of lead to outside of lead
    N   Linear spacing between center lines of body standoffs (terminal leads)
    S   Distance from seating plane to end of lead
   S1   Total number of potentially usable lead positions
        Distance from true position center line of Number 1 lead to the extremity of the body
        Distance from other end lead edge positions to the extremity of the body

Notes:

1. Controlling parameter: inches.
2. Parameter "e1" ("e") is non-cumulative.
3. Seating plane (standoff) is defined by board hole size.
4. Parameter "B1" is nominal.

1997 Microchip Technology Inc.    Preliminary             DS40143B-page 79
PIC16C55X(A)

11.1 18-Lead Ceramic CERDIP Dual In-line with Window (300 mil)

                      N                                                                                  C
                                       E1 E
Pin No. 1                                                                           eA
Indicator                                                                           eB
Area

                      S           D
Base                                                      S1
Plane
                                                              L
Seating
Plane                                             e1             A1 A3 A A2

           B1                     D1

           B

                          Package Group: Ceramic CERDIP Dual In-Line (CDP)

                          Millimeters                                       Inches

Symbol            Min     Max          Notes                  Min           Max        Notes

                     0     10          Typical                0           10      Typical
    A                --   5.080          Typical                --          0.200     Typical
   A1             0.381   1.7780       Reference              0.015         0.070   Reference
   A2             3.810   4.699                               0.150         0.185   Reference
   A3             3.810   4.445        Reference              0.150         0.175     Typical
    B             0.355   0.585          Typical              0.014         0.023
   B1             1.270   1.651                               0.050         0.065
    C             0.203   0.381                               0.008         0.015
    D             22.352  23.622                              0.880         0.930
   D1             20.320  20.320                              0.800         0.800
    E             7.620   8.382                               0.300         0.330
   E1             5.588   7.874                               0.220         0.310
   e1             2.540   2.540                               0.100         0.100
   eA             7.366   8.128                               0.290         0.320
   eB             7.620   10.160                              0.300         0.400
    L             3.175   3.810                               0.125         0.150
    N               18                                          18
    S             0.508     18                                0.020           18
   S1             0.381   1.397                               0.015         0.055
                          1.270                                             0.050

DS40143B-page 80                       Preliminary                     1997 Microchip Technology Inc.
                                                               PIC16C55X(A)

Plastic Dual In-Line Family

Symbol                    Symbol List for Plastic In-Line Package Parameters
                                                       Description of Parameters
    A
   A1   Angular spacing between min. and max. lead positions measured at the gauge plane
   A2   Distance between seating plane to highest point of body
    B   Distance between seating plane and base plane
   B1   Base body thickness
    C   Width of terminal leads
    D   Width of terminal lead shoulder which locate seating plane (standoff geometry optional)
   D1   Thickness of terminal leads
    E   Largest overall package parameter of length
   E1   Body length parameter - end lead center to end lead center
   eA   Largest overall package width parameter outside of lead
   eB   Body width parameters not including leads
   e1   Linear spacing of true minimum lead position center line to center line
    L   Linear spacing between true lead position outside of lead to outside of lead
    N   Linear spacing between center lines of body standoffs (terminal leads)
    S   Distance from seating plane to end of lead
   S1   Total number of potentially usable lead positions
        Distance from true position center line of Number 1 lead to the extremity of the body
        Distance from other end lead edge positions to the extremity of the body

Notes:

1. Controlling parameter: inches.
2. Parameter "e1" ("e") is non-cumulative.
3. Seating plane (standoff) is defined by board hole size.
4. Parameter "B1" is nominal.
5. Details of pin Number 1 identifier are optional.
6. Parameters "D + E1" do not include mold flash/protrusions.

      Mold flash or protrusions shall not exceed .010 inches.

1997 Microchip Technology Inc.  Preliminary                  DS40143B-page 81
PIC16C55X(A)

11.2 18-Lead Plastic Dual In-line (300 mil)

                         N                   E1 E                                                C

  Pin No. 1                                                                 eA
  Indicator                                                                 eB
  Area
                                    D
                      S                                     S1
Base
Plane                                                           L
Seating
Plane                                                   e1         A1 A2 A

           B1                       D1
           B

                            Package Group: Plastic Dual In-Line (PLA)

                            Millimeters                                     Inches

Symbol              Min      Max                Notes            Min         Max       Notes

    A                      4.064            Reference                     0.160   Reference
   A1             0.381                       Typical          0.015                Typical
   A2             3.048                                         0.120
    B             0.355     3.810            Reference          0.014       0.150   Reference
   B1             1.524     0.559                               0.060       0.022
    C             0.203     1.524              Typical          0.008       0.060     Typical
    D             22.479    0.381            Reference          0.885       0.015   Reference
   D1             20.320    23.495                              0.800       0.925
    E             7.620     20.320                              0.300       0.800
   E1             6.096     8.255                               0.240       0.325
   e1             2.489     7.112                               0.098       0.280
   eA             7.620     2.591                               0.300       0.102
   eB             8.128     7.620                               0.320       0.300
    L             3.048     9.906                               0.120       0.390
    N                       3.556                                           0.140
    S               18                                            18
   S1             0.889       18                                0.035          18
                  0.127                                        0.005         
                                                                              

DS40143B-page 82                         Preliminary                         1997 Microchip Technology Inc.
                                               PIC16C55X(A)

Plastic Small Outline Family

Symbol                    Symbol List for Small Outline Package Parameters
                                                       Description of Parameters
    A
   A1   Angular spacing between min. and max. lead positions measured at the gauge plane
    B   Distance between seating plane to highest point of body
    C   Distance between seating plane and base plane
    D   Width of terminals
    E   Thickness of terminals
    e   Largest overall package parameter of length
    H   Largest overall package width parameter not including leads
    L   Linear spacing of true minimum lead position center line to center line
    N   Largest overall package dimension of width
   CP   Length of terminal for soldering to a substrate
        Total number of potentially usable lead positions
        Seating plane coplanarity

Notes:

1. Controlling parameter: inches.
2. All packages are gull wing lead form.
3. "D" and "E" are reference datums and do not include mold flash or protrusions. Mold flash or protrusions shall

      not exceed .006 package ends and .010 on sides.
4. The chamfer on the body is optional. If it is not present, a visual index feature must be located within the

      cross-hatched area to indicate pin 1 position.
5. Terminal numbers are shown for reference.

1997 Microchip Technology Inc.  Preliminary  DS40143B-page 83
PIC16C55X(A)

11.3 18-Lead Plastic Surface Mount (SOIC - Wide, 300 mil Body)

                  B                                              e
                  N                                                                                                 h x 45

    Index         123                                            EH                                                                     C
    Area                                                                                                                     L

Chamfer
h x 45

                                                              D               Base
                                                                              Plane
           CP
Seating
Plane

                    A1 A

                          Package Group: Plastic SOIC (SO)

                          Millimeters                                                Inches

Symbol              Min   Max                                    Notes        Min     Max                                       Notes
                                                                                                                             Reference
                     0      8                                  Reference      0      8
    A             2.362   2.642                                               0.093  0.104
   A1             0.101   0.300                                               0.004  0.012
    B             0.355   0.483                                               0.014  0.019
    C             0.241   0.318                                               0.009  0.013
    D             11.353  11.735                                              0.447   0.462
    E             7.416   7.595                                               0.292   0.299
    e             1.270   1.270                                               0.050   0.050
    H             10.007  10.643                                              0.394   0.419
    h             0.381   0.762                                               0.015   0.030
    L             0.406   1.143                                               0.016   0.045
    N
   CP               18      18                                                  18      18
                         0.102                                                      0.004

DS40143B-page 84                                                 Preliminary          1997 Microchip Technology Inc.
                                            PIC16C55X(A)

11.4 20-Lead Plastic Surface Mount (SSOP - 209 mil Body 5.30 mm)

                  N
Index
area

        E                                      H

                                                                                  C

                                                                 L

               123                B                   Base plane
                    e                              A  Seating plane

CP                                          A1
                             D

                                  Package Group: Plastic SSOP

                                  Millimeters                             Inches

Symbol      Min                   Max                 Notes          Min   Max       Notes
                                                                                  Reference
             0                     8                Reference    0        8
    A      1.730                  1.990                          0.068    0.078
   A1      0.050                  0.210                          0.002    0.008
    B      0.250                  0.380                          0.010    0.015
    C      0.130                  0.220                          0.005    0.009
    D      7.070                  7.330                          0.278     0.289
    E      5.200                  5.380                          0.205     0.212
    e      0.650                  0.650                          0.026     0.026
    H      7.650                  7.900                          0.301     0.311
    L      0.550                  0.950                          0.022     0.037
    N
   CP        20                     20                             20        20
              -                   0.102                             -      0.004

1997 Microchip Technology Inc.               Preliminary                        DS40143B-page 85
PIC16C55X(A)

11.5 Package Marking Information            Example

                18-Lead PDIP                       PIC16C558A
                                                   -04I / P456
                       XXXXXXXXXXXXXXXX
                       XXXXXXXXXXXXXXXX                  9523 CBA

                              AABBCDE

18-Lead SOIC (.300")                        Example
                                              PIC16C558
  XXXXXXXXXXXX                                -04I / S0218
  XXXXXXXXXXXX
  XXXXXXXXXXXX                                      9518 CDK

        AABBCDE

18-Lead CERDIP Windowed                     Example

                       XXXXXXXX                                     16C558
                       XXXXXXXX                                      /JW
                        AABBCDE                                     9501 CBA

20-Lead SSOP                                Example

   XXXXXXXXXX                                  PIC16C558A
   XXXXXXXXXX                                  -04I / 218

      AABBCDE                                     9551 CBP

Legend: MM...M Microchip part number information

                  XX...X Customer specific information*

                  AA  Year code (last 2 digits of calendar year)

                  BB  Week code (week of January 1 is week `01')

                  C   Facility code of the plant at which wafer is manufactured

                      C = Chandler, Arizona, U.S.A.

                  D   Mask revision number

                  E   Assembly code of the plant or country of origin in which

                      part was assembled

Note: In the event the full Microchip part number cannot be marked on one line,
           it will be carried over to the next line thus limiting the number of available
           characters for customer specific information.

* Standard OTP marking consists of Microchip part number, year code, week
     code, facility code, mask rev#, and assembly code. For OTP marking beyond
     this, certain price adders apply. Please check with your Microchip Sales Office.
     For QTP devices, any special marking adders are included in QTP price.

DS40143B-page 86                         Preliminary                1997 Microchip Technology Inc.
APPENDIX A: ENHANCEMENTS                                        PIC16C55X(A)

The following are the list of enhancements over the    APPENDIX B: COMPATIBILITY
PIC16C5X microcontroller family:
                                                       To convert code written for PIC16C5X to
1. Instruction word length is increased to 14 bits.    PIC16C55X(A), the user should take the following
      This allows larger page sizes both in program    steps:
      memory (4K now as opposed to 512 before) and     1. Remove any program memory page select
      register file (up to 128 bytes now versus 32
      bytes before).                                         operations (PA2, PA1, PA0 bits) for CALL, GOTO.
                                                       2. Revisit any computed jump operations (write to
2. A PC high latch register (PCLATH) is added to
      handle program memory paging. PA2, PA1, PA0            PC or add to PC, etc.) to make sure page bits
      bits are removed from STATUS register.                 are set properly under the new scheme.
                                                       3. Eliminate any data memory page switching.
3. Data memory paging is slightly redefined.                 Redefine data variables to reallocate them.
      STATUS register is modified.                     4. Verify all writes to STATUS, OPTION, and FSR
                                                             registers since these have changed.
4. Four new instructions have been added:              5. Change reset vector to 0000h.
      RETURN, RETFIE, ADDLW, and SUBLW.
      Two instructions TRIS and OPTION are being
      phased out although they are kept for
      compatibility with PIC16C5X.

5. OPTION and TRIS registers are made
      addressable.

6. Interrupt capability is added. Interrupt vector is
      at 0004h.

7. Stack size is increased to 8 deep.

8. Reset vector is changed to 0000h.

9. Reset of all registers is revised. Three different
      reset (and wake-up) types are recognized.
      Registers are reset differently.

10. Wake up from SLEEP through interrupt is
      added.

11. Two separate timers, Oscillator Start-up Timer
      (OST) and Power-up Timer (PWRT) are
      included for more reliable power-up. These
      timers are invoked selectively to avoid
      unnecessary delays on power-up and wake-up.

12. PORTB has weak pull-ups and interrupt on
      change feature.

13. Timer0 clock input, T0CKI pin is also a port pin
      (RA4/T0CKI) and has a TRIS bit.

14. FSR is made a full 8-bit register.

15. "In-circuit programming" is made possible. The
      user can program PIC16C55X devices using
      only five pins: VDD, VSS, VPP, RB6 (clock) and
      RB7 (data in/out).

16. PCON status register is added with a
      Power-on-Reset (POR) status bit.

17. Code protection scheme is enhanced such that
      portions of the program memory can be
      protected, while the remainder is unprotected.

18. PORTA inputs are now Schmitt Trigger inputs.

1997 Microchip Technology Inc.  Preliminary          DS40143B-page 87
PIC16C55X(A)

NOTES:

DS40143B-page 88  Preliminary   1997 Microchip Technology Inc.
                                                                                            PIC16C55X(A)

INDEX                                                                                             COMF ......................................................................... 56
                                                                                                  DECF.......................................................................... 56
A                                                                                                 DECFSZ ..................................................................... 56
                                                                                                  GOTO ......................................................................... 57
ADDLW Instruction ............................................................. 53                INCF ........................................................................... 57
ADDWF Instruction ............................................................. 53                INCFSZ....................................................................... 57
ANDLW Instruction ............................................................. 53                IORLW........................................................................ 57
ANDWF Instruction ............................................................. 53                IORWF........................................................................ 58
Architectural Overview .......................................................... 9               MOVF ......................................................................... 58
Assembler                                                                                         MOVLW ...................................................................... 58
                                                                                                  MOVWF...................................................................... 58
      MPASM Assembler..................................................... 64                     NOP............................................................................ 59
                                                                                                  OPTION...................................................................... 59
B                                                                                                 RETFIE....................................................................... 59
                                                                                                  RETLW ....................................................................... 59
BCF Instruction ................................................................... 54            RETURN..................................................................... 60
Block Diagram                                                                                     RLF............................................................................. 60
                                                                                                  RRF ............................................................................ 60
      TIMER0....................................................................... 29            SLEEP ........................................................................ 60
      TMR0/WDT PRESCALER .......................................... 32                            SUBLW....................................................................... 61
BSF Instruction ................................................................... 54            SUBWF....................................................................... 61
BTFSC Instruction............................................................... 54               SWAPF....................................................................... 62
BTFSS Instruction............................................................... 55               TRIS ........................................................................... 62
                                                                                                  XORLW ...................................................................... 62
C                                                                                                 XORWF ...................................................................... 62
                                                                                            Instruction Set Summary .................................................... 51
CALL Instruction ................................................................. 55       INT Interrupt ....................................................................... 46
Clocking Scheme/Instruction Cycle .................................... 12                   INTCON Register ............................................................... 19
CLRF Instruction ................................................................. 55       Interrupts ............................................................................ 45
CLRW Instruction................................................................ 55         IORLW Instruction .............................................................. 57
CLRWDT Instruction ........................................................... 56           IORWF Instruction .............................................................. 58
Code Protection .................................................................. 50
COMF Instruction................................................................ 56         K
Configuration Bits................................................................ 36
                                                                                            KeeLoq Evaluation and Programming Tools ................... 65
D
                                                                                            M
Data Memory Organization ................................................. 14
DECF Instruction................................................................. 56        MOVF Instruction................................................................ 58
DECFSZ Instruction ............................................................ 56          MOVLW Instruction ............................................................ 58
Development Support ......................................................... 63            MOVWF Instruction ............................................................ 58
Development Tools ............................................................. 63          MP-DriveWayTM - Application Code Generator .................. 65
                                                                                            MPLAB C ............................................................................ 65
E                                                                                           MPLAB Integrated Development Environment Software.... 64

External Crystal Oscillator Circuit ....................................... 38              N

F                                                                                           NOP Instruction .................................................................. 59

Fuzzy Logic Dev. System (fuzzyTECH-MP) .................... 65                             O

G                                                                                           One-Time-Programmable (OTP) Devices .............................7
                                                                                            OPTION Instruction ............................................................ 59
General purpose Register File ............................................ 14               OPTION Register ............................................................... 18
GOTO Instruction................................................................ 57         Oscillator Configurations .................................................... 37
                                                                                            Oscillator Start-up Timer (OST) .......................................... 40
I
                                                                                            P
I/O Ports.............................................................................. 23
I/O Programming Considerations........................................ 27                   Package Marking Information ............................................. 86
ICEPIC Low-Cost PIC16CXXX In-Circuit Emulator ............ 63                               Packaging Information ........................................................ 79
ID Locations ........................................................................ 50    PCL and PCLATH .............................................................. 21
INCF Instruction .................................................................. 57      PCON Register ................................................................... 20
INCFSZ Instruction ............................................................. 57         PICDEM-1 Low-Cost PICmicro Demo Board ..................... 64
In-Circuit Serial Programming............................................. 50               PICDEM-2 Low-Cost PIC16CXX Demo Board................... 64
Indirect Addressing, INDF and FSR Registers ................... 22                          PICDEM-3 Low-Cost PIC16CXXX Demo Board ................ 64
Instruction Flow/Pipelining .................................................. 12           PICMASTER In-Circuit Emulator ..................................... 63
Instruction Set                                                                             PICSTART Plus Entry Level Development System......... 63
                                                                                            Pinout Description .............................................................. 11
      ADDLW ....................................................................... 53      Port RB Interrupt................................................................. 46
      ADDWF....................................................................... 53       PORTA ............................................................................... 23
      ANDLW ....................................................................... 53      PORTB ............................................................................... 25
      ANDWF....................................................................... 53       Power Control/Status Register (PCON) ............................. 41
      BCF............................................................................. 54   Power-Down Mode (SLEEP) .............................................. 49
      BSF ............................................................................. 54
      BTFSC ........................................................................ 54
      BTFSS ........................................................................ 55
      CALL ........................................................................... 55
      CLRF........................................................................... 55
      CLRW ......................................................................... 55
      CLRWDT..................................................................... 56

1997 Microchip Technology Inc.  Preliminary                                               DS40143B-page 89
PIC16C55X(A)

Power-On Reset (POR) ...................................................... 40                LIST OF FIGURES
Power-up Timer (PWRT)..................................................... 40
Prescaler ............................................................................. 32    Figure 3-1:   BlocK Diagram ........................................... 10
PRO MATE II Universal Programmer............................... 63                           Figure 3-2:   Clock/Instruction Cycle ............................... 12
Program Memory Organization ........................................... 13                    Figure 4-1:   Program Memory Map and Stack for the
                                                                                                            PIC16C554/PIC6C554(A) .......................... 13
Q                                                                                             Figure 4-2:   Program Memory Map and Stack for the
                                                                                                            PIC16C556(A) ............................................ 13
Quick-Turnaround-Production (QTP) Devices ...................... 7                            Figure 4-3:   Program Memory Map and Stack for the
                                                                                                            PIC16C558/PIC16C558(A) ........................ 13
R                                                                                             Figure 4-4:   Data Memory Map for the
                                                                                                            PIC16C554/554(A) ..................................... 15
RC Oscillator ....................................................................... 38      Figure 4-5:   Data Memory Map for the
Reset................................................................................... 39                 PIC16C558/558(A) ..................................... 15
RETFIE Instruction.............................................................. 59           Figure 4-6:   STATUS Register (Address
RETLW Instruction .............................................................. 59                         03h or 83h) ................................................. 17
RETURN Instruction............................................................ 60             Figure 4-7:   OPTION Register (address 81h) ................ 18
RLF Instruction.................................................................... 60        Figure 4-8:   INTCON Register (address 0Bh
RRF Instruction ................................................................... 60                      or 8Bh)........................................................ 19
                                                                                              Figure 4-9:   PCON Register (Address 8Eh)................... 20
S                                                                                             Figure 4-10:  Loading Of PC In Different Situations ........ 21
                                                                                              Figure 4-11:  Direct/indirect Addressing
SEEVAL Evaluation and Programming System ............... 65                                                PIC16C55X(A)............................................ 22
Serialized Quick-Turnaround-Production (SQTP) Devices ... 7                                   Figure 5-1:   Block Diagram of
SLEEP Instruction ............................................................... 60                        PORT pins RA<3:0>................................... 23
Software Simulator (MPLAB-SIM)....................................... 65                      Figure 5-2:   Block Diagram of RA4 Pin .......................... 23
Special Features of the CPU............................................... 35                 Figure 5-3:   Block Diagram of RB7:RB4 Pins ................ 25
Special Function Registers ................................................. 16               Figure 5-4:   Block Diagram of RB3:RB0 Pins ................ 25
Stack ................................................................................... 21  Figure 5-5:   Successive I/O Operation........................... 27
Status Register.................................................................... 17        Figure 6-1:   TIMER0 Block Diagram .............................. 29
SUBLW Instruction.............................................................. 61            Figure 6-2:   TIMER0 (TMR0) Timing: Internal
SUBWF Instruction.............................................................. 61                          Clock/No PrescaleR ................................... 29
SWAPF Instruction.............................................................. 62            Figure 6-3:   TIMER0 Timing: Internal Clock/
                                                                                                            Prescale 1:2 ............................................... 30
T                                                                                             Figure 6-4:   TIMER0 Interrupt Timing ............................ 30
                                                                                              Figure 6-5:   TIMER0 Timing With External Clock .......... 31
Timer0                                                                                        Figure 6-6:   Block Diagram of thE Timer0/WDT
      TIMER0....................................................................... 29                      Prescaler .................................................... 32
      TIMER0 (TMR0) Interrupt ........................................... 29                  Figure 7-1:   Configuration Word .................................... 36
      TIMER0 (TMR0) Module............................................. 29                    Figure 7-2:   Crystal Operation (or Ceramic Resonator)
      TMR0 with External Clock........................................... 31                                (HS, XT or LP Osc Configuration) .............. 37
                                                                                              Figure 7-3:   External Clock Input Operation
Timer1                                                                                                      (HS, XT or LP Osc Configuration) .............. 37
      Switching Prescaler Assignment................................. 33                      Figure 7-4:   External Parallel Resonant Crystal
                                                                                                            Oscillator Circuit ......................................... 38
Timing Diagrams and Specifications................................... 74                      Figure 7-5:   External Series Resonant Crystal
TMR0 Interrupt .................................................................... 46                      Oscillator Circuit ......................................... 38
TRIS Instruction .................................................................. 62        Figure 7-6:   RC Oscillator Mode .................................... 38
TRISA.................................................................................. 23    Figure 7-7:   Simplified Block Diagram of On-chip
TRISB.................................................................................. 25                  Reset Circuit ............................................... 39
                                                                                              Figure 7-8:   Time-out Sequence on Power-up
W                                                                                                           (MCLR not tied to VDD): Case 1 ................. 43
                                                                                              Figure 7-9:   Time-out Sequence on Power-up
Watchdog Timer (WDT) ...................................................... 47                              (MCLR not tied to VDD): Case 2 ................. 43
                                                                                              Figure 7-10:  Time-out Sequence on Power-up
X                                                                                                           (MCLR tied to VDD)..................................... 43
                                                                                              Figure 7-11:  External Power-on Reset Circuit
XORLW Instruction ............................................................. 62                          (For Slow VDD Power-up) ........................... 44
XORWF Instruction ............................................................. 62            Figure 7-12:  Interrupt Logic ............................................ 45
                                                                                              Figure 7-13:  INT Pin Interrupt Timing ............................. 46
LIST OF EXAMPLES                                                                              Figure 7-14:  Watchdog Timer Block Diagram................. 48
                                                                                              Figure 7-15:  Summary of Watchdog Timer
Example 3-1: Instruction Pipeline Flow .................... 12                                              Registers .................................................... 48
Example 4-1: Ndirect Addressing............................. 22                               Figure 7-16:  Wake-up from Sleep Through
Example 5-1: Read-Modify-Write Instructions                                                                 Interrupt ...................................................... 49
                                                                                              Figure 7-17:  Typical In-Circuit Serial Programming
                  on an I/O Port..................................... 27                                    Connection ................................................. 50
Example 6-1: Changing Prescaler

                 (Timer0WDT)................................... 33
Example 6-2: Changing prescaler

                 (WDTTimer0)................................... 33
Example 7-1: Saving the Status and W Registers

                   in RAM ............................................. 47

DS40143B-page 90  Preliminary                                                                                  1997 Microchip Technology Inc.
                                                                                   PIC16C55X(A)

Figure 8-1:   General Format for Instructions .................. 51
Figure 10-1:  Load Conditions.......................................... 73
Figure 10-2:  External Clock Timing................................. 74
Figure 10-3:  CLKOUT and I/O Timing............................. 75
Figure 10-4:  Reset, Watchdog Timer, Oscillator
              Start-Up Timer and Power-Up Timer
Figure 10-5:  Timing ......................................................... 76
Figure 10-6:  TIMER0 Clock Timing................................. 77
              Load Conditions.......................................... 77

LIST OF TABLES

Table 1-1: PIC16C55X(A) Family of Devices.......... 6
Table 3-1: PIC16C55X(A) Pinout Description ....... 11
Table 4-1: Special Registers for the

                PIC16C55X(A) ..................................... 16
Table 5-1: PORTA Functions ................................ 24
Table 5-2: Summary of Registers Associated

                With PORTA ........................................ 24
Table 5-3: PORTB Functions ................................ 26
Table 5-4: Summary of Registers Associated

                with PORTB ......................................... 26
Table 6-1: Registers Associated with Timer0........ 33
Table 7-1: Capacitor Selection for Ceramic

                Resonators (Preliminary) ..................... 37
Table 7-2: Capacitor Selection for Crystal

                Oscillator (Preliminary)......................... 37
Table 7-3: Time-out in Various Situations ............. 41
Table 7-4: StatUs Bits and Their Significance....... 41
Table 7-5: Initialization Condition for Special

                Registers.............................................. 42
Table 7-6: Initialization Condition for Registers..... 42
Table 8-1: OPCODE Field Descriptions................ 51
Table 8-2: PIC16C55X(A) Instruction SeT ............ 52
Table 9-1: Development Tools From Microchip .... 66
Table 10-1: Cross Reference of Device Specs

                for Oscillator Configurations and
                Frequencies of Operation
                (Commercial Devices).......................... 67
Table 10-2: External Clock Timing
                Requirements....................................... 74
Table 10-3: CLKOUT and I/O Timing
                Requirements....................................... 75
Table 10-4: Reset, Watchdog Timer, Oscillator
                Start-up Timer and Power-up Timer
                Requirements....................................... 76
Table 10-5: TIMER0 Clock Requirements .............. 77

1997 Microchip Technology Inc.  Preliminary                                      DS40143B-page 91
PIC16C55X(A)

NOTES:

DS40143B-page 92  Preliminary   1997 Microchip Technology Inc.
                                                           PIC16C55X(A)

ON-LINE SUPPORT                                            The procedure to connect will vary slightly from country
                                                           to country. Please check with your local CompuServe
Microchip provides two methods of on-line support.         agent for details if you have a problem. CompuServe
These are the Microchip BBS and the Microchip World        service allow multiple users various baud rates
Wide Web (WWW) site.                                       depending on the local point of access.

Use Microchip's Bulletin Board Service (BBS) to get        The following connect procedure applies in most loca-
current information and help about Microchip products.     tions.
Microchip provides the BBS communication channel
for you to use in extending your technical staff with      1. Set your modem to 8-bit, No parity, and One stop
microcontroller and memory experts.                           (8N1). This is not the normal CompuServe setting
                                                              which is 7E1.
To provide you with the most responsive service possible,
the Microchip systems team monitors the BBS, posts         2. Dial your local CompuServe access number.
the latest component data and software tool updates,
provides technical help and embedded systems               3. Depress the key and a garbage string will
insights, and discusses how Microchip products pro-           appear because CompuServe is expecting a 7E1
vide project solutions.                                       setting.

The web site, like the BBS, is used by Microchip as a      4. Type +, depress the key and "Host Name:"
means to make files and information easily available to       will appear.
customers. To view the site, the user must have access
to the Internet and a web browser, such as Netscape or     5. Type MCHIPBBS, depress the key and you
Microsoft Explorer. Files are also available for FTP          will be connected to the Microchip BBS.
download from our FTP site.
                                                           In the United States, to find the CompuServe phone
Connecting to the Microchip InternetWeb Site               number closest to you, set your modem to 7E1 and dial
                                                           (800) 848-4480 for 300-2400 baud or (800) 331-7166
The Microchip web site is available by using your          for 9600-14400 baud connection. After the system
favorite Internet browser to attach to:                    responds with "Host Name:", type NETWORK, depress
                                                           the key and follow CompuServe's directions.
                     www.microchip.com
                                                           For voice information (or calling from overseas), you
The file transfer site is available by using an FTP ser-   may call (614) 723-1550 for your local CompuServe
vice to connect to:                                        number.

                  ftp.mchip.com/biz/mchip                  Microchip regularly uses the Microchip BBS to distribute
                                                           technical information, application notes, source code,
The web site and file transfer site provide a variety of   errata sheets, bug reports, and interim patches for
services. Users may download files for the latest          Microchip systems software products. For each SIG, a
Development Tools, Data Sheets, Application Notes,         moderator monitors, scans, and approves or disap-
User's Guides, Articles and Sample Programs. A vari-       proves files submitted to the SIG. No executable files
ety of Microchip specific business information is also     are accepted from the user community in general to
available, including listings of Microchip sales offices,  limit the spread of computer viruses.
distributors and factory representatives. Other data
available for consideration is:                            Systems Information and Upgrade Hot Line

Latest Microchip Press Releases                          The Systems Information and Upgrade Line provides
Technical Support Section with Frequently Asked          system users a listing of the latest versions of all of
                                                           Microchip's development systems software products.
   Questions                                               Plus, this line provides information on how customers
Design Tips                                              can receive any currently available upgrade kits.The
Device Errata                                            Hot Line Numbers are:
Job Postings
Microchip Consultant Program Member Listing                    1-800-755-2345 for U.S. and most of Canada, and
Links to other useful web sites related to
                                                                 1-602-786-7302 for the rest of the world.
   Microchip Products
                                                                                                                                             960513
Connecting to the Microchip BBS
                                                              Trademarks: The Microchip name, logo, PIC, PICSTART,
Connect worldwide to the Microchip BBS using either           PICMASTER, PRO MATE and In-Circuit Serial Program-
the Internet or the CompuServe communications net-           ming are registered trademarks of Microchip Technology
work.                                                         Incorporated in the U.S.A. and other countries. PICmicro,
                                                              FlexROM, MPLAB, and fuzzyLAB, are trademarks and
Internet:                                                     SQTP is a service mark of Microchip in the U.S.A.

You can telnet or ftp to the Microchip BBS at the             fuzzyTECH is a registered trademark of Inform Software
address:                                                      Corporation. IBM, IBM PC-AT are registered trademarks of
                                                              International Business Machines Corp. Pentium is a trade-
                  mchipbbs.microchip.com                      mark of Intel Corporation. Windows is a trademark and
                                                              MS-DOS, Microsoft Windows are registered trademarks
CompuServe Communications Network:                            of Microsoft Corporation. CompuServe is a registered
                                                              trademark of CompuServe Incorporated.
When using the BBS via the Compuserve Network,
in most cases, a local call is your only expense. The         All other trademarks mentioned herein are the property of
Microchip BBS connection does not use CompuServe              their respective companies.
membership services, therefore you do not need
CompuServe membership to join Microchip's BBS.
There is no charge for connecting to the Microchip BBS.

1997 Microchip Technology Inc.  Preliminary              DS40143B-page 93
PIC16C55X(A)

READER RESPONSE

It is our intention to provide you with the best documentation possible to ensure successful use of your Microchip product.
If you wish to provide your comments on organization, clarity, subject matter, and ways in which our documentation can
better serve you, please FAX your comments to the Technical Publications Manager at (602) 786-7578.
Please list the following information, and use this outline to provide us with your comments about this Data Sheet.

To: Technical Publications Manager                        Total Pages Sent
RE: Reader Response                                   FAX: (______) _________ - _________

From: Name
          Company
          Address
          City / State / ZIP / Country
          Telephone: (_______) _________ - _________

Application (optional):
Would you like a reply? Y N

Device: PIC16C55X(A)  Literature Number: DS40143B
Questions:

1. What are the best features of this document?

2. How does this document meet your hardware and software development needs?

3. Do you find the organization of this data sheet easy to follow? If not, why?

4. What additions to the data sheet do you think would enhance the structure and subject?

5. What deletions from the data sheet could be made without affecting the overall usefullness?

6. Is there any incorrect or misleading information (what and where)?

7. How would you improve this document?

8. How would you improve our software, systems, and silicon products?

DS40143B-page 94                         Preliminary                              1997 Microchip Technology Inc.
                                                                           PIC16C55X(A)

PIC16C55X(A) Product Identification System

To order or to obtain information, e.g., on pricing or delivery, please use the listed part numbers, and refer to the factory or the listed
sales offices.

PART NO. -XX X /XX XXX                                        3-Digit Pattern Code for QTP (blank otherwise)
                                                    Pattern:

                                  Package:                    P=     PDIP                            Examples:
                                                              SO =   SOIC (Gull Wing, 300 mil body)
                                  Temperature                 SS =   SSOP (209 mil)                  f) PIC16C554A - 04/P 301 =
                                  Range:                      JW* =  Windowed CERDIP                      Commercial temp., PDIP pack-
                                                                                                          age, 4 MHz, normal VDD limits,
                                  Frequency                   -=     0C to +70C                         QTP pattern #301.
                                  Range:                      I=     40C to +85C
                                                              E=     40C to +125C                 g) PIC16LC558- 04I/SO =
                                                                                                          Industrial temp., SOIC pack-
                                                              04 =   200kHz (LP osc)                      age, 200kHz, extended VDD
                                                              04 =   4 MHz (XT and RC osc)                limits.
                                                              20 =   20 MHz (HS osc)

                                  Device:                     PIC16C55X :VDD range 3.0V to 5.5V
                                                              PIC16C55XT:VDD range 3.0V to 5.5V (Tape and Reel)
                                                              PIC16C55XA: VDD range 3.0V to 5.5V
                                                              PIC16C55XAT: VDD range 3.0V to 5.5V (Tape and Reel)
                                                              PIC16LC55X:VDD range 2.5V to 5.5V
                                                              PIC16LC55XT:VDD range 2.5V to 5.5V (Tape and Reel)

* JW Devices are UV erasable and can be programmed to any device configuration. JW Devices meet the electrical requirement of
each oscillator type (including LC devices).

Sales and Support

  Products supported by a preliminary Data Sheet may possibly have an errata sheet describing minor operational differences and
  recommended workarounds. To determine if an errata sheet exists for a particular device, please contact one of the following:

    1. Your local Microchip sales office (see below)
    2. The Microchip Corporate Literature Center U.S. FAX: (602) 786-7277
    3. The Microchip's Bulletin Board, via your local CompuServe number (CompuServe membership NOT required).
  Please specify which device, revision of silicon and Data Sheet (include Literature #) you are using.
  For latest version information and upgrade kits for Microchip Development Tools, please call 1-800-755-2345 or 1-602-786-7302.

1997 Microchip Technology Inc.                              Preliminary                                     DS40143B-page 95
M

                  WORLDWIDE SALES & SERVICE

AMERICAS                              ASIA/PACIFIC                               EUROPE

Corporate Office                      Hong Kong                                  United Kingdom

Microchip Technology Inc.             Microchip Asia Pacific                     Arizona Microchip Technology Ltd.
2355 West Chandler Blvd.              RM 3801B, Tower Two                        Unit 6, The Courtyard
Chandler, AZ 85224-6199               Metroplaza                                 Meadow Bank, Furlong Road
Tel: 602-786-7200 Fax: 602-786-7277   223 Hing Fong Road                         Bourne End, Buckinghamshire SL8 5AJ
Technical Support: 602 786-7627       Kwai Fong, N.T., Hong Kong                 Tel: 44-1628-851077 Fax: 44-1628-850259
Web: http://www.microchip.com         Tel: 852-2-401-1200 Fax: 852-2-401-3431
                                                                                 France
Atlanta                               India
                                                                                 Arizona Microchip Technology SARL
Microchip Technology Inc.             Microchip Technology Inc.                  Zone Industrielle de la Bonde
500 Sugar Mill Road, Suite 200B       India Liaison Office                       2 Rue du Buisson aux Fraises
Atlanta, GA 30350                     No. 6, Legacy, Convent Road                91300 Massy, France
Tel: 770-640-0034 Fax: 770-640-0307   Bangalore 560 025, India                   Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79
                                      Tel: 91-80-229-4036 Fax: 91-80-559-9840
Boston                                                                           Germany
                                      Korea
Microchip Technology Inc.                                                        Arizona Microchip Technology GmbH
5 Mount Royal Avenue                  Microchip Technology Korea                 Gustav-Heinemann-Ring 125
Marlborough, MA 01752                 168-1, Youngbo Bldg. 3 Floor               D-81739 Mchen, Germany
Tel: 508-480-9990 Fax: 508-480-8575   Samsung-Dong, Kangnam-Ku                   Tel: 49-89-627-144 0 Fax: 49-89-627-144-44
                                      Seoul, Korea
Chicago                               Tel: 82-2-554-7200 Fax: 82-2-558-5934      Italy

Microchip Technology Inc.             Shanghai                                   Arizona Microchip Technology SRL
333 Pierce Road, Suite 180                                                       Centro Direzionale Colleoni
Itasca, IL 60143                      Microchip Technology                       Palazzo Taurus 1 V. Le Colleoni 1
Tel: 630-285-0071 Fax: 630-285-0075   RM 406 Shanghai Golden Bridge Bldg.        20041 Agrate Brianza
                                      2077 Yan'an Road West, Hong Qiao District  Milan, Italy
Dallas                                Shanghai, PRC 200335                       Tel: 39-39-6899939 Fax: 39-39-6899883
                                      Tel: 86-21-6275-5700
Microchip Technology Inc.             Fax: 86 21-6275-5060                       JAPAN
14651 Dallas Parkway, Suite 816
Dallas, TX 75240-8809                 Singapore                                  Microchip Technology Intl. Inc.
Tel: 972-991-7177 Fax: 972-991-8588                                              Benex S-1 6F
                                      Microchip Technology Taiwan                3-18-20, Shinyokohama
Dayton                                Singapore Branch                           Kohoku-Ku, Yokohama-shi
                                      200 Middle Road                            Kanagawa 222 Japan
Microchip Technology Inc.             #07-02 Prime Centre                        Tel: 81-45-471- 6166 Fax: 81-45-471-6122
Two Prestige Place, Suite 150         Singapore 188980
Miamisburg, OH 45342                  Tel: 65-334-8870 Fax: 65-334-8850                                                              8/29/97
Tel: 937-291-1654 Fax: 937-291-9175
                                      Taiwan, R.O.C
Los Angeles
                                      Microchip Technology Taiwan
Microchip Technology Inc.             10F-1C 207
18201 Von Karman, Suite 1090          Tung Hua North Road
Irvine, CA 92612                      Taipei, Taiwan, ROC
Tel: 714-263-1888 Fax: 714-263-1338   Tel: 886 2-717-7175 Fax: 886-2-545-0139

New York

Microchip Technology Inc.
150 Motor Parkway, Suite 416
Hauppauge, NY 11788
Tel: 516-273-5305 Fax: 516-273-5335

San Jose

Microchip Technology Inc.
2107 North First Street, Suite 590
San Jose, CA 95131
Tel: 408-436-7950 Fax: 408-436-7955

Toronto

Microchip Technology Inc.
5925 Airport Road, Suite 200
Mississauga, Ontario L4V 1W1, Canada
Tel: 905-405-6279 Fax: 905-405-6253

All rights reserved. 1997, Microchip Technology Incorporated, USA. 9/97        Printed on recycled paper.

Information contained in this publication regarding device applications and the like is intended for suggestion only and may be superseded by updates. No representation or
warranty is given and no liability is assumed by Microchip Technology Incorporated with respect to the accuracy or use of such information, or infringement of patents or other
intellectual property rights arising from such use or otherwise. Use of Microchip's products as critical components in life support systems is not authorized except with express
written approval by Microchip. No licenses are conveyed, implicitly or otherwise, under any intellectual property rights. The Microchip logo and name are registered trademarks
of Microchip Technology Inc. in the U.S.A. and other countries. All rights reserved. All other trademarks mentioned herein are the property of their respective companies.

DS40143B-page 96                                                                  1997 Microchip Technology Inc.
This datasheet has been downloaded from:
             www.EEworld.com.cn

                 Free Download
           Daily Updated Database
      100% Free Datasheet Search Site
  100% Free IC Replacement Search Site
     Convenient Electronic Dictionary

               Fast Search System
             www.EEworld.com.cn

                                                 All Datasheets Cannot Be Modified Without Permission
                                                                Copyright Each Manufacturing Company

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 大学堂 TI培训 Datasheet 电子工程

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved