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

型号

产品描述

搜索
 

PIC12F508

器件型号:PIC12F508
文件大小:1297.36KB,共0页
厂商名称:MICROCHIP [Microchip Technology]
厂商官网:http://www.microchip.com/
下载文档

器件描述

文档预览

PIC12F508器件文档内容

      PIC12F508/509/16F505
                       Data Sheet

8/14-Pin, 8-Bit Flash Microcontrollers

*8-bit, 8-pin Devices Protected by Microchip's Low Pin Count Patent: U.S. Patent No. 5,847,450. Additional U. S. and
foreign patents and applications may be issued or pending.

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

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

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

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

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

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

Information contained in this publication regarding device       Trademarks
applications and the like is intended through suggestion only
and may be superseded by updates. It is your responsibility to   The Microchip name and logo, the Microchip logo, Accuron,
ensure that your application meets with your specifications.     dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART,
No representation or warranty is given and no liability is       PRO MATE, PowerSmart, rfPIC, and SmartShunt are
assumed by Microchip Technology Incorporated with respect        registered trademarks of Microchip Technology Incorporated
to the accuracy or use of such information, or infringement of   in the U.S.A. and other countries.
patents or other intellectual property rights arising from such
use or otherwise. Use of Microchip's products as critical        AmpLab, FilterLab, MXDEV, MXLAB, PICMASTER, SEEVAL,
components in life support systems is not authorized except      SmartSensor and The Embedded Control Solutions Company
with express written approval by Microchip. No licenses are      are registered trademarks of Microchip Technology
conveyed, implicitly or otherwise, under any intellectual        Incorporated in the U.S.A.
property rights.
                                                                 Analog-for-the-Digital Age, Application Maestro, dsPICDEM,
                                                                 dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,
                                                                 FanSense, FlexROM, fuzzyLAB, In-Circuit Serial
                                                                 Programming, ICSP, ICEPIC, Migratable Memory, MPASM,
                                                                 MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net,
                                                                 PICLAB, PICtail, PowerCal, PowerInfo, PowerMate,
                                                                 PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial,
                                                                 SmartTel and Total Endurance are trademarks of Microchip
                                                                 Technology Incorporated in the U.S.A. and other countries.

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

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

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

                                                                      Printed on recycled paper.

                                                                 Microchip received ISO/TS-16949:2002 quality system certification for
                                                                 its worldwide headquarters, design and wafer fabrication facilities in
                                                                 Chandler and Tempe, Arizona and Mountain View, California in
                                                                 October 2003. The Company's quality system processes and
                                                                 procedures are for its PICmicro 8-bit MCUs, KEELOQ code hopping
                                                                 devices, Serial EEPROMs, microperipherals, nonvolatile memory and
                                                                 analog products. In addition, Microchip's quality system for the design
                                                                 and manufacture of development systems is ISO 9001:2000 certified.

DS41236A-page ii  Preliminary                                     2004 Microchip Technology Inc.
             PIC12F508/509/16F505

       8/14-Pin, 8-Bit Flash Microcontroller

Devices Included In This Data Sheet:                - LP:        Power-saving, low-frequency crystal
                                                    - EC:
PIC12F508                                                      High-speed external clock input
PIC12F509                                                      (PIC16F505 only)
PIC16F505
                                                    Low-Power Features/CMOS Technology:
High-Performance RISC CPU:
                                                    Operating Current:
Only 33 single-word instructions to learn            - < 350 A @ 2V, 4 MHz
All single-cycle instructions except for program
                                                    Standby Current:
   branches, which are two-cycle                       - 100 nA @ 2V, typical
12-bit wide instructions
2-level deep hardware stack                        Low-power, high-speed Flash technology:
Direct, Indirect and Relative Addressing modes       - 100,000 Flash endurance
                                                       - > 40 year retention
   for data and instructions
8-bit wide data path                               Fully static design
8 Special Function Hardware registers             Wide operating voltage range: 2.0V to 5.5V
Operating speed:                                  Wide temperature range:

   - DC 20 MHz clock input (PIC16F505 only)          - Industrial: -40C to +85C
   - DC 200 ns instruction cycle (PIC16F505          - Extended: -40C to +125C

      only)                                         Peripheral Features (PIC12F508/509):
   - DC 4 MHz clock input
   - DC 1000 ns instruction cycle                  6 I/O pins:
                                                       - 5 I/O pins with individual direction control
Special Microcontroller Features:                      - 1 input only pin
                                                       - High current sink/source for direct LED drive
4 MHz precision internal oscillator:                 - Wake-on-change
                                                       - Weak pull-ups
- Factory calibrated to 1%
                                                    8-bit real-time clock/counter (TMR0) with 8-bit
In-Circuit Serial ProgrammingTM (ICSPTM)             programmable prescaler

In-Circuit Debugging (ICD) support

Power-on Reset (POR)                              Peripheral Features (PIC16F505):

Device Reset Timer (DRT)                           12 I/O pins:
                                                       - 11 I/O pins with individual direction control
Watchdog Timer (WDT) with dedicated on-chip          - 1 input only pin
   RC oscillator for reliable operation                - High current sink/source for direct LED drive
                                                       - Wake-on-change
Programmable code protection                         - Weak pull-ups

Multiplexed MCLR input pin                         8-bit real-time clock/counter (TMR0) with 8-bit
                                                       programmable prescaler
Internal weak pull-ups on I/O pins

Power-saving Sleep mode

Wake-up from Sleep on pin change

Selectable oscillator options:

- INTRC: 4 MHz precision Internal oscillator

- EXTRC: External low-cost RC oscillator

- XT: Standard crystal/resonator

- HS:  High-speed crystal/resonator
       (PIC16F505 only)

2004 Microchip Technology Inc.                     Preliminary  DS41236A-page 1
PIC12F508/509/16F505

Pin Diagrams                                   PDIP, SOIC, MSOP

  PDIP, SOIC, TSSOP

                      VDD  1  14  VSS
   RB5/OSC1/CLKIN                                                                                                                    PIC12F508/509RB0/ICSPDATVDD18VSS
RB4/OSC2/CLKOUT               PIC16F505RB1/ISCPCLK
                           2  13  RB2          GP5/OSC1/CLKIN        2                                                                              7  GP0/ICSPDAT
      RB3/MCLR/VPP                RC0
            RC5/T0CKI      3  12  RC1                      GP4/OSC2  3                                                                              6  GP1/ICSPCLK
                      RC4         RC2
                      RC3  4  11               GP3/MCLR/VPP          4                                                                              5  GP2/T0CKI

                           5  10

                           6  9

                           7  8

                              Program Memory   Data Memory                                                                                             Timers
                                                                                                                                                        8-bit
            Device                                                      I/O
                                                                                                                                                           1
PIC12F508                     Flash (words)    SRAM (bytes)                                                                                                1
PIC12F509                                                                                                                                                  1
PIC16F505                         512                      25           6
                                  1024
                                  1024                     41           6

                                                           72           12

DS41236A-page 2                               Preliminary                2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

Table of Contents

1.0 General Description...................................................................................................................................................................... 5
2.0 PIC12F508/509/16F505 Device Varieties ................................................................................................................................... 7
3.0 Architectural Overview ................................................................................................................................................................. 9
4.0 Memory Organization ................................................................................................................................................................. 15
5.0 I/O Port ....................................................................................................................................................................................... 29
6.0 Timer0 Module and TMR0 Register ........................................................................................................................................... 33
7.0 Special Features Of The CPU.................................................................................................................................................... 39
8.0 Instruction Set Summary ............................................................................................................................................................ 55
9.0 Development Support................................................................................................................................................................. 63
10.0 Electrical Characteristics ............................................................................................................................................................ 69
11.0 DC and AC Characteristics Graphs and Charts ......................................................................................................................... 81
12.0 Packaging Information................................................................................................................................................................ 83
Index .................................................................................................................................................................................................... 91
On-Line Support................................................................................................................................................................................... 93
Systems Information and Upgrade Hot Line ........................................................................................................................................ 93
Reader Response ................................................................................................................................................................................ 94
Product Identification System .............................................................................................................................................................. 95

                                    TO OUR VALUED CUSTOMERS

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

Most Current Data Sheet

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

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

Errata

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

Customer Notification System

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

2004 Microchip Technology Inc.  Preliminary  DS41236A-page 3
PIC12F508/509/16F505

NOTES:

DS41236A-page 4  Preliminary   2004 Microchip Technology Inc.
                                                             PIC12F508/509/16F505

1.0 GENERAL DESCRIPTION                                      1.1 Applications

The PIC12F508/509/16F505 devices from Microchip              The PIC12F508/509/16F505 devices fit in applications
Technology are low-cost, high-performance, 8-bit, fully-     ranging from personal care appliances and security
static, Flash-based CMOS microcontrollers. They              systems to low-power remote transmitters/receivers.
employ a RISC architecture with only 33 single word/         The Flash technology makes customizing application
single cycle instructions. All instructions are single       programs (transmitter codes, appliance settings,
cycle (200 s) except for program branches, which            receiver frequencies, etc.) extremely fast and conve-
take two cycles. The PIC12F508/509/16F505 devices            nient. The small footprint packages, for through hole or
deliver performance an order of magnitude higher than        surface mounting, make these microcontrollers perfect
their competitors in the same price category. The 12-bit     for applications with space limitations. Low cost, low
wide instructions are highly symmetrical, resulting in a     power, high performance, ease of use and I/O flexibility
typical 2:1 code compression over other 8-bit                make the PIC12F508/509/16F505 devices very versa-
microcontrollers in its class. The easy to use and easy      tile even in areas where no microcontroller use has
to remember instruction set reduces development time         been considered before (e.g., timer functions, logic and
significantly.                                               PLDs in larger systems and coprocessor applications).

The PIC12F508/509/16F505 products are equipped
with special features that reduce system cost and
power requirements. The Power-on Reset (POR) and
Device Reset Timer (DRT) eliminate the need for
external Reset circuitry. There are four oscillator config-
urations to choose from (six on the PIC16F505), includ-
ing INTRC Internal Oscillator mode and the power-
saving LP (Low-power) Oscillator mode. Power-saving
Sleep mode, Watchdog Timer and code protection
features improve system cost, power and reliability.

The PIC12F508/509/16F505 devices are available in
the cost-effective Flash programmable version, which
is suitable for production in any volume. The customer
can take full advantage of Microchip's price leadership
in Flash programmable microcontrollers, while
benefiting from the Flash programmable flexibility.

