2011 Microchip Technology Inc.
Preliminary
DS41458A-page 21
PIC16(L)F1526/27
3.1.1
READING PROGRAM MEMORY AS
DATA
There are two methods of accessing constants in pro-
gram memory. The first method is to use tables of
RETLW
instructions. The second method is to set an
FSR to point to the program memory.
3.1.1.1
RETLW
Instruction
The RETLW instruction can be used to provide access
to tables of constants. The recommended way to create
such a table is shown in Example 3-1.
EXAMPLE 3-1:
RETLW
INSTRUCTION
The BRW instruction makes this type of table very sim-
ple to implement. If your code must remain portable
with previous generations of microcontrollers, then the
BRW
instruction is not available so the older table read
method must be used.
3.1.1.2
Indirect Read with FSR
The program memory can be accessed as data by set-
ting bit 7 of the FSRxH register and reading the match-
ing INDFx register. The MOVIW instruction will place the
lower 8 bits of the addressed word in the W register.
Writes to the program memory cannot be performed via
the INDF registers. Instructions that access the pro-
gram memory via the FSR require one extra instruction
cycle to complete. Example 3-2 demonstrates access-
ing the program memory via an FSR.
The HIGH directive will set bit<7> if a label points to a
location in program memory.
EXAMPLE 3-2:
ACCESSING PROGRAM
MEMORY VIA FSR
constants
BRW
;Add Index in W to
;program counter to
;select data
RETLW DATA0
;Index0 data
RETLW DATA1
;Index1 data
RETLW DATA2
RETLW DATA3
my_function
;… LOTS OF CODE…
MOVLW
DATA_INDEX
CALL constants
;… THE CONSTANT IS IN W
constants
RETLW DATA0
;Index0 data
RETLW DATA1
;Index1 data
RETLW DATA2
RETLW DATA3
my_function
;… LOTS OF CODE…
MOVLW
LOW constants
MOVWF
FSR1L
MOVLW
HIGH constants
MOVWF
FSR1H
MOVIW 0[FSR1]
;THE PROGRAM MEMORY IS IN W
相关PDF资料
PIC24F08KL401-I/SO IC MCU 16BIT 8KB FLASH 20-SOIC
PIC18F13K50-I/MQ IC PIC MCU FLASH 512KX8 20-QFN
PIC16F1934-I/PT IC PIC MCU FLASH 256KX7 44-TQFP
PIC24F16KL402-I/SS IC MCU 16BIT 16KB FLASH 28-SSOP
PIC16LF1934-I/PT IC PIC MCU FLASH 256KX7 44-TQFP
PIC16C58B-20/P IC MCU OTP 2KX12 18DIP
PIC18F24K20-I/SP IC PIC MCU FLASH 8KX16 28-DIP
PIC16F1936-I/SP IC PIC MCU FLASH 512KX14 28SPDIP
相关代理商/技术参数
PIC16F1526-I/PT 制造商:Microchip Technology Inc 功能描述:IC 8BIT MCU PIC16F 20 MHz 64-TQFP 制造商:Microchip Technology Inc 功能描述:IC, 8BIT MCU, PIC16F, 20MHz, TQFP-64
PIC16F1526T-I/MR 功能描述:8位微控制器 -MCU 14KB FL 768B RAM 10bit ADC 1.8-5.5V RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC16F1526T-I/PT 功能描述:8位微控制器 -MCU 14KB Flash RAM 768b nanoWatt RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC16F1527-E/MR 功能描述:8位微控制器 -MCU 28KB FL 1536B RAM 10bit ADC 1.8-5.5V RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC16F1527-E/PT 功能描述:8位微控制器 -MCU 14KB Flash RAM 768b nanoWatt RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC16F1527-I/MR 功能描述:8位微控制器 -MCU 28KB FL 1536B RAM 10bit ADC 1.8-5.5V RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC16F1527-I/MR 制造商:Microchip Technology Inc 功能描述:IC 8BIT MCU PIC16F 20 MHz 64-QFN 制造商:Microchip Technology Inc 功能描述:IC, 8BIT MCU, PIC16F, 20 MHz, 64-QFN; Controller Family/Series:PIC16F; Core Size:8bit; No. of I/O's:54; Program Memory Size:28KB; RAM Memory Size:1536Byte; CPU Speed:20MHz; Oscillator Type:External, Internal; No. of Timers:9 ;RoHS Compliant: No
PIC16F1527-I/PT 功能描述:8位微控制器 -MCU 14KB Flash RAM 768b nanoWatt RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT