10.0 Synchronous Serial Port (SSP) Module .....................................................................................................................................55
13.0 Special Features of the CPU...................................................................................................................................................... 85
14.0 Instruction Set Summary............................................................................................................................................................ 99
15.0 Development Support............................................................................................................................................................... 107
17.0 DC and AC Characteristics Graphs and Tables.......................................................................................................................139
Appendix A:Revision History ........................................................................................................................................................ 165
Appendix D:Migration from Baseline to Mid-Range Devices......................................................................................................... 168
It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip
products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and
enhanced as new volumes and updates are introduced.
If you have any questions or c omm ents regarding th is publication, p lease c ontact the M a rketing 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 literature 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.
2000 Microchip Technology Inc.DS30605C-page 3
PIC16C63A/65B/73B/74B
NOTES:
DS30605C-page 4 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
1.0GENERAL DESCRIPTION
The PIC16C63A/65B/73B/74B devices are low cost,
high performance, CMOS, fully-static, 8-bit microcontrollers in the PIC16CXX mid-range family.
®
All PICmicro
RISC architecture. The PIC16CXX microcontroller
family has enhanced core features, eight-level deep
stack and multiple internal and external interrupt
sources. The separate instruction and data buses of
the Harvard architecture allow a 14- bit w ide ins truc tio n
word with the separate 8-bit wide data. The two stage
instruction pipeline allows all instructions to execute in
a single cycle, except for program branches, which
require two cycles. A total of 35 instructions (reduced
instruction set) are available. Additionally, a large register set gives some of the architectural innovations
used to achieve a very high performance.
The PIC16C63A/73B devices have 22 I/O pins. The
PIC16C65B/74B devices have 33 I/O pins. Each
device has 192 bytes of RAM. In addition, several
peripheral features ar e available, includi ng: three timer/
counters, two Capture/Compare/PWM modules, and
two serial ports. The Synchronous Serial Port (SSP)
can be configured as either a 3-wire Serial Peripheral
Interface (SPI) or the two-wire Inter-Integrated Circuit
2
C) bus. The Universal Synchronous Asynchronous
(I
Receiver Transmitter (USART) is also known as the
Serial Communications Interface or SCI. Also, a 5channel high speed 8-bit A/D is provided on the
PIC16C73B, while the PIC16C74B offers 8 channels.
The 8-bit resolution is ideally suited for applications
requiring low cost analog interface, e.g., thermostat
control, pressure sensing, etc.
The PIC16C63A/65B/73B/74B devices have special
features to reduce ex ternal com ponent s, th us redu cing
cost, enhancing system reliability and reducing power
consumption. Th ere are four osci llator options, of which
the single pin RC oscillator prov ides a low cost s olution,
the LP oscillator minimizes power consumption, XT is
a standard crystal, and the HS is for high speed crystals. The SLEEP (power-down) feature provides a
power-saving mode. The user can wake-up the chip
from SLEEP through several external and internal
interrupts and RESETS.
microcontrollers employ an advanced
A highly reliable Watchdog Timer (WDT), with its own
on-chip RC oscillator, provides protection against software lockup, and also provides one way of waking the
device from SLEEP.
A UV erasable CERDIP packaged version is ideal for
code development, while the cost effective One-TimeProgrammable (OTP) versi on is suit a ble for pro duction
in any volume.
The PIC16C63A/65B/73B/74B devices fit nicely in
many applications ranging from security and remote
sensors to appliance control and automotive. The
EPROM technology makes customization of application programs (transmitter codes, motor speeds,
receiver frequencies, etc.) extremely fast and convenient. The small foo tprint p acka ges ma ke this microcontroller series perfect for all applications with space
limitations. Low cost, low power, high performance,
ease of use and I/O flexibility make the PIC16C63A/
65B/73B/74B devices very versatile, even in areas
where no microcontroller use has been considered
before (e.g., timer functions, serial communication,
capture and compar e, PWM functions and copro cessor
applications).
1.1Family and Upward Compatibility
Users familiar with the PIC16C5X microcontroller family will realize that this is an enhanced version of the
PIC16C5X architecture. Please refer to Appendi x A f or
a detailed list of enhancements. Code written for the
PIC16C5X can be easily po rted to th e PIC 16 CXX fam ily of devices (Appendix B).
1.2Development Support
PICmicro® devices are supported by the complete line
of Microchip Develo pme nt tool s.
Please refer to Section 15.0 for more details about
Microchip’s development tools.
2000 Microchip Technology Inc.DS30605C-page 5
PIC16C63A/65B/73B/74B
NOTES:
DS30605C-page 6 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
2.0PIC16C63A/65B/73B/74B
DEVICE VARIETIES
A variety of frequency ranges and packaging options
are available. Depen ding on applicati on and production
requirements, t he proper devic e option can be s elected
using the information in the PIC16C63A/65B/73B/74B
Product Identification Sys tem sectio n at the end of this
data sheet. When placing orders, please use that page
of the data sheet to specify the correct part number.
For the PIC16C7X family, there are two device “types”
as indicated in the device number:
1.C, as in PIC16C74. These devices have
EPROM type memory and operate over the
standard voltage range.
2.LC, as in PIC16LC74. These devices have
EPROM type memory and operate over an
extended voltage range.
2.1UV Erasable Devices
The UV erasable vers ion, offered i n windowed CERDIP
packages, is optimal for prototype development and
pilot programs. This version can be erased and
reprogrammed to any of the oscillator modes.
Microchip's PICSTART
programmers both support programming of the
PIC16C63A/65B/73B/74B.
Plus and PRO MATEII
2.3Quick-Turnaround-Production
(QTP) Devices
Microchip o ffers a QTP Progr amming Servic e for factory production orders. This service is made available
for users who choose not to program a medium to high
quantity of units and whose code patterns have stabilized. The device s are identical to the OTP devices but
with all EPROM locations and configuration options
already programmed by the factory. Certain code and
prototype verification procedures apply before production shipments are ava il abl e. Plea se co ntact your local
Microchip Technology sales office for more details.
2.4Serialized Quick-Turnaround
Production (SQTP
Microchip offers a unique programming service where
a few user-defined locations in each device are programmed with dif ferent ser ial numbers. The serial numbers may be random, pseudo-random or sequential.
Serial programming allows each device to have a
unique number, which can serve as an entry code,
password or ID number.
SM
) Devices
2.2One-Time-Programmable (OTP)
Devices
The availability of OTP devices is especially useful for
customers who need the flexibility for frequent code
updates and small volume applications.
The OTP devic es, packaged in plas tic packag es, permit the user to program them once. In addition to the
program memory, the configuration bits must also be
programmed.
2000 Microchip Technology Inc.DS30605C-page 7
PIC16C63A/65B/73B/74B
NOTES:
DS30605C-page 8 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
3.0ARCHITECTURAL OVERVIEW
The high performance of the PIC16CXX family can be
attributed to a number of architectural features commonly found in RISC microprocessors. To begin with,
the PIC16CXX uses a Harvard architecture, in which
program and data are accessed from separate memories using separate buses. This improves bandwidth
over traditional von Neumann architecture, in which
program and data are fetched from the same memory
using the same bus. Separating program and data
buses furthe r all ow s inst r uct i on s to be si ze d diffe ren t ly
than the 8-bit wide data word. Instruction opcodes are
14-bits wide, making it possible to have all single word
instructions. A 14-bit wide program memory access
bus fetches a 14-bit instruction in a single cycle. A
two-stage pipeline overlaps fetch and execution of
instructions (Example 3-1). Consequently, most
instructions execute in a single cycle (200 ns @
20 MHz) except for program branches.
All devices covered by this data sheet contain
4K x 14-bit program memory and 192 x 8-bit data
memory.
The PIC16CXX can directly, or indirectly, address its
register files or dat a memory. All Special Funct ion Registers, including the program counter, are mapped in
the data memory. The PIC16CXX has an orthogonal
(symmetrica l) instruct ion set that m akes it possib le to
carry out any operation on any register using any
addressing mode. This symmetrical nature and lack of
‘special optimal situations’ make programming with the
PIC16CXX simple yet effic ient. In addi tion, the learnin g
curve is reduced significantly.
PIC16CXX devices contain an 8-bit ALU and working
register. The ALU is a general purpose arithmetic unit.
It performs arithmetic and Boolean functions between
the data in the working register and any register file.
The ALU is 8-bits wide and capable of addition, subtraction, shift and logical operations. Unless otherwise
mentioned, arithmetic operations are two's complement in nature. In two-operand instructions, typically
one operand is the working register (W register). The
other operand is a file register or an immediate constant. In single operand instructions, the operand is
either the W register or a file register.
The W register is an 8-bit workin g register used for ALU
operations. It is not an addressable register.
Depending on the instruction executed, the ALU may
affect the values of the Carry (C), Digit Carry (DC), and
Zero (Z) bits in the ST ATUS register. The C and DC bits
operate as a borrow
respectively, in subtraction. See the SUBLW and SUBWF
instructions for examples.
Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt.
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode.
3: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
4: A/D module is not available in the PIC16C63A.
crystal oscillator mode. In RC mode, the OSC2 pin outputs
CLKOUT which has 1/4 the frequency of OSC1, and denotes
the instruction cycle rate.
This pin is an active low RESET to the device.
PORTA is a bi-directional I/O port.
22I/OTTLRA0 can also be analog input 0
33I/OTTLRA1 can also be analog input 1
44I/OTTLRA2 can also be analog input 2
55I/OTTLRA3 can also be analog input 3 or analog reference
voltage
(4)
.
(4)
.
(4)
.
(4)
.
Output is open drain type.
77I/OTTLRA5 can also be analog input 4
(4)
or the slave select for
the synchronous serial port.
PORTB is a bi-directional I/O port. PORTB can be software
programmed for internal weak pull-up on all inputs.
(1)
(2)
(2)
RB0 can also be the external interrupt pin.
Interrupt-on-change pin. Serial programming clock.
Interrupt-on-change pin. Serial programming data.
PORTC is a bi-directional I/O port.
clock input.
input/Compare2 output/PWM2 output.
output/PWM1 output.
2
2
C mode).
C modes.
for both SPI and I
data I/O (I
or Synchronous Clock.
or Synchronous Data.
2000 Microchip Technology Inc.DS30605C-page 11
PIC16C63A/65B/73B/74B
TABLE 3-2:PIC16C65B/74B PINOUT DESCRIPTION
DIP
Pin Name
Pin#
PLCC
Pin#
OSC1/CLKIN131430IST/CMOS
OSC2/CLKOUT141531O—Oscillator crystal output. Connects to crystal or resonator in
/VPP1218I/PSTMaster clear (RESET) input or programming voltage input.
MCLR
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3/V
(5)
(5)
(5)
(5)
REF
2319I/OTTLRA0 can also be analog input 0
3420I/OTTLRA1 can also be analog input 1
4521I/OTTLRA2 can also be analog input 2
5622I/OTTLRA3 can also be analog input 3 or analog reference
RA4/T0CKI6723I/OSTRA4 can also be the clock input to the Timer0 timer/
Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt.
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode.
3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel
Slave Port mode (for interfacing to a microprocessor bus).
4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
5: A/D is not available on the PIC16C65B.
Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt.
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode.
3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel
Slave Port mode (for interfacing to a microprocessor bus).
4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
5: A/D is not available on the PIC16C65B.
TQFP
MQFP
Pin#
33,34
I/O/P
Type
Buffer
Type
Description
PORTC is a bi-directional I/O port.
Timer1 clock input.
input/Compare2 output/PWM2 output.
PWM1 output.
output for both SPI and I
data I/O (I
2
C mode).
2
C modes.
(SPI mode).
Synchronous Clock.
Synchronous Data.
PORTD is a bi-directional I/O port or parallel slave port
when interfacing to a microprocessor bus.
(3)
(3)
(3)
(3)
(3)
(3)
(3)
(3)
PORTE is a bi-directional I/O port.
(3)
(3)
(3)
RE0 can also be read control for the parallel slave port,
or analog input 5
RE1 can also be write control for the parallel slave port,
or analog input 6
RE2 can also be select control for the parallel slave
port, or analog input 7
(5)
.
(5)
.
(5)
.
—These pins are not internally connected. These pins should
be left unconnected.
2000 Microchip Technology Inc.DS30605C-page 13
PIC16C63A/65B/73B/74B
3.1Clocking Scheme/Instruction
Cycle
The clock input (from OSC1) is internally divided by
four to generate four non-overlapping quadrature
clocks, namely Q1, Q2, Q3 and Q4. Internally, the program counter (PC) is incremented every Q1, the
instruction is fetched from the program memory and
latched into the instruction register in Q4. The instruction is decoded and executed during the following Q1
through Q4. The clocks and instruction execution flow
is shown in Figure 3-2.
FIGURE 3-2:CLOCK/INSTRUCTION CYCLE
Q2Q3Q4
OSC1
Q1
Q2
Q3
Q4
PC
OSC2/CLKOUT
(RC mode)
Q1
PCPC+1PC+2
Fetch INST (PC)
Execute INST (PC-1)Fetch INST (PC+1)
Q1
Execute INST (PC)Fetch INST (PC+2)
3.2Instruction Flow/Pipelining
An “Instruction Cycle” consists of four Q cycles (Q1,
Q2, Q3 and Q4). The instruc tio n fetch and execute are
pipelined such that fetch takes one instruction cycle,
while decode and execute takes another instruction
cycle. However, due to the pipelining, each instruction
effectively executes in one cycle. If an instruction
causes the program counter to change (e.g., GOTO),
then two cycles are req uired to c omplete the ins truction
(Example 3-1).
A fetch cycle begins with the program counter (PC)
incrementing in Q1.
In the execution cy cle, the fetched instruction i s latched
into the “Instruction Register" (IR) in cycle Q1. This
instruction is then decoded and executed during the
Q2, Q3 and Q4 c ycles. Dat a m emory is read during Q2
(operand read) and written during Q4 (destination
write).
Q2Q3Q4
Q2Q3Q4
Q1
Execute INST (PC+1)
Internal
phase
clock
EXAMPLE 3-1:INSTRUCTION PIPELINE FLOW
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOVLW 55h
2. MOVWF PORTB
3. CALL SUB_1
4. BSF PORTA, BIT3 (Forced NOP)
5. Instruction @ address SUB_1
Note:All instructions are single cycle, except for any program branches. These take two cycles, since the fetch instruc tion is
“flushed” from the pipeline, while the new instruction is being fetched and then executed.
DS30605C-page 14 2000 Microchip Technology Inc.
Fetch 1Execute 1
Fetch 2Execute 2
Fetch 3Execute 3
Fetch 4Flush
Fetch SUB_1 Execute SUB_1
PIC16C63A/65B/73B/74B
4.0MEMORY ORGANIZATION
4.1Program Memory Organization
The PIC16C63A/65B/73B/74B has a 13-bit program
counter capable of addressing an 8K x 14 program
memory space. All devices covered by this data sheet
have 4K x 14 bits of program memory. The address
range is 0000h - 0FFFh for all devices.
Accessing a location above 0FFFh will cause a wraparound.
The RESET vector is at 0000h and the interrupt vector
is at 0004h.
FIGURE 4-1:PIC16C63A/65B/73B/74B
PROGRAM MEMORY MAP
AND STACK
PC<12:0>
CALL,RETURN
RETFIE,RETLW
Stack Level 1
Stack Level 8
13
4.2Data Memory Organization
The data memory is partitioned into multiple banks
which contain the General Purpose Registers (GPR)
and the Special Function Registers (SFR). Bits RP1
and RP0 are the bank select bits.
Each bank extends up to 7Fh (128 bytes). The lower
locations of each bank are reserved for the SFRs.
Above the SFRs are GPRs, implemented as static
RAM.
All implemented banks con t ai n SFR s. Frequently used
SFRs from one bank may be mirrored in another bank
for code reduction and quicker access.
Note:Maintain the IRP and RP1 bits clear in
these devices.
4.2.1GENERAL PURPOSE REGISTER
FILE
The register file can be acces sed either directly, or indirectly, through the File Select Register (FSR)
(Section 4.5).
RESET Vector
Interrupt Vector
On-chip Program
Space
User Memory
Memory (Page 0)
On-chip Program
Memory (Page 1)
0000h
0004h
0005h
07FFh
0800h
0FFFh
1000h
1FFFh
2000 Microchip Technology Inc.DS30605C-page 15
PIC16C63A/65B/73B/74B
FIGURE 4-2: REGISTER FILE MAP 4.2.2SPECIAL FUNCTION REGISTERS
The Special Function Registers are registers used by
the CPU and Peripheral Modules for controlling the
desired operation of the device. These registers are
implemented as static RAM.
The Special Function Registers can be classified into
two sets (core and peripheral). Those registers associated with the “core” fun ction s are des cribe d in this section, and those related to the operation o f the peripheral
features are described in the section of that peripheral
feature.
Legend: x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, read as ’0’.
Shaded locations are unimplemented, read as ‘0’.
Note 1: The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>.
2: The IRP and RP1 bits are reserved; always maintain these bits clear.
3: Other (non power-up) RES ETS include external RESET through MCLR
and Watchdog Timer Reset.
4: These registers can be addressed from either bank.
5: PORTD, PORTE and the parallel slave port are not implemented on the PIC16C63A/73B; always maintain these bits and
registers clear.
6: The A/D is not implemented on the PIC16C63A/65B; always maintain these bits and registers clear.
Value on
all other
RESETS
(3)
2000 Microchip Technology Inc.DS30605C-page 17
PIC16C63A/65B/73B/74B
TABLE 4-1: SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)
Legend: x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, read as ’0’.
Shaded locations are unimplemented, read as ‘0’.
Note 1: The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>.
2: The IRP and RP1 bits are reserved; always maintain these bits clear.
3: Other (non power-up) RESETS include external RESET through MCLR
and Watchdog Timer Reset.
4: These registers can be addressed from either bank.
5: PORTD, PORTE and the parallel slave port are not implemented on the PIC16C63A/73B; always maintain these bits and
registers clear.
6: The A/D is not implemented on the PIC16C63A/65B; always maintain these bits and registers clear.
Value on
all other
RESETS
(3)
DS30605C-page 18 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
4.2.2.1STATUS Register
The STATUS register, shown in Register 4-1, contains
the arithmetic st atus of th e ALU, the RE SET statu s and
the bank select bits for data memory.
The STATUS register can be the destination for any
instruction, as with any other r egister. If the STATUS register is the destination for an instruction that affects the Z,
DC or C bits, then the write to thes e three bits is disabled.
These bits are set or cleared according to the device
logic. Furt her mo r e, th e TO
Therefore, the result of an instruction with the STATUS
register as destination may be different than intended.
For example, CLRF STATUS will clear the upper three
bits and set the Z bit. Thi s leaves th e STATUS register
as 000u u1uu (where u = unchanged).
and PD bits are not writable.
It is recommended that only BCF, BSF, SWAPF and
MOVWF instructions be used to alter the STATUS register. The se in structions do not affec t the Z, C or DC bits
in the STATUS register . For other i nstruction s whic h do
not affect status bits, see the "Instruction Set Summary."
Note 1: These devices do not use bits IRP and
RP1 (STATUS<7:6>), maintain these bits
clear to ensure upward comp atib il ity w i th
future products.
2: The C and DC bits operate a s borrow
digit borrow
tion. See the SUBLW and SUBWF instructions for examples.
REGISTER 4-1:STATUS REGISTER (ADDRESS 03h, 83h)
R/W-0R/W-0R/W-0R-1R-1R/W-xR/W-xR/W-x
(1)
IRP
bit 7bit 0
bit 7IRP
bit 6-5RP1
bit 4TO
bit 3PD: Power-down bit
bit 2Z: Zero bit
bit 1DC: Digit carry/borrow bit (ADDWF,ADDLW,SUBLW,SUBWF instructions) (for borrow the polarity
bit 0C
(1)
: Register Bank Select bit (used for indirect addressing)
1 = Bank 2, 3 (100h - 1FFh)
0 = Bank 0, 1 (00h - FFh)
(1)
:RP0: Register Bank Select bits (used for direct addressing)
11 = Bank 3 (180h - 1FFh)
10 = Bank 2 (100h - 17Fh)
01 = Bank 1 (80h - FFh)
00 = Bank 0 (00h - 7Fh)
Each bank is 128 bytes
: Time-out bit
1 = After power-up, CLRWDT instruction, or SLEEP instruction
0 = A WDT time-out occurred
1 = After power-up or by the CLRWDT instruction
0 = By execution of the SLEEP instruction
1 = The result of an arithmetic or logic operation is zero
0 = The result of an arithmetic or logic operation is not zero
is reversed)
1 = A carry-out from the 4th low order bit of the result occurred
0 = No carry-out from the 4th low order bit of the result
(2)
: Carry/borrow bit (ADDWF,ADDLW,SUBLW,SUBWF instructions)
1 = A carry-out from the most significant bit of the result occurred
0 = No carry-out from the most significant bit of the result oc curred
RP1
(1)
RP0TOPDZDCC
and
bits, respectively, in subtrac-
(2)
Note 1: Maintain the IRP and RP1 bits clear.
2: For borrow
adding the two’s complement of the s econd operand. For rotate (RRF,RLF) instructions, this bit is loaded with either the high or low order bit of the source register.
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
2000 Microchip Technology Inc.DS30605C-page 19
and digit borrow, the polarity is reversed. A subtraction is executed by
PIC16C63A/65B/73B/74B
4.2.2.2OPTION Register
The OPTION_REG register is a readable and writable
register , which cont ains various contr ol bits to conf igure
Note:To achieve a 1:1 prescaler assignment for
the TMR0 register, assign the prescaler to
the watchdog timer.
the TMR0/WDT prescaler, the external INT Interrupt,
TMR0 and the weak pull-ups on PORTB.
REGISTER 4-2:OPTION_REG REGISTER (ADDRESS 81h)
R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
RBPU
bit 7bit 0
bit 7RBPU
1 = PORTB pull-ups are disabled
0 = PORTB pull-ups are enabled by individual port latch values
bit 6INTEDG: Interrupt Edge Select bit
1 = Interrupt on rising edge of RB0/INT pin
0 = Interrupt on falling edge of RB0/INT pin
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
DS30605C-page 20 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
4.2.2.3INTCON Register
The INTCON register is a readable and writable register, which contains various enable and flag bits for the
TMR0 register overflow, RB Port change and external
RB0/INT pin interrupts.
Note:Interrupt flag bits are se t w he n an in terru pt
condition occurs, re gardless of the sta te of
its corresponding enable bit, or the global
enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to enabling an
interrupt
REGISTER 4-3:INTCON REGISTER (ADDRESS 0Bh, 8Bh)
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-x
GIEPEIET0IEINTERBIET0IFINTFRBIF
bit 7bit 0
bit 7GIE:
bit 6PEIE: Peripheral Interrupt Enable bit
bit 5T0IE: TMR0 Overflow Interrupt Enable bit
bit 4INTE: RB0/INT External Interrupt Enable bit
bit 3RBIE: RB Port Change Interrupt Enable bit
bit 2T0IF: TMR0 Overflow Interrupt Flag bit
bit 1INTF: RB0/INT External Interrupt Flag bit
bit 0RBIF: RB Port Change Interrupt Flag bit
Global Interrupt Enable bit
1 = Enables all unmasked interrupts
0 = Disables all interrupts
1 = Enables all unmasked peripheral interrupts
0 = Disables all peripheral interrupts
1 = Enables the TMR0 interrupt
0 = Disables the TMR0 interrupt
1 = Enables the RB0/INT external interrupt
0 = Disables the RB0/INT external interrupt
1 = Enables the RB port change interrupt
0 = Disables the RB port change interrupt
1 = TMR0 register has overflowed (must be cleared in software)
0 = TMR0 register did not overflow
1 = The RB0/INT external interrupt occurred (must be cleared in software)
0 = The RB0/INT external interrupt did not occur
1 = At least one of the RB7:RB4 pins changed state
0 = None of the RB7:RB4 pins have changed state
(1)
.
Note 1: A mismatch condition will exist until PORTB is read. After reading PORTB, the RBIF
flag bit can be cleared.
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
2000 Microchip Technology Inc.DS30605C-page 21
PIC16C63A/65B/73B/74B
4.2.2.4PIE1 Register
This register contains the individual enable bits for the
peripheral interrupts.
Note:Bit PEIE (INTCON<6>) must be set to
REGISTER 4-4:PIE1 REGISTER (ADDRESS 8Ch)
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
(1)
PSPIE
bit 7bit 0
bit 7PSPIE
bit 6ADIE
bit 5RCIE: USART Receive Interrupt Enable bit
bit 4TXIE: USART Transmit Interrupt Enable bit
bit 3SSPIE: Synchronous Serial Port Interrupt Enable bit
bit 2CCP1IE: CCP1 Interrupt Enable bit
bit 1TMR2IE: TMR2 to PR2 Match Interrupt Enable bit
bit 0TMR1IE: TMR1 Overflow Interrupt Enable bit
(1)
: Parallel Slave Port Read/Write Interrupt Enable bit
1 = Enables the PSP read/write interrupt
0 = Disables the PSP read/write interrupt
(2)
: A/D Converter Interrupt Enable bit
1 = Enables the A/D interrupt
0 = Disables the A/D interrupt
1 = Enables the USART receive interrupt
0 = Disables the USART receive interrupt
1 = Enables the USART transmit interrupt
0 = Disables the USART transmit interrupt
1 = Enables the SSP interrupt
0 = Disables the SSP interrupt
1 = Enables the CCP1 interrupt
0 = Disables the CCP1 interrupt
1 = Enables the TMR2 to PR2 match interrupt
0 = Disables the TMR2 to PR2 match interrupt
1 = Enables the TMR1 overflow interrupt
0 = Disables the TMR1 overflow interrupt
ADIE
(2)
RCIETXIESSPIECCP1IETMR2IETMR1IE
enable any peripheral interrupt.
Note 1: PIC 16C63A/73B devices do not have a pa rallel slave port imp lemented; always
maintain this bit clear.
2: PI C16C63A/65B devices do not have an A/D implemented; always maintain this bit
clear.
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
DS30605C-page 22 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
4.2.2.5 PIR1 Register
This register contains the individual flag bits for the
peripheral interrupts.
Note:Interrupt flag bits are se t w he n an in terru pt
REGISTER 4-5:PIR1 REGISTER (ADDRESS 0Ch)
R/W-0R/W-0R-0R-0R/W-0R/W-0R/W-0R/W-0
(1)
PSPIF
bit 7bit 0
bit 7PSPIF
bit 6ADIF
bit 5RCIF: USART Receive Interrupt Flag bit
bit 4TXIF: USART Transmit Interrupt Flag bit
bit 3SSPIF: Synchronous Serial Port Interrupt Flag bit
bit 2CCP1IF: CCP1 Interrupt Flag bit
bit 1TMR2IF: TMR2 to PR2 Match Interrupt Flag bit
bit 0TMR1IF: TMR1 Overflow Interrupt Flag bit
(1)
: Parallel Slave Port Read/Write Interrupt Flag bit
1 = A read or a write operation has taken place (must be cleared in software)
0 = No read or write has occurred
(2)
: A/D Converter Interrupt Flag bit
1 = An A/D conversion completed (must be cleared in software)
0 = The A/D conversion is not complete
1 = The USART receive buffer is full (clear by reading RCREG)
0 = The USART receive buffer is empty
1 = The USART transmit buffer is empty (clear by writing to TXREG)
0 = The USART transmit buffer is full
1 = The transmission/reception is complete (must be cleared in software)
0 = Waiting to transmit/receive
Capture mode:
1 = A TMR1 register capture occurred (must be cleared in software)
0 = No TMR1 register capture occurred
Compare mode:
1 = A TMR1 register compare match occurred (must be cleared in software)
0 = No TMR1 register compare match occurred
PWM mode:
Unused in this mode
1 = TMR2 to PR2 match occurred (must be cleared in software)
0 = No TMR2 to PR2 match occurred
1 = TMR1 register overflowed (must be cleared in software)
0 = TMR1 register did not overflow
ADIF
(2)
RCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF
condition occurs, re gardless of the sta te of
its corresponding enable bit, or the global
enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to enabling an
interrupt
.
Note 1: PIC16C63A/73B devices do n ot have a p aral lel slav e port imple mente d. This b it loc a-
tion is reserved on these devices.
2: PIC16C63A/65B devices do not have an A/D implemented. This bit location is
reserved on these devices.
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
2000 Microchip Technology Inc.DS30605C-page 23
PIC16C63A/65B/73B/74B
4.2.2.6PIE2 Register
This register contains the individual enable bit for the
CCP2 peripheral interrupt.
REGISTER 4-6:PIE2 REGISTER (ADDRESS 8Dh)
U-0U-0U-0U-0U-0U-0U-0R/W-0
———————CCP2IE
bit 7bit 0
bit 7-1Unimplemented: Read as '0'
bit 0CCP2IE: CCP2 Interrupt Enable bit
1 = Enables the CCP2 interrupt
0 = Disables the CCP2 interrupt
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
4.2.2.7PIR2 Register
This register contains the CCP2 interrupt flag bit.
Note:Interrupt flag bit s ar e se t whe n an in terru pt
REGISTER 4-7:PIR2 REGISTER (ADDRESS 0Dh)
U-0U-0U-0U-0U-0U-0U-0R/W-0
———————CCP2IF
bit 7bit 0
bit 7-1Unimplemented: Read as '0'
bit 0CCP2IF: CCP2 Interrupt Flag bit
Capture mode:
1 = A TMR1 register capture occurred (must be cleared in software)
0 = No TMR1 register capture occurred
Compare mode:
1 = A TMR1 register compare match occurred (must be cleared in software)
0 = No TMR1 register compare match occurred
PWM mode:
Unused
condition occurs, re gardless of the sta te of
its corresponding enable bit, or the global
enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to enabling an
interrupt
.
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
DS30605C-page 24 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
4.2.2.8PCON Register
The Power Control (PCON) register contains flag bits
to allow differentiation between a Power-on Reset
(POR), a Brown-out Reset (BOR), a Watchdog Reset
(WDT) and an external MCLR
Reset.
Note:BOR is unknown on P OR. It must be set by
REGISTER 4-8:PCON REGISTER (ADDRESS 8Eh)
U-0U-0U-0U-0U-0U-0R/W-0R/W-q
——————PORBOR
bit 7bit 0
bit 7-2Unimplemented: Read as '0'
bit 1POR
bit 0BOR
: Power-on Reset Status bit
1 = No Power-on Reset occurred
0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)
: Brown-out Reset Status bit
1 = No Brown-out Reset occurred
0 = A Brown-out Reset occurred (must be set in software after a Brown-out Reset occurs)
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR’1’ = Bit is set’0’ = Bit is clearedx = Bit is unknown
the user and checked on subsequent
RESETS to see if BOR
a brown-out has occurre d. The BOR
bit is a “don't care” and is not predi ctable if
the brown-out circuit is disabled (by clearing the BODEN bit in the configuration
word).
is clear, indicati ng
status
2000 Microchip Technology Inc.DS30605C-page 25
PIC16C63A/65B/73B/74B
4.3PCL and PCLATH
The program counter (PC) is 13-bits wid e. The low byte
comes from the PCL register, which is a readable and
writable register. The upper bits (PC<12:8>) are not
readable, but are indirectly writable through the
PCLA TH reg is ter. On any RESET, the up per bi t s of the
PC will be cleared. Fig ure4-3 shows the two situations
for the loading of the PC. The up per ex ample in th e figure shows how the PC is loaded on a write to PCL
(PCLATH<4:0> → PCH). The lower exam pl e i n th e fi gure shows how the PC is loaded during a CALL or GOTO
instruction (PCLATH<4:3> → PCH).
FIGURE 4-3:LOADING OF PC IN
DIFFERENT SITUATIONS
PCHPCL
128 70
PC
PCLATH<4:0>
5
PCLATH
PCHPCL
12 11 100
PC
2
87
PCLATH<4:3>
PCLATH
11
4.3.1COMPUTED GOTO
A computed GOTO is accomplish ed by adding an offs et
to the progr am counter (ADDWF PCL). When doing a
table read using a computed GOTO method, care
should be exercise d i f the t able loca tio n cros ses a PCL
memory boundary (each 256 byte block). Refer to the
application note “Im plementing a Table Read" (AN556).
4.3.2STACK
The PIC16CXX family has an 8-level deep x 13-bit wide
hardware s tack. The stack space is not part of either
program or data space and the stack pointer is not
readable or writabl e. The PC i s PUSHed onto th e stac k
when a CALL instruction is executed, or an interrupt
causes a branch. The st ac k is POPed in the ev en t of a
RETURN,RETLW or a RETFIE instruction execution.
PCLATH is not affected by a PUSH or POP operation.
The stack opera tes as a circular buf fer . This means that
after the st ack h as be en PUSHed ei ght ti mes, th e nin th
push overwrites the v alue tha t was stored fro m the first
push. The tenth pus h ov erwri t es the se co nd p us h (an d
so on).
8
Instruction with
PCL as
Destination
ALU
GOTO,CALL
Opcode <10:0>
Note 1: There are no status bits to indicate stack
overflow or stack underflow conditions.
2: There are no instructions/mnemonics
called PUSH or POP. These are actions
that occur from the execution of the
CALL, RETURN, RETLW, and RETFIE
instructions, or the vectoring to an interrupt address.
4.4Program Memory Paging
PIC16CXX devices are capable o f addressing a continuous 8K word block of program memory. The CALL and
GOTO instructions provide only 11 bits of address to
allow branching within any 2K program memory page.
When executing a CALL or GOTO ins truc tio n, t he upper
2 bits of the address are provided by PCLATH<4:3>.
When doing a CALL or GOTO instruct ion, the user must
ensure that the page select bits are programmed, so
that the desired prog ram memory pa ge is addre ssed. If
a return from a CALL instruction (or interrupt) is executed, the entire 13-bit PC is popped from the stack.
Therefore, manipulation of the PCLATH<4:3> bits are
not required for the return instruction s (which POPs the
address from the stack).
Note 1: The contents of PCLATH are unchanged
after a return or RETFIE instruction is
executed. The user must set up PCLATH
for any subsequent CALL’s or GOTO’s
2: PCLATH<4> is not used in these
PICmicro
PCLATH<4> as a general purpose r ead/
write bit is not recommended, since this
may affect upward compatibility with
future products.
Example 4-1 shows the calling of a subroutine in
page 1 of the program memory . Thi s example as sumes
that PCLATH is saved and restored by the Interrupt
Service Routine
:;called subroutine
:;page 1 (800h-FFFh)
:
RETURN;return to Call subroutine
®
devices. The use of
(if interrupts are used).
IN PAGE 1 FROM PAGE 0
;in page 0 (000h-7FFh)
DS30605C-page 26 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
4.5Indirect Addressing, INDF and
FSR Registers
The INDF register is not a physi cal register. Addressing
the INDF register will cause indirect addressing.
Indirect addressing is possible by using the INDF register. Any instruc tion using the INDF register actual ly
accesses the register pointed to by the File Sele ct Register, FSR. Reading the INDF register itself indirectly
(FSR = ’0’) will read 00h. Writing to the INDF register
indirectly result s in a no-operation (altho ug h s t atus bits
may be affected ). An ef fective 9- bit add ress is obt ained
by concatenating the 8 -bit FSR regi ster and the IRP b it
(STATUS<7>), as shown in Figur e 4-4.
A simple program to clear RAM locations 20h-2Fh
using indirect addressing is shown in Example 4 -2.
FIGURE 4-4:DIRECT/INDIRECT ADDRESSING
RP1:RP06
0
bank selectlocation select
from opcode
0
00011011
00h
80h
100h
EXAMPLE 4-2:INDIRECT ADDRESSING
movlw0x20;initialize pointer
NEXTclrfINDF;clear INDF register
CONTINUE
Note:Maintain the IRP and RP1 bits clear.
180h
movwfFSR;to RAM
incfFSR,F ;inc pointer
btfssFSR,4 ;all done?
gotoNEXT;no clear next
:;yes continue
Indirect AddressingDirect Addressing
IRPFSR register
0
bank select
7
location select
0
Data
not used
Memory
7Fh
FFh
17Fh
1FFh
Bank 0Bank 1Bank 2Bank 3
Note 1: For register file map detail, see Figure 4-2.
2: Shaded portions are not implemented; maintain the IRP and RP1 bits clear.
2000 Microchip Technology Inc.DS30605C-page 27
PIC16C63A/65B/73B/74B
NOTES:
DS30605C-page 28 2000 Microchip Technology Inc.
PIC16C63A/65B/73B/74B
5.0I /O PORTS
Some pins for th ese I/O ports are multiplexed with an
alternate function for the peripheral features on the
device. In general, when a peripheral is enabled, that
pin may not be used as a general purpose I/O pin.
5.1PORTA and TRISA Registers
PORTA is a 6-bit latch.
The RA4/T0CKI pin is a Schmitt Trigger input and an
open drain output. All other RA port pins have TTL
input levels and full C MOS output drivers. All pi ns have
data direction bits (TRIS registers), which can configure these pins as output or input.
Setting a TRISA register bit puts the corresponding output driver in a hi-im pedan ce mo de. Clea ring a b it in th e
TRISA register puts the contents of the output latch on
the selected pin(s).
Reading the PORTA register reads the status of the
pins, whereas writing to i t will wri te to th e po rt latch. All
write operations are read-modify-write operations.
Therefore, a write to a port implies that the port pins are
read, the value is modified and then written to the port
data latch.
Pin RA4 is multiplexed with the Timer0 module clock
input to become the RA4/T0CKI pin.
On the PIC16C73B/74B, PORTA pins are multiplexed
with analog inputs and analog V
tion of each pin is selected by clearing/setting the control bits in the ADCON1 register (A/D Control
Register1).
REF input. The opera-
FIGURE 5-1:BLOCK DIAGRAM OF
RA3:RA0 AND RA5 PINS
Data
Bus
WR
Port
WR
TRIS
RD Port
To A/D Converter
Note 1: I/O pins have protection diodes to VDD and VSS.
CK
Data Latch
CK
TRIS Latch
QD
Q
QD
Q
RD TRIS
VDD
P
N
V
SS
Analog
Input
mode
QD
EN
I/O pin
TTL
Input
Buffer
(1)
Note:On all RESETS, pins with analog function s
are configured a s analog a nd digit al input s.
The TRISA register controls the direction of the RA
pins, even when they are be ing us ed as ana lo g inputs.
The user must ensure the bits in the TRISA regi ster are
maintained set when using them as analog inputs.
EXAMPLE 5-1:INITIALIZING PORTA
(PIC16C73B/74B)
BCFSTATUS, RP0 ;
CLRFPORTA; Initialize PORTA by
; clearing output
; data latches
BSFSTATUS, RP0 ; Select Bank 1
MOVLW0x06; Configure all pins
MOVWFADCON1; as digital inputs
MOVLW0xCF; Value used to
; initialize data
; direction
MOVWFTRISA; Set RA<3:0> as inputs
; RA<5:4> as outputs
; TRISA<7:6> are always
; read as ’0’.
FIGURE 5-2:BLOCK DIAGRAM OF
RA4/T0CKI PIN
Data
Bus
WR
Port
WR
TRIS
RD Port
TMR0 Clock Input
Note 1: I/O pins have protection diodes to VDD and VSS.
QD
Q
CK
Data Latch
QD
Q
CK
TRIS Latch
RD TRIS
N
SS
V
Schmitt
Trigger
Input
Buffer
QD
EN
EN
I/O pin
(1)
2000 Microchip Technology Inc.DS30605C-page 29
PIC16C63A/65B/73B/74B
TABLE 5-1:PORTA FUNCTIONS
NameBit#Buffer Function
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3/V
(1)
(1)
(1)
REF
bit0TTLDigital input/output or analog input.
bit1TTLDigital input/output or analog input.
bit2TTLDigital input/output or analog input.
(1)
bit3TTLDigital input/output or analog input or VREF.
RA4/T0CKIbit4ST
(1)
RA5/SS
/AN4
bit5TTLInput/output or slave select input for synchronous serial port or analog input.
Digital input/output or external clock input for Timer0.
Output is open drain type.
Legend: TTL = TTL input, ST = Schmitt Trigger input
Note 1: The A/D is not implemented on the PIC16C63A/65B. Pins will operate as digital I/O only. ADCON1 is not
implemented; maintain this register clear.
TABLE 5-2:SUMMARY OF REGISTERS ASSOCIATED WITH PORTA
AddressNameBit 7Bit 6Bit 5B it 4Bit 3Bit 2Bit 1Bit 0
05hPORTA
85hTRISA——PORTA Data Direction Register--11 1111 --11 1111
9Fh
Legend: x = unknown, u = unchanged, - = unimplemented locations read as '0'. Shaded cells are not used by PORTA.
ADCON1
Note 1: The A/D is not implemented on the PIC16C63A/65B. Pins will operate as digital I/O only. ADCON1 is not implemented;
maintain this register clear.
——RA5RA4RA3RA2RA1RA0--0x 0000 --0u 0000
(1)
—————PCFG2 PCFG1 PCFG0 ---- -000 ---- -000
Val ue on:
POR,
BOR
Val ue on
all other
RESETS
DS30605C-page 30 2000 Microchip Technology Inc.
Loading...
+ 154 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.