登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请给这个EEPROM 读写程序修正一下

作者:春来 栏目:单片机
请给这个EEPROM 读写程序修正一下
我使用F630但是读写EEPROM成功不了布置始麽原因,列出来请高手指正:
BSF    STATUS,rp0;  EEPROM写 地址20 低八位
        movlw  20H
        movwf  EEADR
        bcf    status,rp0
        movf   temp9,w     ;数据存储单元
        bsf    status,rp0
        movwf  EEDATA    ;LOW 8BIT    
        BCF    INTCON,GIE   ;关中断
        BSF    EECON1,WREN        
        MOVLW  55
        MOVWF  EECON2
        MOVLW  0XAA
        MOVWF  EECON2
        BSF    EECON1,WR
        NOP
        NOP
        NOP
        nop
        movlw  21H         ;EEPROM 写地址21 高八位
        movwf  EEADR
        bcf    status,rp0
        movf   temp8       ;数据存储单元
        bsf    status,rp0
        movwf  EEDATA;HIGH  8BIT            
        BSF    EECON1,WREN
        MOVLW  55
        MOVWF  EECON2
        MOVLW  0XAA
        MOVWF  EECON2
        BSF    EECON1,WR
        BSF    INTCON,GIE  
        bcf    STATUS,rp0
        call   dly1ms

        goto   kCM      ;返回程序
            
           ;
           ;
           ;
           ;



cb1     bsf    status,rp0   ;读低八位
rrr     movlw  20h
        movwf  EEADR
        bsf    EECON1,RD
        MOVF   EEDATA,W
        BCF    STATUS,rp0
        MOVWF  temp9         ;数据存放地
        bsf    status,rp0
        movlw  21h          ;读高八位
        movwf  EEADR
        bsf    EECON1,RD
        MOVF   EEDATA,W
        bcf    status,rp0
        MOVWF  temp8;HIGH 8BIT; 数据存放       
        nop    
        bsf    portc,4
                          返回程序 

2楼: >>参与讨论
OYGGJ
先判WR,你还要加校验写是否正确.
       btfsc  EECON1,WR
       goto   $-1
BSF    STATUS,rp0;  EEPROM写 地址20 低八位
        movlw  20H
        movwf  EEADR
        bcf    status,rp0
        movf   temp9,w     ;数据存储单元
        bsf    status,rp0
        movwf  EEDATA    ;LOW 8BIT    
        BCF    INTCON,GIE   ;关中断
        BSF    EECON1,WREN        
        MOVLW  55
        MOVWF  EECON2
        MOVLW  0XAA
        MOVWF  EECON2
        BSF    EECON1,WR
        btfsc  EECON1,WR
        goto   $-1
        movlw  21H         ;EEPROM 写地址21 高八位
        movwf  EEADR
        bcf    status,rp0
        movf   temp8       ;数据存储单元
        bsf    status,rp0
        movwf  EEDATA;HIGH  8BIT            
        BSF    EECON1,WREN
        MOVLW  55
        MOVWF  EECON2
        MOVLW  0XAA
        MOVWF  EECON2
        BSF    EECON1,WR
        BSF    INTCON,GIE  
        bcf    STATUS,rp0
     ;   call   dly1ms
        btfsc  EECON1,WR
       goto   $-1
        goto   kCM      ;返回程序
            
           ;
           ;
           ;
           ;



cb1     btfsc  EECON1,WR
        retlw  0h
        bsf    status,rp0   ;读低八位
rrr     movlw  20h
        movwf  EEADR
        bsf    EECON1,RD
        MOVF   EEDATA,W
        BCF    STATUS,rp0
        MOVWF  temp9         ;数据存放地
        bsf    status,rp0
        movlw  21h          ;读高八位
        movwf  EEADR
        bsf    EECON1,RD
        MOVF   EEDATA,W
        bcf    status,rp0
        MOVWF  temp8;HIGH 8BIT; 数据存放       
        nop    
        bsf    portc,4
                          返回程序 

3楼: >>参与讨论
martin
0x55,0xaa
如果你的MPLAB没该设定的话,你写的MOVLW  55是赋一个十进制55。

4楼: >>参与讨论
龙斌
我用18F452读写不了。大虾帮我看看。
uchar ReadEEPROM(uchar data_ee_addr)
{
         EEDATA = 0;
    EEADR = data_ee_addr;
    EECON1bits.EEPGD = 0;
    EECON1bits.CFGS = 0;
    EECON1bits.RD = 1;
    return (EEDATA);
}

void WriteEEPROM(uchar data_ee_addr,uchar data_ee_data)
{
         while (EECON1bits.WR);
    EEADR = data_ee_addr;
    EEDATA = data_ee_data;
    EECON1bits.EEPGD = 0; //access Data EEPROM MEMORY
    EECON1bits.CFGS = 0;  //access FLASH Program or Data EEPROM
    INTCONbits.GIE = 0;
    EECON1bits.WREN = 1;
    EECON2 = 0X55;
    EECON2 = 0XAA;
    EECON1bits.WR = 1;
         while (EECON1bits.WR);
         EECON1bits.WREN = 0;
    INTCONbits.GIE = 1;
}

参与讨论
昵称:
讨论内容:
 
 
相关帖子
寻址疑问
怪怪!!!关于B口和D口的问题
关于ADC的设计时的问题?
12C509A定时器时间不准?(使用片内4M震荡)——疑惑中
低通滤波的一个问题?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号