PIC18F458-I/PTG Microchip Technology, PIC18F458-I/PTG Datasheet - Page 57
![IC MCU FLASH 16KX16 44TQFP](/photos/6/82/68251/c04-076_pt_sml.jpg)
PIC18F458-I/PTG
Manufacturer Part Number
PIC18F458-I/PTG
Description
IC MCU FLASH 16KX16 44TQFP
Manufacturer
Microchip Technology
Series
PIC® 18Fr
Datasheets
1.PIC16F616T-ISL.pdf
(8 pages)
2.PIC18LF242-ISO.pdf
(36 pages)
3.PIC18F248-ISO.pdf
(402 pages)
4.PIC18F248-ISO.pdf
(8 pages)
Specifications of PIC18F458-I/PTG
Core Processor
PIC
Core Size
8-Bit
Speed
40MHz
Connectivity
CAN, I²C, SPI, UART/USART
Peripherals
Brown-out Detect/Reset, LVD, POR, PWM, WDT
Number Of I /o
33
Program Memory Size
32KB (16K x 16)
Program Memory Type
FLASH
Eeprom Size
256 x 8
Ram Size
1.5K x 8
Voltage - Supply (vcc/vdd)
4.2 V ~ 5.5 V
Data Converters
A/D 8x10b
Oscillator Type
External
Operating Temperature
-40°C ~ 85°C
Package / Case
44-TQFP, 44-VQFP
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
- PIC16F616T-ISL PDF datasheet
- PIC18LF242-ISO PDF datasheet #2
- PIC18F248-ISO PDF datasheet #3
- PIC18F248-ISO PDF datasheet #4
- Current page: 57 of 402
- Download datasheet (7Mb)
4.12
Indirect addressing is a mode of addressing data mem-
ory where the data memory address in the instruction
is not fixed. A SFR register is used as a pointer to the
data memory location that is to be read or written. Since
this pointer is in RAM, the contents can be modified by
the program. This can be useful for data tables in the
data memory and for software stacks. Figure 4-8
shows the operation of indirect addressing. This shows
the moving of the value to the data memory address
specified by the value of the FSR register.
Indirect addressing is possible by using one of the INDF
registers. Any instruction using the INDF register actually
accesses the register indicated by the File Select Regis-
ter, FSR. Reading the INDF register itself, indirectly
(FSR = 0), will read 00h. Writing to the INDF register
indirectly, results in a no operation. The FSR register
contains a 12-bit address which is shown in Figure 4-8.
The INDFn (0 n 2) register is not a physical register.
Addressing INDFn actually addresses the register
whose address is contained in the FSRn register
(FSRn is a pointer). This is indirect addressing.
Example 4-5 shows a simple use of indirect addressing
to clear the RAM in Bank 1 (locations 100h-1FFh) in a
minimum number of instructions.
EXAMPLE 4-5:
There are three indirect addressing registers. To
address the entire data memory space (4096 bytes),
these registers are 12 bits wide. To store the 12 bits of
addressing information, two 8-bit registers are
required. These indirect addressing registers are:
1.
2.
3.
In addition, there are registers INDF0, INDF1 and
INDF2, which are not physically implemented. Reading
or writing to these registers activates indirect address-
ing, with the value in the corresponding FSR register
being the address of the data.
If an instruction writes a value to INDF0, the value will
be written to the address indicated by FSR0H:FSR0L.
A read from INDF1 reads the data from the address
indicated by FSR1H:FSR1L. INDFn can be used in
code anywhere an operand can be used.
© 2006 Microchip Technology Inc.
NEXT
CONTINUE
FSR0: composed of FSR0H:FSR0L
FSR1: composed of FSR1H:FSR1L
FSR2: composed of FSR2H:FSR2L
:
Indirect Addressing, INDF and
FSR Registers
LFSR
CLRF
BTFSS
BRA
FSR0, 100h ;
POSTINC0
FSR0H, 1
NEXT
HOW TO CLEAR RAM
(BANK 1) USING
INDIRECT ADDRESSING
; Clear INDF
; register
; & inc pointer
; All done
; w/ Bank1?
; NO, clear next
;
; YES, continue
If INDF0, INDF1 or INDF2 are read indirectly via an
FSR, all ‘0’s are read (zero bit is set). Similarly, if
INDF0, INDF1 or INDF2 are written to indirectly, the
operation will be equivalent to a NOP instruction and the
Status bits are not affected.
4.12.1
Each FSR register has an INDF register associated with
it, plus four additional register addresses. Performing an
operation on one of these five registers determines how
the FSR will be modified during indirect addressing.
• When data access is done to one of the five
When using the auto-increment or auto-decrement
features, the effect on the FSR is not reflected in the
Status register. For example, if the indirect address
causes the FSR to equal ‘0’, the Z bit will not be set.
Incrementing or decrementing an FSR affects all
12 bits. That is, when FSRnL overflows from an
increment, FSRnH will be incremented automatically.
Adding these features allows the FSRn to be used as a
software stack pointer in addition to its uses for table
operations in data memory.
Each FSR has an address associated with it that
performs an indexed indirect access. When a data
access to this INDFn location (PLUSWn) occurs, the
FSRn is configured to add the 2’s complement value in
the WREG register and the value in FSR to form the
address before an indirect access. The FSR value is not
changed.
If an FSR register contains a value that indicates one of
the INDFn, an indirect read will read 00h (zero bit is
set), while an indirect write will be equivalent to a NOP
(Status bits are not affected).
If an indirect addressing operation is done where the
target address is an FSRnH or FSRnL register, the
write operation will dominate over the pre- or
post-increment/decrement functions.
INDFn locations, the address selected will
configure the FSRn register to:
- Do nothing to FSRn after an indirect access
- Auto-decrement FSRn after an indirect
- Auto-increment FSRn after an indirect
- Auto-increment FSRn before an indirect
- Use the value in the WREG register as an
(no change) – INDFn
access (post-decrement) – POSTDECn
access (post-increment) – POSTINCn
access (pre-increment) – PREINCn
offset to FSRn. Do not modify the value of the
WREG or the FSRn register after an indirect
access (no change) – PLUSWn
INDIRECT ADDRESSING
OPERATION
PIC18FXX8
DS41159E-page 55
Related parts for PIC18F458-I/PTG
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
![PIC18F458-I/PT](/photos/6/82/68251/c04-076_pt_tmb.jpg)
Part Number:
Description:
IC MCU CAN FLSH 16K 40MHZ 44TQFP
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458-I/P](/photos/6/61/66192/150-40-dip_tmb.jpg)
Part Number:
Description:
IC MCU FLASH 16KX16 CAN 40DIP
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458-I/L](/photos/6/63/66325/150-44-plcc_tmb.jpg)
Part Number:
Description:
IC MCU FLASH 16KX16 CAN 44PLCC
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458-E/P](/photos/6/61/66192/150-40-dip_tmb.jpg)
Part Number:
Description:
IC MCU FLASH 16KX16 W/CAN 40 DIP
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458-E/L](/photos/6/63/66325/150-44-plcc_tmb.jpg)
Part Number:
Description:
IC MCU FLASH 16KX16 W/CAN 44PLCC
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458-E/PT](/photos/6/82/68251/c04-076_pt_tmb.jpg)
Part Number:
Description:
IC,MICROCONTROLLER,8-BIT,PIC CPU,CMOS,TQFP,44PIN,PLASTIC
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F458](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
(PIC18Fxx8) 28/40-Pin High-Performance / Enhanced Flash Microcontrollers with CAN Module
Manufacturer:
Microchip Technology
![PIC18F6393T-I/PT](/photos/6/81/68123/c04-066_pf_tmb.jpg)
Part Number:
Description:
PIC18F With 128-segment LCD Driver And 12-bit ADC, 8KB Flash, 768B RAM, CCP, MSS
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F6493T-I/PT](/photos/6/81/68123/c04-066_pf_tmb.jpg)
Part Number:
Description:
PIC18F With 128-segment LCD Driver And 12-bit ADC, 16KB Flash, 768B RAM, CCP, MS
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F8393T-I/PT](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
PIC18F With 192-segment LCD Driver And 12-bit ADC, 8KB Flash, 768B RAM, CCP, MSS
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F8493T-I/PT](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
PIC18F With 192-segment LCD Driver And 12-bit ADC, 16KB Flash, 768B RAM, CCP, MS
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F6585-I/L](/photos/16/12/161282/68-plcc-large-300dpi-lyrd_tmb.jpg)
Part Number:
Description:
Microcontrollers (MCU) 48KB 3328 RAM 52 I/O
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F6680-I/L](/photos/16/12/161282/68-plcc-large-300dpi-lyrd_tmb.jpg)
Part Number:
Description:
Microcontrollers (MCU) 64KB 3328 RAM 52 I/O
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F65K90T-I/MR](/photos/16/3/160368/qfn64_tmb.jpg)
Part Number:
Description:
32kB Flash, 2kB RAM, 1kB EE, NanoWatt XLP, LCD 64 QFN 9x9x0.9mm T/R
Manufacturer:
Microchip Technology
Datasheet:
![PIC18F65K90T-I/PT](/photos/16/3/160367/tqfp-64_tmb.jpg)
Part Number:
Description:
32kB Flash, 2kB RAM, 1kB EE, NanoWatt XLP, LCD 64 TQFP 10x10x1mm T/R
Manufacturer:
Microchip Technology
Datasheet: