打印

看个AT89C51ED2读取EEPROM数据问题//

[复制链接]
3016|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
俺从头来|  楼主 | 2007-5-29 18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮俺分析分析,谢谢各位了////////////
在初始化程序中,从EEPROM中取出数据,存在片内XDATA中.在主程序中,从XDATA中取出保存数据,放在显示缓冲区,显示数据.
 子程序如下
;********************************************************************
init_prg:
    mov  dptr, #eei_menu_a_para    ;菜单参数调入 eeprom-> xdata
    mov  r0,  #menu_a_buff
    mov  r7,     #eei_menu_para_lth
    call    eei_xseq_read                ; 
    ret
;********************************************************************
; 功能:    从内部EEPROM存储器中读取一串数据,目标地址为XRAM
; 输入:    R7  -  被读取的数据长度
;     R0   - 目标首地址
;     DPTR - 源首地址

eei_xseq_read:
    mov    a,    eecon
    jb    acc.0,    eei_xseq_read    ; eebusy位为1
    push    ien0
    clr    ea
eei_xseq_read_next_byte:
    mov    eecon,    #( 1<<eee )    ; 选择为片内EEPROM地址
    movx    a,    @dptr
    mov    eecon,    #0        ; 选择为XRAM地址空间
    movx    @r0,    a
    inc    r0
    inc    dptr
    djnz    r7,    eei_xseq_read_next_byte
    pop    ien0
    ret
;********************************************************************
main_prg:
        call   init_prg           ;读取参数eeprom-->xdata
main_loop: 
        call   para_to_dly_buff   ;送显示区
        call   display_all_para   ;显示参数
        sjmp   main_loop
这样LED显示参数不是EEPROM中保存的参数.

//////////////////////////////////////////
后把init_prg放在main_loop循环中,显示正确数据

//////////////////////////////////////////
后,改变读取EEPROM的方式:EEPROM-->DATA,再由DATA-->XDATA.init_prg放在mian_loop外也能显示正确数据.

/////////////////////////////////////////
原来读取数据的方式不对吗??    

相关帖子

沙发
俺从头来|  楼主 | 2007-5-29 18:33 | 只看该作者

XDATA

使用特权

评论回复
板凳
俺从头来|  楼主 | 2007-5-29 18:38 | 只看该作者

EEPROM

使用特权

评论回复
地板
俺从头来|  楼主 | 2007-5-29 18:40 | 只看该作者

EEPROM_2

使用特权

评论回复
5
俺从头来|  楼主 | 2007-5-29 18:43 | 只看该作者

EEPROM_3

程序并不符合(因为是EEPEOM-->XDATA,所以必须随时清EEE位 )DATASHEET上的流程,是不是这个原因导致出错??但如果在主循环中一直初始化,为什么就对了呢???

使用特权

评论回复
6
俺从头来|  楼主 | 2007-5-30 07:17 | 只看该作者

问题已经解决,读取eeprom 程序没有错,是程序其他地方有错

在第一种情况下,选择内部XDATA的语句处在了读取EEPROM后,导致错误

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

436

帖子

0

粉丝