The PIC12F508/509/16F505 products are supported
by a full-featured macro assembler, a software simula-
tor, an in-circuit emulator, a `C' compiler, a low-cost
development programmer and a full featured program-
mer. All the tools are supported on IBM PC and
compatible machines.

TABLE 1-1: PIC12F508/509/16F505 DEVICES

                                                             PIC12F508          PIC12F509  PIC16F505

Clock     Maximum Frequency of Operation (MHz)               4                  4          20

Memory    Flash Program Memory                               512                1024       1024

          Data Memory (bytes)                                25                 41         72

Peripherals Timer Module(s)                                  TMR0               TMR0       TMR0

          Wake-up from Sleep on Pin Change                   Yes                Yes        Yes

Features  I/O Pins                                           5                  5          11

          Input Pins                                         1                  1          1

          Internal Pull-ups                                  Yes                Yes        Yes

          In-Circuit Serial Programming                      Yes                Yes        Yes

          Number of Instructions                             33                 33         33

          Packages                                           8-pin PDIP, SOIC,  8-pin PDIP, SOIC, 14-pin PDIP, SOIC,
                                                                    MSOP
                                                                                MSOP       TSSOP

The PIC12F508/509/16F505 devices have Power-on Reset, selectable Watchdog Timer, selectable code-protect, high I/O current
capability and precision internal oscillator.
The PIC12F508/509/16F505 device uses serial programming with data pin RB0/GP0 and clock pin RB1/GP1.

2004 Microchip Technology Inc.             Preliminary                                    DS41236A-page 5
PIC12F508/509/16F505

NOTES:

DS41236A-page 6  Preliminary   2004 Microchip Technology Inc.
                                                          PIC12F508/509/16F505

2.0 PIC12F508/509/16F505 DEVICE                           2.2 Serialized Quick Turn
         VARIETIES                                                 ProgrammingSM (SQTPSM) Devices

A variety of packaging options are available. Depend-     Microchip offers a unique programming service, where
ing on application and production requirements, the       a few user-defined locations in each device are
proper device option can be selected using the            programmed with different serial numbers. The serial
information in this section. When placing orders, please  numbers may be random, pseudo-random or
use the PIC12F508/509/16F505 Product Identification       sequential.
System at the back of this data sheet to specify the
correct part number.                                      Serial programming allows each device to have a
                                                          unique number, which can serve as an entry code,
2.1 Quick Turn Programming (QTP)                          password or ID number.
         Devices

Microchip offers a QTP programming service for
factory production orders. This service is made
available for users who choose not to program
medium-to-high quantity units and whose code
patterns have stabilized. The devices are identical to
the Flash devices but with all Flash locations and fuse
options already programmed by the factory. Certain
code and prototype verification procedures do apply
before production shipments are available. Please
contact your local Microchip Technology sales office for
more details.

2004 Microchip Technology Inc.  Preliminary              DS41236A-page 7
PIC12F508/509/16F505

NOTES:

DS41236A-page 8  Preliminary   2004 Microchip Technology Inc.
                                                            PIC12F508/509/16F505

3.0 ARCHITECTURAL OVERVIEW                                  The PIC12F508/509/16F505 devices contain an 8-bit
                                                            ALU and working register. The ALU is a general
The high performance of the PIC12F508/509/16F505            purpose arithmetic unit. It performs arithmetic and
devices can be attributed to a number of architectural      Boolean functions between data in the working register
features commonly found in RISC microprocessors.            and any register file.
To begin with, the PIC12F508/509/16F505 devices
use a Harvard architecture in which program and data        The ALU is 8 bits wide and capable of addition, subtrac-
are accessed on separate buses. This improves               tion, shift and logical operations. Unless otherwise
bandwidth over traditional von Neumann architec-            mentioned, arithmetic operations are two's comple-
tures where program and data are fetched on the             ment in nature. In two-operand instructions, one
same bus. Separating program and data memory fur-           operand is typically the W (working) register. The other
ther allows instructions to be sized differently than the   operand is either a file register or an immediate
8-bit wide data word. Instruction opcodes are 12 bits       constant. In single operand instructions, the operand is
wide, making it possible to have all single-word            either the W register or a file register.
instructions. A 12-bit wide program memory access
bus fetches a 12-bit instruction in a single cycle. A       The W register is an 8-bit working register used for ALU
two-stage pipeline overlaps fetch and execution of          operations. It is not an addressable register.
instructions. Consequently, all instructions (33)
execute in a single cycle (200 ns @ 20 MHz, 1 s @          Depending on the instruction executed, the ALU may
4 MHz) except for program branches.                         affect the values of the Carry (C), Digit Carry (DC) and
                                                            Zero (Z) bits in the Status register. The C and DC bits
The Table below lists program memory (Flash) and            operate as a borrow and digit borrow out bit, respec-
data memory (RAM) for the PIC12F508/509/16F505              tively, in subtraction. See the SUBWF and ADDWF
devices.                                                    instructions for examples.

                                                            A simplified block diagram is shown in Figure 3-2, with
                                                            the corresponding device pins described in Table 3-3.

TABLE 3-1: PIC12F508/509/16F505
                     MEMORY

                                 Memory

      Device  Program                    Data
              512 x 12                   25 x 8
PIC12F508     1024 x 12                  41 x 8
PIC12F509     1024 x 12                  72 x 8
PIC16F505

The PIC12F508/509/16F505 devices can directly or
indirectly address its register files and data memory. All
Special Function Registers (SFR), including the PC,
are mapped in the data memory. The PIC12F508/509/
16F505 devices have a highly orthogonal (symmetri-
cal) instruction set that makes it possible to carry out
any operation, on any register, using any addressing
mode. This symmetrical nature and lack of "special
optimal situations" make programming with the
PIC12F508/509/16F505 devices simple, yet efficient.
In addition, the learning curve is reduced significantly.

2004 Microchip Technology Inc.                  Preliminary  DS41236A-page 9
PIC12F508/509/16F505

FIGURE 3-1:       PIC12F508/509 BLOCK DIAGRAM

                                   12                      Data Bus                          8  GPIO

                     Flash             Program Counter
                  512 x 12 or
                  1024 x 12            Stack 1                      RAM                               GP0/ISCPDAT
                                       Stack 2                    25 x 8 or                           GP1/ISCPCLK
                   Program                                         41 x 8                             GP2/T0CKI
                   Memory                                                                             GP3/MCLR/VPP
                                                                     File                             GP4/OSC2
                                                                 Registers                            GP5/OSC1/CLKIN

Program           12                                   RAM Addr 9
   Bus
                                                                 Addr MUX
                  Instruction reg

                                       Direct Addr 5             Indirect
                                                           5-7 Addr

                                                           FSR reg

                                                                                 Status reg
                                   8

                                                        3  MUX

OSC1/CLKIN        Instruction          Device Reset            ALU
OSC2              Decode &                  Timer       8

                    Control              Power-on             W reg
                                            Reset
                     Timing
                  Generation             Watchdog
                                            Timer

                  Internal RC      MCLR                    Timer0
                      OSC                    VDD, VSS

DS41236A-page 10                                Preliminary                                      2004 Microchip Technology Inc.
                                                PIC12F508/509/16F505

TABLE 3-2: PIC12F508/509 PINOUT DESCRIPTION

     Name       Function         Input  Output                    Description
                                 Type    Type

GP0/ICSPDAT     GP0              TTL CMOS Bidirectional I/O pin. Can be software programmed for internal
                                                       weak pull-up and wake-up from Sleep on pin change.

                ICSPDAT ST CMOS In-Circuit Serial ProgrammingTM data pin.

GP1\ICSPCLK     GP1              TTL CMOS Bidirectional I/O pin. Can be software programmed for internal
                                                       weak pull-up and wake-up from Sleep on pin change.

                ICSPCLK ST CMOS In-Circuit Serial Programming clock pin.

GP2/T0CKI       GP2              TTL CMOS Bidirectional I/O pin.

                T0CKI ST                -- Clock input to TMR0.

GP3/MCLR/VPP    GP3              TTL    -- Input pin. Can be software programmed for internal weak

                                                pull-up and wake-up from Sleep on pin change.

                MCLR ST                 -- Master Clear (Reset). When configured as MCLR, this pin is
                                                an active-low Reset to the device. Voltage on MCLR/VPP must
                                                not exceed VDD during normal device operation or the device
                                                will enter Programming mode. Weak pull-up always on if
                                                configured as MCLR.

                VPP              HV     -- Programming voltage input.

GP4/OSC2        GP4              TTL CMOS Bidirectional I/O pin.

                OSC2             -- XTAL Oscillator crystal output. Connections to crystal or resonator in
                                                      Crystal Oscillator mode (XT and LP modes only, GPIO in other
                                                      modes).

GP5/OSC1/CLKIN  GP5              TTL CMOS Bidirectional I/O pin.

                OSC1 XTAL -- Oscillator crystal input.

                CLKIN ST                -- External clock source input .

VDD             VDD              --     P Positive supply for logic and I/O pins.

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

Legend: I = Input, O = Output, I/O = Input/Output, P = Power, -- = Not used, TTL = TTL input,
              ST = Schmitt Trigger input

2004 Microchip Technology Inc.         Preliminary                                            DS41236A-page 11
PIC12F508/509/16F505

FIGURE 3-2:       PIC16F505 BLOCK DIAGRAM

                                   12                      Data Bus                          8  PORTB
                                       Program Counter                                          PORTC

                  Flash                                                                                RB0/ICSPCLK
                                                                                                       RB1/ICSPDAT
                  1K x 12          Stack 1                    RAM                                      RB2
                                   Stack 2                  72 bytes                                   RB3/MCLR/VPP
                  Program                                                                              RB4/OSC2/CLKOUT
                  Memory                                       File                                    RB5/OSC1/CLKIN
                                                           Registers
                                                                                                       RC0
Program           12                                    RAM Addr 9                                     RC1
   Bus                                                                                                 RC2
                                                                                                       RC3
                  Instruction reg                          Addr MUX                                    RC4
                                                                         Indirect                      RC5/T0CKI
                                   Direct Addr 5
                                                                 5-7 Addr

                                                           FSR reg

                                                                                 Status reg
                                   8

                                   Device Reset         3  MUX
                                        Timer
                  Instruction                                  ALU
                  Decode &           Power-on           8
                                        Reset
                    Control                                   W reg
                    Timing           Watchdog
OSC1/CLKIN        Generation            Timer
OSC2/CLKOUT
                                    Internal RC
                                        OSC

                                                           Timer0

                                   MCLR
                                             VDD, VSS

DS41236A-page 12                                  Preliminary                                    2004 Microchip Technology Inc.
                                                PIC12F508/509/16F505

TABLE 3-3: PIC16F505 PINOUT DESCRIPTION

     Name        Function        Input  Output                    Description
                                 Type    Type

RB0/ICSPDAT      RB0             TTL CMOS Bidirectional I/O pin. Can be software programmed for internal

                                                weak pull-up and wake-up from Sleep on pin change.

                 ICSPDAT ST CMOS In-Circuit Serial ProgrammingTM data pin.

RB1/ICSPCLK      RB1             TTL CMOS Bidirectional I/O pin. Can be software programmed for internal

                                                weak pull-up and wake-up from Sleep on pin change.

                 ICSPCLK ST CMOS In-Circuit Serial Programming clock pin.

RB2              RB2             TTL CMOS Bidirectional I/O pin.

RB3/MCLR/VPP     RB3             TTL    -- Input port. Can be software programmed for internal weak

                                                pull-up and wake-up from Sleep on pin change.

                 MCLR ST                -- Master Clear (Reset). When configured as MCLR, this pin is
                                                an active-low Reset to the device. Voltage on MCLR/VPP must
                                                not exceed VDD during normal device operation or the device
                                                will enter Programming mode. Weak pull-up always on if
                                                configured as MCLR.

                 VPP             --     -- Programming voltage input.

RB4/OSC2/CLKOUT  RB4             TTL CMOS Bidirectional I/O pin. Can be software programmed for internal

                                                weak pull-up and wake-up from Sleep on pin change.

                 OSC2            -- XTAL Oscillator crystal output. Connections to crystal or resonator in
                                                      Crystal Oscillator mode (XT, HS and LP modes only).

                 CLKOUT -- CMOS In EXTRC and INTRC modes, the pin output can be
                                                        configured for CLKOUT, which has 1/4 the frequency of OSC1
                                                        and denotes the instruction cycle rate.

RB5/OSC1/CLKIN   RB5             TTL CMOS Bidirectional I/O pin.

                 OSC1 XTAL -- Crystal input.

                 CLKIN ST               -- External clock source input.

RC0              RC0             TTL CMOS Bidirectional I/O pin.

RC1              RC1             TTL CMOS Bidirectional I/O pin.

RC2              RC2             TTL CMOS Bidirectional I/O pin.

RC3              RC3             TTL CMOS Bidirectional I/O pin.

RC4              RC4             TTL CMOS Bidirectional I/O pin.

RC5/T0CKI        RC5             TTL CMOS Bidirectional I/O pin.

                 T0CKI ST               -- Clock input to TMR0.

VDD              VDD             --     P Positive supply for logic and I/O pins.

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

Legend: I = Input, O = Output, I/O = Input/Output, P = Power, -- = Not used, TTL = TTL input,
              ST = Schmitt Trigger input

2004 Microchip Technology Inc.         Preliminary                                            DS41236A-page 13
PIC12F508/509/16F505

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

                                                        In the execution cycle, the fetched instruction is latched
                                                        into the Instruction Register (IR) in cycle Q1. This
                                                        instruction is then decoded and executed during the
                                                        Q2, Q3 and Q4 cycles. Data memory is read during Q2
                                                        (operand read) and written during Q4 (destination
                                                        write).

FIGURE 3-3:          CLOCK/INSTRUCTION CYCLE

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

             OSC1                                                                                        Internal
                 Q1                                                                                      phase
                 Q2
                 Q3                                                                                      clock
                 Q4
                 PC                  PC                         PC+1                       PC+2

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

EXAMPLE 3-1: INSTRUCTION PIPELINE FLOW

1. MOVLW 03H             Fetch 1  Execute 1
2. MOVWF PORTB                     Fetch 2
3. CALL SUB_1                                           Execute 2
4. BSF PORTB, BIT1                                       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.

DS41236A-page 14                                Preliminary                        2004 Microchip Technology Inc.
                                                       PIC12F508/509/16F505

4.0 MEMORY ORGANIZATION                                FIGURE 4-1:  PROGRAM MEMORY MAP
                                                                    AND STACK FOR THE
The PIC12F508/509/16F505 memories are organized                     PIC12F508/509
into program memory and data memory. For devices
with more than 512 bytes of program memory, a paging                PC<11:0>
scheme is used. Program memory pages are accessed
using one Status register bit. For the PIC12F509 and   CALL, RETLW                 12
PIC16F505, with data memory register files of more
than 32 registers, a banking scheme is used. Data                   Stack Level 1
memory banks are accessed using the File Select                     Stack Level 2
Register (FSR).
                                                                     Reset Vector(1)   0000h
4.1 Program Memory Organization for
         the PIC12F508/509                                          On-chip Program
                                                                          Memory
The PIC12F508 device has a 10-bit Program Counter
(PC) and PIC12F509 has a 11-bit Program Counter        User Memory       512 Word      01FFh
(PC) capable of addressing a 2K x 12 program memory       Space                        0200h
space.                                                              On-chip Program
                                                                          Memory       03FFh
Only the first 512 x 12 (0000h-01FFh) for the                                          0400h
PIC12F508, and 1K x 12 (0000h-03FFh) for the                            1024 Word
PIC12F509 are physically implemented (see
Figure 4-1). Accessing a location above these                                          7FFh
boundaries will cause a wraparound within the first
512 x 12 space (PIC12F508) or 1K x 12 space
(PIC12F509). The effective Reset vector is a 0000h
(see Figure 4-1). Location 01FFh (PIC12F508) and
location 03FFh (PIC12F509) contain the internal
clock oscillator calibration value. This value should
never be overwritten.

                                                       Note 1:      Address 0000h becomes the
                                                                    effective Reset vector. Location
                                                                    01FFh, 03FFh (PIC12F508,
                                                                    PIC12F509) contains the MOVLW XX
                                                                    internal oscillator calibration value.

2004 Microchip Technology Inc.  Preliminary                                          DS41236A-page 15
PIC12F508/509/16F505

4.2 Program Memory Organization                            4.3 Data Memory Organization
         For The PIC16F505
                                                           Data memory is composed of registers or bytes of
The PIC16F505 device has a 11-bit Program Counter          RAM. Therefore, data memory for a device is specified
(PC) capable of addressing a 2K x 12 program memory        by its register file. The register file is divided into two
space.                                                     functional groups: Special Function Registers (SFR)
                                                           and General Purpose Registers (GPR).
The 1K x 12 (0000h-03FFh) for the PIC16F505 are
physically implemented. Refer to Figure 4-2. Access-       The Special Function Registers include the TMR0 reg-
ing a location above this boundary will cause a wrap-      ister, the Program Counter (PCL), the Status register,
around within the first 1K x 12 space. The effective       the I/O registers (ports) and the File Select Register
Reset vector is at 0000h (see Figure 4-2). Location        (FSR). In addition, Special Function Registers are used
03FFh contains the internal oscillator calibration value.  to control the I/O port configuration and prescaler
This value should never be overwritten.                    options.

FIGURE 4-2:       PROGRAM MEMORY MAP                       The General Purpose Registers are used for data and
                  AND STACK FOR THE                        control information under command of the instructions.
                  PIC16F505
                                                           For the PIC12F508/509, the register file is composed of
                  PC<11:0>                                 7 Special Function Registers, 9 General Purpose
                                                           Registers and 16 or 32 General Purpose Registers
CALL, RETLW                        12                      accessed by banking (see Figure 4-3 and Figure 4-4).

                  Stack Level 1                            For the PIC16F505, the register file is composed of 8
                  Stack Level 2                            Special Function Registers, 8 General Purpose
                                                           Registers and 64 General Purpose Registers accessed
                                                           by banking (Figure 4-5).

                  Reset Vector(1)      0000h               4.3.1  GENERAL PURPOSE REGISTER
                                                                  FILE

User Memory                                                The General Purpose Register file is accessed, either
   Space                                                   directly or indirectly, through the File Select Register
                                                           (FSR). See Section 4.9 "Indirect Data Addressing:
                                                           INDF and FSR Registers".

                  On-chip Program      01FFh
                        Memory         0200h

                        1024 Words     03FFh
                                       0400h

                                       7FFh

Note 1:      Address 0000h becomes the
             effective Reset vector. Location
             03FFh contains the MOVLW XX
             internal oscillator calibration value.

DS41236A-page 16                                     Preliminary   2004 Microchip Technology Inc.
                                                             PIC12F508/509/16F505

FIGURE 4-3:     PIC12F508 REGISTER                           FIGURE 4-4:             PIC12F509 REGISTER
                FILE MAP                                                             FILE MAP

File Address                                                 FSR<6:5>                00                        01
           00h
           01h        INDF(1)                                File Address            INDF(1)        20h
           02h         TMR0                                             00h
           03h          PCL                                                                          Addresses map
           04h       STATUS                                                01h       TMR0            back to
           05h          FSR                                                                          addresses
           06h       OSCCAL                                                02h       PCL             in Bank 0.
           07h         GPIO
                                                                           03h       STATUS         2Fh
                                                                                                    30h
                                                                           04h       FSR
                                                                                                         General
                                                                           05h       OSCCAL              Purpose
                                                                                                         Registers
                                                                           06h       GPIO

                      General                                              07h
                     Purpose                                                             General
                     Registers                                                           Purpose
                                                                                         Registers

                                                                           0Fh

                                                                                  10h
                                                                                         General
                                                                                         Purpose
                                                                                         Registers

                1Fh                                                             1Fh                 3Fh

Note 1: Not a physical register. See Section 4.9                                     Bank 0              Bank 1
              "Indirect Data Addressing: INDF and
              FSR Registers".                                Note 1: Not a physical register. See Section 4.9
                                                                           "Indirect Data Addressing: INDF and FSR
                                                                           Registers".

FIGURE 4-5:     PIC16F505 REGISTER FILE MAP

FSR<6:5>                            00               01               10                  11
File Address                                20h              40h                60h
                                  INDF(1)
           00h                     TMR0                      Addresses map back to
           01h                      PCL                      addresses in Bank 0.
           02h                   STATUS
           03h                      FSR
           04h                   OSCCAL
           05h                    PORTB
           06h

                07h              PORTC

                08h              General

                                 Purpose

                0Fh              Registers  2Fh              4Fh                6Fh
                                            30h              50h                70h
                     10h
                                                 General          General            General
                                 General         Purpose          Purpose            Purpose
                                                 Registers        Registers          Registers
                                 Purpose
                                            3Fh              5Fh                7Fh
                                 Registers
                                                     Bank 1           Bank 2             Bank 3
                     1Fh

                                 Bank 0

Note 1: Not a physical register. See Section 4.9 "Indirect Data Addressing: INDF and FSR Registers".

2004 Microchip Technology Inc.             Preliminary                                                  DS41236A-page 17
PIC12F508/509/16F505

4.3.2 SPECIAL FUNCTION REGISTERS

The Special Function Registers (SFRs) are registers
used by the CPU and peripheral functions to control the
operation of the device (Table 4-1).

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

TABLE 4-1: SPECIAL FUNCTION REGISTER (SFR) SUMMARY (PIC12F508/509)

Address Name      Bit 7 Bit 6 Bit 5 Bit 4 Bit 3               Bit 2  Bit 1 Bit 0  Value on                    Page #

                                                                                  Power-On
                                                                                   Reset(2)

00h     INDF      Uses Contents of FSR to Address Data Memory (not a physical     xxxx xxxx                   26
                  register)
01h
02h(1)  TMR0      8-bit Real-Time Clock/Counter                                   xxxx xxxx                   33
03h
04h     PCL       Low-order 8 bits of PC                                          1111 1111                   25
04h(4)
05h     STATUS GPWUF -- PA0(5) TO                         PD  Z      DC C         0-01 1xxx(3) 20
06h
N/A     FSR       Indirect Data Memory Address Pointer                            111x xxxx                   26

        FSR       Indirect Data Memory Address Pointer                            110x xxxx                   26

        OSCCAL CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 -- 1111 111-                                                24

        GPIO      --        -- GP5 GP4 GP3 GP2 GP1 GP0 --xx xxxx                                              29

        TRISGPIO --         -- I/O Control Register                               --11 1111                   29

N/A     OPTION GPWU GPPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111                                                  22

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

Note 1: The upper byte of the Program Counter is not directly accessible. See Section 4.7 "Program Counter" for
              an explanation of how to access these bits.

        2: Other (non Power-up) Resets include external Reset through MCLR, Watchdog Timer and wake-up on pin
              change Reset.

        3: If Reset was due to wake-up on pin change, then bit 7 = 1. All other Resets will cause bit 7 = 0.

        4: PIC12F509 only.

        5: This bit is used on the PIC12F509. For code compatibility do not use this bit on the PIC12F508.

DS41236A-page 18                          Preliminary                           2004 Microchip Technology Inc.
                                 PIC12F508/509/16F505

TABLE 4-2: SPECIAL FUNCTION REGISTER (SFR) SUMMARY (PIC16F505)

Address Name   Bit 7 Bit 6 Bit 5 Bit 4 Bit 3                  Bit 2  Bit 1 Bit 0  Value on                 Page #

                                                                                  Power-On
                                                                                   Reset(2)

00h     INDF   Uses Contents of FSR to Address Data Memory (not a physical        xxxx xxxx                26
               register)
01h     TMR0   8-bit Real-Time Clock/Counter                                      xxxx xxxx                33
02h(1)  PCL    Low-order 8 bits of PC
                                                                                  1111 1111                25

03h     STATUS RBWUF -- PA0 TO                            PD  Z      DC C 0-01 1xxx                        20

04h     FSR    Indirect Data Memory Address Pointer                               110x xxxx                26

05h     OSCCAL CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 -- 1111 111-                                             24

06h     PORTB  --                -- RB5 RB4 RB3 RB2 RB1 RB0 --xx xxxx                                      29

07h     PORTC  --                -- RC5 RC4 RC3 RC2 RC1 RC0 --xx xxxx                                      29

N/A     TRISB  --                -- I/O Control Register                          --11 1111                29

N/A     TRISC  --                -- I/O Control Register                          --11 1111                29

N/A     OPTION RBWU RBPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111                                               23

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

Note 1: If Reset was due to wake-up on pin change, then bit 7 = 1. All other Resets will cause bit 7 = 0.

        2: Other (non Power-up) Resets include external reset through MCLR, Watchdog Timer and wake-up on pin
              change Reset.

2004 Microchip Technology Inc.  Preliminary                                      DS41236A-page 19
PIC12F508/509/16F505

4.4 Status Register                                          For example, CLRF STATUS, will clear the upper three
                                                             bits and set the Z bit. This leaves the Status register as
This register contains the arithmetic status of the ALU,     000u u1uu (where u = unchanged).
the Reset status and the page preselect bit.
                                                             Therefore, it is recommended that only BCF, BSF and
The Status register can be the destination for any           MOVWF instructions be used to alter the Status register.
instruction, as with any other register. If the Status       These instructions do not affect the Z, DC or C bits from
register is the destination for an instruction that affects  the Status register. For other instructions which do
the Z, DC or C bits, then the write to these three bits is   affect Status bits, see Section 8.0 "Instruction Set
disabled. These bits are set or cleared according to the     Summary".
device logic. Furthermore, the TO and PD bits are not
writable. Therefore, the result of an instruction with the
Status register as destination may be different than
intended.

REGISTER 4-1:     STATUS REGISTER (ADDRESS: 03h) (PIC12F508/509)

                  R/W-0        R/W-0         R/W-0           R-1              R-1      R/W-x        R/W-x         R/W-x
                                                                                                      DC             C
                  GPWUF             --         PA0           TO               PD       Z                               bit 0

                  bit 7

bit 7             GPWUF: GPIO Reset bit

                  1 = Reset due to wake-up from Sleep on pin change

                  0 = After power-up or other Reset

bit 6             Reserved: Do not use

bit 5             PA0: Program Page Preselect bits(1)

                  1 = Page 1 (200h-3FFh)

                  0 = Page 0 (000h-1FFh)

                  Each page is 512 bytes.

                  Using the PA0 bit as a general purpose read/write bit in devices which do not use it for program page

                  preselect is not recommended, since this may affect upward compatibility with future products.

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 (for ADDWF and SUBWF instructions)

                  ADDWF:
                  1 = A carry from the 4th low-order bit of the result occurred
                  0 = A carry from the 4th low-order bit of the result did not occur

                  SUBWF:
                  1 = A borrow from the 4th low-order bit of the result did not occur
                  0 = A borrow from the 4th low-order bit of the result occurred

bit 0             C: Carry/borrow bit (for ADDWF, SUBWF and RRF, RLF instructions)

                  ADDWF:                       SUBWF:                              RRF or RLF:

                  1 = A carry occurred         1 = A borrow did not occur Load bit with LSb or MSb, respectively

                  0 = A carry did not occur    0 = A borrow occurred

                  Note 1: This bit is used on the PIC12F509. For code compatibility do not use this bit on the
                                PIC12F508.

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

DS41236A-page 20                               Preliminary                              2004 Microchip Technology Inc.
                                                 PIC12F508/509/16F505

REGISTER 4-2:  STATUS REGISTER (ADDRESS: 03h) (PIC16F505)

               R/W-0 R/W-0 R/W-0                 R-1            R-1            R/W-x  R/W-x  R/W-x
                                                                                  Z    DC       C
               RBWUF             --  PA0         TO             PD                                bit 0

               bit 7

bit 7          RBWUF: PORTB Reset bit

               1 = Reset due to wake-up from Sleep on pin change
               0 = After power-up or other Reset

bit 6          Reserved: Do not use

bit 5          PA0: Program Page Preselect bits

               1 = Page 1 (200h-3FFh)
               0 = Page 0 (000h-1FFh)
               Each page is 512 bytes.
               Using the PA0 bit as a general purpose read/write bit in devices which do not use it for program
               page preselect is not recommended, since this may affect upward compatibility with future
               products.

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 (for ADDWF and SUBWF instructions)

               ADDWF:
               1 = A carry from the 4th low-order bit of the result occurred
               0 = A carry from the 4th low-order bit of the result did not occur
               SUBWF:
               1 = A borrow from the 4th low-order bit of the result did not occur
               0 = A borrow from the 4th low-order bit of the result occurred

bit 0          C: Carry/borrow bit (for ADDWF, SUBWF and RRF, RLF instructions)

               ADDWF:                SUBWF:                         RRF or RLF:

               1 = A carry occurred  1 = A borrow did not occur Load bit with LSb or MSb, respectively

               0 = A carry did not occur 0 = A borrow occurred

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

2004 Microchip Technology Inc.        Preliminary                                    DS41236A-page 21
PIC12F508/509/16F505

4.5 Option Register                                                 Note:  If TRIS bit is set to `0', the wake-up on
                                                                           change and pull-up functions are disabled
The Option register is a 8-bit wide, write-only register,                  for that pin (i.e., note that TRIS overrides
which contains various control bits to configure the                       Option control of GPPU/RBPU and
Timer0/WDT prescaler and Timer0.                                           GPWU/RBWU).

By executing the OPTION instruction, the contents of
the W register will be transferred to the Option register.
A Reset sets the Option<7:0> bits.

                                                                    Note: If the T0CS bit is set to `1', it will override
                                                                                the TRIS function on the T0CKI pin.

REGISTER 4-3: OPTION REGISTER (PIC12F508/509)

                  W-1     W-1        W-1                    W-1            W-1   W-1  W-1  W-1

                  GPWU    GPPU       T0CS                   T0SE           PSA   PS2  PS1  PS0
                   bit 7
                                                                                           bit 0

bit 7             GPWU: Enable Wake-up on Pin Change bit (GP0, GP1, GP3)
bit 6             1 = Disabled
bit 5             0 = Enabled
bit 4
bit 3             GPPU: Enable Weak Pull-ups bit (GP0, GP1, GP3)
bit 2-0           1 = Disabled
                  0 = Enabled

                  T0CS: Timer0 Clock Source Select bit
                  1 = Transition on T0CKI pin (overrides TRIS on the T0CKI pin)
                  0 = Transition on internal instruction cycle clock, FOSC/4

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

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

                  PS<2:0>: Prescaler Rate Select bits

                          Bit Value Timer0 Rate WDT Rate

                          000        1:2                    1:1

                          001        1:4                    1:2

                          010        1:8                    1:4

                          011        1 : 16                 1:8

                          100        1 : 32                 1 : 16

                          101        1 : 64                 1 : 32

                          110        1 : 128 1 : 64

                          111        1 : 256 1 : 128

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

DS41236A-page 22                     Preliminary                                  2004 Microchip Technology Inc.
                                              PIC12F508/509/16F505

REGISTER 4-4: OPTION REGISTER (PIC16F505)

         W-1                     W-1  W-1     W-1                W-1  W-1  W-1  W-1

         RBWU RBPU T0CS T0SE                                     PSA  PS2  PS1  PS0

         bit 7                                                                  bit 0

bit 7    RBWU: Enable Wake-up on Pin Change bit (RB0, RB1, RB3, RB4)
bit 6    1 = Disabled
bit 5    0 = Enabled
bit 4
bit 3    RBPU: Enable Weak Pull-ups bit (RB0, RB1, RB3, RB4)
bit 2-0  1 = Disabled
         0 = Enabled

         T0CS: Timer0 clock Source Select bit
         1 = Transition on T0CKI pin (overrides TRIS on the T0CKI pin)
         0 = Transition on internal instruction cycle clock, FOSC/4

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

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

         PS<2:0>: Prescaler Rate Select bits

                                 Bit Value Timer0 Rate WDT Rate

                                 000  1:2     1:1

                                 001  1:4     1:2

                                 010  1:8     1:4

                                 011  1 : 16  1:8

                                 100  1 : 32  1 : 16

                                 101  1 : 64  1 : 32

                                 110  1 : 128 1 : 64

                                 111  1 : 256 1 : 128

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

2004 Microchip Technology Inc.       Preliminary                          DS41236A-page 23
PIC12F508/509/16F505

4.6 OSCCAL Register

The Oscillator Calibration (OSCCAL) register is used to

calibrate the internal precision 4 MHz oscillator. It

contains seven bits for calibration.

Note:  Erasing the device will also erase the pre-
       programmed internal calibration value for
       the internal oscillator. The calibration
       value must be read prior to erasing the
       part so it can be reprogrammed correctly
       later.

After you move in the calibration constant, do not
change the value. See Section 7.2.5 "Internal 4 MHz
RC Oscillator".

REGISTER 4-5:     OSCCAL REGISTER (ADDRESS: 05h)

                  R/W-1 R/W-1 R/W-1 R/W-1                      R/W-1  R/W-1  R/W-1  R/W-0
                                                               CAL2   CAL1   CAL0     --
                  CAL6   CAL5        CAL4                CAL3                            bit 0

                  bit 7

       bit 7-1    CAL<6:0>: Oscillator Calibration bits
       bit 0      0111111 = Maximum frequency
                  
                  
                  
                  0000001
                  0000000 = Center frequency
                  1111111
                  
                  
                  
                  1000000 = Minimum frequency

                  Unimplemented: Read as `0'

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

DS41236A-page 24                     Preliminary                       2004 Microchip Technology Inc.
                                                          PIC12F508/509/16F505

4.7 Program Counter                                       4.7.1 EFFECTS OF RESET

As a program instruction is executed, the Program         The PC is set upon a Reset, which means that the PC
Counter (PC) will contain the address of the next         addresses the last location in the last page (i.e., the
program instruction to be executed. The PC value is       oscillator calibration instruction). After executing
increased by one every instruction cycle, unless an       MOVLW XX, the PC will roll over to location 00h and
instruction changes the PC.                               begin executing user code.

For a GOTO instruction, bits 8:0 of the PC are provided   The Status register page preselect bits are cleared upon
by the GOTO instruction word. The Program Counter         a Reset, which means that page 0 is pre-selected.
(PCL) is mapped to PC<7:0>. Bit 5 of the Status
register provides page information to bit 9 of the PC     Therefore, upon a Reset, a GOTO instruction will
(Figure 4-6).                                             automatically cause the program to jump to page 0 until
                                                          the value of the page bits is altered.
For a CALL instruction, or any instruction where the
PCL is the destination, bits 7:0 of the PC again are      4.8 Stack
provided by the instruction word. However, PC<8>
does not come from the instruction word, but is always    The PIC12F508/509/16F505 devices have a 2-deep,
cleared (Figure 4-6).                                     12-bit wide hardware PUSH/POP stack.

Instructions where the PCL is the destination, or modify  A CALL instruction will PUSH the current value of Stack 1
PCL instructions, include MOVWF PC, ADDWF PC and          into Stack 2 and then PUSH the current PC value, incre-
BSF PC,5.                                                 mented by one, into Stack Level 1. If more than two
                                                          sequential CALLs are executed, only the most recent two
Note:  Because PC<8> is cleared in the CALL               return addresses are stored.
       instruction or any modify PCL instruction,
       all subroutine calls or computed jumps are         A RETLW instruction will POP the contents of Stack
       limited to the first 256 locations of any          Level 1 into the PC and then copy Stack Level 2
       program memory page (512 words long).              contents into Stack Level 1. If more than two sequential
                                                          RETLWs are executed, the stack will be filled with the
FIGURE 4-6:       LOADING OF PC                           address previously stored in Stack Level 2. Note that
                  BRANCH INSTRUCTIONS                     the W register will be loaded with the literal value
                                                          specified in the instruction. This is particularly useful for
GOTO Instruction                                          the implementation of data look-up tables within the
                                                          program memory.
       11 10 9 8 7                       0
                                                              Note 1: There are no Status bits to indicate stack
PC                     PCL                                                overflows or stack underflow conditions.

                       Instruction Word                              2: There are no instruction mnemonics
                                                                          called PUSH or POP. These are actions
       7          PA0            0                                        that occur from the execution of the CALL
                                                                          and RETLW instructions.

             Status

CALL or Modify PCL Instruction

       11 10 9 8 7                       0

PC                     PCL

                       Instruction Word

                  Reset to `0'

       7          PA0            0

             Status

2004 Microchip Technology Inc.             Preliminary   DS41236A-page 25
PIC12F508/509/16F505

4.9 Indirect Data Addressing: INDF                                       EXAMPLE 4-1:           HOW TO CLEAR RAM
         and FSR Registers                                                                      USING INDIRECT
                                                                                                ADDRESSING
The INDF register is not a physical register.
Addressing INDF actually addresses the register                          NEXT  MOVLW            0x10   ;initialize pointer
whose address is contained in the FSR register (FSR                            MOVWF            FSR    ;to RAM
is a pointer). This is indirect addressing.                                    CLRF             INDF   ;clear INDF
                                                                                                       ;register
4.9.1 INDIRECT ADDRESSING                                                             INCF      FSR,F  ;inc pointer
                                                                                      BTFSC     FSR,4  ;all done?
Register file 07 contains the value 10h                                             GOTO      NEXT   ;NO, clear next
Register file 08 contains the value 0Ah                                CONTINUE
Load the value 07 into the FSR register                                                              ;YES, continue
A read of the INDF register will return the value                                          :
                                                                                             :
   of 10h
Increment the value of the FSR register by one                         The FSR is a 5-bit wide register. It is used in conjunction
                                                                         with the INDF register to indirectly address the data
   (FSR = 08)                                                            memory area.
A read of the INDR register now will return the
                                                                         The FSR<4:0> bits are used to select data memory
   value of 0Ah.                                                         addresses 00h to 1Fh.

Reading INDF itself indirectly (FSR = 0) will produce                     PIC12F508 Does not use banking. FSR <7:5> are
00h. Writing to the INDF register indirectly results in a                 unimplemented and read as `1's.
no operation (although Status bits may be affected).
                                                                          PIC12F509 Uses FSR<5>. Selects between bank 0
A simple program to clear RAM locations 10h-1Fh                           and bank 1. FSR<7:6> is unimplemented, read as `1'.
using indirect addressing is shown in Example 4-1.
                                                                          PIC16F505 Uses FSR<6:5>. Selects from bank 0 to
                                                                          bank 3. FSR<7> is unimplemented, read as `1'.

