3

我正在做一个项目,我需要能够将值存储到 PIC 的 EEPROM,我已经设法让读取工作,但到目前为止我无法让 PIC 使用 PIC 程序集写入内存. 这是我一直在使用的代码,它来自数据表中的示例编写代码,我使用的是 16D630 PIC,并使用 PIC 汇编语言。

MOVLW 0x02
MOVWF EEADR
MOVLW 0x01
MOVWF EEDATA
BSF STATUS,RP0 ;BANK 1
BSF EECON1,WREN ;ENABLE WRITE
BCF INTCON,GIE ;DISABLE INTS
MOVLW 0x55 ;UNLOCK WRITE
MOVWF EECON2 ;
MOVLW 0xAA ;
MOVWF EECON2 ;
BSF EECON1,WR ;START THE WRITE
BSF INTCON,GIE ;ENABLE INTS
4

2 回答 2

4

在程序加载EEADREEDATA值之前设置适当的内存库。

当您在调试模式下单步执行 (F7) 程序行时,使用“ Watch ”窗口来控制寄存器EEADREEDATA中的值!

BSF STATUS,RP0       ;Set BANK 1 first !!!
MOVLW 0x02
MOVWF EEADR
MOVLW 0x01
MOVWF EEDATA

BSF EECON1,WREN ;ENABLE WRITE
BCF INTCON,GIE ;DISABLE INTS
MOVLW 0x55 ;UNLOCK WRITE
MOVWF EECON2 ;
MOVLW 0xAA ;
MOVWF EECON2 ;
BSF EECON1,WR ;START THE WRITE
BSF INTCON,GIE ;ENABLE INTS
于 2011-11-28T09:16:42.980 回答
0

在使能写 WREN 标志之前,您应该通过设置/清除 EECON1 中的 EEPGD 标志来指示您是打算写入程序存储器(闪存)还是写入 eeprom。

于 2014-12-27T20:09:25.093 回答