PIC18C658 MICROCHIP [Microchip Technology], PIC18C658 Datasheet - Page 68

no-image

PIC18C658

Manufacturer Part Number
PIC18C658
Description
High-Performance Microcontrollers with CAN Module
Manufacturer
MICROCHIP [Microchip Technology]
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC18C658-1/CL
Manufacturer:
Microchip
Quantity:
6
Part Number:
PIC18C658-1/L
Manufacturer:
Microchip
Quantity:
6
Part Number:
PIC18C658-E/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-E/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-ES
Manufacturer:
Microchip
Quantity:
131
Part Number:
PIC18C658-I/L
Manufacturer:
Microchip
Quantity:
385
Part Number:
PIC18C658-I/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-I/L
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
Part Number:
PIC18C658-I/PT
Manufacturer:
Microchip
Quantity:
601
Part Number:
PIC18C658-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658T-E/L
Manufacturer:
Microchip Technology
Quantity:
10 000
PIC18CXX8
5.2
5.2.1
The TBLRD instructions are used to read data from pro-
gram memory to data memory.
TBLPTR points to a byte address in program space.
Executing TBLRD places the byte pointed to into
TABLAT. In addition, TBLPTR can be modified auto-
matically for the next Table Read operation.
Table Reads from program memory are performed one
byte at a time. The instruction will load TABLAT with the
one byte from program memory pointed to by TBLPTR.
5.2.2
The program memory of PIC18CXX8 devices is written
in blocks. For PIC18CXX8 devices, the write block size
is 2 bytes. Consequently, Table Write operations to
program memory are performed in pairs, one byte at a
time.
FIGURE 5-3:
EXAMPLE 5-1:
DS30475A-page 68
; Read a byte from location 0x0020
CLRF
CLRF
MOVLW 0x20
MOVWF TBLPTRL
MOVWF TBLRD*
n + 1
n + 2
n - 1
Program Memory
n
Program Memory Read/Writes
TABLE READ OVERVIEW (TBLRD)
PROGRAM MEMORY WRITE BLOCK SIZE
TBLPTRU
TBLPTRH
DataHigh
DataLow
HOLDING REGISTER AND THE WRITE
TABLE READ CODE EXAMPLE
; Load upper 5 bits of
; 0x0020
; Load higher 8 bits of
; 0x0020
; Load 0x20 into
; TBLPTRL
; Data is in TABLAT
DataHigh
MSB
MSB
Holding Register
Advanced Information
DataLow
DataLow
LSB
LSB
When a Table Write occurs to an even program mem-
ory address (TBLPTR<0> = 0), the contents of TABLAT
are transferred to an internal holding register. This is
performed as a short write and the program memory
block is not actually programmed at this time. The
holding register is not accessible by the user.
When a Table Write occurs to an odd program memory
address (TBLPTR<0> = 1), a long write is started. Dur-
ing the long write, the contents of TABLAT are written
to the high byte of the program memory block and the
contents of the holding register are transferred to the
low byte of the program memory block.
Figure 5-3 shows the holding register and the program
memory write blocks.
If a single byte is to be programmed, the low (even)
byte of the destination program word should be read
using TBLRD*, modified or changed, if required, and
written back to the same address using TBLWT*+. The
high (odd) byte should be read using TBLRD*, modified
or changed if required, and written back to the same
address using TBLWT. The write to an odd address will
cause a long write to begin. This process ensures that
existing data in either byte will not be changed unless
desired.
Instruction Execution
; TABLPTR points to address n
MOVLW DataLow
MOVWF TABLAT
TBLWT*+
MOVLW DataHigh
MOVWF TABLAT
TBLWT*
 2000 Microchip Technology Inc.
; Load low data
; byte to TABLAT
; Write it to LSB
; of Holding register
; Load high data
; byte to TABLAT
; Write it to MSB
; of Holding
; register and
; begin long
; write

Related parts for PIC18C658