PIC18F87J11 FAMILY
DS39778E-page 102
2007-2012 Microchip Technology Inc.
EXAMPLE 7-3:
WRITING TO FLASH PROGRAM MEMORY
MOVLW
CODE_ADDR_UPPER
; Load TBLPTR with the base address
MOVWF
TBLPTRU
; of the memory block, minus 1
MOVLW
CODE_ADDR_HIGH
MOVWF
TBLPTRH
MOVLW
CODE_ADDR_LOW
MOVWF
TBLPTRL
ERASE_BLOCK
BSF
EECON1, WREN
; enable write to memory
BSF
EECON1, FREE
; enable Row Erase operation
BCF
INTCON, GIE
; disable interrupts
MOVLW
H'55'
MOVWF
EECON2
; write H'55'
MOVLW
H'AA'
MOVWF
EECON2
; write H'AA'
BSF
EECON1, WR
; start erase (CPU stall)
BSF
INTCON, GIE
; re-enable interrupts
MOVLW
D'16'
MOVWF
WRITE_COUNTER
; Need to write 16 blocks of 64 to write
; one erase block of 1024
RESTART_BUFFER
MOVLW
D'64'
MOVWF
COUNTER
MOVLW
BUFFER_ADDR_HIGH
; point to buffer
MOVWF
FSR0H
MOVLW
BUFFER_ADDR_LOW
MOVWF
FSR0L
FILL_BUFFER
...
; read the new data from I2C, SPI,
; PSP, USART, etc.
WRITE_BUFFER
MOVLW
D’64
; number of bytes in holding register
MOVWF
COUNTER
WRITE_BYTE_TO_HREGS
MOVFF
POSTINC0, WREG
; get low byte of buffer data
MOVWF
TABLAT
; present data to table latch
TBLWT+*
; write data, perform a short write
; to internal TBLWT holding register.
DECFSZ
COUNTER
; loop until buffers are full
BRA
WRITE_BYTE_TO_HREGS
PROGRAM_MEMORY
BSF
EECON1, WREN
; enable write to memory
BCF
INTCON, GIE
; disable interrupts
MOVLW
H'55'
Required
MOVWF
EECON2
; write H'55'
Sequence
MOVLW
H'AA'
MOVWF
EECON2
; write H'AA'
BSF
EECON1, WR
; start program (CPU stall)
BSF
INTCON, GIE
; re-enable interrupts
BCF
EECON1, WREN
; disable write to memory
DECFSZ
WRITE_COUNTER
; done with one write cycle
BRA
RESTART_BUFFER
; if not done replacing the erase block
相关PDF资料
PIC18LF4553T-I/ML IC PIC MCU FLASH 16KX16 44QFN
PIC18LF2553T-I/SO IC PIC MCU FLASH 16KX16 28SOIC
PIC18LF2221T-I/SS IC PIC MCU FLASH 2KX16 28SSOP
PIC16F648A-I/P IC MCU FLASH 4KX14 EEPROM 18DIP
PIC18F96J65T-I/PF IC PIC MCU FLASH 48KX16 100TQFP
PIC16CE623-20/P IC MCU OTP 512X14 EE COMP 18DIP
PIC24FJ16MC102-I/SO IC MCU 16BIT 16KB FLASH 28SOIC
DSPIC33FJ16GP102-I/SO IC DSC 16BIT 16KB 28SOIC
相关代理商/技术参数
PIC18F66J11T-I/PT 功能描述:8位微控制器 -MCU 64KB Flash 3936 bytesRAM 51I/O 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
PIC18F66J15-I/PT 功能描述:8位微控制器 -MCU 96 KB FL 4 KB RAM 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
PIC18F66J15T-I/PT 功能描述:8位微控制器 -MCU 96 KB FL 4 KB RAM 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
PIC18F66J16-I/PT 功能描述:8位微控制器 -MCU 96KB FL 3936b RAM 10 MIPS 51 I/O 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
PIC18F66J16T-I/PT 功能描述:8位微控制器 -MCU 96KB Flash 3936 bytesRAM 51I/O 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
PIC18F66J50-I/PT 功能描述:8位微控制器 -MCU 64KB FLSH 3936Bs RAM USB 2.0 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
PIC18F66J50T-I/PT 功能描述:8位微控制器 -MCU 64KB FLSH 3936Bs RAM USB 2.0 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
PIC18F66J55-I/PT 功能描述:8位微控制器 -MCU 96KB FLSH 3936Bs RAM USB 2.0 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