AT29C512FLASH编程求救!!!
我现在在做一个项目,里面要用到AT29C512做数据保存,我的硬件是AT29512的WR接单片机的WR,其OE接单片机的RD,地址低8位用HC373锁存,CE接“0”,看资料512的数据是按页存储的,512个页,每个页128个字节,必须一次写完128字节,但我按资料上的方法怎么也打不开数据写保护,始终写不进数据,是不是方法不对?下面是测试用的,在其中的一个页中写入00H,01H,02H,...7FH,80H,然后再读入存进去的首32个数据放入30H....4FH,以便查看操作的正确性。
........
mov a, #0aah
mov dptr, #5555h
movx @dptr, a
lcall delay ;延时10ms
mov a, #55h
mov dptr, #2aaah
movx @dptr, a
lcall delay ;延时10ms
mov a, #80h
mov dptr, #5555h
movx @dptr, a
lcall delay ;延时10ms
mov a, #0aah
mov dptr, #5555h
movx @dptr, a
lcall delay ;延时10ms
mov a, #55h
mov dptr, #2aaah
movx @dptr, a
lcall delay ;延时10ms
;打开数据写保护状态;
mov dptr, #0080h ;写第二页
mov a, #00h
mov r7, #80h ;128字节计数器
here:
movx @dptr, a
lcall delay ;延时10ms
inc a
inc dptr
djnz r7, here
mov a, #0aah
mov dptr, #5555h
movx @dptr, a
lcall delay ;延时10ms
mov a, #55h
mov dptr, #2aaah
movx @dptr, a
lcall delay ;延时10ms
mov a, #0a0h
mov dptr, #5555h
movx @dptr, a
lcall delay ;延时10ms
;数据写保护
mov r7, #20h ;读入32字节
mov r1, #30h ;内存指针,从30h开始存储
mov dptr, #0080h ;外部指针,指向512的第二页
there:
movx a, @dptr
mov @r1, a
inc dptr
inc r1
djnz r7, there
........
但运行后内存中的32个字节全部是FFH,不知道什么地方出错了,请用过AT29C512的朋友务必帮个忙,不胜感激!指出其中的不对,最好能给出一个简单的: 打开写保护状态-> 写入数据-> 设置写保护 的简单程序示例,或直接在我给出的程序上改,请大家务必帮帮忙!这儿先谢谢了!
发表时间:2003年3月22日21:05:54