FIGURE 4-7:       DIRECT/INDIRECT ADDRESSING (PIC12F508/509)

                         Direct Addressing                                                         Indirect Addressing
                                                                                                6 5 4 (FSR) 0
                  (FSR)  4 (opcode) 0
                  65

             Bank Select Location Select                                                               Bank Location Select
                                                                     00
                                                                          01
                                                         00h
                                                                         Addresses
                                                                         map back to
                                                                         addresses
                                                                         in Bank 0.

                         Data               0Fh

                         Memory(1) 10h

                                                 1Fh                     3Fh

                                                 Bank 0 Bank 1(2)

Note 1: For register map detail, see Section 4.3 "Data Memory Organization".
        2: PIC12F509.

DS41236A-page 26                                 Preliminary                                     2004 Microchip Technology Inc.
                                                    PIC12F508/509/16F505

FIGURE 4-8:  DIRECT/INDIRECT ADDRESSING (PIC16F505)

       Direct Addressing                                                        Indirect Addressing
                                                                              6 5 4 (FSR) 0
(FSR)
                                                                                  Bank Location Select
65                 4 (opcode) 0

Bank Select  Location Select

                                           00  01   10      11

                                 00h                        Addresses
                                                            map back to
             Data                0Fh                        addresses
                                                            in Bank 0.

             Memory(1) 10h

                                      1Fh      3Fh  5Fh     7Fh

                                      Bank 0 Bank 1 Bank 2 Bank 3

Note 1: For register map detail, see Section 4.3 "Data Memory Organization".

2004 Microchip Technology Inc.                Preliminary                    DS41236A-page 27
PIC12F508/509/16F505

NOTES:

DS41236A-page 28  Preliminary   2004 Microchip Technology Inc.
                                                              PIC12F508/509/16F505

5.0 I/O PORT                                                  5.4 I/O Interfacing

As with any other register, the I/O register(s) can be        The equivalent circuit for an I/O port pin is shown in
written and read under program control. However, read         Figure 5-2. All port pins, except RB3/GP3 which is
instructions (e.g., MOVF PORTB,W) always read the I/O         input only, may be used for both input and output oper-
pins independent of the pin's input/output modes. On          ations. For input operations, these ports are non-latch-
Reset, all I/O ports are defined as input (inputs are at      ing. Any input must be present until read by an input
high-impedance) since the I/O control registers are all       instruction (e.g., MOVF PORTB, W). The outputs are
set.                                                          latched and remain unchanged until the output latch is
                                                              rewritten. To use a port pin as output, the correspond-
Note:  On the PIC12F508/509, I/O PORTB is ref-                ing direction control bit in TRIS must be cleared (= 0).
       erenced as GPIO. On the PIC16F505, I/O                 For use as an input, the corresponding TRIS bit must
       PORTB is referenced as PORTB.                          be set. Any I/O pin (except RB3/GP3) can be
                                                              programmed individually as input or output.

5.1 PORTB/GPIO                                                FIGURE 5-1:            PIC12F508/509/16F505
                                                                                     EQUIVALENT CIRCUIT
PORTB/GPIO is an 8-bit I/O register. Only the low-                                   FOR A SINGLE I/O PIN
order 6 bits are used (RB/GP<5:0>). Bits 7 and 6 are
unimplemented and read as `0's. Please note that RB3/         Data      D         Q
GP3 is an input only pin. The Configuration Word can          Bus
set several I/O's to alternate functions. When acting as                   Data                             VDD VDD
alternate functions, the pins will read as `0' during a port  WR                                            P
read. Pins RB0/GP0, RB1/GP1, RB3/GP3 and RB4                  Port         Latch
can be configured with weak pull-ups and also for
wake-up on change. The wake-up on change and weak                          CK Q
pull-up functions are not pin selectable. If RB3/GP3/
MCLR is configured as MCLR, weak pull-up is always             W                                            N        I/O
on and wake-up on change for this pin is not enabled.          Reg
                                                                        D         Q                                  pin
                                                              TRIS `f'
                                                                           TRIS                             VSS VSS

5.2 PORTC (PIC16F505 Only)                                                 Latch

PORTC is an 8-bit I/O register. Only the low-order 6 bits                  CK Q
are used (RC<5:0>). Bits 7 and 6 are unimplemented
and read as `0's.                                                          Reset

                                                                                                       (1)

5.3 TRIS Registers

The Output Driver Control register is loaded with the                                              RD Port
contents of the W register by executing the TRIS f            Note 1: See Table 3-3 for buffer type.
instruction. A `1' from a TRIS register bit puts the corre-
sponding output driver in a High-Impedance mode. A
`0' puts the contents of the output data latch on the
selected pins, enabling the output buffer. The excep-
tions are RB3/GP3, which is input only and the T0CKI
pin, which may be controlled by the Option register.
See Register 4-3 and Register 4-4.

Note:  A read of the ports reads the pins, not the
       output data latches. That is, if an output
       driver on a pin is enabled and driven high,
       but the external system is holding it low, a
       read of the port will indicate that the pin is
       low.

The TRIS registers are "write-only" and are set (output
drivers disabled) upon Reset.

2004 Microchip Technology Inc.  Preliminary                                                                DS41236A-page 29
PIC12F508/509/16F505

TABLE 5-1: SUMMARY OF PORT REGISTERS

Address Name              Bit 7  Bit 6  Bit 5  Bit 4      Bit 3 Bit 2 Bit 1 Bit 0  Value on  Value on
                                                                                   Power-On  All Other
                                                                                              Resets
                                                                                      Reset

N/A          TRISGPIO(1)  --     -- I/O Control Register                           --11 1111 --11 1111

N/A          TRISB(2)     --     -- I/O Control Register                           --11 1111 --11 1111

N/A          TRISC(2)     --     -- I/O Control Register                           --11 1111 --11 1111

N/A          OPTION(1)    GPWU GPPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 1111 1111

N/A          OPTION(2)    RBWU RBPU TOCS TOSE PSA PS2 PS1 PS0 1111 1111 1111 1111

03h          STATUS(1) GPWUF     --     PAO    TO         PD  Z  DC  C 0-01 1xxx q00q quuu(3)

03h          STATUS(2)    RBWUF  --     PAO    TO         PD  Z  DC  C 0-01 1xxx q00q quuu(3)

06h          GPIO(1)      --     --     GP5 GP4 GP3 GP2 GP1 GP0 --xx xxxx --uu uuuu

06h          PORTB(2)     --     --     RB5 RB4 RB3 RB2 RB1 RB0 --xx xxxx --uu uuuu

07h          PORTC(2)     --     --     RC5 RC4 RC3 RC2 RC1 RC0 --xx xxxx --uu uuuu

Legend:      Shaded cells are not used by Port registers, read as `0'. -- = unimplemented, read as `0', x = unknown, u = unchanged,
             q = depends on condition.
Note 1:      PIC12F508/509 only.
         2:  PIC16F505 only.
         3:  If Reset was due to wake-up on pin change, then bit 7 = 1. All other Resets will cause bit 7 = 0.

DS41236A-page 30                               Preliminary            2004 Microchip Technology Inc.
                                                               PIC12F508/509/16F505

5.5 I/O Programming Considerations                             EXAMPLE 5-1:    READ-MODIFY-WRITE
                                                                               INSTRUCTIONS ON AN
5.5.1 BIDIRECTIONAL I/O PORTS                                                  I/O PORT(e.g. PIC16F505)

Some instructions operate internally as read followed          ;Initial PORTB Settings
by write operations. The BCF and BSF instructions, for
example, read the entire port into the CPU, execute the        ;PORTB<5:3> Inputs
bit operation and re-write the result. Caution must be
used when these instructions are applied to a port             ;PORTB<2:0> Outputs
where one or more pins are used as input/outputs. For
example, a BSF operation on bit 5 of PORTB/GPIO will           ;
cause all eight bits of PORTB/GPIO to be read into the
CPU, bit 5 to be set and the PORTB/GPIO value to be            ;               PORTB latch PORTB pins
written to the output latches. If another bit of PORTB/
GPIO is used as a bidirectional I/O pin (say bit 0) 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          BCF PORTB, 5 ;--01 -ppp --11 pppp
rewritten to the data latch of this particular pin, overwrit-
ing the previous content. As long as the pin stays in the         BCF PORTB, 4 ;--10 -ppp --11 pppp
Input mode, no problem occurs. However, if bit 0 is
switched into Output mode later on, the content of the            MOVLW 007h;
data latch may now be unknown.
                                                                  TRIS PORTB ;--10 -ppp --11 pppp
Example 5-1 shows the effect of two sequential
Read-Modify-Write instructions (e.g., BCF, BSF, etc.)          ;
on an I/O port.
                                                               Note 1: The user may have expected the pin values to
A pin actively outputting a high or a low should not be
driven from external devices at the same time in order                 be `--00 pppp'. The 2nd BCF caused RB5 to
to change the level on this pin ("wired OR", "wired
AND"). The resulting high output currents may damage                   be latched as the pin value (High).
the chip.
                                                               5.5.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-2).
                                                               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 allow the pin voltage to
                                                               stabilize (load dependent) before the next instruction
                                                               causes that file to be read into the CPU. Otherwise, the
                                                               previous state of that pin may be read into the CPU rather
                                                               than the new state. When in doubt, it is better to separate
                                                               these instructions with a NOP or another instruction not
                                                               accessing this I/O port.

FIGURE 5-2:                  SUCCESSIVE I/O OPERATION (PIC16F505 Shown)

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

                         PC         PC + 1  PC + 2             PC + 3  This example shows a write to PORTB
Instruction                  MOVF PORTB, W  NOP                NOP     followed by a read from PORTB.

  Fetched MOVWF PORTB                                                  Data setup time = (0.25 TCY TPD)

RB<5:0>                     Port pin       Port pin                   where: TCY = instruction cycle.
                             written here   sampled here
Instruction                                                                       TPD = propagation delay
Executed
                                                                       Therefore, at higher clock frequencies, a
                                                                       write followed by a read may be problematic.

                             MOVWF PORTB MOVF PORTB,W          NOP

                             (Write to PORTB) (Read PORTB)

2004 Microchip Technology Inc.             Preliminary                                 DS41236A-page 31
PIC12F508/509/16F505

NOTES:

DS41236A-page 32  Preliminary   2004 Microchip Technology Inc.
                                                           PIC12F508/509/16F505

6.0 TIMER0 MODULE AND TMR0                                  Counter mode is selected by setting the T0CS bit
         REGISTER                                           (Option<5>). In this mode, Timer0 will increment either
                                                            on every rising or falling edge of pin T0CKI. The T0SE
The Timer0 module has the following features:               bit (Option<4>) determines the source edge. Clearing
                                                            the T0SE bit selects the rising edge. Restrictions on the
8-bit timer/counter register, TMR0                        external clock input are discussed in detail in
Readable and writable                                     Section 6.1 "Using Timer0 with an External Clock".
8-bit software programmable prescaler
Internal or external clock select:                        The prescaler may be used by either the Timer0
                                                            module or the Watchdog Timer, but not both. The
   - Edge select for external clock                         prescaler assignment is controlled in software by the
                                                            control bit, PSA (Option<3>). Clearing the PSA bit will
Figure 6-1 is a simplified block diagram of the Timer0      assign the prescaler to Timer0. The prescaler is not
module.                                                     readable or writable. When the prescaler is assigned to
                                                            the Timer0 module, prescale values of 1:2, 1:4,...,
Timer mode is selected by clearing the T0CS bit             1:256 are selectable. Section 6.2 "Prescaler" details
(Option<5>). In Timer mode, the Timer0 module will          the operation of the prescaler.
increment every instruction cycle (without prescaler). If
TMR0 register is written, the increment is inhibited for    A summary of registers associated with the Timer0
the following two cycles (Figure 6-2 and Figure 6-3).       module is found in Table 6-1.
The user can work around this by writing an adjusted
value to the TMR0 register.

FIGURE 6-1:          TIMER0 BLOCK DIAGRAM

                                                                                                  Data Bus

(GP2/RC5)/T0CKI FOSC/4           0                               PSOUT                            8
          Pin
                                                            1            Sync with
              T0SE
                                 1                                       Internal                 TMR0 reg

                                            Programmable    0               Clocks
                                              Prescaler(2)                                 PSOUT

                                                                         (2 TCY delay) Sync

                                 T0CS(1)                3   PSA(1)
                                          PS2, PS1, PS0(1)

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

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

PC           Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
(Program
Counter)     PC 1  PC             PC + 1  PC + 2               PC + 3  PC + 4     PC + 5                  PC + 6

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

Timer0       T0      T0 + 1         T0 + 2                  NT0                     NT0 + 1       NT0 + 2

Instruction                      Write TMR0 Read TMR0 Read TMR0          Read TMR0 Read TMR0 Read TMR0
Executed                                                                 reads NT0 reads NT0 + 1 reads NT0 + 2

                                 executed   reads NT0 reads NT0

2004 Microchip Technology Inc.             Preliminary                                           DS41236A-page 33
PIC12F508/509/16F505

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

Timer0       T0                T0 + 1                                  NT0                                   NT0 + 1

Instruction                            Write TMR0 Read TMR0 Read TMR0            Read TMR0 Read TMR0 Read TMR0
Executed                                                                         reads NT0 reads NT0 + 1 reads NT0 + 2

                                       executed         reads NT0 reads NT0

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
                                                                                                   Power-On   All Other
                                                                                                               Resets
                                                                                                      Reset

01h          TMR0              Timer0 8-bit real-time clock/counter                              xxxx xxxx  uuuu uuuu
                                                                                                              1111 1111
N/A          OPTION(1)         GPWU GPPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111                                  1111 1111
                                                                                                              --11 1111
N/A          OPTION(2)         RBWU    RBPU T0CS T0SE PSA                   PS2  PS1  PS0          1111 1111  --11 1111
N/A          TRISGPIO(1), (3)     --                                        RC2  RC1  RC0          --11 1111
N/A          TRISC(2), (3)        --   -- I/O Control Register                                     --11 1111
Legend:
Note 1:                                --        RC5 RC4 RC3

         2:  Shaded cells are not used by Timer0. -- = unimplemented, x = unknown, u = unchanged.
         3:  PIC12F508/509 only.
             PIC16F505 only.
             The TRIS of the T0CKI pin is overridden when T0CS = 1.

DS41236A-page 34                                 Preliminary                              2004 Microchip Technology Inc.
                                                            PIC12F508/509/16F505

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

FIGURE 6-4:  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)        T0                      T0 + 1  T0 + 2
                            Timer0

Note 1: Delay from clock input change to Timer0 increment is 3 TOSC to 7 TOSC. (Duration of Q = TOSC). Therefore, the error
              in measuring the interval between two edges on Timer0 input = 4 TOSC max.

        2: External clock if no prescaler selected; prescaler output otherwise.
        3: The arrows indicate the points in time where sampling occurs.

2004 Microchip Technology Inc.     Preliminary                     DS41236A-page 35
PIC12F508/509/16F505

6.2 Prescaler                                               EXAMPLE 6-1: CHANGING PRESCALER

An 8-bit counter is available as a prescaler for the                          (TIMER0  WDT)
Timer0 module or as a postscaler for the Watchdog
Timer (WDT), respectively (see Section 7.6 "Watch-          CLRWDT            ;Clear WDT
dog Timer (WDT)"). For simplicity, this counter is
being referred to as "prescaler" throughout this data       CLRF TMR0         ;Clear TMR0 & Prescaler
sheet.
                                                            MOVLW `00xx1111'b ;These 3 lines (5, 6, 7)

                                                            OPTION            ;are required only if

                                                                              ;desired

                                                            CLRWDT            ;PS<2:0> are 000 or 001

Note:  The prescaler may be used by either the              MOVLW `00xx1xxx'b ;Set Postscaler to
       Timer0 module or the WDT, but not both.
       Thus, a prescaler assignment for the                 OPTION            ;desired WDT rate
       Timer0 module means that there is no
       prescaler for the WDT and vice versa.                To change the prescaler from the WDT to the Timer0
                                                            module, use the sequence shown in Example 6-2. This
The PSA and PS<2:0> bits (Option<3:0>) determine            sequence must be used even if the WDT is disabled. A
prescaler assignment and prescale ratio.                    CLRWDT instruction should be executed before
                                                            switching the prescaler.

When assigned to the Timer0 module, all instructions        EXAMPLE 6-2:      CHANGING PRESCALER
writing to the TMR0 register (e.g., CLRF 1, MOVWF 1,                          (WDT  TIMER0)
BSF 1, x, etc.) will clear the prescaler. When assigned
to WDT, a CLRWDT instruction will clear the prescaler       CLRWDT            ;Clear WDT and
along with the WDT. The prescaler is neither readable       MOVLW `xxxx0xxx'  ;prescaler
nor writable. On a Reset, the prescaler contains all `0's.                    ;Select TMR0, new
                                                            OPTION            ;prescale value and
6.2.1  SWITCHING PRESCALER                                                    ;clock source
       ASSIGNMENT

The prescaler assignment is fully under software
control (i.e., it can be changed "on-the-fly" during pro-
gram execution). To avoid an unintended device Reset,
the following instruction sequence (Example 6-1) must
be executed when changing the prescaler assignment
from Timer0 to the WDT.

DS41236A-page 36            Preliminary                                        2004 Microchip Technology Inc.
                                                          PIC12F508/509/16F505

FIGURE 6-5:  BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER(1), (2)

      TCY (= FOSC/4)                     0                1                     Data Bus
                                                                                         8
(GP2/RC5)/T0CKI                                M                M
          pin                                                   U               TMR0 reg
                                               U          0X
                                         1X                              Sync
                                                                           2

                                                                        Cycles

             T0SE                        T0CS

                                                             PSA

  Watchdog                       0                8-bit Prescaler  PS<2:0>
     Timer                            M                8
                                      U
WDT Enable bit                                      8-to-1 MUX
                                 1X

                                    PSA

                                                  0       1

                                                     MUX           PSA

                                                                    WDT
                                                                  Time-out

Note 1: T0CS, T0SE, PSA, PS<2:0> are bits in the Option register.
        2: T0CKI is shared with pin RC5 on the PIC16F505 and pin GP2 on the PIC12F508/509.

2004 Microchip Technology Inc.                   Preliminary                               DS41236A-page 37
PIC12F508/509/16F505

NOTES:

DS41236A-page 38  Preliminary   2004 Microchip Technology Inc.
                                                             PIC12F508/509/16F505

7.0 SPECIAL FEATURES OF THE                                      The PIC12F508/509/16F505 devices have a Watchdog
         CPU                                                     Timer, which can be shut off only through configuration
                                                                 bit WDTE. It runs off of its own RC oscillator for added
What sets a microcontroller apart from other proces-             reliability. If using HS (PIC16F505), XT or LP selectable
sors are special circuits that deal with the needs of real-      oscillator options, there is always an 18 ms (nominal)
time applications. The PIC12F508/509/16F505                      delay provided by the Device Reset Timer (DRT),
microcontrollers have a host of such features intended           intended to keep the chip in Reset until the crystal
to maximize system reliability, minimize cost through            oscillator is stable. If using INTRC or EXTRC, there is
elimination of external components, provide power-               an 18 ms delay only on VDD power-up. With this timer
saving operating modes and offer code protection.                on-chip, most applications need no external Reset
These features are:                                              circuitry.

Oscillator Selection                                           The Sleep mode is designed to offer a very low current
Reset:                                                         Power-down mode. The user can wake-up from Sleep
                                                                 through a change on input pins or through a Watchdog
   - Power-on Reset (POR)                                        Timer time-out. Several oscillator options are also
   - Device Reset Timer (DRT)                                    made available to allow the part to fit the application,
   - Wake-up from Sleep on Pin Change                            including an internal 4 MHz oscillator. The EXTRC
Watchdog Timer (WDT)                                           oscillator option saves system cost while the LP crystal
Sleep                                                          option saves power. A set of configuration bits are used
Code Protection                                                to select various options.
ID Locations
In-Circuit Serial ProgrammingTM                                7.1 Configuration Bits
Clock Out
                                                                 The PIC12F508/509/16F505 Configuration Words
                                                                 consist of 12 bits. Configuration bits can be
                                                                 programmed to select various device configurations.
                                                                 Three bits are for the selection of the oscillator type;
                                                                 (two bits on the PIC12F508/509), one bit is the
                                                                 Watchdog Timer enable bit, one bit is the MCLR enable
                                                                 bit and one bit is for code protection (Register 7-1,
                                                                 Register 7-2).

REGISTER 7-1: CONFIGURATION WORD FOR PIC12F508/509(1)

--        --  --                 --  --                --    --     MCLRE          CP  WDTE FOSC1 FOSC0

bit 11                                                                                                     bit 0

bit 11-5  Unimplemented: Read as `0'
bit 4
bit 3     MCLRE: GP3/MCLR Pin Function Select bit
          1 = GP3/MCLR pin function is MCLR
bit 2     0 = GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD

bit 1-0   CP: Code Protection bit
          1 = Code protection off
          0 = Code protection on

          WDTE: Watchdog Timer Enable bit
          1 = WDT enabled
          0 = WDT disabled

          FOSC<1:0>: Oscillator Selection bits
          11 = EXTRC = external selection bits
          10 = INTRC = internal RC oscillator
          01 = XT oscillator
          00 = LP oscillator

             Note 1: Refer to the "PIC12F508/509 Memory Programming Specifications" (DS41227) to determine how to access
                           the Configuration Word. The Configuration Word is not user addressable during device operation.

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

2004 Microchip Technology Inc.                        Preliminary                               DS41236A-page 39
PIC12F508/509/16F505

REGISTER 7-2: CONFIGURATION WORD FOR PIC16F505(1)

--        --      --         --  --  -- MCLRE CP WDTE FOSC2 FOSC1 FOSC0

bit 11                                                                                               bit 0

