2010-2012 Microchip Technology Inc.
DS41414D-page 119
PIC16(L)F1946/47
EXAMPLE 11-5:
WRITING TO FLASH PROGRAM MEMORY
; This write routine assumes the following:
; 1. The 16 bytes of data are loaded, starting at the address in DATA_ADDR
; 2. Each word of data to be written is made up of two adjacent bytes in DATA_ADDR,
;
stored in little endian format
; 3. A valid starting address (the least significant bits = 000) is loaded in ADDRH:ADDRL
; 4. ADDRH and ADDRL are located in shared data memory 0x70 - 0x7F (common RAM)
;
BCF
INTCON,GIE
; Disable ints so required sequences will execute properly
BANKSEL
EEADRH
; Bank 3
MOVF
ADDRH,W
; Load initial address
MOVWF
EEADRH
;
MOVF
ADDRL,W
;
MOVWF
EEADRL
;
MOVLW
LOW DATA_ADDR
; Load initial data address
MOVWF
FSR0L
;
MOVLW
HIGH DATA_ADDR ; Load initial data address
MOVWF
FSR0H
;
BSF
EECON1,EEPGD
; Point to program memory
BCF
EECON1,CFGS
; Not configuration space
BSF
EECON1,WREN
; Enable writes
BSF
EECON1,LWLO
; Only Load Write Latches
LOOP
MOVIW
FSR0++
; Load first data byte into lower
MOVWF
EEDATL
;
MOVIW
FSR0++
; Load second data byte into upper
MOVWF
EEDATH
;
MOVF
EEADRL,W
; Check if lower bits of address are '000'
XORLW
0x07
; Check if we're on the last of 8 addresses
ANDLW
0x07
;
BTFSC
STATUS,Z
; Exit if last of eight words,
GOTO
START_WRITE
;
MOVLW
55h
; Start of required write sequence:
MOVWF
EECON2
; Write 55h
MOVLW
0AAh
;
MOVWF
EECON2
; Write AAh
BSF
EECON1,WR
; Set WR bit to begin write
NOP
; Any instructions here are ignored as processor
; halts to begin write sequence
NOP
; Processor will stop here and wait for write to complete.
; After write processor continues with 3rd instruction.
INCF
EEADRL,F
; Still loading latches Increment address
GOTO
LOOP
; Write next latches
START_WRITE
BCF
EECON1,LWLO
; No more loading latches - Actually start Flash program
; memory write
MOVLW
55h
; Start of required write sequence:
MOVWF
EECON2
; Write 55h
MOVLW
0AAh
;
MOVWF
EECON2
; Write AAh
BSF
EECON1,WR
; Set WR bit to begin write
NOP
; Any instructions here are ignored as processor
; halts to begin write sequence
NOP
; Processor will stop here and wait for write complete.
; after write processor continues with 3rd instruction
BCF
EECON1,WREN
; Disable writes
BSF
INTCON,GIE
; Enable interrupts
Required
S
equence
Required
Sequenc
e
相关PDF资料
PIC16LF1939-I/ML IC MCU 8BIT FLASH 44QFN
PIC18LF6493-I/PT IC PIC MCU FLASH 8KX16 64TQFP
DSPIC33FJ64GP310T-I/PT IC DSPIC MCU/DSP 64K 100TQFP
DSPIC33FJ64GP310T-I/PF IC DSPIC MCU/DSP 64K 100TQFP
PIC16C622A-20I/SO IC MCU OTP 2KX14 COMP 18SOIC
PIC18LF14K50-I/SO IC PIC MCU FLASH 16KB 20-SOIC
XF2M34151L CONN FPC 34POS 0.5MM PITCH SMD
XF2M30151L CONN FPC 30POS 0.5MM PITCH SMD
相关代理商/技术参数
PIC16F1946T-I/MR 功能描述:8位微控制器 -MCU 14KB 512B RAM 256B EEPROM 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
PIC16F1946T-I/PT 功能描述:8位微控制器 -MCU 14KB Flash, 512B RAM LCD, 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
PIC16F1947-E/MR 功能描述:8位微控制器 -MCU 28KB1KB RAM 256B EEPROM 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
PIC16F1947-E/PT 功能描述:8位微控制器 -MCU 28KB Flash, 1KB RAM LCD, 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
PIC16F1947-I/MR 功能描述:8位微控制器 -MCU 28KB1KB RAM 256B EEPROM 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
PIC16F1947-I/PT 功能描述:8位微控制器 -MCU 28KB Flash, 1KB RAM LCD, 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
PIC16F1947T-I/MR 功能描述:8位微控制器 -MCU 28KB1KB RAM 256B EEPROM 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
PIC16F1947T-I/PT 功能描述:8位微控制器 -MCU 28KB Flash, 1KB RAM LCD, 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