This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

I encounter some problems when I use the atmel 87f51rc.

I select the atmel 87f51rc because it
has 512 BYTE RAM.
I can view that the XDATA RAM changed in the address 30h after the instruction as follows:
mov dptr,#30h
movx @dptr,#59h
I think that I can chang the high 256 BYTE RAM of the total 512 BYTE RAM by using the instruction as follows:
mov r0 , #30h
movx @r0, #41h
it seems right,but i can not view the change occured in the RAM.
My question is that:
1.I can access the high 256 byte ram througe using movx and r0.I can access
the XDATA RAM through using movx and dptr.It is not needed for me to set the bit in SFR. Is it right?

2.I can view the change in the memory window when i set x:30h.
how can i view the change in the high 256 byte of the total 512 byte ram?

thanks for your help.

Parents
  • The "internal external RAM" ( I wish someone would come up with a solid non-confusing name for it ) is accessed the same way as external RAM. In other words P2 must be set to zero to access 00-ff. It is often overlooked that if you use internal RAM only and P2 as a port the card house will fall if you use movx @Ri. Use MOVX @dptr only. BEWARE some C optimizations may use @Ri.

    Erik

Reply
  • The "internal external RAM" ( I wish someone would come up with a solid non-confusing name for it ) is accessed the same way as external RAM. In other words P2 must be set to zero to access 00-ff. It is often overlooked that if you use internal RAM only and P2 as a port the card house will fall if you use movx @Ri. Use MOVX @dptr only. BEWARE some C optimizations may use @Ri.

    Erik

Children
No data