bit 11-6  Unimplemented: Read as `0'
bit 5
          MCLRE: RB3/MCLR Pin Function Select bit
bit 4     1 = RB3/MCLR pin function is MCLR
          0 = RB3/MCLR pin function is digital I/O, MCLR internally tied to VDD
bit 3
          CP: Code Protection bit
bit 2-0   1 = Code protection off
          0 = Code protection on

          WDTE: Watchdog Timer Enable bit
          1 = WDT enabled
          0 = WDT disabled

          FOSC<1:0>: Oscillator Selection bits
          111 = External RC oscillator/CLKOUT function on RB4/OSC2/CLKOUT pin
          110 = External RC oscillator/RB4 function on RB4/OSC2/CLKOUT pin
          101 = Internal RC oscillator/CLKOUT function on RB4/OSC2/CLKOUT pin
          100 = Internal RC oscillator/RB4 function on RB4/OSC2/CLKOUT pin
          011 = EC oscillator/RB4 function on RB4/OSC2/CLKOUT pin
          010 = HS oscillator
          001 = XT oscillator
          000 = LP oscillator

          Note 1: Refer to the "PIC16F505 Memory Programming Specifications" (DS41226) to determine how to
                      access the Configuration Word. The Configuration Word is not user addressable during device
                      operation.

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

DS41236A-page 40                     Preliminary                                  2004 Microchip Technology Inc.
                                                            PIC12F508/509/16F505

7.2 Oscillator Configurations                               FIGURE 7-1:              CRYSTAL OPERATION
                                                                                     (OR CERAMIC
7.2.1  OSCILLATOR TYPES                                                 C1(1)        RESONATOR)
                                                                                     (HS, XT OR LP OSC
The PIC12F508/509/16F505 devices can be operated                                     CONFIGURATION)
in up to six different oscillator modes. The user can
program up to three configuration bits (FOSC<1:0>                                    OSC1            PIC12F508/509
[PIC12F508/509], FOSC<2:0> [PIC16F505]). To select                                                     PIC16F505
one of these modes:

LP:  Low-Power Crystal                                                    XTAL           RF(3)     Sleep
                                                                                                     To internal
XT: Crystal/Resonator                                                    RS(2) OSC2
                                                                  C2(1)                                  logic
HS:  High-Speed Crystal/Resonator
       (PIC16F505 only)

INTRC: Internal 4 MHz Oscillator

EXTRC: External Resistor/Capacitor                        Note 1:      See Capacitor Selection tables for
                                                                     2:  recommended values of C1 and C2.
EC:  External High-Speed Clock Input                               3:  A series resistor (RS) may be required for AT
       (PIC16F505 only)                                                  strip cut crystals.
                                                                         RF approx. value = 10 M.
7.2.2  CRYSTAL OSCILLATOR/CERAMIC
       RESONATORS

In HS (PIC16F505), XT or LP modes, a crystal or             FIGURE 7-2:              EXTERNAL CLOCK INPUT
ceramic resonator is connected to the (GP5/RB5)/                                     OPERATION (HS, XT OR
OSC1/(CLKIN) and (GP4/RB4)/OSC2/(CLKOUT) pins                                        LP OSC
to establish oscillation (Figure 7-1). The PIC12F508/                                CONFIGURATION)
509/16F505 oscillator designs require the use of a
parallel cut crystal. Use of a series cut crystal may give  Clock from                     OSC1
a frequency out of the crystal manufacturers                ext. system                             PIC12F508/509
specifications. When in HS (PIC16F505), XT or LP                                                       PIC16F505
modes, the device can have an external clock source                            Open
drive the (GP5/RB5)/OSC1/CLKIN pin (Figure 7-2).                                           OSC2

Note 1: This device has been designed to per-               TABLE 7-1:         CAPACITOR SELECTION FOR
            form to the parameters of its data sheet.
            It has been tested to an electrical                                CERAMIC RESONATORS
            specification designed to determine its                            PIC12F508/509/16F505(1)
            conformance with these parameters.
            Due to process differences in the               Osc Resonator Cap. Range Cap. Range
            manufacture of this device, this device
            may have different performance charac-          Type         Freq              C1        C2
            teristics than its earlier version. These
            differences may cause this device to               XT        4.0 MHz           30 pF     30 pF
            perform differently in your application           HS(2)
            than the earlier version of this device.        Note 1:      16 MHz            10-47 pF  10-47 pF

       2: The user should verify that the device                    2:   These values are for design guidance
            oscillator starts and performs as                            only. Since each resonator has its own
            expected. Adjusting the loading capacitor                    characteristics, the user should consult
            values and/or the Oscillator mode may                        the resonator manufacturer for
            be required.                                                 appropriate values of external
                                                                         components.

                                                                         PIC16F505 only.

2004 Microchip Technology Inc.         Preliminary                                                  DS41236A-page 41
PIC12F508/509/16F505

TABLE 7-2:        CAPACITOR SELECTION FOR                    FIGURE 7-3:              EXTERNAL PARALLEL
                                                                                      RESONANT CRYSTAL
                  CRYSTAL OSCILLATOR                                                 OSCILLATOR CIRCUIT
                  PIC12F508/509/16F505(2)

Osc Resonator Cap.Range Cap. Range                                   +5V                         To Other
                                                                                                 Devices
Type        Freq           C1     C2                                     10k
                                                                                4.7k  74AS04
LP     32 kHz(1)           15 pF  15 pF

XT    200 kHz    47-68 pF        47-68 pF                                74AS04                           CLKIN
HS(3)   1 MHz       15 pF           15 pF
        4 MHz       15 pF           15 pF                                                  10k          PIC16F505
                                                                          XTAL                          PIC12F508
       20 MHz     15-47 pF        15-47 pF                                                              PIC12F509

Note 1: For VDD > 4.5V, C1 = C2  30 pF is                    10k
              recommended.

       2: These values are for design guidance                       20 pF 20 pF
             only. Rs may be required to avoid over-
             driving crystals with low drive level specifi-  Figure 7-4 shows a series resonant oscillator circuit.
             cation. Since each crystal has its own          This circuit is also designed to use the fundamental
             characteristics, the user should consult        frequency of the crystal. The inverter performs a 180-
             the crystal manufacturer for appropriate        degree phase shift in a series resonant oscillator
             values of external components.                  circuit. The 330  resistors provide the negative
                                                             feedback to bias the inverters in their linear region.
       3: PIC16F505 only.

7.2.3  EXTERNAL CRYSTAL OSCILLATOR
       CIRCUIT
                                                             FIGURE 7-4:              EXTERNAL SERIES
                                                                                      RESONANT CRYSTAL
Either a prepackaged oscillator or a simple oscillator                                OSCILLATOR CIRCUIT
circuit with TTL gates can be used as an external
crystal oscillator circuit. Prepackaged oscillators           330             330                       To Other
provide a wide operating range and better stability. A       74AS04          74AS04                     Devices
well-designed crystal oscillator will provide good perfor-
mance with TTL gates. Two types of crystal oscillator                                           74AS04
circuits can be used: one with parallel resonance, or
one with series resonance.                                           0.1 mF                                CLKIN
                                                                     XTAL
Figure 7-3 shows implementation of a parallel resonant                                                     PIC16F505
oscillator circuit. The circuit is designed to use the fun-                                                PIC12F508
damental frequency of the crystal. The 74AS04 inverter                                                     PIC12F509
performs the 180-degree phase shift that a parallel
oscillator requires. The 4.7 k resistor provides the         7.2.4 EXTERNAL RC OSCILLATOR
negative feedback for stability. The 10 k potentiome-
ters bias the 74AS04 in the linear region. This circuit      For timing insensitive applications, the RC device
could be used for external oscillator designs.               option offers additional cost savings. The RC oscillator
                                                             frequency is a function of the supply voltage, the resis-
                                                             tor (REXT) and capacitor (CEXT) values, and the operat-
                                                             ing temperature. In addition to this, the oscillator
                                                             frequency will vary from unit to unit due to normal pro-
                                                             cess parameter variation. Furthermore, the difference
                                                             in lead frame capacitance between package types will
                                                             also affect the oscillation frequency, especially for low
                                                             CEXT values. The user also needs to take into account
                                                             variation due to tolerance of external R and C
                                                             components used.

                                                             Figure 7-5 shows how the R/C combination is con-
                                                             nected to the PIC12F508/509/16F505 devices. For
                                                             REXT values below 3.0 k, the oscillator operation may
                                                             become unstable, or stop completely. For very high
                                                             REXT values (e.g., 1 M), the oscillator becomes
                                                             sensitive to noise, humidity and leakage. Thus, we
                                                             recommend keeping REXT between 5.0 k and
                                                             100 k.

DS41236A-page 42                           Preliminary                                 2004 Microchip Technology Inc.
                                                            PIC12F508/509/16F505

Although the oscillator will operate with no external       In addition, a calibration instruction is programmed into
capacitor (CEXT = 0 pF), we recommend using values          the last address of memory, which contains the calibra-
above 20 pF for noise and stability reasons. With no or     tion value for the internal RC oscillator. This location is
small external capacitance, the oscillation frequency       always uncode protected, regardless of the code-pro-
can vary dramatically due to changes in external            tect settings. This value is programmed as a MOVLW XX
capacitances, such as PCB trace capacitance or              instruction where XX is the calibration value, and is
package lead frame capacitance.                             placed at the Reset vector. This will load the W register
                                                            with the calibration value upon Reset and the PC will
Section 10.0 "Electrical Characteristics", shows RC         then roll over to the users program at address 0x000.
frequency variation from part-to-part due to normal         The user then has the option of writing the value to the
process variation. The variation is larger for larger val-  OSCCAL Register (05h) or ignoring it.
ues of R (since leakage current variation will affect RC
frequency more for large R) and for smaller values of C     OSCCAL, when written to with the calibration value, will
(since variation of input capacitance will affect RC        "trim" the internal oscillator to remove process variation
frequency more).                                            from the oscillator frequency.

Also, see the Electrical Specifications section for         Note:  Erasing the device will also erase the pre-
variation of oscillator frequency due to VDD for given             programmed internal calibration value for
REXT/CEXT values, as well as frequency variation due               the internal oscillator. The calibration
to operating temperature for given R, C and VDD                    value must be read prior to erasing the
values.                                                            part so it can be reprogrammed correctly
                                                                   later.

FIGURE 7-5:     EXTERNAL RC                                 For the PIC12F508/509/16F505 devices, only bits
                OSCILLATOR MODE                             <7:1> of OSCCAL are implemented. Bits CAL6-CAL0
           VDD                                              are used for calibration. Adjusting CAL6-CAL0 from
                                                            `0000000' to `1111111' changes the clock speed. See
REXT                             Internal                   Register 4-5 for more information.
                                 clock
                OSC1                                        Note:  The 0 bit of OSCCAL is unimplemented
                                                                   and should be written as 0 when modifying
CEXT              N              PIC16F505                         OSCCAL for compatibility with future
VSS             OSC2/CLKOUT      PIC12F508                         devices.
                                 PIC12F509
       FOSC/4

7.2.5 INTERNAL 4 MHz RC OSCILLATOR

The internal RC oscillator provides a fixed 4 MHz (nom-
inal) system clock at VDD = 5V and 25C, (see
Section 10.0 "Electrical Characteristics" for
information on variation over voltage and temperature).

2004 Microchip Technology Inc.             Preliminary            DS41236A-page 43
PIC12F508/509/16F505

7.3 Reset                                                 7.3.1 EXTERNAL CLOCK IN

The device differentiates between various kinds of        For applications where a clock is already available
Reset:                                                    elsewhere, users may directly drive the PIC12F508/
                                                          509/16F505 devices provided that this external clock
Power-on Reset (POR)                                    source meets the AC/DC timing requirements listed in
MCLR Reset during normal operation                      Section 7.6 "Watchdog Timer (WDT)". Figure 7-6
MCLR Reset during Sleep                                 below shows how an external clock circuit should be
WDT time-out Reset during normal operation              configured.
WDT time-out Reset during Sleep
Wake-up from Sleep on pin change                        FIGURE 7-6:             EXTERNAL CLOCK INPUT
                                                                                  OPERATION
Some registers are not reset in any way, they are
unknown on POR and unchanged in any other Reset.                 PIC16F505: EC, HS, XT, LP
Most other registers are reset to "Reset state" on
Power-on Reset (POR), MCLR, WDT or Wake-up on                    Clock From             RB5/OSC1/CLKIN
pin change Reset during normal operation. They are               ext. system            PIC16F505
not affected by a WDT Reset during Sleep or MCLR
Reset during Sleep, since these Resets are viewed as             OSC2/CLKOUT/RB4        OSC2/CLKOUT/RB4(1)
resumption of normal operation. The exceptions to this
are TO, PD and RBWUF/GPWUF bits. They are set or                 PIC12F508/509: XT, LP
cleared differently in different Reset situations. These
bits are used in software to determine the nature of             Clock From             GP5/OSC1/CLKIN
Reset. See Table 7-4 for a full description of Reset             ext. system            PIC12F508
states of all registers.
                                                                       OSC2             PIC12F509
                                                                                        GP4/OSC2

                                                                 Note 1: RB4 is available in EC mode only.

TABLE 7-3: RESET CONDITIONS FOR REGISTERS PIC12F508/509

      Register            Address  Power-on Reset                             MCLR Reset, WDT Time-out,
                                                                                Wake-up On Pin Change

W                         --                              qqqq qqqu(1)                  qqqq qqqu(1)

INDF                      00h                             xxxx xxxx                     uuuu uuuu

TMR0                      01h                             xxxx xxxx                     uuuu uuuu

PC                        02h                             1111 1111                     1111 1111

STATUS                    03h                             0001 1xxx                     q00q quuu(2), (3)

FSR(4)                    04h                             110x xxxx                     11uu uuuu

FSR(5)                    04h                             111x xxxx                     111u uuuu

OSCCAL                    05h                             1111 111-                     uuuu uuu-

GPIO                      06h                             --xx xxxx                     --uu uuuu

OPTION                    --                              1111 1111                     1111 1111

TRIS                      --                              --11 1111                     --11 1111

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

Note 1: Bits <7:2> of W register contain oscillator calibration values due to MOVLW XX instruction at top of memory.

      2: See Table 7-8 for Reset value for specific conditions.

      3: If Reset was due to wake-up on pin change, then bit 7 = 1. All other Resets will cause bit 7 = 0.

      4: PIC12F509 only.

      5: PIC12F508 only.

DS41236A-page 44                   Preliminary                                     2004 Microchip Technology Inc.
                                      PIC12F508/509/16F505

TABLE 7-4: RESET CONDITIONS FOR REGISTERS PIC16F505

      Register           Address      Power-on Reset                      MCLR Reset, WDT Time-out,
                                                                            Wake-up On Pin Change

W                                --   qqqq qqqu(1)                        qqqq qqqu(1)

INDF                             00h  xxxx xxxx                           uuuu uuuu

TMR0                             01h  xxxx xxxx                           uuuu uuuu

PC                               02h  1111 1111                           1111 1111

STATUS                           03h  0001 1xxx                           q00q quuu(2), (3)

FSR                              04h  110x xxxx                           11uu uuuu

OSCCAL                           05h  1111 111-                           uuuu uuu-

PORTB                            06h  --xx xxxx                           --uu uuuu

PORTC                            07h  --xx xxxx                           --uu uuuu

OPTION                           --   1111 1111                           1111 1111

TRISB                            --   --11 1111                           --11 1111

TRISC                            --   --11 1111                           --11 1111

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

Note 1: Bits <7:2> of W register contain oscillator calibration values due to MOVLW XX instruction at top of memory.

      2: See Table 7-8 for Reset value for specific conditions.

      3: If Reset was due to wake-up on pin change, then bit 7 = 1. All other Resets will cause bit 7 = 0.

TABLE 7-5: RESET CONDITION FOR SPECIAL REGISTERS

                                      STATUS Addr: 03h                    PCL Addr: 02h
                                                                            1111 1111
Power-on Reset                        0001 1xxx                             1111 1111
                                                                            1111 1111
MCLR Reset during normal operation    000u uuuu                             1111 1111
                                                                            1111 1111
MCLR Reset during Sleep               0001 0uuu                             1111 1111

WDT Reset during Sleep                0000 0uuu

WDT Reset normal operation            0000 uuuu

Wake-up from Sleep on pin change      1001 0uuu

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

2004 Microchip Technology Inc.       Preliminary                         DS41236A-page 45
PIC12F508/509/16F505

7.3.2 MCLR ENABLE                                         The Power-on Reset circuit and the Device Reset
                                                          Timer (see Section 7.5 "Device Reset Timer (DRT)")
This configuration bit, when unprogrammed (left in the    circuit are closely related. On power-up, the Reset latch
`1' state), enables the external MCLR function. When      is set and the DRT is reset. The DRT timer begins
programmed, the MCLR function is tied to the internal     counting once it detects MCLR to be high. After the
VDD and the pin is assigned to be a I/O. See Figure 7-7.  time-out period, which is typically 18 ms, it will reset the
                                                          Reset latch and thus end the on-chip Reset signal.
FIGURE 7-7:       MCLR SELECT
                                                          A power-up example where MCLR is held low is shown
GPWU/RBWU                                                 in Figure 7-9. VDD is allowed to rise and stabilize before
                                                          bringing MCLR high. The chip will actually come out of
                  (GP3/RB3)/MCLR/VPP                      Reset TDRT msec after MCLR goes high.

MCLRE             Internal MCLR                           In Figure 7-10, the on-chip Power-on Reset feature is
                                                          being used (MCLR and VDD are tied together or the pin
7.4 Power-on Reset (POR)                                  is programmed to be (GP3/RB3). The VDD is stable
                                                          before the Start-up timer times out and there is no prob-
The PIC12F508/509/16F505 devices incorporate an           lem in getting a proper Reset. However, Figure 7-11
on-chip Power-on Reset (POR) circuitry, which             depicts a problem situation where VDD rises too slowly.
provides an internal chip Reset for most power-up         The time between when the DRT senses that MCLR is
situations.                                               high and when MCLR and VDD actually reach their full
                                                          value, is too long. In this situation, when the start-up
The on-chip POR circuit holds the chip in Reset until     timer times out, VDD has not reached the VDD (min)
VDD has reached a high enough level for proper oper-      value and the chip may not function correctly. For such
ation. To take advantage of the internal POR, program     situations, we recommend that external RC circuits be
the (GP3/RB3)/MCLR/VPP pin as MCLR and tie                used to achieve longer POR delay times (Figure 7-10).
through a resistor to VDD, or program the pin as (GP3/
RB3). An internal weak pull-up resistor is implemented    Note:  When the devices start normal operation
using a transistor (refer to Table 10-2 for the pull-up          (exit the Reset condition), device operat-
resistor ranges). This will eliminate external RC compo-         ing parameters (voltage, frequency, tem-
nents usually needed to create a Power-on Reset. A               perature, etc.) must be met to ensure
maximum rise time for VDD is specified. See                      operation. If these conditions are not met,
Section 10.0 "Electrical Characteristics" for details.           the device must be held in Reset until the
                                                                 operating conditions are met.
When the devices start normal operation (exit the
Reset condition), device operating parameters (volt-      For additional information, refer to Application Notes
age, frequency, temperature,...) must be met to ensure    AN522 "Power-Up Considerations" (DS00522) and
operation. If these conditions are not met, the devices   AN607 "Power-up Trouble Shooting" (DS00607).
must be held in Reset until the operating parameters
are met.

A simplified block diagram of the on-chip Power-on
Reset circuit is shown in Figure 7-8.

DS41236A-page 46               Preliminary                        2004 Microchip Technology Inc.
                                                     PIC12F508/509/16F505

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

                   VDD

                        Power-up  POR (Power-on Reset)
                          Detect

(GP3/RB3)/MCLR/VPP                                                                                                                                               Q

                                                                                  MCLR Reset                                                                     Q
                                                                                                                                                              S          CHIP Reset

MCLRE                         WDT Reset                                             R
                        Wake-up on pin Change Reset
  WDT Time-out                                          Start-up Timer
Pin Change                                              (10 s or 18 ms)

       Sleep

FIGURE 7-9:             TIME-OUT SEQUENCE ON POWER-UP (MCLR PULLED LOW)

            VDD
        MCLR
Internal POR

                                                                                                                                                                 TDRT

DRT Time-out
Internal Reset

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

             VDD                  TDRT
          MCLR
Internal POR

DRT Time-out
  Internal Reset

2004 Microchip Technology Inc.         Preliminary                                                                                                              DS41236A-page 47
PIC12F508/509/16F505

FIGURE 7-11:      TIME-OUT SEQUENCE ON POWER-UP (MCLR TIED TO VDD): SLOW VDD RISE
                  TIME

           VDD           V1
                  TDRT
        MCLR
Internal POR

DRT Time-out

Internal Reset

Note: When VDD rises slowly, the TDRT time-out expires long before VDD has reached its final
            value. In this example, the chip will reset properly if, and only if, V1  VDD min.

DS41236A-page 48  Preliminary   2004 Microchip Technology Inc.
                                                            PIC12F508/509/16F505

7.5 Device Reset Timer (DRT)                                TABLE 7-6: DRT (DEVICE RESET TIMER
                                                                                 PERIOD)
On the PIC12F508/509/16F505 devices, the DRT runs
any time the device is powered up. DRT runs from              Oscillator   POR Reset        Subsequent
Reset and varies based on oscillator selection and          Configuration                      Resets
Reset type (see Table 7-6).
                                                            INTOSC, EXTRC 18 ms (typical)   10 s (typical)
The DRT operates on an internal RC oscillator. The                                          18 ms (typical)
processor is kept in Reset as long as the DRT is active.    HS(1), XT, LP  18 ms (typical)  10 s (typical)
The DRT delay allows VDD to rise above VDD min. and
for the oscillator to stabilize.                            EC(1)          18 ms (typical)

Oscillator circuits based on crystals or ceramic resona-    Note 1: PIC16F505 only.
tors require a certain time after power-up to establish a
stable oscillation. The on-chip DRT keeps the devices in    7.6.1 WDT PERIOD
a Reset condition for approximately 18 ms after MCLR
has reached a logic high (VIH MCLR) level.                  The WDT has a nominal time-out period of 18 ms, (with
Programming (GP3/RB3)/MCLR/VPP as MCLR and                  no prescaler). If a longer time-out period is desired, a
using an external RC network connected to the MCLR          prescaler with a division ratio of up to 1:128 can be
input is not required in most cases. This allows savings    assigned to the WDT (under software control) by
in cost-sensitive and/or space restricted applications, as  writing to the Option register. Thus, a time-out period of
well as allowing the use of the (GP3/RB3)/MCLR/VPP          a nominal 2.3 seconds can be realized. These periods
pin as a general purpose input.                             vary with temperature, VDD and part-to-part process
                                                            variations (see DC specs).
The Device Reset Time delays will vary from chip-to-
chip due to VDD, temperature and process variation.         Under worst case conditions (VDD = Min., Temperature
See AC parameters for details.                              = Max., max. WDT prescaler), it may take several
                                                            seconds before a WDT time-out occurs.
The DRT will also be triggered upon a Watchdog Timer
time-out from Sleep. This is particularly important for     7.6.2  WDT PROGRAMMING
applications using the WDT to wake from Sleep mode                 CONSIDERATIONS
automatically.
                                                            The CLRWDT instruction clears the WDT and the
Reset sources are POR, MCLR, WDT time-out and               postscaler, if assigned to the WDT, and prevents it from
wake-up on pin change. See Section 7.9.2 "Wake-up           timing out and generating a device Reset.
from Sleep", Notes 1, 2 and 3.
                                                            The SLEEP instruction resets the WDT and the
7.6 Watchdog Timer (WDT)                                    postscaler, if assigned to the WDT. This gives the
                                                            maximum Sleep time before a WDT wake-up Reset.
The Watchdog Timer (WDT) is a free running on-chip
RC oscillator, which does not require any external
components. This RC oscillator is separate from the
external RC oscillator of the (GP5/RB5)/OSC1/CLKIN
pin and the internal 4 MHz oscillator. This means that
the WDT will run even if the main processor clock has
been stopped, for example, by execution of a SLEEP
instruction. During normal operation or Sleep, a WDT
Reset or wake-up Reset, generates a device Reset.

The TO bit (Status<4>) will be cleared upon a
Watchdog Timer Reset.

The WDT can be permanently disabled by program-
ming the configuration WDTE as a `0' (see Section 7.1
"Configuration Bits"). Refer to the PIC12F508/509/
16F505 Programming Specifications to determine how
to access the configuration word.

2004 Microchip Technology Inc.  Preliminary                                                DS41236A-page 49
PIC12F508/509/16F505

FIGURE 7-12:      WATCHDOG TIMER BLOCK DIAGRAM

                         From Timer0 Clock Source
                                  (Figure 6-5)

                  Watchdog              0                     Postscaler
                     Time                     M

                                        1U
                                              X

                                                      8-to-1 MUX           PS<2:0>

                  WDT Enable            PSA
                  Configuration
                                                                           To Timer0 (Figure 6-4)
                         Bit                                               PSA

                                                   0                    1

                                                      MUX

                                                   WDT Time-out

     Note 1: T0CS, T0SE, PSA, PS<2:0> are bits in the Option register.

TABLE 7-7: SUMMARY OF REGISTERS ASSOCIATED WITH THE WATCHDOG TIMER

Address  Name     Bit 7          Bit 6  Bit 5    Bit 4 Bit 3 Bit 2 Bit 1 Bit 0  Value on           Value on
                                                                                Power-On           All Other
                                                                                                    Resets
                                                                                   Reset

N/A      OPTION(1) GPWU GPPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

N/A      OPTION(2) RBWU RBPU T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

