[求助]ADuC812单片机扩展RAM的读写ADUC812扩展4Mb的存储器,存储器为W29C040。共19位地址线,高8位地址A8-A15(寄存器
DPH)和页地址A16-A19(寄存器DPP)接P2口,通过锁存器锁存。也就是把存储器分为8个
64K的存储器。单片机地址线的低8位DPL,高8位DPH,页地址DPP。
请问如何读写存储器?让DPP分别取0x00,0x01,0x02,0x03---0x07,可以吗?
我下面写了个程序,想把存储器的各个数据读出来通过串口输出,
#include <aduc812.h>
#include <stdio.h>
#include <absacc.h>
void initial(void)
{
IE=0x00;
SCON = 0x50 ; // 8bit, noparity, 1stopbit
TMOD = 0x20 ; // configure Timer1..
TH1 = 0xFD ; // ..for 9600baud..
PCON=0x00;
TR1 = 1 ; // ..(11.0592MHz crystal)
}
unsigned int addr;
main()
{
initial();
DPP=0;
SBUF=XBYTE[0x00];
while(DPP <8)
{
for(addr=0;addr <0xFFFF;addr++){
printf("dataram=%04X,",XBYTE[addr]);
}
DPP=DPP+1;
printf("DPP=%04BX\n",DPP);
}
while(1);
}
我用keil uVision2编译仿真,
可是执行到DPP加1时,程序就停止了。编译窗口提示:
error 65 :access Violation at X:010001:no 'read' permission.
为什么不能DPP加1继续执行?
本人刚开始学习单片机,一菜鸟,还请高手帮忙指教,谢谢先