导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]ADuC812单片机扩展RAM的读写

* 63416: [求助]ADuC812单片机扩展RAM的读写

   guest 
guest发表的帖子 

 [求助]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继续执行?


本人刚开始学习单片机,一菜鸟,还请高手帮忙指教,谢谢先


发表时间:2004年9月27日9:26:34

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  63418.[详细]有没有人知道啊,帮小弟一把,再次谢了
摘要:......(无内容)
- [relaxoo][845次] 2004年9月27日

[上一篇帖子]:有没有人知道啊,帮小弟一把,再次谢了
[下一篇帖子]:我一份peiyulong_linux@163.com