Legend: Shaded boxes = Not used by Watchdog Timer. -- = unimplemented, read as `0', u = unchanged.

Note 1: PIC12F508/509 only.

     2: PIC16F505 only.

DS41236A-page 50                                 Preliminary                2004 Microchip Technology Inc.
                                                              PIC12F508/509/16F505

7.7 Time-out Sequence, Power-down                             FIGURE 7-14:             BROWN-OUT
         and Wake-up from Sleep Status                                                 PROTECTION CIRCUIT 2
         Bits (TO, PD, GPWUF/RBWUF)                                               VDD
                                                                               R1                VDD
The TO, PD and (GPWUF/RBWUF) bits in the Status
register can be tested to determine if a Reset condition                       R2                                PIC16F505
has been caused by a Power-up condition, a MCLR or                                                               PIC12F508
Watchdog Timer (WDT) Reset.                                                                    Q1 MCLR(2) PIC12F509
                                                                                                40k(1)
TABLE 7-8: TO/PD/(GPWUF/RBWUF)
                     STATUS AFTER RESET

GPWUF/       TO             PD  Reset Caused By               Note 1:      This brown-out circuit is less expensive,
RBWUF                                                                  2:  although less accurate. Transistor Q1 turns
                                                                           off when VDD is below a certain level such
0            0 0 WDT wake-up from Sleep                                    that:

0            0 u WDT time-out (not from

                                Sleep)                                                     R1
                                                                                                       = 0.7V
0            1 0 MCLR wake-up from Sleep                                        VDD
                                                                                       R1 + R2

0            1 1 Power-up                                                  Pin must be confirmed as MCLR.

0            u u MCLR not during Sleep

1            1 0 Wake-up from Sleep on pin                    FIGURE 7-15:             BROWN-OUT
                                                                                       PROTECTION CIRCUIT 3
                                change

Legend: u = unchanged                                                           VDD

Note 1:      The TO, PD and GPWUF/RBWUF bits
             maintain their status (u) until a Reset
             occurs. A low-pulse on the MCLR input                         MCP809 Bypass          VDD
             does not change the TO, PD and                                                              MCLR
             GPWUF/RBWUF status bits.                         VSS                      Capacitor

                                                                                VDD

                                                                           RST

7.8 Reset on Brown-out                                                                            PIC16F505
                                                                                                  PIC12F508
A Brown-out is a condition where device power (VDD)                                               PIC12F509
dips below its minimum value, but not to zero, and then
recovers. The device should be reset in the event of a        Note:             This Brown-out Protection circuit employs
Brown-out.                                                                      Microchip Technology's MCP809 micro-
                                                                                controller supervisor. There are 7 different
To reset PIC12F508/509/16F505 devices when a                                    trip point selections to accommodate 5V to
Brown-out occurs, external Brown-out protection                                 3V systems.
circuits may be built, as shown in Figure 7-13 and
Figure 7-14.

FIGURE 7-13:                    BROWN-OUT
                                PROTECTION CIRCUIT 1
             VDD
                                        VDD
         33k                                       PIC16F505
                       10k                         PIC12F508

                                 Q1 MCLR(2)PIC12F509

                                  40k(1)

Note 1:      This circuit will activate Reset when VDD goes
         2:  below Vz + 0.7V (where Vz = Zener voltage).
             Pin must be confirmed as MCLR.

2004 Microchip Technology Inc.                  Preliminary                                      DS41236A-page 51
PIC12F508/509/16F505

7.9 Power-down Mode (Sleep)                                 7.10 Program Verification/Code
                                                                     Protection
A device may be powered down (Sleep) and later
powered up (wake-up from Sleep).                            If the code protection bit has not been programmed, the
                                                            on-chip program memory can be read out for
7.9.1 SLEEP                                                 verification purposes.

The Power-down mode is entered by executing a               The first 64 locations and the last location (OSCCAL)
SLEEP instruction.                                          can be read, regardless of the code protection bit
                                                            setting.
If enabled, the Watchdog Timer will be cleared but
keeps running, the TO bit (Status<4>) is set, the PD bit    The last memory location can be read regardless of the
(Status<3>) is cleared and the oscillator driver is turned  code protection bit setting on the PIC12F508/509/
off. The I/O ports maintain the status they had before      16F505 devices.
the SLEEP instruction was executed (driving high,
driving low or high-impedance).                             7.11 ID Locations

   Note: A Reset generated by a WDT time-out                Four memory locations are designated as ID locations
               does not drive the MCLR pin low.             where the user can store checksum or other code
                                                            identification numbers. These locations are not
For lowest current consumption while powered down,          accessible during normal execution, but are readable
the T0CKI input should be at VDD or VSS and the             and writable during program/verify.
(GP3/RB3)/MCLR/VPP pin must be at a logic high
level if MCLR is enabled.                                   Use only the lower 4 bits of the ID locations and always
                                                            program the upper 8 bits as `0's.
7.9.2 WAKE-UP FROM SLEEP
                                                            7.12 In-Circuit Serial ProgrammingTM
The device can wake-up from Sleep through one of
the following events:                                       The PIC12F508/509/16F505 microcontrollers can be
                                                            serially programmed while in the end application circuit.
1. An external reset input on (GP3/RB3)/MCLR/VPP            This is simply done with two lines for clock and data,
      pin, when configured as MCLR.                         and three other lines for power, ground and the
                                                            programming voltage. This allows customers to manu-
2. A Watchdog Timer time-out Reset (if WDT was              facture boards with unprogrammed devices and then
      enabled).                                             program the microcontroller just before shipping the
                                                            product. This also allows the most recent firmware, or
3. A change on input pin GP0/RB0, GP1/RB1,                  a custom firmware, to be programmed.
      GP3/RB3 or RB4 when wake-up on change is
      enabled.                                              The devices are placed into a Program/Verify mode by
                                                            holding the GP1/RB1 and GP0/RB0 pins low while rais-
These events cause a device Reset. The TO, PD and           ing the MCLR (VPP) pin from VIL to VIHH (see program-
GPWUF/RBWUF bits can be used to determine the               ming specification). GP1/RB1 becomes the
cause of device Reset. The TO bit is cleared if a WDT       programming clock and GP0/RB0 becomes the
time-out occurred (and caused wake-up). The PD bit,         programming data. Both GP1/RB1 and GP0/RB0 are
which is set on power-up, is cleared when SLEEP is          Schmitt Trigger inputs in this mode.
invoked. The GPWUF/RBWUF bit indicates a change
in state while in Sleep at pins GP0/RB0, GP1/RB1,           After Reset, a 6-bit command is then supplied to the
GP3/RB3 or RB4 (since the last file or bit operation on     device. Depending on the command, 14 bits of program
GP/RB port).                                                data are then supplied to or from the device, depending
                                                            if the command was a Load or a Read. For complete
Note:  Caution: Right before entering Sleep,                details of serial programming, please refer to the
       read the input pins. When in Sleep, wake             PIC12F508/509/16F505 Programming Specifications.
       up occurs when the values at the pins
       change from the state they were in at the            A typical In-Circuit Serial Programming connection is
       last reading. If a wake-up on change                 shown in Figure 7-16.
       occurs and the pins are not read before re-
       entering Sleep, a wake-up will occur
       immediately even if no pins change while
       in Sleep mode.

The WDT is cleared when the device wakes from
Sleep, regardless of the wake-up source.

DS41236A-page 52          Preliminary                        2004 Microchip Technology Inc.
                                               PIC12F508/509/16F505

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

External      To Normal
Connector     Connections
Signals
                                    PIC16F505
      +5V                           PIC12F508
        0V                          PIC12F509
                                 VDD
      VPP
                                 VSS
     CLK
                                 MCLR/VPP
Data I/O
                                 GP1/RB1

                                 GP0/RB0

                                        VDD

              To Normal
              Connections

2004 Microchip Technology Inc.                Preliminary  DS41236A-page 53
PIC12F508/509/16F505

NOTES:

DS41236A-page 54  Preliminary   2004 Microchip Technology Inc.
                                                                 PIC12F508/509/16F505

8.0 INSTRUCTION SET SUMMARY                                      All instructions are executed within a single instruction
                                                                 cycle, unless a conditional test is true or the program
The PIC16 instruction set is highly orthogonal and is            counter is changed as a result of an instruction. In this
comprised of three basic categories.                             case, the execution takes two instruction cycles. One
                                                                 instruction cycle consists of four oscillator periods.
Byte-oriented operations                                       Thus, for an oscillator frequency of 4 MHz, the normal
Bit-oriented operations                                        instruction execution time is 1 s. If a conditional test is
Literal and control operations                                 true or the program counter is changed as a result of an
                                                                 instruction, the instruction execution time is 2 s.
Each PIC16 instruction is a 12-bit word divided into an
opcode, which specifies the instruction type, and one            Figure 8-1 shows the three general formats that the
or more operands which further specify the operation             instructions can have. All examples in the figure use
of the instruction. The formats for each of the catego-          the following format to represent a hexadecimal
ries is presented in Figure 8-1, while the various               number:
opcode fields are summarized in Table 8-1.
                                                                       0xhhh
For byte-oriented instructions, `f' represents a file reg-
ister designator and `d' represents a destination desig-         where `h' signifies a hexadecimal digit.
nator. The file register designator specifies which file
register is to be used by the instruction.                       FIGURE 8-1:    GENERAL FORMAT FOR
                                                                                INSTRUCTIONS
The destination designator specifies where the result of
the operation is to be placed. If `d' is `0', the result is      Byte-oriented file register operations
placed in the W register. If `d' is `1', the result is placed
in the file register specified in the instruction.               11             654                               0

For bit-oriented instructions, `b' represents a bit field            OPCODE     d                     f (FILE #)
designator which selects the number of the bit affected
by the operation, while `f' represents the number of the             d = 0 for destination W
file in which the bit is located.                                    d = 1 for destination f
                                                                     f = 5-bit file register address
For literal and control operations, `k' represents an
8 or 9-bit constant or literal value.                            Bit-oriented file register operations

                                                                 11             87 5 4                            0

                                                                     OPCODE     b (BIT #) f (FILE #)

TABLE 8-1: OPCODE FIELD                                              b = 3-bit bit address
                     DESCRIPTIONS                                    f = 5-bit file register address

Field    Description                                             Literal and control operations (except GOTO)

     f   Register file address (0x00 to 0x7F)                    11             87                                     0
     W   Working register (accumulator)                                 OPCODE                        k (literal)
     b   Bit address within an 8-bit file register
     k   Literal field, constant data or label                       k = 8-bit immediate value
     x   Don't care location (= 0 or 1)
         The assembler will generate code with x = 0. It is the  Literal and control operations GOTO instruction
     d   recommended form of use for compatibility with all
         Microchip software tools.                               11             98                                    0
label   Destination select;                                            OPCODE                        k (literal)
   TOS   d = 0 (store result in W)
    PC   d = 1 (store result in file register `f')                   k = 9-bit immediate value
   WDT   Default is d = 1
    TO   Label name
    PD   Top-of-Stack
  dest   Program Counter
         Watchdog Timer counter
  []     Time-out bit
  ()     Power-down bit
         Destination, either the W register or the specified
         register file location
   <>    Options
         Contents
         Assigned to
italics  Register bit field
         In the set of
         User defined term (font is courier)

2004 Microchip Technology Inc.    Preliminary                                                          DS41236A-page 55
PIC12F508/509/16F505

TABLE 8-2: INSTRUCTION SET SUMMARY

Mnemonic,                                                           12-Bit Opcode   Status
Operands                                                                           Affected
                                Description                 Cycles                           Notes

                                                                    MSb  LSb

ADDWF f, d Add W and f                                      1 0001 11df ffff C, DC, Z 1, 2, 4

ANDWF f, d AND W with f                                     1 0001 01df ffff       Z         2, 4

CLRF   f          Clear f                                   1 0000 011f ffff       Z         4

CLRW             Clear W                                   1 0000 0100 0000       Z

COMF   f, d Complement f                                    1 0010 01df ffff       Z

DECF   f, d Decrement f                                     1 0000 11df ffff       Z         2, 4

DECFSZ f, d Decrement f, Skip if 0                          1(2) 0010 11df ffff None 2, 4

INCF   f, d Increment f                                     1 0010 10df ffff       Z         2, 4

INCFSZ f, d Increment f, Skip if 0                          1(2) 0011 11df ffff None 2, 4

IORWF  f, d Inclusive OR W with f                           1 0001 00df ffff       Z         2, 4

MOVF   f, d Move f                                          1 0010 00df ffff       Z         2, 4

MOVWF f           Move W to f                               1 0000 001f ffff None 1, 4

NOP              No Operation                              1 0000 0000 0000 None

RLF    f, d Rotate left f through Carry                     1 0011 01df ffff       C         2, 4
RRF    f, d Rotate right f through Carry
SUBWF  f, d Subtract W from f                               1 0011 00df ffff       C         2, 4
SWAPF  f, d Swap f
XORWF  f, d Exclusive OR W with f                           1 0000 10df ffff C, DC, Z 1, 2, 4

                                                            1 0011 10df ffff None 2, 4

                                                            1 0001 10df ffff       Z         2, 4

                               BIT-ORIENTED FILE REGISTER OPERATIONS

BCF    f, b Bit Clear f                                      1 0100 bbbf ffff None 2, 4
BSF    f, b Bit Set f
BTFSC  f, b Bit Test f, Skip if Clear                        1 0101 bbbf ffff None 2, 4
BTFSS  f, b Bit Test f, Skip if Set                         1(2) 0110 bbbf ffff None
                                                            1(2) 0111 bbbf ffff None

                                LITERAL AND CONTROL OPERATIONS

ANDLW k           AND literal with W                        1 1110 kkkk kkkk       Z
                  Call Subroutine
CALL   k          Clear Watchdog Timer                      2 1001 kkkk kkkk None            1
                  Unconditional branch
CLRWDT           Inclusive OR literal with W               1 0000 0000 0100 TO, PD
                  Move literal to W
GOTO   k          Load Option register                      2 101k kkkk kkkk None

IORLW  k                                                    1 1101 kkkk kkkk       Z

MOVLW k                                                     1 1100 kkkk kkkk None

OPTION                                                     1 0000 0000 0010 None

RETLW k           Return, place literal in W                2 1000 kkkk kkkk None
                  Go into Standby mode
SLEEP            Load TRIS register                        1 0000 0000 0011 TO, PD
                  Exclusive OR literal to W
TRIS   f                                                    1 0000 0000 0fff None            3

XORLW k                                                     1 1111 kkkk kkkk       Z

Note 1: The 9th bit of the program counter will be forced to a `0' by any instruction that writes to the PC except for
              GOTO. See Section 4.7 "Program Counter".

      2: When an I/O register is modified as a function of itself (e.g. MOVF PORTB, 1), the value used will be that
            value present on the pins themselves. For example, if the data latch is `1' for a pin configured as input and
            is driven low by an external device, the data will be written back with a `0'.

      3: The instruction TRIS f, where f = 6, causes the contents of the W register to be written to the tri-state
            latches of PORTB. A `1' forces the pin to a high-impedance state and disables the output buffers.

      4: If this instruction is executed on the TMR0 register (and, where applicable, d = 1), the prescaler will be
            cleared (if assigned to TMR0).

DS41236A-page 56                               Preliminary                2004 Microchip Technology Inc.
                                                          PIC12F508/509/16F505

ADDWF         Add W and f                                 BCF           Bit Clear f

Syntax:       [ label ] ADDWF f,d                         Syntax:       [ label ] BCF f,b

Operands:     0  f  31                                    Operands:     0  f  31
              d  [0,1]                                                  0b7

Operation:    (W) + (f)  (dest)                           Operation:    0  (f)

Status Affected: C, DC, Z                                 Status Affected: None

Description:  Add the contents of the W register          Description:  Bit `b' in register `f' is cleared.
              and register `f'. If `d' is'0', the result
              is stored in the W register. If `d' is
              `1', the result is stored back in
              register `f'.

ANDLW         AND literal with W                          BSF           Bit Set f

Syntax:       [ label ] ANDLW k                           Syntax:       [ label ] BSF f,b

Operands: 0  k  255                                       Operands:     0  f  31
                                                                        0b7
Operation: (W).AND. (k)  (W)

Status Affected: Z                                        Operation:    1  (f)

Description:  The contents of the W register are          Status Affected: None
              AND'ed with the eight-bit literal `k'.
              The result is placed in the W                    Description: Bit `b' in register `f' is set.
              register.

ANDWF         AND W with f                                BTFSC         Bit Test f, Skip if Clear

Syntax:       [ label ] ANDWF f,d                         Syntax:       [ label ] BTFSC f,b

Operands:     0  f  31                                    Operands:     0  f  31
              d  [0,1]                                                  0b7

Operation:    (W) .AND. (f)  (dest)                       Operation:    skip if (f) = 0

Status Affected: Z                                        Status Affected: None

Description:  The contents of the W register are          Description:  If bit `b' in register `f' is `0', then the
              AND'ed with register `f'. If `d' is `0',                  next instruction is skipped.
              the result is stored in the W register.
              If `d' is `1', the result is stored back                  If bit `b' is `0', then the next instruc-
              in register `f'.                                          tion fetched during the current
                                                                        instruction execution is discarded,
                                                                        and a NOP is executed instead,
                                                                        making this a 2-cycle instruction.

2004 Microchip Technology Inc.      Preliminary                                            DS41236A-page 57
PIC12F508/509/16F505

BTFSS             Bit Test f, Skip if Set                      CLRW          Clear W

Syntax:           [ label ] BTFSS f,b                          Syntax:       [ label ] CLRW

Operands:         0  f  31                                     Operands:     None
                  0b<7
                                                               Operation:    00h  (W);
                                                                             1Z
Operation:        skip if (f) = 1

Status Affected: None                                          Status Affected: Z

Description:      If bit `b' in register `f' is `1', then the  Description:  The W register is cleared. Zero bit
                  next instruction is skipped.                               (Z) is set.

                  If bit `b' is `1', then the next instruc-
                  tion fetched during the current
                  instruction execution, is discarded
                  and a NOP is executed instead,
                  making this a 2-cycle instruction.

CALL              Subroutine Call                              CLRWDT        Clear Watchdog Timer

Syntax:           [ label ] CALL k                             Syntax:       [ label ] CLRWDT

Operands:         0  k  255                                    Operands:     None

Operation:        (PC) + 1 Top-of-Stack;                       Operation:    00h  WDT;
                  k  PC<7:0>;                                                0  WDT prescaler (if assigned);
                  (Status<6:5>)  PC<10:9>;                                   1  TO;
                  0  PC<8>                                                   1  PD

Status Affected: None                                          Status Affected: TO, PD

Description:      Subroutine call. First, return               Description:  The CLRWDT instruction resets the
                  address (PC + 1) is pushed onto                            WDT. It also resets the prescaler, if
                  the stack. The eight-bit immediate                         the prescaler is assigned to the
                  address is loaded into PC                                  WDT and not Timer0. Status bits
                  bits <7:0>. The upper bits                                 TO and PD are set.
                  PC<10:9> are loaded from
                  Status<6:5>, PC<8> is cleared.
                  CALL is a two-cycle instruction.

CLRF              Clear f                                      COMF          Complement f

Syntax:           [ label ] CLRF f                             Syntax:       [ label ] COMF f,d

Operands:         0  f  31                                     Operands:     0  f  31
                                                                             d  [0,1]
Operation:        00h  (f);
                  1Z
                                                               Operation:    (f)  (dest)

Status Affected: Z                                             Status Affected: Z

Description:      The contents of register `f' are             Description:  The contents of register `f' are
                  cleared and the Z bit is set.                              complemented. If `d' is `0', the
                                                                             result is stored in the W register. If
                                                                             `d' is `1', the result is stored back in
                                                                             register `f'.

DS41236A-page 58                                    Preliminary                     2004 Microchip Technology Inc.
                                                       PIC12F508/509/16F505

DECF          Decrement f                              INCF          Increment f

Syntax:       [ label ] DECF f,d                       Syntax:       [ label ] INCF f,d

Operands:     0  f  31                                 Operands:     0  f  31
              d  [0,1]                                               d  [0,1]

Operation:    (f) 1  (dest)                          Operation:    (f) + 1  (dest)

Status Affected: Z                                     Status Affected: Z

Description:  Decrement register `f'. If `d' is `0',   Description:  The contents of register `f' are
              the result is stored in the W                          incremented. If `d' is `0', the result
              register. If `d' is `1', the result is                 is placed in the W register. If `d' is
              stored back in register `f'.                           `1', the result is placed back in
                                                                     register `f'.

DECFSZ        Decrement f, Skip if 0                   INCFSZ        Increment f, Skip if 0

Syntax:       [ label ] DECFSZ f,d                     Syntax:       [ label ] INCFSZ f,d

Operands:     0  f  31                                 Operands:     0  f  31
              d  [0,1]                                               d  [0,1]

Operation:    (f) 1  d; skip if result = 0           Operation:    (f) + 1  (dest), skip if result = 0

Status Affected: None                                  Status Affected: None

Description:  The contents of register `f' are         Description:  The contents of register `f' are
              decremented. If `d' is `0', the result                 incremented. If `d' is `0', the result
              is placed in the W register. If `d' is                 is placed in the W register. If `d' is
              `1', the result is placed back in                      `1', the result is placed back in
              register `f'.                                          register `f'.

              If the result is `0', the next instruc-                If the result is `0', then the next
              tion, which is already fetched, is                     instruction, which is already
              discarded and a NOP is executed                        fetched, is discarded and a NOP is
              instead making it a two-cycle                          executed instead making it a
              instruction.                                           two-cycle instruction.

GOTO          Unconditional Branch                     IORLW         Inclusive OR literal with W

Syntax:       [ label ] GOTO k                         Syntax:       [ label ] IORLW k

Operands:     0  k  511                                Operands:     0  k  255

Operation:    k  PC<8:0>;                              Operation:    (W) .OR. (k)  (W)
              Status<6:5>  PC<10:9>
                                                       Status Affected: Z

Status Affected: None                                  Description:  The contents of the W register are
                                                                     OR'ed with the eight bit literal `k'.
Description:  GOTO is an unconditional branch.                       The result is placed in the
              The 9-bit immediate value is                           W register.
              loaded into PC bits <8:0>. The
              upper bits of PC are loaded from
              Status<6:5>. GOTO is a two-cycle
              instruction.

2004 Microchip Technology Inc.               Preliminary                             DS41236A-page 59
PIC12F508/509/16F505

IORWF             Inclusive OR W with f                       MOVWF         Move W to f

Syntax:           [ label ] IORWF f,d                         Syntax:       [ label ] MOVWF f

Operands:         0  f  31                                    Operands:     0  f  31
                  d  [0,1]
                                                              Operation:    (W)  (f)

Operation:        (W).OR. (f)  (dest)                         Status Affected: None

Status Affected: Z                                            Description:  Move data from the W register to
                                                                            register `f'.
Description:      Inclusive OR the W register with
                  register `f'. If `d' is `0', the result is
                  placed in the W register. If `d' is `1',
                  the result is placed back in register
                  `f'.

MOVF              Move f                                      NOP           No Operation

Syntax:           [ label ] MOVF f,d                          Syntax:       [ label ] NOP

Operands:         0  f  31                                    Operands:     None
                  d  [0,1]
                                                              Operation:    No operation

Operation:        (f)  (dest)                                 Status Affected: None

Status Affected: Z                                            Description:  No operation.

Description:      The contents of register `f' are
                  moved to destination `d'. If `d' is `0',
                  destination is the W register. If `d'
                  is `1', the destination is file
                  register `f'. `d' = 1 is useful as a
                  test of a file register, since status
                  flag Z is affected.

MOVLW             Move Literal to W                           OPTION        Load Option Register

Syntax:           [ label ] MOVLW k                           Syntax:       [ label ] Option

Operands:         0  k  255                                   Operands:     None

Operation:        k  (W)                                      Operation:    (W)  Option

Status Affected: None                                         Status Affected: None

Description:      The eight-bit literal `k' is loaded         Description:  The content of the W register is
                  into the W register. The don't cares                      loaded into the Option register.
                  will assembled as `0's.

DS41236A-page 60                         Preliminary                                  2004 Microchip Technology Inc.
                                                         PIC12F508/509/16F505

RETLW         Return with Literal in W                   SLEEP         Enter SLEEP Mode

Syntax:       [ label ] RETLW k                          Syntax:       [label ] SLEEP

Operands:     0  k  255                                  Operands:     None

Operation:    k  (W);                                    Operation:    00h  WDT;
              TOS  PC                                                  0  WDT prescaler;
                                                                       1  TO;
Status Affected: None                                                  0  PD

Description:  The W register is loaded with the
              eight-bit literal `k'. The program
              counter is loaded from the top of          Status Affected: TO, PD, RBWUF
              the stack (the return address). This
              is a two-cycle instruction.                Description:  Time-out Status bit (TO) is set. The
                                                                       Power-down Status bit (PD) is
                                                                       cleared.

                                                                       RBWUF is unaffected.

                                                                       The WDT and its prescaler are
                                                                       cleared.

                                                                       The processor is put into Sleep
                                                                       mode with the oscillator stopped.
                                                                       See Section 7.9 "Power-down
                                                                       Mode (Sleep)" on Sleep for more
                                                                       details.

RLF           Rotate Left f through Carry

Syntax:       [ label ]          RLF f,d                 SUBWF         Subtract W from f

Operands:     0  f  31                                   Syntax:       [label ] SUBWF f,d
              d  [0,1]
                                                         Operands:     0  f  31
                                                                       d  [0,1]
Operation:    See description below

Status Affected: C                                       Operation:    (f) (W)  (dest)

Description:  The contents of register `f' are           Status Affected: C, DC, Z
              rotated one bit to the left through
              the Carry flag. If `d' is `0', the result  Description:  Subtract (2's complement method)
              is placed in the W register. If `d' is                   the W register from register `f'. If `d'
              `1', the result is stored back in reg-                   is `0', the result is stored in the W
              ister `f'.                                               register. If `d' is `1', the result is
                                                                       stored back in register `f'.

                       C         register `f'

RRF           Rotate Right f through Carry

Syntax:       [ label ] RRF f,d                          SWAPF         Swap Nibbles in f

Operands:     0  f  31                                   Syntax:       [ label ] SWAPF f,d
              d  [0,1]
                                                         Operands:     0  f  31
                                                                       d  [0,1]
Operation:    See description below

Status Affected: C                                       Operation:    (f<3:0>)  (dest<7:4>);
                                                                       (f<7:4>)  (dest<3:0>)
Description:  The contents of register `f' are
              rotated one bit to the right through       Status Affected: None
              the Carry flag. If `d' is `0', the result
              is placed in the W register. If `d' is     Description:  The upper and lower nibbles of
              `1', the result is placed back in                        register `f' are exchanged. If `d' is
              register `f'.                                            `0', the result is placed in W
                                                                       register. If `d' is `1', the result is
                       C         register `f'                          placed in register `f'.

2004 Microchip Technology Inc.                Preliminary                                DS41236A-page 61
PIC12F508/509/16F505

TRIS              Load TRIS Register                      XORWF         Exclusive OR W with f
Syntax:           [ label ] TRIS f
Operands:         f=6                                     Syntax:       [ label ] XORWF f,d
Operation:        (W)  TRIS register f
Status Affected:  None                                    Operands:     0  f  31
Description:      TRIS register `f' (f = 6 or 7) is                     d  [0,1]
                  loaded with the contents of the W
                  register                                Operation:    (W) .XOR. (f)  (dest)

                                                          Status Affected: Z

                                                          Description:  Exclusive OR the contents of the
                                                                        W register with register `f'. If `d' is
XORLW             Exclusive OR literal with W                           `0', the result is stored in the W
                                                                        register. If `d' is `1', the result is
                                                                        stored back in register `f'.

Syntax:           [label ] XORLW k

Operands:         0  k  255

Operation:        (W) .XOR. k  (W)

Status Affected: Z

Description:      The contents of the W register are
                  XOR'ed with the eight-bit literal `k'.
                  The result is placed in the W
                  register.

DS41236A-page 62                               Preliminary                     2004 Microchip Technology Inc.
                                                        PIC12F508/509/16F505

9.0 DEVELOPMENT SUPPORT                                 9.1 MPLAB Integrated Development
                                                                 Environment Software
The PICmicro microcontrollers are supported with a
full range of hardware and software development tools:  The MPLAB IDE software brings an ease of software
                                                        development previously unseen in the 8/16-bit micro-
Integrated Development Environment                    controller market. The MPLAB IDE is a Windows
   - MPLAB IDE Software                                based application that contains:

Assemblers/Compilers/Linkers                           An interface to debugging tools
   - MPASMTM Assembler                                     - simulator
   - MPLAB C17 and MPLAB C18 C Compilers                   - programmer (sold separately)
   - MPLINKTM Object Linker/                               - emulator (sold separately)
      MPLIBTM Object Librarian                             - in-circuit debugger (sold separately)
   - MPLAB C30 C Compiler
   - MPLAB ASM30 Assembler/Linker/Library                A full-featured editor with color coded context
                                                         A multiple project manager
Simulators                                             Customizable data windows with direct edit of
   - MPLAB SIM Software Simulator
   - MPLAB dsPIC30 Software Simulator                      contents
                                                         High level source code debugging
Emulators                                              Mouse over variable inspection
   - MPLAB ICE 2000 In-Circuit Emulator                  Extensive on-line help
   - MPLAB ICE 4000 In-Circuit Emulator
                                                        The MPLAB IDE allows you to:
In-Circuit Debugger
   - MPLAB ICD 2                                        Edit your source files (either assembly or C)
                                                         One touch assemble (or compile) and download
Device Programmers
   - PRO MATE II Universal Device Programmer              to PICmicro emulator and simulator tools
   - PICSTART Plus Development Programmer                 (automatically updates all project information)
                                                         Debug using:
Low Cost Demonstration Boards                            - source files (assembly or C)
   - PICDEMTM 1 Demonstration Board                        - absolute listing file (mixed assembly and C)
   - PICDEM.netTM Demonstration Board                      - machine code
   - PICDEM 2 Plus Demonstration Board
   - PICDEM 3 Demonstration Board                       MPLAB IDE supports multiple debugging tools in a
   - PICDEM 4 Demonstration Board                       single development paradigm, from the cost effective
   - PICDEM 17 Demonstration Board                      simulators, through low cost in-circuit debuggers, to
   - PICDEM 18R Demonstration Board                     full-featured emulators. This eliminates the learning
   - PICDEM LIN Demonstration Board                     curve when upgrading to tools with increasing flexibility
   - PICDEM USB Demonstration Board                     and power.

Evaluation Kits                                       9.2 MPASM Assembler
   - KEELOQ
   - PICDEM MSC                                         The MPASM assembler is a full-featured, universal
   - microID                                           macro assembler for all PICmicro MCUs.
   - CAN
   - PowerSmart                                        The MPASM assembler generates relocatable object
   - Analog                                             files for the MPLINK object linker, Intel standard HEX
                                                        files, MAP files to detail memory usage and symbol ref-
                                                        erence, absolute LST files that contain source lines and
                                                        generated machine code and COFF files for
                                                        debugging.

                                                        The MPASM assembler features include:

                                                         Integration into MPLAB IDE projects
                                                         User defined macros to streamline assembly code
                                                         Conditional assembly for multi-purpose source

                                                           files
                                                         Directives that allow complete control over the

                                                           assembly process

2004 Microchip Technology Inc.  Preliminary            DS41236A-page 63
PIC12F508/509/16F505

9.3 MPLAB C17 and MPLAB C18                                  9.6 MPLAB ASM30 Assembler, Linker,
         C Compilers                                                  and Librarian

The MPLAB C17 and MPLAB C18 Code Development                 MPLAB ASM30 assembler produces relocatable
Systems are complete ANSI C compilers for                    machine code from symbolic assembly language for
Microchip's PIC17CXXX and PIC18CXXX family of                dsPIC30F devices. MPLAB C30 compiler uses the
microcontrollers. These compilers provide powerful           assembler to produce it's object file. The assembler
integration capabilities, superior code optimization and     generates relocatable object files that can then be
ease of use not found with other compilers.                  archived or linked with other relocatable object files and
                                                             archives to create an executable file. Notable features
For easy source level debugging, the compilers provide       of the assembler include:
symbol information that is optimized to the MPLAB IDE
debugger.                                                    Support for the entire dsPIC30F instruction set
                                                             Support for fixed-point and floating-point data
9.4 MPLINK Object Linker/                                     Command line interface
         MPLIB Object Librarian                               Rich directive set
                                                             Flexible macro language
The MPLINK object linker combines relocatable                MPLAB IDE compatibility
objects created by the MPASM assembler and the
MPLAB C17 and MPLAB C18 C compilers. It can link             9.7 MPLAB SIM Software Simulator
relocatable objects from pre-compiled libraries, using
directives from a linker script.                             The MPLAB SIM software simulator allows code devel-
                                                             opment in a PC hosted environment by simulating the
The MPLIB object librarian manages the creation and          PICmicro series microcontrollers on an instruction
modification of library files of pre-compiled code. When     level. On any given instruction, the data areas can be
a routine from a library is called from a source file, only  examined or modified and stimuli can be applied from
the modules that contain that routine will be linked in      a file, or user defined key press, to any pin. The execu-
with the application. This allows large libraries to be      tion can be performed in Single-Step, Execute Until
used efficiently in many different applications.             Break, or Trace mode.

The object linker/library features include:                  The MPLAB SIM simulator fully supports symbolic
                                                             debugging using the MPLAB C17 and MPLAB C18
Efficient linking of single libraries instead of many      C Compilers, as well as the MPASM assembler. The
   smaller files                                             software simulator offers the flexibility to develop and
                                                             debug code outside of the laboratory environment,
Enhanced code maintainability by grouping                  making it an excellent, economical software
   related modules together                                  development tool.

Flexible creation of libraries with easy module            9.8 MPLAB SIM30 Software Simulator
   listing, replacement, deletion and extraction
                                                             The MPLAB SIM30 software simulator allows code
9.5 MPLAB C30 C Compiler                                     development in a PC hosted environment by simulating
                                                             the dsPIC30F series microcontrollers on an instruction
The MPLAB C30 C compiler is a full-featured, ANSI            level. On any given instruction, the data areas can be
compliant, optimizing compiler that translates standard      examined or modified and stimuli can be applied from
ANSI C programs into dsPIC30F assembly language              a file, or user defined key press, to any of the pins.
source. The compiler also supports many command-
line options and language extensions to take full            The MPLAB SIM30 simulator fully supports symbolic
advantage of the dsPIC30F device hardware capabili-          debugging using the MPLAB C30 C Compiler and
ties, and afford fine control of the compiler code           MPLAB ASM30 assembler. The simulator runs in either
generator.                                                   a Command Line mode for automated tasks, or from
                                                             MPLAB IDE. This high speed simulator is designed to
MPLAB C30 is distributed with a complete ANSI C              debug, analyze and optimize time intensive DSP
standard library. All library functions have been vali-      routines.
dated and conform to the ANSI C library standard. The
library includes functions for string manipulation,
dynamic memory allocation, data conversion, time-
keeping, and math functions (trigonometric, exponen-
tial and hyperbolic). The compiler provides symbolic
information for high level source debugging with the
MPLAB IDE.

DS41236A-page 64  Preliminary                                 2004 Microchip Technology Inc.
                                                           PIC12F508/509/16F505

9.9 MPLAB ICE 2000                                         9.11 MPLAB ICD 2 In-Circuit Debugger
         High Performance Universal
         In-Circuit Emulator                               Microchip's In-Circuit Debugger, MPLAB ICD 2, is a
                                                           powerful, low cost, run-time development tool,
The MPLAB ICE 2000 universal in-circuit emulator is        connecting to the host PC via an RS-232 or high speed
intended to provide the product development engineer       USB interface. This tool is based on the FLASH
with a complete microcontroller design tool set for        PICmicro MCUs and can be used to develop for these
PICmicro microcontrollers. Software control of the         and other PICmicro microcontrollers. The MPLAB
MPLAB ICE 2000 in-circuit emulator is advanced by          ICD 2 utilizes the in-circuit debugging capability built
the MPLAB Integrated Development Environment,              into the FLASH devices. This feature, along with
which allows editing, building, downloading and source     Microchip's In-Circuit Serial ProgrammingTM (ICSPTM)
debugging from a single environment.                       protocol, offers cost effective in-circuit FLASH debug-
                                                           ging from the graphical user interface of the MPLAB
The MPLAB ICE 2000 is a full-featured emulator sys-        Integrated Development Environment. This enables a
tem with enhanced trace, trigger and data monitoring       designer to develop and debug source code by setting
features. Interchangeable processor modules allow the      breakpoints, single-stepping and watching variables,
system to be easily reconfigured for emulation of differ-  CPU status and peripheral registers. Running at full
ent processors. The universal architecture of the          speed enables testing hardware and applications in
MPLAB ICE in-circuit emulator allows expansion to          real-time. MPLAB ICD 2 also serves as a development
support new PICmicro microcontrollers.                     programmer for selected PICmicro devices.

The MPLAB ICE 2000 in-circuit emulator system has          9.12 PRO MATE II Universal Device
been designed as a real-time emulation system with                  Programmer
advanced features that are typically found on more
expensive development tools. The PC platform and           The PRO MATE II is a universal, CE compliant device
Microsoft Windows 32-bit operating system were            programmer with programmable voltage verification at
chosen to best make these features available in a          VDDMIN and VDDMAX for maximum reliability. It features
simple, unified application.                               an LCD display for instructions and error messages
                                                           and a modular detachable socket assembly to support
9.10 MPLAB ICE 4000                                        various package types. In Stand-Alone mode, the
         High Performance Universal                        PRO MATE II device programmer can read, verify, and
         In-Circuit Emulator                               program PICmicro devices without a PC connection. It
                                                           can also set code protection in this mode.
The MPLAB ICE 4000 universal in-circuit emulator is
intended to provide the product development engineer       9.13 PICSTART Plus Development
with a complete microcontroller design tool set for high-           Programmer
end PICmicro microcontrollers. Software control of the
MPLAB ICE in-circuit emulator is provided by the           The PICSTART Plus development programmer is an
MPLAB Integrated Development Environment, which            easy-to-use, low cost, prototype programmer. It con-
allows editing, building, downloading and source           nects to the PC via a COM (RS-232) port. MPLAB
debugging from a single environment.                       Integrated Development Environment software makes
                                                           using the programmer simple and efficient. The
The MPLAB ICD 4000 is a premium emulator system,           PICSTART Plus development programmer supports
providing the features of MPLAB ICE 2000, but with         most PICmicro devices up to 40 pins. Larger pin count
increased emulation memory and high speed perfor-          devices, such as the PIC16C92X and PIC17C76X,
mance for dsPIC30F and PIC18XXXX devices. Its              may be supported with an adapter socket. The
advanced emulator features include complex triggering      PICSTART Plus development programmer is CE
and timing, up to 2 Mb of emulation memory, and the        compliant.
ability to view variables in real-time.

The MPLAB ICE 4000 in-circuit emulator system has
been designed as a real-time emulation system with
advanced features that are typically found on more
expensive development tools. The PC platform and
Microsoft Windows 32-bit operating system were cho-
sen to best make these features available in a simple,
unified application.

2004 Microchip Technology Inc.  Preliminary               DS41236A-page 65
PIC12F508/509/16F505

9.14 PICDEM 1 PICmicro                                     9.17 PICDEM 3 PIC16C92X
         Demonstration Board                                        Demonstration Board

The PICDEM 1 demonstration board demonstrates the          The PICDEM 3 demonstration board supports the
capabilities of the PIC16C5X (PIC16C54 to                  PIC16C923 and PIC16C924 in the PLCC package. All
PIC16C58A), PIC16C61, PIC16C62X, PIC16C71,                 the necessary hardware and software is included to run
PIC16C8X, PIC17C42, PIC17C43 and PIC17C44. All             the demonstration programs.
necessary hardware and software is included to run
basic demo programs. The sample microcontrollers           9.18 PICDEM 4 8/14/18-Pin
provided with the PICDEM 1 demonstration board can                  Demonstration Board
be programmed with a PRO MATE II device program-
mer, or a PICSTART Plus development programmer.            The PICDEM 4 can be used to demonstrate the capa-
The PICDEM 1 demonstration board can be connected          bilities of the 8-, 14-, and 18-pin PIC16XXXX and
to the MPLAB ICE in-circuit emulator for testing. A pro-   PIC18XXXX MCUs, including the PIC16F818/819,
totype area extends the circuitry for additional applica-  PIC16F87/88, PIC16F62XA and the PIC18F1320 fam-
tion components. Features include an RS-232                ily of microcontrollers. PICDEM 4 is intended to show-
interface, a potentiometer for simulated analog input,     case the many features of these low pin count parts,
push button switches and eight LEDs.                       including LIN and Motor Control using ECCP. Special
                                                           provisions are made for low power operation with the
9.15 PICDEM.net Internet/Ethernet                          supercapacitor circuit, and jumpers allow on-board
         Demonstration Board                               hardware to be disabled to eliminate current draw in
                                                           this mode. Included on the demo board are provisions
The PICDEM.net demonstration board is an Internet/         for Crystal, RC or Canned Oscillator modes, a five volt
Ethernet demonstration board using the PIC18F452           regulator for use with a nine volt wall adapter or battery,
microcontroller and TCP/IP firmware. The board             DB-9 RS-232 interface, ICD connector for program-
supports any 40-pin DIP device that conforms to the        ming via ICSP and development with MPLAB ICD 2,
standard pinout used by the PIC16F877 or                   2x16 liquid crystal display, PCB footprints for H-Bridge
PIC18C452. This kit features a user friendly TCP/IP        motor driver, LIN transceiver and EEPROM. Also
stack, web server with HTML, a 24L256 Serial               included are: header for expansion, eight LEDs, four
EEPROM for Xmodem download to web pages into               potentiometers, three push buttons and a prototyping
Serial EEPROM, ICSP/MPLAB ICD 2 interface con-             area. Included with the kit is a PIC16F627A and a
nector, an Ethernet interface, RS-232 interface, and a     PIC18F1320. Tutorial firmware is included along with
16 x 2 LCD display. Also included is the book and          the User's Guide.
CD-ROM "TCP/IP Lean, Web Servers for Embedded
Systems," by Jeremy Bentham.                               9.19 PICDEM 17 Demonstration Board

9.16 PICDEM 2 Plus                                         The PICDEM 17 demonstration board is an evaluation
         Demonstration Board                               board that demonstrates the capabilities of several
                                                           Microchip microcontrollers, including PIC17C752,
The PICDEM 2 Plus demonstration board supports             PIC17C756A, PIC17C762 and PIC17C766. A pro-
many 18-, 28-, and 40-pin microcontrollers, including      grammed sample is included. The PRO MATE II device
PIC16F87X and PIC18FXX2 devices. All the neces-            programmer, or the PICSTART Plus development pro-
sary hardware and software is included to run the dem-     grammer, can be used to reprogram the device for user
onstration programs. The sample microcontrollers           tailored application development. The PICDEM 17
provided with the PICDEM 2 demonstration board can         demonstration board supports program download and
be programmed with a PRO MATE II device program-           execution from external on-board FLASH memory. A
mer, PICSTART Plus development programmer, or              generous prototype area is available for user hardware
MPLAB ICD 2 with a Universal Programmer Adapter.           expansion.
The MPLAB ICD 2 and MPLAB ICE in-circuit emulators
may also be used with the PICDEM 2 demonstration
board to test firmware. A prototype area extends the
circuitry for additional application components. Some
of the features include an RS-232 interface, a 2 x 16
LCD display, a piezo speaker, an on-board temperature
sensor, four LEDs, and sample PIC18F452 and
PIC16F877 FLASH microcontrollers.

DS41236A-page 66  Preliminary                               2004 Microchip Technology Inc.
                                                        PIC12F508/509/16F505

9.20 PICDEM 18R PIC18C601/801                           9.23 PICDEM USB PIC16C7X5
         Demonstration Board                                     Demonstration Board

The PICDEM 18R demonstration board serves to assist     The PICDEM USB Demonstration Board shows off the
development of the PIC18C601/801 family of Microchip    capabilities of the PIC16C745 and PIC16C765 USB
microcontrollers. It provides hardware implementation   microcontrollers. This board provides the basis for
of both 8-bit Multiplexed/De-multiplexed and 16-bit     future USB products.
Memory modes. The board includes 2 Mb external
FLASH memory and 128 Kb SRAM memory, as well as         9.24 Evaluation and
serial EEPROM, allowing access to the wide range of              Programming Tools
memory types supported by the PIC18C601/801.
                                                        In addition to the PICDEM series of circuits, Microchip
9.21 PICDEM LIN PIC16C43X                               has a line of evaluation kits and demonstration software
         Demonstration Board                            for these products.

The powerful LIN hardware and software kit includes a    KEELOQ evaluation and programming tools for
series of boards and three PICmicro microcontrollers.      Microchip's HCS Secure Data Products
The small footprint PIC16C432 and PIC16C433 are
used as slaves in the LIN communication and feature      CAN developers kit for automotive network
on-board LIN transceivers. A PIC16F874 FLASH               applications
microcontroller serves as the master. All three micro-
controllers are programmed with firmware to provide      Analog design boards and filter design software
LIN bus communication.                                  PowerSmart battery charging evaluation/

9.22 PICkitTM 1 Flash Starter Kit                          calibration kits
                                                         IrDA development kit
A complete "development system in a box", the PICkit    microID development and rfLabTM development
FLASH Starter Kit includes a convenient multi-section
board for programming, evaluation, and development         software
of 8/14-pin FLASH PIC microcontrollers. Powered via    SEEVAL designer kit for memory evaluation and
USB, the board operates under a simple Windows GUI.
The PICkit 1 Starter Kit includes the user's guide (on     endurance calculations
CD ROM), PICkit 1 tutorial software and code for vari-   PICDEM MSC demo boards for Switching mode
ous applications. Also included are MPLAB IDE (Inte-
grated Development Environment) software, software         power supply, high power IR driver, delta sigma
and hardware "Tips `n Tricks for 8-pin FLASH PIC          ADC, and flow rate sensor
Microcontrollers" Handbook and a USB Interface
Cable. Supports all current 8/14-pin FLASH PIC          Check the Microchip web page and the latest Product
microcontrollers, as well as many future planned        Line Card for the complete list of demonstration and
devices.                                                evaluation kits.

2004 Microchip Technology Inc.  Preliminary            DS41236A-page 67
PIC12F508/509/16F505

NOTES:

DS41236A-page 68  Preliminary   2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

10.0 ELECTRICAL CHARACTERISTICS

Absolute Maximum Ratings()

Ambient temperature under bias.......................................................................................................... -40C to +125C
Storage temperature ............................................................................................................................ -65C to +150C
Voltage on VDD with respect to VSS ............................................................................................................... 0 to +6.5V
Voltage on MCLR with respect to VSS..........................................................................................................0 to +13.5V
Voltage on all other pins with respect to VSS ............................................................................... -0.3V to (VDD + 0.3V)
Total power dissipation(1) .................................................................................................................................. 800 mW
Max. current out of VSS pin ................................................................................................................................ 200 mA
Max. current into VDD pin ................................................................................................................................... 150 mA
Input clamp current, IIK (VI < 0 or VI > VDD)...................................................................................................................20 mA
Output clamp current, IOK (VO < 0 or VO > VDD) ...........................................................................................................20 mA
Max. output current sunk by any I/O pin .............................................................................................................. 25 mA
Max. output current sourced by any I/O pin ......................................................................................................... 25 mA
Max. output current sourced by I/O port .............................................................................................................. 75 mA
Max. output current sunk by I/O port ................................................................................................................... 75 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.

2004 Microchip Technology Inc.  Preliminary  DS41236A-page 69
PIC12F508/509/16F505

FIGURE 10-1:             PIC12F508/509/16F505 VOLTAGE-FREQUENCY GRAPH, -40C  TA  +125C

                 6.0

                 5.5

           5.0
VDD 4.5
(Volts)

           4.0
           3.5

           3.0
           2.5

                 2.0                      4  10               20          25
                      0

                                             Frequency (MHz)

FIGURE 10-2:             MAXIMUM OSCILLATOR FREQUENCY TABLE

Oscillator Mode         LP
                        XT
                 INTOSC          200 kHz            4 MHz         20 MHz
                    XTRC                     Frequency (MHz)
                        EC
                        HS

                              0

DS41236A-page 70                             Preliminary       2004 Microchip Technology Inc.
                                            PIC12F508/509/16F505

10.1 DC Characteristics: PIC12F508/509/16F505 (Industrial)

DC CHARACTERISTICS                     Standard Operating Conditions (unless otherwise specified)
                                       Operating Temperature -40C  TA  +85C (industrial)

Param  Sym  Characteristic             Min Typ(1) Max Units       Conditions
  No.

D001 VDD Supply Voltage                2.0                   5.5  V See Figure 10-1
                                                                  V Device in Sleep mode
D002 VDR RAM Data Retention Voltage(2) -- 1.5* --

D003 VPOR VDD Start Voltage to ensure  -- Vss --                  V See Section 7.4 "DC Characteris-
                     Power-on Reset                                      tics" for details

D004   SVDD VDD Rise Rate to ensure    0.05 --               -- V/ms See Section 7.4 "DC Characteris-
D010             Power-on Reset          *                                     tics" for details

       IDD Supply Current(3)           -- 170 TBD A FOSC = 4 MHz, VDD = 2.0V(4)
                                       -- 0.4 TBD mA FOSC = 10 MHz, VDD = 3.0V
                                       -- 1.7 TBD mA FOSC = 20 MHz, VDD = 5.0V
                                       -- 15 TBD A FOSC = 32 kHz, VDD = 2.0V, WDT

                                                                             disabled

D020 IPD Power-down Current(5)         -- 0.1 TBD A VDD = 2.0V
D022 IWDT WDT Current(5)
                                       -- 1.0 TBD A VDD = 2.0V

Legend: TBD = To Be Determined.

       * These parameters are characterized but not tested.

Note 1: Data in the Typical ("Typ") column is based on characterization results at 25C. This data is for design
              guidance only and is not tested.

      2: This is the limit to which VDD can be lowered in Sleep mode without losing RAM data.

      3: The supply current is mainly a function of the operating voltage and frequency. Other factors such as bus
            loading, oscillator type, bus rate, internal code execution pattern and temperature also have an impact on
            the current consumption.

       a) The test conditions for all IDD measurements in active operation mode are:
           OSC1 = external square wave, from rail-to-rail; all I/O pins tri-stated, pulled to VSS, T0CKI = VDD,
           MCLR = VDD; WDT enabled/disabled as specified.

       b) For standby current measurements, the conditions are the same, except that the device is in Sleep
           mode.

      4: Does not include current through REXT (in EXTRC mode only). The current through the resistor can be
            estimated by the formula:
            I = VDD/2REXT (mA) with REXT in k.

      5: The Power-down current in Sleep mode does not depend on the oscillator type. Power-down current is
            measured with the part in Sleep mode, with all I/O pins in high-impedance state and tied to VDD or VSS.

2004 Microchip Technology Inc.        Preliminary                                             DS41236A-page 71
PIC12F508/509/16F505

10.2 DC Characteristics: PIC12F508/509/16F505 (Extended)

DC CHARACTERISTICS                     Standard Operating Conditions (unless otherwise specified)
                                       Operating Temperature -40C  TA  +125C (Extended)

Param  Sym        Characteristic       Min Typ(1) Max Units       Conditions
  No.

D001 VDD Supply Voltage                2.0                   5.5  V See Figure 10-1
                                                                  V Device in Sleep mode
D002 VDR RAM Data Retention Voltage(2) -- 1.5* --

D003 VPOR VDD Start Voltage to ensure  -- Vss --                  V See Section 7.4 "DC Character-
                      Power-on Reset                                     istics" for details

D004   SVDD  VDD Rise Rate to ensure   0.05* --              -- V/ms See Section 7.4 "DC Character-
D010   IDD   Power-on Reset                                                    istics" for details
             Supply Current(3)
                                       -- 170 TBD A FOSC = 4 MHz, VDD = 2.0V(4)
                                       -- 0.4 TBD mA FOSC = 10 MHz, VDD = 3.0V
                                       -- 1.7 TBD mA FOSC = 20 MHz, VDD = 5.0V
                                       -- 15 TBD A FOSC = 32 kHz, VDD = 2.0V, WDT

                                                                              disabled

D020 IPD Power-down Current(5)         -- 0.1 TBD A VDD = 2.0V
D022 IWDT WDT Current(5)
                                       -- 1.0 TBD A VDD = 2.0V

Legend: TBD = To Be Determined.

       * These parameters are characterized but not tested.

Note 1: Data in the Typical ("Typ") column is based on characterization results at 25C. This data is for design
              guidance only and is not tested.

      2: This is the limit to which VDD can be lowered in Sleep mode without losing RAM data.

      3: The supply current is mainly a function of the operating voltage and frequency. Other factors such as bus
            loading, oscillator type, bus rate, internal code execution pattern and temperature also have an impact on
            the current consumption.

       a) The test conditions for all IDD measurements in active operation mode are:
           OSC1 = external square wave, from rail-to-rail; all I/O pins tri-stated, pulled to VSS, T0CKI = VDD,
           MCLR = VDD;
           WDT enabled/disabled as specified.

       a) For standby current measurements, the conditions are the same, except that the device is in Sleep
           mode.

      4: Does not include current through REXT (in EXTRC mode only). The current through the resistor can be
            estimated by the formula:
            I = VDD/2REXT (mA) with REXT in k.

      5: The Power-down current in Sleep mode does not depend on the oscillator type. Power-down current is
            measured with the part in Sleep mode, with all I/O pins in high-impedance state and tied to VDD or VSS.

DS41236A-page 72                       Preliminary                 2004 Microchip Technology Inc.
                                                              PIC12F508/509/16F505

TABLE 10-1: DC CHARACTERISTICS: PIC12F508/509/16F505 (Industrial, Extended)

DC CHARACTERISTICS                            Standard Operating Conditions (unless otherwise specified)
                                              Operating temperature -40C  TA  +85C (industrial)

                                                                                -40C  TA  +125C (extended)
                                              Operating voltage VDD range as described in DC specification

Param  Sym                 Characteristic     Min        Typ Max Units                 Conditions
  No.

       VIL Input Low Voltage

               I/O ports:

D030           with TTL buffer                Vss        --   0.8V  V For all 4.5  VDD  5.5V

D030A                                         Vss        -- 0.15 VDD V Otherwise

D031           with Schmitt Trigger buffer    Vss        -- 0.15 VDD V

D032           MCLR, T0CKI                    Vss        -- 0.15 VDD V

D033           OSC1 (in EXTRC)                Vss        -- 0.15 VDD V (Note1)

D033           OSC1 (in HS)                   Vss        -- 0.3 VDD V (Note1)

D033           OSC1 (in XT and LP)            Vss        --   0.3   V (Note1)

       VIH Input High Voltage

               I/O ports:                                --

D040           with TTL buffer                2.0        --   VDD   V 4.5  VDD  5.5V

D040A                                         0.25 VDD --     VDD   V Otherwise

                                              + 0.8 VDD

D041           with Schmitt Trigger buffer    0.85 VDD --     VDD   V For entire VDD range

D042           MCLR, T0CKI                    0.85 VDD --     VDD   V

D043           OSC1 (in EXTRC)                0.85 VDD --     VDD   V (Note1)

D043           OSC1 (in HS)                   0.7 VDD --      VDD   V (Note1)

D043           OSC1 (in XT and LP)            1.6        --   VDD   V
D070           GPIO weak pull-up current(4)                         A VDD = 5V, VPIN = VSS
       IPUR    Input Leakage Current(2), (3)  TBD        250  TBD
        IIL

D060           I/O ports                      --         --   1    A Vss  VPIN  VDD, Pin at high-impedance
D061           GP3/RB3/MCLRI(5)
D061A          GP3/RB3/MCLRI(6)               --         --    30  A Vss  VPIN  VDD

                                              --         --   5    A Vss  VPIN  VDD

D063           OSC1                           --         --   5    A Vss  VPIN  VDD, XT, HS and LP oscillator

                                                                        configuration

               Output Low Voltage

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

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

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

D083A                                         --         --   0.6   V IOL = 1.2 mA, VDD = 4.5V, -40C to +125C

D090           Output High Voltage            VDD 0.7 --    --    V IOH = -3.0 mA, VDD = 4.5V, -40C to +85C
               I/O ports/CLKOUT(3)

D090A                                         VDD 0.7 --    --    V IOH = -2.5 mA, VDD = 4.5V, -40C to +125C

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

D092A                                         VDD 0.7 --    --    V IOH = -1.0 mA, VDD = 4.5V, -40C to +125C

               Capacitive Loading Specs on
               Output Pins

D100           OSC2 pin                       --         --   15    pF In XT, HS and LP modes when external clock is

                                                                        used to drive OSC1.

D101           All I/O pins and OSC2          --         --   50    pF

Legend:        TBD = To Be Determined.
               Data in "Typ" column is at 5V, 25C unless otherwise stated. These parameters are for design guidance only and are not tested.
               In EXTRC oscillator configuration, the OSC1/CLKIN pin is a Schmitt Trigger input. It is not recommended that the PIC12F508/509/
Note 1:        16F505 be driven with external clock in RC mode.
               The leakage current on the MCLR pin is strongly dependent on the applied voltage level. The specified levels represent normal operating
          2:   conditions. Higher leakage current may be measured at different input voltages.
               Negative current is defined as coming out of the pin.
          3:   Does not include GP3/RB3. For GP3/RB3 see parameters D061 and D061A.
          4:   This specification applies to GP3/RB3/MCLR configured as external MCLR and GP3/RB3/MCLR configured as input with internal pull-up
          5:   enabled.
               This specification applies when GP3/RB3/MCLR is configured as an input with pull-up disabled. The leakage current of the MCLR circuit
          6:   is higher than the standard I/O logic.

2004 Microchip Technology Inc.                    Preliminary                                                DS41236A-page 73
PIC12F508/509/16F505

TABLE 10-2: PULL-UP RESISTOR RANGES PIC12F508/509/16F505

     VDD (Volts) Temperature (C)  Min                     Typ  Max  Units

RB0/RB1/RB4                                                            
                                                                       
2.0               -40              TBD                     TBD  TBD   
                                                           TBD  TBD   
                  25               TBD                     TBD  TBD   
                                                           TBD  TBD   
                  85               TBD                     TBD  TBD   
                                                           TBD  TBD   
                  125              TBD                     TBD  TBD
                                                           TBD  TBD   
5.5               -40              TBD                                 
                                                           TBD  TBD   
                  25               TBD                     TBD  TBD   
                                                           TBD  TBD   
                  85               TBD                     TBD  TBD   
                                                           TBD  TBD   
                  125              TBD                     TBD  TBD   
                                                           TBD  TBD
RB3                                                        TBD  TBD

2.0               -40              TBD

                  25               TBD

                  85               TBD

                  125              TBD

5.5               -40              TBD

                  25               TBD

                  85               TBD

                  125              TBD

Legend: TBD = To Be determined.

     * These parameters are characterized but not tested.

DS41236A-page 74                   Preliminary                   2004 Microchip Technology Inc.
                                                       PIC12F508/509/16F505

10.3 Timing Parameter Symbology and Load Conditions PIC12F508/509/16F505

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

1. TppS2ppS                                            T Time
2. TppS
T

     F Frequency

    Lowercase subscripts (pp) and their meanings:
pp

   2    to                                             mc           MCLR

   ck   CLKOUT                                         osc          Oscillator

   cy   Cycle time                                     os           OSC1

   drt  Device Reset Timer                             t0           T0CKI

   io   I/O port                                       wdt          Watchdog Timer

   Uppercase letters and their meanings:

S

   F    Fall                                           P            Period

   H    High                                           R            Rise

   I    Invalid (high-impedance)                       V            Valid

   L    Low                                            Z            High-impedance

FIGURE 10-3:      LOAD CONDITIONS PIC12F508/509/16F505

                                                       Legend:

                                 pin               CL  CL = 50 pF for all pins except OSC2

                                                            15 pF for OSC2 in XT, HS or LP

                                          VSS                       modes when external clock

                                                                    is used to drive OSC1

FIGURE 10-4:      EXTERNAL CLOCK TIMING PIC12F508/509/16F505

          OSC1    Q4             Q1                Q2           Q3              Q4          Q1

                                      1                     3       3           4       4

                                                       2

2004 Microchip Technology Inc.                    Preliminary                              DS41236A-page 75
PIC12F508/509/16F505

TABLE 10-3: EXTERNAL CLOCK TIMING REQUIREMENTS PIC12F508/509/16F505

AC CHARACTERISTICS                    Standard Operating Conditions (unless otherwise specified)
                                      Operating Temperature -40C  TA  +85C (industrial),

                                                                       -40C  TA  +125C (extended)
                                      Operating Voltage VDD range is described in Section 10.1 "DC

                                      Characteristics"

Param  Sym        Characteristic      Min Typ(1) Max Units              Conditions
  No.

1A     FOSC External CLKIN Frequency(2) DC    --             4 MHz XT Oscillator mode

                                      DC --                  20 MHz HS Oscillator mode (PIC16F505
                                                                               only)

                                      DC --                  200 kHz LP Oscillator mode
                                                              4 MHz EXTRC Oscillator mode
            Oscillator Frequency(2)   --      --

                                      0.1 --                 4 MHz XT Oscillator mode

                                      4       --             20 MHz HS Oscillator mode (PIC16F505

                                                                 only)

                                      --      --             200 kHz LP Oscillator mode

1      TOSC External CLKIN Period(2)  250 --                 -- ns XT Oscillator mode

                                      50 --                  -- ns HS Oscillator mode (PIC16F505
                                                                               only)

                                      5       --             -- s LP Oscillator mode
                                                             -- ns EXTRC Oscillator mode
            Oscillator Period(2)      250 --

                                      250 -- 10,000 ns XT Oscillator mode

                                      50      --             250 ns HS Oscillator mode (PIC16F505

                                                                 only)

                                      5       --             -- s LP Oscillator mode

2      TCY Instruction Cycle Time     200 4/FOSC --          ns

3      TosL, Clock in (OSC1) Low or High 50* --              -- ns XT Oscillator

       TosH Time                      2*      --             -- s LP Oscillator

                                      10* --                 -- ns HS Oscillator (PIC16F505 only)

4      TosR, Clock in (OSC1) Rise or Fall --  --             25* ns XT Oscillator

       TosF Time                      --      --             50* ns LP Oscillator

                                      --      --             15* ns HS Oscillator (PIC16F505 only)

       * These parameters are characterized but not tested.

Note 1: Data in the Typical ("Typ") column is at 5V, 25C unless otherwise stated. These parameters are for design
              guidance only and are not tested.

    2: 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. When an external clock
          input is used, the "max" cycle time limit is "DC" (no clock) for all devices.

DS41236A-page 76                      Preliminary                        2004 Microchip Technology Inc.
                                                             PIC12F508/509/16F505

TABLE 10-4: CALIBRATED INTERNAL RC FREQUENCIES PIC12F508/509/16F505

AC CHARACTERISTICS                            Standard Operating Conditions (unless otherwise specified)
                                              Operating Temperature -40C  TA  +85C (industrial),

                                                                                -40C  TA  +125C (extended)
                                              Operating Voltage VDD range is described in
                                              Section 10.1 "DC Characteristics"

Param  Sym    Characteristic                         Freq    Min  Typ  Max Units  Conditions
  No.                                             Tolerance

F10 FOSC Internal Calibrated                      1%       TBD 4.00 TBD MHz VDD and Temperature
                         INTOSC Frequency(1)                                                         TBD

                                                   2%       TBD 4.00 TBD MHz 2.5V  VDD  5.5V
                                                                                                     0C  TA  +85C

                                                   5%       TBD 4.00  TBD  MHz 2.0V  VDD  5.5V
                                                                                     -40C  TA  +85C (Ind.)
                                                                                     -40C  TA  +125C (Ext.)

Legend: TBD = To Be Determined.

       * These parameters are characterized but not tested.

        Data in the Typical ("Typ") column is at 5V, 25C unless otherwise stated. These parameters are for design
           guidance only and are not tested.

Note 1: To ensure these oscillator frequency tolerances, VDD and VSS must be capacitively decoupled as close to
              the device as possible. 0.1 uF and 0.01 uF values in parallel are recommended.

FIGURE 10-5:  I/O TIMING PIC12F508/509/16F505

                    Q4                            Q1                   Q2         Q3

OSC1

I/O Pin                                      17             19 18
(input)
I/O Pin      Old Value                                                           New Value
(output)

                                              20, 21

Note: All tests must be done with specified capacitive loads (see data sheet) 50 pF on I/O pins and CLKOUT.

2004 Microchip Technology Inc.                   Preliminary                     DS41236A-page 77
PIC12F508/509/16F505

TABLE 10-5: TIMING REQUIREMENTS PIC12F508/509/16F505

AC                Standard Operating Conditions (unless otherwise specified)
CHARACTERISTIC    Operating Temperature -40C  TA  +85C (industrial)
S
                                                    -40C  TA  +125C (extended)
                  Operating Voltage VDD range is described in Section 10.1 "DC Characteristics"

Param  Sym                                Characteristic          Min Typ(1) Max Units
  No.

17     TOSH2IOV OSC1 (Q1 cycle) to Port Out Valid(2), (3)         --             --                        100*  ns

18     TOSH2IOI OSC1 (Q2 cycle) to Port Input Invalid (I/O in hold time)(2) TBD  --                        --    ns

19     TIOV2OSH Port Input Valid to OSC1 (I/O in setup time)      TBD            --                        --    ns

20     TIOR       Port Output Rise Time(3)                        --             10                        25**  ns

21     TIOF       Port Output Fall Time(3)                        --             10                        25**  ns

Legend: TBD = To Be Determined.
          * These parameters are characterized but not tested.
          ** These parameters are design targets and are not tested.

Note 1: Data in the Typical ("Typ") column is at 5V, 25C unless otherwise stated. These parameters are for design
              guidance only and are not tested.

        2: Measurements are taken in EXTRC mode.
        3: See Figure 10-3 for loading conditions.

FIGURE 10-6:      RESET, WATCHDOG TIMER AND DEVICE RESET TIMER TIMING
                  PIC12F508/509/16F505

            VDD                                 30

         MCLR                                                 32                 32

       Internal                                                   31
           POR
                                      32    34                        34
           DRT

    Timeout(2)

       Internal
         Reset

    Watchdog
          Timer
         Reset

      I/O pin(1)

    Note 1: I/O pins must be taken out of High-impedance mode by enabling the output drivers in software.
             2: Runs in MCLR or WDT Reset only in XT, LP and HS (PIC16F505) modes.

DS41236A-page 78                            Preliminary                2004 Microchip Technology Inc.
                                             PIC12F508/509/16F505

TABLE 10-6: RESET, WATCHDOG TIMER AND DEVICE RESET TIMER PIC12F508/509/16F505

AC CHARACTERISTICS                        Standard Operating Conditions (unless otherwise specified)
                                          Operating Temperature -40C  TA  +85C (industrial)

                                                                           -40C  TA  +125C (extended)
                                          Operating Voltage VDD range is described in

                                          Section 10.1 "DC Characteristics"

Param  Sym          Characteristic        Min Typ(1) Max Units   Conditions
  No.

30     TMCL MCLR Pulse Width (low)        2000* --           --  ns VDD = 5.0V

31     TWDT Watchdog Timer Time-out Period 9* 18* 30* ms VDD = 5.0V (Industrial)

            (no prescaler)                9* 18* 40* ms VDD = 5.0V (Extended)

32     TDRT Device Reset Timer Period(2)  9* 18* 30* ms VDD = 5.0V (Industrial)

                                          9* 18* 40* ms VDD = 5.0V (Extended)

34     TIOZ I/O High-impedance from MCLR --  -- 2000* ns

            low

       * These parameters are characterized but not tested.

Note 1: Data in the Typical ("Typ") column is at 5V, 25C unless otherwise stated. These parameters are for design
              guidance only and are not tested.

2004 Microchip Technology Inc.           Preliminary                           DS41236A-page 79
PIC12F508/509/16F505

FIGURE 10-7:         TIMER0 CLOCK TIMINGS PIC12F508/509/16F505

              T0CKI

                                     40                           41

                                                             42

TABLE 10-7: TIMER0 CLOCK REQUIREMENTS PIC12F508/509/16F505

                          Standard Operating Conditions (unless otherwise specified)

                          Operating Temperature -40C  TA  +85C (industrial)

AC CHARACTERISTICS                                           -40C  TA  +125C (extended)

                          Operating Voltage VDD range is described in

                          Section 10.1 "DC Characteristics"

Param  Sym           Characteristic                          Min      Typ(1) Max Units     Conditions
  No.

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

              Width       With Prescaler                     10*      -- -- ns

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

              Width       With Prescaler                     10*      -- -- ns

42     Tt0P T0CKI Period                   20 or TCY + 40* N -- -- ns Whichever is greater.
                                                                                                N = Prescale Value
                                                                                                (1, 2, 4,..., 256)

       * These parameters are characterized but not tested.

Note 1: Data in the Typical ("Typ") column is at 5V, 25C unless otherwise stated. These parameters are for design
              guidance only and are not tested.

DS41236A-page 80                     Preliminary                        2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

11.0 DC AND AC
         CHARACTERISTICS GRAPHS
         AND CHARTS

Graphs and charts are not available at this time.

2004 Microchip Technology Inc.  Preliminary  DS41236A-page 81
PIC12F508/509/16F505

NOTES:

DS41236A-page 82  Preliminary   2004 Microchip Technology Inc.
12.0 PACKAGING INFORMATION        PIC12F508/509/16F505

12.1 Package Marking Information                    Example
                                                        12F508-I
                8-Lead PDIP                             /P017
                   XXXXXXXX                                      0410
                   XXXXXNNN
                           YYWW

8-Lead SOIC (.150")                            Example

   XXXXXXXX                                       12F509-I
   XXXXYYWW                                        /SN0410

             NNN                                            017

8-Lead MSOP                                    Example

  XXXXXX                                           12F509
  YWWNNN                                            0431017

Legend:  XX...X                  Customer specific information*
         Y                       Year code (last digit of calendar year)
         YY                      Year code (last 2 digits of calendar year)
         WW                      Week code (week of January 1 is week `01')
         NNN                     Alphanumeric traceability code

              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 PICmicro device marking consists of Microchip part number, year code, week code, and
     traceability code. For PICmicro device 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.

2004 Microchip Technology Inc.   Preliminary                                DS41236A-page 83
PIC12F508/509/16F505                       Example

12.1 Package Marking Information (Cont'd)         PIC16F505-I/PG
                                                  0215
                14-Lead PDIP (300 mil)
                       XXXXXXXXXXXXXX                   0410017
                       XXXXXXXXXXXXXX
                              YYWWNNN

14-Lead SOIC (150 mil)                     Example

    XXXXXXXXXXX                             PIC16F505-E
    XXXXXXXXXXX                             /SLG0125

            YYWWNNN                               0431017

14-Lead TSSOP (150 mil)                    Example

   XXXXXXXX                                 16F505-I
        YYWW                                     0431
          NNN                                    017

DS41236A-page 84         Preliminary                    2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

8-Lead Plastic Dual In-line (P) 300 mil (PDIP)

                                                  E1

                                           D
                                 2

n                                1

                  E                                                                             
                                                                                                        A2
                                                              A

                                              c                  A1                                                    L
                                                                         B1                                  p
                                                                          B
                 eB

                                 Units                        INCHES*                        MILLIMETERS
                                                                NOM
                                 Dimension Limits  MIN                    8  MAX        MIN     NOM          MAX
                                                                      .100
Number of Pins                      n                  .140           .155        .170                    8       4.32
                                                       .115           .130        .145                            3.68
Pitch                               p                  .015                                     2.54
                                                       .300           .313        .325                            8.26
Top to Seating Plane                A                  .240           .250        .260  3.56    3.94              6.60
                                                       .360           .373        .385                            9.78
Molded Package Thickness         A2                    .125           .130        .135  2.92    3.30              3.43
                                                       .008           .012        .015                            0.38
Base to Seating Plane            A1                    .045           .058        .070  0.38                      1.78
                                                       .014           .018        .022                            0.56
Shoulder to Shoulder Width          E                  .310           .370        .430  7.62    7.94            10.92

Molded Package Width             E1                        5            10          15  6.10    6.35                15
                                                           5            10          15                              15
Overall Length                   D                                                      9.14    9.46

Tip to Seating Plane                L                                                   3.18    3.30

Lead Thickness                      c                                                   0.20    0.29

Upper Lead Width                 B1                                                     1.14    1.46

Lower Lead Width                    B                                                   0.36    0.46

Overall Row Spacing               eB                                                   7.87    9.40
Mold Draft Angle Top                    
                                                                                             5       10

Mold Draft Angle Bottom                                                                      5       10

* Controlling Parameter
Significant Characteristic

Notes:
Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed
.010" (0.254mm) per side.
JEDEC Equivalent: MS-001
Drawing No. C04-018

2004 Microchip Technology Inc.                    Preliminary                                               DS41236A-page 85
PIC12F508/509/16F505

8-Lead Plastic Small Outline (SN) Narrow, 150 mil (SOIC)

                  p           E
                              E1
B                    n
                                                               D
                                                       2
                                                       1

                                                h                                                         
                                                                                                                       A2
                        45                                                  A
       c
                                                              
                           
                                                           L                 A1

                              Units                           INCHES*                             MILLIMETERS
                                                                NOM
                              Dimension Limits  MIN                       8      MAX         MIN     NOM       MAX
                                                                     .050
Number of Pins                n                     .053              .061            .069                8         1.75
                                                    .052             .056             .061                          1.55
Pitch                         p                     .004             .007             .010           1.27           0.25
                                                    .228             .237             .244                          6.20
Overall Height                A                     .146             .154             .157   1.35    1.55           3.99
                                                    .189             .193             .197                          5.00
Molded Package Thickness      A2                    .010             .015             .020   1.32    1.42           0.51
                                                    .019             .025             .030                          0.76
Standoff                     A1                                          4                  0.10    0.18
                                                        0            .009                 8                             8
Overall Width                 E                     .008             .017             .010   5.79    6.02           0.25
                                                    .013                12            .020                          0.51
Molded Package Width          E1                                        12                   3.71    3.91
                                                        0                               15                            15
Overall Length                D                         0                               15   4.80    4.90             15

Chamfer Distance              h                                                              0.25    0.38

Foot Length                   L                                                              0.48    0.62

Foot Angle                                                                                        0       4

Lead Thickness                c                                                              0.20    0.23

Lead Width                    B                                                              0.33    0.42

Mold Draft Angle Top                                                                              0       12

Mold Draft Angle Bottom                                                                           0       12

* Controlling Parameter
Significant Characteristic

Notes:
Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed
.010" (0.254mm) per side.
JEDEC Equivalent: MS-012
Drawing No. C04-057

DS41236A-page 86                                Preliminary                                           2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

8-Lead Plastic Micro Small Outline Package (MS) (MSOP)

                                          E                        D
                                         E1                  2

p                                                            1

   B
           n

                                                                                                               

                                                                            A                                     A2

c                                                                       
                                                                                A1
             (F)
                                                             L

                                             Units           INCHES                            MILLIMETERS*

                     Dimension Limits               MIN      NOM            MAX           MIN      NOM            MAX
                                            n
Number of Pins                              p                           8                                    8       1.10
Pitch                                                                                                                0.95
                                                             .026 BSC                              0.65 BSC          0.15

Overall Height                               A           -              -      .043            -             -       0.80

Molded Package Thickness                     A2     .030              .033     .037       0.75     0.85                  8
                                                                                                                     0.23
Standoff                                     A1     .000                -      .006       0.00               -       0.40
                                                                                                                       15
Overall Width                                E               .193 TYP.                             4.90 BSC            15

Molded Package Width                         E1              .118 BSC                              3.00 BSC

Overall Length                               D               .118 BSC                              3.00 BSC

Foot Length                                  L      .016     .024                   .031  0.40     0.60

Footprint (Reference)                        F               .037 REF                              0.95 REF
Foot Angle
Lead Thickness                                           0             -           8         0            -

                                             c      .003              .006     .009       0.08               -

Lead Width                                   B      .009              .012     .016       0.22               -
Mold Draft Angle Top
Mold Draft Angle Bottom                                  5             -           15        5            -

                                                         5             -           15        5            -

*Controlling Parameter

Notes:

Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not
exceed .010" (0.254mm) per side.

JEDEC Equivalent: MO-187

Drawing No. C04-111

2004 Microchip Technology Inc.                     Preliminary                                                 DS41236A-page 87
PIC12F508/509/16F505

14-Lead Plastic Dual In-line (P) 300 mil (PDIP)

                                           E1

                                    D

                              2

       n                      1

                                                                                             

                  E                                                                                      A2
                                                      A                                                             L

                                 c                                                         p

                                           A1
                        eB                                               B1

                                                                       B

                                    Units                      INCHES*                     MILLIMETERS

                            Dimension Limits MIN               NOM           MAX      MIN     NOM         MAX

Number of Pins                         n                            14                             14          4.32
                                                                                                               3.68
Pitch                                  p                       .100                             2.54
                                                                                                               8.26
Top to Seating Plane                   A                 .140  .155          .170     3.56      3.94           6.60
                                                                                                             19.30
Molded Package Thickness               A2                .115  .130          .145     2.92      3.30           3.43
                                                                                                               0.38
Base to Seating Plane                  A1                .015                         0.38                     1.78
                                                                                                               0.56
Shoulder to Shoulder Width             E                 .300  .313          .325     7.62      7.94         10.92

Molded Package Width                   E1                .240  .250          .260     6.10      6.35             15
                                                                                                                 15
Overall Length                         D                 .740  .750          .760     18.80     19.05

Tip to Seating Plane                   L                 .125  .130          .135     3.18      3.30

Lead Thickness                         c                 .008  .012          .015     0.20      0.29

Upper Lead Width                       B1                .045  .058          .070     1.14      1.46

Lower Lead Width                       B                 .014  .018          .022     0.36      0.46

Overall Row Spacing               eB                    .310  .370          .430     7.87      9.40
Mold Draft Angle Top                    
                                                         5          10            15       5       10

Mold Draft Angle Bottom                                  5          10            15       5       10

* Controlling Parameter
Significant Characteristic

Notes:
Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed

.010" (0.254mm) per side.
JEDEC Equivalent: MS-001
Drawing No. C04-005

DS41236A-page 88                                         Preliminary                           2004 Microchip Technology Inc.
                                PIC12F508/509/16F505

14-Lead Plastic Small Outline (SL) Narrow, 150 mil (SOIC)

                                      E
                                     E1

       p

                                                D

B              n                                2
                                                1
                    45                         h                                                
       c                                                                                                   A2
                                                                      A

                                                            

                                                                         A1
                                                          L
                        

                                         Units             INCHES*                            MILLIMETERS
                                                             NOM
                         Dimension Limits       MIN                  14      MAX         MIN     NOM         MAX
                                                                  .050
Number of Pins                           n          .053           .061           .069                14          1.75
                                                    .052          .056            .061                            1.55
Pitch                                    p          .004          .007            .010           1.27             0.25
                                                    .228          .236            .244                            6.20
Overall Height                           A          .150          .154            .157   1.35    1.55             3.99
                                                    .337          .342            .347                            8.81
Molded Package Thickness                 A2         .010          .015            .020   1.32    1.42             0.51
                                                    .016          .033            .050                            1.27
Standoff                                A1                            4                 0.10    0.18
                                                        0         .009                8                               8
Overall Width                            E          .008          .017            .010   5.79    5.99             0.25
                                                    .014             12           .020                            0.51
Molded Package Width                     E1                          12                  3.81    3.90
                                                        0                           15                              15
Overall Length                           D              0                           15   8.56    8.69               15

Chamfer Distance                         h                                               0.25    0.38

Foot Length                              L                                               0.41    0.84

Foot Angle                                                                                    0           4

Lead Thickness                           c                                               0.20    0.23

Lead Width                               B                                               0.36    0.42

Mold Draft Angle Top                                                                          0       12

Mold Draft Angle Bottom                                                                       0       12

* Controlling Parameter
Significant Characteristic

Notes:
Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed
.010" (0.254mm) per side.
JEDEC Equivalent: MS-012
Drawing No. C04-065

2004 Microchip Technology Inc.                 Preliminary                                                    DS41236A-page 89
PIC12F508/509/16F505

14-Lead Plastic Thin Shrink Small Outline (ST) 4.4 mm (TSSOP)

                                       E                        D                                                   
                                      E1              2
        p                                             1                                                   A2

         n                                                                         A
B
                                                              
c                                                                           A1

                                                              L

                                          Units         INCHES                             MILLIMETERS*

                         Dimension Limits        MIN    NOM      MAX                  MIN    NOM          MAX

Number of Pins                            n                  14       .043                        14           1.10
                                                                      .037                                     0.95
Pitch                                     p             .026          .006                   0.65              0.15
                                                                      .256                                     6.50
Overall Height                            A                           .177                                     4.50
                                                                      .201                                     5.10
Molded Package Thickness                  A2     .033   .035          .028            0.85   0.90              0.70
                                                 .002   .004                          0.05   0.10
Standoff                                 A1     .246   .251              8           6.25   6.38                  8
                                                 .169   .173          .008            4.30   4.40              0.20
Overall Width                             E      .193   .197          .012            4.90   5.00              0.30
                                                 .020   .024                          0.50   0.60
Molded Package Width                      E1                            10                                       10
                                                     0      4           10                0      4               10
Molded Package Length                     D      .004   .006                          0.09   0.15
                                                 .007   .010                          0.19   0.25
Foot Length                               L
                                                     0      5                             0      5
Foot Angle                                           0      5                             0      5

Lead Thickness                            c

Lead Width                                B

Mold Draft Angle Top                     

Mold Draft Angle Bottom                  

* Controlling Parameter

Significant Characteristic

Notes:
Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed
.005" (0.127mm) per side.
JEDEC Equivalent: MO-153
Drawing No. C04-087

DS41236A-page 90                                 Preliminary                                  2004 Microchip Technology Inc.
                                                                                               PIC12F508/509/16F505

INDEX                                                                                                Data Memory .............................................................. 16
                                                                                                     Program Memory (PIC12F508/509) ........................... 15
A                                                                                                    Program Memory (PIC16F505) .................................. 16
                                                                                               MPLAB ASM30 Assembler, Linker, Librarian ..................... 64
ALU ....................................................................................... 9  MPLAB ICD 2 In-Circuit Debugger ..................................... 65
Assembler                                                                                      MPLAB ICE 2000 High Performance Universal
                                                                                                      In-Circuit Emulator..................................................... 65
      MPASM Assembler..................................................... 63                  MPLAB ICE 4000 High Performance Universal
                                                                                                      In-Circuit Emulator..................................................... 65
B                                                                                              MPLAB Integrated Development Environment Software.... 63
                                                                                               MPLINK Object Linker/MPLIB Object Librarian .................. 64
Block Diagram
      On-Chip Reset Circuit ................................................. 47               O
      Timer0......................................................................... 33
      TMR0/WDT Prescaler................................................. 37                   Option Register................................................................... 22
      Watchdog Timer.......................................................... 50              OSC selection..................................................................... 39
                                                                                               OSCCAL Register............................................................... 24
Brown-Out Protection Circuit .............................................. 51                 Oscillator Configurations..................................................... 41
                                                                                               Oscillator Types
C
                                                                                                     HS............................................................................... 41
C Compilers                                                                                          LP ............................................................................... 41
      MPLAB C17 ................................................................ 64                  RC .............................................................................. 41
      MPLAB C18 ................................................................ 64                  XT ............................................................................... 41
      MPLAB C30 ................................................................ 64
                                                                                               P
Carry ..................................................................................... 9
Clocking Scheme ................................................................ 14            PIC12F508/509/16F505 Device Varieties ............................ 7
Code Protection ............................................................ 39, 52            PICkit 1 FLASH Starter Kit.................................................. 67
Configuration Bits................................................................ 39          PICSTART Plus Development Programmer....................... 65
Configuration Word ............................................................. 40            POR

D                                                                                                    Device Reset Timer (DRT) ................................... 39, 49
                                                                                                     PD............................................................................... 51
DC and AC Characteristics ................................................. 81                       Power-on Reset (POR)............................................... 39
Demonstration Boards                                                                                 TO............................................................................... 51
                                                                                               PORTB ............................................................................... 29
      PICDEM 1 ................................................................... 66          Power-down Mode.............................................................. 52
      PICDEM 17 ................................................................. 66           Prescaler ............................................................................ 36
      PICDEM 18R PIC18C601/801.................................... 67                          PRO MATE II Universal Device Programmer ..................... 65
      PICDEM 2 Plus ........................................................... 66             Program Counter ................................................................ 25
      PICDEM 3 PIC16C92X ............................................... 66
      PICDEM 4 ................................................................... 66          Q
      PICDEM LIN PIC16C43X ........................................... 67
      PICDEM USB PIC16C7X5.......................................... 67                        Q cycles .............................................................................. 14
      PICDEM.net Internet/Ethernet .................................... 66
Development Support ......................................................... 63               R
Digit Carry ............................................................................. 9
                                                                                               RC Oscillator....................................................................... 42
E                                                                                              Read-Modify-Write.............................................................. 31
                                                                                               Register File Map
Errata .................................................................................... 3
Evaluation and Programming Tools .................................... 67                             PIC12F508 ................................................................. 17
                                                                                                     PIC12F509 ................................................................. 17
F                                                                                                    PIC16F505 ................................................................. 17
                                                                                               Registers
Family of Devices                                                                                    Special Function ......................................................... 18
      PIC16F505.................................................................... 5          Reset .................................................................................. 39
                                                                                               Reset on Brown-Out ........................................................... 51
FSR ..................................................................................... 26
                                                                                               S
I
                                                                                               Sleep ............................................................................ 39, 52
I/O Interfacing ..................................................................... 29       Software Simulator (MPLAB SIM) ...................................... 64
I/O Ports .............................................................................. 29    Software Simulator (MPLAB SIM30) .................................. 64
I/O Programming Considerations........................................ 31                      Special Features of the CPU .............................................. 39
ID Locations .................................................................. 39, 52         Special Function Registers ................................................. 18
INDF.................................................................................... 26    Stack................................................................................... 25
Indirect Data Addressing..................................................... 26               Status Register ............................................................... 9, 20
Instruction Cycle ................................................................. 14
Instruction Flow/Pipelining .................................................. 14
Instruction Set Summary..................................................... 56

L

Loading of PC ..................................................................... 25

M

Memory Organization.......................................................... 15

2004 Microchip Technology Inc.  Preliminary                                                   DS41236A-page 91
PIC12F508/509/16F505

T

Timer0
      Timer0 ......................................................................... 33
      Timer0 (TMR0) Module ............................................... 33
      TMR0 with External Clock........................................... 35

Timing Diagrams and Specifications................................... 75
Timing Parameter Symbology and Load Conditions........... 75
TRIS Registers.................................................................... 29

W

Wake-up from Sleep ........................................................... 52
Watchdog Timer (WDT) ................................................ 39, 49

      Period.......................................................................... 49
      Programming Considerations ..................................... 49
WWW, On-Line Support........................................................ 3

Z

Zero bit .................................................................................. 9

DS41236A-page 92  Preliminary                                                                   2004 Microchip Technology Inc.
                                                           PIC12F508/509/16F505

ON-LINE SUPPORT                                            SYSTEMS INFORMATION AND
                                                           UPGRADE HOT LINE
Microchip provides on-line support on the Microchip
World Wide Web site.                                       The Systems Information and Upgrade Line provides
                                                           system users a listing of the latest versions of all of
The web site is used by Microchip as a means to make       Microchip's development systems software products.
files and information easily available to customers. To    Plus, this line provides information on how customers
view the site, the user must have access to the Internet   can receive the most current upgrade kits. The Hot Line
and a web browser, such as Netscape or Microsoft         Numbers are:
Internet Explorer. Files are also available for FTP
download from our FTP site.                                1-800-755-2345 for U.S. and most of Canada, and

Connecting to the Microchip Internet                       1-480-792-7302 for the rest of the world.
Web Site
                                                                                                                       042003
The Microchip web site is available at the following
URL:

                     www.microchip.com

The file transfer site is available by using an FTP
service to connect to:

                   ftp://ftp.microchip.com

The web site and file transfer site provide a variety of
services. Users may download files for the latest
Development Tools, Data Sheets, Application Notes,
User's Guides, Articles and Sample Programs. A vari-
ety of Microchip specific business information is also
available, including listings of Microchip sales offices,
distributors and factory representatives. Other data
available for consideration is:

Latest Microchip Press Releases
Technical Support Section with Frequently Asked

   Questions
Design Tips
Device Errata
Job Postings
Microchip Consultant Program Member Listing
Links to other useful web sites related to

   Microchip Products
Conferences for products, Development Systems,

   technical information and more
Listing of seminars and events

2003 Microchip Technology Inc.  Preliminary               DS41236A-page 93
PIC12F508/509/16F505

READER RESPONSE

It is our intention to provide you with the best documentation possible to ensure successful use of your Microchip prod-
uct. 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 (480) 792-4150.

Please list the following information, and use this outline to provide us with your comments about this document.

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: PIC12F508/509/16F505  Literature Number: DS41236A

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 document easy to follow? If not, why?

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

5. What deletions from the document could be made without affecting the overall usefulness?

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

7. How would you improve this document?

DS41236A-page 94                         Preliminary                            2003 Microchip Technology Inc.
                                                              PIC12F508/509/16F505

PRODUCT IDENTIFICATION SYSTEM

To order or obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office.

PART NO.         X               /XX         XXX                              Examples:
                                           Pattern
         Device  Temperature Package                                          a) PIC16F505-I/PG = Industrial temp., PDIP
                    Range                                                            package (Pb-free)

Device           PIC16F505                                                    b) PIC16F505T-I/SLG = Industrial temp., SOIC
                 PIC12F508                                                           package (Pb-free), Tape and Reel
                 PIC12F509
                 PIC16F505T (Tape & Reel)                                     c) PIC16F505T-I/SLG = Industrial temp., SOIC
                 PIC12F508T (Tape & Reel)                                            package (Pb-free), Tape and Reel
                 PIC12F509T (Tape & Reel)
                                                                              d) PIC12F508T-I/SNG = Industrial temp., 150 mil
Temperature Range I = -40C to +85C (Industrial)                                    SOIC package (Pb-free), Tape and Reel
                              E = -40C to +125C (Extended)
                                                                              e) PIC12F508T-E/MSG = Extended temp., MSOP
                                                                                     package (Pb-free), Tape and Reel

                                                                              f) PIC12F509-E/PG = Extended temp., PDIP
                                                                                     package (Pb-free)

                                                                              g) PIC12F509-I/SMG = Industrial temp., 208 mil
                                                                                     SOIC package (Pb-free)

Package          PG = 300 mil PDIP (Pb-free)
                 SLG = 150 mil SOIC, 14-LD (Pb-free)
                 SNG = 150 mil SOIC, 8-LD (Pb-free)
                 MSG = MSOP (Pb-free)
                 STG = TSSOP (Pb-free)

Pattern          Special Requirements

Note:    Tape and Reel available for only the following packages: SOIC, MSOP
         and TSSOP.

2004 Microchip Technology Inc.                               Preliminary                                       DS41236A-page 95
                  WORLDWIDE SALES AND SERVICE

AMERICAS                               China - Beijing                                 Korea
                                       Unit 706B                                       168-1, Youngbo Bldg. 3 Floor
Corporate Office                       Wan Tai Bei Hai Bldg.                           Samsung-Dong, Kangnam-Ku
2355 West Chandler Blvd.               No. 6 Chaoyangmen Bei Str.                      Seoul, Korea 135-882
Chandler, AZ 85224-6199                Beijing, 100027, China                          Tel: 82-2-554-7200 Fax: 82-2-558-5932 or
Tel: 480-792-7200                      Tel: 86-10-85282100                             82-2-558-5934
Fax: 480-792-7277                      Fax: 86-10-85282104
Technical Support: 480-792-7627                                                        Singapore
Web Address: www.microchip.com         China - Chengdu                                 200 Middle Road
                                                                                       #07-02 Prime Centre
Atlanta                                Rm. 2401-2402, 24th Floor,                      Singapore, 188980
3780 Mansell Road, Suite 130           Ming Xing Financial Tower                       Tel: 65-6334-8870 Fax: 65-6334-8850
Alpharetta, GA 30022                   No. 88 TIDU Street
Tel: 770-640-0034                      Chengdu 610016, China                           Taiwan
Fax: 770-640-0307                      Tel: 86-28-86766200                             Kaohsiung Branch
                                       Fax: 86-28-86766599                             30F - 1 No. 8
Boston                                                                                 Min Chuan 2nd Road
2 Lan Drive, Suite 120                 China - Fuzhou                                  Kaohsiung 806, Taiwan
Westford, MA 01886                                                                     Tel: 886-7-536-4818
Tel: 978-692-3848                      Unit 28F, World Trade Plaza                     Fax: 886-7-536-4803
Fax: 978-692-3821                      No. 71 Wusi Road
                                       Fuzhou 350001, China                            Taiwan
Chicago                                Tel: 86-591-7503506                             Taiwan Branch
333 Pierce Road, Suite 180             Fax: 86-591-7503521                             11F-3, No. 207
Itasca, IL 60143                                                                       Tung Hua North Road
Tel: 630-285-0071                      China - Hong Kong SAR                           Taipei, 105, Taiwan
Fax: 630-285-0075                                                                      Tel: 886-2-2717-7175 Fax: 886-2-2545-0139
                                       Unit 901-6, Tower 2, Metroplaza
Dallas                                 223 Hing Fong Road                              EUROPE
4570 Westgrove Drive, Suite 160        Kwai Fong, N.T., Hong Kong
Addison, TX 75001                      Tel: 852-2401-1200                              Austria
Tel: 972-818-7423                      Fax: 852-2401-3431
Fax: 972-818-2924                                                                      Durisolstrasse 2
                                       China - Shanghai                                A-4600 Wels
Detroit                                Room 701, Bldg. B                               Austria
Tri-Atria Office Building              Far East International Plaza                    Tel: 43-7242-2244-399
32255 Northwestern Highway, Suite 190  No. 317 Xian Xia Road                           Fax: 43-7242-2244-393
Farmington Hills, MI 48334             Shanghai, 200051                                Denmark
Tel: 248-538-2250                      Tel: 86-21-6275-5700                            Regus Business Centre
Fax: 248-538-2260                      Fax: 86-21-6275-5060                            Lautrup hoj 1-3
                                                                                       Ballerup DK-2750 Denmark
Kokomo                                 China - Shenzhen                                Tel: 45-4420-9895 Fax: 45-4420-9910
2767 S. Albright Road
Kokomo, IN 46902                       Rm. 1812, 18/F, Building A, United Plaza        France
Tel: 765-864-8360                      No. 5022 Binhe Road, Futian District            Parc d'Activite du Moulin de Massy
Fax: 765-864-8387                      Shenzhen 518033, China                          43 Rue du Saule Trapu
                                       Tel: 86-755-82901380                            Batiment A - ler Etage
Los Angeles                            Fax: 86-755-8295-1393                           91300 Massy, France
18201 Von Karman, Suite 1090           China - Shunde                                  Tel: 33-1-69-53-63-20
Irvine, CA 92612                                                                       Fax: 33-1-69-30-90-79
Tel: 949-263-1888                      Room 401, Hongjian Building, No. 2
Fax: 949-263-1338                      Fengxiangnan Road, Ronggui Town, Shunde         Germany
                                       District, Foshan City, Guangdong 528303, China  Steinheilstrasse 10
San Jose                               Tel: 86-757-28395507 Fax: 86-757-28395571       D-85737 Ismaning, Germany
1300 Terra Bella Avenue                                                                Tel: 49-89-627-144-0
Mountain View, CA 94043                China - Qingdao                                 Fax: 49-89-627-144-44
Tel: 650-215-1444
Fax: 650-961-0286                      Rm. B505A, Fullhope Plaza,                      Italy
                                       No. 12 Hong Kong Central Rd.                    Via Quasimodo, 12
Toronto                                Qingdao 266071, China                           20025 Legnano (MI)
6285 Northam Drive, Suite 108          Tel: 86-532-5027355 Fax: 86-532-5027205         Milan, Italy
Mississauga, Ontario L4V 1X5, Canada                                                   Tel: 39-0331-742611
Tel: 905-673-0699                      India                                           Fax: 39-0331-466781
Fax: 905-673-6509                      Divyasree Chambers                              Netherlands
                                       1 Floor, Wing A (A3/A4)
ASIA/PACIFIC                           No. 11, O'Shaugnessey Road                      Waegenburghtplein 4
                                       Bangalore, 560 025, India                       NL-5152 JR, Drunen, Netherlands
Australia                              Tel: 91-80-22290061 Fax: 91-80-22290062         Tel: 31-416-690399
Suite 22, 41 Rawson Street             Japan                                           Fax: 31-416-690340
Epping 2121, NSW
Australia                              Benex S-1 6F                                    United Kingdom
Tel: 61-2-9868-6733                    3-18-20, Shinyokohama                           505 Eskdale Road
Fax: 61-2-9868-6755                    Kohoku-Ku, Yokohama-shi                         Winnersh Triangle
                                       Kanagawa, 222-0033, Japan                       Wokingham
                                       Tel: 81-45-471- 6166 Fax: 81-45-471-6122        Berkshire, England RG41 5TU
                                                                                       Tel: 44-118-921-5869
                                                                                       Fax: 44-118-921-5820

                                                                                                                                                   05/28/04

DS41236A-page 96                       Preliminary                                      2004 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-2017 EEWORLD.com.cn, Inc. All rights reserved